Xah Programing Blog Archive 2010-09
Recently this tweet has been going around:
“Welcome to the new decade: Java is a restricted platform, Google is evil, Apple is a monopoly and Microsoft are the underdogs” — Phil Nash 2010-08-14
Apple is deprecating Java! See: developer.apple.com. Quote:
As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.
This means that the Apple-produced runtime will not be maintained at the same level, and may be removed from future versions of Mac OS X. The Java runtime shipping in Mac OS X 10.6 Snow Leopard, and Mac OS X 10.5 Leopard, will continue to be supported and maintained through the standard support cycles of those products.
Am so glad of this. Sooo glad. Death to you, Sun Microsystems, and your Java f���. Thank you for your incredible unscrupulous marketing lies and lawsuit gaming.
12 years ago, the creator of tcl, John K Ousterhout, wrote a well-known articleScripting: Higher Level Programming for the 21st Century at
http://home.pacbell.net/ouster/scripting.html. (scripting_language_the_future_John_K_Ousterhout.pdf) It is finally coming true in recent years.
- Xah's Java Logo
- Jargons of Software Industry
- What are OOP's Jargons and Complexities
- Voodoo of Software Engineering
- Proliferation of Computing Languages
A short summary of my computer language experiences, counting only serious involvement, say, few hours a day doing real jobs:
- 1991 to 1994, HP-28S.
- ≈1992 to 1998. Mathematica.
- 1996 to now. HTML (and later years related CSS, XML)
- 1998 to 2004. Perl, sql, apache, bash, whole unix admin shebang.
- 2001, 2005. Java.
- 2005 to 2006. Python.
- 2006 to now. emacs lisp.
See: Xah Lee's Computing Experience (Impression Of Lisp from Mathematica).
A great piece about terminology in computer languages.
- The Poetry of Function Naming By Stephen Wolfram. @ Source
See also: The Importance of Terminology's Quality In Computer Languages.
Windows: How to Remove “Antivirus Action” Malware (malware; virus; software; tips)
What's List Comprehension and Why is it Harmful?
This month, my Java tutorial become quite popular. Here's the most popular pages, with number of page views in the past 30 days.
|The “static” Keyword in Java||5.803k|
|Java Tutorial: “this” Keyword||5.589k|
|Interface in Java||4.627k|
|Java Tutorial: The “extend” Keyword||4.402k|
|Java's Access Specifiers||2.935k|
|Java Tutorial: Arrays||2.673k|
|Java Tutorial: Defining a Function||2.596k|
|The “abstract” Keyword in Java||2.316k|
|Xah Java Tutorial||2.168k|
There are several links to them from stackoverflow.com.
Java is the most inane language. I did Java for half a year in a day job in 2000. At the time, i was not really sure what i was doing. (this is a typical situation when coding in a day job on someone else's project.) Then, in 2005 i studied Java in some detail, and wrote my tutorial. However, i actually don't code Java, am not good at it, and will never code anything in Java. (am rather sad that Google choose it as its main lang. (but, it's still much better than C or C++.))
Also, of all big software companies, i HATE Sun Microsystems with passion. It is the company with the most despicable marketing f���, and loves to create random meaningless jargons and abuse established terms. For detail on the jargon part, see:
Of all the 2 thousand tech tutorials and essays i wrote about computing in the past 10 years, i consider the “What are OOP's Jargons and Complexities” piece to be among the top 5 most significant. Am proud of it.
Unicode support in Ruby, Python, Emacs Lisp (commentary)
Windows Flip3D, Instant Viewer, Productivity Tips (tips; efficiency)
Pattern Matching vs Grammar Specification
Discovered about 7 new keyboard layouts since i wrote about them last month. See: Keyboard Layouts Fight! Dvorak, Colemak, Workman, NEO, Bépo, ….
New lisp logos:
Note that Clozure Common Lisp is used by ITA Software, a software company in the travel industry, recently got bought by Google for 700M USD.
For a gallery, see: A Lambda Logo Tour.
Software Piracy, Open Source, Free Software, Copyright
PLT Scheme lisp is now named Racket. See: http://racket-lang.org/new-name.html.
Also, here's a classic piece: The Fate of Lambda in Python 3000 and Scheme v300.
Discovered that Guy L Steele , most famous as a inventor of Scheme lisp, and Robert J Chassell, best known as the author of An Introduction to Programming in Emacs Lisp amazon, both are apparently lojban speakers! Yay! See: http://www.lojban.org/files/papers/4thtense.
What is lojban? see intro at: Xah's lojban Tutorial.
Update: Pinyin Letter Frequency on Dvorak Layout. 拼音字母頻率, Dvorak 鍵盤佈局.
Just watched a great video:
ELC 2010: Rich Hickey and Joe Pamer - Perspectives on Clojure and F# http://channel9.msdn.com/blogs/charles/emerging-langs-clojure-and-f
It's 24 minutes. It's interview with Clojure inventor Rick Hickey, and Microsoft's F# compiler writer Joe Pamer.
Also: Robin Milner is dead. (1934 – 2010) He is known as the father of ML (OCaml, F#). (See also: OCaml Tutorial.)
Today i started to use Microsoft's speech recognition software. It comes with Windows Vista and Windows 7. To use it, you will need a good microphone or headset. 〔➤ Gaming Headset Reviews〕
To open it, just go to the “Control Panel”, then choose “Speech Recognition Options”. Then, you might want to go thru the various options and go thru 30 min of training and learning how to use it.
You can use it to control windows and menu in some basic way, but I'd use it mostly for dictation when writing essays and emails. Not sure how well it will work out, but i'll give it a shot.
F Sharp OCaml Books and People (useful info)
What's Window's shell command to launch a app? ⁖ on OS X, i can launch Firefox at a URL with
open -a firefox ‹url›.
start firefox yahoo.com.
You might have to add the program path to your environment variable. See: Windows Environment Variables.
Is there a way to set a app to launch only a single process? For example, i prefer Firefox to have a single process, and use 【Ctrl+Tab ↹】 and 【Ctrl+⇧ Shift+Tab ↹】 to switch tabs, so i don't have to 【Alt+Tab ↹】 among many windows that are not Firefox. Some app, such as Windows Mail, iTune, Skype etc, are apparently setup this way.
This appears to be app dependent, not a OS level config.
Does anyone know if that's actually true?
See also: Keyboarding ＆ Macros in Mac ＆ Windows (How to Increase Your Computer Operation Efficiency).
Discovered this nice article on newLISP, which gave me my first intro of the lang:
- How newLISP Took My Breath (And Syntax) Away By Greg Slepak. @ Source
See also this comparison: Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp @ http://hyperpolyglot.wikidot.com/lisp.
If you want a quick intro by slide show, see: http://www.nuevatec.com/manual-intro.html.
Updated: The keys started to fail on my A Review Microsoft Comfort Curve Keyboard 2000. Amazon reviews confirms that it's a common defect. So, don't buy that keyboard.
Linux: Text Processing: grep, cat, awk, uniq
Discovered SubRip. It's a software used to extract subtitles from movie files, by using optical character recognization. Also, it saves its file in a plain text format with suffix “.srt”. This is extremely useful when you want to read the dialog of a movie. The format is supported by most video editors or players, including youtube.
A more advanced but still widely supported subtitle format is SubStation Alpha, with suffix “.ssa” or “.ass”. It is also a plain text format.
A older subtitle format is MicroDVD with suffix “.sub”. Also a plain text format. There are more. See: Category:Subtitle file formats.
New programing languages.
- Pure (programming language) @ http://code.google.com/p/pure-lang/ (a pattern matching, term-rewriting lang.)
- Vala (programming language) @ http://live.gnome.org/Vala (improved C)
- Genie (programming language) @ http://live.gnome.org/Genie (like Vala, but Python-like syntax)
For a brief overview of major new langs, see: Proliferation of Computing Languages.
New Clojure Books.
A great site comparing the basic syntax and constructs between Common Lisp, Scheme, Clojure, Emacs Lisp. If you know one of them, this site lets you learn the other very quickly. Am particularly interested in Clojure.
- Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp http://hyperpolyglot.wikidot.com/lisp
They also have side-by-side cheatsheet for other langs.
- Scripting Languages: PHP, Perl, Python, Ruby, Smalltalk http://hyperpolyglot.wikidot.com/scripting
- Platform Languages: C, C++, Objective C, Java, C# http://hyperpolyglot.wikidot.com/c
- ML: Standard ML, OCaml, F#, Scala, Haskell http://hyperpolyglot.wikidot.com/ml
Emacs, RSI, My Experiences.
Lisp Macros and Practical Common Lisp (rant)
Programer Celebrities; Styles and Tack (online rambling)
Chinese Input using Dvorak Layout (Microsoft Pinyin IME); 微軟拼音輸入法 Dvorak 佈局 (how-to)