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
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 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.
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
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?
Boy do I love these cars, especially the real old ones (50s and 60s):
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.
Expected delivery date: August 8th
#1 reason to switch back? Speed, and lots of it. ;0)
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!
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):
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?
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.
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)?
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.
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:
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.
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 }
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.