Wednesday, November 18, 2009

Initial Thoughts on Google Go

I read the “tutorial”: and thought, “the syntax is Frankenstein ugly. They have Guido on staff, but this looks like they consulted Larry Wall. Why didn’t they just write an open source D compiler?”

Then I read the FAQ. Some very interesting ideas, and personally, ever since using C++ for some large embedded programming projects (large? embedded? not as oxymoronic as you might think), I’ve been thinking these same things for a while now:

No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:

  • Computers are enormously quicker but software development is not faster.
  • Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.
  • There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.
  • Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.
  • The emergence of multicore computers has generated worry and confusion.

We believe it’s worth trying again with a new language, a concurrent, garbage-collected language with fast compilation.

D has been around a while, but it just doesn’t seem to be catching on; maybe because it just doesn’t have a large corporation behind it. Maybe because it’s not fully open source. Or, maybe because it doesn’t have all the features of Go.

Bryan

Wednesday, November 11, 2009

I Got a Mac

My employer just supplied me with a MacBook Pro running OS X Version 10.6.1 (is that a little redundant?). For a long time I have eyed macs with wary suspicion, but with a lot of curiosity too. If Microsoft is evil, as some like to say, because it locks customers in to its proprietary software, Apple must be at least twice as evil. They lock customers in to their software *and* hardware! I kind of like the new laptop, though. Mechanically, it's awesome. The aluminum body feels nice and solid. The lid doesn't latch when it closes, it just kind of (magnetically?) holds to the body. The buttons and USB slots and everything are also very nicely done. The display is one of those glossy ones for "brighter colors" and I hate the glare. The user interface has me all confused with buttons and menus in places I'm not used to. It has this fancy new mouse trackpad that is huge and it lest you do multi-finger stuff kind of like an iPhone (which I don't have). That's all going to take some getting used to also.

The biggest thing that surprised was the childhood memories that it evoked. The first computer I ever used was a Mac. Grandpa is a chemical engineer, and he recognized right away how useful personal computers would be. He had a Mac Classic in his den and he would let me play with it all I wanted when I came to visit. MacPaint was about all I could do with it when I was 5 years old, but I moved the mouse and clicked on things, pushed a floppy disk into its drive and then drug the icon to the trash to eject it, and poked around at whatever I could. On this new laptop when I first saw the little mouse pointer turn to the text entry icon, the same icon that the Mac classic used, all the memories of that Mac Classic in Grandpa's den came back. There are a few other subtle little things, like the apple menu, that give me a little bit of nostalgic joy every time I encounter them as well. It's very cool that Apple has kept some things the same over all those years. Apple can't be totally evil, right?

Monday, October 26, 2009

Flexlm, let me count the ways

Trivial to defeat for the dishonest, a complete hassle and waste of time for the honest, who are we, in the EDA industry, kidding with flexlm licensing? As customers we buy this incredibly sophisticated and powerful (and expensive!) simulation and synthesis software, and then it fails to run at times because of this fragile, buggy license software wrapper around it. Why do we put up with it?

And vendors, you treat your enterprise customers, who shell out tens if not hundreds of thousands of dollars for your software, as if you don't trust them? You force them to set up, troubleshoot, and babysit these finicky and frail license servers, just so they can run the software they've already paid you (a lot!) for? Why?

Friday, October 23, 2009

Convert putty key to openssh on linux

I had a putty generated ssh key that I wanted to use on my linux box (long story). Turns out it's simple to convert it using linux tools. Here are the steps:

sudo aptitude install putty-tools

Then, to convert a private putty key named id_dsa.ppk to an openssh key named id_dsa:

puttygen id_dsa.ppk -O private-openssh -o id_dsa

Then just type in the key's passphrase and you're done. You can type puttygen --help to see similar options for public keys.

Thursday, October 22, 2009

New Job, New Focus

I have a new job! I am now a verification engineer at a relatively new hardware company in Utah. I worked on digital design and verification stuff back during internships in college and then for the first few years that I worked full-time. Then about five years ago I switched over to embedded software. It's fun to be back in the hardware design world. Better verification and system modelling was a hot topic five years ago, and it looks like a lot of progress has been made in the intervening years. It's really cool to see. Another big win with the new job is, no more windoze! ASIC designers know a good development environment runs on Linux ;-)

I mostly use this blog to write down helpful reminders for myself, and as a start, here's my first verilog tip. Code browsing with ctags works for verilog too! I used find to get a list of all our verilog files and put that in a file called, file-list.txt. Then I generated tags like so:

ctags -e --verbose --language-force=verilog -L file.list

One huge oversight of emacs verilog-mode is that they overrode the pop-tag-mark keybinding to insert a multi-line comment instead. I got distracted with other things so I haven't done it yet, but I'm sure that's not too hard to fix.

Anyway, I'm excited for the new opportunity. In closing, here are some verification blogs that I found, but haven't read much of. Yet.

How's that for a focused blog post?