November 16, 2009

litl experiences: "oooh i like that."

not only has the litl been designed to reduce computer frustration, but also to maximize totally sweetness. aspects of the litl experience are truly different from the status quo. so what exactly do i mean? i'm talking about those moments when you are using a device, and you go "oooh yeah, i like that" and it changes the way you live. you wonder how you got on without these things and why it took so long to happen.

other game changers:
  • planning your cross country road trip on your phone
  • watching any episode of your favorite tv show whenever you want
  • holding entire musical collections or libraries of books in their palm
these are all actions that at one point were inconceivable, but technology and society advanced and those are now available to everyone via the internet.

here are a few of the cool things that litl has in store for you:
  • for every webbook purchase, litl asks for your favorite websites as well as which photo services you might use. since this data is synced in our servers, your webbook gets pre-populated with those sites as web cards along with the weather channel for your city. you don't need to enter ZS5G4-LVE32-MRYUO-2PWWL or any authorization key you might find printed on a cdrom to get at your data. it just is on your webbook.
  • how many times have you asked yourself the question, "now, which computer did i save that document on?" or "on which machine did i find that website?" or needed something that was on a laptop that someone else was busy using? with the litl there is no hard drive, and all of your data is synced to the cloud. your channels and settings are also shared among all of your litl webbooks too! because of this, it no longer becomes "your computer" and "my laptop," but instead "our litls!"
  • and the most apparent differentiator - easel mode. you can see all the pictures and read all of the descriptions of how the webbook "flips over to an "easel" mode, suited to passive viewing. " and you can watch the hands on videos. but let me tell you, the first time i saw an early prototype and flipped it to easel mode, my jaw dropped. it made so much sense, i wondered why it hadn't been done before! this mode opens the door for innovation and new ways to view the internet. i can hardly wait to see what the community comes up with!
i remember a conversation with john chuang (litl ceo), he wanted to make a product that users thought was awesome. i corrected him, the litl isn't just awesome, there are some differences in this webbook that make it totally sweet.

November 04, 2009

litl: there's a server component too

It's been quite a while since my last post, mostly due to all the work being put into litl's first product launch. We has come a long way and the team has definitely put together something special. As with most hardware product launches, people want to about the technical details of the software. They can range from architectural decisions at the start to interesting problems we've attempted to tackle along the way. The litl webbook has been given a lot of attention from it's unique hardware design and formfactor, but the software's use of the cloud has even larger implications. The litl's use of online photo services introduced a number of problems and challenges that I'd like to talk about.
designing for new photo services:
We needed to design our software to support multiple photo services. The litl currently tracks all of your photos stored in flickr and Shutterfly, but this is far from a complete list. Not requiring a client software update for every new service was key. Whenever a photo query is needed, send it off and let GAE do all the heavy lifting. The async nature of taskqueues allowed us to chop up and perform pretty large requests rather sanely. Having well-behaved OAuth and REST APIs made a huge difference.



the media wall:
Looking for that picture from last Thanksgiving? You don't need to remember which album it was filed in, or if you used this program or that photo service. Not only does the litl webbook display your photos stored in online services, it even aggregates all of them into a single timeline view, regardless of account.
Got new baby pictures that you want to send to your family and friends? Share a photo channel with them once, and have all subsequent uploads be included as well. Since the photos are already on the cloud, it's even easier to share. The huge amount of information required and tasks related to performing these searches forced us to change the way approached this problem several times.

This has been a very thought-provoking and challenging road. But one great thing about attempting to do something exciting and different is that the number of opportunities to learn and grow. It seems like this shift in focus to leveraging existing web services to handle and share our information with our friends and family instead of building larger machines to store everything locally is uncovering new types of problems to solve every day. Let's get cracking!

September 22, 2009

one big continuous clap

when you go to a u2 concert, and bono tries to get everyone to clap in unison, you end up thinking about acoustic properties of the stadium and sound deterioration as a function of distance and volume, right?

premise:
they begin to play "bloody sunday" and bono makes the whole "everyone clap like me" motions. as usual, most fans aren't really that coordinated, coupled with the confusion of seeing him clap at one rate, hearing him clap at another interval, and everyone else around you smelling like beer, it takes quite a bit of time for the group to settle into a groove.
while the relative chaos ensues, i begin to wonder if i can, similar to focusing on someone speak whispering sweet nothings at a loud bar, tune everything else out and zero-in on clapping patterns that aren't made intentionally. with enough tries, i can hear even subdivisions, but not much else.
by the time i try to hear triplets the clapping is now reaching me more or less in unison, with a little fuzziness before and after when i perceive the clap to occur, sort of like
f(x) = | sin(x) |

then i noticed that as my neighbors clapped louder my task became much much harder, which made me switch my alter my train of thought (and this is all during the intro of the song mind you, because rachel gave me a, "please tell me you've heard of this song your face looks so lost" kind of look)

i began wondering given the appropriate acoustics, how many people would you need to arrange so that if they all clapped once at the same time (perhaps on a global countdown or coordinated via electric shock or something) that i would be able to hear continuous, same-volume sound for n seconds.

things to think about:
  • what kind of volume deterioration are you going to get out of the clap or sound? ie what kind of rate do sounds lose volume as they travel in the air?
  • this is probably impacted by altitude (let's to go denver! think john elway vortex football)
  • how loud are the people in the back going to need to be, how soft are the people right next to me going to be?
  • do i need to pack people in to try to get a close to continuous function of clapping? or can i just sparsely arrange people?
  • does the formation of the clappers matter? straight line (doppler effect) or should they spiral out away from me?
  • will i need to account for sound waves interfering with each other?
  • should i be using a different sound like an "aaah" or "beeep" or an explosion?
  • am i going to need to have problems achieving the volume necessary at larger distances?
  • how do we convince that many people to participate in this study/event?

[edit: people at work began to tear this train of thought down claiming
  • the clap is too noisy to really be that good of a sample sound to try and repeat
  • you wouldn't really be able to get much continuous sound at gillette stadium (roughly only 1/5s given sufficiently loud clapping at the far ends)]
  • you'd need another U2 concert to test out my theory
further thoughts for achieving 1s of continuous sound:
  • you can obviously do the calculation using the speed of sound to determine that you'd need someone roughly 1100ft away. so that's a problem already
  • to be sufficiently loud that you're the same volume at 3 football fields away as the person standing next to me is going to be pretty tough
  • directional vs non-directional sound and volume over distance?
  • i think U2 won't do another concert here for a while

August 17, 2009

is anything really possible?

so my club ultimate team just won our leagues end of season tournament, and there was a recurring theme in our huddles/prep-talks and such: this whole concept of "giving 110%"

now my inner geek compelled me to incite some friendly discussion, constantly stating that 110% is impossible, which normally got the response, "anything's possiblllleee!"

orly?

it seems like there are really a few ways that you can achieve the fabled 110%
  • there being a competition in which you give N% and your competitor is at (N-110)% so that your relative effort is 110%
  • have your reference point be fairly conservative, like running 110% faster than mikey or being 110% uglier than your mom.
  • being kevin garnett
  • slacking off during the calibration phase of your experiment so "100%" is easy to achieve.
  • pretty much as long as you frame your phrase with enough qualifiers that give people a frame of reference w/which to measure percentage, you should be good.
  • however the 110% absolute percent is still not possible.
another interpretation (it's all in the semantics) is possibly just giving someone 110% of the desired amount
  • think about gratuity at a restaurant
  • too much attention (stalker, much?)

July 27, 2009

no, there wasn't a "mr inner geek moment"

for some reason in that epic car ride back from wildwood the dvorak keyboard came up.
rein's deli ->
rachel's grandmother being an amazing jewish baker ->
her also being a typist in a typing farm back in her day ->
typing words per minute ->
is that even possible with old typewriters ->
QWERTY vs DVORAK.
this whole trace led me to think about a quote from arunas, one of the instructors at the YSP. if you were to look back far enough, the young scholar's program at uofc was one of the most influential forces in my life. in terms of a) nurturing my inner geek, b) introducing me to ultimate frisbee, c) made me decide to go to chicago for undergrad. and honestly most of my IGMs are a reference or anecdote to my time there.

one summer in 9-10, arunas is talking about the chinese remainder theorem and deadpan-ly credits it to "mr chinese remainder." it's really subtle and only a few people actually pick up on the joke. he's poking fun at how lots of theorems in math are just named after the person who discovered it (or made the conclusion famous.) think about people like fermat's last theorem, euler's theorem, stuff like that.

either way, when QWERTY and DVORAK came up, people wondered if maybe the dvorak keyboard was named because the top six letters were actually d-v-o-r-a-k or not. i was convinced that it was in fact mr dvorak.

to go a step further than one would normally in their right mind, i am starting to wonder how many other things that are now common place items are actually just the name of the person that invented or popularized them.
i'm having trouble finding others, but imagine if there was a "mr douchebag" that actually caused the term, or if bacon was because of mr bacon!

so how do you correctly boil an IGM?

spent the weekend on the jersey shore playing ultimate. had a great time at the tournament, very laid back, great weather, close to the ocean. not much more you could ask for, except a shorter drive maybe. although the drive was great, highlighted with us throwing a donut into another car at ~65mph. on our drive home (which takes ~7hours or so + stops) i remembered a whole section from the 'scientific visualization' class i took at chicago.

an ancient proverb or something asks the question "what is the correct way to boil a frog," knowing that if you put the frog into already boiling water, it would just jump out. barring clever usage of a lid or something, you want to put the frog into luke warm water, and then proceed to boil the water. the thinking is that the rate of change of the water's temperature is low enough that the frog doesn't notice that it's in a pot of boiling water. presto!

that assertion is the basis of this IGM. it had to do with rate of change thresholds of our senses at which they register as a noticeable change. this thought process was triggered by driving from the mid-afternoon, through dusk and into night. anyone else that has done that also probably experiences this phenomena when it 'feels' like it's still pretty light outside and then it's quickly night time and you wonder how the hell that happened.

a quick googling has failed to give me the actual numbers, but i remember some hand-waved number that our mind doesn't really register a change in light brightness that are < 10% over some period of time. your eyes detect the change, that's not the problem, but your mind doesn't go 'oh man where the hell did all the brightness go!' what that happens. instead that happens when you finally ~reset your mental light brightness gauge and then look back at the sky.

anyone know of any other similar sensory/non-sensory rate of change threshold type of scenarios? the other one that i recalled was in the IGM laden movie Sneakers. the motion detector ignored anything that moved slower than like 2in/s or something ridiculous like that. temperature is also an obvious one, if anyone has taken a bath and the water suddenly becomes really cold, not noticing that it has been cooling off the whole time.

a possible opposite is "what things have slow enough sampling rates that you can sneak in a whole bunch of change and not fire quickly enough to save you?" i'm thinking about someone that stuffs themselves really quickly with food before their belly hits the stretch/fullness threshold and tells them that they should stop eating.

July 08, 2009

drafting a draft about drafting

so i have been watching a lot of tour de france, and the thing that really amazes me is the reported 30% energy savings for a rider that is drafting. i totally can understand the physics behind this. i remember the vortex/drafting concept from my animal locomotion class at chicago. what i begin to wonder, is what non-sport related activities do people draft in? i guess to find the correct analogy, when do we take advantage of the wake left behind our "competitors?"

other "real world" opportunities to draft:
  • settlers of catan - you always want to be second place, have everyone gang up on the other dude and then slyly steal longest road and win!
  • having pregnant/married siblings or cousins - way to dodge that parental pressure
  • getting through crowded areas - a la Die Hard 3 (w/the ambulance and taxicab) or walking through a state fair or something.
any more?

July 07, 2009

a call for moments

hey there everyone.

i apologize for my lack of moments this past month or so, work and sports have ramped up quite a bit. this has a) reduced the number of environments in which i have the opportunity to have an inner geek moment, b) tired me out so that i have less energy to catalog and write out such moments, c) made me think about whether or not the ambitious goals that i had when originally starting this blog were realistic.

so i think that this might be an appropriate juncture to ask anyone else that feels like they have inner geek moments. i know people (hey julia!) started to allude to IGMs in other fields/topics/genres as well as being interested in contributing/sharing your own ideas here.

let me know if you are interested and i can set you up as an author on the blog, or just send me the text via email/carrier pidgeon (only those two methods of delivery accepted!) and i'll put it up!

May 27, 2009

solubility in parts

so i was out at the newbury st tea-luxe drinking some masala chai w/rachel and i had an interesting question that neither of us really new the answer to. i had a lot of high school chemistry theories but nothing really substantial.

while drinking tea, you end up disolving molecules (like sugar) into the water. at a certain point the water could become saturated, at which point additional sugar stays in a solid form. the tipping point at which this happens (iirc) can be observed through titration protocols, or possibly calculated using some stoichiometry equation. there was a point at which we ran out of one type of sugar and rachel switched to another, making the comment "this could be different/better sugar anyways."

it got me wondering, is solubility of multiple types of solids in the same body of water associative? or in other words:
can you compute solubility of water + sugar0 + sugar1
as simply as
(water0 + sugar0) + (water1 + sugar1) ?
i'm wondering if there are other factors involved in this equation, like maybe:
  • the order/amount that you add each solute
  • any characteristics or interactions ocurring between solutes
  • of course there are things like temp, pressure. pH?
  • any others?

April 29, 2009

how far down the rabbit hole should i go?

based on some discussion w/ivan while he was visiting last week, i've got a question for anyone that is reading this:
how technical is too technical?
my initial motivation for this series and topic was to take events and thought processes that i have and make them more manageable for rachel, as well as to incite other people to wrangle or at least think about questions and problems that occupy me.

here comes the rub:
  • the questions can be very intriguing, but the real juicy stuff is a little further down
  • diving too deeply in the actual solutions or directions that i bring up can easily alienate whole sections of the audience (lol, no one reads this anyways.)
  • there are times when i actually don't know that much about the topic space and would have to do a lot of work to actually provide something meaningful besides more questions
  • the whole point is to ask more and more questions and then try to reason your way out of holes when someone gets an answer.
let me know-

April 23, 2009

solving UHAUL

a few of my friends have moved in the past few weeks, and this has sparked an interesting discussion in my head. like any other task, my mind constantly searches for the optimal solution. because of this, i thoroughly enjoy cramming boxes of different shapes and sizes into a UHaul truck, attempting to fit as much as possible in one go. sound like a familiar problem?

enter KNAPSACK. a common cs problem that seems very similar. a brief translation to this problem would be: given my possessions (the items,) and the UHaul truck (my knapsack,) maximize the amount of stuff i can cram into the truck.

however this variation has a few curveballs:
  • in KNAPSACK, items are usually just real numbers, here they are objects with a volume.
  • this means that you could have a subset whose overall size is the largest w/o surpassing the volume of the truck, but you are now confronted with the task of actually finding an orientation of the items in container that actually fits everything.
  • not only do you have volume, but i think shape might be a pretty weird variable in the item set.
  • you realistically want to value/prioritize which items you must include like your bed or dresser or tv.
  • at a certain point, if not all possessions can be fit in the container at the same time, the problem shifts from maximizing usage to minimizing the number of containers needed to consume all items.
  • you normally are doing things in a pipeline manner, (sorting, packing into boxes, moving boxes into truck.) so you might not have the omniscient view of all items as you start to pack the truck, and ymmv based on when you see certain items. this throws the traditional dynamic programming approach out the window.
so we can try to simplify this problem a little bit before trying to solve it:
  • confine all items to be rectangular prisms
  • maybe even start with 2D (packing rectangles,) which i want to dub PLANTING for maximizing crop sections in the fields.
have you noticed i really enjoy citing cs problems in ALL CAPS?

April 15, 2009

it's a race

i think i might lose this one, but this is what i am attempting to do:

solve sudoku in the time it takes someone to solve a sudoku.

i'll keep you posted. i've got the brute force rules of the puzzle coded, not there are the more "higher thinking" strategies that need to be taken into account now.

queue distracted mode on the train.

April 10, 2009

thought for food

so we hosted a second seder this past week and as a part of an icebreaker (that we eventually used at the end of the night) was to write down on a slip of paper the answer to the question:
what does it mean to be free?
there were some serious responses, some light-hearted jests and such. this morning on the train i was recalling them and had a thought.

to me, freedom is having a circle of friends and family such that i do not feel afraid to share my inner geek moments. it amazes me that there are scenarios and environments where curiosity and innovation are discouraged. i'm very fortunate to have been brought up never being hindered, always pushed to see how far i could go with my ideas.

yay.

April 05, 2009

how many wrongs make a right?

i was chatting with my sister one day about the concept of inner geek moments, and it reminded me about the concept of being wrong repeatedly. we are all familiar with the phrase "two wrongs do not make a right." but i think there is actually a very common scenario to contradict this.
most people studying linguistics know about the concept of "the evolution of a language." i use it all the time when i make up words that strictly aren't a part of english but people listening know exactly what i am talking about. eventually the term or noun becomes used by a larger portion of the population, and in extreme cases will get entered into the OED. more commonly, the word will live on in urban dictionary.

current words looking to make it big:
so just think about it children: if you want to make it in the world of literary legitimacy, all you need to do is be wrong long enough and enough supporters thinking you are right.

March 30, 2009

discrete mountains, continuous functions?

One of the first inner geek moments recorded in the wild occurred in Montserrat Spain. If you are ever in the area and have a daytrip to spare, I highly recommend it. Not only is it a monastery in the mountains of features one of the few idols of a black virgin Mary as well as a fairly nice boys choir, they have a fairly fun set of hiking trails. Somewhere in the middle of things, we're probably deep into the part where we lost the trail and are bopping around in some random monk's digs. My mind starts going, and I remember a little trick from YSP back in Chicago.
The day starts with us reaching the base of the mountain at 10am. We hike up and down the mountain. There are switchbacks and sometimes we pick the wrong trail. It makes no difference what path we take, really. We ultimately get just short of the summit and setup camp for the night. We decide that we want to see the sunrise from the peak so we wake up at 6am the next day and hike to the top, where we relax, have breakfast, snap a picture, and make our way back down the mountain.
Rachel overlooking Montserrat

Continuing back down, we take a similar meandering path. Stop to pose for a picture, detour to escape a bear, we might have even left our camera at the top and had to have backtracked to retrieve it. After a grueling day of hiking, we stop at the gift-shop, buy a lousy t-shirt and then ride the tram back down into the city.

The geeky part of this that you can prove that with 100% certainty that there exists at least one time of day for which you were at the exact same altitude on both halves of the trip. More explicitly, there exists a time t in [00:00-23:59] such that f_0(t) = f_1(t) if f_i are functions of your altitude on the respective days of the hike.

Not convinced? Here are a few more clues:
We know that since we started our trip and ended our trip in the same place, so
f_0(00:00) = f_1(23:59)
We also know that we spent the night up in the mountain, so
f_0(23:59) = f_1(00:00)
The kicker is now that both functions f_0 and f_1 are continuous. There was no spot in time that we magically jumped altitudes, it was hectic, scattered even, but continuous nonetheless. Graphing these two functions on top of each other will show you that there is some value of t for which the two functions intersect. Bingo!
For further coolness, you can apply this same argument to the world and weather. One can easily accept that temperature when graphed out is also continuous. This allows me to say:
There exists at least one place (actually an uncountable number of places) for which the temperature at that location and the exact opposite, going through the center of the earth is the same.

but is it an IGM?

i've been talking to people about inner geek moments, and i keep redefining it's definition. not so much in terms of "what is an IGM?" but more like, "this is definitely not an inner geek moment." i guess IGM is in NP. (heh.)

here are some clarifications: is it 'inner geek' moments, or inner 'geek moments'? i posit that everyone has a concept similar to 'inner geek.' but few have inner 'geek moments' and that is exactly what i am trying to catalog.

a few examples to help illustrate my point:
  • having a detailed discussion on continuous functions during dinner does not imply an IGM, this phenomena of geeking out happens often.
  • pondering a seemingly implausible statements using theorems about continuous functions while hiking in the mountains in spain could be seen as an inner geek moment.
(how many times will the words inner, geek, and moment appear in this blog?)

i also want to stress that inner geek moments are not restricted to math and computer science although those subjects tend to dominate mine. giving blood one day led me to this fabled question.

and does it feel weird that in a blog, i'm linking to posts in the future?

March 28, 2009

everyone get in alphabetical order!

we are all familiar with this task; taking an unsorted list and returning a copy sorted by some comparator is something we do in life all the time, as well as one of the most discussed topics in computer science with respect to algorithm cost and complexity. as with many inner geek moments, the question, "is there an optimal solution to this problem?" comes to mind.

when dealt a hand of cards, most people will perform some version of INSERTION SORT. in comparison to other methods of sorting, it's pretty bad (worst case O(n^2) even). luckily a person's actions are weighted very differently from a computers. comparing two (or lots) of elements has almost no cost relative to the amount of time it takes to actually rearrange the cards in their hand. (this is actually one of the reasons that i don't rearrange my cards when playing spades!) this makes insertion sort more along the lines of hO(n) - human O, the rate of growth for a human performing the algorithm.

to further show the difference between O and hO algorithms, see how long it takes you to perform MERGE SORT on a bunch of cards and see how much longer it takes.


another very interesting modification to this scenario is the end of recess in gradeschool. all of the kids get in line, but the teacher tells them to get into alphabetical order. instead of the teacher making comparisons and telling students to move around in line, the sorting happens sort of like this: each student looks at the person in front or behind and they make the decision, "should we switch places." keep doing this until everyone is happy.

as an exercise for my readers (i have readers?!) how much faster is this approach? would you model kids' behaviour differently?

my mission (sorta...)

not much is necessary to have an inner geek moment (IGM)

lots of curiosity, just enough knowledge to be dangerous and sufficient persistence to follow through.

my goal is to embrace (encourage even) these explorations and exercises in an effort to help similarly minded individuals deal with the inevitable question
"hey, "what are you thinking about?"
i actually have a deal w/my wife that compels me to tell her when IGMs occur and explain the topic matter to her.

here we go