Work Life Balance

aeoo 221 points222 points223 points 1 day ago* [-]

recognize that work is something you do to live and isn’t your whole life

Let’s examine this as objectively as we can manage. Lets assume a 40 hour work week where the employer pays for lunch, as the employer should be doing, which results in a real 8 hour day instead of a 9 hour day. Of course a 9 hour day will work even more in favor of my argument.

You need to sleep 7 to 8 hours to be healthy, on average. Let’s say 7.5. Then you need to do maintenance, such as taking a shower, getting dressed, handling bills and other inane things that can’t possibly count for having a life. Most maintenance, other than some amount of shitting and pissing, falls on the off-work time. Then you have a commute. Let’s say you have a 30 minute commute one way, which means 1 hour both ways. Let’s add up and subtract. 7.5 + 1 hour maintenance + 1.5 hours for two decent meals (breakfast and supper, and I am assuming the employer will pay for the lunch). + 1 hour commute and we get 11 hours taken up by various bullshit that we normally don’t count as “having a life.” 24 hours – 11 = 13 hours left. Out of that time, your employer gets 7 hours (because they pay for lunch, and let’s say they don’t want to count lunch as a productive hour just like we don’t count eating food as having a life on our off-work time either, which makes it fair n square), and 1 hour is “wasted” on lunch. So you are away from home for 8 hours. So (24 – 11) – 8 = (13) – 8 = 5. So you get 5 hours of time which we can describe as “having a life.” Your employer gets 7 hours, if the employer pays for lunch, as they should be doing. You lose and your employer wins when it comes to quantity.

If the employer refuses to pay for lunch, then you are absent from home 9 hours, then the equation becomes (24 – 11) – 9 = 4: you get 4 hours and your employer gets 8. In this case you lose much harder than in the previous case.

Now let’s talk about quality. Quality is just as important, if perhaps even not more important, than quantity. In most cases, for a normal scenario of a day shift, 9 to 5 shift, the quality of the 9 to 5 time slot is much, much better than the quality of the 5:30 to 10:30 slot. Why is that? It should be obvious. When you wake up, you are fresh, your mind is most clear at the beginning of the day. At work, you accumulate stress and get tired. So you come home tired and wasted after a hard day’s of work.

So your employer not only gets more hours on a work day, it also gets higher quality hours too. In a week there are also 2 days off. Of course on those days you also have more chores to do that you’ve been putting off on the work days, and plus you need to recuperate from all the stress you’ve been accumulating the entire work week.

If you’re in the USA, your vacation time is likely non-existent (2 weeks and grudgingly it increases to 3 after many years). If you’re in Europe, you probably get 1-2 months vacation time right off the bat, which goes a long way toward ameliorating the problem we are discussing. In many industries it’s also the case that even the weekend doesn’t belong to you. You are on-call, or you have to work the weekend, whatever. Having a commute that’s more than 30 minutes one way drastically alters the balance of the formula as well.

So, at least if you are in the USA, chances are you spent your life for the sake of the employer and not for your own sake. There is no balance to speak of. The balance is a myth and a mirage and a dream. In Europe, people may have something that resembles balance due to their more generous law-mandated vacation time and other labor protections.

Epic comment on Reddit

And one of the reasons I’m queasy about what I will be doing two years down the line when I finish college. Ruling out traditional IT Jobs appears to limit my choices a bit – since I don’t have a brand name college to hang on to. The major reason I’m pushing myself hard to do a lot of things (and have fun in the process!) for the next two years.

I want what I work on to be part of my life – and not as something that I should escape from so I can have a life. I’ll make sure that’s possible :)

Cheese 2.31.1 Released

If you had read my Cheese GSoC proposal, it would’ve stressed on one major point – make Cheese sexy.

Two days ago, one of my classmates spent 5 minutes on the bus using Cheese and trying out different effects (and poses!). Today, my brother spent 20 minutes trying to get the perfect combination of style and vagueness for his Facebook profile picture – using Cheese. He then asked me to create an account for him in Ubuntu (he was an exclusively Win7 user till then) before leaving.

I’m still not where I want to be (the girls haven’t gone gaga over it…yet!), but I know very well that I am on the right path.

And a major milestone in that path is the release of Cheese 2.31.1. The ‘release’ means that the code is now stable enough to be actually shown off. The major features (rewrite in Vala, use Clutter, user defined Effects and most importantly, Live Previews) are in working condition. We are no longer walking through a minefield of segfaults. You can build it and show it off. When something breaks and you tell us, we’ll most probably not reply with ‘yeah, we know that. We’ll fix it when we get to it’. The road to Cheese 3.0 has begun.

So, what’s all in this release?

  1. Rewrite of the UI code. We removed the entire old src/ folder, and rewrote everything from scratch. Using Vala. Why? Because ~7000 lines of C code is now ~1500 lines of Vala code. And the Vala code has more features (Live preview, for one!). The Vala compiler is pretty mature – only one ‘real’ bug so far (rest have been mostly binding bugs, fixed with single line of code changes). And #vala has been incredibly helpful too! And we are re-using most of the ‘backend’ code (Camera detection, pipeline linking, etc) – it is still in C, and writing Vala bindings was incredibly simple.

  2. Move from Gtk to Clutter for display. Means I can do stuff like overlay semi-transparent text on top of the effects. Or have animated page transitions. Or (in the future), use OpenGL effects without having to do an extra to-fro copy from memory. Have drop shadows for everything. Make the effects tilt and rotate around when hovered over. Etc, etc, etc. Clutter is the major contributor to the ‘sexy’ part.

  3. User created effects. Effects are no longer hardcoded. A simple 4 line text file and enthusiasm for reading documentation is all that is required to create your own effect. The effects are based on GStreamer, and are very flexible – you can create something as simple as monochrome + hue, or something as complex as face detection + extra limb addition to specific people :P

  4. Live Streaming – biggie. All effects are arranged in grids of 3×3 in multiple pages that you can swipe through. Simply clicking one will activate it pretty much instantaneously. No more ‘select effect, apply, no-it-sucks, let’s go back and do it again’ games :)

I made a quick screencast to show the new Live preview stuff to those of you too lazy to actually get the source and compile. And the subject is a pink+green teddy bear sitting on my white netbook. (And the weird stuff that turns up after I exit fullscreen is a bug in RecordMyDesktop – and is an incentive for you to actually get the source and check it out :P)

These are the four major features that are new. All the other parts of previous Cheese UI have also been implemented (preferences, thumbnail viewer, fullscreen, wide mode, device detection, etc.)

As for the next release – keep looking out for it, it will land soon! It will primarily be a bug fix and code cleanup release – fixing crashes, UI inconsistencies and making sure everything works as intended.

A lot of late night hackery (mostly because my college takes up 10 hours of ‘regular’ time) has gone into this release – so check it out here and tell us what you think. Especially about the parts that suck. Especially useful would be if you can get someone non-technical to sit in front of Cheese, observe where all they fail (and succeed) and then report your observations back to us.

My GSoC 2010 Proposal

I used gist to publish my GSoC proposal. Diffs, easy to show off, and Markdown support – made gist perfect for me to make modifications and get feedback easily.

It is the first ‘real’ document I’ve written – it actually had a tangible effect.

Now that I don’t need to make any modifications, I’ve moved it to my site.

Cheese GSoC Report – Week 8

This week on Cheese….

WE MADE A RELEASE! :)

http://ftp.gnome.org/pub/GNOME/sources/cheese/2.31/

Cheese 2.31.1 is out. It’s a dev release. Does not have zarro boogs.

But it is a release!

This week, we

  1. Fixed several perf bugs.
  2. Fixed some weird preferences dialog bugs
  3. Filed (and eventually had fixed) a bug in GStreamer.
  4. Fixed a regression
  5. Beautified the UI a bit (text name overlay of effects, etc)
  6. Assorted administrative work to prepare for release (Copyright
updating, merging back into master, etc)

I also passed my mid terms :)

Next week…

  1. Remove dependency on Mx Toolkit (it is not a blessed dependency,
and i’m not using large parts of it anyway)
  1. Performance improvements, especially at startup time. It is taking
_waaay_ too long .
  1. Fix problems in video mode.
  2. Make the TODO list shorter.

Cheese GSoC Report – Week 7

This week on Cheese….

  1. Performance enhancements. Sacrificed some startup time for much improved usage time. Viewing live effects are now a snap. So is selecting an effect. We went in some cases from ~15s to <1s. Thanks to Tester (and other folks) at #gstreamer for helping out :)
  2. Paging of effects. Effects are now in pages of 9 each, instead of a huge scroller area.
  3. Applying effects without stopping the pipeline. Makes things much faster.
  4. Implementing the popup menu for thumbnails.

We’ll be making a release anytime now :)

All of last week’s goals were met, except the code cleanup. It will probably have to wait after release.

As I type this, there are 6 blockers before we can make a release. Will make a post when we do a release, hopefully with a screencast too!

Next week is kinda unpredictable – I’ll douse fires as they arise in the code (reported by people who hopefully test the release), and also work on reducing the length of items in the TODO.

Cheese GSoC Report – Week 5

Late report. But I did get quite a bit done!

Last week…

  1. Video Effects file format reader
  2. Live Preview of Effects! (YAY!)
  3. Effect files added

Live Preview took most of my time. We bought down CPU usage from ~90% to a more manageable ~50%. Cleaned up code a bit (still needs more cleanup). It is rather very ‘demoable’, provided you gloss over the slowdowns.

Coming up next week would be…

  1. Even less CPU Usage! We’re now even with current Cheese (which does not give you live previews). I want to bring this down even more.
  2. Reduced latency for switching operations. Moving between effects/screens now has more than a second of latency. I should reduce this to much lesser than a second.
  3. Code cleanup. Some of the C code is a mess – needs to be cleaned up much.
  4. Error fixing. You can now crash it by looking at it at a 58 degree angle, during new moon days. Bugs like these will be fixed.

Cya in a week, with a very-usable Cheese! I’ll post a screencast as soon as I’ve made Cheese a bit more sexy :)

Cheese GSoC Report – Week 4

Fourth week of the Summer of Code was over a few days back, and this report is overdue :( I’ve not been able to code as much as I wanted to this week – due to various non-technical issues. Will compensate in the next week.

Last week…

  1. Countdown Animations (Thanks to _ke for cleanup!)
  2. GConf Cleanup

Yes, that was it.

Totally failed to meet last week’s goals. Sigh.

By next week, I hope to have accomplished…

  1. Video Effects file format reader
  2. Basic Effects application to the currently playing pipeline.
  3. Mockups on best weay to present effects UI to user

Here is to hoping the coming week turns out better than last one :)

Cheese GSoC Report – Week 3

Third week of the Summer of Code is over! And during this week….

  1. Successfully wrapped up the core cheese functionality (libcheese) with a vala wrapper
  2. Made Photo Mode work
  3. Made Video Mode work
  4. Made Burst Mode work
  5. Made cheese single instance using libunique
  6. Started work on cleaning up GConf code.

In last week’s report, I mentioned that I didn’t quite like my pace of work. It is still the same (approx. 3 hours a day on average, excluding overhead) – but I’ve come to accept that it is okay. No more bitching about it, as long as I’m meeting my goals.

Last week’s predictions were to complete libcheese wrapping, photo mode, video mode and burst mode. Set goals accomplished with ample time to spare – time that was spent trying to get countdown animations to work (still haven’t managed), and make cheese single instance. I under-estimated last week – should improve accuracy.

By next week, I hope to have accomplished…

  1. Fully functional preferences dialog box
  2. Countdown animations
  3. Full GConf integration (i.e. remember all your preferences)
  4. Full blown keybindings (Basically <Esc> to cancel, since the others are already implemented)
  5. Trash/Delete implementation

It would have everything Cheese 2.30.1 has, except for Effects.

And what did I learn this week?

  1. RTFM. Again. And again. THEN ask on IRC.
  2. How to use gdb. I’ve only cursorily used it before – but digging into it deeper now (thank you, segfault!)