Setting up a Rails development environment to handle subdomains and custom domains is tricky. There are lots of suggestions from editing your /etc/hosts file, custom rack applications to handle CNAMEs, dnsmasq for wildcard domains, and more. All of them are compromises and often caused more problems than they solved. However, there is a decent solution to the problem. (Continued…)
Humanity has a lot of memories on tape. Video tape. Cassette tape. Even reel-to-reel tape. And there is one thing for certain, they are not going to last. Whatever your treasure, you should work to save it, now! (Continued…)
In the wee hours of the morning while everyone is fast asleep, the quiet is broken by a deep, booming male voice. It reverberates in my subconscious. I wake and check the house. Nothing. I could have sworn I heard someone talking. Everything is quiet. I’m so tired I immediately fall back to sleep.
The voice penetrates my subconscious again. I stand up, blearily walking the halls. Nothing. Again. Still tired. Back to bed.
Then it comes a third time. More insistent. Urgent even. I shoot straight up, wide awake, ready for anything. I hear the voice clearly as it begins an ominous countdown. 10, 9…. (Continued…)
iCloud keychain synchronization is more trouble than it’s worth. With 2-factor authentication on Google it causes no end of trouble as it tries to copy my Mail setup between my Mac Mini and MacBook Air. Additionally, keychain really only works with Safari, but I actually use four browsers — Safari, Chrome, Firefox, and Opera. And finally, iCloud keychain easily exposes passwords on iOS devices. My recommendation, use 1Password and don’t turn on iCloud keychain synchronization on your Macs. (Continued…)
Mavericks Mail broke my favorite method of linking to Gmail. I created a workaround, but it was a poor substitute. Fortunately, today Mavericks mail was upgraded to fix the problem. Now we can go back to the BEST way to set this all up. (This article replaces my previous Mavericks Mail article.) (Continued…)
Managing money is challenging and important. Banks and credit card companies earn their fortunes from people who don’t understand where there money goes. Bank fees and high interest rates are much easier to avoid if you understand exactly where you are spending money. Here are some tips from hard won lessons in managing money. (Continued…)
A month ago I received an email about my GmailMe mashup of Gmail and MobileMe. This is the set up I’ve used for years to forward Gmail to my MobileMe account so it can handle IMAP duties. Apparently iOS 5 beta won’t allow custom SMTP servers for outgoing mail. This letter spooked me into holding off migrating MobileMe to iCloud. After a lot of messing around I finalized a new set up to use iCloud services and use Gmail as a lightweight (yes, really lightweight) email service. (Continued…)
Ruby guard is an excellent replacement for ZenTest’s autotest. Originally guard would not run all tests unless you told it to. I liked this behavior because it meant running just the test I’m working on until I’m ready to run the whole suite. (Continued…)
We had a working solution to use wildcard domains on the localhost. Using a proxy.pac file and a tiny rack application we could pass any domain into the development environment. It was working great, until we tried switching to Rails3 beta. Whenever we specified a non-standard local domain, the Rails router would strip the query string off the URL. (Continued…)
To create an application where TextMate opens a directory as a project. Create a simple Apple Script with one line: (Continued…)
I found an article discussing Jim Lehrer’s — as in The Newshour with Jim Lehrer — rules for journalism. The PBS Column, Lehrer’s Rules discusses the voracity of these rules in today’s pile of mass media. It’s good reading, but the best part are the rules themselves. Every journalist should study these rules. (Continued…)
Having two methods of identifying the same edition on a CMS — subdomains and CNAMEs — is painful. Yet many websites have advocated this approach. Every request to the application requires multiple checks on the domain to correctly identify the edition. I believe this process developed from the difficulties of dealing with subdomains and domains in the development environment. Recently we found the answer that simplifies the whole system. (Continued…)
When we created our CMS we used tried-and-true subdomains to separate editions. SubdomainFu handled the logic of separating editions and it was easy — until we added custom domains. The standard method is to point — via CNAME — the custom domain (www.davesouth.org) to the subdomain (davesouth.example.com). Unfortunately the rails app can’t use SubdomainFu routing. (Continued…)
The NeolithicCMS we are writing separates editions by using subdomains. It works great in production. A single entry of *.neotrib.com in the DNS points all subdomains to the same server. But for local development we have to manually edit the /etc/hosts file for each subdomain. After adding a few editions it becomes a royal pain. Short of installing a DNS server, we needed a better solution. (Continued…)
I’ve had my blog linked to Facebook where it would import my blog posts as Notes. I’m not a big fan of this. For one thing, it can’t show all the photographs that I attach to blog posts — not that I’ve been posting a lot, but still. I’d rather have it post my blog post as a link with the title and abstract text and then link to the actual blog post. (Continued…)
The Notes app on the iPhone has a lot to be desired. My contacts, calendar and email seamlessly sync through the Internet via MobileMe. But not my notes. That requires a cable and manually syncing with iTunes. Oh, and forget about easy syncing between two computers because it won’t happen. (Continued…)
The short answer — 1000×600. The long answer. I recently reinstalled my computer and lost the settings in Web Developer for the carefully crafted window resizing I use when developing websites. I had to go back and retrace my research. So this post is about writing down the result so I won’t forget again. (Continued…)
TextMate’s very useful “Find in Project” is super slow for any decent Ruby on Rails application. The problem turns out to be very simple. TextMate searches the entire project tree including the tmp and log directories. It takes a lot of time to dig through those directories — especially the log directory which can quickly become many megabytes in size. Not only that, rarely do we want “Find in Project” to return results from these directories. The solution is simple. (Continued…)
Reporting a meeting has to be one of the most boring assignments a reporter will ever have. It’s ironic because it’s also one of the most important jobs, too. City councils, school boards, state legislatures, congress all make decisions that affect our lives and spend our — the people’s — money. They make these decisions in meetings wrapped by agendas, filled with tedious procedure and painted in sermons of officialese. The reporter’s job is to distill these official riddles into plain English that everyone can understand. (Continued…)
My content management system uses Thoughbot’s Paperclip gem to attach photographs to the stories. Photos are uploaded first to the local server. Then the server will later upload the photographs to Amazon S3. The process is transparent and silent — too silent it turned out. (Continued…)
I have two pet peeves about voicemail systems. Scratch that. I have about a hundred pet peeves but I just want to point out two. The first is why am I asked to press 1 for English and 2 for Spanish? (Continued…)
Banner advertising is a complete failure. It is a paradox of diminishing returns that traps a web publisher into treading water — never making progress and always struggling to stay afloat. What’s worse is how web publishers will flail around with bad idea after bad idea to get ahead. Yet these insane advertisements do more harm than good, cause readers to leave and sink the publisher even more. It’s time to end the madness and recognize that the banner advertising model itself is broken. (Continued…)
In the Safari 4 beta, the only way to add websites to the Top Sites page was to visit the website a bunch of times until it showed up or you edited a configuration file by hand. It was frustrating because I’d rather specify exactly what pages to show on Top Sites. I felt there had to be an easier way. With the final release of Safari 4, there is. Any website can be manually added to Top Sites. It’s quick and easy. (Continued…)
We use Thoughtbot’s Paperclip gem to attach images and other media to our Ruby on Rails models. When we save documents to a model object, we wanted to make sure the filenames were URL friendly — lowercase with only letters, numbers or hyphens. Paperclip’s processing chain makes it easy to insert this behavior before saving the file or running it through the thumbnail re-sizer. (Continued…)
For several years, Loy and I have worked under the company name of Apped Design. It was a cover name Loy came up with when we attended the first Mountain West Ruby Conference in 2007. The Neotribune was on the back burner and we were working on a couple of Ruby on Rails projects. We decided that it would be easier to go as independent consultants than try to explain a long, convoluted startup story no would be interested in anyway. (Continued…)
The newspaper industry is trying to build pay walls around their online content. The idea is that readers need to pay for content. This is a big problem because newspaper executives don’t understand how much their readers already pay to be online. In fact, they pay more than any newspaper subscription in history. (Continued…)
It started as a lark and grew into a passion. Something that consumed my mind day and night. After years of tinkering and testing we figured out how to do it — how to deliver the news, without the paper. (Continued…)
An ad by the Newspaper Association of America states that “No amount of effort from local bloggers, non-profit news entities or TV news sources could match the depth and breadth of newspaper-produced content.” Wow! That’s insulting. What’s worse, it completely misunderstands what’s happening to the newspaper industry and why the printed page is destined to fail. (Continued…)
A wonderful story about why we need to Save The Presses! I think the best one is “You can shed a tear right now for the iconic ransom note, with letters clipped from newspaper headlines. What’s a kidnapper to do? Print out letters at home using different fonts and point sizes?” (Continued…)
Managing email is a royal pain. Especially if you read email on more than one device. After buying iPhones last year, Mike and I worked up an excellent system of managing our email on the iPhone, computer and web. (Continued…)
Last year we did a project with substantial business logic requirements. The Rails testing framework saved us. We could create tests for all the different uses of the system and ensure that these rules were always followed. As wonderful as it was, there was a bitter aspect to Rails testing — fixtures. (Continued…)
There are several ways to set up a system for Ruby on Rails development. Leopard comes pre-installed with Ruby and Rails and is perfectly fine for most users. For me, however, I kept running into troubles. Trying to do a free standing install of graphic libraries (FreeImage or ImageMagick) proved too painful. I switched back to using MacPorts. (Continued…)
I was sightseeing around San Francisco one very rainy day. It was 1990 and I wanted a CD player. I was also broke. CD players were still rather expensive. So I’d been shopping around for a while. I knew the prices, but they were just barely out of my reach. So I was biding my time, checking every electronics store I saw.
That day, as I wandered around downtown, I found a small shop at the base of a skyscraper. It had a window front on the street with electronics from top to bottom. Inside, it was packed. I’ve never seen so many electronics in such a small space. It felt like a sardine can of circuits, chrome and black plastic.
I made my way over to the CD players and found the exact portable CD player I wanted to buy. (Continued…)
Having a current copy of your credit record is vital to protect yourself from credit errors and identity theft. And, thanks to Congress, getting a copy is extremely easy. By law, everyone is allowed to download an annual copy of their report. But be warned. The website advertised on TV, freecreditreport.com, is not the right place to go. It is a scam run by Experian to get people to sign up for an unnecessary yearly service. The correct website is annualcreditreport.com. (Continued…)
UPDATE: August 27, 2010. The SWFUpload.org website is clearly hacked and displaying spam entries all down the home page. The last beta was months ago with no apparent progress since then. Some users report being unable to upload files any more. I cannot recommend the project any more. We are evaluating uploadify and plupload. Also, we no longer use AttachmentFu for new projects. I highly recommend Carrierwave or Paperclip. (Continued…)
In 1994 I took a Sharpie and wrote out the alphabet on my computer keyboard. Then I took little pieces of clear tape and carefully covered each key to keep from rubbing off the newly written letters. Why would I do this? Because my hands were starting to hurt and I needed a better way to type. Dvorak was the key. Not the columnist but the researcher who created the world’s greatest keyboard layout — August Dvorak. (Continued…)
Security is a pain. Too much security gets in the way of productivity. Too little and the world owns your bank account. Finding the right balance is difficult. For me, securing my laptop has proven to be a challenge. Sure, I can lock it down so it requires a drop of blood every time I wake it up, but that’s too painful (and I need the blood). So I found a decent balance that you may want to try. (Continued…)
Our garage door wouldn’t close. We’d hit the button, it would start closing, then stop, then roll the door back the little bit it had moved down, and the light on the opener would flash 10 times. I think it was trying to say something. After careful research over the next few weeks, a lot of thought, and a clean wet rag — we fixed it. (Continued…)
The new iPhone has the best mail client I’ve ever used on a smartphone. When I first got my iPhone, I immediately connected it to my Gmail account. Unfortunately, Gmail uses POP to download messages. It started sending every single message from my archive — thousands of messages.
What’s worse is the lack of synchronization between my iPhone and the Mail program on my MacBook because of POP. If I delete a message on the iPhone, the message remains on Mail. I needed a better solution and it was Mike who came up with the answer. He suggested using .Mac and Gmail as a Mashup. Here is how it works for me. (Continued…)
Conflict. It is the heart and soul of reality television — of all television, really. Without conflict there is no story, no ratings, and no show. Take Survivor (please?). In real life, if 12 random strangers were stranded on a deserted island, would they plot against each other? I doubt it. They would need to learn to get along, to work together, or else they would die.
To make a television show, you would need to find personalities that thrive on conflict, have extremely differing opinions, and then create an artificial situation where backstabbing is required to win. Now you have a prime-time show. That’s what counts as good television in the 21st century. (Continued…)
I never use the GMail web interface unless I’m on the road. Instead I POP my email into my Apple Mail program. The downloaded email is not erased from GMail (like traditional POP servers). Instead it is stored in the “All Mail” archive along with all my sent messages, too. After a year and a half, I’ve used 2600 MB of my 2800 MB email box (thank you Google). (Continued…)