Advertisement
Guest User

listserve archive 4/18-4/23

a guest
Apr 23rd, 2012
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.71 KB | None | 0 0
  1. 4-23-2012
  2.  
  3. When I turned twenty I had reached a point where my earthly possessions could be summarized as the clothes I was wearing, an old bag containing some more clothes, a few science-fiction books, and my guitar. No money, no place to live, just a bunch of friends who helped me out of the streets and put me back on my feet.
  4.  
  5. Ending up in such a pit you first feel anger, then sorrow, then you make fun of it because that is the only way to make it bearable, and then you can go forward. It took me three more years to be able to shop for food without having to count change in my pockets.
  6.  
  7. Twenty years later I gave the books away but I still keep the old bag as a memory and my guitar is now standing in the living-room where I occasionally use it to sing for my kids.
  8.  
  9. Life has been a tough ride so far, but at least I know how to live without being bothered by simple objects. I know the only things you can count on are:
  10. - What is inside you: your skills, your knowledge
  11. - Good friends, and other people you love
  12.  
  13. Be generous and help somebody today get out of poverty. We all deserve a future.
  14.  
  15.  
  16. nicolas314
  17. On the way from Germany to France
  18.  
  19. ----------------------------------
  20.  
  21. 4-22-2012
  22.  
  23. I want to use my fifteen minutes of fame on The Listserve to rant about
  24. something that's close to my heart: the stability of the software I use.
  25.  
  26. NOTE: This is written for people who create software. If you don't do that you
  27. probably won't find this very interesting. Sorry! Maybe you could read Text
  28. from Dog if you haven't seen it already? Either way, have a nice
  29. morning/afternoon/evening!
  30.  
  31. The Situation
  32. -------------
  33.  
  34. Every time I get a new computer, I go through the same song and dance:
  35.  
  36. 1. Look at what programs and packages I have installed on the old computer.
  37. 2. Install these programs on the new computer.
  38. 3. Copy over my configuration files from the old computer to the new one.
  39. 4. Spend the rest of my day fixing all the things that broke because I'm using
  40. a newer version of program X.
  41.  
  42. Step 4 is always the most painful part of getting a new machine. Always.
  43.  
  44. Without fail I spend several hours tweaking configuration files, adjusting my
  45. workflow, and so on because I've upgraded to a new version of foo which doesn't
  46. support option X any more or requires library Y version N+1 now.
  47.  
  48. Getting a new computer should be a *pleasant* experience! The unboxing from the
  49. sleek packaging, that "new laptop" smell, the nostalgia of the default desktop
  50. image. Why does this horrible step 4 have to exist and how can we get rid of
  51. it?
  52.  
  53. The Divide
  54. ----------
  55.  
  56. I've noticed something interesting lately: I can categorize almost *all* of the
  57. software I use into two distinct groups:
  58.  
  59. * Software that breaks pretty much *every* time I update it (e.g. weechat,
  60. offlineimap, Clojure, many Python packages, Skype).
  61. * Software that almost *never* breaks when I update it (e.g. Mercurial, git,
  62. tmux, Python, ack, zsh, Vim, Dropbox).
  63.  
  64. Software that falls in between these two extremes is surprisingly rare. There
  65. seems to be a pretty clean divide between the two groups.
  66.  
  67. This makes me think that there's some special attribute or quality of the
  68. second group (or its authors) which the first one lacks.
  69.  
  70. Brokenness
  71. ----------
  72.  
  73. I think it's important that I nail down what I mean by "breaks" or "is broken".
  74. I don't necessarily just mean the introduction of "new bugs".
  75.  
  76. When I say that a program "breaks", I mean:
  77.  
  78. * When I update from version X to version Y of a program, library, or language...
  79. * Without changing my configuration files, source code, etc...
  80. * The resulting combination doesn't work properly
  81.  
  82. In effect, I'm saying that "breaking backwards compatibility" means "the program
  83. is broken"!
  84.  
  85. This may be a strong statement, but I stand by it in most cases.
  86.  
  87. Backwards compatibility matters! Every time someone makes a backwards
  88. incompatible change in a program or library, they cost the world the following
  89. amount of time:
  90.  
  91. Number of people Time it takes each person
  92. using that part of X to figure out what changed
  93. the program and how to fix it
  94. Often this can be a significant amount of time!
  95.  
  96. The Process of Updating
  97. -----------------------
  98.  
  99. When pointing out a backwards incompatible change to someone, you'll often get
  100. a response similar to this:
  101.  
  102. "Well, I mentioned that backwards incompatibility in the changelog, so what
  103. the hell, man!"
  104.  
  105. This is not a satisfactory answer.
  106.  
  107. When I'm updating a piece of software there's a good chance it's not because I'm
  108. specifically updating *that program*. I might be:
  109.  
  110. * Moving to a new computer.
  111. * Running a "$PACKAGE_MANAGER update" command.
  112. * Moving a website to a bigger VPS and reinstalling all the libraries.
  113.  
  114. In those cases (and many others) I'm not reading the release notes for
  115. a specific program or library. I'm not going to find out about the brokenness
  116. until I try to use the program the next time.
  117.  
  118. If I'm lucky the program will have a "this feature is now deprecated, read the
  119. docs" error message. That's still a pain, but at least it's less confusing than
  120. just getting a traceback, or worst of all: silently changing the behavior of
  121. a feature.
  122.  
  123. Progress
  124. --------
  125.  
  126. I completely understand that when moving *backwards* to an older version
  127. I should expect problems. The older version hasn't had the benefit of the extra
  128. work done on the new version, so of course it should be less stable.
  129.  
  130. But when I'm *updating* to a higher version number the software should be
  131. *better* and *more stable*! It has had more work done on it, and I assume no
  132. one is actively trying to make software worse, so why does something that
  133. previously worked no longer work?
  134.  
  135. We're supposed to be making *progress* as we move forward. The software has had
  136. *more* work done on it, why does it not function correctly *now* when it
  137. functioned correctly *before*?
  138.  
  139. Yes, this means developers will need to add extra code to handle old
  140. input/configuration. Yes, this is a pain in the ass, but *the entire point of
  141. most software is to save people time by automating things*. Again, every
  142. backwards-incompatible change costs the world an amount of time:
  143.  
  144. Number of people Time it takes each person
  145. using that part of X to figure out what changed
  146. the program and how to fix it
  147.  
  148. If our goal is to *save time* then we should not make changes that *cost time*.
  149. Or at least we should not make such changes lightly.
  150.  
  151. A Culture of Sadness
  152. --------------------
  153.  
  154. Proof that this is a real issue can be found in the tools we use every day. As
  155. programmers we've invented elaborate dependency systems to deal with it.
  156.  
  157. We say "pip install django==1.3" or put "[clojure "1.2"]" in our Leiningen
  158. project.clj files to avoid using the newest versions because they'll break.
  159.  
  160. Step back and look at this for a second.
  161.  
  162. What the hell?
  163.  
  164. What the *hell*?
  165.  
  166. We have invented software with features designed to help us use *old* versions
  167. of other software!
  168.  
  169. We have *written code* to *avoid* using the "latest and greatest" software!
  170.  
  171. Obviously this is not entirely bad, but the fact that manually specifying
  172. version numbers to avoid running *newer* code is commonplace, expected, and
  173. a "best practice" horrifies me.
  174.  
  175. I would *love* to be able to say something like this in my requirements.txt and
  176. project.clj files:
  177.  
  178. Of *course* I want the latest version of library X! I want *all* the
  179. newest bug fixes and improvements!
  180.  
  181. Unfortunately I can't do that right now because so many projects make backwards
  182. incompatible changes all the time.
  183.  
  184. The moment I try to build the project at some point in the future I'll be sent
  185. on a wild goose chase to figure out what function moved into what other
  186. namespace and what other function was split into its own library and dammit the
  187. documentation on the project's website is autogenerated from the tip of its git
  188. repo and so it doesn't apply to the latest actual version and jesus christ
  189. I think I'll just quit programming and teach dance full time instead even though
  190. I'll go hungry.
  191.  
  192. The Tradeoff
  193. ------------
  194.  
  195. One could argue that sometimes backwards incompatible changes cost time up front
  196. but save time in the long run by making the software more "elegant" and "lean".
  197.  
  198. While I'm sure there are cases where this is true, I feel like it's a cop out
  199. most of the time. Allow me to illustrate this with a helpful Venn diagram:
  200.  
  201. -------
  202. /3333333\
  203. |333333333|
  204. \3333333/
  205. -------
  206.  
  207. 11 -> People who give a shit what a program's codebase
  208. 11 looks like.
  209.  
  210. 22 -> The authors of said program.
  211. 22
  212.  
  213. For libraries where the author is the only user, none of this rant applies.
  214. You're free! Break as much as you like!
  215.  
  216. For the majority of libraries, however, there are probably vastly more "users"
  217. than "authors". Saving a few hours of the authors' own time has to be weighed
  218. against the 10 minutes each that the hundreds of users will have to spend
  219. figuring out what happened and working around it.
  220.  
  221. I want to be clear: being backwards compatible *doesn't* mean sacrificing new
  222. features! New features can still be added! Refactoring can still happen!
  223.  
  224. In most cases keeping backwards compatibility simply means maintaining a bit of
  225. wrapper code to support people using the previous version.
  226.  
  227. For example: in Python, if we moved the public foo() function to a new module,
  228. we'd put the following line in the original module:
  229.  
  230. from newmodule import new_foo as foo
  231.  
  232. Is it pretty? Hell no! But this single line of code will probably save more
  233. people more time than most of the other lines in the project!
  234.  
  235. This may just be an artifact of how my brain is wired, but I actually get
  236. a sense of satisfaction from writing code that bridges the gap between older
  237. versions and new.
  238.  
  239. I can almost hear a little voice in my head saying:
  240.  
  241. "Mwahaha, I'll slip this refactoring past them and they'll never even know
  242. it happened!"
  243.  
  244. Maybe it's just me, but I think that "glue" code can be clever and beautiful in
  245. its own right.
  246.  
  247. It may not bring a smile to anyone's face like a shiny new feature, but it
  248. prevents many frowns instead, and preventing a frown makes the world a happier
  249. place just as much as creating a smile!
  250.  
  251. Exceptions
  252. ----------
  253.  
  254. One case where I feel the backwards incompatibility tradeoff *is* worth it is
  255. security.
  256.  
  257. A good example of this is Django's change which made AJAX requests no longer be
  258. exempt from CSRF checks. It was backwards incompatible and I'm sure it broke
  259. some people's projects, but I think it was the right thing to do because it
  260. improved security.
  261.  
  262. I also think it's unreasonable to expect all software to be perfectly ready from
  263. its first day.
  264.  
  265. Sometimes software needs to get poked and prodded in the real world before it's
  266. fully baked, and until then requiring strict backwards compatibility will do
  267. more harm than good.
  268.  
  269. By all means, backwards compatibility should be thrown to the wind in the first
  270. stage of a project's life. At the beginning it needs to find its legs, like
  271. a baby gazelle on the Serengeti. But at some point the project needs to get its
  272. balance, grow up, and start concerning itself with backwards compatibility.
  273.  
  274. But when should that happen?
  275.  
  276. A Solution
  277. ----------
  278.  
  279. I think there's a simple, intuitive way to mark the transition of a piece of
  280. software from "volatile" to "stable":
  281.  
  282. Version 1.0
  283.  
  284. Before version 1, software can change and evolve rapidly with no regards for
  285. breaking, but once that first number becomes "greater than or equal to 1" it's
  286. time to be a responsible member of the software community and start thinking
  287. about the real humans whose time gets wasted for every breaking change.
  288.  
  289. This is the approach semantic versioning takes, and I think it's the right one.
  290.  
  291. I know a lot of people dislike semantic versioning. They hate how requires
  292. incrementing the major version number every time a breaking change is made.
  293.  
  294. I consider it to be a *good* thing.
  295.  
  296. You *should* pause and carefully consider making a change that will break
  297. people's current code.
  298.  
  299. You *should* be ashamed if your project is at version 43.0.0 because you've made
  300. 42 breaking changes. That's 43 times you've disregarded your users' time!
  301. That's a bad thing!
  302.  
  303. As programmers we need to start caring about the people we write software for.
  304.  
  305. Before making a change that's going to cause other people pain, we should ask
  306. ourselves if it's really worth the cost. Sometimes it is, but many times it's
  307. not, and we can wrap the change up so it doesn't hurt anyone.
  308.  
  309. So please, before you make that backwards incompatible change, think of the
  310. other human beings who are going to smack their monitors when your software
  311. breaks.
  312.  
  313. Further Reading
  314. ---------------
  315.  
  316. I'm certainly not the only person to notice this problem. Many smarter people
  317. than me have talked about it. If you want to read more you might want to look
  318. up some or all of the following (Google is your friend):
  319.  
  320. * The Semantic Versioning spec (the specific numbering details don't matter as
  321. much as the philosophy).
  322. * Anything Matt Mackall has written on the Mercurial mailing list (especially
  323. the mails where he sounds especially grouchy).
  324. * Anything about "software rot" or "code rot".
  325.  
  326.  
  327. Steve Losh
  328. steve@stevelosh.com
  329.  
  330. ----------------------------------------
  331.  
  332. 4-21-2012
  333.  
  334.  
  335. She was sick of it all. Sick of the contradictions, sick of the distance, and most of all, sick of the silence that ricocheted back and forth across her ear drums, more deafening than a collapsing building. Polite conversation, with its one-worded banter laced in falsity, could be tolerated. But the silence between them was painful. She wondered what had happened to their relationship. At one point they had been much more than just roommates; they had been best friends. They knew things about each other that no one else knew, and they shared secrets that ranged from romance to regrets, from insecurities to ideologies. Their close friendship had helped make the transition from small towns to college life easier for the both of them. Although they had differing personalities, they seemed to complement each other. But, most importantly, they had trusted each other. Recently, all of that had disappeared without warning.
  336.  
  337. When it was time to leave, she didn’t say that she was heading to class. She didn’t want to interrupt the silence, an invisible yet unforgivable barrier that had formed between them. She didn’t owe an explanation for her departure, and she knew she wouldn’t have received a response anyway. Besides, she was sick of trying. She forced her work into a tattered backpack, stuffing notebooks filled with messy, looping handwriting and elaborate margin doodles in between a handful of novels and a laptop. Hoisting the bag over her shoulder, she pulled a battered iPod out of her pocket, inserted the small headphones into her ears, and pressed play. She breathed a sigh of relief. Though it was temporary, her music allowed her to escape from the silence that smothered her.
  338.  
  339. Her class started at 2 o’clock, but her dorm was a good distance away from the English building, so she left at exactly 1:30. She decided to take a bus halfway and then walk the remainder, allowing her to be one of the first to class but still giving her the opportunity to enjoy the beautiful sunny day. The afternoon temperature was unusually warm, and the day seemed to belong in May instead of February. This unexpected heat wave baffled the local weathermen, but it thrilled the students. As she stood at the bus stop, she noticed a few tan, bikini-clad girls were lounging on beach towels outside of her dorm. Several drivers stared at them as they drove by. The bus pulled up next to her, and she felt a familiar rush of warm air graze her cheek. She realized she was sweating. She greeted the bus driver, courteously taking her headphones out of her ears and making eye-contact. An old man with a beard smiled at her, and she smiled back and sat next to him. She fiddled with her iPod, which she had put on Shuffle mode, listening to each song for about five seconds until she changed it, briefly moving from soft jazz to classic rock to hip hop in a rhythmic pace. Her musical taste was eclectic, to say the least, much like her personality. She refused to associate with one particular stereotype. Instead, she dabbled in each one with no notions of stylistic identity, wearing what she liked and listening to what she wanted. Each song, no matter its genre, represented something to her. Sometimes it reminded her of an old friend or a past memory, while other times the bass line just seemed to reflect her mood. She let her emotions choose the song, letting her thumb repeatedly press the “next” button while she stared out the window. Finally, she settled on a fast-paced, top-40 track that reminded her of high school, a track that she used to listen to with her friends while they drove around town with the stereo turned up and the windows rolled down. It was a track of innocent love, something she had once experienced. She had forgotten how it felt, but after the first few lines she could feel her heart beating along to the familiar melody of the chords. She thought back to that time and briefly admired how much simpler life had been then.
  340.  
  341. The song abruptly changed to one with repetitious bass pounding and loud, heavy guitar riffs. She quickly forgot of her past, as the nostalgia of blissful immaturity faded away, immediately replaced with the new track’s rapid lyrics. She silently tapped her foot to the pulsating beat.
  342.  
  343. The driver lurched to a stop just as a guitar screeched in her ears, and she held on to the pole next to her to prevent herself from being thrown forward. She grabbed her bag, squeezed out from the area that encased her tiny seat, and carefully stepped off the bus onto the pavement and headed toward class. She walked slowly, admiring the way the bright sun shone through the naked trees, trees that weren’t ready to bloom and probably wouldn’t be ready for a few months, if that. The winter had been abnormally harsh that year, and it was predicted that the trees would probably bloom later than normal as a result. The vivid, recent image of the trees covered in snow sprang into her mind, and she realized a week ago, she had to wear a winter coat and gloves while walking to class. Now, it was forty degrees warmer and anyone wearing a coat would be scalding.
  344.  
  345. She briefly glanced at the people she passed by. Class had just gotten out, so the pathways were crowded. Several groups of rowdy boys walked past, describing their drunken hook-ups from the previous weekend and rambunctiously slapping each other on the back. They were all dressed similarly, wearing khaki shorts and pastel-colored polo shirts, their dark hair sticking out from underneath backward baseball caps. They were tall and handsome, and they all seemed to have similar features. Their collective good-looks repulsed her. There was no variety; they were all the same. Next to them walked large packs of girls, most of them blond and tan with thin, dainty physiques. Some of them wore brightly colored sundresses. Others wore tennis shoes and running shorts, though their neatly combed back hair and flawlessly applied make-up gave no indication of exercise. They were all beautiful, but they blended together, no one face standing out amongst the others. In the beginning of the school year, she had envied their apparent mass perfection. She began dressing up to go to class and started wearing makeup. Though she rarely wore earrings, she began to stick pearls into her ears every day, regardless of her outfit. She even abandoned her tomboyish wardrobe and occasionally wore dresses or skirts. But, soon enough, she got sick of it. She grew sick of waking up early every morning to straighten her hair, to put together a perfectly matching outfit. She grew sick of pretending to be someone she was not just to fit into a crowd of people that she did not resemble in the slightest. Instead, she forced herself apart from her classmates. She gradually got used to the fraternity boys looking right through her, as if she didn’t exist, and to the girls in class talking to each other but not to her. She watched them converse as they walked past, but her music pounded in her ears, preventing her from hearing them. As she walked, she noticed that she was the only one wearing jeans.
  346.  
  347. She looked down at her iPod as she approached the building, checking the time. About ten minutes early. Not too bad. She systematically entered the building, walked down three flights of stairs, took a left, then a right, then a left again. Before entering, she turned off her music, wrapped up the headphones carefully, and put the iPod into her pocket. Then she entered, just like always. The only difference was that, this time, she was standing in a room of emptiness. The light was off, and the lack of windows made her feel as if she were standing in a cave instead of a classroom. It was completely silent, apart from the humming of a computer that sat in the corner, its screensaver a series of random twists and turns that filled the screen with color. This computer was the only source of light, and the screensaver’s colors faintly shined across the room onto the wall. A technological rainbow. She was mildly surprised at the unexpected abyss she was standing in. Even though she was ten minutes early, she was never the first one to class. She felt as if she were trespassing, even though she was in the right place. She watched as the computer went into sleep mode, the screen blackening like the room around her.
  348.  
  349. She considered waiting outside in the hallway for someone else to arrive, but she decided to turn on the light switch next to the door instead. She went and sat down in her usual seat. The song she had just been listening to was repeating itself inside of her head; she quietly hummed and tapped her foot to the rhythm. Out of boredom, she pulled out one of her worn notebooks, its pages nearly filled up even though the semester had only started a month or two ago, and finished a doodle she had drawn of a man that had popped into her head but probably didn’t actually exist. She shaded his cheekbones with a stubby pencil, drew then erased then redrew his thick eyebrows, and lightly added eyelashes to his bright, wide eyes that seemed to be staring directly at her. His lips were turned slightly upward in a mischievous half grin, as if he knew something about her that no one else did. Once she was satisfied with her finished sketch, she awoke from her artistic trance and realized that she was still alone. She turned on her iPod and glanced at the clock. 3:02.
  350.  
  351. Confused and suddenly worried that she was in the wrong room, she opened the door and looked at the room number. It was then that she noticed the blue post-it on the door. “No class today. Office hours will be held as usual tomorrow. Sorry for any inconvenience.” While most students would probably celebrate this cancelation, she felt empty, as empty as the room she was standing in. Instead of the interaction she longed for, even if it was forced, she was once again thrust into an abnormal solitude.
  352.  
  353. She walked down the hallway and joined the throng of people walking home. Although she was submersed by the crowd, she still seemed to be set apart from them somehow. She turned on her iPod and inserted her headphones to escape from the nothingness that surrounded her. Here, she was the queen of her own world, a world with only one citizen. Her world made sense; it was one of sound and song. The bass drum of her heartbeat set the 4/4 rhythm and her footsteps pounded along in harmonized reverberation. This beat was steady and calming, unlike the confusion that she felt as she glanced at the people that passed her by. She watched the crowd around her as their lips moved, almost synchronized, but no sound came out. Concentrating intently on the rhythm that surrounded her, she looked ahead at the trees in the distance. The sun brightened their bare, crooked limbs, and though it was still early in the year, she saw what looked to be a single white blossom slowly emerging to greet the unfamiliar sun. Her smile bloomed.
  354.  
  355.  
  356. Emily
  357. Virginia
  358.  
  359. -----------------------------------
  360.  
  361. 4-20-2012
  362.  
  363. As my friends (and acquaintances) will attest, one thing that I’m an expert at is preaching about Diva Cups. Male readers and squeamish ladies, this might get a little rough, but stick with me for a moment because this is important.
  364.  
  365. Most ladies have grown up knowing that there are two ways to deal with periods: pads and tampons. The “feminine hygiene” aisle at most stores reinforces this, and each month we drop up to $30 on an assortment of items with wings and strings to be strategically packed into hidden pockets of purses. There is a better way...Diva Cups (my brand of choice, but there’s also The Keeper, Moon Cup, and other brands) are a complete game changer. Buy it once for about $35, and use it for 10 years. You can leave it in for up to 12 hours, and it will hold quite a lot (even for those of us who are blessed with ‘extra super plus’ volumes of fun each month). Rinse it out in the sink, pop it back in, and you are good to go.
  366.  
  367. Think it’s too gross? Nope. You can handle it. And if you can’t, just do it while squinting and saying, “Ew, ew, ew, ew.” The actual amount of liquid involved in all of this turns out to be less than you might expect, once you see it in a little cup.
  368.  
  369. Ever have one of those times where you choose a tampon that’s a little too intense for your particular situation that day and it doesn’t feel quite right? Never happens with the Diva Cup. One size fits all of your flows, and you don’t have to worry about packing up your bag with five different products just in case. Diva Cups have also never been tied to toxic shock syndrome.
  370.  
  371. I recently read that we each throw away 7 pounds of trash per day, so this is one small way to decrease your waste.
  372.  
  373. The package comes with a flower pin that says “Diva” in pink on it, too, which you can wear to flaunt your menstrual strategy anywhere from business meetings to school dances. Or you can leave it at home, like I do.
  374.  
  375. Since people only need to buy this product once every 10 years, the manufacturers don’t have the same marketing budgets as the tampon companies, and many people have never heard of menstrual cups before. So in short, please spread the word. Buy it for yourself, buy it for your sister, buy it for your wife. It works better, it’s cheaper, and it’s better for the environment--It’s really so awesome, and available at Whole Foods and other fine crunchy stores.
  376.  
  377. Thanks and good luck!
  378.  
  379. Sincerely,
  380. Adrienne Stortz
  381. Brooklyn, NY
  382. addelilah@yahoo.com
  383. Diva Cup enthusiast since 2009
  384.  
  385. ------------------------------------------------
  386.  
  387. 4-19-2012
  388.  
  389.  
  390. The softest sound of worship;
  391. The things we can't possess
  392. Are without plan or purpose,
  393. Yet do sometimes suggest
  394. The reason in our figures,
  395. The meaning of our call,
  396. And though we cannot calculate
  397. We know the sum of all.
  398.  
  399.  
  400. stressfordpoet67@netscape.net
  401.  
  402. -----------------------------------
  403.  
  404. 4-18-2012
  405.  
  406. I'm sorry to break this to you, in an e-mail from a random stranger like this, but it needs to be said: Most of your life won't be fantastic. I'm not joking. The adventures you'll tell your children about will be a minuscule part of it. So if you want to avoid the feeling of utter disappointment as you grow older, you need to accept that fact. Sorry.
  407.  
  408. This leads us to the insight: You should focus more on the non-fantastic parts. The parts where you eat breakfast, walk to the bus, have a boring day at work, eat your ordinary lunch, shop groceries, and brush your teeth. After all, this is the major part of your life, and neglecting it is a wasted opportunity.
  409.  
  410. Here's the thing: Most of the boring stuff in your life is so dull, that even the tiniest thing can make it seem fun. The tiniest thing. This means the you could make it better with extremely simple means.
  411.  
  412. What exactly am I talking about here? Little things. Like these:
  413.  
  414. * Challenges: When brushing your teeth tonight, use your left hand.
  415. * Mind games: When you enter work (or school!), imagine the sound "Kabaaaam!" as you enter, as if your presence changed the whole room.
  416. * Action: Jump down from the side-walk, instead of just stepping down.
  417. * Changes: Buy some fancy tomato sauce tonight, instead of your usual brand.
  418. * More action: Count the number of pink things on your way to work, as if your life depended on it.
  419.  
  420. See? Easy stuff. I really try to live by this "Everyday Action" idea, and I think it works for making the boring parts of life more fun. Because that's the thing: just because the fantastic moments are few, there's no reason to just sit there, waiting for the next big thing to swipe you off your feet. Have some fun meanwhile, it's easy...
  421.  
  422. /Emil
  423.  
  424. Emil Stenström
  425. em@kth.se
  426. Stockholm, Sweden
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement