
Organize Your Closet Like a Computer Organizes Memory - danso
http://www.wired.com/2016/04/computer-science-reveals-exactly-organize-closet/
======
jzwinck
I followed this advice. Now I have two closets and I have laid them out
identically.

They are a mile apart, so if I'm inside one and want to get something from the
other, it takes forever.

There's no way to quickly discover if my wife has added clean clothes to the
closet I'm not in. She only tells me at dinnertime.

My closet manufacturer sold me the pair of closets for just a little more than
twice what a single one cost, but a four-closet setup was ten times the price
and a three-closet variant was not available. They told me there was an eight-
closet setup too, but nobody really knew how to use it effectively.

Each closet has a cubbyhole which is always open and super accessible. It is
large enough for one single sock. I complained about this and was offered to
replace all my socks with more expensive ones that take half the space but
barely cover my ankles.

The next larger compartment is big enough for one whole outfit, but not in the
wintertime. Sometimes at night if I have nothing to do I will fill it with the
outfit I want to wear the next day. By the next morning there's a decent
chance I'll have changed my mind, but that's OK, it only cost me a few
calories.

There's a larger door I can open which has a few outfits in it. I use this
pretty often, but the damper on the door is super-stiff and it takes quite a
while to pry it open. And if one of my siblings also wants to use it, I have
to wait. Ten years ago I lived by myself, but now the house is pretty crowded
and we don't have space for more closets.

Finally there's a huge area in the back that I can walk into and get anything
I want. The distance to get there is about as long as a football field. Once
in a while something I stored there gets damaged, but there's just so much
stuff that I probably won't notice. I have no idea how they fit this thing in
my house; those closet guys are geniuses.

~~~
happyslobro
Disclaimer: I'm the founder.

Hi! We search for fashion trends, evaluate their relative merits, and identify
sets of clothing that score highly across several parameters: tight fit, color
coordination with the significant other's wardrobe, and maximum display of
wealth. We understand that it is critical for everyone to display more wealth
than anyone else. So important that no expense should be spared, and no
clothing should escape our evaluation, no matter who it belongs to or how
private it is. We then share this information with our clients, in order to
help them make important decisions in the morning. Let me tell you how we do
this.

We start by preparing a big space to work in. This is quite a task in itself;
connections must be established with real estate agents, warehouses must be
leased, and specialised sorting equipment must be prototyped and then
assembled in factories. It is important that all of the warehouses are shaped
identically and arranged in a regular grid, with short straight roads directly
connecting each block to local hubs, and each bug directly connected with
roads that we have exclusive access to. We really want a dedicated highway for
our fleet of trucks, but that will have to wait until we can convince our
investors of the need to start building our own infrastructure; we just don't
have the means to build a highway ourselves, yet. But being fashionable when
we ask for big favours has been shown to increase the odds of success.

Much of the clothing that we need to compare, we can purchase in bulk from
distributors. Their suppliers might not be happy to know that we are getting
early access to one of everything, before it arrives in stores, but they don't
need to know about that. Getting this early peek at emerging trends is worth a
great deal to us. However, that only shows us what will become available to
wear in the coming season, not what people are actually interested in wearing.
For that, we need to see what real people are wearing, right now.

Convincing people to let us borrow their clothes isn't easy, even if they
weren't going to wear it while we are evaluating it in the first place. They
tell us it's creepy, that they have a right to look unique, and that this
makes them worry that some day, they will be judged on something they wore a
long time ago. It's best for everyone concerned, if the regular people just
aren't aware when we borrow their clothes. We have developed some really
remarkable systems for making that happen.

We start by grabbing their attention with some well placed stories, crafted to
appeal to to people who dress a certain way, or at least, who were dressing a
certain way the last time we analysed their wardrobe. These stories, that are
seen by many people at the same time, give them something to group together
and talk about, at work, over dinner parties, and at the pub. We can get
agents into these groups, who can help everyone make friends with each other,
and then steer the conversation towards a plan for an awesome party next
weekend.

For everyone who accepts party invites, we take down their contact info, and a
little other info that we tell them we need in order chauffeur them home when
they're wasted, and schedule a job to intercept their wardrobe. Many people do
not do their own laundry these days. They used to, but as the laundry-as-a-
service industry has grown, people have just gotten lazy and lost that skill.
These laundry services operate on razor thin margins, and are always looking
for any way to make extra money. Many of them have to offer their services for
free, in order to capture clients in markets that are dominated by others. In
some areas, competition has driven the price of laundry service all the way to
$0, permanently.

These laundry services are only too happy to have us return laundry to their
clients, especially if we are the only ones who are actually willing to pay
them for anything. This is something that doesn't take them any effort to give
to us. But it is important that their clients can't tell that it is us doing
it; those clients just don't want to have anything to do with people who have
occasionally been caught red handed with clothes they shouldn't have. And that
one weekend when someone tricked our drivers into diverting all of the clothes
to Romania, that was bad. People were furious. I can't believe there were no
legal repercussions from that.

Anyway, once we have clothes streaming in to the warehouses from all over the
continent, the really interesting work begins. Dirty clothes and things that
aren't really clothes are filtered out on arrival (how does that even happen?)
Dangerous things wrapped in clothes are scanned by x-ray, and then handed over
to an bomb squad (some people just like to break stuff). Then, thousands of
workers make many passes over racks of clothes, each one looking for a
particular feature, tagging the clothes that pass their checks. A hierarchy of
analysts then passes along each row of racks, collecting statistics about the
tags, and leaving a log at the end of the row. More analysts run down the end
of each row, summing stats, and finally produce a warehouse report. Finally,
the top analyst goes around gathering and combining the stats from all
warehouses, and delivers a report to our wardrobe scientists, a day later. At
that point, we can return the clothes, pack up the equipment, and release the
leases on the warehouses.

These wardrobe scientists are super clever people. They can spot a correlation
between the average thickness of clothing decreasing over the spring and the
falling price of oil in the Middle East. By looking at the shapes of graphs of
relationships in the data, they can even determine that people wearing
thinning clothing are actually causing the price of oil to decrease in the
Middle East! This is an incredibly valuable insight. It enables us to play the
stock markets in ways that people without access to these clothes can't
comprehend, until we walk away with a pile of fresh unicorn socks.

This is why it is important to know everything about everyone's clothes, all
the time. We demonstrate our knowledge to potential investors, by wearing the
clothing of tomorrow, today.

If you have are passionate about laundry on a massive scale, or enjoy wearing
the trendiest clothes to parties and shaping the fascinating discussions of
random groups of people, come check us out! We offer free lunches, prepared by
world class chefs, unlimited paid vacation, and best of all, we have a fair
sock sharing program in a rapidly expanding venture.

~~~
miseg
Spam?

~~~
happyslobro
HN / big data parody. I guess if TL:DR then it might look real... Just to be
clear, I don't have a startup, I won't steal your clothes, and I am not
willing to share socks with you.

I'm working on automating part of an advertising operation, but I am a diehard
adblock user. That's what motivated me to write.

------
turaw
By the way, that article is an advertisement for "Algorithms to Live By: The
Computer Science of Human Decisions" [1] in case you're triggered by native
advertising. That out of the way ...

As the article states, caching is useful when you have memory stores with
different access speeds. This is (frequently, in my experience, caveat caveat
etc.) not the case in reality, where you only have the one storage area that
has a fixed, fairly low access speed. People are mostly bottlenecked by
scanning rate, so it'd make more sense to use an indexing mechanism. Maybe
b-trees for closets? B-trees, perhaps, if you store things in boxes?

[1]:
[http://www.amazon.com/dp/1627790365/](http://www.amazon.com/dp/1627790365/)

~~~
analog31
_By the way, that article is an advertisement..._

Ironically, Wired wouldn't let me read it, because I've got an ad blocker
turned on.

~~~
linhchi
Yeah, after a few seconds of consideration, I gave up on Wired, not my ad
blocker.

~~~
kurlberg
On a whim I gave w3m (or w3m-el to be precise) a try on this page, and it
worked - I found a new adblocker-blocker-blocker, and I'm quite happy I did
got to read this gem of a summary at the end of the article:

>In short, the mathematics of self-organizing lists suggests >something
radical: the big pile of papers on your desk, far >from being a guilt-inducing
fester of chaos, is actually one >of the most well-designed and efficient
structures >available. What might appear to others to be an unorganized >mess
is, in fact, a self-organizing mess. Tossing things >back on the top of the
pile is the very best you can do, shy >of knowing the future. You don’t need
to organize that >unsorted pile of paper. > >You already have.

~~~
cableshaft
If they ever make a sequel to the movie _The Big Hit_ , The "AdBlocker-
Blocker-Blocker" will have to be used instead of the "Trace Buster Buster":
[https://www.youtube.com/watch?v=Iw3G80bplTg](https://www.youtube.com/watch?v=Iw3G80bplTg)

------
Splines
Keeping things in a single pile makes insertion O(1) but makes retrieval a
linear O(n). Depending on your usage pattern this may or may not make sense.

Personally I sort my mail by category (junk mail, mail my wife might be
interested in, mail I am interested in). This means there is a one time linear
traversal of my mail by me but this allows constant time retrieval of a list
of mail by my wife, which she appreciates.

~~~
tamana
Not O(n) because your eyesight is highly parallel pattern recognition, and you
can move items in batch.

~~~
Splines
The bottleneck isn't the optical system, it's the mechanical swing arms that's
the gating factor.

------
danso
I think I must have just picked the wrong courses but I wish caching was
covered more in the comp sci/engineering courses...not just the technical
aspects of it, but how the implications of caching (and invalidation) are a
great window into thinking about how to design for the real world, and the
overall difficulties of information transfer between humans. Even though I
never work on anything of such scale, I always like reading about caching
architecture and implementation from shops like Facebook, just because it's
easy to imagine how it connects to our information problems at the individual
level...e.g. asking someone out on a date based on stale information about
their relationship status.

------
infogulch
Organize your closet like Java: _everything_ goes in a container.

~~~
mc808
I thought you were going to say everything goes on the heap.

~~~
infogulch
No that's just when I'm organizing my laundry.

------
r24y
My personal style is a lot like Haskell: I barely understand it, but give me a
few minutes and I'll probably come up with something passable.

------
kazinator
> _Organize Your Closet Like a Computer Organizes Memory_

I do!!! See the massive fragmentation?

Too bad closet objects can't be chopped up into equal sized "page" objects,
yet still be available as unbroken through a virtual mapping.

You can't move anything, by the way, because I have a reference to it that you
don't know about.

> _Now you have two problems._

And that's before regexes even came up as a topic.

~~~
infogulch
I'm pretty sure regexes increase the problem space exponentially with a base
of 2. See, you don't notice before because in the original quote you encounter
" _a_ problem" which is 2^1 == 2 problems. But since you brought up regexes
and we already had two problems that's 2^2 == 4 problems.

------
urza
I have my clothes all over the place. On the floor, on the wardrobe, on the
banister, on my bed. Even washed clothes just ends up in piles on floor,
because I am too lazy to put it into closet. (Why to put it there when I will
just take it out tomorrow? Better keep it here.) Every morning I just look
around until I see something that I like to wear today. I guess I follow the
Random Access Memory organization..

------
coroutines
So, I've added another [smaller] closet for faster access in front of my
original closet. I've experienced several cache misses and I've decided just
to wear what I'm wearing... for the rest of my life. Is this data-oriented? Am
I doing it? :O

Are the poorly-dressed just disgruntled system analysts???

------
kybernetyk
So I should take my closet, partition it into small 4k chunks, throw
everything unordered in there and when I want retrieve something I look at the
model of a perfect closet which I keep next to the real closet to find out in
which of those 4k closet-chunks the stuff I'm looking for is? ;)

------
bobmichael
The book this article is excerpted from ("Algorithms to Live By: The Computer
Science of Human Decisions") looks interesting; I'm thinking of buying it. Has
anyone read it / does anyone have an opinion about it?

------
mrob
The article recommends you browse files on your computer by "last opened" time
instead of the default alphabetical order. The recommendation is based on this
paper:

[https://www.cs.cmu.edu/~sleator/papers/amortized-
efficiency....](https://www.cs.cmu.edu/~sleator/papers/amortized-
efficiency.pdf)

The recommendation is obviously wrong because the paper is talking about
something completely different. Selecting files from an alphabetical list is
roughly O(log n) not O(n), because you know the alphabet and can binary
search.

~~~
justinhj
Actually in the real world browsing files by access or modified time is
usually quicker because the number of items is small. There may be a set of
10-20 files that I've recent opened and the one I want will be in the top 3-5
very often. Doing a binary search invokes scrolling up and down a large list.

~~~
tamana
People are really really good as estimating and sorting access time and
creation time, though, so we can binary search through that.

People who use paper journals report they are really could at finding items by
remembering when the related activity happened.

Emacs org mode (or is it TODO.txt, I forget) also uses this principle.

------
jobigoud
It's funny, we inadvertently implemented something along those lines a few
months ago, it works pretty well so far.

For things that are no longer clean but not ready to go in the to-wash bin, we
have a cache: separate very-small bins (capacity about 4 pairs of socks, x2)
and mini racks. These are add-ins to the side of existing closets and quicker
to access.

------
castratikron
I follow the "fib heap" method of keeping my apartment clean: don't bother
keeping your apartment clean during item insertion, and instead clean your
apartment only when its time to retrieve an item. Constant time insertion cost
and amortized logarithmic time retrieval :)

------
tamana
How about organizing closets using appropriate algoritgms from gener computer
science, not by mapping it to a completely different hardware atchitecture and
access pattern?

Submarines aren't fish, though both travel in water.

------
sarreph
I tried to destroy my closet once but the closet-recovery authorities super-
cooled it and alas all my clothes were exposed to my dismay...

------
ScottBurson
You mean, in a 48-dimensional hypercube? Great idea!

~~~
analog31
Yes, a closet where the contents become pure random entropy if you ever lose
the key. ;-)

------
Decade
Bufferbloat == San Francisco Bay Area housing market.

The offices and jobs create demand for housing, but housing hasn’t been
constructed anywhere near as quickly. We don’t want to lose packets of
engineers, so we pile them into the buffer. The amount of free space in the
buffer has shrunk so much that the cost of latency is spiking exponentially.

We can try fancy schemes to guarantee QoS, but those work only for small
numbers of applications on a limited scale. As any good network engineer can
tell you, the only real solution is to build more.

------
ukyrgf
The scrollbar for this site just disappears on Firefox!

------
chadlavi
huh, today I learned wired.com is a jerk about adblockers. guess they won't be
getting my pageviews anymore.

~~~
tamana
I can only assume the feeling is mutual.

