Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

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.

Upgrading to Ubuntu 7.0.4

You have to love how easy they make this.

Ubuntu Upgrade

The time doesn't seem accurate as it originally told me it'd be about an hour. Regardless, I love how easy it is to upgrade Ubuntu from one version to the next. I wish openSUSE had a similar feature.

Update - 3.5 hours later: This might take a while...

Ubuntu Upgrade - 4 hours later

Update - during FAC: It's failed twice now and left my OS in a corrupted state both times. I suspect the MADM (or whatever it's called) prompt at the end of the download. I've entered "all" and "none" and it's failed with both values. VMWare rocks - I'm so glad I didn't ruin a working system. I'll be sticking with 6.10 for a month or so.

... and Country Bry is right - calling it by it's code name vs. the version number is pretty cheesy. ;-)

Posted in Open Source at Apr 20 2007, 06:32:26 AM MDT 16 Comments

OSCON: A beautiful time of year in Portland

It's that time of year again for the excellent OSCON conference. Last year's show was great, but I spent far too much time in the conference, and not enough time enjoying summertime in Portland. I have a fondness for Oregon in the summer. I spent my last two years of high school in Salem (40 miles south of Portland) and remember loving life in August. This was likely due to the fact that it rained most of the rest of the year.

This year, I'm determined to enjoy Oregon more, and attend the conference less. I have a pass, and I'm doing a short 20-minute talk on "7 Simple Reasons to use AppFuse" (2:00 Wednesday in the Expo Hall). But that's about it. The rest of the week, I hope to enjoy myself and not be pummeled with any new technology or buzzwords. I might end up getting sucked into a session or two, but I'm hoping I don't. With any luck, I hope to visit both Edgefield and the Oregon Brewers Festival. Edgefield on Wednesday, Brewers Festival on Friday.

On Thursday, we're throwing another party at the Red Lion along with a host of other companies. Last year, we had a SourceBeat/Virtuas party at the Red Lion on the patio. The views of Portland were spectacular and it was definitely a good time. This year, it's a Geronimo Live! party. To register, please click on the image below.

Register for Geronimo Live

Thanks to the many sponsors of this event - we appreciate your support.

Geronimo Live Sponsors

Raible Road Trip #10 begins this Sunday. With any luck, I'll be able to snap some pics along the way and blog about our trip as we go.

Posted in Open Source at Jul 20 2006, 09:56:26 AM MDT Add a Comment

[DeRailed] Denver Rails User Group Meeting

Last night, Francis (Virtuas' Operations Manager) and I went to the local Rails User Group meeting, better known as "DeRailed". This group was started by a good friend of mine, Fernand Galiana, who obviously doesn't know how to blog. ;-) Since Virtuas is a sponsor, and I really like Rails technology, I felt like it'd be a fun meeting to attend. I wasn't disappointed.

The meeting was held 3 blocks from our offices at the downtown Tattered Cover. The first presentation was by Doug Fales, and he talked about his new soon-to-be-launched site called WalkingBoss. With this site, he integrates GPS Data (GPX files) and Flickr photosets to allow you to easily plot your trips on a map. It looks very easy to use, and somewhat inspired me to get a GPS device, and possibly a new (smaller) camera. Doug's blog has more in his most recent post. Unfortunately, I don't see that his blog has permalinks, so this might be hard to find in the coming weeks.

The 2nd talk was Ruby Meta Programming and was presented by Ara Howard. Since I don't know a whole lot about Ruby, this talk was over my head, but somewhat interesting nevertheless. There was about 20-25 people that showed up for this meeting and I found it to be a much younger and more down-to-earth group than the local DJUG. Furthermore, almost everyone went out for beers at the Rock Bottom afterwards, which is a lot different than DJUG (10-15 out of 75-100 usually go). Good meeting, good group of guys. Thanks Fernand!

Posted in Open Source at Jun 16 2006, 07:37:20 AM MDT 1 Comment

Getting ready for the Sun Fire T2000 Server

T2000 Like Jeff, Bill and Bruce, I signed up for the free 60 day trial of the Sun Fire T2000 Server. Why? Because I heard you can get one for free if you blog about it enough. ;-) My plans are to setup continous integration environments for AppFuse and Roller using CruiseControl. I also hope to do some performance tests b/w Java persistence and web frameworks. Finally, I'd like to some single-server vs. clustered server performance tests using Tomcat.

When we built our house way back in 2004, we had it wired with fiber. Even though we still aren't using the fiber, I also had them install ethernet throughout. Today, I finally took advantage of it. I moved my cable modem downstairs and hooked up RJ45 connectors on both ends, so I can now plug my office network into an ethernet outlet on the wall. Good thing my Dad is a network guy - he made it all pretty damn easy.

It was a great afternoon in Denver: 85 degrees, cold Fat Tires in the fridge, kids running around playing in the kiddie pool - and I got my house re-wired in under 30 minutes. The "old basement" will soon become a server room. Now I need a rack - for the T2000 as well as an old Dell Dimension Fedora box. Any suggestions?

Posted in Open Source at Apr 09 2006, 06:38:06 PM MDT 8 Comments

RE: Marketing is the billion dollar question in open source

Dana Blankenhorn has an interesting post titled Marketing is the billion dollar question in open source. I definitely agree with this. Good marketing of a project can make it successful, and bad marketing can kill it. It really is the hardest part of being an open source developer. Sure it's fun to work on this stuff until the wee hours of the morning, but if no one (including yourself) appreciates your project (due to your lack of marketing), it really worth it? Compare that to wild enthusiasm by your users and people writing articles about your project. There's a stark contrast there.

Some of the hottest open source projects are driven by marketing. Read more (and comment) on my Virtuas blog.

Posted in Open Source at Mar 06 2006, 11:14:20 PM MST

Denver Tech Meetup on March 9th

Stephen O'Grady:

Ok, I know I dragged this out far too long - mostly due to travel concerns - but let's just pick a date and run with it. So the date for the next Denver Tech Meetup is now officially March 9th.
...
Venue will be - barring unforeseen circumstances - the same as last time, the Wazee Supper Club. It's easy to get to, close to some of the downtown offices, and most importantly, is my favorite.

If you don't know what the Tech Meetup is all about, I like to describe it as a User Group meeting without the User Group; there's no common affiliation other than we're all in tech (and even that rule can be bent ;), and no technical meetings - just the after-meeting beers/cocktails (and maybe food).

This meeting was a lot of fun last time. Matt Filios and I enjoyed talking to guys doing PHP, Rails and even some developers from the OpenSolaris project. I highly recommend attending.

Posted in Open Source at Feb 23 2006, 08:15:47 PM MST 1 Comment

OpenSuse 10.0 vs. Ubuntu 5.10

Ever since I got a new HP Pavilion, I've been planning what's next for my Dell Dimension 8300. I decided it's probably best to retire my somewhat hosed Fedora Core 3 box (Dimension 8100) and replace it with a new Linux server. After talking with a good friend, I decided to go with OpenSuse 10.0 or Ubuntu 5.10. Steve was a good enough friend to burn me DVDs of both. Yesterday, I bought a new 160GB hard drive and last night I tried to install Ubuntu. I went w/ Ubuntu b/c Steve tried them both and said he liked Ubuntu a lot better. I've never used Ubuntu, and I have used Suse a fair bit - so I figured I'd try something new.

When I started installing Ubuntu last night, I figured it'd be a breeze. I have a DVI KVM Switch hooked up to a Logitech cordless keyboard/mouse, and Ubuntu immediately recognized them both. However, at 44%, it failed to install gstreamer0.8-jpeg and the installation bailed out. I was able to login to the desktop and (seemingly) get stuff working, but I'm always a bit leary about a failure in the middle of an OS install. After an hour of futzing with it, I tried again and got the same error. Around 1 a.m., I said "screw this" and threw in the Suse DVD.

I had the same good results with Suse, where my keyboard and mouse were recognized. However, when I got prompted for the root password, my keyboard quit working and I was up shit creek. I started the re-install process before going to bed at 2 and picked it up again this afternoon - after a beautiful day of skiing at Copper. I got almost everything working on Suse this afternoon, and just as I was about to call things good - the keyboard problem came back. Pretty disappointing since I'd just gotten my Apple Cinema Display to work.

As I speak, I'm trying Ubuntu again, without the KVM switch. I suspect there's probably a piece of hardware I have that's causing the failure, so hopefully unplugging things will solve the problem. If I don't get it figured out in the next hour or two, I'll probably just go with Suse, setup VNC - and get a wired keyboard for when I need direct access.

24 hours later: It's interesting to see that almost the commentors on this post are recommending Ubuntu. After posting this, and receiving a comment from Brett, I tried the Ubuntu Live DVD. What I found was that Ubuntu recognized my cinema display, but it entered into a non-stop flickering loop that I couldn't solve. Therefore, I threw in the Suse DVD and tried again. This time, Suse recognized everything flawlessly (including my HP OfficeJet G85). So I'm sticking with Suse - mainly because it seems to recognize my cinema display, printer and DVI KVM switch the best. With apt-get working on Suse, it's been a breeze to get everything setup.

Posted in Open Source at Jan 05 2006, 07:22:57 PM MST 26 Comments

January Denver Tech Meetup

Hey Stephen, when's the next Denver Tech Meetup? I propose next Thursday the 12th. Whaddya think?

Posted in Open Source at Jan 03 2006, 03:10:22 PM MST 2 Comments

Open Source CMS Evaluation - Part III: Implementation

In my last post, I narrowed my open source CMS candidates down to Joomla and Drupal. I was hoping to have a choice made by Monday morning, implement the design in the morning, and populate the content in the afternoon. Two days later and I'm now where I was hoping to be on Monday morning. I've spent the last two days implementing both Joomla and Drupal. Monday, I spent most of the day with Joomla. While it was easy to apply my own theme, I became very discouraged when I discovered I didn't have full control over the HTML markup produced. All of the content I produced was wrapped with a <table> - and from what I could tell, it was impossible for me to change that w/o hacking Joomla's code.

Based on that discovery, as well as the overwhelming number of pro-Drupal comments I received, I moved on to implementing Drupal. Monday night and yesterday were spent with Drupal. It's been extremely frustrating, but mostly because of all the CSS I had to write. The major problem with Drupal is the admin interface uses the same template as the reader interface. I did find a nice way to use an existing theme for the admin, and our own for the reader - but decided not to use it because it would give content authors the wrong impression of what their stuff looks like.

The majority of the time I've spent with Drupal has been modifying templates and installing modules. For the most part, Drupal doesn't come with everything you might need. I found the CivicSpace download to be much more complete with modules I needed. In addition, it has an installer which makes things a bit easier to setup for a web designer. I'm currently using the Article module, which works quite well, but I wish I could create multiple blocks for different categories (taxomies). Instead, I had to hack up my own block using some SQL to select all the "news" content types (for a Recent News block).

My biggest problem with Drupal continues to be my lack of knowledge. Luckily, there's a plethora of information out there and a lot of people are using it. I've been able to use the Drupal Forums as well as Google to solve most of my issues. Now the hard part comes - I need to show it to the designer/marketing folks and teach them how to use it.

The brochure site in an hour tutorial was extremely helpful for me to get started with an About page, Contact Us page, and Press Releases. However, it says to use "books" to create pages, and I've seen others recommend "page" and "story". So which is the best one to use? Should I advocate using "page" for regular site pages, and then "story" for our articles and whitepapers? Or should we use "book page" for the main pages. I'd like to limit the number of choices if possible.

I think the major problem with using Drupal is going to be tweaking our template. Every time I see a new custom theme (like this one) I want to steal stuff. Right now, I'm using a design from oswd.org and much of the CSS from the spreadfirefox theme.

Conclusion: No CMS is perfect. You'll have to hack it on one way or another to make it fit your needs. Drupal seems to be used by many web designers w/ little to no programming skills. Most folks love it and I've received many, many positive comments about it. I've received hardly any positive comments about Joomla. Zope and Plone also seemed to inspire hatred among some users.

Lesson Learned: Listen to your readers. Other users' experience is one of the most valuable indicators of a good open source project.

Posted in Open Source at Sep 28 2005, 12:50:16 PM MDT 16 Comments

Open Source CMS Evaluation - Part II: Customization

This is the third and final post in my quest to find the best open source CMS for my needs. Previous posts include Building a website with an Open Source CMS and Open Source CMS Evaluation - Part I: Installation. Based on these two posts, reader feedback, and my installation experience, the final round of candidates include Joomla, Drupal, Magnolia, OpenCms and MeshCMS. These are listed in the order that I expected the final rankings to be - just to let you know what my feelings were going into this final process. ;-)

The CMS I choose will be used to build Virtuas's website, as well as customers of Virtuas. By using a CMS to produce websites, the design is separated from the content - and the "adding content" process can be much easier for the customer. This greatly simplifies the "creating a website" process for us, and will likely save our customers a fair amount of design costs. In addition, it makes it much easier for site owner's to maintain the site after it's been published.

As for Virtuas's site, it's static right now, and we'd like to change that. We want to ability to show recent blog posts on the front page, as well as make it easy for Practice Leaders to publish articles. In addition, it should be easy for our designers to change the design (1-2 files) and for our marketing team to add press releases and update existing content. Tomorrow, I'll be presenting my choice to the rest of the team, and we hope to design and start publishing content this week. Our goal is to have a new Virtuas site up and running one week from today.

My goal today was to see how easy each CMS was to customize. In addition, I wanted to see how easy it was to publish an article, as well as to aggregate our latest RSS feed titles onto the homepage. To test the design customizability, I tried to reproduce the current Virtuas homepage. Then I published Jeff's Geronimo Article, and attempted to aggregate feeds from Maria's and Bruce's blogs. My main reason for putting the Java CMS'es lower than the PHP ones in my suspected order of finishing is because I don't they don't have the RSS Aggregation feature.

Rather than just jumping in and using each CMS in anger, I tried to start off by reading the documentation for each. My main focus was on how to customize, but I also looked for an RSS Aggregation feature and ease-of-publishing for articles. I read documentation for 15-20 minutes, then dived into creating a custom theme and adding content. I installed each CMS on my PowerBook, and used Safari and Firefox on OS X, as well as Firefox on Windows XP in some cases.

MeshCMS - I spent 40 minutes looking into MeshCMS before I knew it wasn't the one. The main problem I had with it was the upgrade process. To upgrade to a new version, they recommend that you use symlinks to your files and store them in a separate location on the file system. While this may work for some, it seems a little brittle to me. I'd rather use a solution that keeps everything stored outside of the application by default. Creating a new theme was quite easy - but there didn't seem to be any support for multiple menus (i.e. global and local navigation), nor was there any means to customize the menu template.

I did manage to blow up the whole application at one point, simply because I was missing a JSP tag in my template. Since I had this template selected for the administration as well - it hosed the whole application and spit out stack traces for each page. Luckily, renaming the template directory caused MeshCMS change to revert to the default settings and everything was fixed. The interesting thing about MeshCMS is it looks very similar to the SiteMesh+JSPWiki CMS I wrote a few weeks ago. However, mine allowed full menu creation by editing/creating wiki pages.

OpenCms - When I installed OpenCms a couple of days ago, I initially did it on Windows. Everything worked fine and after waiting 18 minutes for everything to import, I was able to browse and edit the default site. However, today was a different story. The version I installed on my Windows XP box no longer works. When I got to http://localhost:8080/opencms/, I get a directory listing with "resources" and "setup" on it. The same day I installed OpenCms on Windows, I installed it on my PowerBook. It took 38 minutes to complete, but nevertheless, it said the process worked. Today I re-ran the setup and now I have the same result as on my Windows XP box. If the setup and installation is this fragile, I'm not interested. Blame me and the fact that I'm a redneck all you like, but the Magnolia installation is still functioning just fine. ;-)

Magnolia - I spent about a half hour with Magnolia before I knew it wasn't for me. While the admin UI is impressive with all it's Ajax goodies, creating a new template is cumbersome and not designer-friendly at all. You have to create a "new node" and then a bunch of "data nodes" under that. The documentation (a QuickStart PDF) is 17 pages long and forgets to mention the "title" data node is needed before the template will show up properly as an option. Once you've created a new template in the admin UI, you have to create the template on your file system - inside the web application. This may make it difficult to upgrade if you're deploying Magnolia as a WAR. The worst part is after creating the template, you have to restart the server. WTF? That seems a bit ridiculous to me. Granted you'll likely be designing your master template in a development environment - but good luck installing Magnolia for a client and having them create a new template.

One of the most interesting things about Magnolia is most of the folks who've recommended it have highlighted that it's "built on the revolutionary Java Content Repository Standard JSR-170". While I can admire the technical merits of this effort, it doesn't necessarily make this a good product. A good product, IMHO, is easy and intuitive to use. The admin interface for Magnolia is not intuitive. I like the fact that I can right-click on a page/node/etc., but on my Mac (with Firefox and Safari), the real context menu shows up on top of the application menu after a second or two. I'm going to pass on Magnolia due to the fact that its not designer friendly, as well as the fact that templates can't be edited in the browser. It looks like something that might be very interesting for developers, but it's simply not friendly for HTML developers.

At this point, it's 10:30 p.m. on Sunday night. I need to make a decision before I go to bed tonight and I'm scheduled to meet with our designer at 7:00 a.m. to start implementing his new design. I haven't started the PHP options, and I've had a couple new ones recommended on my blog while doing this evaluation today. Mal recommended Exponent and Jacob recommended MySource Matrix.

Because I'm down to two choices (and I haven't tried to customize either one), I decided it was worth looking at both of these PHP solutions. Exponent installed easy enough, but MySource Matrix failed miserably. Joomla, Drupal and Exponent all had an easy-to-use web installer that *just worked*. MySource spit out a bunch of permissions errors (even after chmod -R 777 *) and told me I had to run .php files from the command line. Since the other options all installed easily, I decided not to continue evaluating MySource Matrix.

Exponent - I didn't spend very long looking at Exponent. At first, I didn't think it had any documentation b/c it was a bit difficult to find on their site. Maybe it's because they don't have a background set on their site and my browser defaults to gray - making the gray text difficult to read. Even w/o documentation, I was able to navigate around the default Exponent site and figure out how to edit content. It's an easy UI to use, but again I was disappointed to find the "corporate" theme doesn't have a white background. Most good web designers know to set a default background color - and it always annoys me when someone misses this step. It's possible they don't set the background on purpose - like Yahoo does.

The deal-breaker with this CMS was that I couldn't edit any files w/in my browser to change anything (all I wanted was a white background). While it's theme management and templating looks powerful - it's another file-based system where you have to configure everything and then upload it. I agree that this is likely the path that web designers will want to use to get started - but I think it's important that files can be tweaked on-the-fly. Using a good FTP tool is certainly an option, but I'd prefer theme-editing to be part of my CMS. The one thing I did like about this CMS was the clean URLs. Granted, they aren't static-looking by any means, but having a simple ?section=# seems cleaner than the multiple parameters that other systems use.

Drupal - This CMS seems to have a lot of things I want/need as first class citizens. A blog, news feed aggregation and the ability to provide pretty URLs (aliases) for more cryptic CMS-type URLs. I couldn't get the URL aliases to work, but I suspect I was doing something wrong and didn't give it enough attention. I didn't spend a whole lot of time with this CMS, but rather just browsed around the admin interface and read a bit about how to create themes. I installed the PHPTemplate engine, but never installed any themes. When I found out I couldn't edit any of the uploaded templates contents, I started to get discouraged by Drupal. One thing I found disappointing, with both Drupal and Joomla, is they seemed to hard-code my server name into many of their URLs. When I installed these applications on my PowerBook, I used "localhost" for the server name. When testing out things from my Windows box, I couldn't even login to Drupal b/c it kept redirecting me to "localhost". Joomla had a similar problem with localhost, except that it only screwed up stylesheet paths. I was still able to administer the application.

Joomla - My time with Drupal was short-lived, mainly because I was itching to start playing with Joomla - which I've heard a lot of good things about in the past week. Furthermore, it's got a really good-looking administration UI. It's the type of UI that a designer would look at and appreciate. When trying to edit pages from my Windows box - everything worked, but I couldn't save the page. No JavaScript errors or anything, there was simply no reaction. Editing pages and content from my PowerBook solved the problem. I was able to easily create a simple theme that looked like virtuas.com and upload it. The theme isn't perfect, but it was easy enough to create using the Velvet theme from Joomlashack.com as a template. The weird thing about Joomla, at least with the default install, is there's no notion of pages. Everything is some sort of news item. In the pages I created, I was also unable to remove all the authoring notation and other junk that I don't want to show. The admin UI had options to remove the stuff, but even after "applying" the changes, they still showed up in the reader view.

It's now 1:30 a.m. on Monday morning and the last three CMS's definitely didn't get the attention they deserved. Nevertheless, I think they're the best of the bunch. Not only were they much easier (and quicker) to install than the Java options, but their UIs are also good-looking and easy to use. Drupal and Joomla both seem like excellent choices. Drupal seems to be more of what I'm looking for since it has all the features I want, and allows aliasing of URLs to make it appear like a static site. However, Joomla is a lot more eye-catching and that alone makes me want to use it. Neither of these CMS'es seem to have a full-featured blogging engine, at least not one that's as good as Roller.

Conclusion: I'm going to recommend we use Joomla, and look into doing some URL Rewriting to pretty up it's URLs. I doubt there's a whole lot we can do, but I'd like to figure out a way to make them a bit more search engine friendly. Drupal seems like an excellent choice as well, but the fact that I can't edit templates from the UI kinda sucks.

Thanks for listening y'all - all your comments and feedback during this evaluation have been great.

Posted in Open Source at Sep 26 2005, 01:32:58 AM MDT 27 Comments