It's coming soon...

Posted at 10:41 p.m. on 28/03/2011 by Daniel

It's been eight long (and exciting) months of development, and two months of private testing, but Kustom Page will be relauching soon. We are just ironing out the last few major roadblocks, and are expecting to have something out the door very shortly.

We have re-written almost the entire application. It is now more powerful, faster and easier to use than the previous versions. It also allows us to extend the system a lot further than before.

Here's some eye candy of the latest build, enjoy!

 
 

 

iPhone 4

Posted at 10:42 p.m. on 02/08/2010 by Daniel

As you may have all heard, the iPhone launch in New Zealand was far from… smooth. Both Apple and Vodafone didn’t announce anything in the week leading up to the 30th. The night of the 29th came, and went. Still nothing. Then launch day, and still nothing.

I had pretty much given up on getting one on Friday, but decided to make one last attempt to get some information, so I headed over to Vodafone on Lambton quay with Brett and Brock. And, amazingly, we got told they were going to be on sale at 12, in very low numbers. In his words, “I can’t say how many we have, but we have at least three, so you might want to hang around.”

So we sat down and started the line, on the concrete, on a cold, Wellington winters day.

Sitting in line...

Mojo Old Bank was awesome, and donated some drinks to the first few people waiting in line to keep us warm. Then the news camera’s showed up. The shame. Not something I wanted to be on the news for, not that I’ve ever wanted to be on the news before.

Amazing Vodafone dropped the price of the phone while we were waiting in line. The 16gb model on a $60 a month plan went from $660 to $560. The 32gb on the same plan dropped a large amount as well (wasn’t paying attention to it though, so can’t remember from what/to what).

And then the clock hit 12. And the first four people in line got called into the store, me being the first, which turned out to be a bad thing as the news people wanted to interview me when I got outside, not that they used it in the end.

But I got my phone.

iPhone 4 Box iPhone 4 iPhone 4

 

 

And so far, I love it. It’s a huge step up from my trusty old Nokia N95 (old being the keyword there). The screen is amazing. Seriously. It makes my Nokia, or even mum’s iPhone 3GS, look dim and washed out. And pixel-y. Even the lack of a physical keypad doesn’t annoy me like it did on the LG phone I had a few years back (and sold after 2 weeks).

I’m also not sure what the antenna issue is all about – yes, I can reproduce it if I grip both the sides very tightly, which lets be honest, 99.9% of people wouldn’t do in day to day use. I have yet to have it drop a call. Although, I’m right handed. I can see how it may be slightly more of an issue for left handed people, I’m still not convinced however.

Would I recommend it? Yes. Sure it’s not perfect, but it does what it sets out to do, and it does it very well.

Useful Windows 7 keyboard shortcuts

Posted at 12:03 a.m. on 23/04/2010 by Daniel

Right, I know I’m miles behind the times here – but I have just found a whole bunch of new Windows 7 keyboard shortcuts that mean I hardly have to pickup that thing we call a mouse.

My all time favourite ones are the Windows Key + Up Arrow and Windows Key + Down Arrow for maximizing and restoring windows, which is obviously very useful.

Of the new ones I have just found, my favourite is Windows Key + T which selects the first item on the taskbar for you. You then use the arrow keys to navigate your open windows, and hit enter to select the one you want. Of course, good old Alt-Tab will do the same, just in a slightly less eye candy based way.

windowst

The other one that caught my attention was the Windows + Shift + Left/Right Arrow which moves the whole window, maximized or not, between your monitors (assuming you have more than one, which you should).

Aero snaps is also something you should have a play with if you haven’t heard about it yet – take a restored window, and drag it to the top of your screen – it should now maximize. You can do the opposite to restore the window as well. This also comes in very useful when dragging full screen windows between monitors, so you no longer need to install any of those “display helpers” (Unless you want your taskbar on more than one monitor).

Microsoft have a list of useful Windows + Key shortcuts here:
http://www.microsoft.com/nz/digitallife/basics/windows-7-shortcut-keys.mspx

Installing SQL 2008 on Windows 7

Posted at 11:01 a.m. on 26/06/2009 by Daniel

Decided it was finally time to upgrade my dev vm to Windows 7, and install a shiny new copy of SQL 2008. Did a test install inside Sun’s Virtual Box at work, and it all went smoothly.

So with that in mind, I went ahead and installed it on a new VM at home. And SQL basically told me that it wasn’t going to install, to be polite. Great. Built another VM, same problem. Went to bed after that.

After talking to Craig at work this morning, I thought I’d give it a shot on my work machine, just to see what would happen. Same error. Tried some of the suggestions Craig made, still doesn’t seem to work.

Best part? The errors I get. Really useful. Not.

SQL Error
useful

Am yet to find a solution. Have had a Google. Found nothing amazingly useful. Wondering if it’s worth getting the image from MSDN again, based on the fact it worked before I copied it to my iPod. Will update when I have found a fix.

[Update] Found this - doesn't seem to solve my problem sadly.

[Update 2 - 2:24pm 26/06/2009] Just downloaded the ISO image again, and seems to work now on both my work machine and a VM I built today. No idea what happened. The new VM threw the first error, but when I re-mounted the ISO, it worked. Hopefully I can get it installed tonight.

Faster broadband promised. Yet again

Posted at 02:58 a.m. on 01/04/2009 by Daniel

Seems like this has been promised again and again for New Zealand. And so far there have been very few improvements. And off goes John Key promising “quantum faster” internet speeds (Stuff article). And yes, I agree that it’s great. Hopefully something happens this time.

But there’s still a few problems here.

New Zealand isn’t the most connected country in the world as it is, and we don’t exactly have huge “pipes” to the global internet backbone. Key is talking about 100mbps connections in homes and businesses which is great apart from the fact that most content isn’t in New Zealand. Instead we’d all be squashed into the Southern Cross cable decreasing speed to international resources.

But the biggest issue is data caps. New Zealand ISP’s love giving out low data caps for high prices, which is bearable at best with lower internet speeds. But if we’re connecting to the world at 100mbps, that 10gb plan of yours isn't gonna’ last too long.

Things have changed from the one shared computer per household of the 90’s and early 2000’s. Hardware is cheap – so it’s becoming the norm for people to have multiple machines accessing the web concurrently and for longer periods, meaning that more data is being transferred. For example I flat with 3 other people, we have a 10gb cap and we each have at least one computer. Our cap is gone long before our billing period is over, but it’s cheaper to pay the extra data costs than upgrade to the 20gb plan.

Think about your average YouTube video for example – they’re roughly 5-10mb in size. And that’s for a low definition stream. Add that up between the people in your household based on the number of videos they watch, it’s not too hard too see where your usage is going in just this area alone. Never mind general web surfing. And what about general downloads? Faster speeds make downloading big files (Game trails etc) painless, so it’s instantly more appealing to do so.

Or what about when you want to work from home (Something that Key is also pushing) via VPN? You need a consistently fast and stable connection. You wouldn’t want to wake up one morning to realise you’ve been restricted to 56kbps for breaching your data cap. Or get your internet bill to find you owe $100’s in extra data costs. And in the world of large files, this becomes a problem.

It also makes you think twice before using “cloud computing” applications. I love Live Mesh and use it on all my machines and it saves a lot of hassle. But while at home I have to be a bit more careful with my usage. For example I saved a large file into my documents at work recently by accident. When I got home I fired up Mesh only to realise it was trying to pull down 500mb. Luckily I stopped it at about 5mb, but they point is that 500mb shouldn’t matter. It’s the 21st century.

So my message to the government is this: Gives us fast internet sure, but before/when you do, do something about the miserable data caps ISPs enforce on us. Fast internet is nothing if we can’t make use of it.

Comments welcome

MyOS - A different type of WebOS

Posted at 03:22 p.m. on 27/03/2009 by Daniel

Something about the concept of a WebOS/Webtop/Web Desktop has always interested me. It seems like a cool idea to have your whole “operating system” running in a browser on some companies (or persons) server somewhere in the world. You would have access to all of your applications and documents anywhere in the world.  So it all sounds great right? Not quite so.

In a traditional WebOS you have an account which stores your settings an documents. You use the applications the vendor has included, and if you need something else, well you’re more than likely out of luck. Same goes for if you want to change some of the “system” files to fix a bug or make your own enhancement say. You are served up code form the vendor and there’s little you can do to control it. You just hope that it, and “your” applications work (though at the same time it should be of some comfort the vendor has tested their code).

This got me thinking – Why not have a WebOS that more closely matches a standard desktop operating system? Something with programming API’s for accessing the file system etc. Something where everyone has their complete own virtual file system, they can install their own applications without affecting other users. Even run the core system files from their own instances so if they feel like tinkering with how it works they can. And best of all - Allow users to develop their own applications using a range of built-in libraries and controls.

So about 5 months ago I started writing a JavaScript framework for my idea. It only took a few weeks to realise my original framework wasn’t going to be flexible enough to follow the desktop OS model I’m attempting to follow. So I started from scratch. And, so far, the new frameworks managed to fit what I need.

At a low level it takes care of loading application classes and stylesheets and keeping track of the core systems like authentication. Up higher are classes that create a common application framework making it far easier to get windows with control in them up on screen. The framework takes care of registering the users application with the Task Manager so it can keep track, and the loading/saving of application settings plus more.

So far MyOS is still very simple (and only runs in Firefox). Everything’s read-only and there’s currently no way to read/change files… or do much else from a users level. But from a developers level there is a lot of functionality to explore. You should be able to write complete applications without needing to write a single line of HTML, and there are a couple of objects based on C# like Lists and Dictionaries. There is even a registry-like library in the works. The only downside is that there’s little documentation at this point around the developer stuff.

FireShot capture #2 - 'MyOS' - localhost_1034_desktop 
MyOS Desktop with File Explorer and Dev Studio running (Please excuse the ugly red X button)

If you would be interested in helping with MyOS (Programming, Design, Documentation, Ideas etc) then please contact me! I’d love to work with someone on the idea. Sure it may never be a commercial application, but if you have some spare time and find these types of things interesting, it could be a bit of fun.

Want to see it?

You can play around with the latest public release at http://myos.danielwylie.me  - it includes a read-only version of Dev Studio. The ‘Run’ and ‘Explorer’ applications currently contain the most recent programming style – most of the other applications haven’t been updated in a while.

C# MSN Chat History Parser

Posted at 11:15 a.m. on 20/03/2009 by Daniel

This is a little parser I wrote a while ago with the intention of writing a program to merge my MSN History files together from multiple computers. I haven’t get gotten around to it yet though, so I thought I would share the source. Feel free to use it how you want.

MessageHistory.cs

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;     
using System.Xml;
namespace MSNChatParser 

{
    public class MessageHistory     
    {     
        private XmlDocument doc = new XmlDocument();     
        private string contactsEmailAddress = "";     
        internal List<Message> messages = new List<Message>();
        public List<Message> Messages { get { return messages; } }
        public string ContactsEmailAddress { get { return contactsEmailAddress; } }

        public MessageHistory()
        {}

        public MessageHistory(string XMLPath)
        {
            string fileName = XMLPath.Split('\\').Last();
            contactsEmailAddress = fileName.Substring(0, fileName.IndexOf(".xml"));
            doc.Load(XMLPath);
            Parse();
        }

        public MessageHistory(XmlDocument Doc)
        {
            doc = Doc;
            Parse();
        }

        public string ToXML()
        { 
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("<?xml version=\"1.0\"?>");
            string Body = "";
            int sessionID = 1;
            int lastSessionID = 1;
            foreach (var item in messages)
            {
                Body += item.ToXML();
                sessionID++;
            }
            sb.AppendFormat("<Log FirstSessionID=\"{0}\" LastSessionID=\"{1}\">", 1, 1);
            sb.Append(Body);
            sb.Append("</Log>");
            return sb.ToString();
        }

        public void Parse()
        {
            XmlNodeList nodes = doc.SelectNodes("//Log/Message");
            foreach (XmlNode message in nodes)
            {
                messages.Add(
                    Message.FromXML(message)
                );
            }
        }
    }
}

 

Message.cs

 

using System;
using System.Collections.Generic;    
using System.Linq;    
using System.Text;    
using System.Xml;
namespace MSNChatParser   
{    
    public class Message    
    {    
        public DateTime DateAndTime { get; set; }    
        public int SessionID { get; set; }    
        public string From { get; set; }    
        public string To { get; set; }    
        public string Text { get; set; }
        public static Message FromXML(XmlNode Node)   
        {    
            Message msg = new Message();
            msg.DateAndTime = DateTime.Parse(   
                Node.Attributes["DateTime"].Value    
            );
            msg.From = Node.SelectSingleNode("From/User").Attributes["FriendlyName"].Value;   
            msg.To = Node.SelectSingleNode("To/User").Attributes["FriendlyName"].Value;    
            msg.Text = Node.SelectSingleNode("Text").InnerText;    
            msg.SessionID = int.Parse(Node.Attributes["SessionID"].Value);
            return msg;   
        }
        public string ToXML()   
        {    
            StringBuilder sb = new StringBuilder();    
            sb.AppendFormat(    
                "<Message Date=\"{0}\" Time=\"{1}\" DateTime=\"{2}\" SessionID=\"{3}\">",    
                this.Date,    
                this.Time,    
                this.DateAndTime,    
                this.SessionID    
            );
            sb.AppendFormat("<From><User FriendlyName=\"{0}\" /></From>", this.From);   
            sb.AppendFormat("<To><User FriendlyName=\"{0}\" /></To>", this.To);    
            sb.AppendFormat("<Text>{0}</Text>", this.Text);    
            sb.AppendFormat("</Message>");
            return sb.ToString();   
        }
        public DateTime Date   
        {    
            get    
            {    
                return new DateTime(DateAndTime.Year, DateAndTime.Month, DateAndTime.Day);    
            }    
        }    
        public DateTime Time    
        {    
            get    
            {    
                return DateTime.Parse(DateAndTime.ToShortTimeString());    
            }    
        }
        public override string ToString()   
        {    
            return ToXML();    
        }    
    }    
}

Helpers.cs

using System;   
using System.Collections.Generic;    
using System.Linq;    
using System.Text;
namespace MSNChatParser   
{    
    public class Helpers    
    {    
        public static MessageHistory RemoveDoubles(params string[] Files)    
        {    
            MessageHistory History = new MessageHistory();    
            foreach (var File in Files)    
            {    
                History.messages.AddRange(    
                    new MessageHistory(File).Messages    
                );    
            }
            History.messages = (from h in History.Messages select h).Distinct().ToList();   
            return History;    
        }
        public static MessageHistory RemoveDoubles(params MessageHistory[] History)   
        {    
            MessageHistory history = new MessageHistory();    
            foreach (var hist in History)    
            {    
                history.messages.AddRange(hist.Messages);    
            }    
            history.messages = (from h in history.Messages select h).Distinct().ToList();    
            return history;    
        }
        public static MessageHistory LoadFromMultipleFiles(params string[] Files)   
        {    
            MessageHistory History = new MessageHistory();    
            foreach (var File in Files)    
            {    
                History.messages.AddRange(    
                    new MessageHistory(File).Messages    
                );    
            }    
            return History;    
        }
        public static MessageHistory MessagesSince(MessageHistory History, DateTime Since)   
        {    
            var msgs = (from h in History.Messages where h.Date >= Since select h).ToList();    
            MessageHistory newhist = new MessageHistory();    
            newhist.messages = msgs;    
            return newhist;    
        }    
    }    
}

How to use

You can either create a new blank MessageHistory object or you can use the Helper to load multiple files into the object

MessageHistory history = Helpers.LoadFromMultipleFiles(“File1.xml”, “File2.xml”)   
foreach(var Message in history.Messages){    
   Console.WriteLine(Message.From);    
}

You can also convert everything back to it’s original XML format using the ToXML methods. If you call ToXML from the MessageHistory object it will add all the Messages it contains to the document.

Flight Simulator X on iMac rocks!

Posted at 10:39 a.m. on 12/03/2009 by Daniel

A couple of years ago I used to spend many hours playing Flight Simulator 2002 on my aging computer, dreaming of being a real 737 pilot. And loved every moment of it. I spent a huge amount of time modding the life out of it. I had 100’s of custom planes, “high detail” Wellington scenery, and a whole lot of other add-ons.

Now things have changed a little. I have this thing called a job. And that takes up 90% of my day, leaving me little time to do other things. And while I’m no closer to being a real pilot, my love for planes (or anything “manly” (cars, trains, planes, boats, etc) according to Katie) is still as strong as it ever was.

With the recent purchase of my 24” iMac, I decided to give Flight Simulator X a shot on it. After getting Windows 7 Beta installed I popped in the Flight Simulator disc and hoped for the best. I mean, I didn’t really expect it to run all that well, especially because it was running in Boot Camp, and on a beta version of Windows.

And WOW was I in for a surprise. I can run it at medium quality (full for aircraft), full air traffic, and full land traffic at native resolution – 1920x1200px. Even my old work machine couldn’t run it that well (and it had a supposedly better video card) and on the glossy screen of the iMac, it looked, put simply, incredible.

The ability to play to game at home has renewed my addiction to flying. And Flight Simulator. This was boosted further by my purchase of the Saitek Pro Yoke Flight System. While not too fun on the bigger aircraft I normally fly due to autopilot, it makes flying the smaller planes amazing. It’s almost as easy as driving a car. Sure it’s a pain to transform my desk every time I want to fly. But that will have to do till I can build my own Flight Simulator (and build up a large amount of debt doing so).

And last night I began my modding phase. While I’m yet to get any scenery, I have added Air New Zealand skins to all of the default planes from FlightSim.co.nz which I have been using from my FS2002 days. While I only got time to fly the Air NZ 747 last night, I realised just how good the paints are now. The aircraft looked amazing. And because it was a re-paint of the MS 747, everything just worked.

Tonight I’m going to install all the Air New Zealand/Qantas/Jetstar/Pacific Blue skins for the 737, 747 and A320. Might also try some scenery from around the place. Will even try and post some screenshots!

Useful links:

Wellington Traffic Gadget

Posted at 04:47 p.m. on 19/02/2009 by Daniel

Here’s a prototype of a webcam gadget. It pretty much displays images from around Wellington and updates itself every couple of mins. It’s pretty cool to watch during rush hour (if you’re into that sorta thing).

It requires a rather large monitor to display on – it’s rather tall. I have only tested it in Windows 7, but I’m guessing that it will run fine in Vista as well.

I’m currently working on a new, less crude version. Should be out in the next week or two.

Download

Apple Support: Day 2 = Results(?)

Posted at 11:31 a.m. on 13/02/2009 by Daniel

On Wednesday night I rung Apple as that was what everyone was recommending. For some reason I thought Apple support was meant to be good. How mistaken I was. The call was logged through to someone in America, and to some guy who didn’t understand how we say ‘Z’ in New Zealand (zed vs zee).

After I had given the guy my iMac’s serial number and my name, he decided it was time to try and sell me something. He went on for a couple of minutes about the “benefits” of Apple Care. And this was after I had clearly stated I didn’t want to purchase it. And then, just to top it off, he tried to sell my a Time Capsule. Y’know, for just in case my failing pixels destroyed my hard drive. Or something.

Turns out he didn’t want to know me anyway. Apparently one red stuck pixel in the middle of the screen is acceptable. So he gave me a number to ring and I was on my way.

Next morning I gave Toucan Computers in Wellington a call. And the guy on the phone said that he could do something if needed. But suggested I contact Dick Smith first as they can do a DOA.

Now in the time this happened, Dick Smith had Twittered me . So I sent an email off to them, as requested, and then phoned the store I purchased the Mac from to explain my findings. And, about an hour later, to my surprise, I got a phone call from one of the top guys at Dick Smith New Zealand!

And he had some very good news.

Dick Smith are going to replace it as soon as they can get one in stock, and take it up with Apple themselves! I do wonder why they couldn’t just do this in the first place, surely a satisfied customer is more important than, well, anything else? Well anything else that’s at least reasonable.

So big kudos to Dick Smith here for standing by the products they sell! I wouldn’t hesitate to buy from them again.

And Apple should be ashamed of themselves. If they want to call their computers the best, they should stand by them when something goes from. And they really shouldn’t try to sell me products I don’t want when I ring up about a faulty product.

I’m not too sure if I would buy another Apple machine. I will see how my new iMac goes, and make up my mind then.

But why all this over one measly pixel you may be thinking? Well it’s simple. When I purchase an expensive computer, and from Apple, I expect it to be an expensive computer. And an expensive computer is supposed to be built well. And a stuck pixel doesn’t show quality to me.

Now, if the pixel was on the very edge of the screen, I wouldn’t really care because it’s out of the way. But it isn’t. Its in the centre of the screen, so it bothers me. Especially considering I use it for web design and development where white is a very prominent colour.

So hopefully the new iMac will have no problems. It truly is an amazing machine, and has been a joy to use. Don’t think I will be giving Apple a call anytime soon though. Don’t really fancy them trying to sell me products when there’s something wrong with the one I already own.

Update: Just got another call from Dick Smith and they have a new one in stock for me! Will be going to pick it up tomorrow.

Update 2 (26/02/2009): Have had the new machine for nearly 2 weeks and all seems to be well. Didn't enjoy carrying the box through town though - you feel like an Apple billboard.

  Next Page