I'm working on a program that requires I convert degrees of longitude into miles. Since we are mapping radians on to the sphere (mostly) that is Earth, I needed to do some trigonometric calculations. Upon whipping out some paper and pencil and drawing the triangles I needed I realized had to remember which function to use. Is it Sine, Cosine, or Tangent? Hypotenuse over Adjacent? Adjacent over...
on Mar 1, 2006
Somebody at MIT was nice enough to make available the videos for lectures on Structure and Interpretation of Computer Programs, by Abelson and Sussman.
It's a refresher in just how powerful Lisp is. For a language approaching 50 years old, it's pretty amazing.
I always crack up a little when I think about the reasons Lisp and Smalltalk couldn't go "mainstream" - why, they use too many...
on Feb 15, 2006
O'Reilly has introduced a new service called "Rough Cuts" that gives pre-publication access to books as they are being written.
It's an opportunity for early adopters to use the material and offer feedback to the author and editor.
The books are priced reasonably for online access, with an option to purchase the print version when it is released.
Of the initial four titles, "Ajax Hacks: Rough...
on Jan 24, 2006
*started this as a comment in response to Dependency hell*
-- the fact that I know I could do the same project two years back with Struts and a handful of Commons libraries.
-- the fact that a newbie to Java will recoil with horror at the number of concepts he has to learn to do anything meaningful. Where would you start a newbie on a project like this? (Don't tell me that you won't hire a...
on Jan 18, 2006
I started work on an existing project at my day job today and the first thing that I had to do was to download all the dependencies for the project. Here is a snapshot of the dependencies folder after I had checked it out of CVS:
Wow! That's 21 dependencies in that folder. Twenty-One! Actually, it should be more because Jakarta-Commons contains many separate libraries, which in this case is 14...
on Jan 17, 2006
First of all, I have to admit that teaching in college was not the pleasant experience I expected it to be. I love teaching. But I found most students had no interest in what I was trying to teach them. I know I am not a bad teacher, because when I do training I receive a good feedback from my customers. And I am proud a handful of my students actually became respected software developers and...
on Jan 5, 2006
There are tons of books and articles about how to design and write good Java code, but surprisingly little about the specific topic of API design. On my artima.com blog I wrote a summary of what I've learnt on the subject from various sources and my own experience. This has been the single most comment-provoking blog entry I've ever written, which is either because it's a subject that people...
on Dec 30, 2005
As you might know, my colleagues and I had tried to perform a round of offline Java programming contest back in November (you can read more about this here).
Due to a number of reasons, we had no winners that time, however, all participants got some encouraging gifts :-)
We had decided to go with another round of the contest. It should start any day now. Please keep watching...
on Dec 9, 2005
A long long time ago in a blog far far away I wrote about JDK collections and how should you choose your data structures. This topic has been on my mind during the past year, and I still haven't reached a definitive conclusion.
First, I should mention that i have interviewed about 40 people this year for the technical positions in our project, which gave me an opportunity to see a large variety...
on Dec 4, 2005
On a daily basis, I work with two laptops. I have an Apple Powerbook 12" and a Sony Vaio PCG-GRX700P (yes, this is the model number, but Sony has so many of these models with different combinations of letters and numbers that it almost feels like a serial number :). I use the Powerbook for e-mail, browsing, etc. and the Sony for development. I have been using various flavors of Linux for over ten...
on Dec 2, 2005
I am attending an introductory talk to the Wikipedia project.
Wikipedia is an interesting social experiment. It proves
that even in a anarchist system, it is possible to create something
of substantial value.
I wonder if the same thing is possible with software. Is is possible to
develop software using an anarchist approach ? Can a project open up cvs commit
access to anyone on the Internet...
on Dec 1, 2005
(cross-posted on Married... with children)
I've been watching the hype surrounding domain-specific languages (DSLs) with skepticism. At first I thought, "Why would I learn some custom syntax when I could use good old Java and XML?" And then, gradually, I saw the light.
Dave Thomas was the catalyst behind my change of heart. Over dinner a few years ago, he patiently explained to me why the Ruby...
on Nov 16, 2005
This week I created a test suite for a project I am currently
working on and a coworker wanted to run the same tests but no matter
what we did defining the junit task in the Ant build script failed. The
script just reported:
taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask<br>cannot be found: junit/framework/Test<br>
even tough we added junit.jar...
on Nov 9, 2005
The Mylar plugin for Eclipse (available for versions 3.1 and 3.2M3 only) is, without doubt, one of the most innovative ways to change out interaction with IDEs.
Let's see a typical example of our daily work on Java project. You get a task, which can be an enhancement, new feature or bug fix. Typically, you have your project as a tree on the left-hand side, along with the list of all methods /...
on Nov 6, 2005
Holiday in Brazil, a good moment to taste crabs aperitifs on the sunny beach and to fix some old issues in the code of my Open Source projects. Some of these issues had revealed subtle gaps in our traditional programming - like the Web Application Security Vulnerabilities. Reviewing the code of Cejug-Classifieds, I noted the lack of control over Html Injection and I decided to dedicate my...
on Nov 2, 2005
Vickan's Goyal blog Make it easy about Bruce Tate's article started some debate about the advantages (and disadvantages) on programming languages being closer do English. I think booth have missed the point, and was typing a reply, but it became so big I decided to publish it on my own blog.
Natural language is imprecise, ambiguous, and its real meaning has to be inferred by the reader. Not all...
on Oct 21, 2005
I was wondering what your thoughts are on the available build tools for Java application development. The build tools that I'm aware of and have used are:
I feel that I have a good working knowledege of both of those tools, but I'm defintely not an expert in either as well. My experience with Ant has been pretty good, can't really complain too much. I think that most things that I...
on Oct 17, 2005
I was watching one of the Monday night NFL games that i have on tape. It was a Packers vs. Bears from three years ago. Bears had a lousy night with three interceptions (one returned for TD), three sacks on defense, fumbled kick return, missed onside kick and a variety of assorted mishaps. They lost 21-34 and went on to have a 4-12 season. One phrase by Madden got stuck with me (guess i missed it...
on Oct 14, 2005
Few months ago we started two very similar projects in my daylight job. Both projects were WebStart applications based on simple business rules with a lot data validation and a fancy GUI requirement - almost all Swing components were used to produce the visual aspect our client had requested. Those projects shared the same life-cycle, under the same management model but with different teams. A...
on Oct 8, 2005
You know I have a soft spot for the internationalization APIs. So, whenever I see or write something that might help you to internationalize your application, I like to pass it on. Yes, I wrote it, but don't hold that against the article...or me.
Want your app to be a hit in Japan, Germany, or even China? It all starts with an understanding of Locale. Read Understanding Locale in the Java...
on Sep 20, 2005