Entries RSS Comments RSS

Archive for the ‘Uncategorized’ Category

Celebrate why day!

Thursday, August 19th, 2010

Thankfully, this morning I was reminded by tweets that today is why day! One year ago today, unfortunately, why the lucky stiff left the Ruby community (and took his projects with him.) Thanks to his fellow rubyists, many of his projects survive and are still being hacked on and improved.

Why really helped change the way I approached learning to program. I probably would have never developed an interest in programming if it hadn’t been for shifting the way I think about writing code and creating applications … creatively. :) Why’s Guide influenced and changed the way a lot of people think about approaching new programming concepts for new programmers as well. If you haven’t read Why’s Poignant Guide to Ruby, now would be a good time:
Read it here

I also really love why’s work focused around teaching programming to kids. Hackety Hack and Shoes are examples of this. I need to leave for work in about an hour, but I plan on coming home tonight and hacking on a Shoes project for the evening. I’ll write another post in the future about the easiest way for beginners to get started with these tools (it can be less than straight forward.) Here’s the links for those of you interested in Shoes & Hackety Hack:

http://hacketyhack.heroku.com – “Hackety Hack is the coder’s starter kit. Programming should be fun, and easy! Hackety Hack provides an easy and fun way to create things with your computer.”
http://shoes.heroku.com – Shoes is a cross-platform toolkit for writing graphical apps easily and artfully using Ruby.

Cheers!

Scratch Rules

Friday, May 14th, 2010

Scratch is an awesome visual programming environment written in Squeak Smalltalk. It was designed by the lifelong kindergarten branch of the MIT media lab for the purpose of inspiring kids of all ages. Absent of the barrier of syntax, you can create fun animations and games by dragging and dropping ‘code blocks’ to form ’scripts.’ Scratch supports serious programming concepts: you can learn about operators, control statements, events, threads… all within the context of a cute and easy to use environment.

One of the best features of Scratch is its introduction to social coding and its amazing social networking twist: go home Facebook. You can easily share your projects online at the Scratch website. Sharing your projects allows others to ‘like’, ‘comment’, ‘download’, and even ‘remix’ your application (social coding ftw!). Best of all, if someone wants to check out your project and he or she don’t have Scratch installed, the project will run on the Scratch website in a java applet without the need to download anything! Yeah, that’s right. I made a snowman math fact game for practicing addition facts, and my not-super-computer-savvy-but-has-java-installed mom played it! :) Gotta love it.

This is an awesome video of Harvard professor David Malan teaching CS50 with Scratch as an initial introduction to key programming concepts: loops, iterators, booleans, events, and threads. I’m excited to go through the whole course, but particularly loved the first two class sessions using Scratch!

http://academicearth.org/lectures/introduction-to-programming-and-scratch

I’m doing a lightning talk tonight on Scratch. I have basically taken a hiatus from “real programming” and am just hacking on baby games. You should try it. :)

update: http://www.ustream.tv/recorded/6923784 <- my lightning talk on Scratch. I gave this talk at an event I helped plan and organize at Coworking Rochester -- cosponsored by Coworking Rochester and Interlock Rochester.

One year ago today – Learning to Embrace the Tech Community

Sunday, April 4th, 2010

This post is inspired by Sarah Allen’s blog post: “one year of sf ruby”

One year ago today, I also had a very pivotal experience. I attended my first technical conference– an unconference, a barcamp — at the Rochester Institute of Technology. (http://barcamproc.org) I had just moved to Rochester, NY from San Diego, CA with my husband, Alan. Up until that point, I had only ever seen HTML and CSS (sparingly.) I was familiar with HTML and in-line styles. And I knew how to use things like myspace and facebook. My background was exclusively education and English (literature and writing.) I was interested in programming, but I felt a severe barrier to entry: I thought it was too technical for me.

At my first barcamp, also my first technical conference/unconference experience ever, I was intimidated. My heart raced when I had to introduce myself. I claimed I was going to help Alan do a talk on his server-side Javascript framework that I had no clue about, but I really did nothing. I didn’t give a talk. I felt guilty, given the nature of a barcamp and the expectation that all attendees speak on something, but I also felt I had nothing to contribute.

That day, despite my intimidation, I was inspired by the things I saw. I attended an excellent talk on Haskell during which the presenter admitted he had very little experience with the language. Still, I was intrigued by the syntax and grammar, and I felt an inclination towards programming that I had never felt. I love natural language, grammars, and syntax in general. I have always been fascinated by English and the field of linguistics. I was no less fascinated by Haskell than I am with Basque (an incredibly interesting language isolate.) I saw another talk on the OLPC/XO by an awesome woman, Karlie Robinson, who detailed the effort and reached out to the tech community to engage their skills towards a cause for education. I could relate. I even brought myself to go up to her after the talk and give her my e-mail address, given my experience in education, thinking maybe I could help. For the first time, I thought, maybe there is something worthwhile that I can contribute to the tech community.

I started programming one year ago today, because I was inspired by the technical talks I saw that day, and because I realized I am not any different than any other extraordinary geek.

About six months ago today, I got involved in a movement in Rochester to form a hackerspace. Within three months, we had a space and a place to call our own. I have learned about basic circuitry, soldering, programming, and even some basic networking concepts thanks to Interlock, Rochester’s first hackerspace. I love Interlock, and I can barely imagine my life without a hackerspace anymore. Exchanging ideas, learning new concepts, and thinking beyond my normal realm of every day thought has made me a stronger person. I was not born to be a hacker, a coder, an electrical engineer: but I know I CAN be one. Nothing is stopping me from learning new things. The only barriers we have are the ones we create for ourselves.

I have never been to school for anything technical. I am pretty sure I never will. I will continue attending technical conferences, participating in hackerspace activities, and searching each day for new or refactored technology that makes me think outside of my normal train of thought. I feel challenged, excited, and motivated by learning new things, as most people do (whether they realize it or not.) I embrace this challenge as a way to grow as a person, a developer, and a great mind. I am happy to say my mind is no longer limited by the barriers I perceived one year ago today.

I gave a talk on learning programming today at BarcampRoc 2010. I had a very small audience, but I enjoyed discussing Ruby and entry level programming with them. I am passionate about the best way to teach programming as an art rather than simply a tool. I have learned so much in the past year, and I am only limited by my own interests. I no longer feel limited by what I don’t know. Because I know I can learn. I didn’t know this small, and seemingly obvious bit of knowledge, one year ago today.

Today, I know.

Finding Ada – on Hacker News

Wednesday, March 24th, 2010

If there is one thing I have learned from my short time poking my head in at science and technology, it’s that women are everywhere doing awesome things– we just don’t always hear about them unless we listen. For that reason, I believe more women should make their voices heard. That being said, it’s really awesome when women are noticed without having to yell, and when they get the same media coverage afforded to males in the field about equally awesome projects they are doing. I found out about a really neat project by Chloe Fan through Hacker News.

Chloe says, ” I created a simple version of Super Mario Bros using an 8×8 LED matrix (one color), an Arduino Nano, two buttons for the input (forward and jump), and a piezo sensor hooked to a separate Arduino for the theme song.” After researching more about Chloe Fan, she seems to be a very passionate woman in tech. She says on her website, “I am primarily interested in how engagement with technology in public spaces can increase environmental and behavior awareness, and encourage positive behavior changes. I am also interested in emotional and social interfaces, and assistive social robots.” I can barely attempt to paraphrase that, so I figured a direct quote would be best. But Chloe: Hack on! You’re doing something right.

(Note: I’m subsequently inspired by the possibilities of my Arduino nano that I just received in the mail today. How appropriate!)

Defining Useful Methods in Ruby: Adding a rand method to the Array Class

Tuesday, January 26th, 2010

The ‘rand’ method in Ruby is a method of the Kernel class that generate a random float between 0 and 1 (and thus will always round down to 0 when converting to an int.) Being a new Ruby developer, I decided to make an array and try to pull a random element like so:

@name=%w[bob, judy, don, john]
@get_random_name = @name[rand]

But this will always return ‘bob’, the 0th element of the array.

Instead, to pull a random element from an array (of any length), you need:

@get_random_name= @name[rand(@name.length)]

But that’s icky and unRubyish, and Ruby really SHOULD have a rand method for the Array class, shouldn’t it? So let’s make one, because we can! :)

class Array
def rand
self[super(self.length)]
end
end

@name.rand will now return a random element from the array. Awesome.

Interlock – The Rochester, NY Hackerspace

Saturday, January 23rd, 2010

Lately I’ve been spending a lot of free time at Interlock, the hackerspace a bunch of us in Rochester have been working hard to get up and running. We’re about to move into our permanent space next month, and currently we’re in a temporary space until that point comes. We should be transferring to the new space on or before February 5th.

One thing I’m really excited about is an event called “First Friday” (firstfridayrochester.org) that happens on the first Friday (imagine that) of every month here in the city of Rochester, NY. First Friday is an event to promote the exposure of all of the awesome art that is happening in Rochester. From what I understand, it is an effort to maintain sustainability, promote the value of, and encourage collaboration amongst art venues and artists within the city. A large part of the mission is also to establish ties between university students and the wealth of art within the city. As soon as we heard about this event, we knew Interlock would be a regular part of it.

Interlock’s vision and goals are very much in line with the ideas of sustaining art and culture within Rochester and promoting collaboration between makers of all kinds. Many of our members are students and it’s certainly worthwhile to encourage them to make Rochester their home by providing limitless technical and artistic opportunities with the comfort of an open, socially collaborative environment outside of the university grounds. To accomplish this goal, a bus (or two or three? not sure on the details) takes people from universities to galleries within the downtown. The bus stops at the building that we’re located in, which is packed with many artsy organizations — 1115 East Main St. Exciting!

Organizations can register officially for the event for a small fee, or they can informally open their doors and welcome people with snacks, drinks, and a display of their art/projects. Last first Friday was pretty dead being that it was New Years day, but the previous first Friday in December at our building was booming. We had just moved in that night into our temporary space, so we didn’t have an event. This upcoming first Friday, on February 5th, we plan on having our doors to our new space open, with some projects and/or demos to show off to the public. We are in the basement of our building so signage will be key in trafficking people downstairs to check out our space. If we even get 3 people to come down, it will be a success. Next month, we will plan even bigger, given that we will be settled in and ready for a larger event. In general, I’m pretty excited that we’re positioned to become a significant part of First Friday festivities each month, and I’m anxious to see people’s reactions to Interlock’s dynamic and culture.

Currently computing: A simple ‘fortune cookie’ Sinatra app. More on that next time. :)

Lifehacker Quote

Thursday, November 12th, 2009

“Good coders are a special breed of persistent problem-solvers who are addicted to the small victories that come along a long path of trial and error.”

-From a Lifehacker post by Gina Trapani, ‘Programmer 101: Teach yourself how to code’