Tuesday, April 06, 2010

Inspiron 1464 Mini Review

Since my laptop, an HP Pavilion DV6000, is on the verge of dying, I
decided to buy a replacement. A Macbook was what I looked at first but
it is too expensive for me. Besides, I work mostly on Windows and
Linux. The next choice was a Thinkpad T400. Mixed reviews of the model
sold in India and the expensive price tag even without the Windows tax
left me searching for alternatives. Then I received a nice deal from
Dell for the new Inspiron model 1464 and I bought it. A fast machine
at a much lower price.

Last week I received my new laptop and here are my initial
impressions. Note that this is by no means a proper review. The focus
is on things that are either essentials or major annoyances on my
previous laptop.

The model is a 14" laptop powered by a Core i5 430M with 3G of RAM and
a 320GB SATA HDD running at 7200 RPM. The build is decent for a
low-end laptop. The design is similar to the newer Vostro models and
also borrws a few things from the Studio line.

The keyboard is decent with fullsize keys and with a rounded bevel on
the keycaps. The travel is just a bit on the shorter side. The tactile
feedback is pretty decent. I think it uses one of those "scissor"
switches. I typed on it for a while and could detect no flex unlike my
previous laptop where there was a lot of flex at the center. While the
keyboard is good, the layout of the keys is where Dell screwed up
badly. Firstly, the right shift key is smaller and not aligned with
the enter key. To hit the right shift key with my right pinky I'll
have to curl my other fingers and this can be painful when done
frequently. The bigger screwup is the arrangement of the function
keys. The function keys are swapped with the hardware control keys!!!
and require an Fn keypress. This is simply ridiculous. The function
keys are also off as there is an additional key to toggle the
touchpad. Sigh.

The touchpad is a nice one with a large surface area and has a matte
texture that adds a nice feel. The touchpad buttons are firm and
provide a good feedback when pressed. The right edge of the touchpad
can be used as a scroll area as well.

The display is 14" across with a native resolution of 1366x768 which
is pretty basic considering other laptops offer much higher
resolutions (eg: the similarly priced Travelmate gives you 1280x800
for a 12" display). The display is bright with upto 15 levels of
brightness adjustments which is quite good. The display is housed on a
bevelled screen with firm hinges that is bridged with the main body
and can tilt upto 120-135 degrees easily. The screen does not wobble
when typing fast.

Performance seems to be quite good but then every laptop that I've
touched since my HP Pavilion seems to run faster :). The machine comes
bundled with 64bit Windows 7 Home Premium. I managed to get rid of
800MB of stuff from "Program Files". Never understood why these
programs are installed in the first place.

Windows 7 - the taskbar is an improvement. However Aero as an
interface theme simply sucks. Nimbus, Nodoka, Clearlooks are all so
much better.  The window manager animations stutter sometimes and it
is not a pretty sight. I guess the cheap GMA 4500 HD video card is the
culprit. But then I won't be needing fancy animations so I'll turn
those things off. Good to see the disk management tool being able to
resize the partition(s) as otherwise it would have taken much longer
to do it with gparted.

Compiling software is a good test for measuring overall performance. A
full debug build of wxWidgets-trunk (make -j4) using GCC was completed
in 11 minutes (approx) with all the cores 100% most of the time and
running on battery. This is pretty good as my quad-core desktop gets
the same thing done in 7 minutes (approx). This will perhaps be the
most resource intensive thing I'll be doing on this machine so I'm
happy with the performance that I got.

The laptop comes with a 6-cell battery which lasted for roughly 2.5
hours under a typical workload with wireless on most of the time and
normal screen brightness. In comparison, the HP Pavilion's 6-cell
battery gave at most 35 minutes. I had replace it with a 10-cell one
last last year and I get about 2-2.5 hours. Something is definitely
wrong with that machine. My experience with HP's support was quite
bad.

There is one area of concern: the fan seems to be on all the time even
when the machine is idle. Need to contact the support people and get
this sorted out. I hope that the experience won't be as bad as it was
the last time I called the customer support.

Sunday, August 02, 2009

Ask Mr Make

Ask Mr Make is a tips and tricks column on build systems with an
emphasis on GNU make. The wealth of information provided by these
articles apply directly to real world problems, something that the
manual does not do. Also, there are fun articles like solving the
Tower of Hanoi problem using make that demonstrate the extent to
which make can be (ab)used. Highly recommended if you are the kind
of person who writes makefiles by hand.

Thursday, July 16, 2009

s/screen/tmux

I've replaced GNU Screen with tmux as my preferred terminal
multiplexer. The main reason is that the defaults are better in tmux
and I don't have to worry about setting up a config file. For
example, with screen, I need a (rather simple) configuration file
to get the status line that I get with tmux by default. I also like
Ctrl-b better than Ctrl-a used by screen as Ctrl-a is a heavily
used key combination (emacs, terminals with emacs-like line editing
etc).

tmux seems to use less memory than screen and for me this is be a big
plus as there is very little RAM left on my VPSs when running the
various fastcgi and squeak processes.

The code for tmux is arguably better than that of screen and it is
under a BSD license. Recently it was imported into the Open BSD
base system. This is what Theo had to say about the software:
The most impressive thing about tmux, in my view, is how
frustrating the code audit was. In 2 hours, I found only one
or two nits that had very minor security consequences. It was
not accepted into the tree based on license alone. It is high
quality code.
Here's an interview with the author of tmux:

Sunday, July 12, 2009

s/GCC/Clang

I've been using Clang as a drop-in replacement for GCC for compiling C
code and so far it has been pretty good. While I did not see any
drastic increase in performance of the generated code, the compile
times have come down considerably. For example, compiling a fresh tree
of the latest emacs pretest took 1m55s using GCC on my quad-core
box. The same test with Clang took just over a minute. Other things
that I've built using Clang that are working well without any problems
include: GNU Smalltalk, cmus, tmux and a whole bunch of stuff.

Clang is a C/C++ and Objective-C frontend for the LLVM "compiler
infrastructure". As of now, the C and Objective-C frontends have
reached production quality on x86 and x86-64. The C++ frontend is no
way near completion and is not expected to be complete in the near
future.

Apart from the compilation speed one other feature that is in favour
of Clang is the shockingly expressive diagnostics. Along with the
message, the exact code fragment that is causing the problem is also
shown. If the C++ frontend is able to provide this feature and I'm
sure it will as it is a fundamental goal, this feature alone is going
to propel the adoption of Clang. GCC sure does have its place thanks
to the support of other languages like Ada, Fortran, Java, Pascal
etc. However Clang improving at this rate is surely going to supplant
GCC atleast on the primary hardware platforms. The BSDs in particular
are quite keen on replacing GCC as is evident from the funding of the
development of the Portable C compiler. With Clang already compiling
the kernel source and 99% of the userland, FreeBSD is seriously
considering replacing GCC with Clang in the base system. I think it is
just a matter of time.

An excellent intro to Clang can be found here:

Clang features can be found here: http://clang.llvm.org/features.html

Instructions for building Clang can be found in the Clang Getting Started
page. In addition to the instructions given there, I added
--enable-optimized to the configure script when building llvm to avoid
building the debug versions as they tend to take up a lot of disk
space.

Building programs with Clang is easy. It comes with a gcc compatible
driver called "clang" so all you need to do is to make sure
llvm/Release/bin is in PATH and run configure as

CC=clang ./configure

LinuxMint 7 "Gloria"

It's been six months and time for change. I’ve switched from OpenSuSE
11.1 to Linux Mint 7. Prior to that I was running ArchLinux for a year
and it was a solid distribution with a fantastic package manager. But
after Chip Magazine came out with the 11.1 DVD I wanted to try out
OpenSuSE 11.1. OpenSuSE, overall, has been mostly stable for me and I
loved the artwork. While things like package upgrades were efficient
through the use of binary (x)deltas, the package manager itself drove
me nuts. It was way too slow on my not-so-fast connection. Over the
course of six months, I had to install a few packages from the build
service which prompted me to add a few additional repositories. Now
everytime the package manager was launched it tried to refresh the
package list. While I understand the reasons it simply was
annoying. Sometimes the refreshing would simply hang. So everytime I
had to hit Skip Refresh after launching the package manager and the
whole exercise was irritating.

Another reason was the PulseAudio sound system. This caused the
biggest pain and I din't manage to resolve the problem. Sound input
never worked and the output volume was too low. To add to the misery,
I had a skype meeting and the webcam was not working. While the camera
was picked up the device /dev/video0 had permission issues. I'm sure
these things can be fixed after enough googling but I simply didn't
have the patience for it. I had issues running virtual machines under
KVM.

Finally, my / partition had grown to 80% of its size which is a signal
that enough cruft has accumulated on my system and that usually is
when I switch to another distro :)

I had been watching the progress of Linux Mint and when 7 came out I
decided to switch. Thanks to its Ubuntu base, installation was a
breeze and post-install, I didn't have to hunt for codecs as the
installed mplayer played most of the videos I threw at it. Artwork is
as good as OpenSuSE's and even the menu was very similar. The
"mint-green on dark" theme looks very nice and overall it's a lovely
green desktop.

The package manager (mintInstall) has a list of "featured"
applications for things like Adobe Reader (stay away from it!), Skype,
VLC, Audacity etc. Handy.

Audio is still controlled by PulseAudio but on Mint7 there was a
control panel to control it and I was able to adjust the output to an
audible level. Sound input is still not working. Skype picked up the
webcam and that is a relief.

Overall, I really like the system. Boots fast, plenty of packages
thanks to Ubuntu and Debian underneath, nice green desktop, KVM
virtual machines not complaining. Happy!

Saturday, July 11, 2009

9x18

I was looking for a bigger font for my terminals as 6x13 was starting
to look too small on my display. For terminals, I prefer the crisp and
sharp appearance of bitmap fonts although Envy Code R is not bad at
all. Ctrl-Rightclicking on XTerm gives you a menu where you can select
a large font which turns out to be 9x18.

Originally part of the ucs-fonts package, the font got merged into
core X distribution. This is what the website says about the font:

9x18 is an improved version of 9x15 that has more space above and
below the base characters to increase readability and to allow
overstriking combining characters to work properly.

Indeed, the font is nice and tall (although some may say spindly) with
a good inter-line spacing making it a good choice for terminals. Also
the font has a good coverage of characters. For example, it includes
all mathematical symbols, smiley and even chess pieces (terminal based
FEN viewer anyone?)

-Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 is the
actual XLFD 9x18 is aliased to but on my machines (Ubuntu and
OpenSuSE), the fonts.alias file did not have the entries so I had to add
them manually.

Versions of -misc-fixed family are also available for Windows. My cmd.exe
windows use 6x13 giving me plenty of lines of clear text.

Monday, July 06, 2009

...

For the last two weeks, I've been down with chicken pox. While the first
10 days were pretty bad things are improving as I'm finally off of curd
rice and raw onions and slowly getting back to eating some tasty food.

This little period of rest is a god-send for me as I was getting worked
up at work and an ever piling reading list adding to the irritation. The
last few days, apart from reading, the tool seeker in me has found some
really cool tools and when you start dreaming of use cases for these
cool toys and tools, the pain and the irritation just vanish. Hopefully,
I shall blog about them here this week as I'll be quarantined for atleast
another week.

Tuesday, March 17, 2009

LyX, LaTeX and books...

I'm typesetting a book for a friend. Initially I had to decide between LaTeX and ConTeXt. Although LaTeX had a WYSIWYM editor in LyX I've always liked ConTeXt for its perceived completeness (their documentation always looked better than the rest) but I haven't touched it since 2002 when I last used it for preparing reports for college. However after checking out LyX 1.61 the choice was easy. LyX has come a long way since the early versions that used the XForms toolkit.

As for the document class to use for the book the popular choices seemed to be KOMA-Script and Memoir. I almost selected KOMA-Script when at the last moment decided to take a look the Memoir documentation and I was pleasantly shocked! The documentation for the memoir class is simply brilliant! (and beautifully typeset too!). It is not only a class documentation but also a complete introduction to typesetting. I'd say it is mandatory reading for any novice getting into typsetting. Google for memman.pdf and give it a good reading.

I ended up using LyX with minimal ERT needed to customize the memoir document class.

Here's an article that presents a good overview on designing a book with LyX:

http://www.linux.com/feature/56471

Also a good set of tips was picked up from
http://www.markschenk.com/tensegrity/latexexplanation.html

For preparing bibliographies, JabRef is a nice utiility for managing your BibTeX databases.

I haven't really looked at indexing options but the book is mainly an internal monograph so the index can be omitted.