Monday, July 1, 2013

Don't Use Beta Operating Systems on Your Only Computer

This is a public service announcement that may be an obvious statement to some people. Don't use a beta version of an operating system on your only computer.

Details - I decided to upgrade to the MacOS/X Mavericks Developer Preview. That is 10.9 for those of you who need a version number. I also upgraded to iOS7 on my iPod Touch. I must say I love the looks of the effects on iOS7. However I ran into the same issues on both systems - most everything works great except for a couple apps that I use all the time.

Since I don't have a spare Mac or spare iOS device just lying around, this was a major issue. Or would have been except I took some precautions.

For OS/X, I happened to have an app called SuperDuper! which takes a snapshot of a hard drive and clones it to an external hard drive. I had taken a snapshot right before doing the upgrade and hadn't really used the laptop much before realizing Mavericks had some issues. To revert, I just had to boot from the external drive and then SuperDuper! snapshot of the external hard drive back to the internal hard drive on my laptop and everything was back as if the whole developers preview upgrade had never happened.

For iOS7, I had also done a backup right before the upgrade. I don't think restoring a backup of a previous version of iOS is supported for whatever reason, but a quick Google search yielded instructions on how to download and install the latest version of iOS6 and then restore from the backup so all my apps and data are available again.

Lesson learned - if you have something vital to your day-to-day work, don't upgrade it to a beta. Run the beta in a virtual machine or spare computer if it is an operating system. If it's just an app, try to run the beta and real version in parallel if possible.

Saturday, April 6, 2013

Want Cool Software - Help Build It!

My post yesterday about Gazingus Pins on my other blog got me thinking - if one of my biggest Gazingus Pins (something I spent money on without thinking about) is software - or apps as they say nowadays - maybe I should be looking to turn this urge to acquire and try out new software to good.

There is a large community of open source software developers out there all building a huge variety of cool apps and tools. When I see an app that looks like something I may want to buy, maybe instead I should go looking for an open source tool that accomplishes something similar and then if it is something I find myself using on a regular basis, jump in and help develop the app into something better.

Thursday, April 4, 2013

Pinto in Perl

Just checked out the latest episode of FLOSS Weekly about an application named Pinto In short, you download Pinto from CPAN and then run some commands to tell Pinto what Perl modules you are using and it will download the modules and keep track of them.

A couple features discussed on the show:

  • ability to create different "stacks" of Perl modules for different environments (development, test, production, etc) or operating systems (Windows, Mac, Linux) 
  • Version control of your stacks
  • "Pinning" which is locking a module to a specific version
  • Ability to merge in local modules that you don't want to be available on CPAN
After hearing a description of this, it got me wondering why these kind of things aren't available in CPAN in general? The main reason I can think of for not doing this is that it would vastly complicate the current CPAN set up.

If anyone pins an older version of a module, CPAN would have to keep that available forever. It could also lead to complexity tracking what is a local module not available anywhere else and what is a module available in CPAN in general.

Monday, August 27, 2012

Enabling Java plugins in OS/X Mountain Lion

Apple recently released MacOS/X version 10.8 also known as Mountain Lion. I actually needed to run something in my browser using the Java plugin to get some work done. Due to a security hole in Java, Apple decided they needed to make it so you were only running Java if you REALLY wanted to be running Java. Here's what I had to do to get Java running again.

1. Go to the web page that uses Java. Really any web page that uses Java will do. If you just want to test it out, you can go to Sun's Oracle's* test page here at this Java.com test page. If you are testing with this page, you will need to reload this page after step #4 and click the button that says test the current version of Java.

2. You should get a popup asking if you want to install Java. Go ahead and say yes. This will install the Java runtime on your system and make it available for standalone apps and your web browser plugins. The steps after this one are required to enable Java for browser plugins and Web Start apps.

3. You will now need to run an application called "Java Preferences." A quick Spotlight search should bring it right up.

4. Click on the "General" tab if it is not already selected and then check the "Enable applet plug-in and Web Start Applications" box.

5. In my case, this was a Web Start application I needed to run so I also had to go into the System Preferences and allow all applications to run. This can be found in "Security and Privacy" area then "General" tab and then "Allow applications downloaded from" needs to have the "Anywhere" button selected to allow Java Web Start applications that have not been signed with a developer certificate.

I hope this info is helpful as I spent a bit of time tracking down all the required steps and wondering why things weren't working.

* I know it's old news, I'm still not used to it.

Sunday, July 3, 2011

Columbus Give Camp 2011 wrap up

This is a rather late write up of Columbus Give Camp 2011. The event actually took place May 20 - 22, 2011. This was my third year volunteering as a GiveCamp as a developer. The past two years, I told them what my skills were and just hopped on whatever team they put me on. It was a good experience both times - show up Friday night, build code with lots of passionate & skilled developers that just want to help people out, and eat all kinds of good food, and demo what you built on Sunday.

This year, I decided I want to do Rails development & said as much when I applied. I ended up on a team that was developing a website to help a church camp track which families are coming. It was an existing project developed at Give Camp in 2009 and the developer team lead was also the charity rep. This was a HUGE boost for the project. Most charities have no clue what is even possible with technology. However, with someone that is a developer & charity rep, we came into the weekend and she had a list of what feature she wanted done this year, next year, and wish list for farther down the line as well as a list of bugs that needed to be fixed before any new features started.

We used GitHub for all our source code & project management. The only time I really use GitHub outside of minor tinkering is Give Camp so this took a quick refresher and unlearning some SVN habits.

It seemed like everyone got a lot done and all the charities were happy with what they got. One thing - it felt like plenty of devs showed up but only one person I know of there had graphic design skills. So graphic designers, if you want to help out charities - check out Give Camp next year! If I remember right, they are planning to have Columbus Give Camp in the fall next year - likely around October. The dates will be on columbusgivecamp.org whenever they are announced.

I won't bore everyone with details on the food for the weekend - if you really want to know you can just check out the Twitter stream from during May 20 - 22, 2011 and search for #givecamp. But here are the ones that stuck out:

Beignets - these are awesome. Something like elephant ears meet donuts

Creole Kitchen in downtown Columbus somewhere - heard this place is hard to find. Glad someone else went to get the food. I don't know what they put in their mac & cheese but it is VERY addictive. The other food was great too.

Just Pies - yeah, it's exactly what it sounds like. The peanut butter pie was probably some of the best I ever had.

Wednesday, October 13, 2010

Slackware 13.1 and VMWare Fusion 3

I had been having some problems with Parallels and VirtualBox running Slackware virtual machines, so I decided to give VMWare Fusion a try. *

VMWare Fusion works with Slackware pretty well, but it makes a couple assumptions about Linux distros that are not true of Slackware:

1. You are using PAM (Pluggable Authentication modules)

2. You are using RedHat-style init scripts (/etc/rc.d scripts that start programs when your computer boots).

The following steps got me around all the issues I encountered installing the tools:

1. The install scripts expect /etc/pam.d/ to be present. It's not since Slackware doesn't use pam. Just run the "mkdir /etc/pam.d" as root before installing the VMWare tools. The installer won't run unless it can put a VMWare piece into that directory.

2. Set up the init script structure as VMWare tools expects it. This step may not be required **

cd /etc/rc.d
for V in {0,1,2,3,4,5,6}; do ln -s /etc/rc.d /etc/rc.d/rc${V}.d; done
cp /etc/rc.d/rc.inet1 /etc/init.d/network
cp /etc/rc.d/rc.inet1 /etc/init.d/networking

3. Install the tools as normal. When you run vmware-config-tools.pl, it may give you a weird message about X11 not finding some drivers and appear to hang. If this happens, run "killall mkinitrd" as root. This kills off whatever process is stuck there and will let the install finish.



* Parallels issue: Parallels tools don't support Ubuntu 10.10 yet, the kernel modules won't build. I haven't had much luck with them at all in Slackware. They assume you are on an RPM or Debian based system. Virtual Box randomly shuts down my Slackware VM. Yes, I'm going to file a bug report. Decided to try out VMWare Fusion because it is currently only $9.99 for existing Parallels Desktop users until sometime in December 2010. Check out the full details on their VMWare Fusion promo site.

Tuesday, August 17, 2010

Universal iOS apps

I'm still developing my first iPhone app (iOS app as of version 4.0 of the OS) and have been coming to the conclusion that XCode makes many, many things easy to do, but it isn't always easy to do these things right.

Example: universal apps - having one app that runs on both iPhone/iPod Touch and the iPad. When you create an application, you have the choice of making it Universal. Basically the .xib files (XML version of the .nib files) that define your user interface will have an iPad version and an iPod/iPhone version and the application will load the correct one at launch time.

The downside: if you want ANYTHING to be different besides the user interface between the iPhone/iPod and iPad, you must write special code to handle those cases.