05.20.08
Posted in General Rant at 8:03 pm by Administrator
The hills are alive…. with the sound of music…
iBob here. I just wanted to report about the glorious outdoor experience I had this weekend up at June Lake. Even though the drive was long (and the DVD player died) we arrived at Boulder Lodge without incident.
The old welcoming lodge (think “rustic”) embraced us like old friends. We were in one of the deluxe rooms with a small kitchen and a gorgeous view of the lake. Good ol’ room 206 (the same room we’ve stayed in the past 3 years) had been updated with new carpet (now with 50% less fish hooks!), a single bedroom with a queen bed (for the kids) and a twin bed (for my wife) and a couch (for me). This was to be our base camp for this adventure.
My son had been simply buzzing with anticipation all week long. He simply couldn’t wait to get here and get fishing. After the long drive we had some dinner and met up with my in-laws, and decided to get to bed early so we would be ready to go first think Saturday morning.
My brother-in-law, Jimbo, was heading out early (4:30am) to Bridgeport (about an hour north) to do some stream fishing, but promised to take my son out as soon as he got back. This meant that I would probably be up early to take him out for the first round.
Turns out that at 3:00am he was awake and crying that “…all he wants to do is fishing. That’s the only reason he came up here!” I assured (promised, did a pinky swear) him we’d go - wanting to get a little more sleep myself.
At 6:00am (on the nose) there was a knock on the door and my father-in-law, Don, was dressed and ready to go - asking if he could take my son down to the docks.
Could he? Are you kidding?
I woke him up, got him dressed, stuffed his pockets with snacks and off they went - down to the docks in the crisp, early morning air. Being the stand-up father I am, I promptly… went back to sleep.
When I finally managed to push the cobwebs of an interrupted sleep out of my eyes - it was about 8:00am. My wife and daughter were just waking up - and still there was no sign of Don and Brennan.
We had a little breakfast (doughnuts and coffee), got dressed, and mingled with the extended family for a couple of hours - when Jimbo showed up. He didn’t have very good luck in Bridgeport (after hiking in 3 miles and fishing on a icy stream) - but his first question out of his mouth was “where’s Don and Brennan?” No sooner that we informed him they were down on the dock - he grabbed his pole and headed out.
The weather was simply gorgeous. There’s no other way to put it. The online weather service said it would only be in the high 50’s to the lower 60’s - but it was easily about 75 degrees. There was a mild breeze, the blue jays were out in force, and it was a beautiful day for fishing.
Around 12:30pm - Don, Brennan and Jimbo came back - no luck. Undeterred in their quest - we all had some lunch, and decided that a good nap was in order.
I didn’t wake up until 5:30pm (it’s the most sleep I had all week!).
Turns out they were all down on the dock, so I dragged my altitude-weary body down there for a while and was informed that they still had no luck - although there were a couple of people next to them that had caught a fish or two (trout). Late in the day, about an hour before sunset, we all had dinner together (chilie verde burritos) - and I never saw the men eat so quickly. They wanted to get down to the other side of the lake before sunset for one more round. They still had no luck - and we called it a night.
On Sunday morning - the knock came at 5:15am. This time Jimbo was ready - and I got Brennan dressed, stuffed with snacks, and sent him off. Then another knock came at 6:15am - this time Don wanting to know if Brennan could come out and play. After informing him that he and Jimbo had set off - I decided that I would never get back to sleep and put on the coffee.
They came back about 11:00am with one big fish - a 4 pound German brown. Success and high fives all around. I took the kids swimming at the indoor pool for a couple of hours while my wife made lunch (her world-famous chili). She’s not been feeling the best (cough, snuffles, not able to sleep) - so I ran into “town” to get some drugs while my niece and her husband watched the kids.
In the general store, they had all the fishing supplies up front - with the boring things - like groceries - in the back. After spending about 5 times more than I would have for the same supplies in civilization (they actually had a sign at the cash register that read “$5.00 charge for listening about how much less you paid everywhere else), I headed back to the compound.
We had some great chili - and hunkered down for our traditional afternoon nap.
After nap everyone decided to go out to a neighboring lake and so they packed up everything (and would have included the kitchen sink if they would have had a pipe wrench!) and were about to head out. My daughter, Brooke, who really isn’t “into” fishing and prefers drawing, coloring, and puzzles, said she wanted to stay behind and play in the snow.
Well, with my wife in a cough medicine induced “nap” - I stayed behind with Brooke - and we headed off to the old snow plow pile of dirty, icy snow. You know, it’s really amazing to watch a kid’s imagination when it’s in full swing. She found an old screw driver and was playing in this dirty, icy snow - just singing and hopping around when she hit upon a terrific idea.
She would try her hand at sculpting.
She found a piece of icy snow, sat down and began her work. After about 15 minutes, she announced she was done - and her masterpiece eagle head was finished. “Not too bad for my first sculpturing - huh, Dad?” Well, the snow might not have melted - but my heart sure did.
With everyone else gone (and no cell reception to find out where they actually wound up) - the three of us just sat around in the room with the slider open, feeding the blue jays (and chipmunks) on the deck, and watched the “Parent Trap” (the new version with Lindsay Lohan - before she imploded). We had snacks, read, Brooke colored, my wife dozed - and it was a really, really relaxing time. We had a late dinner (they didn’t get back until about 8:30pm) of skillet-cooked hot dogs and salad and settled down for the night.
The knock didn’t come until a respectable 6:00am - and it was Jimbo - ready for another day. Of course Brennan was ready to go in 2 minutes flat (try THAT on a school day!) and off they went. The fishing was crappy - mostly chubbs - but they caught one or two small rainbow trout as well.
The best part of the day came later on. We had rented a boat - and while my wife slept (she’d been feeling crappy the whole time) - I took my daughter out on the lake for a little cruise. I got her all strapped into her life jacket and off we went. 80 degrees, slight breeze, warm afternoon sun. There’s simply nothing like it in this world.
On the last night we traditionally have the big fish fry - only we decided to do it for a late lunch this year (Jimbo and troop wanted to go back to Bridgeport). I followed Jimbo and Brennan to the little shack set aside for cleaning fish - and watched with rapt fascination as Jimbo made fillets out of about 10 fish in less than 10 minutes. Amazing.
He used his “secret” recipe of salt and pepper and flour and fried them up in hot olive oil on the crappy vintage 1954 electric stove in our room (an managed a small fire in the making). We feasted on baked potatoes, asparagus and fresh fried fish - yummy!
By the time this morning rolled around - I was prepared for the drill and was awake and waiting for the fated “knock” - which came at 5:34am. Brennan and Jimbo headed down to the dock to try their luck. This being the last day and all - I waited for about an hour and then joined them down on the dock.
Brennan was there talking smack - giving me 1,000 pointers about everything (”…you know - chubbs are bottom feeders with no natural predators so we got to get them out while we can…”). I was there about 2 hours in which time Jimbo got zero bites, and Brennan caught 3 chubbs (which promptly became ant food). Because no one was hitting anything - Brennan decided he would just fish for chubb right off the dock (we could see about 50 of them right below us).
His philosophy is: catching fish - even if they are chubb - is funner than not catching fish.
I couldn’t agree more.
Permalink
05.19.08
Posted in General Rant at 8:00 am by Administrator
No, literally. I’ve gone fishing with the family (and in-laws!) at June Lake, CA. I’ll be back on Wednesday with another installment… I know you “can’t wait!”…
Permalink
05.16.08
Posted in General Rant at 9:18 am by Administrator
Ok, ok, this is the last one. After digging into this Servoy 4.0 Public Pre-Release a bit more (over a nice bottle of wine) - I found some other cool stuff that I played around with andjust had to tell you about: form inheritance, form variables, and menubar plug-in.
Form inheritance is really cool and a huge time saver. Basically, it allows you to base a new form on any other existing form - so that you don’t need to create many similar forms from scratch. It works like this: let’s say you have a basic dialog form that has a text area and two buttons (”OK” and “Cancel”) and you want to create another one that has a third button “Details”.
In previous versions you’d have to duplicate the form, then go back and duplicate the method on the OK button, then duplicate the method on the Cancel button, then duplicate any other methods - and hook them up to all the objects, THEN add your new button and its method.
In 4.0 - when you create the form (or even after it’s created!) - you can set the “extends” property to any other form. Servoy will then show all the objects on the form (locked with a red outline) and will keep all the methods attached to all objects and even all the form events hooked up to the original methods.
Now, here’s the cool part - you can then overwrite the method that attached to any item with a new method (called “overloading” in geek speak). This allows you to quickly create lots of similar forms - and if you want to change something on all of them - you only have to change the base (original) form - and all the changes automatically appear in all the related forms.
Very cool!
Form variables are just what they say - variables that are scoped within a particular form - as opposed to “global” variables which are scoped within the entire solution. This is really a great feature. I can’t tell you the number of times that I’ve created 10 or 15 global variables with the name of “text01″, “text02″, etc. so that I could use them at various places for specific form-based functions.
It’s also handy in another situation: multiple instances of the SAME window. If I have Form_1 and open two copies of it - using global variables rather than form variables - if I changed the value in the global variable in the first window instance - it would change in the second instance as well.
Now, with form variables - both window instances have their own “copy” of all the form variables - so both window instances can act completely independently of each other.
Sweeeeeeeet!
And last, but by no means least, they’ve added a new menubar plug-in. Although available from the most-excellent Servoy plug-in vendor IT2Be for a couple of years - it’s nice to see it bundled with the default installation.
The menubar plug-in allows you to - wait for it - take control over the menubar. You can add your own menus, change the default menus, add icons, hierarchical menus, disable/enable menu items, etc. But it goes farther than that.
You can add your own toolbars and place them inside windows, add contextual menus to any object and much more. Not everyone will want to monkey around with menus - so it’s good that they made it a plug-in rather than just adding a bunch of overhead to the “application” object - for stuff only some people will use (isn’t that why plug-in exist in the first place?).
Regardless - all these improvements (and I didn’t even talk about rightClick and doubleClick events on labels and buttons!) really add up to a terrific release.
I didn’t think it was possible to make Servoy any more productive - but in this case - I’m glad to say I was dead WRONG!
If you want to download the public preview (or the currently shipping 3.5 version for that matter) - just go to http://www.servoy.com/developer. They’ve also scheduled some MORE live webinar events next week - but you gotta’ register for them at their events page.
Permalink
05.15.08
Posted in General Rant at 8:14 am by Administrator
In this installment of my impressions of Servoy 4.0 Public Pre-Release, we’ll have a look at the new Team Sharing capabilities.
In previous versions - doing team development was a bit arduous and could be slow over a WAN. Servoy used to have a “Multi-Developer Server” that would allow multiple developers to log into the same repository and then work on whatever they wanted.
Servoy would then “lock” the resource being used (form, method, relation, etc) and prevent anyone else from using it until you saved it. It would the broadcast that change to all the other connected developers - so that everyone had the “latest” changes.
In the 4.0 version - it’s much more straight forward. Servoy now supports Team Sharing database repositories (without the broadcast stuff) - but it also supports both CVS and Subversion (SVN). These are standards-based, open source, commercial quality code management systems - that have been around for years.
You can either set them up on your own local machine, on a group server or even have them hosted as a service (most offer a free plan) over the Internet. Setting up Servoy to work with CVS or SVN is easy - just install the appropriate Eclipse plug-in (Help -> Software Updates -> Find and Install…), enter your CVS or SVN repository info - and you’re off to the races.
Because Eclipse is file-based all the developers have all the objects on their own local file system. They can work on whatever they want, without being “locked out” of specific objects. Then, they can “synchronize” their stuff with what’s in the repository (be it Servoy repository, CVS or SVN).
It will tell them the pending changes they have to put up to the server, what has been changed and is waiting to come down, and where there are conflicts (two people edited the same object with different settings).
In the case of a conflict, the developer can see his version and the version in the repository - with the changes highlighted in both copies. They can then adjust their code to remove conflicts - and “commit” their copy to the repository. Likewise, they can “Update” their copy at any point to pull down all the changed files “committed” by someone else.
This isn’t at the solution level - but at the OBJECT level!
WOW. Totally cool!
Talk about being productive in a team environment! Hat’s off to the Servoy engineers for making team sharing “for the rest of us.”
If you want to download the public preview (or the currently shipping 3.5 version for that matter) - just go to http://www.servoy.com/developer. They’ve also scheduled some live webinar events this week (and next) - but you gotta’ register for them at their events page.
Permalink
05.14.08
Posted in General Rant at 8:42 am by Administrator
So yesterday I started with my impressions of the new public pre-release of Servoy 4.0 - and I thought I’d delve a little deeper into some of the cooler new things today.
I’ve already talked about the forms editor - now let me wax poetic about the overall navigation and coding improvements and I’ll tackle the Team Sharing tomorrow.
As I mentioned yesterday, most of the modal dialogs are gone, and rather than having a bunch of menus at the top of the screen, there is now the “Solution Explorer”. This view shows all of the things that used to be on the menu - but in tree format.
To work on a solution - you right-click on the “All solutions” node. Want to create a new form? Right-click on the “forms” node. Setup security? Yep, right-click on security.
HOT TIP: Right-click is your friend! When in doubt, right-click!
Now let’s take a look at another area that they’ve made great strides - the coding environment. It’s nice to see that they’ve taking the time and effort to include some real improvements where the rubber meets the road.
All the methods of a particular type are all now in a single file (form methods are all grouped per form, global methods are all grouped together). This means that you can now get the “flow” of your methods. In previous versions you had to open up multiple tabs - one for each method. This “unified view” is much easier to gain context in as well as more flexible.
But, the code listings are much longer. Thankfully, you can now “fold” the code - or roll it up to the function level. You can now just create functions on the fly by using: function myfunction () { }. When you save, Servoy will automatically create the object and add it to the project.
The good news is - it still works the “old” way by clicking the icon or by right-clicking where you want to create it. This is a great blend of “old” and “new” - and is really easy to get used to.
You can now do cool things - like have auto-code complete. Before, you had to start typing and hit Ctrl+Space to get the contextual code complete menu to pop up. Now, if you enter the object type (application, form, controller, element, etc.) and type the “dot” - the contextual auto-complete menu pops up - and even will now show the example usage of the function along with any additional parameters.
There is also an “outline” view available - that will show all the methods (again in a tree) and if you double-click it - it will scroll automatically to that place in the code listing. It will also show all the variables you use (the ones you declare with: var x = ) in that same tree view. Nice!
Then there’s the code coloring. There are lots of very particular people out there - and in the 4.0 version you can no only change the code coloring - you can add your own! There are preferences for everything about the environment - you can even arrange all the panes and all the tabs to your personal liking.
On top of all this - you have interactive debugging and persistent/conditional breakpoints.
Persistent breakpoints are saved between sessions - and also appear in overview (list) format - so you can just double-click right to a particular point. A right-click on the breakpoint will allow you to disable it, or make it conditionaal.
For example - it will only cause the breakpoint after X number of times of running (great for loops) - or you can even specify your own ad-hoc condition under which it activates. Terrific if you’re trying to hunt down that pesky “sometimes happens” bug.
The interactive debugging is really cool! All you have to do is set a breakpoint and then open up either the Smart Client or Web Client - or BOTH - and click around in your application until you perform the method that you have the breakpoint set at. Once it hits the breakpoint, Eclipse comes forward and you’re interactively debugging - able to see all the variable values, etc.
Did I mention this works for the BROWSER client as well? Really, not kidding. This is simply the easiest way I’ve ever seen to debug a browser-based application - bar none.
Not only can you debug interactively - but any changes you make to your forms (or methods) are automatically reflected in the Smart Client and Web Client sessions. There’s no need to re-launch the browser application or re-start the client application (and re-do the login and all the things you normally have to do to get back to the point where you were testing) - all the changes just appear (and work!) - instantly.
Now THAT’s productivity!
If you want to download the public preview (or the currently shipping 3.5 version for that matter) - just go to http://www.servoy.com/developer. They’ve also scheduled some live webinar events this week (and next) - but you gotta’ register for them at their events page.
Permalink
05.13.08
Posted in General Rant at 3:41 pm by Administrator
Today Servoy released a public pre-release version of their upcoming namesake development and deployment environment. I’ve kicked the tires of this thing for the past few days and BOY OH BOY is it ever cool!
The Servoy engineers have managed to keep the ease-of-use of the 3.x product - while at the same time moving to standards-based Eclipse for theIDE. This move will bring them out of their proprietary IDE and into the most-used IDE on the planet.
It’s always difficult to move to a new IDE - regardless of the reason - regardless of the tool. There is a certain comfort level that is inherent in working with a tool for a period of time. You know where all the menu commands are, where to click in the toolbars - you barely have to even look to know the context you’re in.
As with most moves to a new environment - the devil is always in the details. There’s always that initial hesitancy, and that initial fear of the unknown: Will the form designer still work the same? What about scripting? How about debugging?
I, too, had these types of concerns - because I had never used Eclipse before. I mean, hell, I’m not even a “real” programmer - just an old 4GL hack - and even I found it easy to figure out what’s going on and get going right away.
The first thing I noticed is that it’s both very familiar and totally different at the same time. It felt like when I was 17 and got to drive my dad’s car - very grown up and luxurious. All the basic controls were right where I expected them - but there were a few that were in new places and it took about 1/2 hour of playing around (and referring to their great Flash tutorials andPDF files) to become familiar with all of it.
They have a great “Welcome” screen now - one that links to their site for more information and tutorials, and they even have a link to start the process of “checking out” a solution from the repository.
I’ll admit that at first I found this to be a bit strange - but once I realized that Eclipse is a 100% file based environment, and thatServoy 3.x is a completely file-less environment - it began to make sense. Once I checked out a solution from the local repository (all the sample solutions now come automatically installed) - it basically looked and behaved just like the 3.x version - with some noticeable improvements:
You can edit multiple items at once. That means you can have multiple forms open, multiple methods (more on that in a minute), valuelists, table definitions, etc.
Gone are the modal dialog boxes for creating and editing objects. Everything is in its own tab, and you just hit Ctrl + S (or “Save” from the “File” menu) and that’s it. You can even close a tab and it will ask you if you want to save your changes! Nice.
The other thing I wasn’t quite used to is opening a form in the designer. In the 3.x product, you could just navigate to a form (via the windows menu - that would grow to a huge list in complicated solutions) - and go into designer mode. Then you would exit designer mode and “run” the current form.
In the 4.0 version - you can simply stay in the Form Designer and open up a Smart Client (that loads almost instantly!) and see the form that you’re working on. They even hooked up the keyboard equivalent, so that your finger “memory” won’t change and you get the same result.
The other thing that has been greatly improved is the way the over designer works. It’s not really a huge change - but, for example, you can now click and move without first having to select the object. They’ve also added drag rectangles for the objects - making it easier to see where you’re going to move them to.
And another small improvement - but one that I’m personally thankful for - is the ability to set the horizontal size of a form by dragging an arrow widget in the top ruler.
Again, in and of themselves, it’s not that big of a deal - but it’s these little improvements that really have the effect of giving the tool a more refined “feel.”
The improvements just keep coming - especially when it comes to coding - but I’ll get into that and the new Team Sharing capabilities tomorrow.
If you want to download the public preview (or the currently shipping 3.5 version for that matter) - just go to http://www.servoy.com/developer. They’ve also scheduled some live webinar events this week (and next) - but you gotta’ register for them at their events page.
Permalink
05.10.08
Posted in General Rant at 9:29 am by Administrator
Oracle developers are highly skilled and highly valued resources. They love code, and can write PL/SQL in a command line-like interface like nobody’s business.
Oracle has acquired so many companies - that they need to have a way to build applications around the vast number of products in a vast number of tools.
Oracle loves Java, Linux and has finally realized that Oracle Forms and Oracle Reports absolutely suck.
So, they’re looking to put together an alternative. JavaServer Faces is one way to go (open, Java = good). So, they decided to make it “easy” for developers to create J2EE applications in a browser with all that fancy AJAX stuff.
Sounds great!
But, yet again, they have created the most convoluted, complex, hard-to-set-up, code-oriented, no-way-in-hell-anyone-but-a-Java-programmer-can-ever-use-it solution: Oracle Application Development Framework (ADF).
Don’t believe me? I DARE you to open this page - and don’t even read it - but just scroll down it. It’s OK, I’ll wait…
Cool, huh? Now THAT’S EASY!
I’m no Java programmer - in fact I’m no 4GL programmer (any more) - but even I can use Servoy to create and deploy both client server and full AJAX web applications against an Oracle database (or 3, or 5 or 10), a Sybase database, SQL Server database, a MySQL database, AND a DB2 database - at the same time, on the same form in 5 minutes or less.
Really. I do it all the time.
Servoy gives me the speed of using a traditional 4GL, but it’s at LEAST 5 times faster to build and deploy and 100 TIMES easier to set up and configure than ADF. Or Ruby on Rails. Or ColdFusion. Or Flash. Or Gears. Or AIR. Or OpenLazlo.
Do yourself a favor - if you haven’t checked out Servoy lately - do it NOW! Also, watch for the upcoming public preview of their new Eclipse-based Servoy 4.0. It’s even MORE productive than what they have now.
Permalink
« Previous entries · Next entries »