HNHacker News
TopNewBestAskShowJobs

tmccrmck

208 karma · joined February 10, 2017

submissionscomments
tmccrmck··on CS61A Structure and Interpretation of Computer Programs
> And while I really liked Scheme, I didn't like SICP which like the bible we actually never read and only worshipped.

Uh when did you take it? When I took the self-paced version with Harvey we read SICP. I mean, I'm sure some students skipped readings but they were still assigned nevertheless.

tmccrmck··on Microchips That Shook the World
I absolutely agree. Itanium effectively killed any hope of VLIW architectures for a generation.

I'm hoping The Mill folks can bring back attention to VLIW.

tmccrmck··on Ask HN: What Podcasts are you listening right now and why?
I highly recommend Embedded.fm if you're interested in any thing in the embedded software world.
tmccrmck··on x86: Approaching 40 and still going strong
There are three main conventional instruction set architectures: RISC, CISC, and VLIW.

ARM/Power/MIPS/RISC-V are all examples of a reduced instruction set architecture, RISC.

tmccrmck··on Ask HN: What are we doing about Facebook, Google, and the closed internet?
I love the idea but if we can't get 70% of the population to use ad blockers, what chance do we have of people moving over to a new, unheard of browser?

People switched to Chrome because Google told you it was a better experience every time you made a search. I don't see how people of my parents generation (60s) will ever hear about Brave.

tmccrmck··on Rust Performance Pitfalls
Thanks. I fixed it.
tmccrmck··on Rust Performance Pitfalls
You need "-C opt-level=3 -C target-cpu=native -C target-feature=+ssse3"

I actually wrote about it last week: http://tmccrmck.github.io//post/rust-optimization-partii/

tmccrmck··on Ask HN: Why does visual programming suck?
I wonder how Victor's Realtalk project will incorporate his interest into visual programming: https://harc.ycr.org/project/realtalk/

Also, for anyone interested it looks like he just posted on HN for the first time under user 'worrydream'.

tmccrmck··on The Microarchitecture of Intel, AMD and VIA CPUs [pdf]
He explains his method in Instruction Tables [1] under 'How the values were measured' section and he even includes a zip of the code. I found this part particularly interesting:

> It is not possible to measure the latency of a memory read or write instruction with software methods. It is only possible to measure the combined latency of a memory write followed by a memory read from the same address. What is measured here is not actually the cache access time, because in most cases the microprocessor is smart enough to make a "store forwarding" directly from the write unit to the read unit rather than waiting for the data to go to the cache and back again. The latency of this store forwarding process is arbitrarily divided into a write latency and a read latency in the tables. But in fact, the only value that makes sense to performance optimization is the sum of the write time and the read time.

[1] http://www.agner.org/optimize/instruction_tables.pdf

tmccrmck··on Introduction to ARM Assembly Basics
Anyone involved in compilers will inevtibaly​ be reading lots of assembly.
tmccrmck··on The Magic of XOR
Seconded. I doubt there's a person in the world who couldn't learn something from Hacker's Delight.
tmccrmck··on Interview with Ed McManus, Technical Advisor for HBO’s Silicon Valley [audio]
Urbit is one of the few things that I think may be too nutty for the show.
tmccrmck··on My Kid Will Never Hack Linux
With static analyzers and valgrind even C++ has a lot of memory safety. See Herb Sutter's talks.
tmccrmck··on My Kid Will Never Hack Linux
As someone with a background in teaching CS at the high school and university level, I've had this sentiment for the last few years but have never articulated it as well as you've just done.

I went back to my old high school a few years ago to see the AP Computer Science class and the difference in the students was marked to say the least.

tmccrmck··on New food delivery service Kiwi brings robots to UC Berkeley campus
Are there any browser addons which selectively block Javascript? Something a little more curated than NoScript would be good.
tmccrmck··on Why Amazon is eating the world
Many of us also refuse to use Amazon.
tmccrmck··on Windows 10 on ARM
Most dynamic emulators don't do instruction by instruction emulation - they take in a whole block of instructions and translate that block, caching chunks that may be used without any inference (eg. branching). Once you hit a similar instruction block you don't have to do any translation; just execute from the cache. This is why you have a load time for reading from an x86 image.
tmccrmck··on Crash course to Amiga assembly programming
I'm not sure AT&T syntax is much better.

  movl $1, %esp
tmccrmck··on Miranda: A non-strict functional language with polymorphic types (1985) [pdf]
If you enjoyed this paper than I highly encourage you to read Wadler's 'Why calculating is better than scheming' where in he critiques SICP for it's choice of using Scheme, arguing that Miranda would have been a better language to go with.

https://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87....

tmccrmck··on How Many X86-64 Instructions Are There Anyway?
I don't read comp.arch so who - besides Godard and willvarfar - is involved?
tmccrmck··on Rust 1.17
Most compilers can be broken up into two steps, which is what we call a front end and back end. [1] The front end of a compiler does syntactical (parsing + lexing) and semantic analysis (type checking, etc). The back end of a compiler takes in an intermediate representation of the code, performs optimizations, and emits the assembly language for a target CPU. Clang is an example of a front end and LLVM is the back end for Clang. Clang and rustc both share LLVM as a back end, meaning they both emit LLVM IR.

[1] Many compilers have much more than two stages. For example, Rust has another intermediate representation called MIR.

tmccrmck··on Ada: a C Developer's Perspective
Garbage collection does make things easier, prettier, and simpler. BUT there are many problem domains in which a GC can not be used. A browser being a prime example...
tmccrmck··on Why MIT Switched from Scheme to Python (2009)
1. That looks like an interesting book. Have you read it?

2. I think you are focusing too much on the use of the word "nerd" here. Harvey chose the use of that word, not MIT.

tmccrmck··on Why MIT Switched from Scheme to Python (2009)
Berkeley used to let students skip the introductory CS course, 61a (in Scheme), if they had received a 5 on the AP CS exam. They removed that option I believe after fall 2010.

One of my friends was able to skip 61a by meeting with the department chair, Paul Hilfinger, and convincing him that 61a would be a waste of time for him. My friend could drone on and on about the simplest of subjects so we assumed he just annoyed Hilfinger until he said "enough already".

tmccrmck··on Why MIT Switched from Scheme to Python (2009)
But many students come in with years of programming in a language like Python, Java, or C++. My friends and I built video games when we were in high school so we were comfortable in all three of those languages.

Scheme levels the playing field. I have never encountered a student who entered university with years of functional programming experience and I was a TA for an introductory CS course. I think moving back to Scheme would be a wise choice for universities that are combating problems with diversity.

tmccrmck··on Why MIT Switched from Scheme to Python (2009)
The switch occurred while I was at Berkeley and it also made me sad. I loved that course so much I decided to TA for the self-paced version which kept SICP and Scheme.

Brian Harvey explained the decision to switch here:

"But, as I keep saying, the choice of programming language isn't the main point. I get upset when students, even the students who like 61A, refer to it as "the Scheme course." It's not a course about Scheme! It's a course about programming paradigms. MIT, where SICP was written, no longer includes that course in its lower division core sequence, not because they wanted to change programming languages, but because they changed the entire sequence from courses organized around big groups of ideas to courses organized around application areas: first "let's build and program a robot" and then "let's build and program a cell phone." That's a brave and thoroughgoing attempt to, among other things, attract non-nerds to computer science. To say, as some people do here, "MIT switched from Scheme to Python" completely misses the point of what MIT did; nobody is proposing any change half as profound at Berkeley." [1]

[1] https://people.eecs.berkeley.edu/~bh/61a.html

tmccrmck··on Ask HN: How many of you quit using Facebook or rarely use?
I deactivated mine two and a half years ago and never looked back.

Besides the occasional surprise that I don't have a Facebook when I meet someone it has never been a problem. Sometimes I don't know about events going on with friends but I inevitably learn if it's important.

tmccrmck··on What made Xerox PARC special? Who else today is like them?
May I ask what your current project is?
tmccrmck··on What made Xerox PARC special? Who else today is like them?
I've met people who worked on Midori and they describe it as the best project they've ever worked on. Used to work in a building with a bunch of old Midori-folks and would ask them about it anytime I heard the word 'Midori'. I don't think it was MSR though.

Personally, I've always been most impressed by the research into formal verification: Z3, Dafny, TLA+, F*, Lean, and many more.

tmccrmck··on What made Xerox PARC special? Who else today is like them?
There was an interesting post on HN years ago about why Google isn't a modern day Bell Labs. [1]

A common sentiment on the thread was that Microsoft Research was more akin to Bell Labs.

> I've always had the impression that MSR (Microsoft Research) was generally doing much more fundamental research than Google.

[1] https://news.ycombinator.com/item?id=6919184

← PreviousPage 2 of 4Next →