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.

Saturday Afternoon

I have a whole bunch of notes from watching all the speakers this morning, but there's no point in me regurgitating all the stuff that Jason has written. Unfortunately, I don't have unlimited bandwidth on my phone - so this post (and checking my e-mail) will probably cost me $20. I finished my talk about a half hour ago and damn it feels good. All my worrying from the last week is over. I'm done. Phewfta. ;-)

Below are my thoughts on the speakers so far. I'll update this for Vic (speaking now) and Jason as they speak.

Clinton Begin: - iBATIS. He actually works for ThoughtWorks in Calgary, which I didn't know. I've met Ted, Jason, Rod and Tom this morning. All very cool guys. It's funny to see Jason and Ted sitting at the same table - I thought they were mortal enemies. ;-) There's not a whole lotta folks here - approx. 30 right now. That's good since this room doesn't look like it'd hold much more than that.

Clinton wrote SQL Maps because Data Models are rarely perfect. He's actually using Hibernate right now - b/c his team has control of the database.

Clinton is toying with the idea of using something like XDoclet to generate SQL Maps.

Caching - on a single box OSCache is the slowest caching mechanism. It'll actually cost you more than it helps you. For distributed systems, however, it's the only choice. He doesn't know why it's so slow - it just is.

Rod Johnson - J2EE without EJB. Rod actually flew in from London just for this event. It's his first time to NY, as it seems to be for many speakers here. I took a lot of notes from Rod's presentation. He was mainly advocating that you can write fast, scalable J2EE apps without EJB. He didn't cover Spring much, but did point out that Spring offers most of EJBs built-in services. After watching Rod's presentation, the only reason I can see for EJBs is for distributed systems. However, these days it seems that more folks are using web services instead of RMI.

Ted Husted - Commons Chain. Ted's presentation was quick (1/2 hour) and I missed most of it, so I can't really comment on it.

Vic Cekvenich - basicPortal RIA. Vic's presentation was titled "basicPortal RIA" but that's not what he covered. He ended up talking about requirements, project management and good programmers. Damn, I've heard this talk before - nothing new here. It's good stuff though, and an enjoyable talk.

Vic's predication: in the next 12 months, declarative languages (like Flex, XAML and XUL) will be next generation of MVC frameworks. He thinks it's very liberating to not write HTML anymore. As I said yesterday - you're still writing XML, so as a developer I don't think you have to learn that much. He just showed us some Flex code - it's pretty simple stuff. 10 lines of code to declare a data grid (like the display tag) and load its data from a DAO.

I asked Vic if calling a DAO from the View (Flex page) is a bad thing. Isn't that like using scriptlets in your JSPs to call your DAO? I mentioned that the design pattern bigots would bash all over this. He said - "screw the design patterns, this works." I suspect the next guy (Christophe Coenraets on Flex) might promote cleaner design patterns. This should be fun - a bunch of open source fans about to be presented with a closed-source, expensive product.

Posted in Java at Apr 03 2004, 01:37:16 PM MST 1 Comment

Saturday in New York

It's a drab and dreary day in New York City - as evidenced by the picture below. The hotel is interesting - with rooms just barely big enough to fit the queen size bed, and hardly enough cold water to go around. That's right, there's no shortage of hot water - just a lack of cold. Oh well, at least it's not ice cold like that summer in Moscow when they turned the hot water off for 4 weeks. Braving the rapids we called it. The hotel has no high-speed internet, only dial-up. Thank God for the Starbuck's HotSpot across the street.

8th Ave and West 35th
8th and West 35th

Last night I hung out with Vic, Clinton and Steve. There were lots of discussions on Flex and rich clients. Vic thinks that rich clients like Flex are the next big thing. I don't disagree, but he thinks they'll replace all HTML clients - and eventually the browser. I have a hard time believing that - though it would be nice to see. To me, whether I'm writing HTML or Flex - it's all just angle-bracket syntax to create UIs. I'll do whatever my clients want - and I'm willing to bet that most won't care for a Flash UI for quite some time.

Posted in Java at Apr 03 2004, 05:57:50 AM MST 1 Comment

Off to NYC

In the midst of getting all my ducks in a row for New York City - I thought I'd share the latest schedule. It doesn't seem to be posted anywhere else, so why not. First of all, it's at the New Yorker Hotel and here's the latest line-up:

  • 9:15 - Rod Johnson
  • 10:15 - Clinton Begin
  • 11:15 - Ted Husted
  • Lunch
  • 1:30 - Matt Raible
  • 2:30 - Vic Cekvenich
  • 3:30 - Christophe Coenraets
  • 4:30 - Jason Carreira

Hope to see you there!

Posted in Java at Apr 02 2004, 03:33:21 AM MST 7 Comments

Rave in Denver

From Kris Thompson:

Sun invites you to participate in a free demo of Java Studio Creator (a.k.a. Rave) next Wednesday and/or Thursday.

Hmmm, the word free seems to imply they're going to charge for this sucker. It's gonna be a Java-filled month of April for me. This weekend is the NYC Seminar, next week I'm training folks on Spring, Struts, Hibernate and AppFuse and then the week after I'm in Orlando for the MySQL Conference and JUG Meeting. When it rains, it pours...

Posted in Java at Mar 30 2004, 10:53:29 PM MST 3 Comments

Struts Menu 2.2 Released!

View changelog or download. New features in this release include a EL tag that allows JSTL's EL expressions in all attributes, as well as the ability to use Struts Menu outside of a Struts application. I also took the time to add a database-driven example to the sample app.

For the database-driven menu (as well as the app I'm writing for Spring Live) - I'm using HSQL. I never even touched the sucker before last week and I gotta say - damn it's easy. Just drop the JAR into WEB-INF/lib and when you make a database connection - it'll create the database on-the-fly. Even better, if you're using Hibernate, you can set a property (hibernate.hbm2ddl.auto=create) and it'll create your tables on-the-fly too. Cool stuff - HSQL rocks for sample apps. I don't know if it's production worthy - but I certainly like what I've seen so far.

Posted in Java at Mar 30 2004, 07:57:50 PM MST Add a Comment

Macromedia Flex 1.0 Released

Macromedia has released Flex 1.0. Flex is basically a server plugin that allows you to write XML to render flash. Here's the marketing lingo from their product page:

Flex is a presentation server installed on top of a J2EE application server or servlet container, a rich library of user interface components, an XML-based markup language used to declaratively lay out these components, and an object-oriented programming language which handles user interactions with the application. The result is a Rich Internet Application rendered using Flash Player and developed using industry standards and a development paradigm familiar to developers.

The major problem with Flex is its price.

Flex presentation server pricing starts at $12,000 for two CPUs and includes annual maintenance.

Macromedia's take on this seems to be "its an evolutionary step in web application design and development" - so $12K is a small drop in the bucket. Sun claims the same for JSF, but you don't see a hefty price tag on that sucker. What Macromedia doesn't seem to realize is that its important to market to developers. If you can inspire the developers to love your product - it's only natural that it will gain more traction. With a price of 12K and no free trial (CD by mail) - good luck on getting developer support.

Of course, as an independent consultant, I probably have a scewed perspective. Maybe the corporate drones like getting their development platform and tools shoved down their throat.

Posted in Java at Mar 29 2004, 07:36:10 AM MST 9 Comments

Snowing...

Just when I got my office and network all setup and I was getting ready to start hauling the last bits over - it starts snowing. This is typical in Denver. One day it's 80 degrees, the next it snows. I've seen it happen in the same day. In college, I once went to a movie when it was 75 degrees out, and when I left there was 2 inches of snow on the ground.

My new office is about 1/3 of the size of my old one - so it's kinda cramped in here - but I do have a window seat. Now I can watch it snow - which is huge compared to the dungeon/basement I used to be in. It'll suck when it's a beautiful day and I'm stuck working - but that's what getting up at 4 a.m. is for - done by noon!

Unfortunately, we get to do this all over again in 6-9 months. Next time it'll be a lot worse since we'll be +1 family member. Oh well, at least it's only next door. It's kinda cool moving from a small house (675 sq. ft.) to a bigger one (900 sq. ft.) and then to an even bigger one (1700 sq. ft.).

Posted in General at Mar 28 2004, 12:39:52 PM MST Add a Comment

Moving

We started moving yesterday afternoon - and we're almost done. It sure is convenient simply moving into the house next door. Four good friends showed up around happy hour and helped us out for a couple hours. Kitchen, living room and both bedrooms are done. The only thing that remains is my office, desk, networking, etc. Phone and Internet transition was extremely smooth (Comcast rocks!). It all happened yesterday and we only had about an hour outage on each. I got my wireless network setup quickly and was able to use the neighbors (strong reception upstairs) when it was out. I'm dreading office setup, but I'd better get on it. You'll know when I'm done b/c demo.raibledesigns.com will be back up.

BTW, did you know that Eclipse 3.0 M8 is out? I wonder when MyEclipse will support it?

Posted in General at Mar 27 2004, 12:34:16 PM MST Add a Comment

White Ranch Park

There's nothing like riding your bike up a mountain on a beautiful Spring day...

From the top it continues... Downhill - lots of jumps!

Posted in General at Mar 24 2004, 08:56:20 PM MST 5 Comments

SiteMesh passed the 10 minute test

I decided to go out on a limb this evening and give SiteMesh a run for its money. The first warning sign was that the documentation refers to version 2.0.2, while the downloads section refers to version 2.0.1. So I proceeded to download 2.0.1. I promptly noticed that the install guide indicated I needed to download SiteMesh's two TLDs and configure them in my web.xml. Blech - this is so year 2000 - most modern containers support loading taglibs from JAR files with a URI.

So I did a good ol' cvs co of sitemesh from java.net. First of all, I'd like to say kudos to java.net and their CVS repositories - they've been rock solid for the few weeks I've used them. After checking out sitemesh, the first thing on my agenda was to give it the tried n' true ant test. This means I navigate to the sitemesh folder and simply type "ant". At this point, I should get one of two things - a BUILD SUCCESSFUL with a JAR or a help message telling me what I should type. I got the former, which I prefer.

After this, I integrated it into my app using the decorators documentation and deployed it. At first, I received the lovely ol' "getOutputStream() has already been called for this response" error, so I hacked PageFilter.java to use PrintWriter writer = response.getWriter(); instead of PrintWriter writer = new PrintWriter(response.getOutputStream());. Build, copy, package, deploy and voila - it all worked!! Wow that was easy. ;-)

Here's the weird part. I decided to reverse my hack on PageFilter.java to prove that I'd actually fixed the bug. Now I'm back to the original code I got from CVS and I can't get the getOuputStream() error to rear its ugly head. Doh!! This experience begs the following question.

Is SiteMesh stable enough on Tomcat 5 that I can should use it in my Spring Live sample app?

SiteMesh definitely passed my 10 minute test, we'll see if it holds up for the long haul. So far, I'm quite impressed with its easy configuration and quick implementation. I especially like that you can literally guess at it's syntax and you'll get it right. Maybe I was just lucky... heh

P.S. You should probably know I'm a big fan of Tiles. I wonder if SiteMesh will let me switch a decorator on the fly like Tiles does?

Posted in Java at Mar 24 2004, 12:07:56 AM MST 16 Comments