Scattered Thoughts
Unknown, 2011-09-11Computer Science Education
The gist of this train of thought (and it's a fricking freight train) is that computer science education should be mandatory much earlier on, in the same way that maths is. There are many arguments for this, the most powerful argument being that while computers are now ubiquitous, many people still view them as magic, aka. "sufficiently advanced technology". Another powerful argument is that, like literature and mathematics and science, computer science teaches a different way of thinking. If science is the study of why (things are the way they are) and mathematics the study of what (is the relationship between structures and its implications), then computer science is the study of how (to achieve a specific effect through many small steps). I sincerely think that computer science is the study of process, of the "how" of things; programs are merely a formal language for describe how to change things from one state to another. Since this is about computer science education, I also think that computer science is relatively easy to teach, precisely because computers are everywhere. Students don't need to wait for the teacher's validation - if their program works, it works! On a negative note, a recent paper suggests that not everyone can become good programmers...
Mike Rowe's Testimony to Congress (transcript)
I heard about this from the Blogosaur, and another friend of mine agrees with her, but I have a slightly different opinion to share. I don't disagree that plumbers, welders, and other "dirty jobs" and skilled laborers are as necessary now as they are before, or that they are worthy of respect. What I disagree with is Rowe's suggestion that hard work is no longer valued, or the more blatant assertion that technology does not require hard work. Programmers at start-ups work no less hard than the skilled laborers of yesteryear, and these are the same people who would be fascinated by metalwork and paved roads and suspension bridges 40 years ago. Rowe talks of people who don't know how to fix things, who are afraid to get dirty; how many computer owners know how to fix their computer? Do computer technicians get any more face time with their customers than plumbers? Market economics suggests that as wages for skilled labor increase, this gap will be filled. It might not be filled by Americans, but more likely, people will be more willing to go into those jobs. If plumbers really are as essential to our society as psychiatrist, is it so bad an idea that we should pay more for the latter? Isn't that, in itself, a reflection of our culture's valuation of plumbers?
PS. This goes nicely with my thoughts.
Finite and Infinite Games (wikipedia)
I read this on a friend's suggestion a few years ago. I recently found my notes for it, reported back to my friend, and have since thought a lot more about its subject. The big take away for me is that you can only lose a game if you are playing a game, and you can only play a game if you willingly join it. A corollary is that if you're losing a game, you can always decide to play a larger game instead - until you play the largest game of all (aka. life), in which no one can lose. It supports something I've come to firmly believe: if you don't like something, either change it or change yourself. It also fits into the "Ha Ha Only Serious" hacker mindset, as well as why I derailed my philosophy class onto unicorns for 15 minutes. But that's a different story.
Teach For America (wikipedia)
Some of you may know that I had planned on Teach For America as my backup in case I wasn't accepted into any grad schools. I abandoned my application when I was accepted into Michigan, but I also did a little more research, primarily by reading Donna Foote's Relentless Pursuit. Hindsight is 20/20 and it sounds like sour grapes, but I have philosophical disagreements with the TFA philosophy. While their goal of education equality is commendable, I don't think having a bunch of recent graduates teaching for two years is the best way to do it. This approach is inherently transient, despite the stated goal of hoping TFA fellows will go on to impact education at the policy level. Another stated assumption, that good leaders will be good teachers, may also be unjustified, and that's without taking into account whether the people they hire are good leaders. I personally believe that to become a good teacher one must first know and love the subject, which is more than I can say for most graduates. That applicants to the program has surged in recent years provides additional evidence that people are not seeing it as an opportunity to solve the education problem, but merely as a sentence on their resume (if, of course, they make it through the program). Undoubtedly, my views would be different if I did go through the program, but I would like to think that at least I've done enough teaching outside of TFA to know that I like it.
Circular Logic - "glow"
Unknown, 2011-04-04Consider the word "glow." If you replace each letter with its counterpart in a mirror alphabet you will get the legitimate word "told." What other words exhibit this same property?
So I started wrote a little script in Python:
#!/usr/bin/env python3
import re
if __name__ == "__main__":
src = open("/usr/share/dict/cracklib-small", "r")
words = set()
for word in src:
word = word.strip()
if len(word) == 1 or re.match('[^a-z]', word):
continue
words.add(word)
src.close()
for word in words:
mirror = "".join(chr(219-ord(c)) for c in word)
if mirror in words:
print(word, mirror)
This script uses the computer's dictionary file (which I've used before), mutates the letters, then checks if the result is in the dictionary. The script outputs:
all zoo ark zip art zig blip york de wv dr wi drib wiry elm von era viz err vii fir uri fm un ge tv girl trio girt trig glib tory glow told gm tn gs th hob sly hold slow holt slog holy slob horn slim ir ri irk rip iv re ivy reb levi over low old lug oft md nw me nv mix nrc mn nm mrs nih ms nh nh ms nih mrs nm mn nrc mix nv me nw md oft lug old low over levi re iv reb ivy ri ir rip irk slim horn slob holy slog holt slow hold sly hob th gs tn gm told glow tory glib trig girt trio girl tv ge un fm uri fir vii err viz era von elm wi dr wiry drib wv de york blip zig art zip ark zoo all
As a sanity check, notice that "glow" does indeed turn into "told" (and vice versa).
Problem solved in 10 minutes.
PS. I would have commented on the post, but I have no clue what my NYTimes password is.
Herstory
Unknown, 2011-03-23I read a book recently (or maybe it was the internet; I don't remember) where the author talked about how history has been male dominated and asked the question, "what happened to herstory?" Well, if you want to play that game...
I used a short regex to find all the words in my computer's dictionary file which started with "his", "man", and "male". I chose a few to systematically replace with "her", "woman", and "female", with slight hand-tuned adjustments for spelling. Here are some particularly funny ones (with commentary).
NOTE: Before you yell at me to say that not all feminists do things as pointless as wordplay, I know. I'm using the word "feminist" (and related terms) below to refer to those who do play these games.
- femalefactor - female criminals; also, the critical element behind every successful man
- femalevolent - things like the silent treatment; also, witches
- herpanic - what Spanish women would do if they found out about this change
- herred - past tense of the sound female snakes make
- womanager - your female boss
- womanatee - another name for baby tees
- womandrake - a shapely plant
- womaneuver - the special way females handle vehicles
- womangled - what every women's hair is when they wake up
- womanhole - *ahem*
- womania - what Freud and folk psychology called "hysteria" (hersteria?)
- womanifold - laundry; not to be confused with "womanifolds"
- womanipulate - actually, this is the etymology of the word "manipulate"
- womanservant - subject of a lot of male fantasy
- womanslaughter - it seems like the unmodified version fits the feminist movement better
We can, of course, go further. See if you can identify the original word for these:
- abdowomen - the medical name for a pregnant belly
- accompaniwoment - another word for escort
- antidisestablishwomentarianism - the longest word in the English language
- Archeredes - a virtually-unknown female ancient Greek mathematician
- ewomancipation - the process of women obtaining political rights and equality under the law
- hashersh - why feminism feels good
- homomorphersm - another word for lesbianism
- husbgyny - the domestication of women
- hywoman - a membrane around the penis which breaks on first sexual intercourse
- multidiwomensional - the idea that women cannot be rated on a single scale
- portwomanteau - a famous species of wine grape
- rowomantics - the behaviors of the female crew team
- serapher - another word for angel
- whersical - this list
- womenstruate - actually, I have no clue what this means
I'll all for feminism, but really: there are more important things to talk about than sewomantics. Also, study etymology.
PS. Also see the ad fenimam logical fallacy.
Twitter Wordle
Unknown, 2011-03-05Some Trends
Unknown, 2011-02-12The x-axis shows time; each point represents the average over 6 months, taking the first/later half of the year. The y-value is the percentage of entries over this period which contains this word (or variants thereof; for example, the Twitter plot also includes the word "tweet"). This is all generated programmatically - I extended my journal script to calculate the percentage of entries containing given terms and output it in table (space-separated value) form, which gnuplot then reads. Since the data is highly specific, my gnuplot is also particular to this application. I abused gnuplot's ability to ignore non-existent columns and left it using 5 columns. The source is below:
#!/usr/bin/env gnuplot
reset
set terminal png
set title "Prevalence of Term over Time" font "Arial,16"
set border 3
set xdata time
set timefmt "%Y-%m"
set format x "%Y"
set xlabel "Date" font "Arial,12"
set xtics nomirror rotate by -45
set mxtics 0
set ylabel "Percent Entries with Term" font "Arial,12"
set yrange [0:100]
set ytics 10 nomirror
set key autotitles columnheader enhanced reverse outside font "Arial,12"
set style data lines # linewidth 2 ?
set grid
# plot [raw_data] using [x-col]:[y-col] [attributes]...
plot "data.csv" using 1:2 linewidth 2, \
"" using 1:3 linewidth 2, \
"" using 1:4 linewidth 2, \
"" using 1:5 linewidth 2, \
"" using 1:6 linewidth 2, \
"" using 1:7 linewidth 2, \
"" using 1:8 linewidth 2
In the future I'm considering writing a script that generates gnuplot scripts. It'll be easier than remember all these ugly commands.
And here are the resulting plots. The first one is on my use of online services. You can clearly tell when I started using Reddit and how quickly it dominated my life. The growth of Twitter is much slower comparatively. Facebook is huge mostly because it's my main source of how other people are doing.
Next are some hobbies of mine, at least those I can think of off the top of my head. It's obvious when I started climbing more often (and therefore better); it's also clear that when I teach at CTY, it becomes a big part of my life. As a computer science major and now a grad student, I clearly code more than the chart shows; one could consider that as habituation, I guess.
Here's another one, on academic topics. These were all topics I considered studying in college. I eventually majored in computer science and got a certificate in engineering design, but took extra classes in all these subjects. I think it's neat that these topics has all been mentioned more often over time - that I'm still into the same subjects I was in high school and college... except design, which I haven't done any of since junior year.
I would love to do more of these, but I can't think of anymore sets of terms to compare. Comment if you can.
Personal Responsibility
Unknown, 2011-02-02Author's note: I know this is pretty bad writing, but I've been struggling to put this idea down in words and this is the best I could do.
On the bus today I overheard a conversation about someone only taking 12 credits, then saying "but it's not my fault I'm only taking 12 credits." That got me angry, I've been thinking about the idea of personal responsibility for the past month - and trying to write about it , unsuccessfully - and that kind of excuse is the last thing I want to hear. The main idea is that people are responsible for themselves no matter the circumstance. In psychology we recently read Neil Postman, who wrote that TV and newspaper are destroying people's capacity to understand longer pieces of language, which was more common before when people listed to 7 hour speeches and debates (which is also where Lincoln-Douglas debates came from). But it's not the case that books don't exist anymore, just that TV and newspaper, with its short, out-of-global-context pieces, are much more attention grabbing and much less attention requiring. If people want they can still choose to read, but they don't. To blame the media for this is to take the responsibility away from the individual, over what the individual could control but chose not to. Either you accept you made the choice and live with it, or you get out.. To say you didn't have the choice is to say you're not in charge of your life - and in that case, you deserve all the misery you feel.
I don't know when I acquired this sense of individual responsibility - there are traces of my high school existentialism class in this - but recent news events made me think about it more often. There was the WikiLeaks diplomatic cable leak, where I believe the intelligence officer Bradley Manning should be court-martialed but that WikiLeaks is crime free The justification is that Manning signed a contract/swore an oath to keep data confidential, and leaking the cable constitutes violating that contract and taking back his word. WikiLeaks made no such promise, and their actions are at worst inappropriate or distasteful., but in no way illegal. There was the case of two people who used a bug in casino video poker machines and used it to win jackpots. They are being sued by the casino for fraud - but, I assume, the developers are not suffering any consequences. This case is particularly egregious because at a casino you're expected to try and win. You may be thrown out or barred for counting cards- again, legal because casinos are private property (although look at Atlantic City) - but courting cards is not against the law. How is exploiting a bug in video poker any different? It is the developer of the machine who are ultimately responsible. If there was no way to load poker in the house's favor, casino's wouldn't be playing it, except in this case the poker machine is faulty.
There's the case of a stalker using information from Facebook to guess people's security questions on email accounts, then blackmailing them with explicit photos from there. I'm not saying the stalker is guilt free, for he is in violation of the law- and he chose to blackmail these people. But the victims are also naive to use such easily answerable security questions, not to mention taking and keeping explicit photos of themselves.
In my mind I extend this responsibility of choice to a person's entire life course. To think that people didn't know dropping out of school will result in a hard life is absurd. It's not that dropouts always end up nowhere - look at Bill Gates and Steve Jobs - but its that people chose that course and later complain about it, or blame the circumstances for their suffering without considering their complicity in ending there in the first place. There are things we have no control over - one could be born with AIDS, or into war, or be abused - and even then the circumstance should not be blamed for all the failures of the victim. Being forced to immigrate by your parents due to bankruptcy does not justify spending romance novels all day and only ever working server positions.
Let me be clear on this part, in case you haven't gotten it yet. I don't think it's bad to read novels all day and serve as a waitress for the rest of your life. If that has been your greatest desire since kindergarten, I think it's wonderful you have achieved your ultimate - if perhaps small - life goal. My problem is when you find that situation is not to your liking, and your refuse to accept responsibility for being in
that situation nor take initiative in changing it. It's your fucking life, fucking live up to it.
PS. I am aware that there are gray areas in the above philosophy. There are circumstances that, although preventable, would have required inhuman foresight. Flood insurance may have made life easier, but if you live where floods are unlikely, then it's potentially excusable. It comes down to what "common sense" dictates, which is debatable. But the big idea here is not to prevent all negative experiences, but to not use that as a crutch preventing happiness.
PPS. Related reading: The Rise of the New Global Elite.
Sooner apparently means later
Unknown, 2010-12-20In the mean time, here's a fun charge on spring simulator. It uses a naive force-based algorithm to do the drawing. Those among you with a sharp eye will have noticed I named this simulation "Feynman", named after of course the famous physicist Richard Feynman. In his biography - James Gleick's Genius - the author describes how Feynman perceives equations (he has grapheme-color synesthesia specific to mathematical equations. I have written about the general form before). I quote from the book:
In high school he had not solved Euclidean geometry problems by tracking proofs through a logical sequence, step by step. He had manipulated the diagrams in his mind: he anchored some points and let others float, imagined some lines as stiff rods and others as stretchable bands, and let the shapes slide until he could see what the result must be. These mental constructs flowed more freely than any real apparatus could. now, having assimilated a corpus of physical knowledge and mathematical technique, Feynman worked the same way. The lines and vertices floating in the space of his mind now stood for complex symbols and operators. They had a recursive depth; he could focus on them and expand them in more complex expressions, made up of more complex expressions still. He could slide them and rearrange them, anchor fixed points and stretch the space in which they were embedded. Some mental operations required shifts in the frame of reference, reorientation in space and time. The perspective would change form motionlessness to steady motion to acceleration. It was said of Feynman that he had an extraordinary physical intuition, but that alone did not account for his analytic power. He melded together a sense of forces with his knowledge of the algebraic operations that represented them. The calculus, the symbols, the operators had for him almost as tangible a reality as the physical quantities on which they worked. Just as some people see numerals in color in their mind's eye, Feynman associated colors with the abstract variables of the formulas he understood so intimately. "As I'm talking," he once said, " I see vague pictures of Bessel functions from Janke and Emde's book, with light tan j's, slightly violet-bluish n's, and dark brown x's flying around. And I wonder what the hell it must look like to the students.
The idea behind this project was to make an interactive mind mapping application, where no hierarchy is enforced or even implied - unlike most mind mapping software such as XMind. This means a free-form graph layout application. To get the recursive depth, however, each node will also be a summary representation of another mind map/graph, so the user can drill down indefinitely to find more and more detail. What I've coded so far is only a test of the graph layout; I will eventually put in the functionality to create nodes and label and expand them.
In the mean time, a fun emergent game is to try and drag the nodes such that the graph is planar. Just refresh the page to get a new randomly generated graph.


