Monday, November 30, 2009

A day off to do nothing

I decided to have the day off today and it's great. Turns out that if I worked today, I would have over run my over time limit and since I maxed out my over time hours already, I might as well take the day off and expect a nice pay cheque for this month's work.

I woke up at 10 am for once, which was nice as I've been starting work at either 8 or 7 am recently. Just because it is hard to get machine time other wise. Everyone likes to work late so I've decided to in the other direction to start early, use all of the busy machines and switch over to the less busy equipment later in the day. This method of working does wonders because I don't have to waste the day waiting for equipment to become available.

Things have been so busy as of late that I haven't had the time to catch up on doing a lot of small things like cleaning the room, going out and buying things like new socks or what not since I just don't feel like doing too much after coming home from work; it might be some exercise in my room while watching a few episodes off West Wing on the computer.

One of the nice things about having a weekday off is that no one else is available, meaning that I have plenty of time to concentrate to do things like program instead of getting dragged out (which isn't a bad thing of course). It's so much easier to concentrate on a project when you have an entire day to dedicate to it, instead of doing something after work. I've started to understand why people mention that it's really hard to work on something like a startup while working for an ordinary company. It takes free time and concentration to make something, which is something that I don't have a whole lot of after work.

Though I usually have a few hours of relaxation time before I go to bed after work, if I can get focused enough, I might be able to use those hours for something productive. So I'm going to try and see how that goes.

Wednesday, November 25, 2009

There ought to be good money in reporting software

The thing about working in a large company is that there are lots of meetings. It's unimaginable how many meetings there are. We have meetings for general office announcements, a meeting for one sub group, then there are other meetings for other sub-groups, other meetings for managers and etc.

In my situation, I am working on a project that has implications to a few other teams and thus it becomes necessary to attend several other meetings to keep everyone abreast of what is going on. The problem is that once you start attending many meetings, the time to make presentation material starts eating into time that could have been used for me to get real work done.

Things for me are starting to move out of the research to the development phase, which means that the work we do is starting to be come more standardized and more focused more on making incremental improvements instead of radical changes. For me, this means generally carrying out the same experiments with slightly different conditions to try and find the perfect parameters to make what we're building. There is a crap load of data that needs to be taken, plotted and then thrown into a power point presentation and that does take up a considerable amount of time.

I've already managed to cut down some of that time to automate the analysis but, it seems to me that more is possible to speed things up. Specifically, if I could find a way to automate to take data and automatically make reports and presentations out of them then life would be a hell of a lot easier for me and I can imagine how software like this could be useful in similar kinds of corporate situations. There are likely companies out there that do specifically this when it comes to finances, sales, inventory tracking and more.

There are companies that do exactly this and most likely make good money by tailoring their software to their client's needs and having something like this right now, would really be a kick ass tool.

Tuesday, November 24, 2009

The West Wing

Just started watching The West Wing a few weeks ago and it's a series that I've found myself rather addicted to. I wouldn't call myself a political junkie and usually I am quite happy to stay clear of politics, but for some reason, because of the exceptional writing and interesting characters, I'm hooked.

Hard to imagine that this was a pretty old series, but the story is pretty good and it's fascinating watching a series about busy people running the Whitehouse. I even thought that the series at first was about pilots... but I had it confused with another series called Wings.

Just goes to say how far out of the loop I've been with TV.

Sunday, November 22, 2009

Prioritization

Prioritizing things to do is important. I've just started to have that concept sink into my head recently. Time is becoming scarce. During the weekdays, I have work and come home usually brain fried; meaning that I don't want to do any other work after work. Weekends are dedicated to going out, meeting people or other recreational things. This leaves me with the feeling that I don't have much time to do anything else and I see that as a problem.

I equate the the flow of a person's life to a position-velocity-acceleration kind of physics model. Basically, you are at some position, moving in some direction at some speed at some time in your life. Work needs to be applied to change one's momentum to change the vector of your direction and speed to get to desirable position.

Excuse the looseness of the language but to affect change in one's life occurs when one produces that "work" which I define as work = effort*time. In other words, no effort or time means no change.

I view work (as in working for a company) as "dead time" which is where a person trades time for money. Relaxation time is a by product of recovering from work which also falls into this category. Whatever is left can be invested into one's self into productive means... if one so chooses to do so and it is this kind of time that I find precious.

This is where prioritizing comes in.

When I used to be a student, my priorities used to be relatively simple. I had a set of courses that I needed to pass/obtain good marks in and I would allocate time to do what was necessary. Being human, it was usually the allocation of the "minimum" amount of time to do what was necessary and the rest to do whatever else I wanted to do, which was goofing off. Life back then was simple because my priorities were simple.

Now that I have graduated from University and moved into the work force, those priorities are gone. Now what?

What are your priorities?

I've been trying to prioritize what I've been wanting to do for the last while but couldn't come up with anything then it dawned on me for a second that I wasn't sure of what my priorities were. It wasn't one of those black and white moments that whacked me in the face, but one of those "maybe I don't know what my priorities are" kind of thoughts that made me want to write about this.

In no particular order of importance, my general priorities are :

1. Enjoy life
2. Maximize income for minimal work
3. Do work/projects that I enjoy
4. Travel
5. Have an awesome girlfriend
6. Have a circle of friends that is talented, reliable, active and fun
7. Family

Short term priorities:

1. Establish a reputation at current company
2. Perfect my Japanese
3. Learn Chinese
4. Head into automation technologies (both informational and physical)
5. Improve memory
6. Increase muscle mass, get a mild 6 pack
7. Passive income stream
8. Develop a network of talented people
9. Reduce time wasted goofing off

The list is by no means definitive and will likely chance in as my priorities change, but I'll leave it as an alpha version for now.

It's obvious that there are many things that I want to do and there isn't going to be enough time for me to do everything. Being ruthless at making decisions is not one of those things that I am particularly good at but when it comes to having a tight time budget, one does not have much of a choice when it comes to making a plan. Playing an active role in making a time table for one's self personal life seems as something unnatural, but it is going to be something that I need to do.

The other thing is that I also have a bad habit of getting sucked into events and work that aren't particularly aligned to my priorities. I just have a terrible habit of saying "yes" to everything and I am going to have to put an end to that because I've been stretching myself too thin in the time department recently.

Well, here is a start and we'll se how things go.

Wednesday, November 11, 2009

Developing a Crawler and Parser library

The internet has a huge plethora of readily accessible information, the problem is that the average human being isn't able to process large quantities of information in a short period of time. So I have taken to the task of developing a small library of functions to allow me to automate downloading of webpages and extract data out of them for analysis.

This project of mine has been going on and off for the past year since doing work in matlab and then moving on to python which has the advantage of running multi-threaded programs. This is a must since you are usually limited to the response time and the speed of a website instead of the processing capabilities of your CPU. Processing textual data can be ridiculously fast, even for an interpretive language like python.

Mashing up data from different sources is a very fascinating experience and I do see some interesting opportunities in the future. The first application I designed was downloading all the prices of different CPUs from an online store and then combining that data with published benchmarking data from another site. Using both pieces of information, I could easily calculate price/performance ratios for every listed CPU to select a CPU which was best suited to my computing requirements and price range. I wouldn't have to thumb through long benchmarking articles anymore to figure out what might be the best CPU for me.

It even gets better as the process can also be automated to the point where it is possible to create a program that will inform me when certain products have gone on sale and notify me if I would like to purchase something. This brings a new paradigm to shopping as it becomes possible to set up an automated notification system when something you want comes into your price range. This is a good thing since you don't have to waste time reading advertisements since you have a program that does that for you.

I am now ramping up the scale of this program to allow me to download larger data sets to mash up financial data from publicly stocks with their stock price to see if I can develop a valuation model to determine the fair price of a stock by using fundamental data. Instead of limiting myself to tracking small groups of stocks, I might be able to look at the stock market as a whole. Using a large data set to look at pricing distributions I can determine with greater confidence as to what makes one stock expensive or cheap compared to another set of stocks or perhaps understand what is going on with the stock market as a whole instead of the filtered (and usually useless) information provided through most financial sites.

The power of this program is immense as I have been working on downloading financial reports from every company listed company for the past 10 years. To get to this data, one must transverse several webpages to finally get to the real data. In the past week, I have already downloaded and parsed 180,000 webpages so far and will be going be downloading another 150,000 tonight while I sleep. This program has read and processed more than I will ever read in my entire lifetime and I think that is amazing.

I have no idea what I am going to learn yet, but the prospect of looking at large data sets and interpreting them has me quite excited. I am looking forward to working on this little project.