INCLUDE_DATA
Wed Sep 8, 10:49:22 UTC 2010



Posts Tagged ‘technology’

Making me reach a bit

Sunday, January 10th, 2010

I wrote a little while back about some of the things my startup has gotten me to work on, but it occurred to me today, after I being grumpy and frustrated for a good chunk of the day – the firewall died (hardware), the parser’s got a memory leak and is crashing the parse server – about how working on this project has made me a better programmer, technologist, and possibly even a better person.

Tomorrow, after going out to brunch with some friends, and then cleaning the apartment, I’m going to come back and start doing some code profiling to look for memory leaks. I’ve done standard debugging stuff before, and learned the basics of code optimization and such in school back in the day, but the fact of the matter is, until I started working on the startup project, I mainly wrote smaller programs – utility scripts, small apps, stuff like that. I didn’t really ever get into situations where I had to think about memory leaks, or applications which would basically run constantly. It’s other stuff too – if you write a script to automate the creation of this or that, or a .net app to generate foundry server iron configs, you don’t need to put it in an architectural perspective. Now I have to think about that kind of stuff all the time. “what happens when this breaks?” – “How can I write this so I can add another server and scale out horizontally?” – I actually think about this kind of stuff when I’m coding now. I’ll scratch whole bits of things that worked because they’ll cause grief down the line.

I think it’s also made me more disciplined. There’s a big difference between doing your job because you know, eventually, if you slack, you’re going to get grief about it, and if you do it well you’ll get rewarded for it – all by someone else, and setting goals and following through on your own. My home page, over the years has been slashdot, popurls, rootprompt.org and a miriad of other websites… this would be on my work browser. Now, it’s (thank you firefox and chrome for having multiple tabs) a google doc spreadsheet of my goals and columns representing dates and actions. Each day I list what I did to achieve those goals. Another tab contains our ticketing system. Another tab contains our intranet site, in which there are a bunch of daily actions that I try to go through. I would never have approached a job like this if I were being paid by someone else. It took doing this on myself to realize the type of mindset and tools I would have to give myself to accomplish these things.

Another thing that I think has made me a better person is our twice weekly conference call – we have a very loose structure for the company – there’s no office, and we use email, ticketing, IM to communicate and conf. calls to go over progress and complete goals. We basically cover what we’ve done, and what’s next. It also is a good opportunity for me to talk on the phone with friends, who all, at this point, live in different parts of the world. Yes, it’s about a shared goal, and a project, but it’s also about keeping in touch with friends, and doing so regularly. I have traditionally been terrible at keeping in touch with people, and I think that this help me in that regard.

Tomorrow is going to be frustrating as hell. Don’t get me wrong, I’ll have a nice lunch, and put the work out of my mind during that part, and I’ll enjoy the call – tomorrow’s sunday, one of the days we do it – but when I start getting into phase II of the code profiling stuff, and looking for circular references and objects that aren’t being collected, I’m going to get seriously frustrated and stressed out. I’m going to hate it. But I’ll make strides towards getting it fixed. And the idea that taking on a project of this scope, and how hard it is, is making me a better coder will give me some solace. The idea that I’ve had to change my thinking in regards to where it fits in the architecture, I think has made me a better technologist, and the discipline and keeping in touch with friends has made me a better person, I hope. Yes, I’ll definitely be incredibly frustrated when half the stuff I’m trying to do ends up breaking things temporarily, but I think, in the end, it’ll be worth it.

Cool things I’ve gotten to play with at my startup

Tuesday, August 25th, 2009

For the last year or so I’ve been working on a tech startup with some friends. In doing so, I’ve gotten to work with some pretty cool stuff, and I thought I’d make a list of some of them. Basically, I wanted to extole the virtues of working on a startup as a great way to get real-life practice projects to work on – I have every expectation that we will have at least some success, but even if it ends up being a failure, here are some of the projects that I’ve gotten to work on:

  • wrote an spidering application
  • setup a mysql cluster
  • setup zimbra
  • researched several virtualization options
  • setup apt-proxies
  • wrote a custom smtp daemon / parser
  • learned a boatload about bayesian analysis and other pattern recognition and predictive tools
  • setup joomla
  • setup drupal
  • setup linux natting/routing firewall
  • wrote project plans
  • managed & motivated
  • learned how to incorporate
  • setup zimbra
  • setup dnsmask for dhcp/dns masqerading
  • setup bind dns & replication
  • learned how to motivate people and lead weekly conference calls
  • worked on project management
  • marketing
  • sales
  • setup ldap athentication
  • setup openNAS

Now – I’ve done a bunch of these things before in previous jobs, but its still good practice and there were several I hadn’t played with before. It’s a great opportunity to learn, and even if it doesn’t end up succeeding, the time I’ve put in will not have been wasted. I’ve become a better programmer, a better leader, and I’ve had a lot of fun doing it.

If you are interested in keeping track of the morale at your company, project, or keeping track of how positive people are about your brand, or a search term, we’re looking for beta customers. Feel free to ping me @nickbernstein on twitter if you think you might be interested.

Why OpenID is awesome and Destined to Fail

Saturday, June 14th, 2008

So I just installed the wordpress openid plugin – it’s a fantastic idea and works well. I don’t want to have to make people sign up on my site and everyone already has an openid — one of the listed participants is AOL and everyone has an AIM screen-name.

If you’re unfamiliar with OpenID, and since it’s not widely used, you probably are, it’s a distributed authentication system. The idea is you have a trusted authority and that authority can vouch for you. Just like you don’t need to setup an account at every single liquor store, you just show them your license. The added benefit here is, instead of one single dmv, there can be many, just in case the local dmv goes out of business. So, if you’ve got an account on a yahoo service, flickr, messenger, mail, etc, you can use yahoo to authenticate; if you use some other prevalant service, you can use them instead… it’s great, and prevents lock-in to a single companies services.

The thing that sucks, and this is so damn stupid – the convention for a “username” is loginserver.domain/username — ala kerberos. The problem is they used a “/” instead of a “@” and  didn’t tie it into dns. It’s a great idea, but there need to be a couple small tweaks and it would catch one:

  • integrate DNS
  • allow people to use email addresses instead of urls.

I should be able to put in username@aol.com, and my log in program should then do a “host -t oid aol.com”, find the openid server and then do the authentication with that. Instead you’re required to know that aol.com uses openid.aol.com as it’s openid server and to use a url.

I know this seems like small stupid stuff, but it is, and it’s why openid won’t catch on. It’s really too bad, because having an open, scalable, distributed login system not in the hands of any single corporate entity is really important.

::sigh::

-Nick