961 karma · joined March 12, 2009
right-ctrl-f is easy enough, but it doesn't change the monitor resolution as windows sees it. Unless you were already running vbox at native resolution (meaning much of the virtual screen was cut off) then you also have to increase the resolution in windows. It's like a 3 step processes, which is fine for me buy not for my wife. She'd just always stay in virtual box, so I do her one better and just boot Windows, which I don't like but she couldn't care less.
I've written a fair amount of Haskell, and done a lot of this type of optimization, looking at the core (intermediate representation) and fiddling with pragmas, unboxing, strictness, etc. I've put Haskell on the back burner and gone back to C++ because I spent SO MUCH time doing this. Maybe I'm not being fair, and in another 5 years I'd be able to predict what GHC is going to do as well as I can predict what a C++ compiler will do. But for now, I can't justify the expenditure in time it takes to get a large piece of Haskell code (more than a microbenchmark) to perform at the C/C++ level. If you write idiomatic Haskell you're tracking down stack overflows (the Haskell kind, not the C kind) and misfired optimizations, and if you're writing C-in-Haskell you're better off just writing C. In the end, I think Haskell just isn't (yet) the best language for what I was doing (image processing, graphics, 3d modeling, etc.)
(The short reply to your comment is: yes, you the application writer have to be very aware of what GHC is doing if you want C-level performance.)
I like it so far but I don't think it solves the alias/hardlink problem, so you'd just get one or two good snapshots before it got to be really expensive. The great feature of time machine (or rsync --link-dest) is that your snapshots share storage of unchanged files, and I don't know how to make S3 do that.
Time machine is nice because its nearly impossible to remember to do backups regularly (unless it's your job) and the backups are highly available, but really its more like an extended trash bin, not an archive. Storing your backups on-site is one thing, but keeping them plugged in and mounted is just asking for it.
Whatever happened to tapes? They're like comically expensive now. Another option is to copy your Time Machine out to S3 once a month. (Would probably take that long) but I don't know how you'd preserve the aliases / hard links.
One major difference between .NET thread pools and GCD is that the former are used in a high-level, garbage collected language, while the latter are built on top of C. Call me old fashioned, but if I'm CPU bound then I'm going to explore moving the bottlenecks to C first, and THEN look into parallelism if they still aren't fast enough. GCD follows that order, .NET has it backwards. (Although I hear the JIT is pretty good, and VS supports OpenMP which is nearly as good as GCD.)
There's an argument to do things the other way: stay in the high-level regime, make things parallel and buy more hardware, but this strategy is more prevalent (and useful) on the server, rather than the desktop, and in that case going to threads is just postponing the inevitable, you need to go fully distributed.
There will always be value in good, fast serial code, and nothing is going to beat C at that in the foreseeable future.
Look at the big picture, whether it be pointers or integers into an array: the size of the index grows with the log of the number of things being indexed. You can't avoid this growth, but it matters less and less as you grow.
You're making me hungry.
Exclusively eating local produce, grass-fed beef, free-range chickens and their eggs is not only seriously expensive, but in many parts of the US (like where I am) nearly impossible.
Whole grains and legumes, however, are pretty healthful and easy to grow, AFAIK.
This was T. Boone's mistake: overestimating the portability of electricity.
--------
I should clarify. I agree with what you said below, these days GCC is an excellent compiler for x86. It's just that it's near to impossible to be so excellent for all archs.
I think D is pretty cool, but it has a lot farther to go with regards to standardization as well as implementation. There is a current reddit thread going over its shortcomings:
http://www.reddit.com/r/programming/comments/93jh5/ask_progg...
Whether it wants to be or not, D is now in the same niche as C++, but without either the maturity or commercial support that a niche language needs to thrive. And that probably won't change now that the larger software world has moved on.
(Actually I'm not sure Slashdot was the first, though I was aware of "slashdotting" as a verb more than 10 years ago. Anyone know of predating claim to "the effect" by another site?")