Tuesday, December 25

Fixing Flash for Chrome on Mac

Yes, I am now and have been for the past 3 months a semi-proud Mac owner.  The details of that is for another post, but the bottom line is, I had a horrific crash on my laptop and finally recognized what several people have told me for years.  Linux is great, Ubuntu is great.  But when something you need breaks because of hardware and you can't bill time, it's not just the fact that you aren't making money, you're losing it.

Of course, cutting through the "It just works" mantra, we find many places where it just doesn't work, one of those being Flash on Chrome.  It's broken... and when I say broken, I mean I don't want to pretend I am deaf because there's never any sound in the video, videos skip or fail to load altogether, etc... aka, broken.

And for the record, it was broken for a lot of stuff in Ubuntu as well, with the same results.  Luckily, the fix is the same, you simply need to tell Chrome which Flash plugin to use.

Open a new Chrome window and in the address/search area, type chrome://plugins/

On the right side near the top, click on "Details" link to expand the details on each plugin.

Scroll down to find the Adobe Flash Player and find the one where the type is PPAPI(out-of-process).  This is most likely to be the PepperFlash plugin.  Click "disable".

Now just reload any page you had open previously and you should now have sound and any other issues you might be experiencing with flash should clear up.

Sunday, August 19

Stop spammers from using your Google Apps domain

Lately I've been getting a lot of return mail from accounts that were sent mail from spammers using my domain.  It's annoying and somewhat frustrating, especially if it is your business domain because you run the risk of being blacklisted.  Here are a couple of simple ways you can prevent this on a standard Google Apps account using Enom for domain registration.

Sender Policy Framework - This is an open standard that specifies which servers are allowed to send mail that a receiving server can validate messages against.  This can be set up fairly simply in your admin control panel.  To do this:

  1. Go to your domain control panel and click on "Domain Settings" and then on the "Domain names" tab.  From here, click on the "Advanced DNS Settings" which will give you a login to the domain settings with Enom.  
  2. Under "Host Records", click the Edit button and add a new TXT record with the following values
    1. Host Name: @
    2. Address: v=spf1 include:_spf.google.com ~all
    3. Record Type: TXT
This publishes the information that any mail not sent from an included domain should be rejected.

DomainKeys Identified Mail - This adds a signature in the email headers that allows association of a domain name to an email message.  It prevents spammers from forging the source address of their messages which allows other spam filtering to be more effective.  To implement this with your apps domain, go to the domain control panel and click on "Advanced tools".  At or near the bottom is a heading called "Authenticate email" with a link to a DKIM setup.  This is a fairly simple automated setup or you can set your own up manually if you know what you are doing.  

Wednesday, May 23

Installing Spree from scratch on Ubuntu 12.04

Spree is a comparatively new addition to the options in the open-source eCommerce world.  Based on Ruby on Rails, it has a certain allure, especially with developers eager to get into RoR.  Here's a quick way to get it running on Ubuntu.

First, unlike previous versions of Ubuntu, you need to do nothing to get a recent version of Ruby.  First you will need to install the latest version.  Along with it we'll include some extras that you'll need to make things go smoothly as you install the gems.

sudo apt-get install ruby1.9.1-full galternatives libxml2 libxml2-dev libxml2-doc libxml2-utils sqlite3 libsqlite3-dev libxslt1.1 libxslt1-dev

Next, especially if you had Ruby already installed, you'll want to set it as the default in the alternatives system.  The galternatives package makes this simple.  However, make sure you update gem to the 1.9 version or your gems will install in the wrong place. 

Once you have the the proper ruby packages installed and configured, you can use the gem system to do the rest.  

sudo gem install sqlite3 -v '1.3.6'
sudo gem install rails
sudo gem install spree

Finally, create your new store.  The -A argument on the spree bundle install accepts all prompts, which should create an admin user spree@example.com/spree123.

rails new my_store
spree install my_store -A
cd my_store
rails s

You can now see your storefront at http://localhost:3000 and the admin environment at http://localhost:3000/admin

Please feel free to post any comments or corrections to this guide in the comments.

For more info on customizing Spree, visit http://guides.spreecommerce.com/

Wednesday, March 28

Recycling your smartphone

Got an old android phone around that you can't sell and just sits in a box of cast-off old tech?  Do you have a wireless router and a Skype account?  Did you know you can skip the $80 for a Skype phone, reuse your old smartphone, and continue to have the convenience of a mobile email, game playing device?

You don't need to be a super hacker or anything... in fact the steps are actually deceptively simple with one small hitch. Most of the software provided by your wireless phone companies will not allow you the freedom to make phone calls through Skype.  So you may have to root your phone.  Luckily rooting these days is typically pretty easy.  It usually goes something like:

1. Download a rom and save it to your sd card
2. Reboot your phone in recovery mode
3. Factory reset the data(hopefully you have backed everything up already)
4. Wipe all caches
5. Install the rom from the sd card

For me, I decided to double the pleasure and try out Ice Cream Sandwich(who the heck came up with that name?), the newest version of Android.  Let me tell you, it is a fantastic upgrade.  And why not try your hand at the rooting process?  The impact of bricking the phone is gone and you get a chance to try out something different than the typically boring versions of Android you get from the phone company.

So, now that you have a version of Android on your phone that doesn't restrict Skype functionality(and puts a fresh face on your old phone), it's time to turn it into a real working phone.  As a side note, you can do this with other voip software, provided that they have an android application.  I simply chose to do it with Skype.

Step 1 of course is to install Skype(or alternative voip software)
Step 2. If you have a skype account that can make outgoing and incoming phone calls to a land line, try making a phone call to someone through the phone's regular dialer.  It will offer skype as a method of calling, choose "set as default".  This will allow you to use the dialing interface you are used to and one that interacts with your phone better than just using skype.
Step 3. If you don't have a call out or skypein number, you can easily open the skype application and view your contacts, make voice calls, etc.

And that's really it.  All told, with rooting the phone and all this whole process should take about an hour and you'll have a phone that hooks up to the wifi in your house and something that just about anyone can use like a regular cell phone to make Skype calls.

Sunday, March 4

SVN and GIT cheat sheet

If you're reading this, you don't need to be convinced of how awesome GIT is. This is actually the cheat sheet I use when I need a GIT command. Hope it helps you as much as it helps me when my memory fails.


... more to come here

git-svn and clone

Cloning an svn repository where there is only one project with the standard layout(repo_url/[tags trunk branches]):

git svn clone --stdlayout [http(s)|svn]://repo_url local_name

Cloning an svn repo that is deeper in the svn tree

git svn clone --stdlayout --no-minimize-url --stdlayout [http(s)|svn]://repo_url local_name

Branch and merge

Working with branches

Push local branch to new remote branch

git push origin newbranch

Track a remote branch with a new local branch

git branch --track localbranch_name origin/remotebranch_name

Associate your local master branch to a remote master

git remote add origin repourl