What’s Doing

Okay. I’m very trashed. Going to just list a random order of things happening lately.

– played a bit of WoW again, finally. Missed the crack-e-ness.

– played a very tiny bit of the Witcher with the new patch that lessens load times. Made it much more enjoyable. Will have to continue with that.

– movement on the Tech Evangelist role for SV (Clarion).

– decided on a revamp for Pimp My Clarion, as of now going to create it in NetTalk, host it myself.

– got the web server and basic web system functionality into the Freight system.

– almost got the Tafres (Freight System) web site finished and ready to launch. Just need to fill in some of the content.

– working on a new patch for Jaymoe. Still trying to do too much though. Changing the UI. It’s not going to happen easily or quickly. Going to have to work out which way to go.

– a new beta of Dr. Explain came out. Looking forward to getting stuck into the added features.

– actual work is getting pretty convoluted. I took some initiative and started assuming the role of Team Leader for my project. Noone has corrected my assumption yet, although had to deal with some wierdness.

– read some interesting stuff about Ruby on Rails .. 1. here and 2. here. Well, the second link has a more global topic. Warning .. Extreme Language, specially in the Zed rant. But very interesting. It sounds like a complicated mess, with massive egos and guys who don’t know much about programming, and guys who do, all fighting together over important and not-so-important stuff. Which is of course a global and lame statement. Ha ha. If you want to find out about what’s going on in the Rails community .. read Zed’s rant.

– Sword of Shadows (JVJ’s site) came out! Read it asap and loved it. This series is one of my all time favourites. Got one of the most awesome fantasy quotes ever. "Kill an army for me Raif Sevrance. Any less and I might just call you back."

– almost finished watching Heroes Series 1 through again. Just finished "Five Years Gone" last night while exercising.

– Exercising like a maniac on the bike we got as a combined christmas pressie. 30 mins to 1 hour a night, 5-7 nights a week. It’s crazy. But awesome because you can do it in front of the telly. Ahhhh. However, really cuts into .. well .. time.

That’s enough for now. Regular updates will hopefully be more .. regular.

Little Things

Recently the GMail team have been adding _little_ things to their product. It’s cool. The refined power in the engine I’ve read about, and you can see some of the signals (words and images changing).

I noticed this morning a new bit (for want of a better word, which you will no doubt have). The labels (tags, not folders, no folders here!) of the conversation (the email) are displayed just to the right of the Subject. You can then search for all messages with the labels, or remove a label from that conversation.

gmail-001

Cool.

In other news, the Firefox install on my laptop is still giving grief with the Nettalk Webserver / Ext  / Vista combination. Other Firefox installs on XP and Vista are the same. Extensions turned off makes no difference. Exactly the same extensions as working instances makes no difference.

It’s infuriating.

(Apologies for the width of this image .. for effect :) )

firefox-001

Haven’t worked on Jaymoe since last update. Well, not enough to count.

Discovered anew why I loved David Gemmell’s books. They were simple, straight-forward heroic fantasy. You could guarantee there would be a big strong bull fighter. There would be a tall lithe athletic leader who was amazingly skilled in weapons. Waylander. Druss. Even Skillgannon (spl) later on. Love it. I truly hope someone picks up that mantle. He didn”t have the depth that GRRM has, but I don’t always eat steak.

Jaymoe, A Work Still In Progress

For the past couple of months, I’ve been working, a few hours a week, on Jaymoe. It’s a Sporting Club Web System, "basically". Ha ha.

jaymoeversion1-001Anyway, Version 1 took me about 7 days to slap together with Clarion, NetTalk and some use of Lightbox (javascript image effect library, built on Scriptaculous). Version 1 isn’t much to write home about. You can see the demo here.

 

At this point in the development, I discovered Ext. This changed what I thought I could achieve. If I could pull out the UI of NetTalk, Ext can give me awesomeness in a bottle. But the beauty of NetTalk is that it provides me with a bunch of template driven windows (like Forms, Browses, Dropdowns) and all I have to do is fill in some template fields.

Given the amazing demos of Ext, I decided that it was worth it.

And it was, to an extent. Jaymoe V2 is well on the way to becoming something special.

But it’s too much. Not only did the entire UI change, but the Database underwent a massive overhaul.

In Version 1, Jaymoe had a database who’s data entry was driven both by the end user, and by myself (or someone at the server end). In some situations, this is a strength. But for Jaymoe, it’s a weakness. I would have to upkeep all the backbone stats for the Clubs. From their Division information to each Round’s Games. Crazy. Absolutely crazy.

So what could I do?

Take a leaf out of the social networking sites. Move everything under the control of the User. Well, not everything .. just .. everything.

jaymoedb-001

So now, the DB is a different monster all together. Almost everything (for the purposes of this post anyway, heh heh) sits under two important files. One is the User file. This cannot be directly affected by the User themselves. The other is the Entity file. Underneath the Entity are all the User interactive files. Stats, News, Images, and so on. The User logs into their Entity, and controls what Sport they are playing, when the Games are, who scored how many tries.

Of course, there are problems with this approach. Designing a Lazy system is best. With the database strong, it falls on the implementation to make sure the User doesn’t have to do too much. Entering every single Game in a Season might be considered too much.

How do you solve this problem?

One way is to provide a template (say xml in this case) which is for whatever data they are populating. This would have to be maintained at the server end, and we return to the same problem as before. Why should I have to maintain this data?

Another method would be to "share" the data across Entities. So that certain data entered by one User (for an Entity), is shared across other Entities.

This idea works when you have a few teams in one division using the system at once. But if you’re the only team in your division, noone else is entering the relevant information for you. Which leads back to you entering all the info yourself.

I haven’t solved it yet. But will chew away for a while.

There is more I’d like to say about Ext and problems I’ve encountered along the way. Another post. Seeya then.

Building A web App Using Nettalk Web Server .. (1)

It’s been a whirlwind few days. Continually, NetTalk Web Server amazes me. It’s just pure Awesome.

My first real work with NTWS (Net Talk Web Server) was with Rasp. Rasp development is still going ahead, currently functionality is being worked on in another system that will slide nicely across.

However, the last few days has (and still is, i’m really struggling to pull myself away to write this) been of such import that it has to be put down on paper. Or the interweb. One is as good as the other right?

Thursday Night .. World Domination begins with a phonecall

I get a call from a work colleague who’s sporting club needs a website done. From past experiences, I know despite what i’d like to think, i’m bad at doing websites.

Zapper (let’s call my friend, because Zap Brannigan is just cool) starts to tell me what they want. Just a small site. Something that displays upcoming events. Some pictures maybe. Oh .. and databases.

Bam. DBs. So after explaining that usually the word "database" adds plenty of zero’s onto the end of a web dev quote, i do the only thing any sane person would. I say I can get it done way quicker way cheaper way better.

Why? What possessed me?

NTWS.

So I get off the phone. Zapper was gonna get together with me the next day at work to talk about what they wanted.

Screw that I thought. Actually, no i didn’t. I thought, "Why wait?".

A few days before I’d managed to get a simple Blog interface into Rasp. A "Pages" file controlled by the usual Browse/Form paradigm in the Admin. And for viewing, a NetWebSource procedure to spit back the posts in whatever way I wanted. Nice.

So I hooked that in, made some modifications, and I had a simple database website already running. It had the ability to keep people up to date with what was happening in the club.

The next point of call was the database itself. The _contextual_ database. I needed the ability to add stats for various different entities. Games, Players, Seasons .. etc etc. The db came together on paper pretty easy. And into the dictionary fairly easily, with some changes along the way.

I struggled when putting it into the NTWS interface. Overcomplicating things, I tried to have all the logical flow happening. The User had to go to the top browse, then the child browse, all the way down to the Player Instance browse, just to enter in game stats.

BAD. That cost me a lot of time. By the end of the night i realised all I needed to show Zapper on the morrow was one browse and update .. the Player. Everything else could wait.

So I got it in. Simple.

We now had:

  • Blog/News.
  • Player Stats.
  • Administration (of Stats, Blog) via Login.
  • And of course, we had the Server App itself, humming away.

Friday Night .. And we get Funky

By friday night, it was clear I need to up my experience with NTWS. So I sought out the nearest skill trainer, readied my sword and staff, and got to work.

The first thing I did was pretty up my blog interface. I noticed that Bruce had these cool rounded corners being used all over the joint. I want that. It was as simple as copying a couple of lines of his code, pasting, changing the element ID .. and bam. Rounded corners. A bit of css manipulation within the NetWebSource procedure, and suddenly my blog/news page is starting to look like a blog.

Nice.

That wasn’t enough. Rico, a javascript library built on top of Prototype (both of which are included in the NTWS environment), had a couple of cool examples on it’s site. So I set about emulating them.

Actually, not them. I really wanted to get Drag N Drop working. It wasn’t too hard, after a bit of experimenting, and making sure I had the right css happening.

Then I went to bed. Overall, friday night was a mixed bag. Sure, I got some funky stuff in, but really .. Drag N Drop is very specific in it’s functionality, and i hadn’t actually hooked it into the NTWS engine.

We now had:

  • Rounded Corners on divs .. yay
  • Drag N Drop, client-side only

Saturday Night .. How To Stop An Exploding System

Okay. Here’s where things really kicked it up a notch.

Just for anyone interested, the sub-title comes from Heroes. One of the greatest pieces of story-telling (across all media) ever. Of course, you’re entitled to your own opinion :) ha ha.

I’d had some time to think during the day with the fam. So my mind was prepared going in.

Forums and an Image Gallery. More and more, my mind was beginning to see just what I was creating here. Sure, WordPress is infinitely more changeable, but I was creating an install and run Web Server which served the beginnings of a CMS system. A blog. Forums. Image Gallery. User functionality.

And to top that, there was the contextual stuff. In this case, Sporting Stats.

The admin for the Image Gallery (at this stage) was easy. A Browse/Form into the Image file. Nothing doing, simple.

Showing the Gallery proved a little harder. It was getting late, and I got stuck on some bad code which wasn’t showing the gallery how i thought it should look. Of course, one of my counters was out. Such a lame little thing, but my brain couldn’t get past it.

After fixing this, I moved to the forums.

These were a little harder by concept. I didn’t actually get clarity of mind until Monday Night. But for now, I got the file structures in, and the main pages. Using the NTWS Templates only at this stage. By bedtime a public forum existed, where anyone could manipulate the Headers, Posts and Replies .. using the generic Browses/Forms.

We now had:

  • Image Gallery (simple)
  • Forums (simple)

Monday Night .. I Can See Green Code

Monday night, two things happened. I realised that I suck at css/div manipulation .. but with some tricks, the Image Gallery started looking okay.

The second (bad paragraph punc.) was that the generic NTWS browses and forms could be manipulated in such a way as to look like Forums.

I had a couple of nice NetWebSource procedures helping. And I learnt a bit more about how the NTWS engine runs Requests and so forth.

But suffice to say, the Forums were now kicking. A visitor could write Posts and Replies. They couldn’t edit the Headers, and couldn’t change existing Posts.

Still basic, but more advanced that the previous basic.

We now had:

  • Image Gallery (less simple)
  • Forums (less simple)

Tuesday Night .. Light Up That Box!

It’s Tuesday Night, and this post has demanded a fair bit of attention.

However, before starting this waffle, I managed to get both Scriptaculous and Lightbox into NTWS, so that my ImageGallery could have some nice effects. This is cool, because it’s eye candy. And most people are attracted most of the time to form over function. At least, it seems that way to me.

So now I’m done. I’ll get back to the Making.

Suffice to say, there is a huge potential in NTWS for creation. Imagine and do. There is no .. something.

Crackle Will Snap You Pop

Oh the tears. This video from the Grouper site is just that funny. I’m not sure what Crackle is .. but a simple google search would probably fix that.

But it makes me wonder. What if some of these big web and desktop entities were objects? Better yet, what if they were Transformers?

Smells like someone with good comic skills should draw something up. I would, but the prerequisite was _good_. Might still give it a shot.

Last night I got some very nice work done on the current Clarion after hours project. Finally got somewhere with Insight Graphing and the NetTalk WebServer engine. I’m still struggling to understand some things .. but managed to get further than before.

One of the coolest things about this project, I’ve mentioned it before, it’s a personal banking helper system (online) .. is that the data is very meaningful.

Last night I fed in 9 months of bank transactions. That’s quite a nice chunk of information. And to be able to range and filter it in a meaningful way. Awesome.

For example, I can now see the exact amount of "Cash Outs" within any date period, in graph form. And there’s a good choice of graph types to choose from. Line, Scatter, Time, Pareto, Pie, Column (?) .. and probably some more.

Of course, graphing is so dependant on the context. A set of data will fit one type of graph really awesomely, but another it will suck.

So my job for the next while is to get a lot of different data sets happening.

The way I’m coming up with them (the data sets for reporting / graphing) is really simple. What do I want to know about my finances? Of course there will be a lot more than I know about .. but it’s a good start.

Day 2 (Capesoft Training)

Bruce’s joke for the day

q.) How many programmers does it take to change a lightbulb?

a.) The lightbulb works fine in my office.

 

We are into the guts of stuff today .. Bruce is getting us in the Web session to get going, experiment, ask him about compile errors and broken stuff.

Today has been very .. intense. Only because we’ve pretty much been able to work away and ask Bruce questions .. when he’s free. Ha ha.

We got a very good rundown on how to use Frames within NT4WebServer. In fact, Frames have made it into both days so far. They are, according to Bruce (and he’s right) good tools when used effectively. Of course, mostly our brains remember the bad uses. But they have great value.

I’ve continued along with my NetWeb project into the second session today. There’s three of us bogans up the back of the SQL session part 2.

Anyway, I’ll upload some photos tonight hopefully.

Photos from Day 2 (Click for lightbox .. box)

DSC00027

DSC00028

DSC00029

DSC00030

DSC00031

DSC00032

DSC00033

DSC00034

DSC00035

DSC00036

DSC00037

DSC00038

DSC00039

Aussie DevCon 2007 .. Part 1 (The Capesoft Boys)

Wednesday through Friday we attended "The Capesoft World Tour 2007", the Aussie Leg.

There were too many choices to make for these three days! Bruce, Jono and Geoff all had very interesting seminars throughout the three days.

You can look here for the breakdown of sessions.

If one thing can be said for the Capesoft guys (and lots can be said) it’s that they can hit the heart of a matter very quickly. Almost a pre-cognitive ability .. hmmm, could there be Mutants walking amongst us? [ .. cough .. ]

And this is, forgive my presumption, one of the more important things you can learn from developers like Capesoft. How to approach problem-solving. How to ask the right questions.

I’m not sure if I can explain it any better than that. But if you spend any time with Capesoft, or indeed others, then watch and learn how they approach development. How they seek out the heart of the matter, or how they don’t. How often does Bruce say "That’s not really important ..", or "You’re looking in the wrong place ..".  I guess it can wrankle, but I prefer to see it as a good learning process. You could also just not ask stupid questions .. but Bruce says there are no stupid questions, only stupid people. So .. hmmmm. Ha ha.

Technically, I saw a specific example of just how powerful the Capesoft products, and their training, are (is?).

My workmate Bill brought along a semi-formed app built on NetTalk 4 WebServer templates. It was a new "lite" version of a far more comphrehensive and powerful desktop system.

Over the five days of conference, Bill had transported from TPS to SQL, added Multi-Database functionality (first in TPS, then SQL), other fancy SQL functionality, Letter merging, Word Document creation, extra PDF functionality, an "Inbox" feature, and TPS and SQL program in the same source code!

Freaking amazing. Just fantastic. Awesome.

In my own app, I was able to nail down some specific functionality (sorting of browses dynamically, graphing, reporting, other funky stuff). It was just very cool seeing a pie graph appear with meaningful data out of a browser.

If you don’t use any Capesoft products, then possibly the value of three days of training might not be that much. I’d still argue you could learn a lot about development, but then, you can learn that kind of stuff listening to any good dev, of which many abound all over the net, amongst other places (you might be one too, heh heh).

But if you use Capesoft products, then there is absolutely no question as to the value of attending their training. Their tools should be adding that much money-potential to your product(s) that paying for it isn’t a problem. If it is .. then start saving now for next time!

Definately, I’d say you should go with something specific in mind. Whether that be a product you want functionality added to, or just to learn how to use their products.

All in all, the Capesoft segment of the DevCon was a wonderful time. We made jokes, ate those round white mint lollies, and drank heaps of water. Or at least i did. Wait. We also talked, discovered new tricks, fabulous products, and gave our apps an injection of raw talent, power and good looks.