Yeh, I am sure this is not-news for most of you but I was surprised.

Anyway, so I was googling for some info for using forks in subversion with the string:

svn fork -git "how to"

and I noticed one of the hits had nothing to do with svn but only the normal use of the word “subversion”  Notice my search has svn and not the word subversion.

 

How to Beat the Salad Bar – NYTimes.com

www.nytimes.com/2011/03/20/magazine/mag-20Subversion-t.html
Mar 17, 2011 – How to Beat the Salad Bar  Acts of Mild Subversion at the Salad Bar a plastic box, and next thing you know you’re forking over 13 bucks. 
 

Because I wanted a practical electric car.  That is the answer to the question of why.  I did all the calculations and at the end of the day the additional cost of the Volt does not save any money at current gas and electric prices for about 20 years.  I hope it lasts a long time but probably not that long so what I save at the pump doesn’t add up to what I pay at the dealer.

Some other reasons:

  • Saves energy: I leave a smaller carbon footprint.
  • No pollution (at point of use).
  • Green energy: yes, most of the electricity in NH is coal but I can pretend that my electrons come from hydro or solar or nuclear.
  • Not using imported oil is better for the economy and world stability.
  • Driving an electric car is wicked cool!  The Volt is very fast compared to other cars I have owned and quite unique and stylish right now.
  • This is the first US branded and made car I have owned (my Toyata minivan was made in the US but it Japanese branded).
Tagged with:
 

I finally finished Infinite Jest after way to long.  I started reading the first time shortly after it came out and lost speed about a third into it.  With Infinite Summer on Twitter last year I thought it would be a great time to start it again and actually keep up.  Well, that didn’t exactly last and it ended up on at work where I would read about a chapter a week at lunch.  Last week I was ill and the book was mostly done so I took it home and finished it off.

Now that it is done I am not sure how I feel.  Good I finally completed it.  Incomplete because the ending just kind of ended.  Nothing really was resolved in the plot lines.  The “entertainment” was never recovered.  Obviously the lack of a real ending is some post modern comment on entertainment in America.  Yeh yeh, I still want more.  David Foster Wallace is a genius.

All sarcasm aside it was a great read.

 

I traded in my2004 Prius for a 2012 Chevy Volt.  Here are some comparisons and differences between between them.  I am updating the article as I go along.

At the beginning of each item I pick the “winner” or “loser” and the indicate the amount of the win or lose by the number of + or – I assign.

  • Volt+++ The Volt is electric.  This is of course the main reason why I bought a Volt.  Silent at all speeds and if I am careful I can mostly avoid gas stations.  The Prius has electric motor but it is a gas powered car even if it does get twice the MPG of other gas cars.
  • Prius+ The Prius is a little larger for the back seat and cargo area.  The Prius hatch also loads out flat at bumper level and the Volt has a wall you have to lift stuff over which can be a pain for larger items like bikes.  The Prius has belts and enough room on the rear bench seat for 3 people if a bit cramped.  The Volt has bucket seats and a center console.
  • Volt+ The Volt is Sportier The seats are stiff and molded, the suspension flat and the steering responsive.  It feels more powerful than the Prius at all speeds.  It can be fun to drive in addition to leveling up when you want to play the hypermile game.
  • Volt– No place on the Volt for a bike rack hitch.  On the Prius I bought a 2″ hitch bar that bolted on to the hold-down hook points and I could attach a bike rack (I have a 3 bike Allen).  Early reports are there are no hitches available and the placement of the backup camera and light in the center make it more complicated.  I may end up selling the rear rack and get a Thule roof rack.  This adds more wind resistance and is less convenient.
  • Volt- Visibility.  When I first drove the Prius I didn’t like the view in the back and I thought I would have trouble seeing with the hatch in the way.   I got used to it.  In the Volt it seems even worse.  Maybe it is something to  get used to again.  The Volt has the backup camera which I really love!  One really stupid thing seems to be the rear view mirror where this some hump in front of it that obscures the view on top.  I don’t know what this is for besides for seat belt indicators and even then it doesn’t have to extend out so far.
  • Volt++ Rear View Camera and Sonar.  My Volt has the rear view camera as well as front and rear sonar beeps.  Yes, the camera is available on newer Prii but it wasn’t on mine.  In fact when driving  friends’ Prii I wanted one myself even more.
  • Volt+ Feeping Creatures.  I mean creeping features: cup holders, 12v jacks, etc.    The Prius had 2 12v jacks in front.  One by the passenger legs and one in the hump box.  The Volt has one in the box, one on the dash box and one in the back hump for passengers to use.  Maybe more that I haven’t found yet.  There is also a USB in the hump box.  They both have the same number of cup holders.  In the Prius the rear one was fold out and vulnerable to being pulled off when kicked (kids!) while the Volt has it built into the hump.
  • Volt- Premium Gasoline.  The Prius preferred lower octane gas while the Volt takes Premium.  They say it is because the gas in the Volt may stay unused in the tank and engine for a longer time and Premium won’t break down or gum up as easy.  The bright side is the Volt shouldn’t need to fill up very often.
  • Volt++ Infotainment.  This is mostly 7 years of improvements in car electronics.  My Prius had the premium JBL system with 6 CD changer and cassette tape (!!).  No AUX jack or bluetooth A2DP.  I added an iPod dock connector which I used about every day.    The Volt has the premium Bose system with 1 CD/DVD, XM, Aux in and USB (NO bluetooth A2DP).  The lack of Bluetooth concerns me but the USB to my Android (Photon) phone does an excellent job of showing and playing files.  The AUX can do the job if needed without the hassle of bluetooth audio so maybe it is OK.  XM radio is underwhelming so far and the nifty traffic info on the NAV screen doesn’t include Rt 3 which I use for my commute.
  • Volt+ Tire Pressure readout  How awesome is it to see your tire pressure right on the display?  Even more awesome is getting email telling me one tire has low pressure!
  • Volt+ OnStar.  How do you change my opinion that OnStar is an expensive luxury feature and intrusive invasion of privacy to wondering how I ever lived without it?  Simple: give it away for free (for 3 years).   The OnStar app for Android lets me see the battery and fuel levels, control charging and do remote control like remote start and door control from anywhere.  It also shows me tire pressure and sends diagnostic reports.
 

From:

NPR

 

As Greenblatt describes it, Lucretius (borrowing from Democritus and others), says the universe is made of an infinite number of atoms …

… moving randomly through space, like dust motes in a sunbeam, colliding, hooking together, forming complex structures, breaking apart again, in a ceaseless process of creation and destruction. There is no escape from this process. … There is no master plan, no divine architect, no intelligent design.

All things, including the species to which you belong, have evolved over vast stretches of time. The evolution is random, though in the case of living organisms, it involves a principle of natural selection. That is, species that are suited to survive and to reproduce successfully, endure, at least for a time; those that are not so well suited, die off quickly. But nothing — from our own species, to the planet on which we live, to the sun that lights our day — lasts forever. Only the atoms are immortal …

Not only did Lucretius write this more than 2,000 years ago, somehow his book managed to survive the fall of Rome, the burning, looting and desecration of the great libraries, a thousand years of cold storage in medieval monasteries where bookworms, censorship and erasures were common, so that at one point, maybe three — that’s all, three — copies were in existence — and yet, says Stephen, On the Nature of Things emerged to become one of the most radical and talked about essays of the post-Renaissance, a favorite of Machiavelli, Montaigne, Sir Thomas More and Thomas Jefferson.

 

 

http://www.npr.org/blogs/krulwich/2011/09/19/140533195/lucretius-man-of-modern-mystery?ps=cprs

 

My word list from Infinite Jest  by David Foster Wallace (the words I looked up in the dictionary):

  • sulcus 192
  • éclat 155
  • rutilant
  • acutance 96
  • halation 97
  • carminative 103
  • prandial 191
  • reticulate 127
  • murated 127
  • erumpet 155
  • duress 181
  • annularized 183
  • trivium 188
  • quadrivium
  • mucronate 208
  • frustum 213
  • bradyauxetic 313
  • blepharoprothesis 314
  • mucronate 314
  • saurian 316
  • homodontic 316
  • frisson 322
  • Ansuchluss 322
  • magisculed 354
  • apicals 366
  • aphasiac 368
  • aigrette 380
  • amanuentic 381
  • glabrous 388
  • orts 438
  • baroque 414
  • fungoes 457
  • shirliny 556
  • threnody 556
  • pules 670
  • ephebe 677
  • shibboleth 706
  • mystagmus 1018
  • swivet 1019
  • falcate
  • picayune 1025

 

 

 

Sensei Ninja 250

This sounds familiar!  Excellent site and conversion project.  The interesting points are:

  • Lithium
  • Welded struts on the frame in place of missing engine structural
  • There are new resources like the battery monitor controller link
  • There is a new more powerful Etek motor.
  • Why is he using a brushed controller on a brushless motor?

http://corin.com/sensei/index.shtml

 

 

 

Tagged with:
 

Finished. Hilarious at the end when he meets Oscar Wilde and Sherlock Holmes.

 

Tagged with:
 
Simple concept, put an RFID chip on your cat and a reader by the door. Tweet whenever the cat uses the door.The reader is a APSX 15.56MHZ RW-210 reader. The RFID is a Sakymat LOGI TAG aka “laundry tag”. The server is a Hush mini-ITX machine with a 32G CF chip instead of a hard drive. The code is written in Python running on Fedora Core 10.Pictures will follow, the code is below:
This is the first draft of the catdoor.py
#!/usr/bin/python
import twitter
from apsx import *rfid_open(0)
 api = twitter.Api(username='catdoor', password='xxxxxx')# let's  blink some
 #
 for i in range(1,50) :
 red_LED(True)
 green_LED(True)
 red_LED(False)
green_LED(False)while 1 :
# get a button
 #
 b = read_UID()
 sleep(.1)
if b :
 green_LED(True)
 print 'got a button: %s' % hexer(b)
 status = api.PostUpdate('Cat at the door UID: %s' % hexer(b))
 print 'TWEET! | %s' % status.text
while b :
 sleep(1)
 b = read_UID()
green_LED(False)
else :
 red_LED(True)
 sleep(.1)
 red_LED(False)
 sleep(.9)

The apsx.py code to talk to the APSX board is here:

 

#
#  Python code to talk to a APSX RFID Module
 #
 #  Not a complete set of functions but enough to get my cat door working.
 #
 #  10 Jan 09   JV       - Created
 #
 import serialser = NonePresetValue = 0xffff
 Polynomial = 0x8408
def crc(DataBytes) :
 "APSX ISO 15693 CRC-16"
CRCValue = PresetValue
 for b in DataBytes :
 CRCValue = CRCValue ^ ord(b)
for j in range(0,8) :
 if CRCValue & 1 :
 CRCValue = (CRCValue>>1) ^ Polynomial
 else :
 CRCValue >>= 1
CRCValue = ~CRCValue - 65536
 CRCValue &= 0xffff
 CRCLSB = CRCValue % 256
 CRCMSB = CRCValue >> 8
return (CRCLSB, CRCMSB)
def read_UID() :
 "Read a UID or None if not exactly 12 bytes"
 ser.write('\0xfa')
 s = ser.read(12)
 if len(s) == 12 :
 return s
 return None
def red_LED(on) :
 if on :
 ser.write('\xfd')
 else :
 ser.write('\xfc')
 sleep(.02)
def green_LED(on) :
 if on :
 ser.write('\xff')
 else :
 ser.write('\xfe')
 sleep(.02)
def rfid_open(port) :
 "call to open the serial port"
global ser
 if ser :
 if ser.isOpen() :
 ser.close()
 ser = serial.Serial(port, 19200, timeout=1)
 print ser.portstr
def hexer(s) :
 "return a hex string"
h = ''
 for c in s :
 h += '0x%02x 'ord(c)
 return h
#red_LED(True)
 #green_LED(True)
 #red_LED(False)
 #green_LED(False)
#ser.close()
Tagged with:
 

To get the slots and the screws just right I used a Sherline tabletop CNC milling machine to cut the screw slots and openings. Only a little rework and it came out pretty good.

Being new to machine a g-codes and also being a programmer I cobbled up some python to calculate the angles and emit the g-code used by the linuxcnc program. The code is below:

 

import math
 
# G20 is inch units
 
preamble = """
%
N10
G17
G20
"""
 
toolsize = 0.200
depth = 0.200
plunge_rate = 2
feed = 3
 
# angle offset to rotate motor from normal
#
fudge_angle = 0
 
def deg_to_rad(d) :
return d / (180.0 / math.pi)
 
def vector(angle, radius) :
angle = (angle + fudge_angle) % 360
angle = deg_to_rad(angle)
y = math.cos(angle) * radius
x = math.sin(angle) * radius
return (x,y)
 
def transition(xy) :
of.write('G0 X%1.4f Y%1.4f Z0\n' % xy)
 
def plunge() :
of.write('G01 Z-%1.4f F%d\n'(depth, plunge_rate))
 
def home() :
"lift the tool and transition home"
 
of.write('G00 Z%1.4f\n' % depth)
of.write('G00 X0.0 Y0.0\n\n')
 
shroud_radius = 3.5
screw_arc = 4
def screw_slot(angle) :
"cut slot for the screw"
 
a_xy = vector(angle - screw_arc, shroud_radius)
b_xy = vector(angle + screw_arc, shroud_radius)
 
transition(a_xy)
plunge()
 
# Cut the circle
#
 
of.write('G02 X%1.4f Y%1.4f R%1.4f F%d \n'(b_xy[0],b_xy[1],shroud_radius,feed))
home()
 
of = open("backplate.nc","w")
of.write(preamble)
 
# Cut the electrical slot
#
of.write('(Electrical slot)\n')
 
slot_id = 2.2 + toolsize
slot_od = 3.75 - toolsize
start_angle = 116.0
end_angle = 156.0
 
a_xy = vector(start_angle, slot_id)
b_xy = vector(end_angle, slot_id)
c_xy = vector(end_angle, slot_od)
d_xy = vector(start_angle, slot_od)
 
# transition to the start
#
transition(a_xy)
plunge()
 
# cut inside arc
#
##of.write('G02 X%1.4f Y%1.4f I%1.4f J%1.4f F%d \n' % (b_xy[0],b_xy[1],0.0,0.0,feed))
of.write('G02 X%1.4f Y%1.4f R%1.4f F%d \n'(b_xy[0],b_xy[1],slot_id,feed))
 
# cut to outside radius
#
of.write('G01  X%1.4f Y%1.4f F%d\n'(c_xy[0],c_xy[1], feed))
 
# cut outside arc
#
of.write('G03 X%1.4f Y%1.4f R%1.4f  F%d \n'(d_xy[0],d_xy[1],slot_od,feed))
 
# cut back to the beginning
#
of.write('G01  X%1.4f Y%1.4f F%d\n'(a_xy[0],a_xy[1], feed))
 
home()
 
of.write('(Slot 2)\n')
screw_slot(97)
of.write('(Slot 3)\n')
screw_slot(236)
 
# Case bolt
#
of.write('(Case bolt hole)\n')
 
bolt_xy = vector(45, 4.0)
transition(bolt_xy)
plunge()
home()
 
of.write('(Slot 1)\n')
screw_slot(-15)
 
home()
 
# Cut the fan circle
#
of.write('(Cut fan circle)\n')
 
fan_radius = 2.0 - toolsize
fan_xy = vector(0, fan_radius)
 
# transition to the start
#
transition(fan_xy)
 
# Cut the circle
#
plunge()
of.write('G02 X%1.4f Y%1.4f R%1.4f F%d \n'(fan_xy[0],-fan_xy[1],fan_radius,feed))
of.write('G02 X%1.4f Y%1.4f R%1.4f F%d \n'(fan_xy[0],fan_xy[1],fan_radius,feed))
 
home()
 
of.write('m2\n%\n')
of.close

Tagged with:
 
Set your Twitter account name in your settings to use the TwitterBar Section.