The Software Industry Conference has been rebranded as ISVCon. The conference will be held July 13-15, 2012, in Reno, Nevada.
Today, we took our first “long” motorcycle trip, through Alabama. Our first stop was at Horseshoe Bend National Military Park. Overall, we were happy with the scenery, but disappointed with the park. The website mentioned that there would be a Tennessee Militia drill with “musket or cannon firing demonstrations” starting at 10:00 a.m. However, we didn’t see anyone despite waiting around until 11:00 a.m. or so. We stopped in the visitor center, but most everything there focuses around General Andrew Jackson defeating the Red Sticks, who were barricaded inside the “safety” of the river bend. Unless you’re interested in military or Native American history, it’s a bit depressing.
![]() |
| Visit to Horseshoe Bend National Military Park on April 21,2012 |
We also visited Wind Creek States Park on Lake Martin. They have lots of picnic tables and an RV/camping area. We ate our packed lunch (from Panera) and rode through all the areas of the park. Beautiful! I took about thirty pictures and stitched the last fifteen or so into a panoramic shot near the waterfront.
Thanks go out to Daniel at Russell Marine for suggesting Wind Creek as a good lunch location.
![]() |
| Visit to Wind Creek State Park on April 21, 2012 |
Copying email addresses from Apple Mail to your address book is an absolute pain on the Mac (OS X).
I figured the easiest way to move a set of addresses from an email message to my GMail address book would be to create a VCard file using the Apple Address Book. For some insane reason, you can’t drag an address from Apple Mail to the Apple Address Book, nor copy-paste them. That left me with the option of manually creating the addresses, one-by-one. Not going to happen.
I ended up looking up the VCard spec and deciding that I could copy-paste the addresses into a text editor, then hack together a VCard file using search and replace. It worked well enough, but I’m not inclined to do it again for another set of addresses.
Since the VCard spec is relatively simple, I decided to whip up a converter that would read names and addresses (as they appear in Apple Mail’s copy-paste format) and produce a VCard file. It took less than an hour and turned out pretty good, if I say so myself.
I needed to do some unit testing for a PHP webapp I’m writing for my doctoral research. A Google search turned up SimpleTest.
It fit the bill perfectly. It took me exactly 19 minutes (my research is in software effort estimation) to get it downloaded, installed, and run my first test. Nice! Highly recommended.
I’ve finally ditched the last of my GoDaddy services. The SOPA/PIPA debacle was the last straw. I moved everything over to NameCheap.com, based primarily on the recommendations of fellow Redditors.
Disclosure: If you click this link to NameCheap.com and buy any of their services, I get a small kickback that will help keep this site running.
My favorite web hosting company just turned nine years old and they sent me an email saying they were offering a $50 discount to anyone who signs up for a year of hosting. Just use the discount code “9YEARS”. The offer is valid until February 12th at midnight UTC.
Note: If you use any of the links to WebFaction on my blog, I’ll get a referral bonus, which will help keep this blog running.
These are some notes I’ve made during a self-guided, crash course on getting started with LaTeX. Mac OS X only, though.
- Downloaded a LaTeX editor for the Mac: MacTex. Installed in the normal way.
- It created a TeX folder inApplications.
- BibDesk – Maintains a list of references for a manuscript in a .BIB file.
- TeXShop – Editor for .TEX files. My favorite so far.
- TeXWorks – Another editor for .TEX files. Didn’t like it as much as TeXShop.
- Really haven’t done anything with the other apps in the group.
- Using BibDesk
- This is a file-based software for managing references.
- To add a reference
- Locate a publication to reference (ACM, IEEE, etc.)
- Locate and click the BibTeX link.
- This will either display a text block beginning with “@something{” or a file will download.
- If text block is displayed, copy the entire text block, switch to BibDesk, and click Publication, New Publication from Clipboard…
- If a file is downloaded, locate the file in Finder and drag it onto the BibDesk window.
- If you can’t find a BibDesk link on the site, try finding the article in CiteSeerX or even Google Scholar.
- For ease of use, I standardize the cite key value for each publication. In my case, that means every reference follows the pattern {author}{year}, such as Thackston2012. Makes it much easier to remember, find, and cite publications.
- Save the BibDesk file using a .BIB extension. Put it in the same folder as your manuscript.
- Note: Not all BibDesk references are created equal. I have found websites with incomplete reference data. Verify!
- Using TeXShop
- Hopefully, the publisher provides a class file, a style file, and a template. For example, the ACM provides all three. Beware! ACM has some older pages with outdated class files.
- The class file and style file should never need editing and can be dropped into the same folder as your .TEX file.
- Editing a .TEX file
- Note: LaTeX obviously has strong roots in the technical world, since a .TEX file looks like source code and pretty much behaves like source code.
- Launch TeXShop and open the template. If you were not provided one, I suggest making a personal one. You don’t want to start documents from scratch every time.
- Probably will need to set the document class to reference the provided class file. Leave of the file extension.
- \documentclass[acmcsur]{acmsmall} <– This line references the acmsmall.cls file and a specific journal name, acmcsur, defined inside the class file.
- Will also need to set a few things like title, authors, etc.
- The abstract goes between the \begin{abstract} and \end{abstract} tags.
- The body of the document goes between the \begin{document} and \end{document} tags.
- References in your document
- To cite a reference, use \cite{CiteKey}, where CiteKey is the cite key from the BibDesk file.
- The bibliography gets inserted by adding \bibliography{MyDocument.bib}, where MyDocument.bib is the BibDesk file with your references.
- When you compile your document, the references and bibliography get built and updated for you.
- You can also manually manage your bibliography by using \begin{thebibliography}{}, \bibitem{}, and \end{thebibliography}.
- Some random notes
- The \usepackage{} tag brings in new functionality, like an import in Java.
- Emphasis should be made using \emph{} (i.e. italics)
- Tables are constructed using an \array{}.
- Figures and tables a labeled using \label{} and referenced using \ref{}.
- Spanning rows and columns in tables can be accomplished using \multirow{} and \multicolumn{}.
- Column borders are created using a pipe symbol (|); row borders are created using a \hline.
- Equations are entered using \begin{equation}.
- Comments can be entered using the percent sign (%).
- Paragraphs can be kept together using \begin{samepage}.
- Creating a PDF from the .TEX file
- TeXShop actually is just a text editor that can run some command line stuff in the background and show you the results.
- To generate a PDF, make sure the first dopdown list on the toolbar has “LaTeX” selected. Click the Typeset button. A PDF window should appear.
- If a PDF window did not appear, you did not generate the PDF properly, likely due to an syntax error in your document.
- Note: If you are using a .BIB file for your citations, you need to follow these steps each time you build the PDF (to get all the cross-references right)
- Select “LaTeX” in the toolbar and click Typeset.
- Select “BibDesk” in the toolbar and click Typeset. Check the output window and make sure there are no fatal errors.
- Select “LaTeX” in the toolbar and click Typeset.
- Select “LaTeX” in the toolbar and click Typeset.
- (No, I haven’t bothered to figure out why you have to do this. I’m sure there’s a good reason. but I don’t really care.)
- You should get a PDF window each time you do a LaTeX build. If you don’t you have a problem. No, I won’t help you figure out what the problem is…
- Best overall references for getting started with LaTeX are The Not So Short Introduction to LaTeX 2e and LaTeX for Word Processor Users.
Spoiler: It was the SCFinderPlugin I had installed (and had forgotten about).
A few weeks ago, Evernote started crashing on my Mac. I don’t know if it was a new version of Evernote that caused it or an update to OS X. All I know is that every time I tried to “open” or “save” a PDF embedded in a Evernote note, the program either crashed or I got the spinning beach ball of death.
I opened a support ticket with the Evernote team an, despite having a free account, they promptly responded with a link to their next beta release. I tried it out, but it didn’t fix anything. The next message I got was from their development team asking me to remove SCFinderPlugin, since it was listed somewhere in the gibberish of the OS X crash report. I wasn’t hopeful, but I tried it anyway. Lo and behold, it worked. So apparently, the current version of Evernote and SCFinderPlugin do not play well together. Since I never used the plugin anyway, I’m not missing anything.
For full instructions on how to uninstall SCFinderPlugin, go to the Tigris website.
Here’s an excerpt from the crash report, in case someone out there is using their Google-fu to try and find an answer.
Process: Evernote [4492] Path: /Users/USER/Downloads/Evernote.app/Contents/MacOS/Evernote Identifier: com.evernote.Evernote Version: 3.0.6 Beta 2 (215813) Code Type: X86 (Native) Parent Process: launchd [283] Date/Time: 2012-01-18 19:01:40.915 -0500 OS Version: Mac OS X 10.7.2 (11C74) Report Version: 9 Interval Since Last Report: 182825 sec Crashes Since Last Report: 2 Per-App Interval Since Last Report: 238 sec Per-App Crashes Since Last Report: 1 Anonymous UUID: 6A055CE3-4A47-437A-B691-012525A3A902 Crashed Thread: 4 Dispatch queue: TFSVolumeInfo::GetSyncGCDQueue Exception Type: EXC_BAD_ACCESS (SIGABRT) Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000fefff000 VM Regions Near 0xfefff000: CG backing stores 00000000c9db1000-00000000ca3e0000 [ 6332K] rw-/rw- SM=SHM --> VM_ALLOCATE 00000000fefff000-00000000ff000000 [ 4K] rw-/rwx SM=PRV Submap 00000000ffff0000-00000000ffff2000 r-x/r-x process-only submap Application Specific Information: Performing @selector(saveResourceAs:) from sender NSMenuItem 0x6ac8610 objc[4492]: garbage collection is OFF abort() called An uncaught exception was thrown with this reason: Uncaught system exception: signal 10 and this backtrace: ( 0 CoreFoundation 0x91742d87 __raiseError + 231 1 libobjc.A.dylib 0x9634a149 objc_exception_throw + 155 2 ExceptionHandling 0x00797f08 -[NSExceptionHandler _handleException:mask:] + 1422 3 ExceptionHandling 0x00797972 -[NSExceptionHandler _createAndHandleUncaughtSystemExceptionWithSignal:pc:sp:] + 277 4 ExceptionHandling 0x007982fd NSExceptionHandlerUncaughtSignalHandler + 60 5 libsystem_c.dylib 0x915dd59b _sigtramp + 43 6 ??? 0xffffffff 0x0 + 4294967295 7 DesktopServicesPriv 0x980264fe _ZN7TFSInfo10InitializeEhP29OpaqueLSSharedFileListItemRef + 770 8 DesktopServicesPriv 0x97fac9f6 _ZN19TFSInfoSynchronizer13FetchChildrenEv + 652 9 DesktopServicesPriv 0x97f988b3 _ZN5TNode19SynchronizeChildrenEmR16TNodeEventPtrSet + 181 10 DesktopServicesPriv 0x97f98327 _ZN5TNode10HandleSyncEm + 2123 11 DesktopServicesPriv 0x97f97aaf _ZN5TNode10HandleSyncERK11TCountedPtrI9TNodeTaskERK8TNodePtr + 55 12 DesktopServicesPriv 0x97fe62d6 _ZN5TNode17HandleNodeRequestERK11TCountedPtrI9TNodeTaskERKS0_I17TVolumeSyncThreadE + 978 13 DesktopServicesPriv 0x980095e5 __PostNodeTaskRequest_block_invoke_08 + 87 14 DesktopServicesPriv 0x9801bb09 _Z18ExceptionSafeBlockU13block_pointerFvvE + 55 15 DesktopServicesPriv 0x98009588 __PostNodeTaskRequest_block_invoke_0 + 86 16 libdispatch.dylib 0x986fee11 _dispatch_call_block_and_release + 15 17 libdispatch.dylib 0x98700797 _dispatch_queue_drain + 224 18 libdispatch.dylib 0x9870063c _dispatch_queue_invoke + 47 19 libdispatch.dylib 0x986ffe44 _dispatch_worker_thread2 + 187 20 libsystem_c.dylib 0x91587b24 _pthread_wqthread + 346 21 libsystem_c.dylib 0x915896fe start_wqthread + 30 ) Break on objc_exception_throw to catch it live
Patrick McKenzie’s article Don’t Call Yourself a Programmer is a must-read, especially for third and fourth year engineering students. And for new graduates. And for anyone who has to work for a living.
The (many, many) comments from readers aren’t worth reading in detail, but it’s interesting to note of the number of people who choose to be offended by Patrick’s post, rather than consider its possible importance.
Really interesting article about user settings over at uie.com. Short answer: Not unless their are technical-minded people like programmers or designers.

