Monday, March 31, 2014

Cadence and tunneling ports

Cadence periodically changes ports. There is a "base" connection port, and then some client ports. I recently helped a friend tunnel their license server connection so that he could push rectangles in the coffee shop.

As an example, the license port is specified:
CDS_LIC_FILE=5280@ecelinsrv3.ece.gatech.edu
However, Cadence opens a bunch of client ports, so you need to forward more than just the primary port. In the end, the forwarding script (tun.sh) looked like:
#!/bin/sh
ssh -C -2 -f -N -g \
-L 5280:ecelinsrv3.ece.gatech.edu:5280 \
-L 32801:ecelinsrv3.ece.gatech.edu:32801 \
-L 32815:ecelinsrv3.ece.gatech.edu:32815 \
ecelinsrv9.ece.gatech.edu
The higher number ports you need to find with:
netstat -tulpn
It will list groups of TCP ports, and add those to the script until you get a successful tunneling of the license. In my case, 32801 and 32815 where the secondary ports to forward that day. It is also worth noting that these seem to change every once in awhile, so if you cannot get a license, you will need to update the port list.

Monday, January 6, 2014

Computer Scientists are pretty much worthless when it comes to conserving anything.

Bits are equal to power. Let's say that I want a simple tool to get a file, in this case "wget". One would think that it would be simple to compile it, or get it; however, here's the build dependency list:
gnutls libtasn1 nettle p11-kit desktop-file-utils glib2 libffi perl5 perl5.12 gdbm popt libxslt libxml2 xz libgcrypt libgpg-error pcre
Perl? I don't want Perl. I can see how libgcrypt and a few others are in there. I get to eat up flash write cycles, power, time just because someone decided to include perl.

Program packages should be as small as possible. This is important in an energy constrained environment or just as a function of time.