9/06/2010

DIY CD wallet for car console

Something that's always bothered me about my car console is that it's clearly designed to store my CDs in, but at the same time it's only big enough for at-most 10 CDs in their case, and if I take them out I scratch up my Oomph! disk collection and need to order them from Germany, or even worse I can't flip through them easily I have to jumble around with a stack of them just to find one disk. A CD wallet would be great, but I can't easily access that, and I hate those damn visor strap CD things after my last one scratched them up and only held about 20.

So what am I doing? It's 6pm, I'm going to make and document how long it takes me to make a better one.

I took a magazine (actually it's a offer to buy stocks for Potash from BHPbillition for $130 when they're worth $148, LOL WUT?), and some scissors. CD cases to judge size.

I took a CD case to see how high the flaps should be. I need to bind this like a thicker book would be, so we're going to end up using the first few centimetres of the already-bound pages to space it out. Just put a CD on it so it aligns with the open-side of the magazine, and crease into it where it is. Trim off the extra length on the top of the magazine (the CD case should have about a bit of space on both sides)

6:07pm (Junky scissors caused shredded paper everywhere).

Folded pages inward like they do with big bound textbooks (grab a few pages, fold the previous crease in to the centre, grab some more, keep going...)

6:12pm.

It needs to be bound together at the bottom... found me some paper-clips, going to cut some holes through it... corkscrew anyone?

6:19 pm,

This is taking longer than I thought, maybe I should have found a hole-punch rather than just a knife.


Just have to fold each flap in so the CDs stay in.

6:27, there's a lot of page in this...
Started folding multiple pages then separating.

6:30. Almost done....



6:32: I should have just put a ribbon around the thing's outside walls and cut it smaller... Oh well, only 20 more pages.

6:37. Done. Going to put CDs in it and take a picture later when I get it into my car.

Total cost: I cut up a booklet sent to me by people trying to talk me out of $20 a share.


Alternate solution:

A few sheets of paper, fold it back and forth like a Chinese fan, cut CD-sized holes along every downward fold, put CDs in holes and you're done. Probably only going to take 5 minutes, just fold back and forth, then snip a curve across the lower side. Probably want to use a card-stock?

Less fun solution: Goto the store and buy one of those folders with separators, cut to size for console.

8/31/2010

Crypto chat: vZero

Abstract:
Data over the Internet is insecure. This is entirely due to it's implementation rather than the Internet's design. This has lead to a lot of private communications only appearing to be private, but in reality, entirely out in the open and easily someone you can eaves-drop in on. A common solution to this problem has been to implement Secure Sockets Layer, which makes your client encrypt data before it's transmitted to a server, where it's decrypted The data it's self is only encrypted during the transmission between Client and Server. This sounds good because someone who listens in on the line will be unable to see what happens. Unfortunately, there are still many exploitable vectors to look at. The intended recipient should be the only one who gets the unencrypted message, not any of the middle men.

I intend to create a chat system that encrypts and decrypts on the client-side only, without any user-based access (attempting to support a more anonymous Internet).

Design:
Implementing the SJCL, with limited configurations (initially; version 0) around other JavaScript code, using jQuery for ajax transactions to php file which interacts with a one-table database. You may select a channel for communication, this may be used for greater privacy (but not security, as all data is public in this system). Within a chat party, only data which is successfully decrypted will display; if you decrypt something with the wrong key, it won't display anything. To the user, you are only in the proper 'channel' of conversation.

Issues:
1) The SJCL presently returns and expects malformed JSON objects.
2) The SJCL encrypted object does not explicitly identify all pertinent details.
3) The decrypted data is not sanitized for the web browser: This allows for a Mallory-based attack if you decrypt a malicious javascript payload.

Implementation:
Total weight of the code is less than 150 lines. It works, I don't have any serious glitches, but version 0 is working quite nicely. Data is posted and special MySQL characters get escaped, all data in a party is sent to the client to get decrypted. Security of information is in the encryption, not in hiding access to it. Data is removed after it ages 1 hour (this is variable).

Future features:
  • Configuration panel to modify cryptographic settings
  • A mechanism to preserve data. Cookies, HTML5 database, a login? Not sure yet...
  • Make the chat window modular. Multiple tabs, pop-ups, jQueryUI-Dialogs...
  • More CSS to the boring page. Zebra stripe messages.
  • Box to prepend something like a name-- Or issue 'names' to users.
  • Server should reject non-encrypted data. Examine it somehow.
  • Option to easily view raw data in a party, so everyone knows what's going on with the data.
  • Deal with various issues around SJCL (ie, failed decryption should not error).
  • Put over SSL.

Thoughts:
I wonder how the Ulam Spiral will alter cryptography...

Why?
I can't stand most chat systems. They're insecure, they're buggy, MSN has that stupid half-my-screen advertisement if I mouse-over it. Without a login, there's no 'password to your account,' so crazy ex-girlfriends don't try and guess my passwords every weekend. I can change streams whenever I want, it's very cloak-and-dagger style. I like it. It's not intended for computer illiterate folks.

7/20/2010

The off button

The off button. Get rid of it.


For those of us who use computers, who honestly still uses the power button to turn off their computer? Normally this is a process from the start menu. For some reason, makers of boxes have kept this functionality left over from the 80s that there should be an off button-- After all, there is an on one, right?

I keep my computer on the floor, near my feet. Something that really bothers me is when I'm using my computer as a foot rest, and for some insane reason the power button gets placed right where my foot likes to go. This happens all the time when I get a new box, and my feet need to re-learn where to put themselves. I'll be working on something for a while, playing a game, watching a movie or something and have my feet up then click, my foot just triggered the land mine under my desk and everything going into shutdown right away without any prompts or way to stop it.

So I decided this is insane, why do we even have this button to turn it off? When is it actually a good idea for your computer to randomly lose power?

The button should only be to turn it on. If we really have a stalled out problem, the button should be moved somewhere for emergencies. Computers have built in software that can turn them off, we don't need a hardware button to turn them off.

Computers don't need hard-buttons to turn them off within an instant of being pushed, and it's a real nuisance and doesn't make any sense from a usability perspective.

I know this is often dependant on your operating system, but I wish the damn button didn't even exist.

I'd love to see box designers start doing things like this:

This would be wonderful. Plus, your computer is that much more badass if this was your power button. And lets be honest, for most of us that use computers needing to turn your computer off is something you want to be sure about, not happen because you bumped the damn thing -- Just like nuclear missile launches!

Just in case you ended up reading this wanting to know how to deal with this on Windows...
Control panel; then Hardware; then Power; now select what the power buttons do (and then disable them).