Wednesday, November 14, 2007

Tonight's Aritcle: “Band of Geeks” - or - “With honors: Smart kid program revealed”

Yesterday a friend pointed out an article about the UAlbany Honors College in the Albany Student Press, the university student newspaper. Before then I'd never read an article from the ASP, and now I wish it had stayed that way. This morning I took out my pen and corrected everything I saw in the article. I'll scan it tonight and add links so you can see for yourself.

As the title of this post alludes to, I'm not sure how to refer to this article. It's split over two pages; the first section is titled “Band of geeks”, the second is “With honors: Smart kid program revealed”. The capitalization is exactly as printed.

Aside from the issue of split personalities, I'm rather confused by the choice of titles. The first is just offensive. It's not that I mind being called a geek (I'm a computer science and math major!), but I'm sure others would object to the label. For example, I would not necessarily consider an English major in the Honors College to be a geek.

The second title is more perplexing. It would have made sense in late summer to early fall of 2006, when the Honors College accepted its first class, but it's been around for almost a year and a half now -- hardly “revealed”.

The body of the article is hardly better than its titles. In the second paragraph I saw this: “The Honor's [sic] College was first conceived in 2003, [sic] by the College of Arts and Sciences...”

The correct form is Honors College. The College is not possessed by Honor, but rather Honors is an attributive noun modifying College. The author does this elsewhere in the article, but gets it right most of the time (which almost screams that she didn't proofread her work).

In the same quotation, that comma does not belong. In fact, it seems that correct usage of commas eludes this author; I made several comma-related corrections throughout the article.

Another fun paragraph occurs toward the end: “He [Prof. Haugaard] claimed, unfortunately due to resource limitations, only a small amount of students can be admitted each year.”

I highly doubt that Prof. Haugaard claimed anything. He's the head of the Honors College for crying out loud! If anyone is a reliable source, he is.

Also, the sentence is poorly worded. I know what the author intended to say, but it reads as though it is unfortunate that limited resources is the reason a small amount of students is admitted, and that it would be more fortunate if the reason were something else. I might change it to:

“He claimed that, due to unfortunate resource limitations, only a small amount of students can be admitted each year.”

Finally, there's the list of Honors College advantages that accompanies the article:
The smart kids get all the breaks.
The Honors College Advantedge [sic]:
  1. Advance Registration
  2. Living with classmates
  3. Weekly 7-page papers
  4. Senior year thesis
  5. Wedgies (if you're lucky)
  6. Dinner dance lessons and museum trips
The spelling error is bad. My spell-check catches it, and surely the editor reads these articles before sending them to the presses. However, I'm more bothered by items 3, 4, and 5. What idiot wrote this list? These are neither advantages nor funny. I find item 5 offensive. Finally, who decided that the “advantedges” in item 6 should be grouped? Why not add an item 7?

This is not everything I wrote, but these are some of the fun ones. And yes, the irony that it's the Honors College article which is so poorly written is not lost on me. I don't know if the author is a member of the Honors College herself, and after reading this article I sincerely hope not. I would have expected to read this kind of article in my old middle school or high school newspapers, but I suppose I expect a bit more out of a university newspaper.

Works Cited


Brandecker, Maria. "Band of geeks". Albany Student Press. 12 Nov. 2007. 1, 3.

Labels:

Sunday, April 15, 2007

Why do I dislike C++?

Let me count the ways...

1. Overloading Operators


Let's suppose we have the following:

std::vector<int> stack;
vector<int>::const_pointer iter = stack.begin();


This instantiates a vector of integers and an iterator for that vector. So far so good.

To access the element at which iter is currently looking, we type:

int b = *iter;

In other words, it looks as though we dereference iter. So it would follow that we can code:

int * ptr = iter;

WRONG! iter is not actually a pointer to anything, but rather a class that has cleverly overloaded the * operator to return the object at which it is currently looking. So how do we get a pointer to the current integer? As far as I can tell, like this:

int * ptr = &(*iter);

That's right, we use the & and * operators, usually inverses of each other, to get our pointer. Thank you, Standard Template Library.

2. Constants


C originally lacked constants; they were not added until shortly before the creation of C++ and therefore needed to be built around the existing language. Although constants in C++ generally are not a problem, there is one case that bothers me.

const int * a;
int * const b;


These are not equivalent statements. a is now a mutable pointer to a constant integer, while b is a constant pointer to a mutable integer. It gets better.

const int * const c;

This declares c to be a constant pointer to a constant integer. Surely there could have been a better way to do this — it seems very clunky to me to use the same keyword twice in the same statement.

3. C-Strings


This one is really a problem with C, but it was inherited by C++.

Back in the good (bad?) old days of the '60s, the next generation of programming languages was emerging. FORTRAN, COBOL, and BASIC all have a string type, which holds a series of characters and can have functions called on it to determine its length, the position of substrings, and so on.

But not C.

The makers of C decided that a string type would be superfluous. How did they decide to implement the string concept? A simple array of one-letter chars. It would end with a null character (the character whose ASCII value is 0, represented as '\0' in C). In C, arrays are extremely simple. They are really only pointers, and as primitive types they cannot store extra information such as their length.

How will we know how long our strings are, the developers must have asked themselves. We will count them, they answered themselves, or keep track of it in another variable. How will we call functions on strings, they further wondered. We will pass the function a pointer to the string and an integer for the length. How will we return strings? We won't; we'll modify their values as side effects of the functions. Won't that make otherwise simple operations like concatenation or comparison difficult and ugly? Who cares, this is C.

Years later C++ was created, and with it came a string class via the Standard Template Library. However, the remnants of c-strings still linger. String literals are first interpreted as c-strings, then converted to strings if needed. The getline member function of an input stream expects a c-string; there needs to be a special non-member function to read in to a string object.

4. Switch


The switch statement in C++ reeks of the days of assembly; it is essentially a glorified GOTO.

switch (someVar)
{
    case VALUE_1:
        // Do something

    case VALUE_2:
        // Do something else
        break;
}


What is wrong with this picture? Any programmer can tell me that I forgot the break in the first case. If someVar is indeed equal to VALUE_1, the program will do something, then it will continue right on and do something else. It seems odd for C++ to rely on a statement to tell it where the code in a block ends; C++ normally uses curly braces for that. We must examine this more closely.

100 IF someVar = VALUE_1 THEN GOTO 500
200 IF someVar = VALUE_2 THEN GOTO 700

500 REM Do something
700 REM Do something else
800 GOTO 1000

1000 END


The above is our switch program written in BASIC. We can see the behavior much more plainly here. The switch is like a series of IF statements that then GOTO the proper place in the program. The cases are labels. The break is also translated into a GOTO. If the break in C++ or the GOTO in BASIC is forgotten, the program just keeps on going. There are no actual blocks, only a series of labels.

For the record, BASIC does have a switch construct too, called SELECT. It looks and behaves just like its C++ cousin.

Almost half a decade later, we have decided that GOTO is probably not the best idea anymore. Very few, if any, modern languages make use of it (Java keeps it as a reserved word but has never used it).

It gets better though. Because there are no blocks in a switch statement, there is only one scope.

switch (a)
{
    case 1:
        int i = 3;
        break;

    case 2:
        int i = 4;
        break;
}


This code would produce an error, because i is declared twice in the scope of this switch. One solution might be:

switch (a)
{
    case 1:
        {
            int i = 3;
        }
        break;

    case 2:
        {
            int i = 4;
        }
        break;
}


Here we force each i to have its own scope. At this point, though, we have triple indentation. It might have been easier to just use a series of if statements, as they would each have their own scope.

These are some of the gripes that I've had with C++ so far as an undergraduate computer scientist. It was quite good to vent, and now I'll be able to refer people to this blog when I say that I dislike C++. I'll probably wind up returning to this entry later, once I've had time to discover more of C++'s more, er, fascinating idiosyncrasies.

Labels: , ,

Wednesday, March 21, 2007

The DaVinci Coder (or Thoughts on Leonardo's Laptop)

In Leonardo's Laptop, Ben Shneiderman writes about “old computing” and “new computing”. Old computing is actually current computing, where programs aren't always designed to be user-friendly. These “old” programs crash too often (and randomly), spitting back ugly and incomprehensible error messages.

On the other hand, there is new computing, the knight in shining armor to save us from old computing. New computing is the way of the future, where programs are aestethically pleasing and easy to use. They are stable, but when necessary they give the user helpful information about errors.

In Mac OS X, when a program crashes, there is the option to send an error report to Apple. I almost always send the report, because as a programmer I know the value of knowing exactly went wrong with my program. Knowing what the user saw happen is one thing, but being able to see the state of memory and the error returned by the system is much more useful. The more error reports Apple gets, the better and more stable they can make their OS. As Eric S. Raymond said in what has become known as Linus's Law, “Given enough eyeballs, all bugs are shallow.”

I consider Mac OS X and the iLife suite to be a big step toward new computing. While errors still occur in the OS — and I think they always will &mdash I rarely, if ever, have problems with iPhoto, iTunes, or any of the other iLife programs. They are easy to use, and I think the Aqua theme looks pretty good.

Another interesting question is: “How would you envision the environment of the photographic hobbyist 15 years from now?” I am actually surprised that film cameras have stayed alive this long. While in the short-run it may be cheaper to buy a film camera than a digital camera ($100 ~ $150 for a film camera, compared to $150 ~ $300 for digital according to CameraWorld), it is certainly cheaper in the long run to go digital, as film is only getting more expensive. I imagine that the number one factor stopping people from buying digital cameras is a fear of computers, which is due to the problems of old computing. If in the future we head toward new computing, people might be more likely to buy a digital camera. The only people still using film cameras will be those who simply enjoy the darkroom experience.

Works Cited


"Programming". Wikiquote. 4 Mar 2007. 21 Mar 2007. http://en.wikiquote.org/wiki/Programming

Shneiderman, Ben. "Leonardo's Laptop: Human Needs and the New Computing Technologies". MA. MIT Press. 2002.

Labels: , , ,

Monday, February 26, 2007

Reading, Writing, and... Blogging?

Weblogs, or blogs, are the new digital diaries, and they are gaining popularity quickly. It seems that adolescents are particularly fond of blogs; as much as 51% of blogs are run by teens. (Huffaker) Given this context, should not our educators be using blogs in their curricula?

In my Social and Community Informatics class, we have been using blogs (this one, for instance) to write our responses instead of traditional essays. This has allowed not only for a more relaxed atmosphere, but also the use of media other than the written word, such as images, movies, and hypertext links. Proper use of these media can help get points across more effectively, which is important in education. If teachers kept blogs, they could link their students to useful resources. Students, who would use their blogs to write assignments, could give and get feedback to and from their peers.

While blogs are great for delivering content, but what is the best way to collect content? The answer is RSS feeds, XML documents with short descriptions of and links to articles, blog entries, and other such content on websites. RSS feeds are given to programs called RSS aggregators, which display the content of the feed in a human-readable format. One such aggregator is Bloglines, which we use in my Informatics class. I have a couple dozen feeds, including the New York Times, BBC News, and the Linux Journal.

While Bloglines is good, I prefer a client-side aggregator (one that runs on my computer). I use a widget for Dashboard called NewsReader. Having my aggregator running in the background all the time is much more convenient than having to navigate to a page to see what has happened in the last so many hours.

I try to pick feeds to keep me informed on subjects that interest me, therefore I have mostly technology, computing, programming, and Apple-related feeds, with a couple news feeds to keep me honest. Bloglines recommended some feeds, but mostly I took feeds from sites I already frequent so I can let my computer visit them for me.

Works Cited


Huffaker, David. "The educated blogger: Using weblogs to promote literacy in the classroom". First Monday. 3 Jun 2004. 26 Feb 2007. <http://www.firstmonday.org/issues/issue9_6/huffaker/>

Labels: , , ,

Monday, February 12, 2007

Death of Computing?

Since its introduction in the '50s, the computer has gone from scientific instrument to household appliance. What was once used only by scientists to perform complex calculations has become a convenient way to send a message or organize photos. The average user knows next to nothing about programming; he buys and uses commercial products. In the modern computing context, where does computer science fit in?

Computer science was around even before the modern electronic computer. Up until the late '40s, the term “computer” meant a human who did calculations. According to the Wikipedia,
Early researchers in what came to be called computer science... were interested in the question of computability: what things can be computed by a human clerk who simply follows a list of instructions with paper and pencil, for as long as necessary, and without ingenuity or insight?
Later, instead of giving the problem to a clerk, who was prone to error and fatigue, a mechanical device was sought to do the calculations. After many attempts, most notably Charles Babbage's difference engine, the mechanical computer eventually gave way to the electronic computer, which evolved into the personal computer so familiar today.

It may seem that computer science faded as the computer evolved. After all, today's computers have operating systems to shield the user from the bit-twiddling required to run a computer, which means that the average user does not need to know how to program his computer. But this is just not true. As Edsger Dijkstra, professor of computer science, said, “Computer Science is no more about computers than astronomy is about telescopes.” ("Edsger") It does not matter if computer science is not required for daily use of a computer, computer science is still being studied and is still quite necessary. The same is true of the automobile; the average user does not know how to build, or even repair, his car, but the study of mechanics is still alive and well.

Software does not program itself. No matter how easy the software makes life for the end user, someone somewhere with a knowledge of programming and computer science had to write the code that makes the computer run. How do operating systems (Mac OS in particular) keep getting faster on the same hardware? Because there are advances being made in how the OS stores and retrieves data — a sub-field of computer science. Why are websites becoming more interactive? Because a new concept, AJAX, is being explored that allows better communication between the server and the client computers &mdash another sub-field of computer science. So while the user may not be aware of it, there are advances being made in the study of computer science every day, without which the internet and personal computing could not function.

So if computer science is alive and well, why are computer science enrolment numbers dropping? Most likely because people are realizing that computer science is a very difficult subject. It requires a combination of mathematics and creativity, and an uncanny ability to understand extremely abstract problems. I am studying computer science here at the university, and it seems that a large portion of the students in my classes have little or no idea what they're doing. The programming is hard enough (C++ code can at times look almost arcane), but the subject matter is demanding and unforgiving (remember the clerk &mdash the computer has no ingenuity or insight, it only does what you tell it). And like mathematics, from which computer science was born, the problems are exceedingly abstract and intangible; there's nothing to touch or hold. It is all in the mind. It takes a certain kind of person to excel at a subject like this. Maybe that is why enrolment is diminishing.

It makes sense (at least in theory) that computer science and social informatics could go hand in hand. Both fields have to do with technology — computers in particular. Indeed, in their conclusion Kling, Rosenbaum, and Sawyer suggest professionals who design ICTs (which describes a computer scientist pretty well) as one target audience for social informatics. However, their plan is to retrain the current designers to use social informatics. Based on my interactions and knowledge of programmers and computer scientists, I do not foresee this being a fruitful plan. Many programmers I have known see the user as an ignorant being whose unbounded stupidity must be anticipated when designing programs. I do not see the ideas of social informatics being very popular in the current design community. It seems to me that the best idea would be to teach social informatics to the next generation of computer scientists, and as the replace the current generation social informatics will be put into practice.

Works Cited


"Computer Science". Wikipedia. 12 Feb 2007. 12 Feb 2007. <http://en.wikipedia.org/wiki/Computer_science>

"Edsger Wybe Dijkstra". Wikiquote. 12 Feb 2007. 12 Feb 2007. <http://en.wikiquote.org/wiki/Edsger_Dijkstra>

Kling, Rob, Howard Rosenbaum, and Steve Sawyer. Understanding and Communicating Social Informatics. New Jersey: Information Today, Inc., 2005.

McBride, Neil. "The Death of Computing". 22 Jan 2007. 12 Feb 2007. <http://www.bcs.org/server.php?show=ConWebDoc.9662>

Labels: , ,

Thursday, February 08, 2007

Outlook 2007: Pushing E-Mail Ahead -10 Years

Microsoft has been getting a lot of flack lately over some of its products. There's the Zune, whose DRM makes sharing music (its big selling point) a pain in the neck, and sometimes impossible. Then there's Internet Explorer 7, Microsoft's big chance to jump ahead of the competition (read: Mozilla Firefox), which was received to lukewarm response by the web browsing community. But I don't think any of us expected Outlook to hit that list, or to hit as hard as it just did.

I never had a big problem with Outlook (although I do use Mozilla Thunderbird). Sure, its security was lacking, but that is to be expected from just about any Microsoft product with internet access. But Microsoft has decided that Outlook 2007 will be switching to the Word rendering engine for HTML e-mail. At first, this may not be a big shocker; after all, we've all be using Word for years without any difficulty. What does this mean for us?

Up to now, Outlook has used the Internet Explorer HTML rendering engine. Now that Microsoft has released the new IE 7 with all its new features, Microsoft has decided to switch engines for “in the interest of security”. (Utter) Unfortunately, the CSS support in Word is — to put it mildly — terrible. This means that “e-mails that use certain advanced HTML and CSS features will be somewhat degraded in appearance in Outlook 2007”, although advanced seems to be a relative term. ("Outlook") Check out this article for a comparison of one HTML e-mail in Outlooks Express and 2007. Kevin Yank, web developer and author of several books on web development, wrote,
Not only that, but this new rendering engine isn't any better than that which Outlook previously used — indeed, it's far worse. With this release, Outlook drops from being one of the best clients for HTML email support to the level of Lotus Notes and Eudora, which, in the words of Campaign Monitor's David Grenier, “are serial killers making our email design lives hell.”
Here's a nice list of the CSS short-comings in the Outlook/Word 2007 rendering engine from that same article:
  • no support for background images (HTML or CSS)
  • no support for forms
  • no support for Flash, or other plugins
  • no support for CSS floats
  • no support for replacing bullets with images in unordered lists
  • no support for CSS positioning
  • no support for animated GIFs
These are all basic functions — things HTML and CSS have been doing for years; not only that, they are pretty much expected by developers.

The best part is that Microsoft is now trying to defend their decision. Among their reasons are that “customers ‘wanted the richness of the editing experience they were used to from Word integrated throughout Outlook. While Internet Explorer 7.0 is great, it was never intended to be an editing tool.’” ("M-Dollar") Also, Outlook e-mail apparently needed a uniform appearance and greater security. Wait a minute, wasn't IE 7 (the ex-rendering engine) supposed to be the most secure IE yet?

No matter what Microsoft can dream up to justify the switch, it's not going to satisfy the writers of HTML e-mails, who will now have to work harder to make sure their e-mails are sufficiently simple to be viewable in Outlook 2007. Shouldn't support for CSS and HTML should be improving, not jumping backwards at Microsoft's whim?


Works Cited


"Internet Explorer 7". CNET. 2007. 8 Feb 2007. <http://reviews.cnet.com/Internet_Explorer_7/4505-3514_7-32111537.html>

Reimer, Jeremy. "M-Dollar: Microsoft defends lackluster CSS in Outlook". ARS Technica. 2 Feb 2007. 8 Feb 2007. <http://arstechnica.com/journals/microsoft.ars/2007/2/2/6873>

Reimer, Jeremy. "Outlook 2007 change sends HTML email back to the future, for better and worse". ARS Technica. 15 Jan 2007. 8 Feb 2007. <http://arstechnica.com/news.ars/post/20070115-8619.html>

Utter, David. "Kiss Your CSS Goodbye With Outlook 2007". Web Pro News. 12 Jan 2007. 8 Feb 2007. <http://.../wpn-49-20070112KissYourCSSGoodbyeWithOutlook2007.html>

Yank, Kevin. "Microsoft Breaks HTML Email Rendering in Outlook 2007". SitePoint. 12 Jan 2007. 8 Feb 2007. <http://.../microsoft-breaks-html-email-rendering-in-outlook/>

"Zune". Wikipedia. 2007. 8 Feb 2007. <http://en.wikipedia.org/wiki/Zune>

Labels: , , , ,

Monday, February 05, 2007

The Digital Divide: Minor Split or Iron Curtain?

The Digital Divide is often thought of as a split between those who have access to technology and those who do not. However, this is not an adequate definition. Access to technologies such as computers and the Internet are becoming more and more easily accessable. Schools and libraries have computers available for use, and the price of personal computers is much lower than it used to be. So how is it we are still plagued by this Digital Divide?

The answer is that many people who have access to ICTs do not know how to make effective use of them; that is, they are not e-ready. According to Michael Gurstein (2003), e-readiness is
...a measurable indicator linked to potential effectiveness of the implementation of ICTs systems at a national or regional level and specifically in the context of responding to the perceived crisis of the ‘DD
Organizations and governments realize that the Digital Divide is not a matter of access, and that the people who will be receiving a new ICT need to be trained or otherwise prepared if the ICT is to be effective.

How could an effective use strategy be implemented? The goal of such an implementation would be to encourage people to become active users of the ICT; not just active consumers of content, but also active producers of content. To do this, the people would need to be provided with a reliable way to access the ICT. Computers, as well as some form of Internet access, must be made available. Training in the use of the ICT must be provided prior to its use. At least a basic understanding of the ICT is necessary, because if the user cannot use it he may become frustrated and any later use of the ICT will be an ordeal. Regular use of the ICT is important to increase proficiency. Once the user is proficient with the ICT, he then has valuable knowledge and insights he can apply to any other ICTs he may use.

This is an important concept: ICTs are inherently similar because computer systems are designed to be similar. Aditionally, most operating systems provide developers with certain guidelines detailing how to make their application fit in properly with the OS. Save should always be under the File menu. In Windows, Alt-F should always open the File menu. In Mac OS, Quit shoud always be the last entry under the application's menu — and it should always use the key combination ⌘Q. Many users do not understand this and treat each ICT as a separate problem to solve, forgetting (or ignoring) everything they already know, right down to standard symbols (a floppy generally means save, a folder generally means open) and standard controls (drop down lists and tabs). Effective use becomes much easier to achieve if the user already has a grasp of how to use the ICT. The user knows what to expect, and he can figure out what to do if he encounters something he did not expect, be it a new dialog or a new error message.

In his 2002 article "Reconceptualizing the Digital Divide", Mark Warschauer proposes his own plan, which he calls "Technology for Social Inclusion". He argues that the Digital Divide is similar to the Literacy Divide that occured when writing was first introduced. He says that if we want to fight the Digital Divide, we must fight computer illeteracy — it is not enough to just provide technology and basic training because people do not know how to use the training. This makes sense. As with any (reletively) new technology, computer illeteracy is quite widespread. Unfortunately, it is also taken for granted. There is no surprise when someone says that he dislikes computers because he doesn't know how to use one. Imagine the awkwardness if someone said that he hates books because he never learned to read. Govenments do not just thow books at people and expect them to learn to read — they send them to school. Why is it not the same with computers?

It is not as hard as it should be to find examples of computer illeteracy in the real world. In my high school color photography class, we spent most of the semester creating projects in Photoshop (because the art department did not get enough funding for more than one actual film shoot per semster — but that is a topic for another day). While we had done a little with Photoshop in black and white photography the previous year, there was never any real instruction on how to use Photoshop. I had used programs like it before and I applied my knowledge of them as discussed above, so I had no problems. However, most of the class had no idea how to use Photoshop effectively. The teacher was always surprised at and a little frustrated with the classes lack-luster attitude in the computer lab. Some students became frustrated themselves and came to strongly dislike Photoshop. It all came down to their computer illeteracy; they did not know how to use a computer properly and they were not taught. If they had been taught how to use a computer properly, not just Photoshop but the OS in general, I doubt there would have been so many problems and the projects would probably have been better across the board.

Ignorance and illiteracy in anything is undesireable. However, as computers become more and more important, computer illiteracy becomes more and more limiting. People are expected to know how to effectively use a computer, but they are never taught. Obviously the blame cannot be entirely on society. Perhaps the computer illiterate should attempt to teach themselves. All too often they become frustrated and defensive and say they hate computers in general. This is unacceptable; it is like a child saying he hates books because he has difficulty reading. In both cases, it is up to both society and the illeterate to work together to wipe out illiteracy.

Works Cited


Gurstein, Michael. "Effective use: A community informatics strategy beyond the Digital Divide". First Monday. 11 Nov 2003. 5 Feb 2007. <http://www.firstmonday.org/issues/issue8_12/gurstein/>

Stoecker, Randy. "Is Community Informatics good for communities?". The Journal of Community Informatics, Vol 1, No 3. 2005. 5 Feb 2007. <http://www.ci-journal.net/index.php/ciej/article/view/183/129>

Warschauer, Mark. "Reconceptualizing the Digital Divide". First Monday. 14 Jun 2002. 5 Feb 2007. <http://www.firstmonday.dk/issues/issue7_7/warschauer/>

Labels: , ,

Wednesday, January 31, 2007

Charting a Course for Fun!

Socio-Technical Network ModelTo the right is a link to a model of a Socio-Technical Network. Each participant in the network (Designer, Content Provider, User, and Manager) and his or her related ICT is in a corner. The arrows represent the flow of information between participants. This model was created in Macromedia Fireworks (Macromedia was bought out by Adobe), a vector graphics editing program. The image itself is a PNG because PNG is the W3C's standard image format, because PNG is an open source format, and because the PNG format has lossless compression, which means that the image is compressed but doesn't lose any data (unlike a JPEG image, which loses quality as it is compressed).

Way back in 1995, a plan was presented to the Texas state legislature to do away with textbooks and instead rent laptops to students. This seems like a good idea at first; laptops cost $10 per month while textbooks cost $37.50 per month. However, this ignores several hidden costs. What happens if a student drops his laptop? The school must rent a new one. Now the school is paying for two laptops. A dropped or defaced textbook can still be used the next year. Plus, the school will need to update the laptops often to protect against viruses and spyware, as well as provide technical support. This requires hiring IT professionals. Surely that will cost more than $37.50 a month.

Also, one must look at the plan from a Social Informatics standpoint. What will the social impact of the laptops be? How will they improve the education of K-12 schools? Many, if not most, families have computers in their homes. What will the addition of a laptop provide? Research and essays can be done on the family computer or in the computer lab. Reading textbooks on the computer is not very convenient. For what would the laptops actually be needed?

Social Informatics questions are very useful and very necessary when making decisions about ICTs. After asking these questions, the Texas legislature turned down the plan that had once seemed like a good idea.

Works Cited


Kling, Rob, Howard Rosenbaum, and Steve Sawyer. Understanding and Communicating Social Informatics. New Jersey: Information Today, Inc., 2005.

Labels: , ,

Sunday, January 28, 2007

Thought Answers

Computing has come a long way since its start back in the early twentieth century (although some may argue that computing actually began in the early nineteenth century). Even so, one of the main goals of computer engineers has always been to make their systems configurable. This is because an ICT's use is not fully defined by its design.

When a computer user is given a new piece of software, for instance Mozilla's Firefox web browser, he has expectations for the software based on both previous software products he has used and his current needs and job requirements. He may decide to customize and configure Firefox to fit his particular needs by installing extensions for the browser. While other software products may not support extensions as Firefox does, their users still have needs not exactly met by the current version of the product. In this case, the software's developers must listen to their users and try to release a new version of the product that more properly meets the requirements of the users.

One of the most well known examples of software whose developers that did not listen to the user base is Microsoft's Internet Explorer (which you may be using to view this page right now -- if so, I must encourage you to take a look at Firefox). When IE was released, Netscape Navigator (now the Netscape Browser) was the browser of choice, if only because it was the first graphical browser of its kind. For the next decade, Microsoft and Netscape competed in what has come to be known as the First Browser Wars, where both companies rapidly released new versions of their browsers, with little or no input by the users of the browser. Each release had new features which were either incompatible with or not supported by the other browser, which meant that any website that worked in one browser would probably not work well in the other. While all these features were being added, many bugs in the current versions were ignored.

Eventually, IE emerged from the war victorious, and Netscape was bought out by AOL. Since then, IE has been notorious for its poor support of many of the standards set by the W3C, the organization responsible for standardizing the different protocols used on the World Wide Web. Web developers have been pleading Microsoft to improve its standards compliance for years, but IE 7, the latest release, is still lacking many key features, including full CSS 2 and DOM support, both very important in creating dynamic web pages. Also, IE uses its own version of the JavaScript programming language, JScript, which is markedly different from standard JavaScript in several key points. This means that web developers have to spend more of their time writing code to support IE than developing the actual web site.

To solve this problem, Microsoft would need to support the full standards set forth by the W3C in IE. They would need to have more minor releases to fix bugs and implement the latest standards. They would also need to listen more to not just their users, but also the web developers who depend on their software. Most end users would not even know what DOM or CSS are, let alone know that their browser has substandard support for both. They might even blame the web site developers for sub-par performance. Therefore it is in the best interest of all IE users to improve standards support.

One of the most tragic examples of poor interaction between users and designers was the incident between the USS Vincennes and Iran Air Flight 655. In a combat situation, the Vincennes mistook the passenger jet for a fighter plane and, after attempting to communicate with it on several military frequencies, fired two missiles, destroying the plane and killing everyone aboard. After an investigation, the US government said that, due to combat stress, the crew of the Vincennes were unable to properly read the computer displays. The government also said that the crew could have been suffering from a psychological condition known as 'scenario fulfilment', which caused them to act out a training scenario while ignoring sensory input to the contrary.

Experts who examined the incident say that, while the crew may have been panicked, they should still have been able to use the computer systems properly. Whoever designed the systems should have anticipated that they crew may have been been under considerable duress during use; after all, the Vincennes was a combat vessel. According to an article in The Nation in August 1988 (about two months after the incident occurred), the Aegis combat system was never properly tested. What tests it did undergo tended to eliminate the element of surprise. The designers and developers should have understood better the conditions under which their systems would be used.

When it comes down to it, users depend on the ICTs they use, sometimes for their livelihood and sometimes for their lives. It is the job of the developer to make sure that the ICT is easy to use and does what the user needs, not what the developer thinks the user needs. Customization and configuration are ways for the user and the developer to reach a compromise; the developer does what he thinks is best, then the user requests changes in the parts he needs to in order to work properly. As Alan Kay, a professor of computer science, said,
The general precept of any product is that simple things should be easy, and hard things should be possible.
You can read more about Iran Air Flight 655 in its Wikipedia article. I don't know if this link to the Opposing Viewpoints article will work; you might need a membership for that. The document number is A6604712. When searching for information on the incident, I found that the Wikipedia entry was more helpful in getting a neutral overview of the event. The articles I found in the university's databases, which come from newspapers and magazines, tended to be more opinionated. Even so, they still had good insights and information.

Works Cited


Biddle, Wayne. "Testing charade". The Nation. Opposing Viewpoints 27 Aug 1988. 5 Feb 2007. <http://galenet.galegroup.com.libproxy.albany.edu/>

Kling, Rob, Howard Rosenbaum, and Steve Sawyer. Understanding and Communicating Social Informatics. New Jersey: Information Today, Inc., 2005.

Labels: , , ,

Wednesday, January 24, 2007

Blog the First

There is a difference between the ways in which the popular media and scholars discuss technology. There always has been, probably ever since popular media was invented. Newspapers of the time probably glossed over the technical aspect of the light-bulb while the scientific community marvelled at it. But why does this difference exist?

The popular media must appeal to a wide range of viewers, both educated and uneducated. This limits the extent to which the media can examine technologies. News stories rarely talk about the programming or engineering that goes into any new technology, because frankly most people would not care. Instead they focus on how the technology impacts the lives of the viewers. Movies show computers as complicated and mysterious. This article on Drivl.com has a list of what computers do in the movies that does not (and should not) happen in real life.

Scholars, on the other hand, can assume a certain intelligence and understanding when discussing technology. They very often discuss the behind-the-scenes aspect of new technologies. The best example is the open source software movement. There are open source projects and communities springing up all over the Internet -- Linux and Mozilla Firefox are among the more well known. These communities are groups of programmers and software engineers who get together to design and build new software. If one were to visit their forums, one would notice the maturity and knowledge displayed compared to other more popular online forums. They discuss code and debate different algorithms, and generally talk about the "nerdy", less popular side of technology.

Maybe the average man does not care about the latest technology because it never really changes his life. After all, how revolutionary can new ICTs be? The answer is pretty darned revolutionary. The printing press was one of the most revolutionary inventions of its time; it allowed the middle and lower classes to afford books, which meant that they could have access to information previously only attainable by the rich. In more recent times, there are the radio, the television, the computer, and of course the Internet. The last is one of the most revolutionary of all, because it is still evolving decades after its creation. Search engines like Google and Yahoo bring information directly to the seeker, instead of him or her having to go out looking for it. Community sites like Youtube and DeviantArt allow members to share and discuss videos and artwork from almost anywhere on the globe. These capabilities didn't exist even 10 years ago. According to Michael Rothschild, a published economist,
Since the invention of the microprocessor, the cost of moving a byte of information around has fallen on the order of 10-million-fold. Never before in the human history has any product or service gotten 10 million times cheaper — much less in the course of a couple decades. That's as if a 747 plane, once at $150 million a piece, could now be bought for about the price of a large pizza.
That is an impressive figure. Remember that a byte is eight bits, that is the answers to eight yes or no questions. But the most impressive part is the fact that it has never happened before. Is that not what being revolutionary is all about? Surely, therefore, it is a little too cynical to say that ICTs never cause social transformations.

Works Cited


Kling, Rob, Howard Rosenbaum, and Steve Sawyer. Understanding and Communicating Social Informatics. New Jersey: Information Today, Inc., 2005.

Labels: , , ,