HNHacker News
TopNewBestAskShowJobs

adunsmoor

59 karma · joined May 13, 2009

Ahran Dunsmoor ahran@dunsmoor.com
submissionscomments
adunsmoor··on The Birth of Tcl
I'm a long time user of Tcl. For me, the biggest strength of Tcl is it's C API. It's quite straightforward to implement extensions. That, and the people that were involved in the language early on are incredibly smart and creative.

I had the good fortune of working with Michael McLennan and George Howlett for a while (both mentioned in the referenced history).

Michael's "Effective Tcl/Tk Programming" is a fantastically written programming reference. He was a prolific creator of interesting applications and toolkits. I recall him creating a GUI for our boring corporate bug database where he added a points system to make fixing bugs "more fun".

George managed to avoid incrementing the version number on his BLT toolkit by appending letters of the alphabet to releases. I never did learn why. I just checked and I see he made it all the way to 2.4z!

adunsmoor··on Show HN: TrueJob 1.0 – Pandora for jobs and data for everyone
Jobs like you
adunsmoor··on Tcl Static Prime: experimental compiler for Tcl that produces C or Java code
Tcl and the Tk Toolkit by J. Osterhout is an old reference but very useful for getting started with the C API to Tcl including embedding an interpreter. The last 1/3rd of the book is on writing Tcl applications in C.

Also look at the the source files for the Tcl (tclsh) or Tk (wish) shells. They are fairly concise.

adunsmoor··on Ask HN: Who is hiring? (October 2014)
CLK Design Automation - Boston, MA or San Jose, CA (Full time)

Applied Mathematician

CLKDA is looking for a PhD level mathematician / Principal Software Engineer familiar with electrical simulation. We're working on efficiently modeling transistor variation at very low voltage and <= 20nm scale in the context of chip design. You'd be contributing to our core statistical circuit simulation engine and would need to be familiar with C++ and at least one numerical math library (open source or commercial). Bonus points if you have written or contributed to a SPICE simulator.

Our office is about 30 minutes outside of Boston close to the commuter rail stop in Littleton, MA.

The full job posting is at: http://www.clkda.com/careers/

If you'd like more details about the position or the company feel free to ping me ahran@clkda.com.

adunsmoor··on Ask HN: Who is hiring? (September 2014)
Littleton, MA - CLK Design Automation (http://www.clkda.com) FULLTIME

Applied Mathematician

CLKDA is the technology and market leader for advanced semiconductor timing and variance analysis. We are a rapidly growing small company, whose customers include the top three semiconductor companies in the world.

We are looking for a talented software engineer with deep electrical engineering and mathematics expertise to join our team. This position is focused on improving our fast circuit simulator. You will be responsible for developing mathematical concepts and coding them into efficient and robust production software using C/C++.

Skills that would stand out:

  * Has a Phd in Applied Mathematics or Computer Science, and 5+ years experience, 
    or a MS with 10+ years experience
  * Extensive C/C++ experience
  * Knowledge of BLAS/LAPACK numerical math kernels as well as commercial
    implementations such as (GOTO/MKL/ACML/etc). MKL and/or ACML are big pluses
  * Experience implementing SPICE and SPICE-like simulators & algorithms
  * Familiarity with BSIM-CMG or TMI a plus
  * Experience with transistor/RC circuit analysis
  * Experience with Mathematica for prototyping and experimentation a big plus
  * Experience with multi-threading and distribution a definite plus
  * Background in statistical methods 
If any of the above is of interest please email ahran@clkda.com and I'll put you in contact with the right people or fill you in on the details of the position.
adunsmoor··on Idioms: Building High Performance Networking Servers Using Tcl (2006)
Your error looks like there might be an extra space after the line continuation (backslash) in the example.

The trace command is split in to 2 lines for readability but the web page's formatting introduced a hidden space if you try to copy/paste the example in to a tcl script.

adunsmoor··on Craigslist Suing Padmapper
Even if you go with the "it's not their data" argument Craigslist would seem to own the specific compilation of the data. I'd apply the same copyright principle as phone books or encyclopedias.

http://www.bitlaw.com/copyright/database.html

Craigslist invested in the infrastructure to enter, store, and display this information. They should be able to set their terms as to how it is used in aggregate.

adunsmoor··on Multithreaded data structures for parallel computing
Intel's Threaded Building Blocks (http://threadingbuildingblocks.org) has a very nice collection of threaded data structures and algorithms.

I've found the performance to be quite good and the interfaces are compatible with STL in most cases which can be useful.

adunsmoor··on Google Play
It doesn't work well with Google's account switching yet.

I happen to have 2 google accounts (personal and work) and was logged in to both. With mail and docs I can switch back and forth between them.

In Google Play, there wasn't a way to switch from the "default" account to purchase music unless I signed out of 1 and signed in with the other.

I'm sure that'll come along later, though. I realize my usage is an edge case.

adunsmoor··on Show HN: A web app for creating interactive people plots and family trees
Here's my feedback after playing with the demo tree that's on your front page. The demo looks very nice. It's attractive and makes me want to interact with the page. That's great.

The one time I built a family tree graphically was when my kids had a school project to do. We wanted to print a nicely organized diagram but couldn't do it with the tools we found online. We ended up printing out the information from a text file and organizing it ourselves on a sheet of paper. I don't know if I'd have paid for something or not at the time. It definitely would have been a one time use, though.

Overall I expected the interaction to be more like a modern maps interface (think Google maps) - zoomable with scroll wheel, click and drag to pan, etc.

The click to navigate seemed outdated. If I want to move up and to the right. Click the button on the right, now click the button on the top, now to the right a few more times...

Same feedback for the time line. It's a neat idea but I expected to be able to navigate by dragging it around.

Also, the zoom +- would be easier to use if they stayed in a fixed location. Having them centered based on the size of the zoom scale meant they kept jumping around. Really hard to click, click, click to zoom in.

If navigation were a little easier and more fluid I could see using something like this to create hierarchical diagrams. Right now it was too frustrating to examine larger trees.

I hope the feedback helps.

adunsmoor··on Where Tcl and Tk Went Wrong
What do you mean?

  exec cat /etc/passwd | grep root
works just fine.

You can also use Tcl's open command with a pipe to do back and forth communication with a subprocess.

http://www.tcl.tk/man/tcl/tutorial/Tcl26.html

adunsmoor··on Where Tcl and Tk Went Wrong
I wish I could have. I'm not working at the same place anymore.

The CPAN equivalent for Tcl has been tried a few times. See Teacup for the latest. None of these ever reached critical mass to gain wide spread adoption though.

adunsmoor··on Where Tcl and Tk Went Wrong
Tcl is used quite heavily as a command line shell EDA tools. Google "pt_shell tcl" or "ncsim tcl" for examples.

Cadence and Mentor Graphic's digital simulation GUIs were built with Tk. Probably a lot more. The big win for Tk in GUIs in the late 90's was it's cross platform support. For all of its limitations - Tk was a huge improvement over Motif!

Tcl is also used as a data file format for describing desing rules. Synopsys' SDC (standard design constraints) and Cadence's CPF (common power format) are both just design specific variations of Tcl. Writing a parser for these formats just requires writing command implementations. Tcl takes care of the rest.

adunsmoor··on Where Tcl and Tk Went Wrong
I'm a long time Tcl/Tk user - it's still the defacto standard in the electronic design automation industry.

My own tl;dr for this comment: David makes good points and his experience mirrors some of my own. I think the biggest mistake was not going with a "batteries included" strategy for Tcl releases.

1) Tk got left behind by Qt, GNOME, etc.

I whole-heartedly agree with this. We spent a very long time making our Tk apps fit in on user's Linux based desk tops - tweaking color schemes, widget dimensions, and even adding new widgets that Qt and and GNOME had that Tk didn't (trees, tables, buttons that could show images and labels, for example). Tk has since made this a lot easier but at the time it was frustratingly time consuming.

The author's other point that there were too many ugly Tk apps. Maybe. You definitely could spot a Tk app a mile away. But there are plenty of ugly X apps where X is any GUI framework so I don't buy in to that theory as much.

2) The debate between making Tcl batteries included or not.

In think this is the #1 issue. I love Tcl for quickly stitching together a few apps or processing files. Tcl makes working with the system really easy and it's "everything can be a string" roots can be tremendously useful. But... if you want to do something that's not in the core language - you had to build it yourself. There were quite a few useful external packages but they were often incompatible or tied to specific versions of Tcl etc, etc. Comparing that to the first time I built something in python and needed to process a gzipped file. Just import zlib. Wow!

Every big Tcl project I'm aware of had to devote a lot of energy adding support for some fairly basic - in comparison to other scripting languages - features. Tcl's philosophy was very much like the C language. Keep the core small - let the users work out the rest.

3. Missing default support for object orient programming.

Sure. Maybe. That kind of goes with point 2 above. It wasn't ever so much of an issue for me or any of the projects I worked on.

4. Missing support for some modern conveniences (no PNG, no readline based shell)

Sure. It goes with the batteries included or not theme. It was (and still is in some cases) a sign that tcl was falling behind.

5.Everything must be representable as a string

I spent a lot of time dealing with this. It's incredibly convenient when writing Tcl scripts. It's incredibly difficult when writing C extensions. The Tcl_Obj structure is actually really clever but managing the life cycle of objects is frustratingly complicated.

This is advanced enough of a feature that I don't think it impacts that many people. That said, fixing this flaw might have allowed for more interesting extensions.

6. (I'll add one of my own.) Multi-threaded tcl is not built in. You have to make the choice at compile time. Compiling in support for threads slows down tcl enough to be noticeable for the kinds of people that are interested enough to do multi-threaded programming with Tcl. :-)

adunsmoor··on Google is quietly testing Google+ for Domains
It's been a while but I believe when using the "Send mail as" feature in gmail it puts your preferred address in the from: field but keeps your gmail address in the sender: field.

That's probably fine in most cases but I was getting inconsistent results when people replied to my emails. Some were addressed to my domain and others to my gmail address.

I was also concerned that this might give me a slightly higher perceived risk in some SPAM filters.

Like I said earlier, none of this was a huge deal. It was just one of those inconsistencies that led me to routing all my mail to Google Apps.

adunsmoor··on Google is quietly testing Google+ for Domains
I used to forward from my Google Apps account to regular GMail but different people would see my email address from my domain and others from gmail.com depending on their mail client.

It's a minor nuisance but switching it around and routing everything to my apps account solved that inconsistency.

adunsmoor··on Google is quietly testing Google+ for Domains
It looks like Google has improved deleting users since the last time I had to do it. That's a relief! They've been improving Google Apps a lot in the past year.

http://www.google.com/support/a/bin/answer.py?answer=33314

"Shared documents created by the user will be deleted within five days unless ownership is reassigned. You can reassign ownership of all documents created by the user before deleting the account. If you only need to save some documents, spreadsheets, or presentations, ask the user to reassign ownership of selected documents prior to deleting the account."

Shared calendars aren't deleted. Email seems to be unless steps are taken to export the data prior to account deletion, etc. etc.

It'll be interesting to see their take on Google+ content.

adunsmoor··on Google is quietly testing Google+ for Domains
I use Google apps for both (1) and (2) above (although I'm not confused when mydomain.com doesn't work like my GMail account).

In the case of (1) the biggest issue I see is when people from an organization leave. It'll be interesting to see how Google handles that in Google+ for Apps users.

As an example, right now, when deleting a Google Apps account all of the user's shared docs, calendars, emails, etc. are deleted. I'm not sure if there's a way to preserve information or transition ownership easily.

For organizations like schools I could easily envision someone wanting to take their Google+ content with them once they graduate. For companies there's usually a mix of content that should be removed and preserved that's specific to that organization.

For my personal domain I do want Google Apps features to have parity with GMail. It's not that I don't understand the difference. It's that I don't want to split my information between multiple online identities.

adunsmoor··on Ask HN: Review my startup, Localo.com
I really liked the site, in general. I could see using this when traveling with my family to find places to stay once there are more listings available.

Some thoughts as I browsed the site:

* Everything was slow. The "About" page was the worst but the listings themselves took 5-10 seconds to load. Later, I waited 30 seconds for the search page to pop up. (I was searching for a town that had no listings from the front page.)

* The search form cleared the location when I navigated "back" to it from a listing. It'd be good to allow for searching, click a listing, back, click another listing, ...

* If I'm looking at renting a house are there restrictions on the times/dates? If so, I didn't see that indicated on any of the listings. Do I get the whole house or am I sharing it with the owners?

* I found the wording for some things a little strange:

  "This place does not welcome pets :(" Seems negative for some reason. How about, "No pets, please."?

  "We don't have security mechanisms as 24-hour security, fire alarms, safe deposits, etc."  I wasn't sure how to parse that the first time I read it. I'd suggest keeping it simple - "Not available"?

  "Invite to Submit Offer" Gives the impression of a lot of steps. "Request a quote" seems more familiar.
 
* The lack of prices on most of the listings was surprising. What does "Upscale" translate to? If I have to interact with the owner I don't want to waste my time or theirs. Perhaps a price range would help.
adunsmoor··on Ask HN: Review my app again? Short domain name search
It looks like there is a bug when using the prefix and suffix fields together.

Entered "ns" in the prefix field and saw a bunch of domains. Added "ing" to the suffix field and nothing showed up. I figured the site was just slow until I realized that it wasn't going to refresh.

Cleared "ing" and typed "g" in the suffix field. Showed results. Then added an "n" just before the "g" to get "ng". Less results than before as expected. Then added an "i" just before the "ng" to get "ing".

That gave me a list of domains starting with "ns" and ending in "ing".

(Using Firefox 3.5.7 if that matters)

adunsmoor··on Why "I'd Google it" is not an acceptable Interview Answer
Agreed. I think it's up to the interviewer to redirect the responses towards something more meaningful. For example, "what criteria would you use to evaluate what you find on Google?" Or "how would you determine if the information was up to date/accurate/etc.?" I've found that a person might jump to the "I'd Google it" answer but still have a good knowledge of the problem domain.
adunsmoor··on Ask HN: Please review our web app - TellMyPolitician.com
If I think about the pain points from the perspective of the person supporting whatever issue they are writing about a few ideas spring to mind.

If you could take your app one step further and actually connect the reader to their representative that would be great! Getting people to follow through is the toughest part when asking for this type of action. (I seem to recall a click to call service being reviewed here on HN a while back that could broker a two way connection like this.)

It would also be great to know how effective an article/person/web site/etc. was at getting people to contact their representatives. This information can be really important to smaller - grass roots - efforts.

An example: www.letcongressknowaboutlyme.com The site creator is trying to collect information via email.