Mind Games

I recently learned of a travel word game with a few simple rules:

  • Start with any word.
  • Construct a new word, using all but one of the letters of the original word.
  • Repeat until you have a one letter word.

I decided to replicate it using Python and a dictionary file, and here are the results. The program consists of a WordTree class and a small wrapper. Given a word to begin with, the class finds all permutations of the word, less one character. It then spellchecks each one, discarding the gibberish.

Next, it creates a child WordTree class for each of its valid words. Through the magic of recursive processing, it creates a tree of slowly shrinking words.

WordTree has a few features that are just for show. It uses a custom __str__() function that prints a representation of the entire tree, using DOS box characters for prettiness. There are also two levels of notification for progress updates, and the dictionary is customizable.

New Solder & a 3.5mm to RCA Adapter

Until recently, I used plumbing solder and flux for electronics. They work fairly well, but the RepRap motor controllers refused to go together without more coaxing. There were a few bad solder joints on one driver that killed it.

My dad found me some solder in the basement, but I was reticent to use it without testing. I made an adapter that connects a computer to a stereo to test the solder (and to use).

From previous scrapping, I had all the parts needed: two female RCA connectors, and a 3.5mm male audio jack. I'd planned to make a 6" extention cable, but changed my mind and just assembled them deadbug style.

I only had white (left) and yellow (video) RCA's, so the gizmo uses a yellow plug for right. Sue me.

The adaptor went together easily. I bent the pins a bit, and just soldered them together. Electronics solder is much easier to use than bulky plumbing solder.

That's it for this experiment, and the new adaptor is playing music in the background.

More WYSIWYG Fun

Previously, I created a custom module to change the symbol set provided by CKEditor, the WYSIWYG text editor on this site. (CKEditor is an applet that shows live formatting instead in lieu of HTML). Since then, a few other flaws have come up. 

  1. Spellcheck is provided by a third party, but doesn't work in Opera. Modern browsers have their own spellcheckers, which were being suppressed. 
  2. CKEditor provides a few styles for theming text. There are two problems with those styles. First, they're inline styles. Second, they're ugly. 
  3. CKEditor uses its own styling. Ordinary formatting such as italics and headings look okay, but styles I've defined don't show up. 

Module Hacks

I installed a WYSIWYG (what you see is what you get) module for Drupal recently. The module adds a formatting bar to edit fields, and displays what a post will look like after HTML is applied. It's called WYSIWYG (creative!), and I'm using it with a pretty little editor called CKEditor.

CKEditor contains a symbol select, which is incredibly useful for inserting characters like α and © into posts. Unfortunately, the default symbols selector was full of garbage (it contained mostly keyboard letters, without any greek. I write about coding and ECE, so symbols like Ω and µ will see a lot of use. 

Fortunately, there's an incredibly simple override. The Drupal module overrides the editors own settings, but overriding the WYSIWYG module it trivial. 

Heated Bed and Motor Drivers

Good news and bad news. I'll start with the good news.

Good: Heated Print Bed

In the process of polishing the Reprap, I dediced to make a heated print bed. These beds improve print quality by helping the plastic adhere to the bed. During the build, the lowest layers of plastic are warmed by the plate. As the plastics cool, they shrink and detach from the bed. A heated bed prevents that shrinkage.
I found a template for a bed by on thingiverse. This pattern was slightly smaller than others, and printed on letter size paper. After much trouble, I managed to transfer toner onto the board as a resist.

Archives, Redux

Views does almost what it should. There doesn't seem to be support for nesting lists, which I was looking for. It refuses to create a nested list (below). JQuery and AJAX could've done a great job of theming that into an accordian menu.

  • 2012
    • Oct
    • Nov
    • Dec
  • 2013
    • Jan
    • Mar
    • Apr

Views

Views is an amazing module.

By default, the Drupal homepage shows a "Teaser" of each node (piece of content) that's been promoted to the front page. If there are more than 10 posts, it'll do you the favor of displaying a pager at the bottom. That's all it does, though. There's no filtering, only rudamentary ordering, and general lack of customization.

When the site came online, I used the Path module to give content a snazzy URL (in lieu of the Drupal default "nitkin.net/node/17"). All of the articles (the things in the frontpage use the URL format "nitkin.net/year/month/title"). I wanted the home page to filter using the same yyyy/mm scheme to allow granular browsing.

nitkin.net/2012 shows all posts from 2012

nitkin.net/2012/6 shows all posts from June 2012nitkin.net/2012/6/views displays this post

That's where Views comes in.

Swift

As a summer project, I'm trying to learn more about woodworking. I like making things, and woodwoorking is one more method of creating.

My mom asked me to make her a yarn swift, which is a sort of lazy susan for a skein of yarn. Often, yarn comes in skeins (loops) that become hopelessly bunched as they unwind. A ball of yarn is easier to knit with, and she has a small machine that'll wind yarn into a ball. The swift holds the yarn as it unwinds, preventing tangles. 

After looking at some designs, we decided on a horizontal design, centered around two wooden X's. The lower cross would act as feet, and the upper one would hold upright dowels, which would hold the yarn. The longer arms would be 30" each (large skeins are usually smaller than two yards, and 30" arms could accomodate those.)

We decided to use a few pieces of 2x2 oak that were lying around. I started by cutting each board to the rough dimensions. The larger piece of oak split into a 30" piece and a ~15" piece; the shorter end was used for feet. I cut each board in half to make two 30x¾" boards and two 15x¾ pieces.

Half laps in each board improved the appearance and usability of the swift. I set the tablesaw blade to 3/8", and cut a 3/8x1½" slot out of the center of each piece.

We decided to use both fixed pegs (seated in holes) and mobile pegs (seated in channels) to hold the skein of yarn. The holes were incredibly easy: I drilled a 5/8" hole to a depth of 3/8" near the end of each arm. I swapped to a ¼" drillbit and drilled the rest of the way through.

Searching for a Theme

I have nothing against the default Drupal theme, but it's the definition of generic. It's like using Helvitica (an intentionally generic font) to brand your business. With that in mind, I set out to find a more interesting theme for this site.

My brother and I browsed through the Drupal theme repository, but didn't find much we liked. Alpine, the best theme we saw, had a promising layout, but carried an outdoors motif. We tried to refit the images, but the theme wasn't designed to be modified. A surprising number of the themes are starter kits, and those that aren't tended to be clean and businesslike.

Perhaps it's fitting that we didn't find any perfect themes online.

Hello world!

As you might have guessed, I'm Benjamin Nitkin, and this is my corner of the internet. I'm studying Electrical and Computer Engineering, and enjoy all sorts of tinkering. (Mostly, I like making things work together. I'm an engineer.)

I've wanted a web site for a while now. I read hackaday religiously, and am always impressed with how well some makers document their projects. Fellow makers are amazing resources - no company documents how to make your own circuit boards or improve a 3D printer. This site will record my projects, and will hopefully help others make.

First, though, I need to pull this site together. Until I graduated high school, I was the webmaster for the LigerBots, a FRC team at my high school. Under my guidance, the LigerBots won the Best Website Award. I want this site to reflect my abilities as a webmaster, and my personality as a ... person. Drupal's default theme doesn't quite cut it.

Additionally, the whole family has snazzy new vanity emails! Google's dominance is scaring my family and I. Somehow, self-hosted email feels more secure. For bonus points, it's also significantly more geeky.

Until next time!

Pages