CacheablePage trait for Wicket. You implement a spritely last_modified query for a page which the trait calls before the page is constructed and it aborts processing with a 304 Not Modified if the time-stamps match exactly. Used here.
CacheablePage trait for Wicket. You implement a spritely last_modified query for a page which the trait calls before the page is constructed and it aborts processing with a 304 Not Modified if the time-stamps match exactly. Used here.
In the past half year the Maven Scala plug-in has become pretty awesome. It supports opening a Scala console on the project classpath, and even binding the process to JavaRebel. That’s nothing you can’t hack together with Buildr, but thank you Lift-people for giving everybody more choices! The Databinder project, for example, is too scared of offending the Maven gods to try deploying its artifacts through Buildr any time soon, but as of yesterday it does have a module built in Scala.
Sourceshop: “code should be composited into layers with an interface very much like Photoshop. AOP is one example of a (fairly magic) layer.” Perhaps it could be done generically, where the layers exist in forks of a file that a build tool selects and merges before compilation. AOP-type layers would be virtually generated by an IDE or maintained by a builder. Git’s killer app?
Fighting words: “Scala is to Java as C++ is to C.” Free advice: don’t worry about invariant and covariant subtypes or existential typing until you get a compiler error or need a philosophy to counter the nothingness at the core of human existence. WFM.
That skittish Scala: “The drive for innovation by itself is wonderful. However a programming language is a relatively fragile thing, since it must fit into the imagination of potentially millions of people. But when it’s constantly improving it is hard to fit it in.” Sorry everybody—the internet is making everything change faster. With all that free information out there, your options are to keep learning for life (how awful!) or let someone who cares more have the work. The fact that languages will improve over time, as software libraries already do, is exciting. It’s less scary than learning a whole new language. If you can get over that hump, it’s child’s play to learn new features as they trickle in.
Very slick music visualizations made with Processing. Perhaps these could help motivate kids to learn programming—just don’t tell them it’s “Java programming.” Because even these videos are not worth being the hunchback of Nerd Cubicle.
How cute! Groovy may someday have a Wicket component add() method aliased to << just like the one Coderspiel implemented in Scala last year, which is rendering this page. But with Wicket on Groovy on Grails! you’ll be able to have your DSLs and your syntactic sugar without the useless good runtime performance.
Steve Jobs: “Now, we account the iPod touch a little bit different, so there will be a nominal charge for that update, but otherwise it will be exactly the same as the iPhone.” Curse those evil green eyeshades for making noble Apple regretfully charge for software updates! Other than that b.s., the SDK news is pretty rad. Free apps will be allowed in the store, and the $100 charge for a programming license is surprisingly reasonable coming from the company that sells dumb .Mac for the same price. { previously }
Scala 2.7.0 is out, for real this time. The big deal in this release is support for generic types on imported Java classes. Any more sweet news going to break today? Update: Yes! It’s already on MacPorts this is the awesomest day ever.
Nu on the iPhone, already. Yesterday, googling all variations of Nu and iPhone yielded nada. Today, it’s “hello world.”
It’s funny that Sun, who could never be bothered to make a polished Macintosh JVM (causing Apple to take over in the System 7 days) is falling over themselves to make one for the iPhone. It’s not as hard as it used to be (SoyLatte), but Sun is not going to be able to build anything on top of Swing that is competitive with Cocoa Touch in terms of user experience. No sense pretending otherwise. { earlier }
InfoQ interviews David Pollak on Lift and Scala: “I found that Ruby’s dynamic typing led to a lot of errors and the requirement for 95% test coverage in order to have reasonable deployments. Unfortunately, to get 95% test coverage, my code size (including tests) ballooned to near Java sizes.”
Wicket 1.3.2 released, with bug fixes and improvements including a sneaky one you need for cacheable pages. (So autolinked resources can be loaded in an app instance even if components linking them have not yet had to render.)
Xavier Hanin made a site to search the Maven repository called JavaRepo. It is about time to stop thinking of that resource in terms of the tool that first created it. One cool feature it has is to provide dependency tags for Ivy and Maven you can copy right into a build file.
RoughlyDrafted notes another Java iPhone irony: “Sun’s history of partnering with, then abandoning NeXT—but not before buying up Lighthouse Design and locking up its NeXT apps and throwing away the key—has come back to haunt the company in a big way.” Also, a good one: “Apparently, Sun hopes that someone might find it useful to install Java ME on the iPhone in order to nostalgically run software applets designed for far less capable phones.” Sun’s desperation has made for good comedy at least. For the record, Coderspiel hasn’t abandoned its original position that having a JVM on the iPhone would be nice for running library code. But that’s not what Sun is after, and given the restrictions on all interpreted code there are deeper issues to be worked out than Java freaking ME. { previously, related }
Ryan Tomayko’s weblog software: “I see basically the same page for weblog posts and articles as non-authenticated people (like you) except mine has a tiny ‘Revise’ link positioned directly above the article title.” This is pretty much the same in Typeturner. (Short post shown; long has a larger overlay panel.) Two makes a trend!
For you other-coasters: Scala lift off, San Francisco, May 10, 2008.
Has anyone used the pun yet, “git ’er done?” For the source control filesystem thingy called git? Probably. Well, anyway, git ’er done! { previously }
How to: write basic support for a language in NetBeans. Like the author already did for Scala.
If you’re using HttpClient 4 (alpha3) and your POSTs are slow and your PUTs don’t work at all with CouchDb, it’s because Expect: 100-Continue is on by default, why oh why. Turn it off.
Not-so-good news on the mesh networking pioneer: “‘Build your business using exciting new technology where the rules of the game keep changing’ How ironic.” { previously }
ActiveObjects 0.8 is out: “If you’ve been considering trying ActiveObjects for your project, now would be an excellent time.” A pretty good time to try it with Databinder, too.
Raganwald: “if the software to automate a business process is complicated and contradictory and hard to use, then the real cause is a business process that is complicated and contradictory and probably not serving the company well.” It follows that the ability to speak computer talkie-talk is not the business software bottleneck, it’s a systematic failure to yield to (or even conceive of) brutal logic and modesty outside the binary. { related }
Calling into JRuby from Scala by prettifying the Java Scripting API. Come on! HTTP is obviously the best interface for calling Ruby from Scala. { related }
Scala: Still Uncomfortable After Five Years … of not really committing to learning the language. You can only get so far across a river by wading in once a year, feeling discomfort, and high-tailing it back to land. Why not write or port a medium sized personal project to Scala, learning things as you go? You will appreciate pattern matching after a while. And instead of chiding Artima for running house ads of their book on their web site (as if that were unethical, or even unusual), why not just buy it for $23? In the old days you’d pay ten times that for compilers and tools; now you only have to pay for documentation (the part that a project’s coders derive little benefit from otherwise). Scala is a steal. { previously }
The Death of the Relational Database: “The reason the relational database doesn’t represent knowledge very well is that the relational database is only good at storing objects and relationships between them when one fully understands exactly what objects and what relationships will be managed upfront.”
So you ‘just need a hacker,’ huh? “hackers don’t need douches, but douches sure as shit need hackers.” It does seem like the blissful days of programmers hunching through the implementation of other people’s ideas are numbered. Update: Annoyingly, this post was deleted by its author and replaced with one that doesn’t use the word ‘douche’ at all. Ssss!
Stroke it: “StrokeDB is an embeddable distributed document database written in Ruby. It is schema-free, it scales infinitely, it even tracks revisions and perfectly integrates with Ruby applications.” Hm. “There’s also a huge argument for pure-Ruby version: StrokeDB integrates so well with Ruby apps, so it is a pleasure to configure different environments and optimize performance by injecting the database right into your application.” Isn’t Ruby supposed to be great for “REST”? Well, Ruby-only people can use this and benefit from the awesome performance of Ruby, and Java-only people can use JSR 170 (catchy name, per usual!) and experience the slow joy of a standards process. Those that think information should be fully cross-platform can code for doc bases that work over HTTP. Either way, sayonara schemata. { previously }
Monad Lisa: “You can view monads as containers or as computations. Isn’t this confusing enough?” Apparently not!
Typeturner depended on both versions 3 and 4 of HttpClient for a short while because the Akismet Java API used version 3. But that API is just a straight wrapper around Akismet’s HTTP API, so the obvious thing was to just use HTTP directly with Databinder dispatch’s sweet HttpClient interface. And guess what? The new client code is way shorter than the old code that used the Akismet Java API. :P
Performance relativism: “What really bothers me about the Groovy performance debates is that most ‘Groovyists’ seem to believe that performance is in the eye of the beholder.” { related }