Wednesday, October 16, 2013

F.lux and other wonderful life-hacking bio apps

Whenever I stay up late staring at a digital screen, regardless of how tired I really am, my eyes will start to hurt. This is never good for trying to get a decent night's worth of sleep. I've tried melatonin pills but they either do the job or keep me up all night; it's always a toss up. While I could just avoid a screen before bed, there are times when I need to bathe myself in a computer's warm glare to get a project done or read stuff online, and luckily a smart team of people felt my pain and did something about it. F.lux is a utility that automatically applies shifts on top of your display's color profile based on your location, time of day, and to a certain extent, your surrounding light type. It's not just the team's shot in the dark opinion on whether or not this actually helps, but grounded on quite a bit of research.

I'm a huge fan of bio-utilities like this. Some of my favorites are:

  • F.Lux - As mentioned above. Constantly tweaks your display's color profile to appease your body's internal clock.
  • Sleep Cycle iOS / Sleep Bot Android - Bio alarm clock apps that help you to fall asleep with white noise while also using the accelerometer to record your movement during the night to figure out what sleep phase you are currently in and how well you are sleeping. It will slowly bring your out of your sleep at the most ideal time so you aren't groggy. The worst feeling is to be awaken from your deepest state, REM sleep, and this aims to help you avoid that.
  • Pause iOS / Android - A straight forward app that puts your phone into airplane mode for awhile.  When you are wanting to spend time with someone, concentrate on something, or completely relax, having that constant thought in your mind that some event could transpire and disrupt you through your phone makes the phone a walking object of stress. Knowing that it's off gives me peace of mind and let's me fully appreciate the present, even while it's for a short few hours.
  • Nike+ Running - One of my favorite apps to throw on when I'm about to start a run.  Not only does it track your path, but it solves how fast you are moving and displays that as color on a map at the end.  While it has a handful of competitors, it's still one of the best running apps out there, has a super clean and simple interface, and allows you to track your stats, run with friends, complete challenges, and gives you audible feedback for distance, time, and goal progress as you run.  It's simple and private if you want it to be but also gives you the option to be very social about training, too.

Saturday, October 12, 2013

Monday, October 7, 2013

Reading your mind clear

When you need to clear your mind of consuming thoughts in order to think about them in a better light, it's amazing how well a comfy leather chair, ambient conversation, familiar music, the subtly delightful aroma of good food, and the gentle yet persistent pull of an easy flowing book seems to do the job nicely.

Gravity

This has got to be one of the most innovative, immersive, and well crafted movies I've ever seen.  It's such a beautiful story of life and insignificance that made me forget about my issues in the present day and had me thinking from a perspective of my life where time is unimportant.  From a technical perspective, I'm still blanking on how a lot of this movie was even done.  Just like a classical symphony where you can sit back, close your eyes, and let the music whisk you away into a story conceived of your own creative interpretation, Gravity has the same feeling of allowing you to become lost in thought while a symphony of life plays out before you.
"I don't know so well what I think until I see what I say." - Flannery O'Connor

I really love her quote.  It can be hard to express what you actually want to say without writing it down first.  For me, if I say something without having the opportunity to think about it first, the meaning will come out all wrong unless I'm completely confident about the situation at hand.  At the same time, if I can't seem to figure something out, the act of writing the question can help me answer it before I even have to ask it.

As far back as I can remember, I used to play RPGs by pumping up my character to as much as the game allowed in those first few safe areas, just grinding and grinding, until I felt I had exhausted every possibility to level up and make my party stronger.  I wanted to be fully ready before I entered the next world, because for all I knew, there would be a monster just waiting to pummel me into oblivion for not being completely prepared.

The reality of the situtation was that when I would finally embark on to the next area, I'd be way too strong, thus made that area way too easy, and in doing so made the mechanics of the game fall apart to where I couldn't figure out the natural progression of where to go next.  I ended up wasting way more time preparing rather than taking that leap of faith and actually doing.

How does this story relate to writing things out?  It has to do with knowing how to approach a problem.  When I started college, I was that starry eyed freshman that thought I'd be able to ace all my classes.  C++? psssh, I made countless quake mods in high school.  My childhood room drawers are full of all the Quake 3 API files printed out for nights in bed figuring out how each function works.  I assumed I had a head start on this.  Level design? pssssh, I was developing maps before puberty.  In the case of freshman year, I was actually quite prepared and it seemed like a breeze.  I always led the class, was referred to when an example was needed of good work, it felt nice.  Little did I realize that this was the prime time to have both a sense of humility about the experience you have as well as the understanding that someone out there is better than you... so you should be trying to learn more than you know now and always be raising the bar for yourself.

By sophomore year, the tables turned when much harder courses were in play.  3D physics, OpenGL, game networking, AI... gah, it just kept going.  The tables had turned.  I was now the underprepared student struggling to figure out how to keep on top of things.  At the beginning of this realization, I was afraid to ask questions.  I felt like I had to keep up this appearance that I was naturally gifted in all the things and was always on top of the material.  Lo and behold, I started to fall behind.

After getting Cs on some of my midterms, the only way I could still grab an A and actually learn everything I wanted to from these courses was to somehow kick butt on the projects and final.  I remember the night when I was working on one of the AI project milestones in class.  The overall project was to create a soccer team that could eventually beat the soccer team that was written by the professor.  His code was private besides a public class to access it, so no, you couldn't just copy his and slightly tweak it.   The milestone that I had to do after the midterm was get it so the each player was actually reacting to the other players and responding with some purpose.  At the beginning, they were simply attracted to the ball and then flocked like sheep to the goal if one of em kicked it in the right direction.  Next I made it so they actually ran around incoming enemy players.  It's almost exactly like watching kids play pee-wee soccer.  Horrible... but getting better.

The thing that got me completely stuck was how to properly get messages across to each of my team's player every frame about their location, what they are planning next, and how to predict an action from there.  I was already so behind that whatever the class had covered already was a step beyond this.   I didn't want to ask the teacher, too afraid.  Other students were either completely getting it... or had just said meh.   Seeing that my ego was getting the best me,  I finally said to hell with it.  I went online and looked for a forum of others that were doing game AI.  Some were students like me, some were indie devs, and some were industry professionals.   I made an account with a fake name (as if by posting a question someone would find it and shame me for not being knowledgable) and asked the question.  As I wrote it, I actually started to figure out some things I was stuck on.  I found myself revising the question for about 4 hours while I went back, tried new things, and finally had something that was completely different from what I first wanted to know.  Even with this new knowledge, I was still stuck, so I posted anyway.

Within a few hours, I had a few replies which clearly explained to me in various ways what I was missing and how to solve it.  I was astonished.  I couldn't believe the power of what I'd just discovered.   By asking the right questions and throwing aside your ego, the learning process of something once frustrating became silky smooth and allowed you to continue forward instead of throwing the towel in.  It felt incredible, like a once immovable barrier had been easily shoved aside.   Needless to say, I continued the thread discussion all week, constantly updated my code, and created an AI that took my professor's team down easily (too easily, actually.  Final score was 30-1 or something).  I started asking questions in every class, posting topics on forums, and not caring anymore about who saw me do it.  I learned far faster and easier than I would have just trying to keep up some appearance for the sake of appearances.

The lesson I took away from this was no matter how much you think you know a subject, be humble about it.  Research it.  Do it.  Fail.  Do it again.  It's great to vocalize your knowledge of a particular area and use it in an argument or debate, but when you just refer to the knowledge as it's written rather than spark new insights or be brave enough to ask questions about it, you are going to miss out on the oppurtunity to learn more and you'll quickly fall behind others while desperately clinging to your ego.  I love asking questions, and in some cases, even when I already have some experience in a topic, I keep it to myself in hopes that I'll learn some little thing I might have missed.

There is no such thing as a dumb question?  Nah, there are definitely dumb questions.  Sometimes an excess of humility and questions about topics you know, even if to make the other knowledgeable person feel important or to be absolutely sure on something, just like I was over-preparing in an RPG, will sometimes hurt more than it helps.  While it's good to ask questions, it's bad to rely on that support system for answers before you've had the time to hit a wall with what you currently have and reflect on why you did.

I didn't really see this post turning into some advice article.  This is what I thought about when I read this quote and writing it all out got me reflecting on some lessons I had learned years ago but started to forget.  Writing, you're so cool.

Monday, September 30, 2013

Pursuing a passion

A dream was presented,
you chose to walk it.

Days spent practicing and nights crafting,
the brain in constant thought of what's next.
Sleep eventually immutable, an annoyance but a blessing.

Living the common life is an easy escape.
Ignorance,
while bliss,
is unfulfilling to those who want to be more.

You deserve nothing until you did something.
Do something until you have everything.
For those that mean everything,
your drive will inspire them as much as they inspire you.
Without them, everything will be for nothing.

An ambition left lingering is a deadly thing.
If you avoid failure, you avoid change. 
Growing content now and you'll risk losing the one you love,
and losing one's own self.

Love the journey and not only the reward.
The journey will define you.
The reward was always with you.

Push for them,
just as they pushed for you.

Inspire.