Turned on USB debugging, plugged phone into laptop, told NetworkManager to connect to T-Mobile...Done. It's amazing when you plug in a random device into Linux and right thing(tm) happens.
3G seems a lot faster on T-mobile that on AT&T. Tethering on AT&T meant things like GMail loaded painfully slowly. Latency seems high(130ms to google, 90ms more than on my Comcast, I guess HSUPA isn't kicking in), but at least it's consistent. Throughput is pretty amazing, 450K/s.
Blog documenting experiences with Linux, carbon fiber, solar panel and other things as I learn about them
Sunday, August 15, 2010
Tuesday, August 10, 2010
Android/Samsung
The Past
Over two years ago I bought the first and only Symbian phone worth paying for: Nokia E71. The knockoff-berry was the first smartphone with decent battery life and an efficient input method. Other attractions included excellent VoIP support(I logged ~20x as much VoIP minutes as cellular), sportstracker(decent builtin GPS!), shoutcast-streaming, etc. I got hooked on Podcasts with the podcast app, the music player was sufficient, etc. In general E71 is a standalone device that does not need to be hooked up to life-support regularly(aka to update podcasts, music library with iTunes). AT&T doesn't know that E71 is a smartphone, so I got to use a cheap data plan with it.
Symbian is a great OS for phones with great battery life, but it sucks for pretty much anything else. The tcp/ip stack + wifi can be flakey, the phone rebooted on me at least once week. There is no almost no open source software for the phone. Nokia's applications range from disappointing (the webkit-based browser) to decent(Sportstracker), there are few thirdparty apps worth bothering with such as Opera(impressive what they managed to accomplish on such a limited OS) or Fring.
Vibrant Hardware
I held out on android because the hardware it shipped on until now has been junk. There are two manufacturers able to build highquality portable devices: Nokia and Samsung(Apple is catching up in hardware quality, but I'm not interested in software lockin) . Nokia has yet to announce a decent MeeGo device. While MeeGo appears to be the least-molested Linux platform, but I don't see myself waiting another 2 years for it mature.
So I got an unlocked Samsung Vibrant. There are lots of reviews praising the Vibrant, so I'll focus on what sucks about it from a perspective of a Nokia user.
Formfactor. First off, it's a slate-tablet-like thingy that Apple popularized. I prefer the knockoffberry formfactor. I'd happily trade in a big screen for a smaller high-dpi one with a physical keyboard.
Nonremovable memory card. I appreciate that unlike Apple, Samsung allows me to use a removable memory card. I don't appreciate that getting at it requires removing the world's sketchiest backcover.
Sketchy backcover is so sketchy that Samsung included two of them in the box. "Yeah we know it's a piece of crap that will bust from frequent removals or from being dropped". For a GSM phone (ie one may want to swap SIM cards while traveling) with a memory card(which one might also want to get at), this is ridiculous.
Craptastic volume control. Seriously Samsung, how hard can it be to make some real buttons instead of a wobbly piece of plastic that looks like an SD cover?
Speakerphone location is a joke. What moron decided to put the speakerphone on the back of the phone? Do Samsung designers know how the phone rests while people are looking at the screen? Could there be a more idiotic speaker location? I can't think of one. The speaker is nice and loud, it's too bad that most of the time it's playing away from me and usually into a solid surface like a desk.
Look Ma', no d-pad! There is a software dpad that can be used to navigate within textfields. Touch is the main way to navigate between fields. This is so inefficient. To Samsung designers: please slap yourself for this.
Overall the build quality is ok (the phone doesn't creak and the screen isn't coming unglued like certain HTC phones), save for the glaring mistakes listed above. I thought that Samsung might've surpassed Nokia in build quality by now, but they've regressed. So back to listing things that suck:
Android Software
Sucky VOIP. First thing I did was setup SipDroid only to have my dad demand that I call him from my Nokia instead. Whereas on the Nokia VoIP over wifi is far superior to GSM on the Vibrant it completely sucks. The microphone has a constant background hum and it clips my voice funny. I think Nokia E71 does some serious QoS on their tcp/ip stack, because calls do not drop out nearly as much as on other devices (whereas bulk downloads are 10x slower than they used to be in recent firmwares).
Decent cellular quality. Turns out some of the crap that manifests itself in VoIP calls is also present during normal calls, but I wouldn't notice it if it didn't make itself obvious during VoIP testing. It's safe to say that this phone does not compare to Nokia in voice quality, no matter how great it supposedly sounds according to reviews.
The phonebook is a sick joke. Gmail accumulates contacts like crazy...and Android displays them all whether they have names/phone-numbers or not. Nokia deals with this problem neatly by filtering the phonebook based on context - "Oh you are trying to dial a number, I won't show contacts without a phone number...same idea for writing emails".
Android appears to be written by(or for?) children without commitments.
On E71 I sync with the Google calendar via an Exchange-emulation that Google hosts. So I figured that if Android can sync directly, it will cut out most of the suck...It doesn't, it sucks infinitely more. On initial sync it seems to have synced my calendar correctly, except for my meetings with boss(Google, are you trying to get me fired?)...To make matters worse none of the new entries I've added to the phone managed to sync to the server. That and entering appointments on a touchscreen is 10x slower than with a keyboard+dpad.
Seems bad? It gets worse. The calendar alarm is a quiet ping sound... That's it, no vibration, no loud alarm, no snoozing. How is one supposed to not miss meetings with this?
I really miss being able to close applications. Applications can crap themselves or not provide a proper quit options...Would be nice to have some provision for that. It's really hard to keep android apps from doing stuff in the background(sucking my bandwidth and battery life).
The Good
I did decide to keep the phone. Android ecosystem is far superior to anything else I've seen. The OS is Linux, so the phone doesn't shit itself due to TCP/IP or multitasking confusion like many OSes out there (though I did manage to confuse the wifi driver into not working until a reboot...good old Linux).
Android provides hooks so if the handset vendor didn't ship with a particular feature, there is often a third-party solution. For example I found an Android app that makes the phone vibrate and REPEAT the calendar alarms(what a concept!) until acknowledged. Similarly, VoIP apps can hook into the dialer/phonebook for an almost Nokia-like experience in seamless VoIP integration(other than working properly). One can override the default browser, etc.
Vibrant has set a few records in CPU, screen and battery life. I think this is the best Android hardware one can get at the moment. I'm looking forward to writing or customizing existing open source apps for it.
Over two years ago I bought the first and only Symbian phone worth paying for: Nokia E71. The knockoff-berry was the first smartphone with decent battery life and an efficient input method. Other attractions included excellent VoIP support(I logged ~20x as much VoIP minutes as cellular), sportstracker(decent builtin GPS!), shoutcast-streaming, etc. I got hooked on Podcasts with the podcast app, the music player was sufficient, etc. In general E71 is a standalone device that does not need to be hooked up to life-support regularly(aka to update podcasts, music library with iTunes). AT&T doesn't know that E71 is a smartphone, so I got to use a cheap data plan with it.
Symbian is a great OS for phones with great battery life, but it sucks for pretty much anything else. The tcp/ip stack + wifi can be flakey, the phone rebooted on me at least once week. There is no almost no open source software for the phone. Nokia's applications range from disappointing (the webkit-based browser) to decent(Sportstracker), there are few thirdparty apps worth bothering with such as Opera(impressive what they managed to accomplish on such a limited OS) or Fring.
Vibrant Hardware
I held out on android because the hardware it shipped on until now has been junk. There are two manufacturers able to build highquality portable devices: Nokia and Samsung(Apple is catching up in hardware quality, but I'm not interested in software lockin) . Nokia has yet to announce a decent MeeGo device. While MeeGo appears to be the least-molested Linux platform, but I don't see myself waiting another 2 years for it mature.
So I got an unlocked Samsung Vibrant. There are lots of reviews praising the Vibrant, so I'll focus on what sucks about it from a perspective of a Nokia user.
Formfactor. First off, it's a slate-tablet-like thingy that Apple popularized. I prefer the knockoffberry formfactor. I'd happily trade in a big screen for a smaller high-dpi one with a physical keyboard.
Nonremovable memory card. I appreciate that unlike Apple, Samsung allows me to use a removable memory card. I don't appreciate that getting at it requires removing the world's sketchiest backcover.
Sketchy backcover is so sketchy that Samsung included two of them in the box. "Yeah we know it's a piece of crap that will bust from frequent removals or from being dropped". For a GSM phone (ie one may want to swap SIM cards while traveling) with a memory card(which one might also want to get at), this is ridiculous.
Craptastic volume control. Seriously Samsung, how hard can it be to make some real buttons instead of a wobbly piece of plastic that looks like an SD cover?
Speakerphone location is a joke. What moron decided to put the speakerphone on the back of the phone? Do Samsung designers know how the phone rests while people are looking at the screen? Could there be a more idiotic speaker location? I can't think of one. The speaker is nice and loud, it's too bad that most of the time it's playing away from me and usually into a solid surface like a desk.
Look Ma', no d-pad! There is a software dpad that can be used to navigate within textfields. Touch is the main way to navigate between fields. This is so inefficient. To Samsung designers: please slap yourself for this.
Overall the build quality is ok (the phone doesn't creak and the screen isn't coming unglued like certain HTC phones), save for the glaring mistakes listed above. I thought that Samsung might've surpassed Nokia in build quality by now, but they've regressed. So back to listing things that suck:
Android Software
Sucky VOIP. First thing I did was setup SipDroid only to have my dad demand that I call him from my Nokia instead. Whereas on the Nokia VoIP over wifi is far superior to GSM on the Vibrant it completely sucks. The microphone has a constant background hum and it clips my voice funny. I think Nokia E71 does some serious QoS on their tcp/ip stack, because calls do not drop out nearly as much as on other devices (whereas bulk downloads are 10x slower than they used to be in recent firmwares).
Decent cellular quality. Turns out some of the crap that manifests itself in VoIP calls is also present during normal calls, but I wouldn't notice it if it didn't make itself obvious during VoIP testing. It's safe to say that this phone does not compare to Nokia in voice quality, no matter how great it supposedly sounds according to reviews.
The phonebook is a sick joke. Gmail accumulates contacts like crazy...and Android displays them all whether they have names/phone-numbers or not. Nokia deals with this problem neatly by filtering the phonebook based on context - "Oh you are trying to dial a number, I won't show contacts without a phone number...same idea for writing emails".
Android appears to be written by(or for?) children without commitments.
On E71 I sync with the Google calendar via an Exchange-emulation that Google hosts. So I figured that if Android can sync directly, it will cut out most of the suck...It doesn't, it sucks infinitely more. On initial sync it seems to have synced my calendar correctly, except for my meetings with boss(Google, are you trying to get me fired?)...To make matters worse none of the new entries I've added to the phone managed to sync to the server. That and entering appointments on a touchscreen is 10x slower than with a keyboard+dpad.
Seems bad? It gets worse. The calendar alarm is a quiet ping sound... That's it, no vibration, no loud alarm, no snoozing. How is one supposed to not miss meetings with this?
I really miss being able to close applications. Applications can crap themselves or not provide a proper quit options...Would be nice to have some provision for that. It's really hard to keep android apps from doing stuff in the background(sucking my bandwidth and battery life).
The Good
I did decide to keep the phone. Android ecosystem is far superior to anything else I've seen. The OS is Linux, so the phone doesn't shit itself due to TCP/IP or multitasking confusion like many OSes out there (though I did manage to confuse the wifi driver into not working until a reboot...good old Linux).
Android provides hooks so if the handset vendor didn't ship with a particular feature, there is often a third-party solution. For example I found an Android app that makes the phone vibrate and REPEAT the calendar alarms(what a concept!) until acknowledged. Similarly, VoIP apps can hook into the dialer/phonebook for an almost Nokia-like experience in seamless VoIP integration(other than working properly). One can override the default browser, etc.
Vibrant has set a few records in CPU, screen and battery life. I think this is the best Android hardware one can get at the moment. I'm looking forward to writing or customizing existing open source apps for it.
Thursday, December 3, 2009
Rooter Hardware
Rooter - British pronunciation of router. This is post describes the hardware in my Atom router.
I wanted a low power x86 router. There a number of things that I want to be able to do with it on my lan: DNS for naming/tracking a few dozen devices, VOIP, media serving with MPD + PulseAudio.
I choose Atom because it is cheap to buy and to run. CPU/Mobo combos start at $50. There are two flavours of Atom boards: cheap ones with desktop chipsets and more expensive ones with laptop chipsets (which consume 50% less power). I also needed to have 2 nics and to have gigE on the LAN side. Most boards ship with RealTek NICs which have absolutely terrible drivers. Unfortunately there is only one (MSI IM-955GSE-A) massmarket dual Intel-gigE board that doesn't suck and it costs $150.
Due to a misleading ebay listing I ended up buying MSI IM-955GSE-B on Ebay. It is the former boards' wierdo industrial sibling(no VGA, 1 gigE, but 6 serial ports!). It features a builtin DC2DC power supply which connects via a floppy-power-connector to a 12V DC source.
To make up for a missing Ethernet port I opted for a USB2.0 100Mbit nic (Trendnet TU2-ET100,which uses the 'asix' driver). This NIC is a true full-speed device and easily sustains 11MB/s transfers, so it's perfectly good enough for a WAN port.
I got the cheapest Mini-ITX case on ebay. It came with a great 65W Seasonic power supply.
Cost:
Case - $30
Mobo/CPU - $82
2GB RAM - $30
USB NIC - $18
Total: $160
I installed Fedora onto a spare 4gb usb stick. I am really happy with the resulting computer. It is very quiet because it has no moving fans.
PSU Hack
Current 13W idle power draw is reasonable given that the PSU is likely underloaded and thus less efficient .
Currently, the mobo is powered by shorting the ON pins on the PSU(+ducttape for robustness) and a custom Molex2Berg adapter cable(made for me by a very resourceful friend). Eventually I plan to switch over the EEE power supplies as they are better specced for such low power motherboards. This would also avoid redundant dc2dc conversion going on in the case.
Power-On AC
I considered using busted netbook for rooter duties but laptops do not usually have the Power-On-AC option (or power-on-lan-activity). With power-on-ac Rooter turns On/Off just like any other appliance when one messes with the power cord. That's as wife-safe as a computer can get :)
I wanted a low power x86 router. There a number of things that I want to be able to do with it on my lan: DNS for naming/tracking a few dozen devices, VOIP, media serving with MPD + PulseAudio.
I choose Atom because it is cheap to buy and to run. CPU/Mobo combos start at $50. There are two flavours of Atom boards: cheap ones with desktop chipsets and more expensive ones with laptop chipsets (which consume 50% less power). I also needed to have 2 nics and to have gigE on the LAN side. Most boards ship with RealTek NICs which have absolutely terrible drivers. Unfortunately there is only one (MSI IM-955GSE-A) massmarket dual Intel-gigE board that doesn't suck and it costs $150.
Due to a misleading ebay listing I ended up buying MSI IM-955GSE-B on Ebay. It is the former boards' wierdo industrial sibling(no VGA, 1 gigE, but 6 serial ports!). It features a builtin DC2DC power supply which connects via a floppy-power-connector to a 12V DC source.
To make up for a missing Ethernet port I opted for a USB2.0 100Mbit nic (Trendnet TU2-ET100,which uses the 'asix' driver). This NIC is a true full-speed device and easily sustains 11MB/s transfers, so it's perfectly good enough for a WAN port.
I got the cheapest Mini-ITX case on ebay. It came with a great 65W Seasonic power supply.
Cost:
Case - $30
Mobo/CPU - $82
2GB RAM - $30
USB NIC - $18
Total: $160
I installed Fedora onto a spare 4gb usb stick. I am really happy with the resulting computer. It is very quiet because it has no moving fans.
PSU Hack
Current 13W idle power draw is reasonable given that the PSU is likely underloaded and thus less efficient .
Currently, the mobo is powered by shorting the ON pins on the PSU(+ducttape for robustness) and a custom Molex2Berg adapter cable(made for me by a very resourceful friend). Eventually I plan to switch over the EEE power supplies as they are better specced for such low power motherboards. This would also avoid redundant dc2dc conversion going on in the case.
Power-On AC
I considered using busted netbook for rooter duties but laptops do not usually have the Power-On-AC option (or power-on-lan-activity). With power-on-ac Rooter turns On/Off just like any other appliance when one messes with the power cord. That's as wife-safe as a computer can get :)
Monday, November 16, 2009
Of ARMs and MIPS
A few years ago I to ran my website off a Linksys WRT54GS. With a OpenWRT firmware and a little OCaml web app I ended up with a robust web site. I thought ARM was so cool. I bought 2 other hackable routers based on the platform(another wrt54gs and an asus wl500w).
Wireless routers + custom firmware were attractive because once one sets them up there is not much to go wrong. No moving parts, no particularly hot parts and the thing turns back on automagically after power-outages. That and the wireless router used around 5-6W of power.
A couple of years passed...
Then kernel 2.6 acquired cool features that I wanted to use (mainly fuse). But due to proprietary Broadcom wifi I was stuck on 2.6. So I sucked it up and stuck with 2.4. Soon after the wifi started misbehaving and I had to reflash back to proprietary firmware...and the problems magically went away.
I got the Asus wl500w when I moved out. It had mini-pci-e(aka swappable!) N wifi and usb 2.0 port. I thought I could replace an x86 desktop with it. I figured with a custom mini-pci-E card, I would no longer be stuck on 2.4 and would be able to enjoy 2.6 + infinite storage via USB. But I figured wrong. USB was slow(crappy IRQ handling on embedded MIPS), kernels were buggy, hard to update. Proprietary bootloaders (which differ on every embedded board) + custom board layout means that MIPS/ARM kernels are board-specific, less tested and generally more buggy. That combined with the dismal state of linux wireless made me give up on the whole Linux on non-x86 idea. I can no longer be bothered to blindly flash kernels(with weird build environments) onto quirky and under-performing hardware.
For work I have to work with Nokia N810 arm thing. It's a great little device when it works, but it often doesn't. However I can't install a modern kernel on it because of obscure hw(which is only kind of supported in mainline). Without a custom kernel I loose tight integration with my hardware, cool new kernel features, etc. So much like MIPS, ARM = funny bootloader + funny SoC configuration => waste of time.
I also have a WinMo device for work. It makes the linux situation look like heaven.
Non-x86 is an Evolutionary Deadend
So what's the point of this? I'm gonna predict the future. I think presently ARM&friends exist because so far they managed to undercut x86 at power consumption. They are also appealing to companies that design their products from the ground up, such as cellphone vendors.
I believe that the supposed onslaught from ARM nettops/smartbooks/shit is going to flop. NVidia is gonna burn through a pile of cash developing WinCE doo-dads (seriously guys, who came up with that idea?) to showcase the awesomeness of their hw(I am sure they can make good hw) and completely fail in market due to users rejecting crappy software.
Wireless routers + custom firmware were attractive because once one sets them up there is not much to go wrong. No moving parts, no particularly hot parts and the thing turns back on automagically after power-outages. That and the wireless router used around 5-6W of power.
A couple of years passed...
Then kernel 2.6 acquired cool features that I wanted to use (mainly fuse). But due to proprietary Broadcom wifi I was stuck on 2.6. So I sucked it up and stuck with 2.4. Soon after the wifi started misbehaving and I had to reflash back to proprietary firmware...and the problems magically went away.
I got the Asus wl500w when I moved out. It had mini-pci-e(aka swappable!) N wifi and usb 2.0 port. I thought I could replace an x86 desktop with it. I figured with a custom mini-pci-E card, I would no longer be stuck on 2.4 and would be able to enjoy 2.6 + infinite storage via USB. But I figured wrong. USB was slow(crappy IRQ handling on embedded MIPS), kernels were buggy, hard to update. Proprietary bootloaders (which differ on every embedded board) + custom board layout means that MIPS/ARM kernels are board-specific, less tested and generally more buggy. That combined with the dismal state of linux wireless made me give up on the whole Linux on non-x86 idea. I can no longer be bothered to blindly flash kernels(with weird build environments) onto quirky and under-performing hardware.
For work I have to work with Nokia N810 arm thing. It's a great little device when it works, but it often doesn't. However I can't install a modern kernel on it because of obscure hw(which is only kind of supported in mainline). Without a custom kernel I loose tight integration with my hardware, cool new kernel features, etc. So much like MIPS, ARM = funny bootloader + funny SoC configuration => waste of time.
I also have a WinMo device for work. It makes the linux situation look like heaven.
Non-x86 is an Evolutionary Deadend
So what's the point of this? I'm gonna predict the future. I think presently ARM&friends exist because so far they managed to undercut x86 at power consumption. They are also appealing to companies that design their products from the ground up, such as cellphone vendors.
I believe that the supposed onslaught from ARM nettops/smartbooks/shit is going to flop. NVidia is gonna burn through a pile of cash developing WinCE doo-dads (seriously guys, who came up with that idea?) to showcase the awesomeness of their hw(I am sure they can make good hw) and completely fail in market due to users rejecting crappy software.
Subscribe to:
Posts (Atom)