I like having everything represented in code, rather than spread across two different tools.
This NIB-to-code utility seems worthwhile.
797 karma · joined August 29, 2009
I like having everything represented in code, rather than spread across two different tools.
This NIB-to-code utility seems worthwhile.
A surprise is that the Perl implementation weighs in at 63 lines. I would have expected much less. I expect a much shorter version is possible, relying on idiomatic constructs at the expense of readability.
Although there is a small chance that someone else also discovered it independently but came up with their own phrase to describe it -- a word that does not show up when you search for "bufferbloat".
The word "bufferbloat" is OK but it is not quite on target, imho. I don't have a better suggestion, but I think a better alternative is out there somewhere. Such a word would convey, not just the notion of bloatage, but also the notion of bits getting stuck in the comfortable expanse of modern, obese, buffers, fed at a rapid rate by modern hardware (and TCP stacks) on clean pipes.
Grasping at metaphors, I'm thinking of dampeners like bit potholes, quicksand, flypaper, speed bumps, bit tarpits...
http://blogs.houstonpress.com/hairballs/2010/12/wikileaks_te...
For those who don't click on the link, the article refers to cables in which US diplomats discuss how to quash a journalist writing about a private US military contractor procuring young boys to be sex-party favors in order to help motivate Aghan police recruits. The argument that the US diplomats discuss using in order to prevent publicity is that this reporting will "endanger lives".
Here is the cable: http://www.guardian.co.uk/world/us-embassy-cables-documents/...
I think this is quite scandalous and shocking. Maybe it's just me. I don't understand why stuff like this has not received much press coverage in the US.
As the article points out, there are structural problems with their pricing, their policies (and how they communicate them), and most importantly their customer service culture (or lack thereof).
I sorted the data and present here two groups:
1. This is a sample of supposedly the most satisfying, from the best on down (er, up): TGI Fridays, Best Western, Zenith Electronics, JVC, Chili's, Denny's, Hampton Inn, Olive Garden, Applebee's, Sams Club, Yahoo, AOL.
2. By contrast, here is a sample of some of the worst, listed from the top (high dissatisfaction) on down: Wikipedia, Apple, Nokia, Facebook, Volkswagen, YouTube, Amazon, Nike, Sony, Ikea, Range Rover, Rolex, Porsche, Google, Netflix, Louis Vuitton, CNN, American Express. Wall Street Journal, Intel.
Group 1 and 2 do not overlap in their scores.Meaning that Intel (the best of the worst) is at 404, with a higher dissatisfaction rating than AOL (the worst of the best).
This grouping does not make sense to me, because if you showed me the two lists above and asked which of these two sets had better satisfaction scores, I would have picked Group 2 over Group 1.
What could explain this? Perhaps there is demographic skew, in that down-market brands (Dennys, Sams Club, Zenith) are not talked about as much among upscale social media people, who would rather complain about Apple, Sony, and Porsche.
Or perhaps there is a mismatch of expectations. People expect the premium brands to deliver more, and complain loudly when they fall short in the slightest. And conversely, perhaps people expect a mediocre experience with downmarket brands.
Do startups use these? Some do, some don't. Depends on the time frame, the resources available, and the knowledge and skills of founders.
This is similar to software development methodologies (agile, TDD, XP, etc). Some coders at startups are aware of these software development methodologies and follow them diligently. Others follow their own loose interpretation of these.
Some startups are successful purely with the blind, gut-feel approach: one smart programmer writing code with no methodology, plus one talented UI designer likewise working intuitively without the detailed upfront work. Of course, many startups fail, or have severe growing pains (Twitter for example).
Methodology and process, whether in coding or in UI, helps reduce the risk and insure successful outcome. You can still fail, and many do. Also many teams (especially in older, stagnant organizations), follow these processes blindly, as empty rituals. Ceremony does not guarantee success.
In terms of social health (person to person), one can say that Cubans enjoy a better situation.
"Political health" is a debatable rathole, on the other hand.
The US has the highest documented incarceration rate in the world, and the largest prison population. (One in 31 adults in the US are under the supervision of the criminal justice system).
Ten years ago, would anyone have predicted that today we would be able to have online friendships with 1000 people whom we have never met (Facebook), know what they had for lunch (Twitter), see photos from their vacation (Flickr), know their exact location at this moment (Gowalla), what items they have just bought (Blippy), etc. None of this has anything to do with Google or how "creepy" Schmidt is. It seems to me a prescient forecast.
I am not one of the organizers, but have attended the past couple of events and had a great time, learned a lot, won some cool prizes.
If one knows python and is given a program in APL, then likely an insurmountable barrier has been reached. If you don't have the docs the describe the language, the one can try to infer the language by running experiments on variations of the stored program. However one needs access to the processor in order to run different experiments and get different results to be able understand how the programming language works.
We don't have CPU in a form that we can experiment with ("brains in a vat"). We have a 50Mb string in APL*2, a mostly unknown language for a mostly unknown processor.
The other part is that this is not a program but a meta-program -- meaning there are multiple levels of indirection. The DNA does not directly specify the brain, but instead specifies rules for components that would eventually arrive at an assembly (guided by a rich context of voluminous other inputs over an extended period of time) that constitutes a brain.
Instead, it appears that ontogeny must recapitulate phylogeny. The system must develop over time as a result of inputs (and the remembered collection of past inputs encoded in the DNA). It would be as if in order to build Twitter with Ruby on Rails, you first had to program a tax calculation application in Cobol on a 1950s mainframe.
I would include some more pragmatic algorithms, such as Frank Liang's hyphenation algorithm (PhD thesis at Stanford in 1983) http://www.tug.org/docs/liang/
Also De Casteljau's algorithm for Bezier curves from 1959 and deBoor's algorithm for B-splines.
The above are the ones that I have had to implement in the past as part of my work. There is a whole bunch of other algorithms in computer graphics that are equally (or more) important, which many of us rely on but fortunately don't have to implement.
Oh, another classic, pragmatic algorithm is John Carmack's implementation of BSP-based pseudo-3D rendering for the Doom game engine in 1993. See http://doom.wikia.com/wiki/Doom_rendering_engine
* Leaving out features is harder than adding features, because you have to judiciously decide which ones to leave out. A large bushel o' features can have many different subsets, and only some of these subsets are worthwhile.
char *d,*s;
for(d = s = z_terminated;
*s;
s += (char_to_remove== *s)?1:((*d++ = *s++),0))
{;}
*d = *s;
Note this is the "fun version". For production code, I would use more conventional constructs, rather than the comma-delimited embedded expression with side effects.http://www.fakesteve.net/2010/05/our-new-spin-on-the-foxconn...
One can turn off JPEGs in a browser and have the page load faster than a browser that loads images. But that does not merit writing an article entitled "JPEGs proven to ruin Android 2.2 performance".
That is, they seem similar to all the other apps on the App Store: simple, quickly written, drain battery life, crash often. Just like native Objective C apps :)
http://jessewarden.com/2010/04/steve-jobs-on-flash-correctin...