Sunday, March 27, 2011

Ubuntu 10.10 on Lenovo ThinkPad T410

Just bought a laptop for my new job. Due to requirements of the job, Linux and Mac OS were the two top options. I went with Linux and, as hardware compatibility might get tricky, chose Lenovo as I've always had good experience with ThinkPad Linux compatibility.

The model is T410 with discrete Nvidia graphics and fingerprint reader. So what I had to do to get everything working?

  1. Installed Ubuntu 10.10 x64 and all updates.
  2. Enabled proprietary drivers.
  3. Brightness controls (Fn+Home/End) did not work out of the box. Followed this to fix them.
  4. Fingerprint reader required additional setup, followed instructions over there.
  5. Hard drive shock protection: sudo apt-get install hdapsd. Instructions here.
As you can see, not that many steps by Linux standards.

Update 2011-03-29: hibernate broke with various ACPI errors in the logs. Fixed by sudo add-apt-repository ppa:ubuntu-x-swat/x-updates and then updating the system. This upgraded Nvidia drivers from 269.04 to 270.29 (beta!). As a bonus, it also made to disappear zillions of NVRAM invalid context switch messages from the logs.

Update 2011-05-04: the battery indicator sometimes loses its mind (shows 0% and 5 hours remaining battery, disappears completely, etc.) Besides not knowing how much battery left when it disappears, this is mostly harmless.

Ubuntu 11.04: I'm not upgrading just yet because of this, this, and also because I have not reviewed the additional PPAs I use for 11.04 binaries. Also please review the other bugs in release notes to see if they apply to you.

Update 2011-07-18: the X started to crash at every startup with the nvidia driver being the culprit. The workaround is sudo apt-get remove binutils-gold; sudo dpkg-reconfigure nvidia-current. And no, I don't think that it is the gold linker that is faulty here...

Excellent article on the DOs and DON'Ts of Summer of Code

A very good article over at Open Source at Google blog.

Tuesday, January 18, 2011

Spindle Search Screenshots

Here are some screenshots of the latest Spindle Search release.

The window for selecting the drive to index:
The window for entering title and other information for the selected drive:

The selected drive is being indexed:

Finally, Google Desktop search result indicating where the file is located:

Wednesday, December 15, 2010

Interview on Google Summer of Code

Shahzad Saeed is doing a series of posts on GSoC offering advice for those who consider participating in the program in 2011. (Note: it has not been officially announced yet).

In one of the posts he interviews me, where we discuss the necessary background, skills, etc. for a successful SoC participant. If you find this interesting, go and read it over at Shahzad's blog!

Monday, November 29, 2010

Indexing removable media with Google Desktop

A bit over a year ago I took over maintainership of two open source software packages, which I have been using for a few years before:

  • Spindle Search. It integrates with Google Desktop to provide indexing and search over removable media: you type a (part of) file name and it says which of your DVD-Rs (or USB keys etc.) the file sits on. Very useful once you have burnt 10+ DVD-R with large file collections on them.
  • .NET Wrappers for Google Desktop. It is a supporting library for Spindle Search providing a mappings from Google Desktop API, exposed through COM, to .NET.
Today I have made new releases of both these packages.

Thanks to Manas Tungare, original maintainer of both Spindle Search and Wrappers, for creating them in the first place and trusting me to continue to maintain them, and to beta testers of Spindle Search who have been very, very helpful!

Tuesday, October 16, 2007

Summer of Code: Conclusion

(Summer comes)

Originally I have planned to write a "things not to do" post, but now I've dropped the idea. Positive advice is better than negative one, and people that do those things are not going to read it anyway.

So let's conclude Summer of Code posts. If I had to sum up everything with one word, it'd be "communicate."

This blog is going to take a break, until I get a new idea what to blog about. That might be my Ph.D. topic – efficient spatial indexing. Or something else.

Good luck with your applications!

Sunday, October 14, 2007

Summer of Code: Summer comes

(CV and qualifications in the application)

So the application is completed and submitted and, a few weeks later, the acceptance notification day comes. Then one of two things happens: either your application was rejected, either it was accepted.

It it was rejected, do not let these news sadden you too much. The positive thing you are carrying away from all this effort is the practice in writing technical project applications. This is a very useful skill and makes you much better prepared for the next such contest.

If it was accepted, congratulations; now get busy with the project! Some advice for the summer:

  • So this is your full-time job now, just with very flexible hours. See [4] for an example of time commitment requirement.
  • Communicate with your project. Hard to overstate, hard, although possible, to overdo. In particular, do not write to mentor only when it's more appropriate to write to the mailing list – most of the technical questions should go there.
  • Communicate with your mentor, especially if something went wrong or you have doubts about the project:
    • If you feel that project scope is too big.
    • If you think that the project deliverables need to be adjusted.
    • If you experience some strange difficulties involving the organization, for example, if getting source code repository access takes ages.
    • If you feel that discussions with other project developers are unproductive in some, maybe even bad, way.
    • Don't be afraid to do so. Remember that your mentor wants you to succeed and will do what he can to help you.
  • Check-in code often to your branch. It's much better to post small incremental patches than to work silently for two months and then de-lurk with one big code change. In addition to the usual source code version control advantages, the organization will see your progress and you will get feedback earlier - when you actually can act on it.
  • Do not expect to follow your project plan to the letter. It is almost guaranteed that things will change. When you see it coming, discuss the necessary change with your mentor and make it. Repeat as needed. Do not stick to the original plan just for plan's sake.
That's almost it! Conclusion next.

Tuesday, October 02, 2007

Summer of Code: CV and qualifications in your application

(Writing the application)

An important part of the application is the one where you talk about yourself instead of your proposal. Here your goal is to show that you are actually able to do what you promise to do.

  • If you do not have previous experience with the project codebase, suggesting that you will "work really hard" or that the feature "will be totally awesome!" might not cut it [1]. In such case playing with the code (see above) is important.
  • In similar spirit, "I use this application every day!" is not enough, especially if the application in question is a very popular one, (e.g. Firefox) [1]. There is nothing wrong with stating that, but make sure that this is not your only qualification.
  • Good personal references/recommendations help.
  • Previous projects help, especially in the related area.
  • Do not copy paste your CV from some other application if you fail to tailor it for the one you are applying for [1].
  • Be prepared to back your experience claims in CV with specific examples and descriptions, for example, of the projects done.
  • Needless to say, lying and padding is bad.
Yet your effort to write the application is ultimately more important than your CV. If you have limited time and have to choose between gathering personal references and spending time on a technical part of the application, choose the latter.

Next: summer comes.