- Recent
- Popular
- Tags (0)
- Subscribers (6)
- Tricks for language agnosticismOctober 9
-
When evaluating different approaches for a non-trivial problem like NLP I've found the libraries created by others to be invaluable for benchmarking different techniques. Unfortunately these libraries, kits, and code snippets are written in every language under the sun and are in various stages of broken, so some native language programming is generally required. For me the ability to try out different algorithms in any language is critical for being able to be the sole technical resource working on challenging problems. Here are some general tricks I've learned:
1. Develop an "interlingua"
In the spirit of proto-Esperanto and the machine translation concept, the idea of an interlingua in programming for me is a set of algorithm syntax broad enough to cover most programming tasks but general enough to be applied in most languages. Though language-unique techniques are often critical for tuning a production-ready app, straightforward code expressions are ideal for iterative programming cycles and ramping up newer programmers. I usually use simple loops and conditions and break apart multi-stage tasks onto their own lines. Basic classes and methods in a standard MVC structure work in most environments. One exception to this approach: ORM. When using a language which can handle my SQL for me, I'm happy to do whatever it takes to get that off my plate.
2. Use batch processes liberally
One of the hardest elements of creating a multi-lingual applica - Monthly RoundupAugust 27
-

In the spirit of Philippe from Achewood's mini newspapers, here comes a special boy!
I don't like Quizno's as well as other sandwich options like Specialty's, Grand Central, or Jimmy Johns because they provide too many condiment options. "But Adam", you say, "you're the condiment king." And it's true, I am the king of all condiments. But when given too many options I forget all of my logic regarding "flavor profiles" and end up with a sandwich laden with way too many sauces and pickled vegetables, rendering it overly viscous and challenging to eat. Whereas at Jimmy Johns (who has better bread anyway) I don't have free reign over my condiment selection, and so I end up with a much better balanced sandwich. Yes that was an allegory about interface design disguised as a story about sandwiches.
My Friend Feed and Twitter profiles are locked down now, because privacy issues freak me out. Before I hit "submit" on anything I think through my standard trio: "What would a future boss think", "What would a future investor think", "What would my mom think", but it still gives me the heebie jeebies that the first three pages of Google results for any nerd I know are social networking sites. You know it ought to make me feel better because my previous paranoia was about how easy it would be for anyone - Beware Ten Queen Off Suit StartupsAugust 6
-
There was an article on Hacker News today about a startup putting a brave face on news of a bigger competitor beating them to the punch. I don't know any of the details of the startup - they're in sealth mode, which is another rant altogether - but the tone reminds me of an analogy.
In poker, drawing a bad hand like 7-3 off suit is not a big deal. The normal play is to fold before it becomes expensive, often before the flop. 98% of startup ideas are 7-3 off suit ideas after a cursory analysis of feasibility and business case. You spend a few days cautiously optimistic while you do some research and throw together a prototype until you learn about the conference in Bern they've had every year since 1979 to talk about the field you thought you invented, or you find a link to Google YourIdea Beta, or otherwise get your comeuppance.
As poker hands get better, the danger of losing your shirt increases. We have a tendency to ignore the odds and chase bad money with good. What might have been a winning hand "heads up" quickly diminishes in probability when several players re-raise. But the temptation to stay in the game kicks in, and we find ourselves losing much more on good-not-great hands than on bad ones.
Startup ideas operate much the same way, and it seems like every day you see some of the same rationalization pro - Rake + Cron = GoodnessJune 19
-
Our new site does some crawler tasks that run periodically throughout the day. While in development I just kicked these off using an http request from my browser, but moving to something resembling alpha we needed to get them on a schedule. Since we're running on a Joyent OpenSolaris Accelerator we have access to old-school cron goodness for scheduling, but we needed access to our Rails application environment - simply creating a cron task to execute a .rb file wouldn't cut it.
Fortunately rake is there to save the day.
Step 1 - Create your rake file
Touch a new file called yourname.rake and put it in /yourapp/lib/tasks. I called mine 'update.rake'. Add the following:
namespace :update do
task(:say_hello => :environment) do
puts 'Hello, World!'
end
end
Putting the file in lib/tasks and using :environment makes the script seemingly magically aware of your rails environment, so you can use ActiveRecord and everything else in your application.
Step 2 - Execute and Test
Next navigate to your app's home directory and run using your environment:
rake RAILS_ENV=development update:say_hello
you should see...
Hello, World!
Step 3 - Schedule - Startup Hats and CombinationsJune 14
-
In my last entry I alluded to the discrete hats that somebody needs to be wearing in any sort of web startup. Others have expressed a long list of roles, and just the other day on the Seattle Tech Startups email list someone inquired about how they could get into a Project Manager role on a startup, so it's clear there is some question over what is needed. So, here are the hats according to me, and the configurations I've seen work to cover the bases well.
Hats
Developer - Someone has to build the thing. You are generally much better off with MacGuyver than with "Wall Full of Certifications Guy", and absolutely avoid a programming theologian/idealist. They must be very fast, good at writing straightforward, readable code, use but not go overboard with object orientation, and generally be more proud of the site they create than the structure of the code they wrote.
People Skills - Evangelist, salesperson, press releaser, blogger, pitcher, glad-hander, copy-writer, PR strategist. The face and the voice of your company.
Computer Guy - Linux/Solaris Admin, caching strategist, cluster deployer, migration script writer, database maintainer, scaling planner. Someone who giggles when you say "sudo make me a sandwich".
Right Brain - Someone who knows their way around Photoshop. A user experience design pro - pixel pushing and clickstream, ideally with freehand ability for the logo. Color, font, an
