About Me

My name is Adam Kenny and I am currently a student at Hillsborough Community College in Tampa, Florida. I am seeking an A.S. in Computer Programming. I have an A.S.T. in Network and Database Administration from Erie Institute of Technology in Erie, Pennsylvania.

Previously I worked as a Multi-Channel Transmission System Operator/Maintainer in the US ARMY for 4 years, including two deployments to Iraq.

You can see some of the programming projects I have worked on or you can contact me by clicking on one of the links up top.

AKclock

AKclock is a replacement clock for Windows machines that will allow you to display more information than is normally included with the standard clock. This includes displaying the date AND time while still using small taskbar icons and displaying the number of seconds (one my favorite features in OS X). The clock is almost entirely customizable including the following settings:

  • form width, height, color, and location on screen
  • font styling including: type, size, bold, italic, strikeout, underline, color
  • custom date/time formatting
  • The program consists of a single .exe file and a config file that will be created on initial launch. Download the .zip file HERE and extract it to any folder. Then, it is preferable to place a shortcut to the .exe in the Windows startup folder, usually located at:
    C:\Users\[user-name]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
    If the folder has been moved you can find out where it is located by:
    Clicking Start > All Programs > Right Clicking Startup > and Clicking Open

    The initial configuration settings are set to run on a 1920x1080 monitor with a small taskbar and standard Windows 8 theme colors. You will most likely want to adjust the styles to your own liking by right clicking the clock form and selecting Settings to display the following window which will allow you to adjust the size, location and appearance to fit your particular screen configuration. You may also left click the form to display a calendar

    Download

    The software offered on this page is provided "as-is" with no warranty expressed or implied. I have tested the clock on Windows 7x64 and 8x64 only.

    Click HERE to download the .zip file. If you notice any bugs (it's a feature!) or have any requests feel free to contact me.

    FAQ (Frequently Asked Questions)

    Q: Does the 'show desktop button' work in the lower right corner of the screen?
    A: On Windows 8: YES. On Windows 7: NO (you can still use WIN+D keys).

    Q: Does this support Aero transparency?
    A: As far as I know you cannot actually 'replace' the clock on Windows, this technically just covers it up with a small window. Therefore, a transparent window would just show the original windows clock underneath. You should be able to set the form color to perfectly match your taskbar color as seen in the screenshots

    Q: Will you be opensourcing this?
    A: Most likely, yes, when it is 'finished'. When is that? Soon™...

    Change Log

    0.1

    Arduino Thermostat

    This is a simple thermostat that will turn on an LED when it gets too hot in the room, notifying you to turn on a desk fan perhaps. Once the temp goes back down the LED will turn off. To set a desired temp, you simply twist the potentiometer.

    If you wish, you can replace the LED with something like a PowerSwitch Tail which will let you connect the Arduino to any standard electrical device which can automate the turning on and off of a desk fan.

    Here is the breadboard view, created in Fritzing:

    You can get the code on Bitbucket or copy it from below:

    /* Thermostat.ino - Adam Kenny
    Allows a user to set a desired temperature.
      When the desired temp is reached a light will turn on.
    Updated on 2013-07-01 */
    
    /*
    PIN CONNECTIONS
    ARDUINO   RESISTOR  TRIMPOT   TMP   LED           5V  GRND
    2         330                       + (anode)
                                        - (cathode)       Grnd
    A0                            2
                                  1                   5v
                                  3                       Grnd
    A1                  2
                        1                             5v
                        3                                 Grnd
    */
    
    // set input pins for temp and pot sensors
    const int tempPin = 0;
    const int potPin = 1;
    
    const int ledPin = 2; // set the output pin
    
    // set the range of temps our potentiometer can adjust to
    int lowTemp = 50;
    int highTemp = 100;
    
    int delayTimer = 10000; // time to delay in ms, prevents rapid on-off pattern
    
    void setup(){
        Serial.begin(9600); // opens a serial port to see the data on a computer
      
        pinMode(ledPin, OUTPUT); // sets the LED pin to be used as output
    }
    
    void loop(){
        // create the variables that we will be using
        float voltage, degreesC, degreesF;
        int potValue;
    
        // convert the temperature pin readings to usable values
        voltage = getVoltage(tempPin);
        degreesC = (voltage - 0.5) * 100.0;
        degreesF = degreesC * (9.0/5.0) + 32.0;
    
        potValue = analogRead(potPin); // get the value of the potentiometer
    
        // maps and constrains potentiometer value to fit within our temp range
        potValue = map(potValue, 0, 1023, lowTemp, highTemp);
        potValue = constrain(potValue, lowTemp, highTemp);
    
        // prints out our desired and actual temp values on screen
        Serial.print("Desired Temp: ");
        Serial.print(potValue);
        Serial.print(" Actual Temp: ");
        Serial.println(degreesF, 1); // show temp using one number after decimal
      
        if (degreesF > potValue){
            tempAbove();
        }else{
            tempBelow();
        }
      
        delay(delayTimer); // wait before printing out another line
    }
    
    // function that runs when desired temp is reached
    void tempAbove(){
        digitalWrite(ledPin, HIGH); // light up the LED
    }
    
    void tempBelow(){
        digitalWrite(ledPin, LOW); // turn off the LED
    }
    
    // function that converts pin readings into actual voltage values
    float getVoltage(int pin){
        return (analogRead(pin) * 0.004882814);
    }
    

    And here is a YouTube video of it in action:

    CSS Line Numbering

    I will describe how I use CSS to number lines of code for display.

    To use this, you will create a <pre> class with the name of 'code-highlight' and enclose each line of code within <code> tags like so:

    <pre class='code-highlight'>
    <code>#include <stdio.h></code>
    <code></code>
    <code>main(){</code>
    <code>    printf("hello, world\n");</code>
    <code>}</code>
    </pre>
    

    Which will display the following:

    #include <stdio.h>
    
    main(){
        printf("hello, world\n");
    }
    

    Warning

    You will not be able to just paste in code as it is, you will need to encode special characters such as < or > before you wrap the <code> tags around the code itself, this will prevent the browser from trying to interpret the characters as special formatting.

    I recommend you paste your code into a website that will encode the text for you such as HTML Entities or if you use Sublime Text as your text editor you can select the block of text and then open the command palette using CTRL+SHIFT+P or CMD+SHIFT+P (on OS X), then if you type enc you should see an option listed as HTML: Encode Special Characters which will encode the text for you.

    You will also need to escape any escape characters (use double slashes) such as the slash in front of the n on line 5 of first example.

    The easiest way to enclose each line of code inside <code> tags is to select every line of code in Sublime Text and then press CTRL+SHIFT+L or CMD+SHIFT+L (on OS X), this will allow you to edit multiple lines of code at the same time. You can then press END and then type in </code> then press HOME (you may have to press it more than once if there are tabs at the beginning of your code to force the cursors to the very beginning of the line) and then you can type in the beginning <code> tags. Then press ESC to stop editing multiple lines and save.

    So the final HTML encoded and escaped code looks like this:

    <pre class='code-highlight'>
    <code>#include &lt;stdio.h&gt;</code>
    <code></code>
    <code>main(){</code>
    <code>    printf("hello, world\\n");</code>
    <code>}</code>
    </pre>
    

    You can get the CSS on Bitbucket or copy it here:

    .code-highlight {                   /* <pre> class that we will use */ 
        counter-reset: lineNumber;      /* resets counter to prepare for use */
        border: 2px solid rgba(255, 128, 64, 0.5); /* orange border around code */
        border-radius: 4px;             /* creates a rounded border */ 
    } .code-highlight code {            /* <code> tags around each line of code */
        counter-increment: lineNumber;  /* counter that will be incremented */
        font-family: Consolas, Monaco, monospace; /* specific font to use */
        word-wrap: break-word;          /* forces word wrap */
        font-size: 14px;                /* this allows 80 chars for the div I use */
        line-height: 150%;              /* space betwen lines for readability */
        -moz-tab-size: 4;               /* specific tab width that is*/
        -o-tab-size: 4;                 /* to be used to prevent display of */
        tab-size: 4;                    /* smaller or larger tabs widths */
    } .code-highlight code:before {     /* defines the left sidebar for numbering */
        content: counter(lineNumber);   /* incremented counter to display */
        color: gray;                    /* medium gray line number text */
        display: inline-block;          /* constant width of line number area */
        min-width: 3em;                 /* specific width of line number area */
        background-color: whitesmoke;   /* light gray background for line numbers */
        text-align: right;              /* line number align on right side */
        padding-right: 0.25em;          /* prevents line number from hitting edge */
        margin-right: 0.25em;           /* spacer between line number and code */
        border-right: 2px solid rgba(255, 128, 64, 0.5); /* orange vertical line */
        -webkit-touch-callout: none;    /* these stop line numbers from being */
        -webkit-user-select: none;      /* selected when dragging the mouse */
        -khtml-user-select: none;       /* over the code, this allows a user */
        -moz-user-select: none;         /* to select the code and copy it */
        -ms-user-select: none;          /* without copying the line numbers */
        user-select: none;              /* (IE blocks selection starting only) */
    }
    

    Golf Island

    Golf Island is a game where you play the role of a golf ball looking for his lost change.

    Your name is Gary the golf ball and after a long day at work you are ready to settle down for the night. Unfortunately you seem to have misplaced your hard earned money! Travel around the island and try to find the missing coins, can you find all 18? Be careful though, because you never learned how to swim! After you find them all, try and beat your own high score!

    Free Download

    Click on an image below to get the app for free:

    Premium Upgrade

    Golf Island (Premium) removes the ads from the free version and also includes the updates listed below. The cost is about $1.

    Click on an image below to get the upgrade:

    Change Log

    1.3

    1.2 1.1 1.0

    Real Dice Roll

    Real Dice Roll is an application that allows you to roll various sided die on a virtual tabletop.

    Includes the following die: d4, d6, d8, d10, d12, and d20

    Perfect to replace or compliment and dice you use for the following games: Dungeons & Dragons (D&D), Yahtzee, Cee-lo, Craps, and any other game that uses dice.

    Most dice rollers are nothing more than random number generators with simple pictures of dice. This program rolls the dice using a built-in physics engine which makes it more life like. The dice bounce and roll on the table similar to real life.

    Free Download

    Click on an image below to get the app for free:

    Premium Upgrade

    Real Dice Roll (Premium) removes ads from the free version and also includes the updates listed below. The cost is about $1.

    Click on an image below to get the upgrade:

    Change Log

    1.2

    1.1 1.0