Archive for the ‘development’ Category

LMGTFY now for 64 bit Linux

Posted on March 11th, 2010 in development, software | No Comments »

A few months ago, I did a build of the STFW Pidgin plugin for Windows. Recently I started using Ubuntu but found that STFW didn’t work on my system. So I did a 64-bit build of the plugin for Pidgin 2.6.x. Here it is!

To install, just copy that file over to /usr/lib64/purple-2/ . If you don’t have root access, copy it to ~/.purple/plugins/ instead. Then restart Pidgin, enable the plugin, and you’re good to go!

CakePHP login form with password confirmation using Auth component

Posted on December 14th, 2009 in development | No Comments »

Every time I start CakePHP project, I find that I’ve forgotten how to set up the user auth system of logins, creating accounts, etc. There seems to be only a few examples of it on the internet, so I thought I’d post up my solution. It uses the Auth component and follows normal user creation convention. By “normal user creation convention,” I mean that you require an email address that’s used as the login name, a password field, a confirm-password field, and checks to make sure the passwords match. Read the rest of this entry »

What’s wrong with your keyboard???

Posted on September 24th, 2009 in Uncategorized, development | 6 Comments »

Well, I’ve been using the Colemak keyboard layout for 2.5 weeks now. Colemak is a keyboard layout alternative (as opposed to qwerty). Here’s what it looks like:Colemak layout

As you may know, the keys on qwerty keyboards are the way they are for historical reasons–on typewriters, qwerty keyboards minimized the amount of jamming that occurred with the heads. But since computers don’t have the same limitation, the qwerty layout is impractical. Alternative layouts like Dvorak and Colemak seek to minimize the work required to move your fingers. The benefits of this are increased typing speed and decreased risk of things like Carpal Tunnel Syndrome. Dvorak seems to be the most popular. So why did I choose Colemak? Mostly because it doesn’t move the z, x, c, and v keys, which are the keys you use for undo, cut, copy, and paste. That would have driven me crazy.

When I decided to change, I decided that I wouldn’t wimp out by toggling back to qwerty. That’s key to picking it up fast. I had some helpful encouragement from friends via Facebook (Thanks Jay, Moriah, and Donald!). At times it was really tough to be IMing somebody and not be able to articulate what I want to say. “What do you think of [insert topic]?” Me: “good”.

So where has this gotten me? After one week of nonstop usage, I had all the keys memorized. And now after 2.5 weeks, I feel pretty comfortable. I never had wrist and finger problems before, but now that I’m using Colemak, my fingers feel a lot more relaxed. I just took a typing test and got 41 WPM with 100% accuracy (my best on qwerty was 60 WPM). I know, that’s not better than my qwerty speed, but I think I’ll get there after being on it for another week. Would I recommend it? Yes!

LMGTFY plugin for Pidgin in Windows

Posted on September 24th, 2009 in development, software | 1 Comment »

All too often people ask me questions that are just as easily looked up on Google. Things like “How do I burn a CD?” or “What does HTML stand for?” Sometimes I use lmgtfy.com (short for letmegooglethatforyou) to show them how easy it could have been to just Goggle it. But it takes too much work to go to the website, do the search, then copy and paste the URL.

Luckily Kim Stebel created a Pidgin plugin to make the process easier and he’s gracious enough to share it. It’s called STFW. I was eager to install it and try it out, but there were no binaries compiled for Windows (yes, I use Windows). So I decided to compile them myself. I’ve never compiled any open source software before so I wasn’t sure what to expect. Luckily, the Pidgin website had plenty of help. All you have to do is follow the tutorial for building Pidgin and then follow the instructions for compiling Windows plugins.

If you want to grab the plugin without compiling it yourself, you can just download it here. After you download it, move it to the “plugins” directory of your Pidgin install, restart Pidgin, then enable it in the “plugins” menu. To use it in conversation, just say /lmgtfy stuff to search for and when you send the message, it will convert it to the necessary link. It’s as easy as that!

Custom CakePHP install script for WebFaction

Posted on July 13th, 2009 in development, startup | No Comments »

The WebFaction install script for CakePHP (at http://wiki.webfaction.com/wiki/InstallScripts) was a bit outdated so I modified it for CakePHP 1.2.3.8166. Enjoy!

Update: Apparently WordPress wasn’t displaying the code correctly. I’ve saved the file locally so you can install it just by clicking here.

#!/usr/local/bin/python2.5

"""
CakePHP 1.2.3.8166

Notes:
-If CakePHP isn't going to be web accessible at / you'll need to update the following line in ~/webapps/(Application Name)/.htaccess accordingly:

RewriteBase /

"autostart": "not applicable"
"extra info": "leave empty"

"""

import sys
import xmlrpclib

def create(app_name, server, session_id):
app = server.create_app(session_id, app_name, 'static', False, '')

# Download, extract, and organize.
cmd = (
'wget http://cakeforge.org/frs/download.php/717/cake_1.2.3.8166.tar.gz/donation=complete -O cake_1.2.3.8166.tar.gz > /dev/null 2>&1;'
'tar fxz cake_1.2.3.8166.tar.gz;'
'mv --target-directory=. cake_1.2.3.8166/* cake_1.2.3.8166/.htaccess;'
)
server.system(session_id, cmd)

str = (
'RewriteEngine on\n'
'RewriteBase /\n'
'RewriteRule ^$ app/webroot/ [L]\n'
'RewriteRule (.*) app/webroot/$1 [L]\n'
)
server.write_file(session_id, '.htaccess', str)

# Clean Up
server.system(session_id, 'rm -fr cake_1.2.3.8166/ cake_1.2.3.8166.tar.gz index.html')

print app['id']

def delete(app_name, server, session_id):
server.delete_app(session_id, app_name)

if __name__ == '__main__':
action, username, password, machine, app_name, autostart, extra_info = sys.argv[1:]
server = xmlrpclib.Server('https://api.webfaction.com/')
session_id, account = server.login(username, password, machine)

locals()[action](app_name, server, session_id)

Adsweep plugin gets discontinued

Posted on June 25th, 2009 in development, software | 1 Comment »

A number of weeks ago, I was ecstatic when I found out about the Adsweep plugin for Google Chrome. From the homepage, it looked promising. I installed it and found that it worked pretty okay. It’d get better over time, right? Apparently not.

My biggest problem with the plugin was that there were so many false positives. When I went to do an advanced search on eBay, I found that the Adsweep plugin had removed the search box! I emailed the creator of Adsweep and was surprised that he emailed back saying he added the exception to the plugin. Woot! Impressive!

It happened again to me on another webpage so I went back to the Adsweep website, only to find the notice that the developer was discontinuing work on Adsweep. Sad day! Apparently too many people were asking for exceptions to be programmed into the plugin and not enough people were volunteering their time. I admit, I’m guilty of this. But I didn’t know–I wasn’t subscribed to the list. I’d contribute a bit of my time if there were others that could help get this going again. Any takers?

Free professional documents for anything you can think of

Posted on June 12th, 2009 in development, startup | No Comments »

Have you ever started a document thinking “Man, tons of other people must have done this same document or something similar. I wish there was something I could use as a sample or template”? That’s exactly what I was thinking today. And then I found .docstoc. This website is a huge repository (over 3 million documents!) where tons of people share their professional documents. Anybody can view the documents for free, but if you want to download them you’ll need to create an account (which is free).

To give you a feel for what they have to offer: I was looking for a document to help me lay out Skill Capture’s financial projections. My search for “financial projection” gave me 250 resulting documents. I didn’t even bother looking at any of the documents past the first page because I found several really useful ones right at the top of the search. I downloaded the xls files and was ecstatic to find that they were full-fledged spreadsheets with formulas to calculate lots of things automatically.

I did several other searches for documents on the service and found that each of my searches had an equal abundance of quality results. This is something I’ve wanted for a long time and I’m extremely excited that I found it.

14 Great free stock photo sites

Posted on March 5th, 2009 in development, startup | No Comments »

I was revising the tutorial on Mark The Dark and decided I needed some graphics.  Seeing that I’m cheap, I looked for free stock photo sites.  I compiled a list of the best sites I found.  These photos are great for using on websites when you want to fill up an empty space or even if you’re printing something.  Make sure you read the terms of use–their licenses differ depending on the site and the photographer.  Here’s the list (in rough order of usefulness):

Stock Exchange
Free Photos Bank
photocase
OpenPhoto
Morguefile
BigFoto
Pixel Perfect Digital
FreeImages
FreeFoto
Aarin Free Photo
NASA
NOAA
National Park Service
gimp savvy (Index of other free stock photo sites)

Error on CMS of PrestaShop

Posted on February 18th, 2009 in development, software | 1 Comment »

There’s a weird, undescriptive error you might come across if you use the CMS editor in PrestaShop.  It will say “an error occurred while updating object cms ()”.  That isn’t very helpful.  It turns out that there are some “taboo” words that aren’t allowed to be used.  It looks like it’s there to prevent sql hacking.  If you get this error, check your content for the following words and replace them with something different: union, load_file, outfile, dumpfile, escaped, terminated, cascade, infile, x509, trigger, revoke

Startup in a weekend

Posted on February 12th, 2009 in development, startup | No Comments »

This past weekend, I went to Seattle Startup Weekend 2 and talked about it at jongela.  In this post, I’ll talk about the more technical parts of the experience.  When we first got there, several people (over 50 of them!) gave quick idea pitches.  They ranged from cooking websites to crowdsourcing to iPhone apps.  A comprehensive list can be found here and here.  After eliminating the less popular ideas, we got to choose between the finalist ideas.

Here are some of the ideas that I thought were cool.  The purpose of Onevite (later called 1nvite) is to send one invite that will add a person’s Facebook, Twitter, LinkedIn, and other social network accounts all at once.  Wishing Well (later named FavorWish) was a website where people can list their wishes and have their wishes fulfilled (described as a “pay it forward for the web”).

I chose to join the eco-friendly commuting competition project.  We named it TripChamp.  This project utilizes a competition setup to encourage people to reduce their carbon footprint.  We’ll be marketing to businesses that want to help their employees be more eco-friendly.  Watch the TripChamp Screencast.

The people on our team were Dave Albano, Kevin Leneway, Nina Strasser, Elizabeth Grigg, Angela Chin, and me.  Our team worked out really well.  Dave was our leader and provided the vision.  Nina, Elizabeth, and Angela worked on designing the UI and the page content.  I worked with Kevin on doing the actual programming.  I did most of the database interface and functionality while Kevin did the styling and screencast.  It all worked out well.

We developed the website using CodeIgniter.  This helped A LOT in getting the website live as quick as possible.  Using DX Auth and CodeIgniter sessions cut a lot of the programming work involved.

I learned a lot from this weekend.  I networked with lots of really bright people and I’m already looking forward to the next one!

Some database planning

Some database planning

Watching the progress reports

Watching the progress reports