235 karma · joined January 17, 2010
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.
Also, you have to update the glibc sometime.
(((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.
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.
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.
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(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.
(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.
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.