Archive for the ‘Technology’ Category

HackCamp @ Google London

June 23, 2010 - 8:21 am No Comments

A couple of weekends ago, I was lucky enough to be able to go along to HackCamp at the Google offices in London together with the mflow team. It’s the first ‘hack’ day/camp I’ve been to – and although I didn’t stay for the whole weekend nor did I actively participate in the hacking, I got to see what a hack camp is all about. For those of you who have never heard of this term before, a hack day/camp is basically a congregation of hackers, developers, designers (geeks in other words) who get together and spend 24~48 hours building an application using whatever tools they have at their disposal, in small groups or alone.

HackCamp @ Google London

There were about 10 or so different speakers presenting their APIs at HackCamp, and although you didn’t have to use those APIs in particular, it was certainly very interesting hearing about what others have to offer. One of the APIs that I thought was a great idea was this one – 0870.me. 0870.me is an API that allows you to plug in a standard 08* number (which mobile networks charge a fortune for here in the UK) and it will return to you a matching non-08* number if it can find one in it’s database. How neat is that??

There were speakers from Twitter, Google AppEngine and Buzz to name a few big ones, but also lots of smaller companies. Tum and Demis from mflow gave a talk about the mflow API.

Once all the hacked-up apps had been submitted, I had a quick look and found this little gem: tron. It is very cool to see that someone has used the mflow API in their app!

Anyway, having had a small taste of these ‘hack’ camps, I may just have to keep my eyes out for another that I can go to coz they sure do look like they could be lots of geeky-fun :)

  • Share/Bookmark

Traveling with your tech gadgets

March 8, 2009 - 11:54 pm 1 Comment


Tech gadgets
All the gadgets I take with me on holiday… is it too much?



Technology has invaded every aspect of our lives. I dare say that most households these days will have a computer, television, dvd player, and most people carry with them at least a cellphone and an mp3 player. We use technology in our work, our finances, our entertainment and our travel. So with all these choices, what should you carry with you when you travel?

A few years ago I went on a 4 month long trip around the world and I took with me 1 film-based camera, 1 mp3 player and 1 gameboy. Not bad for 4 months I thought. Didn’t take long however before I was robbed and lost the mp3 player and gameboy. Without much choice in the matter, I was left carrying only one ‘electronic’ item, my camera. And guess what? I had a great holiday and didn’t miss any of the other stuff that I thought I would need.

More recently, Chris and I took a 3 week holiday to Canada and between us we took: 3 cameras (+ xtra sd-cards, chargers and cables), 1 laptop, 2 cellphones, 2 ipods (80gig video) and a GPS unit (which we hardly ever used). Hmm. Writing that made me laugh. At myself. You’d think that our bags have nothing but electronics in them. But seriously, at some point whilst packing our bags we figured that we’d need all of that stuff and well, to be honest, we did use it all in one way or another.

So what should you take with you when taking your next holiday? In reality, it all depends on where and when you’re going, how long you’re going for and what you’ll be doing when you’re there (oh and how much of a geek you are). Although there is no definitive answer, I thought I’d share some of the factors that affect my decision making when it comes to picking which gadgets to take with me on holiday.

  • Take only what you really think you won’t be able to live without.
    If you don’t take your cellphone and you really need to make a phone call, you can always use a payphone. Alternatively, you could rent a cellphone. Many airports house shops that will rent you a cellphone for the duration of your stay. Or you could even buy a new cheap phone if you absolutely run out of other options. See? You really don’t need to take yours.
  • Take small, stream-lined versions of all the electronics you think you’re going to need.
    If you can’t stand the idea of not having your own laptop whilst on holiday then make sure you take a small, light netbook with you, not a full-sized desktop replacement brick. You really don’t want to be carrying 5kg of solid expensive gear with you everywhere you go. You’ll end up a stooped old hunchback if you do.
  • Try to detach yourself from caring too much if your stuff does get stolen or damaged.
    This is hard to do, especially if you have some sort of emotional attachment to your gadgets. If it’s irreplaceably special to you or would cost a lot of money to replace, I wouldn’t recommend taking it. Leave it at home, safe and sound. You can’t control how or when some scummy thief out there may take an interest in it and just take it from you. I’m particularly guilty of this and often worry about losing something of value. It just ends up frustrating me that I spend more time worrying about locking away anything of value than I do just relaxing, letting go and enjoying myself.
  • If you have a digital camera and are taking lots of photos, back them up early and often.
    If something were to happen to your camera, you don’t want to lose all your photos as well. The simplest option is to take your camera into a shop that can write your photos to a CD/DVD (you’ll find these all over the world) or if you have another gadget with you, you could back them up there instead. For example, I backed some of my photos up onto my Ipod since it had plenty of free space on it.
  • If you’re traveling with someone else and you’re both taking gadgets that have the same chargers / cables, take only one charger between you.
    Chances are that you’re not going to need to fully charge your gadget at exactly the same time as whoever else you’re traveling with so if you can, share one between you. Chris and I took two sets of Ipod chargers and cables with us on one of our long trips and ended up sending 1 set home to save space.

If you’re a traveler, what do you take with you?

  • Share/Bookmark

Girls in IT

March 1, 2009 - 10:03 pm 5 Comments

Since I was about 5 years old and got my little hands on my first Commodore 64, I’ve been comfortable around computers. At first it was all about the games, and then it was about the BASIC programs that my mum and I wrote after school. Later on it was about mIRC, ICQ and horrible geocities pages. And now computers are my job, hobby and obsession. Computers have been in my life for well over 20 years in one way or another and I totally take them for granted. Oh, and did I mention that I’m a girl?

However, this is not the norm. The norm is that girls don’t play with computers and don’t work in IT. But why? Why are there so few girls in IT?

Well, the answer is that there is no one simple reason. It’s something that Universities and education ministries around the world have struggled with for years. For every 200 guys graduating from Computer Science at University, there is 1 girl. This may not be the same at every University around the world but it’s a pretty sad statistic. The same is true in the IT industry. Basically, girls are under-represented in IT almost everywhere you look.

Anyway, I thought I would list a few of the factors that I believe strongly contribute to why girls end up in IT:

  • Programming is not taught in all-girls high schools
    This is obviously a pretty big reason why girls don’t take up computer science at University. I actually experienced this myself when I was told in no uncertain terms that “girls don’t program” after asking what programming languages we’d be learning in our Computer Studies course in an all girls’ college I went to in Wellington, New Zealand. The result of this is that any girls who may be interested in trying Computer Science or Computer Engineering at University are already starting off at a disadvantage, especially compared to boys who apart from being curious and probably having played computer games and scripted for years already, may well have been taught some form of programming in high school, simply because they are boys.
  • Barbies versus binary
    Parents continue to buy their daughters dolls while their sons get computer games and game consoles. I don’t have children but I have friends who do and I have seen this happen time and time again. If children that young are seeing and being made part of this divide, how can we really expect it to be any different when those same children are trying to decide which career to follow?
  • Working with computers is seen to be nerdy and uncool
    There is quite a strong stereotype around geeky computer programmers and it could be possible that a lot of girls, in their formative years, don’t feel that it would be cool to be associated with that sort of image. Peer pressure is a huge motivator for many children and adults, and if that peer pressure is telling girls not to spend time on computers but rather to spend that time reading fashion magazines then that is what they will do.
  • Could it be that our brains are just wired different?
    I’m no psychologist or doctor so I don’t have the answer to this one. But obviously males and females are different in many other ways so it only follows that our brains probably work differently as well. However, I do believe that this is the last string in the list of reasons why girls aren’t in IT and should most definitely not be used as an excuse for it. As pointed out above, I think there are other reasons why girls don’t pursue IT careers that need to be looked at carefully before we fall back onto a reason that we can’t really prove or do anything about.

Having done a 4 year degree in Computer Science and now having worked in IT for more than 5 years and having quite often been the only girl in my team, I would also like to dispel some of the myths about working in IT.
  • You don’t have to be a social outcast to be a girl software developer
    There is a stereotype surrounding girls in IT – usually very geeky looking, perhaps overweight, no friends, bad skin, etc etc. This is not true and most of the girls I know in IT are very much the opposite – smart, intelligent and strong women. It doesn’t matter what you look like or how you dress; if you want to be a programmer, go for it.
  • All guys working in IT are geeky and no fun to hang out with
    Again, this is complete rubbish. Guys who work in IT are for the most part smart, funny, kind and caring. I’ve been friends with geeky guys all my life and in my experience, they’ve been way cooler to hang out with than the mindless jocks who don’t even know how to turn a computer on.
  • As a girl in IT, you’ll never be as good as the guys you work with
    Not true. If you’re good at what you do, people will realize that and treat you accordingly. Just make sure you keep up to date with the technologies that you use in your job and don’t be afraid to speak up if you’ve got some ideas you want to share. The guys in your team will come to trust and respect you and trust me, that’s a great feeling.

So if you’re a girl and you’re thinking about getting into IT, here is my advice:
  • If you have some geeky friends, ask them for help or advice.
    Asking people who already work in IT what it’s like for them may help you get a better idea of what it might be like for you. Ask them if they can show you some of the work they do, or help you get started with a small project of your own.
  • Set up a blog or a small website for yourself.
    Creating a blog for yourself is a great way to start learning about IT. There are plenty of free blogging engines out there like Blogger, WordPress or Textpattern. This is a great introduction into some common but very useful technologies (HTML, JavaScript, CSS) and you’ll end up with a cool blog that you can use to express yourself online. Pretty cool huh?
  • Keep up with some technologies that interest you by reading online blogs and articles.
    Whether you’re interested in web programming, desktop application development or linux scripting, there are many resources out there for you to keep an eye on. It’s always handy to be able to tell interviewers that you actively follow some geeky site – it shows that you’re truly interested in IT. Some good sites to check out are Coding Horror, Joel on Software, MSDN Blogs, however, there are many many more out there.
  • Go get yourself some IT qualifications.
    If possible, go to University and do a Computer Science degree. However, if you can’t or don’t want to do that just yet, do a short course with a polytechnic or some equivalent. A qualification will not only give you the introduction you’ll need to start off in IT, but it will prove to those who interview you that you’re serious about what you want to do and that you’ve got the smarts to pull it off.
  • Don’t let the lack of women in IT put you off.
    For me personally, being in IT has been a lot of fun. I’ve met heaps of really great people and have fit right in with all the development teams I’ve been on. IT guys will treat you like one of them and you’ll never feel left out.

And finally, if you have any questions or want any advice on any of the above then please post a comment on this blog and I’ll be more than happy to have a chat.

  • Share/Bookmark

How to populate a drop down list from an XML file in .NET

February 26, 2009 - 5:48 pm 1 Comment

I know this is not rocket science but it’s actually something I’d never had to do until recently. Normally I populate my drop down lists (and repeaters, etc etc) using data from databases, not XML.

However, fear not. Using XML as a datasource in .NET is super easy. Here is one way to do it:

?View Code CSHARP
1
2
3
4
5
6
7
8
XmlDataSource source = new XmlDataSource();
source.DataFile = Server.MapPath("Values.xml");
source.XPath = "ParentElement/ValueList/ValueItem";
 
myDropDownList.DataSource = source;
myDropDownList.DataTextField = "Text";
myDropDownList.DataValueField = "Value";
myDropDownList.DataBind();

And your xml file, Values.xml, may look something like:

<?xml version="1.0" encoding="utf-8"  standalone="yes" ?>
<ParentElement>
  <ValueList>
    <ValueItem Text="Item 1" Value="1" />
    <ValueItem Text="Item 2" Value="2" />
  </ValueList>
</ParentElement>

Happy coding!

  • Share/Bookmark

How to develop secure .NET applications using Server SSL Certificates and Client Certificates – PART 4

February 25, 2009 - 11:07 pm No Comments

The following article is part 4 and therefore the last in a 4 part series of articles about developing .NET applications using SSL. Part 1 in this series can be found here, part 2 can be found here and part 3 can be found here.


How to set up a web application to automatically redirect to HTTPS if accessed via HTTP when SSL is required

SSL can be “required” at the site level, folder level or even file level.

If any file that has SSL set to “required” is requested via HTTP, HTTP Error 403;4 “Forbidden” will be returned automatically by IIS.  As far as I can tell, there is no simply way to tell IIS to re-direct to the same page via HTTPS.  This effect can be achieved in two different ways and if “defence in depth” is the preferred approach then both solutions can be implemented together.  Note that both solutions require custom code to be written however.


Redirect with IIS and code:

  1. Create a new Web Form (aspx) in your Web Application called RedirectToSSL (or similar).
  2. In the Page_Load event handler, insert the following code:

    ?View Code CSHARP
    1
    2
    3
    4
    5
    6
    7
    8
    
    string redirectUrl = HttpContext.Current.Request.Url.Query; 
    redirectUrl = redirectUrl.Substring((redirectUrl.LastIndexOf(';')+1)    
                     , redirectUrl.Length - (redirectUrl.LastIndexOf(';')+1));
     
    System.UriBuilder secureUrlBuilder = new System.UriBuilder(redirectUrl);
    secureUrlBuilder.Scheme = System.Uri.UriSchemeHttps;
    secureUrlBuilder.Port = -1;    // Use default port 
    HttpContext.Current.Response.Redirect(secureUrlBuilder.Uri.ToString(), true);

  3. The aspx needs to be at least 512 bytes, otherwise IIS won’t redirect to it. So make sure you don’t delete everything out of it, it should never get displayed anyway.
  4. In IIS, right-click your Web Site and go to Properties > Custom Errors.
  5. Select the “403;4” HTTP error in the list HTTP errors and click the Edit Properties button.
  6. Select “URL” from the Message type drop-down list and enter “/RedirectToSSL.aspx” into the URL textbox, as shown below.
  7. Press OK twice to close the dialogs down.
  8. Restart the website and/or reset IIS to ensure all settings have been applied.
  9. Open Internet Explorer and go to: https://<servername>/<securedpage> and verify that you are automatically redirected to the https version of the same page.

Redirect with code alone:
  1. Insert the following code at the beginning of the Page_Load event handler of every page that needs to be secured:

    ?View Code CSHARP
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    // Make sure the request has come through SSL (ie that HTTPS has been used)
    if (!HttpContext.Current.Request.IsSecureConnection) {
         System.Uri currentUrl = HttpContext.Current.Request.Url;
         System.UriBuilder secureUrlBuilder = new System.UriBuilder(currentUrl);
     
         secureUrlBuilder.Scheme = System.Uri.UriSchemeHttps;
         secureUrlBuilder.Port = -1;
         HttpContext.Current.Response.Redirect(secureUrlBuilder.Uri.ToString(), true);
    }


      • Share/Bookmark

How to develop secure .NET applications using Server SSL Certificates and Client Certificates – PART 3

February 20, 2009 - 4:43 pm No Comments

The following article is part 3 in a 4 part series of articles about developing .NET applications using SSL. Part 1 in this series can be found here and part 2 can be found here.


Installing Certificates into the correct Certificate Stores

Applications depend heavily on server SSL and client certificates being installed in the correct certificate stores. Certificates may need to be copied and pasted or exported and imported into stores in order to get the systems correctly working together in a secure manner.


Client application (with client certificate):

  1. Local Computer > Trusted Root Authority store should contain the Root CA certificate of the Server SSL Certificate Issuer of the Web application.
  2. Current User > Personal store should contain the Client Certificate for the Client application.
  3. Current User > Trusted Root Authority store should contain the Root CA certificate of the Client Certificate Issuer of the Client application

Web application (with server SSL certificate):
  1. Local Computer > Personal store should contain the Server SSL Certificate for the Web application.
  2. Local Computer > Trusted Root Authority store should contain the Root CA certificate of the Server SSL Certificate Issuer of the Web application.
  3. Local Computer > Trusted Root Authority store should contain the Root CA certificate of the Client Certificate Issuer of the Client application.
  4. Current User > Trusted Root Authority store should contain the Root CA certificate of the Client Certificate Issuer of the Client application.

How to verify the above certificates are in the correct locations:
  1. From the Start menu, select Run, type “mmc” and click OK. This will open the Microsoft Management Console.
  2. Click on the File menu option then on “Add/Remove Snap-in”.
  3. In the Add/Remove Snap-in dialog, click the Add button.
  4. From the Add Standalone Snap-in dialog, select “Certificates” from the list of snap-ins, and click Add.
  5. Select the “Computer account” option and click Add. Select “Local computer” and click Finish.
  6. If you are logged in as the user that will be used to run the client application, add the “My user account” as well.
  7. Now you will be able to look through the Certificates that are installed in all the different stores.
  • Share/Bookmark

How to develop secure .NET applications using Server SSL Certificates and Client Certificates – PART 2

February 19, 2009 - 9:56 pm No Comments

The following article is part 2 in a 4 part series of articles about developing .NET applications using SSL. Part 1 in this series can be found here.


Setting Up Client Certificates

Client certificates can be used to authenticate the client connecting to a web application. The client can either be a browser or a custom written client application.


Requesting a client certificate:

  1. Open IE (Firefox didn’t work so well for me…) and type in: http://<certauthservername>/certsrv/
  2. Click on the “Request a certificate” link.
  3. Click on the “Web Browser Certificate” link.
  4. Enter all required information into the form shown above click “Submit”

Issue the client certificate from your test Certification Authority:
  1. Log onto the Windows Server 2003 machine and open the Certification Authority dialog from Administrative Tools.
  2. Expand the root certification authority “Pending Requests” folder.
  3. The certificate you just requested should be in the “Pending Requests” folder. Right-click on this request and select All Tasks > Issue. The certificate request will be removed from the “Pending Requests” folder and appear in the “Issued Certificates”.

Retrieve the certificate and install it into the Current User > Personal Store:
  1. Go back to IE on your web server and type in http://<certauthservername>/certsrv/ again.
  2. Click on the “View the status of a pending certificate request” link.
  3. Click on the certificate request you want to view.
  4. Click on the “Install this certificate” link.
  5. Click “Yes” on the dialog that opens to install the client certificate.
  6. Click “Yes” on the next dialog as well.

Requiring client certificates at web application with IIS:

Once a client certificate has been requested, issued and installed on a client machine, a web application can be set up to require client certificates.  For extra security, client certificates can also be mapped to a windows account user.
  1. On the client machine, open a Microsoft Management Console with the Certificates snap-in. Export the client certificate without the private key. This will generate a .cer file. Copy this file over to the server hosting the web application.
  2. On the server hosting the web application, right-click the website in IIS and select “Properties”.
  3. Under Properties, go to the “Directory Security” tab.
  4. Under the Secure Communications section, click the “Edit” button.
  5. In the Secure Communications dialog, change the “Client Certificates” option to “Require client certificates” and check the “Enable client certificate mapping” checkbox.
  6. Click on the “Edit” button in the “Enable client certificate mapping” section.
  7. This will open up the Account Mappings dialog.
  8. Click the “Add” button.
  9. Select the client certificate .cer file recently exported from the server that hosts the client application or client browser.
  10. Give the mapping a relevant name and choose the windows user that the web application will be run under.
  11. Click OK.
  12. Click OK to close the Account Mappings dialog and Secure Communications dialogs.
  13. Remove all other authentication options in the IIS manager Directory Security setting by clicking on the “Edit” button under Anonymous access and authentication control in the Directory Security tab.
  14. Uncheck all authentication options and press OK.
  15. Open up a browser and verify that you cannot reach the web site unless you navigate to it from the machine that has the client certificate installed on it.
  • Share/Bookmark

How to develop secure .NET applications using Server SSL Certificates and Client Certificates – PART 1

February 19, 2009 - 12:45 am No Comments

The following article is part 1 in a 4 part series of articles about developing .NET applications using SSL. These articles are based on my experience and I hope that they will help others develop secure applications as well.


Setting up a Development or Test SSL Server Certificate on a Website in IIS (5.0/6.0)

When developing an application that requires SSL you may want a test SSL certificate to develop against.  You can request test SSL certificates from companies such as Verisign however these only last 14 days (and you will be called up by Versign representatives asking you when you would like to buy the real deal).  A much simpler and more flexible solution is to issue your own test SSL and client certificates by setting up a Windows Server 2003 machine that has the Certification Services windows component installed.


First, create an SSL server certificate request:

  1. In IIS, right-click the Upload web site and select “Properties”.
  2. Under Properties, go to the “Directory Security” tab.
  3. Click the “Server Certificate” button and then click Next.
  4. Select the “Create a new certificate” option and click Next.
  5. Select the “Prepare the request now, but send it later” option and click Next.
  6. Go through the next few forms and fill in all required information.
  7. At the end of the wizard you will be asked to save the certificate request as a text file. Do this so you can send this request to a CA later.
  8. You will be shown a summary of your SSL certificate request. Check this thoroughly to make sure you have all the correct values.
  9. Click Next to finish the IIS Certificate Request Wizard.

Then, request a certificate from Certification Authority:
  1. Open IE (Firefox didn’t work so well for me…) and type in: http://<certauthservername>/certsrv/
  2. Click on the “Request a certificate” link.
  3. Click on the “advanced certificate request” link.
  4. Click on the “Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file” link.
  5. Copy and paste the contents of the certificate request generated by IIS (certreq.txt) into the “Saved Request” text box.
  6. Click the “Submit” button to request the certificate

Issue the SSL certificate from your test Certification Authority:
  1. Log onto the Windows Server 2003 machine and open the Certification Authority dialog from Administrative Tools.
  2. Expand the root certification authority “Pending Requests” folder.
  3. The certificate you just requested should be in the “Pending Requests” folder. Right-click on this request and select All Tasks > Issue. The certificate request will be removed from the “Pending Requests” folder and appear in the “Issued Certificates”.

Retrieve the certificate and install it into your website:
  1. Go back to IE on your web server and type in http://<certauthservername>/certsrv/ again.
  2. Click on the “View the status of a pending certificate request” link.
  3. Click on the certificate request you want to view.
  4. Click on the “Download certificate” link. A “File Download” dialog will open. Click Save to save the new SSL certificate as a .cer file.
  5. Go back to the Web Site properties in IIS and from within the Directory Security tab, click on the Server Certificate button.
  6. Select “Process the pending request and install the certificate” and click Next.
  7. Browse to the certificate file saved to disk in step 4 above that contains the SSL certificate issued to this server by your test Certification Authority.
  8. Follow the wizard until the SSL certificate has been successfully installed.

Configure your website to use SSL in IIS:
  1. Once an SSL server certificate has been installed on the website, go back to IIS > > Properties > Directory Security tab > Secure Communications section and click on the “Edit” button.
  2. Check the “Require secure channel (SSL)” checkbox but leave the “Require 128-bit encryption” checkbox empty.
  3. Leave the “Client Certificates” section set to “Ignore client certificates” and the other two checkboxes unchecked for now.
  4. Close this window down and restart the website and/or reset IIS.
  5. Open up a browser and verify that you cannot reach the web site by using http only, instead you must use https.

Finally, you must “trust” the certificate:
  1. If the browser tells you that your certificate was issued by an untrusted CA when you navigate to your website, you will have to download the CA certificate from your test Certification Authority website and install it into the Trusted Root Authority store of the Local Computer.
  2. You may also find that the browser may tell you that the certificate is not valid because it was issued to a different name – that will happen if you are accessing your site using http://localhost/ rather than the server name. The certificate was most likely issued with the actual server name and the browser will think that your site is being spoofed if the domain name in the browser and the certificate don’t match. Use the server name instead.
  • Share/Bookmark

Exercise? What exercise?

November 14, 2008 - 3:41 pm 4 Comments

Summer is pretty much here (well, in Brisbane summer actually never really wasn’t here), and the thought of being able to cruise on up to the beach with our new car (wooohooo!) has got me thinking about just how little exercise I get on a day to day basis.  I sometimes walk to work, but let’s face it – when you have a fairly regular train service, multiple buses, and now car at your disposal… you know where I’m going with this.

(more…)
  • Share/Bookmark

TravelStash is LIVE!

August 18, 2008 - 1:34 am No Comments

About a week ago, Chris and I “launched” TravelStash.  By “launched” I mean we have now opened it up for general consumption.  Anyone can join TravelStash and use it just like Rheanna and Sanjay did on their recent South Africa trip, Margaret and Alan have on their trip around the South Island of New Zealand and of course, how Chris and I have consistently used it to keep our friends and family updated on all our travels over the past couple of years.

TravelStash


(more…)

  • Share/Bookmark