Moodle is as Moodle does
Posted on May 31, 2007
I’ve been fooling around with Moodle and decided it probably isn’t the best for me and what I want to do. It seems very versatile and has a bunch of modules teachers can us, but it also seems a bit crufty. I’m not that inclined to get into the code to work on it.
I think it maybe it’s trying to be too many things to too many people. I’m also reminded of the old idea that you write a speech or essay to the intelligence level of your audience. I think Moodle is trying to make things simple for educators who aren’t inclined to learn UNIX commands, system administration, or computer programming. I can understand the reasoning behind that, however, I’m often frustrated by things that are “dumbed down†in my opinion. This applies to a lot of programs, not just Moodle.
If I am presented with a set of choices, I am limited to those choices. If I want to accomplish something not on that list, I have to give up doing what I want or I have to do it myself. If I have to do it myself, why bother with another program in the first place. So, I’ll probably start on Lingo again.
I did learn some of the issues of programming for the mobile web. Not all mobile browsers will accept cookies. Also, not all of them will read CSS. I can see myself working a bit more with HTTP_USER_AGENT to work through some issues. It still doesn’t help me with Unicode and the Palm Pilot, but I can at least use the T|X to view the site and figure out how the site works on a mobile platform.
Sad, sad, sad
Posted on May 28, 2007
I just read this article on Yahoo which says a former book dealer in Kansas City burned his remaining stock of books as a protest. When he closed his shop, he had around 20,000 books remaining. He tried to give them away to thrift stores and libraries, only to be refused – they already has too many. Since the books were sitting in storage, he decided to burn a bunch as a protest to the lack of respect for books nowadays. He plans on lighting bonfires monthly until they are all gone.
It’s sad he felt he needed to resort to this, but I also understand in a way. One of the quotes from the article was from someone who paid $10 to save some books from the flames. He said, “Not reading a book is as good as burning it.” Ouch. Apparently, less than half of Americans reported reading for pleasure in a recent survey. With competition from other media outlets, such as the internet and TV, books have become like the Rodney Dangerfield of media…getting no respect.
I know some people who are voracious readers, who will read book after book after book. Although I’m not one of them, I do enjoy reading for pleasure. I wish I could say it was inconcievable for me to imagine — people not reading books — but it’s not. I just tell myself that it’s their loss for not reading.
I tread aside the vast wasteland and enter the realm of magic.
A Confederacy of …
Posted on May 20, 2007
In the book A Confederacy of Dunces there is a quote at the front by Jonathan Swift:
When a true genius appears in the world, you may know him by this sign, that all the dunces are in confederacy against him.
While I wouldn’t call myself a genius (I’m much too humble ;-) I certainly feel as if Dame Fortuna is against me at the moment. I decided to give Moodle a shot last night, so downloaded it. My PC has had a problem with Apache running PHP, but this has been going on for a while and since I have a webhost where I can upload things to try out, it isn’t such a big deal. I extract the zip file locally and upload it to the webhost. I start going through Moodle’s install script…and it gets to a point where it checks to see if my setup is minimally required, and it isn’t. It requires UTF-8 and MySQL 4.1. The server my site is on apparently uses MySQL 4.0 (strangely, the webhost’s main site says they have servers with MySQL 5.0.*). I didn’t see UTF-8 in the character sets for MySQL, but it doesn’t seem to have a problem with handling UTF-8. I’ve installed WordPress and MediaWiki without this problem and both of those use UTF-8. I have a feeling Moodle asks MySQL what character sets it supports and if it doesn’t see UTF-8, it gives an error. I think WordPress and MediaWiki probably just send the data without checking, or maybe the server had UTF-8 capability when I originally installed it. So this means I can’t install Moodle on my PC or my webhost. I’ll be talking to the webhost, but I’m going to try and set it up on my laptopt for the time being. The performance will be bad, but at this point I’m just wanting to tinker with it.
whelmed
Posted on May 19, 2007
If you ever get a chance, pick up a book called The Mother Tongue: English and how it got that way, which I think is by Bill Bryson. It’s a book with all kinds of anecdotes about the English language. One of those anecdotes is more of a question: How come we can be overwhelmed or underwhelmed, but not just whelmed?
To put it in context, I’ve spent a large part of the day looking for anything to do with Unicode on Palm Pilots. I’m overwhelmed by the amount of information and underwhelmed by the performance (for lack of a better term). There is a lot of information regarding Unicode and Palms, or international character sets and Palms, but it boils down to A) Palm OS doesn’t support Unicode normally, and B) Buy our software. It seems like there is a lot of software for Palms that support international character sets, and a few that even support Unicode, but none of them (that I could find) were web browsers. There is one web browser that is in beta which is supposed to support Unicode kinda/sorta, but the website is down, so that idea is out the window.
There is a rumor that Palm may support Unicode in the future. They are on a panel at the Unicode Consortium, and I think I read they hired a VP who previously worked at the Consortium, so it bodes well for the future.
However, none of that helps me with my endeavor at the moment.
I did see that Moodle has a small Moodle for Mobiles project going. I first heard about Moodle when I was doing research for one of my papers this past semester. It’s an open-source courseware project, similar to the Sakai project (a/k/a Oncourse CL if you go to IU), though it seems to have a larger community. Plus it is PHP/MySQL. I’m thinking about starting to use that instead of continuing with my own project.
With the Moodle for Mobiles project (MOMO), they have a way to convert (or they are working on it) UTF-8 into other encodings. That won’t help me with my Palm since it can’t read the other encodings either, but I can use the Palm to work out the accessibility of the site and use my regular browser to work on the content. So, Moodle would just be a regular website and MOMO is a user-agent sniffer that serves up a special webpage for mobiles. I figure I’ll give it a shot at least.
Palm T|X
Posted on May 19, 2007
I got the Palm T|X today. I was debating on cost vs. convenience, but if I got it from Amazon (quickly) the shipping would have made it cost just as much as if I bought it locally, so I got it at the Staples near work. I also got a USB Bluetooth dongle because I wasn’t sure if it would work with my setup at home.
At work, the whole campus is pretty well covered with wireless hotspots for emplyees and students. I tired connecting, but kept getting redirected to the device registration page, even after I registered it. That was a bit confusing, so I will try again on Monday.
At home, I wasn’t sure if I could get it connected. The T|X has Bluetooth and Wi-Fi capabilities, so I got a USB Bluetooth dongle (the semi-technical term for it) because it was cheaper than getting a wireless access point. Plus, all the WAPs they had at Staples were 802.11G, and I didn’t know if they would support 802.11B, which is what the Palm has. Since I use Linux at home, I wasn’t sure how well everything would work, if at all.
I got home and plugged in the Bluetooth into the PC, then turned to the web for all sorts of tips on getting it going. I could get the Palm to see the PC and the PC could see the Palm, but I couldn’t get them to talk to each other. They couldn’t sustain a connection long enough to do anything. Out of curiosity, I checked the wi-fi and several WAP’s (most of them encrypted), including one of them which was in my 2wire DSL router. I vaguely remembered reading that it came with wireless, but since I never had the opportunity to use it, I forgot about it. I spent a little while reading up online and was able to get the Palm to connect through the router, skipping the PC altogether.
As I suspected, it can’t read sites encoded in UTF-8. Actually, it can read my site, but anything in Japanese or Cyrillic doen’t get shown. The strange thing is it doesn’t even show the little boxes or some other symbols. It just shows blanks. One page in Lingo has a couple of buttons in English, one in Cyrillic, and another in Japanese. The latter two buttons don’t show at all. I surfed to the Asahi homepage and the Japanese in images is fine, but Japanese as text shows up as mojibake. Interestingly, my blog shows up, but looks bad due to the design. It looks good on a PC, tho. I’ll have to come up with something for that.
Wikipedia crashed the T|X twice. It didn’t crash the browser, but caused a soft reset of T|X itself. I thought the first one was a fluke, but I tried going there again and it crashed it again. Wikipedia has a bunch of stuff at the bottom of their page, showing links to Wikipedia in other languages, so I think this may have had something to do with it.
There is a program called JapOn, which is supposed to allow browsing Japanese sites, but when I found it doesn’t work with Unicode. It didn’t work with Lingo, though it did at least try. I think it works with EUC-JP or Shift-JIS.
Anyway, it should be a good tool for me to develop Lingo. If I can come up with something that renders on the T|X, I’ll know I’ve succeeded.
Learning
Posted on May 14, 2007
I haven’t recieved the official report card yet, but I went online today to see if the final grades were posted and they were. Drum roll please…
Intro to the English Language…..A
TESOL Methods…………………..B
I would like to thank the members of the Academy…oops, wrong speech. Anyway, I’m pretty pleased with the grades and I think the professors may have been feeling generous. I want to get my final papers to see how they were graded. Could be useful in the future.
Something else I learned today is that Palm Pilots don’t have Unicode support, and neither do most keitai, which makes me wonder about how to work that out with Lingo.
Before Unicode came out, computers were widely used in Japan. Since most Japanese would like to deal with computers using their own language, there are/were a few different protocols for dealing with their ideograms. Probably as a matter of legacy support, these protocols also found their way onto DoCoMo cell phones in Japan. Apparently, most webpages in Japan either use EUC-JP or Shift-JIS encodings, and a few web browsers have trouble distinguishing between the two. Luckily, I know a few bloggers in Japan with keitai, so maybe I can enlist their help in the future. I think it’s probably possible to take database info encoded in UTF-8 and convert it to Shift-JIS. I read somewhere that this encoding was predominant in websites for mobiles. This is probably one of the reasons for me to get a new mobile to try the site out. Which brings me to Palm Pilots.
Today, I found out Palm Pilots don’t support Unicode. I found this out via some forums on the Palm website where people were talking about multilingual support. Apparently, there are some programs that can be downloaded that offer varying support for foreign language encodings. I guess it isn’t so much of a problem with languages that use Latin based alphabets, but is an issue with things like many Asian languages. There is no all-encompassing solution. People can download programs to support specific languages, but apparently Unicode isn’t one of those supported. I’m guessing it may be too big at the moment. The Palm T|X has 32 MB of memory, so it isn’t a lot to play with. The most severe option is to download another OS for the device, where it is meant to work with another language. Still, I think the Unicode issue is there as well.
I’ll have to try and work this out as I go along. I would prefer it if the website user didn’t have to download something special just to use the site. I can probably use the HTTP_USER_AGENT (or whatever) to detect what encodings the browser supports, then have a script that automagically encodes the website appropriately. We’ll see. Maybe I can come up with some sort of stats page that logs hits and figures out browsers.
Oh yeah. I searched Technorati for palm+tungsten+japanese to see if anybody else had similar issues/questions, and my blog was at the top of the list.
Search
Posted on May 13, 2007
Search is working for both dictionaries. You can search the Russian/English dictionary or the Japanese/English dictionary. Browsing and searching are two big features of Lingo. If either one of them couldn’t be done, then the project would be hampered. If neither of them could be done, then the project wouldn’t exist and I would have given up weeks ago. Luckily, I’ve been able to make, slow, but sure progress.
Like the other pages for the project, this has some quirks, but I’m calling it good enough for now. I borrowed most of the code from this tutorial. Considering some of the other tutorials I read for other pages, this one is pretty good.
There are two quirks I quickly found pretty quickly. When searching for something that doesn’t exist in the database (like punctuation) it says it returned 0 results, but then it starts a results table and says “Showing results 1 to 0 of 0″. Strange. The other quirk is if there are more than 10 results, it displays a link at the bottom that says “Next 10 >>”, but when you click on the link it returns to a blank search page. I’ll have to work on that at some point. It also displays the results with capitalized words first, but this has to do with they way ASCII and UTF-8 are sorted. I’m guessing there’s a way around that.
I’m glad it’s working though.
Projects and code
Posted on May 13, 2007
This post is mainly a diversion. I’m procrastinating on coding. With coding I get either very into it, or very frustrated. When I get into it, the hours just pass by. As an example, I stayed up until six this morning coding, because it was going well and I didn’t notice the time. The next thing I know, light is creeping in through the shades.
Anyway, I’ve been using Lingo as an interchangeable term between the project and the code, even though they are two separate things. The project is Lingo: The Website, a set of tools to learn languages via web-enabled PDA or cell phone. Lingo: The Code is the PHP, HTML, and MySQL that makes Lingo: The Website work. From a practical standpoint, the only thing an anonymous user can do with The Website is browse the two dictionaries. I’ve been working on a login script and an add-new-entry script, though since I have a lot to learn about sessions and cookies, they aren’t very practical yet. It’s progress though.
Search is the next thing I’m going to work on. With search, a user can enter a term and look it up in one of the dictionaries to find its definition – one of the key concepts of the site. Search will also make it easier to find and select entries to edit (I can already see a few that need editing). So it’s the next big thing I need to get going.
I think, once I get a search form, an edit-entry form, and a user-profile page, then it might be ready to release as code…maybe. Right now, the code is customized for The Website. To release the code, I need to make it fairly generic so people can use it however they want. It’s kind of a niche product, but I believe in open-source, so I think releasing the code might be worthwhile. The code will probably be released via Sourceforge, so as to attract other users, and possibly coders.
One of the key dictums of the open-source movement is,
Release early and release often.
I think the idea behind this is that any small improvement and/or tweak that can improve the code should be disseminated for all to enjoy. Of course, when that happens, inevitably it will cause unanticipated problems for some users. Releasing early and often should help with some/many bugs – each successive release is supposed to be an improvement over the previous. It also leads to another saying in the open-source world:
Given enough eyeballs, all bugs are shallow.
Also know as Linus’s Law after Linus Torvalds who coined the phrase. Here the idea is that with enough people looking at the code any problems should become apparent. One of the frustrations of coding is when I look at code so long, some typos might not be apparent. I’m usually pretty good at spotting spelling errors, but missing parentheses or dollar signs are sometimes a problem. One problem I had with the login script was in the code, I refered to user_name in the mysql_query, but in the actual table, the field I wanted was user_nick (for nickname). In the table, user_name refers to the user’s real name. The sad part is I set up the table and wrote the code, but just forgot about that issue. I took me many, many hours to run that problem down.
Anyway, like other websites that release their code, I probably need to come up with two terms to differentiate Lingo: The Website from Lingo: The Code. I’m not really set on using the term Lingo for either one. For the code, I’m leaning towards Giraf (a German? spelling for Giraffe), many because they are a stereotypical “warm-fuzzy” animal that most everybody can identify and is non-threatening (until I read about the giraffe that injured a drunk person who invaded its pen at some zoo). I’m also keeping my eye out for other warm, fuzzy, non-threatening, and easily-identifiable animals for a possible name/mascot. Since it is meant for mobiles, a small creature might be appropriate.
For the website, I’m trying to find a word that is short, has to do with language, and can be semi-easily translated into other languages. Lingo is pretty good about this (though in Japanese, it would become Ringo (^_^). However, there are already some other websites (some dealing with language) that use Lingo in some way. The same goes for vox, lingua, and others. Gloss has a few definitions, and not all of them deal with language. Larynx might be difficult to translate phonetically and retain its meaning. A lot of sites like this one use the word dict, which references the DICT project/protocol and dictionary. StarDict is a good example of this. However, in English, using dict can lead to some double entendres. Think about some warm-fuzzy animal and put dict at the end. I’ll let you figure it out.
Alphabetizing
Posted on May 12, 2007
Now I’ll get into the whole alphabetical order thing. Lingo uses Unicode (a/k/a utf-8) display the letters and characters. This isn’t anything special, as most modern web programs use Unicode. Unicode is sort of like an international font. Think of it as a huge alphabet made from the alphabets of other languages. It’s not the best analogy, because languages like Chinese have ideograms, not alphabets. Unicode (if you have the full set installed on your PC) is supposed to encompass every letter, character, numeral, and punctuation mark from all of the major languages and some of the smaller ones, too.
Unicode can be alphabetized, sort of. It’s more like it puts things in a certain order. Prior to Unicode was ASCII, so for backwards compatability, the first spots in Unicode were taken up by the ASCII character set, in the exact same order. It starts out with some punctuation and math symbols, moves into numerals, does some more punctuation and symbols, then does the capital letters of the English alphabet, more symbols, lower case English alphabet, and some more symbols. Each character in Unicode is encoded with an alphanumeric code. This code provides the “order” for where it is in the Unicode set.
This causes a quirk with the sorting. Anything that is capitalized (like city names) will show up before any word that isn’t capitalized. For example, in the Russian/English dictionary I’m working on, Yekaterinburg comes right before abacus. Eventually, I want to make it a case-insensitive sort, but I can’t figure it out yet. I spent most of the day just getting it to sort in “alphabetical-ASCII” order, so I’m too tired to figure it out now. I’m sure there’s a way to do this without changing cases, I just have to figure it out. Until then, it’s good enough.
For a tip to other coders, you can put utf-8 data into a mysql table that isn’t mysql. You can also pull it out and sort it with PHP. My webhost doesn’t have the utf8 character set for mysql, so that’s why I’ve been digging into PHP to do it.
Bibliophile
Posted on May 11, 2007
Browsing works in Lingo. You can check out the Russian/English dictionary or the Japanese/English dictionary to see. It was easier than I expected, though not without errors (typos are the bane of coding). Also, it’s still not quite perfect.
In the text file, I used \n liberally so synonyms would each show up on a new line. These were passed directly into MySQL as is. However, PHP is ignoring it. In many computer languages, \n creates a new line. PHP is the same way, but for some reason \n is getting lost or not being interpreted. Looking in PHPMyAdmin, I can see them presented as they are supposed to be (on a new line), so I assume \n is still in there, but maybe MySQL isn’t passing it along. Dunno.
updated
It turns out HTML was ignoring \n, not PHP. PHP passes it along as a new line, but HTML has a special tag for that < br > without the spaces in between. I fixed it with a handy inline str_replace statement. Now the dictionaries render more or less properly (I won’t get into the whole alphabetical order thing now).
Filed Under Code, Journal, LAMP, Open Source, TESOL | Comments Off

