Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Shadowbox - a slick Lightbox that supports Flash

Via Ajaxian, I learned about Shadowbox.js. From its creator, Michael Jackson:

A few weeks ago, I was looking for a Lightbox-like script that would allow me to display more than just pictures. In addition to static images, my client required the ability to display various types of movies including QuickTime and SWF. The only script that fit the bill was Lightwindow?a nice piece of work to be sure?but it required the Prototype + Scriptaculous combo and I was already using YUI.

Besides, I thought, it would be really great to have a full-featured media viewing application that was library agnostic. Then, if I need to use a different framework for some particular reason, I can easily switch.

Thus was born Shadowbox?a cross-browser, cross-platform, cleanly-coded and fully-documented media viewer application built entirely in JavaScript.

I've been using Lightbox JS on this site for almost 2 years. The next time I need lightbox functionality for an application, I'll definitely try out Shadowbox. I dig the look and feel. I agree with Ajaxian commentors that rel="lightbox[name]" would be awesome. If it's added, I could theoretically replace lightbox.js with shadowbox.js and I wouldn't have to make any other changes.

View Shadowbox Demos »

Posted in The Web at Jan 25 2008, 09:05:16 PM MST 1 Comment

The future is now -- Java development in 2008

In The future is now -- Java development in 2008, Andy Glover writes:

The year 2007 was full of exciting plot twists, punctuated by growing excitement about dynamic languages, the open source evolution of the JVM, and the rise of Google as a strategic contributor to the Java community. The question is, what does all that tell us about the year ahead?
...
And so, despite some rumors to the contrary, I would argue that Java isn't going anywhere but up in 2008. Rather than peer into a crystal ball and try to divine the future, let's reflect on the major events and trends of the past year. Taken together, they reveal all we need to know about what's ahead in 2008.

He concludes the article with:

An African proverb states that Tomorrow belongs to the people who prepare for it today. Thus, the future of Java (at least for the next year) has already been brewing for some time. The events of 2008 will largely be shaped by the JVM itself, as languages like JRuby and Groovy grow in popularity and eventually gain enterprise-wide adoption. The promise of using Java to develop consumer mobile applications also seems more accessible than it has for some time, given Google's foray with Android and Sun's with JavaFX Mobile. Most of us will also be concerned with leveraging the emerging multicore systems and looking to Java 7's java.util.concurrent packages for answers. Lastly, open source Java and the business model surrounding it will continue to grow.

I agree that learning about JRuby and Groovy is a good way to be prepared for the future. Reading Ola Bini's Practical JRuby on Rails Web 2.0 Projects and/or Stuart Halloway and Justin Gehtland's Rails for Java Developers seem like good ways to get started with JRuby. With Groovy, Groovy in Action has received a lot of good reviews. For Grails, it's a bit more difficult as it's evolved so quickly w/o any updated books. I like the look of Scott Davis's Groovy Recipes, but that won't be released until March.

One thing to note: just because you learn these languages and frameworks doesn't necessarily mean you'll find a new job doing them. In my experience, there's still way more Java jobs than there is Rails or Grails jobs. I sat on a Consulting Panel last night at Denver's Ruby on Rails user group (DeRailed) and this was confirmed (at least for Ruby) by the recruiters on the panel. There were three recruiters and combined they've only seen 2 Rails positions in the last 6 months.

So if you're looking for a new job, I doubt you're going to find one that allows you to leverage your new-found JRuby/Groovy skills out of the gate. However, I do believe you can leverage these tools in your existing jobs and hopefully make your development life more efficient.

Posted in Java at Jan 25 2008, 09:03:18 PM MST 5 Comments

What are the must see places and things to do in Dublin and London?

A good friend sent me an e-mail this afternoon asking for some advice.

I am headed to London & Dublin next week for a quick trip with my friend who's a pilot for US Airways. I am pretty sure you've visited these 2 places, let me know if you have any good advice or must see places or things to do, or even a good place to stay. We haven't booked any hotels yet but booked our flights.

I haven't been to Dublin since 1998 and I've never been to London - so I figured it might be a good question for readers of this blog. What are the must see places and things to do in Dublin and London? Thanks in advance for any advice you can offer.

Posted in General at Jan 25 2008, 01:36:23 PM MST 15 Comments

All Java web frameworks should support hot deploy of a single class

In Anyone else using Groovy?, Tim Fennell (inventor of Stripes) raves at how much he likes Groovy now that it supports Java 5 features. He writes that Groovy might offer a solution to make development with Stripes faster:

The other thing I've been wondering about is that if there were enough demand for it we could try adding "improved" groovy support. E.g. throw your groovy actions under WEB-INF and we'll use groovy's built in stuff to do auto-reloading etc.

Gregg Bolinger responds with an excellent idea:

It would be really cool if Stripes could automatically discover and load changes to action beans (including new ones) without the entire app restarting, regardless of what the action bean is written in. But I realize that is a pretty tall order. :)

I agree that it might be a tall order, but I don't think it's impossible. In fact, I think all Java-based web frameworks should support hot deploy of a single class. We shouldn't have to buy JavaRebel to do this. It should be mandatory.

When an application reaches a certain size, the startup time can get pretty lengthy. This is lost development time. Furthermore, if any part of the development cycle takes longer than 15 seconds, there's a good chance developers will do something else (check their e-mail, move onto another task, etc.). Multi-tasking may be a good skill to have, but it's a horrible way to be productive.

Of the frameworks I'm familiar with, only Tapestry 5 and Seam support reloading single classes without restarting the whole application. Why can't the other frameworks "borrow" Tapestry 5's code? Maybe someone should just buy ZeroTurnaround and give away JavaRebel for free.

If I had one wish for 2008, it would be for all Java web frameworks to support this feature. Pretty Please?

Posted in Java at Jan 24 2008, 03:11:18 PM MST 21 Comments

Denver Tech Meetup, Consulting Panel and My Jobs Timeline

If you live in Denver and are involved in open source (or simply technology in general), you should make it a point to attend tonight's Denver Tech Meetup. I'm planning on going for about an hour. From there, I'm heading over to the DeRailed User Group for a Consulting Panel at 8. If you're interested in moving from a full-time position to contracting, you should come. This is open to the public, so anyone can attend.

While I was thinking about things to talk about on the panel tonight, I started reflecting on the jobs I've had in my almost-11-year career in technology. Here's my timeline since college:

  1. 1997: Full-time at MCI Systemhouse
  2. 1998: Contractor for IBM Global Services (6 figures w/in 6 months of graduating!)
  3. April 1999 - April 2001: Full-time for eDeploy.com (Friday lunches rocked)
  4. May 2001 - October 2001: Contractor for Douglas County (introduced to Ant, Struts, etc.)
  5. January 2002 - November 2002: Contractor for OnPoint Digital (100% remote)
  6. December 2002 - August 2003: Contractor for Comcast Media Center
  7. August 2003 - October 2003: Contractor for ResortQuest
  8. November 2003 - June 2004: Contractor for Adams County
  9. June 2004 - August 2004: Contractor for Open Logic
  10. October 2004 - December 2004: Contractor for Oak Grove Systems
  11. January 2005 - May 2005: Contractor for Xcel Energy
  12. June 2005 - January 2007: Contractor for Virtuas
  13. February 2007 - June 2007: Contractor for Checkerboard
  14. July 2007 - Present: Contractor for LinkedIn

Phew - that's 14 jobs in 11-ish years! Notice that I've only ever had 2 full-time positions. So far, I have no regrets and really enjoy being a consultant. If you're interested in learning more about how I started Raible Designs or how I get contracts, you might want to read the following posts.

If you live in Denver and want to learn more - show up at the The Hive at 8:00 tonight.

Update June 2008: My 3rd full-time gig started in May. Now I'm the Lead UI Architect at LinkedIn.

Posted in Open Source at Jan 24 2008, 01:39:38 PM MST Add a Comment

How long does it take to build a modern web framework?

Dear Java Web Framework Authors,

I hope you're doing well and continue to enjoy working on the web framework you created years ago. I'm curious to know something:

    How long would it take you to build your web framework from scratch?

If all the code from your framework magically disappeared tomorrow and you had to write it from the ground up - how long would it take? What if you had a group of 3-5 developers (of your choosing) to help you do it?

Furthermore, would you write the whole thing line-by-line, or could you borrow code from other open source projects to streamline the process?

Thanks in advance for your response,

Matt

Posted in Java at Jan 24 2008, 12:39:55 PM MST 5 Comments

The National Western Stock Show

Last night, a friend and I went to the Rodeo at the National Western Stock Show. We had really nice seats (thanks to Cletus from Nebraska) and had a great time watching the Bareback Ridin', Bull Fightin', Bull Ridin', Mutton Bustin' and Barrel Racin'. The highlights were the bull fighting (the bulls almost always won) and the Mutton Bustin'. This is where they plop little kids on the back of a sheep and they hang on for deer life. I shot a video for your entertainment.

Click here for more pictures from the event. Sorry about the picture blurriness, the high action and bad results from my camera made me realize I might need to upgrade.

Posted in General at Jan 24 2008, 12:24:23 PM MST 1 Comment

Ext JS Tag Library

James Carr in Making extJS More Accessible to Java Developers:

With my recent interest in extjs, I was playing with the idea of making a Struts2/WebWork component library or a tag library to handle a lot of the boilerplate extjs code (i.e. creating layouts and such) but, luckily, discovered someone beat me to the punch!

I randomly came across ExtTLD this morning while sifting through my rss feeds, and I must say I am rather impressed. Although I consider myself a pretty good javascript developer, there seems to be a lot of java developers who aren?t that hot at javascript... which is why whenever I attend any java related conference there is always several sessions touting "javascript free ajax!" frameworks like GWT, Ajax4JSF, or IceFaces. Although I've always been skeptical of such frameworks, I do see their benefits... especially for the java developer who excels at serverside JEE development but generally sucks when it comes to adding javascript behavior to the presentation layer.

I can definitely see how Ajax-with-IDE-code-completion would appeal to many developers. However, I do have to agree with James:

So far it looks good, but I haven't had a chance to play with it yet. Basically, I'll have to see if it passes my "good javascript generator framework" test. I?m a pretty staunch advocate of unobtrusive javascript, and generally hate any presentation layer framework that seeks to dump several hundred (or thousand) lines of javascript inline in the html document.

For development shops that have UI-only developers for the front-end and Java developers for the controller/validation part of an application, frameworks that generate JavaScript usually don't make sense.

ExtTLD's license:

ExtTLD is published under GPL 3.0 license however restricts use by companies participating in animal abuse, such as animal testing laboratories etc.

Posted in Java at Jan 22 2008, 10:01:27 AM MST 5 Comments

Migrating a Rails app to Grails

There's an interesting trend I've seen happening at companies over the last year. More and more, they're experimenting with Rails and/or Grails for both prototyping and real applications. I think this is an excellent use for these frameworks as they both are very productive. The reasons for their productivity is simple: zero turnaround and less code.

For a Java-based company that's built their bread and butter applications on Java and been successful with it, both frameworks can be disruptive. Bread and butter applications tend to be large and somewhat difficult to maintain. In my experience, the biggest maintenance headache is not writing code or fixing bugs, it's the turnaround time required to make changes, run tests and build the application to test in your browser. Since Rails and Grails eliminate the turnaround, it's only natural for developers at companies with a lengthy build process to love their increased productivity.

Over the next couple weeks, I'm going to do some experimenting with porting a Rails application to Grails. Why? Because I think companies are going to have a difficult time choosing between these two frameworks for rapid prototyping and (possible) production deployments. While both frameworks are great for prototyping, the last thing most developers want to do is throw away the prototype and develop it with something else. They want to continue to enhance the prototype and eventually put it into production. With Rails and Grails (and many others), it's possible to build the real application in a matter of weeks, so why shouldn't it be put into production?

For most Java-based companies, putting a Rails application into production is unfamiliar territory. However, a Grails application is just a WAR, so they can continue to use all the Java infrastructure they know and love. So for companies with an established, tuned and successful JVM infrastructure, does it really make sense to use Rails over Grails? The only thing I can think of is language reasons - there's a lot of Ruby fanatics out there.

So again, the purpose of my experiment is simple: to see if a Grails app can do everything a Rails app can. As for language features and scalability, I'm not really concerned with that right now. I'm not looking to prove that either framework should be used for all web applications - just certain types.

Has anyone out there ported a Rails application to Grails? If so, are there any gotchas I should watch out for?

NOTE: I realize that Rails can be deployed on the JVM with JRuby. However, I think many companies have existing Java-based tools (logging, JMX, Spring backends, etc.) that more easily integrate with Grails than Rails. I could be wrong.

Posted in Java at Jan 22 2008, 09:37:49 AM MST 12 Comments

Bus Project Update

Homecoming This afternoon, Jeremy Vreeman from Motorworks Restorations stopped by to take a look at my bus. I first e-mailed Jeremy way back in June of last year, so this meeting has been a long time coming. He took lots of pictures and we talked at length about the things I wanted as part of this restoration project. To start with, I'm going to have Motorworks do paint and body, and possibly suspension. Jeremy said they could probably take it out of my hands in March and have it back to me 2-3 months later.

I'm pretty pumped - for a number of reasons. The first is Motorworks seems to be best company on the Front Range to help me make "Daddy's Bus" into my dream car. I realize it's going to cost quite a bit of cash (a full restoration to pristine condition is 50K), but it's something I've always wanted to do. Furthermore, it's not a bad investment (most car restorations are). Jeremy told me about a deal he just saw where a guy sold his restored '59 for 70K. I'm certainly not planning on spending that kind of money this year, but with 15K already into the project, it's likely I'll spend another 30K over the next 5-10 years. The last reason I'm excited is because anything is possible with this bus at Motorworks. Jeremy was telling me about a project they have right now that closely resembles a "Pimp My Ride" episode: flat screens, A/C and even Wi-Fi (I didn't ask why an EVDO card wouldn't work).

I don't plan on selling the bus when I'm done. I hope to drive it during the summer and possibly show it. I think it'd be pretty cool for the kids and I to cruise around town in one of the coolest cars ever. It should be a great childhood memory for them. Hopefully it's not too painful when one of them totals it in high school.

Posted in The Bus at Jan 19 2008, 02:03:52 PM MST 1 Comment