Domain: ens.fr
Stories and comments across the archive that link to ens.fr.
Comments · 112
-
Please remember Unicode
I wish a little more attention were paid to the status of Unicode in the various web browsers.
Consider for example this Unicode test page I wrote. While it is acceptable for a browser not to have the appropriate fonts for the rendering of Sanskrit (the Devanagari alphabet, one of the most complex parts of Unicode, together with Arabic, because of the ligatures and the reversal of position of the vowel i), it should at least offer a transcription of it: yes, there are quite a few million people in the world who use the Devanagari alphabet (it is used in Hindi). Also, the fact that the different kinds of spaces are generally not correctly displayed is quite inacceptable.
Perhaps Unicode status does not attract much attention because of the erroneous belief that Unicode is not useful for typesetting English texts. That is wrong: the em-dash, the en-dash, the English quote characters (as opposed, e.g. to the French quote characters), the ellipsis, and various similar punctuation characters are not found in the standard ISO-8859-1 character set but only in ISO-10646/Unicode.
Netscape is probably the worse of all (though the little I have seen of w3m indicates that it tries hard to compete with it). For example, it selects the display font according to the document encoding, which is an absurdity, in contradiction to the fact that all web pages are ``at the bottom'' in Unicode (and all Unicode characters are always accessible through the &#xxxx; encoding, whatever the document character encoding). The (related) fact that Netscape does not recognize — and such has always driven me out of my wits. Amaya, despite the fact that it is the W3C's own web browser, used to be quite bad at Unicode; it has made much progress recently (but I think it still cannot use an ISO-10646-1 font even if you have one). Mozilla is also still incomplete in this respect. Lynx and Links are both quite good. In fact, Lynx in a UTF-8 xterm (compiled with --enable-wide-chars) with a fixed-width ISO-10646-1 font is still the best we have in the matter of a true Unicode web browser; but since UTF-8 breaks ncurses, it will sometimes behave strangely; and the combining diacritics, which have to be handled specially, are not so.
We are still very far from the beautiful rendering I show as png images on the test page I mention above. Sigh.
-
Kinds of obfuscation
There are several kinds of obfuscation. The ones you generally see in IOCCC's, e.g. using one-letter variable names, formatting in bizarre ways, making abstruse use of CPP, and so on, are IMHO far less interesting than true algorithmic obfuscation.
Some obfuscation is easy to produce algorithmically. For example, it is easy to have a program that will parse a C listing, replace variable names by things like O0O0Ooo, make white space come out in strange ways, and so on. Or, compile the program using gcc -O6, take the assembler output, and decompile it in an obvious way.
Much more interesting, I find, is the more ``algorithmic'' kind of obfuscation, where identifiers are not deliberately unclear, but where the overall pattern of execution is difficult to follow. Take the following Scheme example, and try to understand how it works: then you will see what I mean:
(((lambda (foo) (newline) foo)
(call-with-current-continuation (lambda (bar) bar)))
((lambda (foo) (write-char #\*) foo)
(call-with-current-continuation (lambda (bar) bar))))There are programming languages where nearly every program is obfuscated (in both ways I descibed!), and it is very difficult to write one which is not. One such language I invented is Unlambda.
-
Re:Ever heard of "Turing Completeness"
hey, Unlambda is Turing-complete... how about we rewrite the Linux kernel in that?
:) -
ignorance
i am shocked by the incredible ignorance displayed in this article, by the way it covers such a tiny division of the programming languages in wide use, and such bad languages at that. This person seems to think that everyone in the world uses obscure, cumbersome languages like C, C++, objective C, java, perl, lisp, PHP, Bash, FORTRAN, Cobol, Forth, smalltalk or some form of assembly. What an isolated world this person must live in! He seems to have some extreme bias toward use of functional programming languages.
Specically i am very annoyed by the total lack of any discussion of INTERCAL, umlambda, or orthogonal--what i feel to be the most important languages out there, especially for games. None of these were even mentioned! Why would you write an first person shooter in C++ instead of INTERCAL? Why, as far as i'm aware there isn't even opengl available for c-based languages!
If you don't like these three above for some silly reason, at LEAST use Forth. any language where you can't redefine the value of four is for wimps. Or use Visual Basic-- its usefulness, portability, flexibility and sheer power are unparalleled. (i'm sorry, that last bit was a little over the top, wasn't it?)
-mcc
hmm. that reminds me, i need to learn objective c..
2B OR NOT 2B == FF -
Re:Time Zones
GMT is what it says it is: the mean solar time on Greenwich meridian (after correction of the Earth's nutation and pole displacement). It is also called UT1, or Universal Time. This time standard is obsolete and deprecated, because it is an astronomical standard, and is subject to many irregularities.
The current time standard is UTC, or Universal Time Coordinated, which is defined as offset by a certain number of seconds with respect to TAI (the international atomic time, maintained by averaging a number of atomic clocks around the world), currently UTC=TAI-32s. This offset is changed occasionally by inserting a leap second in UTC, so that the difference UTC-UT1 never exceeds 0.9s in absolute value (currently it is around -0.3s).
For nearly all real-life practices, UT1 and UTC can be assimilated under the general name ``Greenwich Mean Time'' or (more correctly) ``Universal Time'', but the correct term is ``Universal Time Coordinated''.
See this page I wrote for more information.
-
Infinity
Hair splitting alert ON.
The number of (different) pages on the web is actually infinite. Here is a sample infinite component.
(Actually it's finite because the maximal accepted length for a URL is finite. But it's way above the billions.)
Note that these are not dynamical pages. Dynamical pages (i.e. pages whose content changes for the same URL) don't count: they're cheating.
(The source used to generate this infinite number of pages is available under the GPL.)
-
Infinity
Hair splitting alert ON.
The number of (different) pages on the web is actually infinite. Here is a sample infinite component.
(Actually it's finite because the maximal accepted length for a URL is finite. But it's way above the billions.)
Note that these are not dynamical pages. Dynamical pages (i.e. pages whose content changes for the same URL) don't count: they're cheating.
(The source used to generate this infinite number of pages is available under the GPL.)
-
More Opensource RPGs
Legendes is an interesting thing I recently stumbled on. The author says, "Legendes is a complicated story, which can be summarized as follows: stagnation, restart from scratch, one month's development, repeat ad lib. Currently, Legendes is in the ``stagnation'' phase. Duration of this phase is unknown."
It looks like an older version of Ultima. The first version is written in Pascal, but the sequel is written in C. The ftp directory does show some signs of life. They also have something that looks like a client. After trying Ultima Online (and being annoyed by its amazing slowness on 128mb/266Mhz/Cable Modem setup, as well as the Win32 requirements), I think it'd be interesting if we had an OpenSource RPG that worked similar to Ultima, but wthout all the slowness :-)
--- -
More Opensource RPGs
Legendes is an interesting thing I recently stumbled on. The author says, "Legendes is a complicated story, which can be summarized as follows: stagnation, restart from scratch, one month's development, repeat ad lib. Currently, Legendes is in the ``stagnation'' phase. Duration of this phase is unknown."
It looks like an older version of Ultima. The first version is written in Pascal, but the sequel is written in C. The ftp directory does show some signs of life. They also have something that looks like a client. After trying Ultima Online (and being annoyed by its amazing slowness on 128mb/266Mhz/Cable Modem setup, as well as the Win32 requirements), I think it'd be interesting if we had an OpenSource RPG that worked similar to Ultima, but wthout all the slowness :-)
--- -
OpenBSD's ftpd
Assuming you're not already using OpenBSD, there's a port of their ftpd to Linux. Get it at http://www.eleves
.ens.fr:8080/home/madore/programs/#prog_ftpd-BSD. There's been some patches from the OpenBSD folks for their ftpd since the port, but they apply pretty cleanly. My only beef is that the Linux port doesn't include 'ls' in the ftpd binary. I'm trying to fix that, but it's not turning out to be as simple as planned.
It doesn't have all the bells and whistles that ProFTPD has, but it's probably a lot more secure.
To give you some idea of the features, the man page is here. -
Re:c2english translator
the part where you turn your algorithm into English can just as well be done by hand... the important point for legal (and, to a lesser extent, practial) purposes is that the resulting English can be turned back into usable source code automatically. I did something like that for Perl once, but it has a long way to go to make it really usable... feel free to improve
:) -
Re:English Computer LanguageI wrote a Plain English --> Perl translator a couple years ago, to make a point about source code vs. speech. Of course the subset of Plain English it understands is quite limited, but certainly enough to express your average bit-twiddling crypto algorithm.
it's all here