Real men don't use antivirus software!!1 @2010-04-21 01:32:16
During the past few days, I've been suffering from a persistent
problem on my old Windows desktop machine - after a while, it seemingly became impossible
to establish new internet connections to pretty much anything, although persisting
connections continued working at a decent speed and pings went through without hassle.
Cutting the link, or restarting any service its operation hinged on, improved the situation
for a couple of seconds at a time, after which it reverted to the previous situation.
The pattern of failure immediately reminded me of the whole story with Windows XP's
half-open TCP connection limit, which apparently even
has been awarded an explanatory domain in its honour now, and so I decided to have a quick
look at netstat (-b) to see what is going on.
This is the picture that extended before me:
As I thought, a bunch of "SYN sent" connections greeted me. Moreover - they targeted random
SMTP servers like a typical spam remailer probably would hold them in store somewhere.
Moreover, the originating process was the system process, #4. I had a feeling this was going
to be mildly interesting.
A futile attempt of searching up some plaintext file that would list one of the mail servers
I saw in the console and a move to routing connections through a VPN with my (this) server
later so I could exert some more control over what was going on if necessary later, I
decided to move on to the heavier gear and cracked out Process Explorer (a Sysinternals tool
I can only advise every Windows user to get) to poke around in the system process a little.
Indeed, there were the connections again:
In this view, I could see the flow of new connections being tried out, timing out or succeeding
and subsequently being replaced by new ones, always filling back up to 10 nicely enough to
remove any remaining doubts about the nature of what was going on. Reckoning that programmers
these days are too lazy to write a single multiplexing loop anyway, I moved a tab to the left
and started looking for clusters of a matching number of similar threads. Out of the two matches,
one looked promising, as its activity patterns seemed to overlap with the removal and creation
of new sockets when connections to dead servers timed out neatly:
An even more compelling argument in its favour, though, was the conspicuous absence of the thus
named file in C:\windows\system32\drivers.
Of course, one of the most characteristic aspects of Windows is that once a binary image is
loaded, it will go painful lengths to prevent any modifications to the underlying image file.
Whatever they did, judging from their sloppiness in hiding the network communications, poking
into the supposed nothingness in the best tradition of games of battleship surely would produce
some results. atapidrv.sys, say hi to the world; world, say hi to rootkit:
(The English counterpart of this message apparently is "The volume for a file has been externally altered so that the opened file is no longer valid." First time I see it. Learn something new every day.)
A round of penguins fired from an old Knoppix CD later, the "driver" in question lay ready for
dissection:
Somewhere on the system, there's probably still a bunch of registry entries or whatever responsible
for loading it up, but for now, I shall not bother with those. One thing I kind of regret not
trying is whether the convenient (?) number of 10 threads and connections was hardcoded (which
still would leave the question of its purposefulness open) or, in fact, actually adapted to the
half-open connection limit prescribed to the system if changed (which would demonstrate
developer thoughtfulness gone wrong unambiguously, as it was precisely the exhaustion of
connection slot that led me to notice the otherwise sufficiently well hidden guest to begin with).
Apart from that, this was pretty fun and I'm positively looking forward to the next dungeon. To
finish with an appropriate text adventure quote,
CONGRATULATIONS! YOU HAVE JUST VANQUISHED A DRAGON WITH YOUR BARE
HANDS! (UNBELIEVABLE, ISN'T IT?)
While visiting a thus inclined mathematician friend over in Munich, a short outline of the story of the anime To Aru Majutsu no Index ("A certain magical index") I delivered led to things and I wound up rewatching it (having already followed through with it during the original run). I'll share some thoughts on it I mostly had before but felt reminded of.
The series is quite good, although it does feel like they are not quite exploiting the potential that lies in the setting and even some developments that occur. I don't know to what extent this is true in the manga and novels, however, having not come in contact with either yet.
John's Pen mode Index, the Misaka sisters, the students in the alchemist's cram school, Last Order... someone involved with the production must have had a thing for programmable robotic girls. I am totally with them.
As much as I like Misaka, the Railgun spinoff was unnecessary and beyond disappointing and does not even remotely stand up to the main series.
One thing that struck me about the series since the beginning was a certain pattern I recognized in its depiction of the "science side" and "magic side". I don't know if it was by design or more of an expression of unconsciously held biases and notions of the author, but the duality between the magic side - the officially 14 years old, chainsmoking, pierced, rugged and thuggish Stiyl Magnus, cold and scantily clad Kanzaki, gothic lolita costume donning broken-voiced ganguro Sherry Cromwell - as emotional, short-sighted, naive, at worst hysterical and irrational children trying to act more adult than they are and the science side - mostly children to begin with, the adults often being depicted as comically stunted in the development of physique and personality (Komoe-sensei), helpless and infantile (Anti-Skill's Tessou), inadequately whimsical (Heaven Canceler's "nurse fetish") or in the creepy part of the childishness spectrum ("Today's lucky colour is..." Telestina) - as inquisitive, childlike irrespectively of age, curious, rational and lacking any regard for humanity and commonly accepted ethical notions at worst - always struck me as a fundamentally correct observation, losing little of its merit if you upgrade it to a full-blown real world metaphor by striking out the latter part of the "normal people who strove to obtain abilities similar to those of ESPers for themselves" description provided for magicians in the Index universe. Being firmly rooted in what would be the science side of real life, the childlike traits ascribed to it definitively resonate very well with my real-life observations. I can't quite rid myself of the impression that I overstretched the metaphor for the other side and really am just overenthusiastically reaching out for affirmation of a somewhat pejorative view of "normal people", but it surely would paint a nicely balanced contrasting picture.
In order to get Maple 11's Java interface to work properly under Linux,
if you are running Compiz, "export AWT_TOOLKIT=MToolkit" prevents you getting a blank (though operational) main window. If you also want font smoothing, you might just move Maple's own jre (jre.IBM_INTEL_LINUX) folder somewhere and instead symlink that folder to your platform Java distribution.
if you have functional IPv6 on your system, chances are you will get "Waiting for kernel connection" followed by a remark that it couldn't be established if you try to actually do anything mathematical. Edit the bin/maple startup script, find the line that reads JVM_OPTIONS= and replace it with JVM_OPTIONS="-Djava.net.preferIPv4Stack=true. This was a pain to get figured out.
A lot of specialists state that <a href="http://lowest-rate-loans.com/topics/home-loans">home loans</a> aid people to live the way they want, just because they can feel free to buy necessary things. Moreover, banks offer bank loan for young and old people.
GALLOWAYFanny19 @2010-03-29 22:49:47
The <a href="http://lowest-rate-loans.com">loan</a> seem to be very useful for guys, which are willing to start their own business. As a fact, this is very comfortable to receive a secured loan.
I've been working on Linux userspace SPI slave code for the OMAP35xx processor the Gumstix runs for a certain project. When it's more polished, I'll probably put up a copy here.
Knights of the lambda calculus @2009-11-08 21:12:52
For the past decades, it seems like the typical image associated with LISP and its dialects was that of hermit battle monks enlightened in the paths of Zen and lambda calculus, having at most a witty You Suck koan or two to spare for imperative-programming intruders daring to interrupt their musing over the beautiful nested structures of code before those are taken out with a swift brace throw before they even realize what has happened unto them, let alone get to draw their bulky proprietary arms.
I've been wishing to learn a "proper" functional language (SML, while neat in some aspects, essentially remains an academic toy) for a while now. LISP, as of late, appears to have been suffering from the huge piles of dust settling on it - most compilers/interpreters are rotten, broken and/or depending on bulky runtimes which make it hard to take it serious as a proper application development tool. Clean, from the Catholic University of Nijmegen, would have seemed a natural choice due to some past entanglements that shall go unmentioned, but, in fact, there was that other functional language it was derived from which has been gaining much more of a foothold lately. Haskell borrows SML's friendly typing system, while being packed with some pretty damn sweet constructions that exploit the awe-inspiring, though kind of opaque to channel, power of its lazy evaluation system (deliberately avoided in SML), possessing a well-isolated imperative subsystem (through monads) for "real-world" tasks, having a reasonably good machine code compiler and performing well enough to be given a chance even if it's probably never going to be quite up there with GNU's C/C++ compilers.
Here's some code I wrote up for the sake of testing, calculating multinomial expansions (i.e. expansions of terms like (x_1+...+x_n)^k, a still pretty well-known and useful generalization of the stock binomials):
import System
import Data.List
facs = scanl (*) 1 [1..]
fac n = head (drop (fromInteger n) facs)
-- multinomial a b = (x_1+...+x_a)^b in (F,[p_1,...,p_a]) pairs for Fx_1^{p_1}...x_a^{p_a}
multinomial :: Integer->Integer->[(Integer,[Integer])]
multinomial a b = let premultinomial :: Integer->Integer->[[Integer]]
premultinomial 1 b = [[b]]
premultinomial a 0 = [[0|q<-[1..a]]]
premultinomial a b = [ q:p | q<-[0..b], p<-premultinomial (a-1) (b-q) ]
in map (\r -> (fac b `div` (foldl (*) 1 (map fac r)),r)) (premultinomial a b)
main = do args <- getArgs
putStrLn( show (multinomial (read $ head args) (read $ head $ tail args) ))
(If called with 3 5 as command line parameters, its output is
To spin on the previous metaphor, Haskell might be what happens if you take those venerable monks and provide them with leather longcoats and machine guns; for the reality-warping powers to complete the Matrix metaphor, I wouldn't make anything short of beating well-written C in performance count.
I should link this post on comp.lang.lisp - they would _lynch_ you ;-)
Seriously, I dont know which Lisp-Compilers you have tried.
Maybe you focused too much on scheme - yes, there are a lot of toy-scheme-implementations, a strength of scheme is that it is rather easy to implement a simple scheme-interpreter and compiler, and therefore have an easy way of trying out new concepts.
Common Lisp, instead, is a huge standard with less compilers. The only widely used ones requiring a runtime are CLISP (which has its own VM, and wasnt made to be fast rather than being a scripting-tool) and ABCL (which was made to run under Java and therefore of course needs the Java VM).
ECL uses C and (inline) assembler as an intermediate layer to produce executables.
SBCL (probably the one which is used most) and OpenMCL/Clozure can produce stand-alone-executables and compile directly to native code.
And of course, the commercial ones (LispWorks and Allegro CL) also can do that.
But well, if you like Haskell more, then use it. But dont mix up both. Haskell is a purely functional language, while Common Lisp is - from today's point of view - rather "imperative" (actually, it is a "multi-paradigm" language).
If you have an hour to fork off and don't have any deeper pre-existing expertise in the field, do watch this video. It contains a presentation by Lawrence Krauss on, as one might be tempted to summarize it, "life, the universe and everything", or more precisely a layman-friendly speedy-thing-goes-in overview of modern cosmology, its view on the history and the future of the cosmos-at-large.
It is 3AM and I have to get up for classes in 5 hours and 30 minutes. Nevertheless, a friend's recent adoption of blogging and a short conversation on #acmlm meant that I just could not go to sleep without somehow modifying the blog's software and posting to it.
As you might notice, the whole layout now follows a more Wordpress-like scheme with multiple posts displayed on a page and comments hidden by default.
Speaking of comments, I actually would not mind one from you (yes, you, who is reading these lines at the moment) at all, just to see if I have any meaningful audience to talk to or it has been just the cold, unrelenting walls of the internet all along.
EU elections, seaborne scoundrels and an indeterminate waypoint @2009-06-08 18:42:15
As some of you undoubtedly will know, yesterday was the day of the EU parliamentary elections (and also some communal elections of neglectable importance in Germany, but let's not go there). Of quite natural interest to me was the performance of the various Pirate Parties we have in the EU now (though I'm still not sure if the Finns were able to run in the end) and I wound up spending most of the evening following, with a certain sense of excitement that I'm quite surprised I could even muster for something like politics, the local results flying in one by one.
Not at all surprisingly, the German Pirate Party performed best in the larger cities (and wherever broadband internet is available, one might argue), even achieving results like a 1.92% in Dresden (my current constituency), placing first among all the "minor" parties and sixth in the grand total) and the east, where a certain percentage of "protest voters" and people placing their cross next to whatever sounds most funny to them exists and the CDU/CSU mantrain isn't that developed. In the grand total, after heavy downbound drag especially by the rural areas of Southern Bavaria, this amounted to 220thousandandsomething votes or a rounded up 0.9%, which is a pretty surprisingly high figure for a country like Germany where the average citizen still groups everything internet into the "child's play" box. (Note how inane spam like the "Animal protection party" managed to score higher.)
When the first estimates arrived, it actually looked like both the Conservatives and the Greens were on the losing side - but you can't have everything at once, of course, so while the Conservatives wound up losing some 6-7 percent, the Green Party actually was one of the slight profiteers of the election. On the brighter side, the largest absolute gain in votes was scored by the Liberals, whose EU-level politics, unlike their federal ones, made a fairly positive impression on me so far.
The really interesting battlefield of this round, however, were the 18+2 seats that are assigned to Sweden (or should be completely once/if the Lissabon Treaty is enacted, which looks all the more likely now because the Irish got scared of going bankrupt all alone, but let's not go there). Slightly below the more optimistic prognoses, though, the 7.1% victory of the Swedes still feels almost unreal considering the circumstances and the general tone on their topics in the spheres they have set out for. From all I gather, this seems to mean one seat for them and another once the two additional seats kept back for the Lissabon treaty's enactment are enabled. While it is unclear whether they will join ALDE or the Greens-EFA yet (I'd hope for the former, but it's unclear whether they would be able to skew the position of their "enterprise-friendly" undercurrent in the copyright matter with just one and a half person...), I frankly don't expect much of a direct impact from this yet (though I'm still looking forward to disappointed and outright outraged reactions to the result from the copyright lobby) - the right signals, however, have been sent. Let's hope this was a starting point rather than a zenith reached by a unique series of mistakes by the opponents.
The other day, I peeked into 4chan /v/. Somewhere on the first page, there was one of the usual lengthy threads of game bashery that are typical for it; at the bottom of it, however, was a post that mildly struck my attention - "Cave Story and Yume Nikki are the only games that /v/ agrees to be good". I played the former - and liked it, needless to say - and have been in search of a similarly wholesome gaming experience ever since. Naturally, a game put in the same league as it by the merciless gamer dungeon that is /v/ would warrant a look.
So yeah... Yume Nikki. You are an, apparently female, what the English-speaking net resident would call basement dweller (though, technically speaking, your location is a room in an unnamed floor of a high-rise). You don't leave your room save for the dreary balcony which evokes memories of the depiction of East Asian lower-end living in Terranigma (think Yunkou). All you do is walking around, playing a video game about catching falling eggplants, writing in your dream diary and sleeping. The last point, however, is where the interesting things start.
After a countdown of 3 seconds has elapsed, you find yourself on your own balcony. There's still nothing to do here, so you can proceed into your room. You'll notice your eggplant game was replaced to randomly either display a blinking white comma/magatama or a full-screen loop of something between Atari graphics and Mesoamerican codices. A foreshadowing of what's yet to come.
At this point, your reservations about leaving through your room's door appear to be gone. Beyond it lies a circle of twelve doors, each leading to different points of an extensive, if not vast, world of interconnected, abstract, often psychedelic or outright disturbing/shocking dreamscapes, populated by strange creatures such as walking clocks or tall, thin women with distorted faces contact with which teleports you to any of a number of isolated spots across the world, leaving you with no choice but to wake up ([9]). Scattered across the world are effects which can be anything from a bicycle or knife you can equip yourself with to something that reduces you to your own severed head. While the knife provides you with the faculty of fighting your environment, the game's apparent main focus remains to be its nonlinear exploration aspect, backed by an extensive score of ambient dark, disturbing music that sets the mood skillfully. Two canned-review-in-a-sentence descriptions that came to my mind were "bastard lovechild of Earthbound, Clock Tower, Sayonara Zetsubou Sensei and Knytt Stories" and "one of the more interesting feverish dream experiences out there".
download link (look for videos on Youtube if you need them)