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￼ck. 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.
A great piece about terminology in computer languages.
- The Poetry of Function Naming By Stephen Wolfram. At Source
Windows: How to Remove “Antivirus Action” Malware (malware; virus; software; tips)
This month, my Java tutorial become quite popular. Here's the most popular pages, with number of page views in the past 30 days.
|Java: “static” Keyword||5.803k|
|Java Tutorial: “this” Keyword||5.589k|
|Interface in Java||4.627k|
|Java Tutorial: The “extends” 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￼ck, 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)
Discovered about 7 new keyboard layouts since i wrote about them last month. See: Alternative Keyboard Layouts.
New lisp logos:
For a gallery, see: A Lambda Logo Tour.
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 Buy at 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.
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.
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 is Window's shell command to launch a app?, for example: 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?
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. At 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.
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.
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
Programer Celebrities; Styles and Tack (online rambling)