Charles on Software

Opinions about designing, programming and using software

Browsing Posts published by Charles Calvert

Our server that hosts our Subversion repositories died recently.  I put up another server in its place and wanted to recover the Subversion repositories that we had.  They were backed up, of course, but I wanted to get the most recent versions if I could.  Since the server suffered from a motherboard failure, rather than a hard drive failure, I thought that my chances were good.

Unfortunately, I was able to find no information on recovery via binary files.  Most of the information assumes that you’ll be recovering from archived dumpfiles.  The Subversion book from Redbean has a section on migrating Subversion repositories, which is also useful for back-up.  It doesn’t mention binary recovery, though.

Fortunately, it turned out to be quite easy. continue reading…

I had a situation in which a client had underpaid one invoice by $12 and overpaid another by $24.  I applied the overpayment to the underpaid invoice, which left a credit balance of $12.  Since I didn’t expect to issue any new invoices to this client for a while, I decided to refund the balance.  This is where my pain began.

I’m using QuickBooks Pro 2010.  I have a love/hate relationship with this software.  I love that it does almost everything that I need.  I hate that Intuit plays vendor lock-in in order to sell all sorts of other products and services.  Unfortunately, I haven’t seen any open source software that does what I want, and I’m not going to trust my business’s critical financial data to a SaaS.

All of the information that I found was geared toward issuing a full refund of an overpayment or issuing a credit memo (which creates a new, separate credit) and then refunding that.

continue reading…

I just finished reading a great blog post by Hilton Lipschitz entitled “It Should Only Take You a Few Hours …”. In it, he uses the analogy of a carpenter hired to build a table to explain why software developers can’t slap together a piece of software in a few hours.

In my experience, most people either overestimate or underestimate the difficulty of building software, usually by a significant degree.  People who overestimate tend to be those who actually use the software to do their work.  People who underestimate it tend to be managers and other decision makers who have to pay the bill.  No surprise there.

As a consultant who routinely deals with new clients, a big part of my job is to educate them on the level of effort required to develop a piece of software.  It’s not uncommon for the first consultation to end in disappointment when I inform the client that their new YouTube killer cannot be built for $2,000.

While the disparity between budget and desired outcome is frequently a factor, I think that there are others. continue reading…

I’m working on a project that uses various virtual machines for development.  They’re supplied by the client, so I have to use what they provide.  One of the VM’s that they provide is a Fedora Core image.  For most of the year, I’d been working with an image of Fedora Core 12.  Just recently, however, I had a chance to upgrade to their latest image, Fedora Core 15.

So far it’s nice, but one thing that was missing was the icons on the desktop.  I read through a few forum postings, then finally found this blog post by Leonid Mamchenkov.  It mentions using gnome-tweak-tool.

continue reading…

Using my new MacBook Pro, I’d started having problems with my Safari session. One of the open tabs was to a page at help.github.com. For some reason, whenever I went to or tried to close the tab, or closed Safari itself, Safari would crash.

I don’t know why that page was crashing, and I didn’t really care.  I just wanted to close that tab so that it would stop crashing my sessions.

After some research, I discovered that Safari stores the open tabs in ~/Library/Safari/LastSession.plist. Deleting this file got rid of the existing session, so I was able to start Safari, create a new session, and not have Safari crash on me.

There’s probably a way to edit the plist and just remove the tab that was crashing, but that would involve using a plist editor, and I didn’t want to save the session enough to justify going to that trouble.

I ran across a blog post from Bill Taylor via LinkedIn entitled “Great People Are Overrated”.  Based on a comment by Mark Zuckerberg, he’s wondering if Silicon Valley isn’t going overboard in chasing people who are perceived to be technical superstars.

This isn’t a stupid question, but his post runs off the rails in a couple of areas. continue reading…

Recently I was putting up another Joomla! site and ran into a problem with a module that I’d added: the module’s title wasn’t appearing, even though I’d configured the module to show the title.  I went into the Module Manager, opened the module in question, checked that “Show Title” in the “Details” section was set to Yes.  Nope, no title.

Google lead me to this somewhat vague page on J!BT Websites’ site.  Here’s the short version. Every module is assigned to a position.  This position controls where on the page the module appears.  Check your module to see what position it’s using.

Open up your template’s index.php and look for a line like: <jdoc:include type="modules" name="right" style="xhtml" />. You’re looking for one where the “name” attribute contains the position that your module is using. Is it missing the “style” attribute? If so, you need to add it.

wrong: <jdoc:include type="modules" name="right" />

right: <jdoc:include type="modules" name="right" style="xhtml" />

Not having the style attribute causes Joomla! to not add a number of important elements, like the module title.

After upgrading to Firefox 3.5, I noticed that I started getting this warning with some sites after a long delay: A script on this page may be busy, or It may have stopped responding. You can stop the script now, or you can continue to see if the script will complete. It only happened with some sites, like Google Maps, Twitter and Meetup.com, but it was really annoying. Also I noticed that sites which made use of Google Analytics often paused when contacting an Analytics server. Because I do a lot of web development, I have a lot of add-ons installed in Firefox. Disabling all add-ons got rid of the problem, so I knew that one of them was to blame.
continue reading…

As part of working with Big Blue Bear Consulting, I was helping Will Knox set up RapidSVN so that he could access our Subversion repository.  Things seemed to go well, but we kept getting the error “can’t move … the file or directory is corrupted and unreadable”, particularly when committing changes.  Will was working on the 64 bit version of Windows 7.

Searching on this error brought me to a very useful blog post by a person named Schleichermann that described the same error, although he was using TortoiseSVN rather than RapidSVN.  The error was being caused by the Windows Indexing Service, which is locking some of the files in the .svn directory.  You can exclude folders and files from indexing, which is the solution here.

Options:

  1. Turn off indexing for the top level folder.  Pro: you won’t have to remember to add .svn folders in any subfolders to the list of items to be excluded from indexing.  Con: it won’t index source files in those folders either, which will slow down searches in those folders.
  2. Turn off indexing for only .svn folders.  Each must be done manually.  Pro: The indexing service will still index the source files, making searches faster.  Con: every time you add a subfolder to the project, you’ll have to remember to add its .svn folder to the list of folders excluded by the indexing service.

I tend to favor option 1, as I rarely use the Windows search on source code.  Instead I grep it.

I was working with Will Knox of Big Blue Bear Consulting on a small ASP.NET project.  I had written the code and created the master page template for a site, and Will was adding the content necessary to drive the client’s search engine rankings and on-line marketing efforts.

In order to make it easier for him to check his changes on the fly, I helped him install and configure IIS under Windows 7, then set up the application to run locally.  I had compiled everything on my system and pushed it over to him.  Since he would only be making changes to aspx files and CSS, there would be no need to recompile.

Once we had IIS configured, we copied the files into the wwwroot directory and ran the application.  Immediately, we got an exception:

Exception Details: System.Security.SecurityException: Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=3.5.0.0, Culture=neutral, PublicKeyToken=c3d6b267409e098c′ failed.

continue reading…