top | item 1841779

Ask HN: How have you applied computer science IRL?

30 points| augiehill | 15 years ago

Sooo... I just got done putting away a load of laundry and realized I've applied efficiency techniques to the process. I first sorted the clothing types into buckets (piles IRL) then performed type-specific processing on each of the buckets, reducing as much as possible my disk I/O (turning around and taking a couple steps to put the clothes in the drawer/on the rack IRL).

How have you changed some process in your life based on computer science algorithms or principles?

38 comments

order
[+] jcsalterego|15 years ago|reply
I don't know about you guys but when I go grab dinner with my philosophical-type friends, we all share a fork and knife.
[+] itsnotvalid|15 years ago|reply
That sounds like a problem where computer science techniques must be applied to solve. Lucily there aren't just forks.
[+] nl|15 years ago|reply
Sure.. exponential back-off for trying to get my son to sleep at night. Didn't work.

Mark & Sweep Garbage Collection for my desk. Commonly used stuff stays on the top, and then I periodically pause for garbage collection where I drop the lower layers into a draw. Occasionally I do survivor generation compaction, too.

When doing washing, I always build an index by hanging it out in order, so then putting it away can utilize the index (in English - I put pairs of socks together when I hang them out, so when I bring them in they are already paired)

[+] corin_|15 years ago|reply
I was trying to spot my friend in a crowded room so I did a regexp visual search for people with brown hair.

I was feeling pretty tired last night so I decided to put myself into sleep mode.

I'm now too ashamed of myself to make up a third.

[+] alanthonyc|15 years ago|reply
I use binary search all the time for practical problems.
[+] stakent|15 years ago|reply
For example fault localisation in control systems.

At least when there is some documentation and one can deduce the signal path in the system.

[+] yogsototh|15 years ago|reply
I count to 31 with one hand.

I use the standard count up to 5 with one hand just for communication purpose.

[+] eqdw|15 years ago|reply
I use base six, with one hand being 6s and one hand being 1s. It's a tradeoff between counting capacity and ease of calculation.
[+] RiderOfGiraffes|15 years ago|reply
I used to do that, but found some of the various combinations too difficult to maintain. I tend to count to 10 on each hand, counting the thumb as five and a fist as ten.
[+] chad_oliver|15 years ago|reply
how? I can understand 12 (use your thumb to count the 3 joints on each of your 4 fingers), but 31?
[+] dackmilliken|15 years ago|reply
I work in retail atm and use algorithms a lot (in my head at least).

E.g.: to stock beer we have a big pile with myriad brands. To make it easier to stock I stack it to where each type is easily accessible. Maybe analogous to certain heap paradigms... .

I also think about how I can reduce touching of the actual product (unload truck -> floor, as opposed to unload truck -> belt -> stock -> floor).

Basically being lazy and trying to make my life more efficient/easier leads me to utilize algorithms.

[+] teach|15 years ago|reply
I'm a musician, and have a folder full of songs in my repertoire. I used to strictly alphabetize, but now I use dividers lettered A-Z (hash table), with each letter organized alpha at first, but move-to-front whenever I perform a song (MRU). I can now often find the song I want in 1 or 2 lookups, which really beats binary search.
[+] stakent|15 years ago|reply
Sorting room full of dated reports from several dozens of years.

First pass: put raports in the bins year by year maintaining sort order in the bins. Binary search used to place new report in the bin.

Second pass: put year by year sorted reports in the correct order on the shelfs.

I don't remeber the name of the algorithm used and the book from which it come was given to the library.

[+] Natsu|15 years ago|reply
That's radix sort.

For what it's worth, I often have piles of sorted documents to sort together, so I've used merge sort on RL objects fairly regularly. Binary search, too, though I use the optimization where it's not strictly binary when I have a guess about where the item should be.

I've probably used a few other algorithms, but I can't think of any off the top of my head.

[+] pronoiac|15 years ago|reply
I'd break the first pass down further, putting items into the (yearly) bins without sorting within each bin, freeing up bins, then subdividing them into smaller piles (say, by month), then sorting those.

This insight is courtesy of a sorting algorithm that's optimal for systems with very limited memory but multiple tape systems, if I remember correctly. Also IIRC insertion sort can beat doing the binary sort in situations of 7-20 or so? Much over a dozen, I can't use my fingers of one hand as bookmarks to do, say, three comparisons to find the right place, & I'd rather break it down into more piles.

[+] bayareaguy|15 years ago|reply
I try never to use more than 70% of my available space or other resources.

If asked to do something, I usually give a promise that I'll do whatever asked but generally defer the actual work until forced.

I always follow the tit-for-tat strategy whenever dealing with anyone.

I make a point of including redundant details in all communications so that others can catch my errors.

[+] dasil003|15 years ago|reply
The quiet satisfaction of knowing that dynamic programming is something much cooler than Ruby.
[+] mulletcat|15 years ago|reply
My friends and I figured out that the counter showing beer consumption at a restaurant with a beer tap on each table wouldn't increase if we poured an amount smaller than the smallest amount necessary to increment the counter. Many glasses of beer were had by pouring tiny amounts repeatedly.
[+] anrope|15 years ago|reply
I have a specific schedule that I follow when starting different parts of dinner to make sure that everything is done at the same time, including adjustments for different pots that I know cook differently. I suppose you could think of this as some sort of scheduling algorithm.
[+] Travis|15 years ago|reply
I use graph algorithms when I'm walking somewhere downtown. With the shortest path defined by lights that are green / red. Sometimes I'll switch it up a bit and use a different search algorithm just for variety.
[+] adamcharnock|15 years ago|reply
I realised that throwing more of my time at a task is an O(n) solution to the problem of not having enough time. There must be a better way...
[+] _b8r0|15 years ago|reply
I use the nearest neighbour algorithm to solve the travelling salesman problem, when travelling to sales meetings.

I'm going to shower now. I feel dirty.

[+] eqdw|15 years ago|reply
I've used resource allocation and scheduling quite a bit. It's amazing how much of Operating Systems bleeds over into the real world
[+] chewbranca|15 years ago|reply
The concept of job scheduling algorithms made me much more conscious about the order of approaching things in my day to day life.
[+] itsnotvalid|15 years ago|reply
I remembered sorting out stuff by asking a few classmates to sort some of it individually and then combine them.