Its bloated, its old, it has only few common modern extensions, it can run code from the 1960s. Things that can be said about Common Lisp. I already heard people recommend to "forget about Common Lisp" and use one of the shiny (new) other lisp dialects.

Still, I prefer Common Lisp to others.

Well, firstly of course, the mighty object system, the CLOS, is one reason for me to do. Few other languages have an object system so versatile and still so easy to deal with, and so well-optimized. I saw QT implementing its own C++-Preprocessor to have proper signal-passing-mechanisms, and the GLib doing similar things programmatically. Well, CL has it.

And one reason why I prefer it especially to Clojure: It encourages functional programming, but does not try to enforce it. Sometimes, a statefull loop is the easiest way to express something. Purely functional programming is - in my opinion - useful when I want to have formally verified code using strong type-systems, because thats something I am willing to put more effort into. And of course, good functional code can look pretty. But I dont share the ideology of everything having to be functional without any further use.

Well, with purely functional programming, there is a major lack of Common Lisp: When really programming purely functional, lazy evaluation is something desirable (its also desirable in other situations). There are some projects trying to implement lazy evaluation, but of course thats extremely hard without having to re-implement half of the language. Maybe that one will stay a lack of CL. But maybe not. At least lazy lists are not a real problem.

Something similar to this problem are continuations which also appear to be hard to implement - but there is a library, called cl-cont, which has some minor limitations but works.

For a larger community, the main problem of Common Lisp, I think, is the lack of libraries. With the many new "standards" that evolve every day, with the many new programming libraries doing magic that is not portable, it is hard to stay up to date. The IT-World changes every day, so software that isnt maintained will soon be deprecated.

And here is the one major advantage of Common Lisp: It is a stable standard. This is sometimes criticized, but in my opinion, thats a major advantage. Common Lisp offers a lot of high-level and low-level-features, there is one CL for almost every platform, and still its a standard that has been stable for a long time and is not likely to change.

But even though the ANSI-Standard hasnt changed, there are a few extensions that are de-facto-standards which are supported by vitally every implementation. For example gray-streams, the metaobject protocol and the common foreign function interface. And there are some portable libraries for threads, weak references, file access and sockets.

Any of these extensions defines as much as necessary, but not more. Most features that one may want can be implemented by the mighty macro system. Just today, I read about a new project "SPARK" on reddit - well, some nice ideas, and I hope that this project will achieve its aims (but to be honest, I doubt it). One idea mentioned is special syntax for regular expressions - something that can also be done comparably easy in Common Lisp, using reader macros.

Maybe also a major problem of Common Lisp: You can do almost everything. Therefore, there is no need for extending the standard, which is why some API-designs appear very old-fashioned.

But I prefer stable old-fashioned but sufficient API to API that constantly changes.

Man hört und liest momentan ja ziemlich viel von Thilo Sarrazins Buch. Letztens sah ich es nun in einem Bücherregal in einer Buchhandlung. Ich kaufe meine Bücher normalerweise bei Amazon, dementsprechend bin ich selten in Buchhandlungen.

Das Buch interessiert mich eigentlich nicht im Geringsten, was man so hört ist es ein Trollwerk, aber ich kann es nicht beurteilen, denn ich habe es nicht gelesen und ich habe auch nicht vor es zu lesen. Angeblich macht er Aussagen über genetische Vererbung von Eigenschaften, und macht einige sehr kontroverse Aussagen, die man eher vorsichtig machen sollte.

"Das wird man doch wohl noch sagen dürfen", so unterstützt die Bildzeitung einige Aussagen von ihm. Und wie es scheint sind die Bildleser ganz Hin und Weg, und würden eine Partei die er gründet sofort wählen. An anderer Stelle wird er für seine Aussagen heftig kritisiert.

Ich vermute, dass trotzdem kaum Einer sein Buch gelesen hat. Ich sehe da zum Einen Leute die vermutlich kaum die Bild-Zeitung lesen können, geschweigedenn ein Buch das vermutlich in Hochsprache geschrieben ist, und Leute die auf den SPD- und Politiker-Bashing-Zug aufspringen wollen weil sie sich damit besser vorkommen.

Und ich? Ich bemühe mich diese Vorkommnisse zu ignorieren. So ganz gelingt es bei diesem Medienrummel nun aber doch nicht. Und ich finde es durchaus erschreckend, wie leicht es anscheinend ist, einen Mob von Leuten hinter sich zu vereinen.

Angeblich soll es um "Intelligenzgene" gegangen sein - ich kann es wie gesagt nicht sagen, ich hab das Buch nicht gelesen, aber zumindest die Öffentlichkeit hat teils darüber diskutiert, unabhängig davon. Nach meinem aktuellen Wissensstand, der nun aber auch schon ein paar Jahre alt ist, ist die Obergrenze der Erblichkeit von Intelligenz mal auf 30% festgelegt worden - das heißt mindestens 70% sind Erziehung (woher auch immer diese Zahlen kommen mögen), und 30% war nur eine Obergrenze, das heißt man konnte nicht zeigen dass es weniger sind. Das heißt, mit guter Erziehung kann man einiges an genetischen Defiziten ausgleichen - aber auch einiges vermurksen.

Und dieses Vermurksen ist, wie ich meine, das, was eigentlich das Hauptproblem darstellt: Die Verdummung der Bevölkerung. Vielleicht wäre das, was wir brauchen, ein radikaleres Bildungssystem, das als klares Ziel hat die Intelligenz der Bevölkerung zu maximieren.

Denn zumindest für mich ist klar: Das Letzte was wir brauchen sind mehr "Arbeiter" und "Praktiker", was wirklich mal notwendig wäre, wären mehr Leute, die Dinge die sie sagen möglichst weit durchdenken, anstatt bei jedem längeren Gedankengang der keine offensichtlichen Fehler hat sofort ihre Fresse aufzureißen, und zu versuchen, diesen in ein Gesetz zu gießen. Damit würden dann vielleicht wirklich Probleme gelöst.

Just erhielt ich einen Kommentar auf meinem alten Blog. Ich habe einen offensichtlich ironischen Artikel dazu geschrieben, warum man Atomkraft nicht abschaffen sollte. Ein Kommentator war ziemlich dumm und hat das nicht verstanden, ein anderer war weniger dumm hat es aber offenbar auch nicht verstanden, das nahm ein Atomkraftbefürworter zum Anlass, sich negativ über Atomkraftgegner auszulassen.

Nun, ich bin ein Atomkraftgegner, zumindest momentan. Und ich behaupte zwar nicht, dass ich besonders schlau wäre, aber auf dem Niveau des besagten Kommentators will ich mich nicht befinden.

Jetzt könnte also ein Zweifler die Existenz von Atomkraftgegnern mit denen man nicht verglichen werden will also als Anlass nehmen, für Atomkraft zu sein. Nun, es gibt durchaus auch Atomkraft-Befürworter, mit denen ich nicht verglichen werden will. Diese sind für mich aber kein Argument gegen Atomkraft.

Das Problem ist ein Generelleres: Die Atomkraft-Gegenbewegung ist nach wie vor eigentlich eine kleine, alternative Bewegung, die sich gegen das Establishment stellt. Sie bekam durch Tschernobyl ein wenig Aufwind, hier war eine Angst in der Bevölkerung gegeben, aber das ist jetzt mehr als zwei Jahrzehnte her - auch die Gegner von Ölbohrinseln bekamen aktuell Aufwind, auch das wird sich schnell wieder legen.

Es handelt sich hier jedenfalls um Überzeugungen von Minderheiten, die sich gegen das Establishment stellen. Überzeugungen, für die man nicht viel Verstand braucht, um für sie einzutreten, da das Ziel einfach ist und im Grunde jedem plausibel gemacht werden kann.

Sucht nun ein weniger verständiger Mensch nach einer Erfüllung seines Lebens, die ihm Anerkennung in irgendeiner Form bringt, so ist es nur plausibel, dass er sich, wenn er auf sie trifft, auf eine solche Gruppe einlässt. Sie richtet sich gegen das Establishment - man hat viele Feinde. Sie ist eine Minderheit - man muss sich innerhalb der Gruppe nur gegen Wenige behaupten, erreicht also einfacher einen hohen Status, und kann sich gleichzeitig dem Rest der Bevölkerung überlegen fühlen.

Ich vermute zwar, dass es bei Anhängern etablierter Meinungen genausoviele Menschen dieser Sorte gibt, aber sie kommen eben nicht so oft zu Wort.

Ich halte es jedenfalls für gefährlich, Ansichten nach deren Anhängern zu beurteilen. Ich rede bewusst von Ansichten - nicht von Parteien oder Vereinen. Vielleicht ist es bei Themen wie Atomkraft nicht gefährlich, denn selbst wenn es ein Reaktorunglück geben sollte, wäre das nicht das Ende unserer Gesellschaft (nur der qualvolle Tod eines beträchtlichen Teils davon und die Steigerung des Risikos diverser Krankheiten). Aber beim Rechtsextremismus sehe ich zum Beispiel die Gefahr: Er wird oft deshalb verurteilt, weil die Menschen die ihm angehören oft in der Öffentlichkeit ein ziemlich assoziales Bild abgeben. Diese Art der Argumentation ist aber nicht nachhaltig.

Selbst nachdenken ist das Wichtige.

Ich verzichte bewusst auf eine Auseinandersetzung mit dem Thema Atomkraft. Es geht hier um etwas viel Grundsätzlicheres.

Was für ein netter Artikel in der Zeit. für den ich da zwanzig Minuten meiner begrenzten Lebenszeit versch sinnvoll investiert habe

Ein Artikel der sich mit einem einigermaßen aktuellen Thema zu beschäftigen versucht, der Beziehung zwischen Atheismus und Theismus. Schon das Vorwort verspricht großartiges. Am Vorwurf, Atheisten sei nichts heilig wäre etwas Wahres, und trotzdem alles falsch.

Es folgt eine lange Aufzählung von Zitaten, wobei es scheint dass zu jeder getroffenen Aussage auf einer vorderen Seite eine gegensätzliche Aussage auf einer hinteren Seite des Artikels folgt, und jede getroffene Aussage mindestens einen Absatz später relativiert wird.

Dies kann zur Ablehnung des Artikels bei manch einem Leser führen, nicht umsonst, denn hier wird eine Bindung gelöst, die sehr wichtig ist, die Bindung zum Sinn. Wenn mit dem Artikel die Bindung zum Sinn gebrochen wird, stellt sich die Frage, was das bedeutet: Das Ende des Sinns?

Welchen Sinn solche Artikel haben, interessiert noch aus weiteren Gründen. Immerhin dürften drei Viertel der deutschen Bevölkerung solche Artikel regelmäßig lesen, und da wäre es einigermaßen beunruhigend, wenn sie eine Ersatzmeinung annehmen würden, etwa dem, dass Argumente die sich nicht gegenseitig widersprechen einem Text mehr Sinn gäben.

Die Frage nach dem Sinn und Unsinn ist auch deswegen wichtig, weil sie das Verhältnis zwischen Journalisten und Nichtjournalisten betrifft. Allein schon um des Erhaltes der alten Medien, der Stammtischphilosophenkultur und der Kultur der labernden Sozialkundelehrer Willen muss der Graben zwischen beiden Gruppen ausgelotet werden.

Ein Journalist sieht im Sinn teilweise das Problem eines Textes, denn der Sinn würde den Text angreifbar machen, während ein Text ohne Sinn aber mit vielen Zitaten von anerkannten Persönlichkeiten kaum angreifbar ist, oder wie es Leibniz ausdrückte "das Nichts ist einfacher und leichter als ein Etwas".

Man stelle sich vor, man stehe auf einer Autobahn im Stau und lese Zeitung, und liest einen Artikel, und sucht dessen Sinn. Plötzlich merkt man, dass auf die aktuell gelesene Seite eine neue Seite folgt, in der der Sinn folgen könnte. Und auf diese nächste Seite könnte wieder eine Seite folgen, die erst den Sinn beinhaltet. Und das immer so weiter. Jetzt stelle man sich - Gott bewahre - einen unendlichseitigen Artikel vor. Jede Seite verweist für den Sinn auf die nächste, bis ins Unendliche, doch keine ist wirklich der Träger des Sinns.

Das Problem solcher Argumente ist, dass sie regelmäßig scheitern. Deshalb lehnen viele moderne Journalisten rationale Gedankengänge inzwischen ab. Wolle man sinnvolle Artikel produzieren, dann hätte die Ausübung des Journalismus irgendwelche Voraussetzungen - aber dann könnten die wichtigsten Zeitungen kaum noch existieren.

Wenn jemand einen Sinn verbreiten will, muss er idealistisch sein. Wenige Journalisten erwecken diesen Eindruck. Etwa die freien Journalisten, die nebenher auch Bloggen. Die meisten Journalisten von Heute indes sehen keinen Sinn darin.

Gerne schreibt man den exzessiven Internetnutzern zu, sie seien realitätsfern, sie seien "Kellerkinder", sie hätten kein Leben, keine sozialen Kontakte, und sollten von den Realos lernen.

Aus diesem Grund drängt sich mir bisweilen der Eindruck auf, dass Politiker aller Lager, vor Allem natürlich die älteren und konservativeren Exemplare, die Netzkultur immer als etwas nicht ganz ernstzunehmendes ansehen, als eine Kultur von Leuten, die erst erwachsen werden müssen.

So ganz falsch mag dieser Eindruck nicht grundsätzlich sein. Doch es gibt durchaus ein paar Dinge, mit denen die Netzkultur gelernt hat, umzugehen. Dinge, mit denen Politiker anscheinend noch nicht umgehen können. Hier könnten und sollten sie lernen.

Den meisten Leuten, die das Internet schon etwas länger für etwas mehr als Facebook und E-Mails benutzen, dürfte der Streisand-Effekt ein Begriff sein, oder zumindest die Tatsache bekannt sein, die er aussagt - versucht man irgendetwas zu vertuschen, erregt es Aufmerksamkeit und sorgt dafür dass die Information sich noch viel schneller verbreitet.

Weiterhin sehr bekannt ist der Begriff des Trolls. Leute, die provozieren, um Aufmerksamkeit zu erlangen oder Verwirrung zu stiften.

Trolle gibt es auch im richtigen Leben. Fundamentalistische Organisationen und radikale Parteien verhalten sich zum Beispiel gerne so. Aber Trolle sind nicht immer nur schlecht, beispielsweise nutzen auch gewisse Umwelt- und Tierschutzorganisationen die Technik des Trollens hin und wieder erfolgreich. Ein gutes Trolling ist besser als jedes noch so gute Argument.

Auf das Thema gekommen bin ich aber vor Allem durch den Taz-Artikel "Schieß den Muezzin". Die FPÖ hat ein Spiel veröffentlicht, in dem man Muezzine mit einem Stopschild "verschwinden" lässt. Ich habe das Spiel selber nicht gesehen, es interessiert mich auch nicht wirklich, und ich kann gut damit leben, es nicht gespielt zu haben. Ich hätte kein Problem die Existenz dieses Spiels komplett zu ignorieren.

Die Öffentlichkeit offenbar nicht. Es steht in der Taz. Ich vermute, es steht auch in einigen anderen Zeitungen. Politiker und sonstige wichtige Personen sind empört. Anzeigen laufen, Staatsanwaltschaften ermitteln. Pure Aufmerksamkeit, typisch wenn jemand erfolgreich trollt.

Es gibt bekanntlich keine schlechte Werbung, es gibt nur Werbung. Das beste Verhalten wäre es also gewesen, das Spiel zu ignorieren, solange es sich nicht von selbst verbreitet. Wenn es Bekanntheit erlangt hat, kann man immernoch zu einer Anzeige greifen. Wenn es sich nicht verbreitet erreicht man mit Ermittlungen eher dass die Bekanntheit sich erhöht.

Generell wäre es eine gute Sache, wenn man Trollings öfter mal ignorieren würde. Sie nicht zu ignorieren bringt nichts, außer einen Haufen sinnfreier Diskussionen.

Neusprech ist ein Begriff aus dem Buch 1984 von George Orwell, das ich zugegebenermaßen bisher nicht gelesen habe. Soweit ich aber die Beschreibungen gelesen habe, scheint es dabei um die gezielte Umdefinition von Wörtern zu gehen.

Der Begriff kam mir jedenfalls sofort in den Sinn, als ich diesen Artikel auf dem Law Blog las.
Jörg Ziercke, der Präsident des Bundeskriminalamtes, gab in einem dort verlinkten Interview von sich "Etwas vom Gesetzgeber Verbotenes dem öffentlichen Zugriff zu entziehen, kann keine Zensur sein.".

Ich frage mich, was ist Zensur dann? Handelt es sich um nichts Verbotenes, wird es ziemlich schwer werden, es dem öffentlichen Zugriff zu entziehen. Ist die Maßnahme gesetzlich angeordnet, so handelt es sich bereits um etwas Verbotenes.

Diese Seite meint, man müsse zwei Arten von Zensur, die Vorzensur und die Nachzensur, unterscheiden. Vom Grundgesetz wird nur Erstgenanntes verboten, gleiches meint Wissen.de.

Dieser Definition entsprechend handelt es sich bei Netzsperren also anscheinend wirklich nicht um Zensur. In meinen Augen eine seltsame Gesetzgebung. Darf damit dann jedes Buch nachträglich verboten werden? Und wenn ja, inwiefern ist das moralisch besser als die Bücherverbrennungen in Mittelalter und Neuzeit? Ein verbotenes Buch darf nicht verbreitet werden - ob man es nun öffentlich auf einem Scheiterhaufen verbrennt, oder nach einer Beschlagnahmung durch den Gesetzgeber vernichtet.

Wir haben vielleicht gesetzliche Rahmen die solche Nachzensuren einschränken, aber gesetzliche Rahmen lassen sich auch sprengen. Die Gegner der Netzsperren haben auch primär diese Angst - ist die Infrastruktur erstmal da, kann sie missbraucht werden. Und noch viel schlimmer, die Ausweitung einer solchen Maßnahme wird zu einem Gewöhnungseffekt führen, denn viele Probleme lassen sich durch Nachzensur erheblich einfacher lösen als durch Alternativen.


IT-Papiermüll durchwühlend fand ich heute einige Schmuckstücke für das Bücherregal.

Darunter unter Anderem ein "PHIGS Programming Manual", untertitel "3D Programming in X". Sehr interessant das durchzublättern.

PHIGS ist dabei eine Library für 3D-Grafik unter X11, die leider schon veraltet zu sein scheint. Das Buch gibt es sogar noch auf Amazon.

Veraltet oder nicht, das Buch hatte über 900 Seiten, voll mit dem damaligen Stand der Technik der 3D-Programmierung. Das stimmt mich zum Einen natürlich nostalgisch, zum Anderen sollte es zu Denken geben, dass man seit 1988 einen Standard für 3D-Programmierung hat, und diese trotzdem immernoch ein wenig "magisch" ist.

A few very nice examples on how GCC optimizes code can be found at ridiculousfish.com.

An example of generalized tail recursion was given, the transformal of

int factorial(int x) {
   if (x > 1) return x * factorial(x-1);
   else return 1;
}

into

int factorial(int x) {
   int result = 1;
   while (x > 1) result *= x--;
   return result;
}

This is a well-known optimization and Iwas wondering whether SBCL also does this optimization. The second declaration becomes

(defun fact2 (x)
 (declare (type fixnum x))
 (let ((res 1))
(loop while (> x 1)
do (setf res (* res (decf x))))))

the firts one becomes

(defun fact1 (x)
(declare (type fixnum x))
(if (> x 1) (* x (fact1 (1- x))) 1))

Of course I have to declare the type here, otherwise it will put code to distinguish between several numeric types. And I did a
(declaim (optimize (speed 3)
(safety 0)
(space 0)
(debug 0)
(compilation-speed 0)))
just to be fair. The second one disassembles into

CL-USER> (disassemble #'fact2)
; disassembly for FACT2
; 248173A4:       BA04000000       MOV EDX, 4                 ; no-arg-parsing entry point
;       A9:       EB18             JMP L2
;       AB: L0:   8BC3             MOV EAX, EBX
;       AD:       83E804           SUB EAX, 4
;       B0:       8BD8             MOV EBX, EAX
;       B2:       895DFC           MOV [EBP-4], EBX
;       B5:       8BF8             MOV EDI, EAX
;       B7:       E8F18E7EFD       CALL #x220002AD            ; GENERIC-*
;       BC:       7302             JNB L1
;       BE:       8BE3             MOV ESP, EBX
;       C0: L1:   8B5DFC           MOV EBX, [EBP-4]
;       C3: L2:   83FB04           CMP EBX, 4
;       C6:       7FE3             JNLE L0
;       C8:       BA0B001022       MOV EDX, 571473931
;       CD:       8BE5             MOV ESP, EBP
;       CF:       F8               CLC
;       D0:       5D               POP EBP
;       D1:       C3               RET
NIL
Somehow I cannot make the GENERIC-* disappear, not even with a the or coerce declaration around the numbers. But the disassembly of the first one is

CL-USER> (disassemble #'fact1)
; disassembly for FACT1
; 24783F0D: L0: L1:83F904           CMP ECX, 4                ; no-arg-parsing entry point
;       10:       7F09             JNLE L3
;       12:       B804000000       MOV EAX, 4
;       17: L2:   8BE5             MOV ESP, EBP
;       19:       5D               POP EBP
;       1A:       C3               RET
;       1B: L3:   894DFC           MOV [EBP-4], ECX
;       1E:       8BC1             MOV EAX, ECX
;       20:       8BD0             MOV EDX, EAX
;       22:       83EA04           SUB EDX, 4
;       25:       8BDD             MOV EBX, EBP
;       27:       8D4424F8         LEA EAX, [ESP-8]
;       2B:       83EC20           SUB ESP, 32
;       2E:       8BCA             MOV ECX, EDX
;       30:       8918             MOV [EAX], EBX
;       32:       8BE8             MOV EBP, EAX
;       34:       E819000000       CALL L5
;       39:       8B4DFC           MOV ECX, [EBP-4]
;       3C:       8BD1             MOV EDX, ECX
;       3E:       8BF8             MOV EDI, EAX
;       40:       E868C387FD       CALL #x220002AD            ; GENERIC-*
;       45:       7302             JNB L4
;       47:       8BE3             MOV ESP, EBX
;       49: L4:   8BC2             MOV EAX, EDX
;       4B:       EBCA             JMP L2
;       4D:       8F4504           POP DWORD PTR [EBP+4]
;       50:       EBBB             JMP L1
;       52: L5:   8F4504           POP DWORD PTR [EBP+4]
;       55:       EBB6             JMP L1
NIL

From 10 to 1A, this seems to check whether the first argument is greater than something (1?), and if so, it jumps to L3, if not, it returns. In L3, it does a lot of things, especially it calls L5, which then jumps to L1, the first line, again. That is, it seems like it really does recursion here.

This is not very nice. Why is it that way?

Ich las jetzt bei zwei Quellen, dass die Regierung sich dafür einsetzt, dass Kinderlärm nicht mehr als Lärmbelästigung zählt. Ich muss dazu sagen, ich kenne die Rechtslage nicht genau. Wenn ich das richtig lese war es bisher nicht so dass man in jedes Wohngebiet einen Kindergarten pflanzen konnte. Und diese Regelung erscheint mir sinnvoll, denn in einem Kindergarten ist es nunmal wenn Kinder spielen laut.

So laut, dass es durchaus eine Belästigung sein kann. Ich finde bereits kreischende Kinder in den U-Bahnen nervig, wenn jetzt noch in der Nähe meiner Wohnung ständig Lärmbelästigung wäre würde mich das wirklich nerven. Es würde mich wohl auch ablenken, und mir die Arbeit erschweren, und mir einen Schlafrythmus vorgeben.

Insofern kann ich auch verstehen dass Leute sich dadurch belästigt fühlen und etwas dagegen haben dass in ihrem Wohngebiet ein Kindergarten ist, den man genausogut ein wenig weiter entfernt bauen könnte. Es handelt sich nicht um eine Diskriminierung von Kindern. Wenn jemand sich Hunde hält dürfen die auch nicht den ganzen Tag bellen. Ich darf um 4 Uhr morgens auch nicht Musik hören. Das hat nichts damit zu tun dass ich diskriminiert werde, das hat etwas damit zu tun dass ich andere Leute potenziell störe. Lärm stört, unabhängig davon woher er kommt, aber gerade Kinderlärm stört erheblich, vermutlich weil man auf Kinderstimmen besonders stark hört.

Um "Toleranz und Akzeptanz" geht es den Politikern. Toleranz und Akzeptanz gegenüber Kindern ist eine Sache, darf man aber nicht von Kindern und deren Eltern auch eine gewisse Toleranz und Akzeptanz einfordern? Dass Kindergärten, die eben sehr laut werden können, einfach an Orten stehen wo das niemanden stört? Es gibt doch genügend Platz dafür!

Wo ist also das Problem? Hat unsere Regierung momentan nichts wichtigeres zu tun?