Using a Samsung LCD TV as a Computer Monitor (HDMI/DVI)

September 4th, 2011

I’ve used my Samsung LCD television as a computer monitor for a few years now, and it works great.  My TV has 2 HDMI inputs, and the second one, “HDMI2″ has some special magic to make it behave nicely when used as a computer monitor with an HDMI cable or a DVI to HDMI adapter.  The important thing is to set the input name to “PC” in the Source List.

Recently, I wanted to connect my laptop to my TV too, and that’s where I ran into a problem.  When I plugged the laptop into the “HDMI1″ input it looked awful (as expected – the TV defaults just don’t fit well with computer use), but changing the input name to “PC” did not fix the problem!  Whatever magic the “PC” name does with the “HDMI2″ input doesn’t seem to apply to “HDMI1″.  I’ve documented the correct configuration here – hopefully it will be of some use to other people too.

  1. Set the picture size to “Just Scan”.  On my TV, this was under Picture Options.  This should fix any issues with cut-off edges.  Note that depending on your video card drivers, you may have to also change the “overscan” setting – how to do that is driver-specific, so search online for directions.
  2. Lower the Sharpness setting to zero.  This one was the big one for me.
  3. I also changed the input name to “PC”, but as far as I can tell that had no effect.

Some pictures showing what each step looks like are below.  The biggest effect (in real life, even if it’s not apparent in these photos) came from setting the sharpness to zero.  The TV’s sharpening was causing the problems – at a large scale (2-3 pixels), this created the halo around the orange “Firefox” menu, and at a smaller scale it effectively undid ClearType, Microsoft’s implementation of sub-pixel anti-aliasing (the main purpose of which is to improve appearance on LCDs!).  Also note the appearance of the small Firefox logos in the first four images below.

Thoughts on the Samsung Rogue

January 15th, 2010

A couple of weeks ago I replaced my simple cheap Nokia phone with a Samsung Rogue.  Over all it’s pretty nice, although it seems to sit in a strange market niche below “real” smartphones.  It has an HTML browser, and most of the user interface is pretty slick, but it doesn’t seem like there will be many applications available.  A few specific thoughts:

  • The screen is beautiful.
  • The camera seems to be pretty good.  The flash is blindingly bright.
  • The browser is decent.  It renders pages well; it’s not as snappy as my iPod Touch (1st gen), but this phone doesn’t seem to be targeted at smartphone users anyway.  I haven’t figured out how to remove the Verizon bookmark or lower it in the list, so there’s one fewer bookmark I can reach without scrolling.  It’s got some sort of “lite” Flash plugin, but I can’t use Hulu or Pandora so I’m not sure what value it’s adding.  I haven’t tried Flash games.
  • While I’m not a fan of resistive touch screens, I got used to the Rogue’s screen quickly.  I still don’t understand why Nokia’s N900 uses a resistive screen, but on a lower-end phone like the Rogue it’s a reasonable cost tradeoff.
  • It seems like it’s impossible to require a passcode every time the phone is unlocked.  I hate phones that butt-dial, and the Samsung Rogue appears to be fully capable of not just butt-dialing but also (if you’re unlucky) butt-subscribing-to-expensive-features-like-VZ-Navigator.  I honestly wonder what was going through the heads of the people designing the phone lock feature.
  • It’s nice how the phone explains some of its features the first time you use them (including Mobile Email, voice commands, the overpriced VZ Navigator, etc), although I found it strange that features tell you what company provided them.  Apple’s products seem to aim for a relatively seamless experience, but for whatever reason, Samsung or Verizon want me to know that the phone’s wireless chipset is made by Qualcomm, the Exchange email client comes from “RemoSync”, the voice command support comes from “Nuance”, etc.  This isn’t a problem… I think it’s just related to my next thought:
  • While most of the built-in stuff is pretty slick, the Mobile E-mail application looks horribly out of place with the rest of the phone.  It uses a very different interface with different navigation, and an impressively ugly font.  It also makes (loud) beeps even when the phone’s “master” volume is set to vibrate-only.  That’s extremely irritating.  The application works, but it doesn’t fit at all with the rest of the phone.
  • It seems like the backlight will not turn off for a very long time if you are using the web browser and you don’t quit (e.g. if you are looking at something on Google maps every few minutes and don’t want to waste your battery or navigate back to the map over and over and).  Pressing the lock button doesn’t seem to help.  If there’s a way to turn the screen off quickly without exiting the browser, I haven’t found it.  I assume this is the case for other features like Mobile Email, but I haven’t used them as much.
  • Since Verizon charges $240 to access Microsoft Exchange emails ($10/month * 2 year contract), I still end up carrying my iPod Touch (the Mail app can access Exchange servers).  The iPod’s browser is better, its mail client is better, and I also have a free shopping list app called “ShopShop” that I really like.  If the Rogue had a decent email client without ridiculous Verizon fees, had a decent free shopping list application, and could stream Pandora radio, I could replace my iPod… but for the forseeable future, I’ll still carry two devices.  Fortunately the iPod takes up very little pocket space.  I got the phone fully expecting that I would continue to carry my iPod, so I’m not dissatisfied… but the engineer in me is slightly disappointed to such obviously-capable hardware being so underutilized.

Update 4/18/2010:

  • I’ve noticed a few times that I don’t get enough warning when the battery is low.  I’ve woken up to a dead phone on multiple occasions even though it wasn’t beeping on the previous night.
  • I recently got an update to the Mobile Email application which did not fix its annoying beeps.  The first two times I checked email after the update, the phone crashed; it rebooted itself the first time, but I had to pull the battery the second time.  Since that second time, it hasn’t crashed again.
  • When you click a search result on Google, you usually receive a mobile-friendly formatted version of the page, converted by Google.  That’s really annoying, since it’s almost always less-usable than the real version of the page (which the Rogue’s browser can usually handle).  I haven’t found a way to save the “don’t mess with web pages” setting for Google… every time I restart the browser, I end up getting mobile pages again.

Dance Dance Revolution Hottest Party 2

December 9th, 2008

I bought DDR Hottest Party 2 a week ago because I really liked its predecessor and was looking forward to the new songs.  I didn’t have a chance to play it until today because I got sick that evening, but I did have plenty of time to read through the manual between bouts of violent puking, so I was looking forward to it. :)

After playing the game for one day, I’d rate it as “ok”.  There are some improvements over Hottest Party, but so far my overall impression is that it’s slightly worse.  The nice changes I noticed include new songs (obviously!), more detailed stages (with fancy lighting), shorter dead times after finishing a song, it saves your settings, and new moves for the characters.  It also has a few music video backgrounds (replacing the normal animated dancers). Things I don’t like so much are the audience sounds and the dance mat.

Having it save settings is fantastic.  I play with the hand markers off, and with Hottest Party I had to change that option every time I played.  Hottest Party 2 remembers my choice.

The idea of an audience cheering is good, and it could have been done well.  The problem is that as far as I can tell there is only one recording they use every time.  During the actual gameplay it’s ok because you’re busy actually dancing, but after you finish a song, you get to hear the same cheer repeated a few times (when you finish, on the screen indicating that you’ve unlocked a new character, on the screen indicating that you’ve unlocked a new stage, etc).  It would get annoying when watching a friend play too.  I recorded one song as an example:

Just the cheer sections

The whole song (~2 minutes)

I haven’t found a way to disable the cheering.  Maybe I find it more annoying than most people do, but it really bugs me!

I had a lot of trouble with the new dance mat.  I bought the version that came with a new mat because my old one does occasionally miss steps (it’s rare, but when you’re going for a full combo it matters) and it’ll be nice to have an extra around for multiplayer.  The new mat is missing a ridiculous number of steps – it seems like it won’t record a step if I’ve been standing on the arrow for a few seconds before trying to quickly step on it (I have to keep my weight off the arrow for a good chunk of a second).  After about 15 minutes I got tired of it and switched back to my old mat.  I’m not sure if the foam in the new one is slow to expand, or if it hasn’t been out of the box (i.e. unfolded) for long enough, but no matter what the problem is, this would make for an unpleasant Christmas morning for a child.  Hopefully after I leave it sitting flat and play on it a few more times it’ll start working better.

Some of the covers are pretty unfaithful to the originals, so there’s no guarantee that you’ll actually enjoy playing songs you like (e.g. Don’t You Forget About Me).  Some are pretty good and retain the feel of the original (e.g. Obsession).

There were a couple other changes I noticed.  The navigation in circuit mode is strange.  You spin some sort of cylinder thing, and the different stages cycle around it.  After you clear one level, you move up to the next level.  I don’t understand if each of these stages has a single challenge or a sequence… it’s just odd.  It doesn’t affect gameplay at all.  The other thing I noticed: I had a slightly hard time seeing some of the gimmicks during gameplay.  I may just not be used to picking them out yet, but it’s frustrating to miss a foot missile because you just didn’t notice it.

Linux sucks – Getting Skype working

October 20th, 2008

Months after intially installing Skype, I finally got it to work properly (i.e. not conflict with music players / YouTube / etc).  It took way too much Googling and I spent a lot of time trying suggestions that ended up not working, but eventually I found a solution (full thread) on the Ubuntu Forums that almost works. These are the steps that actually worked for me:

  1. Put this into ~/.asoundrc (create the file if it doesn’t exist):
    pcm.skypeout
    {
        type plug
        slave.pcm "dmix"
    }
    ctl.skypeout
    {
        type hw
        card 0
    }
    pcm.skypein
    {
        type plug
        slave.pcm "dsnoop"
    }
    ctl.skypein
    {
        type hw
        card 0
    }
  2. Edit /etc/pulse/default.pa as root (I can’t figure out a “nice” way to do this from the GUI, but in a terminal you could try “sudo gedit /etc/pulse/default.pa” – I used vim).
    1. Comment out “load-module module-hal-detect”
    2. Find the “module-alsa-sink” and “module-alsa-source” sections and add these two lines:
      load-module module-alsa-sink device=dmix sink_name=output
      load-module module-alsa-source device=hw:0,0

      On my Desktop PC, I used “device=hw:SB,0″ rather than “device=hw:0,0″.

      I’ve attached a patch that you can use to automate this (“sudo patch -p0 -d /etc/pulse < default.pa.diff”)

  3. Restart PulseAudio (or reboot).  You can restart PulseAudio by running this in a terminal:
    killall pulseaudio && pulseaudio &

    I got some error messages, but you can ignore them.

  4. Try Skype.  If it still isn’t playing nice with other applications, go to the Sound Devices section in Skype’s settings and change “Sound In” to skypein, and “Sound Out” and “Ringing” to skypeout.
  5. If Skype still isn’t working, go back to step 2, but instead of “hw:0,0″, try other values like “hw:SB,0″; if that doesn’t work, you’re going to need to do some more Googling.

There are three things that suck:

  • It doesn’t work out of the box
  • There is no obvious way to edit a config file in /etc (this requires root privileges, but “Text Editor” doesn’t use the graphical sudo functionality to get the privileges it needs)
  • Following this advice means that in a future upgrade (maybe to 8.10, for example) you risk having to merge differences between your hacked “default.pa” and the maintainer’s version; this would be unreasonably difficult for most people to understand.

Linux sucks – Data Recovery / Dirty Filesystems

October 12th, 2008

Most of my “linux sucks” complaints have stemmed from issues I ran into over a period of a year. However, I discovered this issue today when trying to recover data from an older hard drive that was dying (during bootup, the BIOS warned me that SMART indicated “imminent” failure and said that I should immediately back up my data; before this, Windows had stopped responding). The drive still largely worked, but would produce numerous read failures; any accesses were extremely slow.

I put the drive into a USB enclosure (they make this stuff so much easier!) and connected it to my Ubuntu box:"Cannot mount volume" error message

I clicked details to see what was going on:"Cannot mount volume" error dialog, with details

This is pretty awful. The text looks like something a command-line tool spewed, shoved into a GUI that didn’t respect the line breaks. Getting to the actual content, neither choice is very good. Choice 1 would require a Windows box. Choice 2 involves forcing something “for your own responsibility”. What does that mean? Ignoring the Engrish, I’m assuming it means “at your own risk” and that I may lose data, but I have no idea how likely data loss is. Is it the usual risk associated with an unclean shutdown (which most people I know are willing to accept), or is it significantly higher? From a more technical perspective, is there more risk than there would be if I used Windows? (Is the Linux NTFS driver less robust?) Of course, neither option actually works:

Attempting to force-mount my drive

Attempting to mount my drive using

I happen to know I need to be root (and how to become root), but a hypothetical family member / significant other using my PC would not.

Things that need to change:

  1. The “Cannot mount volume” dialog needs to be intelligent enough to do more than to just show the raw output from /bin/mount. If it’s going to suggest editing fstab (a horrible solution, with long-term consequences), it needs to be clear about how to edit it as root.
  2. Forcing a mount needs to be something that can be done from within the GUI.
  3. If there is a fsck.ntfs, it should automatically run; I should be notified that this is happening and be notified again when it has completed. If there is no fsck.ntfs, someone needs to write one. I can’t find one.

I know NTFS under Linux has been flaky in the past, so for now I’m going to use a Windows box to fix the situation (fortunately, I have one available). If people are trying to make Linux more accessible to “normal users”, then it’s important to handle this kind of situation better. As it is right now, Linux is not a good way to back up files from a dying NTFS drive (if the drive is working, it’s likely to be clean anyway).

Linux sucks – Directory/Folder Pickers

September 4th, 2008

One of the frustrations I’ve run into while using Linux has been with saving screenshots.  At first glance, the interface is much better than Windows’, because pressing the Print Screen key brings up a dialog that lets you save your screenshot to a file easily:

The GNOME Screenshot application

The GNOME Screenshot application

At this point, you’re much better off that you’d be on Windows (which either requires extra steps, or requires you to install 3rd-party applications).  However, you’re also a lot worse off than you realize.  This screenshot application sucks!

  1. When picking which folder to save a screenshot in, you’re presented with a list of directories – your “Places” (Home directory, Desktop, USB sticks, etc) and the directory you most recently saved to (in the example below, “filepicker”).  This looks good until you realize you might have multiple directories called “filepicker” and have no way of telling which one you’re looking at.  “filepicker” is reasonably unique, but I have multiple directories named “tmp” (/tmp, /var/www/tmp, /home/chris/tmp) and I usually dump a screenshot into one of these directories until I have a chance to edit it (e.g crop it in an image editing application). There is no way to tell what directory you’re really saving to.

    The GNOME Screenshot application; list of directories

    The GNOME Screenshot application: list of directories to save pictures in

  2. It gets worse.  If you choose “Other…” you’re presented with a directory picker:
    The GNOME Screenshot application: directory chooser

    The GNOME Screenshot application: directory chooser

    This doesn’t look too bad until you try using it.  In this screenshot, it looks like pressing “Open” would save the screenshot to /tmp/guest/tmp: note the “Location” bar and the highlighted item.  Despite this, it actually would save to /tmp/guest.  The “Location” bar just exists to trick you.  If, given the situation in the picture above, I typed a path into it (e.g. /home/guest/Desktop/tmp) and pressed Enter, the screenshot would still be saved to /tmp/guest!  This dialog lies to you if you type a path manually, and lies to you if you select a directory and choose “Open”. The only way to get it to do what you want is to actually navigate into the directory you want to use, then press “Open” (and ignore any text in the “Location” bar and any selected directories in the list).

  3. It still gets worse.  If, after navigating to the right folder, you try to type a filename into the “Location” bar (e.g. Picture.png), it creates a directory (in this case, it would create a directory called “Picture.png”) and uses that directory to save the screenshot.  You still have to type the filename when you’re back to the main Screenshot application window.
  4. It gets even worse.  If you want to save time and just type a full path into the “Name” field on the main screen, it appears to work, but doesn’t actually save the screenshot!  It fails silently!

This is some of the worst usability I’ve ever seen.  There are plenty of applications that aren’t very intuitive and are hard to use, but the deception here is in a league of its own.  I created a brief video that highlights some of these issues – you can watch it after the jump.

Read the rest of this entry »

Linux sucks – Binary Compatibility

September 2nd, 2008

Using Linux in the real world can be exceedingly frustrating if your employer allows VPN access (or you use VMware).  Every time your kernel is updated, you have to recompile the Cisco VPN modules; frequently, kernel updates consist entirely of changes that are irrelevant to any given installation.  Occasionally they don’t actually change anything (“no-change rebuild“) but for some reason Ubuntu still needs to update.

Linux isn’t like Windows either.  On Windows, if you need to update a driver, you update that driver.  On Linux, if you need to update a driver, you usually* have to update your whole kernel (unless you want to play risky games with back-porting, which isn’t realistic anyway unless you’re a developer or know one).  My point here is that you’re going to be updating your kernel more frequently than someone coming from Windows might expect, so any consequences of kernel updates are magnified.

*The exception to this is a driver for esoteric or new hardware that hasn’t become part of the kernel yet; in those situations you usually have to use a manual process to update and recompile the driver.  Of course, you also get to recompile these drivers when you update your kernel.

It gets worse – not only do you frequently have to recompile the Cisco VPN module, but sometimes it breaks entirely.  When a kernel API used by the VPN module changes, you have to hack the VPN module’s code to get it working again (usually this involves extensive googling to find a patch someone else has already written).  Sometimes you just have to wait for Cisco to release updated software that supports the new kernel release.  This is really obnoxious.  Is it Ciscos’ fault?  Sure.  Is it a problem under other operating systems?  No.  Is putting some of the blame on Linux reasonable?  Yes.

Some might suggest not using VPN (a ridiculous solution that precludes working remotely) or using different VPN software, but if the IT support staff you deal with only supports Cisco VPN, those aren’t good options.

It occurred to me that I could work around this problem by running the VPN client with in a VMware virtual machine – and use a specific kernel release inside the virtual machine.  This almost works, but unfortunately VMware has its own kernel modules which also need to be recompiled when the kernel is updated.  Just to add to the fun, if you try to launch VMware Player after updating your kernel, it fails silently!  The only way to tell what went wrong is to launch it from a text console, in which case it tells you to rerun the setup scripts (which recompile the modules for you).

The whole philosophy that everything should be GPL-licensed and included in the kernel doesn’t acknowledge the real world.  Some companies do write proprietary software, and having a real job in the real world sometimes means using that proprietary software.

(I’m not even going to get started on the glibc version incompatibility issues… maybe in a future post).

Linux sucks – Keyboard Shortcuts

September 1st, 2008

The default keyboard shortcuts in Linux suck*. The shortcut for locking the screen is ctrl+alt+L, which sounds reasonable until you load up emacs and try to use the “previous buffer” shortcut (which happens to be ctrl+alt+L). There are other shortcuts that use ctrl+alt+[letter] too.  All of these shortcuts should use the “Windows” key by default.  It’s been years since I’ve seen a keyboard that didn’t have a Windows key, and on Windows many shortcuts do use the Windows key.  It also seems pretty stupid that the Windows key doesn’t bring up my Applications menu by default.

You’d think the solution would be simple: System->Preferences->Keyboard Shortcuts, but you’d be wrong.  The Windows key can’t be treated as a modifier key – you can’t set a shortcut to be “Super+L” (the Windows key is called Super for some reason).  If you try to set a shortcut to e.g. the Windows key and D, you’ll just end up with just the Windows key as your shortcut.  I’ve found that for Compiz shortcuts, the Windows key is correctly treated as a modifier, but all the GNOME stuff (in particular, locking the screen) treats it incorrectly.

Punishing users because you don’t like a logo sucks.

*in this particular case, my complaint may very be specific to Ubuntu + GNOME, but see my statement in my original post explaining why I still blame “Linux”

Linux sucks – Firefox

August 31st, 2008

The default browser in Windows has a feature called “autoscroll” which makes scrolling in web pages using the middle mouse button very convenient. It also has a convenient single-keystroke shortcut for going back to the previous page: backspace. Firefox on Windows offers this same behavior.

Firefox on Linux behaves very differently. Despite the fact that Linux is now a modern desktop operating system (theoretically usable by “normal people”), many of its applications stick to archaic conventions, presumably to avoid irritating long-time users. Autoscroll and backspace-goes-back are both disabled by default on Linux, and can only be enabled by toggling hidden preferences in the about:config feature (which presents the user with a scary warning before allowing them in). I don’t really know why the backspace feature is disabled, but autoscroll is probably disabled because in the past it may have conflicted with an archaic feature that also used the middle mouse button: contentLoadURL. contentLoadURL was a dangerous feature, which would attempt to use whatever you had copied to your clipboard as a URL whenever you middle-clicked. I call it “dangerous” because with the advent of tabbed browsing middle-clicking went from something done rarely to something done all the time – and any time you missed a link you were trying middle-click you’d end up on some random page (or an alert would pop up, telling you you’re trying to load an invalid location). Fortunately this horrible feature is disabled by default nowadays, but autoscroll still hasn’t been enabled.

One might argue that following conventions is good, but conventions on Linux are tricky; you can follow archaic conventions from the days when users were expected to understand the differences between PRIMARY and CLIPBOARD, or you can follow conventions that 99% of computer users nowadays are used to.

While all of this is clearly Firefox’s fault and there are plenty of other browsers to choose from, Firefox is the default browser and the only reasonable choice (many websites block browsers other than Microsoft Internet Explorer and Firefox, and others render incorrectly in other browsers).

The solution to this, by the way, is to go to the URL about:config and set browser.backspace_action to 0 and general.autoScroll to true. You may also want to set browser.urlbar.doubleClickSelectsAll to false to get more Windows-like behavior.

Update Oct 12: Using the default Ubuntu theme and Gnome options, the tab strip doesn’t have enough empty space. It’s nearly impossible to drag links between two existing tabs because the target area is extremely small (you always end up dropping things on an existing tab), and it’s also impossible to double-click empty space to create a new tab (there is no “empty space” that I can find).

Linux sucks – Sound

August 31st, 2008

Sound on Linux sucks.  This has been an issue since the beginning, and it has gotten a lot better, but it still really sucks.  Any given application is likely to support only a subset of the numerous sound systems (OSS, Esound, aRts, ALSA, PulseAudio) and if it doesn’t support the one you use you’re likely to run into at least some trouble.  Sometimes there are wrappers available (intended to make it possible for a technically-inclined user to get problematic applications working) but they’re not 100%.

The root of this complaint in my case is Skype.  Yes, it’s an evil proprietary baby-seal-clubbing binary, but it’s what my friends use to communicate and it’s the #1 VoIP app.  In order to get Skype to work properly, I have to quit all other applications that are playing sound, even if they’re not currently doing it.  I can’t leave Rhythmbox paused – I have to quit.  If I’ve watched a single YouTube video with sound, I have to quit Firefox (this is really obnoxious if it means I’ll have to log in to a site again after Skyping).  If any music application is still open, Skype just gives me a lot of:

ALSA lib ../../../src/pcm/pcm_dmix.c:874:(snd_pcm_dmix_open) unable to open slave

I’ve tried using the padsp wrapper with the statically-linked OSS skype binary (honestly, should anyone really have to know any of those terms just to chat online???) but the sound quality is basically unusable due to static noise.  I can understand the desire of developers to rectify mistakes in previous sound subsystems, but not providing seamless backwards-compatibility paths for at least ALSA and OSS seems inexcusable to me.  Note that I would be in the same situation if I had an old open-source application that was just unmaintained and too complex for a hobbyist developer to fix – this problem is not inherently caused by Skype’s closed-source nature.

I can’t even remember having issues like this in Windows in the past 10 years.

Update: After a few months, I eventually got Skype working!