Friday, November 16, 2012

libyaml / psych / rvm / zlib issues

Previous: Remount thumb drive read-write

Every time I set up a new Ubuntu instance for Ruby development, I run into the same problem. After installing rvm, when I try to install a gem it complains about not being able to find psych for yaml and not finding zlib. I can't seem to get the hang of this. As usual, I found a number of different solutions online, and each of them solved the problem for some people and not for others. FWIW, this is what corrected the problem for me on a fresh instance of Ubuntu 12.10:

sudo apt-get install zlib1g-dev
sudo apt-get install libyaml-dev
rvm reinstall 1.9.3
Maybe this will help you if you're having a similar problem.

Next: Installing VMware Player 5.0

Sunday, October 14, 2012

Remount thumb drive read-write

Previous: Quest for a good Twitter client

I messed up the filesystem on a thumb drive by removing it from the machine before it was ready to remove. Now whenever I insert the drive it comes up "read only." There's probably a permanent fix for this, but for the moment a noob workaround is to get it into "read-write" state with the following command:

sudo mount -o remount,rw '/media/0000-0001'
where '0000-0001' is the device name as it appears in the /media directory.

Next: libyaml / psych / rvm / zlib issues

Saturday, July 21, 2012

Quest for a good Twitter client

Previous: Some thoughts about the Windows 8 preview release

The web interface to Twitter seems to do things in the background that slow down my browser considerably. I'm not curious enough to investigate the root causes. So, I tried some other Twitter clients.

Twitux

Site: https://live.gnome.org/DanielMorales/Twitux

My experience:

  • apt-get install twitux worked fine
  • twitux started with no problems
  • Using the correct userid and password, on 'connect' twitux just says 'access denied'. No further information, no way around it, no messages, no log, no help, no known bugs, no mention on the website.
  • apt-get remove twitux worked fine

Choqok

Site: http://choqok.gnufolks.org/

My experience:

  • Per the website, choqok is specifically for the K desktop, which I don't use.
  • End of experiment.

Destroy Twitter

Site: http://destroytwitter.com/

My experience:

  • Requires Adobe Air, no longer supported for Linux.
  • End of experiment.

Mitter

Site: http://code.google.com/p/mitter/

My experience:

  • There are no installation instructions. I unpacked the distribution tarball and saw that it looked like a Python thing. I created a directory for it and ran 'sudo python setup.py install'. Worked fine.
  • Unity launcher could not find mitter.
  • In Terminal, I ran 'python mitter' and it started with some warning-level errors.
  • Tried to connect to Twitter using the correct credentials and got an authentication error.

That's the second product I've tried that gave me a login error with correct credentials for Twitter. I followed up to be really sure I was using the right login credentials. I was. I found comments online that suggest some clients get a 401 even when they aren't passing anything incorrectly. Offhand that doesn't seem like an especially useful feature.

TweetDeck

Site: http://www.tweetdeck.com

My experience:

  • Requires Adobe Air, no longer supported for Linux.
  • End of experiment.

Gwibber

Site: https://launchpad.net/gwibber

My experience:

  • I vaguely recall having used Gwibber in the past. I gave it a try to see if it could connect to Twitter successfully.
  • Seems to work okay. This means the other clients have problems with authentication. Too bad. Some of the screen shots looked nicer than Gwibber.
  • I used Gwibber for a few minutes but did not like the interface. I found it hard to open up threads of replies.
  • In Gwibber's favor, it was the first Twitter client I tried today that was actually able to connect to Twitter. I had assumed that would be a basic requirement for a Twitter client, but apparently it is an optional feature. That's what I get for assuming.

gTwitter

Site: http://code.google.com/p/gtwitter/

My experience:

  • When I attempted to visit the website I got a 403 with the message, "Your client does not have permission to get URL /p/gtwitter/ from this server. That’s all we know." I interpret the response to mean the authors of gTwitter don't want me to try it. Okay. Didn't.

Qwit

Site: http://code.google.com/p/qwit/

My experience:

  • Qwit installed easily, no problems and no errors.
  • After I set up my account information, it appeared to do nothing at all. I tried the various connection options it offers, and it never seemed to take any action at all. It gives no indication that it has attempted to log in or communicate at all. None of the icons on the UI does anything. There is no menu, no help, no tooltips, no console messages, no log that I could find. As far as I can tell, Qwit doesn't do anything.
  • I qwit.

Hotot

Site: http://hotot.org/

My experience:

  • The website claims a stable version is available in the default Ubuntu repository. This proved to be untrue.
  • I installed it with
    sudo add-apt-repository ppa:hotot-team
    sudo apt-get update
    sudo apt-get install hotot
  • Seems to work okay. A little clunky when it opens a web page in response to a mouse click within its own UI, but it does function, and it solves (or gets around) the immediate problem I was having with browser slow-down using the web interface to Twitter. Not very good, but usable for the time being.

Next: Remount thumb drive read-write

Wednesday, June 13, 2012

Some thoughts about the Windows 8 preview release

Previous: Kindle reader on Ubuntu

Michael Mace posted a very interesting assessment of Microsoft Windows 8 on his blog, Mobile Opportunity (see Fear and Loathing and Windows 8). I have a few observations to add, and since they are a bit verbose, I thought I shouldn't clutter his comments section with them.

I decided to post these observations on my Ubuntu blog, although the subject isn't Ubuntu, because some of Michael's readers are starting to ask about alternatives to Windows. They might find some of my "noob" experiences with Ubuntu useful. The short version is this: You won't find Ubuntu to be hard to install or use. If you're already accustomed to Windows and comfortable using it, then rest assured that any reasonable consumer-oriented alternative will be easier, not harder.

Learning curve worries

The tiled interface, Metro, is very different from previous Windows UIs. Michael writes that people have "spent a huge amount of time learning how to use the system, and the last thing they want to do is start learning all over again."

The statement really captured my attention. It serves as a reminder to me that "end users" approach computers very differently than programmers. All operating systems perform the same basic functions, such as locating files and starting programs. All user interfaces provide some means of accessing those functions. Any user interface is fairly straightforward, be it a command line, a menu-based UI, or a GUI of some sort with menus, a launcher/dock, or icons/tiles.

But even in view of different people's comfort levels with different UIs, I'm not convinced that the Metro interface will confuse the average user who has experience with Windows. In my work, I see lots of people who use Windows every day. Most of my clients have settled on Windows as their corporate desktop standard. Most of the people I see who are comfortable using Windows fill their desktops with icons. The icons are shortcuts to programs. In quite a few cases, I've seen the entire screen filled with icons. People tend to use the Start menu to locate a program just once, and the very next thing they do is create a shortcut and stick it on the desktop. Done and done.

If I take my Android phone out of my pocket and look at it, what do I see? A screen filled with icons. This is a tiled UI. It's a bunch of little rectangles, each of which invokes some program when touched. The program might live on the phone, or the tile might just be a gateway to a remote service. Nearly everyone in the industrialized world has a smart phone and/or a tablet device with a touch-screen, equipped with either iOS or Android.

The tiled interfaces on smart phones and tablet devices are essentially the same as Metro. People are already using tiled interfaces. Furthermore, the way in which people tend to use Windows looks like an attempt to get as close to a tiled interface as they can, using shortcuts and icons on the desktop. There is no learning curve problem. Windows users already know how to use Metro. They wish they were already using it. They are simulating it as best they can.

Michael uses a car analogy to illustrate the significance of the UI change. He compares Windows 8 to a new car that uses a joystick for steering as opposed to a steering wheel. The problem with the analogy is that Windows 7 is not a car with a steering wheel. It is a car that you have to steer by pulling on a rope. It is a car whose engine takes 5 minutes to start and 25 minutes to shut down. It is a car that goes slower and slower the longer you drive it, and that may just stop dead in the middle of the road for no apparent reason. Backward compatibility is a good thing when the old system worked well. When the old system wasn't so great in the first place, then, well...<shrug>good riddance</shrug>.

Corporate perspective

What current Windows users don't already know, maybe, is where all the system configuration goodies went. Michael notes that some configuration options are no longer available directly through the UI. They've either been moved (as there is no Start menu anymore) or eliminated altogether. People can still change user preferences, like background images and desktop themes and so forth.

What he doesn't say in his article, but must be true nonetheless, is that all those configuration options are still in "the system" somewhere. I mean, they would have to be in there somewhere, right? Otherwise, the bloody thing wouldn't work. They're just hidden from the casual user's view. I recall when Windows 7 came out there was no longer an easy way to change file associations; you had to do it by editing the Registry. When I installed my preferred office suite, I discovered that Windows was preconfigured to try and launch Microsoft Office no matter what, so I went a-Googling for solutions. Irritating. In Vista, you could get rid of of those annoying notification balloons by editing the Registry, too. So, where there's a will, there's a way to make Windows usable. But Michael's article is not aimed at people who edit the Registry.

Anyway, to get back on topic, the Metro interface seems well-suited to corporate environments. My guess is that Microsoft makes most of its money from corporate customers. The individual who wants to use social media and watch videos probably doesn't account for a large proportion of Microsoft's revenue. A single corporate customer could be worth 10,000 individual customers.

In corporate environments, companies typically preconfigure the desktop systems with the applications necessary to support each employee's job function. They don't want employees mucking about with the system configuration, plugging in memory sticks, downloading executables, installing programs, or having local admin rights. There are plenty of good reasons for this, including supportability, governance, security, cost control, managing network load, and license compliance, to name a few. Since most corporate computer users seem to prefer filling their desktops with icons anyway, which is a poor man's Metro interface already, the Metro interface will only give them what they want straight out of the box with no hassle. That can't be a bad thing.

Companies are busily implementing service-oriented architectures, outsourcing non-mission-critical support functions to external suppliers, and shifting some of their workload to the cloud. The end-user interface to all that stuff can be thin and simple — just a bunch of icons or tiles or what-not that invoke services. The services may reside locally on the PC, within the enterprise but behind the service bus, at an external supplier's IT facility, or somewhere out in the cloud. It doesn't matter.

The Metro interface is an excellent fit for that model. A company's central IT group can preconfigure machines with tiles representing the information services each employee requires to perform his/her job function. It's better than desktop shortcuts because the tiles can be remotely managed to point to new or moved services as needed, with no end-user intervention required. There is no need for those people to configure their own Windows instances. Therefore, the lack of convenience for doing so is not a problem in that context.

Consumer perspective

I'm not a close follower of Microsoft. I don't read much of their marketing material. Yet, based on what I've heard and read, they have strategy that involves providing a consistent user experience across all platforms. A person using a conventional computer, a tablet, a phone, a game console, or some device to be invented next week, should have a broadly-consistent general user experience. The Metro interface seems to be a step in that direction. From that point of view, it appears to be a step in the right direction.

The trend these days seems to be away from conventional PCs for general consumer use. Tablets, smart phones, and perhaps more innovative devices on the horizon will supplant the PC as the platform of choice for casual use. The Metro interface carries the UI metaphor from these newer devices to the PC. This is probably a smart move for Microsoft.

The notion that Windows 8 isn't really targeted to conventional PCs is supported by some of Michaels other observations. For instance, Windows 8 doesn't support all the peripheral devices found on PCs designed for Windows 7 and Windows Vista. In addition, it isn't laptop-friendly. It doesn't want to be turned off. It doesn't make power management options easy to find. These are features that suit corporate desktop platforms and non-PC devices such as tablets and phones. Corporations want to be able to push security updates and so forth off-hours, and it's more appropriate for tablets and phones to sleep instead of shut down, most of the time. It's possible the conventional PC has passed its market prime.

Support for "productivity"

Michael worries that Windows 8 is geared for information consumption rather than information creation, and will therefore be an impediment for people who create information in their work, like office workers who use office suites to prepare reports, presentations, and spreadsheets. But I've seen no indication that products such as Microsoft Office or Outlook will not be supported. A tile can just as easily invoke those programs as anything else. So, I'm not sure this is a valid worry.

Oddities

Michael notes that the Windows 8 preview release wipes your hard drive and irrevocably installs itself. He notes that Microsoft does not make this clear enough to people who are browsing the preview release site. It's possible some people will get burned.

I my case, I installed the preview release as a virtual machine and ran it under VMware. It wouldn't have occurred to me to try out a new operating system by actually installing it directly onto a "production" machine, even if it's an OS with a trustworthy history (i.e., not Windows). It was only when I read this in Michael's article that I realized some people might just do a normal install. If you want to try the thing out, be aware of this, er, feature.

Michael also discovered that there is an expiration date on the Windows 8 preview. All these preview copies will expire next year, and customers will be expected to purchase a copy of the real thing. I'll just delete the VM file. Come to think of it, why not do that right now? Just a sec, I'll be right back. There, done. It was interesting to explore Windows 8, and I can see the potential benefits for corporate customers, but I've got no real use for it. Although the tiled interface seems to be consistent with current industry trends, it still isn't a particularly good OS. I found it to be annoyingly clunky and slow. Have to bear in mind it was only a preview release and it was running as a VM. But still...really? Nah.

Another funny bit is the quote from Antoine Leblond, VP of Windows Web Services, in which he boasts that Microsoft have sold over 500 million licenses for Windows 7. I couldn't help thinking of the moment when I first powered up my new laptop recently. I plugged in a USB stick with a bootable Ubuntu iso first. I never brought up the pre-installed Windows 7 software at all. When I purchased the machine, I was purchasing the machine. The fact it came with an OS pre-installed was irrelevant. It makes me wonder how many of those 500 million licenses sold actually turned into licenses used.

And that brings us to another interesting tidbit. My nephew works in the game industry, where people have to be one step ahead of the general public when it comes to the details of new operating system releases, because those details affect their code. His understanding is that Microsoft intends to force OEMs to rig their hardware so that customers are unable to install any other operating system besides the pre-installed Windows one. I suspect this really means they would rig the BIOS. ("Force" means "if you want the official Windows 8 sticker on your machine, then you must do our bidding." Obviously, they can't physically force anyone to do anything, although their behavior sometimes suggests they would enjoy being able to do so.) If true, the strategy could create very interesting lawsuit opportunities against Microsoft, and possibly against OEMs who fail to provide a non-Microsoft alternative.

We live in interesting times.

Next: Quest for a good Twitter client

Monday, May 28, 2012

Kindle reader on Ubuntu

Previous: Ultralight notebook: Apple, Asus, or Toshiba?

Amazon provides no Kindle reader for Linux. I want my shiny new Toshiba Portege to support all my road warrior needs. I don't want to have to carry a separate device for reading Kindle books. My Android phone has a Kindle reader app, but the phone isn't really a great platform for reading.

Prowling around online, I came across a solution. The basic solution is to run Amazon's free Kindle reader for Windows under wine. There are a couple of issues, though.

The first issue is that the current version of the Kindle reader will not run under wine at all. At http://okomestudio.net/biboroku/?p=931 I found a solution devised by a frustrated Kindle subscriber who kindly keeps a copy of an early beta version of the Kindle reader on his website. To get his stuff, run these commands:

sudo apt-get install wine lib32nss-mdns cabextract bzip2
wget http://www.kegel.com/wine/winetricks
sh winetricks corefonts
wget http://okomestudio.net/biboroku/wp-content/uploads/2010/06/KindleForPC-installer.exe.bz2
bunzip2 KindleForPC-installer.exe.bz2
wine KindleForPC-installer.exe
When you run the installer, you might encounter this error:
wine: Call from 0x7b839f22 to unimplemented function msvcp90.dll.??0?$
After a fair amount of hunting, I found an entry on a wine forum at http://appdb.winehq.org/commentview.php?iAppId=1485&iVersionId=22127&iThreadId=71627 that explained the error is caused by an obsolete manifest entry that is not needed for recent versions of wine. To get rid of it, run this command:
rm ~/.wine/drive_c/windows/winsxs/manifests/*.vc90.*_deadbeef.manifest
Once I did that, I was able to run the Kindle reader and access my Kindle books normally.

Next: Some thoughts about the Windows 8 preview release

Ultralight notebook: Apple, Asus, or Toshiba?

Previous: Ubuntu upgrade 11.10 to 12.04

Recently signed a relatively long (6 month) contract that will require considerable air travel. Rather than lug my 18.4" Toshiba laptop on airplanes, I decided to get one of the ultralight laptops with an SSD drive. I'm not worried about the relatively low capacity of the SSD drive, as I will continue to use the larger laptop as my primary machine when I'm not traveling. Based on a quick perusal of online reviews, the best products in the category appeared to be the Apple MacBook Air, Asus Zenbook, and Toshiba Portege, so I limited my investigation to those three.

These three products are comparable in features, form factor, battery life, and price (within a couple hundred dollars for models with 128GB SSD drives). Each has it own particular advantages.

The Apple has the best display resolution, and the Thunderbolt port is interesting as it promises about 20x the transfer speed of USB 2.0, which is very handy for those of us using small external HDDs for local backups. But Linux does not (yet) support the Thunderbolt interface, so that feature was moot in my case. Besides, not many external devices support Thunderbolt at this time. By all accounts everything else on the Apple can be supported in Linux, although there are a few post-installation tweaks to do.

The Asus has a reasonable number of USB ports - 2 USB 2.0 and 1 USB 3.0. Since I use the keyboard heavily in my work, I wanted a unit that had a decent feel for typing. Although I plan to use an external keyboard whenever I'm stationary, I expect there will be many occasions when all I have with me is the base unit. The Asus keyboard feels a bit cramped to me, and it invites fat-fingering multiple keys or wrong keys when typing rapidly.

The Toshiba has three USB 2.0 ports and no USB 3.0 port. The lack of USB 3.0 support is not really a show-stopper for me. The keyboard is okay, and display resolution is adequate - at 1366x768 it's not quite as high as the Apple's 1440x900, nor my larger laptop's 1680x946, but it seems fine. When I'm stationary, I'll be using an external monitor anyway.

In recent months, I've started to use virtual machines to create special configurations for particular projects or for specialized client work. I find it a pretty convenient way to run different OSes and try out different development tools without cluttering up a single system with all kinds of configurations that might conflict with one another. It also alleviates fear, as I can't write code that will wreck the kernel of the host machine when I'm working on a VM. So I was interested in a machine that had VT-x support in the BIOS as well as the chipset so that I could run 64-bit guest VMs. Although my large Toshiba Satellite laptop is a 64-bit machine, the BIOS does not provide a way to enable VT-x and I am limited to 32-bit guest VMs.

Many laptop makers do not seem to see any point in supporting VT-x in the BIOS, even if the chipset supports it. Fortunately, both the Apple and the Toshiba ultralights support this. It's hard to tell from the literature about the Asus whether it supports VT-x or not. Because this isn't a popular, consumer-oriented feature, most of the sales literature about these products just doesn't mention it one way or the other. Instead, they talk about how easy it is to sync photos from your phone or watch movies. Not really my usage pattern.

Long story short, I went with the Toshiba Portege for its relatively good keyboard and otherwise-reasonable balance of features. First time I turned it on, I had a bootable USB stick with Ubuntu 12.04 inserted, and went directly to the BIOS menu to set USB memory as the first boot device. Then restarted it and installed Ubuntu. Never even gave the pre-installed Windows system a glance.

I was pleased to see that Bluetooth worked. I haven't had any luck with Bluetooth support on Toshiba laptops with Ubuntu previously. It's good that they have this working now. Transferring data with a cable is okay, but wireless is more convenient. And that's one less cable to stuff into my carry-on bag. Ubuntu 12.04 seems to have a few glitches here and there, but on the whole Ubuntu just keeps getting better with each release. I didn't have to go searching for scripts and downloads to work around anything this time. Nice, clean, easy install.

Next: Kindle reader on Ubuntu

Sunday, April 15, 2012

Ubuntu upgrade 11.10 to 12.04

Previous: Exporting only the notes pages from an OpenOffice or LibreOffice presentation

Ubuntu has provided a one-click upgrade option for the past several releases. In the past, the feature has not worked well. Many Ubuntu users recommended doing a clean install of the new release rather than using the upgrade feature.

When 12.04 beta came out, I decided to try installing a fresh Ubuntu in a VM, and using the upgrade feature in another VM with 11.10 installed. It seems as if the upgrade feature worked very well this time. I still wouldn't recommend doing it without having a backup of anything you might need to recover, just in case.

The only difference between the fresh install and the upgrade (in this case) was that the upgrade took considerably more time.

IMHO there are still some advantages to doing a fresh install. For one, it gets rid of old files that I don't need anymore, and that I've forgotten about. I use my main system for developing training materials, presentations, and articles, and for doing software development. So, I'm constantly installing various tools - programming langauges, IDEs, diagramming tools, modeling tools, etc., and I usually don't continue to use the tools for very long. Yet, I'm not diligent about uninstalling things. A fresh install takes care of that for me. When I come to a point that I need a tool that isn't there, I just reinstall it.

Also, I've gotten into the habit of creating a large /home partition, and installing most tools there. So, when I do an upgrade I back up /home and do a fresh install, then replace the contents of /home with my backup. The impact of any "lost" files under /usr is minimal.

Anyway, the point here is that 'upgrade' seems to be working fine now. Don't be afraid of it, but do make a backup. (Trust but verify.)

Next: Ultralight notebook: Apple, Asus, or Toshiba?