I eat at my desk all the time, and I really need to stop. When I eat at my desk, I'm generally eating things that aren't that healthy to begin with, snacking unnecessarily, and/or eating too quickly, and doing it in some misguided notion that I'm able to work and eat at the same time. I'm not actually productive at times like that, it just lets me deal with some illogical guilt I feel when I get up to go eat at a table with other people, or out by myself in the park near the office.
When I get up and go to lunch instead of eating at my desk, I'm taking a real break, I'm socializing, or taking time to think.
I gotta stop eating at my desk.
Of course a number of people would love to do that where the TV ends up the display for your socializing function.
1. Brilliant programmer gets chance of a lifetime. 2. Turns that into lots of money early in life. 3. Decides to change the world in his own way. 4. Consciously & purposefully breaks the law. 5. Has a webpage to get others to pay his legal bills.
Aaron should man up, take responsibility for his actions, and pay his own bills.
And if this is his idea of changing the world, perhaps he should reconsider his choices and find a better way of paying it forward to other brilliant programmers who never got the breaks he did.
More complete background: http://arstechnica.com/tech-policy/2011/07/reddit-founder-ar...
I've seen enough of these that it could be a real business. (Ex: help pay for a defense against some government intrusion, or RIAA overreaching, or to bring a case to challenge an unconstitutional statute, or to overturn a dumb pantent, or whatever).
It could even evolve into a platform for the political moneybomb we've seen before. (A bounty for the first person to introduce some bill, for example: patent reform.)
1. Include some background on why I should care.2. Provide some level of assurance that this page is actually linked to the issue at hand and isn't just a phishing scheme.
I'm neither encouraging nor discouraging people from donating, but I do think that it's a little off-putting that Aaron's taking what could have been a selfless, martyrdom-filled act of civil disobedience and then changing it into "silly mistake," from which he's asking for help recovering.
: 'Doing the time' as a turn of speech. I doubt Aaron would get actual jail time for this. Then again, I am not a lawyer.
As a person that knows about Aaron, I know it can be trusted, but it might not be the same for others. Just a reaction that the folks supporting Aaron might want to be aware of.
These prosecutors work for the Obama Administration, and ultimately the President. The President has certainly courted the tech/internet vote, and I think some internet activism in this case is worth a shot. But it would need to be done basically right now (i.e. before the election). Are the prosecutors going to drop the charges? No. But some political pressure could improve whatever the terms of a plea deal are.
Disclosure: Aaron and I briefly worked at the same non-profit organization many years ago. But we were essentially in different departments, so while we met once or twice I wouldn't say I know him personally.
"This report would be incomplete without a rough estimate of the actual performance of the system. With a flock of 80 boids, using the naive O(N^2) algorithm (and so 6400 individual boid-to-boid comparisons), on a single Lisp Machine without any special hardware accelerators, the simulation ran for about 95 seconds per frame. A ten-second (300 frame) motion test took about eight hours of real time to produce."
Just uploaded it to my bitbucket repository in case anyone is interested.
and a demo:
Definitely fun stuff to play around with.
For example, whats the fastest data structure/algorithm to make searching for neighbours?
A very simple js frontend sends get requests to wwwoosh, and some bash commands get executed to control a relays board that turns the lights on and of.
It's very simple, consumes almost no memory and is very reliable.
I'm somewhat saddened to see that they don't own dd.sh domain anymore. It was at least twice as cute as no.de is :)
Also, regarding environment sandboxing: it's probably worth looking at the direction the CGI spec went in.
Look at the blurb on Inktank that starts "Inktank is the company delivering Cephâ"the massively scalable, open source, distributed storage system" . Follow the link at the end to http://www.inktank.com and the webpage just shows a default successful Apache page: "The web server software is running but no content has been added, yet" .
This press release is over ten days old.
I wouldn't trust them with anything serious.
Pricing culled from the press release:
- Usage billing: 7 cents per month
- Prepaid: plans go below 5 cents to store 50 TB or more
- Transfer out: 7 cents per GB
I wonder if they're going to transform their reputation as a no-frills budget web host.
I would try setting a new hostname for the cdn content servers and see if that works. Assuming of course they have gotten rid of the malware.
Something nasty must've gotten onto their CDN, but it wasn't necessarily from The Verge - since they operate a significant amount of websites - it's just that The Verge was using their parent company's resources.
Make me pay my pledge. I dare you.
In the top pictures you can see them embedded in the canyon walls. In the pics lower down they've eroded out and are just sitting around.
>So there's really no disputing that Aliyun is based on the Android platform and takes advantage of all the hard work that's gone into that platform by the OHA.
>So if you want to benefit from the Android ecosystem, then make the choice to be compatible. Its easy, free, and we'll even help you out. But if you don't want to be compatible, then don't expect help from OHA members that are all working to support and build a unified Android ecosystem.
How "open" is something if you can't fork it and be left in peace to negotiate with the OEMs to ship it? Aliyun is already missing the Google Play Store and the official Google apps.
The "don't expect help from OHA" line is especially ironic given that Acer scheduled a press conference to announce making Aliyun phones before being strong armed by Google into canceling it.
Acer really had no choice, Android has 67% of the market and iOS has the other 30%. Losing early access to code and access to the Google Play store and Google apps will basically kill their handset business because the competition like Samsung, HTC, Sony, Motorola etc. will have those advantages.
They would basically have to quit the handset market outside China to make Aliyun phones for the Chinese market. Forking is a fundamental tenet and in many cases the lifeblood of open source. If you don't want that, put that in the license and do not call it "open" instead of artificial after-the-fact restrictions like this. If you make something open, people are going to eventually do something with it that you may not like.
What next, forbid retailers from selling Aliyun phones or threaten to pull all Android devices from them?
The only differences I see between this and Microsoft's OEM restrictions against other OSes in the 90s is that Android is not a monopoly(though it is effectively one for Acer), and that Android is open source(again, Acer doesn't really have much leverage to go on it's own with Android code).
Apparently, they even have pirated google apps. How Alibaba/Acer claim moral high ground on this is beyond me.
* there is a group called the open handset alliance (OHA), formed by google and others, that gives certain benefits to hardware makers. to be a member of that group you have to commit to not release incompatible versions of android.
* alibaba have created software for a smartphone that acer were going to release, called aliyun.
* everyone seems to agree that aliyun is not compatible with android (in the sense required by the OHA agreement). it can, however, run some android applications.
* the disagreement is about whether or not aliyum is a "version of android". if it is, then google can kick acer out of the OHA (which acer does not want; hence the phone would be blocked). alibaba is arguing that it is not (in particular, it does not use the dalvik vm), so acer should be free to release the phone and remain in the OHA.
Edit: See http://www.openhandsetalliance.com/oha_members.html for list of OHA members.
I am very thoroughly in Apple's camp. I have owned several iPhones, an iPad, and more Macs than I can count. This is what I use personally, and what I program for.
Although I don't use Android myself, I'm glad it exists. It keeps Apple on their toes. I don't think Apple will make much of a dent in the Android ecosystem, despite the fact that Steve Jobs apparently wanted to.
But now it's turning out that Google faces some of the same issues as Apple, doesn't it? The Android ecosystem is generally more open than iOS, but now we see that it has its limits.
Personally, I think Google is doing the right thing here. If this secondary phone OS really does contain a lot of Android frameworks, as they claim, then I think Google is right to be upset about this.
Interesting to see what the fan base's general reaction is going to be to this.
For example my mom asked who the angry chef on TV is and somehow I immediately knew "Gordon Ramsay!" even though I don't have cable TV, never purposely worked on remembering his name, and am generally terrible at remembering names. Being able to remember things without trying is what most folks would really want when considering improving their memory.
I have found success with methods that call for imagining a 3d space and placing objects in that space and using it to recall things... However, designing such a space takes time/effort which is difficult when you're trying to learn and comprehend stuff on the fly.
I do wonder if it is a memory issue or a recall issue here...perhaps I actually know the information but can't access it as necessary.
But there's still âinner speech', which appears to slow down meaning recall. It seems to be a habit of many people, although I don't have hard data to support this. I've heard that unlearning sub-vocal reading in favor of visual reading helps increase reading speed and remember the information. Haven't had much success with this myself so far, it needs some patience.
(I suppose phonetic writing system also adds to the problem. How cool it would be if you could read the meaning from symbols, instead of doing letter combination matching.)
Highly recommended for anyone looking to expand their vocabulary in a variety of languages, including Mandarin.
walk down a path in your mind, that you can recall well from your memory and then place images of the items/words you try to remember along this path.
in general: the more numerous the set of associations you have with a certain word the more likely you are going to remember it. For example, when trying to remember the name Baker of a person, don't think of it as a surname but rather as the profession "baker".
 http://climbformemory.com/blog/Oh, it's moved, I guess that explains that.
Like a program, the rapidity of the improvement gets faster the more you know. Using stem cells as a proxy for how much we 'know' we went from 'harvesting' stem cells to 'making' stem cells. Lately I've read a number of interesting (if opaque :-) papers about various scaffolds for holding cells as they develop into tissue. The third piece of this puzzle will be the triggers (or you can think of it as the minimum scaffold) to evoke the organ you're looking for. This is simply analysis, ongoing, checking the boxes, we have working systems to compare against. Sure it needs the insights to 'connect the dots' but if you look at the puzzle long enough you figure it out.
So step back for a minute and think about what that will mean for health care costs. If we can replace organs at will for people, that is a much more cost effective treatment of heart disease, or diabetes, or gout. The trick will be insuring that those cost savings return to you and me and not to someone else.
I have GERD and daily I think about cancer, already I feel like I'm being strangled all the time. My doctor said it was a one in a million chance but constant irritation and a daily proton-pump inhibitor drug isn't my idea of being healthy.
Add to that my dad was diagnosed last January with IPF, an incurable progressive scarring of lung tissue, a cause of which is GERD; stomach acid splashes into lungs and over time can cause damage. Lung cancer seems like a walk in the park compared to IPF.
It would be fantastic if specific organs could be replaced it would solve my problem and for most diseases people develop other than entire body, systemic diseases or diseases of the brain.
How does the body "know" or get "told" to only manufacture wind pipe cells and not say grow a new toe?
Really impressive stuff.
What's wrong with those machines? They're off-the-shelf machines that can be manufactured in large number as necessary and they're subjects to engineering improvement over time.
The truth is that we all play parts in a grand, millennium spanning conversation of all of humanity.
Writing and contributing to that conversation in the best way we can is probably the most compelling driver for me personally.
You'll contribute far more by participating in the conversation (releasing code, or papers that describe how things work) than trying to keep everything to yourself.
Firstly, while reading, I find myself reflecting more on the book. After all -- I will be writing a review, I need to be an active participant.
Secondly, I find that books will often spark some thinking on a topic and the review will essentially morph into an essay. I wrote a 3000-word review of one book that diverged into fuzzy logic, theories of jurisprudence and a few other areas in order to properly explain my reaction. Right now I'm writing a review of Waltzing with Bears that will diverge into financial accounting and a pet theory of mine about how tools create paradigms that shape entire bodies of knowledge.
Third, books can often be connected to one another. I find that my reviews tend to link to each other. Not because I am trying to drive internal link traffic (I'm basically a nobody in internet terms, it's not worth the bother). But book A will have tangentially touched on the topic of book B; or perhaps book C illuminates something only poorly discussed in book D. To the point where I refer to books from before I started reviewing with an "unreviewed" annotation.
Finally, some people find my reviews useful. My hobby is Olympic-style weightlifting and I do a lot of reading both on it directly and on allied subjects (eg, anatomy). Fellow strength nerds have found my reviews useful in helping them select books for their own libraries. It's nice when people give you positive feedback on something like that.
Often, and this is the sad part, I won't even bother reading something because I know I'll forget it almost immediately, unless I have a block of time available to dedicate to trying it out in practice.
For example, I'm really fond of the underpinnings of programming language design and compilers, and it's thousands over thousands of pages of information (most of it very interesting and useful to me), but I fail to retain the vast majority of the great info and need to continuously go back to the texts whenever I'm in doubt about something. There were a couple of valuable techniques recommended in Pragmatic Bookshelf's Pragmatic Thinking and Learning, such as "now pretend you have to teach this concept to your former self who knows nothing about this", which supposedly helps with retention and internalization into the brain's "web of known facts".
Is there anything like that in the book? Would it be of any help?
Step 1: Be worth billions of dollars
On a serious note, I realize that money doesn't buy happiness. Proven scientifically over and over again, people get used to their situations usually within 6 months, good or bad, and get back to their "normal" happiness levels regardless.
It maybe he read them all already? Probably not, because if you read Austeen you probably can't spend all your holidays reading self motivation books.
All of them go to the publisher - which seems a bit odd.
I noticed a couple of things.
The graph of the F distribution on page 8 is mislabeled as chi-square.
The sets Ai must be disjoint in the law of total prob. and Bayes rule on page 6.
In section 5 on page 7, "variance of sum equals sum of variances" certainly does not imply ("iff") independence. I'm not positive it implies uncorrelated, although it certainly might. The safe thing is "variance of sum equals sum of variances" if uncorrelated. Uncorrelated is usually abbreviated with an inverted T (reminiscent of "orthogonal", although that abbreviation is not introduced in these notes). The inverted capital Pi used here means independence.
A small typo: the Strong Law of Large Numbers is mis-abbreviated, it is the SLLN (sec. 10.1).
And, neither the WLLN nor the SLLN requires Var(X1) < Infinity. They just need finite first moment ("E[X1] exists finite.") This is not an error in the notes, it's just that the result holds in more generality than is stated there, and the lack of need for a second moment shows the strength of the result (i.e., if the mean exists, you always get convergence to it, end of story). (This is in Billingsley's book, or Durrett's book, or also in http://www.math.ust.hk/~makchen/Math541/Chap1Sec7.pdf as Thm 1.7.)
Also, one omission: Brownian motion in Stochastic Processes (sec. 20). Since Poisson processes and Markov processes are there, it would make sense to have one continuous process. ("random walk" gets a couple of bullet points in sec. 21, but it's not the right place nor the right position.) All you need to define B.M., or a gaussian random process for that matter, is that B.M. is the continuous process with independent increments characterized by:
X_0 = 0 X_t - X_s ~ N(0, t-s) for t > s
* "All of the above does the same job...". Not true at all; the four examples do three very different things. Try them with a more interesting string argument, say '012.78':
parseInt('012.78') // 10 (number interpreted as octal integer) Number('012.78') // 12.78 +'012.78' // 12.78 ~~(1*'012.78') // 12
'12' == 12
1*'012.78' // 12.78 ~~'012.78' // 12
Here's an updated jsperf with those additional test cases:
Performance doesn't help if your code is wrong.
parseInt('09') !== parseInt('9')
I think this article also shows up something about youTube I've noticed within my social group. It's half a decade old and yet it's become pervasive and it feels almost like it's always been there. Friends have said that like me they feel like they've been using it since about the turn of the century.
My point is, maybe I'm jaded now but music was so much more interesting then when there was mystery and not everyone had an opinion about a band before their first mp3 came out. I think the disposable quality of mp3s makes music less valuable too.
The internet also killed regionalism in music for the most part where a certain "scene" would have a certain sound as bands around an area being influenced by each other. See . I'm not sure what could have been done, it's a natural by-product of the internet, but I miss it.
And unlike punk's self destructive near impotence to do anything but rage. The modern movement actually has some tools to fight back with.
Is it optimal or sustainable that a band needs to sell t-shirts and concert tickets to support themselves as musicians, let alone be super rich? The recordings and the concert tickets are the only product offered by bands that we place value in; t-shirts hold some slight social value, but little personal value. Revenues from concert tickets go mostly to the venue operator, especially for smaller venues of 100-200 people that most bands play in, and the amount going to the band is hopefully enough to pay for the cost of touring, and probably not much more than that.
So that pretty much leaves recordings as the only valuable product that bands can hope to sustain themselves with. Merch and tour ticket sales are not going to cut it for most artists, so without sales of recordings in some form, they're going to need to work a regular job, and the music is relegated to a hobby.
Making good recordings costs a lot of money and takes a lot of time in a recording studio, so hobby bands have difficulty producing them. Recordings are valuable to us because they allow us to integrate music into our lives. How can we expect musicians to invest the time and resources to make good recordings for us to enjoy if we don't recognize their value by directly rewarding the artist for making them? Buying a t-shirt does not send the message to the artist that we value their recording; only buying recordings does that.
Couchsurfing, autocross, bdsm, ska, anime, hiking, slacklining... all communities i've become involved in with human beings at real places because the internet made it easier to find out. I still needed a human to show me it. But then the community was opened up to me much quicker through the 'net.
The next counterculture, to me, was 4Chan's /b/ and Anonymous. As stupid as it sounds, those retards brought a new kind of rebellion to people's lives - even if it was largely online. But it's not the method the message gets out that matters. It's the culture that develops. I think it's clear that the internet isn't holding anyone back.
"I suspect â" and I don't think this is nostalgia â" but it may have been able to become kind of a richer sauce, initially. It wasn't able to instantly go from London to Toronto at the speed of light. Somebody had to carry it back to Toronto or wherever, in their backpack and show it, physically show it to another human. Which is what happened. And compared to the way that news of something new spreads today, it was totally stone age. Totally stone age! There's something remarkable about it that's probably not going to be that evident to people looking at it in the future. That the 1977 experience was qualitatively different, in a way, than the 2007 experience, say.
I don't think it will be as influential as the original GFS was but its an important piece of work that folks should study.
The notion of uncertain time is ingenious.
Many databases use some sort of MVCC, but they operate on a single node or in a closely connected cluster. This paper shows how to achieve the same properties in a system spanning continents.
Spanner appears to strike a nice middle ground.
These just pile up, I must find time and get my hands on them...
Anyway, looks like a very exciting project. One could come up with so many applications.
Otherwise, there are various clichÃ©s. People will say their family is most important and money is meaningless or some variation. I think those truisms are worth the amount of time it takes someone to repeat them, which isn't much at all.
And I love that scene in Fight Club where Brad Pitt is telling Ed Norton that he won't be truly enlightened until he knows, not just thinks, that he is going to die. I wouldn't risk your life or hurt yourself to figure this out, but if you're in your 20's and haven't had any near-death experiences, as you get older, you will DEFINITELY realize that your life is finite and it will change your perspective. There will be a thousand things that in the back of your mind you always have thought you'd have time to do, but then you turn 30 and start to realize that you probably won't. And that you need to start economizing and prioritizing.
You "value" your family. What does that mean? You spent one hour pushing your kid on a swing because you realized you don't have the confidence, discipline, or perseverance to do the things you really want to be doing.
You "value" your family because you hate yourself, but you don't have the confidence to admit it.
IOW, you live your life however you want to and when you feel like it you just move the goalposts to make sure you look successful. Depressed people are the ones with the integrity not to move the goalposts.
I absolutely hate the saying "you only regret the things you didn't do when you die not the things you did". Really? I suspect some aids victims regret things they did. I'm guessing meth addicts also regret somethings they did. I don't see how this cliche helps you decide what to do and what to avoid.
For a less dramatic example my father recommends choosing a high paying job that is not so interesting over a more risky job that's more fun. His experience is he took the a risky job, though whether it was fun or not I don't know, the risk didn't pan out. Now he's 69 and driving a delivery truck because he can't afford to retire.
It would be nice to hear more failure stories to contrast with success stories
As a parent with two small children, I'm constantly faced with two paths: I could work really hard, the result being eventually enough money that would bring me more "happiness" (travel the world with my wife and kids, for example); or I could extract every memory possible while my kids are this age.
When I think about being on my deathbed and looking back on my life, what will I be thinking? Will I have wished I worked longer hours? Or will I have wanted more memories of my kids laughing with me?
(This is largely why I'm building slow growth, sustainable lifestyle businesses over moving everyone to SF and working 100 hours a week at some startup.)
Those who prefer the 100-hour weeks will no doubt say work is the number one priority. See "saving money for the future" vs. "spending money in case you die tomorrow" as other examples.
I'm still trying to figure out what I'd be doing with my time instead of working for a living. I think it would be working.
Pretty much all problems are taken care of this way. Time working/salary ratio? Too much to do/boredom? Just keep optimizing.
I do make a bit of an exception. If helping someone else makes them happier at the expense of some of my own, I'll go ahead and (try) to do it. Normally, helping someone else makes me happy too, but occasionally there's times where the kindest thing to do isn't the most enjoyable.
>To make money we lose our health;
>And then to restore our health we lose our money...
>We live as if we are never going to die;
>And we die as if we never lived...
Try to take that into account when you're making decisions.
> John Clifton "Jack" Bogle (born May 8, 1929) is the founder and retired CEO of The Vanguard Group. He is known for his 1999 book Common Sense on Mutual Funds: New Imperatives for the Intelligent Investor, which became a bestseller and is considered a classic.
Might is the key word their.
How would you live, if tomorrow _might_ be your last day?
Facebook also seems to think that sending full-size images down to my phone, instead of compressed previews, isn't a problem. No wonder the GPU memory is exhausted!
For example: "It's typically a problem on the newsfeed and on Timeline which use infinite scrolling (content is prefetched as the user scrolls down the app and appended) and end up containing large amounts of content (both text AND images). "
Well then don't use infinite scrolling when sending data to a phone and have a "next page" link. Problem solved. It's an easy solution with negligible end user consequences.
And there's a lot of whining about running out of memory because of "too much content". Then send less content. It's impossible for a person to see very much content at once on a phone, anyway, because the screen is less than 3x5 inches. You don't need to send a person's entire "timeline" just so they can see 3 entries at once.
You have limited resources with numerous environmental factors that need to be accounted for and respected (ex: bandwidth, latency, CPU, GPU, memory, UI/UX, async task handling, and most importantly BATTERY LIFE).
It is a different mindset when developing for mobile that needs to account for finite resources. If you're greedy, careless, or just don't really think through and test your app appropriately it makes for a horrible user experience.
Regarding the HTML5 vs. Native Apps:
HTML5/CSS/JS and frameworks that allow you to write once and convert to native apps (ex: Phone Gap) have their place. The core take away is that without developing native apps directly you'll never get to maximize the phone's hardware and performance will suffer. UIs will be sluggish and network IO suffers from high latency (wrappers).
If you're focusing on content display/information consumption and your app doesn't need to rely on high performance from hardware and the UI then HTML5 is most likely a good fit. If performance, high availability/background service, native look and feel and the such is critical to an app then native is a better route.
My 2 cents.
If they are having issues with memory and that appears to be the crux then they need to redesign how there doing things. Just becasue you can chuck a blob of content at a desktop webbrowser and chew memory like it is going out of fasion does not mean you can be as lazy with your design when it comes to thinner clients like mobiles.
The best optimisations come from a good design and whilst there desktop model of doing things may work for them it does not mean the same approach can be taken with thinner clients that will notice you chucking a ton of content initialy.
The other thing is that all that Facebook are trying to do has been done in one form or another by others and to read about facebook in effect complaining how a entire platform is broken is not only wrong but concerning as there are people who will take what facebook say as gospil and it is far from it that this could end up being distorted if the tabloid news level types get hold of it.
No platform is perfect and there will always be area's you want to change but in this case it is facebook's approach that needs to change. I also have to question if it is facebook beyond some forum email post as it is not on there main site (not that I'd ever know).
Out of interest G+ works fine on my low memory android device, though the previous version was better IMHO for my device as the new version does cater for larger screens nd tablet factors more so I feel, but it still works fine.
I'll also confess to not ever touching a facebook application so when I read this I do wonder how bad they are and wonder how they compare in usage performance wise and would love to see a article comparing network usage and phone resource usage for typical actions like uploading a picture for a post or replying to a post with a picture in it, those type of things.
At first when I read this suggestion I thought it didn't seem like something to include. This would force every smart phone to support this type of scrolling wouldn't it?
I think there's an issue with many developers just doing too much on mobile web without realizing the limitations of the device they're using.
People today are used to developing on systems where they don't have to think about memory, hard drive space, or performance. But when you get to mobile web you have to think about these things AND more (screen resolutions, landscape vs portrait etc).
The problem with many suggestions for w3c is that they are often tied to what specific companies (ahem Apple) are integrating (or not).
In terms of the Facebook app, I (along with many others) have just been flabbergasted that they've not been able to make their app load fast. Tobie's post gives some great insight, but I don't think it's impossible to create a smooth, well run webview - especially when you have the resources Facebook has.
Because the canvas element in lists are a fixed size, we never, ever hit against resource limits and it always stays snappy.
Or is it the case that they didn't even know what tools they lacked? The post certainly smells that way.
The fact is, performance can never be ubiquitous, because there's always going to be many manufacturers with many different devices -- that while all implementing the same standards, handle things differently.
This problem is alleviated by the age-old web term "graceful degradation," and when done right, can be exactly that -- graceful. That's too hard though, right?
Developing front-end for the web is hard, and developing for the front-end of the web WELL is much harder. I always hated Facebook's app because it wreaked of shoddiness and flaunted it's lack of thoughtful development.
I can't help but feel that they went and hired a bunch of brilliant programmers that had zero experience developing for the web. Developing a front-end web app can be (and often is) a horrifying thing to any developer, because the environment is so volatile (and really, unlike any other development environment).
I'm extremely disappointed in Facebook because had they done things right, it could have been an awesome thing. Instead, they released a shitty hybrid app that was doing everything wrong, and then gave up and wrote this whiny and semi-ridiculous list of what they want because "things are just too darn hard."
Having worked in telecom engineering for the past several years, I do think the network constraints are real. There are already several comments on this thread regarding limited resources, though more around the mobile device capabilities compared to desktops.
From a network perspective, for the mobile carriers, though, high-bandwidth streaming content and chatty apps are a big deal. The 'data explosion' (that we're just approaching the initial inflection point now) is essentially why most carriers are metered plans. Users want lots of content and the options for high-def streaming are only going to grow. Chatty, social, location-based services (aka SoLoMo) cause a lot of connections (since cellular radios kill battery, connections are torn down quickly).
The resource constraints now aren't the same as they were in the days of campus mainframes, or even the now waning days of fat-client PC desktops and laptops. But low-powered mobiles, running thin client apps over mobile networks, clearly have several constrained dimensions. Some of those won't change quickly. And there's some data to show that the slice of users whose _only_ internet access is over their mobile device is growing.
Good engineering for managing hardware resources at the browser level is still lacking (at this moment, Chrome's various processes are eating up ~700MB of memory on my system - disgraceful!) - and that's what bites Facebook the most.
Mainly, dev tools on the device and/or easily accessible remotely.
Things we'd want to know more about as we develop:
#### Down memory lane ####
- Heap size,- Object count,- GC cycles,- GPU buffer size,- resource limits.
Arene't people just loading their mobile site in Chrome desktop, and profiling there? I guess I don't understand this one (although WebKit does have a remote debugging protocol now). If the site has bad numbers on the desktop, they're going to still be bad in other browsers (it's the same page/code after all).
Anyway, although I'm in hearty agreement that I'd like all of the things mentioned to improve, I'm not in agreement that it would have prevented me from making Facebook's HTML5 mobile site nice and zippy. :)
A Fenwick Binary Indexed Tree allows you to calculate the sum of elements in an array for any given index range in O(Log(N)) time
Why the weirdo data structure?
Binary indexed tree: https://community.topcoder.com/tc?module=Static&d1=tutor...
Cumulative frequency table (which interestingly enough Simon Tatham claims to have independently invented): http://www.chiark.greenend.org.uk/~sgtatham/algorithms/cumul...