The iPhone 4S announcement

Iphone 4

Well, Apple made their iPhone 4S announcement today, and apparently a good many people are less than impressed.

The main complaints I’ve seen so far are:

Same design as the iPhone 4.  This seems to be a form of misplaced status anxiety.  I’ve seen no specific complaints about the iPhone 4 design.  Only a desire for something ‘new’ and ‘shiny’.

Screen is still ‘only’ 3.5″. The assumption seems to be that a bigger screen is automatically a better screen.  From the perspective of pocketability and battery life, that’s not true.  A larger screen would make some things easier, but there would clearly be tradeoffs.

Continue reading

AT&T Wireless Woes

I finally got my housing assignment from the university last week (I was waitlisted).  Pretty nice place if I do say so myself.

Only one problem: I don’t get any cellular reception in the apartment.  I’m not talking about having 1 or 2 bars and suffering dropped calls.  I’m talking about no reception whatsoever.  Oh sure, if I open a window and lean out at the right time of day, I might get 1 bar.  On a good day.  If I’m lucky.  Other than that I get nothing.

My first instinct was to blame AT&T.  After all, it’s AT&T that had a huge dead zone in the middle of campus at my last school, and it’s AT&T that offered almost no coverage at home back in California.

Apparently, my instincts are correct.  My roommate, who also has AT&T, has the same problem.  My neighbor, who has Verizon, has no problem at all.

So naturally, I called AT&T to complain.  Their suggestion, after I had spent a nice chunk of the afternoon on hold, was to purchase a ‘MicroCell tower’.  This device which attaches to your internet connection, acts as a cell-phone booster and re-routes cellular communications over your network.

Here’s the problem: I’m already paying AT&T monthly (~$65) for service.  Now they want me to pay $60 in addition, just so I can use the service I’m already paying for?

Thanks, but no thanks.  Goodbye AT&T.  Somehow, I don’t think I’m going to miss you.

I’d rather not be the product

Google adwords

Google is one of the great success stories of the last decade.  The explosion of the internet has left them at the center of the one sector of the economy that seems to have a future.  In addition to producing Google search, they are one of the companies that is putting significant resources into research that may not have immediate applications.  They’re also from what my friends tell me a fun and exciting place to work.

The thing that surprised most people about Google’s services early on is that they’re free.  Or rather, that’s how it seems to us.  We get to access great resources day in and day out without spending a penny.  Seems like a good deal.

Continue reading

MacOS X 10.7 Lion – some comments

Lion

I’ve used Macs since about 1992, and I’ve probably at one point or another tried every major release of an Apple operating system, including such lesser-known items as A/UX and Rhapsody (RIP).

My favorite release for a long time has been OS X 10.3 (a.k.a. Panther), which served as my primary OS for 3 years on a PowerBook G4 during my time at Stanford.  Aside from the cool codename, I liked Panther primarily because it fixed almost all the major problems with the previous releases, sped up performance, and otherwise kept out of the way.  Sure, it was easy on the eyes, but it didn’t have the huge amounts of marginally useful eye-candy that became the norm around the time Windows Vista and OS X 10.4 came out.

Continue reading

The Trouble with Small Cameras

Cameras

I’ve had an Olympus XZ-1 for almost half a year now as my ‘carry-everywhere’ pocket camera.  By most folks’ standards, it’s a large ‘compact’ camera.  Compared to my Nikon D700 SLR though, it’s a decidedly more travel-friendly companion.  In fact, when I went to England in June, I took both cameras, and ended up actually using the Olympus more, largely due to the convenience (when it rained, it was easy to quickly stick the XZ-1 in a waterproof plastic bag in m pocket, unlike the D700).

The usual knock on compact cameras is that the image quality, particularly when the light levels drop, don’t match up to their larger brethren.  There’s a fairly simple explanation for this: the sensor in your average high-end digital compact is less than 40mm^2.  The size of the sensor in your average DSLR is 350mm^2.  Since the sensor’s purpose is to gather and record light, the smaller sensor records less light, and the less light you record, the less information your image has.  In reality, things are a bit more complicated, but that’s the basic idea.

Continue reading

2011 MacBook Air – a (fairly) brief review

Thin is in

My beloved ThinkPad X61 stopped working reliably over the summer.  The AC adapter broke in England, to be partially resurrected through the creative use of a q-tip and some tape (wiring out of the brick had frayed).  The fan was already semi-nonfunctional, leading to the occasional heat-induced spontaneous hibernation.  When the screen started displaying random pixel noise after every 3 or 4 reboots, it seemed like a good time to look for a replacement.

The obvious choice was a MacBook Air.  Like the ThinkPad, it was a thin, light machine.  Unlike the ThinkPad, it did not saddle me with Windows (or no battery life, if I used Linux).  The main drawbacks seemed to be the lack of expandability (my ThinkPad had a dock with just about every port a person could want) and the slowish low voltage processor.  When Apple updated the Air in July to the newer Sandy Bridge CPU, I jumped and ordered the least expensive 13″ model.

Continue reading

Installing Android x86 in a virtual machine

Ever wanted to play around with Android, without actually buying an Android phone? Thanks to the Android x86 project you can. While Google only officially supports the ARM platform, a group of volunteers has ported it to x86. What’s more, it runs more or less seamlessly inside a virtual machine, so there’s no danger of accidentally messing up your main system.

The process is pretty straightforward.

android.jpg

Continue reading

C – not a good starting language

In most computer science programs, the first course in the sequence is a basic programming course. Usually, this course introduces the standard concepts, along with one of the more common programming language. And at least from what I’ve seen, that language is usually C.

From what I’ve seen in the classes I’ve taken, and particularly from what I’ve seen tutoring at the college this quarter, this is a mistake. Don’t get me wrong, C is a great programming language. I learned on it. I like it. I use it regularly. But as a first programming language for beginning students it leaves a lot to be desired.

Continue reading

Compile time, over time

I’ve been getting the impression for a while that the GCC C Compiler has been getting slower over time at compiling. To check whether this was in fact true, I timed building a popular software package (emacs) with each major version of the compiler that I could get ahold of. I also added in a few other compilers, for reference.

For the benchmark, I built the temacs part of the GNU emacs distribution (version 22.3). System used is a 1.6GHZ AMD Sempron, 512MB RAM, running Fedora 13.

The compilers used were:

  • gcc – The GNU C Compiler – the standard system compiler on virtually all Linux distributions.
  • llvm – Low-Level Virtual Machine – a new(ish) compiler being developed by Apple and the University of Illinois. It uses the new clang front-end.
  • icc – The Intel C++ Compiler – Intel’s own compiler, known for aggressive optimizations.
  • pcc – The Portable C Compiler – a modernized version of the original BSD Unix system compiler.

Continue reading

Using distcc to speed up Linux builds

distcc is a clever little program that allows you to distribute compilations to many machines, across the network. If you have a bunch of machines running the same operating systems and compilers, it’s quite easy to use: start the daemon on all the machines you wish to serve compilation jobs to, tell the host doing the compiling to use distcc rather than gcc or g++ and compile away!

The problem comes about when the systems aren’t running the same OS. For example: I have an older Linux laptop that I occasionally build things on, but a much faster MacOS X desktop machine. The solution in this case is a cross-compiler. A full-fledged cross-compiler is a complicated thing and requires an obnoxious amount of preparation, but for the purposes of distcc, one can avoid most of the headache.

Continue reading