HNHacker News
TopNewBestAskShowJobs

meastham

235 karma · joined January 17, 2010

meastham.com
submissionscomments
meastham··on Can ARM Kill Intel?
Has ARM's design licensing model ever been demonstrated in the high end (server/workstation) CPU market? It seems to me that the amount of engineering expertise required to push that sort of high performance, fully custom design through to fabrication would make it difficult.
meastham··on Programming in Scala(2.8), 2nd Ed.(preprint/draft book), Odersky, Spoon, Venners
That's a good way to describe it. As I was reading the book there were lots of moments where a particular feature seemed very clever and elegant and fun to use, but as I kept reading and the number of features started to pile up it started to look like something that would be very difficult to use in most practical settings. Indeed, when we were doing show-and-tell sessions with out little Scala projects, even though we had all been reading the book, we'd frequently have to ask the presenter what exactly some piece of syntactic sugar meant or to remind us of the precise semantics of some feature. It just never really seemed to all "click" together like other languages have for me in the past.

That, and the compiler is dog-slow. I'm working with a group that is looking at using Scala as a basis for an embedded DSL for hardware construction right now, and the compile times are one of the biggest things that is steering us away. Not sure what the deal is there.

meastham··on Ubuntu moving to rolling release?
There are a lot fewer factors in shipping a new firefox for OS X than there are for Linux. On OS X, for the most part, all of the important dynamic libraries are frozen at a single or at one of a small number of versions, everybody is either ia32 or amd64, there aren't distro patches applied to things, there isn't the wide array of Desktop Environment configurations that there is in other Unixes, etc, etc. This isn't to say that rolling releases aren't possible; it's just trickier for Linux distros.

Also, you have to update the glibc sometime.

meastham··on Programming in Scala(2.8), 2nd Ed.(preprint/draft book), Odersky, Spoon, Venners
I read this book as part of a reading group during my internship this summer. It's a good read, but I couldn't help but feel like the language designers perhaps could have used a bit more restraint in their design. It is very much a "kitchen sink" language.
meastham··on Ubuntu moving to rolling release?
Why would this necessitate getting rid of the "-dev" packages?
meastham··on [dead]
Why does this stuff keep showing up on HN? There is nothing that "gratifies one's intelectual curiosity" about printing the fourth amendment on clothing.
meastham··on PG on the cover of Forbes
Like others have mentioned it's rather academic, but also pretty cool. It's a way of introducing recursive functions into the untyped lambda calculus. I think the easiest way to see it is using it in scheme to define an anonymous recursive function:

  (((lambda (fact)
      ((lambda (f)
         (fact (lambda (n) ((f f) n))))
       (lambda (f)
         (fact (lambda (n) ((f f) n))))))
    (lambda (fact)
      (lambda (n)
        (if (= n  0)
          1
          (* n (fact (- n 1)))))))
   10)

Computes 10!

You'll notice that lines 6-10 define a procedure that takes a factorial function, performs one level of the recursion, and then calls the factorial function to compute the rest. The Y combinator, implemented in lines 1-5, basically allows us to start the recursion. A step by step derivation can be found at http://www.ece.uc.edu/~franco/C511/html/Scheme/ycomb.html

The really neat thing about this is that all that was required to create that factorial function was lambda, some arithmetic functions, and if. Arithmetic can be implemented using only lambdas (google church numerals) and so can if. Using these techniques you can create a factorial function using only lambda and function application (which is exactly the lambda calculus).

If you replace "program" in the Forbes article with "function" I don't think they're terribly far off.

meastham··on Berkeley University Course on Starcraft Theory and Strategy
Came here to say this.

The DeCal program is really awesome. I took one titled "Advanced Unix Systems Administration" my first semester that was possibly more valuable than some of the faculty-led courses I was taking at the same time.

meastham··on Pure virtual destructors in C++
I didn't know you could define member functions that were declared pure virtual. The more you know..
meastham··on SSH: Use Password or Public-Private Keys?
(which, if I understand correctly, won't give them the key, only the ability to use the key while the agent is running)

By design, talking to to the ssh-agent should not give you the decrypted key. However, in reality, anybody that could write to the ssh-agent socket could also ptrace() the agent and find the key in its memory. That would of course require becoming the user you are running ssh-agent as, but that's typically not very difficult.

What other weaknesses can you think of?

A key logger.

Basically, if you don't trust the system you decrypt your key on, all bets are off.

meastham··on Ask HN: What do you use?
Desktop:

  Core i7 930
  6GB DDR3 DRAM
  2x24" ASUS monitors
  Microsoft Natural Keyboard
  (On the way) 120 GB OCZ Vertex 2 SSD
  Fedora 14
Laptop:

   ~2007 Core2Duo 15" MBP
Phone:

  HTC Incredible w/ Android 2.2
VPS:

  512 MB prgmr.com instance running Ubuntu server
My favorite software:

  zsh
  tmux
  xmonad
  irssi
  (mac)vim
  git
  google chrome
  gmail, google docs, google reader
[edit] formatting
meastham··on The Ten Commandments for C Programmers (Annotated Edition)
Even if this were desirable, it would make much more sense for the OS (or C library) to do it rather than have it enforced by the hardware.

(edit) or, you could do it yourself. The following works for me on Linux: http://pastie.org/1278260. You may have to alter /proc/sys/vm/mmap_min_addr and/or your SELinux policy.

meastham··on [dead]
On a related note, I recently watched The Social Network and was surprised by how tolerable the technical dialog was.
meastham··on [dead]
Topology is a rather widely studied (and important) field of mathematics. Not too sure why it's on the list..

(edit) #5 seems to be a straightforward topology class as well. Something gives me the feeling the author doesn't actually know much about mathematics.

meastham··on Fear And Loathing At The Wall Street Journal
Michael Arrington is no Hunter S. Thompson..
meastham··on Ask HN: Thoughts on Ubuntu 10.10?
I decided to try out 10.10. I used 10.04 this summer at my internship (worked flawlessly), but had never used it on this machine before. The install took nearly an hour, the first time I tried to boot and several times thereafter things would hang before the boot splash, and when it did start X was performing so poorly that it was nearly unusable (terminal could not keep up with my typing, 2-3 second delay between clicking a menu and setting it, etc.). Apparently this is caused by a kernel bug with i7 processors and/or the X58 chip-set that will be resolved in coming versions, but I have no idea how they didn't catch this in beta.

I'm currently back to using Arch. I was hoping that 10.10 might offer a more "ready out of the box" experience, but I didn't find it.

meastham··on Ask HN: What are the websites that you rely on but have horrible UI?
Everything by my university.
meastham··on Ask HN: Would a game to teach Bash & *nix be worth-while?
You've got a typo in the last screenshot, "direcotry"
meastham··on How does mkdir() really work?
I get this, but why is there a declaration of the libc mkdir() function inside of a kernel header?
meastham··on Ask HN: If P = NP, what does it mean?
There are classes of problems harder than NP. However, the problem of cracking any useful encryption algorithm is always going to be in NP. If it weren't, then decrypting a message would not be possible in polynomial time.
meastham··on A regular expression to check for prime numbers
If I recall correctly, Hofstatder uses the same principal for developing a formal language for classifying primes in Goedel Escher Bach.
meastham··on BIOS will be dead in three years
The user interface is hardly the most important part of EFI. The system interface is much more important. It includes the GUID partitioning scheme as a replacement for the antiquated MBR scheme and other such modernizations. Look at what the Linux kernel has to do to bootstrap itself on a machine using BIOS sometime (spoiler: it ain't pretty).
meastham··on Major University Dumps Gmail Over Security Concerns
That doesn't mean that they're storing your passwords in the clear. They could simply be keeping hashes of your old passwords around and checking simple variations of the new password you're trying to use.
meastham··on How Dr. Seuss would prove the halting problem undecidable
An "external halting detector" couldn't correctly tell if the arrangement would halt. If we decide that the input of the program halts, then the wrapper instance loops infinitely and we were wrong. If we decide that the input of the program doesn't halt, then the wrapper halts and we were also wrong.
meastham··on Cinder - open source library for professional-quality creative coding in C++
Did anybody else misinterpret the phrase "creative coding in C++"?
meastham··on It's about time: Xilinx FPGA with embedded ARM cpu
They've been doing this with PowerPC CPUs for a while now.
meastham··on For the love of POSIX: A more useful way to not segfault from null pointers
I don't think the ksplice article was really about a way to "not segfault" from dereferencing a null pointer, but this ended up being a nice, short exposition on handling signals anyway.
meastham··on Ask HN: What are you working on tonight?
Is this for CS164 at Berkeley? It sounds like the 164 project.
meastham··on Ask HN: What are you working on tonight?
The serial interface for the MIPS microprocessor that I am going to be spending the rest of the semester implementing on an FPGA.
meastham··on WTFJS?
=== means value and type are equal. In this case, the types are equal, but the values are not. I'd argue that NaN === NaN being true would imply a broken implementation of IEEE 754, and the designers of JS seem to agree with me.
← PreviousPage 2 of 3Next →