HN user

jgw

664 karma

ASIC guy. Lisp guy.

Posts5
Comments144
View on HN
Bouncing bomb 10 years ago

I was told that the inventor came up with the idea while at the theatre with his wife. As the spotlights converged on a performer, the idea sprung to mind, and he yelped "I've got it!"

Quite possibly embellished, but plausible that should be the inspiration.

Windows 93 (2014) 10 years ago

Clever and artful, with a little nostalgia thrown in.

1993 was the year I started my undergrad and would not see a "web browser" until the following year. It's nice to re-capture a little of the spirit of what computing was like back then.

Tip: Be sure to click on the virus and after what happens happens, fling the icons around. Moments of mindless fun.

It makes me a bit of a luddite (and a heck of a curmudgeon), but it always makes me a little sad when good ol' ASCII smileys are rendered all fancy-like. There's something charming and hackerish about showing it as a 7-bit glyph.

I think the Internet fundamentally changed when that happened.

Tangentially-related, I can't fathom why someone would post YouTube videos of `telnet towel.blinkenlights.nl`.

See first 25 entries or so in the permuted CL symbol index:

http://www.lispworks.com/documentation/lw51/CLHS/Front/X_Per...

Scheme does use ?, and you can in CL if you really want. But CL reserves ? as a programmable reader macro [1]. It is often used, for example, to designate a stand-in domain variable designation in, say an embedded Prolog.

Another reason that CL avoids the "?" convention is that it's "unpronounceable" [2]. CL is the only language spec I've seen that discusses pronunciation; they actually gave thought to how programmers might converse about their code unambiguously [3]. Another manifestation of this is CL's sort-of case-insensitivity [4].

--

[1] The other reserved characters are !, [ ], and { }

[2] Although at least one wag suggested pronouncing it as "eh?", like a good Canadian.

[3] CLtL2 provides quite a bit of this. My fav is a brief excursion into how some hackers pronounce "macrolet" to rhyme with Chevrolet. :)

[4] This is not actually the case, but appears to be true to new Lispers, until they understand that by default, the reader converts everything to upcase.

Re: "owe nothing to it", I respectfully disagree.

Canadians at Waterloo enjoy a heavily subsidized world-class education, at the tax-payer's expense, then leave to contribute nothing to the economy that produced them.

Interestingly, some also come back later in life to enjoy subsidized health care to which they've also never contributed.

I wonder if there's a way to structure post-secondary education subsidies as a sort of debt that you can pay off by either remaining employed in Canada, or in cash if you decide to leave.

Disclosure: UW Comp Eng '98 grad, still in Canada.

No, I don't think you're seeing the proposed attack here. As I understand it:

1. A company tapes out their chip to be fabbed, as most chips are, off-shore. The design is clean.

2. The backdoor is added after it is out of the company's hands -- say, by the fab. A single register and some wiring are not that difficult to add by hand to the design masks -- effectively, it's just an ECO.

Post tape-out tampering is a mounting concern for our clients. [EDIT: I work for an ASIC Design & Verification consultancy]

Do you know if they run on 6502s and other Western chips of the time? Were they cloned, or imported? Or were there Soviet ISA's?

I remember reading years ago about how Russian computer scientists in the cold war were more honed in algorithm design, because they basically had to squeeze as much as they could out of their processors to compete with faster Western hardware.

I think that's true. I think I'd formulate it more broadly as, "In our interaction, I'm vaguely aware that there's some sort of subtext that I don't understand, but is very important to you, or is even your main objective."

In the study, I'm glad that clowns are finally being called out!

Bit late replying to this, so I hope you see it, but as I noted elsewhere, the key here is something called a "reader macro". This is a mechanism by which you can control the behaviour of the Lisp reader (i.e., the READ function), and occurs before regular macroexpansion. I use [] to denote s-expressions in the embedded-language domain, and {} to introduce native syntax, which passes its contents through to an actual parser - which returns s-expressions. I can print the resulting forms in native syntax, embedded-s-expressions, or plain Lisp. It's a neat demonstration of the superficiality of syntax.

Perhaps another interesting observation is that what I'm building today is not actually what I originally set out to do, which was more limited in scope. Perhaps another weakness of CL is its tendency to seduce you into feature-creepism. :)

Programmable syntax (reader macros), programmable printer are 2 big ones. Also regular macros are key, manipulating code as structures not text, having both lexical and dynamic variables, closures and all the other nuts and bolts stuff. Type and compiler-optimization declarations help keeping things fast (well, not fast enough, but I'm trying!)

Haven't spent enough time with Racket, but my understanding (correct me if I'm wrong) is that you won't squeeze as much performance out of it, and performance is quite important. I'm also quite partial to Lisp's condition system -- I don't believe Schemes can support something that comprehensive (a trade-off for having nice things like call/cc, I think?)

Sure, s/built/are building/g.

Without going into too much detail, I basically am subsuming another language (statically-typed, Algol-ish) wholesale into Common Lisp. It replaces that language's syntax with an s-expression syntax, but also provides a way to embed its native syntax. So you can use CL macros to build syntactic abstractions, and use them as low-ceremony wrapping around native code. It also makes many of the primitives of that language into first-class objects in Lisp, so a REPL for the embedded language is emerging (or expressed another way, you can evaluate the embedded language in the CL REPL). I don't think Clojure would do as good a job (gut feeling; I'm not a Clojurist). Racket would probably be a decent choice, but not sure if I'd get good performance (again, not a Schemer).

One of the more arrogant things I've heard Lispers claim of their language is "a superset of all other languages". While that's not entirely true, this work has made me feel that there's more than a kernel of truth in that hyperbole. Warts and all! :)

I enjoyed skimming over this again -- I happen to be the guy who wrote the first comment on it.

I'm pleased to say that I've stuck with CL, and I'm glad I did. I've managed to use it at work, and have been using it to build something I can't picture doing (easily?) in any other language. I've managed to pique the interest of a few coworkers, too.

Much of what the article says is indeed true, but I just don't feel they're as problematic as they're made out to be. There are some ugly corners of the language, but they're, in my opinion, vastly outweighed by a fearsome arsenal of tools at your fingertips. I'd contend that it's warts are "warts in the small" -- some weird naming, some inconsistencies in usage. Other languages -- even pretty good ones -- have problems in things as basic as their scoping rules. I believe that by comparison, CL is actually pretty reasonably designed.

RIP Kuro5hin 10 years ago

I was hoping "What Art Is" would be salvageable, but sadly not.

  http://www.kuro5hin.org/story/2005/6/19/143553/870
I don't even recall who wrote it now, but I've had it bookmarked for over 10 years.
Facebook's New Feed 13 years ago

That's interesting - it's actually Steve Jobs to whom I attribute this trend.

I'm not really an Apple guy, though, so it may be a misperception on my part.

Facebook's New Feed 13 years ago

Is anyone else getting really, really bored of the term "beautiful" being bandied around so much in this type of context? It has long ceased to mean anything at all.

I understand the importance of aesthetics in design, but it seems odd to show off the design under the banner "bright, beautiful stories" - surely that depends on the stories?

For all the "embarrassment" that Itanium is, here's a fun fact that astonished me:

The world market for Itanium is bigger than the whole market for AMD.

I'm still not entirely clear on what Google's policy is on real names, even after reading it.

Is it acceptable to have an account with a fictitious name in addition to one's own account? It's not clear to me from their policy whether this is allowed or not. I had assumed not, but I know of at least one G+ "Suggested User" who maintains an account under a different name.

For what it's worth, I do the same thing and have never run into trouble in years...

...until two or three days ago.

GMail flat-out refused to let me log into two accounts (it would end up in endless redirect when I tried the second one - I quit Chrome, fully cleared cookies, history, everything... it just would not work)

It seemed to have cleared up by the following day.

There was also an early version of Windows Media Player for Linux - complete with a spiffy Motif interface!

And there was a DEC Alpha port of Windows NT.

[EDIT: I don't believe it was called "Windows Media Player" exactly, but it was a media player for x86 Linux from Microsoft. Can't find a link to it after a cursory search, but it did exist - I used it]

I wondered about this, too. I took a Meyers-Briggs test as a team-building exercise once, and in the I-E continuum, I fell very mildly on the Introvert side. But there are sub-categories in each of the fields, and I scored full marks for "gregariousness".

So I've spent the last few years wondering what a gregarious introvert is.

I think it's someone who laughs very loudly at their own jokes.