Tuesday, March 1, 2011

Great Wisconsin Software Symposium - Fluff or not?

This weekend I had the pleasure of attending the kick-off show of the 2011 No Fluff Just Stuff tour. The conference was held in the Sheraton Madison Hotel, located in, of all places, Madison Wisconsin. Those who have known me for long know that I used to live in Madison, so this town was already a special one for me*.

And those who have followed the NJFS tour know that the first show of the tour can be, well, a lot of fun. Many of the speakers were delivering brand new presentations - new technology, new developments in the industry (don't we all love Oracle?), and new formats. This makes for an exciting, if slightly unpolished, show.

To top off the experience, the Madison conference was laid out in the new "compact" two-day (Friday, Saturday) format. This format has many advantages, not the least of which being the obvious fact it's only two days long, yet offers nearly all the content of a standard three-day conference. There are some downsides - the breaks are shorter, and the "Birds of a feather" sessions have to be dropped to make ends meet. It's also a bit more physically taxing, since one must be ever-mindful of the next session, and waste little time getting there. But hey, since when has a little exercise been a bad thing for IT?

Attendance was excellent - in fact, it was sold out! The crowd was highly interactive during the sessions as well as the Q/A time with the speaker panel on Saturday. It was good to see many familiar faces from the Capital Java User Group that once met in town - good old CapJug... I really do miss those days...

[slaps self] Where was I?

As far as content, with the above caveat of the (yet) untested sessions, this show scored high marks. All my favorite G* topics were there - Groovy/Grails from Dave Klein (hey! I know that guy!) and Peter Bell, and Gaelyk/Google App Engine with Tim Berglund. "Mr. Semantic Web" Brian Sletten ran a five session series on REST/Semantic Web, as well as an HTML5 workshop (minus the "workshop" - due to time constraints).  Matthew McCullough also put on an excellent Git talk and a Git workshop afterwards, which due to my lack of a laptop I regrettably missed.  Other speakers that I did not get a chance to sit under were Matt Stine, Nate Schutta (well, I caught half of one), Craig Walls, Ted Neward, and Venkat Subramaniam.

Of course, no matter how good an NFJS event is, there's is always the persistent problem of deciding what sessions to attend - no, the problem is choosing which four to miss! The topics covered were extensive - NoSQL, Concurrency, REST/Semantic Web, Javascript, Usability, Mobile tech (specifically Android), and software architecture.

And like any good tech conference, there were sessions that stepped back a bit from the code and tried to stretch our minds to look at the bigger picture - Tim Berglund shared his thoughts on Complexity Theory and software development practices, Dave Klein presented a new session on apprenticeship as an alternative for training developers, and Venkat Subramaniam applied the lessons of history to our industry in an entertaining (to say the least!) keynote address ("Rise and Fall of Empires") on Friday night.

I have to admit - I was a bit conservative in my session selections myself - sticking primarily to areas I'm familiar with or interested in already.  I can't say I'd recommend that behavior - you really learn a lot when you force yourself out of your comfort zone and try something new. But <insert convincing excuse here>. Well, there's always next time.

And next time will almost certainly be better! The 2011 NFJS tour is looking bright at this point, and as feedback is incorporated in the new session line-up and speakers catch their stride, it's only going to improve. I can't recommend this conference enough - you owe it to yourself to attend, at least once. Me? I'm hoping to catch the STL conference in May - maybe this time I'll remember to stretch myself and bring something new back. Hey, remind me if you want.

Oh, and the title - I meant to tie this post in to the respectable snowstorm that landed about the same time as the conference. Yeah, I know - cheesy jokes about "fluff" falling from the sky. Sounds great. Maybe it's for the best that I forgot about it till now.

Take care!

*Well, special considering I don't actually enjoy the town at all, but I digress...

Wednesday, January 19, 2011

BibleReader 5 on the iPhone, Take .1

A couple weeks ago, I reviewed Olive Tree Bible Software's BibleReader 5.0, focusing on the iPad version. There's no doubt that the large screen of the iPad lends itself well to in-depth Bible study software like BibleReader, blurring the line between "mobile" and desktop apps.

But popular as the iPad is, it's not for everyone - it does command a respectable price, and some simply aren't convinced of a tablet's practicality. The iPhone and iPod Touch are still important players in Apple's mobile strategy and mobile technology in general, so Bible software for the iOS platform needs to be able to effectively utilize the scaled down, though not unimpressive, abilities of these handheld devices.

One would expect Olive Tree to know how to deal with small screens - after all they developed compelling software for the Palm OS & PocketPC, and even smaller screen devices like some models of Blackberry or WM phones.

So ya wanna go back to Egypt...
However, I must admit that I was among the users who was a bit underwhelmed by the user interface of BibleReader 5.0 on the "small screen", compared to 4.x. Too much space seemed to be used for graphical eye-candy, with an admittedly beautiful book-like theme, but all too generous margins that, while they arguably increased the ease of casual reading, significantly reduced the amount of text one could see on a page.

Full Screen text on BibleReader 4.12

BibleReader 5.0

In addition, the classic grid-like Verse Chooser, although still available ( though many users assumed otherwise) no longer fit onto one screen, require a minimal amount of scrolling to see the whole thing.

Verse Chooser in BibleReader 4.12

Verse Chooser (Grid) in BibleReader 5.0

While no application is perfect, these features clouded many users' view (pardon the pun) of BibleReader 5's slew of new features, and there was some initial disappointment expressed over forums, iTunes reviews, and the Twitterverse.

However, lest one should think Olive Tree does not take user concerns seriously, in just over three weeks, they released an update to BibleReader as version 5.0.1 (now available as a free update on iTunes). If there's one thing as good as never making (arguably) a mistake, it's correcting a mistake promptly and decisively - and Olive Tree has definitely come through with this release.
BibleReader 5.0.1, in landscape, with Thompson Chain Reference Bible

This review will primarily detail the new features in 5.0.1, most of which are specific to the iPhone/iPod (this update also includes numerous bug fixes that obviously apply on all iOS devices). I will also detail some of the features covered in my previous review with screenshots from my iPhone 3GS - for detailed information on these features, refer to my previous post - I have linked to the relevant sections from this review. Note that I'm going to be referring to the iPhone/iPod as "iPhone" in this review - the same feature set applies to both devices.

Easy Setup Guide:

The first feature I'll cover is hard to miss - on first start of BibleReader 5.0.1, you'll be greeted with a small pop-up window offering a friendly setup wizard (called the "Easy Setup Guide"), which introduces you to the most common configuration issues users have raised, all in three, simple steps. As you can see from the screenshots, this wizard introduces most of the new features I'll be looking at. We'll start with the first one: "Maximize Text Space".

Maximized Text:

BibleReader 5.0.1, with "Maximize Text" turned on.

BibleReader 5.0.1, with "Maximized Text" turned on, drop-down toolbar active.

There's no arguing the fact that BibleReader 5.0 on the iPhone fits a lot less text on the screen than the 4.x family. Large margins arguably increase ease in reading, but many users saw them as wasted space, and this issue is one of the top two complaints in the iTunes reviews of 5.0. However, in 5.0.1, BibleReader now has an option to "Maximize Text Space", accessible from the "Settings Menu" - as seen above, you also get the option to set this during the setup wizard.

Maximized Book Text can be set from the "Easy Setup Guide"...

...or from the "Advanced Settings".

It doesn't take much to explain this option - it maximizes text. Surprise! As you can see from the screenshot, this option replaces the toolbar with a "tap-to-drop-down" version (like in 4.x), hides the iOS status bar, and minimizes the margins. It also turns off the "book" background, since this doesn't leave enough margin to expand the text out. The end result is that you can now fit as much text, or even slightly more, than in any previous version. Of course, the 5.0 default option is still available, and you can choose from either during startup.

New Verse Chooser Options:

The next feature up is the Verse Chooser (third option in the setup wizard)- except here you have four options - "Grid" (5.0 option), a new "Compact Grid", "List (alphabetical)", and "List (canonical - 5.0 default)".

Original 5.0 "Grid" Verse Chooser (Pulled down to expose filters/options).

New "Compact Grid" Verse Chooser from 5.0.1 (note the same filter/option controls are still available).

Grid and the Canonical List are the same as the iPad versions, though the list has some improvements. First up though, is the "Compact Grid".

As many users noticed, the Grid Verse Chooser in 5.0 couldn't fit all 66 books on one screen, requiring a small amount of scrolling. This was in part due to more generous padding on the cells, which made them easier to tap. The new compact grid slims down the cells, which requires a bit more precision (but no more than 4.x) but offers an easy "bird's eye view" of the books of the Bible. The filter and search controls are still available if you pull down on the compact grid.

Verse Chooser List mode.

Verse Chooser List mode with scrubber active (hard to "screen-shoot" this!)

While many users responded sourly to the list view, it has really been enhanced in 5.0.1 (on both iPhone and iPad). As you can see from these shots, the list view (now available in alphabetical and canonical order) features a "scrubber" on the left side, which allows you to quickly zoom to the section of books you're looking for. This simple feature actually has me re-evaluating the grid and list verse choosers - the list view is now just as convenient as the grid, believe it or not! Give it a try, you might agree.

This covers most of the new features of 5.0.1 - the remainder of this review will be screenshots, with links back to the appropriate sections of my iPad review. Please note that BibleReader 5 is very configurable - font faces, sizes, colors, highlights, etc are all customizable. If you are a 5.0 user who just wanted to get up to date on the new features, go ahead and skip to the end.

 New UI

The above screenshot is the default BibleReader 5.0... (Read More)

Toolbar: "Library", "Go To", "My Stuff", "Settings", "Search".

Split Window, Book Background.

Maximized Text, Split Windows

Standard iOS text-selection.

Split Window "tools".

Library in "Bookshelf" Mode.

Library in "List Mode".

My Notes" brings up a notepad-styled listing of your, well, notes... (Read More)
Note open in the Split Window.

"My Notes" tool open in split Window.

Scripture Hyperlinks within Notes (button in top-right corner allows you to open in Main or Split Window).

Note open full screen.

Note: Double tapping the titlebar of a Note maximizes the note to full screen - this is an iPhone/iPod specific feature (full screen is available on the iPhone, just not the tapping toggle).

Resource Guide:

The "Resource Guide" is a masterpiece of mobile Bible study design... (read more)
Resource Guide

Double-tap Resource Guide title to open fullscreen.
Viewing Maps in Resource Guide - pinch & zoom is available.

Tap the ">>" button and choose "Look Up" to look up entities in the Resource Guide.

Looking up a topic in the Resource Guide.

Selecting a Strong's tagged word

Tap "More" in the select popup to search or lookup selection in the Resource Guide.
The "Look Up" function of the Resource Guide (accessible from the Resource Guide menu and from the  selected text pop-up menu) allows you to look up any of the entities in the Resource Guide.

Choose to lookup/search English or the OL word.

Looking up a Strong's number...

Selecting Original Language Words to Look Up.

Looking Up OL words in Greek/Hebrew Dictionaries.


Search is another vital function for any Bible software, since search is something computers do so much better than us... (read more)

Auto-suggest - works for words and Scripture references.

Search Results Filters/Ranges.

Choosing a "Search Command".

Search Results (using the "AND" search command).


Note: There are no iPhone specific features in BibleReader 5's gesture settings - other than that no three-finger gestures are available.  Everything detailed in my previous review holds here, so I refer you to that.


Note: There are no iPhone specific features to Olive Tree's new Annotation sync - everything I detailed in my previous review holds here, so I refer you to that.

Double take...

In conclusion, I think you'll agree that, despite some early complications, BibleReader 5 brings an extraordinary feature set to mobile Bible study on the iPhone. With the latest update, it has become even more optimized for the smaller screen, and the power of the software has not suffered a bit. While obviously the bigger screen of the iPad provides a more compelling experience, Olive Tree has clearly demonstrated that it is no stranger to working within the confines of handhelds, as they've done from 1997 till January 17, 2011.

Monday, December 27, 2010

Enabling Hot-Deploy in Gaelyk/Google App Engine with IntelliJ IDEA

I've been getting into Gaelyk lately, a lightweight Groovy-based web framework for Google's App Engine. My preferred development environment is, at the moment, Intellij IDEA (now at version 10), and I was happy to find this excellent post by Said Eloudrhiri which itemized exactly how to do just that (to be perfectly clear I had mostly setup my system prior to reading his post, so my version may not be exactly the same).

I've been enjoying working with Gaelyk in IDEA, but had one nagging problem - normally when you edit a resource (groovlet, gtpl file, etc) in Gaelyk/GAE(at least in development mode), the server automatically deploys the change and you see it take effect almost instantly. That wasn't happening, forcing me to restart the server every time I made a change. Not great. I tried running the dev server from the command line, and my edits would take effect right away, as expected, so it was obviously an IDEA issue.

Turns out that IDEA doesn't just fire up the server and go - it actually uses a separate directory as the app root, basically running as if from an exploded WAR file, separate from the 'war' directory were the resource files are stored. I finally figured out how to fix this, but for a better explanation, I'll turn to Said again, who answered this same question (again!) in the comment thread of his post:

The reason why IntelliJ is not able to detect and to hot deploy your changes is because by default the generated Artifacts uses an “out” folder.
This means that when you run your deployment, IntelliJ builds and generates your project into the “out” folder as another “war exploded” archive.
When you run your server locally, Jetty uses the application found in the “out” folder while your sources are located in another folder (“war” by default).

He follows with a list of steps, that I'll try to better document here (AFAIK, the only explanation of this online is the referenced comment):

Right-Click on your Gaelyk Project in IDEA, and select "Open Module Settings".

Uncheck "Build on Make".

Removed selected text (the IDEA output directory path). There's no need to actually remove the directory.

Replace the output path with the directory where your files are actually stored ('war', with a standard configuration).

Click "Apply", restart the server within IDEA, and you're all set!

Thanks again to Said for the tip!