Sunday, November 17, 2013

Nanotech eats universe, everything else — cockroach rodeo ensues

Alright, it's about time. It's about time I post to my newly repurposed blog. To kick things off, I have a funny story to tell you, and I think you'll like it. But, first, I want to tell you about a series on artificial intelligence (AI) I'm working on for this blog.

A clinical psychologist, a day trader, a computer scientist and a hypnotist walk into a bar.


It's actually about AI, augmented intelligence (AugI) and optimized organic intelligence (OOI). Okay, I made those last two terms up, but just think of it like robots, cyborgs and superhumans. I'm using Forex trading as a way to explore the ideas.

So, you can apply AI principles to develop a program that trades for you based on complex algorithms (a process I am in the middle of, using MQL4, but I'll switch to MQL5 next), and you can approach it from the other end and figure out how to make the most of our fearfully and wonderfully developed bodies (most specifically our brains), perhaps leveraging some untapped natural capacities to trade like the dickens.

I'm busy (in my spare time, which is a relative term) studying the neurology of intuition, genetic algorithms and stuff. And, yesterday, as I was telling my buddy that that's what I was doing on that November Saturday in Alabama, this mammoth cockroach started running across the floor straight for the couch I was on.

"I don't think you're supposed to squish them." "Why, will it make them breed faster?"


They have large bugs here in Alabama. I recently arrived here from Olympia, WA, and I am not used to the bugs. (I say "arrived" because I'm not sure how long I'll be here. So, this may be a visit, an extended stay, a move. IDK, but that is another story.) I think I've seen like two cockroaches in my entire life.

I remember an East Coast real estate investor giving a presentation to a bunch of Pacific Northwesterners, and he was telling us that you can ask your exterminator to do a monthly visual check on your rentals since we'd have to hire one that often anyway. We were all like, "What? No, no, no, we don't have that problem here." But, yeah, over here in Alabama, you gotta fumigate, or your house will quickly be overrun with cockroaches and centipedes and stuff.

So, anyway a big-ass cockroach was making a b-line for me while I was talking to my pal about studying AI and stuff. (Okay, we weren't talking; we were chatting on Facebook.) I would have stomped it, but I was afraid it would turn its head and take my foot off at the ankle. Plus, I didn't want guts on my sock. So, I picked up the transformer box on my laptop cord and squished the beast with extreme prejudice just before he made it to the couch. I picked up the box, and the little bugger scurried under the couch anyway, leaving a pile of its own guts on the floor! WTF?!

The chat log looked something like this:

Me: I'm working on a blog series on AI and stuff today. But, it's a big project, and I want to come up with something else to post while I'm working on this.
Champ (that's what I call her): Oh yeah?
Me: yeah
Me: Also, big cockroaches.
Champ: Eeewwww!
Champ: Are you going to make AI cockroaches?
Champ: Oh! Make AI cockroaches that seek out and destroy real cockroaches!
Me: Sniperoaches...you're onto something.

Sniperoaches

There is a right way to put a roll of t.p. on the dowel.
The setting is the near future. Having solved all major problems with nanotech, and I mean all major problems (cancer, hunger, learning disabilities, those people who like to put the toilet paper roll on so it unrolls from the bottom etc. — all solved by nanotech), people started looking around for other uses for nanotech, common consumer uses.

Someone got the bright idea to make a nanomite for pest control, sniperoaches. These tiny robots would spread among a local population of cockroaches just enough to destroy all the roaches in a given vicinity. One box covered a 10th of an acre, and you could pick up a box at Walmart for $19,999.99, which is cheap in the near future. You'd simply open a box anywhere and the invisible little robots would go to work seeking and destroying cockroaches. When they found one, they would latch on and begin to replicate, using the materials of the roach itself to make new sniperoaches. The best part? No downside! There is no poison, no collateral damage, nothing but dead roaches.

Sniperoach designers knew the process had to be slow enough to allow roaches to take sniperoaches to other roaches. It also had to stop at some point before they drove roaches to extinction. Incidentally, everyone tried to believe roach extinction would theoretically be a bad thing, though there wasn't a single person who didn't feel a slight sense of peace and triumph at the thought, much like at the final crunch and squish under your twisting heel.

Snipe roaches are microscopic robots that eat cockroaches. I call them nanomites.
So, to avoid such a sweet oblivion, a built-in timer was set for the entire class of sniperoaches within one box. Opening the box started the timer in each sniperoach. Each new sniperoach created was given the same time left to live as the one that created it had left. So, if sniperoach A had 24 hours to live when it created sniperoach B, sniperoach B would have 24 hours left to live as well. In this way, all the sniperoaches generated from a single box would die at the same moment, and all the cockroaches within about a 10th of an acre would be dead too.

The rates of consumption and reproduction slowed over time as well to allow for an extended life cycle within a constrained area, to keep the roaches at bay. After the sniperoaches died, the roaches would start to return, and you just got another box, but that was no different than fumigation, just no side effects.

The clock stopped in a sleepy neighborhood in Alabama. The residents in one house hadn't seen a roach in a month. It was nice. If you were able to hear the white noise of sniperoaches working and cockroaches creeping, you would have heard neither. It was like someone turned off the TV. It was that perfect moment of a job complete before the work starts piling up again. Nothing. Not a single roach around the house. Not a single sniperoach. I mean, except, there was one, of course. Oh, but that wasn't supposed to happen. Oops.

These things basically cloned themselves. No sex. There were no genes to mix with a mate, producing a unique set of genes. No, they were identical, with only functioning parts and code (not unlike an organism, but not an organism). And, they were so simple and small, there really wasn't much room for change. Every part had it's purpose, and nothing could be done without. Such irreducable complexity and economy of design that there was no room for innovation.

Not unless you count the life-cycle timer. That was kind of unnecessary for the nanomite's functioning. And, one day one of them dropped the timer, oops, like the littlest ant that stopped to tie its shoe, the lonely little thing. It wasn't lonely for long. It ran like a dog off its leash down the block to the next roach-infested house and went to work killing roaches and reproducing. These new sniperoaches didn't have a death timer either.

In fact, remember that cleverly slowed rate of consumption and reproduction designed to extend the period of a roach free environment without extending the boundaries? Well, due to size constraints and such, the timer had been recruited for that task as well in quite the engineering feat akin to the evolution of flagella. There was no artificial limit to the rate at which these robots could consume and reproduce, so they went as fast as they could, naturally.

That happened to be pretty darn fast. By the end of the day, there were no cockroaches left in that little Alabama neighborhood. The next week, there were none in New York, if you can imagine that.

What happened next no one really knows, because it all happened so fast. Before they knew it, humans were extinct, and knowing went with them. That is an oddly obvious thing to say, if you think about it, "Before they knew it, humans were extinct." It kind of takes the immediacy out of the idiom...and it would be more accurate to say, "Before they could know it, humans were extinct." Anyhow, here's the best explanation people could imagine for what was going to happen.

Somehow drawing on the ruthless adaptability of the cockroach, other mutations occurred in the nanomites which allowed them to make meals of other critters. At the same time, they actually stopped eating cockroaches, at least not all of them. It was almost like they made deal with the Devil. I'm not sure which of the two is the Devil, but I'm pretty sure the cockroach sold us out.

They formed a symbiotic relationship. In a pinch, these new supernanomites could feed on cockroaches in order to spread more quickly across distances where there was nothing but cockroaches, but they would feed only to an extent so as not to bring the roach to extinction. In exchange, the nanomites actually slowed their consumption in the presence of cockroaches, allowing them to scavenge. (I know, right? Now the nanomites show restraint? The little cocksnipers.)

Another brilliant feature of the supernanomite was that as they added to their repertoire of the things they could eat, they became able to feed on other nanomites. At first, they would only feed on previous generations, those with more limited diets. This would recycle the materials of the older generation into the new expanded appetite — that's what a group of nanomites are called, an appetite, an appetite of nanomites. It would also allow their progeny to live on.

Of course, rival generations would arise around the world, as varied organic speciation around the world produced varied speciation within the nanomites. So, different subspecies of nanomite would simply eat one another, back and forth. Sometimes, one would go extinct, but that wasn't a problem, since either the things it had learned to eat were extinct anyway, or the victor generation of nanomites would simply learn to eat those things too. No biggie.

Yeah, so eventually there was no life on Earth, nothing organic at least, unless you count the roaches. So, the supernanomites turned on the planet itself. Then, they ate the galaxy, then the universe and then everything else. They ate time, so it's hard to say how long it took in all, but it didn't take long to finally destroy time. They ate space along with time, of course, so you can't really talk about how far they stretched.

Now — I can say "now" even though time is all eaten up because time was always a function of the present, not vice versa — now the extremely adaptive, omnivoracious, patricidally cannibalistic supernanomite has achieved an unimaginable homogenous, homeostatic hive. All it does is seek -- that, and ride cockroaches in the cockroach rodeo circuit. The cockroach rodeo is all the rage in the supernanomite hive, those crazy little cowboys.

That is the end.

Happy birthday Champ. :)



Monday, June 10, 2013

Evergreen Bike Shop volunteer Peter volunteers at the Evergreen Bike Shop



            I followed Evergreen Bike Shop volunteer Peter around the shop during one of his weekly shifts. That day he continued working on a bike for his girlfriend’s brother and assisted someone who came to work on his bike.
            Since 1977, The Evergreen State College campus has hosted the Evergreen Bike Shop, a volunteer-run shop where people can work on their bikes or even build a bike out of spare parts. Bicyclists may store their projects at the shop as long as they work on it at least once every two weeks, otherwise the shop reclaims the parts.
            Bicyclists may find a number of basic and specialized tools, DIY manuals and free spare parts. The shop also sells some basic materials as needed.

            Aside from its basic hours of operation, which depend on volunteer schedules, the shop holds special events and meetings. Every Monday at 4 p.m., the shop hosts Lady and Trans Night, a “target-only” space. May 18, the shop sponsored the Mob Roll Alley Cat, a bike scavenger hunt through Olympia followed by a show and party.
           Those interested in volunteering may attend the weekly meetings 2-4 p.m. Wednesdays at the shop in Room 135 of the College Activities Building.

Sunday, June 9, 2013

Review: stackoverflow

            Here is the obligatory review of stackoverflow. Look, if you are working on a project and come across a problem that you want some help on, go here. Someone else has quite possibly had the same problem, and someone has quite possibly helped them solve it on this site. If not, post your problem, and a bunch of bored programmers will solve it for you. Pretty neat, huh?
            The site is much like any other forum like this. You can search by question, by tag, or by text. Questions and answers are rated by users. Users create profiles and earn badges and reputation which gives more privileges and gives their votes more weight.

            As usual, the moderators try to get everyone to learn the rules and keep the discussions professional and on task. They also invite people to apply to help with the various tasks of managing the site. Stackoverflow is part of StackExchange, a network of similar sites for various areas of expertise.

Review: Google Developers University

            Google Developers UniversityConsortium presents a fairly comprehensive and emergent education program for anyone looking to master web development or simply expand their skill set — comprehensive in outline at least. I get the sense that it is curricula compiled by an information management specialist giant, not composed by educators per se.

            The well-organized site lists quite a number of offerings in three general categories: mobile, web development, and programming languages. The programming languages track leaves much to be desired, but the other two tracks appear to lead from a fairly introductory “classes” to advanced real-world application. The offerings range from free online videos or slideshows to university courses with tuition, to live webinars from any number of organizations.
            The free stuff sometimes is little more than a slideshow with no voice over, which makes little sense without the lecture it was designed to accompany. But, there are still some gems. I have selected this course from the University of Maryland on building Android apps to browse over the summer.
          Also, though many courses start off at a very introductory level, none of these are designed to build your knowledge from the ground up like Codecademy does. So, what you get out of Google Developers University depends on what you can put into it.
            As a site (or, subsite), it is well-organized and interactive. There is a forum area for collaboration, questions etc. But, mainly the content is well-regulated, which is good. It seems to be a good place for universities to attract students with “cutting edge” offerings. Also, there are some pretty cool applications available for developing and educational collaboration.

Thursday, June 6, 2013

Profile: Justin Bodeutsch, Olympia programmer

            Olympia, Wash. programmer Justin Bodeutsch has worked as a web professional for the past eight years since he graduated from college. But, he has never formally studied computers or programming. His degree from Multnomah Bible College is in Bible theology and speech communication.
            Bodeutsch said he probably got in the field at the end of an era when formal education was not as required to get a job as a programmer as it is now. He said he learned most of what he needs to know through on-the-job training and independent study.
            “I love just creating stuff and some of the newness of the internet. It’s like a frontier, figuring out how to use it. I studied communication in college, so from that standpoint it’s a new way to communicate,” he said.
            He has worked at Monk Development since 2006. Loosely based in San Diego, Monk mostly creates and manages websites for churches; the company’s “content management system” is its “main product,” he said.
            He acts as a system administrator, solving problems Monk’s clients bring to him, and “finding other problems before they are big problems – problems that maybe nobody has brought to you yet. You just always have to be diligent.”
            He said Monk did not have a system administrator before, “so I just started doing some of that work. I’ve never had an official titling ceremony.” He said his title changes “depending on the context.”
            “To some people, ‘system admin’ is a dirty word, or it’s a terrible job,” he said, “Dev ops guy is my official informal title. That’s what I call myself internally, but my business card says, ‘System Administrator.’”
            He said he has been transitioning from PHP developer to full-time system administrator, and should be done with the transition by the end of year. He said his goal is just to be an “all-star sys-admin.”
            He is at Monk for the “long haul,” he said, “That’s been my goal all along. I’ve felt like I wanted to retire there.”
            “You know, I want to be able to take a tool and use it for good,” he said, “Monk’s mission is totally in line with mine.”
            He said he did not have the same feeling about the company he worked for before Monk, Netbiz. He said Netbiz was basically about “tricking realtors into thinking they needed a website, and the main cash flow was reselling adwords to realtors.” He said Netbiz had that one thing that was relatively successful, but it tried new ideas almost on a weekly basis. He said it was good that the company was responsive to the dynamics of the internet, but he did not feel good about a lot of the ideas, and the ideas were not very successful.
            He said his job with Netbiz was doing mostly HTML ad CSS for the designers. He said he leveraged his experience making websites for himself and his friends in high school and college, when it was novel for anyone their age to have a web presence at all. He said he also used his experience and training as the assistant to Multnoma’s web developer in his senior year of college.
            While he was at Netbiz, he taught himself PHP and MYSQL, because he “didn’t want to be there forever.” He said, “I wanted to get out of there as quickly as possible because my boss was insane, and it was a horrendous commute.”
            He said he used w3schools a lot to get the basics down. Then, he said, he tried some ideas for websites that “never really went anywhere,” but the experience helped him learn to make applications and to see where he “got stuck, what worked and what didn’t work.”
            He said that work put him in the position to take a job with Monk. He had a side job helping to maintain the website for Imago Dei, a Portland, Wash. church. Imago Dei hired Monk to provide a new website, and Bodeutsch helped with the transition, helping get the new central management system online.
            He said he started doing some HTML and CSS for Monk, but he also did some basic PHP and MYSQL work, learning PHP from his boss. He said he bought some books, and, “at first, I was still just googling when I got stuck.” He worked five years learning more PHP and MYSQL and “a few other things here and there, but not really using them much.”
            “It’s really amazing how hard it is to get things perfect.  It’s really easy to go to a website and see things you don’t like about it. It’s hard to make a website that works well and is easy to use,” he said.
            He said of his current job that he does not “like that it’s constant.” He said, “When you have thousands of users there’re always people trying to use the system in a new way, always new features rolling out, or new bugs. You can’t just say, ‘Okay let’s not have any new bugs this week. I don’t want to solve any new bugs this week.’”
            His advice to new programmers is, “Keep learning. Try new things, even things that don’t seem completely relevant to what you’re doing. But, just keep trying new things and learning from other people that are more experienced.”

Wednesday, June 5, 2013

Review: Codecademy

On Codecademy, a person can learn to code for free, even someone who knows absolutely nothing about programming. You'd have to be pretty dense or unmotivated, or think you are pretty dense or unmotivated, to not be able to learn how to code from this site. But, it's not without its drawbacks and straight-up flaws.

The quick, easy lessons are broken down to the smallest parts, so you can spend as little as three minutes a day or as much as all day every day building your skills. Like a video game, the curriculum uses progressive complexity (levels), rewards and has a social element. It is kind of like a Facebook game, except you get something of value out of it. (c.f. James Paul Gee)

The site offers multiple lesson tracks within a number of coding languages: HTML, CSS, jQuery, JavaScript, Ruby, PHP, APIs, and there are likely more on the way.

I personally used the site as an absolute novice to get a head start on my first JavaScript class, then again to extend my knowledge after that quarter. And, I plan on returning for some of the other offerings.


Collective genius?  Is that an oxymoron?  Whatevs.


Here is a piece of the genius that I love about the information age in the time of web 2.0: crowdsourcing and collective intelligence. Codecademy produces user-generated lesson tracks, curating them through user-generated evaluation! I mean, talk about leverage! Talk about socially driven evolution of content and technology!

Etc. But, that model does cause problems. Like biological evolution, things are constantly under development and change. This can cause a track you are working on to become obsolete, which interrupts your badge earning! Ugh. But, then you realize they replaced the track with a better one, which makes you wish you would have been doing the better one the whole time.

I mean, as a user, you are like a guinea pig used to cull out the not-so-great tracks generated by hacks who maybe are only like three levels ahead of you in Codecademy, and who often don’t seem have a lot of knowledge of pedagogy or even just writing in English. I came across a couple of these. But, look, they are learning too. We’re helping each other, right?


Easy, Whiskey.  Wait, who's Whiskey here?


Anyway, Belle Beth Cooper of Attendly wrote a critique of Codecademy. Her main argument is that it is not very good for absolute beginners, because there are too many basic assumptions about coding that are not explicitly taught in the lessons. I think there are some basics left out, but this is not really a problem, per se. I mean, I had a couple times when I felt kind of like I came to a wall because there was something I was not getting, but I did not know what it was. But, I worked through it, either using the hints supplied, or using Google or w3schools (which I found through Google), or just plain thoughtful trial and error.

Admittedly, I did know that there was a difference between a web browser and the internet.  But, look, if all you know is that you can use the code you're learning within the Codecademy framework, that is enough until you're ready to figure out how you're going to get it to work in the real world.

Here's the thing, Cooper. If a person arrived at the Codecademy site with the intention of learning to code, that person has enough prior knowledge. First of all, the person can navigate the web, knowing there are such things as web pages. Look, users have some reason for being there -- a website idea, or they want to be more useful at their job, or just plain curiosity. I mean simply picking a language to learn means that you have to know (or, to figure out) what each is used for and which would best meet your goals.

This all highlights the fact that they have some idea that there is something you can learn to do called coding, and it makes computers do stuff, maybe even the stuff you want computers to do. That's all you need to know. Codecademy's target audience is anyone who wants to "learn to code" not people who want to "learn about coding" or people who can not get to the site. You have to do the work...when you're ready.

I think a lot of people need to get in there doing stuff, trying to accomplish things (even the silly tasks within Codecademy), in order to have an adequate interest in the kinds of basics Cooper says are necessary. You really do not need to understand anything other than how to follow directions and pay attention to language to start learning code on Codecademy.

Don't get me started on the countless wasted chapters read and hours spent in class during the first couple of weeks of classes, "learning background," "building foundations." These "basics" were either old hat to me, or not connected to my motivations for taking the class. And, they were not necessary to start doing the stuff of it.

Learning a subject is not linear, so why should a course determine which angle you come into it at? Why not start in the middle and let the doing, the challenges, the frustration and confusion guide you in where you need to fill in the gaps and extend your knowledge? These will fuel your motivation and curosity, hopefully.

And, here’s my rant on how annoying I find it when people just throw up their hands when they encounter things they don't understand.  I mean, what happened to curiosity?  People need to learn that they can learn things by encountering them in use, not just by having things explicitly explained (side note: could the return to "common sense" contextualized application be the next step in the information age?).

Take the meaning of new words. Kids acquire language and new vocabulary mainly by encountering them in use and trying it out themselves. Only later do we use dictionaries, which are totally useful, but not necessary. Think about it. How and when do some people get intolerant of ambiguity, intolerant of not knowing for sure whether they "know" a thing?


lmgtfy


Anyway, someone who actually wants to learn to code will be able to do it just fine on Codecademy, and encountering the uncertainties will only prepare them better for real world coding, IMO.

That said, there are other resources I have found useful as I learn to code, resources that supplement Codecademy and will get anyone through the rough patches -- primarily w3schools and Google. Perhaps Codecademy could refer people there from the get-go?

Of course, some might then find the lessons on w3schools better and give up on Codecademy. And, of course, the ease of access to “answers” provided by Google is undoubtedly (to my born-in-1981 mind) a factor in expanding the populace of people unaccustomed to figuring things out. O, the irony. O, the humanity.


The bugs bug me, but not as much as...


Also, Cooper mentioned that Codecademy is buggy and hard to navigate. It is totally buggy. There were times when I knew that my code was right, that I followed the directions, and it even produced the right result in the console log, but the lesson did not approve, didn’t pass me along to the next lesson.

Cooper’s got to be kidding me about the site navigation issue. The site is one of the most user-friendly sites I have encountered. It uses the same sort of mechanisms and structures as the most popular social media sites and whatnot, so even if you have been living under a rock, you’ll be able to find your way around – unless you’re one of those people I mentioned earlier who just don’t normally pay attention to the way things work. If that is the case, give up now. Actually, don’t give up now. Turn over a new leaf, and stop giving up so easily!


Here's how it works. The evolution of semiotic domains as seen in typical web tech, and why I am not a teacher


The home page is very simple and easy to read with essentially three main options, in tabs: learn, teach, about. Smack in the middle of the page, you can click “Get Started” or simply jump right into the first exercise window and start without even clicking. You just follow the directions and type your name. In this first lesson, you’re not programming, but you're getting acquainted with the structure of the lessons.

You create a user-profile. You have a dashboard to track progress, select next actions, connect with users etc. You can share your activity on Facebook, Twitter etc. You earn points, pass levels, earn badges, complete projects etc. You know, there is everything a person acquainted with using the web would expect, and someone not acquainted with using the web would undoubtedly catch on if they wanted to, IMO.

Sure, these types of user interfaces and semiotic domains draw on the typical user’sprevious knowledge derived from using the tech that led up to this point, so those just now entering the world of the web will have a learning curve. But, I mean, if all the new user has is an index finger, an eye (or, comparable access technology) and a touch of basic human curiosity and intelligence, the user will do fine.

These standard web features evolved in the environment of human use. By now, they are pretty well adapted to human intelligence. Forgive my snark, but it really isn’t that hard to figure out. (And…this is why I’m not a teacher.)

Anyway, Codecademy has other stuff going on now too. Check it out. It has a blog with posts like keyboard shortcuts you can use onCodecademy, an interview of a programmer doing a hackathon, how knitters arelike human computers, an announcement of a fellowship opportunity with Codecademy, meetups etc.  The company also started an after-school program to help start school clubs.

Monday, June 3, 2013

Profile: Rand Riness

Computer information science Professor Rand Riness never particularly wanted to go into a technological field in and of itself. He got into computers and database management out of necessity early in his career as a public administrator in transit systems. Now, he teaches programming at South Puget Sound Community College.
Riness said computers have been a normal part of his life since his father owned one in the ‘60s. But, Riness said, “I’m not a professional programmer. I’m a problem solver, and computers are the tools to solve some of the problems.”
Riness earned a Bachelor of Arts in Political Science and a Master in Public Administration, both from the University of Washington (UW). Shortly after graduating, he went to work as a transit planner.
“Transit is one of those services that is necessary for the people and can help do some things for people in the community,” Riness said, “All of my career has basically been driven by ‘Ask not what your country can do for you, but what you can do for your country.’”
Riness said he started using a personal computer for work when he worked as a transit planning consultant for Dave Consulting 1983-1985. Before that, the firm had a shared system called a super micro, he said. This was where he got into spreadsheet modeling and budget forecasting, he said.
Riness said that at UW he had some computing projects dealing with statistics and forecasting, but they used punch cards in the school’s main frame. When he worked at Intercity Transit in Thurston County, Wash. as the planning and development director (1988-1996), they “didn’t have much access to anything computing-wise” at first to do much analysis. It was all paper-based, he said. He said he was glad to get away from the paper, because it just could not handle the data.
Riness also held a position as a senior planner of the Thurston Regional Planning Council 1985-1988, doing mostly transit planning.
“I grew up riding the bus, and you never would have thought I’d end up working with buses, but it was good fit. And, at the time, IT was growing a lot, so I got a chance to do a lot of things and got to hire some good people.”
When it comes to policy and program analysis, Riness said, you start asking, “How do you measure stuff? What’s working? What’s not working? And, you need data to do that, a lot of data.” That leads to using computers to figure out how to collect, store and process data, he said.
Riness said he tells his classes the same thing, and he teaches people to think first about the data they are dealing with and why they are dealing with it. He said you need to “start with the end in mind” a la Stephen Covey, author of “The Seven Habits of Highly Effective People.”
He often takes the time to talk with students about the kinds of conversations they might have with clients and employers to clarify the business needs of a project. Once you have grounded your understanding of the problem in the real world, he said, you can think about coding.
Riness started teaching part time at the college in 1998. He started teaching an Access class first, and the department asked him to teach other classes after the first quarter. He started teaching full time after the first year. Also, in 1997, he was a staff person for the Washington State Board for Community and Technical Colleges creating budget projections and allocations.
Riness said he took the teaching job because he liked the hours better than the hours he had to put in as a public manager. He said that, often as a manager, he would have his first meeting at 7 a.m., and he would not be finished until 1 a.m. Plus, Riness said, “I like change. Every quarter represents something different topic-wise, and different students.”
“The one thing that changes too much is probably the software, and keeping up to date is probably the biggest challenge,” Riness said.
Riness currently teaches four classes at the college: CIS 145 “Introduction to Access,” CIS 166 “Programming Business Objects (C#),” CIS 182 “Structured Query Language (SQL)” and CIS 266 “Developing Database Applications (ADO.NET with C#).” He taught a management class for five years before it got cut. He said, “I didn’t miss it.”
“I’ve been here longer than I’ve been any place else, but I don’t see myself going back to an eight-to-five job. As long as I can keep up with the software changes and the things I have to teach…I don’t see any reason to leave” the college, Riness said.
Riness said he attends South Sound .NET User Group meetings every couple of weeks to stay connected and up to date. He has been involved in the group since 2004, he said.
Every year or two for the last five or six years, Riness has helped organize and promote an event at the college for the Olympia Area SQL Server User Group. Open to the public, the events are to improve skills and focus on particular types of problems and solutions, he said. Each event has featured a number of guest lecturers, such as the experts in SQL Azure and business organization at the event last fall. The organizers have not set a date for the next event, but Riness said he expects it to be next spring or the following fall.
About programming in general Riness said, “We make a lot of this stuff more mysterious and convoluted than we need to.” He said, “I came in with a pretty good set of logic and critical thinking skills, but computers were foreign. All you’re doing is describing stuff.”

Monday, May 27, 2013

Profile: Scott Hamilton, Olympia programmer

                Olympia-area programmer Scott Hamilton has programmed both as a career and as a hobby for the last 15 years.
                Hamilton, 34, started working for Imagesource in Olympia, WA when he was 19 and has been with them ever since, helping provide the company’s paperless office service.
                Hamilton said he likes working on theoretical projects playing with languages for his personal projects.

                “I love programming, so it’s a hobby, and it’s a job,” Hamilton said.
                As a youth, he wanted to become a professional baseball player, golfer, or programmer, Hamilton said. He wanted to make games, because he liked programming the music and graphics for games.

                His first “real job” as a computer tech was upgrading Windows 95 for The Cheese Plate, and serving cheese, but it was not long before he moved on to Imagesource.
                At the time, in 1998, he was pursuing a technical degree at South Puget Sound Community College. One of his classmates was the owner of Imagesource. Hamilton said the owner was so impressed with Hamilton, who was tutoring others, that he hired Hamilton.
                Hamilton started working a state contract with the company putting a Visual Basic interface on a database, using an in-house framework. After that project, he decided to stick with the company. He has been working in the company’s paperless office service ever since.
                The company provides a paperless office service that involves scanning paper documents to digitize them, creating electronic forms to avoid paper in the first place, and putting together the workflow system. The role he now plays mostly involves customer interactions, mapping their business requirements to pass along to others on the team.
                Hamilton said that because of this role, he does not get to do a lot of programming at work anymore. “The programming is a treat, because that’s what I like to do,” he said.
                Hamilton said he enjoys designing languages and studying algorithms and has been able to apply cryptography at work.  He said he does not enjoy doing web presentation, but does enjoy the back end, like parsing and compiling text.
                In a recent personal project, Hamilton collaborated to create a video game in which the player pilots a space ship. He designed a basic assembly language for the ship’s computer, what is equivalent to a Commodore 64, and used Javascript to create an interpreter for that language.
                Hamilton said he enjoys learning languages, and has learned many over the years. Python is his favorite, he said, but he “appreciates” Javascript. “It’s a pretty awful language, but if you cut out all the bad parts and leave the good parts, it’s not too bad,” he said.
                If Hamilton could talk to his 19-year-old self, he said he would tell himself to pay more attention to resumes and references. He said part of him wishes he was “doing more sexy things in the programming world.”
                “Every time you do a job or project, think about it like it’s going on your resume, so you can later go back and demonstrate what you did and the relationships you formed,” he said. He said this is important not only to show potential employers, but also to show potential clients and partners.

Thursday, May 16, 2013

Here is a little clip I made to practice the basics of recording.

This is the sound of my "favorite" place on campus.  Really, my favorite place depends on the whether--whether I'm there or not.  Just kidding--sort of--but it does depend on the weather.

Anyhoo, I picked the press room.  Give a listen, or don't, actually.

Listen to Nathan Peters' recording of the same place; it makes me giggle.

Okay, here's mine, but only 'cause I have to include it.

VoxPop Assignment

Wednesday, May 15, 2013

"Through the Window" multimedia assignment

It's a touch long, but this slideshow cracks me up every time, especially right in the middle. Ha! I kill me!

Monday, May 13, 2013

Blog review: "Martin's Programming Blog"

Martin’s Programming Blog” is chock full of posts and discussions that a programmer looking for solutions might find useful.

A quick look at the archives grouped by tags reveals the author, Martin Trojer, writes mostly about Clojure.  He also puts a good deal of writing into F#, JVM, and .NET.  He writes about quite a few other topics as well, mostly languages.

The minimalist home page simply listing hyperlinked post titles shows Trojer posts pretty faithfully once a month, and from what I can tell, these are dense and focused posts.  These posts sometimes spark discussions among his readers whom often have further questions or experience to share.

In one post, Trojer shared a hack to his Chromebook for using a Chrubuntu developers environment (Ubuntu for Chrome).  Giving a positive product review of the Chromebook, he recommended getting an SD card and using a few special methods for installation and use.  All questions were answered by Trojer or another reader. And, all the readers seem to be on the same page (pun intended) with the same valence.

In another post, Trojer critiqued what he said are thetraditional business planning strategies when they are used within software companies. He said a software company’s main assets are its programmers and innovation, not its products per se, but a traditional model that tries to make projects adhere to a strict schedule run contrary to good programming an innovation. He said a company should ask whether it is primarily a software company or a service company, which will inform it of whether it should plan and implement with more flexibility or not.


As a note about the blog as a blog, I'll say it is quite minimalist, which I kind of appreciate in this case.  The organization is thrust to the fore, so it is easy to see what is there and to find what you might want.  That said, it could use a little more graphics.


Maybe Trojer wants to avoid overuse of graphics when they don't lend anything useful to the writing, but, in case you haven't noticed, I think you can always find a graphic that will make your writing more interesting (and, adding interest is useful), even if it's not super-relevant (and, mere juxtaposition creates meaningful connection, btw).
In an interesting choice, Trojer left out an about page.  I mean, it is pretty clear what the site is about, and you get somewhat of a sense of who Trojer is through what he writes about and how he writes it.  I guess, in accord with the structure-forward design, Trojer probably wants the content to speak for itself, but, still, I would like to know a little more about him and his thoughts about, and intentions for, the blog.  I mean, sure, good code is best defined by how you can use it, but good code also has commenting, a meta level as a point of entry... The metaphor I'm using here is a bit of a stretch, but it makes sense, right?

Thursday, May 2, 2013

Blog review: "Steve Hanov's Blog"

4901_1179125081037_3441025_nSteve Hanov’s Blog is a grab bag of content produced by an accomplished professional programmer, Steve Hanov.

Canadian Hanov has a Master of Computer Science from the University of Waterloo. He has worked at a number of companies, including Research In Motion. He has developed a number of pretty neat applications, a lot of which have to do with processing text, voice/audio, and image.

A lot of Hanov’s posts are fairly technical and immediately applicable, but still quite informal and human. You can tell what he is posting is derived from experience in the field (because he generally tells you about the context that gave rise to the idea or app he’s sharing).

He shares a lot of work and useful ideas, but also some quirky projects and humor. He started a comic strip in Imprint, the University of Waterloo student newspaper, which he continued and archived on the blog.

One very abstract post on using visual data structures may be useful to me in thinking about how to analyze algorithmic trading patterns as I test them and compile a shit-ton of data. Maybe it won't be too useful, though. We'll see.

In his most recent post, he shared what he has learned about operating a Canadian business that sells software to Americans. At the end, he asks his readers to share their tips, a good blogging practice. 4901_1179125121038_2374954_n

As for his style as a blogger, I like the variety. He offers a variety of content (from hardware to programming to accounting to humor), and he switches up the length and depth of his discussions as warranted.

This allows you to alternate your level of engagement. I think this, combined with the useful content and easy tone, encourages both staying on the site longer and returning for more.

One post was almost fitting for a meme it was so short and to the point. He chose a font style and a larger font size reflecting this.  In it, he breaks down why it’s important to think before you program about whether you will be handling “o, 1, many, or ‘a zillion.’”

Blog review: "Ken's Programming Blog"

"Ken’s Programming Blog" takes the tack of the informative older sibling or mentor. Kenneth Parker shares tools and tips for using code as well as no-nonsense advice for developing coders.

In some posts, Parker demonstrates an expert knowledge, yet he doesn't share much in his about section about his credentials. Sometimes he alludes to his role as a decision-maker in his company Beverage Metrics.

His post on whether you need a degree to be a programmer seems useful in creating a self-directed path of education to supplement and outpace a formal path of education. Here and elsewhere, his "down and dirty" "here's what you need to know" attitude is very helpful. I appreciate it.

Many of Parker's posts are opinionated in some way, which is fine, but like I said, he doesn't do a great job establishing his credibility, so it works against him often. At times, the way he expresses and supports his opinion actually undermines his credibility, IMO.

For example, Parker's argument to stop using privates is a little thin. He may be totally right, but I'm saying he's not convincing. The argument basically boils down to some underlying frustration he has with someone or some people he is working for/with whose use of privates makes his job harder. He slips into an oppositional first person voice (e.g. "So let your interfaces handle communication and stop trying to force good developers from solve problems with your solutions.") He kind of lost credibility there IMO.

And, here's why. He doesn't handle this thinly veiled frustration with a candid sense of humor, poking fun at his bitterness. It's not healthy. You get that reflective darkish humor in other blogs by professionals who are opening up the "human side" of programming, and it lends to enjoyability and trust.

Parker addresses programmer burnout in more than one post, and I think I know why. That said, he seems to have a genuine concern for programmer burnout, perhaps due to his personal experience with a coworker "losing it."

He does have a sense of humor though. Uses religious parody to poke fun at programming dogmas and crises.

Visually and audibly, the blog is uninteresting.

Now, here's a note on English. I’m really going to show my underbelly here. It’s one thing to have typos and missed punctuation etc. And, it’s one thing to have a casual or culturally specific style. But, it’s quite another thing to have a sloppy style. Parker has a sloppy style that I probably shouldn’t judge too harshly, but I do. I can’t help it.

I don’t like it, because it shows a character of carelessness, and it usually accompanies a similar carelessness in reasoning. You find that carelessness resonating in his shoddy arguments when his opinion is stronger than his expertise warrants. If he reads, he probably doesn't pay attention, or he reads others with similar sloppy habits. I don't have respect for it. Maybe it is cultural. I don’t like that culture then. Is that bad to say? Can you tell I am a copy editor who has to deal with this kind of thing all day?

Blog review: "Maya's Programming Blog: An attempt at a proper programming blog"

Fair Use?"Maya’s Programming Blog: An attempt at a proper programming blog” is all business. Yet, the author Maya Posch herself presents an incredible degree of human intersectionality through the context of the blog.

Posts are almost exclusively about the technical details of the projects Posch has worked on, a marked difference from other programming blogs I have seen so far.

Working out of The Netherlands, her native country, Posch focuses mostly on graphics and gaming, her most recent post being on using Qt to create an accessible app for a blind client.

She is not very prolific on this blog, but obviously quite knowledgeable.

Amazingly, with only two (well, three) posts for 2012, Posch reported 30k views?! Cross traffic? This blog merits reading in and of itself, and it is linked to her other blogs which I think draw more interest than this wordpress blog of hers.

Posch's main site immediately identifies her as being born intersexed. Here, she introduces associated political and personal struggles. Though she clearly identifies as a woman, she says she was born a hermaphrodite.

She is engaged in a campaign to get Dutch surgeons to perform reconstructive surgery which she says would make her existing sex organs more functional. She has not been able to get the surgeons to perform the surgery, she says, due to an oppressive culture in The Netherlands.

Along with the programming blog and her sort of main PR page, Posch maintains an extremely personal blog and vlog, and a blog called “Jinzou Ningen – Artificial Human Project.”

Through an amateur exploration of reverse engineering of the human body, the artificial human blog shows the intersection of her interests in science and engineering with her personal and political struggles as an intersexed individual. How fascinatingly cyborgian post-structural!

I wonder how much of the serious tone and focus of the programming blog has to do with Posch’s target statuses as a woman and as an intersexed individual. I wonder if she feels like she needs to present herself as more competent to be perceived as equally competent in a masculine-privileged, binary-privileged world and industry.

This experience might be revealed through the ambivalence of the blog title's tag line where "proper" both asserts competence within and compliance with programming discourse, while the doubting "attempt" undermines that assertion either as self-doubt or as a critique of the system.

Looking at her other blogs, she maintains a similarly intense tone and focus, so maybe that’s just how she is. But, that begs the question, doesn’t it?

Blog review: "Coding Horror: programming and human factors"

As is appropriate for a blogger, I will periodically review other blogs of a similar focus. Here is the first of those reviews. coding-horror-official-logo-smallOne of the most-read and most-recommended programming blogs out there is Jeff Atwood's "Coding Horror: programming and human factors."

Atwood says he started the blog in 2004 to track software development as he thinks about it. The blog offers keen insight into the actual working world of programming at a professional level that is not restricted to any one programming language or technology. As the title suggests, he illuminates a human side of programming.

He writes, “Computers are fascinating machines, but they're mostly a reflection of the people using them. In the art of software development, studying code isn't enough; you have to study the people behind the software, too.”

Atwood founded Stack Overflow, a programmer employment resource. He is currently developing Discourse, a forum platform. So, true to the purpose of the blog, a lot of the entries have to do with these projects.

As a novice to the field, I find the integrated discourse of an expert both challenging and useful. Kind of like reading literary criticism as an undergraduate, I find the language is rich with contextualized learning opportunities. That is, there is a lot I don’t really understand, but the unfamiliar becomes familiar and understandable through repeated used by masters of the discourse (and a little google-grease as desired).

The subject matter is given life and texture in a social context. You find a substance lending to a deeper quality of understanding—both through the interactive nature of the conversation the author engages in, and, in the case of Coding Horror, through the human element of the subject matter itself.

It is kind of like learning a language through full immersion in the culture. Rather than encountering the basics explicitly in limited contexts, reading this blog, you immediately encounter what may be the most complex and relevant concepts and issues of the field.

All that said, if I had absolutely zero programming knowledge, the blog would be out of reach to me.

One noteworthy feature of the blog from a blogging standpoint is its use of self-referential hyperlinking. In general, I likey, and I can appreciate the intrigue and quirk of Atwood's vague, yet telling, in-stride hyperlink phrasing (e.g. He hyperlinks the phrase “this ugly American programmer.”). But, when I can’t really tell what most of the links lead to, I start to ignore them. He is probably fine with that, and I suppose that, from time to time, a turn of phrase blued into a new context all its own will still strike my fancy.

The entries are a bit long, but they warrant it. He definitely doesn’t seem to be creating too much filler. [I don't feel qualified to rate this blog at this time.]