Newsletter: Rifampin Bayer Phentermine 180 Chromium Pharmacy online phentermine Lotrimin Compare generic viagra prices Buy cheap uk viagra Meridia coupon Lowest phentermine 37 5 prices Atenolol Iodamide Non prescription xanax Online pharmacy xanax Nicotrol Order soma carisoprodol How long does xanax stay in your system Dextromethorphan Diclofenac Tramadol online discount cheap d method What happens when women take viagra Natural supplement equivalent to xanax Xanax and grapefruit Free pack sample viagra Phentermine result Amrinone Secobarbital Buy discount viagra online Viagra cialis levivia dose comparison Cialis testimonials No prescription needed phentermine Buy Fioricet Buy Vicodin Metharbital Xanax shipped cod Viagra supplier Xanax master card Cialis price What is phentermine Meridia better than phentermine Cheapest phentermine online Buy Zyban Cefixime Buy phentermine online without a prescription Cialis impotence drug eli lilly co Penbutolol Zanaflex On line doctor phentermine Amantadine Terfenadine Mexican pharmacies online+no precription xanax Free shipping phentermine Feldene Hytrin Canada cialis Buy ambien online Methadone and xanax Pantoprazole Naratriptan Smoking xanax Carphenazine Propofol Melphalan Xanax side effects Viagra cialis comparison In use viagra woman Generic xanax xr Maker of viagra Phentermine 90 day Electricity Tramadol 377 Buy xanax Cheap phentermine cod Buy Soma Xanax drug interactions Betaxolol Glyburide Xanax no rx Generic prescription viagra without Methamphetamine No perscription xanax Online phentermine no prescription Reglan Order phentermine online and cod shipping Cialis in uk Buspirone Keflex Lowest phentermine Order phentermine phentermine online Fda us approved phentermine Phentermine canadian pharmacy Aerobid Adipex phentermine prescription Cheapest xanax Valium and xanax Viagra drug Adipex diet phentermine pill Lotrel Viagra vs levivia Aerobid From generic india viagra Buy online viagra viagra Ganciclovir Best phentermine pharmacies compare links Tamoxifen Famciclovir 25 mg viagra Diphemanil Alternative new viagra Ultram Granisetron Buy cheap tramadol online Phentermine result Cialis generic viagra Taking phentermine with antidepressants Aurothioglucose Dont buy on black market get viagra legally Cinoxacin Cialis testimonials Anagrelide Phentermine overnight delivery no prescription Thiphenamil Viagra online order guide Lisinopril drug interaction viagra Female uk viagra Temazepam Hydrocodone withdrawal Detection drug in phentermine screen urine Womans viagra 5 mg Buy online viagra viagra Hydrocodone cod Low cost phentermine Norgestrel Pyrazinamide Phentermine not working Viagra price comparison Nitrofurantoin Cialis for sale Cialis generic canada Crohns phentermine Phenprocoumon Hyperalimentation No prescription needed phentermine Phentermine Cialis comparison levivia viagra Nalbuphine Bupropion Cefixime Diet loss phentermine pill weight Phentermine meridia xenical review Diflunisal Cheap phentermine canada Phentermine hcl side effects Overnight phentermine shipping Lethal doses klonopin wellbrutrin xanax Buying phentermine Order xanax Hydrocodone prescription online Cytarabine Cheapest viagra Colace Buy cheap phentermine online Phentermine prescriptions online physiphen online Diet pill addiction phentermine Xanax pics Phentermine blogging Levitra vs cialis vs viagra Viagra cialis Information about viagra Xanax urine test Flavoxate Viagra pill picture Norethindrone Can woman take viagra Soma addiction 30mg phentermine yellow Etoposide Levivia viagra online Information phentermine Buy cialis generic online Prescription order viagra online Accupril Ketoconazole Phentermine sale I need to find cheap phentermine delivered to fl Colace Valerian Alcohol hydrocodone Cialis on line Phentermine pharmacys online Online phentermine order Buy generic phentermine Etanercept Pfizer viagra online Cialis overnight shipping Phenacetin Mevacor Iodothyrin Cholestyramine Viagra canada prescription Benicar Diet free phentermine pill shipping Viagra prescription Olsalazine Online pharmacy duromine viagra international Burn fat lose weight diet phentermine pill Prescription free viagra Viagra lowest prices Buy generic viagra online Buy viagra without a prescription Viagra pill cutter Viagra alternative and woman Phentermine side effects dangers Soma san diego Buy phentermine cheap Generic viagra no perscription needed Phentermine and glucophage Buy online prescription viagra without 5 mg Plavix Xanax withdrawel Cialis new viagra Buy locally viagra Natural alternatives to viagra Imitrex Black market costa rica pharmacy phentermine no imprint code Lovastatin Order xanax online Ordering xanax online Buy no online prescription xanax Phenoxybenzamine What does generic xanax look like Clemastine Oxycontin xanax bars percasettes and lor tabs Buy viagra in uk Clorazepate Phentermine able to beshipped to mo Adenosine Thyroid Leflunomide Paxil How much weight will you lose on phentermine Penicillin Bromocriptine Lozol Plendil Valium vs xanax Dirithromycin Order viagra canada Non prescription viagra Buy Lipitor Viagra cialis levitra comparison Octreotide Female herbal viagra Enebrel Ambien withdrawal Natural suppliments work like viagra Lanoxin Viagra online ordering Discount phentermine prescription Antazoline Compare prices tramadol Remeron Acyclovir Lisinopril Effects of viagra on women Lethal doses of klonopin and xanax Cialis day next Ambien addiction Chlortetracycline Omeprazole Related drugs to phentermine Cialis versus viagra Biaxin How does xanax work Keppra Buy locally viagra Liqued viagra Phentermine on line without prescription Diflucan Foradil Adalat Zestoretic Us pharmacy phentermine Viagra cheap Amoxicillin Carisoprodol Lexapro Xanax dosage Injecting xanax Buy viagra canada Azathioprine Ritalin Penicillin Diet pills phentermine Phentermine no prescription free shipping Orlistat Adipex diet discount phentermine pill Benadryl Phentermine mexico Estraderm Amerge Primaquine Natural alternative to viagra Phentermine message boards Phentermine tablets Viagra testimony Fastin Symptom tramadol withdrawal Paramethadione Lodine Leo phentermine order online Prescription free viagra Clomiphene Buy cialis without prescription Phentermine without perscription Dantrolene Nicotrol Online pharmacy phentermine Cheap phentermine online Nifedipine Sucralfate Phentermine without prescription 50 mg tramadol Cheapest phentermine 90 day orders Tramadol drug interaction Discount phentermine no prescription Cyclothiazide Alteplase Buy xanax no perscription needed amex accepted Treat crohns disease with viagra Cheap online phentermine Desyrel Lowest cost phentermine guarantee free shipping Fluoxetine Ambien on line Alprazolam xanax over night Buy hydrocodone overnight Xanax depression Buy viagra Herbal online viagra Overnight phentermine Milrinone Locoid Cheap soma Xanax online without prescription Viagra alternative Buy viagra cheap Cheap generic viagra substitutes Laetrile Xanax no prescription required Indomethacin Thyroid Minocin Phentermine online stores Symptom of vicodin addiction Claritin Glycopyrrolate Hydrocodone prescription Mycostatin Overnight shipping phentermine Diphemanil Cialis comparison levitra viagra Viagra experience Information phentermine shortage Phentermine depression Multivitamins Phentermine dosage Phentermine pillstore Ingredient in phentermine Brand drug generic name viagra Does phentermine speed up metabolism Bleomycin Phentermine with no prior prescription Buy cialis uk Phentermine and methamphetamine Herbal viagra reviews Vicodin Picture viagra Soma Cheapest tramadol available online Phentermine addiction Viagra libido $50.00 phentermine Keyword prescription qoclick tramadol without Viagra levivia alternatives Phentermine a159 Acetazolamide Nexium Amide pharmaceutical phentermine Tramadol dosage Side effects of xanax mylan Cefepime Warfarin Pictures of xanax pills Better than viagra Xanax zoloft Amphetamine Drug phentermine testing Ambien prescription Avodart Symptom tramadol withdrawal Picture viagra pill Buy cheap viagra online uk Caffeine Phentermine and ocular hypertension Tramadol heath solutions network Adipex p phentermine Xanax grapefruit juice Cheap phentermine overnight Free sample herbal viagra Methotrexate Tramadol cheap Carisoprodol Effexor Buy Bontril Phendimetrazine versus phentermine Extra cheap phentermine Side effects from prozac and xanax Buspar Viagra substitute Cheapest fioricet Online consultations and prescriptions phentermine Discount generic cialis Fast delivery phentermine Discount viagra sales Quinacrine Can i buy phentermine anywhere in uk Cozaar Viagra pill splitter Phentermine dangerous Buy viagra internet Buy cheapest online place viagra Buy xanax no perscription needed amex accepted Uk viagra supplier Flunitrazepam Orlistat Vicodin Imodium Viagra use Phentermine warning Xanax cash on delivery Urine drug testing of tramadol Viagra and levivia Chinese viagra dragon power Hydrocodone on line Viagra online uk Cialis price comparison Xanax versus prozac Cialis review Buy get online prescription viagra Price for generic viagra Diet inexpensive phentermine pill Accutane Phentermine online no prescription Tramadol 180 Prescription phentermine with cod payment Lypressin Xanax for dogs Hexachlorophene Phentermine depression Online tramadol prescriptions Taking viagra or levivia as a booster for cialis Herbal viagra Chlortrimeton Cialis free sample Cialis immunity Death cases from taking phentermine Diclofenac Cetirizine Cheap pharmacy viagra No perscription viagra Epivir Order cheap phentermine Provigil What is xanax Lanoxin Cheap phentermine pills Xanax vs klonopin Cheapest cialis Didrex Discount drug phentermine Clotrimazole Lowest prices viagra Orlistat Generic viagra cialis levivia buy cheap Phentermine cheapest price How long does xanax stay in the system Cheap tramadol 180 Methdilazine Viagra jokes Paris cheep phentermine Buy Zoloft Viagra on line uk Tramadol overnight Phentermine free shipping 90 supply Tramadol hydrochloride tablets Astemizole Tramadol cause kidney problems Aricept Cialis vs viagra Discount phentermine price Perscription cialis Phentermine delivered overnight How to stop taking xanax Dexbrompheniramine Mevacor Info on meridia Phentermine mastercard Canada cialis generic Non prescription viagra Ecotrin History of phentermine use Cytomel Phentermine online ordering Viagra free consultation Hydralazine Fexofenadine Viagra anxiety Xanax ambien Compare viagra to cialis Flomax Cheapest viagra in uk Cheap phentermine without prescription Ampicilin Phentermine review Viagra alternatives Phentermine side effects dangers Cephalexin Somatostatin Tyropanoate Ambien 10mg Imitrex Cialis new viagra Buy generic hydrocodone Lotrimin Dantrolene Best price for viagra in the uk 100 tramadol Phentermine directly and discreetly adipex Nitrofurantoin Buy Diazepam Nystatin Cause rebound weight gain phentermine Ambien cr Triflupromazine Phentermine generic Cialis discount online Bayer Permax Vicodin detox Free cialis Buy cheap phentermine free fedex Diet pill phentermine Buspar xanax Nystatin Accolate Black market viagra Xanax for sale Hydroflumethiazide Ambien coupon cr Phentermine adipex diet pill discount Hydrocodone guaifenesin Discount generic cialis Isotretinoin Thiabendazole Order cialis Buy discount phentermine How much xanax is a lethal dose Phentermine from a mexican pharmacy Metoclopramide Phentermine usa pharmacy Guanadrel Cyclamate Methicillin Mefloquine Diet phentermine Ups cod phentermine Per day buy phentermine Droperidol Haldol Cheep phentermine Actos Best price for generic viagra Is viagra safe for women Cephapirin Enoxaparin Buy cheap no phentermine prescription Is viagra safe for woman Cialis levitra vs Prometrium Allegra Mucomyst Phentermine discount no prescription Buy ambien online Generic viagra cialis Cheapest price phentermine online pharmacy Coreg Cheap overnight tramadol Ambien eminem What does xanax do Prempro Thiopropazate Lisinopril Sulfonamides Clomipramine Buy meridia online Xanax bar effects Cheapest fioricet

Getting vim to recognize a new file extension as an existing file type

August 29th, 2008

For global configuration, add this to /etc/vim/filetype.vim, for just you, add to ~/.vim/filetype.vim :

if exists("did_load_filetypes")
    finish
endif
" add .ctp and .thml as recognized php file extensions (good for CakePHP)
augroup filetypedetect
    au! BufNewFile,BufRead *.ctp,*.thml     setf php
augroup END

In this example, I’m getting vim to recognize .ctp and .thtml files as PHP. Both extensions are used by CakePHP.

The vim documentation has full explanation of how to add and configure file types.

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

Global (all users) vim configuration, i.e. enabling autocomplete and syntax highlighting

August 29th, 2008

In Linux, the global vim configuration is generally in /etc/vim/. For instance, while you might want to configure some options for yourself in ~/.vimrc, global options that you wish to apply for all users go into /etc/vim/vimrc (no ‘dot’). Your vim installation directory, something like /usr/share/vim/vim70/ has folders autoload/, syntax/, and plugin/, but altering these is not a good idea, since you could lose your modifications when vim is upgraded. Creating the same directories under /etc/vim/ is safer and more correct. /etc/vim/autoload/* will execute automatically, just like the autoload scripts in the installation dirs and the autoload scripts under ~/.vim/autoload/.

Below is the /etc/vim/vimrc file as it exists on two of our development servers. Please consult the vim documentation or :help for full explanation of any of these directives. In bold are the directives for syntax highlighting and autocomplete:

set nocompatible
set autoindent
set smartindent
set ruler
set incsearch
set tabstop=4
set shiftwidth=4
syntax on
color elflord
set backspace=indent,eol,start

"PDV vim plugin - ctrl-P on any line 
"will document that line outamatically in PHPdoc syntax
au FileType php source /etc/vim/plugin/php-doc.vim
au FileType php inoremap <C-P> <ESC>:call PhpDocSingle()<CR>i
au FileType php nnoremap <C-P> :call PhpDocSingle()<CR>
au FileType php vnoremap <C-P> :call PhpDocRange()<CR>

"Enable autocomplete via ctrl-x ctrl-o
setlocal omnifunc=syntaxcomplete#Complete
" Javascript didnt seem to register correctly with the setlocal 
" command above
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
" Make it a little easier to autocomplete (ctrl-J instead of ctrl-X, ctrl-O)
" Ctrl-J is the same as the enter key by default, so it’s harmless to remap 
" it to the autocomplete command sequence to make it home-row friendly. 
inoremap <C-J> <C-X><C-O>
social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

A great blog: The Daily Vim

August 27th, 2008

Many of my readers (not that there are many) will enjoy The Daily Vim. Author Travis Whitton posts tidbits that most shell-dwellers will enjoy… even emacs users. The topics he covers are topics I’ve touched on: Linux/Ubuntu administration, shell programming, editing with vim, and general hacker tomfoolery. He posts very frequently; it’s like “word of the day” for people who care more about bash than English. Check it out.

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

screen: no more losing my vim editing sessions when the ssh connection drops

August 22nd, 2008

screen is a utility that lets interactive shell and application processes persist between login sessions. It also lets you manage multiple sessions within a single login session and between login sessions. There’s a ‘windows’ analogy beggin to be made, but it wouldn’t be quite accurate or useful.

I’m a bit embarrassed, because I’ve known about screen for quite some time, and I just started really using it. Maybe it took me so long to adopt because it has one of the longest man pages I’ve ever seen (which, btw, is a good thing, albeit a tad intimidating). In any case, that is one friggin long man page, so I’ll enumerate some of the basics here — a cheat sheet, if you will:

Create a new screen session named ‘codingMarathon’:
screen -S codingMarathon

‘Detach’ your current session so you can log out of ssh and shut your computer down, for instance:
ctrl-A d

‘Retach’ the same session by name:
screen -r codingMarathon

List all screen sessions:
screen -ls

Screen can do a lot. You can ‘nest’ screens. That is, once you are inside a screen session, you can open new ‘windows’ with: ctrl-A c and jump between the windows of a screen session with the mnemonics ctrl-A n (next) and ctrl-A p (previous).

Don’t forget this one. ctrl-A ? gives a quick list of available commands.

Since we use suPHP, I need to edit each site as a different user. That’s a good thing, for security reasons, but that’s a lot of login sessions to maintain! On our development machine, I am only using one login, and maintaining screen sessions for each vhost’s user. I begin them like so:
screen -S vhostName su vhostuser

I’ve been doing this for about a week, and I have screen sessions that are that old. I’m guessing they’ll last until that machine goes down, which will probably be a while!

Even if I didn’t have to use a bunch of different logins, screen would still be a boon. Twice already, I’ve had network interruptions kill my ssh connection in the middle of a coding session. With screen, I could pick up right where I left off! I know that, for some people, interruptions come more than once a day. You know who you are. Try adjusting the keep-alive interval in your ssh client. And use screen!

A word of caution… always save your work. Screen is great, but you’ll waste time doing file recoveries if you detach unsaved editing sessions and the server has to go down.

This is certainly no replacement for R-ign The F-ing M. man screen is, as with moth man pages, going to help you the most.

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

delicious feature request: expiration date on links (submitted to delicious.com)

August 22nd, 2008

Like many users, I bookmark news articles using delicious. It would be nice if I could set them to expire after a certain period of time. You see, I use delicious for two purposes: to save links, and the share links. In some cases, the links I share don’t really need to be saved; I am not likely to go back looking for them in the future. A special tag such as expire:30 (with ‘30′ here representing a variable number of days) would be useful. Many notable people, such as Stephen O’Grady of RedMonk, also use delicious to share links, and might trumpet the new feature. For delicious, the feature might mean using a little less storage space (in fact, I personally might set more than half of my saved links to expire).

Thanks!

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

ssh and telnet on Windows Mobile 5 for SmartPhone (Motorola Q 9c) with zaTelnet

August 7th, 2008

After trying unsuccessfully to install one or two other ssh clients on my Q, zaTelnet came through. It’s distributed on a shareware / evaluation model, but the registration cost of $20 was more than worth it. Kudos to them, too, for letting the unregistered version work very well so I could give it a shot before buying.

I find the interface to be surprisingly intuitive and functional. Selecting font size on the main connection screen is great - I find that 6 is the smallest I can read easily. It also saves and restores sessions efficiently.

Direct link to CAB if you’re on your Windows Mobile 5 device

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

Updating an svn working copy from a non-versioned source tree — quick & dirty bash surgery

July 10th, 2008

When you find out, for whatever unpleasant reason, that you need numerous files in your working copy overwritten from a non-versioned source, it’s a bit of a problem. You can’t go overwriting your whole working copy tree, because you’ll lose all those .svn files, and that wouldn’t be much of a working copy anymore, would it?

What you somehow need to do is individually overwrite files that have changed, which I do here:

diff -rq unversioned workingcopy | grep -v '\.svn\|_notes' | grep 'differ' | while read a uvfile b svnfile c; do cp $uvfile ${svnfile%/*}/; done

Explanation: a recursive diff of the unversioned directory against the working directory, with brief output, ignoring .svn and Dreamweaver _notes files (not from me, I promise), filtered by only ‘differ’ as opposed to ‘Only in’ differences (cheating here, since I was confident none of my filenames contained the string ‘differ’), And doing a really cheap ‘while’ to parse out the filenames to copy over. Notice I’m cheating with the while loop as well, because this won’t work with filenames containing spaces. Do yourself a favor, and don’t use filenames with spaces if you want to be able to do stuff like this in a hurry. ${svnfile%/*}/ takes the filename off the end of the svnfile variable (actually, it takes off the final slash as well, which I re-added). That step may not have been necessary… but it stays ’cause that’s what I actually did.

Thankfully I had few enough ‘Only in’ differences to handle it manually, but I think the above command could be tweaked easily enough to perform those ‘merges’ well.

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

My new pocket technology stack: Verizon, Motorola Q 9c, bluetooth headset, Plaxo Premium, Yahoo! Go, Opera Mobile, GMail/IMAP

June 11th, 2008

The last six weeks have been pretty insane! I will stay relatively cryptic about the details, but, as my friends already know, I have changed jobs twice in that time period. The job for which I left HUGE seemed like a great opportunity, but I found myself highly uncomfortable in the position. A more-than-suitable alternative (in the form of Practice Technologies) happened to make itself available (as I was figuring out that I had accepted the wrong job for me), so I made the jump. It was a very difficult decision, but, on the same token, I knew for sure that I was not in the right environment.

Aaaaanyway… an incidental side-effect of this unusually rapid job hopping was going through two work-sponsored phones in less than a month. Which made me realize a much more minor mistake than accepting the wrong gig: having a phone and phone number that I did not own.

Verizon

Immediately upon tendering my resignation from ‘mystery job B’, I went to the Verizon store. Fiscally-retarded as I am, I had maintained an account with Verizon for the many months HUGE had been providing a phone, so it seemed like a logical choice to reawaken the relationship (plus, they’ve always actually given me pretty good service). The clerk did some math to figure out that I’d spend less money if I paid the cancellation fee on my old account, and started a new 2-year contract. If I ever mail in that $50 rebate, I will have gotten a really good deal. And it’s worth noting that Verizon was the first provider to offer pro-rated cancellation fees, a customer-friendly policy.

Motorola Q 9c

On my roommate’s recommendation, I went for the late-model Motorola Q, a Windows Mobile 6 smartphone, similar in shape to a Blackberry. Having used a couple of pocket PC-type phones in the past, the smartphone is a welcome departure. In fact, I’m sad that I didn’t get a smartphone sooner. Most importantly, the smartphone’s ability to function as a phone is vastly superior. Even though the numeric keypad is superimposed on the alphabet keys, I can start typing a number (without hitting ‘function’) OR a name, and the phone instantly and magically figures out which I need. It’s not rocket science, I suppose, but I am very pleased with that interface feature. Originally fearing that I’d miss a touchscreen, the smartphone has brought me in the direction of near-loathing when it comes to touchscreens on handheld, pocket-borne devices. It’s small. It’s not exacerbating the hole that my pocket PC wore in my pocket. I can always use it with one hand. And say what you will about Microsoft, but I actually kinda like Windows Mobile 6; the user interface is almost completely intuitive, it’s fast, and there are tons of available applications.

bluetooth headset

In 20 days, it will be against the law to talk on the phone while driving in California without a hands-free device. A generic bluetooth headset and car charger were just a few extra dollars, so I got them. Windows Mobile 6 puts the bluetooth setup right on the home screen (or did I set that up? whatever), so it’s very quick to get set up as I begin either leg of my commute. The Q has superb voice-activated dialing, so I pretty much only ever touch one button (one that is ergonomically findable, keeping my attention on the road). I’ve spent more time talking to my family in the last 2 weeks than I had in the previous month. Go bluetooth.

Plaxo…

Sam clued me in that Plaxo had some mobile integration capabilities. Visiting their site for the first time in a while, I was impressed at the number of services they currently integrate. Plaxo is now pulling in both my Yahoo! and Google address books (in a read-only fashion: it does not update remote accounts), as well as my Google Calendar. Plaxo used to pull Yahoo! Calendar, but support broke and/or was discontinued at some point. I have continually heard rumors that a Yahoo! Calendar API is coming; if that ever happens, hopefully Plaxo will again pull in that service. Plaxo also used to directly pull in LinkedIn connections, but it looks like LinkedIn gave them the smackdown. It’s still possible to export your LinkedIn contacts to CSV, so I don’t see this as being a huge deal.

…Plaxo Premium

For me, there were two reasons to upgrade to Plaxo Premium. First is Windows Mobile Sync. Mobile Sync is what drove me to Plaxo this time around, and I don’t mind paying for useful premium services. Plaxo for Windows Mobile was easy to install on the Q, and I only had to run it once for a simple initial setup. The second bonus of Plaxo Premium is address book duplicate removal. This seems like a less-likely candidate for a ‘premium’ designation, but I’m paying anyway, and I enjoyed removing/merging duplicates through their fairly effective interface.

Yahoo! Go

This neat little program is a simpler, often better, interface to the Yahoo! family of services, including mail, address book, calendar, Flickr, maps, and news. One highly impressive feature of Yahoo! Go is the ability to dial people directly from your Yahoo! contacts. Browsing Flickr is also straightforward and well-geared to a device with a small screen. Both contacts and Flickr suffer a similar problem, though, in that you can’t save a contact or a photo to your phone; to get them, you must return to Yahoo! Go. I wanted to save a Flickr photo as my screen background, and no dice. I suppose I could use Opera Mobile to do that…

Opera Mobile

Possibly the biggest no-brainer in the Windows Mobile third-party software space is Opera. Internet Explorer for Mobile truly sucks ass, and Opera Mobile truly kicks ass. Everything renders better, and Opera supports javascript. IE is in the stone age, and I’ll leave it at that. Download it, and when your 30 day trial is over, cough up the $24. It’s well worth it. The web geek in me also appreciates Opera’s role as a standard-bearer for web standards, so I almost revel in tossing them a few bucks.

GMail / IMAP

GMail, which I use exclusively as my work email client, offers IMAP. I set up Outlook on my phone to pull mail from GMail every 15 minutes or so, and it’s working swell. It’s oddly convenient that work email comes to Outlook on the phone, and personal email is inside Yahoo! Go.

Maps? Google?

The Google Maps application works, for the most part, but has let me know that the pseudo-GPS functionality is not available on my phone. I have a sneaking suspicion that Verizon’s desire to sell me the VZ Navigator application/service is behind this feature-squelching, and, if that’s true, shame on them.

Overall, I will go so far as to say that I have never been so happy with my phone situation.

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

New Job: Web Development Lead at Practice Technologies

June 6th, 2008

I’m very pleased and humbled to announce my new job as Web Development Lead at Practice Technologies (aka PTI). PTI has been around for several years, providing extremely powerful document management software for law firms. Lately, they’ve been pushing some of their rich data services online, such as RealDealDocs and SmartRules. These information services (which are subscription-only) are superbly useful and labor-saving for trial lawyers, litigators, law librarians, and people who do legal-related document creation.

I’ve very excited to get my dirty little fingers into their information systems. The volume of documents and document meta-data that PTI has collected represents a tremendous potential, only a fraction of which has been tapped so far.

Tag has a small and extremely talented group of developers, and I am thrilled to be working with them. I’ll be up to my old tricks: writing documentation, refining processes & practices, automating, designing solutions, and coding, primarily in my beloved LAMP realm.

From the roof at their Venice office, I can see the ocean. The commute is 45 minutes to an hour, but I’ll probably fix that with a relocation within the next few months.

Wish me luck!

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit
  • Slashdot

Google Maps mashup with animated DHTML markers and infoboxes, YUI contributes

February 28th, 2008

Back in November, Family Travel relaunched with a ton of new content, a completely new look & feel, and great Google Maps integration.

I’m the dummy who told the client that animated markers and infoboxes would be OK, and I’m the dummy who had to code it (the javascript) in under two months, by myself. To be honest, the launch was a little glitchy. Now, though, things seem to be running pretty smoothly.

As far as I know, Family Travel is the first and only site to have animated DHTML markers and infoboxes. We probably could have accomplished the feat in Flash, but I was not comfortable with the general state of Flash integration with Google Maps. Even in the months since I began coding the project in Javascript, that arena has gotten stronger, though I’d still call it “experimental” for advanced applications.

Speaking of experiments, while the Google Maps application and its API are pretty well-tested, I was definitely treading some new ground. Also, I found the documentation to be lacking in some instances; for instance, it’s not always explicit what type of object is required as a parameter and what type of object is returned (in some cases, a class will be referred to by two or more names throughout the documentation - not helpful!). One possible bug I found was that the ‘disableDragging’ method doesn’t always ’stick’. Perhaps all of my animation and GOverlay hacking was confusing the map, but dragging definitely enables at times that I don’t want it to, and at times when I’m definitely not calling the ‘enableDragging’ method. I’ve unfortunately overcome this with a ‘dontDragDaemon’, which makes sure dragging stays disabled when it needs to.

First of all, the GMarker class and GInfoWindow class simply don’t support animation. That was a big deal to overcome. I wound up completely re-implementing both concepts according to the GOverlay interface, which worked out well. However, I found some of the behavior of GOverlay to be downright unpredictable. The ‘force’ parameter to the redraw function seemed to be passed ‘true’ more than I wanted it to, so I had to manage that largely on my own. Inside my info windows, Flash movies sometimes play. In Safari, mouse interaction with the Flash did not work at all. I suspect it had something to do with the ‘pane’ architecture of the map, but after much head scratching, I decided to take the Flash out of the map, and merely position it on top of the map.

Here are two great examples of the map in action. Unfortunately, the feature is a bit hidden. Click ‘Map It’ to bring up the map. Comments and bug reports are encouraged:

There’s also a small version on the map, used on another type of page (down the right side):

All of the animation and event handling was done using YUI, a library for which I only become more fond as time goes on. The documentation is perfect, once you find your way around. I may write another article just to fully proclaim my love for YUI…

social bookmark of choice: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Ma.gnolia
  • Reddit