I’m getting very tempted to rewrite an application that I’ve been working on for about three months now. All sorts of reasoning to do so have tugging at me, but what actually prompted this temptation is a side project I’m working on with @iheartcinnamon (kat). It made me realize how hard it actually would be to move the application forward.
The core of the application, while works flawlessly, is implemented rather poorly. The code is horribly organized, methods were created on a case-by-case basis which has lead to duplication throughout, business logic is confusing at best, the XHTML templating system is a complete mess, and, well, I could go on for awhile.
My side project has reaped the benefits of this, it’s core is implemented with clarity, ready to be extended anywhere. Since the two projects have similar core needs, writing it came as second nature; I already knew what it needed to be and how I to get it there. But does this warrant a complete code rewrite?
Three months is not a long time, per say, but extending the development time would cut deeply into its launch date. What to do? How do I satisfy my itch of rewriting it, bring clarity to the code so it can be extended with ease and make sure I launch fast and often?
Before I do anything, I’m off to do some research into the implications of rewrites and I will return to this topic in another post.
My credit card is pretty boring. All it has on it is my bank’s logo and the visa moniker. I do “get” credit cards with your favorite sports team on it or better yet charitable credit cards for cancer research or wildlife refuge. What I do not get and near despise are business branded credit cards.
MySpace and others who offer branded credit cards are milking their customers for all it’s worth, practically admitting that they will not be around for very long or in it for the long haul. Whenever I am offered a branded card I immediately assume that they just don’t care. They will sacrifice a few customers here and there in order to make a quick buck.
When this becomes a means of income for a business I find they will sacrifice anything to get more and more people to sign up.
I had a terrible experience at Banana Republic last week. I went in to buy a new pair of pants, real quick, I know my size, I know the “cut”, etc.
Head down, careful not to make eye contact with any employee, I headed to the rack. Of course, I wasn’t able to find my size, and the color and style was perfect for the jacket I had. I had to ask for help.
What a mistake. I found an associate to give me a hand who began helpful enough, calling someone to look in the “back” for my size, but the experience quickly went downhill. After the usual up-sale pitch, “what no shoes to go with your new pants”, she continued, asking how I was going to pay. I knew where the conversation was headed when she continued to “let me know” that they have a Banana Republic credit card that will save me a certain percentage on my first purchase, it’s good at certain stores, blah, blah, blah. She just would not let up, as if I was a fool for not applying. “You just apply, get the discount and then cancel the card!”
Huh? Yeah, right.
These last minute sales pitches seem to be happening more and more as retail execs are looking to squeeze out every little penny than can from their customers. The real downside is that it forever harms your product, the experience, and makes wanting to spend money even harder. Why would I want to go back and deal with that?
When times are tough looking at your employees to save you, getting them to sell more and sell better, is harmful. Hounding your customers is not going to save you. Why not make your product better. If sales suck, why not place focus where it should be.
The dreaded last minute sales pitch, you always know when it’s coming.
Watch the people’s reactions as a camera makes the rounds at a local sushi restaurant in Tomakomai, Hokkaido, Japan. – patora911
This is actually a very interesting video of someone who placed a video camera on a conveyor belt at a sushi bar; As the belt moves around, the camera records the diners. Some take note, making an interesting interaction between the camera while other chow unaware, forever caught in their ravenous state. The camera even makes its way into the kitchen…
It’s an interesting play on a style of documentary photography.
In the talk, Dharmesh touches on just about every aspect and cycle that a young software startup will go through, all from personal, tangible experience; Idea inception, sales and marketing, Google adwords, VCs and funding, partnerships, data mining, being small vs going for the golden ticket, etc. But my favorite bullet point, “Your product sucks. Get over it.”.
Dharmesh highly advocates getting the business rolling, getting your product out there no matter what it is or how much it sucks because it is going to change. And the only way it can change to become software that people actually want is to present 1. something to them and then 2. listen.
Dharmesh is really good at keeping the process of building a software business simple, making it feel attainable and not complicating the things with anecdotal “proof”. This is one of my favorites talks I’ve watched in awhile. Enjoy.
It’s one of those stories that makes my blood boil:
Judge, Mark A. Ciavarella Jr., and a colleague, Michael T. Conahan, appeared in federal court in Scranton, Pa., to plead guilty to wire fraud and income tax fraud for taking more than $2.6 million in kickbacks to send teenagers to two privately run youth detention centers run by PA Child Care and a sister company, Western PA Child Care. – NYTimes
One of their victims:
At worst, Hillary Transue thought she might get a stern lecture when she appeared before a judge for building a spoof MySpace page mocking the assistant principal at her high school in Wilkes-Barre, Pa. She was a stellar student who had never been in trouble, and the page stated clearly at the bottom that it was just a joke.
Instead, the judge sentenced her to three months at a juvenile detention center on a charge of harassment. – NYTimes
It hurts to think of all the lives they destroyed. Disgusting.
Without a doubt the homepage is by far the most important page on your site. If I look at my own website statistics the majority of people who come to my site never get further than the homepage (I have no idea why this is the case!) This is a problem. – Paul Boag from 10 things a web designer would never tell you
Whenever I come across a site that adheres to this “rule”, I’m halted, my sub-conscience broken, and I begin to explore all that the site has to offer.
On my PowerBook I run quite a few sharing services, things like Web Sharing, Bonjour for file sharing and Screen Sharing. But the thing is, I only need these services running when I am at home; I’d rather not “publish” theses services when I am surfing at my local Internet cafe.
I’d also like to enable some sort of password protection for when I walk away from my PowerBook momentarily.
MarcoPolo lets you switch your Mac between locations; Which it can do automatically or you can manually switch it. This means that when I am at home, I can switch to my “Home” location profile have any password protection disabled and all my services flipped on. When I am at a cafe, I can switch to my “Public” profile I can enable a screensaver password protection and have all my services flipped off.
Rules enable automatic switching between locations.
The only problem I found with MarcoPolo was the poor help documentation and poor verbage within the app itself. So, here is…
How to use MarcoPolo to enable a screensaver password
1. Click the context tab and then the plus symbol and add a profile named “Public”.
2. Click the actions tab, then the plus symbol and select “Add ScreenSaver Password Action…” and enter info as below:
3. You will now want to create another “Add ScreenSaver Password Action…”, but with the context set to “Automatic” that is set to disable the screensaver password so you don’t have the password prompt when at home.
That’s it. Now when you flip to your “Public” location there will be a password that flips on when your screensaver kicks in.
There are actually quite a few actions your Mac can take, based on your location:
Setting your default printer
Changing your desktop background
Enable or disable particular firewall rules
Setting iChat status message
Setting the default IMAP or SMTP server for Mail.app
Mounting network shares (smb://, afp://, etc.)
Muting or Unmuting system audio
Changing OS X network location
Opening a file (an application, a document, etc.)
Quit an application
Enabling or disabling screen saver password
Start/stop screen saver
Changing screen saver idle timeout
Running a shell script (or any other kind of script, via Platypus)
Turning on or off Bluetooth
Turning on or off WiFi (AirPort)
Establish or disconnect VPN
You can also set you Mac to automatically switch between locations automatically based on quite a few rules
Visible WiFi networks
Current Audio Output device (headphones/internal speakers)
Discoverable Bluetooth devices
Advertised Bonjour (Zeroconf) services
Attached FireWire devices
Assigned IP addresses
Ambient Light level
Attached Monitors
Active Network Links
Power source (power adapter/battery)
Running Applications
Current Time Of Day
Attached USB devices
You can even run AppleScript or shell script actions when switching between locations…