Saturday, November 12, 2011

Reflex Game

[Reflex Game  Parts]
The Post: This is a post on how to make the thinger to the right (it's a little reflex game I made) with all kinds of neat tools.

The Tools: If you're thnking about making something like this, you'll need the following:
The Game: Each person puts their thumb on a button holder (cylinder thing in images) and pushes their red button when the LEDs reach the green light.  The lights in front flash red, then yellow, then green (as seen on board in first image).  Whoever hits the button after the light has turned green first, wins.  The game indicates who won by flashing an LED (above the colored LEDs) closest to the winners button.  If someone hits their button before the light is green, they loose.

The Board: A soldering iron (or gun) is a great thing to have.  That way, you can steal other peoples breadboard chips and have fun with them!  A soldering iron is good enough for this game but guns get hotter and can be used for more applications.  This is what I did with the board:
  1. Find heat gun and black shrink
  2. Slide shrink down the wires around the button bottoms as pictured where the wire is exposed
  3. Heat shrink with heat gun until it does its thing (shrinks onto the wires).  Do not melt things
  4. Find a soldering iron (I prefer ones that glow orange from Canadian tire, it's a lot better/hotter then the wireless ones)
  5. Find Solder (I used lead-free)
  6. Find wet sponge (a real one like what comes with this, not one of those plastic ones that will melt and attach itself to your gun when it gets hot)
  7. Insert a wire, resisters, light, chip, or other parts onto the boards front at it's desired length (the LEDs have to pop through the metal case, so make sure they stick off the board evenly)
  8. Turn the board around and take a small amount of solider to attach the piece to the board
  9. Dab soldering gun off the sponge to keep it clean
  10. If there are long bits hanging off the back, cut them with a wire cutter
  11. Repeat starting at step 7 until all parts installed
  12. Tada, board!

[Button Holder Top]
The Button Holders: Lathes are pretty neat.  You can set up measurements so you do not need to leave any marks, and pretty much everything on a lathe can be made on a lathe.  You can make screws, rods, and all sorts of funny shapes with them.  It reminds me of metal pottery.  Except instead of Patrick Swayze guiding your hands through mud, you have the lathe, throwing metal spirals at you.  They are hot, stay away from them.  Also keep away from baggy clothes because like Patrick Swayze in a 90's girl dream, the lathe will rip them off.  The button holders were made with a metal lathe, which enabled very precise measurements (which is good, because you want it to fit snug).  The steps are below:

[Button Holder Bottom]
  1. Find metal cylinder chunk that may or may not be kinda dirty/rusty looking
  2. Install metal chunk (which is going to be the button holder) in the lathe
  3. Perform a facing to the top (and bottom if you like) with the help of our cross-slide by shaving off the first few layers on the front and bottom of what I'm calling the chunk.  This makes the face clean and shinny
  4. Install the small drill bit on the taper that's the width of the push button
  5. Put a drop of oil on the tip of the drill bit every time you change it, as it gets hot
  6. Set up measurements for the middle of the cylinder
  7. Drilling hole through the center of the cylinder.  This is where the top hole comes from as seen in the first button holder pic
  8. Repeat drilling increasing the size of the drill bit each time until the hole is the desired circumference (the button should fit into it).  Instead of going directly through the chunk each time, only go up to the top, leaving half the width of the button top (so you can press the button when it's in the holder).  This can be seen in the second button holder pic (there's a smaller hole in a bigger hole).  As you can imagine, the last drill bit was quite large
  9. Set up the measurements for the outside thickness of the button holder
  10. You cannot remove cm at a time (unless you want to break something) so if the chunk is a lot thicker you have to shave off about a mm at a time
  11. Set the lathe up the same way you did a facing but this time slide the chunk back and forth via a handwheel on the carriage to shave off a small amount of metal around the entire surface.  Make sure the top of the buttons will fit next to each other once they are in their casing
  12. The last layer should take off a very small amount of metal, giving it a smooth appearance as seen on the images here
  13. We now have a shiny metal cylinder.  To make the edges less sharp shave off several layers off the edges to create a rounded edge
  14. Setup measurements for the hole slightly smaller (not even a mm) then the large holes in the sheet metal).
  15. Perform step 9-12 again but this time leave a portion of the top alone.  Perform this step until the button holder can sit in the hole in the case (known by the measurements mentioned in 14), it should not fall through it.
  16. Sweep up hundreds of metal spirals
  17. Tada, button holder!

The Case: The sheet metal I had came with 2 pre-cut button holder holes and cut to the right shape.  Sheet metal shears can be used to cut the straight lines, while there are special heavy-duty circle cutters that are commercially available that attaches to a drill as a drill bit and can cut larger holes.  A sheet metal nibbler can make neater shapes.  These are the steps I made to create the reflex game:
  1. Spray paint a piece of sheet metal blue on one side
  2. Find something pointy
  3. Mark the measurements where the bends and holes for the LEDs should go with a sharp metal tool.  You can see the blue paint and the markings I've made in the pic.
  4. Find a drill with a bit slightly larger then a LED
  5. Drill holes as marked in step 3
  6. Bend the sheet with a press break, making sure to bend things in the right order or it will not fit together
  7. Fasten battery holder with rivets with the help of a rivet gun (what a handy little tool)

The Finished Product:  For some reason, I don't have a picture of that.  But to finish, perform the following:
  1. Attach button holders into case
  2. Attach buttons into button holders
  3. Attached the board into the case, making sure the LEDs come out through the case.  You may need to use spacers to get the board in the case at the desired width away from the case
  4. Tada, Game!
This is me, take it or leave it NL.

Monday, November 7, 2011

Jot Notes - Joining the Apache Kalumet Incubator

[Karaf and Kalumet mix]
Since Kalumet has just been accepted into the Apache Incubator, I get an inside view of a new project from the beginnings.  Winter is approaching, so I've done up a quasi-Christmas list of things to know when joining a new open source Apache project.  The list is still fairly limited as I was hoping to get something out of a planned programming session with a Karaf friend.  But turns out mixing Karaf with Kalumet (and apparently a bit of LMFAO according to the pic) can be a little dangerous (expecially if you are from certain countries as you'll find out if you read below).  There will probably be more in depth topics later.  If you're already confused, reading my previous post may clear that up.  If you intend to keep reading you should join in on the fun we had by listening to the YouTube video at the bottom of this post.
  • JIRA - Like many thousands of other software projects, Apache uses JIRA, a software tool for tracking issues and project management.  JIRA can connect bugs directly to subversion source code with native CVS (Concurrent Versions System) integration.  Find more about JIRA here (or Godzilla for short?)
  • Mailing Lists - This JIRA issue was made to manage the creation of the following mailing lists for Kalumet:
    • User - General questions about Kalumet usage, use cases, etc.  Where users may ask questions.
    • Dev - Discussion about Kalumet development. This mailing list is used by all Kalumet committers. It's where the discussions, proposal, road-map, and votes stand.
    • Private - For Kalumet's PMCs.
    • Commits - Notification for all Kalumet's SVN commits.
  • Incubator Repository - This is where the Incubator projects (like Kalumet) live.  The ASF uses SVN and GIT (GNU Integrated Tools) as their distributed revision control system.
  • Quarterly board report - An automated system emails board meeting dates/info to the development mailing list each month in advance, to allow for review time.  The report for Kalumet forms part of the Incubator PMC report.  This is because Kalumet is a podling (referring to the codebase and community while being 'incubated').  The reports are appended to the Incubator Wiki page each month.  Last month's quarterly board report is located under  Mentors should review reports for their project(s) and sign off on them on the Incubator wiki page. Signing off on a report shows that Mentors are following the project.  Projects that are not signed may raise alarms for the Incubator PMC.
  • New Committer - Since I've been voted in, my name on the Apache committers index moved from "Unlisted CLA" to "SVN-Committer" with my username, full name, and project (Incubator).  Then the PMC Chair filled out a ASF new request forum (or any ASF member if the chair was unavailable) on my behalf.  Different types of elections are held on either the public mailing list or private mailing list.  Once my request was received, a community member with root access created my account, adding permissions like relevant source code modules (which enables me to commit).  Since this is volunteer work, this sometimes takes time.  After accounts are created, they are managed by the Apache infrastructure team.  root@apache then sent me an email with various information and mentions that the community mailing list among others are available if I am interested.
  • LDAP Managed Services - The root email mentioned above sends committers the location and login information of these services:
    • Shell ( - Committers can SSH to this location with their Apache username and password like this: ssh 
    • SVN ( - SVN stands for Subversion
    LDAP (Lightweight Directory Access Protocol) is represented through LDIF (LDAP Data Integerchange Format) files.  You can use LDIFDE (a command line tool) to import/export information in Active Directory.  Apache uses something called Apache Directory though I'm more familar with the ADAM (Active Directory Application Mode) which is now renamed AD LDS (Active Directory Lightweight Directory Services).  If you look under, you'll see the below under LDAPS
    • cn=ldapmonitor,ou=users,ou=services,dc=apache,dc=org
    This would be written in the Schema (contained in a LDIF file) as a DN (distinguished name) which is a unique identifier for the directory.  DC stands for the domain component so basically you we split up the domain into two components (dc=apache, dc=org).  OU stands for the organizational unit, or user group.  As you can tell from the above DN, you can be part of more then one OU.  CN stands for the common name, which refers to the individual object which you can query, so in this case there is a ldapmonitor object whose attributes would be defined in the schema.  Active Directory has a directory like structure (who would have guessed?) so when looking in the AD LDS or ADAM for example, the ldapmonitor CN/object could be looked at like a folder and the attributes defined in the schema could be looked at like the files inside.
  • Email - Committers get a email address.  According to the root email I received, mail servers are updated every hour which enables new members to receive emails from their Apache email address.  I cannot receive email directly from the server, at least one forwarding email address has to be set up.  This can be changed by logging into  Committers can link emails to their gmail account by following these steps.
  • Names - One thing I've noticed is a very small number of Apache members do not have real names attached to their profile. A PMC member informed me that in some countries it is illegal to partake in this type of activity so they leave their name out for privacy/legal purposes. As you would imagine, those people working in open source that are in hiding do not talk about it often online, but I've scowered the internet and posted a few related articles which I've linked below:
  • Kalumet is pretty DOAP (Description of a Project) - The DOAP file is a XML file containing a RDF Schema defining the project.

This is me, take it or leave it NL.