873 karma · joined November 23, 2009
email - srikumarks @t gmail d.t com blog - http://sriku.org
Work area (former) - Automatic video editing tools (algorithms, fx, rendering)
Ph.D. - Understanding Indian classical music through computer synthesis.
Banner - helping create, communicate, learn and understand Indian classical music through technology.
Apple event happens, random sites write various things about the announcements, Gruber waits for the noise to settle and writes a piece mostly in favour of Apple.
And you know what? It works! (No sarcasm)
- Instapaper still works well for me.
- Of late I've also been using archive.is to snapshot pages. This is useful for article permalinks to cite for research, in case the original url disappears or its content changes after the conclusion of said research.
By "ui front end at the back end", I was referring to the OP's suggestion to use nodejs as the entry point which the talks to the "real" back end.
I'm interested in real time collaboration where message connections between connected users are easiest held in a shared data structure to reduce latency. I've on occasion mangled this data structure unintentionally without any feedback from JS before deployment. If I'd had some static checking, these problems would've been easily avoided. Hence my fear.
edit: to be clear, my "fear" only applies to languages like JS and untyped racket at the backend. Not of backend programming per se.
Rgd my example, so ... given that I would needs CORS support, the browser->nodejs->backend division of labour that the OP is suggesting doesn't seem workable for such a file upload case.
To my main point, I'm unclear how such a split would actually work in practice. For example, if I have a file upload to do from the client, should that get streamed to the "ui front end at the back end" (whew!) or directly to the "real back end"? Are there any fundamental architectural problems with client side code pulling together an application by accessing a number of independent REST services without going through such a "front end at the back end"?
Thoughts/suggestions?
Dear Grun - Go you!
Visual feedback needs to serve a purpose. This is a stop watch we're talking about - one that shows time in tens of milliseconds, which is less than one frame interval at 60fps. Any animation done would hinder the function of the stop watch and raise ambiguity about when the stop watch actually started and stopped. So not using an animation is the right thing to do here. If they'd gone for consistency in this case, it would've been "foolish consistency" [1].
[1] "A foolish consistency is the hobgoblin of little minds." - Ralph Waldo Emerson
edit: typo fix.
I saw, to my great disappointment, that the program was not Apple's.
.. not yet for music apps. Even Google folks admit that [1]. This really can't wait any longer. Where is Garage Band for Android please? ... and to those saying "you can't complain only about music, look at the games, todo lists, blah blah", sorry music IS my domain and that's the only thing I care about.
Bottom line is that I'm beginning to think that a mobile-only company strategy is likely to be doomed. Anyone thinks otherwise?
On the segway effect, I wonder what would've happened to the product had it been designed for rough riding and stunts first before it was targeted at the commuter.
Managerial: Ask how to improve. Are bugs being prioritized properly? If some level of management is not involved in prioritizing bugs, ask them to take and look and prioritize. It is not enough for you to think "hmm .. no hurry to fix this bug for the next release 'cos its a very obscure case and there are these other important ones to tackle first."
Self management: If you're overwhelmed by many bugs and are zombied about where to begin or touch next, just pick whatever looks the easiest to fix and fix it, irrespective of priority (and loop that). This at least gets some momentum going. A management that expects bugs to be fixed exactly in the prioritized order is ignorant. That's not how systems fail. What might be thought of as trivial might turn out to be very significant, and vice versa.
[1] Based on energy consumption figures from http://en.wikipedia.org/wiki/World_energy_consumption
[1] http://www-cs.canisius.edu/~hertzm/gcmalloc-oopsla-2005.pdf [2] http://sealedabstract.com/rants/why-mobile-web-apps-are-slow...
I've seen novices do cool stuff with Max without thinking that. Perhaps this feeling comes more from familiarity with textual coding than something fundamental about textual coding.
On the other hand, we keep saying "a picture is worth a thousand words", but here we are writing blog posts in gobs! That suggests that text is what we train for, and is what we might be most effective with in the future too.
Not too surprising a result. It would've been interesting to propose a model of cognition that might account for this effect. The "embodied music cognition" school might, for example, propose something like this -- "the brain needs to process the inputs and reconstruct the body movements required to produce the sound so that the music can be experienced in the listener's body. This is less work when given the visual signal alone than when given the audio signal alone."
Also, I was curious about what instruments or vocal music the competitions were about, but the paper doesn't talk about that (in my quick scan through). I venture a prediction that for vocal music, the audio alone is likely to be a better predictor than the visual alone, but for piano and violin the visual may show this effect.
Another point that struck me was that the experiments featured the performances of only the top-three finalists in competitions. These are already performers who the judges in those competitions selected as good, suggesting that perhaps these performers are not very distinguishable by their sound alone anyway. It would've been better to also include non-top performers to see how the audio-alone and visual-alone inputs fare when they are also included. Then again, stating the result as (simplified) "among top performers, the visuals are important" reduces the surprise factor :)
I meant "rid the planet of hunger for 2 years"! What a typo!
So here I have a "theory 10" -
THE PEOPLE go "meh" when faced with something like Hyperloop, but are excited to tell their 500 friends what they had for lunch at the push of a button. Hence the investors go "who cares?" and hence the "entrepreneurs" go "hmm, I better think about more efficient lunch sharing".
People need to be told something like "folks we're going to throw $60B of your tax money (an amount that would rid the hungry part of the planet for 2 years) at a transport system that you won't even be proud of, won't be that much faster or safer than air travel" to get a non-meh reaction to hyperloop. Even then, fast travel between SF and LA is, perhaps, a solved problem according to common folks - just fly already. Heck, you don't even have an interesting view during the trip according to the proposed designs.
On the other hand, post after post on HN talks about cool materials, 3D printing, maker culture, break through science, etc. So funded innovation is happening, it would seem. Just not in the main news very much perhaps.
And here is a "theory 11" - the common folk may actually <shock!> be satisfied with the status quo? Innovators often talk about a persistent dissatisfaction with the status quo as motivation for their work. On the "eastern" side of the planet, this dissatisfaction itself would seem to be the one that needs addressing .. i.e. being happy and contented is not the problem, but the lack of them is.
That's a concise way to put it and I'll certainly remember and reuse it! Did you come up with it or did you come across it somewhere?
It is still, a nice exercise to do it though ... and I might turn mine into an LLC anyway :)
That's an interesting aspect of their work you point out. It made me think about describing my "banner" and add it to my HN profile.
It would be cool if we can all identify such "banners" under which we work in our HN profiles. Note that the banner doesn't have to be a technological breakthrough. In my case, for example, I wish for cultural impact.
Computing is in a sad state today, but not because of
fucking callbacks. It's in a sad state today because
we're still thinking about problems on this level at all.
The unfortunate part about thinking about problems is it that problems are relative - i.e. they are problems only relative to a context. Nobody even in the tech world has a clue how solving a simple problem just to satisfy some intellectual curiosity can affect life on the planet. What meaning does Wiles' proof of Fermat's last theorem have on the part of the world that's sleeping hungry every night?The stuff we're talking about here has irked some pretty decent brains enough for them to go out and make ... another textual programming language.
Folks like Musk are an inspiration indeed for boldly thinking at the high level they do and seeing it through. However, that's exactly what's easy for press to write up on. Stuff like the moon speech is what's easy to communicate. It is also simple to attribute some great deed to one of these great "visions". But behind each such vision lies the incremental work of millions - each of it, I say, worth every penny - unsung heroes, all of them.
On a related point, not all the time where we've heard a call to greater action do we see the ability in those folks to imagine how that might come about.
edit: typos.
For some time now, I've been accumulating async patterns I've needed when writing JS code in my monadic IO.js library[1]. The aim of IO.js is to provide higher levels of thinking about sequences of actions without worrying about whether they are async, and with a rich set of error management tools (for ex, exceptions are turned into recoverable conditions in IO.js).
The crux of the "callback hell" problem is, contrary to what many have claimed, is not the nesting that results when the callbacks need to be called in temporal order. That much is straightforward to deal with. The "hell" rears its head when you need to coordinate multiple such sequences that are running concurrently. The composable actions you get from a monadic treatment combined with CSP-style channels, are an expressive framework to build abstractions on (tldr - Haskell's implementation is awesome!).
For illustration, the framework in IO.js is flexible enough to implement a node.js web server that can express PG's "Arc challenge" concisely (though that challenge is practically obsolete). Take a look at [2].
For a simpler example, `IO.trace` is a straight forward way to generate a trace dump to console of a sequence of asynchronous actions. You don't need to "enable trace" for an entire app. You can choose to trace only a particular sequence. This is pretty neat when debugging. Stack traces are useless when dealing with async processes anyway.
[1]: https://github.com/srikumarks/IO.js [2]: https://github.com/srikumarks/IO.js/blob/master/examples/arc...