Entries Tagged 'Cool News, Links & Reviews' ↓
April 19th, 2007 — Cool News, Links & Reviews
I recently had lunch with Lutz Mueller, creator and author of the programming language newLISP.
I’ve never used Lisp, but I’ve always had a fascination with the “AI” languages. There’s something magical about a language designed to solve ridiculously difficult problems.
In the same vein, there’s something magical about an individual who writes a programming language on his own. So someone who writes an AI language on his own ranks pretty high on the list of intelligent people I’ve met.
Like a renaissance man, Lutz’s experience runs far and wide: he has a PhD in Psychology, a background in statistics, and spent many nights programming punch cards (and many nights working for an internet startup). He’s now the one-man show behind the open source scripting version of Lisp called newLISP.
Rob: Give us some background on newLISP. How long has it been around, how has it evolved, etc…
Lutz: newLISP started on SunBSD in the early 90’s, then moved to Windows 3.0/1 as a 16-bit application, then to Windows 95/98 as a 32-bit program. During all that time newLISP was more like a hobby for me. Around 1999/2000 I made it Open-Source under the GPL license on Linux. At the end of 2002 I started working on newLISP full time and a community of users has been growing quickly since then. In 2005 it was adopted for the first time by an internet startup as the only development language for a large scale (~100 CPU’s) distributed application running a specialized (sentence) search engine.
Rob: How is newLISP different from LISP?
Lutz: newLISP is a scripting language very much in the culture of Perl or Python; quick to learn and to get the job done. newLISP takes its core elements from LISP, such as lists and lambda expressions, and adds name-spaces and implicit indexing.
The style of programming has changed dramatically during the 90s and the internet age. Programming is more casual, interactive, and performed by different people than before the internet and personal computer, and is now used for different sorts of applications. Scripting languages have made access to programming easier for people with no previous programming experience and has greatly increased speed of development for professionals.
Rob: What inspired you to create newLISP?
Lutz: I was always intrigued by LISP but found that the current standards of Common LISP and Scheme were behind modern times in their approach to programming, and too overloaded with academic concepts to be useful for solving real world problems. I wanted to create a LISP with a scripting feel, like Perl or Python, but still a LISP.
Rob: Creating your own language seems like a massive undertaking. How is writing a language different from other software development you’ve done?
Lutz: What you are creating has the potential to be used by many different people with different backgrounds, motivations, and on different applications. Making a language has as much to do with Psychology as it has with Software Engineering. It is very important to listen to users and to know many other programming languages: from machine assembly language to high level languages like SQL.
The core of a well designed programming language should be small. The bulk of the newLISP code consists of the newLISP API functions that are, internally, relatively independent from each other. But looking from the outside, from an API-level, those functions have to work together and should paint a cohesive picture of the language.
Designing and writing the software is only about 25% of the entire project. The rest is QA (Quality Assurance), documentation, and contact with the community of users via support and exchanging newLISP code and ideas. The way a programming language is used differs very much from person to person and from application to application.
Rob: Are you the sole developer on the project?
Lutz: For the core of the language I am the only developer, but many bits and pieces in the project come from other projects and programmers, as is typical for many Open-Source projects. I especially depend on help on the documentation side since I am not a native English speaker.
Rob: Most of my readers are enterprise developers using .NET, Java, or PHP. Why would an enterprise developer want to learn newLISP?
Lutz: Many people like the functional style of programming, but they feel that Common LISP and Scheme do not offer the API they have come to expect from .NET, Java, or PHP. Things like regular expressions, network functions and support for popular protocols like XML or HTTP are all built in to newLISP without the need of external libraries.
Many types of problems, i.e. complex statistical analytics, modeling and simulation are much easier to design and implement in a functional programming style using readily available functions in newLISP. This also includes financial functions and Bayesian modeling implemented on a high level.
newLISP has a documentation facility similar to JavaDoc, which makes it easier to use in an enterprise setting. It also allows splitting large programs into independent modules. But using newLISP is not an all-or-nothing decision, it can live and cooperate well with other languages in a project.
Rob: How does newLISP compare to Python in terms of AI programming?
Lutz: newLISP has better functional abstraction and symbol handling and is more flexible in modeling. The same list syntax for program and data makes it easier to write programs which generate or modify other programs. newLISP has built-in support for distributed applications.
For example, you can use the same function to read/write from/to the local disk or over the network, or the same functions to load program code locally or remotely. A built in function called net-eval exists to distribute processing to many remote nodes in one function call.
Rob: I’ve never used LISP or newLISP. If I want to learn newLISP, where should I begin?
Lutz: On http://newlisp.org you will find introductions created by professional writers and a few small tutorial movies. The newLISP manual and reference is full of examples and there is a ‘Code Patterns’ document describing common solutions for common problems. Traditional books on Common LISP or Scheme are not recommended for learning newLISP, because they emphasize a style of programming not suited for newLISP.
Here are some pointers to pages on the newlisp.org site:
For introductory and reference documentation:
http://newlisp.org/index.cgi?Documentation
Short code snippets:
http://newlisp.org/index.cgi?Tips_and_Tricks
User contributed short examples:
http://newlisp.org/index.cgi?Code_Contributions
Support and community:
http://www.alh.net/newlisp/phpbb/
A blog about newLISP:
http://newlisper.blogspot.com/
The last link also contains links to other newLISP related sites.
Rob: Have you seen the Netflix contest (www.netflixprize.com)? Is newLISP up to the challenge?
Lutz: I believe this is a typical problem that can be solved with newLISP, but I don’t have the time and do not quite agree with their terms. Perhaps someone else will take on the challenge using newLISP, it would be the best tool for this contest
Rob: Thanks for your time, Lutz.
Lutz: Thanks for talking with me.
April 17th, 2007 — Cool News, Links & Reviews, Software Development
Dice just released their local job market reports for Q4 2006 for twenty U.S. metro areas. Some highlights:
Baltimore, MD
“We see a need for project managers, senior quality assurance/testers, web developers, and software engineers. Help desk and desktop support work is also starting to come on strong.”
Boston, MA
“…in-demand job titles: business analysts, project managers, developers (JAVA and .net), systems administrators (UNIX, Windows, DBA), systems engineers, network engineers, IT security personnel, and storage consultants.”
Chicago, IL
“[most in-demand are] project managers, developers, network engineers/administrators, SAP, QA, and programmers specializing in .NET, SQL, JAVA, J2EE, and C++.”
Denver, CO
“…the most requested skill sets are .NET developers and Oracle/SQL server DBAs.”
Detroit, MI
“…the most in-demand positions include all levels of consulting and project management, SAP, Oracle, system analysts, and network administrators.”
Hartford, CT
“Who is most in demand? .NET web developers, application developers, business managers, and project managers…”
Los Angeles, CA
“What’s hottest right now? According to MacKinnon, it’s project management and business analyst positions.” (Although my experience is that experienced .NET developers are in huge demand in L.A.)
Silicon Valley, CA
“…heaviest demand for: .NET developers, software developers, business analysts, project managers, QA experts, desktop support experts, data warehousing experts, and interface developers.”
March 12th, 2007 — Cool News, Links & Reviews
From the Numenta website:
“The first release of the Numenta Platform for Intelligent Computing (NuPIC) is a research release targeted at sophisticated developers for the purpose of education and experimentation. NuPIC implements a hierarchical temporal memory system (HTM) patterned after the human neocortex. We expect NuPIC to be used on problems that, generally speaking, involve identifying patterns in complex data. The ultimate applications likely will include vision systems, robotics, data mining and analysis, and failure analysis and prediction.
Numenta is committed to creating and supporting an open, collaborative community of companies and individuals interested in working on HTM systems. Concurrent with the Numenta Platform release, Numenta also has launched developer community tools and training materials.”
This is going to be big.
February 13th, 2007 — Cool News, Links & Reviews, Software Development
I have a friend who works for BearingPoint (formerly KPMG Consulting), and she wrote to tell me about her firm’s newest Global Development Center (which are basically off-shore, low cost software development offices). They currently have centers in India and China, and their next destination is…Mississippi. That’s right, a Global Development Center in Hattiesburg, Mississippi.
It turns out Mississippi has a low cost of living (thus low wages) and satisfies the need for clients like the federal government that require work be done in the U.S.
From a financial perspective (though some might call it greed) this seems like a logical trend for some businesses to follow, and similar to one call centers travelled in the 1980s before the internet made “around the world” into “down the block.” But as a fellow developer I’m curious to hear your thoughts on the following questions:
- Is it a good thing that development work is moving to low-cost areas, but staying within the U.S.?
- Is this a savvy business move made to keep a company competitive, or a devious, greedy move made to take advantage of developers and pocket fistfuls of cash?
- Would you be interested in moving to a low cost area of the U.S. (read: the middle of nowhere) and working for less money, but having a better quality of life with no traffic and cheap housing?
January 30th, 2007 — About this Blog, Cool News, Links & Reviews, Software Development
A few months ago I wrote an article for Work.com titled Choosing a Company to Build Your Software. Work.com is geared towards non-technical small business owners, so the article is less technical than my typical fare, but soon after I published it I received a request from the folks at Work.com for an article on the ins and outs of open source software from a small business owner’s perspective (Should they use it? What applications are best? What are the pros and cons?)
I haven’t had time to write it, so consider this an open call to any SbR reader who wants to show off their knowledge of open source software. Gain credibility! Win Friends! Influence people! Visit Work.com for more details on writing a guide.
If you drop me a line once it’s complete I’ll link to it.
January 17th, 2007 — About this Blog, Cool News, Links & Reviews
I’ve been talking with a small, profitable company located in the SOMA district of SF and they are looking for an exceptional Senior .NET Developer / Architect who will create the technical vision for their company. And they satisfy almost all of Rob’s Criteria for Keeping Your Developer’s Happy.
Here is an excerpt from the job description:
What the Company Does
We create and maintain a handful of web applications which run 24/7/365 serving customers in 30+ countries. Our flagship product, a web-based timesheet, is one of the oldest hosted web applications.
Why You Want to Work Here
You’ll have the chance to work directly with senior management, influence company strategy (i.e. not just be a slave to sales/marketing/product management), and be able to go out on a limb to try new architectures/technologies. The discussions are lively and we’re passionate about doing good work. Your decisions will affect the performance, usability, and feature set enjoyed by thousands of customers every day.
We offer a full compensation package including paid vacation, health benefits, 401(k), profit sharing, transit subsidy, and personal cell phone & broadband reimbursement. Plus, we offer the chance to work closely with an incredibly dedicated and talented group of people who are serious about delivering great products.
What We Want
We’re seeking a talented .NET developer to design and direct the implementation of our software. The right candidate will be able to weigh business decisions against technical ones and will determine product-definitions and feature sets in conjunction with the rest of the team. This position is about half architecture/design and half actual coding, with some managerial duties, and will strongly influence our engineering process and culture
Requirements
- 5+ years of web application development, including high-volume transactional applications
- 2+ years of .NET-specific development, including ASP.NET, and Web Services (real experience with .NET 2.0 is a big plus)
- 2+ years of MS SQL Server experience, great SQL skills
- Some experience with legacy ASP (VBScript)
- Bachelors Degree or equivalent desired
- Must be able to work for any employer in the US
Apply
If you’re interested, drop me a line at jobs@thenumagroup.com. Include your resume and “SOMA-SBR” in the subject.
December 29th, 2006 — Cool News, Links & Reviews
I’ll give a free Fast Company magazine subscription to the first person who posts a comment containing the estimated number of software developers in the world and an approximate breakdown of programming language usage (must include a link to sources from 2005 or later).
Include your URL in the comment or send me a separate email at rob(at)softwarebyrob(dot)com to collect your subscription.
December 23rd, 2006 — Cool News, Links & Reviews
Here is an awesome song about a guy who writes code. He even has a “boring manager Rob.” (It’s like he knows me?!)
The artist, Jonathan Coulton, writes a song a week that he releases under Creative Commons. His music is funded strictly by donations, which he’s doing to find out if this kind of business model can succeed.
A quote from Jonathan:
“I give away music because I want to make music, and I can’t make music unless I make money, and I won’t make any money unless I get heard, and I won’t get heard unless I give away music…I believe it can work, but we all need to adjust our thinking about the relationship between artists and fans - the RIAA thinks that music listeners are criminals and that music should be locked up and protected. I disagree. I think there are times when free music and file sharing can greatly benefit an artist. Believe me, I spent many years making music and not sharing it with anyone, and that didn’t get me anywhere.”
This one’s for all you coders out there.
December 20th, 2006 — Cool News, Links & Reviews
I’ve been researching web-based whiteboarding tools to help facilitate remote design discussions, and I’ve found three free tools that are outstanding.
- Thinkature is my #1 pick for software-specific whiteboarding, because it’s geared more towards creating diagrams than drawing. For example, it’s super easy to create boxes (just double-click), and populate them with text (double click inside the box). Linking two boxes is also straightforward, and the freehand drawing is decent. It also includes a built-in chat feature and voice chat, neither of which I tested. Note: at the time of this writing the freehand drawing is broken in IE7. I emailed support this morning and they already emailed back indicating they will look into it. Good support for a free service!
- Vyew is my second choice. The UI is cooler than Thinkature, but I found it a little more daunting right off the bat, as it took me a few minutes to work through all the features. Although its freehand drawing capability is better than Thinkature, it’s more cumbersome to create boxes with text inside, which is at least 70% of what I do on a whiteboard when I’m talking about software. Vyew also includes a free voice conference line (though it’s not an 800 number), and standard text-chat. All in all it’s a solid service for the price (free).
- Imagination Cubed is an honorable mention based on its super clean UI that works exactly like you’d expect. More for simple drawing than diagramming, it has limited shape support, no chat, and no ability to delete drawn items. Although it lacks advanced features, it does what it does while looking cool.
November 30th, 2006 — Cool News, Links & Reviews, Software Development
Chris Mullins, Chief Software Architect for Coversant in Sacramento, presented this slide deck on Writing Shrinkwrapped Software to the Sacramento .NET User Group in August.
It’s filled with tips, advice and knowledge on writing shrinkwrapped software. Although it contains some .NET-specific content, the bulk of the message is language agnostic.