I’ve been running Ubuntu 10.10 for a year or so now and there have been a few times, after installing some updates I presume, where I’ve restarted my computer and suddenly my monitor resolution isn’t recognized. Normally I run the maximum resolution (1920×1010) of my monitor, a Dell P2311H. But on these restarts, my resolution is reduced to 640×480. Very annoying. Now, from what I understand, this is not an issue with Ubuntu per se, but rather the monitor’s failure to send the proper EDID or Extended Display Identification Data for the monitor. Essentially the EDID sends information of what display settings the monitor is capable of, such as refresh rates and resolutions. The basic remedy is to manually enter these settings.
Very recently I had this issue occur to me twice for two separate issues, which is really what’s prompting me to write this post. I don’t want to have to dig through the interwebs again to solve this. So, in my case there were two separate incidents with two different resolutions.
Round 1
The first time my screen resolution was all jacked up, it was because of the “Screen” settings in my xorg.conf, which is located at /etc/X11/xorg.conf.
NOTE: be sure to make a backup of xorg.conf before making edits. You don’t want to make matters worse, and there’s no guarantee that this solution is the solution to your problem.
At the bottom of xorg.conf you should see a section labeled “Screen” or something similar to this:
Section “Screen”
Identifier ”Default Screen”
Default Depth 24
EndSection
In this section you’ll want to add a subsection labeled “Display” that defines your available screen resolutions, or more importantly a Virtual resolution which appears to server as a setting for the maximum allowable resolution. Edit the “Screen” section to look something like this:
Section “Screen”
Identifier ”Default Screen”
Default Depth 24
SubSection “Display”
Virtual 1920 1080
Depth 24
Modes ”1920×1080 1680×1050 1344×840 1280×800″
EndSubSection
EndSection
The resolutions you enter should obviously match to available resolutions for your monitor. More importantly the Virtual entry should match you monitor’s maximum resolution, or rather the maximum resolution you intend to use, whichever is smaller.
Now restart xerver. Depending on your default display manager, you can do this by running one of the following commands:
sudo restart lightdm
or
sudo restart gdm
or
sudo restart kdm
You can find out what your default display manager is by looking at the file default-display-manager in the /etc/X11 directory.
After the restart, maybe you’re good, maybe not. On to…
Round 2
The second time my resolution went all wonky on me it was due to the refresh rates. For this edit, we’ll still be working with the xorg.conf file, but we’ll be editing the “Monitor” section. In my case, this section looked like this:
Section “Monitor”
Identifier ”Monitor0″
VendorName ”Dell”
ModelName ”P2311H”
HorizSync 28.0 – 33.0
VertRefresh 43.0 – 72.0
DisplaySize 509.76 286.74
Option ”DPMS”
EndSection
The two fields in question are the HorizSync and VertRefresh. You’ll want to change these to whatever your monitor’s refresh rates are. You’ll probably have to do a bit of Googling to figure it out. Of course you could probably just enter in these numbers I have below and see what happens. I believe the worst case scenario would be that Ubuntu would restart without any GUI in which case you’d be stuck in the terminal. So if you’re not comfortable with the Terminal it might not be worth the gamble. Also, in my case DisplaySize looked awfully suspicious and so I removed that line completely.
Again, in my case, the final section looked something like this:
Section “Monitor”
Identifier ”Monitor0″
VendorName ”Dell”
ModelName ”P2311H”
HorizSync 30.0 – 83.0
VertRefresh 56.0 – 76.0
Option ”DPMS”
EndSection
Again, restart your display manager as per the instructions from Round 1 and with any luck you should be in business.
My wife and I recently switched from T-Mobile to Sprint for a couple of reasons. The first being that T-Mobile is scheduled to be consumed by AT&T and we’d rather get rid of our phones all together than go with AT&T. The second being that we just moved to Lawrence, KS and our T-Mobile service wasn’t quite as good as we’d hoped. So our first reason for the switch was in hopes of better service as Sprint’s headquarters are in Kansas City, not 45 miles away. As it turns out, Sprint service here in Lawrence is questionable. It’s been reasonably decent throughout the area, but that’s about it. The majority of the time we get about two out of four bars. We have service in more places that we had with T-Mobile, but where T-Mobile had service, the service was strong. So, I guess it’s a bit of a crap shoot either way.
With our new service, I’ve had to rework how I’ve connected Google Voice to my phone. As it turns out Sprint handles Google Voice a lot differently than T-Mobile did. Now, keep in mind, I have the option of keeping my Google Voice set up and how it connects to my mobile phone the same as I had it on T-Mobile. Essentially, I just used Google Voice as a second number that forwarded to my mobile phone and used Voice for my voice mail. The voice mail isn’t the greatest because it depends on a data connection to retrieve voicemails, but you gain Google’s transcriptions of your voicemail messages, which I think is amazing. I barely listen to voicemails any more because I just read them. Setting this up isn’t as simple as it was with T-Mobile (just a setting in the phone’s voice settings). You now have to check the proper settings in your online Google Voice settings and then call *28-XXX-XXX-XXXX (where the X’s are populated with your Voice number) from your mobile phone to redirect calls to voicemail.
But back to what you get with Sprint’s Google Voice integration…
Initially, I was a bit confused and annoyed with the integration. Somehow it just seemed like Sprint and Google’s way of disabling Google Voice calls from the phone, which they really have successfully done. However, I never really used that feature anyway, so I didn’t really care. What I did gain though, which was awesome, was the ability to have my Sprint phone number call in to my Google Chat account. Basically, when you integrate your Sprint and Google Voice accounts, you are given an option to use your mobile number as your Google Voice number. Your previous GV number is removed after 90 days if you do this (unless you pay Google $20 to keep the number, which seems reasonable to me). So, now that I have my mobile number set as my Google Voice number, if someone calls my Google Voice number which is my mobile number, it rings both my Google Chat account and my mobile phone. Why is this awesome? Well, because if I’m at my desk and have my Gmail open, I can answer the call with my computer. This is awesome for two reasons. First, because if I answer with my computer rather than my mobile phone, then the call is running through Google Voice rather than Sprint and so the call does not count against my monthly plan. It’s a free call. The second reason is that if I’m in an area that doesn’t have a good signal, such as my in-laws’ basement (where I’m currently working), I can answer a call with my computer that has a good Ethernet connection over my mobile phone that has a weak signal.
There do seem to be some quirky issues with the integration that I have yet to full figure out. For example, with the integration, my text messages are now sent through Google Voice, which is fine with me. However, having the option to have them run through my normal text messaging service on my mobile phone would be nice. Especially since Google Voice doesn’t support MMS (Multimedia Messaging Service). Now it’s entirely possible this option exists, but like setting up voicemail forward (as described above) it doesn’t seem to be an easy thing to figure out.
So do I like my Sprint service better than T-Mobile? Probably not, but seeing how T-Mobile is going away, Sprint seems to fill in alright.
Do I recommend using the Sprint + Google Voice integration? I think the verdict is still out, but I’m leaning towards yes. I’m still playing around with the new set up and I wouldn’t be surprised if I change things around again. I’ve already changed the set up 2 or 3 times in the past week have had Sprint.
And for the record, in my comparison, I’m using the Nexus S 4G on Sprint and was using the Nexus S on T-Mobile.
Recently I had noticed a padding (or margin) issue with the layout of my site. Now, while most users would not have seen this, it seemed to pop up for me every so often. I was seeing a lot of extra margin on the top of my page, 28 pixels to be exact.
Now, being the lazy CSS person that I am (really I just despise IE and refuse to waste my time making things look good for it), I didn’t really think much of it. Everything seemed to look fine on most of my regular browsers. But finally I just got the itch to take care of as it seemed that I was seeing it more often. Probably just me, but whatever. So I start looking through the code for the site and I find that this block of code as being inserted into my header tag:
<style type="text/css">
html { margin-top: 28px !important; }
* html body { margin-top: 28px !important; }
</style>
WTF. I didn’t write that, which leaves one culprit and one culprit only. WordPress. I love you WordPress, but sometimes you make me crazy. Turns out, the reason this block of code is being inserted, is for a fancy new User Admin Bar that will show up on your WordPress site while you are logged in. For some reason, it doesn’t work though. I’m sure it works for some people, but on my site and apparently on others’ sites as well, it just doesn’t show up. And so, as a result, you get this 28px margin that you didn’t ask for because when you upgrade to 3.1 the user admin bar is automatically turned on. I’ll refrain from discussing in depth how WordPress should avoid crappy facebook-like user experiences.
So what to do about it!?
QUICK ANSWER
Log in to your WordPress, go to Users->Your Profile and uncheck “when viewing site” under Show Admin Bar.

Save your profile and the issue will no longer appear. Keep in mind that this fix will only resolve the issue for yourself. Other users using the site may still see the issue if they have the box checked in their own user preferences. Getting around the issue entirely, well franking I just don’t care enough to do the workaround on it. Hopefully WordPress will resolve the issue in a coming version though.
So there are a ton of possible reasons why your .htaccess files might not be working. If the AllowOverride is set to None in a parent directory, that could be causing problems. If AccessFileName is not set correctly in your apache2.conf, that could be the source of your misery. In my case, it was the rewrite module. It appeared as though my .htaccess files weren’t being read by the server because rewrites is basically all then do on my sandbox. So, what’d I do? Spent the past six hours fighting with all the things that were working only to find that there’s a rewrite module that has to be enabled. Who knew.
So, enabling the module is pretty simple, assuming you’ve got it installed. Pretty sure it’s a default module though, it should be at least, but then again it should also be enabled by default in my opinion. Anway, you just need to make a symbolic link to the rewrite.load file from the mods-available directory to the mods-enabled directory (all found in your apache2 directory, usually found at /etc/apache2).
QUICK ANSWER:
Open a terminal and run the following:
$ cd /etc/apache2/mods-enabled
$ ln -s /etc/apache2/mods-available/rewrite.load rewrite.load
NOTES:
There are couple of things to note here. First, we are assuming that Apache is installed at /etc/apache2 on your system. We are also assuming that you have the rewrite module file rewrite.load in your /etc/apach2/mods-available directory. Finally it is important to note that when running the second line in the terminal, the one creating the symbolic link, you have to enter the full path to the file in the first parameter. You can’t shorthand it or enter it as a relative path.
Also, you can do a quick check of your mods-enabled directory. If there’s a link to the rewrite.load file already in there, this solution obviously isn’t going to work for you, so good luck.
Hope this saves someone else six hours of their life.
Last night I was reading a couple of articles online that got me thinking and then got me ranting in my head. WARNING: this is not as much a concise thought as it is a rant.
The first was an article from boston.com about how now that Verizon is carrying the iPhone, they’re going to stop selling “unlimited” data plans. Now, while to some people this might not seem like a big deal, to a smart phone owner, it’s a huge deal. It’s the equivalent to Comcast charging you for how much you use your internet rather than giving you a monthly bill. Except that monthly bill is outrageously expensive anyway. Thanks Comcast. I hate you. Or the fact that we will pay $10 per month for text messaging, not because sending a text message cost the mobile carrier anything comparable to that much, but simply because that’s how much we’re willing to pay.
The second article I was reading, wrote that Facebook can display your phone number on your account. Now there are some intricacies to this that the article didn’t go into. Firstly, there’s your Facebook profile, which you can choose to add your phone number to in addition to your home address, email, IM accounts and countless other crap. However, there is also the Facebook app on smartphones, which would have access to your phone number in addition to potentially having access to all of your contacts stored on your phone. Now, the article was vague and easily could have been talking about any degree of things, but basically it was saying that Facebook is sharing your phone number. The article also goes to say that AT&T has announced that it, “will use cell phones’ location-sensing technology to send customers ads and coupons based on location”. All of which is awfully upsetting.
Here’s the thing though…
I might not like these things. I might find it shameless that AT&T would send me ads on my phone PERIOD. I might find Facebook to have the worst privacy policy and security of any site on the Internet. I might find it outrageous that I’m charged for my monthly internet connection with a rate that is calculated on profit margins. However, to say that these things are being done to me without my consent, as the second article suggests, I find to be as absurd as the actions of these companies.
The fact is that we as consumers have options. I don’t need to be on Facebook. I don’t need to use Facebook’s mobile application. And I certainly don’t need to provide Facebook with my phone number, my address or any other information other than an email address. Hell, I don’t even need to give them my real name. Yes, Facebook is awesome and all of my friends are doing it. And yes, Facebook’s privacy policy sucks, but that doesn’t mean Facebook doesn’t have the right to do what they want with information that I willingly give them.
When it comes to AT&T or Verizon, does their service suck? Yes. Will they shamelessly send you ads on your phone and charge you for it? Sure, if you let them. Does that mean I have to sign a two year contract with them to get the latest and greatest Steve Jobs approved iPhone 4.0 with shitty service? Maybe. Is that unfair? No. That’s life.
The problem here is two fold. Yes, these companies should have better principles. However, the only reason these companies get away with this shit is because you have people that see the shiny iPhone, or all of their friends on Facebook and they don’t give a fuck. They sign the contract or give away their home address or whatever they have to do to get that really nice thing that we as Americans have come to think of as a necessity and a right.
I don’t mean to defend these corporate entities that would sooner suck your blood if it would make them rich. I hate them. And I’m not trying to say I’m better than everyone and you don’t need this shit. Here are my Facebook and Twitter accounts. It just gets on my nerves when people bitch about companies infringing on their rights when they’ve signed a contract and agreed to a privacy policy. Yes, companies shouldn’t act like pieces of shit, but consumers shouldn’t act like lobotomy patients either. Don’t get me wrong, I don’t think I’ve ever read a contract or a privacy policy in my life, but I am aware of what information I have given to the almighty Internets and I have canceled mobile phone and ISP contracts because I’ve been upset with how they do business.
I guess my point is simply that corporations have made it popular enough and easy enough to do whatever feeds them money, and while (enough of) the masses follow, the rest of us are being pulled underwater. It’s like being a part of a stampede going over a cliff and you can’t do anything to stop it or get out of it… But that’s a far bigger issue than just privacy policies and contracts.
Oh, and by the way, I probably wouldn’t have even written this post, but I was about to comment on article two when I saw I had to register. I did not comment.
After getting Android Notifier working on my machine by installing OBEX, I installed Blueman on my Ubuntu 10.10 machine. I’m not sure why, but Blueman seems to work better with Android than Gnome Bluetooth. I like the interface of Gnome Bluetooth better than Blueman, but I could only get file transfers to run from Android to Ubuntu and not the other way around. Additionally, it’s fairly easy to change the download directory for Bluetooth file transfers to Ubuntu using Blueman. If anyone has a solution to either of these two issues, I’m all ears.
Anyway, back to Android Notifier. Once I installed Blueman, the notifier stopped working. Everything was still paired correctly and all that, but Notifier just wasn’t getting the messages. Turns out, Blueman seems to use an Indicator plugin that hijacks those notifications. Solution? Turn off the Indicator plugin. From what I can tell it doesn’t do much anyway… of course maybe I should retest sending/receiving files from my Nexus.
QUICK ANSWER:
Right click on the Blueman icon in your Notification Area. Select Plugins. And now un-check Indicator from the list on the left side. Done.
Again, I don’t know if there are any adverse effects to turning off Indicator. But I can’t imagine it’ll break anything.
I’ve been using the Android Notifier with my MacBook for some time. If you haven’t checked it out, please do. The application sends notifications to your desktop for everything from incoming texts to a low battery warning to third party notifications. It’s a great little app if you’re into that sort of thing. So when I made my switch to Ubuntu, naturally I wanted to get the Android Notifier working with my new machine.
I won’t get into how the application works or how to pair your phone with Ubuntu. There’s plenty of info on those out there. The issue that I was running into, was with my Nexus S paired and being able to send files to and from Ubuntu, I could not get Android Notifier to pick up on any of my test notifications. When setting up Bluetooth on my computer to allow for file transfers I’d discovered that Android uses OBEX to push and receive file transfers over Bluetooth. So, with this in mind, I decided to investigate how Android Notifier listens for notifications. After checking out the wiki on the project page for Notifier, I found this article regarding the protocols used by Android Notifier (thank you to the Notifier team for posting the documentation on this). Turns out for the Bluetooth connection, Notifier uses a UUID (Universally Unique Identifier) when sending notifications.
QUICK ANSWER:
While this may vary between distributions of Linux, on my Ubuntu 10.10 setup, I had to install the UUID command-line tool in order to get Android Notifier working. To do this, run the following command:
$ sudo apt-get install uuid
I hope this helps someone solve their issue using Android Notifier. I’d hate for someone to miss out such a sweet app.
So recently I’ve switched from using Songbird to Rhythmbox for my music player. Not sure if the switch is permanent to Rhythmbox, but with Songbird development being dropped for Linux I sure won’t be using Songbird any more. Maybe Nightingale when that has a stable release.
Anyway, with my switch to Rhythmbox, I lost all of my music ratings. Having spent a reasonable amount time getting those in, I didn’t want to give them up and start from scratch. So. I built this little Flash App to merge an xml file exported by the Rating File Plugin for Songbird with the rhythmdb.xml file for Rhythmbox (found at ~/.local/share/rhythmbox/rhythmdb.xml on Ubuntu 10.10). The Songbird plugin will export as a .srf file or something like that, but it’s actually just an xml file, so just change the extension or save it as an xml file when prompted by the plugin.
Be sure to back up your rhythmdb.xml before you go messin’ with it. Not sure what happens if you remove it all together.
If you’re wondering what exactly the app does, it goes through your exported Songbird rating xml supplied by the plugin and grabs each song with a rating, matches it by song title, artist and album to your rhythmdb.xml and adds in the rating. When it does this, if there is already a rating in your rhythmdb.xml for the song, it will be overwritten. Note that if an album has two songs with the same name and artist (which happens more often than you’d think), I’ve simply omitted them from the rating transfer. So neither song receives the rating. Once the files have been parsed, the app prompts you to download the update rhythmdb.xml file.
I know that this isn’t the most robust way for this to work. I mad it like this for simplicity. Not looking to make anything amazing, just wanted to get what I needed done and thought I’d share.
So here it is. Just click on the labels or textfields to select your files and click the Run Script button and let it run. Easy money. Oh, and sorry for the crudeness of the App. Just wanted something that got the job done.
Please comment if you have any trouble.
[EDIT]
…hmm. I just testing the app and wasn’t prompted to save the file when it finished. Might need to look into that. If you can figure out how to download the swf, it should run locally. Here’s the swf file in case you’re not savy enough to pull it from the HTML.
Playing around with setting up my Linux box as a VNC client, I ran into an unexpected dilemma. Basically, when running Ubuntu 10.10 and connected through VNC using a Mac as a client, whenever you press the ‘D’ key, all windows collapse. Think it’s not a big deal? Start counting how often you press the ‘D’ key in normal typing. In fact, I initially tried running a Google search on the issue and couldn’t type the search without pressing the ‘D’ key. Anyway, really annoying problem with a really easy fix (assuming you have access to the server computer).
What’s going on.
In Ubuntu 10.10 there is a default Keyboard Shortcut for “Hide all normal windows and set focus to the desktop”. Seems like a useful shortcut. Unfortunately the default (as displayed by the Keyboard Shortcuts dialog) is set to Mod4+D. Now, I have no idea what Mod4 is. Presumably a modifier key like ‘control’ or ‘alt’. The interesting piece to this is that when logged in through VNC (using Chicken of the VNC as a client on my MacBook Pro) the modifier key must not be recognized and so is simply dropped off from the keyboard shortcut. Thus, every time you press the ‘D’ key, all of your windows collapse.
The solution.
Easy. Just open up the Keyboard Shortcuts dialog on the server machine by going to System -> Preferences -> Keyboard Shortcuts, toggle the Window Management group and disable the shortcut by selecting it and pressing ‘delete’. Or change it to whatever shortcut you’d like to use.
Hope this solution helps someone some headache.
