You are viewing [info]dranorter's journal

Previous 10

Feb. 4th, 2010

warning

Semantic Mediawiki Tutorial

I just set up Semantic Mediawiki on my Ubuntu laptop (it's a touchscreen laptop but I haven't gotten anything special working yet with touchscreen + mediawiki). The purpose of this exercise was to have a personal wiki for notetaking with more features that TomBoy. The main feature I wanted from the Semantic Medeawiki addon to mediawiki was the ability to create dynamic lists of pages from elsewhere on the wiki, since I spend a lot of time listing things (collecting examples of particular ideas, mostly).

Mediawiki is the platform which Wikipedia uses, and it thusly has lots of useful features for organizing knowledge. Besides, anyone comfortable with the way Wikipedia is organized has an intuitive grasp of how to organize things in it. So it makes a good notetaking platform.

Anyway. I figured it would be worthwhile to write up my experience since it took a little effort to get everything working. The first step was to install mediawiki, which is easy on Ubuntu; just type "sudo aptitude install mediawiki" in the terminal (without quotes of course). I did "sudo aptitude install mediawiki mediawiki-extensions mediawiki-math imagemagick"; I think I'll need the math extensions, but I just installed mediawiki-extensions to be safe. Actually, looking here suggests it's some reasonably useful stuff. The other packages were recommended here. (Note, I'm installing mediawiki on ubuntu hardy, so aptitude install mediawiki got me mediawiki 1.11.)

Once mediawiki was installed it had to be set up, following the instructions which can be found elsewhere.

I installed Semantic Mediawiki with the Semantic Bundle package, rather than hunting down what semantic extensions I wanted or needed. So I downloaded their package and extracted it to /var/lib/mediawiki/extensions. However, upon adding the lines recommended to /var/lib/LocalSettings.php, my wiki just crashed upon refresh. I had to add the following line as well:

ini_set( 'memory_limit', '100M' );

and comment out all the extensions but Semantic Mediawiki itself in /var/lib/mediawiki/extensions/semantic-bundle/SemanticBundleSettings.php (a copy of SemanticBundleSettings.sample.php, as recommended by their instructions) before I could get to the Special:SMWAdmin page. (Add # before all the require_once or include_once lines in /var/lib/mediawiki/extensions/semantic-bundle/SemanticBundleSettings.php except the first.)

I also had to comment out a line in /var/lib/mediawiki/extensions/SemanticMediaWiki/includes/SMW_RefreshTab.php

//'href' => $skin->mTitle->getLocalUrl( 'action=purge' )

This line was actually my main difficulty in installing semantic mediawiki. I had to figure out what was going on here in order to convince myself that commenting this out was OK. So, what this file does is add a tab to every page on your mediawiki, after 'view', 'edit', etc. The purpose of that tab is to let you manually refresh a page's automatically generated lists, since their content can change even when that page hasn't been edited. This can also be accomplished just by appending ?action=purge to the URL of the page, so besides commenting out this line, I changed the text of the tab to "action=purge" to remind myself how to do this.

Changed:
'text' => wfMsg('smw_purge'),
to:
'text' => 'action=purge'//wfMsg('smw_purge'),

Yes, that's pretty silly, and I could have thought of much more creative text for the useless tab, or just gotten rid of it. Do as you will.

I don't know why the line I had to comment out produces an error rather than the desired effect, by the way, and if anyone knows how to fix it, that would be nice.

So anyway, after all this commenting stuff out it was finally time to visit Special:SMWAdmin. But the initialization of the mysql database didn't work; I had to go into mysql (type "sudo mysql -u root -p mysql") followed by the following line:

grant all on wikidb.* to 'wikiuser'@'localhost' identified by 'password';

where password of course was replaced by the password I had used when setting up mediawiki. I found variations of this line elsewhere which did not grant such pervasive rights ("all") to wikiuser; it might be wiser to use one of those.

After this the first button on the SMWAdmin page worked just fine, and then I re-enabled the other addons by copying SemanticBundleSettings.sample.php back over SemanticBundleSettings.php.

At this point everything was working just fine! There is a little tour here of some of the useful features of semantic mediawiki.

I guess I should mention, another thing that took me a little while to catch on to was customizing the site logo. For the most part the instructions on the MediaWiki site worked just fine; the line

$wgLogo = "${wgScriptPath}/skins/common/images/three.png";

made "three.png" into my logo. But this didn't seem to work unless three.png was in that images folder; for example

$wgLogo = "${wgScriptPath}/three.png";

doesn't work even though I have a copy of the image there.

OK! That's it, I hope I didn't forget any steps.

Jan. 7th, 2010

warning

Written Language

I've written before, somewhat briefly, about how I want to be able to instant message people with handwritten, rather than typed, messages. Now, a better explanation:

One puzzle in the linguistics of writing, or at least in what I've read, is that the direction of development of written language is not clear. Originally linguists, who had made great strides understanding spoken, sound-based language, thought that writing should naturally do nothing more than represent speech. For the most part writing does represent speech, but this led some linguists to believe that the more accurately writing represents speech, the better it is, and seeing as writing has tended to evolve over time from symbols representing ideas into systems representing more and more of the sounds of words, it was easy to think that naturally, writing systems simply got better over time, and that improvement was an improvement in representation of speech.

Modern English spelling shows that this is incorrect. Rather than becoming more accurate, formal English writing uses spellings which either represent how the words were pronounced centuries ago, or are simply not meaningful in terms of speech. And if you think this is just because English spelling is overly conservative and unwilling to change, think of how people spell things when instant messaging or when text messaging. These spellings are no more accurate.

Another hole in the linear theory of the evolution of writing is that Chinese writing has not shown signs of moving towards a more "accurate" system. Chinese writing partially reflects the sounds of words, but mostly just encodes the words themselves. There are many other writing systems which have made no effort to be more accurate.

Some linguists who believed in this linear evolution concluded that modern governments should help writing systems realise their full potential and become more accurate. Fortunately this initiative failed in many countries, but elsewhere it was able to destroy the native writing system and the culture which came with it, typically replacing it with an adaptation of the Western system. Fortunately, in some areas traditional writing is being re-learned, but it will probably never regain its status in those cultures.

So anyway, this idea of linear evolution has mostly been abandoned, but it still appears that when writing changes, it becomes more phonological. This tendency goes against what is observed in spoken language. Spoken language tends to change according to cycles- though of course it doesn't really repeat itself, but instead endlessly reconfigures into new forms. But why should written language tend to settle down rather than follow cycles?

Well, I think it doesn't. I would say that our modern inaccurate spelling system evolved from a system which more or less accurately tried to represent individual sounds with each letter, and now is a system in which each word instead has a single written representation. And, I would argue, we are headed towards a system which has written symbols for phrases and ideas which aren't always pronounced the same way. Eventually our writing system may lose its alphabetic aspects entirely.

This isn't the first time our alphabet has had tendencies of abandoning phonetic spelling. Latin manuscripts of the middle ages no longer accurately represented how Latin was spoken, and furthermore the tendency at that time was towards using special symbols to represent common words such as and (&) and God. There were also symbols to represent common word endings or beginnings, and symbols for common combinations of letters.

However, this system was mostly specialised for the Latin language, and besides, it was too complicated to reproduce once typesetting became popular. So writing became more or less alphabetic again when the printing press was invented.

When the printing press came around, writing represented speech in more aspects than just the alphabet. Punctuation was also focussed on aiding those who would read a text aloud, representing the pauses used in speaking. Pauses, though, do not accurately reflect sentences, so to us this early use of punctuation looks ungrammatical, with many run-on sentences and sometimes ill-defined division between sentences and ideas. This is not because these writers had poor grammar, but rather because they were writing in order to depict speech. Speech often involves long sentences which people just add to and add to.

It was only once printed books became widespread that people could see how people in other parts of the country or world used punctuation, and so it was only at this point that punctuation began to standardise; and in standardising it stopped representing spoken pauses and started representing phrases and even ideas.

But I digress. What I mean to say is that writing was able to develop, and as it developed, it used standardised spelling to make clear which word was meant when two words sounded the same. This is part of the reason our spelling represents archaic pronunciation; the spelling is useful.

However, like any writing system, English writing also became very formal and standardised, and thus resistant to change. So evolution away from representing every sound with a letter ceased.

Now, with the advent of text-based chat systems, we have a new use for text which is often not formal in any sense of the word. Accordingly, the writing within that medium has had a chance to shift once again away from writing every sound in a word.

It may appear to some that this is merely a form of abbreviation, and so, some may argue, the full spelling is really being thought, but only the consonants or initial letters are typed out in order to save time. But it seems to me most language change is thought of as abbreviation at the time it occurs. When Latin began changing into French and Spanish and the other romance languages, it seemed as if the endings of words were just being dropped, and the same happened when Old English was becoming Modern English (which is part of why we have silent 'e' at the end of many words). But if language were really just simplifying over time, the end result after thousands of years of change would by a language of grunts. What really happens is that while one part is simplified, another part expands to hold the meaning which used to be represented a different way. So it seems to me that if people continue to write to each other on a daily basis, the new methods for representing meaning will become more and more common within their conversations, and more and more complex, until spelling is almost unnecessary.

However. Modern computers and even cell phones are really designed for traditional communication. It seems to me handwriting has the potential to be far more expressive.

And so, as touchscreen phones and eventually touchscreen computers become more common, people will want to quickly communicate without their tiny cell phone keyboard or without moving their hands away from the screen of their touch-based laptop. Unless on-screen keyboards become way better, that will mean communicating using drawing and handwriting. Traditional handwriting, of course, will seem too slow and cumbersome, so letters will be skipped or, often, replaced with squiggles (the way we do in signatures). What will be important will be the overall shapes of words, and the first and last letters, which are the main things used when reading already (according to numerous studies).

As this system of abbreviation develops, people will find that they have to learn symbols for individual words in order to understand "kids these days". But rather than existing symbols like @ and 2, these "kids" will be freely drawing whatever symbol is easy, fast, and clear on the latest hip touchscreen communication device. When forced to type, they will wonder where these new symbols are on the keyboard, or maybe they'll use "old fashioned" symbols which resemble them. But some of them might not learn to spell or to read "old fashioned" writing.

Maybe we'll embrace the change and publish books in the new rather than the old notation. However, we will find by then that the new system is actually writing a different English than the old one was, and it won't simply be a matter of writing the old books with the new system; the words will need translated just so they can be represented with the new word symbols!

By that point, linguists will agree that writing, too, follows cycles, at least when it is used as an everyday language rather than being highly standardised and formal.

But this can only happen if we all start using our handwriting more. Right now, people do most of their reading, and much of their writing, from typeset documents in which individual characters are completely standardised. Many people have trouble reading handwriting or producing legible handwriting. If people had more opportunity to casually communicate using handwriting, and to reach large audiences using handwriting, it might be rather like when the printing press was first invented; handwriting would drastically change as people used and developed it.

Keyboards of modern computers, as everyday as they are, represent a very fixed system and they affect the way people think about communication.

Dec. 9th, 2009

warning

A Fractal

I've long wondered about a reverse mapping of the Mandelbrot Set: give it a picture, and it tries to propose coordinates in the fractal-to-rule-all-fractals which will generate that picture. One of the chief reasons I want to do this is because everyone says the Mandelbrot set seems to contain every sort of shape you can imagine. It does contain many shapes, as you can see on the Wikipedia article.

But does it really, in any sense, contain every possible shape? I don't think so, and I'd like to see a fractal that does!

Of course there are probably infinitely many fractals which do contain every possible shape. Let's try and design one, shall we? I'll consider shapes = black and white (for now) images, that is, collections of square pixels. So a fractal would contain every possible image if some view of it was close to any given tiling of black and white squares.

Well. That seems pretty easy. Just take the possible images in order. The first one is all white, the second all black. Put the all black image somewhere in the all white one; say, the center, but really small so it's hardly visible when just looking at the all white image.

Then, in the center of the all black image, but the image represented by 0001; four pixels, one of them black. In the center of that, tiny, but the next image, 0010, which is a different pixel of the four black. Continue up to 1110 and 1111, then start on... 000000001.

Not a very satisfying fractal honestly. Maybe if it were to be constructed from the bottom up instead it would be a lot better. But something not based on pixels, but instead on curves, would be a bit more satisfying.

In other news, I plan on starting a blog elsewhere which will actually hopefully update weekly. The idea is going to be posting a new program every week, with the intention of that program actually being useful.

Oct. 24th, 2009

warning

Google Alerts

I use a lot of Google Alerts, and I feel like every time I take a look at them I find really interesting things and people, but I end up actually looking through the Google Alerts I receive for several reasons; first, because they are not well-organised or high-quality, second, because they are something of a timesink.

What I've been doing a bit of lately is looking at my google alerts only for terms which get very few hits. This is because of the strange phenomenon of me only having so much time, and only wanting to pay attention to things I have time to pay somewhat full attention to. It doesn't make that much sense, though, to want to pay full attention to an automatically generated list of Web pages- partial attention is just fine. But if I look at ALL my alerts, the topics people talk about more get overrepresented. What would naturally be nice would be if I could look through them in proportion to my interest in a topic and the quality of individual posts.

Jul. 14th, 2009

warning

Camera

I got a new camera after dithering a bit about it. I always hesitate hoping for the best deal, but in this case it seems like what I wanted was available, so I just bought one. I am hoping that being able to take 1,500 12-megapixel pictures (4000x3000) before needing to empty it out (as opposed to 50 5-megapixel 2048x1536 images) will make it so that I carry it all the time. So far this has been the case. If I take very many videos I may actually run out of the 8 GB card, but not with just photos.

But what I'm actually writing about is my ideal camera. I was hoping 12 megapixels would mean when taking pictures I would get significantly more detail than I can myself see. But, of course, there are still circumstances where I can see more than the camera. I want a camera designed to see more than me in every way, a sort of scientist's camera (in that it would be really useful for gathering field data).

First I want a wider spectrum. I know that this would be difficult. Cameras can see infrared if their infrared filters are removed, but it is just picked up on the red sensors. That loses information about the picture in some ways; picking up the infrared makes it difficult or impossible to determine what the image looks like in visible light. To broaden the spectrum one would need either a longer exposure done with and without the filter, or, a new set of sensors, which I don't know if exist and which would lower the megapixels. I also don't know if good ultraviolet sensors exist.

Just engineering problems though.

The next thing is shutter speed. Obviously high-speed photography can see some pretty cool things, like the wingbeats of a bee. I took pictures of bees with my new camera and their wings were a blur. But besides this, really fast photographs would show the flicker in lightbulbs and, especially, fluorescent lights. This would enable me to see something I've long been imagining, the half (or so) of the time when the room is dark because the light bulb is not constantly shining. Good time-lapse video capabilities would be fun too, and would just be a matter of better software.

Better image stabilization would be nice but as it is I bought a camera with supposedly pretty good image stabilization and it just can't cancel out the large motions my hand makes. Understandable. But if you mount fairly massy gyroscopes in it, wouldn't spinning them up provide pretty effective stability? I guess I should just carry my little tripod if I want really high-resolution pictures.

Jul. 9th, 2009

warning

Wikipedia mainly

The Internet makes it easy to make sure any question or curiosity I have can eventually turn into reading a fairly detailed account of that thing (right now I'm looking at the Wikipedia article on Mimristors). However, there is no similar guarantee that I use that knowledge for anything, and how can the usefulness of knowledge be tested without applying it somewhere?

What would make it easy for me to eventually use knowledge for something, the way the Internet makes it easy to read up on something?

Jul. 2nd, 2009

warning

Self-promotion

I've always avoided promoting myself. In high school I went through the normal track rather than going to the math-science center because I would have had to get letters of recommendation. I went to a college I knew I could get into, and similarly fell into my job. But I'm doing a resumé project for an English class and it's making me think about how I'll have to promote myself in the future, in particular to apply to grad school, but more broadly as well.

I'm going to want to set up a website and fill out my personal software portfolio, and list my website when I comment on blogs and forums, maybe even in an email signature. Google myself and make sure everything looks all right.

People who promote themselves get some advantage, which is some part of why everyone's encouraged to believe in themselves, but it's sort of a zero-sum game, isn't it? Though honest self-promotion serves a purpose: employers won't know about you if you don't get your name out there, and the more information you give them the better a decision they can make. But honest humility, applying for the job but listing your faults, would also let them choose more wisely. Humility, however, is quieter, and so people who don't think they're right for a job will not often apply, which makes it less effective. If everyone were too humble to apply for jobs nothing would happen.

I still hope self-promotion eventually becomes less necessary. I guess either the employees or the employers still have to try and get the information out there so agreements can be made.

Jun. 30th, 2009

warning

Wiki web apps

A couple of days ago I saw a website for sharing code. http://www.openprocessing.org/visuals/?visualID=2356 It has the application for which you were viewing the code, followed by a box with the code. My first instinct was that it should be a wiki, so it would be easy to quickly develop code. I should think the page would include links to the first-posted or latest maintainer-approved version of the app.

This would be pretty appropriate seeing as javascript is becoming so capable. Google builds lots of dynamic interactive stuff in Javascript, though they use their Google Web Toolkit. Now, the GWT compiles code into javascript from Java. It seems like it would be wise for a software wiki to support that language, and others. Maybe it could be treated like the different languages of Wikipedia, or maybe different languages could coexist.

It might also be reasonable to support straight Java, and Processing, the language used on the site tat inspired this idea.

Anyway such a site would bring open source collaboration to a new level.

Jun. 20th, 2009

warning

Online names

I know it's sort of going out of style to call onesself by a nickname, in forums and such. I actually got told to use my real name on a mailing list once. But I can't help but hope that by the time I'm looking for work, it is acceptable to put one's internet name on business cards to ease people googling me.

Jun. 15th, 2009

warning

Proximity

This entry is about a user interface concept, mainly as it applies to Firefox tabs (which is probably currently the dominant task management interface).

I've been thinking about proximity of information. I'm not sure proximity is the right word though; another one would be availability. One reason I think this is important is that it's one of the differences between hard-copy information, ie books and paper, and digital information.

If I buy a book physically, I will put it somewhere, like a bookshelf or a table, where I will see it. This serves as a physical reminder of my intention to read it. Intentions are not the only thing which we use physical reminders for, but they are probably the main one. (Anyone have some other ideas?)

If I download an e-book, typically I will save it to some folder on my hard drive. At one point I left that folder open as a visual reminder to read the books, but reading books is a long-term intention and leaving a folder open is short-term. The folder ended up closed because of a computer restart before I opened more than one of the books.

Maybe I should go look in that folder again...

Anyway, a more practical method for me of leaving something digital out to be read is leaving it open in a Firefox tab. Because Firefox can save sessions, as long as I'm willing to go through the trouble of reloading dozens of websites at once whenever I'm forced to restart firefox (I increasingly am willing) I can just leave tabs open for months.

Opening tabs is a good way to preserve an intention because then when I close a tab I might find the thing in front of me again. I, and probably many people, have the habit of opening a new tab with a google search only to switch back to what I was doing without looking at the results. Or a Wikipedia article. But there are intentions which can't be recorded by these. Another would be opening new blog posts, but this doesn't work to well for me because I don't tend to remember what I was going to write when I come back to it later. I almost always remember why I did a google search, and as for Wikipedia remember what I was wondering often enough that it's fine.

Another way I increase my 'proximity' to some information is with gmail web clips, basically an RSS reader which displays recent updates in a relatively out-of-the-way place while I'm reading my email. This is surprisingly nice, and covers an 'intention' which opening a new tab can't really: the intention to keep up with, or to randomly read, certain RSS feeds.

This makes me think maybe I should have an out-of-the-way place on screen always display information I wanted to be at hand. Perhaps. After all, Firefox tabs can only display so much, and don't change what they're displaying at random.

However, concentrating on how tabs could do this job better, I think it would be really neat if the tab bar were always full. Close enough tabs that you can see them all at once, then close one more, and the empty space should get filled with something you previously intended upon doing. The easiest thing would be something from an RSS feed you've subscribed too, or a special group of RSS feeds you intend on reading every update from. Another possibility would be StumbleUpon pages, which would be relevant to your interests but not actually intentions.

Better would be a method of constantly acquiring intentions. When something isn't a really immediate intention, it could be moved into a reservoir rather than actually remaining open- like those random google searches. Users could be forced to put things in the reservoir by giving themselves a limited (constant) number of actually open tabs, by default the size which fits the screen. New tabs open next to the current one, and older tabs fall off... both sides, or the right, whatever.

Previous 10