Our Javascript Toolchain

Our Javascript Toolchain

Javascript is a language that imposes very little on the developer. The web is littered with Javascript that looks like it was taken from Enterprise Javascript. To bring some sanity to our lives we’ve assembled a set of tools to help in our development efforts. The Javascript tool chain here at Upverter is comprised of:

  • customized qunit and testing harness
  • SConstruct build files for linting, compiling, unit tests, documentation generation

You’ll notice the list is quite Google heavy. When we were starting in we had a discussion about how much of the Closure coolaid we wanted to drink. There were a few concerns we had:

  • It could marry us to the compiler and library. If something better came along it could be painful to switch.
  • The overhead from annotating our code would drive us insane

It has some pretty big positive aspects going for it too:

  • Type annotations encourage documentation
  • Static analysis lets us shake bugs out faster and helps us refactor more confidently
  • There isn’t anything remotely comparable out there for static analysis and compilation

In the end the pros outweighed the cons and we dove in. It’s worked out well so far. Having those tools in place is helping us write better, faster code. (although gjslint’s whiny, inflexibility has resulted in more threatening of an inanimate object than is probably healthy) Lastly there are a couple of resources that I’d like to share in case you haven’t ran into them. Javascript can be a tough language to search for. These links are great starting points to find good answers:

‘Tis the Season to do Hardware

‘Tis the Season to do Hardware

Back in the day (ie. before I quit my job to start Upverter) I worked at what was once a software/hardware start-up in Waterloo, Ontario (they’re still there – just too big to still be a start-up). A lot of people, especially those in Waterloo, like to sell how smart and vibrant the tech center is there. And I think that’s great, you gotta sell what you love; and you gotta love where you live. But it really is a pretty tiny industry by comparison to Boston, or the Bay area. That being said, they sure do niche hardware pretty well, RIM being the best example I guess, despite how mainstream their devices became.

So, I worked for one of these hardware companies and we built some pretty seriously kick-ass network devices. These boxes, on all accounts, pushed the limits of speed, traffic, wattage, and weight. We were doing 10GB/s multiplied-by maybe 50 links throughout the device, with 16X11 cores and 16x11GB of RAM. We had a couple tons of AC running full tilt in the winter just to keep the building bearable, there was the time we punched a hole in the dumpster tossing a couple junkers out (they’re like 120lbs each!), and we fit it all in 4RU and 2K watts. Like I said: bad-ass.

Anyway, you don’t just get lucky when you try and build a box like that. The signal integrity, power-distribution and green-gremlin-voodoo-black-magic shit that goes into one of those devices actually doing what its supposed to is, well, overwhelming. But that’s the price you pay for being on the bleeding edge – the alternative was probably 16 odd 1RU PCs and a fuck-ton load of networking equipment = gross. But where am I going with this? Well its getting on to Christmas. We have about a meter and a half of snow outside the Upverter office windows, the stores are rockin’ jingle bells and somewhere, at some small hardware startup, there is a hacker furiously working away on making some piece of hardware work the way its supposed to, just minutes before the shipping deadline, which happened to be last Tuesday. I cant really explain it (year end? tis’ the season to buy hardware? I dunno), but for a lot of us hardware guys, Christmas = shipping deadlines = all-nighters = eggnog, spiced rum and soldering irons.

And not to rag on the startup companies – because really, you gotta do whatever it takes. But I want to give my nod to those hackers. Having been one of them, I know how hard it is to stay focused, to hack despite the million better things to do, and probably biggest of all, to hack despite being away from your family at just the wrong time of year. Its hard, and it sucks, so kudos to you guys – and like they say where I come from: good on ya. I hope you’re working at the right kind of startup, that they get it, and that they are taking good care of you. And if they aren’t, I say just make a stand that you won’t solder without the proper supply of eggnog and rum – they might not get it, but it’ll be easier to handle drunk… haha.

Perhaps my favorite personal story of a Christmas shipping crisis (and I’m gonna do my best to obfuscate it a little, as I’m probably not allowed to talk about it) was one year when right before our December 12th shipments we not only ran out of everything we needed to ship, but we found an epicly bad power bug (ie. shit blows up randomly during normal operation, but just outside of our window of test. and worst of all, caused by the design). We ended up shipping, I think on the 24th, but it was pretty down to the wire. I think there is a picture of me in a Santa hat loading boxes on to a truck, or kissing them goodbye or something – it was a pretty big deal. In the end we were able to order replacement parts, setup a half dozen soldering stations running 24/7 and hack 500 or so boards through in a few days, in time to assemble, test, triage and ship. probably the worst part was the few days between the 12th and the material delivery where there was zero to do. Just sitting around waiting for the tidal-wave to hit. And when it did, it hit HARD! Thankfully the guys I was working for at the time were pretty great about making sure we were tended to and happy, which made it all the more bare-able! and in the end we won. Which I guess, gives me another story to tell!

Invite me out for beers sometime and I’ll tell you all the gory details, but for here and now – have a good holiday. And I hope you’re not huddled over a soldering iron, but if you are: good on you, good luck, and get home soon if you can!

5 On-Page SEO Tips

On-page SEO is an important part of any SEO strategy.  It needs to be implemented and planned around in both the development of the site and the creation of the page content.  When coming up with your SEO strategy, I think that on-page SEO is a good spot to start. And to help get you going, here are my top five on-page SEO tips.

1. Have the targeted keyword in the title tag

This is something a lot of people overlook. Adding the targeted keywords to the title is really simple to implement and helps search engines know the focus of the page.

2. Start your H1 tag with your keyword

This is similar to having it in the title, but it is important that the H1 tag starts with the keyword that you are targeting.  The H1 tag is the top headline of the page, the beginning signifies the focus of the headline. This is also simple to implement so there is no reason not to have it.

3. Have your keyword in the body, just don’t over-do it

It is common practice to have your keyword in the body of your page. It is so common that some pages on the web are considered keyword “stuffed”.  Keyword “stuffing” is when the keyword is repeated an unnatural number of times. Search engines take this as an attempt to fool them. As a rule of thumb, the keyword that you are trying to win should appear no more then 15-20 times, I would try for 5-10 depending on the length of the page.

4. Have contextual content

It is important that in addition to the keyword being in the body, the keyword is used in a way that cannot be mistaken for a different meaning of the keyword. Make sure there are no words in the body that a machine could mistake for a different meaning or context of your keyword.

5. Target only one keyword per page

On-page SEO optimization is really difficult, if not impossible, to do for more then one keyword. There are a lot of other factors that go into what keywords you rank for in search results, but search engines are more likely to give you a high ranking with a single and specific keyword selected. These five on-page SEO tips are a good starting point for on-page optimization. When designing a site, and an SEO strategy, I recommend starting with on-page keyword optimization.

December 2010 Update

December 2010 Update

How is it December already?!?!

It has been a pretty crazy last couple months here at Upverter, but we really are loving every minute of this ride. Back when we started this whole thing up we decided, for a whole bunch of reasons, that we should have something to show-off before the end of the year. And now almost five months in we are pretty close! We still have a few kinks to work out before the Alpha but we are really excited and think we can get you guys in there hacking around very, very soon.

When we first decided to quit our jobs we spent a bit of time hacking on our ideas and how the world could be a better place. We talked about everything from iPhone apps to pirate radar, but we got a little hung up on how painful it is to do schematic capture and PCB layout, especially as a hobbyist. We talked a lot about how kick-ass the open source software community has become, and how maybe better tools were all the hardware guys needed to flourish. And wouldn’t it be cool if you could do it all through a browser? No downloads, no setup time, just open up chrome and start hacking. People must hate the tools that exists just like we do, right? And so we had a starting point.

As we dig deeper into this market it’s so very cool to find out just how right we were! People really, really, really hate their tools; It’s just amazing how painful people find simple things like parts libraries and collaboration, and how excited the opensource hardware community is for something better. The market is also way, way bigger than we ever imagined. There are hackers with soldering irons showing up by the thousands all over the place. And with any luck we are going to do our part to empower them to work together and build some pretty cool stuff!

There isn’t much else to report for now. We are busy hacking away, raising a bit of money, and hopefully doing some demos before the month is over. But please don’t hesitate to email, or give us a call. We would love to hear your thoughts, any ideas, or even just laundry lists of your pain points – we want to build what the community wants, a tool that they really can fall in love with.

So, from all of us here at Upverter, have a good December and a happy holiday.

About Upverter

Upverter is an electronic design tools startup company, founded by a group of three former University of Waterloo engineers. We are working on a set of online tools that are going to change the way people hack on circuits.

As garage hackers, and employed electronic designers we always hated the tools available to us. They were either huge and painful to use, or open source and both ugly and painful to use. We found that like a lot of others in the community we were drawing our circuits at home on paper instead of in a program – and we founded Upverter to try to fix this problem. We want people to be able to share their designs, fork and expand their friends’ designs, and work together with a set of community maintained, wikipedia-like, shared components.

We will initially launch with an online schematic capture tool and a pcb layout tool in early 2011. We will also be launching a community website based around our tools, and topics in hardware creation (lots of Q&A, examples, discussion, and exchange of designs). The tools will foster collaboration, remove barriers to entry, and help spark the building of opensource and available hardware designs. While the community website will be a place for the open source hardware community to call home, to share their designs, and to learn (like sourceforge and github have done for open source software).

Can’t get enough Upverter? Heres more!

The Upverter Website

This is where the magic is gonna happen. You can sit there and stare at its beautiful webby good-ness… But that is about it right now. At least there isn’t a construction worker!

The Upverter Twitter Feed

Can’t get enough OSHW? Need more distractions? Want to keep up to date with all the Upverter news? Check out our twitter feed – we will try to post all the interesting tidbits we pickup and neat things we find along this journey.

The Upverter Facebook Page

We will use our Facebook group to announce upcoming Upverter events (don’t worry, there haven’t been any yet!). And in a few months we will start giving out alpha access codes to our facebook & twitter fans. So sign up, and get excited – we promise not to spam you too bad!

Javascript Development

While building Upverter we have had to slog through mountains of Javascript. This has been an eye opening experience into what Douglas Crockford describes as “The World’s Most Misunderstood Programming Language”. Over the next couple of weeks we’re going to give you a glimpse into Javascript development at Upverter and share some of the things we’ve learned about:

  • IDE’s, code style, static analysis…
  • Javasrcipt testing
  • profiling and performance tuning
  • “building” a project
  • debugging

Intro to Community Building

There is a lot that goes into building an on-line community. I won’t pretend that just following these 5 tips will instantly make your community grow 100%. These are tips that, when used with good content, will help propel your community to the next level.

1. Set the tone of the community

It is important that your users have a positive experience when participating in your community. Make sure that there is a process to manage highly negative and harmful contributions. One community that has done a great job of this is Stack Overflow. They use a “Karma” system to allow active members in the community to police both positive and negative content. This is a great example of how to monitor the community without having to specifically appoint people the job.

2. Participate in your own community

This might seem like common sense, but it’s incredibly important that your users feel that you are paying attention to them. Your own participation is a great way to achieve this and to contribute to tip 1. Having a consistent, prominent presence in the community will set the tone for everyone.

3. Recognize your top contributors

It is important the you give back to the people that help you most. In an on-line community that’s most likely the top contributors. Make sure that you give them a shout-out every once in a while. There are many easy ways to do this: one of the ideas I like best is mentioning high contributors in a public place like on twitter, or having a top users section on your site. Whatever you do though, make sure it fits in with the tone of the community that you are creating.

4. Give out feedback for achievements

There are a lot of things that can get your users to contribute, but one of the most effective is to set up a status system. Users should have a way to be recognized by their peers for what they have done. An excellent example of this is the badge system by Stack Overflow. In their system they have many types of badges with several levels of difficulty to achieve. This system encourages users to continue to contribute, while giving them lots of achievements along the way.

Another effective method to get users to complete tasks is a status bar like that seen on your LinkeIn profile. It shows the percentage of the profile that has been filled with simple steps to get another 5%. Every time I open my linked in profile I feel the need to complete a new step to get to that magical 100%.

5. Get high profile contributors

Something that many people overlook is how important it is to have respected, high profile contributors. The reason this is so important is that it brings a good deal of credibility to your community. When you are trying to build a community, it is often difficult to get users to read your content in enough detail to build a sense of credibility. Having recognizable names contributing gives you the instantaneous credibility that you need to get people to join in and participate.

Startup Inspirations

Here at Upverter we occasionally get asked questions like: “Are you guys insane?”, “You used to have real jobs?”, and “You quit to do what?!?!” mostly in reference to us telling stories about how we used to exist in the real world with everyone else. One of our favorite questions to get is “What made you jump?”, because the answer is so different for each of us. But we do share a bit of overlap in who planted the seeds, you know, that little voice in the back of our heads that was saying jump. And that’s what I want to share today, our startup inspirations.
Paul Graham Probably first and foremost for the three of us is the Jedi, high-priest, Paul Graham. We have all been reading his essays for years now, we followed YCombinator since its birth, and we just generally believe, like Paul, that innovation NEEDS startups and that startups understand people better than big business. We all knew from a very young age that we needed to be innovators, and that a startup was the only way to achieve those needs.

+ The Mythical Man Month
 These books were absolutely eye-opening for me. How could it be possible that 30 years ago (before I was even born!) someone wrote a book demonizing all of the things that I was pretty sure were bad for productivity, but had no good way of saying? How could these guys be so, so right, so long ago, and yet so much is still the same? For us a startup lets us listen, and set the right priorities – we can make people important, and we can give them a great place to work.
The University of Waterloo While we don’t always see eye to eye with these guys, and we did very much miss out on the college life from the movies, they do 2 things incredibly well. First their co-op program is second to none. By the time I was half way through my second year I was more employable than many graduating electrical engineers from other schools. And second they, more by accident I think, do an incredible job of attracting a small group of incredibly driven, and very smart, non-conformist type engineers. These are the ones that fail out more often than not, but they clump up and go off to do incredible things. The 3 founders of Upverter met in a UWaterloo dorm room a little over 6 years ago, and it wasn’t very long into those 6 years that we knew we would build something together.
Joel Spolsky Joel is a little like Paul’s doppelganger. At the end of the day they are both very successful hackers, but what Paul offers on startups is really just compounded by what Joel offers on workplaces, people and all things software. Before we discovered Paul, and before he really wrote, we were reading and reciting Joel’s rants on architecture, and better workspaces. Steve even gets the fan-boy badge for interviewing with fogbugz a few years back! If you’ve ever read my personal blog, you’ll know I’m not one to sum up nicely – I’m really more of a rambler.
But I would like to share some of what I’ll call our inherited tenants of success. Consider these horribly stolen and merged together from our life-long relationship with the above authors/books and our previous employers.

The Upverter Tenants of Success

  • Be bold, decisive, and wrong. Its OK to fail for trying, but not because you ignored a problem. Agreeing to disagree is not acceptable!
  • It’s all about execution. Try and imagine the number of good ideas that fail, and the number of bad ones that win. Its not about the idea, or the product, or the technology – its about getting it done. This is why people are so important.
  • Have fun. Time is the worlds most precious resource. We all die – we all run out of time. Do what you do because you love it. And make sure those around you love what they’re doing.
  • Do the right thing – everything else will work out. Do right by people. Do right by employees. Do right by customers. And when picking between two options, pick the right one.
  • Be relentlessly resourceful. Kind of a summary tenant, but one regardless. Find a way to make it work. Find a way to make money. Find a way to build a business. Find a way to sleep, eat, and hack.