Archive for January, 2010

One CSS resource…

Thursday, January 28th, 2010

I used lots of different web sites to learn CSS when I was a kid. One of my favorites is It has stuff for HTML and CSS, and I vaguely remember some easy Javascript tutorials. If you can get past the bright yellow, slightly “girly” layout, it’s really good.
If I get the time, I might be able to put up an HTML and CSS tutorial, but I’m kind of overloaded with C++ right now… I’ll see what I can do.

EDIT: I’ll just get started with some simple stuff now.
How To Get Started with HTML:
Open up a text editor like Notepad or TextEdit. Type the following:


Most of the stuff you’re going to do is going to be placed between the two body tags. (A tag is one of the things between the angle-brackets.) Save this as FILENAME.html and you’re ready to go! Also, please nest your tags. It makes people like me happy 🙂
If you want to try your hand at Javascript, you’ll be doing most of that in the head tags. If you want to change what it says at the top of your browser window (in that bar which is probably near the buttons you press to close or minimize the browser window), simply put that text within the two title tags. There’s a limit before it gets cut off with an ellipsis, but it’s a pretty good amount of space to write the name of your site or something like that.

How To Add A Link with HTML:

How To Add An Image with HTML:
In order to use this, you must upload your image to the internet.

How To Change Your Background To A Solid Color with HTML:
<body bgcolor=”COLOR”>
Most basic colors, like blue, red, green, etc. will work with this. In order to get really cool background colors, you’ll have to do a Google search for a hexadecimal chart and copy the code for the color you want.

How To Change Your Font Color with HTML:
…I’m working on adding more.

Algorithms on the Brain

Tuesday, January 26th, 2010

I enjoyed reading “Augmenting Human Intellect: A Conceptual Framework” by Doug Engelbart. It allowed me to think about and incorporate thoughts from both of my majors: Computer Science and a very linguistics-based Cognitive Science. The first thing that came to mind, and the one thing that stayed there for the rest of the article, was the idea of an algorithm.
Computer science isn’t so much the study of computers–their hardware and how to answer weird technical questions for friends–but more the study of algorithms. What’s an algorithm? Well, there’s an old programming joke that I think is really funny because this sort of thing actually caught my eye when I was a little kid:

Why couldn’t the computer programmer get out of the shower?
The shampoo bottle said “Lather, rinse, repeat.”

I’ve noticed recently that “lather, rinse, repeat” has been replaced with “lather, rinse, repeat as necessary,” which is much more appropriate so that computer scientists don’t get stuck in a very sudsy infinite loop. Both of the shampoo instructions (or  basically any set of instructions that can be carried out in a finite number of steps) are examples of algorithms. Have you ever baked a cake? Done long division? Algorithms are everywhere, and you don’t need to be a CS major (or even somewhat technically inclined)  to see and use them.
The funny thing about algorithms is that even the most complex of programs is built from most of the stuff you’d learn in an introductory programming course. Sure, there are plenty of other awesome things to keep you coming back for more, but you can do more than you think just by understanding a few basic steps that you can weave into a complex algorithm.
I’ve always been rather quick with calculating most derivatives, but my Linear Algebra class recently introduced me to a program called Derive 6. Derive does all sorts of calculations at speeds even the most accomplished human mathematician could never reach.  It can even find integrals that I’d struggle to calculate in a blink of an eye. I’ve never viewed the source code of Derive, but I’m almost certain that it calculates derivatives in a similar way that I do.
I also remember struggling with a particular program in my Intro to Computer Science class, the first time I’d learned programming from an actual teacher instead of scouring source codes by my own lesson plan. For some reason, I had a hard time figuring out how to complete a program that asked the user what time their class started and how long their commute would take in order to tell them what time to leave. (Yes, I still get a few good laughs at how many things tripped me up back then…and how many of those same mistakes I still make now.) I visited my professor in his office for a bit of help, and he asked me to do the calculations myself. He’d rattle off a class time and commute time, and I tried to respond back with the correct departure time as quickly as I could. After a few rounds of back-and-forth, he stopped and told me that I didn’t need help because I already knew how to do the program in my head. It was just a matter of figuring out how I know how to do it. I was absolutely fascinated by the idea that I have to know how to do something myself in order to tell a computer to do it, and I really do think that one visit helped me realize that I want to study cognition just as much as I want to study algorithms.
The article also discussed language and cognition, which was very interesting for me to read.
I often think of my own thoughts and actions as a bunch of algorithms. It’s actually pretty interesting to think that, as the article mentioned, computers are frequently used in linguistics and cognitive science research in order to model human thought. When we’re talking, for example, we aren’t usually thinking about syntax. We’re thinking about the conversation itself. I’m not consciously thinking about the grammatical structure of each of the sentences that I’m typing as I type them. If I did, I certainly wouldn’t be able to type as quickly as I usually do. I play with my sentences, each word’s morphemes, syntactic ambiguities (I’ve found a few in just this post and left them–can you find them?), and even the different sounds I’d have to make in order to pronounce them, but that’s only after they’re already typed out. Nevertheless, I’m not completely conscious of every linguistic feature of my language as it slides from my tongue or tap-dances from my keyboard. Computers are useful tools that allow us to model these subconscious algorithms of language processing and see just how valid our theories are. Computers don’t have dialects. They don’t have a register that changes depending on the social setting. Computers really don’t make mistakes in their algorithms unless someone else does first–there are no computer slips-of-the-tongue or mathematical errors.
The article also mentioned the Whorf hypothesis, also known as the Sapir-Whorf hypothesis. I actually had a brief discussion with a friend and fellow linguist on this about a week ago. She loaned me a book called “The Language Instinct” by Steven Pinker, which is supposed to be a pretty awesome book for someone who likes the stuff I like. I haven’t had time to start reading it yet, but she told me that it had a chapter that argued against this particular hypothesis. I don’t feel that I’m knowledgeable enough just yet for me to say whether I agree or disagree with the Sapir-Whorf hypothesis, but just by knowing its basics I feel that I mostly disagree with the idea that “the world view of a culture is limited by the structure of the language which that culture uses.” Perhaps I’ll make a follow-up post after I’ve read Pinker’s views in “The Language Instinct” and talk a bit more about it.

My Progress So Far…

Friday, January 22nd, 2010

Setting up my domain and creating my blog was rather uneventful. My biggest problem was actually forgetting my passwords. I use a different password for each element of my web presence (and everything else on the computer, which includes my two blog accounts, three or four other web sites that I maintain, four e-mail accounts (one for school, a “sacrifice” account, my personal account, and one for one of my web sites), a couple of forum accounts, my Facebook, and even a virtual pet site that I haven’t let go of), and I forget them constantly. I also had an issue with CIC “clipping” my long username a bit. I had to go back and check the confirmation e-mail that I received in order to resolve the problem. All in all, however, things went smoothly and I just referred to the instructions on the course page whenever I needed help.
I chose the domain name for two reasons. It’s part of the title of one of my blogs, and it also references my double major. As you may already know, I’m a Computer Science and Cognitive Science/Linguistics (At this point, my special major is almost certainly going to be called Cognitive Science, but it relies heavily on linguistics courses to fill the requirements. It also includes psychology classes, Latin, my favorite natural language and original reason I came to UMW, and CPSC 415, Artificial Intelligence.) major.  A “logophile” is a person who loves words. My high school Latin teacher called me “The Logophile” due to my passion for and apparently innate skill with morphology and grammar; it caught on with my friends, who swore that it meant “word nerd.” I was “The Logophile” throughout my high school years, and I remain one as I study language, one of our most fascinating capabilities.  As far as the “loopy” goes, I’m absolutely insane. Nah, I’m just kidding (maybe)… If you’ve ever dabbled in basic computer programming, chances are you’ve learned a thing or two about loops. Did you know that most programs spend about 90% of their execution time in loops? There’s your fun fact for the day. “Loopy” was the first computer science-y term I could thing of that started with an L and didn’t sound completely ridiculous, and loops are just so much fun anyway 🙂
I haven’t started to decorate my blog page yet, but I’m really excited to get started with that. I take pride in creating beautiful things with a computer, and this project will hopefully be no exception. I’ll continue to edit this post as I make progress.


Monday, January 18th, 2010

When we had our Skype interview with Gardner Campbell, I was intrigued by the description of computers as “instruments whose music is ideas.” I’ve been fascinated with computers since the day my parents got our first family computer, since the day I started teaching myself Javascript, and even now, as a Computer Science major.  I got into web design (which led me to simple programming) when I was in 6th grade, and I thought it was absolutely amazing that it was possible for me to share my own writing, images, and ideas with hundreds of other people who just happened to own a computer with an internet connection. Even to this day, I love sharing my stories and creative work online for others to see and hopefully enjoy.
The Dynabook–our laptops–from “Personal Dynamic Media” by Alan Kay and Adele Goldberg makes it even easier to carry our creative medium with us. I carry at least one of my computers with me almost everywhere I go, much as a good artist or writer keeps a tablet and paper in his pocket in preparation for a spark of genius (or something like that).
I love the idea presented in Gardner Campbell’s article, “A Personal Cyberinfrastructure.” Everyone in the computer science department has space on Paprika (or one of our other spicy servers), and it is up to the individual to choose how to use it.  I’ve dabbled in some web design when I’ve been able to find the time, but wouldn’t it be fantastic if we were all able to have our own domains? We could attend seminars in order to further our skills and allow us to pursue our own creative endeavors.  It’s not only helpful for building a portfolio and maintaining a resume for our future careers, but it’s also a lot of fun to blog and experiment with the fun of designing our very own web pages.