GrepCode is an extremely cool code searching tool for open source Java. The most useful feature, in my opinion, is the ability to find code responsible for a specific stack trace. While they have a few usability issues to iron out, this is definitely something worth adding to your developer toolbox.
Category Archives: Java
Using Bcrypt with Spring Security
Password security is a popular topic. The most basic tenant of password security is to have no password at all. Wait, what? That’s right, no password should be stored in your database, ever. Instead, store it as a hash, along with the salt, and throw the original password away. Ask 10 different developers, and I’ll bet that MD5 would be offered as the most popular solution for this problem. Though, if you’ve explored the linked content, you’ll have undoubtedly noticed that Bcrypt is mentioned more than a few times.
“Bcrypt is a cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. Passphrases must be between 8 and 56 characters and are hashed internally to a 448 bit key. However, all characters supplied are significant. The stronger your passphrase, the more secure your data.”
For us Java developers, there’s jBCrypt. It is an “implementation of OpenBSD’s Blowfish password hashing code” and offers a rather simple API. A quick web search yields a bit of information on using jBCrypt itself, but nothing on integrating it with the Spring Framework. Given that this is a topic of interest to me, I’ve put together a simple, yet comprehensive example web application to demonstrate an integration of jBCrypt, Spring MVC, Spring Security and Hibernate for hashing user passwords. There are three areas I’ve focused on in this example, user creation, user authentication and changing the user’s password. Read More
Server-side stream recording example updated
With this being my most popular blog topic, I felt the time has come for a little update. (You can catch up on the original here.) Frankly, there’s not much too it. The server-side code didn’t change much, just an update to take advantage of the built-in logging support of Red5. Both clients have been completely rewritten using ActionScript 3. (I know, it’s about time.) Read More
Do you Xuggle?
If you are a Red5 or FFmpeg user, then you should be very interested in what Xuggle is working on. Their current project, Xuggler, is a welcome addition to my RIA toolbox, and should be a mainstay of yours as well. From their website:
“The Xuggler is a free and open-source library for Java or C++ developers that allows you to decode, manipulate, and encode (almost) any type of video file in near real time. It is for programmers who want to add video processing support to their products.”
What does this mean for me, you ask? Read More
Red5 + Hibernate Revisited
It’s hard to believe that I wrote the first version of this tutorial almost a year and a half ago. That’s too long to wait for an update in my opinion and is much needed in this case. My apologies for not tending to the garden sooner. While the original article illustrated a simple method for integrating Red5[1] and Hibernate[2], by today’s standards it’s design is overly verbose and somewhat out of fashion. Not to mention the 3 major components used in this tutorial have all gone through major revisions. The primary goal for this iteration was simplification of the code as well as the XML configuration elements and results in a smaller code footprint. This is a big win in my book. Read More
RESTful URLs with Spring MVC and UrlRewriteFilter
While Spring 3.0 promises to support REST style URLs out of the box, it won’t ship until sometime later this year. Spring 3.0 M1 will offer this functionality for anyone brave enough to work with potentially unstable technologies and should be available soon. And while this is good news for those starting out on new projects (or those willing to undergo a significant refactoring), most won’t want to migrate their applications just for RESTful URLs. All hope is not lost though, thanks to Paul Tuckey’s UrlRewriteFilter. Read More
13949712720901ForOSX
You’ve read my rant about Java 6 being missing from the recent Leopard release, now you can help make a poor, not-so-humble geek’s wish come true. All you need to do is post a short entry on your blog with a reference to the string ‘13949712720901ForOSX‘. Doing so, means that you are casting your vote to tell Apple to fix it’s cranio-rectal inversion. Plus, you’ll be helping me and the 5 (there’s many, many more out there I am sure) other developers that actually write Java on a Mac out a ton. But why ‘13949712720901ForOSX‘ you ask? The actual meaning of the string is a bit entertaining. Translated from decimal notation to hex, the numeric portion is ‘0xCAFEBABE405'. Yup, you read that correctly. Who says Apple Sun engineers don’t have a sense of humor? What’s more entertaining is that 405 is the HTTP response code for ‘Method not found.’ You can read more about the effort to bring Java 6 to a Mac near you and the meaning behind the magical string at the Sun Babelfish blog.
WTF: Apple ships Leopard without Java 6
Having been a Java developer for the better part of a decade and an Apple fanboy for longer than that, I am left wondering what the hell they were thinking when they decided to not add Java 6 to Leopard. Keeping in mind, of course, that Apple has been notoriously bad about updating Java for OS X, the release of Leopard took just over 2 years to complete. They couldn’t find the time to get it done? Read More
Carl Sziebert is a loving husband, devoted father, and accomplished software engineer, living and working in the San Francisco Bay Area. He is no stranger to code, having spent the better part of a decade developing software for a diverse range of organizations, including small startups, large corporations, and government agencies. Having built a solid foundation of skills from these experiences, Carl now works as an engineer at 




