January 29, 2013

Data Sutra 4.0 Released Comments (2)

Ready to move to the web and mobile in a big way?

Screen-date-combo

After eight months of development and rigorous testing with Servoy 6.1.x, today we are releasing Data Sutra version 4.0. The marque features of this release are:

Continue reading "Data Sutra 4.0 Released"

| Posted by David Workman on January 29, 2013 at 11:20 AM in Module, News | Permalink | Comments (2)

January 03, 2013

Hacking Servoy's Calendar Picker Comments (4)

Servoy's web client calendar picker is an easy target to make fun of—the last time it looked even somewhat passable was probably 15 years ago. A picture is worth a 1,000 words:

Servoy_calendar_picker

Additionally, Servoy doesn't have any hooks or abstractions to modify the look and feel of this component. And all the markup and css is generated at runtime so not so easy as just going in and adjusting a bit of CSS.

The rest of this post explains how to arrive at this:

Calendar_picker_after

Continue reading "Hacking Servoy's Calendar Picker"

| Posted by David Workman on January 3, 2013 at 03:17 PM in Tips | Permalink | Comments (4)

November 19, 2012

Fractions for Servoy Comments (0)

We just released an open source project that adds fractional data entry and display and decimal/fraction conversion to Servoy.

You can find it here: https://www.servoyforge.net/projects/fractions

 

| Posted by David Workman on November 19, 2012 at 05:36 PM in Module, News | Permalink | Comments (0)

August 09, 2012

Coding Session #15: Testing Comments (0)

We're in the midst of converting over our entire engineering processes for large (sprawling) GUI-driven (target audience…monkeys) enterprise (mythical beasts that grudgingly poop money) applications (the current evolutionary-defining tool that makes us all wish for the stone age again) from Java thin client deployment (*shiver*) to this html5/javascript/css3 thingee conceived when a million annoying people tasked with making a rainbow were put into a room for an epoch with all-you-can-eat pizza and coke.

(Should have put a million monkeys in that room. Would have at least gotten Macbeth out of the deal.)

Where was I? Oh yea…testing.

Continue reading "Coding Session #15: Testing"

| Posted by David Workman on August 9, 2012 at 04:15 PM in Articles, Video | Permalink | Comments (0)

July 14, 2012

Hacking Servoy's AJAX Notification Comments (2)

Since Servoy's Web Client largely runs server-side, the AJAX notification gets triggered a lot. And Servoy's default notification...er, blows. And they don't make it easy for the developer to modify unless you know a bit of client-side javascript.

This video shows a spinner that appears at the location of the mouse and follows the mouse around if it is moved while an AJAX call is waiting to complete. MUCH better user experience.

Here is my development code for hacking in the location of our modified notification (I'm sure it will get tightened up a bit before going into production!):

Not discussed in the video is how we changed the notification from Servoy's default "Loading..." text to a spinner. We used the most excellent NETEYE Activity Indicator jQuery Plugin. The following code is what we used to set up the spinner using this library:

Note that there are several permanent ways of including client-side javascript with Servoy's Web Client. In the MainPage.html web client template, insert server-side with the Web Client Utils plugin, or in your custom wrapper if you're running Servoy Web Client in an iFrame.

| Posted by David Workman on July 14, 2012 at 04:18 PM in Tips, Video | Permalink | Comments (2)

April 27, 2012

[Video] Servoy vs MeteorJS Comments (2)

In the past week, MeteorJS has generated a lot of buzz in the internetz. And for good reason: developing javascript applications is currently a painful process of determining what libraries and projects to use, getting them all to work together, working out debugging strategies, setting up code sharing with multiple developers, and finally building and deploying. 

All of which has very little to do with actually writing your web application!

The holy grail of web application development is starting from a point where all the brute grunt work is already done for you so you can focus on just writing and deploying an application. Meteor makes a compelling case that they have figured this out.

Of course Servoy has been doing this for years. So I sat down today and replicated the Meteor demo video with Servoy. Many similarities and some slight differences which I discuss as I go through the same steps they do to build and deploy a complete application.

You can find the Meteor screencast I referenced here: http://www.meteor.com/screencast

To check Servoy out further, head on over to: http://www.servoy.com

| Posted by David Workman on April 27, 2012 at 07:27 PM in Video | Permalink | Comments (2)

March 08, 2012

[Article] Module best practices Comments (1)

It's been six and seven years respectively since myself and Bob have posted on the subject of Servoy modules.

Since then, here at Data Mosaic we've written an entire application frameworks, released an open source CMS, integrated diverse technologies with Servoy—and applied all this many times over on various client projects.

This has taught us a lot about how to write, deploy and keep updated in many places—developer machines and deployment servers—reusable code in large solutions.

We've just completed an article on module best practices for the Sutra CMS documentation as understanding Servoy modules is important for including the Sutra CMS modules in your own solutions.

In it we cover basic module concepts, various techniques for extending functionality contained in modules, and how to make this all work smoothly with SVN.

Whether you are developing a small solution by yourself or part of a team of developers working on projects for many clients, I hope you will find something useful to help improve your development workflows.

The article is located here.

| Posted by David Workman on March 8, 2012 at 02:24 PM in Articles | Permalink | Comments (1)

January 24, 2012

[Video] Coding Session #14: Object Oriented Programming Comments (0)

If you order 46 pairs of shoes, 23 bags, 15 balls, and one commemorative bowling pin—how many boxes does it take to ship your order and how much does it all weigh?

Sounds like some messed up test question your insane teacher threw on an Algebra I test just to see how many kids would cry. I remember thinking in school, "Who the f' cares when the stupid train arrives in the next town?!"

I still have my doubts about trains but in this coding session I find out first hand that Post Offices do care about boxes and how much they weigh.

How would you solve this shipping problem in code?

Object oriented programming to the rescue. And a good debugger. And a buddy looking over your shoulder and catching your mistakes.

 

| Posted by David Workman on January 24, 2012 at 11:06 AM in Video | Permalink | Comments (0)

January 17, 2012

[Video] Coding Session #13: AJAX with Servoy Comments (1)

For this coding session we have a very special guest: Patrick Talbot from ServoyForge. Since he and I had scheduled this session in, we also invited a number of other programmers from around the interwebz to hang out with us. The end result is a dynamic exchange of ideas that ranged far from the original intent of the session!

Ostensibly, this session is about how to do an AJAX call with Servoy. It covers the full round trip of sending and receiving data, executing code on both the client and server side, and debugging tools and strategies to easily see how everything works.

This is for a website that Patrick is doing with the Sutra CMS platform. Very nice design. The AJAX call is needed for implementing dynamic searching.

Video Part 1: This is where I set up my development environment with Patrick's website. You'll see me go through setting up another Servoy developer in one Servoy install, setup database connections and transfer data, and hook into a shared SVN. Helpful if you are a Servoy developer with the need to work on multiple projects and very helpful is you are looking to get into Sutra CMS development.

Since this all takes time and is rather boring, Patrick happily regales us with his knowledge of the upcoming Servoy 6.1 and integration with ServoyForge and answers various other questions the crew throws at him.

http://www.youtube.com/datamosaic#p/u/1/2SB7f_hpEFU

Video Part 2: We hit AJAX right out the gate here. Get it all working, then do the SVN thing and make sure it all works on Patrick's machine. Once you see how we put it all together, I think you will agree that not only is AJAX a powerful technique to have in your bag of tricks—it is easy to do.

In part one Patrick let slip an unannounced special project he was working on for Servoy developers. Somehow we managed to get him to do a full demo of it after we were done with the coding thing. How about a modeling tool that hooks right into your Servoy database/table and relations files?

That's right. And you heard it here first: Servoy Modeler by Patrick Talbot.

http://www.youtube.com/datamosaic#p/u/0/7wUo-wnmw6M

Many thanks Patrick! And also Troy, Lach and Rob for helping make this one fun coding session.

 

| Posted by David Workman on January 17, 2012 at 04:06 PM in Video | Permalink | Comments (1)

December 23, 2011

[Commentary] Does being tired make us better coders? Comments (2)

I did a team programming session the other day that started late with my brain already fried. My cohort wasn't in much better shape either but we felt we needed to at least grind something out.

At one point I got really annoyed because my tired brain was stumbling over finding and implementing an API call. And not someone else's API call—one of our own creations. Creations that we expect other people to use as they are in a released product.

If I'm having a hard time, how the hell is anyone else going to figure it out?!? Grrr....

Piling a stupid moment on top of tired and cranky is one way to critique your own code. In my frustration I wrote a bunch of un-PC comments about how we weren't paying attention to details and documentation and whatnot—at the top of our next day's todo list. Highlighted in red to make sure everyone started their day with what I deemed in the moment was the correct sense of urgency.

Fast forward to the next day. My brain has had some time to get over frustration and start working on some solutions. This leads to an all-day session of team coding that results in a reorganized API that is much cleaner and Troy figuring out a neat trick for getting Servoy's code completion to work with functions attached to our own objects. A very productive day.

As we're winding things down I quip in our all-hands meeting, "Hey, maybe brain-dead programming has some benefits after all." My way of apologizing for yelling on the master todo list. Because, you know, I've never gone through the 12-step program for apologizing correctly.

To which one of the team links us to this:

Why programmers work at night

A very interesting read. One of the author's premises is: "Because being tired makes us better coders".

I'm not sure I agree with that part entirely but I will say that being tired is one hell of an honest way to look at your own code.

| Posted by David Workman on December 23, 2011 at 07:26 PM in Commentary | Permalink | Comments (2)