## Wednesday, October 27, 2010

### Creating a brick wall with Blender 2.54

I have been wanting to create a brick wall with Blender. I found this tutorial to be very helpful. It works well if the camera is not very close to the wall. It is fast and easy to put together.

It is also possible to put together a brick wall with an array modifier. But what really inspired me was the example script for creating castle walls available here. That script did not work for the current Blender 2.54 Beta version. So I thought I would work on creating my own script.

Here is a development version of my script. I thought I would post it here so that others looking for Blender 2.54 Beta scripting examples could find it

``` import bpy

row_count = 8        # Number of rows
bricks_per_row = 15  # Number of bricks in each row
cube_x = .25         # Length of each brick
cube_y = .25         # Width of wall
cube_z = .125        # Height of each brick
row_gap = .01        # Gap between each row
brick_gap = .01      # Gap between each brick

# Calculated values
offset_amount = cube_x/2    # Staggers bricks
rescaling_factor_x=cube_x/2 # Used to size the brick
rescaling_factor_y=cube_y/2
rescaling_factor_z=cube_z/2

# Loop for each row
for row in range(row_count):
# Calculate if we stagger this row
offset = row % 2 * offset_amount
# Loop for each brick
for index in range(bricks_per_row):
location=(index*(cube_x+brick_gap)+offset,
0,
row *(cube_z + row_gap)))
# Resize the brick
bpy.ops.transform.resize(
value=(rescaling_factor_x,
rescaling_factor_y,
rescaling_factor_z))
# Bevel the brick

## Thursday, September 9, 2010

### Agile Programming

A fellow U of Idaho alumni hit 'reply-all' to recent survey request sent by Idaho's computer science department. It was a shame that Idaho sent out the e-mail allowing this, and also that a graduate would make use of this fact. What really got me going was the e-mail:

With all due respect, this "survey" feels like a complete joke and hardly gives me any confidence in the  U of I C.S. program.  How doyou expect a couple questions like that to really affect anything?

The software world is going Agile and Lean.  How much of that are you teaching to students yet?  If you really want to be a leading edge CS department, you've got to be teaching people how to write good solid clean code.  Is test driven development anywhere in the curriculum?
When I graduated, I was sent into the world woefully under-prepared by the university.  I pretty much taught myself how to really write code and on my senior project, I was the only person on the team that could really even write any code - I ended up writing all the code for the rest of the team - and they all got the same grade for the project that they could not even write the code for.

Since then, I've hired a lot of software developers and run my own company for 15 years.  Some of the best software developers I've hired had *NO* college education.  I'm not the only one that's had that experience.  It's making us software professionals question, more and
more, the value of a college degree in this profession.  Especially in this economy.  I cannot in good conscious recommend to a talented youth that they spend 4 yrs at the U of I before they enter the profession.  In fact, spending 4 years at the university might just set you back 4 or more years modern development paradigms.

The U of I is in a position to make a difference, if you *REALLY* want to make a difference and not just appease the same old system of tenure and outdated instructors.  The question is *WILL* you?

I am part of a growing, international community of software professionals that really cares about our craft of software development.  We teach others, put on conferences and make it work in real enterprise environments.  I currently live in NYC where I'm more than busy staying at the top of my game.  Myself and my colleagues really do care about the state of the software industry.  I have yet to run into a single U of I person in this ever-growing Agile software
movement.  Why is that?

I'd be interested to help you all in an advisory role if you really want to change.  I'd even be interested in moving back to Idaho if I though I could make a difference.  I graduated in 1986 and I'm at the forefront of the Agile/Lean software movement.  If you are just going to keep on doing the same old government funded, barely sufficient program that I experienced 20 years ago, I guess I'll keep on dismissing the message (and I'm not the only alumni, I'm sure).

I hate to feed the trolls, but I sent this back to him.

I've found three categories for developers:

1.) Developers that don't try to expand their knowledge.
2.) Developers that read books on Agile, Scrumm, Rational, Crystal, XP, 6-Sigma, Test driven development, etc. and think it is the bee's knees.
3.) Developers that have passed through enough versions of stage 2 and seen similar stages in business, marketing, engineering, etc. that they realize there is a difference between buzz-word fueled fads and the common fundamental techniques they all seem to wrap up. The key
question: Are the fundamentals taught at Idaho?

Had you listed the fundamentals that Idaho was skipping, I may have agreed with you. Instead, I got a few buzz-words.

I always thought this was a good essay:
Big Mac cs. The Naked Chef

I recently found the following article on reddit from someone who is similarly tired of hearing Agile all the time:

Agile Ruined My Life

Agile, along with these other fads, does have fundamentally important concepts to be taught. But please drop the buzz-words that go with it. Concentrate on the techniques. And realize that not every set of pre-packaged and marketed management techniques will work for every project.

Or maybe I should give up my whining and get rich by creating my own buzz-word, then repackage all those same techniques and pretend they are new. It is just so "formula."

## Sunday, June 6, 2010

This is an example of parsing Facebook to pull status updates out:

``` from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):

story = False
time = True
text = ''
times=[]

def handle_starttag(self, tag, attrs):

#print "Encountered the beginning of a %s tag" % tag
if tag == 'span' and attrs:
for name,value in attrs:

if name=='class' and value=='UIStory_Message':
self.story=True
if name=='class' and value=='UIIntentionalStory_Time':

self.time=True

def handle_endtag(self, tag):
if self.story:
#if len(self.text) > 0:

self.text = ''
self.story=False

def handle_data(self, data):
if self.story:
self.text = self.text + data.strip().replace("\n","")

if self.time:
if( update_count > 0 ):
self.time=False

myparser = MyHTMLParser()
myparser.feed(htmlSource)