Friday, February 02, 2007

Got Build?

(sprint pending ;)

Friday, February 02, 2007 7:22:44 AM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, February 01, 2007

I love a good coincidence :-)  Couple of interesting expirations...

  • One of my credit cards expired today.  Not your problem I know, just saying...
  • The first Office 2007 betas expired today too.  If this stands between you and a productive morning in Outlook, grab the Beta 2 Technical Refresh and you will be able to the 31st of March.

*with apologies for the Dark Side of the Moon reference, I'm still on a buzz from seeing Roger Waters at the SuperdomeAcer Arena last week...

Thursday, February 01, 2007 12:04:52 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [2]  | 
 Wednesday, January 31, 2007

Don't get me wrong, I love Sharepoint.  Use it every day and sometimes even recommend it to others, but as no less an authority on the human condition as Ryan Adams put it, we hurt the ones we love :)

Sharepoint team:  please stop changing the names of things.  That will be all :-)

Wednesday, January 31, 2007 3:28:06 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, January 25, 2007

It has been hard to ignore some of the rumblings about the government's Access Card program, designed to improve the process around health and social services.

Problem is, there is an database nerd inside me that can see the merits of unified identity for what must be hunderds of computer systems of varying vintages in misc government departments.  The twitchy paranoid inside me detects that eerie National ID Card smell about them.  So I'm torn.

I wouldn't like to give the impression I know enough about this program to give informed critique, but I'm keeping an eye on this one...

Thursday, January 25, 2007 8:31:52 AM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [1]  | 
 Wednesday, January 24, 2007

First saw these in the back of Protect Your Windows Network and had cause to search for them today.  Here's the Linkage:

10 Immutable Laws of Security

Now look slightly more dated than I remember them ;)  So replace Password with Passphrase as appropriate etc, there is also some very good advice around too...

Wednesday, January 24, 2007 11:06:13 AM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, January 22, 2007

Just back from leave this morning... Got a new personal best in email collection

 

Monday, January 22, 2007 8:01:39 AM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [4]  | 
 Friday, January 19, 2007

This is part two in a series of posts about ASP.Net Controls.

ASP.Net Controls, Part 2: Composite Custom Controls - some assembly required

Now these controls are able to be designed to have some reuse and life outside one particular project.  The up side is that you can piece together odds and ends from System.Web.Ui.WebControls just how you like them, and as per normal the actual rendering to HTML is left to ASP.Net.

The down side is you just start with a class, descend from WebControl and piece it together in code.

Here's a bare bones sample to illustrate the concept, but first some notes:

  • Import System.ComponentModel for the attributes on the properties.  This is how they display in your Visual Studio properties window
  • Use actual controls as backing variables for the properties.  You want to be holding instances of the controls you will display in your class, and then abstract their properties behind your own properties.
  • CreateChildControls is where you assemble what will eventually be rendered down to the browser by adding to the Controls collection exposed by the base class.
  • Call EnsureChildControls.  A lot.  :-) 
  • This sample control no behaviour.  Use += / AddHandler to wire up your controls to event handlers.  Omitted for clarity.
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace MyProject.Controls
{

    public class CompositeControl : System.Web.UI.WebControls.WebControl
    {

        TextBox txtInput = new TextBox();
        Button cmdSubmit = new Button();
       
        protected override void CreateChildControls()
        {
            EnsureChildControls();

            txtInput.Text = DefaultText;
            Controls.Add(txtInput);

            cmdSubmit.Text = "Submit";
            Controls.Add(cmdSubmit);

            base.CreateChildControls();
        }

        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(writer);
        }

        [Category("Appearance"), DefaultValue("Enter text here")]
        public string DefaultText
        {
            get
            {
                EnsureChildControls();
                return txtInput.Text;
            }
            set
            {
                EnsureChildControls();
                txtInput.Text = value;
            }
        }

    }
}

Friday, January 19, 2007 1:55:26 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 

It occurred to me that ASP.Net has been a topic missing from my blog, so to rectify the situation I'm posting three pieces on Controls in the ASP.Net space.  Took me ages to get this straight in my own head so with any luck it will make sense here.

Part 1:  Web User Controls (ASCX files), the low hanging fruit

What better place to start.  These are the odd one out in the ASP.Net control space for a couple of reasons. 

  • While it is possible, they don't do reuse between projects well. 
  • They do have a drag and drop design time experience!
  • You drag them onto a page from the Solution Explorer, not the toolbox.

First thing to note is they have their own life cycle after Page_Load, and it feels a little like Server.Execute()

While they do have their own code behind class that inherits from System.Web.UI.UserControl, I try to not use too many properties on the class because I feel it gives a misleading impression in implementation.  Just say the thing has a text() property and in my Page_Load I set the text to something, well after Page_Load the thing can do what ever it wants to and then I have to go looking for what happened to my value for the text() property.

Re-use between projects requires some planning because they are not seperate from your web project, but re-use inside the same project is what they are best at.  Things like a navigational device, a customer lookup widget or something that makes an appearance more than once are good examples.  Pull them out, glue them together with a Web User Control, drop them back in.  Easy. 

Friday, January 19, 2007 1:00:54 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, January 17, 2007

Oddly enough, this blog post is to remind me of a discussion I had with a friend tonight about SOA;

Here's one to not tackle after pork, sausage, squash and cabbage (no, really! *burp*): Does it count if it is not over SOAP Web Services?  What if your services are in the same app domain as in a plugin architecture?

The benchmark I lean on here is:  If our systems agree on schema & contract over classes & data then we are on the path to SOA.

Which brings us back to Jean Paul de Sousa.  The story of the small ISV in the corporate space can be -to lean on a canonical example- recieving a requiment like: Here's our definition of "The Customer" <insert schema here>. 

The good news is for the ISV maybe I don't care how you store your customer, so long as the system boundaries talk with respect to the agreed on schema for a customer.  The bad news is for, again to pick on a common example, what if wearing the ISV hat I store the customer_name as one field, however "The Customer" definition has it as first_name & last_name.

As the ISV, the temptation is to split our customer_name field at the service boundary translation code on the first occurance of space, so that "John Smith" becomes "John" "Smith".  "Jean Paul de Sousa" however should be split on the second space! 

My ETL experience and ponderings, coupled with the non-trivial digestion task I am faced with, bring me to the conclusion that this isn't a new problem at all!  Just a new place for an old problem to live.  Awesome.  Schema and contract it is ;-D

Listening To: Almost Crimes by Broken Social Scene from You Forgot it in People

Tuesday, January 16, 2007 11:47:04 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [2]  | 

I'm just getting into the second week of some annual leave.  Note to my employer:  Don't let me remember just how... how... relaxing, yes!  that's it, relaxing annual leave can be, I digress...

Today's story is that for the sake of nothing more than the coffee was good and that else I would spend the day on the couch, I went to wire up a network in a friends store today.  It was also for the sake of making sure I could still handle on some of the basics like crimp RJ45 ends on CAT-5CAT-6 and so on.

I don't think my friend is able to get just what I get from it.   It's something like brewing your own beer and juicing your own oranges, something organic.  For four hours I got to get dusty in the problems of his business.  Very interesting.  He uses a paper diary even!

Consider this little thought experiment:  So your business involves printing peoples photos.  Way back in the day, the average guy shot 24 or 36 frames on some Kodak Gold and got the role printed at the minilab, because otherwise it was just a tin - it wasn't "photos" until you printed them.

Then the digital world hits and 10x the people own cameras, PDAs and phones.  Now each frame is a photo in its own right as soon as you take it!  You could print it on your inkjet, email it, post it to Flickr, show it on your ipod, show it on your media centre, show it on your mobile, et cetera...

Now so many more people are taking digital pictures, but instead of everyone printing every frame, about 15% of people taking digital images are making any prints at all.  Smaller slice of a bigger pie.  This wasn't lost on Agfa, Fuji are watching and it isn't lost on Kodak and Konica Minolta.  Time to give the business model a rethink... but how?!?  As a small business you may not get too many bites at it! 

(Love to hear any of your ideas - post a comment!)

Tangentally, this reminds me of a tech firm I once had chance to experience.  Management thought the one performance review form could be used for both a Sales Exec/BDM role and a junior network admin role.  Turns out that "Networking" means different things to these two roles.  Whoda thunk it?  *rolls eyes*

Sorry for the cryptic title, it's to subtly encourage your thoughts down an empirical path...

Listening To: spose iz Lily innit, a'rite?

Tuesday, January 16, 2007 11:01:59 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [1]  | 
 Tuesday, January 09, 2007

I've just watched a show on Discovery (yay, annual leave :-) about life being elsewhere in the solar system (europa's seas) or elsewhere in the universe, and the search thereof.

I was happily digesting a sandwitch and Tooheys when a silvery senior figure from NASA tried to quell the discussion in saying that single cellular life would be a significant find.  Speculation followed from the usual sources, with counter arguments from again, usual sources.

Please people!  enough.

Once you start a back-and-forth on semantics of proof (not to mention some very poor web design there guys!) you are already on the wrong path.

Bill Bryson concluded that life doesn't want to be much.  No social commentary intended, just his noting that of all living creatures, only one species has been so motivated to write books about living species.  The rest are just content to be moss, plants and etc.

Are Bryson and our aforementioned NASA silvery senior on the right path?  Maybe.  In either case, consider if "life" were substituted with "a mere inevitable chemical reaction"; if so Bryson should be careful to attribute "want", and our silvery senior should be careful when attributing "life" to it also.

Jon Kabat-Zinn noted that our subspecies name of Homo sapiens sapiens is no mistake, sapiens derives from the latin sapere, to taste but also to know.  The word sapient derives here also- meaning wise and insightfil, but isn't in wide use in present day English - maybe there is less call for it these days? :-)  But seriously, the use of sapiens sapiens implies a meta awareness.  Man who knows and knows that he knows as Kabat-Zinn puts it. 

And this is exactly where the wheel comes off the cart for the extraterrestrial life argument.  Where can the term life be defined outside the realm of subjective experience?  To be alive and not know it renders me unable to describe life.  If we sustain that line of reasoning one step further, any concept dependant on a definition and description of life, be it religion or God, can only itself be described in the context of a subjective description.

While ever discussion of these matters is bound by shifting semantics of language, you will find me perched on an esky at the sideline tossing my empties into the skirmish.

Tuesday, January 09, 2007 1:39:04 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [5]  | 
 Wednesday, January 03, 2007

c'on, log files are for nerds... the Web 2.0 way to know if no one is reading your blog is look at your keyboard. 

If the keyboard is attached to a past-its-use-by-date bottm-o'-the-range Inspiron, no one reads your blog. 

Spolsky, Mitch, etc, we get it already!  people read your blog. :D

Here's the oil lads, the next two people to blog about my blog get:

  • A 500ml Orange Juice.
  • An empty DL size envelope with the word "expenses" autographed on it by yours truely.
  • A selection of push pins suitable for pinning envelopes etc to workspace walls. 
  • Nov 7 edition of The Bulletin mag.  This is the sweetner, because although it is in mint condition, I boosted it from someone else who after this time may not even realize he had it.
  • One of those little single-serve soy sauce fishes you get with take-out sushi.

As is the norm, your disclosure is all your decision.  I will deliver your booty regardless.

Wednesday, January 03, 2007 2:31:36 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [7]  |