exFAT in the Linux kernel - <AUTHOR> https://cloudblogs.microsoft.com/opensource/2019/08/28/exfat-linux-kernel/ <comment><USER3> I'll believe Microsoft loves Linux when I can install Microsoft Office in my desktop Linux machine. Everything else is marketing.

Edit: to expand, the corporate world runs on Excel/PowerPoint/Outlook. Microsoft milks them on Windows/Office licensing and is very aggressive against organizations that try to do Linux deployments. They're a convicted monopolist that got away easily when at some point the option on the table was to split OS and Office into two different companies. If they want to continue to use Office to keep Windows dominant that's their strategy. WSL and their other "love Linux" efforts are all about making sure developers stay on Windows. If you want to do all that fine but don't patronize us by then claiming you love Linux.

<comment><USER4> Given that Microsoft is a for-profit company, what's the financial justification for writing office for Linux on desktop? The market share isn't even a rounding error and you're talking about them investing tens of millions minimum into the development.

The fact they have office on Android, iOS, and osx proves it's about market share and common sense, not some fabricated hatred or fear of Linux on the desktop.

<comment><USER5> > what's the financial justification for writing office for Linux on desktop?

Well, the same argument could be applied to their open source contributions. Considering that [canonical corporate view is that] patented ideas are expensive to produce, and that exFAT is patented, what's the financial justication for open sourcing it (the specs or else)?

The argument is ultimately against "Windows love Linux". The thesis of the parent is just that they're doing unsubstantial moves (or worse, manipulative ones), and that if they "truly loved Linux", they would do something substantial, which, for the corporate world, is to support Office on Linux.

<comment><USER6> This argument can very easily be used against people who claim they love Linux and FOSS but they never really seem to be willing to part with the same amount of money other people are willing to give MS. Donating $300 for every copy of Libre Office you use would go a long way to making MS Office on Linux completely unneeded. Same goes for donating similar amounts for every Linux you install. I guess everyone's love has limits and it's usually money.

As for MS's contribution to open source you have to consider the difference in magnitude between the revenue that Office generates and the revenue that their other open source contributions do (would?). Then consider also the development effort involved.

It looks like OP just wants exactly what MS doesn't offer completely disregarding the alternatives, and I'm pretty sure they would not be willing to pay the markup for the extra development involved.

</comment></comment></comment></comment><comment><USER7> The IMHO extremely relevant point is in the very end of the actual specifications:

[https://docs.microsoft.com/it- it/windows/win32/fileio/exfat-...](https://docs.microsoft.com/it- it/windows/win32/fileio/exfat-specification)

>26-Aug-2019 Seventh release of the Basic Specification, which includes the following changes:

Updated legal terms pertaining to the specification, including:

Removal of Microsoft Confidential notice

Removal of Microsoft Corporation Technical Documentation License Agreement section

Updated copyright notice to 2019

Till now the documentation wasn't AFAIK publicly available or it was anyway "restricted".

<comment><USER8> Skimming through the doc, it looks like a modification of FAT32 with some (noticeably more complex) extensions, and not anything resembling what you might envision a "FAT64" to be; a FAT is still a linked list of 32-bit entries, there can still be two of them, and directory entries are still 32 bytes each (although defined in a rather complex way.) There's a separate allocation bitmap, which seems redundant and a waste of space (and code) given that the FAT itself already contains the information in previous versions.

I've written a FAT12/16/32 driver for an embedded system before; and oddly enough, the documentation I had at the time was far easier to understand than this one. I didn't expect exFAT to be this complex, or perhaps the doc is just excessively verbose --- for example, the whole first paragraph of the 4th section is saying nothing more than "there may be 1 or 2 FATs, one after the other, and NumberOfFats is the field that says how many there are" except it takes 5 sentences to do so.

That said, this spec is written in a style that's easier to understand than a lot of the other "open specifications" docs that MS has released, but I suspect that's because this one was once an actual NDA'd implementer's document rather than the others which I've heard may have been released purely for legal reasons related to the antitrust than anything else.

Now if only they'll do this for NTFS...

<comment><USER9> With how slow modern day NTFS is for things like node_modules (lots of nested directories), I can't help but hope some better file system will become widespread on the next major Windows release.

<comment><USER10> Most of the performance issues are not NTFS so much as the prevalence of file- system filter drivers. This is why WSL had so many file-system performance issues despite the fact that it was using a custom FS. IIRC this also motivated the move to WSL2 from what I read, since a virtual machine can use a small set of files to store a whole FS.

EDIT: See here - [https://github.com/Microsoft/WSL/issues/873#issuecomment-425...](https://github.com/Microsoft/WSL/issues/873#issuecomment-425272829)

</comment></comment></comment></comment><comment><USER11> The big deal here is the patent grant. FAT related patents were held over linux like a gun in the Ballmer years. Its a reason Linux was stuck with 8.3 length filenames for so long.

<comment><USER12> Aren't the FAT patents about to expire anyway?

<comment><USER13> Some of the earliest ones, surely, but presumably Microsoft also continued to patent later innovations: all of the "extended" in ExFAT.

<comment><USER14> This seems to be one of the patents involved: [https://worldwide.espacenet.com/publicationDetails/biblio?CC...](https://worldwide.espacenet.com/publicationDetails/biblio?CC=US&NR=2008168029&KC=&FT=E&locale=en_EP#)

I'm not sure what's the expiry on 2008 submission.

<comment><USER15> 20 years from invention? Which looks like ~2004 skimming the 2008 filing.

</comment></comment></comment></comment></comment><comment><USER16> I don't mean for this question to sound inflammatory but I can't help but think: why does this matter? You can already use exFAT on Linux via FUSE, and as pointed out by VentureBeat:

> To be clear, Microsoft isn't open-sourcing exFAT — but it is making sure > anyone building with Linux can use it. 'It's important to us that the Linux > community can make use of exFAT included in the Linux kernel with > confidence.'

exFAT is still not open source, and still can't be distributed with the kernel. So what changed? It will now be easier to integrate it into a _custom_ kernel instead of using FUSE? Why is this better than the current situation, where you'd install exfat-utils for example? Are there benefits of using a kernel module that I'm missing which makes this important news?

<comment><USER17> It will be in the "real" kernel soon, here is a patch I submitted adding it: [https://lore.kernel.org/lkml/20190828160817.6250-1-gregkh@li...](https://email@example.com/)

And yes, this is _much_ better than using a FUSE interface to the filesystem.

<comment><USER18> For the 99% of people reading who don't know the kernel as well as you (seriously) can you explain why this is the case?

Does a userspace filesystem driver lose a lot of performance to context switching, or is there something unique to filesystems that slows them down in user space?

<comment><USER17> > Does a userspace filesystem loose a lot of performance...

Yes.

Try the two versions out, and see for yourself if you are curious.

<comment><USER19> I use a FUSE filesystem on linux- not ExFAT, but as an S3 interface. I often see 1+Gigabyte/sec throughput over the wire from simple multithreaded IO operations. FUSE can be very fast.

<comment><USER20> For one thing, that's throughput, not latency.

For another, that's probably a desktop, not a smartphone.

<comment><USER19> That's correct, my metric for performance is throughput I don't really think a desktop vs a smartphone matters much at this comparison, it's just my observation that when people say a fuse filesystem is slow it's just not well- engineered, not that the fuse API is inherently slow

<comment><USER21> Run a benchmark that measures more than throughput and you'll see the difference. IOPs are usually poor.

<comment><USER22> Latency is a nightmare if you perform certain types of tasks on FUSE.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> Does this affect anything outside the Linux kernel? Will *BSDs be able to use the specs without patent fears? What about microcontrollers, and the Arduino community?

<comment><USER24> No. The OIN promise only applies to Linux-based systems.

<comment><USER25> What defines a "Linux-based system"? Does Android count? Would VMWare's VSphere ESXi hypervisor count? Would a unikernel running on a pared-down Linux rump-kernel (if such a thing were made) count?

<comment><USER26> According to [http://en.swpat.org/wiki/GPLv2_and_patents](http://en.swpat.org/wiki/GPLv2_and_patents) , GPLv2 includes an implicit patent grant

So my guess would be that the definition of "derivative work" would apply.

<comment><USER27> That's super duper grey area, which is why GPLv3 went out of it's way to have an explicit patent grant.

</comment></comment></comment></comment></comment><comment><USER28> OMG, I can't believe we finally have a cross platform read/write disk format. At last. No more Fuse. I just need to know when it will be available for my Raspberry Pi.

<comment><USER29> We already have one, it is just that few know we do:

Universal Disk Format ([https://en.wikipedia.org/wiki/Universal_Disk_Format](https://en.wikipedia.org/wiki/Universal_Disk_Format)).

I can confirm it works on Linux, and works on Windows (at least W10). The wikipedia article indicates it works on newer MacOS'es, but I can't confirm that fact.

<comment><USER28> I thought it was for optical media only.

Yet, it seems there's no way to format to it out of box on macOS and support looks dodgy. I'm not willing to bet my data on an unreliable file system implementation.

<comment><USER29> > I thought it was for optical media only.

Nope, although it is most commonly used on optical media it is not restricted to only optical media.

From the wikipedia article:

Specifications

The UDF standard defines three file system variations, called "builds". These are:

Plain (Random Read/Write Access). This is the original format supported in all UDF revisions ... Plain build

Introduced in the first version of the standard, this format can be used on any type of disk that allows random read/write access, such as hard disks, DVD+RW and DVD-RAM media. Metadata (up to v2.50) and file data is addressed more or less directly. In writing to such a disk in this format, any physical block on the disk may be chosen for allocation of new or updated files.

Since this is the basic format, practically any operating system or file system driver claiming support for UDF should be able to read this format.

<comment><USER30> Have you used it IRL ? How does it fare performance wise ?

<comment><USER29> I've been using it for some number of years now on USB sticks that are larger than 2G (to avoid the 2G file size limit of Fat32) for file transfer to/from the work machine.

I have had zero issues with it from Linux or Win (I think I started using it when the "work pc" was Win7, but am not 100% sure of that). It has just worked, with no problems, for my use cases.

Performance wise, well, the performance is limited by the USB sticks (they are USB2 sticks) so from what I can tell, UDF is not the limiter, the USB2 interface or the flash cells in the stick are the performance limiter.

</comment></comment></comment></comment></comment></comment><comment><USER31> Thanks MS. Would also like to see ext4 support in Windows and better NTFS support under Linux. Then the turnaround (on the technical side at least) will be complete.

<comment><USER32> Bring btrfs to windows pls!

</comment></comment><comment><USER33> When will we have a modern file system that "just works" for read and write on Windows, Linux and Mac without the need to buy some proprietary product or depend on some open source option that may not be maintained or 100% reliable?

Seems like going over the network is the easiest option for people who use multiple OSes, though it comes with incompatibilities in permissions, ownership and also comes with a speed hit.

I doubt if Apple would provide implementations of APFS for non-Apple operating systems. So that probably leaves Microsoft to push NTFS (since ReFS isn't a common option anymore as per Wikipedia) if it desires. But Microsoft seems to be on a cost cutting mode (cf the adoption of Chromium in Edge).

Are there viable and good options suitable for these three operating systems?

<comment><USER34> exFAT works on MacOS >= 10.6.5, Windows and with this announcement hopefully shortly on Linux. I'd say it counts as a modern file system too - <USER2> released in 2006.

<comment><USER35> I'd count "modern", as something like btrfs, zfs or bcahefs.

</comment></comment></comment><comment><USER36> Too little too late, with no acknowledgement of Ballmer-era exclusivity, bullying. It's progress, but progress without awareness of baggage in the room.

</comment><comment><USER37> "We love Linux so much that we would never let it be polluted by our horrible desktop software!"

</comment><comment><USER38> MS wants a native kernel fs compatible with Windows so they can improve WSL. Today's virtualized kernel pays an unecessary price to access ext4 FS

</comment><comment><USER39> Meanwhile, ntfs-3g[1] wasn't updated for years and looks like totally dead. Last version is of March 28, 2017.

[1] [https://www.tuxera.com/community/open-source- ntfs-3g/](https://www.tuxera.com/community/open-source-ntfs-3g/)

</comment><comment><USER40> Any news on NTFS ?

<comment><USER41> NTFS-3g is pretty good and support on Linux is definitely a lot better than it used to be. Still, official (or officially supported/documented) support would be really nice.

Honestly I hope even Windows abandons NTFS soon. It's the worst part of using Windows. e.g. Try and develop any Node project on Windows and it's painful - takes literally minutes to delete the node_modules folder whereas on Linux/Mac it takes seconds. It only recently got long pathname support (260+ chars long)...

<comment><USER42> On the other side, file ACLs in NTFS are way more powerful than the Linux owner-group-world model.

<comment><USER43> You can use posix acls whenever you want though.

<comment><USER44> Posix acls aren't particularly nice though. RichACLs is what I'd love but they're not merged :(

</comment></comment></comment></comment></comment><comment><USER45> Almost every months Microsoft make a more or less major gift to the open source community, this is beautiful. They are the new "benevolent" Google and it's no surprise they're now the number one open source contributor of the world.

<comment><USER46> They already extorted Android OEMs using exFat patents for billions, might as well try to look nice.

<comment><USER47> As much as I hate the patent bullying Android should have never used FAT for _ANYTHING_. The stupidity around that continues to make everyone's lives hard to this day.

<comment><USER48> If you want an SD card that is also readable by the digital camera ecosystem, what choice do you have?

<comment><USER49> How often are people taking a microSD card from their camera and putting it in their phone considering on a lot of devices this means pulling the battery out.

Also they could support fat while not having the main system storage using fat.

<comment><USER50> Main system storage didn't use FAT; /sdcard did.

</comment></comment></comment></comment></comment></comment><comment><USER51> Related: [https://news.ycombinator.com/item?id=20821161](https://news.ycombinator.com/item?id=20821161)

</comment><comment><USER52> Thanks Microsoft and the developers there for sharing ExFat!

It is great to see the changed attitude and embracing of open source software! This will ease the use of large external disks, sharing files between Windows and Linux systems. It will help with larger USB memory sticks which no longer needs to be reformatted. It will also make it much easier to deal with SD cards from cameras and mobile phones.

</comment><comment><USER35> Finally. Next steps — MS can release active sync without patents, and also start supporting Vulkan and drop DirectX 12 diversion.

</comment><comment><USER53> wan't Samsung providing a GPL-version of exFAT for Linux already? what's the difference assuming this news means we will have a native exFAT driver in kernel "soon".

Is exFAT only good for file storage considering it has no journal ling? putting rootfs on it may have a dysfunction system relatively easily without fsck I assume.

<comment><USER54> I have extensive (bad) experience with exFAT implemntation on other platforms than Windows. My external disk formatted as exFAT gets constantly corrupted (need fsck), when used on macOS and Linux. On Linux I use this Samsung's exfat-nofuse kernel driver on raspberry pi. ExFAT fs is mounted read-only and still get corrupted.

So I don't share the excitement with most folks here. Until driver gets better, exFAT is not rock solid option for sharing data between OSes.

</comment></comment><comment><USER55> Big deal! This is right up there with Adobe Premiere on Windows finally getting a ProRes encoder at the top of my list of "Things That Would've Helped My FilmTech Career Around 6 years ago".

1) We finally have a file system that works across operating systems, which is a big deal if you ever do anything in a multi-OS environment.

2) exFAT is heavily used in the film production world, and the convenience of knowing it'll mount properly on any OS so you can duplicate it a few times is much more important than whether or not it's a "safer" file system in general. It doesn't need to survive forever -- the card just has to make it from the camera to the computer on the other side of the set, or survive a trip from one office to another on a shuttle drive that by this point is not the only place that data exists.

Regardless, it's still more mature in general than I remember it when it started to appear in high-end cameras around 2012/2013\. When your Blackmagic camera shoots exFAT but isn't capable of deleting files off it without a computer...

3) Should something still go wrong (like, oh, the time I was almost responsible for losing $60k of footage my second day on a job due to unexpected use of exFAT + a truly unfortunate and odd-defying day of bad luck) the fact that Microsoft is implementing it in the kernel should still be a huge help -- it will be a proper implementation (not a reverse-engineered sometimes-working mess), will perform much better than FUSE, and just generally improve reliability. Trust me, when your card with irreplaceable footage won't mount, you'd rather not have to fight that battle on two fronts, with one of them being your Linux implementation.

<comment><USER8> _fact that Microsoft is implementing it in the kernel should still be a huge help_

If you're trying to recover video (which is one of the easiest types of data to recover, due to it being large, sequentially written, and bitstreams containing easily recognisable sync markers), and especially from a storage device that's being exclusively used for video, the actual filesystem doesn't really matter because practically all of the sane ones will store the file data in a contiguous range of blocks. Depending on the exact codec, you may even be able to dd the raw device into a decoder and it'll simply find the first valid sync marker and start decoding from there.

<comment><USER55> Well of course, some file carving is what has gotten me out of a few messes in the past, including the one mentioned. But in a situation where a volume won't mount/read, it's nice to eliminate a poor implementation or FUSE issue as a potential variable in determining if there's actually a problem. (Or worse, introducing a new problem... I've seen that, too, especially in earlier days of exfat-fuse/exfat-utils.)

</comment></comment></comment><comment><USER56> Is it worth formatting my external flash media as exFAT at this point if I find myself dual booting often? NTFS on Ubuntu is pretty well covered so that has been what I have been using. But if exFAT support is improving I'm wondering if it is worth switching over.

</comment><comment><USER57> Great news! But I would have delayed announcing it until I had the patches ready to be merged.

<comment><USER58> The real news here is the specification being opened.

</comment></comment><comment><USER59> I haven't spun up anything in Azure for quite a while. Does anybody know if their default images use anything exFAT formatted? Doesn't UEFI/EFI binaries usually sit on exFAT?

<comment><USER60> By standard VFAT is required, but on most Windows PC, the UEFI partition is in NTFS.

<comment><USER50> UEFI partition is FAT32 (or EFI-FAT; EFI has their own specification of FAT, frozen in time, with it's own identifier), if not for other reason, that most UEFI implementations would not be able to boot from NTFS.

Windows installer creates several partitions: System (ESP), MSR at the beginning of the disk and Recovery at the end of the disk.

<comment><USER60> Most UEFI implementations are loaded on Intel Windows devices, which is most likely to use TianoCore, reference implementation of UEFI which includes UEFI NTFS driver by default. I have seen that some low ends from Lenovo and Acer have its UEFI partition (ESP) formatted as NTFS.

<comment><USER50> Are you sure? I had a look into edk2 and cannot find NTFS driver there. I can see the FAT one.

The NTFS support depends on device. From devices that I have around, Intel NUCs do support it, Asrock X399 board does not.

I have yet to see the Windows installer to create NTFS-based ESP partition. If manufacturer does that for specific device (where it is guaranteed, that it will support NTFS), that's different thing.

</comment></comment></comment></comment></comment><comment><USER61> > To this end, we will be making Microsoft's technical specification for exFAT > publicly available to facilitate development of conformant, interoperable > implementations.

How about their FAT patents??

</comment><comment><USER62> Sweet. I had to purchase something for my Synology NAS fairly recently to support an ExFAT device. It's great to see this contribution to open source.

</comment><comment><USER63> I remember having had problems with exFAT on linux. Did it not work at all, or did you have to use user repos to get exFAT working?

<comment><USER64> You had to add it as a fuse module. I don't know if a user compiled kernel module worked. But still even if it was used as a fuse module i myself had often times problems with it. So i hope this goes away soon.

</comment></comment><comment><USER65> In my experience, exFAT gets corrupted constantly, and then on linux you don't have a proper fsck for it.

</comment><comment><USER66> Will this allow WSL2 to access your entire Windows filesystem without the performance hit?

If so this is really cool.

</comment><comment> dis-sys I will believe Microsoft loves Linux when they decide to drop the development of their buggy NT kernel and starts to build windows on top of the mainline Linux kernel.

Everything else is just cheap marketing.

<comment><USER67> "buggy NT kernel" is a stretch. There's nothing particularly wrong about the NT kernel in its design or implementation, any more than other kernels.

MS don't have to drop Windows to support Linux. They can walk and chew gum at the same time.

</comment></comment><comment><USER68> Does this mean it is royalty free now?

</comment><comment><USER69> embrace, extend, exFAT

</comment><comment><USER70> So after abusing this bullshit for more than a decade to bully companies. How gracious and generous of them. Oh btw, Satya is the CEO for 5 years.

<comment><USER71> Stop shitting on them. We won the war. They're mending their ways. It takes a long time to right such a large ship with levels upon levels of bureaucratic bullshit that's been caked on for decades.

It's a WIP and they just granted a patent license to the OIN for fuck's sake. Even 10 years ago this would have sounded like science fiction.

<comment><USER72> The WSL looks a _lot_ like the embrace step of an embrace-extend-extinguish doctrine. I'll believe them more when I can write user-facing apps against their posix subsystem instead of requiring people to jump through many many hoops to actually install it.

Right now it just looks like something they were forced into doing because they were losing on the devtools market.

<comment><USER73> >instead of requiring people to jump through many many hoops to actually install it

Yeah the hoops of going to the Store, searching for "ubuntu" and clicking Install

<comment><USER72> Are they not still requiring this?

        Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

I admit I haven't used WSL in a while.

<comment><USER74> You still need to enable the subsystem, but I don't see why most users need it on by default. It seems like an easy enough feature to prompt the user to enable (or enable for them automatically) if your application calls for it.

</comment></comment></comment></comment></comment></comment><comment><USER75> Hmm.. Oops! now exFAT will bring the [A-Za-z] case in-sensitivities into the GNU/Linux system.

<comment><USER76> The ext4 folks are working on adding case-insensitive support... [https://lwn.net/Articles/784041/](https://lwn.net/Articles/784041/)</comment></comment>


Guess Who Doesn't Fit in at Work - <AUTHOR> http://nytimes.com/2015/05/31/opinion/sunday/guess-who-doesnt-fit-in-at-work.html

<comment><USER2> The emphasis on cultural fit seems so strange to me, since when I was hiring I wanted cultural _diversity_ , not cultural fit. I did want everyone to have technical ability, communication skills and "character," by which I meant honesty, open-mindedness, positive attitude, and ability to focus on work. But beyond that, I saw putting a programming team together like making a goulash: you want a variety of ingredients and flavors to make it come out right:

* Some programmers like following and trying out the latest and greatest tools ands versions; some like sticking with solid and established tools. * Some like knowing a little about everything. Some like knowing a lot about one thing. * Some like using databases for everything. Some avoid them. * Some like polishing and optimizing code. Some like rapid prototyping. * Some _enjoy_ writing documentation. Some don't. * Some work at night. Some work early in the morning. * Some are extroverts. Some are introverts.

And I was happy to have a mix of all of them.

And as for whether they liked playing video games, knitting sweaters, playing softball, going to church, drinking beer, hunting deer, or reading science fiction or anything else, not only didn't I care about that, I felt it was ethically wrong to base hiring decision on what they did outside of work.

</comment><comment><USER3> Perhaps calling it "culture fit" is the problem - it's not specific enough. Define more clearly the characteristics and signals you're looking for. Evaluate your team and culture to better identify the characteristics you're trying to match in a candidate. For instance, instead of "culture fit", say you are looking for signals that someone is "passionate about web development", then think about evidence that supports the characteristic: eagerly learning, involvement with development-community, excited about new technology, willing to experiment, etc. You can also provide evidence that shows a candidate isn't "passionate". Just a matter of semantics.</comment>


Your Body Is Younger Than You Think (2005) - <AUTHOR> https://www.nytimes.com/2005/08/02/science/your-body-is-younger-than-you-think.html <comment><USER2> You could also say my body is billions of years old because that's the age of most of my atoms.

In every way except the one that counts, it seems I'm not my age!

</comment><comment><USER3> This article is out of date. More research indicates that neuroplasticity is a measurable phenomenon and the cortex does indeed create new brain cells.

</comment><comment><USER4> > The inner lens cells form in the embryo and then lapse into such inertness > for the rest of their owner's lifetime that they dispense altogether with > their nucleus and other cellular organelles.

Does anyone know what metabolic processes these cells continue to perform, if any? If they literally drop their nucleus and other organelles, is there anything left besides the cell membrane, cytoskeleton, and cytoplasm? How do they repair damage, and in what sense are they a living cell rather than just an inert husk like the dead cells in the cuticle of hair?

I believe "inner lens cells" refers to the lens fibers, but this is all Wikipedia had to say:

> New lens fibers are generated from the equatorial cells of the lens > epithelium, in a region referred to as the germinative zone. The lens > epithelial cells elongate, lose contact with the capsule and epithelium, > synthesize crystallin, and then finally lose their nuclei (enucleate) as > they become mature lens fibers.... > Another important factor in maintaining > the transparency of the lens is the absence of light-scattering organelles > such as the nucleus, endoplasmic reticulum, and mitochondria within the > mature lens fibers. Lens fibers also have a very extensive cytoskeleton that > maintains the precise shape and packing of the lens fibers; > disruptions/mutations in certain cytoskeletal elements can lead to the loss > of transparency

[https://en.wikipedia.org/wiki/Lens_(anatomy)](https://en.wikipedia.org/wiki/Lens_\(anatomy\))

<comment><USER5> My understanding is that most of the metabolic activity required in the lens takes place in the germinative zone you mentioned and then proteins necessary for lens health diffuse through abundant gap junctions from the lens cortex into the lens core.

Take all of that with a grain of salt though. I haven't studied this in depth but I did work in a lab that studied gap junctions of the lens in undergrad

Also, here is an NCBI article all about the lens: [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5538311/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5538311/)

<comment><USER4> Thanks!

</comment></comment></comment><comment><USER6> Ah yes, the old Ship of Theseus thought experiment.

If someone went around collecting all the molecules lost in my sweat, spit, urine and feces, and built a new person out of it, which one is me?

<comment><USER7> Easy but uncomfortable answer: neither, because "you" don't exist.

<comment><USER8> Harder to explain but more comfortable answer: neither, because "you" don't exist in your body, but the entire universe, and "you" as far as you're concerned, is the pattern emerging "on top" of the molecules that make "you".</comment></comment></comment>


Show HN: Lump.co – instant photo galleries via web search - <AUTHOR> http://lump.co This is my little side project Lump.co. It's like Pinterest, but you build the gallery by searching the web for photos, rather than having to download photos, collect them, and then reupload to Pinterest.
It's quick as heck, works pretty well on iOS, and is a blast to use.
Motivation/Scratching an itch:
I'm always sending Google Image Search results to people, but I got really frustrated by the long URLs and inability to edit/reorder the results.
I love working on Lump because I use it ten times a day, just for myself. Things like:
1. Picking things to buy visually: http://lump.co/amazon-standing-ashtray 2. Finding recipes by my "desired result" (what I want my food to look like.. sounds silly but it works!) http://lump.co/pork-shoulder-recipes 3. Understanding concepts by quick visuals (I find this to be a really effective way to learn when you don't have time to read a lot of material) http://lump.co/understanding-ios-delegates
It's still pretty buggy at this point, and I think it really needs to be a native iOS app for the best UI/UX, but for now I am ready to submit it for HN's denunciation. :) I'd be eager to hear what everyone thinks! <comment><AUTHOR> This is my little side project Lump.co. It's like Pinterest, but you build the gallery by searching the web for photos, rather than having to download photos, collect them, and then reupload to Pinterest.

It's quick as heck, works pretty well on iOS, and is a blast to use.

Motivation/Scratching an itch:

I'm always sending Google Image Search results to people, but I got really frustrated by the long URLs and inability to edit/reorder the results.

I love working on Lump because I use it ten times a day, just for myself. Things like:

1\. Picking things to buy visually: [http://lump.co/amazon-standing- ashtray](http://lump.co/amazon-standing-ashtray)

2\. Finding recipes by my "desired result" (what I want my food to look like.. sounds silly but it works!) [http://lump.co/pork-shoulder- recipes](http://lump.co/pork-shoulder-recipes)

3\. Understanding concepts by quick visuals (I find this to be a really effective way to learn when you don't have time to read a lot of material) [http://lump.co/understanding-ios-delegates](http://lump.co/understanding-ios- delegates)

4\. Creating visual mood boards/inspiration boards

It's still pretty buggy at this point, and I think it really needs to be a native iOS app for the best UI/UX, but for now I am ready to submit it for HN's denunciation. :) I'd be eager to hear what everyone thinks!

</comment><comment><USER2> Where are the photographer credits? Where is the licensing information for each photo? What is your mechanism for compensating the creators of the original works you are republishing?

<comment><AUTHOR> Wow, great questions!

Lump is a visual search engine, so we conform to the same basic copyright and ownership rights respect that other image search engines do.

1\. Credits: Each image is linked to its referring site. You'll also find the name of the referring site in the title tag and the image alt tag. In other words - we really encourage the user to find the original source and engage with the content on its own site.

2\. Licensing and copyright notice: All photos are copyright by their author. You'll see that in the footer of the site. Since images published on the web do not have embedded copyright information, that's about all I can do. :(

3\. Compensation: There is no mechanism for compensating the creators of original works who have chosen to publish them on the web and allowed them to be indexed by search engines.

And, of course, we honor robots.txt. :)

I think I'm doing the right thing within the boundaries of the technology we're stuck with. Let me know if you have any questions.</comment></comment>


A Net Neutrality Case Study - <AUTHOR> http://www.avc.com/a_vc/2010/10/a-net-neutrality-case-study.html

<comment><USER2> This connection with net neutrality occurred to me when I heard about this row between Fox and CableVision a few days ago too.

Well... anyway, even if they aren't connected issues, the fact that conglomerates & government have repeatedly colluded makes it difficult for somebody my age to have good faith that they wouldn't do something like that on purpose. Not saying they did...

</comment><comment><USER3> I had trouble reading past his suggestion for a "bill of rights" for Internet users. Real, important rights are being trampled on all the time in this country. A "bill of rights" that guarantees the right to watch football on your computer insults and minimizes our actual rights.

</comment><comment><USER4> This seems unrelated to net neutrality. In this case the ISP isn't restricting or preferring any content on its network, rather a content provider is discriminating based on ISP.

<comment><USER5> That's correct. Fred seems to be arguing for "Content Neutrality", which is to say that any publisher must make all their content available to anyone.

<comment><USER6> no i am not

if i subscribe/pay for content, i don't want some ISP blocking it because they are in a spat with the content owner

<comment><USER4> Is that what's happening? It seems like in this case it's the content provider who's blocking access based on ISP. Would any net neutrality law protect against this? Should it?</comment></comment></comment></comment>


How to Recruit Talent–When You're Competing with Giants - <AUTHOR> https://angel.co/blog/how-to-recruit-talent-when-youre-competing-with-giants <comment><USER2> How about cut out all of the red tape and poor treatment that big companies force upon their job candidates?

</comment><comment><USER3> Pay higher salaries?</comment>


The Case Against Newspaper Companies - <AUTHOR> http://davetroy.com/?p=581

<comment><AUTHOR> > _As observers, these trained journalists accurately state that a small, > unfunded website run by "these kids" (many of whom are 20 year veterans of > the press) can not effectively compete with some imagined newsroom of the > past. However, these "small unfunded websites" are just starting out. They > will grow. And these imagined news operations no longer exist, and the ones > that still do are shrinking. They are on a collision course._

> _If I had to bet on whether a bloated 172-year old company that's in > bankruptcy will find the model, or whether it would be one of a field of > startups, I'd bet on the field of startups every time. Why wouldn't you?_</comment>


How OurDoings got Robert Scoble to use its service - <AUTHOR> http://friendfeed.com/e/41fbe955-62fb-cfb2-320a-6db18fdeccd9/How-OurDoings-got-me-to-use-its-service/

<comment><AUTHOR> My 2009 resolution to sell better has a decent start.

<comment><USER2> And I'd probably be an easy sell. Let's do this via e-mail.</comment></comment>


Going Head-To-Head: Scylla vs. Amazon DynamoDB - <AUTHOR> https://www.scylladb.com/2018/12/13/scylla-vs-amazon-dynamodb/ <comment><USER2> I haven't read the whole piece yet, but I saw some things that already stood out as strange.

> Please keep reading to see how diligent we were in creating a fair test case

I hope this is true, but my cursory reading found several unfair spots that seem at odds with this statement.

> 3-node cluster on single DC | RF=3

DynamoDB works across AZs and will continue to be available even when a data center goes down. That cross-AZ operation has benefits as well as latency costs that are not present in the ScyllaDB setup.

> We hit errors on ~50% of the YCSB threads causing them to die when using > ≥50% of write provisioned capacity

That is surprising. It is quite common to use your full provisioned capacity without problems. My guess is that there is something not ideal about the YCSB DynamoDB library or its configuration. I'm not familiar with YCSB: does it give you stack traces that indicate why the threads failed?

> Sadly for DynamoDB, each item weighted 1.1kb – YCSB default schema, thus > each write originated in two accesses

This is what made me come write this comment. You specifically knew this was a pessimistic case which could be easily addressed to allow DynamoDB to operate at a lower cost. Is arbitrarily settling for the default 1.1kB item size on an artificial benchmark fair? Good engineering teams use their tools the way that gives them the most benefit. Calling out that you may have to work to ensure your use case doesn't have pessimistic characteristics would clearly be fair, but I'm not convinced that just picking arbitrary benchmark settings is.

<comment><USER3> Fair questions, let me (Dor) answer:

1\. Scylla works within different AZs too We are topology aware and can have as good and even better HA than DynamoDB. Our design is based on C*

2\. We were surprised with getting small utilization too. As I wrote in the article, I think Dynamo had a hard time reaching to 1TB that quick. The population started fine and deeper in the the population it failed. Only a decrease in the rate solved it.

3\. 1.1kb The is the default table setup by YCSB. It isn't optimal for Dynamo but that's life.. think about if you store a blob of 1kb - together with the key it will be more than 1kb. We were upfront about it and you can make your own calculation. Scylla will still be better.

The only use case where Dynamo is better in price is when you store lots of data but with a tiny IOPS reservation. We'll address this case over time too. Cheers!

<comment><USER2> > Scylla works within different AZs too

Did your test use this feature of Scylla? As I understand the documentation, it doesn't appear so (maybe that needs to be fixed). If that's the case, do you think this is an example of being diligent in your fairness?

> Only a decrease in the rate solved it.

I don't think that is the only way to solve it. Something is probably wrong here, and I would expect that diligence to fairness would dictate trying to understand and correct that. This benchmark would be more compelling if problems like this weren't just ignored, but actually solved. Any team that cares about the cost of their database would do that.

> It isn't optimal for Dynamo but that's life.

Yes, life is unfair and this can happen. This test specifically claimed to be fair, though. Again, for this benchmark to be meaningful and compelling, this kind of thing should be addressed.

> The only use case where Dynamo is better in price is when you store lots of > data but with a tiny IOPS reservation

This is a surprising statement. If this is the case, I highly recommend addressing the issues so that you are using DynamoDB like a typical engineering team would. A blanket statement like this with questionable benchmarks as evidence is just not compelling. It would be much more helpful to see where DynamoDB really can't stand a chance competing against ScyllaDB even when it's fully optimiized.

Are you ignoring maintenance costs? Do nodes get added and removed without paying an engineer? How do you keep the nodes up-to-date as far as security updates or adding new features? How much overhead cost is engineering on-call to respond when the cluster has issues (e.g. nearing capacity limits, nodes failing, loss of AZ availability)?

I'm also curious if you are only considering use cases that you typically already see on ScyllaDB and Cassandra. How about the use case where I have a load that increases without warning by 10x or where I need regular backups or that requires 5000 nodes?

<comment><USER3> About multiple AZ, I think we haven't used it in this case but it shouldn't change a bit, most of our AWS customers have AZ-aware deployments and it works great.

Since I see you're with AWS, you're welcome to help us debug this error 500 on population. I guarantee we'll update the blog if we'll see it works fine

I didn't get your surprise, I actually am 100% open about digging deep and come up with a uncommon use case that Dynamo can finally be a good alternative.

Believe me, I can come with examples that will put Scylla in a much better light.

We do offer a fully managed service on AWS with 4x-6x cost saving vs Dynamo where all the backup and auto scale is done by the Scylla team.

<comment><USER4> > About multiple AZ, I think we haven't used it in this case but it shouldn't > change a bit

Are you suggesting that the metrics would not change? I assure you that is not the case: inter-AZ latency is 1-2 orders of magnitude higher than intra-AZ latency.

You'll need to re-run your benchmarks in a multi-AZ cluster in order to provide an apples-to-apples comparison.

<comment><USER3> I don't think this is the case - check this link: [https://knowledgebase.progress.com/articles/Article/expected...](https://knowledgebase.progress.com/articles/Article/expected- latency-between-aws-availability-zones)

The intra AZ latency according to AWS is sub millisecond! It's inline with what our customers see.

Since all of the numbers in the blog are above a millisecond, the result does not change.

<comment><USER4> Intra-AZ latency is indeed sub-millisecond. Inter-AZ latency is in the milliseconds range. (The intra prefix means within, inter means between.) And those latencies accumulate quickly when benchmarking.

Why don't you try it yourself and see the difference? Relying on some third party website is no substitute for testing.

<comment><USER3> I went and run a ping between 2 VMs, one on us-east1c and the other on a different AZ - us-east-1b

As you can see, the ping latency is 0.5ms to 1ms on rare occasions. Of course that ping has a cost even within a single AZ so the above numbers reflect much more than the AZ round trip time.

You're welcome to add 1ms to our latency numbers, it's 3x-4x better in the 99th case so there's enough room...

64 bytes from 18.104.22.168: icmp_seq=14 ttl=63 time=0.584 ms 64 bytes from 18.104.22.168: icmp_seq=15 ttl=63 time=0.462 ms 64 bytes from 22.214.171.124: icmp_seq=16 ttl=63 time=0.848 ms 64 bytes from 188.8.131.52: icmp_seq=17 ttl=63 time=0.465 ms 64 bytes from 220.127.116.11: icmp_seq=18 ttl=63 time=0.451 ms 64 bytes from 188.8.131.52: icmp_seq=19 ttl=63 time=1.00 ms 64 bytes from 22.214.171.124: icmp_seq=20 ttl=63 time=0.854 ms 64 bytes from 22.214.171.124: icmp_seq=21 ttl=63 time=0.446 ms

<comment><USER5> Inter-AZ latency is going to matter more for conditional writes. I'm disappointed to find LWT so far out on Scylla's roadmap since preventing conflicts is a showstopper for correctness and we found it to be Cassandra's weak point in scaling.

<comment><USER6> fwiw, work being done on Cassandra to speed this (cas/lwt) up SIGNIFICANTLY

<comment><USER7> Link ?

<comment><USER6> Started here: [https://lists.apache.org/thread.html/15d1b4b5bb8a24e41d51db5...](https://lists.apache.org/thread.html/15d1b4b5bb8a24e41d51db58538b56d0bab40c17fc9c64e898f2ad3b@%3Cdev.cassandra.apache.org%3E)

Continues here: [https://issues.apache.org/jira/browse/CASSANDRA-14448](https://issues.apache.org/jira/browse/CASSANDRA-14448)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> This all looks great but one of the primary advantages of DynamoDB is that you don't have to spend resources on maintaining or troubleshooting ec2 instances. When you have a large deployment, not having to worry about HA on your data store is hard to beat.

<comment><USER9> You still have to spend a lot of labor/resources maintaining and managing dynamodb. Not managing ec2s but, at scale, it's not exactly a fire and forget type thing and requires a lot of SRE and devops attention.

Also, it sounds like Scilla has a managed solution too, that costs a fraction of dynamodb, at scale.

Dynamodb to me is the new generation IMS database from mainframe cobol times - fully proprietary, locked down, runs only on proprietary hardware, serviced by one vendor. It's only a matter of time before companies using it will be stuck with multimillion $$ yearly bills, if they aren't already.

<comment><USER10> > You still have to spend a lot of labor/resources maintaining and managing > dynamodb.

Do you? At least with DynamoDB On-Demand there shouldn't be much maintenance left to do.

<comment><USER7> You will or you'll pay (a lot) for it.

</comment></comment></comment></comment><comment><USER11> A theme of the comments so far has been around the fact that the benchmark is created in a manner that feels biased.

QUICK STRAW POLL: What is the right way for that information to be gathered and presented?

a. There is no bias. Companies can and should present research that may favor them, as long as they cite good sources.

b. An industry analyst, paid to research multiple companies and options and present that information to their respective (most likely paying) customers.

c. A journalist, presenting research in public, funded by advertising for unrelated interests.

d. Reporting by peers/actual users of the system on how the products compare, and possibly about how it aligns with their technical and business goals.

e. Trust no one. Conduct your own research, and publish it if you see fit to so do, or keep it to yourself.

I see potential "disinformation vulnerability" with each approach. How ought we get the best info on how to align our organizations with technologies?

<comment><USER3> The benchmark was done as fair as possible but I'm the vendor, yes, don't take my word (despite good background in OSS and earlier achievements). Listen to our users:

\- Here's a webinar by one of our customers explaining how they migrated from Mongo+Hive, received better consistency and simplicity while saving 5X: [https://www.youtube.com/watch?v=1hXKd_rNyuE](https://www.youtube.com/watch?v=1hXKd_rNyuE)

\- See how kiwi.com got a CRAZY gain with Scylla vs Cassandra: [https://youtu.be/Bqh09LG_QDE?t=833](https://youtu.be/Bqh09LG_QDE?t=833)

\- See Grab (South east Asia Uber) about Dynamo vs Scylladb: [https://www.scylladb.com/users/case-study-grab-hails- scylla-...](https://www.scylladb.com/users/case-study-grab-hails-scylla-for- performance-and-ease-of-use/)

Go ahead and give it a try and see for yourself

</comment></comment><comment><USER12> Am I the only one who's a little disappointed they didn't call it CharybDB?

<comment><USER13> FYI. [https://www.scylladb.com/2016/02/16/fault-injection- filesyst...](https://www.scylladb.com/2016/02/16/fault-injection-filesystem- software-testing/)

</comment></comment><comment><USER3> We'd love to hear your feedback on it. Dor (article writer)

<comment><USER14> With the caveat that I'd love to see Scylla succeed, I'm a bit bummed to see the conditions around this bake-off so slanted in Scylla's favor from the start.

Seeing a multi-AZ configuration compared to a single-AZ config is an immediate disqualifier, without getting into some of the other comments on item size disparity and YCSB quirks.

This was a really poor response from Scylla on these fronts: [https://news.ycombinator.com/item?id=18677511](https://news.ycombinator.com/item?id=18677511)

<comment><USER3> I went and run a ping between 2 VMs, one on us-east1c and the other on a different AZ - us-east-1b

As you can see, the ping latency is 0.5ms to 1ms on rare occasions. Of course that ping has a cost even within a single AZ so the above numbers reflect much more than the AZ round trip time.

You're welcome to add 1ms to our latency numbers, it's 3x-4x better in the 99th case so there's enough room...

64 bytes from 188.8.131.52: icmp_seq=13 ttl=63 time=0.792 ms 64 bytes from 184.108.40.206: icmp_seq=14 ttl=63 time=0.584 ms 64 bytes from 18.104.22.168: icmp_seq=15 ttl=63 time=0.462 ms 64 bytes from 18.104.22.168: icmp_seq=16 ttl=63 time=0.848 ms 64 bytes from 184.108.40.206: icmp_seq=17 ttl=63 time=0.465 ms 64 bytes from 188.8.131.52: icmp_seq=18 ttl=63 time=0.451 ms 64 bytes from 184.108.40.206: icmp_seq=19 ttl=63 time=1.00 ms 64 bytes from 184.108.40.206: icmp_seq=20 ttl=63 time=0.854 ms 64 bytes from 188.8.131.52: icmp_seq=21 ttl=63 time=0.446 ms 64 bytes from 18.104.22.168: icmp_seq=22 ttl=63 time=0.460 ms 64 bytes from 184.108.40.206: icmp_seq=23 ttl=63 time=0.509 ms

<comment><USER15> There's still 2 unresolved problems (at least) here:

1\. running a ping test is a fine start but wouldn't a more realistic test be to rerun the benchmark? 2\. in a multi-az setup you're going to have to pay for inter-az transfer costs between ec2 nodes. data transfer between ec2 and dynamodb is free.

Also on the pricing front reserved capacity really drops your costs with dynamodb if you know you're going to be with it for some term of time. Not that that needed to be included in the benchmark but... aws pricing is complicated, to say the least.

<comment><USER3> True. In our brand new service offering we took it all into account. Networking is costly but doesn't change the game that much. Scylla is 4x-6x cheaper, depending whether it's on-demand (vs Dynamo on-demand) or reserved for a year (vs dynamo reservation)

[https://www.scylladb.com/product/scylla- cloud/#pricing](https://www.scylladb.com/product/scylla-cloud/#pricing)

</comment></comment></comment></comment></comment><comment><USER16> TLDR: When not accounting for DevOps and SRE costs, managing your own VMs are a fraction of the cost of PaaS services.</comment>


Rubyology: Great Interviews with Great Ruby Developers - <AUTHOR> http://www.rubyinside.com/rubyology-great-interviews-with-great-ruby-developers-1211.html

<comment><USER2> I can't actually find the podcasts. <http://www.rubyology.com/podcasts/show/65> for example, it says mp3 but there is nothing to click.

I would really appreciate if someone could post a wokring link since I would be very interested in listening to this.</comment>


Mexican Air Force B787-8 Dreamliner Put on Sale by New President on First Day - <AUTHOR> https://theaviationist.com/2018/12/03/mexican-air-force-b787-8-dreamliner-put-on-sale-by-new-president-of-mexico-on-his-first-day-as-head-of-state/ <comment> shaki-dora Populism [Noun]: The politics of resentment, and the aesthetics of superficiality.

<comment><USER2> Sure. And the timing can't but reinforce that.

OTOH, the cost of ownership for a 787 seems kinda excessive, so it's probably a good choice to get rid of it purely on economic grounds as well.</comment></comment>


In 'Elastic,' a Physicist Argues That the Mind Needs Time to Play - <AUTHOR> https://undark.org/article/book-review-mlodinow-elastic/ <comment><USER2> Very nice of the author (of the article) to mention Kahneman who has done so much research around this stuff (if you haven't yet read Thinking Fast and Slow I highly recommend it)

Regarding the title, I'd say choose your profession in a way that you don't have to choose between work and play. You are reading HN so you're likely in a position to have many options. Life's too short to be doing things that don't feel like playing.

Especially given that everything is playing whether you realize it or not because the universe, entropy and purpose but that's a whole another story.

But even from purely financial point of view, it's likely that you will be better off by becoming master at what you consider to be a fun game.

<comment><USER3> Sometimes I marvel how much people are willing to pay for me to write and debug code. I can and would do it without pay - if I could choose the problem.

The trouble is a lot of what I work on is mind-numbingly boring and definitely feels like work, not play. But I think it's an acceptable tradeoff to achieve financial independence and get the freedom to pick my problems.

<comment><USER2> Based on your first comment you may already have a chance to give some problems picked by you a try.

And as far as I understand it, you will never achieve financial independence by amassing some fixed of money. You need a cash flow and it won't just magically appear after working hard for some time. You need to focus your interest on this specific goal, research it and work towards it. Oops, I meant play towards it ;)

<comment><USER3> If you amass some fixed amount of money and buy a house with it, or keep it in the bank - yeah it won't help you.

If you amass some fixed amounts of investments, that gives you cash flow. Once that reaches a certain point depending on what your expenses are and your lifestyle choices are, you're free.

"Wealth consists not in having great possessions, but in having few wants." \- Epictetus

If I (or more importantly my wife) had fewer wants, I'd already be financially independent.

</comment></comment></comment></comment><comment><USER4> Oh wow, I 100% agree with this.

I absolutely _need_ at least a few hours a week of creative outlet (Right now it's writing. In the past it has been painting, or woodworking or... to my wife's dismay, a long list of forgotten hobbies).

It sometimes feels like I have a small child in my head, one that wants to play, be free, and just burn off excess energy through creativity. And if I don't do that, he throws a temper tantrum, anxieties and restlessness start kicking up.

</comment><comment><USER5> The idea that selection pressures would result in the apex-predator (humans) spending 1/3 of it's life in a completely defenseless state, must tell us a lot about the importance of sleep to intelligence and creativity.

After both personally experiencing and learning clinically more about how sleep - or lack thereof - impacts cognitive, physical, creative and immune capability I think it's a hugely important piece of the intelligence puzzle.

My hypothesis is that sleep amounts to a nightly scrimmage for the rest of our lives. So it's where we go to practice the things that we're planning on doing or could possibly encounter. We take the inputs from the previous days etc... into simulating future events/outcomes.

In reinforcement learning terms sleep is where we do "exploration" in our own personal simulation of the experienced world and real life is where we do "exploitation."

</comment><comment><USER6> The clever part of the wheel is the axle. Seeing a stone rolling down a hill might lead to rolling a load on logs for transport.

Funfact: the first wheels were potter's wheels. [https://www.smithsonianmag.com/science-nature/a-salute-to- th...](https://www.smithsonianmag.com/science-nature/a-salute-to-the- wheel-31805121/)

My favourite early invention is cloth. Fire's not really an "invention" in the same sense, more like taming wolves and horses.

</comment><comment><USER7> If you find this sort of thinking interesting, definitely also check out "The Psychology of Invention in the Mathematical Field" by Jacques Hadamard.

</comment><comment><USER8> I find David Allen's work most helpful here. He points out that more valuable than time is mental freedom. You can schedule all the time in the world to solve a problem. If something else occupies your mind, progress may never come.

On the other hand, if your mind is not preoccupied, finding the solution may take very little time. His practice in his book Getting Things Done helped me practice this, not just abstractly know it.

</comment><comment><USER9> > _Most of us have to make a concerted effort to be mindful and open to the > unfamiliar_

Growing up, I came to believe that the word "concerted" means something like "effortful" or "work hard to do something". I later learned that it actually refers to a group of people working together ( _in concert_ ) to accomplish something [1]. So technically, a person cannot make a concerted effort to do something alone.

Seeing the word used here in this technically incorrect way leads me to wonder how uncommon my experience is. Are we on our way to redefining this word with a more relaxed definition?

1: [https://www.merriam-webster.com/dictionary/concerted](https://www.merriam- webster.com/dictionary/concerted)

<comment><USER10> You think it's technically incorrect usage because you didn't know other uses of it nor its root. Technically the quoted sentence is 100% correct, concerted also means something you tried hard, struggled with, strived to get done. The musical concert actually derives its meaning from that, but done by a group put together: [https://www.etymonline.com/word/concert](https://www.etymonline.com/word/concert)

<comment><USER9> I have looked for but never found a definition of "concerted" like the one you described. Can you provide one?

<comment><USER10> Have you actually clicked on the link I put at the end of my comment?

<comment><USER9> Yep. It talks about the noun and verb "concert". It doesn't mention "concerted" though, which is the word I'm interested in. These words are obviously related, but in determining the definition of a word, one typically looks to the explicit definition — not to the definitions of related words.

If "concerted" can also have the meaning that you describe (and that I grew up believing in), then why isn't this meaning/usage included in any definition for "concerted"?

<comment><USER11> _> It doesn't mention "concerted" though_

Yes, it does. Here is the entire verb entry from that link:

1690s, "to contrive, adjust;" 1707, "to contrive and arrange mutually," from French concerter and directly from Italian concertare "to bring into agreement" (see concert (n.)). Related: Concerted; concerting

See it?

<comment><USER9> Yeah, I meant that it doesn't mention it anywhere near where it talks about striving (which was what caio1982 had asserted was the meaning). That only appears in the discussion of the noun "concert". I should have worded that more clearly.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> A relevant classic: "The Usefulness of Useless Knowledge"

[https://library.ias.edu/files/UsefulnessHarpers.pdf](https://library.ias.edu/files/UsefulnessHarpers.pdf)

</comment><comment><USER13> I'm not keen on reading a book that's in any way affiliated with Deepak Chopra. He represents one of the most intellectually bankrupt and destructive forces on the planet. Is he just mentioned offhand or is he given real focus?

I find it baffling that a physicist who is respectable enough to write a book with Stephen Hawking would be able to stomach writing a book with a man who claims that quantum mechanics proves that meditation can affect one's "quantum-mechanical body" and prevent aging.

EDIT: It seems I've misunderstood the book he wrote with Chopra. It's structured as a debate. I still that giving Chopra anything less than open hostility is a mistake, but it seems Mlodinow is not some new-age woo peddler.

<comment><USER14> The article seems to claim exactly that: that the interviews with Deepak et al are anecdotal at best, and don't add much substance to the author's claims.

Seems like this is one of those countless self improvement books: built around a premise that makes intuitive sense (here: having an outlet apart from work improves your performance at work) and listing tons of anecdotes to ingrain the idea further. Basically, a blog post padded with stories to make a sellable book. I'm not the biggest fan.</comment></comment>


Apple's Commitment to Customer Privacy - <AUTHOR> https://www.apple.com/apples-commitment-to-customer-privacy/

<comment><USER2> "For example, conversations which take place over iMessage and FaceTime are protected by end-to-end encryption so no one but the sender and receiver can see or read them. Apple cannot decrypt that data. Similarly, we do not store data related to customers' location, Map searches or Siri requests in any identifiable form."

If all of this statement is true, then I'm impressed. I would have thought Apple to keep more information, such as iMessage logs, for the sake of analytics and Ad revenue.

Good.

<comment><USER3> Apple has never made the iMessage protocol publicly available for review, but from reverse engineering people have not been able to find evidence of end-to- end encryption, just SSL/TLS to and from Apple's servers.

> I do not see anything about retrieving public keys of users you are sending > messages to; hence your message is completely readable/editable by someone > at apple's servers.

[http://security.stackexchange.com/questions/18908/the- inner-...](http://security.stackexchange.com/questions/18908/the-inner- workings-of-imessage-security)

Further, an iMessage message can be received simultaneously on all your devices. Unless your private key is synced via Apple's servers, how would end to end decryption work?

And finally, there were incidents some time back where people were receiving messages intended for other people, but were able to read them unencrypted.

It would be nice to get some clarification from Apple on this, along with making the protocol and its security public.

<comment><USER4> If Apple is using the Obama administration's definition of "can't", then "Apple cannot decrypt that data" simply means, "Apple does not decrypt that data".

</comment></comment></comment><comment><USER5> That term "direct access" crops up again.

> We do not provide any government agency with direct access to our servers

</comment><comment><USER6> Taken at face value, this statement seems good enough. Without actually seeing the data they have, we have to take there word for it.

</comment><comment><USER7> > The most common form of request comes from police investigating robberies > and other crimes, searching for missing children, trying to locate a patient > with Alzheimer's disease, or hoping to prevent a suicide.

AKA Terrorism

</comment><comment><USER8> This is the first time I've heard that iMessage and Facetime are end-to-end encrypted. Can somebody comment on that? I imagine it only works if both ends of the conversation are on iMessage.

<comment><USER3> See my comment at [https://news.ycombinator.com/item?id=5897497](https://news.ycombinator.com/item?id=5897497) for some concerns I have that seem to cast doubt on the claim, along with a link to discussion of reverse engineering efforts that suggest no end to end encryption.</comment></comment>


List of countries by mobile phones in use - <AUTHOR> https://en.wikipedia.org/wiki/List_of_countries_by_number_of_mobile_phones_in_use <comment><USER2> The dutch numbers are from 2009, although somehow they claim to be from 2013. Some numbers (from other countries) are from 2019 so what they are comparing are the number in 2009 in one country to the number of another country in 2019. The list is alright but don't put rankings in front of it as it's apples and oranges.

<comment><USER3> The list as is seems to be of low value, beyond stating what most people would have likely already assumed to be true.

There are 74 countries on the list and only three have very unusually low figures: Cuba, North Korea, Ethiopia. The first two are obvious, the last one has probably changed a lot since ~2013.

After that you spike up to Lebanon at 64 phones per 100 people, with data from 2010. So that's probably 90+ now.

The extreme majority of all adults globally now have a mobile phone, even if it's a $20 KaiOS phone.

<comment><USER4> Ethiopia is at least 62.6 million now ([https://ethiodailypost.com/2018/02/20/ethio-telecom- mobile-s...](https://ethiodailypost.com/2018/02/20/ethio-telecom-mobile- subscriber-base-hits-62-6mln/)) -- guess is that many of these numbers are not kept up to date.

</comment></comment></comment><comment><USER5> I find sorting by connections per 100 citizens to be significantly more insightful, since that controls for overall population size.

Hong Kong is at the top that way...

<comment><USER6> So what accounts for HK's 2.5:1 connections:person ratio? Carrying multiple phones? Phone plus laptop/watch/ipad?

Edit: or maybe multiple sims per phone

<comment><USER7> In many countries people carry more than one phone/SIM card. Mostly for separation of concerns, i.e business and pleasure.

Also for tariffs across providers. It isn't unusual to have one carrier better for data and another for voice/sms.

Another significant factor is contacts. If your contacts are on one network and you are on another, there is enough motivation to get a second device as intra-network is cheaper than cross-network

<comment><USER8> Also, an extra SIM card is a useful option in case one network goes down.

</comment></comment></comment></comment><comment><USER9> Interesting. I would love to see a number for Austria - until this month, it was IIRC one of the few EU countries which didn't require any form of identification for a prepaid phone.

<comment><USER10> Finland still doesn't require identification for prepaid SIM cards.

<comment><USER11> Same with Lithuania. You can pick them up from supermarkets and news stands for a few euro.

<comment><USER12> UK as well. They are not as common as they used to be but they are still available.

</comment></comment></comment></comment><comment><USER13> What macro factors tend to influence the connections/100 citizens? I don't see what Panama, Sri Lanka, Finland, and Saudi Arabia would have in common to have such a high number of phone numbers per capita.

<comment><USER10> The world's first GSM call was made in Finland. The first mass-produced GSM phone, the Nokia 1011, was also made in Finland. Finland may perhaps be the outlier when it comes to phones.

</comment></comment><comment><USER14> by Mobile PHONE NUMBERS in use

</comment><comment><USER15> Sorting by "connections/100 people" is interesting. The top appears to be correlated somewhat to oppressive governments but only loosely (Costa Rica?).

</comment><comment><USER16> What happened to Ethiopia vs Nigeria (20% vs 90% coverage)?? In my model of the world the development index was reciprocal.

<comment><USER17> I'd revise that model, as a general rule West Africa is more stable and developed than the east, especially so when your neighbors are the Sudans and Somalia..

</comment></comment><comment><USER18> Why is Indonesia out of order?

<comment><USER19> Because manually updating the ranking is annoying: [https://en.wikipedia.org/wiki/Talk:List_of_countries_by_numb...](https://en.wikipedia.org/wiki/Talk:List_of_countries_by_number_of_mobile_phones_in_use#Does_the_.22Ranking.22_represent_anything.3F)</comment></comment>


The Froyo Code Drop - <AUTHOR> http://android-developers.blogspot.com/2010/06/froyo-code-drop.html <comment><USER2> Check your build.. you'll have to go ERD79 to ERE27 to FRF50 and FRF72. FRF50 and 72 are Froyo but they are also NOT the final Froyo release for N1. These are test releases however they are signed by Google.. totally legit i.e. stock firmware and bootloader will gladly accept these. stay away if you're on an ATT N1 (or Rogers).

<comment><USER3> I have the Rogers/ATT N1, build number is EPE54B. So first step is to get ERD79, then ERE27, then FRF50 and FRF72?

<comment><USER4> The FRF50/FRF72 updates were built for the T-Mobile N1; they will not run on the Rogers/AT&T Nexus One

</comment></comment></comment><comment><USER5> Now to wait for the Cyanogen Froyo ROM for my G1.

</comment><comment><USER6> Those who have an HTC HD2 (aka HTC Leo) may want to keep an eye on <http://forum.xda-developers.com/showthread.php?t=651632> (Development thread for Linux/Android on the HD2).

In short, there isn't (yet) Android on the HD2. Perhaps this code drop will help.

</comment><comment><USER7> Does this mean I can grab it for my Nexus One and install it now? Or are they still pushing out things via the Over the Air updates?

I'd really like tethering...

<comment><USER8> Yes.

"We've also incorporated into the core platform all the configuration files necessary to build the source code of Android Open-Source Project on its own. You can now build and boot a fully open-source system image out of the box, for the emulator, as well as for Dream (ADP1), Sapphire (ADP2), and Passion (Nexus One)."

I wonder how good it will run on the Dream (ADP1) though. Open Eclair was not much fun.

<comment><USER9> Open Eclair on Dream always had issues, partially because they never finished reverse-engineering all the closed-source drivers. CM5 on Dream has been quite nice for me; it can get a bit laggy sometimes, but beyond that has worked well.

It'll be interesting to see how Froyo's JIT fairs on Dream, for sure.</comment></comment></comment>


Warner Music Group Sells Entire Stake in Spotify - <AUTHOR> https://variety.com/2018/biz/news/warner-music-group-sells-entire-stake-in-spotify-1202897605/ <comment><USER2> From TFA, since people love to react just to a headline:

"Just so there won't be any misinterpretation about the rationale for our decision to sell, let me be clear: We're a music company, and not, by our nature, long-term holders of publicly traded equity," he said. "This sale has nothing to do with our view of Spotify's future. We're hugely optimistic about the growth of subscription streaming, we know it has only just begun to fulfill its potential for global scale. We fully expect Spotify to continue to play a major role in that growth."

<comment><USER3> So why don't they keep the shares of they are so optimistic?

<comment><USER4> My guess is they probably made the investment in the first place to make sure they were onboard if/when music streaming took off. Now that it's well established, and there are competing services, they are probably better off by not playing favorites and being able to squeeze Spotify when negotiating licenses without harming their own investment (similar to what the movie industry is doing with Netflix).

<comment><USER5> What stops Spotifyfrom trying to fight back with more tools for recording artists? Find out what artists need and allow them to self publish on Spotify? I imagine recording an album is orders of magnitude cheaper than just the production cost of Westworld or black mirror.

I mean just following the Netflix route in general. Is Spotify already doing this?

<comment><USER6> Publishers do more than deliver music to the audience. They do market research, facilitate collaboration, fund production, and they promote the music.

Even if musicians can reach the audience directly, which they already could for some time now, they benefit a lot from a publisher that creates opportunities and handles business while they focus on making music. Too many good indie musicians are just a publisher away from success.

<comment><USER7> There are also many publishers who are horrible people, lock people into huge contracts where they basically kill the artist off by forcing them to produce crap. There is a need for another change in the music industry, removing the need for the big publishers and handing power back to the creators.

I agree we need new tools to replicate the other tasks that the producers do apart from funding production / studio time. The question becomes if we have reached a time when having a good twitter/snapchat/facebook profile is enough to promote an artist.

Then there is the question of what an artist/creator actually needs to earn to be successful. Is it enough to live on, provide for your family, and let you save for retirement? Does your goal really need to be to become a mega-star making millions?

Its my opinion that if we reduce the expectancy of the artist/creator to more of a "standard" earning level, then there might not be as much need for the big producers? It might also make artists happier by giving them the option of being creative without as much control of outside forces.

</comment></comment></comment></comment></comment></comment><comment><USER8> The major labels invested in Spotify to help kill illegal downloads and control their future during the transition to streaming. Now, with competing services, they want to make sure Spotify doesn't become dominant and control their future.

<comment><USER9> The thing I don't understand is why Spotify has to be the label's slave. The labels are taking a huge margin from both Spotify who is the distributor and the artist who is the creator.

Why can't Spotify just remove the label as the middle man and give artists a bigger chunk? That would attract artists and Spotify gets to increase their share a bit as well.

Isn't a label just a glorified pimp for an artist?

<comment><USER8> For pop music marketing is everything. The major labels are the curators of pop music. Spotify owning/promoting artists would be a big change and it's probably too early for pure social media promotion.

For ambient/classical music Spotify is already doing it. Placing an order on music they believe their subscribers would like from unknown artists.

</comment></comment></comment><comment><USER10> A lot of people in this thread are confused.

Selling stock can mean a lot of things. For example:

* You need money asap.

* You think the stock won't rise so you decide that your investment should return.

And from the article it looks like they need the money.

Ofcourse we can only guess what they need the money for.

<comment><USER11> For Sony and WMG, it's such a small amount of money that I'm skeptical of this line of reasoning.

</comment></comment><comment><USER12> I think this is great news. Essentially the message this is sending is that we're now safe from 2 things: We're safe from one record label attaining a controlling share in spotify and using it for vertical integration. We're also safe from 1 music streaming service from becoming a monopoly and being able to jack up prices. This looks like great news for consumers.

</comment><comment><USER13> It's hard to fight them or sue them or whatever when you are a part-owner.

</comment><comment><USER14> New WarnerMusic app coming up?

</comment><comment><USER15> > "Just so there won't be any misinterpretation about the rationale for our > decision to sell, let me be clear: We're a music company, and not, by our > nature, long-term holders of publicly traded equity," he said.

How did they come to holding this equity, then? As a music company, are they medium and short term equity holders?

</comment><comment><USER16> Spotify is on the best way to become the Google of the music industry. They're doing alot of things right. Not sure if it's the best decision to sell now but i guess the people from warner know what they're doing.

<comment><USER17> I don't think so. After they went public, they have an actual pressure to make money, and they are not in a good position for that at all. They have a handful of dangerous competitors, all of which are not reliant on the music business.

<comment><USER18> > They have a handful of dangerous competitors, all of which are not reliant > on the music business.

That can be a double edged sword. They can also kill products that are losing money. Apple does not give away much for free. If this is a loss leader I don't see them keeping the service.

<comment><USER19> Apple doesn't like not being in control. There are a handful of core use-cases (besides basic phone functionality like calling and texting) of a smartphone that Apple will simply not give control away. Among these I see the browser, music and maps/GPS which is why I don't see Apple divesting from Safari, Maps or Music.

I don't think Apple is making much money from Maps, and yet here we are, they keep investing into it. If Apple drops Apple Music, they don't want Spotify to come knocking at the door and say: pay us or we will discontinue Spotify on iOS. Much worse scenario: Google buys Spotify. Apple has been relying on Google Maps before, I don't think they want a re-run...

</comment></comment></comment></comment><comment><USER20> Presumably, they'll get a better yield cashing in and spending it on growing developing acts? Or they'll just return it shareholders and the board gets a hefty slap on the back for a bumper dividend?

<comment><USER21> Whether it's the case or not, I think this point is over looked quite often. Some of the most successful businesses I've ever worked for have entirely abandoned profitable verticals to focus on more profitable core business. Opportunity cost is serious business.

</comment></comment><comment><USER22> Tangent but relevant to HN: the book "Fortune's Formula" touches on information theory, Bell Labs, gambling, and the New York parking lot company that went on to purchase Warner back in the 60s.

</comment><comment><USER23> Does this mean they won't have the Warner music in Spotify?

<comment><USER24> Probably not in the short term. But I always felt that Spotify having the labels as shareholders was the main guarantee that they would keep their content on the platform.

Maybe they'll need to start producing their own original content like Netflix did.

<comment><USER25> That really wouldn't work though.

Most people use Spotify like the radio, they listen to the top 40 chart, or they listen to music they know and love.

If Spotify was missing the Warner catalogue, it would be completely neutered. It relies on the fact that I can find 99% of the music I want. Every time an artist or an album gets removed from Spotify, so many people get up in arms about it. Imagine a major label dropping Spotify.

<comment><USER26> Radio style play gas compulsory licensing. If the user can't pick the music directly, Spotify can play any song, without an explicit license.

<comment><USER27> This undermines the entire purpose of paying for Spotify.

</comment></comment></comment></comment></comment><comment><USER28> The linked article appears to have been deleted.

</comment><comment><USER29> It's because Spotify doesn't have a button in UI to clean your queue.

</comment><comment><USER30> Lawsuit coming up?

</comment><comment><USER31> time to drop my spotify subscription, I see.

<comment><USER32> What in the article would lead you to make that decision? What would you replace your subscription with?

<comment><USER31> >What in the article would lead you to make that decision?

The fact that Sony has also sold their shares, and Universal is contemplating it.

If they see Spotify as failing (even if they don't admit it -as Cooper pointedly denies at the end of the article) then that potentially leads to a situation where Spotify cannot offer content from major labels ...at least not at current prices.

>What would you replace your subscription with?

I just started a trial with youtube premium, I already have amazon prime. The article mentions a few alternatives to subscribe to if no longer has the music or content I want.

<comment><USER33> Why would you preemptively cancel a subscription to a service you presumably like, just because you think you _might_ not like it in the future?

If at some time new music stops becoming available, then it would be more reasonable to cancel then. I don't see what you gain out of cancelling it early.</comment></comment></comment></comment>


Linux command line techniques: IO redirection and piping - <AUTHOR> http://blog.interstellr.com/linux-command-line-tricks-you-need-to-know-io

<comment><USER2> This is all pretty basic stuff. One thing that always bites me is trying to use sudo to redirect to a protected file. This doesn't work, because the shell is doing the redirection, not sudo:

        sudo cat ~/something.txt | grep 'hello' > ~someoneelse/result.txt

You can get around this by using sudo to run a new shell that does the redirection:

        sudo sh -c "cat ~/something.txt | grep 'hello' > ~someoneelse/result.txt"

<comment><USER3> sudo cat ~/something.txt | grep 'hello' | sudo tee ~someoneelse/result.txt

or use "| sudo tee -a" (append) in place of >>

</comment></comment><comment><USER4> Not to diminish the value of the article (which seems well written and probably useful to some), but do these really count as "tricks"? That seems analogous to calling variable assignment a C programming "trick".

<comment><USER5> Indeed. If you don't know these "tricks", _you don't know Unix._ That's probably why it says "tricks you _need_ to know".

This probably comes from learning Unix via graphical interfaces, such as GNOME on Ubuntu, OS X, etc., and blog posts by other people with the same background.

Kernighan and Pike's _The Unix Programming Environment_ is probably still the best place to learn this stuff.

<comment><USER6> I think most people don't know Linux now. I'm basing this on the nose-diving quality of replies to technical Linux questions and problems over the past couple of years.

Normally it goes something like this:

A: I have problem X with Y.

B: Oh I don't know anything at all about Y, but if you migrate to Z I bet you won't have the problem any more.

A: Okay I'll do that. Thanks!

or:

A: I have a problem X with Y.

B: Oh did you try (completely unrelated irrelevant thing)

A: No, but I will. Thanks!

Seriously.

<comment><USER5> On average, the BSD community is quite a bit more clueful. Not because the Linux community is dumb, but because Linux is quite a bit more _visible_ \- Complete newbies are dramatically more likely to use a newbie-friendly Linux distro such as Ubuntu than FreeBSD, OpenBSD, etc. (The BSDs seems to get more users who already have experience with Linux or commercial Unices.)

Unfortunately, Linux newbies searching for help may run across bad advice from people with barely more experience, creating a feedback loop.

</comment></comment></comment></comment><comment><USER7> Is there a *nix programmer who doesn't know this? This article is hardly worthwhile to anyone vaguely competent.

</comment><comment><USER6> These aren't tricks. These are the things you learn on the very first day of using a *nix system. How this is being voted up I will never know.

<comment><USER8> I wonder if HN will wind up being sort of like Slashdot in the sense that the experienced people on the site will continue to make the site rich of such experience, but will be accommodating to those not experienced in whatever area, and slowly, over time, the inexperienced will continue to exert influence. Mind you, not as a collective whole, but as an ongoing wave of new people (those inexperienced people will become experiences either though reading the site, or just going along as usual). So could this cause a slight dumbing down of the site? Or will the two groups (veterans vs. inexperienced) just read different articles?

<comment><USER6> I'd like HN to stay experienced only. I'm not sure how that can happen. Maybe new members votes count less, like wise or experienced peoples' advice counts for more.

The alternative is to do what reddit does: subreddits. Or do what reddit doesn't do: automatic filtering (essentially per-user subreddits based on past voting).

</comment></comment></comment><comment><USER9> As far as redirection goes, this skipped the least known bit (IMHO), closing descriptors.

        jmhobbs@katya:~$ cat file-that-doesnt-exist
        cat: file-that-doesnt-exist: No such file or directory
        jmhobbs@katya:~$ cat file-that-doesnt-exist 2>&-
        jmhobbs@katya:~$

</comment><comment><USER10> 'cat christmas_list.txt | sort > christmas_list.txt'

the above is wrong. that will clobber the file.

</comment><comment><USER11> Very nice, thanks for sharing

<comment><USER12> Not really, it's a fraction of the basic functionality of bash, which is not to be learned from a mosaic of random blogposts, but from something more complete. If you want something "more special", try, for example, Unix Power Tools book.

<comment><USER11> Of course its just basics, its a good start for beginners. It reminds me of the stuff I used to teach to junior programmers wanting to explore Linux.. Im already an advanced Linux user, but there's always something you haven't come accross yet... Thats one of the things I like best about Linux in general and bash.</comment></comment></comment>


The Redis Manifesto - <AUTHOR> http://antirez.com/post/redis-manifesto.html

<comment><USER2> 'Code is like a poem'. 'We optimise for joy'.

Too often software development is veiled in acronyms and jargon. It is great to see a lot of humanity in this manifesto. Software development becomes a huge part of a benevolent dictators life. The simple aspiration of saying 'I want to enjoy this' is a refreshing thing to see.

<comment><USER3> Impressively, the Redis code actually lives up to the lofty rhetoric.

<https://github.com/antirez/redis>

It is some of the best C code that I've seen.

<comment><USER4> The very first function of the very first file I read had an algorithmic bug. It's dictGetRandomKey() in dict.c. First it finds a random occupied bucket by rejection sampling. Then it proceeds like this:

        /* Now we found a non empty bucket, but it is a linked
         * list and we need to get a random element from the list.
         * The only sane way to do so is counting the elements and
         * select a random index. */
        listlen = 0;
        orighe = he;
        while(he) {
            he = he->next;
            listlen++;
        }
        listele = random() % listlen;
        he = orighe;
        while(listele--) he = he->next;
        return he;

This sampling algorithm is not truly random. Elements in smaller buckets are more likely to be picked. Especially in moderately-sized dictionaries the skew can be significant, even with a good hash function with pseudorandomness characteristics (Chernoff-style bounds don't say much for small sizes). To say nothing of what could happen in an adversarial situation, where an attacker might heavily skew the outcome of a "random" draw by affecting the distribution of bucket sizes. That could potentially be much worse than the usual denial-of-service attacks on hash tables.

Unfortunately, there's no good way to fix this with their hash table implementation. If they had used open adddressing (which is generally superior to external chaining for other reasons as well), this wouldn't be a problem. You'd just try slots at random until you found an occupied one, which you'd return.

(Even if they wanted to use this skewed sampling method, you can pick a random element in a linked list of unknown length in a single traversal. It's simple enough to be a standard interview question, so the two-pass method is certainly not "the only sane way". The benefit of doing that here is admittedly very limited, since the buckets will be small to ensure the efficiency of hash table lookups, and that cost is dominated by cache misses.)

Pedantry on my part? Perhaps. But if nothing else, it betrays a lack of attention to details.

</comment></comment></comment><comment><USER5> Brilliant. I wish more developers would adopt to these principles.

I recently discovered redis while looking for a website statistics option. I was impressed how easy and well designed redis is. Starting with building it, over using it to sample the data, to querying the data for the charts.

I was so impressed, that we will add Redis to our hosting offerings for Node.js apps.

</comment><comment><USER6> Just FYI, it was written almost a year ago.</comment>


IIS is 0.15% away from beating Apache as most popular web server - <AUTHOR> http://news.netcraft.com/archives/category/web-server-survey/

<comment><USER2> Well i doubt nginx use is as low as they say. Never did trust netcraft stats

<comment><AUTHOR> It's just interesting to see how much Apache is dropping.

I use both nginx and IIS, both are really nice to work with. I personally cannot stand using Apache.</comment></comment>


Feature comparison: iOS3 and 4 VS Android 2.1 and 2.2 - <AUTHOR> http://www.androidpolice.com/2010/06/10/apple-ios-3-4-vs-android-2-1-eclair-2-2-froyo-fight/

<comment><USER2> Another utterly useless comparison, employing the classic marketing trick of ignoring any features which are unique to your competitor.

From TA: "Now, the sticky part: being that we're an Android-centric blog, there's an obvious bias. However, I'd like to make it clear that we tried to pick the features used in the comparison as objectively as possible so as not to tip the scales in either direction."

And you failed miserably.

For the record: My phone of choice is a Nexus One.

<comment><AUTHOR> Heya! Mind letting us know which features we ignored on the iPhone? If this was done it was an honest oversight. If you'd care to point out the ones we missed, we'll be happy to incorporate them into the chart.

<comment><USER3> How about multiple Exchange account support? International keyboards and localization support (you mentioned user installable keyboards, but iPhone already has international keyboards for many countries built in). Kanji input from handwriting recognition? Supporting Exchange Activesync device security restrictions (I have a friend with a N1 and he can't even add our corporate Exchange account in 2.1 because his device doesn't comply with Microsoft's rules).

Also, I could tell a lot of bias when you talk about 3rd party apps. You ding iPhone because it needs to be jailbroken but fail to mention that an Android phone has to be rooted in the same manner.

More bias in wifi tethering - you fail to mention that the only way to enable it is to install 2.2 which is an unapproved firmware update. The carrier approved version that the vast majority of non-geek users will get WILL have carrier charges if you want to enable wifi tethering. You think Verizon, Sprint, AT&T, and T-Mobile are just going to give it away for free when they charge everyone else?

<comment><AUTHOR> Hey, thanks for the feedback.

"How about multiple Exchange account support?"

I'll add this row. Both Android and iPhone support it, so it's a wash either way.

"International keyboards and localization support (you mentioned user installable keyboards, but iPhone already has international keyboards for many countries built in). Kanji input from handwriting recognition?"

Also things I can add. Edit: I'm also removing the user installable keyboards row entirely.

"Supporting Exchange Activesync device security restrictions"

Yeah, good call on this. iPhone supports it in both OS versions, Android 2.1 doesn't, but 2.2 does.

"You ding iPhone because it needs to be jailbroken but fail to mention that an Android phone has to be rooted in the same manner."

Android doesn't have to be rooted to install third party apps. You can take a brand new, unrooted android app(unless it's the ATT backflip), and enabled the ability to install third party apps from the settings. You can then go to any website, download an APK and install it. You only need root if you're install an Android app the requires root.

"More bias in wifi tethering - you fail to mention that the only way to enable it is to install 2.2 which is an unapproved firmware update. The carrier approved version that the vast majority of non-geek users will get WILL have carrier charges if you want to enable wifi tethering. "

Yes and no. It is available in 2.2, and it is up to the carriers to decide about charging. I can add a note, but as far as we know it's in 2.2 and there's no charge to use it.

</comment></comment></comment></comment><comment><USER4> If you're comparing two products by comparing a list of features, you're doing it wrong.

The most ridiculous example of that in this list is "On-device Video Editing". That is not a feature you can compare with a simple yes/no.

<comment><AUTHOR> You're right - I'm going to remove that category entirely. Originally it was there because I was under the impression Apple was offering it(and thus tipped the scale in their favor). I've since realized that the iMovie app they demoed would be an additional $5 purchase and thus qualify as '3rd party', nullifying the need for a category comparing OS features if neither OS actually includes said features.

<comment><USER3> iMovie is a 1st-party app, although it does cost $4.99.

<comment><AUTHOR> Yeah, so it's technically 1st-party, as it's developed by Apple, but you have to buy it separately, which was my point. I removed the video editing category entirely.

</comment></comment></comment></comment><comment><USER5> Maybe they should add another category: "Doesn't look like garbage." Android 2.2 is still failing on that one . . .

The intangibles matter, and they're entirely absent from this feature list. Until Google understands that, Android will always take a back seat to iPhone on design.

</comment><comment><USER6> Question: How exactly will carriers charge for tethering? I have Nexus One running 2.2 - turning on tethering is just one touch.

Are they going to content sniff and just hope that catches most people? Or are the non-unlocked Android phones restricted to carrier approved apps?

<comment><AUTHOR> The carriers likely have the option to remove this feature/menu item entirely when they push their OTA out to phones.

</comment></comment><comment><USER7> I would add widgets and turn-by-turn navigation. Live wallpapers are rather... unproductive toys, don't know if i would've counted them. CalDAV calendar support maybe.

</comment><comment><USER8> Marco Arment on feature checklist dysfunction:

<http://www.marco.org/380868888>

<comment><AUTHOR> Ha, that's awesome.

I'll keep that in mind the next time something like this is pitched.

</comment></comment><comment><USER9> The two no's for Android are hardly `no`s anyway.

Orientation lock can be specified from the Settings and can be overridden on a per-app basis.

Anyone using the homescreen is an idiot. The stock Launcher is terrible. LauncherPro is marginally better than ADW Laucnher which are both 100x better than the stock Launcher.

That having been said, there is a fair amount of feature loading here for Android. I think it's an accurate comparison, but not a fair one as it leaves out features that would have 'Y's in the iOS columns and 'N's in the Android columns.

<comment><AUTHOR> I don't mind adding those categories (the 'N' for Android ones) if you can think of a few.</comment></comment>