Here’s the slides from “JRuby: Enterprise 2.0″ from our recent talks at Sun Tech Day and the ACS Web Technologies SIG.
Category: Technical Page 10 of 14
Josh Price and I will be co-presenting at the Melbourne Sun Tech Day and the Sydney ACS Web Technologies SIG. Here’s the low down:
There’s a lot of buzz around JRuby in both the Java and Ruby communities, for good reason. This talk will give you a whirlwind introduction to JRuby. We’ll show you why JRuby is regarded as such a powerful and dynamic development platform. We’ll also suggest where to use JRuby in product development and the enterprise and how to leverage your existing Java investments.
There will be sample applications, live demos and not many slides.
Sun Tech Day Melbourne
4 March 2008, 2:30pm
More info on Sun site…
ACS Web Technologies SIG Sydney
5 March 2008, 6:15pm
More info on ACS site…
Hope to see you there!
The fine folk at Apress sent me a copy of Ola Bini‘s new book to review. The full title is “Practical JRuby on Rails Web 2.0 Projects – Bringing Ruby On Rails to the Java Platform”. Overall, it was a good read, and extremely valuable to anyone who is developing in JRuby. JRuby information and documentation is scarce and most of the time, a Google trawl does not give you good results on a JRuby related query. Ola’s is the first, and currently the only JRuby book available, and in my experience, the most valuable resource available to give you an all-round picture of JRuby capabilities and usage.
Audience
Despite comments on the cover, I would suggest that this book is not ideal for people new to Ruby / Rails. Ola jumps in the deep end quite quickly, and being a talented Ruby programmer, makes use of lots of shorthand, procs, code blocks etc which would likely be hard to follow for someone new to Ruby. Although there is a section at the back called “Ruby for Java programmers”, I think this would not be sufficient for somebody new to Ruby to understand all the code examples.
To get the most value out of the book, it would be good to have at least a basic understanding of Ruby and Rails (eg, having read Agile Web Development with Rails or messed around with Ruby/Rails a bit) and a basic understanding of Java syntax, deployment and Java EE.
What’s Covered?
The book is project based, so as to give context and useful examples of JRuby functionality. There are 4 projects:
- The Store (Shoplet) – a standard Rails app running under JRuby using Active Record JDBC.
- Content management system – general Java integration and using Java libraries for content rendering.
- Administration System – using EJBs, JMX and discussion of JRuby deployment options.
- Library System – JRuby as the “glue that never sets”. Using Java Web service frameworks and JMS from JRuby.
The Good
- Teaches you how to do all those tricky bits which are half-Java and half-Ruby and can’t be easily found online, such as converting between Ruby and Java types, including JAR files, implementing Java interfaces, etc
- Clever and concise Ruby code – I picked up some Ruby tricks reading Ola’s code.
- Complex code snippets are generally well explained in text.
- Useful tips on when to use Java libraries and when to use Ruby ones.
- Generally good and interesting example projects which justified the use of JRuby and the techniques shown in the book.
- Helpful discussion of JDBC and database connectivity options for JRuby.
- Nice overview of the many JRuby deployment options.
- Helpful “sidebars” about Java Enterprise Edition technologies.
- Covers the strong areas of JRuby well – web applications and system integration.
- Appendices provide useful reference information.
- Nice section at the end on how you can get involved in JRuby.
The Less Good
- Example views often contain table layouts, inline styles and other layout information that would be better done in separate CSS files.
- Variable names in code could be more descriptive. This would make example code easier to follow.
- Occasional odd spelling like “sur_name” and use of deprecated Rails features, such as “start_form_tag” (to be fair though, Rails API does change very quickly).
- The title suggests that the book is about Web 2.0. There is a little token AJAX, and I suppose a content management system is a bit Web 2.0, but overall, buy the book if you want to know about JRuby, not Web 2.0.
- Although REST is only mentioned briefly in a little sidebar, and not a focus of the book, I found the description of REST and CRUD a bit misleading, especially when considering PUT vs POST.
- The discussion of JRuby deployment provides a good overview, but more in depth discussion of major options (eg, GoldSpike), and production configurations would be great.
Conclusion
As the best and only JRuby reference, I’d highly recommend you buy a copy if you are working in, or planning to work in JRuby. The book will help you to write JRuby applications which make good use of Ruby, Rails, Java libraries and Java Enterprise Edition features.
Over the last 6 months, my old Treo 600 touch screen was dying. Cleaning and re-seating helped for a while, but eventually, the touch screen stopped working. As the Treo 680 barely improves on the Treo 650, and costs a lot more, I bought a new-ish Treo 650 on eBay. All went well until I tried to send SMSes using my Optus SIM. No luck – I got an error 4027 every time I tried to send a SMS, although voice and GPRS worked fine.
First attempt at a solution was to set the Message Centre Number in the phone. Strangely, the Message Centre number (configured though the SMS app) was always empty, and when I tried to set it to the correct number for Optus, the value wouldn’t stick past a phone reset.
Thanks to Google, I found the outline of a solution on a message board.
In summary, the Treo 650 (unlike the Treo 600) is not compatible with Optus’s standard post-paid/plan SIMs used in Australia. However, it is compatible with the Optus pre-paid SIMs. If you have a Treo 650, and a post-paid/plan SIM, you can buy yourself a new pre-paid SIM for $4 from your local Optus store, then ring the Optus call centre to have them do a “SIM replacement” to move your account and number to the new SIM. This solves the problem within minutes of the “SIM replacement”.
Great, so you’ve got your web application up and running on some server somewhere, and thousands of users are hard at work entering their valuable data into your application, and thence to a MySQL database. Now people depend on your system to keep their data safe. What are you going to do about it?
The approach I’ve taken is to run a backup script on a cron job, which dumps data from the database a few times a daily, compresses it, and emails it off to my GMail account. All those GMail gigabytes have got to be good for something, right :-)?
I started writing a simple backup shell script using mysqldump, gzip and sendmail, but ran into problems on RailsPlayground as sendmail is not supported there. RailsPlayground suggested this perl script for mysql backup (mirrored on my server). The script does pretty much what I was looking for, and also supports skipping tables (useful for ignoring things like session tables, which, for my app, are not really worth backing up).
A little more investigation revealed that the script wouldn’t work out of the box, as RailsPlayground requires SMTP auth. The backup script is not hard to enhance to support SMTP auth. It can be done as follows:
In the configuration section of the file (around line 203), add 2 new variables:
$smtp_user = "my username" $smtp_password = "my password"
Around line 1200, add in the AuthUser and AuthPass:
MIME::Lite->send("$send_method", "$mailprog_or_smtp_host", Timeout=>60, AuthUser=>$smtp_user, AuthPass=>$smtp_password);
As an aside, this script can also do backups via FTP.
Restore of mysql dump files is pretty easy. You just use the standard client:
mysql -uMyUser -p MyDatabaseName < SqlDumpFile.sql
I’ve been using Firefox since its inception, and its glorious introduction of tabbed browsing. However, every new update, Firefox seems to get ever slower, and use more memory and more processor.
Finally, last week, after Firefox hung yet again using 100% of processor and over 300mb of memory, I decided to give Opera a go. So far, I’ve been very satisfied. It was a small download, easy install and uses about 1/3 of the memory and significantly less processor than Firefox does, especially when you have many tabs open and leave the same instance of the browser running for several days. I’ve had one crash when setting up Adobe Acrobat preferences, but in general browsing, it is yet to break. Pages load faster, and rendering of HTML and CSS seems fine. The only problem I’ve had is with Lotus Notes Webmail saying Opera is “not supported” and not wanting to run.
So far, I’ve installed Opera on older Windows and Mac boxes, and been very happy with the improved browsing experience. I still keep my Firefox handy though, mainly for its great web development plug-ins (Firebug and friends).
I’ve been meaning to write about Rails Playground for a while. I currently use their level 2 developer hosting and I’ve been very happy with it. I host several domains and subdomains on my account. I run several rails apps (including my online wedding registry site, this blog (WordPress) and a wiki (moin) on it.
You get shell access, sFTP and cPanel, MySQL, PostgreSQL and also unlimited subversion repositories. Another neat feature is that you get 2 mongrel instances included. You need to ask Rails Playground staff to set these up for you, but they are quite prompt and friendly. I did have some problems with Mongrel instances dying, but the Rails Playground staff added a cron job to restart them, and this has solved the issue. At currently $12/month (or $9/month if you pay for a year), it is quite economical hosting.
I’d highly recommend Rails Playground if you’re a rails developer looking for hosting (with fcgi and mongrels) and subversion, and you don’t want/need the flexibility/hassle/higher price of a virtual private server.
Update: I closed down this site in 2013, and let the domain lapse. In 2023, a zombie version was set up by parties unknown at the same domain, using my pages scraped from the wayback machine. This site does not work, and is not run by me despite having my name on it. I am attempting to have it closed down.
Your Wedding Presents now shows all money amounts in pounds, if you say you are from the United Kingdom. God Save the Queen!
Here’s the slides and code from yesterday’s “Delicious Dot Net” talk at ACS.
I’ll be giving a talk at an ACS event after work on Wed next week (3rd October). Here’s the blurb:
A tasty take on WPF, WCF, LINQ and O-R Mapping
An exploration of some of the freshest, tastiest and most powerful features in .NET 3.5 through implementing a useful application.
You’ll take away an understanding of what’s in .NET 3.5 and how to build online and offline applications with the new technology stack supported by Visual Studio 2008 (Orcas Beta 2).
Location
Norman Selfe Room,
Level 3,
280 Pitt St Sydney (Sydney Mechanics School of Arts)
Time
6:15pm, 3rd October 2007
For more info or to register, please visit the ACS site.
Hope you can come 🙂