This personal blog comprises whatever I feel like saying on any given day, which often involves topics like new media, journalism, Web technologies, Scheme/Lisp, Free and open source software, societal issues, cinema film, Boston, and humor. Many things noted here are solely for the benefit of future Web searchers trying to solve particular esoteric problems, and are not of general interest. This blog is largely insulated from my professional life, and vice-versa. I attempt to provide full disclosure of potential conflicts of interest. My site currently gets over 1000 unique visitors a day.
If you run out of lofty goals to attain, figure out how to convert the world's production capacity for brazil nuts over to pecans.
You can retain some percentage of brazil nut capacity, if they are found to have some practical use, such as in industrial coatings or highway surfaces.
This little nit is not at all the reason that Scheme is superior liguistically to JavaScript, but while writing a simple JavaScript function right now, I found myself ending the function like this (initially spread across 4 lines at various indent levels that weren't as helpful as one would think):
annosJson);});}});}
Getting the parens and curly braces and semicolons right required lots of checking back, rather than just closing the parens to the right level.
A naive transliteration to a Schemey syntax (disregarding the higher linguistic benefits of Scheme) would be what I consider simpler and more aesthetically pleasing:
annosJson)))))))
One thing that's sad is that the C-ish syntax of Java (and, I'm guessing, JavaScript) happened because, IIRC, the people who developed Java nee Oak wanted a "safe C++" multimedia language for TV set-top boxes[*], and they wanted the syntax accessible to people who at the time were currently mostly using C and C++.
Actually, more accurate than "accessible to" would be "accepted by". Computer programmers tend to be crotchety and opinionated, with lots of religious adherences based on familiarity and narrow experience.
The thing is (this is all assertion, by the way), most all people doing JavaScript programming right now are mainstream "Web developers", who are little like the categories of people who were C and C++ programmers when Java/Oak was designed. C and C++ were used for systems programming, technical software development, shrinkwrap PC software, and embedded systems. The vast majority of people doing JavaScript now are more in the category of people who in 1990 would've been coding corporate MIS database forms and reports and such. Plus people who in 1990 would've been graphic designers.
So (and without going into the history of JavaScript itself), one way to look at JavaScript is that the less-technical people have dumbed-down the technologies that the high-technical people now must use. Another way to look at it is that some crusty old techies proactively avenged themselves by sticking the modern Web programmer with syntactic artifacts of a 1970's portable macro assembly language. :)
[*] This is how I recall Oak being presented to me in '94 or '95, before it was called Java and before it targeted the Web/Internet. I was not under NDA, and this part of the history of Java is all public knowledge now.
Is your Thunderbird address book corrupted, and Thunderbird deciding
that you want to forget about the thousands of entries in it and start from
scratch, and you keep recovering from a backup which works for one run before
Thunderbird corrupts it again?
The other day, I ran out of disk space, which led to Thunderbird 2.0.x making a mess. Recovering my email took a while, and then I was stuck in the weird state of Thunderbird repeatedly corrupting the addressbook that I kept restoring from a backup.
Now, if you Google for a solution to "thunderbird corrupt addressbook", you will find lots of advice that people should have kept to themselves. Satisfied that nobody, including Mozilla developers, knows why corruption happens nor how to fix its aftermath, I experimented and quickly found something that worked for me.
The solution for me was (you might not want to try this unless you are a techie who can immediately see the general reason why this works, and don't sue me if you make things worse):
Quit Thunderbird.
Restore abook.mab from backup.
Start Thunderbird.
Immediately (trying not to do anything that could modify the addressbook or otherwise barf) export the addressbook to an LDIF tile.
Quit Thunderbird.
Start Thunderbird. Watch Thunderbird complain that the addressbook is now corrupted again, and let it start with a new one.
Import the LDIF file.
Quit Thunderbird.
Copy the imported .mab file (since the import
created a separate addressbook) over abook.mab (which should be
very small, since Thunderbird just cheerfully erased your thousands of
contacts).
Edit the preferences file to remove all the
ldap_2. (or whatever) preferences, one of which referenced the
import .mab file). You want to be left with only your main
addressbook and abook.mab.
Start Thunderbird. Admire your restored addressbook.
Quit Thunderbird, start it again, admire the lack of message about corrupted addressbook.
(Baseball bat clip art found on Web and of unknown authorship. I hope they don't mind it being used punitively.)
© Copyright Neil Van Dyke Contact