Wednesday, December 31, 2008

My Make Space

So a couple of weeks ago, I had my wisdom teeth removed.  For some reason, that weekend I just got feed up with the inactivity in my life(in many areas).

One of the crazy things that happened is that I have stopped playing WoW cold turkey.  During that time I have been working on a project that I have mentioned on the blog before Mymakespace.  One interesting repercussion of this change is that I can't get any sleep, haha.

I will give everyone a recap: Mymakespace is a collaborative project social network. Mymakespace will combine collaborative software project sites like Sourceforge + environment and attitude of Make.

In the past I looked into a open source version of sourceforge called Gforge, but it was overly complicated.  I looked into and got elgg running(kind of) on my home lamp stack.  The documentation was very weak and there just did not seem to be a community around it.  So along comes buddypress,

Buddypress is just a bunch of plugins for Wordpress MU.  Wordpress MU is just the multi-user edition of wordpress similar to what www.wordpress.com runs.

Wordpress MU and Buddypress are quite easy to setup.  The hardest part was getting the email to work. In the end, I just used one of my gmail accounts with smtp.
So here is my first/continual attempt: Mymakespace
Most of the changes have been done very ad hoc and probably not in the correct manner.  I have changed Groups to Projects.  Projects will be the focal point of the site.

So far only a couple of friends and family have signed up but this is just a Proof of Concept and I am just an EE with little web programming experience so test it out and give me some feedback.

Tuesday, November 11, 2008

Books, Bungalows and Boondoggles

Since a lot has happened since my last post, I am going to break down this post into three areas:
Books:
More like just 1 book...the final review of Anathem
Bungalows:
Our adventure into home ownership
Boondoggles:
The election, in all its glory
Books:
Well, I finally finished Anathem.  It was a good book, but it was very painful to read in some parts.  About 2/3 of the way through, there is a section that is really tedious.  Basically, you are observing a group of philosophers sitting around a table and arguing over extremely theoretical subjects.  I think that went on for a little too long, but then the book gets back to a little action.  Anathem could really be split into 3 books, but  I am glad Stephenson lets you read the whole thing in one shot.  Most of his books have abrupt conclusions
(There is a specific literary term for it, but I can't think of it now.), but this one has a couple of big jumps at the end while still giving a solid, less detailed closing.
As a whole, I think Stephenson comes to the conclusion that the "secluded scientists" of the world can't corner themselves off.  Christians fall into that trap as well.  It is interesting how we create are own little worlds and get very upset when "apple carts" get turned over.
Bungalows:
So, we finally moved into the Haas last weekend, and we were battered, bruised, and exhausted Saturday and Sunday after moving the remainder of our belongings on Friday.  The final car load was delivered to our new house at 8:00pm on Halloween.  It was crazy to drive through our neighborhood and see 50-100 people dressed up from hunters and faeries to parents looking like Jason. 
We have painted the whole house (inside), and we had new carpet installed on the Friday that we moved in.
I spent a good portion of Saturday and Sunday setting up the computer room.  We have 4 computers in there so it can get quite toasty.  With the cooler weather coming, that should be nice.  We still have some big issues that we have to address: now that we don't live in a 1 bedroom apartment, we have room for and need new furniture (whether we can afford it is a different issue, haha).  We need a second chair or "love seat" of some kind in the living room.  Noelle and I actually don't have any kind of bedroom furniture for either of us, and our mattress is falling apart.  The guest bedroom doesn't have any furniture in it at all.  The only room that is fully furnished is the computer room...shows where our priorities are, hahahaha.  However, I am missing two little things from the computer room, aka "The Lab": a huge white wipe board (for brainstorming) and a Tron poster (Who knew they were that expensive!), or maybe a poster for this.
The one project that I am really looking forward to is creating a garden.  We have a wooden playset in our backyard, and I am trying to give it away.  (Someone at our church is currently interested.)  Once I get that out of the way, I will be laying out how big the garden is going to be.  When we went to Green Bay for my Grandmother's funeral back in May, my Grandpa (a master tomato grower) had Organic Gardening magazines laying all over the place.  My Mom noticed that both Noelle and I thought it was interesting, and she got us a subscription for our birthdays.  They have some really interesting tips so it will be cool to try some of them.
Here is what I am planning for now: strawberries and tomatoes are the easiest and most popular to grow. Beans, green bell peppers, and cucumbers all get along with strawberries and tomatoes, so they will be in the garden as well.  I really like raspberries, but South Carolina humidity supposedly is not very kind to them, as well as the fact that raspberries take 1-2 years to bear fruit.  I am not sure about that yet.  It will be interesting to see how the garden works out.  Hopefully, I can augment the garden with some cool electronic sensors similar to what I was doing with my previous Project Tomatoes just on a larger scale.
Boondoggles: 
 I guess I could be stereotyped as a Rightwing Nutjob.  This election was a little bit different for me.  Here is what it was like to me: What do you do when you want a hamburger and your choices are a veggieburger (McCain) and salad(Obama)?  To be honest, none of the candidates in the primary represented me.  I really did not know what I was going to do.
With all that said,  Noelle and I were supposed to vote at the polling location near our new house.  Well, when we changed our registration, the lady forgot to give us a letter so that if we were not on the roll by election day, the poll workers could just add us to the bottom.  Needless to say, we weren't on the list when we went to vote.  We had to go to the Lexington County voter registration office and wait in line there for an additional hour and half.  They finally let us vote, and I have to say that I am really disappointed in the system that is in place right now.  South Carolina does not allow write-in votes for President (who knows why), and  I had already decided that I was not going to vote for McCain or Obama...so I abstained.  In previous elections, Noelle and I had made the decision that if we did not know about a specific race or who the candidates were, we were not going to vote for anyone.  An uninformed voter is just as bad as not voting, in my opinion.  I voted for my House Representative, and I wrote in Mike Ditka for one of my Senators. All the state and county elections were very disappointing since there was only 1 person up for re-election against no one except a write-in vote.  In the end, I don't think I voted for more that 2 people, and then I voted on the amendments to the South Carolina Constitution and the school bond issue for Lexington County.
Noelle was upset about the overall election results,  but for some reason I had a peace about it.  (Either I had peace that God is still sovereign, or I am really that apathetic.)  My Dad thinks we are going to be plunged into a massive depression.  He is even planning a garden in case it gets really bad.  The next 4 years are going to be interesting to say the least.
Peace out




Tuesday, September 30, 2008

Anathem: Reviewing Neal Stephenson's new book

When I read that Neal Stephenson was going to release a new book, I got really excited.  I own all of his books from Snow Crash forward.  I was really interested to hear about the topic of the new book.

Here is the general description:

Anathem is set on a planet called Arbre, where the protagonist, Erasmas, is among a cohort of secluded scientists, philosophers and mathematicians who are called upon to save the world from impending catastrophe. Erasmas - Raz to his friends - has spent most of his life inside a 3,400-year-old sanctuary. The rest of society — the Sæcular world — is described as an "endless landscape of casinos and megastores that is plagued by recurring cycles of booms and busts, dark ages and renaissances, world wars and climate change." Their planet, Arbre, has a history and culture that is roughly analogous to Earth. Resident scholars, including Raz, are unexpectedly summoned by a frightened Sæcular power to leave their monastic stronghold in the hope that they may prevent an approaching catastrophe.

At first, I was just confused, and then I was a bit concerned.  I read a lot of tech blogs ( Boing Boing, Makezine, Hack-a-day), and there is this outright contempt for people who don't believe in evolution, man-made global warming, and other science based "facts".  They seem to paint this picture of this select group of Tech geeks that believe in science "facts", and then there are the rest of us who just care about what Paris Hilton and Britney Spears are doing.  Maybe that's my misunderstanding, but that's what it sounds like to me.  So I was afraid this new book was going to be another disposition on this dichotomy.  However, I am such a big fan of NS's topics and style, I got the book anyway.

Initial Thoughts:
I am about 120 pages through this 910 page monstrosity.  At first, it was really difficult to grasp all of the meaning of the sentences because all of the vocabulary is made up.  I am horrible at pronunciation, so I know I am creating fictional ways of saying these words.  After about 60 or so pages, you start to get a little bit more comfortable with the words, and Stephenson picks the perfect time to start building the mystery.
I am very happy with the book so far.  The issues above that I was concerned about are there, but Stephenson is not very heavy-handed with it.

Here is one good quote from the book that I think applies to me:
"Boredom is the mask that frustration wears." 
The question is what to do about it.

Other observations:
The "secluded scientists" are basically just Augustinians Monks or at least characatures of them, but they just study a different topic.  It is an interesting point to see that this same behavior is rationalized when studying Pythagoras' theorem, but it is sheer folly when it is the Old Testament.

Well, I will try to do another update half way through the book and also at the end.  If I get "carried away to a dream world of magic", then I might not post again until the end.

Wednesday, September 03, 2008

Boston, Babies and Explosive Gases

I know I have been a slacker and have not updated the blog, so I will just throw out a little synopsis of my Labor day weekend in Boston.

I went to visit my friend Chris. He is a smart ass(double masters from MIT), but we went to school from 1st grade through our senior year in college. This was my first time in the Boston/New England area. The weather was great: low 70s, sunny, and a nice breeze.

The house where I stayed was pretty crazy. 7 adults, 2 18-month olds, and 2 babies under 3 months. A solid night's sleep was nonexistent(not that I am complaining :P). I also got stuck in Philly for 2 extra hours because I missed my connecting flight by 10 minutes, but that allowed me to see some of the South Carolina/NC State game.

Spending time with "Frankie-stein" (Chris's 1.5 year old daughter), I was encouraged that I was not clueless about children and felt like I was somewhat competent. (I did not have to do any of the hard stuff, though, hahaha.) But all the other crazy stuff (everything having to do with have a child) is very intimidating. Who knows where that puts me.

Overall, the weekend was great. I got to go to the Children's Science museum, MIT campus, and to Rockport, Mass (a small town on the coast).

One of the things that Chris and I wanted to do was to figure out if my compressed gas cannon idea was even feasible.

I have messed around with the physics but was never able to get a definitive answer with the math. We used an interesting selection of resources from plain old Thermodynamics text books to Wikipedia.

We calculated that to get 1 kg object to LEO, you would need about 2 kg of Oxygen and 0.5 kg of hydrogen. This is a good thing because it is not a ridiculous amount of gas that it would not even be possible. The next hurdle was the conversion of the energy from that explosion into heat or delta T (difference in temperature).

This is where we hit a roadblock. After doing some calculations using the specific heat formula, we come up with the delta T of 6000 degrees C, which just happens to be the temperature of the sun's surface. So that made us think delta T is incorrect.

After consulting the text books and searching online, the only real way we found to get this information was to actually blow up some gas in a bomb calorimeter. We don't have one, so basically we said we would just start to do some experiments with H2 and 02 and see what we might get.

Furture steps:
1. Create a setup for producing and capturing 02 and H2 through electrolysis.
2. Design/build/make up a fixture for exploding the gas- Chris's idea is an old engine block.
3. If results are above average, convert fixture into a cannon.

Friday, May 30, 2008

Scraping the World of Warcraft armory with Python

Well, in the last couple of weeks I started a new project. This was totally random but gave me great results.

I wrote a Python(man this language is awesome) program to scrape the WoW armory for my guild's gear. We have been progressing really well over the last couple of months, and we have been talking about killing two of the really big bosses. I wanted to see how well we were geared for these two encounters.

I googled around and I found this post. Got to give Peter credit; he got me started down the path that forced me to learn a little Python.

My code is horribly ugly, and I know a script monkey could have done this better and in his/her sleep. But I am very happy with the results that I got.

I didn't know and still don't know very much about navigating xml with Python, so I manually filtered my guild's toons with the armory and saved the xml file.
I hacked down the file so that all that was left was a list of members.
XML guild file layout looked like this:
<members>
<character url= rank= raceid= race= name= level= genderid= gender= classid= class=>
</character>
</members>




Each character had its own line.

Once I had that in a nice format, I had to figure out how to navigate the xml.
Searching around I found the ElementTree module.
It took me a while to find out specifically how to use it, but when I did it was very easy.
I started with:
from xml.etree.ElementTree import XML, fromstring, tostring
from xml.etree import ElementTree as ET
Then to parse the xml file.
try:
tree = ET.parse("guild70s.xml")
except Exception, inst:
print "Unexpected error opening %s: %s" % (xml_file, inst)
elem = tree.getroot()


This was the most confusing point to me. When I look at an xml file, i understand it, but I did not know how Python/ElementTree looks at it.
I just used print to figure out where I was in the xml file.

In this case, elem is equal to members element in the guild xml file.
Using a basic "for" e equals the characters in the elem members.
for e in elem:
Getting at specific attributes in the character lines was easy as well.
strUrl = "http://www.wowarmory.com/character-sheet.xml?" + e.get("url")
You just need to look in the xml file and find the name of the attribute that you want to retrieve. This also points out another neat thing about the guild xml file that I downloaded earlier. Each toon has their url as an attribute including all the formating, i.e. url="r=Zul%27jin&amp;n=Noldor" for my toon. This is great so you don't have to worry about the url formating compared to what Pete did above.

At this point, I could read each toon's xml file from the armory. The problem that I ran into was I kept getting 503 errors (website error) randomly throughout the script. I don't know if there was a lot of traffic or the site was going down for maintenance. To avoid having to run the script over and over, I saved each toon's xml file to a folder.

Navigating the toon xml files was a bit more complicated. Someone more skilled than I would know how to do this better, but this is how I got it to work.
I started with this:
   children = elem[0]
child = children[1]
items = child.find("items")


Got it down to:
    children = elem[0]
items = children[1].find("items")

I could not figure out how to do it in one line, so if anyone has any thoughts that would be great.


Basically that covers all the hard parts. I downloaded all the items that each toon had.
I used:
os.path.isfile(geardir + e.get("id") + ".xml")
To skip toons and gear which I had already downloaded.

In the end, I created a useful tool to see how well my guild is geared for the content that we are in.

The code is splintered into multiple files so I can't post all of them. I will just post one.
This code reads the guild roster xml file, finds the character, and then retrieves the items for that toon. Then it goes on to the next toon until all the guild's gear has been downloaded.

#!/usr/bin/python2.5
import urllib2
import xml.dom.minidom
from xml.etree.ElementTree import XML, fromstring, tostring
from xml.etree import ElementTree as ET
import os
itemurl = "http://www.wowarmory.com/item-info.xml?i="
geardir = "gear/"

try:
tree = ET.parse("guild70s.xml")
except Exception, inst:
print "Unexpected error opening %s: %s" % (xml_file, inst)
elem = tree.getroot()
for z in elem:

try:
tree = ET.parse("characters/" + z.get("url") + ".xml")
except Exception, inst:
print "Unexpected error opening %s: %s" % (xml_file, inst)
print z.get("url")
elem = tree.getroot()
children = elem[0]
child = children[1]
items = child.find("items")

itemstr = ""
for e in items:
if os.path.isfile(geardir + e.get("id") + ".xml") :
continue
oOpener = urllib2.build_opener()
oOpener.addheaders = [
('user-agent',
'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-GB; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'),
]
req = urllib2.Request(itemurl + e.get("id"))
itemstr = oOpener.open(req).read()
fout = open(geardir + e.get("id") + ".xml", 'w')
fout.write(itemstr)
fout.close()
print e.get("id")






Side Note: When I did this the special E/Alt-144 ascii character was not working. We had two people in our guild that used it, and I could not even see their pages with firefox, so it must be an Armory issue.

Wednesday, May 21, 2008

Project Tomato 4 review

Well, Project Tomato did not come to fruition this year. It was cool to see that some planning does get the ball rolling, but it boiled down to not having enough time to work on it in the correct environment (i.e. a lab).

I worked on the Zigbee aspect for a couple of days after work at my desk here at the apartment, and I just could not get it to work. In the end, I may have torched one of the Zigbee units.

I did get a moisture sensor made and soldered into a nice package. I got the code running on the Arduino, but I did not quantify what was wet, normal and dry. The other part was wiring up a FET circuit for the fan. That is about were the project died. I had the fan working, but it was not responding to changes in the temperature of the thermistor. It was my first time using the onboard PWM, so i probably will have to debug that part to understand what number I am putting in that function and how the PID algorithm is calculating it.

In the end, I started too late in the season to make the true project I wanted. Hopefully, next year I will have a house and a garden to mess around with.

Thursday, March 06, 2008

Project Tomato 4

Well, I am finally getting off my butt and putting one of my projects into action. The key to me even starting this project was being stuck on a plane flying from SEA-TAC to Atlanta. Man, that 787 plant is awesome.

This will be the 4th year in a row that I have done some sort of Project Tomato. Each year I have been getting progressively better results. The problem that I have now is that Noelle and I live in a one bedroom apartment, so there is no room or permission to do Project Tomato. Another discovery that I learned from last year was the failings of plant lights. So I want to do this outside in a sunny area to avoid that problem.

My parents live about 10 miles away, so I was thinking that I could do something at their house. But how do I kept track of what is going on?

Here is the idea:
I am going to keep all of the functionality of last year's project and add more sensors and controls. In addition to that, I am going to setup a zigbee transceiver that will relay information back to another arduino (minus the chip) connected to my parent's PC. I am trying to figure out the best way to get the information on the web so that I can view it from my apartment...still working out the details.

I have two arduinos and all the hardware from last year. I have ordered two Xbee shield kits and two Xbee 2.5 Transceivers from Digikey. I went with the new Xbee transceivers because they are a new model, cheaper, and slightly higher wattage. From the little I have read, only a few people have used them with the Xbee shield. They are pin compatible but cannot receive or transmit to the first gen Xbee models. I also ordered some other miscellaneous parts including two more Atmega168. My mega8 is working fine, but something happened to my 16 so I ordered two more just in case.

Three sensors- two temperature, one moisture
I am going to use the same thermistors I used last time, but I am adding one to measure the air temp. I am going to use the moisture circuit from the twitter project.

Two control variables - Heating pad and fan
I was contemplating adding a film heater attached to a heat sink so that I could heat the dome if needed, but since I am starting this so late, I am hoping that it won't be a problem. I could also include some sort of pump for watering, but I think I have all I can handle for now.

Tasks:
1. I gave my dad the biodome enclosure, and he is going to mod it so that I can mount a fan. I
originally wanted a large box to go over the whole dome, i.e. a dome over the dome. He
suggested just adding some lexan or Plexiglas to make the dome taller.

2. When the Xbee kits come in, I need to put them together and test them out.

3. I need to assemble the circuits for the moisture sensor and fan drive and reassemble Project
Tomato v3, with the addition of the other thermistor.

4. Rewrite the code for thermistor reading and start working on the rest of the capabilities.

5. Find a way to upload the data from the usb/arduino/xbee transceiver to a website.

Risks:
This is a lot to bite off in a small amount of time.
I am not sure that the arduino can handle all the code that I am going to need.
The whole Xbee capability is a big step, especially since I have never done anything with them. Who knows what the weather is going to bring...We had a big storm on Tuesday and that would have destroyed this project.

Any thoughts or ideas that you have? Please comment.


Hopefully if this works I can enter this Arduino Contest.













Monday, February 18, 2008

Projects List

I figured I would just do a small post about all my projects that I have percolating in my brain:

This is just in a random order...I wrote it down the other night.

Breakfast Machine- I have had this idea since about 5th grade. I figured this would be pretty cool to pull off with some Arduinos.

Soccer cleats- removing the laces from the top to allow for more surface area.

Compress Gas Cannon- already posted this one.

More detailed Project Tomato- Since Noelle and I are living in an apartment, I would not be able to do this. My idea was to do it at my parents house and get the temp info on to a website so I can check it at my place.

Video Game: The Age of Invention- Hundreds of basic items that combine to become more complicated tools to progress the town and society the player lives in. While not directly related, this game could become a MMO, and Metaplace seems to be an interesting project.

Local Telemetry System- This is a problem that relates to the next item. Cheap, detailed location systems are not available for small to medium size robots. GPS is ok, but is +-6 to 12 feet. I am looking for +-3 inches. I know this is a pretty hard problem or it would have already been solved.

Robotics system- picking fruit, mowing the lawn, eventually build homes.

Cell Phone ARG- After reading Halting State by Charles Stross, there is a great opportunity to do this in the coming years, and with Android Cellphone coming, writing your own program is possible. Wired has a great article about the ARG that NIN did. I am not a big fan of the band, but the ARG that they pulled off was pretty cool. I really like the Spy ARG in Halting State but that would be hard to pull off, and I am sure in this post 911 world it would not go over well. In one of Alastair Reynolds' books, there is a game that the wealthy play in which they are hunted by an assassin. I think that would be a great start with lazer tag or water guns.

Hopefully I will be able to expand or even work on some of these ideas.

Friday, January 18, 2008

Mechanical:
I am going to layout a basic physical design then run some calculations.

2 x Stainless Pipe 2.5” nom. (2.88” OD x 0.12” Wall x 2.635” ID) Cut to 60”
120$ after shipping from Amazon(Metalonline)
4.07 Liters per pipe

1 x Stainless Pipe 2” nom. (2.38” OD x 0.11” Wall x 2.157” ID) Cut to 72”
140$ after shipping from Amazon(Metalonline)

Wednesday, January 09, 2008

Dual-Gas Combustion Satellite Cannon

This has been my greatest idea and passion. I have not done anything yet, but I continue to build it in my mind. This idea has been eating at me for a couple of years since the Ansari X Prize competition. It is based on Project Harp and more recent Project SHARP. Since then the private industry has taken off and is making greater strides than NASA and all their money. The largest road block to space is the cost per kg. The current cost is in the thousands of dollars per kilogram. This is a good reason why ground-based launching, which includes rail and scram guns, is better since the infrastructure is reusable. The turnaround cycle for multiple launches would be faster as well.

My idea is a little bit different. Most of the designs I have seen only use a L shape structure. My launcher looks like an inverted T. The launch vehicle will be placed at the base blocking the junction between both wings of the T. The basic example would be that oxygen and hydrogen would be injected into each wing separately. Two rams would compress their respective gases against the body of the vehicle. As the rams reach the center junction the vehicle will be moved forward(mechanically) and the gas would be ignited, causing the vehicle to travel down the barrel of the launcher.

There are a couple of improvements that I have thought of to get as much energy into the gas and thus the vehicle. The gases could be heated as they go into each wing chamber. Each chamber could be prepressurized with the gas, adding to the over-all pressure at the combustion junction.

Similar ideas have been tested by professionals and have been fruitful. I am just trying to get my thoughts down and hopefully improve the design process. I just need to be more productive in life in general anyway.

Some key areas need to be covered:
What would it take to build a gross proof of concept?
Mechanical
Electrical
Chemical