Posts archived in Coding

6 comments

Smitter R1 Released

Smitter R2 is out, go to the announcement.

image What is Smitter?
It’s a Small Twitter client, for Windows.  It’s also an excuse/reason for me to start writing software in C#, since I’m used to writing in VB.NET. (Boo, hiss, etc).

What’s with the “Battleship Grey”?
I’m not a designer, and fiddling with Windows Presentation Framework / etc wasn’t in my list of things I needed to learn right at the moment. 

What’s cool about it?
Nothing particularly, it’s pretty much all functional. But it’s the only windows twitter client I know of that shows you the source of messages.

How do I install it?
If you’re using Internet Explorer, just click here, and then click Install.
This is the recommended method as it will enable automatic updating when I release a new version. 

Alternatively, You can download the zip file. Just extract all the files to a new directory, and run Smitter.exe

I’m behind a proxy - it doesn’t work for me.
I’m adding proxy support shortly, but I wanted to get this out there as a first release.

This broke my system, who do I sue?
This application is provided on an ‘as-is’ basis, and at your own risk. Do not use this on “production” or important PCs if you’re particularly nervous.

Can I look at the Source Code?
Yep, that’s available too.  Download the source code here.

 Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 2.5 Australia License.

Can you add feature x?
Maybe – Add a comment here, or send an email. Alternatively, if you’re good with C# – you can have a crack at it yourself.

You do realise you did {giant, list, of, things} wrong, and the structure is crap?
The structure is crap because I went with the Twitteroo .NET API at first, but that doesn’t support certain functionality (like for example seeing if a message is private, what the source was, and being able to specify a proxy server). 

There are probably a whole number of violations of best coding practices here too. Again, this was primarily created so that I can learn the C# syntax and slightly different event modeling, etc. When I start off with a proper project spec, and don’t shift around on your a whole bunch, things work out a lot nicer.

Credits, Mentions, etc

FAMFAMFAM  – For the Silk Icons used within the GUI. (Creative Commons License)

Karsten Januszewski for this great pointer on how to generate classes from well-formed XML using XSD.   (nb: On Step 2, you need to use the ‘/classes’ switch.)

Paul Jenkins, for making me feel guilty for not actually knowing C# when he asks for advice/pointers about .NET stuff.

Last night, Nick Hodge had a rant about slow broadband, a lack of competition and government interference in the whole mess.

The broadband debate is something that I find simultaneously very interesting, and very frustrating.   It’s interesting, because I love the technology involved, and the idea of having a faster internet connection instantly has me thinking of ways to utilise it.  It’s also incredibly frustrating because I know that without major changes to the pricing and regulatory structures – the current debate is merely an expensive waste of everyone’s time.

To understand why I think it’s a big waste of time, you have to understand what is involved in providing you and me with an internet connection over a technology such as ADSL.

Just for the physical network components, you’re paying for:

  • A copper phone line (probably pre-existing network, since you needed to have a valid phone service), back to:
  • An ADSL DSLAM (at the the exchange typically), which is connected to:
  • A private fibre optic data network, which is connected to:
  • Your capital city’s data centre for the DSLAM Operator, which is connected to:
  • Your ISP’s Point of Presence (routers) in that data centre, which are connected to:
  • Fibre optic connections to Your ISP’s data centre(s), or wherever they host their core network, which is connected to:
  • Your ISP’s core routers, which are connected to
  • Fibre connections to your ISP’s network peers and/or ‘upstream provider’ (aka: Your ISP’s ISP)
  • The servers required to do the Accounting, Authentication, and Authorization

Note, the points in italic are not applicable if the DSLAM Operator is also the same as your ISP.

Then, of course there’s the non-network components – which comes down to basically two things: Staff to run all the above, and transit data costs.

What is transit data? Wikipedia describes it best on this article on Internet Peering:

[I]n order for [data from your ISP] to reach any specific other network on the Internet, it must either:

  • Sell transit (or Internet access) service to that network (making them a ‘customer’),
  • Peer directly with that network, or with a network who sells transit service to that network, or
  • Pay another network for transit service, where that other network must in turn also sell, peer, or pay for access.

It’s this last one, that costs the majority of ISPs significant amounts of money. It’s also one of reasons why your ISP will generally limit you to transferring a certain amount of data per month. 

This is because most Australian ISPs are either Tier 3 or Tier 2.  Again, Wikipedia gives a great simple definition of what the different tier levels are.

  • Tier 1 – A network that peers with every other network [at this level] to reach the Internet. [This network will also charge Tier 2/3 customers for access to their network.]
  • Tier 2 – A network that peers with some networks, but still purchases IP transit to reach at least some portion of the Internet.
  • Tier 3 – A network that solely purchases transit from other networks to reach the Internet.

Both Telstra and Optus (amongst others) are considered Tier 1 within Australia, even though on a world-scale they still pay for connectivity to other ISPs. The reasoning behind Telstra and Optus being classified as so is simple: They peer with each other, but sell transit to many other ISPs in Australia.

This massive imbalance in the local market is why I think that the whole debate about who’s proposal is the best, is a giant waste of time.  At least, I think it will be for those who choose not to use Optus or Telstra. 

It is also not a new occurrence. Almost exactly 10 years ago, Bill St. Arnaud wrote a paper about this subject.  Bill’s paper is demonstrates that in all these years, we apparently haven’t figured out how to solve the issue of imbalance in cost sharing. 

In Short: You simply won’t be able to afford to use any really high speed connection as intended for any length of time, because data costs are atrociously high.  I can’t really see the point of having a 100Mbit connection to your house, if you still have to pay the equivalent of $0.15/MB for the data you download.

What do you think? Is there some solution that I haven’t heard of for fixing these problems? Should be just concentrate on getting faster connections, and worry about the data costs later? Should I be banned from writing and publishing long blog posts at 2:30am? :)

0 comments

State of Play V

I got an email on the 17th of August announcing State of Play V was open for registrations. The conference is on… err, well now actually (August 19th to 22nd) – in Singapore.

That’s okay, I guess since State of Play IV was rescheduled from January 7-9 2007, to “June 2007″ – with less than 2 weeks notification (the change notice was sent out on the 15th of December 2006).

Without knowing the background on why such a major change was scheduled, it looks like someone needs to revise their idea of ‘timely notification’.

Ohwell – They didn’t have Neil Stephenson lined up as a speaker, so it’s of less interest to me anyway.

The Gold Coast has put on some great weather – nice and cool at night, warm and sunny during the day.
I’ve taken a bunch of photos during Tech.Ed, I’ll upload them soon. In the mean time – Nick Hodge has heaps of photos on his photo stream.

I’ve attended a bunch of interesting sessions – but there’s a heap of information on offer, so it’s easy to overload.

Next year I think MSFT needs to organise a few more social-networking things around the events. For example, get attendees to put ‘teched07au’ tags on photos on Flickr, and blog posts, etc. Use SMS-broadcasts (possibly through twitter) to inform people of session changes and things like that (link it back to their commnet subcription).
I’ll probably think of a bunch of other small improvements as time goes on.

Overall, it’s been good fun the last few days, and I have learnt things which are relevant to my job, and which will help a little further on too.

I’ve also successfully avoided the vendors who want to steal my information so they can sell me stuff.


Updates – LOLCode.NET, Movieworld, Bye-Bye Developer Guy

_MG_6791 Nick gave his LOLCode presentation, to much incredulity by some people who attended.

Yes, LOLCode is a proper Turing complete language. And LOLCode.NET compiles into MSIL as well.

_MG_6936 Movie world was… interesting. About 3,000 people were packed into busses and trundled up to movie world for dinner and some rides.   There was the BatWing, Superman and a few others – we didn’t have access to the full park, but there was a large area open.

_MG_6823

_MG_6827

_MG_6830 

_MG_6834

_MG_6842

_MG_6856 

_MG_6875

_MG_6901

_MG_6912 

_MG_6917 

_MG_6934 

 _MG_6961 Homeward Bound

 _MG_6969

 _MG_6971

_MG_6990Frank’s “Catch Up with Frank” talk was interrupted so he could be serenaded to a version of Don McLean’s “American Pie” called “Developer Guy”.

For anyone who didn’t know, I’d been putting in some pretty long hours at work for most of July. So, when there was talk of a gathing of Sydney Twitter Peeps on the 25th of July, well – that was as good an excuse as I needed to take some time off work, head down to Sydney, and completely get away from all mention of anything related to work.

The “Tweetup” was great – I got to meet a bunch of people I hadn’t known, everyone was friendly and easy to get along with. All up, a great night, and well worth repeating some time. Thanks to Cathy and John for organising the meet. Oh, and thanks to Nick Hodge for the lift (nice red Mini), and listening to me rant a littlelot about some work issues. :)

I also caught up with Brett for Yum-Cha and went to see The Simpsons Movie too. (Spider pig, spider pig… heh). Spent some time wandering around Sydney Harbour and The Botanic Gardens, caught some random band playing (“innerlight” or “enlight” or something like that) in the park outside Central Station and other things. Got myself a new backpack – this one from Crumpler, and designed to carry both the camera (with lens attached) and laptop.

Spent some time catching up with Mitch (one of my Uncles) – he cooked a really great Roast Pork dinner on Saturday night- complete with crackling and all the rest. Oh, and a Lemon Syrup Cake w/ Lemon Cream Cheese Icing. Yuuuummmm. I should’ve taken photos.

Monday (July 30th) I was back at work as normal, catching up on the things I’d missed, and on Tuesday I woke up with a sore throat. During the day that evolved, and by the time I got home that night I had a full-blown case of something-bad-eritis, complete with coughing, sneezing, shivering and a killer headache. So, I went to bed and basicly didn’t get up until Thursday afternoon. Talk about a knockout bug.

Monday I’m back at work again for a day, before heading off to Tech.Ed on the Gold Coast on Tuesday. The people in the office where I sit must wonder what the heck is going on, because I’ve been away more than present over the last 3-4 months – Google Developer Day, ReMIX, a bunch of remote-working, and now Tech.Ed.

Memorable quote of the day: “Damn you sydney busses, it’s not an alien attack, it’s just rain.” – Warlach

Reserved Seating at Greater Union Cinemas, Glendale

Reserved seating is, in my mind, meant for places where there’s either a need for people to sit in specific seats. Or where most, or all of the capacity of the place is being occupied. Think planes, coaches, or sports stadiums.

So, when I went to the local Greater Union Cinemas, I was surprised when I was asked where I wanted to sit when buying my ticket. Given I was already running 15 minutes late to the film (10 of that due to the slow process of actually waiting in line for the 6 people infront to get served), I just said “Wherever”, not knowing that they were actually serious about this seating business.

I got into the theatre, trying to be as unobtrusive as possible, and sat at one of the first seats I could find. They wern’t great seats (off to the side) – but hey, Donkey, Shrek, and Fiona were already on screen. I did note that the cinema was 3/4 empty – and that there were plenty of seats infront, behind ,and beside me.

About another 10-ish minutes afterwards, I saw someone walk past me (given I was sitting in the second-from-the-end seat), and then walk back out.
A few moments later, theres a manager beside me “Sir, you’re sitting in someone elses seat”. I was a bit stunned/confused, given the large number of empty seats around me – and replied something like “Uhh, there’s an empty row infront and behind me”. But the Manager persisted “Sorry, but I’m going to have to ask you to move”. Given I was missing the movie, I couldn’t be bothered arguing over it and got up and moved the next row down.

Heck, if the mother and daughter who wanted to sit there had been disabled in any way, or I was sitting in specially assigned seats, or I was just in the way of them getting to the rest of the group they were with, I wouldn’t have had any issue moving. But, no, there wasn’t any reason I could see – it was just a pedantic manager and (presumably) mother.

Windows Vista’s Scheduled Tasks & Windows Update
I really like Windows Vista. There’s a whole bunch of small things that add up to make it a real pleasure to use.

There are two things, however that do drive me up the wall.

The recommended option in Windows Update is for it to download and install items for you automatically. It’s a good idea too, after all – having most users be in charge of which critical updates get installed isn’t usually the best way to keep a PC secured and up-to-date.

The thing that really annoys the crap out of me, is that it will automatically reboot your computer, regardless of what you had open or what it was doing. So, if you were, say, downloading a large file, or processing a report – your computer reboots, and unless the software is designed to resume from it’s last point – you’ll have lost all that effort. This is especially annoying if you’re trying to download/process some data in an after-hours/off-peak timeperiod. Because Windows doesn’t return you to the point at which it rebooted (technically infeasable without security issues) – the software can’t resume from it’s last point.

The only work around I’ve found is to disable Windows Update from installing updates automatically.

Scheduled Tasks
Another thing that’s kinda cool about Windows Vista (and possibly XP too, however I never experienced it) – is that Schedule Tasks can wake the computer from a sleep, hibernate or even shutdown mode – as long as the computer still has power.

The most visible example of this is Windows Media Centre. It will wake the computer automatically to record TV Shows, which is good – however it also wakes the computer to update the TV guide. At 3am. Some people happen to have cases which in certain circumstances can vibrate, seting up a resonance in the desk which amplifies the sound of the vibrating case. So, everyone in the house, at 3am, knows the computer is downloading TV guides. Resulting in the power cord getting yanked out.

A more, err, sociable setting would be to wake it during the day, if the guide hadn’t been updated in the last 4 days or so.

Update: 17/July/2007: Just got another one, despite not having an account anymore.

Some time ago (before YouTube was acquired by Google) – I created a YouTube account so that I could access some video clips that weren’t available to the general public. 

youtube-email

About a month ago I started receiving weekly “newsletters” from YouTube, I didn’t update my account, and I didn’t request this. The first time I received it, I went through the steps to unsubscribe.  It didn’t help.

youtube-settingsHave a look at the screen shot of my email account settings.

See? No options are set to ‘Email me this crap every week’. Yet I still get this spam from them.

I even went through their help/FAQ site – however it provides no assistance for unsubscribing.

So, now I’ve closed my account – here’s hoping THAT will stop them from spamming me.  I’m not holding out a whole lot of hope though.

So, I spent a little while today going through the huge number of sessions on at Tech.Ed at the Gold Coast this year (160 or so) and picking out a rough guide for what I’m thinking of going to.

If anyone else is going and wants to meet up for a chat – drop me a line :)

Tuesday, August 7, 2007
09:10AM – 10:20AM
     DJ903 – Newcastle to Brisbane.

11:30AM (est) – Check In @ Crowne Plaza

6:30PM
    Welcome Party     

Wednesday, August 8, 2007
8:15AM
    Opening Keynote     

(9:00AM to 9:30AM is the tentative timeslot for Nick’s LOLCODE ‘ChalkTalk’. The Keynote runs until 9:45AM though.)

9:45AM
    CON204 – Introduction to Microsoft Windows CardSpace; OR     
    DEV231 A Lap around Microsoft Visual Studio 2008     

11:00AM Morning Tea     

11:30AM
    CON205 Programming Microsoft Windows Communication Foundation: A Developer’s Primer; OR
    DAT302 – Database Schema Versioning: How to Use Microsoft Visual Studio Team System for Database Professionals and Team Foundation Server to Version and Deploy Your Databases

12:45PM
    Lunch          

1:45PM
    ARC303 Principles and Patterns of Security; OR
    DEV301 “IronPython” and Dynamic Languages on .NET; OR
    WEB305 IIS7 for Developers     

3:00PM Afternoon Tea

3:30PM
    DEV305 Building Microsoft Windows Communication Foundation and Windows Workflow Foundation Applications with Microsoft Visual Studio 2008; OR
    WEB314 – Web 2.0 Programming

5:00PM
    ARC305 Architecting for Web Scale; OR
    DAT306 – Things You Need to Know for a Painless Upgrade to Microsoft SQL Server 2005     

6:15PM
    Ask the Experts     

Thursday, August 9, 2007
8:15AM
    DAT307 – Database Maintenance in Microsoft SQL Server 2005; OR     
    DEV308 A Lap around Microsoft Windows Presentation Foundation     

9:45AM
    DAT308 Microsoft SQL Server 2005 Security Best Practices; OR
    DEV317 – Microsoft Visual Basic: Tips and Tricks for the Microsoft Visual Studio 2008 IDE

11:00 AM Morning Tea

11:30AM
    DEV311 NET Framework 3.0 End-to-End: Putting the Pieces Together     

12:45PM
    Lunch     

1:45PM
    DEV312 Building a Complete Web Application Using ASP.NET Microsoft Visual Studio Codename 2008 (Part 1 of 2)     

3:00PMAfternoon Tea

3:30PM
    ARC311 – Windows Client .NET: Introducing the “Acropolis” Client Application Framework; OR     
    DEV347 Unit Testing and Test Driven Development     

5:00PM
    ARC310 Learning to live with the Static-typing Fascist and the Dynamic-typing Fanboy in your Enterprise… ; OR
    SEC304 – The fortified data center in your future: build it and they will come.     

6:15PM
    Final Party     

Friday, August 10, 2007
8:15AM
    DEV319 LINQ and XML for the Microsoft Visual Basic Developer; OR
    CON312 – Rules Engine Use and Extensibility in Microsoft Windows Workflow Foundation     

9:45AM
    DAT309 Implementing Scale-Out Solutions with Microsoft SQL Server 2005; OR:     
    DEV309 Best Practices for Team-Based Software Development     

11:00AM Morning Tea

11:30AM
    DEV315 Building a Complete Web Application Using ASP.NET “Orcas” and Microsoft Visual Studio Codename 2008 (Part 2 of 2); OR
    SEC313 – How Did They Find THAT?: Implementing the New Microsoft Fundamental Computer Investigation Guide for Windows     

12:45PM
    Lunch     

1:45PM
    SEC303 Securing Your Friends and Family; OR
    WEB301 – MS DLR for OSS developers     

3:10PM
    Closing Locknote     

Saturday, August 11, 2007

11:00AM
     Check out of Hotel

4:30PM-5:45PM
     DJ903 Brisbane to Newcastle

If you’re like me, and have registered for Tech.Ed 2007 at the Gold Coast, you will probably have recieved two emails in the past few days with your details to login to CommNet.

I’m not sure about anyone else – but the emails I got didn’t actually include the URL for CommNet. A quick Google search leads me to the TechEd Orlando CommNet site. All well and good, except it doesn’t accept my details.

The correct site for Aussies (and I assume Kiwi’s too) is actually https://aunz.msteched.com. Hopefully me posting this will let some other confused souls figure out how to access all the session planning tools. :)

Edit, Monday afternoon Just got an email with the appropriate CommNet URL in it.

Hit Nick’s blog forall the other sites that’re blogging about ReMIX 2007 Melbourne.

A few short (and blunt) thoughts on ReMIX:

Good Stuff:

* Getting to meet and speak to various interesting people.

* Hearing honest case-studies/opinions from non-Microsofties as to how well the whole Silverlight thing worked for them. They were all using pre-release very early beta/alpha code, but it was interesting to see that several of the speakers basicly said “don’t bother with Silverlight 1.0, if you’re not comfortable with Javascript in a big way, and/or just want to do more advanced stuff”

* WebJam + Galactic Circus.

Not so cool things:

* Lack of free wifi (I’ve mentioned this already, but it’s a bit of a sticking point for me)

* Expression Web
Expression Web is of limited or no use to designers, and most or all of it’s functionality is replicated inside Visual Studio 2008, so it’s of limited value to developers. Expression Studio + Vista Ultimate were given out at MIX in Las Vegas – so Expression Studio would’ve been nice.

* Overrcrowding
There was a serious lack of space in many of the rooms and public lunch/morning tea areas. Some crowding is okay, but the way it was laid out meant that there were often very narrow walkways, which quickly get blocked by guys with backpacks (like me).
Very limited places to sit down for lunch. (Maybe about 40 spaces for people to sit down, for 300+ people – There really needed to be a sperate lunch/morning tea area)

And, uhm, yes, that’s Paul and me with the blue monster. I’m dreading my video showing up on Nick’s “The Geek Stories” site. Lots of “Umm… Ahh… ” + Shifty Eyes.