Keyboards!
Characteristics
Key frequency - How often each letter of the alphabet is used in normal use of the keyboard
Speed of data creation - How fast it takes to create data using different mediums - handwriting, typing, conversational speech
Dell stock - The levels of Dell's stock in the past 12 months
Power consumption - How much power is used by the keyboard compared to the entire computer
RSI percentage - Percentage of RSI compensation cases compared to all compensation cases in the USA
Materials
Keyboard - my object
Cable - A stunt-double for the actual keyboard cable, which I needed to stay in tact
Super glue - it's super, thanks for asking
Double-sided tape - good for labels
Speed of data creation
I felt the need to create a separate section for this data characteristic, simply because there was more complexity to it than I had originally anticipated. It took a fair amount of research to finally find a way to implement the java commands that would allow me to manipulate the lights on the keyboard - my java is very rusty, you see. Regardless, I found some code (one of my del.icio.us links) that was enough for me to modify and bring to life for my own purposes. The following is my code:
import java.awt.*;import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
public class caps
{
public caps()
{
}
public static void main(String[] args)
{
final numLock handwriting = new numLock();
final capsLock keyboard = new capsLock();
final scrollLock convo = new scrollLock();
JFrame frame = new JFrame();
JButton button = new JButton("Quit");
frame.getContentPane().add(button);
frame.pack();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
handwriting.quit();
keyboard.quit();
convo.quit();
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_NUM_LOCK, false);
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false);
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_SCROLL_LOCK, false);
System.exit(0);
}
});
handwriting.start();
keyboard.start();
convo.start();
frame.show();
System.out.println("good");
}
}
class numLock extends Thread {
private boolean go;
public void quit() {
go = false;
}
public void run()
{
go = true;
Toolkit tk = Toolkit.getDefaultToolkit();
int key = KeyEvent.VK_NUM_LOCK;
tk.setLockingKeyState(key, false);
boolean state = false;
while (go) {
state = tk.getLockingKeyState(key);
tk.setLockingKeyState(key, !state);
//sleep
try { Thread.currentThread().sleep(681);
} catch (InterruptedException ex) {}
}
}
}
class capsLock extends Thread {
private boolean go;
public void quit() {
go = false;
}
public void run()
{
go = true;
Toolkit tk = Toolkit.getDefaultToolkit();
int key = KeyEvent.VK_CAPS_LOCK;
tk.setLockingKeyState(key, false);
boolean state = false;
while (go) {
state = tk.getLockingKeyState(key);
tk.setLockingKeyState(key, !state);
//sleep
try { Thread.currentThread().sleep(370);
} catch (InterruptedException ex) {}
}
}
}
class scrollLock extends Thread {
private boolean go;
public void quit() {
go = false;
}
public void run()
{
go = true;
Toolkit tk = Toolkit.getDefaultToolkit();
int key = KeyEvent.VK_SCROLL_LOCK;
tk.setLockingKeyState(key, false);
boolean state = false;
while (go) {
state = tk.getLockingKeyState(key);
tk.setLockingKeyState(key, !state);
//sleep
try { Thread.currentThread().sleep(181);
} catch (InterruptedException ex) {}
}
}
}
You can find a compiled, executable jar file
here.
Data Trends/Rationale
Key frequency
At first when observing the placement and height of each character, I had decided that there really is no pattern or trend that accounts for it, however it was then that I realised that this was the trend. What I mean by this stems from the layout of the keys and the reason for this placement. As I'm sure most people are aware, the Qwerty layout was designed to slow down typists and to move frequently used characters away from one another to avoid jams in typewriters. When looking at the height of the keys and their placements, you can plainly see that the most frequently used keys are spaced far enough apart for this to be considered a successful layout.
Speed of data creation
I changed my original idea of having the keyboard output its own serial number, as this does not really show any interesting data, or data correlation etc. I now have each of the lights on the keyboard ( Num Lock, Caps Lock, Scroll Lock ) correspond to a different medium of data creation, with the speed of the flashing of these relating to the speed of each of the mediums. Specifically, I have the speed of handwriting, typing and conversation measured and outputted. The data is subjective, obviously, but it is based on my speed for each of these, and it is interesting to note how much faster I type than I can write by hand. Conversation is obviously the fastest, but was also the most casual in recording.
Dell stock
For this data, I took the level of Dell's stock at the beginning of each month, for the past 12 months. This correlates well to the 12 F-keys, so I used them to show my data. They are placed on the rubber springs that are found inside the keyboard. I simplified the data to only show a basic outline of the stock information, with the keys creating a simple line chart of the shape of the data and the trend that it follows. The keys are placed on four levels, to simplify this further, with the numbers on the keys helping to show order and direction.
Power consumption
This was a simple data characteristic, in which I measured the amount of power that the keyboard draws compared to how much flows from the powerpoint that powers the entire computer. To illustrate this, I have simply shredded another cord to resemble the cord of the keyboard ( I couldn't use the actual cord, given my need for the lights to continue to operate ) with two separate lengths, one short - the keyboard's power, and one long - the power coming from the powerpoint.
RSI percentage
This was a simplistic data source taking information from
RSI.org.au that states that over 60% of worker's compensation claims in the USA are from RSI related injuries. For this, I used the round bumps of the rubber springs as counting elements, and colour coded 60% of them to represent RSI injuries. This is a simple visualisation, but I hope to be a powerful one given the large percentage.
del.icio.us links
Right here.
Final Sculpture Images
Unfortunately, the glue I'm using for my sculpture takes a ridiculously long amount of time to dry, and I'm too scared to move it, so this means the pictures have a pretty shoddy background, i.e. not white as requested. I tried to make them look good regardless, so here goes:
flickr set
You need to be a member of infostudio 2008 to add comments!
Join this social network