個人檔案Stefan Rusek部落格清單 工具 說明
2008/4/19

I've moved

This blog has moved to

http://rusek.org/stefan/

2008/2/27

Aneta is Blogging

Aneta has started blogging, you should check it out. She has some awesome photos and interesting things to say.

http://www.anetarusek.com/

Go and comment!

2007/12/2

After much work we finally did it

Last night and today, Aneta and I have been holding an A-Team marathon, and the thing I've been wondering about for a while has finally happened. It took us a long time but we finally did it. We ran out of minute on NetFlix Instant Watching. I have continuously been amazed at the dvd quality streaming that those great guys at NetFlix have been able to pull off. If you've been putting off getting a NetFlix membership you should do it right now. We love it! (I don't even get anything if you sign up, and I still think you should do it.)

limit

2007/10/19

Our garden is in bloom again

I took this at the Brooklyn Botanic Garden in September 2007.

This morning I noticed that the plants in the garden in front of our apartment have started blooming again. Aneta and I had thought they were done and so we stopped watering them. Well it turns out that global warming has its perks. (Though I doubt that having an extra month of flowers it really such a great trade-off of global warming.) One of the bushier plants that Aneta planted mid-summer has started blooming. I didn't realize that it was flowering at all, and it has lovely purple flowers.

2007/10/14

Niagara Falls

Last weekend (Oct 4 through Oct 8), Aneta and I took a trip to Niagara Falls. The falls were great. Aneta took some great pictures. We saw them from high up and from low down, from the US and from Canada, early in the morning and late at night.

Me and Aneta Chill'n by the Falls on the US Side  

I love watching Aneta take photos. She does such a great job.

People are generally right when they say that the falls look better from the Canadian side and there are plenty of great things about the Canadian side. The best thing is of course the view of the falls, and the absolutely best place to see the falls from is the top of the Skylon Tower (I kept accidentally calling it the Canada 311 (2) Cylon Tower, which I probably would have done even if I hadn't watched Battlestar, but since I have I would then think "It looks nothing like a cylon.") We had lunch up at the top. It was a lot of fun and we had a great view. At the bottom of the tower, there is an arcade. Aneta and I played a couple rounds of air hockey, which is always fun. The highlight of our play was the round of Daytona USA that we played (in Canada). The game is over ten years old and it is amazing to me that it is still around. After a close race, Aneta pulled ahead and smoked me.

2007/9/28

First Post

Since my last post, Aneta and I have lived in New York for about 1 year and 10 months. I work at Fog Creek Software, and it is as great a place to work as you might get the impression it is from reading things on the internet. Aneta just started her fourth semester at New York University. Maybe she will write about her opinion of NYU. We have two cats. Lusia has been with us for about a year and a half. She is about 2 and a half years old. Escupito is our new adoptee. He used to be a indoor/outdoor Tennessee cat, but now he is a happy little city kitty.

I am very lucky. I have a sexy wife, a great job, 2 wonderful cats, a few fantastic friends, and live in a beautiful apartment.

2006/1/31

Rusek Home Videos

I realize that this may not be of interest to every person in the world, but some of you have been waiting your whole lives to see the videos on this page.
2006/1/30

Windows Live Messenger First Impression

So far I am pretty annoyed with WLM! I don’t have any invites so I can’t try any of the new features out, GRRR!

-- Stefan Rusek

2005/12/23

Graduation

Here I am graduating.

Pounding the Pavement

I am so glad that the subway are running again. We went apartment shopping yesterday and today. Each day we walked well over 100 blocks. We have found one that we really like. It is only 3 times what we were paying in TN. (I know you're thinking 3x is a lot, but we were expecting 4x.) The appartment we found is also about twice the square feet of our apartment in TN. The only problem is that we wanted to apply today, but we can't so the application is sitting on my desk here in the hotel.
2005/12/13

w.bloggar test

Ok, so I've not used it much in the past, but I does integratewith RSS bandit so I hope to use it more in the future. -- Stefan Rusek
2005/12/9

Move'n to the city gonna me a lot of peaches

After a long time, I am finally graduating from college. I am finishing up with a BS in Physics and Computer Science. I am graduating on December 17, 2005 at 2:00pm. You are invited to come, and we can all get together afterwards. Email me for more info if you would like to come.

 

Additionally, Aneta has applied for admission to New York University and has been accepted for this spring. She will continue to study Biology (Premed) and Music. I am super proud of her and excited for her.

 

I have accepted a job working for Fog Creek Software (http://www.fogcreek.com/). They are located in New York as well, so we will be moving to New York real soon.


-- Stefan Rusek

2005/12/5

Claiming my blog as my own

Technorati Profile

The above link does something, but I am not sure exactly what it does. I am setting up my account on Technorati, and in order to claim my blog I have to put that link in an entry. So click the link! Click it! CLICK IT!


-- Stefan Rusek

2005/12/4

Firefox

Recently I decided to give Firefox another try. Last time I used it, it was at version 0.9 and I didn’t like it at all. 1.5 is the first version that I can use and not feel annoyed all the time. There are of course things that I don’t like about it, and I still use IE from time to time. Firefox with IETab and IEView really makes this easy.

 

I am a big fan of software usability testing. I am not at the point in my career where I can run large scale usability testing on my software, but I have discovered a really useful way to gauge a piece of software. There are three levels usability: Stefan level, Aneta level, my mom level. The first level is so basic it usually doesn’t get mentioned. If I can use a program or the UI is too annoying for me to continue using, it doesn’t get any more thought. A good example of software like this is Vim and Emacs, most readers won’t have heard of these two programs for good reason. I actually use Vim as my primary editor on UNIX-like operating systems, but that doesn’t mean that it was a lot of work to get to the point where I can do all kinds of crazy stuff with it. Neither program is unusable, but neither is acceptable for general usage.

 

The second level is often referred to as the Aneta Test. My wife is very intelligent, and I am so proud of her. She can do lots of task on the computer that many other people just can’t. Very little software exists that gets past the Stefan level that she can’t use, but in order to pass the Aneta Test an application must be something that does not drive her nuts trying to use it. Some examples that pass the Aneta Test are the Windows XP installation and FogCreek Software’s CityDesk application (she just recently tried it and it works well for her).

 

The third level is often referred to as the My Mother Test (MMT). My mom only recently got to the point where she isn’t constantly frustrated by computers with the advent of Windows XP. It is the first OS to pass this test. Other software that passes this test is Microsoft Office.

 

I mention all of this because Aneta was using my computer yesterday, and in less than five minutes she had found 2 things in FireFox that make it unusable for her. And it will probably take them another 5 years to pass the MMT.

-- Stefan Rusek

2005/11/11

Books I've read in the past year

I got this idea from this blog over on the Monologue.

 

Quick! Write down the books you can remember reading in 2005! (Try to avoid outside sources, and don't look at your bookshelf.)

 

Here I go.

 

.Net Framework Design by Brad Abrams and Krzysztof Cwalina

Essential .Net by Don Box

Joel on Software by Joel Spolsky

The Best Software Writing edited by Joel Spolsky

Our Mutual Friend by Charles Dickens (Audible)

The Time Traveler’s Wife by Audrey <Something> (Audible)

Minority Report and Other Short Stories by Philip K Dick (Audible)

Enders Game by Orson Scott Card (Audible)

Hitchhikers Guide to the Galaxy by Douglas Adams (reread it)

Functions, Sets, and Logic by <Somebody>

 

That is all I can think of at the moment. I am sure I could add some more if I looked on my bookshelf some.

 

--Stefan

 

 

2005/11/10

The most wonderful girl I know!

Today, my wife, Aneta, was kind enough to make me some soup and bring it to me at work today. Usually I make peanut butter and banana or jelly sandwiches, but today I’ve felt sick since early this morning (3:30am) and couldn’t bring myself to make sandwiches before work. I work 3:00pm to 9:20pm on Tuesdays and Thursdays, and so I miss out on eating a good meal at home, but I am lucky enough to have an Aneta. She sometimes brings me a special meal to eat at work.

 

--Stefan

 

2005/11/8

Star Wars I-VI


Blogging about:

Star Wars: Episodes I-VI
The greatest postmodern art film ever.
By Aidan Wasley


This is an amazing literary analysis of the Star Wars double trilogy.

--Stefan

2005/11/4

Google Print - First Impressions

I saw on Slashdot this morning that Google had opened their print website. So, I went over there and searched for my favorite author, Charles Dickens. Everything Dickens ever wrote is in the public domain, so I should have been able to find and read everything he ever wrote on Google Print. This, however, was not the case. Since all the books Google scanned by Dickens were published between 1990 and 2005, they seem to think that the material is copyrighted and can't be viewed. I find this pretty annoying.

The irony of the situation is that the material created by the publisher: the table of contents, the index, and the introduction about the book, are all viewable from Google Print. This means that the only parts of the book I can't see are the parts that are in the public domain, and all of the material the publisher owns a copyright for is available via Google Print.

-- Stefan

2005/11/2

On Teams

In many areas if life and work, we are required to work together on teams. Not having played organized sports in a long time, my main experiences with teams over the last few years have been for work and for school. I’ve had more team/group activities for school. Sometime in high school, I started thinking about group activities in class. Being a rather detail-oriented and intelligent person, I really hated group work at the time, because I knew no one in my group was going to do as good a job as I wanted, so I often did most of the work. This meant that I worked more than I should have and the others in the group got a good grade for doing nothing. This kind of situation will really cause you start to think, unfortunately I didn’t get far enough mentally to find the solution at the time. It was a couple years later, when I got my first programming job in college. My work supervisor, Brian Willard, was a fantastic mentor for me and we met at the perfect time for my development. While working with him, I learned tons about the software development process and about working with other people, and he was able to give me direction I needed to really improve.

 

One thing in particular that I noticed about how he worked with me was that many times I would be tasked with something that I knew little about. If Brian had been required to do the task, he would have done 100 times better than me (especially at first). But I would come to him with what I had and he would give me lit bits of advice or ask me questions about the result, and through this process the quality of my work improved by leaps and bounds. The important point about all of this was that he entrusted me with a task he knew I could do, but he also knew I had no experience doing it. Over time he was able to entrust more to me, knowing that I would do a great job. Now you could credit my ability to learn and use new skills, and this is to some extent correct, but if Brian had not worked to lead me in the right direction and given me the opportunities he did, then I would not be as far along.

 

You might be wondering how this all fits into teamwork. As time went by, Brian was less often the leader of the projects I worked on, and I was more often in charge of the project or working very closely with the lead. Then I started to think about how Brian worked with me and how I could use it to work more efficiently. (I also read some really good material about working with groups and leadership.) During this time, I was voted to be the leader of a team of 5 for compiler class. When this team was formed the compiler was 1/3 finished, semantic analysis and code generation still needed to be written. The first thing I did was to choose the guy, Olin, I knew could do the best job (even though I am unaware of any previous experience in the area) to lead out a sub-team. I then met with Olin and asked him which of the remaining two parts he was most interested in. I put Olin in charge of code generation, and gave him two of the other team members to be his reports. I gave myself one report and my sub-team worked on semantic analysis. I tried to use Brian Willard techniques to share the work and help guide my teammate and Olin into doing a great job. With my teammate, I shared the work pretty evenly and even though not everything was done exactly the way I thought it ought to be done, it was done well. With Olin, I met periodically and we talked about any issues he wanted to talk about and we solved a lot of issues at a very high-level. I never met with his reports directly and never tried to tell him how he ought to task them. He did fine and his results were fantastic. (I will add that to this day I have not looked at his team’s code for more than a few seconds, because there is no need to second guess his work.)

 

The moral to all of this is that in order to be a good team member you have to decide to trust your teammates. It is not a matter of having your teammates prove themselves to you (though they will with time), but you have to show them that you trust them to do a good job. This means that you have to let them think on their own and develop ideas and your job is to encourage and guide.

 

This was all brought painfully to my mind this semester, because I am taking beginning soccer. I would never hire anyone in my soccer class except maybe one or so of them. The simple reason is that they demonstrate that they do not understand that a team must work together and that a team is more than just the most skilled or best person on the team. A team is about choosing to trust even the most unskilled member to do his or her job.

 

--Stefan

2005/10/24

Managed Sqlite

Last week I thought it would be interesting to try to compile Sqlite in Managed C++. That way I could have a completely managed sqlite provider, instead of having to have a managed wrapper for it. In the process, I discovered that it was going to be more work, than I wanted to put into it right now.

 

However, I did notice a place were efficiency could be improved in sqlite. It treats the sqlite database file, as a sequence of fixed size pages. It tracks dirty pages, caches them, reads and writes them to the file. Because of the block nature of the database, Windows IO, and Windows VMS, the sqlite db engine really ought to use memory mapped files. The OS’s own disk IO system is mapping the files and copying them into the buffers used for reading and writing, so the files is getting mapped anyway.

 

Sqlite already has a very small memory footprint, but by using memory mapped files, the memory would be further reduced. Since Windows already has the db file mapped, many of the page buffers would no longer have to be allocated. In multiple processes where sqlite is running, if the same pages are mapped, then those buffers are shared by the OS, so even less memory would be used.

 

Another issue that Rico Mariani has routinely brought up in his own blog, is that often it is better not cache data because if the data gets paged to disk (which is likely in a paging OS like Windows or Linux), then bringing that page back from the page file is as time consuming as rereading it from the db file. So if you have a dirty page in the cache and it had been paged out, then to write it to the db file, the OS is reading it from the page file into memory and then writing it back to the disk. With memory mapped files, when the OS pages out that dirty page, it is automatically written where it belongs.

 

Another advantage of using memory mapped files is that you can do page level locking instead of db level locking. Sqlite currently only supports db level locking which could severely inhibit its scalability. With page locking, reads and write could occur at the same time in differently pages, or even multiple writes at the same time could be achieved if the writes were in different pages.

 

--Stefan