This entry was posted in Uncategorized. Bookmark the permalink. Both comments and trackbacks are currently closed.

132 Comments

  1. Posted December 8, 2009 at 11:22 pm | Permalink

    You bring up a very good point. Actually, I think this issue warrants an entire blog post in response. I think there are indeed huge dangers in informationization that could be catastrophic.So I guess we need to determine whether informationization is a force that can be stopped, and if it’s not, what can we do to minimize catastrophic failure. One thing could be to have certain physical/static baselines to fall back to (like shelters, food, minimum levels of non-liquid wealth). Or convert some of NNT’s black-swan heuristics into well known practices (e.g. "Learn to be redundant, don’t be optimal.", "have small losses if you are wrong, and big profits if you are right", etc.)

    I haven’t put a lot of thought into the risks and downsides of informationization actually, and perhaps not enough people out there aren’t either. At this year’s Singularity Summit there was a real lack of skepticism and interest in debating some of these core downsides and dangers.

    This comment was originally posted on Hacker News

  2. Takaaki
    Posted December 12, 2009 at 12:37 am | Permalink

    Nice article. Japanese education system has, as you may know, heavy emphasis on knowing things. Memorize this, this and all of this. Regardless of this education system, Japan has yielded talented people. You know why? One research says that those who can memorize a lot are often those who are creative. That’s why those in U. of Tokyo or Keio U. could be more creative.

    I don’t know being creative can mean application of knowledge you claim. But this is just a story I want to share with you.

    Obtaining knowledge and applying knowledge are both important. The current education system, at least, here, have been leaning too much to obtaining knowledge.

    I do have strong opinions about cognitive psychology (e.g., awareness/consciousness/attention, aptitude, intelligence and knowledge representation). I would appreciate it if you mention book titles not just authors and publication year.

    I would also appreciate it if you have some book recommendations.

  3. Posted February 3, 2010 at 3:01 pm | Permalink

    I agree with the idea that JavaScript is a powerful language and a better alternative than Flash and that it is a language that is getting much more popular on the server-side.

    JavaScript is the most interesting language, but at the same time, it’s a very strange language. I have read a book called “JavaScript: Good Parts”, but it’s still hard to learn. You mention that ActionScript and Java are relatives of JavaScript. I feel so if I look at the Wikipedia entry for JavaScript. In the real world, I don’t think “learning cost” of learning JavaScript is small for ActionScript coders and Java coders. But I understand learning server-side JavaScript might be easy because we don’t have to think about browsers at all.

    A question: where do other scripting languages like Ruby and Python go in your model? Maybe we can still write in Ruby and convert the code into JavaScript with “JavaScript Virtual Machine” or something?

    Also in order for JavaScript to thrive, more efforts on tools are necessary. I know there is JSLint and also several testing frameworks. And documentation, screencasts, books and so on. Do you have any resources that you think “must-read” or “must-check”?

  4. Posted February 6, 2010 at 3:47 am | Permalink

    What you’ve got here makes good sense. There is a clear shift in the design of web apps from being very server heavy to very client heavy, I believe, expressly for purpose of behaving more like real desktop apps. This is part of what is happening with HTML5.

    The only real downside I feel is that users expect web apps to preserve state between sessions or even computers. With heavy JS support for state, there should be some form of communication to the server so that a new session can be loaded from the existing state.

    This comment was originally posted on Bamboo Blog

  5. Posted February 6, 2010 at 3:47 pm | Permalink

    It’s crazy how fast the Javascript world is evolving now. I remember when Rails first was released 5 years ago, everyone was amazed by the handy AJAX helpers, which by today’s standards look like crufty globbed on crap. Then RJS dropped and everyone was stoked because they could do client-side manipulation without actually touching any JS.

    But now, thanks in no small part to the efforts of guys like Douglas Crockford and John Resig (among many others of course) web developers are finally embracing Javascript for the wonderful language it is in its own right. Embrace Javascript fully leads to a more balanced consideration of architecture as you are suggesting here.

    I was led down this path myself in several areas as AJAX interactions in my app got more complex. It’s probably hard for people to grok when they haven’t been faced with the particular details that come up in practice, but having experienced them myself this post hits the nail square on the head.

    One example I worked through was a dynamic form consisting of many rows. Originally this was built a few years ago with a partial template representing a single row, and an RJS call to add new rows. The idea being that the HTML in the partial is DRY. It sounds good on paper, but as I needed to enhance this form I started having to jump through all sorts of hoops to inject the necessary state into the form. Things like generating unique dom ids so that the back-end and front-end can refer to the same element can get ugly fast.

    At one point it became so ugly that I spontaneously realized that the server side didn’t need to know anything about these rows. I set up the javascript to build dom fragments of new rows. Yes, this was a duplicate of the structure present in the template, but that’s such an inconsequential detail. Once the client side contains all the state, I was able to simply delete 80% of the server side code (all the cruft). Now the server only had to generate a plain HTML fragment, and make one call to initialize the whole javascript mechanism. I ended up with 30% less total code, and a snappy interface where before there were AJAX calls. Even with a well-optimized (and topographically nearby!) 150ms response time, the instant JS response is a dramatically better user experience. On the front-end the javascript is now smart about everything. Handling UI edge cases is now much easier. The backend generates some base HTML and then JS initializes and maintains the states.

    This technique taken its logical conclusion enables such things as an AJAX login that changes a full page to its logged-in state without a page refresh at all. For content pages that have only a handful of dynamic user-specific elements this type of approach can yield astonishing scalability improvements.

    Another benefit that falls out of this is that some things are easier to compute on the client side then they are on the server side. Take dynamic user-specific comment in a complex page. Generally you want to load all the necessary objects in the controller, then render a template which may render many small nested partials. You do this because of the N+1 problem of each template loading the single record it needs. But this also requires that the controller anticipate what is going to happen in all the templates. However, once the page is rendered, if the dynamic elements are semantically labeled, the javascript can harvest them all in one pass and request them via AJAX efficiently. In effect, the partials can generate a semantic HTML "thunk" that is lazily loaded by javascript on the front-end. An example of this are loading user ratings and favorites at http://www.theauteurs.com/films. This small tweak makes the full page cacheable.

    This comment was originally posted on Bamboo Blog

  6. Posted February 6, 2010 at 7:47 pm | Permalink

    Well, state is persisted to your server via simple ajax requests so moving computer etc. shouldn’t really be an issue.

    This comment was originally posted on Bamboo Blog

  7. Posted February 7, 2010 at 3:55 am | Permalink

    Thanks for commenting, I think you highlight some great examples. I struggled with the idea that the concept seems very clear to me, yet might be too abstract without concrete examples.

    I think you are right to say:

    "It’s probably hard for people to grok when they haven’t been faced with the particular details that come up in practice, but having experienced them myself this post hits the nail square on the head"

    My hope was that for some people it will resonate right away, while others may only "get it" later after going through a similar practical struggle themselves.

    This comment was originally posted on Bamboo Blog

2 Trackbacks

  1. By The Synaptic Web on November 8, 2009 at 12:27 am

    [...] way of accomplishing this is by having proper meta-data on activity events. Something I have been struggling with in my Kakuteru project and the very thing that prompted me to build my own aggregation [...]

  2. By The Rise of JS and the New Server-side on February 3, 2010 at 2:02 am

    [...] little more than a year ago, I wrote about the grim future of Adobe Flash. I think by now, there are even more signs that Flash is dying in it’s current form. Flash got a [...]

Additional comments powered by BackType