Web App with jQuery, CoffeeScript, Ajax, Web.py, and Heroku

Following up on my previous article, I create a super-simple example where a web page communicates with the server (written in Web.py) sending a JSON request object and receiving a JSON object as a response, which it uses to dynamically update the page. Afterwards, James Ward quickly loads the example into Heroku using their new Python support.  Read more...

Artima Developer Spotlight, May 21, 11:51pm

JavaOne 2011 - Day 1

The day one keynote convinced everyone that Java is moving forward. There are good things happening, good things on the horizon, and a few surprise changes-in-direction from Oracle.  Read more...

Artima Developer Spotlight, May 21, 11:51pm

A Test of Knowledge

What can you learn from testing? When you look beyond the red and the green, the fail and the pass, you can learn a lot more about the nature of the code and the nature of the problem domain. And there is a lot to learn — software development is called knowledge work for a reason.  Read more...

Artima Developer Spotlight, May 16, 11:29am

WebSockets: A Glimpse of the Future

In order for HTML5 to become the true user interface technology of the future, servers must be able to transparently push data to clients. People have been trying to do this for a long time, and WebSockets look like they will solve the problem once and for all.  Read more...

Artima Developer Spotlight, May 15, 11:29am

Static Typing, Guard Rails and Street Signs

My thoughts on the battle between dynamic languages and those with Turing complete type systems after attending StrangeLoop.  Read more...

Artima Developer Spotlight, May 12, 11:53am

User Interface Programming in the (Near) Future

In my article on JavaScript, I observed that we need a new language that generates good and safe JavaScript, so that you no longer have to think about either JavaScript issues or cross-browser problems. Little did I know that the solution(s) had already appeared in the form of JQuery and CoffeeScript.  Read more...

Artima Developer Spotlight, May 12, 11:53am

Is Scala Only for Computer Scientists?

I'm not talking about the early adopters writing obscure code here -- that can probably be solved with a suitable style guide. I just debugged my way through an example that should have been trivial but I only figured out because:  Read more...

Artima Developer Spotlight, May 7, 11:31am

Pushing the Limits in Java's Random

What is the largest double that could in theory be produced by Math.random()? In this newsletter, we look at ways to calculate this based on the 48-bit random generator available in standard Java. We also prove why in a single-threaded program, (int)(Random.nextDouble() + 1) can never be rounded up to 2.  Read more...

Artima Developer Spotlight, May 7, 11:31am

Down on the Upside

Abstraction is a question of less over more. But is it also a question of high over low? It turns out that the common way of describing abstractions in terms of high-level and low-level hides a number of assumptions, some of which suggest that we often look at abstraction the wrong way up (or down).  Read more...

Artima Developer Spotlight, May 6, 11:31pm

Scrum will never be the same

Over a career, good programmers spend much more of their time in professional education than in their college classes. Much of this professional training is tied up with certification programs.  Read more...

Artima Developer Spotlight, May 3, 11:52am

Scala, Patterns and The Perl Effect

My friend James Ward was explaining some of the struggles he had learning Scala, in particular partial functions.  Read more...

Artima Developer Spotlight, Apr 29, 11:50am

What is the meaning of life?

A couple of weeks ago, I sent out a little quiz to my readers of The Java Specialists' Newsletter. No one managed to figure out what the code does without running it. Some managed to explain the result once they had run it. Perfect quiz for weeding out those job applicants you don't like. Especially in the banking industry. Enough hints :-)  Read more...

Artima Developer Spotlight, Apr 29, 11:50am