2008 predictions
- Get link
- X
- Other Apps
Technology The use of Java will continue to migrate to the edges of application space: use on cellphones and small devices and large scale server side system. Except for developer tools like Eclipse, NetBeans, and IntelliJ Java on the desktop will grow slowly (with a few exceptions like LimeWire) The trend of using scripting languages like Ruby and Python for small and medium size systems will continue. Most innovative software development will continue to be done as web based applications with browser and small device clients. New web based applications will continue the upwards trend to outsourcing infrastructure to Amazon (EC2, S3, SimpleDB), Google (GData, applications), etc. Pressure to reduce IT costs will drive most organizations even more towards open source. There will be more progress in implementing the Semantic Web as more organizations adopt open standards for sharing structured data and start to see the value of opening up their own data to outside users. The shift toward...
Very cool: backing up Google Office documents and outsourcing infrastructure
- Get link
- X
- Other Apps
If you use Google Office Applications, check out gdatacopier . One of my only complaints about using Google Documents has been having to manually export and backup my online documents - now, problem solved. Although there is some sensitive information that I would not store in Google Documents, for most information having it online and available is a deal maker for me - I also like being able to share specific documents for group writing. There is a question whether storage and software services should be "outsourced". For most of my business and research interests, I would answer that question with a "yes". For me the issue is in reducing labor costs. By using leased managed servers, Amazon EC2/SimpleDB/S3, Google Data, DabbleDB, etc. does precisely this: it allows systems to be run and maintained much more inexpensively by outsourcing infrastructure. One firm requirement for outsourcing infrastructure is a plan for recovering from the loss of an outsourced service...
Consulting and working at home: when does the work day end?
- Get link
- X
- Other Apps
Slashdot has a discussion this morning on this topic, and it is very relevant to my lifestyle. Most of my customers, since they use me in a telecommuting mode, also use knowledge workers in Vietnam, India, Russia, South America, and Eastern Europe. Because of the timezone differences it can be very productive to do some work right before I go to bed and if, for example, I wake up very early in the morning. I balance this "always on" mode by taking frequent long breaks during the day for hiking with friends, seeing movies with my wife, playing with my pet Meyers Parrot, turning off my computer and reading, cooking, working on CookingSpace.com , etc. Besides taking these frequent long breaks, I have three tricks that I use to feel good about my "always on" mode: Feel good about providing service: always equate the loss of personal time with feeling good about helping someone Bill for all time spent, even small increments: if I am interrupted by the need to handle some...
Hiding source code: so bad!
- Get link
- X
- Other Apps
For my own research and development I have almost totally committed to Ruby (yes, I decided to ignore that little "poor run time performance" problem). For many years, one of the attractions of C++, Java (with byte code obfustication), compiled Common Lisp, etc. was that intellectual property could be protected. If you write and distribute code in a scripting language like Ruby, clearly everyone gets the source code. I am over this desire to hide source code. First, I think that in most cases (for me) using open source licenses makes the best business sense. Second, in cases where proprietary software does make sense, it seems to me that customers who buy products get shortchanged if they do not also receive source code for what they pay for.
I am updating CookingSpace.com to Rails 2.0.x
- Get link
- X
- Other Apps
I am home from vacation (just drove in from San Diego, arriving in Sedona today - we have snow :-). After doing some quick tasks for my customers I turned straight away to updating my local development version of CookingSpace.com to Rails 2.0.x I had to do a few simple things. First, I had to edit environment.rb, adding a definition for config.action_controller.session. Actually, Rails will warn you about this and tell you exactly how to do this. I also had to run two commands because Rails has been made more modular: script/plugin install auto_complete script/plugin install acts_as_list I have been making my web apps (Rails, Java, and Common Lisp) more "RESTfull" in the last few years and the Rails 2.0.x REST focus was enough for me to decide to update sooner rather than later.
Back online after my vacation
- Get link
- X
- Other Apps
Carol and I, after a year of health problems, celebrated our return to good health with a 15 day cruise from San Diego to Hawaii and back ( pictures ). Vacations are a funny thing for me: usually I love my work, research, and studies but after a vacation it always takes me a week or two to enjoy normal life as usual. Oh well. I enjoy cruising a lot: great relaxation and I think less expensive than other forms of vacations where you constantly rack up separate transportation, lodging, and food costs. Some tricks for maximizing the enjoyment of a cruise: occasionally skip meals to avoid always feeling full, hang out at many different places aboard a ship to both experience different environments and meet more people, and when ashore look for opportunities to use public transportation to great sites to visit and just use packaged tours as needed. We had a great time and look forward to visits in Sedona from some of our new friends who we met on the cruise.
Google's view of UI development: do it in Java
- Get link
- X
- Other Apps
I have enjoyed building a few AJAX prototypes using GWT and now I am just now starting to look at Google's Android SDK - also built on Java technology. I have done a couple of consulting jobs using the Java ME platform, and I would guess that eventually I will do something (professionally) with Android - what is not to like about an open cellphone platform built on Linux and programmable with Java :-)
Quality Open Source: Squeak 3.9 final and new Seaside 2.8
- Get link
- X
- Other Apps
I don't use Smalltalk professionally but I wanted to try the new Seaside 2.8 release. I did a fresh Squeak 3.9 final installation on my MacBook running Leopard. Installing Seaside was as simple as starting the SqueakMap package loader, doing an upgrade to all installed packages, then do a Seaside install answering yes to all optional package offerings. Everything 'just works' and has a very polished feel to it - important when I am giving up an evening or two to play with something very cool. One very important aspect of this "feeling of quality" is an active community that maintains a central package web site - good examples are SqueakMap (Squeak), Gems (Ruby), and CPAN (yuck, Perl :-) Having a central package repository is more than just a time saver: time spent dealing with too many installation and configuration options disrupts what I would call problem solving mode or thinking. I used to take great pleasure in staying on top of most J2EE technologies, but ...
Software development: smaller is better
- Get link
- X
- Other Apps
Small is better at all levels of software development: Small projects have lower failure rates than larger projects . Smaller classes are easier to understand and use. Small functions and methods are easier to write, understand, test, and reuse. I think that the first point is the most interesting. It is difficult to get requirements right and reducing the size of projects by breaking them up reduces risks involved with poor understanding of requirements. To use web applications as an example, by implementing a minimal system that still provides useful functionality, we learn early on what are the most important requirements. We also keep team size small - more efficiency and less risk. We also get something useful to users developed faster. I think that ego is the negative force that fights against the goodness of small and focused projects. At the customer level, they often want all of their ideas implemented sooner rather than later instead of setting priorities. At the developer l...
OS X Leopard
- Get link
- X
- Other Apps
I have 4 computers (1 laptop and 3 desktops) packed away - I now do everything on one fully loaded MacBook: for medical reasons(*), I either need to have my legs elevated or be walking - sitting at a desk for more than a few minutes is not a good idea. Fortunately, I can still hike for up to 3 or 4 hours at a time :-) Anyway, having everything in one laptop works best for me. Anyway, since the work and research part of my life is bound up with one nicely configured laptop, I was hesitant to change anything, but after burning 4 backup DVD-Rs and cloning my laptop's disk drive to an external disk, I did a fresh install last night and restored my user files from the cloned disk. It took a few hours to get all the tools working that I use (and I am probably still not there yet), but the time was well spent. I think the Time Machine idea is awesome - you really need to try it to appreciate it. I plan on alternating between two external disks, keeping one at a friends house for off site...
ZFS: disuptive technology?
- Get link
- X
- Other Apps
Many years ago I thought that CORBA was a disruptive technology that would change the world for distributed systems. I sort-of guessed wrong - in retrospect I explain my poor prediction on the relatively high cost of early CORBA software. CORBA became 'free' too late. I also think that ZFS (a new "file system" - yet so much more than a file system) also could be a disruptive technology that changes the world for storing and retrieving information, supporting: multiple levels of data protection, a transactional model for committing changes, on the fly expandability, etc. As open source software, wide and free availability is not a problem with ZFS, or at least should not be when ZFS is available for OpenBSD, FreeBSD, Linux, OS X, etc. That said, I think that ZFS is more of a platform than a 'file system'. That is, I think that developers with specific data storage and retrieval problems (e.g., large scale graphs, databases, permanent record archival, etc.) will...
NetBeans 6.0 beta 2 is released
- Get link
- X
- Other Apps
I have been using the Ruby and Ruby on Rails specific NetBeans 6.0 beta 1 for about 2 hours a day for Rails development. Beta 2 (just released today) has good improvements for code completion, popup documentation, and general RHTML editing. Good stuff! I have blogged about this before: I am tired of using so many different programming languages (Common Lisp, Java, Ruby, Python, C++, Prolog, etc.) on customer projects. I am starting up a new (non-consulting) business so I am reducing the amount of consulting work I will accept. I would like to just do Ruby and Ruby on Rails development - turning down other work unless it is very interesting. Algorithm development and solving people's problems - that is the fun stuff, not keeping current with a half dozen programming languages and dozens of frameworks.
Ruby debuggers
- Get link
- X
- Other Apps
Although I do not actively use Smalltalk, I check the Smalltalk blog feeds several times a week because Smalltalkers are often into interesting things. James has been talking about Smalltalk debuggers a lot recently. While the state of Ruby debuggers is no where near those found in Squeak or VisualWorks Smalltalks, debugging controllers in Ruby on Rails web applications is fairly slick: in development mode code and RHTML templates are dynamically reloaded (CSS style sheets are not, but that is OK). The NetBeans Ruby environment with the "fast debugger" installed is pretty good. That said, I feel that Ruby has some big advantages over Smalltalk for some types of applications, so it is really a personal decision based on what development and deployment requirements are. Using a debugger to step through how Rails controllers are called is also pretty interesting, if not educational.
Netbeans IDE 6.0 Beta 1: (J)Ruby and Rails support is looking good; mixed experience with IntelliJ 7.0 + Ruby plugin
- Get link
- X
- Other Apps
I did have an installation problem: I have every possible version of Java installed on my MacBook so I had to manually edit /Applications/NetBeans/NetBeans 6.0 Beta 1.app/Contents/MacOS/netbeans to explicitly set jdkhome to my 1.5.0 directory. Hopefully most people will not have that problem. I found it most convenient to have local JRuby and Ruby installations in my home directory and use those so the NetBeans GEM tools had write access. I still find using TextMate to be more convenient for development, but code completion and browsing features may win me over in the long run. I have a 30 day IntelliJ 7 trial and installed the first Ruby plugin for version 7. I ran into errors running the generate script and could not create a Rails project from an existing Rails application directory. I would bet that these problems will be fixed quickly, so I will give version 7 another try before my trial license expires. (I am trying to decide whether to upgrade to version 7 and Ruby support will...
"100% Rails all the way, baby!"
- Get link
- X
- Other Apps
A few years ago my wife and I each spent about a week working on a healthy recipes web portal . I have been promising myself that some day I would set aside a large block of time and make a "social network" style cooking web portal, and recently decided to just do it. I am finishing off my existing large consulting tasks, and for about 6 months plan on spending most of my time developing CookingSpace . Currently I just have a Rails place-holder at CookingSpace.us and since Carol and I are planning a lot of travel in the next few months, I will probably not have a full prototype in place until early next year. I had been planning on using Java, JSPs, struts 2, and Hibernate Search - but decided to go with Ruby on Rails. I made this decision partly because I have been doing a lot more Ruby work than Java work in the last 18 months, and partly because I have learned some new Rails architecture tricks, and wanted to use them. In any case, Carol and I want to create a healthy coo...
It is important to check web sites and web applications for usability by readers with disabilities
- Get link
- X
- Other Apps
I have blogged about this before but it is an important issue: some web sites use some technologies that might not work well with screen readers for people with impaired vision or are blind. I just ran through my own web sites to make sure that they are usable with the text-only lynx web browser and they worked OK - if anyone needing assistive technologies has problems with my sites then please let me know.
Wow: what a difference caching makes!
- Get link
- X
- Other Apps
I just spent a day adding MemCached to a customer's web application. Incredible what a difference it makes! The great thing about MemCached is that many client libraries are available and caching works with handling user sessions, web page fragments, some web service calls, etc. Depending a lot on the application, MemCached can take a load off of database servers, back end web services, etc. I was also pleasantly surprised by how simple it was to implement (after carefully analyzing the web application itself - gaining an understanding of what should be cached is the tricky part). Good stuff! I don't think that I will ever deploy a web application again without analyzing it for MemCached use.
Joost: Internet TV done the right way
- Get link
- X
- Other Apps
I have blogged about Joost a few times before, but the system now works even better than before: better looking video, very few pauses in video stream, and more interesting material. One thing about Joost: the commercials are short and unobtrusive. I actually wish that they would include more commercials to ensure that as a company they stay in business. Good stuff! I think that ABC also does Internet video very well (on my MacBook, they is a one time Java plugin installation). However, I like the more "Indy" style material on Joost. I also prefer Joost's technical approach of using a "rich client": not everything has to happen in a web browser. That said, I would hope that all major networks follow ABC's lead.
More fun with JRuby: using the PowerLoom reasoning system
- Get link
- X
- Other Apps
Good PDF book: "Ferret" by David Balmain
- Get link
- X
- Other Apps
Slashdot had a discussion yesterday on indexing and searching documents - a subject of particular interest to me. After reading the comments, I revisited the indexing and search tools that I have used over the years: Ferret (a Lucene clone) is my favorite library for several reasons: it uses the Lucene API (which I have used for years), it is very fast, and coding in Ruby is faster for me than Java (Lucene) or Common Lisp (Montezuma). I bought Dave's book on Ferret yesterday, and it is a good reference with lots of good examples. I have a "semi alive" open source project (KBSPortal) written in Java, uses Lucene and my own clustering and analysis libraries. I have been mulling over switching to Ruby and Ruby on Rails because it would be easier developing the web interface, I like to code in Ruby more than Java, and there are some very nice text analysis Ruby Gems that I could use in place of some of my own Java analysis code (in the spirit of building on other people...
Plain text and other simple document types
- Get link
- X
- Other Apps
I limit work to about half time so it is especially important for me to make my work processes as efficient as possible (I also spend about 10 hours a week researching and playing with new technology, but that is generally an unpaid for pleasure, driven by my own interests, not my customers'). Almost everything I deal with is plain text: Ruby, Lisp, Java code, detailed work log notes, design notes, etc. For information that I need to record just for myself, I get no benefit from styled text formatting. For other people I work with or want to communicate with, Latex does the job of generating great looking documents. The Pier content management and Wiki system looks very interesting to me because it supports Latex output. That said, I am finding Google Docs to be a good alternative to Latex for very small documents. Anything to save time. Pier is open source and deployment using Squeak looks simple . (I have written here before about easy deployment of Squeak web applications.)
I am loving Amazon's new MP3 musc store
- Get link
- X
- Other Apps
I am finding very low prices on some music when buying entire albums. A few caveats: For Mac users: buy music using Safari and not Firefox or Camino Downloading is a one shot deal: Amazon encourages you to immediately make an archival copy of purchased music The album down loader is nicely integrated with iTunes - I hope that Apple does not try to break this convenient integration. In addition to saving money, this is a huge time saver for me: when I buy music from the iTunes store I always make an archival copy by burning an audio CD, then using Tunes to rip to MP3s, then add the MP3s to my permanent backups - this was a time consuming process.
"Why would you use Ruby when you could use Smalltalk???"
- Get link
- X
- Other Apps
Patrick Logan poses the reasonable question "Why would you use Ruby when you could use Smalltalk???" Looking at things from a development rather than a deployment perspective, I would have a difficult time arguing with Patrick. Squeak provides a good open source platform, many libraries and third party projects, easy headless deployment of Seaside web applications, etc. Commercial Cincom VisualWorks adds the ability to create small executables, great web services libraries, good support for commercial licensing, etc. Ruby on the other hand also has a lot going for it: many instant install gem libraries, easy installation of Ruby itself, Rails is a nice web app framework, and the best of all: Ruby is already installed on most servers (and is easy to install otherwise) and deployment of Ruby applications and utility scripts is simple. Also JRuby is a very interesting technology for those of us who need to work in "Java land". One other big win, Ruby-wise, for me is t...
Iranian President Mahmoud Ahmadinejad is not crazy, but his speech irritated me today
- Get link
- X
- Other Apps
The problem that I have with Iran is not that I view them as a threat to my country (USA) or the Middle East: it is that Iran is the second most despised government in the world (behind #1 Israel, and slightly ahead of #3 North Korea in just about every international opinion poll). I would expect a more conciliatory approach from a leader of a widely despised government (internal human rights, suppression of free speech, an economy that is so bad that their educated population leaves in great numbers, etc.) I don't think that any rational person really views Iran as a real security threat (although Iran is a convenient political issue in my country), but I have real problems with their internal (to Iran) behavior. Re: nuclear power technology in Iran: as long as they continue to be a member in the IAEA and allow inspections, that is good enough for me, but I understand the arguments of other people who don't feel comfortable with this. Unfortunately, incompetent foreign policy ...
Interesting article on graph/lattice theory leads me to a good looking library
- Get link
- X
- Other Apps
After reading Mark Chu-Carroll's extremely interesting article on using lattices for representing information, I started a hunt for good graph representation and analysis libraries. I looked for Lisp, Ruby, and Java libraries, and found a great looking library written in Ruby (gratr) . One caveat: I spent 30 minutes enjoying reading through the library source code, but otherwise I have just experimented with the tests and examples. Thanks to Shawn Patrick Garbett, Luke Kanies and Horst Duchene. I often find interesting/useful software this way: I get excited reading a good technical paper or blog, and then go and look for relevant software tools.
Glassfish v2: Update Center and port 4848 Web Admin are cool, but...
- Get link
- X
- Other Apps
Although I have been paid to work on both the Enhydra Enterprise Java application server and on the JBoss based Jaffa framework, I must admit that Tomcat has always been my favorite platform: lean, and add just what I need. As a result of my 'build up just what I need' preferences, I just got around to experimenting with Glassfish. The Update Center is great, and as more instant install frameworks and applications become available, this will be a time saver. The web admin tool is refined - no complaints there. I do have one complaint about the 200 MB resident memory footprint. A lot of what I do involves deploying to low cost servers, often semi-managed VPS systems. Smaller memory use is cheaper, but for most large server deployments, an extra 100 MB makes no difference. I thought that it was very cool that one of the available instant install components is JRuby with the most excellent Goldspike. I have written before in this blog about the ease of running Rails web apps with ...
Programming languages: advantages of both specialization and being a generalist
- Get link
- X
- Other Apps
In the 1970s, I very much enjoyed working through Jean Sammet's classic book "PROGRAMMING LANGUAGES: History and Fundamentals". For one thing, it was my first real exposure to Lisp, and it was fun learning many new languages at once. At one point I had over a dozen programming languages on my resume (due to needing to use some one-off languages for military hardware, and several different assembler languages). Generalization is good because the more experience with different languages, libraries, frameworks, and development styles that you have, then the easier it is to choose a good technology to solve new problems. I would argue that broad experience is at least a little better than narrow but deep experience. Unfortunately there is another side to this issue: whenever I see really great design and code, it almost always seems to be written by someone who deeply specializes in one, or perhaps two, programming languages. In the last few years, due to customer requiremen...
Great combination: nginx, Mongrel, and Rails for secure HTTPS
- Get link
- X
- Other Apps
I had to set up a customer's Rails application to run using SSL+HTTPS this morning. Based on a few positive web blog articles I decided to try Igor Sysoev's nginx web server . If you first build and install OpenSSL and the Perl regular expression library, then build nginx with --with-http_ssl_module --with-openssl=/OPENSSL_SOURCE_DIR --with-pcre=/PCRE_SOURCE_DIR you should be all set to use HTTPS. Clustering mongrel is also simple; I used this nginx.conf file from Brainspl.at as an example and I was set up and running very quickly. Good stuff!
JRuby and Jython: a one way street?
- Get link
- X
- Other Apps
This is just personal experience: JRuby and Jython are great when you want to use existing Java libraries and utilities from inside Ruby and Python programs. (Warning: Jython does not implement all of Python: many of my Python programs that use list comprehensions, generators, etc. simply do not work yet.) However, I am skeptical of the utility of doing the reverse: using modules of Ruby or Python code inside large Java applications. I would like to hear about examples of this that don't just use Ruby or Python as embedded scripting languages. BTW, since I usually prefer using the native C versions of Ruby and Python, I set up my bash environment to create aliases for running the JRuby and Jython command line tools: ## for Jython and JRuby without messing up PATH and native Ruby and Python: alias jython=/Users/mark/bin/jython2.2/jython alias jruby=/Users/mark/bin/jruby-1.0/bin/jruby alias jirb=/Users/mark/bin/jruby-1.0/bin/jirb alias jgem=/Users/mark/bin/jruby-1.0/bin/gem exp...
1. Shameful behavior: ruining our grandchildren's lives because of our generation's greed 2. a story about my Grandmother
- Get link
- X
- Other Apps
This is shameful behavior: the Federal Reserve (privately owned, not part of the US government) dropping interest rates to bail out stock market investors who have made bad investments, Bush's running up the deficit to line the pockets of his cronies, and now the US Congress talking about bailing out stupid homeowners who have acquired bad mortgages and spend stupidly beyond their means. Selfish, stupid behavior that will ruin the lives of so many in future generations. Past generations were made of better stuff. My Dad sent me an email today with a story that his Mother told him about the death of her father because he was trying to save the financial future of his family: My Mother told me this story when I was a small child. This was very personal for her, and I remember the emotion in her voice as she related it. My Mother was born in 1886 on a farm in Illinois. Several photographs have survived of this time. She, with her parents and two smaller brothers, lived in a large,...
The New York Times 'gets it'
- Get link
- X
- Other Apps
Oh, the pleasures in life: The New York Times now allows free access to almost all of their material. I used to spend lots of time reading the NYT online, and now that they have re-opened up their material (opinions, etc.) they are back on my very short Bookmarks menu (I use del.icio.us to manage most bookmarks: here are my personal del.icio.us bookmarks ). The NYT has clearly made the decision to go for more readers, and hope that advertising revenue makes up for subscription fees. In a small way, I do the same thing: after writing 14 published books, I put almost all of my writing effort into material that I simply give away for free - not totally altruistic: I earn my living as a consultant and having more people visit my site probably helps my bottom line about as much as book royalties. While I understand that people working for companies like SAP or Microsoft might have a different viewpoint than mine because of where they see their personal revenue stream coming from, I believe...
Chris Petrilli's second brain
- Get link
- X
- Other Apps
I always enjoy Petrilli's blog entries (both technical and political), and his discussion today on augmenting our brain's memory capacity with indexed and cross referenced programming manuals, PDF books, etc. seems right on. I have been more frequently buying PDF books: not as nice to read, but in the future it is great to have indexed and online. Because I mostly use a MacBook with open connections to my customers' servers for most of my work, my MacBook is the home for my "second brain". I have experimented with doing my own indexing and document clustering (naive O(N^2), hierarchical, and k-means), using Spotlight, and using Google Desktop for the Mac. I have settled on using Spotlight, but using the text, HTML, and PDF's in my "second brain" for my own research programming for IR, etc.
Classic "slip of the tongue"
- Get link
- X
- Other Apps
My wife and I were just watching CNN and the host was apparently interviewing a security expert who was giving what I thought was an amazingly one-sided take on the private military company Blackwater's recent bad publicity in Iraq. After sounding like an advertisement for how great Blackwater is she had a "slip of the tongue": when asked what some of the services Blackwater provides in Iraq she said " we protect ...". Notice the use of the word "we" . It looks to me like CNN may have been interviewing a Blackwater employee without divulging that bit of information to viewers.
IBM's support for OpenOffice.org is important
- Get link
- X
- Other Apps
Microsoft Office is one of the principle reasons why so many businesses feel like they are locked into using Microsoft Windows. While I support the rights of Microsoft as a business to try to lock people, companies, and governments into using their proprietary data formats, and thus their software, it is also the rights of people, companies, and governments to fight back for their own best interests. Proprietary data formats are a losing proposition for users. The lack of assistive technologies for people with disabilities has been a sticking point for wider adoption of OpenOffice.org - IBM's donation of the time of 35 engineers to work on assistive technologies is a large contribution to both open source and the infrastructure that so many of us build our businesses on.
Good book: "Programming Collective Intelligence"
- Get link
- X
- Other Apps
This book is a great introduction to the techniques that I use almost daily in my own personal research and work for customers, and I can recommend it without reservation. The choice of Python for the examples is not optimum for me, but OK, especially because the techniques in the book for machine learning, categorization, clustering, filtering, optimization, support vector machines, etc. are mostly short and can be used as is or converted to whatever programming language that you need to use. The data used to present the book material is mostly from collaborative web sites. The book relies heavily on existing Python libraries and I like this approach since it mirrors rational software development practice: build custom code on top of existing libraries and software tools. Good book!
Gambit-C Scheme 4.0 final released today
- Get link
- X
- Other Apps
Gambit-C Scheme 4.0 is now available with pre-built binaries (or build from source code). Mac OS X and Windows versions are available with the OS X compiler generating fat universal, PowerPC, or Intel code. When I use Scheme, I use MzScheme/DrScheme slightly more often than Gambit-C Scheme because of the existence of more 3rd party libraries, but Gambit-C Scheme compiles faster applications and the Snowfort library site now has many canned libraries for Scheme development. Good stuff!
Erlang 'mindshare'
- Get link
- X
- Other Apps
I bought Joe Armstrong's new Erlang book as a beta PDF early this year and have been enjoying the material (the book is now in print). Erlang definitely has a lot of hacker mindshare but I have been unable to convince my customers to use it (so far). This may be a generalization, but those of us who love to program in Prolog are very likely to also enjoy working with Erlang. Erlang is certainly a great tool but I think it is unlikely to be very popular for two reasons: it does not provide instant gratification like Ruby on Rails and there is no large company promoting it (e.g., like Sun, IBM, etc. promote Java). That said, Erlang has a great open source community behind it and learning Erlang is very worthwhile if you occasionally need scalable applications. A comparison with Java is interesting: Java (especially with the new concurrency support in JDK 6) scales well on single servers with large numbers of cores while Erlang probably has the advantage when scaling to multiple ser...
Franz Allegro Common Lisp 8.1 has been released
- Get link
- X
- Other Apps
I just received the 8.1 update from Franz yesterday afternoon, and there are several nice changes/updates, including: New versions of read-line that do much less consing Improved jLinker Java bridge Improvements to Common Graphics (I don't have a license for this so I could not try it) AllegroGraph Free Lisp Edition: limited to 50 million RDF triples - I had asked for this and I think that it is a good idea to let people experiment for free with small Semantic Web applications. The full 64 bit version of AllegroGraph is designed for very large stores of relatively static data (almost everything in an AllegroGraph triple store is indexed by default for fast lookups, so inserts and modifications are more expensive computationally).
"Getting Stuff Done" GMail FireFox plugin
- Get link
- X
- Other Apps
The GTDInbox FireFox plugin is very cool! I use GMail, Google Calendar, and Google Documents in my work flow, but one thing that I was missing was a good way to schedule fine grain work tasks as active actions, as something to look at in the future, completed actions, etc. Basically, a light weight Getting Things Done(tm) system. I have just started to use GTDInbox to set up work tasks and track them. Tracked tasks show up as short text only GMails sent to yourself and as you would expect you can search on them, list in order, etc. I like GTDInbox because it basically stays out of my way until I need it, and if I have GMail open I can review tasks quickly. I like organizational tools that don't themselves take up a lot of my time. This is a good writeup on using Emacs to organize work flow - good advice and information but I now only use Emacs for a few ours a day (just Common Lisp development, with some Ruby). In the late 1980s and 1990s I "lived" in Emacs all day long...