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 "suck". 89 entries found.

You can also try this same search on Google.

Another Example App and Job Hunting in Florida

I released another example app today - security-example 1.0. This is basically the example app for the "Web Application Security" chapter I wrote for Wrox. There's nothing ground-breaking in it, and in fact, it's just a stripped down version of struts-resume. It'll probably only be useful for those folks that buy the book. For those that choose not to, but still want an example, I invite you to download struts-resume. Regardless, here's the release notes for security-example 1.0:

Features in 1.0
===============
Allows user to login using different Tomcat Realms.  Sample realm configurations
are located in metadata/web/tomcat-context.xml.  Wrox's Professional JSP 2.0, 
Chapter 13, describes how to setup a MemoryRealm, a JDBCRealm, a JNDIRealm
and a JAASRealm.  

Retrieves user's information from a MySQL database using a Filter and Container
Manager Authentication.

"Remember Me" Feature using cookies.

Encrypted passwords using native Tomcat feature or programmatically.

Advanced build/deploy process using Ant and XDoclet.

SSL-based login, optional switch back to regular http after logging in.

For more information, and a further developed example application with these
same features, see struts-resume at http://www.raibledesigns.com/downloads.

It feels good to finish up these example apps for the book. I'll keep developing struts-resume, but I'm going to take some time off to enjoy my evenings/weekends and tone down my moonlighting for a week or two.

My latest and greatest passion will be trying to find a job/contract in Florida. I realized this evening that this doesn't necessarily mean that I have to work for a company in Florida - I could telecommute. However, it is tough to convince companies/clients that this is a good thing. In general, I think I get a lot more done telecommuting (I did it for all of 2002) - but I definitely enjoy an office environment more. Being motivated and inspired to do your job, and collaborating with co-workers can be huge for morale. On Friday, a co-worker and I integrated some stuff we'd been working on for weeks, and it felt awesome once we got it working. The best part - we'll still be pumped about it tomorrow when we give a demo.

I did some research today and conducted a search for Java User Groups in Florida. I found that there were two folks interested in starting groups in West Palm Beach (where we want to live) and in Ft. Lauderdale. The only existing user group I found was the South Florida Java Users Group.

Their February Meeting looks OK, but if I lived there, I'd probably pass. It doesn't seem like they're getting nearly the caliber of speakers we're getting in Denver. To me this says a few things: (1) it could be an opportunity to inspire a JUG to get (or help them get) better presentations, (2) it's gonna suck to move to Florida from a vibrant Java Community, or (3) it's gonna be tough to find a gig there. I think I'd better buck up and only focus on #1. Wish me luck - know anyone that's hiring (my resume)? ;-)

Posted in Java at Mar 02 2003, 10:28:25 PM MST 2 Comments

Roller Development Sidelined

Unfortunately, I won't be working on Roller tonight like I'd hoped. It's 9:30 right now and I'm just finishing up my first release at the new job. I'd rather not pull an all-nighter after working a 50-hour week in 4 days. Ugh - I'm burnt. Good to be done though - and the customers here (internal) are really excited about using a webapp to do their jobs.

Sorry Roller, you're going to have to wait a while for my features. I'm planning on taking my PowerBook, but I won't promise anything. The last time I took it on a trip and tried to get some work done - it was brutal. I was up until 6:00 a.m. trying to finish my first release for the last project I was on. I gave up and slept for an hour - hoping to finish it up on the plane. Needless to say, I suck developing on a Mac and it took me all the way until Monday morning to release. The client was furious and the project almost ended right then and there. I tried to quit, but they wouldn't let me.

It's kinda funny that it's been almost a year since then, and I'm in the same situation again. Luckily, I finished before my plane took off this time! I wish I could work on ya Roller, but I need a vacation... Phew - off to Florida!

Posted in Roller at Jan 23 2003, 09:41:21 PM MST 1 Comment

The Road to Happiness

As you may have noticed, I didn't write anything on this site yesterday. Believe me, I wanted to, especially after reading this call to arms for Struts Developers. But instead, I did some work on my New Years resolution. First I went to the gym and played basketball (yeah, you really wanted to hear about that ;-) with one of greatest friends, Shane Murphy. Then I came home and relaxed a bit. As I was getting ready to jump on the ol' computer and blog about how much I loved Hibernate and such, Julie asked me if I'd change Abbie. I said "Sure!" As I was changing her, she smiled at me and giggled. If you have children - you know how cool this is - especially when it's one of the first times. She started smiling a couple of weeks ago - but now you can tell she really means it. So I said, "happiness it is," and I read her a story (Father's Flying Flapjacks) and played with her for a good hour. We were sticking our tongues out at each other and had an awesome time. She is the coolest kid in the world! What an sweet way to end the day. I'm happy to say that I ended up falling asleep (with Abbie on my arm) without getting on the computer.

Posted in General at Jan 10 2003, 09:44:29 PM MST 2 Comments

Design Patterns, Marc Fleury and JBoss

I just got back from the Denver JUG meeting and have lots to talk about. I've started this post at 11:03 p.m., for the record. I want to start out with discusssing a topic that Dave and I talked about a few days ago. Basically, in his Ag application, he is using one Business Delegate and one DAO to do all his business logic and data access. Actually, he's got two DAO's, one for Hibernate and one for Castor. Basically, the DAO is determined at startup, set on the Business Delegate and then stuffed into the servlet context. While Ag is a small application, it got me thinking. I believe the recommended pattern for this is to have a Business Delegate for each entity, as well as a DAO. So for a user, you would end up with 4 classes, UserManager/UserManagerImpl and UserDAO/UserDAOHibernate. So everytime I add a new entity, i.e. account, I have to create 4 new classes. What a pain, and a lot of copy and pasting - or at least that's how I'd do it.

Dave's KISS methodology at first struck me as strange, but then I thought, "Damn, that's a lot easier." So now in AppFuse (reference implementation: security-example), I changed to use this idea - with a BusinessManager/BusinessManagerImpl and ApplicationDAO/ApplicationDAOImpl. The idea is that these will contain any and all methods to access data.

I went to the DJUG meeting still struggling this this pattern, feeling like it stunk and I should back it out and go with a factory pattern and a business delegate/dao for each entity. However, during Marc Fleury's presentation, he preached that one of the founding rules of JBoss was KISS. He said that the greatest thing about open source is that no one will ever even look at your code until it's broken. "And how bad does it suck when you have to look through 5 levels of inheritence to figure out the problem?" He mentioned that bad code was his favorite, because chances are - if there's a bug - it'll be staring you in the face, rather than buried inside some design patterns and 10 different classes. I agree, so I'm going with KISS, but I'm also interested in hearing your opinions. I like the current architecture of AppFuse because it sets the business manager on startup, stores it in the servlet context and is available for everyone to use at any time. There's nothing saying that I couldn't set a SessionBean (on the business manager as it's proxy) and call EJBs for my persistence layer.

In fact, after Marc's gospel about JBoss, I want to use EJBs. In fact, not just EJBs, I want to use JBoss - and I can't wait for "JB 4." Why? Well they're adding the ability to add all of EJB's services (i.e. Security, Transactions, Persistence) to any POJO. This means that all you need to do is write a little deployment descriptor for it, and whalla, you're in business. His sermon is something you really need to see to appreciate. I can't do it justice in summarizing it here, but I certainly liked what he had to say, and feel like I'm a better person for it. The JBoss Group's goal is to become the de facto standard for application servers. I like their idea that the app server should be free - and the money (usually spent on app servers) should be directed towards smart developers instead. He also mentioned that JBoss Group (the company) is doing great right now and will be spending some cash on Marketing and PR to squash any rumors that it's not good enough.

Marc mentioned that most of the things he talked about tonight are written in his Blue Paper (PDF, 11 pages), titled "Why I love EJBs". It's part 1 of 3, the Blue of the "Red, White and Blue Technology Trilogy."

Other news that I stumbled upon today:

  • JBoss uses JavaGroups, and I've heard you can make work with Tomcat - for clustering and such.
  • The release plan for Struts 1.1 Beta 3 has been committed to CVS, code freeze this Saturday.
  • Ted Husted defends Struts after I posted it's recent criticizm to the mailing list.
  • The xPetstore Application has a new release. xPetStore is a refactored version of Sun PetStore application that shows how to use xDoclet to build WODRA (Write Once, Deploy and Run Anywhere) J2EE application. Tested with JBoss and WebLogic.

Phew, done at 11:44 p.m.

Posted in Java at Dec 11 2002, 05:37:32 PM MST 4 Comments

J2EE 1.4 as Open Source!

Erik gave me the link to this article from The Register. This sounds like big news to me.

Marc Fleury, Atlanta-based JBoss' founder, told ComputerWire yesterday the company has finished its implementation of Java 2 Enterprise Edition (J2EE) version 1.4. J2EE 1.4 is due for official publication by the Java Community Process (JCP) in the first quarter of 2003.

Fleury said JBoss would now seek standards certification for its implementation. JBoss stands to become the first open source group to deliver a version of J2EE 1.4 under the revised JCP.

JBoss received the green light last week, after Sun told ComputerWire that it would allow all of the APIs contained in J2EE 1.4 to be open sourced. Fleury had expressed concern that certain critical APIs, including Enterprise Java Beans (EJB) 2.1, would be not be made available to open source organizations.

That reminds me that Marc Fluery will be speaking at the next Denver JUG meeting. That's Wednesday of this week. The Basic Concepts preso is covering Ant. I could probably skip this as these are usually pretty basic, but I'm expecting the place to be packed so I'd better get there early. Now I just have to see if I can get a few friends to buck up and go. I know a fair amount of developers that don't use Ant - how bad would that suck?!

Posted in General at Dec 09 2002, 04:01:59 AM MST Add a Comment

How I started Raible Designs

Lance sent me an e-mail and asked, "I've been thinking of asking you about running your own business. How do you find new contracts and manage your time?" I replied to his e-mail and before I knew it, I had a story. I tend to enjoy weblogs that talk about their experiences and history, so here's a little enjoyment.

In the fall of 1998, I was working as a contractor for IBM Global Services at CoBank. I worked with a guy who wanted me to help him write a ASP-based dating application. Since I was fluent in ASP, we negotiated a rate and began moonlighting on the project after work. To facilitate me working on the project, I had to purchase a computer (Compaq Presario 5020, 64MB RAM, 300Mhz Celeron), and after the first few payments rolled in, I figured I'd better start a company for tax purposes. The project ended up fizzling out halfway through when the guy decided to re-write the whole thing in Servlets/JSP - probably a good decision, eh? With the income from the project, I was able to pay for the computer, file the paperwork for the business, and start Raible Designs, LLC.

In the midst of that project ending, someone at CoBank knew someone else that needed a website. So my first website (www.ccasla.org) for hire was born. I left CoBank for eDeploy.com and worked there for 2 years (through May 2001) as Director of Web Development. I kept doing Raible Designs stuff on the side for about 5-10 hours per week. You can find some early examples at Karen's Discount Bridal, Raskin & Makofsky and The Swan Ecosystem Center. In mid-April 2001, on the same day that I received my shiny new Dell P4 8100, the 2nd round of layoffs happened at eDeploy. There were only 3 rounds (of layoffs), and they announced the doors would be closing 2 weeks later.

So after frantically searching for a job for 2 weeks, I met with Chris Buzzetta from ICSynergy. Funny thing is that a co-worker of Julie's actually hooked me up with the interview - and everything went smooth at pie. One of ICSynergy's suggestions was that you have your own company - or at least work as a 1099 - so having Raible Designs was a big bonus at this point. I started a project with ICS at Douglas County and found myself in the world of Ant, CVS, Javadocs, and all kinds of other good stuff. In early June, I was tasked with developing a UI Framework for the County's J2EE projects, and thankfully stumbled upon Struts. In July 2001, I converted Raible Designs to an S Corp because I was now doing it full time and needed to enhance my company benefits. The DC project ended in late October. BTW, if you need a great accountant for your business, I highly recommend Lisa David of L & B Accounting.

After leaving Douglas County, I searched like a madman for weeks, but to no avail. I sent out resumes, attended User Group meetings, and e-mailed all my friends looking for a new client/job. I wanted to stay working for Raible Designs, but also needed to keep the income flowing. After finding virtually nothing, I hunkered down and satisfied a bunch of certifications (MCSE/MCDBA 2000, SCWCD, BEA Developer). In mid-December, my e-mails to friends paid off and the former CEO of eDeploy (Robert Gadd) sent me an e-mail. He said he was starting a new e-Learning company, needed a developer to produce their web-based product, and that he wanted to hire me. So it's been 11 months now, and I'm still working for Robert's company. He's been the best client in the world, and the relationship is half the fun. I've kept a close relationship with ICSynergy in the meantime, and they've helped me to get certified as a J2EE and Portal Instructor for Sun. I talked with Martin (ICS's head honcho) today and they might even have a new project for me soon.

So to make a long story longer, I find new contracts the same way that most folks find new jobs. I send out resumes (this hardly ever works), I talk to friends and I talk to old co-workers. I think the best way is to get your name out and get people familiar with what you do. Hopefully, blogging will help facilitate this even further. My partnership and friendship at ICSynergy have certainly helped a lot, and I'll be very grateful if I get my next project through them. I think more partnerships like this are definitely needed. Attending user group meetings certainly doesn't hurt. I've found that my domain name is too hard to remember though, so I bought javawebapps.com (pointed to raibledesigns.com) today. I doubt it's up yet.

As for managing my time, it's now getting very difficult with Julie and Abbie at home with me. It doesn't help that my office is in one of our common rooms, and privacy is not possible. My father recommended to spend as much time with my kids as possible, so I doubt I'll move out into a real office, but I should get my own room - with a door that closes. For the most part, I've had great success with early mornings (4 a.m.) and late nights before a release. I definitely manage my time best when I'm working on something I really like. Of course, then I work too much, and maybe that's not good time management either.

Hope this helps. Feel free to post comments or ask me any further questions.

Update: One important thing I forgot to mention. While I was working at Douglas Country, the Tech Lead on my project was Brian Boelsterli. Brian was a Principal of ICSynergy at the time, and has always been a great friend. He and I used to carpool to Castle Rock everyday, and I learned a ton from him about being an Independent Consultant, a good programmer and a good father. I eventually asked him to be my Mentor, to which he kindly accepted. I couldn't ask for a more valuable resource - he's always been full of great advice. So I encourage you to get a mentor if you know of one - all you have to do is ask.

Posted in General at Nov 14 2002, 03:36:07 PM MST 7 Comments

Broncos vs. Raiders on Monday Night Football

Raiders Suck! Go Broncos! Sweet! There's a great game on the tube tonight. Broncos vs. Raiders (a HUGE rivalry in these parts) in the 500th Monday Night Football game. Go Broncos!

Click on the cute little Broncos Cheerleader (Abbie) for some pictures from this weekend.

Posted in General at Nov 11 2002, 01:38:58 PM MST 2 Comments

iCal Quits - Helvetica Neue Needed!

Denver Today My latest problem in Mini-Me's resurrection is that iCal quits when I open it. According to this article, it's because I've somehow lost my Helvetica Neue font from my /Library/Fonts folder. You would think after my Archive Install, I'd get this back. Harrumph, I've searched my hard drive, searched the Jaguar install disks, and I've even asked folks in the Apple Knowledge Base to send me the font - but no luck yet. So I'm asking you, my OS X-using readers, can you send me this font? Apple's support seems to suck.

Also, I'm jealous of Dave's ability to attend the meeting on Eclipse tonight. Hoping this is a touring preso, I looked up my local Websphere User Group - but it doesn't appear to be coming here.

The picture on the right is for Russell, I bet he wishes he was in Denver right now - 6 inches and counting!

Posted in Mac OS X at Oct 29 2002, 04:25:01 PM MST Add a Comment

Roller Referrals and NetNewsWire Images.

I found out today that my referrals get reset to 0 when my website crashes. Doh! Oh well, it was interesting to see that most of this site's hits come from Google, or at least they did today. I don't want to record them for historical purposes anyway, that's what these stats are for.

I also figured out the problem with displaying images in NetNewsWire - you have to use an absolute reference (i.e. http://yoursite.com/images/... vs. /images/...). I'll see if I can get Brent to change this, how bad would it suck to move your site to a new domain and lose all your images?! This first issue in this bug has been solved by Roller 0.9.6. Looks like Ranchero Software needs to use JIRA, you can't update or comment on a bug once it's entered!

What else am I doing tonight? Drinking a Fat Tire, cooking some Rosemary Chicken for dinner and getting ready to watch the World Series. Go Angels! I really don't care who wins, but I bet my mom $10 since she wanted the Giants to win. My mother-in-law is coming into town tonight, so it might be a light blogging weekend.

I tried to make this site XHTML-compliant by escaping the HTML in the bookmarklets. This caused Javascript errors, so this site will simply have to remain invalid for a few days.

Posted in Roller at Oct 24 2002, 12:47:09 PM MDT Add a Comment