excited pixel blog http://excitedpixel.com/blog Copyright © 2009 excited pixl. All rights reserved. excited pixel blog all posts Thu, 19 Apr 2012 14:01:06 -0700 en-us <![CDATA[Introducing BreakTime 2.0]]> http://excitedpixel.com/blog/2011/05/introducing_breaktime_2.0 http://excitedpixel.com/blog/2011/05/introducing_breaktime_2.0 Thu, 12 May 2011 15:49:06 -0700 Today, we're really happy to be releasing a new version of BreakTime.

What is BreakTime?

BreakTime is a simple Mac utility that's designed to help you remember to take breaks away from your computer. It never forgets a break, running in your dock and / or menu bar (or even in the background).

Spending hours in front of your Mac everyday isn't healthy. A study from the American Cancer Society has linked extended periods of sitting with an increased risk of death. Unfortunately for many of us, quitting the computer isn't an option.

Using BreakTime reduces the continuous time you spend sitting in front of a computer. Standing up, getting your blood pumping and looking around may reduce the effects of long periods of sitting on your body and eyes.

With an option to 'enforce' breaks, BreakTime can also help overcome break skipping. With 'enforce' enabled, BreakTime won't allow you to work on anything else until you've finished your entire break.

BreakTime gives you quick access to the things you need to manage your breaks. Use the BreakTime status bar item to reschedule breaks with a drag of the mouse. Or swiftly disable BreakTime so that you can watch a movie without interruption. BreakTime makes it easy to get what you need done and then gets out of your way.

BreakTime uses Magic Rescheduling™ technology to actively monitor your keyboard and mouse usage and intelligently reschedule breaks when it thinks you've taken them. If it detects you've been away for a while, it will reschedule your break when you return. It's almost magic.

A lot of thought was put into designing BreakTime. If you're going to be interrupted by something multiple times a day, it sure better look good. So we pushed a lot of pixels before we came up with the final design.

We also added subtle effects to make the experience that much more enjoyable. Before BreakTime appears it shows you a 10 second warning in the menu bar. When it activates it slowly darkens your screen. It's the little things.

So check out the BreakTime website and try out a demo or grab it from the Mac App Store

]]>
<![CDATA[Encrypting with one-time pad]]> http://excitedpixel.com/blog/2010/02/encrypting_with_one-time_pad http://excitedpixel.com/blog/2010/02/encrypting_with_one-time_pad Fri, 12 Feb 2010 05:31:31 -0800 Recently a client requested that we do some encryption on their behalf with an algorithm that we'd never heard of: one-time pad. Normally we'd shy away from writing an encryption algorithm – this type of thing is better left to researchers who aren't on project timelines and can vet their solutions with super computers and research assistants. However in this case, we couldn't find any PHP code out their, the algorithm seemed simple enough and the promises of theoretically unbreakable encryption were too much.

So we've tried our hand:

function one_time_pad($source, $pad) {
    $result = $source;
    $count = count($source);
    $pad_length = count($pad);

    if ($pad_length < $count) {//pad length must be longer than the source
        return FALSE;
    }

    for ($i = 0; $i < $pad_length; $i++) { 
        $result[$i % $count] = $result[$i % $count] ^ $pad[$i];
    }
    return $result;
}

We've also written a function that will get random data on most linux boxes, but as noted below, it has some issues that should be taken into consideration.

function generate_random_bytes($length){
    $fp = @fopen('/dev/urandom', 'rb');
    if ($fp !== FALSE) {
        return str_split(fread($fp, $length));
    }else {
        return FALSE;
    }
}

Usage is pretty simple:

$pad = generate_random_bytes(128);
$something_to_encrypt = "I'm very secret data.";
$encrypted = implode('', one_time_pad(str_split($something_to_encrypt), $pad));
$decrypted = implode('', one_time_pad(str_split($encrypted), $pad));
echo ('Data to be encrypted: ' . $something_to_encrypt . '<br />');
echo ('Encrypted data: ' . $encrypted . '<br />');
echo ('Decrypted data: ' . $decrypted . '<br />');

Some things to note are that the generate_random_bytes function returns an array and the onetimepad function requires both arguments to be arrays.

The biggest difficulty in successfully implementing a one-time pad algorithm in the real world is making sure to get truly random "pads". According to wikipedia, generators that are normally reliable for cryptographically secure data generation (such as /dev/random) have not been proven to be random enough for use in algorithms such as one-pad. So we've written two functions, one that pulls random data from /dev/random to create a pad, and one that actually does the decryption and encryption. Our weak point is the random data generation function.

The other big practical problem is transmitting the pad. Because the pad is your key, your encryption is only as strong as the encryption you use to transfer it. I.e. if you send the pad unencrypted to a user, you're in for a whole heap of trouble.

Bottom line: use this at your own risk. We're putting this out here in the hopes of eliciting some feedback – we'd love to see your improvements on this little exercise.

]]>
<![CDATA[iPad Development Services]]> http://excitedpixel.com/blog/2010/01/ipad_development_services http://excitedpixel.com/blog/2010/01/ipad_development_services Wed, 27 Jan 2010 07:47:03 -0800 Today has been an exciting day for everyone who has followed the rumors of Apple's mythical tablet. They've finally lifted the veil and released the iPad.

With all the enthusiasm around the multi-touch interface, battery life, book store, etc., we've been drooling over the new SDK. We're already kicking the tires and are happy to announce that our proficiency in building efficient, well designed iPhone apps will give us a big head start in developing native iPad apps.

With that in mind, we're introducing iPad development as a service to all our customers starting today. We're looking forward to partnering with our clients to leverage the excitement around this new device and to have applications on the App Store the day that the iPad is released.

If you have an iPad App that you'd like to see created, contact us today.

]]>
<![CDATA[Introducing Chirp Flow]]> http://excitedpixel.com/blog/2009/12/introducing_chirp_flow http://excitedpixel.com/blog/2009/12/introducing_chirp_flow Mon, 21 Dec 2009 10:12:57 -0800 It's a thrilling (there really aren't that many synonyms for exciting) day here at excited pixel. We're happy to finally introduce Chirp Flow.

chirp flow icon

"What is Chirp Flow you ask?" Well, let us tell you: It's an iPhone app that shows you tweets from Twitter in real time.

“Aren't there already 32 different apps that do that you ask?” You seem to ask a lot of these types of questions. Actually, no. When we say real time, we mean really real time. You see the tweets displayed on your screen within seconds of them being tweeted. No pesky swiping and pulling to refresh your search.

So you may ask, "what happens when I search for 'taco' in Chirp Flow?" OK, let someone else have a chance at asking questions. We're glad you asked though: you'll be able to bask in the internet's misadventures at Taco Bell, Taco Del Mar and many other taco restaurants. You'll also probably get taco recipes, and thinly-veiled references to body parts.

"Ok, so that's great, but who really cares about tacos?" Well we do, but because we didn't make Chirp Flow just for ourselves, we also came up with some interesting use cases such as:

  • If you're at an event, let's say South by Southwest, you can run Chirp Flow on the event's hash tag: #sxsw. You'll see all tweets about SXSW as they're tweeted. Pretty handy for keeping the pulse of an event.
  • If you're a political dissident in Iran, you could enter in Tehran and find out exactly what's happening in the city as it happens.
  • If you’re a team working on a project, you can all agree on a hash tag to use in your tweets and use it as a simple way to group chat – everyone just set up Chirp Flow to search for the group hash tag.

So that’s Chirp Flow in a nutshell. It’s available for free so there’s no reason to not check it out right now.

]]>
<![CDATA[Hello World!]]> http://excitedpixel.com/blog/2009/10/hello_world http://excitedpixel.com/blog/2009/10/hello_world Tue, 27 Oct 2009 07:28:34 -0700 Welcome to the excited pixel blog. “Why the heck would I want to read about an excited pixel?” you may ask.

Well, we’ll hopefully have a little bit of something for everyone.

Business owners, we’ll be posting business and strategy details. Case studies, problems and of course solutions. I’m sure we’ll be covering something that applies to your business.

For the designers and developers we’ll also be looking into the design and development process. We’ll probably post some open-source code snippets, some ideas and probably some narrative on the design process.

Hopefully we’ll will have something for everyone. So click on that RSS feed, and we’ll try to keep you entertained and informed.

]]>