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.
You searched this site for "<a href=". 3,022 entries found.

You can also try this same search on Google.

Hibernate In Action - First Chapter available for review at TSS

If you use Hibernate, or want to learn more about it, this is probably a good read. If you just had lunch, you might want to get a cup of coffee or tea (preferably caffeinated), ORM can be a pretty dry topic. Maybe I just need one since I just got back from lunch (and the closing on our Morrison house). My contract is ending soon (this has been confirmed) and I have nothing to do but cleaning up Javadocs - which is even drier than ORM.

TheServerSide is pleased to announce that it will be hosting a public review process for 'Hibernate In Action' (Manning), by Christian Bauer and Gavin King. The first chapter, 'Understanding object/relational persistence', introduces object/relational mapping (ORM) and compares it to other persistence mechanisms, such as self-made persistence layers and object databases.

Download and Review the first chapter: Understanding object/relational persistence.

Posted in Java at Jul 29 2003, 02:25:43 PM MDT Add a Comment

RE: Mozilla Firebird 0.6.1 released

You know it's going to be a good day when one of your primary pieces of software has a new release:

Mozilla Firebird 0.6.1 has been released. People who have been staying away because of the auto-complete crash bug, or have been annoyed like I was (but still stuck to Firebird for it's redeeming qualities) will be pleased to know that bug has been eliminated.

Sweet! I hated the auto-complete crash bug, and it bit me many times. I tried a nightly build yesterday and the browser didn't work at all - it crashed whenever I tried to do anything. I'm expecting great things from this build - can't wait for 0.7.

Posted in The Web at Jul 29 2003, 06:38:16 AM MDT 4 Comments

Monday Morning Mayhem

My Inbox was attacked over the weekend with all kinds of good links and fun stuff to post. So here it is:

  • LogWeb was released. A fully functional web interface for the runtime configuration of log4j within servlet containers and j2ee application servers. I won't use it, as I've never been inclined to change my logging configuration at run-time. And if I do need to change it, reloading my app isn't a big deal with Tomcat. Although, it might be nice to view your apps' configuration with this tool.
  • Mozilla and XUL for Cross-Platform User Interfaces, a Tutorial. Quick, easy and works with Mozilla Firebird. I did the examples.
  • StrutsDoc 0.3 was released. StrutsDoc is an Ant task that generates JavaDoc-like documentation from a Struts configuration file. StrutsDoc currently only supports the 1.1 version of Struts. [StrutsDoc Example] This might be helpful for documentation (a.k.a. impressing management) and bringing new developers up to speed.
  • Rowell has approved the use of his theme in Roller. I'll make sure and add a "designed by Rowell Sotto" to the bottom of the theme. Theme names are welcome. Currently, it's named "sotto."
  • Tomcat 5.0.5 Alpha was released. I'll comment here later today.

The best part of the day (so far)? My bike ride to work went from 1 1/2 hours (one-way) to 45 minutes - I just gained an hour and a half in every weekday!

Posted in Java at Jul 28 2003, 08:46:33 AM MDT 1 Comment

Raible Designs Headquarters has moved

I moved all Raible Designs' computer equipment to its new HQ tonight. Boy do I need to get a flat panel monitor - those 19" behemoths are ridiculous. The nice thing is, since we got our internet service hooked up last week, all I had to do was hook up my wireless network and turn on Mini-Me, and voila - connected. Smooth transitions are nice.

Posted in General at Jul 25 2003, 09:21:14 PM MDT 2 Comments

The wait begins...

Expected delivery date: August 8th

  • 3.06GHz Intel Pentium 4 Processor w/ HT
  • 512MB PC2700 333MHz DDR RAM SODIMM
  • 512MB PC2700 333MHz DDR RAM SODIMM
  • 60GB 7200rpm Ultra ATA Hard Disk Drive (Hitachi 7K60)
  • Toshiba SD-R6012 1X DVD-R/W Drive w/ DVD Recording Software
  • ATI Radeon 9000 Mobility 64MB (w/ TV Out)
  • Built-in 3D Sound System w/ 5.1 Channel S/PDIF
  • Integrated V.92 56K Fax/Data Modem
  • Integrated Realtek RTL8139C Fast Ethernet Controller & 802.11b Wireless LAN
  • Aviator ZX7 in Silver and Graphite
  • 17" WXGA WIDESCREEN High Contrast Active Matrix LCD Display
  • Internal Bluetooth Module
  • Internal Subwoofer Speaker Module
  • MS Windows XP Professional SP1 CD & Manual Pre-Installed & Configured
  • 3Year 24/7 Toll-Free Tech Support Platinum Service & Lifetime Support
  • Guaranteed shipment within 10 days of order

#1 reason to switch back? Speed, and lots of it. ;0)

Posted in General at Jul 25 2003, 04:26:43 PM MDT 12 Comments

Hypersonic vs. Alienware

As I mentioned a couple days ago, I'm looking to purchase a new laptop. Why? Because I might get a contract that requires me to provide my own machine. It's happened before, and on this contract my machine sucked when I started. Sure I could use my slow-as-molasses Powerbook (667 MHz, 1 GB RAM), but I'd rather buy a Windows laptop. Besides, it's not about the machine's productivity as much as my productivity on it. I'm faster on Windows, so I should buy a Windows machine to pack to client sites. Mini-Me (the Powerbook) will be adopted by Julie, where I'm sure it will be in good hands. I still plan on using it a fair amount, but she's been known to tell me "Keep your damn hands off my computer!" ;-)

So, to do some more research on the Alienware Area-51m and the Hibersonic Aviator ZX7, I sent each company an e-mail. The e-mail was pretty simple, and I just switched the order of things for each company:

I'm looking to purchase a new laptop and right now I'm down to making a 
decision between your 51m (http://alienware.com/system_pages/area-51m.aspx) 
and Hypersonic's ZX7 (http://hypersonic-pc.com/ZX7).  Can you tell me why 
I should buy your product over Hypersonic's?

About 10 hours later (a little slow, don't you think), I received the first reply - from Hypersonic.

Fair enough, Hypersonic has a Customer Satisfaction rating of 7.79, but less than 20 reviews in the last 6 months. Alienware, on the other hand, has a 7.78 Customer Satisfaction Rating. So they're very close there. However, on the lifetime rating, Alienware is 7.63 (275 reviews) and Hypersonic is 9.17 (48 reviews). When I first started this comparison, I liked the Alienware machine better because it has 802.11g and because I've heard of the company before. I'd never heard of Hypersonic, but the ZX7 did have built-in bluetooth, a 17" monitor and a (supposedly) kick ass sound system. I don't travel, and if I do, it's usually for pleasure and I can always take Mini-Me.

So I replied to the Hypersonic e-mail above.

And I recieved a reply 6 1/2 hours later:

All good answers to my questions. So I'm feeling pretty good about Hypersonic at this point, and still haven't heard from Alienware. And then I got a response from them, almost 30 hours after I sent my original e-mail. It took about 4 sentences for me to realize they were just sending me a standard form-letter, filled with arrogance.

In the end, both still sound good, but I like the Bluetooth, 17" screen and sound system on the Hypersonic. I decided last night that I should probably buy this now, instead of waiting for a new contract. I want one too bad to pass up the opportunity (and it's a business write-off). At the new house, Raible Designs' HQ will be in the basement, so we'll be relying on our 802.11b network to surf the web, check e-mail, etc. from upstairs. I moved to two computers years ago because Julie and I would fight over one. It's bound to happen again unless we have two wireless laptops. How's that for justification?! I'm saving our marriage! what a good husband

Posted in General at Jul 25 2003, 08:53:20 AM MDT 4 Comments

New Theme for Roller?

I found Rowell Sotto's blog today via David Czarnecki. I immediately fell in love with Rowell's Moveable Type theme, and decided to implement in Roller. It was actually pretty easy. Check it out on my test site at http://raibledesigns.com/page/test. Things to do:

  • Get Rowell's permission to use it, and include it in Roller's default themes
  • Figure out what font the top logo uses and come up with an HTML-friendly equivalent

Good stuff - awesome theme Rowell!

Posted in Roller at Jul 24 2003, 05:16:47 PM MDT 10 Comments

My Next Gig?

I don't know what my next gig will be yet, but my current one is about over. They gave us a roll off date of August 15th and it looks to be pretty firm. They're trying to get a budget approved until Q1 of next year, but it's a slow process and politics-oriented place. So if you know of anything in Denver, or via telecommuting, let me know. You can also check out my resume [MS Word - updated version]. Damn, I wish I had struts-resume done so I could use that. If I'm out of a gig on August 15th, that might be some good motivation to finish it.

Posted in Java at Jul 24 2003, 10:48:07 AM MDT Add a Comment

Roller Searching - Powered by Lucene

Lucene Logo

Thanks to Min, we now have searching in Roller. He wrote a wicked-ass Lucene implementation using the util.concurrent package from Doug Lea. Here's how it works:

  • When Roller starts, it checks to see if the index is OK, and if not, rebuilds it. The index then goes into RAM and stays there until you destroy the servlet context - then it's written to disk. The location is configurable, but defaults to $(user.home} + File.separator + "roller-index".
  • A user's index is updated when they add/delete weblog entries.
  • A user can rebuild their own index via a button on the Website Settings page.
  • An Admin can rebuild a user's index from the "Admin" page and rebuild all users' indexes from the Config page.
  • The IndexManager is the central entry point, and it lives in RollerContext.getIndexManager(). For indexing, searching, etc. you use one of the following operations:

    - AddWeblogOperation
    - RebuildUserIndexOperation
    - RemoveWeblogOperation
    - SearchOperation

    After creating these ops, set any op-specific configuration options and then pass it to the IndexManager.executeIndexOperation() method.
  • Behind the scenes, there is an background thread running. This thread only performs one operation at a time. If an op is added when the thread it busy, the op will be queued. The way Lucene works is that most operations can be threaded. Lucene supports the concept of add, delete, read, query, and optimize. The only methods that cannot be active at the same time are IndexReader::delete() and IndexWriter::add(). Therefore, the operations that perform these operations are put into the background thread queue that garantees that these ops wont be performed at the same time. Searching doesn't interfere with these ops, so it can be run in any thread.

I created a #showSearchForm macro that renders a <form> with a textbox (size=20) and a "Search" submit button. I also added this to all the current themes - so if you developed a theme for Roller - you might want to check it out (username: test, passwd: roller). You can edit it right on the site if you want, then copy/send me the adjusted files. CSS seems to need the most tweaking for these to look right.

Please enter any bugs/enhancements in Roller's JIRA instance. The only one I've seen so far is that a user has to build their index manually before they get any search results. I don't know that this is a bug, just wanted to mention it. Doesn't get comments yet either - a NPE from weblogMgr.getComments() (when adding a new post) kept me banging my head against the wall for an hour - so I commented it out.

Try it, you might like it. ;-)

2 minutes later: Here's a bug - if you update an entry numerous times, it will get presented as numerous times (should be deleted and re-indexed).

Posted in Java at Jul 22 2003, 11:41:59 PM MDT 2 Comments

RE: The Door Is Ajar

no IE Tim Bray (founder of XML) has posted a blog story titled "The Door Is Ajar" that is a call to arms for building a better browser and leaving the Internet Exploder era behind us. Down with IE. I support this even thought Mozilla Firebird just crashed as I was trying to write this. Now I'm using IE because it doesn't crash nearly as much as Firebird. Can't anyone fix the "I crash when I give you remembered drop-down choices" bug? It's been crashing my Phoenix/Firebird installations since the beginning (on different machines, all Windows boxes)!

Posted in The Web at Jul 22 2003, 02:01:45 PM MDT 5 Comments