Matt RaibleMatt Raible is a Web Developer and Java Champion. 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.

Windows 2003 Server for $45

I won't be going, because frankly I'm not that interested in the next Windows Server. I've evolved as a computer professional - a year ago, I couldn't wait to get my hands on the latest Windows betas, and I always had them installed. It helped that the company I worked for had a MSDN subscription and I was always pursuing the next Windows certification. Now, I don't care so much about operating systems. Actually, I probably do care, just not this week. I never use my Red Hat box, because I don't have to - it just runs - I never have to tinker with it. Same goes for my Windows XP box. My OS X laptop is a different story - iPhoto is screwed up and Mail doesn't work. The lack of broadband keeps me from attempting to fix it. My ISP is sending folks out tomorrow, so hopefully it will be fixed. Anyway, back to the reason for this post. I got the following e-mail today - if you want Windows 2003 Server, it's quite a deal.

The RMWTUG (Rocky Mountain Windows Technology User Group) has permission from Microsoft to offer a special deal on Windows 2003 software. Anyone can get a 5 user nfr copy of the released Windows 2003 Server Enterprise Edition (about $2,500 street price) if they attend the 2003 launch, join the RMWTUG ($45) and attend our May meeting. If this sounds like a deal (and it is unless you are wearing a penguin suit), check www.rmwtug.org for details.

Posted in General at Apr 16 2003, 09:55:33 PM MDT Add a Comment

Cool Customer Service from AT&T

I have AT&T Wireless for my cell phone service. I was surprised tonight when I dialed 411. I asked the lady for the number to Brook's Steak House, which is a privately owned (non-corporate) steak house in Denver. We've always seen it advertised in airline's magazine, so we thought it'd be fun for our 3rd anniversary. The lady said to me, "would you like me to make a reservation for you?" "Sure!" I said. She took down my name and the time I'd like for my reservation and said she'd call me back in a half hour. It took an hour, but she called me back and we're booked for Saturday night. I even asked and it's part of my plan - no charge. Swwweeeeetttt!

Posted in General at Apr 16 2003, 07:50:29 PM MDT Add a Comment

MailTo: Links

I created a mailto: link today for our app at work. I used this page and Hiveware's Enkoder Form to hide the e-mail address from spammers. I even added a little browser information - since clicking on the link will send an e-mail to the help desk. Pretty cool - view source to see how I made the link below work.



Posted in The Web at Apr 16 2003, 01:05:01 PM MDT Add a Comment

My Roller To Do List

I'd like to add some additional features to Roller. Don't worry, I won't add them for a couple weeks (if I add them at all - being a Dad and husband is way more fun and satisfying than being a developer). Dave is imposing a code freeze this weekend and I don't want to mess anything up for the 0.9.7 release. Especially since we really need to get a release out - there hasn't been one since November 2002! Here's what I want to add after the release:

  • Joe Hewitt-style comments. Big surprise - it doesn't work in Opera 6/7. I'm not surprised as I despise that browser and pity anyone that uses it.
  • Use Tiles for the Editor layout and implement the Validator for validating fields. With the latest XDoclet, this will be a breeze, but could cause issues with the UI, so a good idea to implement after the release. A good strategy for implementing this would be to write a bunch of test cases with StrutsTestCase for Actions and Canoo's WebTest for JSPs.
  • Possibly this idea for highlighting entries added in the last few hours.
  • Implement struts-menu as an optional menu in the Editor to reduce the number of clicks to get to a page.

Unfortunately, none of these are on the fix me, I'm a popular bug list. Aaaahhh, the beauty of open source development: 1) you don't have to work on it at all if you don't want to, 2) you only have to implement the features you want, and 3) there are no deadlines.

Of course, if Roller's goal is to be the most popular Java-based blogging software, then squashing the bugs on the popular list is probably the best thing to do, but I don't think that's Roller's goal. I believe Roller's goal is to provide a learning environment for Java developers to tinker with. Besides, I think blojsom will win the popularity contest. Why? Because it's easy to setup and Roller isn't. Roller doesn't have chance until it can be setup in 5 minutes or less.

Posted in Roller at Apr 16 2003, 10:24:32 AM MDT 2 Comments

What I learned from this weekend's re-design

This past weekend, I re-designed the Content Viewer's interface I wrote for OnPoint Digital. The major motivation behind the mini-project was to make the CV compatible with IE 5.5 and Opera 6 on Linux. It was a nightmare because of the lack of DHTML support in Opera, and also because of IE. So I came to the conclusion that I hate IE, Opera and Safari. My main reason is because they do everything so different - why don't they adhere to standards (Mozilla does)?! It makes web development so much harder when you have to test 5 browsers on 3 platforms. Hopefully I'm a better developer from the experience, and here's a short list of things I learned.

  • The CSS rule "position: fixed" doesn't work in IE, but works in all other browsers. This is a great rule, allowing you to pin an element to a location in a page. For instance, you can have a floating menu or footer using this. You can achieve similar functionality in IE using CSS Expressions (a non-standard extension). For instance, to keep a footer at the bottom of a page, you could use something like this:

    div#footer {
      position: absolute;
      top: expression(document.body.scrollTop + document.body.clientHeight - offsetHeight);
      left: expression(document.body.scrollLeft + document.body.clientWidth - offsetWidth);
    }

  • If you're using standards-compliant mode in IE 6, you have to use document.documentElement in place of document.body above.
  • Using standards-compliant mode in IE with frames will just create headaches for you and you'll end up with a horizontal scrollbar unless you make the body's width 95%. An easier way is to remove the doctype and not go with standards-compliant mode.
  • If you're supporting IE 6 and IE 5.5, remove the XHTML doctype (which makes IE 6 standards compliant) - this will make the two browser's behavior more consistent.
  • Opera 6 doesn't recognize the "background: transparent" css rule for <button>'s.
  • Opera 7 doesn't recognize the "width: 65px" css rule for buttons. Maybe this is only when you have an image on the button. I found that my buttons in Opera 7 were only as wide as the images on them.
  • In Opera 6, you can't copy the contents of one <div> to another <div>. With all the other browsers, it's easy using document.getElementById('divId').innerHTML. This does not exist in Opera - I'm still hoping to find a similar way of doing this.
  • Opera 7 and Safari have strange position bugs or maybe they're more standards-compliant than the other browsers, but I doubt it. In Opera 7, I have a buttons div that ends up at the top left corner of the header, when they should be aligned more in the middle and 100px from the left. In Safari, this same buttons <div> stacks the <button>'s on top of each other, rather than side-by-side, like you'd expect a row of buttons to look.

I'm glad I don't need to support Opera 7 or Safari for the app, but it's annoying that they behave so differently. Camino, of course, works great, and so does Mozilla. You write your JavaScript or CSS according to the standards, and it works in Mozilla, perfectly. What a beautiful browser.

Posted in The Web at Apr 16 2003, 08:31:31 AM MDT 2 Comments