the blog

Take Apart Tuesday: iMac G5

by Carlyn Maw on May 17, 2016, 2 comments

Inside a iMac G5

Took apart Tod’s old wonky iMac G5 today.  Might make a little sculpture out of it. It is a nice stand. I think he was hoping it would actually leave the house, but I had a nice little space for it to slide into on my junk shelf.

On a side note my flickr gallery plug-in isn’t working and Flickr itself removed the ability to generate a wordpress gallery… so, that sucks. Why do they have to go and make things less and less usable. I swear. But here is a lame lamezors looking album below. So unpleasing. What are they thinking?

I’ve kept:

  • The speakers, fan and power supply lined up along the bottom
  • The hard drive
  • The optical drive
  • The wifi chip/antennas
  • The inverter
  • The memory chips

iMac G5 Breakdown

Swiftly Sorting Dictionaries on Saturday

by Carlyn Maw on February 6, 2016, no comments

Laptop computer on kitchen counter with small pieces of paper lined up in a row.

Well this took way too long to figure out. I had a typo in a print statement that made it take even longer. Doh.

As it was hard won,  and involved sorting pieces of paper on our tiled kitchen counter to better understand the bubble sort, I thought I’d record the moment.

Fun discovery: an animated comparison of sorting algorithms.

How to Pick a DIY Electronics Project

by Carlyn Maw on January 26, 2015, 2 comments

More testing for the secret project

I’m teaching Introduction to Electronics to a very mixed room of skill levels. To match that reality, I reorganized the syllabus around conceptual themes rather than technical topics.  For each unit, students can either do my default project or pick one of their own that matches the theme.  For example, the first project I am giving them is a DIY continuity tester, but they can do something else if it meets some basic criteria and matches the theme of “On and Off as Information.”

That said, picking a project that matches your abilities is hard to do as a beginner.  Heck, it can even be hard when you are advanced. Sometimes amazing experiences can come from taking on something that ends up being harder than predicted. Sometimes, like for a class or for a client, not so much.  It just needs to get it done.

The below is a list of questions I’ve been working on to get a sense if a project is a match. Some day I’ll turn it in to a rubric or a worksheet of some sort, but smoothing out how to weight the answers will actually be kind of personal. For now simply a list of things to think about is a good start.

Step 1: What kind of challenge are you up for?

The first step is self assessment. This set of questions is the “bank account,” an inventory of time, money and psychological energy that you have to throw at the project. The answers to these questions will change depending on lots of life circumstances that have nothing to do with the actual project itself.  Even the simplest of projects will remained undone if you have too much going on and are doing it because you “should” not because you actually care.  Intrinsic vs Extrinsic motivation is a hot topic in education. It’s worth thinking about for yourself before getting started.

  • How much time do you have to work on THIS project?
    • from “It is for a party tonight and I’m still at work”
    • to “Just got laid off with awesome severance.”
  • How much money do you have budgeted?
    • from “I’m eating ramen every night”
    • to “Elon Musk”
  • How badly do you want the end product?
    • from “Someone is making me”
    • to “This has been my dream since I was 6.”
  • How relevant to other stuff you want to do is the project?
    • from “Not transferrable at all”
    • to “This is how I want to spend my life”
  • How do you handle frustration?
    • from “I throw things across the room and never look at them again.”
    • to “Frustration? What’s frustration? I love it when things don’t work! A new challenge!”
  • How confident are you feeling? 
    • from “I’ve never been able to do anything like this before and I’m scared.”
    • to “I am a GOD.”

Step 2: How clear is the Path?

Now that there is a sense of the “budget,” time to start subtracting the things that will drain from it.   The first set of questions is about the quality of the tutorial or directions. It is much easier to just copy a well done tutorial than invent from scratch something that has never been done before.

  • Is there a tutorial for exactly what you want to build?
    • from “Yes, identical down to the color.” 
    • to “Tutorial? What tutorial? All I saw was a picture on tumblr.”
  • Has the author of the write up has done many other tutorials?
    • from “Super Pro-Published Author. Like on Paper and everything.” 
    • to “looks like one Instructable 5 years ago.” 
  • Do you fall within the target audience for the tutorial?
    • from “Actually, it was written for me specifically. Seriously, my mom wrote it out for me.”
    • to “I’m 5 and it’s a SpaceX training manual.” (meaning no disrespect to 5 year olds)
  • Is the tutorial complete?
    • from “It’s from a kit that comes with all the parts, a tools list, a Bill of Materials with manufacturer part numbers for reference, a schematic, a github link for the code, illustrations/pictures of every step and a toll-free customer support number.”
    • to “Again, like I said, just a picture on tumblr.
  • Is the tutorial posted somewhere with an active community?
    • from “Yes, it is on, lots of other people have made one, and the author is active in the discussion thread. “
    • from “It is in a book that was written in 1917 that I found in a barn and Google Books hasn’t even scanned it in.”

Step 3: How familiar is the process?

Doing unfamiliar things costs time and energy, even when they don’t cost money. If you don’t have a lot of time and energy, try to limit what percentage of the project will be totally unfamiliar to you. For example, use a familiar circuit in a new enclosure, or a new circuit encased in a material that you use frequently.

  • What percentage of the electrical components have you worked with before?
    • from “100%. I have worked with these exact part numbers before in exactly the same application.”
    • to “0%. Not a one.”
  • What percentage of the non-electrical component materials (for the enclosure, etc) have you worked with before? 
    • from “100%. I have made pretty much the enclosure before, but now I’m just adding LEDs.”
    • to “0%. Not a one.”
  • What percentage of the physical tools have you used before?
    • from “100%. I have made pretty much this before, but now I’m just wiring it up.”
    • to “0%. Not a one.”
  • What percentage of the software tools have you used before?
    • from “100%. I use them all every day the same purpose.”
    • to “0%. Not a one.”
  • If there is programming, have you written anything like it before? Used the libraries?
    • from “100%. I use them all every day the same purpose.”
    • to “0%. Not a one.”

Step 4: Are you ready to roll?

Every item you don’t have on hand is a speed bump. Every piece of software that needs to be installed is a speed bump. If you care about the project, you’ll push through. If you don’t, this will be time you start playing Two Dots… oh, that is me…  This group of questions can be thought of as more points into the bank account for everything that is ready to go, or more points out for everything you’d have to figure out how to source.

  • What percentage of the parts/materials will you have to buy/source?
    • from “0%, Nothing. Got them all right here.”
    • to “100%. Everything. And international shipping by boat will be involved. “
  • Of the parts you have to buy, what percentage of the parts/materials have you bought before?
    • from “0% No clue what package, what tolerances, what specifications will matter to this project at all.
    • to “100% Still got my invoice from the last time I made it and everything worked great. 
  • Do you have the tools on hand? If not, do you know how to get them or get access to them?
    • from “I have NONE of the tools. Not sure even what I’ll need by the end. “
    • to “I have ALL of the tools, and they all live easy reaching of my work station.” 
  • If there is software or development environments involved, are they installed and loaded?
    • from “Nothing is installed and I’ve never done an install of the software before.”
    • to “I use it every day, with custom keyboard shortcuts all set up.”

These questions are a starting point.  No amount of planning can prevent all surprises. In none of the questions do I ask if you have a cat, and they will meddle with everything.  Hopefully though, by identifying what you are prepared to handle, there will be one less half finished project around the house.

Today I Learned: Gold Embrittlement is a Thing.

by Carlyn Maw on January 22, 2015, no comments

A new semester has started at PCC and I am fortunate to have some seriously awesome already professionally employed Electronics Tech’s in my sections. It is so nice to have them. I have come to discover that adjunct teaching in a small (myself + one other adjunct) department is one of the loneliest things to do, pretty much ever.  It is a relief to have them, especially in my second section, when I’m tired and my memory and ability to think definitely starts slipping. One of them even caught a could-have-caught-it-with-5-minutes-of-thinking mistake in the PreTest I gave them.  Doh! (No Carlyn, gold is not more conductive than copper. You knew that).

We talked about soldering yesterday and one of them asked me about if he needed to do anything special to solder to gold (like you have to do to connect copper to aluminum). Honestly, I had no idea. Seemed reasonable that you might.

So this is where I ran into “gold embrittlement.”  When Tin- Lead (PbSn) solder is used to connect to pads or leads that have been protected from oxidation with gold, that gold can mix in with the solder, form crystals and make the solder joint prone to fracture. I haven’t experienced that, to my knowledge, so this was pretty fascinating to me.

According to the IPC link embrittlement is the wrong word to use, it is more about the formation of crystalline structures.  Maybe they are right, because the phrase made Tod (@todbot) think of the gallium invasion of aluminum.  I wonder if the phenomena are related?

Happy Halloween! Processing Jack-o-Lantern

by Carlyn Maw on October 31, 2014, no comments

Hastily written and ready to scare you with its need for refactoring…

See the code on Open Processing

Just FYI, the process I used before didn’t work at first because of wpautop issues. Fixed it with a plugin. Not going to mention which one until I look into security issues.

And now, for a new type of jargon.

by Carlyn Maw on October 18, 2014, 2 comments

It is one of THOSE blog posts. The apology for not having written in awhile, the promise to be better… well, maybe not that part.  I promise to be better starting in January. In the mean time I’m having my ass kicked by trying to develop a community college targeted curriculum on electronics that incorporates that hands on Fail, Fail, Fail, Win ethos from the hacker and maker communities.

The TL;DR for this post: All I really want to do now right now is spend some time writing some gcc compatible C++ code to upload to my ATTiny85 with AVRISP programmer, because all of those words actually mean something to me.

For those of you who don’t know, I am one of the founders of the hackerspce CRASH Space.  Part of CRASH Space’s mission is education, and I am very proud of the work we’ve done on that front. When the opportunity came up to spread some of that love to Pasadena City College, I jumped at the chance. They already have an awesome DesignTech program that feels like home.

Community college teaching combines nicely with the hacker ethos because community colleges focus on folks finding alternative paths to learning than the one classically accepted by society.  The students in my room range from the young and determined to succeed to the older and determined to stay curious.

The broad range of life experiences in the room enriches the experience for everyone.

I haven’t shared a lot of the work I’ve done at PCC yet because it all feels very much in the alpha stage.  After finishing this semester I’ll start putting up some of the projects, etc.

One of my frustrations is that I couldn’t find an existing cohesive curriculum with lesson plans that tolerates differing Math and English skill levels targeted at ADULTS.  It seems you either know calculus already, don’t really care about actually making anything, or are a child. The ones that are close live behind copyrights that make them hard to adapt appropriately.  

Also, what I mean by curriculum now is not what I would have meant by curriculum 10 months ago. What has to be developed to create a state-certifiable curriculum amounts to some pretty insane documentation. I feel a bit like I’ve moved into bizarro world as some of the “New!”©™ fads seem painfully obvious, although incredibly well intentioned.

Here is a list of some of the information I’m preparing:

  • Program Mission/Goals: What your program intends to accomplish for the students and for the surrounding community. For state career and technical schools, there must be state job placement data by relevant career code researched and documented.  At PCC they put it as “Outlines the purpose of the program, identifies stakeholders, and aligns to the mission of the college and the Educational Master Plan (EMP).”
  • Program Level Outcomes: Should finish the sentence “At the end of this program students will be able to ______ [in order to ______]”
  • Program Level Objectives: The more measurable results, how will the school be able to tell that the outcomes being met? A well written Performance Objective contains the student performance, the conditions of that performance, and the criterion for judging success.
  • Program Level Objectives, Map Layout: presented as Curriculum Map where the courses and objectives are placed in a table and it is indicated where each outcome is introduced, practiced and assessed or similar criteria.
  • Alignments: the curriculum needs to show that it can be aligned with standards, National, State, College and National Trade Association standards.
  • Industry Advisory Committees: The future employers of the students get to have a say in what they are learning.
  • Course Student Learning Outcomes:  Should finish the sentence “At the end of this course students will be able to ______ [in order to ______]” They need to be students centered (NEW!) and use words from the right part of the blooms taxonomy list. And ideally cover all three domains of learning: cognitive, affective, psychomotor.
  • Course Student Performance Objectives:  How the instructor intends to tell if the student can indeed deliver on each Learning Outcome. A well written Performance Objective contains the student performance, the conditions of that performance, and the criterion for judging success.
  • Lesson Plans: What are you going to do in the class today?  Learning Outcomes, Performance Objectives, etc.
  • Assessments…. Authentic Assessments: These are the things that get graded (the new hotness, Rigor and Relevance™. Yes, a phrase that represents the idea that work given to students shouldn’t not be a waste of their time, is TRADEMARKED. I kid you not). Don’t forget the rubrics.
  • Assessment Plans: How will the quality of the assessments be assessed.  How will the school be able to tell if the assessment actually indicates mastery of the topic and is fairly written.

The really sad part is that all of these need to be written in a joy-sucking form of English that seems geared towards convincing administrators that no fun will be had by students ever.  It’s weird.  Oh, and did I mention that this all had to be done before even a single course can show up in the course catalog? Talk about the opposite of release early, release often.

I mean, I guess this is all a good thing. The new deliverables represent a desire on the part of schools to update their methodologies and increase accountability. (<-yup, it all sounds like that) I feel the most comfortable with the Assessment Plan part, where time gets budgeted to revise what the students are doing based on data collected from the students. The Ex – Human Factors Professional in me likes that part a lot.

And I’ve learned something about myself. Turns out, I am an advocate of flipped classroom, project based learning based on open source tools within a mastery/competency/proficiency based framework of promotion. Which apparently makes me pretty radical. I can live with that.

<UPDATED 10-28-14>Added the bit about the three domains of learning</UPDATE>

I passed CopyrightX!

by Carlyn Maw on June 13, 2014, no comments

image of certificate indicating that Carlyn maw completed CopyrightX

I passed CopyrightX and what I got was a PDF (and a ton of useful knowledge)


But don’t ask me anything, because I passed by the skin of my teeth (and giving legal advice without being a lawyer is illegal.). Apparently lots of coffee does not replace actually having gone to law school.

I started teaching at Pasadena City College during the course and that definitely impacted the amount of time I had to study. However, without question the experience is worth it.  If you want to be kept posted as to how to enroll in the next one sign up at

LA Hackerspaces and Intro to Arduino talks slides up on Slideshare

by Carlyn Maw on April 21, 2014, no comments

So it is time for me to start putting up presentations as I do them. I make highly visual slides without many notes, so I’ve assumed they wouldn’t really be useful to anyone else. However, I did a quick talk at the Intel Experience store in December.  It came up that someone wanted to see them, so I’ve posted my first deck to Slideshare.

I use Keynote so the slides posted are a PDF export.

The talk covers:

  • “What is a Hackerspace”
  • “What are our local Hacker/Maker spaces?”
  • “What kind of projects can I learn to make?”
  • “What are some Arduino Basics?”

Quick Continuity Testers From Dollar Store Parts

by Carlyn Maw on April 3, 2014, 3 comments

How fast and how cheaply can test equipment be made? Two can be made for less than 5 dollars, an hour of time and a glass of wine with my sweetheart. A great Wednesday night.

“Real parts”  like a battery holder, mini buzzer and alligator clips along with wire with some solder can be had from the local Radio Shack, but that is way more expensive.  Biggest tip, keep the circuit under 3 Volts. For testing sensitive circuits, it will be time to uplevel.

Intel Galileo and Bee Mail Part 6: c string to int on an Arduino

by Carlyn Maw on March 31, 2014, no comments

NEW! There will be a Part 7. I’m splitting the wrap-up off of this post. The last few posts have been very unphotogenic and I have one last unphotogenic step to get through before the step with more to see. Instead of burying the pretty, I’ll give the project glamor shots their own day.

This installment will only cover changes made to the getEmailCount() function needed to finally read the file I could now make on the SD card.

Strings to Ints

Sadly, even once a file with a number in lived it on my SD card, the code from the sparkfun Intel Galileo tutorial still wasn’t working for me. I changed a whole bunch of things before rechecking it, so I still don’t know what fixed it for sure. Bad troubleshooting hygiene, I’ll admit.  A better me would go back and recreate the error, but I don’t have time.

When I ran the code I was seeing a null value in the int that was supposed to be holding the quantity of emails found in the inbox. That int derives its value from each of the ASCII characters in the text file on the SD card being passed into an array. Some processing then needs to happen on those characters and/or the array to finish the transformation of a String into an int.

If that paragraph made no sense, the following links are a place to start. I picked them because they all discuss serial communication. During serial communication information is passed between computers and the protocol has to be really clear about what format the data moves around in.  This makes the topic a good one introduction to thinking about swapping data between two programs running on the same machine as well.

To be clear, Jim Lindblom has a clever approach where he converts each ASCII digit into its int value by subtracting the ASCII value for 0 (48) from each byte read from the txt file (line 118).  He then implements a for loop to step through the array those int values had been placed in, multiplying each value by the appropriate power of ten so their sum would equal the correct number of emails (line 125, 126).  This demonstrates a valid and very Arduino community friendly approach because it requires no functions outside of the Arduino reference guide.

Seriously cranky at this point, I chose the less friendly but simpler to me path of loading the text digits into a char array, adding a NULL termination to it and then using the c function atoi() in lieu of the for loops.  Keep in mind, the word “string” in C documentation usually refers to a null-terminated char array not an analog of the Arduino String object.

Celebrate Good Times

This function worked!!! Happy Dance! Ready to move the shield over from the Uno to the Intel Galileo! Yay!

In this series

  • Part 1
    • Overview
  • Part 2
    • From Zero to Blink.
    • Creating an SD card image and getting a sketch to persist on the Galileo
    • UPDATE: Blink on an external LED
  • Part 3
    • Creating the bees and getting them to work on an Arduino UNO
  • Part 4
    • Setting up Wifi (very easy, library examples worked immediately)
    • Getting the SD card read & write to work (a missing libraries/symlink problem)
  • Part 5
    • Serial Communication to the Linux Core
    • Troubleshooting Python on the Galileo
  • Part 6 (this post)
    • Revising the String to Int code
  • Part 7
    • Motors moved to Intel Galileo
    • Conclusions
    • Next Steps

carlynorama is Stephen Fry proof thanks to caching by WP Super Cache