Bugs Fixed, and other observations

March 14, 2008: All windows showing Turkish, not least the translator window itself, should spontaneously bring up a Turkish character set. You can do this manually - in Internet Explorer, it's "View>Encoding>Turkish (ISO)" or "Turkish (Windows)" - but not even a Liberian website will make you do that, and I say that with 1000% confidence. You check Liberian websites and tell me if I'm wrong!

Also: by now I think I've fixed most or all of the problems I myself - and perhaps you too - found in sentences with izafet. Runtime errors, actually. Python 2.5, which is what I developed in, has the ability to handle sets, but Python 2.3, which is what my host uses, does not, so I had to write some functions to duplicate this modern scientific convenience.
July 27, 2008: Thought the Turkish data-miner might do Azerbaijani as well, but now I promise nothing. Doesn't seem to have trouble with Azerbaijani words that use the apostrophe as a letter. (In Turkish, the apostrophe is strictly a grammatical cipher, and a very helpful one for this particular utility.) But such Azerbaijani as I see on such websites as there are indicates the apostrophe is only a letter in this language, and is not used as it is in Turkish to demark the border between a proper noun and its inflections. That's a nasty break.

Or maybe not, since how much printed Azerbaijani (Latin or Cyrillic) is there, anyway? To say nothing of Turkmen, whose own grammar is fraught. (Correct me if I'm wrong, but subject and object participles in this language are about the same, so "man-eating shark" and "shark the man ate" could be the same. If you're bathing on the Caspian and people on the beach start waving their arms and yelling at you, I urge you to swim to shore, pronto, just to be on the safe side: I doubt they're saying, "Hey, we've barbecued the shark and eaten almost all of it, don't you want some before it's all gone? Also, the beer isn't getting any colder!") I have a Kazakh primer which shows a hyphen where Turkish would show an apostrophe, and that would be a great boon, but I still don't know if this is just a helpful invention of the author, or whether Kazakhs themselves do this all the time. I really want to put the Altaica in Machine Altaica, but the fact is, only in Turkish is there a great vein of written ore.
August 11, 2008: Got Firefox 3 working OK with the site. Exactly why this is thought to be a superior browser, I cannot say: most of the nice features (and Firebug is a nice feature) are evident only to developers, not to users. The one and only "computer science" course I ever took was in 1978, and there were few dogmatists back then. Anyway, she runs. If your Firefox popup blocker is a-blockin', the procedure for disabling it is rather elaborate: "Tools>Options>Content", then uncheck "Block pop-up windows." Don't bother with the first thing Firefox shows you, which is a we-put-your-condom-on-for-you banner across the top of the banned page, with an "Options" button showing "Impose U.N. sanctions" (just kidding!) and the like.
August 20, 2008: My chagrin was great upon discovering not only that the Portuguese for "grandfathers" is avós, not avôs as I have it right at the top of this page, but also that the Turkish translator has the word for "tourist" wrong: it's turist, not türist. I have changed the latter, and scolded myself for depending upon memory. As for the granddads, I'm keepin' 'em as is. One of my dictionaries allows as how my spelling is pouco usada, and for the purposes of a typing exercise, my technicality-loving conscience is clear: pouco ain't nunca. I'd seen the commoner spelling on Portuguese websites, but thought little of it: those guys often use acute accents where Brazilians use the circumflex. Here, however, hands join across the Atlantic.
October 29, 2008: Just about to roll out the aprosody analyzer, when I get an execution error I can't figure. It's in the function that converts cardinal numbers to ordinals. You give it a number, or a numeral, and it gives back, or ought to give back, a word with "st" or "nd" or "rd" or "th" on the end of it. Except sometimes it throws up its hands, as if I gave it a pizza or a gerbil or a Belgian Defense Minister. In the more formal precincts of computer science, these are known as type errors. In such circumstances, confusion is understandable. But wherefore the confusion? I'm unsure. The admittedly occult example string will be processed OK, but changes to it may not be met with cow-eyed tolerance.
February 16, 2009: The Turkish miner was balking, and I thought it was just a Slow Server Day, but that is a slander against my very-good-except-for-sticking-with-Python-2.3 host. In fact, my own program was crashing. Turns out it objected to line breaks in the input. I believe I've got the machinery culling them now. Ought to have been easy, something like replace(/\n/g,""), but I never could make that work and came up with, as one so often must, a string-handling function of my own. Believers in what are known in Lower Computerovia as "regular expressions" are full of illogical assurances. It's easy! Just do ten hard things first! Give me a Turkish crossword any day.
February 19, 2009: The manifold-inhibition "model" differs from its companions in that it runs a Java applet. This was compiled in 1.6.0_03, which may not be backward-compatible with the Java Runtime Environment you have, but we shall soon find out. If it isn't, you can always upgrade your computer quickly and for free by downloading the latest JRE from sun.com. I have called computer languages "the several living dialects of Esperanto," but Java is Esperanto: a language hardly anyone actually speaks, full of rules more inexcusably cavalier for having been willfully invented in living memory, in a gymnasium for those pedants who, unlike most pedants, Like It To Hurt. Very different from JavaScript, which is a friendly dog rather than a sullen reptile, and for which there is always plenty of cheerful assistance available on the Internet. The other "models" are all-JavaScript, and the code is available for viewing as stated in this one; the manifold-inhibition one has the Java code embedded as a very large comment in the .htm, and is likewise available for inspection.

Since I'm on the subject, and since this is an "Observations" page, I might observe here that my assertion about "Tagacata Squint" is, on Internet evidence, way off: nobody remembers it. A Google search turns up just two hits - and this site is one of them.
June 1, 2009: Finally tried the site on Safari, and most stuff looked OK, but the automatic copy-to-clipboard feature in the sample sentences and the glossary seemed not to work. I must confess that I just don't "get" Macs. Maybe from the engineering end they are elegant, but from the user end I just see zigging instead of zagging. If I wanted a computer to match my toaster, or my sofa, I'd buy a Mac. But I don't, and I haven't.
September 18, 2009: Another applet here, and yes, as intimated back in February, you better have, but fortunately can also easily get, the right JRE. I must say, one does come around to Java Swing, and if anyone wonders why computer languages have quirks, well, here's the answer: languages have quirks. Still, I was a bit annoyed at never being able to figure out how to put a spinner - or as Java Swing calls it, a JSpinner - on that third tab, where you see all those radio buttons. A spinner, a compact rolling display of numbers, would have made much more sense. But I just couldn't make it go. I might have taken my plight to the Java Forums, but I do not care to be snarled at by pimply wankers.

It will be observed I added a paginita to describe regular expressions. Sorry, but it had to be done. It was either that, or make up my own opaque convention for describing a multiplicity of alternate spellings. Better to do it the way Java expects to see it. If you make a mistake inputting a regular expression, one which the matches() function can't handle, this will be gulped by the machine - you should not crash. But your malfeasance will appear as a comment in the Java Console.

Late note: programming something utterly unrelated to this earlier today, I came across a bug report to the effect Swing text containers might have a capacity of about 38,000 characters. Haven't tested that in this applet, but I wouldn't be surprised if the roof is less than sky-high. If this were an application, not an applet, I'd program in a filechooser and you'd go to some text file that held your corpus, rather than do a copy'n'paste. if there's demand, I will so code.
September 20, 2009: Struggling to get this latest applet running on the Internet and not just on my laptop, I found success by compiling it in 1.5.0_06 but running it in 1.6.0_15. Recompiling this one likewise, I found that guy's JavaScript-to-Java compromised, so I left it as it was, compiled in 1.6.0_03. I have no idea what's going on. Hitting the Java Forums a lot of late, I really get the idea nobody understands whether this language is going in any direction orthogonal to a toilet. Maybe if you're programming microwave ovens with it, it behaves rationally and matures reasonably, but otherwise...
October 18, 2009: The applets have both been recompiled in 1.5.0_10, and I, unlike Sun Microsystems, devoutly hope they work. Meanwhile, I have also uploaded the weedwhacker, which is all-JavaScript, ahh, but tested only in IE8 and FF3.5. That may be significant, as I do not know how other browsers handle the style attribute "position." I set it throughout to "absolute," which I now know is anything but. You build a <div> with absolute positioning, then append another <div> to it likewise, the latter's "absolute" coordinates turn out to be (in IE8) "relative" to the former. OK...but I still smell a rat. I have striven to keep my HTML/JavaScript unchallenging, lowest-common-denominator you might say, so any browser can handle it, but I understand that where browser detection really matters is with styling.
October 23, 2009: Well, it finally happened: somebody USED the Turkish-to-English translator. As a translator, unfortunately; the homepage ought to have made it clear the man just ain't big enough. The sentence submitted was kilisin içinde mozaik var, "Inside the church there is a mosaic." That's me translating, not the machine. Well, this did motivate me to add içinde as well as its opposite, dışında, to the postposition lexicon. What it should have done was motivate me to create an entirely separate one, for all those wordlets Turkish uses to establish position. "Inside the box under the table in front of the window" comes out in Turkish as "On/in the window's front's table's underside's box's interior," and this device ought to be able to figure that out. (Actually it already has that ability: I could just put these wordlets in the noun lexicon. It's getting the program to convert the decrypt into English-what-English-speakers-speak that's the enduring challenge.)
December 13, 2009: Just disabled the "Get its inverse" button on this, having belatedly apprehended a fact about matrix inverses: not every matrix HAS an inverse. And during Final Exam Week! I regret any flunked physics courses this may have caused. Well, I was crunching through Deutsch's Algorithm and, because I was trying to be conscientious, decided to do Exercise 6.1.2 in Yanofsky and Mannucci's text, and got a VERY misleading answer. So. I will replace this button with something else: maybe an automatic Hadamard-matrix generator. That could be useful.
January 28, 2010: Came across a reference to a Star Trek episode in which an alien culture speaks solely in allusions to a mythology...much as described here. Only on that show, the aliens were not suspected of being demented: they were suspected of being aliens, "Darmok" specifically. Although everything on this website is copyrighted, nothing is patented, and I made no effort with this program to check whether it had been done before. By "no effort" I mean not merely "failed to check the prior art" but also "failed to watch Star Trek." But I'm flattered that such a TV show would have anticipated me.
February 17, 2010: The Turkish sample sentences and the glossary now have their direct-to-clipboard copying feature enabled only for Internet Explorer; or, more precisely stated, for any browser that recognizes the variable "window.clipboardData". I understand there is a way to arrange similar functionality in Firefox at least, but that's all on the client (you!) side. I had thought this feature worked in Firefox, but no, it surely does not. I really don't understand why IE is so hotly derided. Supposedly it has security shortcomings, and maybe incontinent spillItToClipboard capability is considered one of them. Hell, I don't care. I don't wear a football helmet when I kiss a girl, either.
April 1, 2010: More browser trouble: this works in IE but in FF and Chrome there appears to be a memory leak. Task Manager may show a tall mesa of CPU usage once you get into the breakfast items. I do not yet know why.
September 9, 2010: The Lamarckian evolution model has been made a little less wild. As it does "discrete math," it can end up dividing very big numbers by very small ones, or vice versa, running data points right off the graph. I've rigged it so if the concentration of the toxin molecule zeroes, no further calculations are done. Looks better. Also: the direct-to-clipboard capability in the standalone matrix-math calculator appears to burden the machinery in ways not seen with the Turkish sample sentences and glossary. Just because this tract of text is so much bigger? I don't know, but pasting the cargo into a Python IDLE new window just grinds along. You can always just left-mouse and sweep.
October 15, 2010: Both this and this run Java applets, or fail to: I find that IE8 in Windows 7 dooms the things. IE8 in Windows XP, or Firefox or Chrome in Windows 7, are all gracious hosts. And IE6, in a bar or in a bathtub. Good ol' IE6. It works. I am so sick of "increased security." Why don't we just irradiate everybody's midsections and be done with it? Be that policy decision as it may, applets are clearly on the way out, but in the meantime, what I said on 2/19/09 still applies. Do make sure you at least have a JRE in the 1.6 range.
December 19, 2010: My researches in connection with image recognition are far from over but let me just say right now: math websites are civilized. I think they know their stuff. This appraisal would carry more force if I knew my stuff, which I don't: topology is a new subject to me. But such sites as I have visited are, or act, briskly informative. Whether or not they really are, they sure do REQUIRE something of me.

I ordinarily define a "civilized" place as one where you can safely imagine total strangers won't hit you for no reason. A "civilized" place makes implicit demands on its inhabitants. Taxes are NOT what you pay for a civilized society; if they were, housing projects would automatically be nice places to live in; in fact, it's the other way around, where you start with civility, and only after having reached that minimal level of trust among whoever's around you, you advance to true "society." Math websites seem to constitute a society.
January 6, 2011: Java applets appear now to work with IE8/Win7/JRE 1.6.0_23. Maybe I should rewrite all my Python CGI's as such. They never really needed to be server-side. But I'll probably leave 'em. A passion for one's own website is not a good thing. One wants to get it out and working and anything beyond stylesheet tweaks - well, I wouldn't say it's like buffing an engagement ring while your fiancée is still wearing it, but it still seems an unhealthy show of affection for one's works.

The only Russian thing about me is this website. The only Chinese thing about me is my understanding that an intellectual is just somebody who doesn't do anything. The only Moslem thing about me is that I am undisturbed by the deaths of Moslems. The only Seventies thing about me is that I feel morally compelled to drive a tiny high-mpg car. Anyway, it is not good to be Russian or any of the others.
March 8, 2011: But as long as I'm leaving the Python CGI's alone, in particular the flagship one for the translator, I ought to consider changing the way the Turkish-English lexicons are written. OK - I'm considerin' it. There. I'm done!

Seriously, it would make a lot of programming sense to convert them to XML. Right now, they are .txt files, and the Python program reads them fine. But as their data also appear in the sample sentences and the glossary, both of which are standalone .htm's, it really would make sense to put all their content in a central XML place and use XSLT to render them, when they need to be rendered, in their own windows. I say this now, this week, only because this week was the week I finally learned XSLT. I'd known about it for years, but never understood at all what it was for. XML was conceived to expand HTML: why would you ever need anything to go in the reverse direction?

Well, here's why: if you happen to be writing a program that presents content that legally needs to be presentable to blind people, then I am here to tell you, put all that content in .xml files. Then write an .xsl file that outputs the .xml's in text-only form. At a stroke, you have satisfied the legal requirement.
March 30, 2011: The dementia "assistive technology" is no longer interdicted for non-IE browsers. I zeroed in on the problem: the function that disables buttons wholesale just goes gaga when .setAttribute("disabled",[boolean]) shows up. Changed it to .disabled=[boolean] and maybe that works. To avoid the CPU usage spike but not to make the buttons gray: for that, an explicit change of color was required as well. OK. I have explicitly changed the color. Oh, and another thing for anyone still awake: in Firefox, colors may be written in JavaScript as "#hhh" but they are read as "rgb(h, h, h)". OK, again.

I find myself unable to care, never mind look up why any of this is, because I know that if I did, it wouldn't be an explanation, it would only be a description. Which I've already just provided, myself. One wonders why "the semantic web," or anything even a tenth as sophisticated, should ever be a goal. In 1997 a besotted friend described to me websites having to do with Americans detained in Russia for decades after WWII, and it was plain to me these sites offered no fresh material but rather were all quoting one another; in 2011 my mother read me a newspaper article about well-framed Googling, with craftier counterexamples to "How much money do I have?", and it was plain to me, again, that the Internet was not an arena for resourcefulness but rather an alternative to it. Hairsplitting competition among browsers manages to be both silly and irrelevant.
April 17, 2011: Just to say I did, I revisited the almost-forgotten "raisin-debt" for this website, seeking to add to it the ability to handle the -dukça verb suffix. Turned out I'd already built in most of the capability; what I added here was just some end-stage tidying-up of the English output when the subject of the verb is implied, not stated. If you remove the Zeki adam from the sample sentence, the difference will be taken in stride.

I am sorry to say, however, that oldukça with its idiomatic meaning of "rather" is NOT handled, nor is anything like her geldikçe, which means something like "every time [subject] comes...".

Still, I was pleased that I had done even this much, back in 2007. And in 2011, I am pleased to have been reminded, through the not-so-unlikely medium of Turkish rock'n'roll, of this particular verb construction. It was in the song "Hezarfen Ahmet Çelebi": Düşündükçe, içim sızlar, içim sızlar! I'm still not sure what THAT means - "The more I think about it, my insides ache!" - what can I who am not a Turkish rock star know? - but the song still impresses: I had never heard of the title figure, nor of Piri Rais, but presumably Turkish schoolkids have, and a band can allude to this cultural furniture, confident its audience will understand. If you don't, well, look these guys up!
July 24, 2011: A way-lately perceived shortcoming of the Turkish data-miner, and also of the other things on this site that use .cgi scripts, namely the Turkish translator, the matrix math utility, and the aprosody detector: these things send what are known as query strings back to the server-side script. And such strings have a length limit, dictated (I think) by the browser, in most cases around 2000 characters. Soooo...be careful. Be...lean. At least with the matrix-doer, you can fetch a standalone version. I should really build in a warning system for all of these .cgi's, something to tell you upfront that you've exceeded a physical limit. Or, better yet, ditch server-side scripts altogether.

Is there demand? YOU tell ME! Then I will serve YOU! For MONEY!

An unrelated problem, in Chrome anyway: the very, very special characters in the Kazakh text-handling code samples don't show. They do show in IE8. I presume this is related to the greater and therefore self-defeating configurability of non-IE browsers. I trust the passionate specialist to have and pick a browser that works. I know I'm sounding cranky, as if I were a Belgian cannery and the Internet existed in 1911 and you couldn't figure out which end to open, so of course you'd rather type righteously while starving, rather than hack the fool thing. My sincere American advice is: hack the fool thing.

Well, at least I changed it to Wind CAVE on this! I fixed at least ONE thing today!
October 27, 2011: I observe that the Q-&-A detector's interface will no longer let you paste the suggested test text into it. Not sure I can fix this. It appears Java applets now actively thwart this sort of thing. Right now I'm using Windows 7, JRE 1.6.0_29, and either IE8, Chrome 18 it looks like, or Firefox, which version it refuses to tell me. 7-ish, I think. Anyway, what a pain if you have to type corpora in. Sorry. I understand Java applications will play nice with system clipboards, but I don't believe much of anything about Java nowadays.

And, since I seem to like doing business this way, an unrelated issue is again addressed: the Acre piece no longer promotes as truth the idea that the Wright Brothers were flying in 1904 or 1905 as Santos-Dumont was in 1906, i.e., off a wheeled undercarriage. Maybe they did, but from the pictures I'm seeing, they were still on skids. Which would have necessitated a catapult, or at least some kind of ramp. I can sort of see why someone would quibble over that. Luckily for all of us, few people actually do, outside of Wikipedia.

(Looking at Wikipedia, you almost wish there were money involved - you almost wish there were big bucks at stake, a winner-take-all for First Powered Sustained Controlled Survivable Manned Flight. Which is how the Wright Brothers themselves looked at it. As for Wikipedia partisans, I don't know what fuels them. Look, here's how to do a Wikipedia entry! And while I'm at it, here's how to review a motel!)
March 8, 2012: About the latest on South America there is or ought to be nothing buggy - it's just HTML - but browsers being what they are nowadays, even this simple item may look funny. Rather than mess with it, I have just thwarted browsers other than IE. Though even IE is cranky. IE8 (in Windows XP) does not behave like IE9 (in Windows 7). The variable window.dialogArguments "arrives" later in the latter. I am so sick of this. The problem lies in the dialog that contains the enlarged photos: it sometimes figures out how big the image is. I troubled to hardcode the image sizes. Maybe that will help. But not if they arrive later.

I can see why the world might want more than one browser, but then... actually, I'd be fine with one browser. In this case, FF and Chrome don't recognize window.dialogHeight. So either they just won't let the programmer dynamically change dialog size, or they will, if the programmer phrases the request some other way. But since I want a single uncontroversial outcome, shouldn't there be just a single uncontroversial way of doing it? It's as if innovation in HTML consisted only of adding new, secret letters to the alphabet. And all these letters are silent. But it matters a whole lot where you put 'em.
July 3, 2013: In case you wondered whether anyone could be spurred by embarrassment, wonder no more. The problem with displaying non-standard Cyrillic for Kazakh had somehow got worse, and in all browsers. So, as obscure as this crisis was, I perceived it and answered it what I had done with the letter in Slovenia 2004, and use Unicode for every odd letter. I still do not understand why the <meta charset> business didn't work. Nor did Wikipedia's own recommendations for resetting one's browser.
October 29, 2013: I had thought that if any kind of hyperlink was available to a page, Google could lead the way to the page. Well, it seems not. Being the modest sort, I had a link whose apparent content was just a space between two words. You could find it only if you hovered over it. Or checked the source code, which is what I thought Google would do; but repeated tests, by asking for meta tags or even exact quotes, turned up nothing. Well, if NO ONE can EVER find it, no one can pass it on to his friends, which is what I was aiming for! So, now I connect to it a bit less coyly. I could've sworn, though, that there was something in my visitors' log about it. If I rightly recall, Russian robots did find the page - which is sort of fitting when you think about it. The country that the Long Telegram was all about automated its interest in the thing! These people must be formidable!
November 23, 2013: Further on the subject of Russian robots, I am experimenting with ways to throw the things off. In my visitors' log I see, just about every time I check, electronic feel-coppings of the Canada 1984 piece. Why is this? I want to know. It does have the word "Soviet" in it, so that is what I am intentionally misspelling first. Let us see if that is all it takes to fuddle the machinery.

If it does, it will prove only that "Soviet" is one of the words being sought, for I have used it in many other pieces and Russian big-iron has cared nothing at all for those. I might try messing with other words, like "superpower," "aristocrat," "savage," and "Reagan." But whatever works, or not, I'll still wonder why this Canada thing should have attracted so much mechanical attention. Let's assume the nastiest reason: Russian women want me to marry them, and they will do anything to catch my attention. Hmm. Maybe the mere combination of "Soviet" and "Canada" is all that is being looked for. (It being figured that prospective American husbands would ask too many questions?) Well, I can't very well misspell "Canada," for that would look just too weird. I'd use a code-phrase, as I did for "Soviet," but I can't think of one for Canada.
December 18, 2013: I am pretty sure now that Russian robots are cannibals. Well, coprophages. They do not munch their way through the Internet, they watch one another, and eat where others have "gone." I cannot say which bot found the Canada 1984 piece first but apparently other bots keep looking to them for it, even though I changed its name and you get a 404 if you go to it. Meaning, it's just not there. I do not know why my host reports these as visits. Visits to what?
January 27, 2015: Is there a verb "to sidegrade"? There is now! As in "I just sidegraded to JRE 1.8.0_31." The manifold-inhibition "model" seems still to run, as does the Q-&-A detector, although in Chrome some of the JLabels appear truncated. I cannot be bothered. I reached my bother-limit just telling my netbook these applets were OK. In Chrome, and now in Firefox. The default "security setting" is Way High, and can be got around - I'm not sure "reduced" is at all the right word - only on a site-by-site basis. When you go to the Java Console to exempt a URL, Java tells you this could be dangerous; and then it lets you do it anyway.

My attitude toward security-in-quotes is: I am 57 and I do not have any condoms. If I did, the reasons could only be tawdry - stupid, really. My attitude toward security-for-real is: if "upgrades" to Java are really "shutdowns," why are we even here? I suppose it makes sense that a language in which a machine issues orders to itself makes that machine obey orders from other machines. Java, more than other languages, has billed itself as an Esperanto. I wonder if the inventor of Esperanto foresaw its speakers not just listening to but agreeing with everyone. I bet he did. I also bet he imagined that if there were any hitches, it could not possibly be because there was too much agreement.
April 2, 2015: Thought of adding something to Why Not A Blog but I believe that one stands just fine as it is, and so I'll just stick my extraordinarily belated "observation" here. I took way too long to figure it out from comment threads. I have always viewed commenting online like sending a Letter to the Editor: I listen and think, then maybe I clear my throat and stand up, and say something not obvious, and sit down. That is not at all how others view it. Commenters gas because they feel like it. There is no intent whatsoever to add value. It's small talk. It's social. These slackers actually seem to know one another. And to the extent they can form human relationships, they do. That they are wearing masks and using megaphones fooled me into imagining it was all a much deeper game.
January 1, 2016: Having bought a laptop with Windows 10 and the Edge browser, I observe that none of my applets works anymore! Maybe "Compatibility View" will help. I am sorry to say that I do not care anymore. I could rewrite the applets as applications and add such code as is needed to make them startable with Java Webstart. Or, you could do that: everything on this site that has an applet has the Java code embedded as a great big comment inside the HTML source.