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 "framework". 558 entries found.

You can also try this same search on Google.

Struts Roadmap

Are you a developer using Struts? If so, you might want to checkout the Struts Roadmap. You'll notice that in 1.2.x, they plan to Encourage the use of XDoclet and other code generation technologies to streamline development. Cool - but being that's it's been over a year between 1.0 and 1.1 (still not released), I wouln't hold your breath for this. I think Struts would really shine if it could be easily integrated with a persistence mechanism (or framework, whatever you want to call it). Of course, this goes for any UI Framework - the easier it is to develop with, the more fans you'll get. Then again, if you're lucky enough to not have to worry about the persistence layer - who cares!

Posted in Java at Nov 27 2002, 01:07:40 PM 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

Denver JUG Meeting and Struts

The Struts Framework I managed to attend the DJUG meeting tonight (as I wrote this, time slid past midnight - oh well, it looks better on a new day). I arrived early for the Basic Concepts meeting and stayed for the Main Event. Both sessions were focused on Struts - the first being a very basic overview of MVC and Struts, and the second highlighted the newest features (i.e. Declarative Exception Handling, Validator, DynaActionForms). Like I said earlier, I wanted to meet Sue in person, so that's why I got there early. I introduced myself and she actually seemed to remember me (from the e-mails). I confirmed that she really did remember me (or she faked it quite well) at the end when she signed a copy of her book (that I won) - she asked me if I spelled my name with one "t" or two? Cool! BTW - do you know anybody named "Mat?"

When the DJUG Prez asked if anyone was looking for work, I raised my hand and said a few words about this site and Roller. I doubt anyone will find this site though; I didn't see anyone writing my domain name down, and how the heck do you spell "Raible?" So to offer a little Google love, here are a few different versions: Rabel, Riable, Raibel, Raybel, Rable, Raybell. If I was really bold, I guess I could send an e-mail to the DJUG Mailing List. I think I'll have to pass though, I'm just not that forward of a guy.

The meeting was packed, probably a 100 people showed up - most they've had in long time from the way they were talkin'. It was at DU, my Alma Mater, so it was fun to visit the ol' stompin' grounds. I had Mini-Me with me and found the DU Wireless network, but it required VPN software to get in (and my old id/pass didn't work to d/l the software).

Sue was a good speaker and did manage to impress me with her Struts knowledge. I didn't know that she is a contributing author of the JSP and Servlets column at O'Reilly's OnJava.com, nor that she's got a list of seemingly great publications. I tried to give her a tip about XDoclet, but she said she already knew about it and was planning on mentioning it in her preso. Doh! She really put me in my place. The best part of her presentation (for me) was the declarative exception handling, which I tried to implement on my current project, but it was too immature and buggy at the time. I think it's time to re-examine and refactor.

As a service to my readers, and possibly to readers from the meeting, here is a whole posse of good Struts links:

I'd love to see some weblogs published by Sue or Chuck (Cavaness) - it'd be great to see more Struts Evangelists in the blogging community. The next meeting should be good. Marc Fleury, founder of JBoss fame is going to be speaking.

Posted in Java at Nov 13 2002, 06:58:45 PM MST 3 Comments

Sun ONE App Server 7

I downloaded and installed the Sun ONE App Server 7 this morning (on WinXP). Install was about 100 times easier than they used to be. I actually became an expert at installing iPlanet because they asked you so many damn questions, and answering one wrong could screw up your whole installation. I must've installed iPlanet 2.1-6 over 200 times! Good to see that almost anyone can do it now. My first test was to see if the struts-example app ran properly. I'm happy to report it did - with no errors visible on the UI. This is the first Sun app server release that this is possible on. Here's what I had to do in the past to get Struts running on iPlanet. I did see two errors in the log file while running Struts though:

WARNING: Error: JAXP SAXParser property not recognized: 
http://java.sun.com/xml/jaxp/properties/schemaLanguage

and

INFO: Processing a 'POST' for path '/saveSubscription'
SEVERE: Database save
java.security.AccessControlException: access denied 
(java.io.FilePermission D:\Tools\Sun\AppServer7\domains\domain1\server1\
applications\j2ee-modules\struts-example_1\WEB-INF\database.xml.old 
delete)

I'm sure both of these could be easily fixed with a little digging. The admin UI is much better - now an HTML UI rather than a Swing UI - appears to be powered by JATO. Deploying was super-simple, browse for WAR file, click upload. I especially like the option to pre-compile all the JSPs.

In other news, I attemted to use an Atomz (free) search engine last night to index this site, and it appears I have too much to use the free (500 page) service. I might try it anyway, but here's my stats:

Your site is larger than the index size limits that our Express product allows.
...
It took 1 hour to crawl 2324 pages and index 510 pages containing 448497 words for a total of 52432830 bytes. 6112 word endings, 0 synonyms, and 3350 sound-alike words were included in the index.

Posted in General at Oct 29 2002, 03:45:12 AM MST Add a Comment

Testing Javascript.

I found JsUnit this morning. JsUnit is a Unit Testing framework for client-side JavaScript.

  • JsUnit uses exception handling, which means we need JavaScript 1.4 or higher. That means that the browsers supported are Internet Explorer 5.0 or later, Netscape 6.0 or later, Mozilla 0.9 or later, and Konqueror 5.0 or later. JsUnit has been tested for:
    • IE 5.5+, on Windows NT, Windows 2000, Windows XP, Windows 95, Mac OS 9, Mac OS X
    • Mozilla 0.9.4+ on all platforms (includes all Gecko-based browsers including Netscape 6.2.3+ and Netscape 7.x)
    • Konqueror 5+ on KDE 3.0.1 (Linux)

Now you should have enough testing frameworks to triple the timeframe of your project...

Posted in General at Oct 21 2002, 04:40:48 AM MDT Add a Comment

Macromedia Flash Remoting MX Released.

From theserverside.com:

Macromedia today announced Macromedia Flash Remoting MX for J2EE AppServers (and also for .NET). Flash Remoting MX allows you to connect any J2EE-backend (EJB's, JMX, Servlets, java classes) to new GUI written in Flash; it was already used to create a new Petstore GUI on top of the original Petstore EJB layer. [ press release ]

The interesting thing about this product is that it seems to be app-server agnostic. Here are the system requirements:

Microsoft .NET Support
· Intel Pentium II processor or faster
· 256 MB RAM (512 recommended)
· 5 MB hard disk space
· Microsoft .NET Framework v1.0 SDK
· Windows 2000 Server SP2
· Windows XP Professional
· Macromedia Flash MX
· Macromedia Flash Player 6,0,47,0, or later
Java Support
· 256 MB RAM (512 recommended)
· 5 MB hard disk space
· Windows NT Server 4.0 SP6a
· Windows 2000 Server SP2
· Linux: Red Hat 7.3 or SuSE 7.3
· Unix: SPARC Solaris 2.7, 8
· J2EE 1.2, 1.3
· Servlet 2.2, 2.3
· Macromedia Flash MX
· Macromedia Flash Player 6,0,47,0 or later

A 5.64 MB Download. It troubles me that it's a trial download though. That means that Macromedia is going to charge me if I ever want to use this. In other Macromedia news, they sent me an e-mail today asking me if I wanted to be a beta tester for HomeSite 5.2! My fingers are crossed for Java support.

Posted in The Web at Sep 23 2002, 07:37:07 AM MDT Add a Comment

Eclipse plug-in for Cactus?

It's on it's way! Vincent Massol sent a message to the cactus-user mailing list today asking for ideas and help. If you're an Eclipse plug-in developer, or use Cactus and want to "get involved" - see Vincent's initial thoughts. Personally, I love Cactus, StrutsTestCase, and JUnit. They've all made my development life a lot easier (when they work). I'm constantly on the bleeding edge of Struts development, and StrutsTestCase seems to always break when I download a nightly build. Now if I could only convince myself to write more HttpUnit tests (or maybe use Solex), so I don't spend so much time trying to get my UI to load and look right. Anyone know of a CSS and Layout Testing framework that tells you that your colors need tweeking or your layout won't work in IE5/Mac? I could use that framework!

Posted in General at Sep 03 2002, 10:13:59 AM MDT Add a Comment

StrutsTestCase 1.8 Released

I missed this one by a long shot (released 7.17.02), but I'll tell you anyway. StrutTestCase is a shortcut to using cactus to test your Struts Actions. Use it, it will descrease your development time.

I also am a little partial to this release since I helped Deryl get it working with LookupDispatchAction and Tiles. He did a great job in getting it all to work after I sent him the bugs. I had the easy job ;)

StrutsTestCase for JUnit - release 1.8
--------------------------------------

This release introduces improved support for Struts 1.1,
provides several requested enhancements, and fixes many
reported defects.

The StrutsTestCase library is now available as four distinct
releases supporting both the 2.2 and 2.3 versions of the 
Servlet specification, and both the 1.0.x and 1.1 versions
of the Struts Framework.

The StrutsTestCase library supports Struts 1.1b1 and the
latest nightly builds, as well as Cactus v1.3 and JUnit
v3.7.

Posted in Java at Aug 05 2002, 01:03:10 AM MDT Add a Comment