Moving right along …

I’m leaving this blog up essentially for historical reasons. Please follow the new fun at


Stitching layers between copper zones in KiCad

I’ve been working a bit with KiCad lately and have run into a problem in PCBnew with “stitching” (i.e., adding vias between) filled zones on top and bottom layers. This is something you typically do if you have flooded the unused spaces on both top and bottom of your board with copper and have connected the floods to ground or some other reference.

The KiCad FAQ outlines a process for doing this, and it works fine until you refill (i.e., re-pour) the zones — or the DRC refills them for you. When the zones are refilled, the vias you added for stitching become isolated from the zones and end up as little pads floating in space.

The problem and a workaround was discussed in a recent thread on the kicad-users mailing list. I wanted to summarize here the workaround in a slightly less terse way:

  1. Route the board and define your zones as you always have.
  2. Fill the zones as you always have.
  3. Select “Add tracks and vias” from the toolbar on the right.
  4. Click on an existing pad that’s connected to the zone’s net, drag the pointer a little bit to create a short track, then either (a) right-click and select “Place Via” or (b) type the ‘V’ shortcut.
  5. To add more stitching vias, continue to drag the pointer and type ‘V’ where you want to drop vias (or right-click and select “Place Via”).
  6. When you are done placing vias, hit the ‘End’ key on your keyboard (or right click and select “End Track”).

You can repeat this as many times as you want to create different clusters of stitches. When you refill zones, the vias will retain the connectivity information and work as expected.

An Imperfect Ten

When I told my “special friend” in Istanbul (she refused to call herself my girlfriend) that I had decided to move there to take a teaching position for a semester, she smirked and said I wouldn’t last more than a couple of weeks. That was almost exactly ten years ago.

Since then, I’ve lost my cat and my dad, in that order. I racked up another academic degree. I’ve lived in three different houses. I’ve been through a couple more “special friends” and even a couple actual girlfriends. And I’ve kept the same job.

Since I’ve been here, I’ve learned a few things about Istanbul. One of those things is that the city and its women have a lot in common. And that no matter how much you know about both of these, it’s never enough.

One of the most striking things about Istanbul is that it seems hellbent on pumping you full of ambivalence. At first the foreignness of everything lets you deny the abusive and insane stuff, but over time you begin to lose sense of the things that you love. And that makes you feel your nose increasingly rubbed in the other stuff. This isn’t good. I arrived here with a ridiculous capacity for love — and love I did. Today, I’m not entirely sure I’m capable of the emotion.

Wait … I am capable of the emotion. I love my job and my students — even more so than when I first arrived. Teaching really is an honor. The more you do it, the better you get at it. And the better you get at it, the more you feel you are helping. And the more you feel you are helping, the more you love what you do.

I have no idea what the next ten years will bring nor whether they will be brought forth here or someplace else. I just hope they are as imperfect as the last ten so I can continue to learn and share bits of it.

Vimeo: banned in Turkey

I can confirm that the ban on Vimeo reported today at TechCrunch is in effect. And unlike most bans here, which can be worked around by using a third-party DNS service (e.g., OpenDNS or Google Public DNS), this ban appears to be the same kind of full-throttle “do not allow any traffic to from any IP address that has ever served up Vimeo content whether or not it’s actually Vimeo content” that is currently in place for many Google services (including YouTube).

Got FoxyProxy?

Patents are public

I do a fair amount of open source code development, yet I am not (yet?) against the idea of software patents. I think there are significant problems with the way software patents are implemented in the US, but I don’t find the concept fundamentally odious.

However, I do find corporate bullying using patent infringement as a pretext quite reprehensible. A recent example–to which I will not link so that I don’t make things worse for the coder–really has me annoyed.

In essence, an independent coder reimplemented from scratch and for no commercial gain a program to  duplicate the functionality of a commercial product. The coder then published her/his work with the intent of releasing the code under an open source license. I am not a lawyer, but I think the general gist of a patent is that it is illegal to distribute a product that is under patent protection without first obtaining a license from the patent holder. As far as I know, it is not illegal in the USA to discuss patents in public nor to publish, for example, plans for making a better or different patent-protected Hovercraft Eel Sensor. It only becomes an issue if you try to distribute a product based on those ideas without a license. The ideas and discussion thereof are public. The use of ideas in products is protected.

The coder in our story has simply published plans (i.e., source code) for making a different version of a (possibly) patent-protected product. Nowhere does the coder indicate her/his intent to distribute a product (i.e., executable code) based on the plans. In spite of this, our coder gets a threatening email from the V.P. of the corporation that makes the commercial product citing (without specificity) that the published work infringes on their patents.

It may also be worth noting that the coder does not appear to have done any reverse engineering to discover how the software works. So if the V.P. actually means “trade secret” when he actually says, “patent,” then there’s nothing there either.

I am not a lawyer, but I utterly fail to see the grounds for the corporate entity’s gripe in this and similar cases. Also, in the particular case in question, you cannot help but notice the extreme vagueness in the communications from the corporate entity. Under these circumstances, one would easily be forgiven for thinking that the corporate entity knows it has nothing to stand on and that its strategy is simply to threaten a costly legal process against the coder. They know that  lone coders will almost certainly comply with threatening requests to spare themselves the burdens of the situation. I am not a lawyer, but in common-person speak we sometimes use the word “extortion” for this strategy.

You can’t have it both ways: patent protection and protection from public scrutiny. Patents are public.

Plugging holes and plugging mouths

Years ago, the powers that be here in Turkey decided that YouTube needed to be blocked. So they forced the (centralized) DNS servers to redirect all requests to a “no YouTube for you” page. Then people figured out that if they use an independent DNS service (e.g., OpenDNS and later Google) the addresses would resolve as they should. And life was good. Not only were the gates to YouTube effectively re-opened, but you also gained access to myriad other banned sites (mostly pron that was speculatively banned on the basis of copyright infringement (!), but a lot of actually useful stuff as well.)

A few days ago, the powers that be decided they needed to plug this hole. So instead of merely intercepting DNS requests to, they implemented an indiscriminate IP address ban on all (known) addresses used by Google to serve up YouTube content. The problem with this is that Google uses those same addresses to serve up non-YouTube stuff like Google Docs, Google Sites (once banned, maybe still so), etc.

Result: very little Google goodness for the good people of Turkey. Way to go.