Craig Thrall

Previous | Page 4 of 13 | Next

More Thoughts on Android

Dec. 29, 2011, 11:55 a.m.

I took a trip up to Vermont this weekend. While Sprint coverage has not been as good as AT&T in Massachusetts, I had coverage for the whole trip up 89 through Vermont with my new Sprint Android phone while my AT&T iPhone had nothing. Every phone I had prior to the iPhone needed to be rebooted by swapping out the battery now and then. Since the iPhone is hermetically sealed, it's a good thing that I never had to do that. But Android is definitely flakier as an OS. I'm not sure if there were multiple transitions between coverage areas, or if the Republic Wireless changes are causing issues, but I had to pop the battery out of the RW phone a couple times during the trip. The RW phone has been pretty stable until then, which is why I think it was caused by coverage or something external.

Republic Wireless

Dec. 23, 2011, 9:38 p.m.

Alyssa and I have been using two iPhones and the cheapest iPhone family plan AT&T offers. In order to avoid going over in minutes, I signed up for Skype and have been using it whenever possible. I've never been a huge fan of audio quality for cell phone calls, and Skype isn't much better. [Republic Wireless](http://www.republicwireless.com) just came out with a beta program that I think is both a better deal and potentially a better service. It's $19/mo for unlimited calling and data, with a slight catch (more on that later): you need to do most of your calling over wifi. I signed up and received the phone a couple weeks ago. The phone is nothing special, a LG Optimus running Android 2.3. It's maybe slightly smaller than my iPhone 3GS. I've been a big fan of the iPhone for a while, but the changes in iOS 5 have really had a negative impact on the user experience on a 3GS. Running sync processes in the background really slows the response time down, and I find myself having to either manually close everything or reboot the phone at least once a week. After using iOS and Android side by side for a week, they seem really similar. The iPhone still has a shinier UI with nicer fonts, and is really a tough phone, but I don't understand the Android vs. iOS blog wars. Anyway. The audio quality over a wifi connection using Republic Wireless is awesome. I'd sign up just for that. Maybe there's an app and service that will let me get that kind of call quality on any Android/iOS device, I haven't looked. This will be a selling point for RW if they can make it past beta stage. The phone automatically tries to use wifi whenever possible. Luckily, none of the access points I use on a daily basis need any kind of web-based login, and the phone just seamlessly does the right ting. Since it's an Android phone and I've already ported my number to Google Voice, I just added the new phone's number to my Google Voice account and started receiving calls and texts on it. There have been some beta issues around Google Voice support over a cell connection and how texts are received, but RW is aware of these issues and is targeting the new year for their second over the air update. There was some confusion around how the beta was marketed which has led to a modified TOS for the beta. I read the RW site as saying there was a limit to how much cell usage you could have in a month. Others read the language as saying cell use would be a percentage of wifi use with no limit. Republic Wireless saw the confusion and changed the terms of the beta to be *truly* unlimited: no limits on cell use, voice or data, for the duration of the beta. RW is using the Sprint network for their cell service. They are backed by Bandwidth.com, a major supplier of, well, bandwidth, as well as SIP trunks and other phone services. I had been looking at Phonebooth Mobile before RW came out. RW will depend on the low cost of VoIP using their volume SIP rates to make money. The hard part will be figuring out the cell part of the equation. It's doubtful they can be profitable offering true unlimited cell voice and data at the $19/mo price point, but I'm close to turning my 3GS into an iPod Touch based on the cost and much higher audio quality.

Editing app.config during install

July 18, 2011, 4:35 p.m.

I have a piece of .NET client code that uses an app.config file. I have two sets of settings, one for development and one for production. I wanted to use my development settings during, well, development, and transform app.config during install time to production settings. I'm using a Windows Setup project. You can definitely do this. I got it working, then copied it to a VMWare instance that's on the domain where I don't have local admin rights. BOOM, no worky. Here's what I've figured out: my code is getting installed in Program Files. Even though the change is happening at install time during the commit phase, that's not allowed.

FreeNAS on Shuttle SN45G

Feb. 27, 2011, 6:27 p.m.

I was trying to install <a href="http://freenas.org/doku.php">FreeNAS</a> on my old Shuttle SN45G. The install image hung on me at "fw0hci0: bus reset" until I disabled APIC in the BIOS.

Cisco Phones and ITL Files

Dec. 2, 2010, 2:49 p.m.

I've noticed that, even when I change a phone's settings to point at an alternate CUCM cluster/node, if the phone has loaded a trust list (ITL) file, the settings won't take affect until you go in and erase the ITL file. This makes sense: the phone has been instructed to trust a certain cluster, and pointing it at an alternate untrusted IP is a risk. The first time it happened to me, though, it wasn't clear that the ITL file was keeping the phone pointed at the original CUCM cluster.

Django and WSGI on Ubuntu

Oct. 14, 2010, 9:08 p.m.

My virtual host Apache config snippet: <pre> NameVirtualHost * &lt;VirtualHost *&gt; ServerName www.example.com ServerAlias www.example.com ServerAdmin [email protected] UseCanonicalName off WSGIDaemonProcess www.example.com processes=2 threads=25 WSGIProcessGroup www.example.com WSGIReloadMechanism Module WSGIScriptAlias / /www/site/apache/django.wsgi Alias /admin/media /path/to/django/contrib/admin/media &lt;Directory /path/to/django/contrib/admin/media&gt; Order deny,allow Allow from all &lt;/Directory&gt; &lt;/VirtualHost&gt; </pre> Using the daemon process mode of WSGI means you can touch your Django WSGI file to restart the process serving your Django site instead of restarting Apache. Here's my Django WSGI file: <pre> import django.core.handlers.wsgi import os, sys sys.stdout = sys.stderr sys.path.append('/path/to/django') sys.path.append('/home/user') os.environ['DJANGO_SETTINGS_MODULE'] = 'site.settings' os.environ['PYTHON_EGG_CACHE'] = '/tmp' application = django.core.handlers.wsgi.WSGIHandler() </pre> You can either permanently unzip and install Python eggs, or add a variable that points to the egg cache. You want to make sure the WSGI service account has write access there. Read the <a href="http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/">Django documentation</a> and <a href="http://rc98.net/django_wsgi">this page</a>.

Overload Kohana Logging

Aug. 12, 2010, 9:58 p.m.

Need to write Kohana logs somewhere other than the default location? Or send an e-mail or something? You can use the system.log event to do this. Put this in your controller: <pre> function custom_log() { error_log(Event::$data[0] . ' ' . Event::$data[1] . ' ' . Event::$data[2]); } Event::add('system.log', 'custom_log'); </pre> Now when you call Kohana::log, the message will get written out to the PHP error log.

Convert Vista/Windows 7 Icon to XP Icon

Aug. 10, 2010, 8:47 p.m.

Starting in Vista, Windows supports 256x256 icons. Icons can also be stored as compressed PNG images. Unfortunately, XP does not support these icons, so if you want to support XP, you can't use them. And your WPF app will throw an XamlParseException with an error message about the image format not being supported. What if you have icons in the new format and want to use them on XP? Well, here's what I did and it worked: <ul> <li>Download <a href="http://www.gimp.org/">the Gimp</a>.</li> <li>Open your Vista/W7 icon file.</li> <li>Save As a new icon file.</li> <li>Uncheck all the "compressed PNG" checkboxes. Make sure to scroll down and get them all.</li> </ul> There you have it.

Subversion and Mantis Integration on Windows

July 26, 2010, 9:50 a.m.

We're running Subversion (via Apache) and Mantis on Windows. I wanted to allow developers to resolve issues via commit comment. I read <a href="http://alt-tag.com/blog/archives/2006/11/integrating-mantis-and-subversion/">this great page</a> about it, and used it as a starting point for Windows integration. After making Mantis configuration changes as specified in that page, I threw together a SVN post-commit hook that I named post-commit.cmd. It looks like this: <pre> @echo off setlocal enableextensions set SVN_PATH="c:\Program Files\svn-win32-1.6.1\bin" set REPOS=%1 set REV=%2 set TEMPFILE=c:\temp\%REV%.txt set MANTIS_PATH="c:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mantis" cd %MANTIS_PATH%\scripts %SVN_PATH%\svnlook log -r %REV% %REPOS% > %TEMPFILE% php checkin.php < %TEMPFILE% > c:\post_commit.log </pre> Obviously, update the paths to Subversion and Mantis. Now, when somebody puts "issue #56" in a commit comment, a note gets added to the bug in Mantis. When a developer adds "fixes issue #56" in a commit comment, the issue also gets set to "resolved."

Prompted for Credentials When Browsing by FQDN

June 4, 2010, 9:42 a.m.

We have an internal SharePoint site that we recently started browsing to by FQDN. At about the same time, we started getting complaints from users that they were being prompted for credentials. At first, we thought it was SharePoint, but then I found <a href="http://support.microsoft.com/kb/943280">this article by Microsoft</a>. It looks like WinHTTP doesn't check your Trusted Sites before prompting for credentials, even if you've checked "Automatic logon with current user name and password." I'm testing it now, and will update this post if I keep getting prompted.