Demonstration Man

I’m no Wesley Snipes to Sly’s lame future man .. but today I learnt an amazing truth.

Okay, the start of that sentence made almost no sense :).

Anyway. Onto the meat.

Today the system i’ve been working on for the past 6ish months had it’s first demonstration. It was only three other people, and I didn’t even demonstrate it.

We got through perhaps 1/20th of the functionality, mostly just administration stuff.

Something incredible happened. I was taking notes, trying to absorb all that was being said, and the extra thoughts that were popping into my head. And as we debriefed afterwards, I realised .. these elements that before were cloudy and even misty, were now coalescing in my mind. The clarity of the greater and smaller visions was far clearer than ever before.

Part of this is because someone else was driving the program. Admittedly, 99% of the logic behind the program originated from this person, but he hasn’t seen it for a long time. Seeing his excitement when working out/remembering the power that lay in his creation was really cool. And that infection helped me to see what he was aiming for.

Moreover, just the simple fact that there were other bodies watching the program gave a little more to the experience. It’s why we’re hard-pressed to go without human contact. Because like steel on steel, we need to be sharpening each other’s minds. That’s what a demonstration gives. It’s like a whetstone to the battle axe.

For the rest of the day my brain was a-buzz. I slammed through the little (but important) bits of coding (functionality, UI, …) at an amazing rate. I had the zone baby. The Zone was mine, owned and fully realised.

I’m sure there will be days of slowness, definitely. And there will be days of greater headiness too (when I finish this next project, that’s gonna rock) .. but for now, this is now.

Cheers,

Top 10 Google & Technorati “Software Development” Sites–Part 1

Disclaimer:

The first Death Star was flawed … wait on … The first draft of this article/post was flawed. That is … i wrote to much before saving, and then lost it all.
What this did was flick a little switch in my brain as to the auto-saving of WordPress documents … I haven’t yet looked into the plugins dbs, but if something doesn’t exist, then I wonder how hard it will be to create it.
Anway … on with becoming an Investigatory Journalist.

In an effort to better understand what is happening in the world of Development, I took out my sleuthing suede hat, pipe, magnifying glass, and got to work. It was rough at the beginning, fighting villian’s of the calibre of Professor Moriaty … wait on.

All dream-sequences aside, I began my search with to of the greatest tools at our disposal today. Google, and Technorati.

Disclaimer #2:

These lists may alter from time of publication to time of reading. Hopefully not by much.

What follows is a shocking tale of greed, murder, mystery, … heh heh. Can’t you tell I’m a frustrated story-teller.

Read on to see what I discovered. Part 2 (the Technorati bits) is forthcoming.

Continue reading “Top 10 Google & Technorati “Software Development” Sites–Part 1”

The Attitudinal Rabbit

As the kids and I were driving home from the video store tonight, the tale of the Tortoise and the Hare popped into my head. Not sure exactly why, perhaps it came from something the kids were talking to me about.

Anyway.

It’s got a good lesson for development, buried at the surface.

The moral of that particular fable is not about speed. It’s about … attitude. Aesop took two extremes to illustrate his point, but it could have equally been two hares, or two tortoises. The difference between the two was attitude.

It is the same with development. You can have two gurus, one who will continue to work at something long after the other is in the dust. It is even more true when you have the guru and the not-so-guru. The temptation to have a lazy/bad attitude to development are far greater when it comes as natural as breathing. When you have to work long and hard to break through, it’s easier to be more aware.

But whatever you are, however your brain works, it boils down to the same thing. Somewhere along the line, and probably for most of said line, it’s gonna be tough. The coding, the selling/marketing, the support/install/training, the "humility" when dealing with clients afterwards. All these things are going to have a fair percentage of hard work attached to them. Slog work.

This afternoon I was faced with this head on. I found a particular problem within the functionality. It could have lain anywhere within about 4 levels of procedures. Intimidating to my caffiene-slowed brain, to say the least. But slowly I pursued the goal. Like a hound, chasing down it’s prey. A slow, slow hound, who wanted a diet coke badly.

Eventually, after fixing an incidental problem that confused the initial issue somewhat, I discovered the cause, fixed it … and BOOM, the sums added up.

Oh happy day!

Anyway. Attitude. Apart from anything, you aren’t going to get anywhere in the complete picture with a bad attitude. You might succeed in some areas, but the more clients you get, the more people you meet, the more chance there is that bad attitude will turn them away.

So I’m turning around towards something Bill and I were discussing today, mentioned briefly above. Sorry Bill, wasn’t stealing your IP … heh heh. That another step in the development cycle, the complete cycle, is to be able to suck it in and take humility by the horns. Or rather, meekly submit, especially when you’ve got clients getting antsy.

Meekness doesn’t mean weakness. It means you’re okay with not being right in other people’s eyes all the time. It’s okay for them to think that they are right. After all, they just might be. But whether they are or not doesn’t matter. If it’s just a "mine is bigger than yours" argument, then it should never be an issue. It doesn’t make you any less of a developer, and most of the time, people respect strength of character and true humility far better than arrogance and meglomania.

Anyway … ‘Nuff said. Babbled on a little longer than I meant to.

Sibisy, The Simple Billing System

Foreword

Sibisy is a Simple Billing System.

It’s projected functionality was to allow you to enter Creditors, Bills, Bill Payments, and report off the Bills and Payments.

Extra functionality looked at exporting data to XML (amongst other reasons, for the inclusion into other Account packages), and the ability to Email straight from the program.

Download

Sibisy 0.1.0

Purpose

In developing Sibisy I wanted to do a number of things.

  1. Shed light on Clarion, and just how good it is
  2. Experience a very short Development cycle
  3. Hopefully, get some feedback from the public at large
  4. Add a few more notches in the brain towards becoming a better Developer

The subject matter wasn’t all that important, although for a while now I’ve been thinking about doing a simple billing system for family and friends. A way to track your bills. Of course, the main problem is that we want someone else to do the work, and that someone else is usually an Accountant with MYOB or Quickbooks. But maybe not. Hopefully not.

Versions

0.1.0

Wednesday, 25th January, 2006

  • c60dosx.dll added to the install exe – Thanks Lil!

Friday, 20th January, 2006

  • Download :: Sibisy 0.1.0
    • Initial Project was a test to see what could be done with Clarion in 2 hours. The rules were:
      • Only thoughts beforehand, no writing down of ideas
      • No Code, that is, no handcoding in the project
      • Fully installable executable by the end of the 2 hours

      I initially broke up the 2 hours as follows (in minutes):

      • Phase 001, 1-15 … planning, writing, no use of Clarion
      • Phase 002, 16-105 … creation of Sibisy, first the dictionary, then the app, with any dictionary changes as needed
      • Phase 003, 106-120 … creation of installation exe, testing of this install

      It actually was a blessing doing this. Even though by the end of Phase 002 I was panicking. I spent way too much time on unimportant things, although was able to realise this at certain stages and sharpen up. Although would drift back into that ill-disciplined mindset.

    What a blast. This was a great idea, and is definately the way to become a better developer.

    Here’s my notes from the 2 hours.

    Phase 001

    • Started by fleshing out the file structures on paper. First thing is that I spent too much time doing the individual fields, actually writing their names down. I’m not convinced this is necessarily bad, but when on a time-limit it should definately be avoided. Doing the actual design of the database should take priority. File names and keys, and how they relate together.

      Noted here that I would like to export bills to XML using the excellent IQXML. I have it in my clarion template registry, but haven’t used it yet.

      Also noted the inclusion of Error Logging. At this stage, I hadn’t realised that this can’t really be done without handcode. Not with any precision.

    • Ten or so minutes in and I came to the first awakening. I wouldn’t be able to have child files. PeopleCreditors and BillEntries were gonna have to go by the wayside. Wasn’t enough time for BillEntries, and PeopleCreditors requires (the way I do it) a bit of handcoding.Also by the wayside went the Options file (for printer defaults, etc etc). Owner Details made it in.

      Owner Details is mainly there for the reports, so when you print something out your name, etc etc, can appear on the report. In hindsight this was a pretty big mistake. For one thing, this is a Billing system, don’t really need to send anything out. But also it’s not really a core part of the functionality. And I spent a LOT of time on this. Good to know for next time.

    • Then started thinking through the actual windows of the program. By this time, Time is running short. Need some Browses, a few update windows, and the reports.

    Phase 002

    • Just some simple field names. Head needed clearing at this point, and I didn’t really do that … just kept motoring along.

      Also, this is where I realised the problem with the Error Logging and needing handcode.

    • BAM! Before I knew it, the time was up. I started to get a little panicky, and went a few minutes overtime just getting things like icons in. Again, not core. But helped with the end look, which was okay.

    Phase 003

    • Not much to say here except that it went pretty smoothly. I use Tarma Installer (free version). It’s very simple and easy. Does the job, quick to open, probably not as powerful as others, but that’s not what I needed for this.

      Used Depenency Walker to check for the needed Clarion dlls, and put them into the application’s directory.

      Install went fine, but I did it on this, my development laptop. Not sure how it will go on a clean machine.

    Further NotesThere are a lot more things I wanted to get into this, but with the restriction of No Code made impossible to achieve. However, this allowed me to actually get the product done. Looking back, if I had allowed code, I would have wasted more time on the inconsequential, rather than the core.

    So as it stands I learnt a GREAT deal from doing this. I would recommend any and all developers to regularly give this a go. 2 hours is a seriously short amount of time, and you’ll come out the other side more buffed up than when you went in. Brain-Buffed … heh heh. Ahh, the "humor" is returning.

Engine

Clarion, by Softvelocity was my tool of choice for the development of this project.

The only third-party template that I used was File Manager 3.

Bring It On

Okay. I’m doing it. Tonight. The start of something special. Weekly, Bi-Weekly, Monthly, … whatever. It’s gonna start tonight. I’m being active instead of reactive. I’m pushing ahead where my mind doesn’t know what’s going to happen.

2 hours. Only thought beforehand. Fully installable executable.

  • Project :: Simple Billing System
  • Time :: 2 Hours
  • Choice Of Poison/Development Tool :: Clarion, by Softvelocity
  • Environment :: Dining room table, Wifey watching tv in the background, airconditioner at 20%, no earphones (usually on when working).
  • Rules ::
    • No Handcode, only use the templates, and any 3rd-Party templates installed at the time
    • Fully Installable, using Installer of choice, with all dll’s required
  • Initial Thoughts on Breakdown (in minutes)::
    • (1-15), Writing down thoughts, breaking up project on paper, no use of Clarion, although maybe some websurfing
    • (16-105), Fire it up, go for broke putting the project together, starting with the Dictionary (file structures), then the app
    • (106-120), Installation creation, testing on networked computer

I’m going to write in my notebook during the 2 hours, and then scribe it to the blog afterward. The times might be a little out, I’ll be going by my laptop time.

Okay, Nuff said.

Focus Shift

This might be just my wishful thinking … but hopefully not.

I think there’s a change happening, a shifting of focus.

Two years ago, and for a long time before that, graphics cards and other bits of hardware were the talk of the town. In the mindset of the general populance, and throughout the webosphere. Mostly. Prevalently.

The winds are bringing change. And it’s good for the Developers amongst us.

I think, with the surging power of Google, and the massive influx of interest in web software RE Ajax and other development tools, software is coming to the fore. But not just "software". Microsoft has been around, all through the graphics years, and is still here.

I guess I’m talking about innovation, and how much people care about it. The buzzwords today are not to do with graphics power, ram, cpu … they’re all about Ajax, Google, … The Innovation of software (in all it’s forms) has the wave at the moment. It’s a good time to be in development. There is a lot of press out there, and it’s not too hard, with Digg, Slashdot, and all the others, to start generating a buzz. Look at Newsvine. From the words of Mike Davidson, CEO:

It’s still way too early to gauge the success of this community, but so far so good. We’ve managed to create enthusiasm, interest, and a platform for participation with an extremely low cost footprint. No launch parties, no advertising, no PR, no Aeron chairs, and no frivolous spending. Well, that’s not true actually. We did spend about $50 per person on a parasailing field trip a few months ago.

It’s never been easier for a small outfit, even a one-manner, to get some attention.

So what’s holding us back? Information and the Implementation. That is, Innovation.

I recently put to bed (began the process) a piece of software I’d written and sold. It wasn’t working, I’d made mistakes at the beginning in design, mostly from a lack of business understanding. And lack of foresight. I’ve been able to think back over the time, and take stock. It’s a relief to know that I now don’t have to have it in the back of my head as a responsibility. I can actually start implementing some of the ideas I’ve had over the past year. But also, the experience has taught me (hopefully) caution. I don’t want to be in the same place again in a years time.

Anyway, starting to ramble.

It’s good to be a developer. We’re at the cusp of excellence. Bill had his turn, so did NVidia and Radeon … It’s now time for us, the little guys, to step up.

As an aside, it’s always been the time. People have, since computers began, done just that. Innovated their way to the top. In software, and other places. But because this is me, at my stage in life, the way I perceive things centres (inherently badly i’m sure) around my experiences. So I take what is out there on the interweb, and form my own opinions. This one is … that the time is now. But I put this disclaimer in to let anyone who has read through thus far know that whatever time it is … it is now. If you get my obtuse drift.

Apologies for the incoherency of this post. The night of night terrors must still be affecting me.

Pursuing A Goal

Reading the past few posts, there is a definite theme swimming through them.

I’m still short-sighted when it comes to Development. Although I’m incrementally getting better at this, it’s frustrating when I spend three weeks on something I know others could have finished in 48 hours. This is the kind of thought pattern that can lead down the depressive spiral. I question what I’m doing in the business, and where I’m heading. What purpose do I have with this world of Development?

Rach said something tonight that helped me greatly. She said that I continue to work on certain solo projects, because of integrity. And it’s true. But there’s also a little bit of the stupid as well. I’ve worked for over 18 months now on a Project. Apart from buying the software, and one payment for a week’s visit, I haven’t received any other money for the work done on this project. And I only have one client.

All in all, it’s adds up to some pretty serious lack of foresight … but also lack of clarity as to the future. I need a clearer purpose for what I’m doing.

It’s with this that I sit down again late this night, pushing myself to get through the murk that surrounds my clouded mind. Trying to see a light. Looking for little glimpses that I’m actually getting somewhere.

This is mostly exhaustion speaking, and a little of a virus i suspect, chest infection stuff … but it’s still what I’m thinking right now.

So anyway, let us never forget the realities of the business. There are going to be times of self-doubt. I can’t compare my own software, or my experiences, with those of others who write software for hundreds/thousands/millions of users (I’ve said something like this in another post … bad memory). However, I still experience something of the measure of doubt and hardship.

The reality is sometimes you cut the cord … sometimes you slog … and most of the time you need community. Bonds with workmates who are going through the same stuff … bonds with family and friends who have nothing at all to do with development … I need guidance when I can’t see the way ahead. Or at least someone to hand me a lantern.

Anyway, gotta get working again … enough of the zany thought processes and brain freezing statements.