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):
         # Add the brick
         bpy.ops.mesh.primitive_cube_add(
             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
         bpy.ops.object.modifier_add(type='BEVEL')

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."

Monday, February 22, 2010

Computer Science a Top-Paying Undergraduate Degree

According to NACE, Computer Science ranks number four in top paying undergraduate degrees. The top three are engineering degrees. Google "top jobs" and see how often computer science jobs are in the top.

Given this, and the fact that technology is critical to almost any popular job and entertainment option, why aren't more young people interested in computer science? Why are people waiting until they enter the workplace before realizing how important technology is?