Pages

10.28.2012

Google Voice SIP calling on Cyanogen Mod

Being poor college student, I am always looking for ways to save money.  My current cell phone plan on Virgin Mobile costs me a whopping $25 and includes 300 minutes, unlimited texts, and "unlimited" data.  All of these used to be fine for me, but since I've moved away from home, I find myself engaging on more voice calls.  In the past I never used all 300 minutes, but in the past two months, I've had to buy more minutes before the end of the month.

While the easy solution would be to jump up to the next highest plan, $45 dollars  a month for more minutes on a mediocre network is hard to stomach.  Therefore,  I investigated using Google Voice over IP for making calls.  It turns out that the setup procedure is not all that difficult, provided you have patience.

I am using an LG Optimus V for this tutorial, with a custom CyanogenMod 7 based ROM.  I will assume for the purpse of this tutorial that you are using a CyanogenMod based ROM with access to SIP settings. (I don't know if stock Android allows access to these settings.)

  1. Create a Google voice if you haven't already.  Go to Google.com/voice and sign in with your Gmail account.  You will be asked to pick a number and/or area code.  Pick something memorable is it's available.  Give GV your current phone number and let it forward to that number.  You can disable this  later.
  2.   Install Google voice app on your Android phone.  You can find this in the Play store.  Open the GV app and sign in with your Gmail account.  When asked whether you want to use GV for calls, choose "never."  The other options will use your GV number, but still use your cell minutes, which defeats the purpose of GV.
  3. Install the app called SIPDroid from the play store.  Once installed, open the app and choose the "create new PBX linked to Google Voice."  You need to fill in the password blank with a password of your choice.  This password will be for your account that SIPDroid will create at pbxes.org.  The username field at the top can be left as is or changed if you prefer.
  4. Once SIPDroid finishes setting up your PBXes account, it should display a little green dot up in the status bar.  When you see the green light, enter the settings of SIPDroid and navigate to the settings for the PBX account.  (It should be the top option in the main menu.)  Copy the username and password and paste it into a note application.
  5. Open up your Android settings menu.  Go to Call Settings, scroll to the bottom and tap on "Accounts" under the "Internet Call settings" section.  Press the add account, and fill in the fields using the info you copied out of SIPDroid.  The server setting should be pbxes.org .
  6. Uninstall SIPDroid.  You no longer need it.  The app just makes it convenient to set up pbxes.org.
  7. Press the back button and read the info about the account. You should see some messages about the account connecting.  Check the box to receive incoming calls.  Go back up to the previous menu and touch the setting for "Use internet Calling" ,  and pick "Ask for each call."
 At this point, you return to Google voice settings from a desktop browser and uncheck the forwarding box under settings.  Basically, you don't want Google voice to call you and use your minutes.
  • Pick up another phone and call your Google voice number.  Your phone should begin to ring momentarily.  If that works, try placing a call and choose Internet call when prompted.  If both of these worked, Congratulations.  If not, you need to follow my optional steps to get outgoing calls working.
Optional steps to fix outgoing calls:

  1. Log in to your Google account from a web browser.  Go to the Account settings menu and choose Security.  Follow the steps to enable two-factor authentication.  
  2. After you have enabled two-factor auth, you can now add passwords on a per application basis.  Create a new one-time password for PBXes.org.  The name doesn't matter.
  3. Open up a new browser tab and navigate to pbxes.org.  Log in using the username and password you typed into SIPDroid to create the account.
  4. Click the button labeled "Trunks" on the left.  Pick the one called Gtalk/youremail.gmail.com.
  5. Copy the new one time password from Google and paste it into the password field on the PBXes page.  Keep in mind, you are NOT changing the password or pbxes.org.  You ARE changing the password that pbxes.org has for your Google account.
  6. Save the changes and log out of pbxes.org.
  7. Try making a call again from your phone using Internet calling.  It should now function as expected instead of saying "The call cannot be completed as dialed."
Additional info:
Call cannot be completed issue
From what I gather, the reason behind the call cannot be completed issue is that pbxes.org cannot handle passwords with special characters.  If your Google account has a password with specials in it,  PBXes cannot log in to your Google account to complete a call.  The one use password made by Google only contains letters, and therefore will function properly in PBXes.

Keep in mind that you will need to have some sort of data service available to use VOIP calling.  If all went well, you will now be able to place free calls to U.S. phone numbers and talk forever.  Please email me with comments or questions or if you need some help with the setup process.

10.08.2012

Nexus 7: The perfect size between phone and laptop

There's really not much point in me writing a full review of a tablet that has already been well received by internet news outlets everywhere.  If you want to read some, here are a few links.
http://www.engadget.com/2012/06/28/nexus-7-review/
http://www.anandtech.com/show/6073/the-google-nexus-7-review

I do however, feel compelled to write about how I use the device day to day.  First of all, I am a college student attending Eastern Washington University.  That should already give some indication of how I use this device.

Here is a list of activities I do with my Nexus 7 in descending order from most often to least often.


  1. Alarm clock:  With the Moko case from Amazon, standing the N7 as a clock is super easy
  2. Textbook reading:  Buy the E-book versions of your textbooks from Amazon or B&N and sync them to your tablet.
  3. Reading the morning emails
  4. Casual web browsing when I'm too lazy to whip out my MBP
  5. Geocaching:  Download C:geo from Google Play, sign in, cache some maps (you won't have wifi when you're out caching), and enjoy the hunt.
And there you have it.  My top 5 use cases for the Nexus 7 tablet.  Despite having only 8 gigs of storage, I have yet to fill it up.  The wifi only limitation isn't really a deal breaker for me either, since I own an Android smartphone.

Those of you in the market for some sort of small tablet should pick the N7 over the competition, simply because it is the most pure of the Android tablets out there ( including the Kindles and Nooks).
And for the price of $200 direct from Google, it's a bargain considering how much hardware it packs inside.

9.19.2012

Keyboard cleaning the easy way

Look down at your keyboard.  How much dust is stuck between the keys?  Are there any bread crumbs  down in there?  How much coffee have you spilled on that thing over it's life time?  What flavor of jam is that on the space bar?

Chances are that your keyboard needs a good cleaning.  Forget about the canned air or microfiber cloths.  Those are worthless when it comes to keyboard cleaning.  The only way to properly clean a keyboard is in the dishwasher.

Take that keyboard, put a twist tie on the cable, and toss it in the top rack of your dishwasher upside-down.  ( Don't put soap in the machine while you do this. Also, run the keyboard by itself.)  Run the dishwasher through a regular cycle.  When it finishes, shake the water out of it.

You'll want to be certain that the keyboard is completely dry before plugging it back in.  Warm the oven up to about 135 degrees.  (135 is not hot enough to burn you, so it won't melt the keyboard either.)  Place the keyboard on the rack, or on a cookie sheet if it makes you feel better, and set a timer for a few hours.

When your keyboard is completely dry, plug it back in and enjoy your like-new keyboard.


(I wouldn't try this procedure on a fancy mechanical, wireless, or other expensive keyboards.  OEM Keyboards like the HP or Dell ones will be fine though.)

8.02.2012

A (functional) OpenVPN bridged server setup

OpenVPN is a handy tool for the mobile tech guy who like to have access to his/her home/office network or just prefers some privacy when browsing on-the-go.  OpenVPN is not the only solution out there for this sort of task, but it costs nothing and works on all platforms.

The problem I have run into in the past and very recently is that the documentation for configuring OVPN in bridged mode on the server side is very incomplete.  Most of the scripts on the internet simply do not work the way I need them to in my setup... My personal server has only one NIC and sits behind the router.  Additionally, most of the instructions do not include the facts that IP forwarding and default gateway settings need to be enabled in order to use the VPN to securely browse the Internet.


7.28.2012

More tabs? No problem.



No good tech guy would argue that 4 gigs of RAM is sufficient for a modern system.  Why Apple even sells a machine with the option of 4 gigs is beyond me.  The good thing about the low SKU machine is that adding RAM yourself after the fact is ridiculously easy and is so much cheaper than buying it from Apple.  The 2012 Macbook Pro (non-retina) that I purchased this July came to me with 4 gigs, and is only officially, according to Apple, upgradeable to 8 gigs.  Unofficially, you can put 16 gigs of RAM in the machine, the same amount the Retina can be configured to hold.

Corsair's Vengeance DDR3 1600 RAM will work just fine and cost you the same as 8 gigs from Apple.  Unibody Macbook Pros are so easy take apart and install RAM into.  I did it in my pajamas in 10 minutes before I was even "awake".  Just be sure the machine is off fully, not just idling in standby mode.

With the default 4 gigs of RAM,  I experienced some serious slowdowns when I had G+ hangout running along with another 20~ tabs,  Apple mail, and a few terminals.  That is a very average system load for what I do and my brand new machine was choking on it.  After changing to 16 gigs of RAM, I was able to open up 166 tabs in Chrome, Apple mail, and type up this article with no problems.  And there is still memory to spare.


Here are a few shots of the Macbook Pro that I took shortly after getting it.  I apologize for the crappiness of the photography; I only had my phone to take pictures with.






5.21.2012

Simple is better

Despite the name of this blog, I have never actually written anything about coffee.  I very much enjoy a good cup of coffee, especially in the morning.  However, a bad tasting cup of coffee will ruin a morning, if not the entire day. On most days I drink a cup or two of my own coffee at home and take a cup with me to work.  The last one never tastes good though, and it's all about the mug.



A run-of-the-mill cheapo mug:
The most common design of terrible coffee mugs has so many flaws that it doesn't have any positive points.

The lid of the poorly designed mug (right) has lots of places for liquids to leak out from.  It also features a multitude of creases and seams for hot cocoa and coffee creamer to build up and harden into, making cleaning the lid a real pain in the ass.  The nice coffee cup lid has no seams or slots for liquids to escape from or build up in.







Simple is ALWAYS better.  A flip top may not be as convenient as the slider, but it is better.  It actually seals liquids inside the cup.  It also doesn't build up a disgusting goo from the coffee cream, unlike the slider which traps residue off to the sides.









The inside of the cheap mug is plastic of course, so the worst flavors tend to become part of the plastic. A little history of everything you have been drinking is in every sip.  Not exactly the 23 flavors that are in every Doctor Pepper.  









My new 20 dollar mug is stainless steel on both the inside and out.  It also has no seams at the top between the inner and outer layers, so no water can be trapped in between when the mug is washed.  The coarse, rounded threads and curved edges also contribute to easy cleaning.  There are no places for goo to become trapped.




I picked out this new white coffee mug from *bucks today basing my decision solely on the idea that simple is better.  The world would be a better place if everyone thought this way.

3.24.2012

Root, Recovery, and ROM on a classic Droid (A855)

This week I picked up an original Motorola Droid from a co-worker who had upgraded to a Droid Razr. Since I use Linux, most of the rooting and recovery flashing we completely useless to me.  After piecing together enough information from various sources, I was finally able to perform a manual root of the Droid, followed by a bootloader upgrade to install clockworkmod which will allow me to install a new ROM.  I will document my procedures here, so you don't have to go through all the hassle that I did.

First things first, this tutorial is for LINUX users (it may also be applicable for Mac users).  If you have Winderp, there are plenty of other tutorials out there for you.

Prerequisites:

  • Motorola Droid
  • adb installed on you machine
Downloads:

Rooting the phone:
  1. On the phone itself, navigate the settings menu to Applications > Development and enable "USB Debugging."
  2. Back up one level and enable "Unknown sources."
  3. Plug in your phone and open terminal.  Then type adb devices .  You should see a string of characters.  If you see nothing, then you need to troubleshoot adb.
  4. Extract the contents of superoneclick on your computer and then upload the psneuter file from the "exploits" folder using adb push psneuter /data/local/tmp .
  5. Jump into adb shell by typing  adb shell, then run chmod 777 /data/local/tmp/psneuter .
  6. Change directory and execute the psneuter exploit.  cd /data/local/tmp,  ./psneuter
  7. You will be disconnected from adb shell.  Run adb kill-server and adb devices on your local box.
  8. Reconnect to adb shell and you should see the # sign instead of $.  If you dont see #, you don't have root.
  9. Remount the system partition: mount -o remount,rw -t yaffs /dev/block/mtdblock4 /system
  10. In another terminal, copy the su and busybox binaries to the system bin folder: adb push su-v3 /system/bin/su and adb push busybox /system/bin/busybox
  11. Switch back to the adb shell terminal and run the following: chmod 4755 /system/bin/su  and chmod 4755 /system/bin/busybox .
  12. Type "su" in adb shell. If you get a blank line then you are good to go. If you get an error, you may need to push a different version of busybox.
  13. Install SuperUser.apk by typing in adb install SuperUser.apk in the other terminal.
  14. Remount the system partition as RO in adb shell with: mount -o remount,ro -t yaffs /dev/block/mtdblock4 /system .
  15. Reboot the phone with adb reboot in the local terminal.
  16. Dowload the root tester app from the Market and test root access.  If all went well, you have full root access.
The recovery installation portion will come at a later time, when I get a chance to develop the topic fully.

2.22.2012

Chainload chimera with grub

If you want to dual boot your hackintosh with Linux using grub to select the operating systems, add the following lines to the 40_custom file and rebuild the grub menu.

menuentry "Mac OS 10.7 loader"{
set root=(hd1)
chainloader +1
}


The "40_custom file is located at "/etc/grub.d" .  To update the grub menu, run "update-grub" from terminal.  Once you run the update script, you will want to remove or comment out the other Mac OS entries that grub finds, as these will not work. (OS X needs chimera to boot from a normal BIOS.)

This scenario works only if you have Linux and grub on one hard drive and Mac OS on another.  Substitute  (hd1) for whatever hard drive you are running Mac OS from.

2.17.2012

Mail not sending on iPhone? Check SMTP settings

Today I fixed a coworker's iPhone which could not send emails from both of his email accounts on his phone.  I discovered that the problem stemmed from the SMTP settings configuration, which did not enable authentication by default.  To correct the problem you will need to enable authentication under the SMTP settings pane; most people will be fine choosing password authentication.

 

The final pane is where you need to be in order to change the SMTP settings.  The server port will vary depending on your service provider.  Newer implementations will use port 587, some servers will use port 25, and yet others will use port 80.  Not all mail services will support SSL, but I highly recommend using it if it works with you server.
One last thing to note: In my example, I use gmail.  Setting up a gmail account using this method should not be necessary, as iOS implements gmail correctly and automatically configures the settings correctly.

1.31.2012

Quick fix for Google Chrome Crashing in Windows

Over the last few days I have run into a few PCs people have given me to fix with Google Chrome installations that crash immediately upon opening.  By crashing I mean Chrome's way of crashing, where the tab shows a big blue page with a sad face that says "Aw snap."

If you delete the users folder in Chrome's directory (please back it up first), Chrome should start working again. Keep in mind that this will clear all of your settings, extensions, bookmarks, etc.  To delete this folder, enable the display of hidden files in windows explorer.
For XP: C:\Documents and settings\your user name\Local Settings\Application Data\Google\Chrome\User Data
Vista / Win7:  C:\Users\your user name\AppData\Local\Google\Chrome\User Data.
Delete the user data folder and fire up Chrome again.

Side note: It seems that the crashing in this manner may be related to spyware/adware installing bad extensions in Chrome.  Both of the computers I experienced this problem with were laden with all sorts of crapware.

Things I Hate


Why does Dell think it's necessary to do this?  Why the hell would I ever need a power supply with a 180 degree AC connector on it?  This makes absolutely no sense to me. Every time I use one of these the cord ends up being to short because I have to bend the cord back over.  Dell, please stop making these lame pieces of crap.

1.24.2012

Dear ATI,

I really like your GPU hardware, it kinda kicks ass, but the drivers are another story. Please make some linux drivers that don't suck completely.  I am sick of driver installs that break every time the kernel gets updated or I switch monitor configurations.  Soon, I will trade off my Radeon 6850 for an older nVidia part just because NV drivers actually work.  If you want me back as a customer, please put more effort into making linux drivers.

Sincerely,
Ben

12.16.2011

Fixing the media not found error in Subsonic

The latest version of Subsonic (4.6 beta 2)  for Debian seems to have an issue with  android phones and streaming out of the box.  The official instructions do not list two steps which should be there.  After you have configured the server, you need to manually create the music and playlist folders under /var for standard configuration.  As soon as I made the playlists folder, my android phone was able to list all the music on the server.

10.30.2011

Setting Fan speed for AMD GPUs under linux

If you need to set the fan speed for your ATI / AMD card manually for whatever reason, this is how it is done. I assume you have the fglrx drivers installed and configured correctly.
Type in terminal the following line (including quotes):
aticonfig --pplib-cmd "get fanspeed 0"
This command fetches the current fan speed.
Set the speed to something higher using this command:
aticonfig --pplib-cmd "set fanspeed 0 X"
X is the fan speed %.  In both commands 0 represents the first video card in the system.

4.01.2011

Nook Color hacking update: Video







I have been using my Nook Color for over a month now, and I have still not settled on a specific ROM that I like.  When I first bought the NC, I went for the simple root which opened up the possibility for me to install Android market apps.  The problems that the stock rooted firmware presented, such as the ugly interface, led me to try using custom ROMs. First, I flashed a Froyo (2.2) ROM to an SD card and used that for some time.  Later I installed a Honeycomb (3.0) based ROM to my internal memory. I quit using Honeycomb because the interface was too laggy, and apps tended to crash often.  At that point I moved to Gingerbread (2.3) based ROM including Cyanogenmod, Ultimate Droid, and Phiremod.  All of these had their good and bad points.  Unfortunately, none of them could do video playback correctly.  YouTube either didn't work at all, or had unwatchable frame rates.