Monday, 28 March 2011

Using the Pomodoro Technique

My last post on HTTPS last week turned out to be a lot more work than I thought it would be! Although I learned quite a bit, it was tough doing it throughout the day. I'm not going to shy away from large research based posts, but at least I'm now aware of the amount of work that it takes to concisely write about something like that!
Anyway onto this post, I have been heavily involved in finishing my dissertation for the past week, hence I haven’t had much time to write anything on here! Taking some of the things that I've learned I want to mention the study technique that I've used


I base my study technique on the fundamental principles of the Pomodoro Technique. In this method you divide your time up into 25 minute work slots which are then followed by a 5 minute rest period. For me this works perfectly, I find that 25 minutes is just the right amount of time to seriously hold my concentration and stay focussed on the task at hand. I stop myself from using any distractions like Facebook, emails or Blog reading during this time and have found it to be a highly effective method for getting work done.



During the rest periods I'll read my emails, fill up my water bottle (a vital study companion) or simply get up and away from my desk to stretch my legs. Once this is over I then return and continue to study for another 25 minutes.

My day is then spilt up into further 30 minute periods (25 + 5 minutes = 30 minutes) and I'll try and do say an hour and a half of my dissertation, break for some food, another hour and a half, break to do something different and then return to the work etc.

What I've found to be highly effective is if I actually plot this out on my Google Calendar with pop-up reminders:


I think that this helps keep me to time because it's almost like I have someone else telling me what to do and when, it's a psychological thing that gives me some abstraction between the timetable and myself

Of course this can br a fairly flimsy method if I'm having a day where I lack the will to really get into the work, this hasn’t happened yet nand I think this is because; I could technically break this routine at any point but I've developed my concentration and mental drive enough to prevent any procrastination. I just plug into my music and have my short, sharp bursts of concentration.

Obviously I wouldn't expect this routine to work for everyone, when my housemates tried it along with me they didn't enjoy it at all. The main reason was that they felt that it didn't give them enough time to "get into" a project. The breaks came to often and actually made thme lose focus.

For me the 30 minute sessions that the technique provides form the backbone of my routine. I then combine it with several other elements to help me stay focussed and productive during my days (I'll cover these in another post!).

It's important to remember that this is still very much a work in progress, although Pomodoro works as the backbone I am happy to continue refining my routine until I have something that suits me. This may never happen but I'm fine with this, my routines will have to change and adapt as my situation changes, by using and trialling different methods I can find what works and what doesn't work for me.
More information on the Pomodoro Technique can be found here.A great timing extension for chrome that I use is available here.

Monday, 21 March 2011

Facebook HTTPS - What is it?

I recently changed my Facebook Account Security settings and switched on secure browsing (I know it's taken me a while). Facebook initially provided the option in January 2011 expanding its HTTPS usage from password transfer to entire site data transfer.


While doing this I thought that it would be worth having a quick look into HTTPS and seeing what changes it was actually bringing to the way that I access Facebook.

What is HTTPS?

HTTPS (Hypertext Transfer Protocol Secure) is a combination of the Hypertext Transfer Protocol (the method by which hypertext requests and information between servers and browsers are transferred across the Internet) and the SSL/TLS protocol which is used to provide encrypted communication and secure identification of network web servers.

Secure Sockets Layer (SSL) is the most widely used security protocol on the Internet, it was originally developed by Netscape and aspects of the latest enhancement of SSL 3.0 has been incorporated into the Transport Layer Security (TLS) protocol.

SSL

SSL is based on the premise that when I browse to a trusted site, I want to know that I am talking only to the person that I want to talk too and that my data is not being seen by anybody else.

This trust is achieved by using Certification Authorities and Public Key Infrastructure, the basic idea is that if you have a public key in your possession and you use it to encrypt data, the only system that can decrypt that message is a system that possesses the private key (and vice-versa). PKI is used for authentication.

A part of this process is to set up the encryption. This is negotiated during the SSL protocol's initial handshake - at the same time as calculating authentication. Once this has reached completion, a tunnel is created using a less computationally hungry process known as symmetric key cryptography. At this point the traffic can be deemed as being encrypted.

The System Architecture

The following diagram and paragraph sum up the authentication process perfectly [via SecurityWorkshop]


  • When any modern browser is installed, it is sent with several CA issuer certificates. These issuer certificates contain a public key for the issuer, among other information.
  • When a web designer decides to use SSL he needs to purchase a certificate that is signed using the CA's private key.
  • The web browser starts a connection to an HTTPS site. Along with this request the client sends all supported encryption schemes.
  • As a response to the browser's connection request, the Server sends a copy of the certificate from step 2. Along with this transmission is the server's answer to the encryption negotiation.
  • Once a certificate is downloaded, the signature of the certificate (that was signed using the CA's private key) is checked using the CA's public key (installed in the browser in step 1 - note that there is no need to use the network for this). No error is thrown if this verification checks out.
  • The connection succeeds, the client can now download and upload to the web site with the security of encryption.

Things to Note

You can tell when you are using a secure protocol because:

  • The http:// part of URL is replaced by https://
  • A padlock will appear in the status bar of the browser.


Modern browsers also give the functionality of inspecting the security certificate to verify the status of the connection


To summarise; the idea behind HTTPS is to create a secure channel over an inherently insecure network. It protects on two levels; certification/verification stops anyone from creating fake websites designed to steal information. On-top of this the encryption means that although outsiders may be able to see that information is being passed between the client and the server, they will not be able to access the contents of the IP packets.

So what changes is this actually bringing to my browsing experience?

It now means that my private information that I'm inputting into Facebook is now protected as it travels across the Internet. It's basically making the process much more secure and my information is less susceptible to attacks by readily available bits of software such as Firesheep. Ultimately it is helping to prevent me from being susceptible to all kinds of data theft.

So why not just use HTTPS when accessing every website?

Having had a look at various blog posts I can gather that while HTTPS is great for secure transactions and dealing with sensitive information across the Internet, it does make website loading slower. This is because everything on the webpage must be encrypted and then decrypted (in the case of Facebook this would be all of the images, adverts etc).

The HTTPS transfer process also means that encryption and decryption must be done on both the client and server sides of the channel, this can be quite CPU intensive.

When it comes down to it, there is really just no need to encrypt the majority of web traffic, because there is no need to waste the extra over-head using HTTPS channels all of the time. However it is important to understand why it is used and when it needs to be implemented.


I'm not aiming to cover HTTPS in it's entirety but merely get a grasp of what it is about and why use it. There is a lot of detail to be found on encryption and HTTPS along with plenty more information across the Web. Gizmodo posted an excellent article on this subject as well and I must finally mention Security Workshop again because of the excellent explanation.

Friday, 18 March 2011

What's this all about?

I was beginning to think about what I'm going to use this blog for. Originally I was using it as my Rave Live Blog and then I was going to move it onto my Third Year Engineering project.

However I feel that I will post a lot more if I use it as some kind of dumping ground for ideas that pop into my head (I thought about this post while waking up this morning) or maybe even use it to re-blog certain articles that I find interesting or want to comment on.

That's what I'm going to use this post for, I want to re-blog something that I spotted about a year ago. It popped back into my head because during my dissertation tutorial we began talking about Ph.D's and Masters degrees and the methods of thinking that they encourage. I feel presentation below sums this up perfectly.

It comes from a presentation by Matt Might, professor of Computer Science at the University of Utah, entitled "What Exactly Is a Doctorate?"


Every fall, I explain to a fresh batch of Ph.D. students what a Ph.D. is.

It's hard to describe it in words. So, I use pictures. Read below for the illustrated guide to a Ph.D.
Imagine a circle that contains all of human knowledge:



By the time you finish elementary school, you know a little:


By the time you finish high school, you know a bit more:



With a bachelor's degree, you gain a specialty:



A master's degree deepens that specialty:



Reading research papers takes you to the edge of human knowledge:



Once you're at the boundary, you focus:



You push at the boundary for a few years:



Until one day, the boundary gives way:


And, that dent you've made is called a Ph.D.:



Of course, the world looks different to you now:



So, don't forget the bigger picture:



Keep pushing.


I think this is a great way to sum up what getting a doctorate really means and a stark reminder that no matter what you're speciality is, there is so much more out there to be found out.

Matt Might is a professor of Computer Science at the University of Utah. He Tweets from @mattmight and blogs at blog.might.net

Original article taken from Gizmodo.

Wednesday, 16 March 2011

Automating BBC News Every Morning

One of my morning routines is to watch the news every morning as I'm having a coffee and getting ready. Usually I'll watch the previous nights 10 o'clock news on iPlayer, this requires me to open up the iPlayer website every morning, scroll down to "BBC News At 10", open this on either the same page or a new page and then play the content




Although this isn't the most labour intensive thing that I've ever had to do, it's just become a bit of a pain to have to do it every morning. So I was wondering if there was a way that I could automate the process.

So there were a couple of things to achieve:

  • Have an automated action to open the iPlayer website at the correct 10 o'clock news site (which will probably change every day as the next day's video is uploaded)
  • Have this action performed at a certain time every day
I first looked at how to set up repeating events. Using iCal seemed to be one option as it can have it's reminders execute scripts - however I have moved away from iCal for a while (in favour of plain old GCal) so i didn't really want to use it.


Instead I found out that Mac OS actually has some form of event timing system built in (as I'm sure every other OS does) called Cron. More information can be found here and I have decided to use this as my scheduling tool. Using the CronniX application to provide a workable GUI for the Cron daemon (I usually like doing this manipulation stuff in Terminal but I wanted to get it done before a meeting so didn't have much time) I then scheduled an event to go off at 8:10 every morning, using the simple schedule tab I could paste the destination of my script file into the "Command" box, in order to execute the script I just needed to tick the "Prepend /usr/bin/open" box (I'm guessing this runs the process that opens files and applications - I look into the inner workings of CronniX later).


Now that I had the ability to schedule my event I just needed to make it. Although at the beginning I said that I wanted to have an AppleScript because I feel that it would have been great to practice my coding, time constraints again dictated that I find a simper solution. So I turned to Automator and built up the simple workflow below that would open the correct webpage.


The workflow works as follows

  1. Obtaining and navigating to the BBC iPlayer homepage in the default browser (chrome)
  2. Displaying the homepage
  3. Searching the homepage for URLs
  4. Filtering these URLs and only keeping the ones that contain the string BBC_News_at_Ten (this is the standard naming convention that is used)
  5. Displaying this webpage

All I then had to do was to save this as an application, point the Cron daemon towards it and let it do its thing!

I understand that I'll obviously have to watch out in terms of this will open every-day, and I'm not sure how it will react to weekends because there is no "News at 10" it's only the "Weekend News". I think the workflow will simply fail and nothing much will happen but I can always schedule this not to happen on a weekend

When I get time I'll change a couple of things, notably I want the whole thing to be run as a script so that I can get some experience in using AppleScript. Also it would be good to close the original iPlayer homepage after opening the news tab and of course I want to look more into the Cron daemon, /usr/bin/open function and other lower level OS stuff. Mostly because I enjoy getting to grips with this stuff but also because there could be certain other things that I could begin to automate!

Tuesday, 15 March 2011

Top Gun Interactive

Alex and I were browsing this morning and accidently bought a domain name, topguninteractive.co.uk. Being the productivity kings that we are at the moment we have begun to turn it into an up and coming website, with a little help from our friends (thanks Jon!). 

I'll keep posting any developments - I'm trying to turn over a new leaf and actually post regularly, even if it's just to myself! Until then enjoy the welcome slate (Top Gun Interactive)