2,370 karma · joined August 26, 2009
In the examples, at least, the language was only used to declaratively build hierarchical list/dictionary structures. The only constructs I can see used are blocks and method invocations; there aren't any loops or conditionals or anything else imperative. Can someone more experienced with Ruby DSLs explain what lispy accomplishes that something like YAML or a simple custom parser doesn't? (Other than a bunch of extra "do"s and ":"s.)
It's supposed to be an extensible and fast alternative to iTunes, MusicBrainz Picard, and other tools. It's getting there.
File Sharing for iPad: Lion Server delivers wireless file sharing for iPad. Enabling WebDAV in Lion Server gives iPad users the ability to access, copy, and share documents on the server from applications such as Keynote, Numbers, and Pages.
This sounds like the OTA iOS file sync we've been waiting for.
- Why are you using MySQL instead of SQLite or something even simpler? Surely my personal music streamer doesn't need serious scalability.
- Why does the setup require futzing with my Apache configs to use mod_rewrite? For just streaming music, I'm willing to put up with ugly ("something.php/directory") URLs. This would also make it easier to get up and running with non-Apache web servers (lighttpd, for instance).
- Do I really need to use a non-default PHP configuration? And increasing the interpreter's memory limit seems a little ominous.
This is all to say that perhaps the right way to deploy something like this would be as a single program you can run that has its own built-in Web server. As it is, the configuration is daunting for a home computer (although completely reasonable for a real server setting).
Also, in my experience, there are often weird consistency errors in the App Store when something new is rolling out. (I could only see it on my Mac for a while before it appeared on my phone.) Try again in an hour.
The best way for our users to always have the most up to date and secure version of Java will be to get it directly from Oracle.
Contrast that with a recent quote from Bill Evans:
We're happy to continue to support Flash on the Mac, and the best way for users to always have the most up to date and secure version is to download it directly from Adobe.
It's like they're just toying with the tech press.
That is, you would dd a random bit pattern to disk. Then you would read it back and XOR it with the pristine pattern you know you wrote. If you see any difference, you've got a much scarier kind of failure than the fail-stop behavior exhibited in the post.
Also, does the OP know whether any write buffering is going on? That could explain why some writes took much longer than others -- when the write actually goes to disk, it would take much longer than when it gets cached in memory. Use the "sync" command between each write to make everything go right to disk (I think?).
The missing pieces, as I see them, include more structured programs (i.e., the sessions have titles; the speakers are listed even if they're not on Lanyrd or even Twitter) and the ability to follow series of conferences (i.e., I want to know what happens at OOPSLA every year, not just once).
So, paradoxically, I get paid for the time I sit in my office and begrudgingly hammer out code; the time I spend at home coming up with the important ideas to drive the research goes pro bono.
Maybe I'm just lazy, but I really think that sitting in a windowless office for eight or nine hours a day is not the way to encourage maximum output. Personally, I find myself thinking I'd be much more productive if I just "worked" a little less.
It's called beets and the idea is this: just throw new albums at it; they get tagged correctly (from MusicBrainz), copied into a directory structure you specify, and catalogged in an sqlite database. Let me know what you think: http://beets.radbox.org/
It's Python and all command-line. I'm trying to make something that's both better than iTunes for managing music (not that hard) and smarter than MusicBrainz Picard for correcting tags (a little harder).
It's certainly feasible to imagine that single-threaded performance will improve to the point that parallelism will no longer be "necessary" (although many people have observed that, with Moore's Law no longer yielding the performance improvements it did just a few years ago, this may be too far out). However, applications arise and expand to fill whatever performance we have available. By achieving parallel performance gains, we'll enable things that weren't possible before, no matter how good single-threaded performance is. Also important is the distinction between parallelism and concurrency: many domains need multiple threads for reasons that have nothing to do with performance! A database server, for instance, needs to service many requests concurrently; it can't function correctly in a "single-threaded" world.
The difficult part is in how the threads actually coordinate. The problem is extremely application-specific (what exactly do threads need to share? When do they need to share it? These cannot be answered in a general way). It's generally accepted that concurrency bugs (examples: data races (colloquially "race conditions"), deadlock, atomicity violations, locking discipline violations) are extremely difficult bugs. This is probably either because (1) programmers are not accustomed to thinking about coordinating between parallel activities or (2) people are in just worse at thinking concurrently than thinking sequentially.
So new libraries/methods for accomplishing communication between threads are always welcome and can help reduce the complexity of parallel programming. However, nobody has yet found an abstraction that both works for most kinds of parallel programs (MapReduce is very simple to work with but also very restrictive) and is simple enough for people to program in without fear of hard-to-solve concurrency bugs (message passing and shared memory are both quite general but considered somewhat unsafe).
So, the problem is not that a good abstraction layer would be too computationally expensive -- it's that no one even knows what the abstraction should be! Hope this makes the issue clearer.
One thing is worrisome about this: since H.264 (the current industry standard video codec) and VP8 are highly similar, we can share code (and more importantly: optimizations) between FFmpeg’s H.264 and VP8 decoders
So it looks like VP8 is so similar to H.264 that decoders for the two can share quite a bit of code (something Jason Garrett-Glaser suggested might be the case: http://x264dev.multimedia.cx/?p=377 ). Have to admit that this doesn't seem to bode too well for VP8's claim to relative freedom from patent litigation.