Recently I've been taking a closer look at LINQ, or Language-Integrated Query -- a set of C# and Visual Basic features that let you write SQL-like queries against data structures such as arrays or hashtables. I like how it lets you replace loops with just a line or two of code. I will illustrate it here with two simple exercises.
On March 19, 2008 Richard Dawkins, the famous evolutionary biologist and popularizer of science, gave a public lecture at the University of Texas in Austin; it was preceded by a reception hosted by the Center of Inquiry Austin. Though I didn't have a chance to exchange more than a few sentences with Dawkins at the reception, I formed some kind of impression of him as a person. For example, he speaks in perfect phrases and is hip on technology. (Though I bet he would never use the word "hip". :-)) His lecture topics I found familiar, even though I haven't read his books where he expounds on them. I guess I've absorbed his ideas by osmosis. The questions the audience asked revolved around whether atheists should adopt an in-your-face or a conciliatory tone with general public; some of the questions were more unusual. (Would you ask a well-known skeptic to support his reasoning with astrology? :-)) Then someone asked what Dawkins thinks of transhumanist visions. Finally, a concept he wanted us to take away from this lecture, if it was the only thing we would take away: why evolution is NOT equal to random chance.
I was baffled to discover that it's actually not at all easy to reverse the rows of a spreadsheet in Excel. Extensive Googling lead me to some advanced commands where you really had to Know What You're Doing. Since I don't usually Know What I'm Doing in Excel, I wrote a Powershell script to do the same thing. Actually, this script takes any file, reverses it, and writes it to a different file.
Recently I gave a lightning talk, Introduction to Powershell, at All Girl Hack Night, an Austin gathering of women developers. Here are my slides for it. It introduces some nifty features of Powershell by examining a simple use case.
Passing arguments to a Powershell script caused me to pull my hair out... umm, scratch my head, lately. As with most technical problems, it appeared chaotic and intractable at first, and drew me into a black hole of spiraling confusion, where bugs mask other bugs; however, once I found a solution and tried to explain it to myself step-by-step, everything appeared orderly, even trivial. So now I don't even know why I'm writing this down. Actually, I do. It's so as not to go into the same black hole when I have to figure it again months or years from now.
Powershell is powerful. But if you forget that it's a scripting language, and approach it as a programming language, you (like me) may be thrown off, time and time again, by its certain... literalness.
I have a script that reads Powershell variable / value pairs from a file we shall call foo.conf . In other words, foo.conf looks like this:
$var1 = "bla1"
$var2 = "bla2"
$var3 = "bla3"
After reading the contents of this file, it needs to execute those variable assignments. It does it all in this line:
What armchair "scientists" get out of reading popular science magazines or websites? Mostly they get excited about "out there" speculation that gets batted on wired.com or io9.com. Holographic universe. Preferred direction in the universe.
What a real astrophysicist's answer to "what do you think about this?" is: nothing.
There were presentations on everything Drupal-related, from module development to theming, to security, usability, or building large, yet scalable enterprise websites with Drupal. Each of the two days opened with a keynote speech that drew an audience over 300 people into the room. Organizer Todd Nienkirk greeted us with the news that the number of attendees made Drupal Camp Austin the second largest Drupal Camp ever; an hour later, a few last-minute registrations pushed us up to #1.
10 people were at the discussion. Some have heard more about the concept of the Singularity, others less. Moderator Mike Ignatowski described two common Singularity scenarios. They are:
-- "hard takeoff": a computer develops human-level AI, and then within a few hours doubles, quadruples it, etc., and very soon becomes intelligent beyond our comprehension and takes over the world;
-- "soft takeoff" -- technological advance is gradual enough so any given human does not lose comprehension of what's happening; however, in a few hundreds of years the society and technology nonetheless changes so much that it's incomprehensible to a modern-day human.
We examined some of those scenarios and objections to them.
The most entertaining event in the Social Media Camp (July 30, 2008) was the Half-Baked game. In this game, people are randomly assigned into 6 teams. The goal of each team is to come up with a startup idea and present its business plan to the judges. This being a Social Media Camp, one of the requirements is that the social media aspect should be built into the business plan.
It was fascinating to see how aspiring internet entrepreneurs think. It left me shaking my head: so this is how internet bubbles form! These are the kind of minds that gave us stuff like Pets.com in 2000. But it would be unfair to reach sweeping conclusions based on what I saw. 20 minutes is hardly enough time to come up with a business plan that's both original and viable. It was only a game after all.
First, the audience comes up with 50 random words, and those words are written on the whiteboard. Each team needs to pick any two words that will make up their company's name. Then they have 20 minutes to come up with a tag line and a business plan. (Preferrably also a logo -- the room was full of people with computers, and I bet a lot of them, like me, had Photoshop).
Here are the words suggested by the audience. These were the judges' criteria for evaluating each business plan. Here are the startup concepts the teams came up with: Buzz Squad -- like GPS for drinking; Porn Sucks -- promoting positive porn to save sex workers; Beer Buzz -- good beer, good times; Time Pirates -- find a hidden treasure in your calendar; Green Ninjas -- it's easy buying green; Love Cookies -- customizable cookies.
Here is my blog post on other events that took place at the Social Media Camp.