Emacs

May 17, 2008 by Derek Kivi

Since I am an Emacs user, I am going to post my .emacs file here so I can easily find it when I start to work on a new computer.

    .emacs


; emacsclient
(server-start)
(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)

; turn off scroll bars
(scroll-bar-mode -1)

; turn off menu bar
(menu-bar-mode -1)

; turn off tool bar
(tool-bar-mode -1)

; show the column number
(column-number-mode 1)

; don't truncate long lines
(setq truncate-partial-width-windows nil)

; turn on syntax highlighting
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

; make Alt-g goto-line
(global-set-key "\M-g" 'goto-line)

; set the title bar to be Emacs - *filename* if there is a filename,
; or Emacs - *buffer* if there isn't a filename
(setq frame-title-format '(buffer-file-name
("Emacs - %f")
("Emacs - %b")))

; highlight selected region
(setq transient-mark-mode t)

; shell colors
(require 'ansi-color)
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)

; color-theme
(require 'color-theme)
(color-theme-initialize)
(color-theme-charcoal-black)

; eshell
(setq eshell-ask-to-save-history 'always)

; font
(set-frame-font "-outline-Lucida Console-normal-r-normal-normal-13-97-96-96-c-*-iso8859-1")
;(set-default-font "Bitstream Vera Sans Mono-10")

Learning Ruby on Rails

July 18, 2007 by Derek Kivi

Since I enjoy using the web I have decided to try and create a few web applications that I have been thinking about. Even though I have been programming for a long time, I have never actually created a web application before, only a few websites in basic HTML.

Ruby on Rails has a lot of attention lately so I bought the book Agile Web Development with Rails and am about half way through it. I created the demo Depot application and have started to create my own application in the last few days. The application is related to weblogs and I hope to have an initial version up and running by August 13. It seems to be going good so far so I will update my progress here over the next little while and post a link to the app when it is up.

Linksys WRT54G wireless router

May 5, 2007 by Derek Kivi

Just after Christmas we bought a MacBook notebook and a Linksys WRT54G wireless router so that we could use the notebook around our house. The router worked well enough for about a month and a half and then it started to get flaky. The internet connection would stop working both on the notebook and on our desktop computer that is plugged into the router. To fix it I needed to unplug the router and then plug it back in again. This wasn’t so bad at first since it happened only once a week but over time it got to where I needed to power cycle the router once or twice a day. I checked out the Linksys support pages and found updated firmware for the router there. I downloaded it and installed it but it didn’t seem to have much effect at all.

If the router had worked perfectly I wouldn’t have searched around the web and discovered that the WRT54G model line has an interesting history of being able to be modified/hacked/improved by installing Linux on it. Unfortunately, our version of the router (version 6.0) was not so easily modifiable. Thankfully, I discovered this page where the author Jeremy Collake discovered how to put the advanced DD-WRT firmware onto version 6.0 WRT54G routers.

I followed the instructions there and we have been happily using our router now for over a month with zero problems. There are a couple of problems with this though.

  1. Many/most people probably aren’t up to or willing to modify their router’s firmware. I know neither of our sets of parents would be. Needless to say it voids the warranty.
  2. Linksys seems to be bent on reducing the capability of WRT54G routers with every new version number, making it harder to do things like install other firmwares.

So, based on this experience, I have doubts that we would consider another Linksys product in the future. Also, if you are having troubles with a WRT54G router, you ought to consider looking into an alternative firmware–it may help fix your problems.

Books read in the last month

May 3, 2007 by Derek Kivi

Well, after a slow reading start to the year (having a baby born in January will do that!) I managed to read five books in April. They were the following:

Of these, I most liked Getting to Yes and The E-Myth Revisited. I plan on posting summaries/reviews of these two books over the next few weeks.

Work habits

May 1, 2007 by Derek Kivi

I have tried to establish positive work habits during my career and I thought I would share some of the things that I try to do every day and week at work.

The first thing that I do is set goals to accomplish every week at work by writing down 4-5 things that I want to accomplish in the next week on Friday afternoons. I have also set a goal to increase by 5% the total number of goals that I attempt every 3 months. By increasing your level of achievement by a manageable amount like 5% every quarter, in 10 years you will be doing 7x as much as you are doing now. If you can increase your effectiveness by seven times in ten years, you will surely be able to be successful at work. This is an example of how continuous improvement is like compound interest.

The second thing I do is keep a notebook to keep track of what I am doing on a daily basis and also to make note of any interesting or useful information that I happen to come across. Every month or so I go through all of the notes for the previous month and move all of these interesting notes to a file on my computer for easier access later.

P.S. My wife just informed me what the word blog really stands for: boring logbook. So hopefully this post hasn’t bored you too much :)

2020 Science

April 23, 2007 by Derek Kivi

I recently read the report on 2020 Science that is available at this Microsoft Research site. The report gives a vision for computer science research over the next 15 years or so and its thesis is that computer science and computing science will be a primary driver of many fields of science, particularly biology, in that period.

Some of the notes that I took away from reading the report were the following:

  • Computer science will be highly important to the future of science generally.
  • Computer science theories are beginning to have importance outside of computer science itself, notably in biology.
  • Scientists must become computationally and mathematically literate
  • The upcoming era of science-based innovation could eclipse the previous era of technology-based innovation in importance.
  • Science must be at the top of the political agenda.
  • Children need understanding of math and computer science concepts.
  • Scientists must make clear the value and benefits of science to the larger community.
  • It is better to fund larger scale projects rather than flavour-of-the-month research areas.
  • Governments and universities should create institutes that are focused on solving a problem rather that on a particular field.
  • Refocus computer science to find solutions to grand challenges. The way that computer science is taught now is uninspiring.

In all, it is quite an interesting look at the potential future for computer science.

Microsoft Compute Cluster Server (CCS): Disruptive to Linux Clusters?

April 14, 2007 by Derek Kivi

This article from CNET News.com talks about Microsoft’s recent entry into the cluster computing market that is currently dominated by Linux. Their strategy appears to be trying to find a niche in the small cluster market rather than at the high end. These customers often want to integrate work that they are already doing on their Windows PCs.

This could potentially be a disruptive strategy as detailed in Clayton Christensen and Michael Raynor’s book, The Innovator’s Solution. In that book several tests for whether an innovation is disruptive or not are given. A few of these tests are the following questions:

  • Is there a large population of people who historically have not had the money, equipment, or skill to do this thing for themselves, and as a result have had to go without or pay someone with more expertise?
  • To use the product or service, do customers need to go to an inconvenient central location?
  • Are there customers at the low end who would be happy to purchase a product with less performance for less money?

Does Microsoft’s CCS satisfy any of these tests? For the first question, there is definitely a larger base of users and developers for Microsoft systems rather than Linux systems, and it seems that many of these people might prefer to stay with the familiar Windows platform rather than move to an unfamiliar Linux platform. For the second question, small Windows clusters might be able to be located closer to workers than large Linux clusters that might need to be put in a central data centre. For the third question, many users and companies do not need the massive performance that is possible with large Linux clusters and might easily be satisfied with a smaller Windows cluster that gives them an environment they are used to.

At one of my previous jobs, we had developed software on the Windows platform that we wanted to expand to run in parallel on a cluster. We chose to buy a Linux cluster and port the software to Linux in order to do this. In part this was because the company had some experience working in UNIX cluster environments, but if the Microsoft CCS had been available at the time we might have made a different choice.

Thus, while Linux may be disruptive to Microsoft in some areas, in the High Performance Computing world, Microsoft might start to disrupt Linux in return.

Advice for new bloggers: 7 tips

April 1, 2007 by Derek Kivi

I have been blogging now for one month; here are my tips for how to have a good start for your weblog. It may be incredible hubris to offer my advice but here goes :)

  1. Try to post every day.  According to  many sources including Steve Pavlina, it takes 30 days to establish a habit. If you want to start out right, you should try to post every day for a month.
    • I was able to do 19 posts in my first month so I didn’t quite make it but I think it was very helpful to try and post every day. The days where I didn’t get to post I started to miss it towards the end of the month so I think I have nearly made it a habit. In addition, most readers will discover your posts soon after you write them, so if you want to keep your traffic from dropping to near-zero for a few days, you should try to always have fresh content. My next step is to try and keep a post-per-day pace for a year.
  2. Before you start, make a list of potential topics to write about. Add to this list throughout the month as you think of new things.
    • This has been very helpful in providing the motivation for writing on days where I didn’t already have a topic in mind. By going to my list I could easily choose a topic to write about that day.
  3. Write posts that would be valuable to readers interested in your topic.
    • If you do write a post that is valuable, don’t be surprised if you get comments very early on. Many people are now monitoring weblogs for tags or terms of interest within the post, so if you mention a subject that they are interested in, they will find it. This can be especially true if you mention particular companies by name. One of my most popular posts so far was a collection of links to weblogs and other sites that people in my field might find interesting.
  4. Link to other blogs that you admire.
    • If you link to other weblogs in your area of interest, you may receive comments from their authors in return. Receiving comments from other people you admire can be some of the most rewarding experiences when you begin your own weblog. Depending on how popular their own weblogs are, these people may even be the preeminent people in their fields.
  5. Keep to your primary topic as much as you can.
    • If you are blogging for career purposes, this is probably one of the most valuable tips. By keeping to your primary topic, you will eventually build up a collection of posts that others in your area will find valuable. This can help you position yourself as an expert in that area.
  6. Write more original content rather than just linking to other sites.
    • While some bloggers are very successful by mainly providing links to other content, I think that you will find more enjoyment and lasting success by trying to create your own content.
  7. Less navel gazing or blogging about blogging.
    • Perhaps it is a bit hypocritical to include this in the list, but I think that while it can be an interesting topic, blogging about blogging shouldn’t be your primary topic. I have found it very easy to blog about blogging during my first month but this is something I am going to try and get away from in the future. Especially when you are first starting out, the experience of blogging is new and fun so you want to write about that which is natural.

I hope these tips will help someone else who is just beginning. Starting this blog has been a great experience and I am looking forward to continuing it into the future.

Top posts

March 29, 2007 by Derek Kivi

I have added a widget showing my top posts to the sidebar. I always prefer it when other weblogs show their top posts so I can quickly see what the best posts on a weblog are.

Blogging goal

March 28, 2007 by Derek Kivi

In this post at The Simple Dollar weblog, it suggests to set a goal of increasing site visitors by a certain percentage every month for the first year or two. I am going to try and follow that goal for myself, and on March 31 I am going to track how many hits I have received and attempt to grow that number by 35% per month for the next year.

I have currently received about 400 views so far so if I am able to accomplish that, I should have about 15,000 views per month in about one year’s time. I will update my progress from time to time over the year to see how it’s going.