Friday, July 28, 2006

Criticism of non-dynamic languages

For the last year most of my work has been using dynamic programming languages (Ruby and Common Lisp). I have written about this before but given that programmers are properly trained/educated, dynamic languages simply are more efficient when measured against programmer time. I think that the reason is fairly simple: dynamic programming, meta object protocol, Ruby's missing method, etc. all make it possible to solve some difficult problems with relatively few lines of code.

I have made a good living using the Java platform (starting with Java 1.0 beta) but I think that it is time to move on. Sure, I am still likely to take on interesting work even if it has to be done in Java, but I think that both Java and the .Net platform languages missed the boat on programmer productivity.

I have a few comments on Ruby vs. Common Lisp also: the beauty of Ruby is that it is a simple language to learn and to master. It is difficult to find programmers who are willing to make the effort to master Common Lisp and CLOS. Too bad, but that is the way it is. Personally, I still like Common Lisp a lot because I have already invested decades (part time) learning Lisp and Common Lisp blows Ruby away performance wise. BTW, my positive comments on Ruby and Common Lisp largely also apply to Smalltalk.

Tuesday, July 25, 2006

Dissent: the finest of American traditions

Amazingly, our politicians and the media industries try to paint the picture of dissent as being unpatriotic. I recommend re-studying American history! You have seen this for yourself: criticize Bush and you are unpatriotic. Criticize poor amateurish military decisions made by the radical neoconservatives and you are unpatriotic. Wanting to save our military infrastructure and personnel for real future threats to our country: labeled as "cut and run" rather than as "smart".

This perversion of American ideals is made possible by the massive consolidation of ownership of the news media: under the Bush administration, the FCC has failed to do its job by letting a few very large multi-national corporations buy up control of most of the media that the average person sees.

If you have 28 minutes, I can recommend this video on the state of US media compared to more uncensored news that people in most other countries get to see. I think of myself as a conservative, so a few things in this video rub me the wrong way, but it is still a valuable wake up call to the dangers to democracy of tightly controlled news media. Highly recommended!

Wednesday, July 19, 2006

Secrets to living a happy life

My wife and I watched a DVD movie "The Secret" this evening. While it was very good, I think that I can do better -:)
  • Follow Joseph Campbell's advice to discover what you really love doing and make that your career: follow your bliss
  • Count the blessings in your life every day while minimizing the time you spend on negative thoughts
  • Take full responsibility for your life for a good feeling of self empowerment
  • Give up on trying to control other people and put your energies into your own thoughts and behaviors
  • Concentrate on the current moment with minimal time planning for the future and less time regretting things in the past

Good point: disinformation and the Semantic Web

I wish that I had gone to the AAAI conference this year. I am keenly interested in the application of AI techniques to the Semantic Web, and Tim Berners-Lee gave a keynote speech largely on the Semantic Web.

After Berners-Lee's talk, Peter Norvig in the question period posed the problem of people publishing fake data in much the same way they try to cheat to increase the page ranking on their web sites. I had not thought of that problem, and it is a tough problem to deal with: what happens to trust mechanisms when some people actively try to fake the meta data on their web sites? While I was walking to lunch with Norvig a few years ago, I brought up a related problem: assume that for narrow domains of discourse (e.g., political news, financial news, etc.) that you could largely automate the creation of RDF from natural language text on web sites. I personally believe that this is achievable right now, with a lot of effort. The problem that I posed at lunch was (besides the technical challenges of dealing with potentially trillions of RDF triples) the problem of dealing with lots of conflicting information while factoring in different levels of trust.

Tuesday, July 18, 2006

Why I have not been blogging about the latest war in the Middle East

I find it difficult to write about something when both my intellect and emotions condemn people on all sides of a conflict. My contempt is not for the many Lebanese and few Israeli civilian casualties, or for any of the people who simply want to live their lives and raise their kids.

My contempt is for both the brutal Israeli government and for the shitty, sometimes evil, and stupid leadership (both governments and terror organizations) of their adversaries. I think that the leaders on all sides of this conflict are pathetic - worthy of disgrace and shame.

The slaughter of civilians has got to stop. Killing civilians is a war crime. Get the leaders of all sides of this conflict before international war crimes tribunals, give them all fair trials, punish those who are found to be guilty, and see if the level of violence decreases. I bet that it would. As a world, we have to come together and stop this shit. I believe that history is at a crossroads: either we work together to clean up our collective acts and move into a great future, or we "stay the course" and fail in our responsibilities to our children and grandchildren.

The UN has not been a very effective organization because of the veto power in the security council. If voting were adjusted to be more in line with populations of countries, with no veto power, I think that UN resolutions would have more effectiveness. We need a world wide forum and enforcement agency to make it clear to world leaders what actions are not acceptable to the vast majority of people living on our planet.

Is India blocking my blog and all others on blogspot.com?

I just read that Indian ISPs were given a list of domains to block. Too bad, really. I have been to India, and very much liked it there - an interesting place with warm and friendly people. They still have problems of corruption (my driver was shaken down by police twice the last day I was there), and you can read Arundhati Roy's non-fiction books on global corporate powers working with corruption in the Indian government and other governments if you would like to better understand "how things work in the world". (The root of this corruption is in multinational corporations that used to be US companies - so I am not picking on India here)

In any case, I hope that either this is not true or that the Indian government will quickly realize its mistake and keep their internet access free. It is well publicized that China's government blocks many foreign domains, but as a conservative (yes, I strongly dislike Bush and his radical neoconservative advisors - but I still consider myself to be conservative) I have deep problems with the Chinese government anyway (the people in China have my very best wishes however - it is just their government I do not care for).

Saturday, July 08, 2006

Good concert

Tonight was fun: our friend Laurie Riley headlined a concert tonight in Sedona. She played a double harp, mostly Celtic and South American themes. (Laurie has an Italian Greyhound Bungie who is almost a mirror image of our Italian Greyhound Kito.)

Quality of life, technology, and ecology

I had a good talk with my friend Geri yesterday while walking our dogs around the neighborhood: she and her husband Mark had seen "An Inconvenient Truth" the night before. This all got me thinking about why so many people can blind themselves to what I think are obvious problems: ecology (or lack thereof), government over spending, the consumer debt bubble, etc.

Part of the problem is that many of us simply do not want to confront problems when they can be put off until the next year or simply dumped on the next generation. In the US, I think that many people suffer from the disease of materialism: the substitution of material things (or in some cases simply the addictive desire for more 'stuff') for basic human pleasures of family, friendships, enjoyment of nature, etc. There are many new technology/business opportunities that could help local economies and be ecologically friendly: passive heating and cooling, low power computers, more fuel efficient vehicles, technologies for growing food efficiently very close to where people live to reduce transportation costs, etc.

BTW, the solution to global warming (or at least improve the situation) is simple: increase the tax on the use of carbon based fuels while decreasing sales and income taxes. Make it economically viable to create new technologies and industries that reduce our energy and environmental damage "foot prints".

Politically, my solution will never happen in the US because their are too many entrenched corporate interests making profit on the current energy industry.

Tuesday, July 04, 2006

Windows Genuine Advantage

Advantage to whom?

As a software developer, I get a lot of use out of keeping a PC that can also boot Windows XP (you know the drill: have to use customer's Windows only VPN software, want to try Windows applications, etc.)

I was fortunate, my Dell(*) Ubunto Linux/Windows XP PC has been having no problems, when booted to Windows XP, getting software updates - but some people have not been so fortunate. I believe that Microsoft has a potential customer relations problem, but it is a mild problem - but with a long tail: customer frustrations with a product and vendor do add up, and incur a long term cost to the vendor.

Most consumers are stuck with Microsoft, unless they buy a Mac - but the cost of a Mac is so much more than PCs with similar performance.

(*) No, I did not actually purchase a Dell - a very nice customer ordered one for me as a gift (they buy a lot of Dells, and the discount cost to them was not too much money).

Monday, July 03, 2006

21 years with Emacs; streamlining writing/publishing with LaTex

I have been using computers for a long time (in the early 1960s my Dad got access for us to a timesharing Basic system on the Darpa Net), but I only have been using Emacs for 21 years :-) LaTeX and TeX are also old but great software, but I am fairly new to LaTex - I used it a few years ago to write the first version of my free web book Loving Lisp. The Saavy Programmer's Secret Weapon but had not used it again until this last week when I started to setup a more streamlined writing environment (more about that later).

I still think that IntelliJ is the best Java development environment, but I am trying to not do so much Java anymore - this year I have been developing mostly using Common Lisp and Ruby. Emacs is a natural fit for Lisp development, and is good for Ruby (but Ecplise+RDT is a bit better). It feels strange to still be using the same software (sort of) that I have been using for a good part of my life!

Just in the last few days, I have been finding Emacs recently to be the best environment (that I have found) for working with LaTeX - AucTeX was a 1 minute install in Ubuntu and I liked the way that it gives limited preview right in an Emacs buffer, and it takes only a few keystrokes to run LaTeX and get a real preview.

I have a good reason for getting back into into LaTeX: I love to write but I am not as enthusiastic about going with the established publishing industry anymore (I have written 14 published books, with another in progress, so "been there, done that"). I am much more enthusiastic about web publishing and alternative print on demand publishing outlets because a lot of things that interest me enough to write about are niche markets. In order to more easily write more (but much shorter) programming texts, I want to streamline and automate generating high quality text with embedded programming examples and equations. It took very little time this afternoon to set up an automated system for embedding program listings with generated output in LaTeX. Saving lots of "busy work" time lets me spend more time writing.