Categories
computer

How To Change A WordPress Permalink Structure While Preserving SEO

permalink_redirect

I’ve been putting off changing my blog permalink structure for about 2 years for fear of getting SEO-smacked by Google. No joke. WordPress allows you to easy change the permalink structure with a few clicks, but doesn’t generate permanent redirect (HTTP 301) responses for visitors using the old link structure. Non-redirection link changes for established blogs extremely unwise since you lose all the SEO goodness with search engines such as Google, so I sat down tonight to figure out how to safely make the change.

The easiest solution is to use the Permalink Redirect WordPress Plugin by Scott Yang. This creates a “Permalink Redirect” page under “Settings” in the WordPress admin area where you may specify the old permalink structure from which to redirect. Incoming visitors to the old URLs will automatically 301 permanent redirect to the new URL structure as expected. Thanks, Scott!

I also tried the redirection features of the Platinum SEO and Advanced Permalinks plugins. Platinum SEO can handle post-specific permalink changes, but not site-wide permalink changes. Advanced Permalinks is no longer maintained and did not work for me within WordPress 2.7.

Categories
computer

The Three Types of Start-Ups

At OpenRain Elite Web Software we’ve seen all the popular combinations of startup business models when evaluating new projects. Here is a breakdown of the three most common startup models based on financial structure, the pros and cons of each, and recommendations on which one to choose for your new venture.

 

1) The Pop-Start

The pop-start–short for “popular startup”–is the stereotypical venture capital (VC) or Angel backed venture wherein an initial product prototype is created with a small angel fund, pitched to investors once (barely) operational, and subsequently funded for $1M+ in a second, third etc. round to fund growth to a profitable status. As each round is collected, additional personnel are generally hired immediately to kick off additional production development in a (hopefully correct) high-velocity direction.

Pros

  • Should you raise enough in your initial rounds and find the right people, you’ll be able to keep the company operational in the early growth stages without incessant worry on keeping positive cash flow, which, depending on the idea, may not be possible.
  • Fast growth once the big investment dollars roll in.
  • A minimum of personal risk since only the initial angel round will likely come from close ties. 

Cons

  • Tons of investor pitches and marketing/sales-speak on vaporware which will drive technical people insane.
  • Legal issues from the get-go. Expect difficult negotiations with second round investors and costly legal fees.
  • You’ll have to put up cash for airfare, lodging, marketing materials, legal fees etc. up front for possibly dozens of remote meetings. The costs add up fast.
  • Large amounts of constant pressure from investors.

This is for you if…

  • Your idea requires a substantial capital investment to get off the ground, such as $100K in federal licensing costs or $500K in manufacturing equipment for a first line of production product. You legitimately need this funding to get off the ground, and the amount is too large to put up yourself.
  • Your exit strategy is getting bought out by Google for $100B.
  • You can afford the risk of working on this full time, with little (or no) compensation up front and no gaurantees on a second round of funding.

 

2) The Weekend Warrior

The proliferation of online services for company creation has allowed many dreamers to create legitimate legal business shells in free time for hundreds of dollars. The weekend warrior start-ups are those who believe in the idea, but cannot financially afford to quit day jobs.

Pros

  • Low risk. If the company fails, you still have your day job.
  • Low cost. You still have the income from your day job, so eating small operational costs should be easy. If you’re supporting a large family on a single income, this may be your best option.

Cons

  • Making progress is painfully slow since it’s an “in my spare time” project.
  • People will not take your business as seriously since you are not committing your livelihood to it.
  • The logistics of getting things done off-hours can be challenging, such as finding the time for calls during business hours without interfering with your day job.  

This is for you if…

  • You can only commit yourself to working nights and weekends.
  • You cannot accept large financial risk.
  • You do not require large capital investments to reach financially sustainable operation.
  • You can accept the fact that progress and growth will be slow.

 

3) The Self Serve

Self Serve businesses are full-time owner operated organizations which grow based on their own performance, rather than external investment. They are self-funded, full-time ventures which put the responsibility of success squarely on the owner(s) since there is often no formal governing board. OpenRain’s web development business started this way, and continues to be entirely self funded.

Pros

  • No pressure from investors.
  • Full-time personal investment gives you time to put operations in order.
  • Will be taken seriously by potential clients/customers.

Cons

  • Self-funded. This can be mitigated by limiting personal credit exposure, but there’s no getting around the fact that initial operating costs will need to come out-of-pocket, and losses may personally bite you regardless of the precautions you take.
  • Personal pressure to constantly generate income since your personal income will be determined by the performance of the company.

This is for you if…

  • External funding is not appropriate or necessary for your idea.
  • You (and you business partners) are comfortable operating the entirety of a business amongst yourselves, our are able to invest in quality people to fill in the holes as soon as possible. Technical work, finances, marketing, sales, human resources, operations and 8000 other miscellaneous tasks will crop up needing someone’s attention. And that someone is you.
Categories
computer

Major Seagate/Maxtor Fail

drive_failIt’s Friday, 10pm, and I’m not a happy camper. This picture is me holding a pile of ordinary hard drives I keep on my home desk. They are cycling backup drives and are not in any way frequently used. Four are Seagate Barracudas–one of which I’ve already had replaced–and the fifth a Maxtor DiamondMax. The oldest of the bunch appears to be from 2002 and all are PATA 200-250GB models. 

I’m unhappy because I picked them up tonight to run a very infrequent backup of all my household data: over a TiB worth while requiring the use of all of them for a complete home backup. Much too my dismay, I won’t be running any backups this weekend.

Failure rate: 100%. (5 out of 5 failures.)

I haven’t been this unhappy with a manufacturer since the last of my IBM DeathStars failed around 2003. Fortunately all the Seagate models are still under warrantee, but such performance is still disheartening and frustrating.

What’s happened to quality drive manufacturing in the 21st century? Some of the ~10MB hard drives in my 486-era machines easily lasted 10+ years, but a single drive these days lasting over 3 seems ever more scarce. Sigh.

Categories
computer personal

Asset Tracking Webapp Written In Ruby On Rails

 

asset_tracker
Keeping track of company assets is important for insurance, warrantee and general informational purposes for purchased software licenses and hardware. I wanted a dirt-simple webapp written in Ruby on Rails, so I wrote one the other night and put the code on github. It’s a really simple Rails 2.2.2 app … no frills but does the job. If anyone would like to add some frills such as searching, sorting, pagination etc. I’d be happy to pull them back in. OpenRain would be very thankful 🙂
asset_tracker 
“A simple web-based asset tracking system for small businesses written in Ruby on Rails (RoR). New equipment is assigned to a specific location and the responsible person is notified of the assignment. You may optionally add serial numbers and an arbitrary amount of notes to each asset. Configured to run on top of PostgreSQL and sendmail by default, though both are reconfigurable.”
Categories
computer

How To Make Original iPhone Sim Work In iPhone 3G

I live in the U.S. and upgraded from the original iPhone to an iPhone 3G. If you simply put your old SIM into the 3G, however, you will only be able to use EDGE, and the phone will not use the 3G network. When purchasing a 3G model, multiple Apple sales representatives advised me that I would need to either keep each SIM in the phone with which it shipped and call AT&T to swap the phone numbers, or order a new SIM card for my existing number.

Problem: AT&T won’t switch the phone numbers since each phone is still obligated to its own, separate 2-year contract, and ordering a new SIM will cost you $25.

Solution: I physically went to an AT&T store and explained the issue. The sales rep just had to perform some voodoo in his computer system to enable 3G for the original iPhone SIM so it could be used in the new model and access 3G services. This allows AT&T to avoid having to modify any contracts while allowing you to upgrade to an iPhone 3G and use 3G services.

Done!

Categories
computer

What If Ruby Had Final Variables Like Java Or Erlang?

ruby

After a long confusing Ruby debate today at OpenRain on the merits of functional, Erlang-esque write-once-read-many variables, I’m going to step onto the podium and just say it… Ruby should get “final” or “const” variables in a similar semantic style to Java, except at runtime. Rather than ramble on for 12 paragraphs explaining exactly how this might work, read this fictitious Ruby code snippet instead. (Optional: Also check out the chapter on “final” in Hardcore Java.)

Final variables like this are really just an inline TDD mechanism.

Allowing local stack data to be constant provides no functional enhancements to the software, but alleviates the need for certain types of tests by using the compiler and/or runtime to assert certain memory is immutable. The “friend_best” method variant in the code snippet would obviously break most existing Ruby programs, but ups the bar for defensive programming by preventing many common bugs out-of-the-box while still providing support for traditional Ruby variables. At the very least we should have something like “friend_better”. Adding this information to the parse tree will also make it easier for IDEs to provide features more easily implemented for static languages.

TDD/BDD is in–no qualms about it–but we can make our code safer, cleaner and more concise by applying some of the lessons learned by our statically-typed language cousins over the last few decades.

Categories
computer games

Welcomed To The RRoD Club, Part 3

I sat down 30 minutes ago to enjoy a final quiet hour of gaming before starting my next class tomorrow, and Microsoft kindly reminded me why I no longer use their other computing products.. yet again. First, the damn console insisted on crashing 3 times in about 5 minutes while playing Fable off of Xbox Live Arcade. The 360 just does that sometimes. Yeah.

But then…

Microsoft FAIL. Is there a Frequent RRoD Club or something? I feel like I should be accumulating RRoD miles.

Categories
computer

Speaking Twice At ABLEconf: Saturday, September 20th, 2008

I’ll be giving two sessions this Saturday, September 20th, 2008 at ABLEconf: Arizona Business and Liberty Experience hosted at the University of Advancing Technology. The first will be a ~50 minute getting-started-with-ruby-on-rails type session aimed at developers similar to the one I’m giving this Wednesday for Joe Developer. The second will be a plug-heavy talk over how OpenRain does F/OSS-friendly web development in the commercial space using F/OSS software and tools, targeted for a business-minded crowd.

ABLEconf is a new event so I’m not sure what to expect, though I’d put my money on a lot of systems-level event content since much of the participation seems to be from local Linux groups.

Categories
computer personal

Presenting At September 2008 Phoenix Ruby Users Group

I’ll be presenting at the September 2008 Phoenix Ruby Users Group on Monday, September 8th, covering development of Ruby peer-to-peer applications using OpenRain‘s latest gem release, Journeta. Topics will include Ruby’s threading model, basic networking review, Journeta usage, and live demos. 6:30PM, here.

[Location Details] [PRUG Google Group]

See you there!

Categories
computer personal

Handling Self Doubt

I’m an engineer. Always have been. I cronically worry about small flaws which could spiral into unsalvagable disaster,  and spend a great deal of time focusing on risk mitigation. I can thus completely identify with Riyad’s “cronic almost-achievement” issue because I felt like a raging victim of self-imposed mediocrity up until several years ago. I realize I can be harsh in self-judgement, but nevertheless came to several conclusions..

  1. I have tons of great ideas that aren’t going anywhere. (..or worse, are getting somewhere but at a pace slower than the end goal is moving.)
  2. I really don’t like being told I suck.

Any leader that says they can completely shrug off even the most meaningless criticism is full of crap. Putting yourself on the line by saying, “I did something. Check it out.”, dangles your ego over a boiling pot of water. You know the potential for greatest is there–you wouldn’t have done it in the first place if you thought it was a bad idea–but your heart still sinks when you’re about to demonstrate your competence level to the public at large and have absolutely no guarantees on the outcome. Ego roulette is clearly not an engineers game.

…but then, I decided to change.

  1. If I have a great idea and the time/resources to pull it off well, I’m going to look fear straight in the eyes and tell him to STFU.
  2. I’m done with looking back and saying “I should have done more.” Whether it’s writing about a controversial opinion or pulling people out of a car wreck, no more inaction. Maybe I’ll collect an inbox full of hate mail or painfully burn to death in a firey explosion. So be it. At least I tried to change the world and did my part to the best of my ability. “You must be the change you want to see in the world.” –Mahatma Gandhi.

Now, I still have the same self doubt and self confidence issues at the next guy, but I finally feel like I’m doing something about it. And doing something is an engineers mantra. I’ve you’ve really got a great idea, it’s infinitely more important than your fragile ego. Here’s a couple of thoughts that may help entrepreneurial pessimists like myself..

  • If you screw up on project XYZ, no one is going to care in 5 years. Take the small wins and build on them. It’ll feel good.
  • What’s the worst that can happen? ..people will laugh at you? …you’ll loose your investment? …you’ll have to go back to your day job?  Are those the best reasons you can come up with? Really!?  *Please* … If you’re reading this you’ve got food, water, shelter, internet access and probably some good folks to lean on should things get tough. That’s more than most of the worlds population, so quit whining on the $10K it’ll take to do that new project and take a calculated risk. Even failure can feel good when you know you did all you could. You’re going to regret it if you don’t.
  • Criticism is the easiest form of feedback, so there will always be haters and sometimes more negative commentary than positive. Learn to extract the meaning from the negative feedback, remember that those with the loudest voices don’t necessarily represent the population, and make it an opportunity to hone your game rather than pity yourself.