Wednesday, April 09, 2014

Filed under - Is the Microsoft UI team incompetent?

Do you ever have a view or setting change in a Microsoft product that you don't like, and even with maximum Google Fu it takes you forever to figure out how to fix it? This is where i'm going to keep these WTH moments, to reduce my future frustration the next time it happens or someone asks me for help and it has been so long I forgot how I fixed it. This post will continually update as I find more problems. If another software vendor (besides SAP) earns comparable disdain, I'll start a post for them.


Outlook 2010

If you are using conversation view, and you click the caret twice to expand the conversation, you may or may not see deleted items included in the conversation. I've found this to be incredibly helpful.

If it doesn't work go to File>Options>Search, and check the box “Include messages from the Deleted items folder in each data file when searching in All Items” and then close and restart Outlook. I'm not sure what planet MS UI Engineers live on thinking putting this option here worded in this way made sense.

Found here

Sunday, October 27, 2013

Getting Android SDK ADB to work on Windows 7

When I call someone from my Nexus 4, I can't hear the phone ringing or the person I'm calling. They do receive the call and can only hear static when they answer. If they call me, I can answer and again they usually hear some static, but I hear nothing. I've tried a factory reset (without reinstalling any apps), and I've tried rebooting in safe mode.

This was a known problem on 4.2.2 if you somehow had the old 4.2.1 baseband version, but the solution wasn't consistent for everyone despite Google support's involvement on their product forums (if you had developer skills it did seem that manually reloading the baseband worked). I didn't see anyone have this problem with 4.3. I'm now trying to install Cyanogenmod, as worked for some people in the past. This isn't the first time I've done this as I've used CM on a G1, G3 Slide, and G2. But it has been a while since using ADB, and in true Windows and Android time sink fashion, there is a bunch of unique weirdness you have to work through.

Here are the steps to get ADB working for my future reference, and maybe for someone's google search in the future. I'll add to this as I complete it.

Download Android SDK and unzip it on your computer to some place easy (preferably no spaces in folder and file names)
In SDK Manager (on the computer), select and download Google USB drivers
(next 3 steps are back on the phone)
In Settings>About Phone>Tap Build Number 7 times
In Settings>select Developer Options>select USB debugging
In Settings > Storage > USB Computer Connection > PTP (Camera)
In Windows Device Manager>Other Devices>Nexus 4> Right Click>Update Driver>Browse>C:..\androidsdkfolder\sdk\extras\google\
In Device Manager it should change to Android Device>Android Composite ADB Interface
Back on the phone you should get a prompt to allow debugging, click ok.
Now you can navigate in a command line to C:..\androidsdkfolder\sdk\platform-tools and type in 'adb devices' to see if your phone registered

Monday, April 25, 2011

Video problems on Dell Inspiron 1501 and Linux

I tried installing Ubuntu 10.10 on my girlfriend's Dell Inspiron 1501 using the normal and alternate install CD. Both methods would appear to install fine, but on the first reboot after BIOS POST, it would hard  freeze on a black screen.

I tried installing Linux Mint 10 instead. It also installed fine and the first reboot got to the login menu normally, but subsequent reboots generally got vertical multi color bars right after BIOS POST. I left it on while doing something else, the screen went to sleep, and when I woke it back up, the login menu came up normally. It took me several hours of research and trial and error, but I figured out how to get the login menu to come up normally right after power on.

The short version is use the nomodeset boot stanza.

The long version is if you can't get your computer to boot, turn it off and back on, then immediately hold down the shift key until you see the Grub2 boot menu. I didn't try this myself, but you should be able to set the grub boot options. Choose (or add to the boot line if it brings it up to edit) "nomodeset".

After you get your computer to boot fully, to set this option for future boots without having to do it manually, open up a terminal and type

sudo nano /etc/default/grub

find the line that says
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

You may have different options in quotes; most will probably have "quiet splash". Quiet says most boot messages will be hidden, splash says you'll get a pretty loading screen, nomodeset supresses kernel video mode setting. Apparently it doesn't work well with some older laptop video cards. If you have anything else in your boot options, be sure not to delete it, just add nomodeset to the end. Mine looked like the following -

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

Press ctrl+x to close the text editor and "y" to save changes

then do

sudo update-grub

Now you should boot correctly in the future. Now I just have to figure out why the battery on this tool of a laptop refuses to charge. I've tried several different adapters, and the battery self test button reports the battery as having 100% life and no errors. So either the battery really is bad, or the charging socket has a bad connection to the motherboard. I can't decide if it is worth risking $25 on a new eBay battery.

Monday, September 20, 2010

Installing Froyo on the G1


If you want to install the latest version of Android 2.2 Froyo on a G1, you have to use a cooked ROM. I'm using Cyanogen Mod 6, and it works pretty good.

The Cyanogen team did some incredible work squeezing Froyo onto the G1. Their documentation of how to do it for the new user is fairly complete but very scattered and out of order. The old adage that great programmers don't necessarily make great documenters is true here. 

Since the G1 is an older device, and the specific steps are very complete at the linked websites in this document, I'm only going to give a more sane order of events here for how to put Froyo on your G1. This assumes you are good with computers, and reading documents, but have little previous experience with Android.

If you have data on your phone (besides mail and contacts) that you want to save, then you need to use Nandroid backup to store that data on your SD card and return it to your phone after the update. Despite what I have read, registering your phone on the network after installing CM 6 did not work without data services on my cell account. You can borrow someone else's SIM with data, or sign up yourself for just one day, then cancel and use WiFi only if you don't want an expensive data plan. There may be a way around it by not installing Google Apps until after you first boot your phone and set up WiFi. I didn't think to try that.


Format your SD card. Download the following files on your computer, and put them on your SD card by connecting to the phone by USB, or just putting the card into your computer and copying them over. I don't see why you couldn't download them direct over the phone data connection. Don't put the files in any folders, or put folders on the card.
  • DREAIMG.nbh
  • Amon_RA's recovery image
  • 2.22.23.02 radio image (if you are on T-Mobile USA)
  • DangerSPL
  • Cyanogen Mod 6 ROM
  • Google Apps Tiny ROM
Get into bootloader by turning on your phone while holding the camera button. Write down the Hboot and Radio version numbers, then follow the onscreen directions to downgrade the firmware to DREAIMG.nbh

Reboot the phone, sign into your Google Account, and follow the directions to install telnetd. Then use telnet to install Amon_RA's recovery image. The instructions suggest you call it recovery.img, which is fine, but if you choose another file name when  you put the file on your SD card, use the name you chose instead when typing it into telnet.

Boot into Recovery by turning on your phone while holding the home key. If the radio number didn't start with a 2.xx, do not continue until you update the radio and verify it took. If you continue with a 1, 3, or 4 radio, you will permanently ruin your phone. Follow the onscreen directions in Recovery mode to update the radio to 2.22.23.02 if necessary, and reboot.

After rebooting, it will return to Recovery mode to finish formatting the cache. There will be no indication it is done, it will just take a few seconds then start responding to keypresses. Follow the onscreen directions to turn the phone off and this time reboot into Bootloader mode. Verify the radio update took by looking at the Radio version number.  Turn the phone back off, and return to Recovery mode.


In Recovery mode,  chose "flash zip from SD card" and flash the DangerSPL.zip file. You can remain in Recovery mode and wipe the "data/factory reset," "cache," and "Davlik-cache." 


Still in Recovery mode, you can load the Cyanogen Mod 6 ROM, and even Google Apps Tiny if you have a cellular data plan and don't want to try to register the phone and set up WiFi, before you are forced to sign into your Google Account.

Don't use the full Google Apps package, the install will crash before it finishes because of too little memory in the G1. You can install the few missing apps one at a time by copying installed apps onto your SD card before adding the next one. You must have a class 6 SD card or better for this to work acceptably. Lower class cards are too slow.

Some people feel like CM6 can be slow on the G1, but it seems like as many feel like it is almost as fast as the stock T-Mobile HTC 1.6 and some of the other cooked Android versions out there. Here is a thread with people debating how to speed it up.


Let me know if I messed something up. This was all from my relatively fresh memory of doing it, while being frustrating paging through the docs figuring out what should happen next. Happy Androiding.

Friday, March 05, 2010

Skiing Taos

Went skiing with Dan and Jon in Taos, NM on February 12-13, 2010. Our trip was so short, we didn't get to see much of the town. It was just under 3 hours from Albuquerque. We got into ABQ at 9pm Friday and to the Abominable Snowmansion hostel in Arroyo Seco outside of Taos just after midnight. We skied Saturday, ate dinner, went to sleep, skied Sunday, and went straight to the airport to come home on the last flight. I got in last night at 11pm. We only got into Taos to eat Saturday night, and of course drove thru it twice going to and from. It looks like a cool town though.

As far as the mountain, it is known as being one of the most technically challenging in the US. Most of the green runs are fairly narrow and many with dangerous drop offs. I felt like they were advanced greens or blues. Some of their blues I thought were easier because they were much wider without drop offs, but steeper of course. It isn't a great big mountain, and it was pretty busy due to President's day weekend.

It is the wrong place for a first time skier. For a good beginner skier on to advanced, it is a very good place. For snowboarders, you need to be a solid intermediate or better to have fun there. It is very hard to snowboard on narrow runs especially when there aren't buffers and it is busy. You have to stay on an edge at all times or you will fall, and transitioning to the other edge takes more space than a skier. The mountain also has many more shady parts, and gets darker quicker because of the mountain's positioning to the sun, compared to most of the places I've skied in Colorado and Salt Lake City.

When I was snowboarding I repeatedly fell because skiers flew by and startled me, causing me to catch an edge in the snow and go flying head over heels or face plant. I wasn't getting back up to speed as fast as I hoped, and the distraction of the skiers was making it harder. On the first day in the early afternoon a skier flew by me about 3 feet away when I was going relatively slow. I caught an edge as I tried to quickly turn, flew up in the air, and landed on my head and butt on hard packed snow. I saw stars for several minutes, and had a headache for about 20 minutes. After that I had enough of snowboarding, traded for skis, and had fun the rest of the trip.

They charged a $10 trade fee, which I have never heard of before. The lift passes were reasonable at $70/day. But I thought the equipment rental was high at the mountain ($40/day) for middle range skis or snowboard. They also didn't rent the snowboard separate from the boots, which almost all other places in the US do. So I didn't save anything by bringing my new snowboard boots.

I knew it was a good idea to wear a helmet snowboarding, and skiing probably. But I figured there was a very low probability of hitting my head hard when going slow. I figured it would probably eventually happen when I was trying to push my skills on a faster or harder run, or some idiot running into me. After that happened, I think I will try to get a helmet before I snowboard again.

The skiers there are very aggressive, to the point of being discourteous, much like snowboarders used to be accused of. Surprisingly they are not good about yielding down mountain, or out of courtesy checking up mountain. They fly by people very fast and very close on even the green runs, where they should know some people are still learning.

Monday, March 01, 2010

The endless abyss of LIRC

I built a home made Tivo out of a computer running MythBuntu (a flavor of MythTV). It installs very easily and quickly if you buy decently supported hardware. If you are using hardware with questionable Linux support, or you want it to do something a little bit custom, it can be an endless time sink to set up. I marginally justify it by thinking I am learning Linux in general along the way.

There are several ways to use a remote control with MythTV, the most common uses LIRC. LIRC is a trashy little pain in the ass program, with outdated and incomplete documentation, that generally can be forced to work if you know what you are doing, or are willing to spend tens of hours trying. I appreciate the author's time in making this program. But honestly if it wasn't free, it wouldn't be worth my time and frustration to use. LIRC needs an IR dongle to receive the remote signals. I use the serial dongle from Iguanaworks.

Set up the receiver
This assumes LIRC is installed and runs by default on your Myth distribution. This is true for most of them. Shut down the computer, plug in the serial dongle, restart the computer.

Test the receiver is working
mode2 can be used to test that the receiver is recognized and passing a remote signals to the computer
sudo mode2 -d /dev/lirc0
Now use any old remote and press some buttons, while pointing it at the receiver. You should get a bunch of pulse/pause gibberish. If you do, all is good, press ctrl+c to break out of it. If you get nothing, you need to figure out why the computer can't see the receiver, or the receiver isn't picking up any signal.

Pick and record the remote codeset
Select a set of codes on the universal remote you want to use. I'd suggest using the highest DVR codeset number, of the same brand as the universal remote, so all keys are likely to be usable. I'm going to use Sony DVR component code 3210 on their RM-VL600 remote.

If lirc is running and you want to reconfigure it, first you have to kill it
sudo killall lircd
Now let's record a new remote control configuration, first change into the recording directory.
cd /etc/lirc
Now start the recorder.
sudo irrecord -n -d /dev/lirc0 lircd.conf.new
Follow the directions onscreen. After you are done, archive your old lircd.conf and make the newly recorded conf current.
sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd.conf.old
sudo mv /etc/lirc/lircd.conf.new /etc/lirc/lircd.conf

Verify the remote is being recognized
Use irw to test Lirc's interpretation of the remote keys. First restart lirc to load the new conf file.
To restart Lirc on Ubuntu 9.10 and up
sudo service lirc start|stop|restart
On older Ubuntu versions
sudo /ect/init.d/lirc start|stop|restart
Now type irw. Press buttons on the remote. You should get the name of the key, and the name of the remote echoed in the terminal. After you are satisfied, press ctrl+c to break out of irw. If you got nothing, lirc can't see the receiver, or wasn't able to load the new configuration file.

Map button names to a lirc event
Open up the lircrc file to see what remote keys are mapped to MythTV keyboard shortcuts.
nano /home/(username)/.lircrc
You should see an include statement for
/home/(username)/.lirc/mythtv
You need to open this file,
sudo nano /home/(username)/.lirc/mythtv
Verify the remote name and button names in lircd.conf are mapped to the correct MythTV keyboard shortcuts in this file. Edit lircrc as necessary. After you get done doing this, you need to restart lirc and restart MythTV frontend. Your remote should work now. MythTV no longer requires irexec or irxevent anymore, contrary to a lot of docs you will find on the intrawebs.


Other random notes
Check /etc/lirc/hardware.conf that DEVICE=/dev/lirc0

To see if lirc or irw is in the process list (ignore grep x in list)
ps aux | grep (lirc or irw)

Saturday, February 27, 2010

My political rants

No more inter-generational theft!

I recently read about this. And I felt like I had to respond to my esteemed Senator. Here's what I sent him...

Dear Senator Cornyn,

I recently read about you supporting Senator Bunning during the debate on extending the unemployment benefit period for families decimated by the lengthy recession.

You were quoted as saying "Somebody has to stand up finally and say, 'No more inter-generational theft!'"

I had to laugh. Where were you when the Bush administration stole from my generation by passing Medicare part D? Where were you when the Bush administration stole from the children of my generation by lowering taxes while prosecuting an extraordinarily expensive and unnecessary war through deficit spending?

I really wish you would stick to your admirable principles on fiscal responsibility when both Democratic and Republican administrations are in power!

Sincerely, Colin.