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 "young russian teenboy model pre teen". 788 entries found.

You can also try this same search on Google.

Tomcat 4.1.27 Hotfix

FYI - there's a patch for Tomcat 4.1.27 to fix the webapp reload bug. To install, download into your $CATALINA_HOME directory and execute:

tar xzf 4.1.27-hotfix-22096.tar.gz

Posted in Java at Aug 06 2003, 11:00:39 AM MDT 2 Comments

New Load Testing Tool for Roller

After reading Hani's comments about Freeroller's abysmal performance (which I agree does suck), I sent the following e-mail to Novosoft:

Any chance you'd like to donate a copy of your software to the Roller 
Weblogger open-source project (http://rollerweblogger.org).  We could
really use a stress-test tool like yours.  We're using it at my day 
job and it works great.

Their software is a load and stress testing tool that a co-worker discovered and it works awesome. At my day job, we know that if 17 users click on the same button at the precise same time, then Hibernate (or maybe it's Oracle) will throw a deadlocking error. We doubt that we'll ever get 17 concurrent users, so it's not an issue for us, but it's nice to know.

Anyway, their software is $250, which is a little steep for any open source project. However, I was delighted to find that they obliged my e-mail and sent me a license this morning!

Dear Matt, 

Thank you for your feedback and your warm words regarding our product!
We have decided to grant you registration key for our product WAPT 2.0. 

Sweet! Now I just have to find time to create these tests, or maybe one of the other Roller Developers has time?

Posted in Roller at Jul 31 2003, 07:21:57 AM MDT 6 Comments

Today is the last day for the old-style VW Beetle

Boy do I love these cars, especially the real old ones (50s and 60s):

old/new bug Some Bugs are hard to kill. After a brief reprieve, the Volkswagen Beetle, the original version, faces extinction today. Volkswagen's plant in Mexico -- the only one in the world that still makes the old-style Beetle -- finishes one last gussied-up retro edition of the plucky, curvacious little car, ending the model's 70-year run. [CNN/Money]

I'd love to get my hands on one of these new/old bugs, but I don't think they're legal (due to emissions standards) in the US. For any Colorado bug fans out there - the Fineline Bug-In is coming to Bandimere Speedway on August 10th. Julie, Abbie and I are going - should be a great time. I almost buy one every year I go - this year I might actually do it. I'd especially like something like this '58 Vert'. I still plan on restoring an old Bug or Bus in the near future.

Posted in General at Jul 30 2003, 10:40:05 AM MDT Add a Comment

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

RE: Which new laptop would you buy?

Thanks to all who left comments about my (possible) new laptop purchase. I did some more tests today, and I'm going to have to go with a Windows machine, especially since I hope to replicate the performance I get from my machine at work (Dell Optiplex GX260: 2 GHz, 512 MB RAM, Windows 2000 SP4):

  • Opening Photoshop (7.0): 3 seconds
  • Starting Eclipse (3.0 M2): 6 seconds
  • Running "ant clean package-web" on AppFuse: 18 seconds
  • Running "ant rebuild" on Roller: 36 seconds

Yep, that's right, my (work) desktop is twice as fast when opening Eclipse and 4 times faster opening Photoshop (than the Powerbook). So if I get a 3 GHz laptop with 1 GB RAM, it should be even faster than that right?

Hibersonic Aviator ZX7 Alienware Area-51m

Right now, I'm looking at the Alienware Area-51m or the Hibersonic Aviator ZX7. At first glance, I'm leaning towards Area-51m, although the Bluetooth USB Adapter (vs. integrated Bluetooth) is disappointing. The Hibersonice has a 17" screen, but that doesn't seem to be that big of deal (after hearing y'all speak up). Also the Hibersonic has a 802.11b NIC, where the Alienware one has a 802.11g.

Posted in General at Jul 22 2003, 09:11:05 AM MDT 5 Comments

Which new laptop would you buy?

If you could pick between a new Dell Laptop or a new Powerbook, which would you choose? If performance was your top priority? If you were going to buy a Windows-based laptop, which would you buy (doesn't have to be a Dell)?

Powerbook Dell Inspiron 8500

Update: OK, I'm at the Apple Store, on a 17" Powerbook with 512 MB of RAM. Let's do some performance numbers. If you have a laptop that you think I should get, post your numbers as a comment.

  • Opening Photoshop (7.0.1): 13 seconds
  • Starting Eclipse (3.0 M2): 12.5 seconds

Posted in Mac OS X at Jul 21 2003, 10:11:34 AM MDT 17 Comments

HowTo: Upgrade your app to JSP 2.0

I did some more playing with Tomcat 5.0.4 today - and converted appfuse to a JSP 2.0 application. After accomplishing this task, I created a "jsp-2" task that can (optionally) be run at build time, and whalla, you've got a Servlet 2.4/JSP 2.0 application. I learned a number of things in the process.

1. The expression language in JSP 2.0 replaces in JSTL is <c:out>, that's it. I was under the impression that I could use <c:if> or <c:forEach> tags without declaring the tag library URI, etc. I was wrong, if you want to use JSTL tags, you must import the declare the taglibs, just like you do now in Tomcat 4.x.

2. The EL is turned off by default if you have a 2.3 DTD for your web.xml. If you have a 2.4 XSD in web.xml, the EL is turned on by default. This means that you can write ${param.foo} and it will be analyzed when the EL is on (when off, it's not analyzed).

3. You can replace <html:rewrite page=""/> with <c:url value=""/> and get the same effect. The only difference is that html:rewrite is context and module-sensitive, whereas c:url is only context-sensitive.

4. I had to replace the URI's for JSTL core and fmt with their run-time URIs - http://java.sun.com/jstl/core_rt vs. http://java.sun.com/jstl/core. Otherwise, I would get something similar to the the following error.

According to TLD or attribute directive in tag file, 
  attribute test does not accept any expressions

I figure upgrading to JSTL 1.1 might solve this issue, but since it hasn't been released, why bother? So to convert appfuse to be a JSP 2.0 webapp, here's what my Ant task does:

  • Replaces URIs with their run-time equivalent.
  • Removes <c:out> tags, leaving the value of the "value" attribute intact.
  • Replaces 2.3 DTD in web.xml with 2.4 XSD.

I did some (rough) benchmarking of running my JSP tests, here are the results on a Pentium IV (2 GHz, 512 MB RAM).

start Tomcat, run tests, stop Tomcat:
 Tomcat 4.1.24: 1 minute, 17 seconds
 Tomcat 5.0.4: 1 minute, 7 seconds
 Tomcat 5.0.4/JSP 2.0: 1 minute, 3 seconds

run tests, Tomcat already started:
 Tomcat 4.1.24: 33 seconds
 Tomcat 5.0.4: 22 seconds
 Tomcat 5.0.4/JSP 2.0: 22 seconds

According to these numbers, Tomcat 5 is quite a bit faster than 4.1.x.

Posted in Java at Jul 17 2003, 01:27:01 PM MDT 5 Comments

Upgrading to latest WebTest and Cactus

I attempted (and succeeded) in upgrading to the latest and greatest releases of Canoo's WebTest and Jakarta's Cactus this afternoon. It wasn't too bad. Both have revised their taskdef's to read from a properties file, and Cactus has simplified the process to include cactus-related JARs/mappings in your webapps. Now you can "cactify" your war with a little Ant-lovin:

<cactifywar srcfile="${webapp.dist}/${webapp.war}"
    destfile="${webapp.dist}/${webapp.name}-cactus.war">
    <lib dir="${strutstestcase.dir}" includes="*.jar"/>
    <lib dir="${cactus.dir}">
        <include name="*.jar"/>
    </lib>
</cactifywar>

Pretty slick IMO. Now if I could only figure out how to do form-based authentication with Cactus (I couldn't find it in the docs).

The other issue I've been banging my head against the wall over is running canoo/httpunit tests with a compression filter enabled. Yep, the problems still exist, despite the fact that I patched httpunit. So I've come up with a new fix that satisfies me and eases the pain in my noggin'. In my compression filter, I simply disabled compression when it's an httpunit test:

String userAgent = req.getHeader("User-Agent");
if (!isGzipSupported(req) || userAgent.startsWith("httpunit")) {
    // Invoke resource normally.
    chain.doFilter(req, res);
} else { 
    // gzip it
}

Posted in Java at Jul 15 2003, 07:05:36 PM MDT 2 Comments

Now sporting valid XHTML

Thanks to Will Gayther (no blog that I know of), this site now validates as XHTML 1.0 Transitional. You might recall that I had issues with the onload attribute of an iframe, but it was easily solved. Will suggested I put the onload into the <body> of my iframe's "src" document, but that seemed impossible, as the iframe doesn't have a source document - it's just submitted to. But he did turn me onto the solution. There is a function called when the form is submitted (onSubmitComments()), so I just called the function from there (instead of in the onload):

function onSubmitComments(aEntryId)
{
  gSubmittingComment = aEntryId;
  setTimeout("onCommentSubmitted()", 500); // wait 1/2 second
}

I don't expect you to care about any of this, just wanted to let you know I'm compliant again - or at least right now I am. Oh yeah, and I added this theme (sunsets) to Roller's CVS yesterday.

Posted in Roller at Jul 15 2003, 02:22:13 PM MDT Add a Comment