Pebble: A RocksDB Inspired Key-Value Store Written in Go - <AUTHOR> https://www.cockroachlabs.com/blog/pebble-rocksdb-kv-store/ <comment><USER2> So I understand the rationale for writing your own storage layer and think this is an awesome project, but there's something missing for me. One of the issues Peter brings up is they've come across a number of serious bugs in RocksDB. My question is, why would Pebble have less bugs. In fact, I would expect it to have significantly more bugs because Coackroach is the only company using Pebble.

They mention briefly how they are going about randomized crash testing:

> The random series of operations also includes a "restart" operation. When a > "restart" operation is encountered, any data that has been written to the OS > but not "synced" is discarded. Achieving this discard behavior was > relatively straightforward because all filesystem operations in Pebble are > performed through a filesystem interface. We merely had to add a new > implementation of this interface which buffered unsynced data and discarded > this buffered data when a "restart" occurred.

but this seems to only scratch the surface of possibilities that can come up with a crash. For example, it's possible the filesystem had synced some of the buffered data to disk, but not all of it. There's no guarantee about what buffered data was synced to disk. All you know is that some, all, or none of it made it to disk.

Bugs in this area are still regularly found in e.g. Postgres, so I'm having a hard time seeing how Coackroach is making sure Pebble doesn't have similar problems.

<comment> d--b Well, I think what they're saying is that they'd rather have bugs in code they've written than in code that is written by other people and in another language, and for which they don't control the patching pipeline.

If RocksDB had had no bugs, they wouldn't have needed to write Pebble.

<comment><USER3> That's an argument for them using it, but it's also basically arguing why nobody else should.

<comment><USER4> Avoiding cgo would be a selling point for anyone else using go. Presumably other pure go kv stores like bbolt/badger/goleveldb would also solve that problem, but I don't know enough about them to understand the trade-offs.

</comment></comment></comment></comment><comment><USER5> Was anyone else deeply saddened about three words into the headline, on realizing this wasn't a watch? (RIP)

<comment><USER6> I definitely was. I still use one now, more than 3 years after their business failure. I really wish someone would make something like the Pebble Time 2.

<comment> m-p-3 I have an Amazfit Bip, but the UI isn't as good as Pebble sadly.

There is some work in making a similar OS called RebbleOS[1] currently ongoing.

[1]: [https://github.com/pebble-dev/RebbleOS](https://github.com/pebble- dev/RebbleOS)

Hopefully it will be portable to other low-end smartwatches.

<comment><USER7> 3 years later and it looks like they are just at the trying to get hardware features accessible. At this rate all pebble devices will have died / been discarded before its able to show a notification on your wrist.

<comment> m-p-3 Hopefully the OS could run on something newer than a Pebble, like the PineTime.

</comment></comment></comment></comment></comment><comment><USER8> I've run into serious house burning down problems with myrocks too. Simple recipe to crash MySQL in a way that is unrecoverable: do ALTER TABLE on a big table and it runs out of RAM, crashes, and refuses to restart, ever.

Googling and people have been reporting the error on restarting several times on lists and things. What help is it to report to Maria dB or something? But do FB notice? Seems not.

Here's hoping someone at FB browses HN...

I don't get why FB don't have some fuzzing and chaos monkey stress test to find easy stability bugs :(

<comment><USER9> I am one of the creators of MyRocks at FB. We have a few common MySQL features/operations we don't use at FB. Notably:

1) Schema Changes by DDL (e.g. ALTER TABLE, CREATE INDEX)

2) Recovering primary instances without failover

We use our own open source tool OnlineSchemaChange to do schema changes (details: [https://github.com/facebook/mysql-5.6/wiki/Schema- Changes](https://github.com/facebook/mysql-5.6/wiki/Schema-Changes)), which is heavily optimized for MyRocks use cases like utilizing bulk loading for both primary and secondary keys. ALTER TABLE / CREATE INDEX support in MyRocks is limited and suboptimal -- it does not support Online/Instant DDL (so blocking writes to the same table during ALTER), and enters non bulk loading path and trying to load the entire table in one transaction -- which may hit row lock count limit or out of memory. We have plans to improve regular DDL paths in MyRocks in MySQL 8.0, including supporting atomic, online and instant schema changes.

I am also realizing that a lot of external MySQL users still don't have auto failover and try to recover primary instances if they go down. This means single instance availability and recoverability is much more important for them. We set rocksdb_wal_recovery_mode=1 (kAbsoluteConsistency) by default in MyRocks, which actually degraded recoverability (higher chances to refuse to start even if it can be recovered from binlog). We're changing defaults to 2 (kPointInTimeRecovery) so that it can be more robust without relying on replicas for recovery.

It would have been a really bad experience when hitting OOM by 1) then failing to restart because of 2). We have relations with MariaDB and Percona, and will make default behavior better for users.

<comment><USER8> Thanks for explaining this! Really appreciate that you joined in here.

We've been test running our real-time dwh etls on myrocks (and postgres and timescale and even innodb) to comppare with our previous workhorse, tokudb. We've chewed through cpu years iterating over every switch and setting we can think of, to find optimum config for our workloads.

Like for example we've found that myrocks really slows down if you do a SELECT ... WHERE id IN (....) from too long a list of ids.

So we have lots of thoughts and data points on things my team have found easy, hard, painful, better etc. I'd be happy to share with you folks.

(FWIW we are moving from tokudb to myrocks now, with tweaks to how we do data retention and gdpr depersonalization and things)

Ping me on willvarfar at google's freemail domain if that's useful!

</comment></comment></comment><comment><USER10> How does this compare to Badger[0], another similar in nature key-value store in Go?

What were the trade-offs which made it necessary to create something new instead of adapting what exists?

[0]: [https://github.com/dgraph-io/badger](https://github.com/dgraph- io/badger)

<comment><USER11> Badger is written by mad people from my point of view, who disabled issues on github, from my understanding declared it as "done" and "bug free", and any issue tracking is now done on the forum where the threads roll off to the void with no further trace.

<comment><USER12> Wao. You describe us as "mad people" because we choose to not use GitHub issues? Is that all it takes to dismiss an open-source software and badmouth its authors? You have gone really low on this.

All the issues have been ported over to Discourse. And no one has declared Badger, bug-free. I don't know where you got that idea.

</comment></comment></comment><comment><USER13> Concurrency and multithreading are a major focus of both Go and RocksDB. This introduction makes little mention of those areas, and I'm curious if there's any more to be said on this. The article lists several features being reimplemented, including:

> Basic operations: Set, Get, Merge, Delete, Single Delete, Range Delete

It makes no mention of RocksDB's MultiGet/MultiRead -- is CockroachDB/Pebble limited to query-at-a-time per thread? I'm genuinely curious how this all translates into Go's M:N coroutine model currently and moving forward with Pebble.

<comment><USER14> Pebble does not currently implement MultiGet as CockroachDB did not use RocksDB's MultiGet operation. CockroachDB can use multiple nodes to process a query by decomposing SQL queries along data boundaries and shipping the query parts to be executed next to the data. CockroachDB can't directly use MultiGet because that API was not compatible with how CockroachDB reads keys.

RocksDB MultiGet is interesting. Parallelism is achieved by using new IO interfaces (io_uring), not by using threads. That approach seems right to me. See [https://github.com/facebook/rocksdb/wiki/MultiGet- Performanc...](https://github.com/facebook/rocksdb/wiki/MultiGet-Performance). My understanding is that io_uring support is still a work in progress. We experimented at one point with using goroutines in Pebble to parallelize lookups, but doing so was strictly worse for performance. Experimenting with io_uring is something we'd like to do.

<comment><USER13> Indeed the conceptual fork point mentioned is RocksDB 6.2.1 which came before those features. The problem with RocksDB is that one thread only makes one request at a time. I should've phrased my question more succinctly: Is Pebble/CockroachDB capable of saturating the backplane with requests in parallel? Does it multiplex a single query by dispatching smaller requests to a thread-pool?

<comment><USER14> > Is Pebble/CockroachDB capable of saturating the backplane with requests in > parallel?

Yes.

> Does it multiplex a single query by dispatching smaller requests to a > thread-pool?

Yes, though it depends on the query. Trivial queries (i.e. single-row lookups) are executed serially as that is the fastest way to execute them. Complex queries are decomposed along data boundaries and the query parts are executed in parallel next to where the data is located.

</comment></comment></comment></comment><comment><USER15> Really enjoyed reading this, thanks.

Would be interested to see if the garbage collector has presented any problems when running in production

<comment><USER16> There's some notes on that here: [https://github.com/cockroachdb/pebble/blob/c39589c8cb36d95df...](https://github.com/cockroachdb/pebble/blob/c39589c8cb36d95df29b37e85ec2b4c3e20273dc/docs/memory.md)

<comment><USER14> The TLDR is that the GC did cause problems so we had to avoid it for the block cache. Luckily we were able to do so without exposing the complexity in the API. Not for the faint of heart. Don't try this at home kids.

<comment><USER17> Any reason why the block cache needs to be 10s of GB in size? Cassandra, for example, usually has a rather small key cache on heap, and then just relies on the kernel page cache. I don't have experience with cockroach, it looks like the block cache is similar to cassandra row cache, which can be configured to be on heap or off heap, but usually not beneficial to enable.

</comment></comment></comment></comment><comment><USER18> Not to be confused with Let's Encrypt's ACME client testing CA server project (the "scaled down" version of Boulder), Pebble: [https://github.com/letsencrypt/pebble](https://github.com/letsencrypt/pebble)

</comment><comment><USER19> The name is a little close to this existing LevelDB fork, maybe consider a different name? [https://github.com/utsaslab/pebblesdb](https://github.com/utsaslab/pebblesdb)

<comment><USER14> Damned for using a unique name (CockroachDB), and damned for using an innocuous one.

PS PebblesDB was a research project and is dead as far as I know.

</comment></comment><comment> 2020-09-15-tmp Thought it would be worth mentioning Sled as an alternative to RocksDB for the Rust crowd:

[https://github.com/spacejam/sled](https://github.com/spacejam/sled)

<comment><USER20> Worth mentioning that there is [https://crates.io/crates/rocksdb](https://crates.io/crates/rocksdb) which Rust bindings to RocksDB.

</comment></comment><comment><USER21> I hope you folks know what you are doing. If your screw it up you will have a lot of angry former customers, us including.

Maybe less aggressive rollout strategy?

</comment><comment><USER22> Few question comes into mind reading this:

\- what is the plan to tackle Go's GC?

It seems to me that above a certain scale people run into GC problems with Go.[1]

\- have they considered WickedDB?[2]

It appears to be a good candidate for their need.

[https://github.com/Fullstop000/wickdb](https://github.com/Fullstop000/wickdb)

[https://blog.discord.com/why-discord-is-switching-from-go- to...](https://blog.discord.com/why-discord-is-switching-from-go-to- rust-a190bbca2b1f)

</comment><comment><USER23> This makes total sense for Cockroach Labs, and I trust their engineering ability to get it right.

</comment><comment><USER24> Why would someone remove a non-GC database engine with a database engine with GC?

Has Go evolved better low-GC features? As I understand Go GC vs JVM GC, Go avoids major GC by simply pushing it to the future and consuming memory more readily.

But a database is a long-running program, so you have to pay the piper eventually.

<comment><USER25> I'd also be curious why they didn't go with something like Foundation DB either.

<comment><USER14> Pebble and FoundationDB are apples and oranges. Pebble is per-node KV storage engine. FoundationDB is a distributed multi-modal database. Internally, FoundationDB uses a library like Pebble for the per-node data storage. I think at one point it used SQLite. I'm not up to date on what it currently use. I seem to recall FoundationDB was writing their own btree-based node-level storage engine to replace the usage of SQLite.

The equivalent of FoundationDB is present inside of CockroachDB: a distributed, replicated, transactional, KV layer. This is where a big chunk of CockroachDB value resides. This is where our use of Raft resides. Pebble lies underneath this.

<comment><USER26> The current production storage engine is an old-ish version of the SQLite btree. A new btree engine is being written now and is available but I don't know if it is being used in production anywhere.

RocksDB is shipping soon thanks to some work by members of the community.

</comment></comment></comment></comment><comment><USER27> hm, no word on performance comparison with badger, bolt, moss, pogreb, pudge...

<comment><USER28> Solving different problems, huh? but still similar.

</comment></comment><comment><USER29> > written in go

Why does the implementation language matter for non-library tool? Is that its only selling point?

<comment><USER30> It's not a network-connected key value store so you need to interact with it from Go. That makes a pretty big difference.

</comment></comment><comment><USER31> As a consumer, why would I want something like this written in Go vs. Rust?

Is it just that Rust is really good with developer relations? Because it feels like to me that all new foundational technology is safer and faster in a language like Rust, and things written in Go should be higher up the food chain.

<comment><USER31> I really don't understand the downvotes. I'm not experienced with either language - and this has nothing to do with a flame war.

The question, unstated and unopinionated AND intellectually honest was: does language impact community adoption - and if so, what are the drivers behind it.

If I were going to write a foundational technology, I probably wouldn't write it in NodeJS, not that it couldn't be done, but because I'd be concerned mainstream adoption might suffer. For example, I'd expect a hypothetical JsSql (a SQL engine written in JavaScript - assuming this doesn't already exist) would achieve lower general adoption than writing it in C++.

Get it?

<comment><USER32> I don't think Cockroach cares about adoption. This is not meant to be a generally useful product in itself outside of their database. So the language was chosen mainly based on their familiarity with Go and its ability to integrate with their existing codebase.

I think their omission of major features such as transactions is more likely to limit adoption than the language choice, so language choice is kind of irrelevant from that perspective.

<comment><USER4> The integration with their existing codebase might benefit from an explanation. In Go, calls to C libraries are done using a compiler feature called cgo, and there's a performance penalty that the cockroachdb team measured at 171ns per call, plus you sometimes have to copy additional data around for memory safety[0]. So far as I know, there's no way to avoid this penalty that doesn't involve building a tool that does the same thing as cgo.

In this case, given that they already have a database written in Go, writing the backing kv store library in Go has a clear performance benefit of 171ns every operation. This is above and beyond just familiarity and easy integration, although those are also important.

[0] [https://www.cockroachlabs.com/blog/the-cost-and- complexity-o...](https://www.cockroachlabs.com/blog/the-cost-and-complexity- of-cgo/)</comment></comment></comment></comment>


US newspaper circulation drops 8.74% during last six months - <AUTHOR> http://www.physorg.com/news191505381.html

<comment><USER2> I would be very frightened if my established business was declining by these figures.

If I were a journalist, I'd be working out ways to make money somewhere else, before I get fired. If I were a newspaper owner, I'd be trying to sell it as a going concern and take my money. If I were a shareholder in a paper, I would be selling the lot. If I were an advertiser, I'd be pushing very hard to get steep discounts on print advertising.

It's amazing how swiftly big business can collapse when the fundamentals are eroded by new technology. Just think 1 hour photo shops, and Kodak's film business.

<comment><USER3> What's new about this technology, or swift about this decline? The web has been around since I was a kid. I still don't even know what's changed.</comment></comment>


In Defense of Standards, Ethics, and Honest Financial Reporting at HP - <AUTHOR> http://bhorowitz.com/2010/10/08/in-defense-of-standards-ethics-and-honest-financial-reporting-at-hewlett-packard/ <comment><USER2> Whether one agrees with the author or not (I do), this is a well-articulated defense of the need for a strong ethical standard in corporate America.

How does one begin in sorting through it all?

There are, on the one hand, those who see the "corporation" as an inherently evil abstraction, at least in its mega form as represented by publicly traded companies such as HP. This sort of view is primarily ideological and, argue as one might with one who is an ardent proponent of it, you will not dislodge that person from the broad idea that corporations are an inherently evil mechanism for conducting business and that those who manage corporations are therefore inherently malevolent in their motives. Just mention the telcos, or Microsoft, or any one of a number of large, institutional companies and the word "evil" rapidly comes to the forefront of the discussion. If one takes such a view, what room is left for high ethical standards within such a framework? If the very vehicle is inherently corrupting, then ethical breaches in themselves should be treated as mere by-the-way phenomena, as inherently corrupt by-products of enterprises that are already corrupt top-to-bottom. This to me is not a realistic view of what a corporation is. A corporation is a collection of people whose policies are determined and executed by human beings. The entity, then, will be a reflection of those who control and manage it. Having worked with thousands of such entities over the years in their smaller forms (early-stage startups), there is no doubt in my mind that there is nothing inherently corrupting about the corporate format. It is merely a legal body for organizing human activity. It will be good or bad depending on who organizes and administers it. Yes, there is a de-personalizing element in public companies, where there are primarily institutional owners as well as thousands or tens of thousands of faceless shareholders whom no one in management even knows. But even public companies have a culture and this culture sets the tone for their boards of directors and the board in turn can set the tone for the company. Ergo, the author is right - ethical standards _do_ matter in public companies and setting a high standard does absolutely make a difference.

On the other hand, there are business pragmatists who regard the corporation as a pure money-making machine, as noted by the author. For them, the end can justify the means in many cases. As long as it promotes shareholder value, and as long as it does not cross some overt criminal line or is not legally egregious, it is acceptable to look the other way in furtherance of the broader profit goals of the company. The author picks this view apart fairly nicely by showing that human beings who adopt such an approach can readily find themselves on a slippery slope to ethical (and legal) perdition.

I began my career at a large law firm working on a case involving a NYSE company whose senior management decided at some point to "smooth" their earnings results essentially by overvaluing the inventory on hand in its various warehouses scattered throughout the nation. That was in an era when such inventory (in this case, copier machines) carried a high value and was probably the major asset class of the entity. The company had been a growth darling of the stock market and had seen consistent and impressive quarter-to- quarter increases in both revenues and profits. These increases were initially very real. The company did not start out as a fraud. It was a bona fide success, and a huge one at that. After a time, however, as results came in a bit below expectations, the senior management started to fudge the numbers. Nothing too extreme at the start. "Let's just treat some of that obsolescent stock as if it still have value - it will only affect results marginally but will be critical for the stock performance." After a time, however, that management became intoxicated with the company's stock performance and this is turn caused the members of that management to begin doing more extreme things, one step at a time. After a few years of this, they had wound up essentially fabricating the existence of large volumes of inventory in its warehouses that were no more than fraudulent paper entries and were not backed by real goods. The initial internal justification, kept within a very tight-knit circle, was that this was necessary to preserve the value of the stock while the company simply rode through a temporary dip in performance. It would be "made up" later. To achieve its goals, though, this management team had to involve progressively more and more people, such as regional sales managers. They would give them bonuses to reward "performance" in their regions. The pattern was the same with the regional guys. First, just do a small thing; later, as things got more desperate, they too were asked to commit over fraud. This all went on for over half a decade and, only after it had reached an extreme did it all collapse. The result: bankruptcy, disgrace, criminal convictions, and shareholders deprived of their valuable savings, with some left destitute. Given that such things can and do happen, is there room for saying that it is acceptable for those in the highest seats of corporate power to commit breaches involving moral turpitude and to simply ignore this?

Yes, it _is_ possible to be prudish or otherwise wrongly motivated on these sorts of issues. I have seen startup founders hounded out of their positions and have to forfeit large amounts of valuable stock simply because they left themselves vulnerable to be "set up" with sexual harassment claims, only to have a board motivated by ulterior motives use this as a pretext to take them out. In such cases, there is room for abuse on all sides, and in an imperfect world it will not always be possible to tell who is motivated by what and whether ethical standards are in fact being upheld or whether the board actions are mere pretexts for darker goals.

That said, it is vital that those who run corporations do, to the extent practicable in large companies, act in good faith to strive to uphold standards in every way they can. Will they be able to do this perfectly in a large organization? Not likely. Should they try? Absolutely. In public companies in particular, they hold the trust of large numbers of shareholders and, if they try to cover for the lapses of a CEO who has shown a lack of honesty on non-trivial matters, they will be just as culpable as the immediate wrongdoer. Moreover, they will permit a corporate culture to develop that is indeed corrosive and that could easily lead to serious wrongs committed under their watch.

This is not merely an issue of legal liability. Yes, a board that knowingly countenances corruption may be legally culpable. But that is not the main point and the author focuses on this nicely. It is an issue of _integrity_. "Integrity" comes from a Latin root meaning "whole" (we get the word "integer" from that same root). The idea of wholeness in ethics is that what is reflected in a part will reflect the entirety of what is there. That is why it is always dangerous to look the other way when wrongdoing occurs among those holding positions of authority. We can excuse the lapse but what does this reveal about the person doing it. If he lapses here, will he not lapse elsewhere? If it is a peccadillo, maybe that is one thing. But if it does involve a serious moral lapse, that is quite another, especially if willfully done. Does such a person deserve continued trust? From a board perspective, the answer should be no. Not for legal reasons but for ethical. Whatever corporations are, they are better for upholding the highest standards possible insofar as the nature of the institution permits.

One final illustration to emphasize why legal liability is not alone enough to check wrongdoing and why an ethical standard ought to prevail: What about a startup controlled by investors on a board following several rounds of funding. What happens when, as the bubble is bursting, they vote to use company money to "acquire" other of their portfolio companies that do not in fact warrant being acquired, thereby bleeding the company on whose board they sit for the benefit of their separately owned private investment fund. The board votes are all taken very legally (at least in form), with each investor representative abstaining in the instances where his own fund is concerned but otherwise voting for the other guy's payout, with the net result that the company is effectively bled out for the benefit of the various investors sitting on that board and all at the expense of that company's shareholders (all done under the supervision of a prominent law firm representative). Is this legal? Who knows, but it is very hard to do anything about it legally. Is it ethical? Absolutely not. Yet, this is precisely the sort of thing that happens when ethics are disdained in a business context - indeed, in such cases, the person who refers to ethics is typically regarded as an unsophisticated rube. This is where such things lead when ethics are discarded in favor of pure money goals, as (by the way) often happened during the bubble.

HP is no model company in this respect. I have seen this company do some pretty questionable things over the years. Yet the HP cultural carryover from "Bill and Dave" days _is_ something to be admired and, insofar as that is reflected in the points made by the author, is worthy of being emulated.

This author's views probably represent a minority position in today's business environment but I for one commend them. Integrity _does_ matter over time and it will show itself one way or the other in how any management plays itself out.

<comment><USER3> I think the difficulty is not in whether most people or, more importantly, most employees and shareholders agree that the ethical standards of a corporation should be applied to all. It's in the notion that Mark Hurd was fired for no reason beyond his ethical indiscretions. The article rather questionably refers to him as a 'popular CEO' (with whom?). There's repeated mention of 'Playboy model'. Of course it's lurid. Did Mark Hurd's behaviour harm shareholders more than, say, Apple (which still retains its CEO of the time) backdating stock option grants?

</comment></comment><comment><USER4> "In closing, I point out the impressive courage of the HP board of directors to ignore popular opinion and do the right thing. It is not an easy thing to fire a popular, highly successful CEO."

Oh, my. This is a crock of you-know-what. The HP board has their head stuck up their collective asses and have been holding that position for years.

Carly was a joke, Hurd was so hated at his previous company he needed body guards to get to his car with the slashed tires in the parking lot, the HP way is dead and gone. And Hurd was a huge part of that. Make the current quarter look good, HP way and employees be damned.

"Highly popular CEO" Are you fucking kidding me? 66% of HP employees would take a job elsewhere for no bump in salary or title. Until Hurd that number had never been higher that 10% (that's my memory, maybe Carly pushed it up as well).

Popular? Yeah, maybe, with his cronies that he pays while watching the profit sharing and other employee benefits be tossed into the crapper.

I'm not a current or former HP employee, though I did interview for a position at HP Labs about 15 years ago and have friends there. What's happened to HP is a crying shame. HP used to be a place that you envied. Now it is a place that makes you cringe.

"Impressive courage". Gimme a break. If the HP board had courage they would have given the CEO job to VJ or someone like him. Someone from the inside, with a clue, that still cared about the HP way and the people that work for HP.

I'm ranting because this post got me pissed off. So you might wonder if I have a clue. I'd suggest you go read Chuck's blog here:

<http://hpphenom.blogspot.com>

He was there for a decade or two. Wrote a book about it.

And maybe dig out that calculator that the salesman threw across the room as hard as he could at the wall and picked it up and showed you that it worked. Remember those? Just one little example of how much HP cared about you, the customer, once upon a time. Does anyone think they care now?

<comment><USER5> I dunno much about the HP board or the HP culture. But having spoken personally with Ben Horowitz about creating company culture, and after working at Ning, which is a heavily Horowitz + Andreeson-based culture, for nearly a year, I can say this: he's sincere and the real deal when he says this stuff. And as an employee, it totally works for me. I feel taken care of, like the company has a greater mission than just making money, and like they care about doing the right thing.

While I'm sure HP has many other corporate forces at play in it's decisions, and I am but a lowly code monkey, if what Ben Horowitz outlines in the post was at least a partial motivation for what they did, then I think there's at least a glimmer of hope that things might get better there.

<comment><USER4> He may be great, I don't know him. HP I know better. Their board is beyond confused.

Read this, for example:

<http://www.nytimes.com/2010/10/09/business/09nocera.html>

</comment></comment></comment><comment><USER6> I do think that the best engineering ethos that I admire is that engineers are not just motivated by a payday but to build something useful for everyone. HP at its best time represented that. I do like that his quote at the end:

"Companies should not merely be thought of as money generating machines. Business can represent human society at its best. A business is a group of people working together to deliver value to the world and improve people's lives. When done ethically, business quite literally changes the world for the better. However, if the dark side of human motivation is not mitigated with standards and ethics, business can destroy."

</comment><comment><USER7> HP invents. Priceless:

"She was hired by Hewlett-Packard and paid up to $5,000 per meeting to meet with Fortune 50 CEOs. ... This was the Hewlett-Packard Corporation paying a softcore porn movie star with no relevant work experience more than it pays Harvard graduates with 20 years of industry experience. "

Different job descriptions - different pay.

</comment><comment><USER8> This article altered my perspective of what happened at HP. Firing Hurd, who IMHO was a great CEO up until his lapse in judgement, was costly and did take a lot of courage. I am now inclined to agree with the decision of HP's Board.</comment>


Microsoft sells 1.6 million Windows Phone 7 devices in Q1 - <AUTHOR> http://www.zdnet.com/blog/btl/microsoft-sells-16-million-windows-phone-7-devices-in-q1/49022

<comment><USER2> Today I asked a salesman in a big high street phone store in the UK if they were selling many Windows Phone 7 phones:

"We sell a few a day," he said. "People don't come in and ask to buy one like they do with the iPhone, of course, but a handful of folks walk out with one anyway."

I asked him why he thought they went for a WP7 phone instead of an Android or iOS device:

"Honestly, a lot of them are just looking for a phone to make phone calls; they don't seem to care about the operating system. I guess you could say that they buy them by accident."

<comment><USER3> _I asked him why he thought they went for a WP7 phone instead of an Android or iOS device:

"Honestly, a lot of them are just looking for a phone to make phone calls; they don't seem to care about the operating system. I guess you could say that they buy them by accident."_

That may be the case in the UK, but in the US it's not very likely. Most are tied to dataplans (at least to get the subsidized cost). They'd be steered to feature phones if they just wanted phone calls, except by possibly the least ethical salespeople.

I suspect its probably more that they don't keep up with this stuff on daily basis like us. Android, iPhone, Windows -- to them Windows is as popular as those other two brands. And then after playing with the phone some of these people walk out with it. Others Android, others iPhone.

<comment><USER4> US salespeople aren't steering anyone to feature phones -- they are directed to pitch everything a smartphone can do to sell those lucrative data plans. This does not make them unethical, that's how sales works in every industry.

<comment><USER5> See, enlightened self-interest works against that principle. If you've got a self-interest time horizon longer than 10 minutes, you'll see that it makes more sense to sell the customer something he or she won't regret buying any time soon, or you won't get repeat business and word of mouth. There may be a little bit of oversell, but with the calculated aim of the customer growing into the oversold features.

If, on the other hand, you sell mainly to passing traffic and/or tourists, or from a temporary stall, then you genuinely don't have an incentive to hold back.

</comment></comment></comment></comment><comment><USER6> Reading this, it appears that they sold more Windows Mobile (6.x) devices than Windows Phone 7 devices.

3.6M total sold in Q1, 1.6M of which was WP7.

<comment><USER7> This shows actually that people buys the unit and not the Operating System. They'll walk to a shop, try a HTC phone, like it and buy it.

<comment><USER4> I think some buy the unit after playing with a number of them, some buy brands, some buy the platform/OS (which overlaps brand for half the market) and some just buy whatever the salesguy pushes on them.

</comment></comment></comment><comment><USER8> So, does that mean more Android phones are sold in just 5 days? (Edited grammar.)

<comment><USER9> > so android phones sell more in just 5 days?

No, Android _devices_ _activate_ more in 5 days. Still not clear to me what "activation" means. These two measures aren't directly comparable: [http://www.simplemobilereview.com/what-does-apple-mean-by- de...](http://www.simplemobilereview.com/what-does-apple-mean-by-device- activation/)

That said, Microsoft still selling more WinMo devices than WP7 is a telling sign of their poor mobile strategy.

<comment><USER3> _That said, Microsoft still selling more WinMo devices than WP7 is a telling sign of their poor mobile strategy._

I'm unclear how they're related? Windows Mobile is targeted at the enterprise while WP7 isn't. The relative performance doesn't really say much.

WP7's numbers vs Android/iOS are telling of their mobile strategy, but not their numbers vs WM6.x.

</comment></comment></comment><comment><USER10> I think it will be more interesting/telling to see the numbers that Microsoft post after Nokia begins to ship phones with WP7 on them. While WP7 is not a popular choice right now, the Nokia partnership definitely makes it interesting to watch. I am especially curious to see how Nokia leverages the WP7 platform in countries outside of the US because of Nokia's global market share and marketing.

<comment><USER11> I'm interested too. Nokia hasn't been able to sell many Maemo phones, I'm not sure how having Windows Phone 7 would really improve that. They seem really good at selling cheap phones, but not smartphones. Maybe with Microsoft's marketing muscle they'll do better.

</comment></comment><comment><USER12> It says "to end users." Do they mean actual buyers in the store forking over cash? It looks to me like Gartner may be estimating this number given their comments about estimating retail inventory a few paragraphs down.

I'd really like to read the original, I am not sure how solid this number is.

<comment><USER13> Odds are the two numbers are highly correlated - consumer electronics depreciate _fast_ and nobody likes to keep inventory around longer than absolutely necessary.

Unless MS is pulling some _really_ sketchy shenanigans stuffing the channels full of WP7 phones that won't sell (that retailers will push back hard against), "shipping to stores" is a not-terrible approximation of "sold to end users".

</comment></comment><comment><USER14> Android activates 400,000 phones PER DAY! beating Microsofts numbers for the quarter in just 4 days.

</comment><comment><USER15> The sales of WP7 phones seem to be declining.

<comment><USER3> You usually need at least two data points to show a decline. AFAIK these are the first numbers we've seen of actual sales to consumers.</comment></comment>


Show HN: L2: An elegant untyped, unsafe, unhygienic programming language - <AUTHOR> https://github.com/murisi/L2 <comment><AUTHOR> L2 is an experimental programming language that maps efficiently to machine code (like C). I think it is interesting because I have not seen 1) control flow primitives that are like Scheme's continuations but that are also efficient 2) L2's variant of s-expressions that do not need a symbol or string data type 3) a macro system that is equivalent to but operates differently from Common Lisp's

<comment><USER2> As far as I know, scheme's continuations _are_ efficient. That's kind of the basis of RABBIT, Orbit, and a chunk of Appel's work, isn't it?

(See also: [http://lambda-the- ultimate.org/node/2406#comment-36369](http://lambda-the- ultimate.org/node/2406#comment-36369))

<comment><USER3> As far as I can tell, L2's continuations look very similar to the Cheney on the M.T.A. [0] approach to continuations.

[0] [http://home.pipeline.com/~hbaker1/CheneyMTA.html](http://home.pipeline.com/~hbaker1/CheneyMTA.html)

<comment><AUTHOR> Thanks for the link. I am not sure if I see the similarity. L2 neither uses the heap nor garbage collection nor are its programs converted into continuation-passing-style. Am I missing something?

</comment></comment></comment></comment><comment><USER4> Is there a runtime at all? It seems to me there isn't.

Would it be unfair to say this is a Lispy evolution of the oldschool macro assembler?

<comment><AUTHOR> I'm not sure of the exact definition of a runtime... The best I can say is that the instructions emitted by the compiler correspond directly to the commands in the source file.

You are certainly correct about the Lispyness. I've not yet had the opportunity to use a macro assembler, so I cannot say how similar L2 is to it. To aid your comparison, I think L2 is also quite similar to B language.

</comment></comment><comment><USER5> This is why I read HN.

</comment><comment><USER6> So... Forth, basically. ;)

<comment><AUTHOR> Though you jest, Forth did influence certain decisions in L2's design. In particular, by using continuations you can make an L2 function temporarily leave a variable amount of data at the top of the stack in order for the caller or some other function to use.

</comment></comment><comment><USER7> I get all the other adjectives but where is the elegance?

<comment><USER8>
      (function frst (l) [fst [rst [' l]]])
      (function frfst (l) [fst [rst [fst [' l]]]])
      (function frrst (l) [fst [rst [rst [' l]]]])
      (function frrrst (l) [fst [rst [rst [rst [' l]]]]])
      (function rfst (l) [rst [fst [' l]]])
      (function ffst (l) [fst [fst [' l]]])
      (function llst (a b c) [lst [' a] [lst [' b] [' c]]])
      (function lllst (a b c d) [lst [' a] [lst [' b] [lst [' c] [' d]]]])
      (function llllst (a b c d e) [lst [' a] [lst [' b] [lst [' c] [lst [' d] [' e]]]]])
      (function llllllst (a b c d e f g) [lst [' a] [lst [' b] [lst [' c] [lst [' d] [lst [' e] [lst [' f] [' g]]]]]]])

Don't you see? Elegant!

<comment><USER9> Indeed.

</comment></comment></comment><comment><USER10> Is there an abbreviation for "function"?</comment>


Ask HN: Do you like fancy flash restaurant websites? - <AUTHOR>

Does anyone out there like fancy flash restaurants with sound and pictures that almost make it seem like you are in the restaurant?<p>Or is it painful for you and you would rather have a boring website with their info? <comment><USER2> It is painful and pointless.

All you need is a photo of the outside of the restaurant so I know what I'm looking for, maybe a photo of the inside so I get an idea of the general ambience, the menu (or, if it changes regularly, a representative sample) so I know what I'm going to eat, a map so I know where I've got to go, and contact details so I know who I've got to call.

You really don't need any fancy crap that gets in the way.

</comment><comment><USER3> It is painful.

Why would you consider non-flash sites "boring?"

What I want to know when I go to a restaurant site:

1) Hours. 2) Location with google maps link. 3) Menu with prices.

When I get to the menu I may want to see a pic of the food, nutritional info, etc.

<comment><USER4> And please don't make me download a pdf to see the menu.

</comment></comment><comment><USER5> Websites built entirely in Flash are horrible in most cases.

You also cut out a massive section of mobile users that can't use your site when on the go.

Check here for some tips specific to a restaurant site: <http://www.better- restaurant-websites.com/>

<comment><USER6> Mobile compatibility can be extremely important depending on the type of restaurant and where it's located. On a website I did for a restaurant located in a tourist destination, mobile and tablet devices account for about 55% of all visits.

</comment></comment><comment><USER7> It will not be good for your SEO. With a normal website every asset like images, video, text, links and even audio can be used for SEO promotion.

</comment><comment><USER8> I think only devs think negatively about the sites, as users are routinely impressed by bells and whistles (as pointless as they are). This is not flashes fault -- think of all the useless motion we are seeing in html5 pages. Its just a matter of non-techs seeing a fancy moving thing and wanting to have it.

Oftentimes usability can be terrible, but it is up to us as service/product providers to inform the client, and not force our bias on their business processes.

</comment><comment><USER9> 1\. Flash sites for restaurants don't really work anymore (conversion rate wise).

2\. Use javascript, and or .mp4 video if you need to have any dynamic content.

</comment><comment><AUTHOR> I actually started a Google survey with consumers and you can match the sentiments of the general public vs the hn users

[https://www.google.com/insights/consumersurveys/view?survey=...](https://www.google.com/insights/consumersurveys/view?survey=37f4hofdhid2g&question=1&filter=&rw=1)

</comment><comment><USER10> I hate fancy flash websites. Watch manufacturers are also guilty of this.

I just want to know when they're open; where they are; a number for me to make reservations; and the menu.

</comment><comment><USER11> Your Yelp profile is your restaurant's web site.

</comment><comment><USER12> Just remember the audience of HN is a not representative of the general audience those websites are probably built for

</comment><comment><USER13> No.

I prefer simple clean websites which make it easy for me to accomplish my goals.

</comment><comment><USER14> No. I'd like the menu, the hours, the directions, and a way to make reservations.

</comment><comment><USER15> I feel like the question is so stacked as to be misleading, and it reminds me of the old Mitch Hedberg joke, "Have you ever tried sugar, or PCP?"

There's a very large middle ground between flash and non-flash sites, in the midst of which are many non-boring options.

My preferred sites are not boring, and are also not flash, but that also do a good job of clearly illustrating what their info actually is.

The way you phrased the question makes me wonder if it wasn't actually asked 15 years ago and somehow got stuck in a queue.

<comment><AUTHOR> My apologies. I'll rephrase the question slightly.

<comment><AUTHOR> Whoops. I can't edit it. But thanks for the note.</comment></comment></comment>


Writing fiction with GURPS - <AUTHOR> http://michaelmaurer.net/archives/2009/05/09/writing_fiction_with_gurps/index.html

<comment><USER2> Something that people might not realised, but the Fallout series of games was originally based on GURPS, although Steve Jackson and Interplay fell out so it was never used in the end.

Here is a usenet post from 1997 detailing it: [http://groups.google.com/group/comp.sys.ibm.pc.games.rpg/msg...](http://groups.google.com/group/comp.sys.ibm.pc.games.rpg/msg/e29c8f44ce9f4fa1?pli=1)</comment>


Free Software network services and web applications which can be hosted locally - <AUTHOR> https://github.com/Kickball/awesome-selfhosted <comment><USER2> I highly recommend Nextcloud. It started as a FOSS Dropbox clone, but they have since implemented easily installable server plugins (which they call "apps") that allow your personal Nextcloud server to fill the role of many other SaaS products.

[https://apps.nextcloud.com/](https://apps.nextcloud.com/)

<comment><USER3> PHP, slooow as shit. I don't know how many RAM it needs to work properly.

<comment><USER4> It would be interesting to learn the technical reasons for choosing PHP to implement a Dropbox clone.

<comment><USER5> I'd guess easy hostability would be the main one, not anything technical. More hosting companies support PHP than any other language, and using it means people can set up their own file sharing system without needing to know much about server management.

That's arguably the reason most popular CMS systems run PHP too; because they'd rather have something that's easier to setup and can be run nearly anywhere than something that requires knowing how to use a terminal or something.

<comment><USER6> I'd suppose it likely was an initial preference of a developer who wrote a quick prototype.

I think shared hosting with php is mostly dead / makes no sense in a world of $5 VPS hosting.

Anyone caring for simplicity of installation would ship a Docker container anyway (for last 5 years or so).

<comment><USER5> I don't think shared hosting is dead. It's less popular among startups and tech savvy companies than it used too be, but there are still tons of companies and individuals who use it. Companies like GoDaddy and EIG still make a ton of money (even if many would rather they didn't), and many agencies specialising in WordPress/Magento/Drupal/whatever still get a lot of business.

</comment></comment></comment></comment></comment></comment><comment><USER7> For me, the functionality is only 20% if the value, people spending time making sure those services are running well 24 hours a day all year round is 80% of the value.

Just make that you have backups of your data, it's one thing to be deprived of services for x days, but a completely different thing to lose data forever.

</comment><comment><USER8> Now which of these are easy to run locally?

I'm starting to work with minikube at work and I feel like that would be a fun solution for installation (well, minikube + helm).

Another solution that seemed cool but sort of puttered out was [https://sandstorm.io](https://sandstorm.io)

<comment><USER9> Sandstorm requires that the web apps are packaged specifically for it. The process is not hard, but you have to decide to do it. Sadly, most apps that have been packaged have not been kept up to date.

That said, it's a great platform. I have customers using it with some marketplace apps and some custom apps. My only wish is that more people used and developed for it.

<comment><USER10> I had a sandstorm instance for a while, but stopped using it due to the dwindling community. There are some alternatives now, but the best part about Sandstorm in particular was the small atomic backups for each Web app you had. I haven't seen other system try to abstract above the applications like that...

<comment><USER11> Sandstorm was really ahead of its time. This is a super hard thing to know, but if what you are doing resonates with too small of a population it will take a long time become popular.

I could have seen it be a great software dimension to home routers and NAS boxes.

</comment></comment></comment></comment><comment><USER12> Check out [https://dietpi.com/](https://dietpi.com/)

Great for self hosting even on a single board computer or on traditional server hardware.

<comment><USER13> Pretty cool, but anytime I see something promoting Debian anymore, I can't help but think it is probably outdated and cumbersome to create and manage packages, especially compared to Arch or Alpine, and definitely more bloated than Alpine.

<comment><USER14> I've been using Debian for more than 15 years and it has always been about stability. I use it for desktop use (office, mail, web, games). In the past, the stability concern meant, indeed, sub par desktop software but since the last two releases, the desktop is really good and stable. As I'm getting older I don't want to spend my time administering a system and Debian (and all its packages) have now reached a very good maturity level. Sure it's not bleeding edge, but the stable baseline is really good new. (and my PC is now ten years old).

So don't judge too fast. Debian does a really good job now, even for desktop usage.

<comment><USER13> Arch isn't bleeding edge either. It has always been stable for me and extremely easy to administer, but I have the benefit of actually having the true latest stable packages that you consider bleeding edge, but they are in fact stable just like they are called when they are released.

<comment><USER14> sure ! I wasn't advocating for Debian per se, it's just that it is the one I know...

seeing how all the programs have evolved makes me so happy. there's a real alternative to commercial OS, at least for me :-)</comment></comment></comment></comment></comment>


Django 1.3.1 Security releases issued - <AUTHOR> https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued/ <comment><USER2> To see if you're vulnerable to these attacks and others, use the django-secure package:

<http://pypi.python.org/pypi/django-secure>

</comment><comment><USER3> Awesome work! Glad they added Paul to the core Django development team.

</comment><comment><USER4> "The first three security issues above were all reported to us by Paul McMillan, who -- due to his prolific work on identifying and helping to mitigate security issues in Django -- has now been added to the Django core development team. The patches for the above issues were also developed primarily by Paul."

This is one reason why Django is awesome.</comment>


Parcycle: A Particle System with HTML5 canvas - <AUTHOR> http://www.mrspeaker.net/2009/12/03/particle-system-with-html5-canvas/

<comment><USER2> A little slow, but beautiful. Worth it to see the bubbles in the background on mrspeaker's site.</comment>


Let Over Lambda (New Lisp Book) - <AUTHOR> http://letoverlambda.com/ <comment><USER2> Wow, I can be a part of the best of the best, if only I buy this book?!? Gee whiz, sign me up!

</comment><comment><USER3> What's up with the VIP code on the TOC page?

<http://letoverlambda.com/index.cl/toc>

<comment><AUTHOR> I don't know, but my guess would be that he has (or had) the whole thing online, and has given some people passwords to view it all.</comment></comment>


Ask HN: Can you help me monitor the Internet? - <AUTHOR> Hi, I want to build a service monitoring the Internet and I need your help to build the best tool possible.
Below is a rough idea of what I have in mind, please comment with any idea or opinion to refine my draft. How would you do it? What kind of tech/tools do you recommend? What did I miss? Any help will be greatly appreciated ;)
Draft: - A couple of servers would run various checks and store the results in a central database, a public page would be available at internet.rip and display the status of the Internet with details on ongoing outages and their estimated impact. - Check most DNS servers (TLDs, ISPs, Public), public routers status (not sure how to do this, looking glass?), public BGP routes for instabilities or missing routes, Internet Exchanges status, route, latency and packet loss to most IPs (best would be to find the smallest set of IPv4 to monitor passing through the highest number of different routers to be able to draw a map of network paths and their status) - Keep the infrastructure simple: don't want to need a server on each AS so it would best to monitor from the outside as much as possible, otherwise this could be a different approach with an open-source deamon people can install on their servers to contribute, but that's much more complicated. - Make internet.rip (the website) as resilient to network issues as possible and for this I'm thinking CDN, multiple DNS, very long caching of the public page, service workers and multiple API endpoints to fetch the data reachable through JS directly using their IP so it could even work without any DNS if you have the site in cache. - Keep internet.rip free by limiting the cost, the infrastructure will be supported by me. Maybe add a discrete donation button but no ads.
You can also reach me at email@example.com if you have anything to discuss privately. Feel free to register on the landing page to know when it launches (http://internet.rip) <comment><USER2> This is a hard problem. Internet tomography aside (an even harder problem), route-servers and looking glasses everywhere expressly forbid automation, and any network administrator, virtually anywhere, can break your reachability testing. Add to this the myriad complications of BGP selectivity (Why do people insist that "net neutrality" is in danger when it never existed as stated?), and network operator participation becomes almost unavoidable.

While I understand that tools such as [http://www.internettrafficreport.com](http://www.internettrafficreport.com) and [http://internetpulse.keynote.com](http://internetpulse.keynote.com) are not enough, it isn't at all clear to me how any single actor could provide better monitoring. I admit this sounds pessimistic, but I've thought deeply about this and similar topics for many years, and I'm all too familiar with the obstacles to (and poor architecture underlying) Internet polling.

However, I do see a clear need for aggregated monitoring data--many sources, re-published succinctly in one easy-to-find place--and I would certainly donate to such a cause.

<comment><AUTHOR> Yes indeed, that's what I noticed too and if I can do it with existing sources, just presenting them in a cleaner way that's definitely what I will do. I don't want to re-invent the wheel, just do as much as I can to make the information available.

About the routing part other people mentioned [https://atlas.ripe.net/](https://atlas.ripe.net/) which seems to be doing a very good job at that thanks to their 4000 probes distributed across the world, If I can use their data it'll already solve a good part of the equation.

Thanks for your feedback jonny_storm!

</comment></comment><comment><USER3> You may want to check out ripe.net

<comment><AUTHOR> Yes, I already had a quick look and there's a lot of interesting stuff here, I'll definitely need it. Thanks!

<comment><USER4> You especially might want to have a look at [https://atlas.ripe.net/](https://atlas.ripe.net/).

Here you can find a podcast interview with Internet Hall-of-famer Daniel Karrenberg[1] about RIPE and the ATLAS project (don't worry the page being in german, the interview is in english language): [https://requestforcomments.de/archives/280](https://requestforcomments.de/archives/280)

[1]([http://internethalloffame.org/inductees/daniel- karrenberg](http://internethalloffame.org/inductees/daniel-karrenberg))

<comment><USER3> A good explanation of ripe atlas can be found at Cisco ipj journal [http://ipj.dreamhosters.com/wp- content/uploads/2015/10/ipj18...](http://ipj.dreamhosters.com/wp- content/uploads/2015/10/ipj18.3.pdf)

<comment><AUTHOR> Oh sweet, thanks a lot benzimmer & kirankn!</comment></comment></comment></comment></comment>


AT&T patents a system to limit high-bandwidth users - <AUTHOR> http://www.tweaktown.com/news/35183/at-t-patents-a-system-to-limit-high-bandwidth-users/index.html

<comment><AUTHOR> And now we begin to see some some of the implications of the elimination of net neutrality:

\- 'The new patent could have a chilling effect on content distribution networks, including Steam, Origin, and Netflix. The patent, titled "Prevention Of Bandwidth Abuse Of A Communications System", would theoretically allow AT&T to create Internet plans that would only allow access to certain sites or protocols. The patent has a brief description.' -</comment>


Pure CSS Slideshow - <AUTHOR> http://www.designmadeingermany.de/slideshow/ <comment><USER2> Chrome Only: <http://peri.me/slidio/slideshow.html>

<comment><USER3> This is really cool, but the performance doesen't seem totally smooth, and I am on a 6 month old quad core xeon. Do you know anything about the performance of these css animations compared to javascript?

<comment><USER2> Has to do more with GPU than CPU. Never does such comparisons.

</comment></comment></comment><comment><USER4> Would love to see this with an example featuring 50 or 100 sides. I'd be interested to see the rendering speed/delays in each browser.

Either way, good stuff.

<comment><USER5> 31 slides with big images here: <http://www.designmadeingermany.de>

<comment><USER6> The slideshow is a must see.

Especially this OGG Video trailer. It's pure joy. <http://www.designmadeingermany.de/#a25>

</comment></comment></comment><comment><USER7> This blows my mind. I'd love to put it on my homepage or something, but it really hurts your personal "brand" when over half the people who visit your site can't view it properly.

I feel this way about most of the tricks I see on HN, sadly.

</comment><comment><USER8> "Your browser sucks." but it still works ... nice? Opera 10.6 (old version, I know)

<comment><USER9> OP forgot a -o-transform on the .page class, that's why.

<comment><USER5> Strange that I forgot that. Fixed.</comment></comment></comment>


Show HN: Conservative News, an anti-HN - <AUTHOR> http://cnews.cloudapp.net

<comment><USER2> (1) Since when is HN the opposite of conservative? There are certainly liberal/left viewpoints on HN, as well as plenty of conservative/right viewpoints, and plenty in between and off at right angles to that axis.

(2) From your about page: "Overloads" \-- I don't think that word means what you think it means.

</comment><comment><USER3> So... Scientific threories from Muslim clerics and opinions on open source by Microsoft?

</comment><comment><USER4> no one told it better..</comment>