^^ Google+ invite link. Most of the old
^^ Google+ invite link. Most of the old
Where's the bug tracker for Slashdot? I'd like to be able to file bugs and feature requests.
While some of the bugs have been fixed already, it'd have been a lot less grating if there was a good, visible way to report them and follow them as they got fixed.
Today, I realized I hadn't told you guys I'm engaged.
I went to tell you, and found Slashdot journals down. I figured they didn't care, but turns out it was brought back up.
Anyway, yeah, I'm engaged to a lovely, smart and funny gal who was already into Linux and tabletop roleplaying when I ran into her. May 20th, 2012.
Not bad for a guy who spent his formative years on Slashdot.
Hey, for anyone who still reads this. Rosetta Code's doing awesome, content-wise, and we're starting to implement Semantic MediaWiki. (To what end? Not sure. I've got a couple ideas, but I'm more an opportunist than a front-end planner.) I've also been shooting a bunch of photos and putting them up online--even photos that aren't cosplay, if you can imagine that. (Which you probably can; I doubt many who read this were following me on Flickr back when I went to Anime Weekend Atlanta for the first time in 2007. If you want to read what I'm really thinking, either follow me on Multiply, or see the same stuff over on LiveJournal--but get your adblock armor up; it's a scary place. I'm also on Twitter, if you really care. I'm a minimal participant, really.
If I show up as a fan for you here, I do read your journals; the My Amigos RSS feed is still useful.
Why this collection of links to me at other places? Easy; I know there are still some of you here who never showed up in those other places, and I miss the interactions. I'd post my blogs here, too, but Slashdot has relegated itself to an incredible degree of backwater status. I was lucky to find the "Write in Journal" link. I'm tempted to find some Perl script to have it suck in blog posts via RSS, and post them to Slashdot. (That's how I'm inducting my blog posts into Facebook, too.)
I miss what this place used to be. I miss the people this place used to have. I still see some of them on two or three other social networks, and some of the bonds there are tighter than they ever were here, but there's still a bunch of you missing.
I have to say, with the addition of email and twitter support channels, their customer service has improved by leaps and bounds in the past three years I've been a customer.
So on Rosetta Code, we use GeSHi for syntax highlighting. The relationship between Rosetta Code, GeSHi, a programming language and the code written in that language is fairly simple. (The exact order of events inside GeSHi might be slightly different; I haven't delved deeply into its core)
Rosetta Code (by way of a MediaWiki parser extension) gives GeSHi a few pointers about how it wants the code formatted, the language the code sample will be in, and, finally, the code sample itself.
GeSHi takes the code example, and loads the language file named after the language in question. Each language file defines a PHP associative array that contains(among a couple other things) simple rules for how GeSHi can apply formatting to the code in a way that will clarify it to the viewer. These rules include lists of known keywords of various classifications, symbols used for normal commenting conventions and optional regex matching rules for each, among other things.
It's a perfectly reasonable, fairly static approach that allows syntax highlighting to cover a broad variety of languages without knowing how to parse that language's actual syntax, and so avoiding having a syntax error break the whole process.
Unfortunately, it requires Rosetta Code to be able to tell GeSHi what language a code sample is written in. It also leads to odd scenarios where a supported language and an unsupported language are so closely related that examples written for the unsupported language can be comfortably highlighted using the the rules for the supported language.
And I have yet to learn of a good way to do syntax highlighting for Forth. (The Forth developers appear to pretty much keep to their own community, and don't seem to do much in the way of outreach, which makes finding a solution relatively difficult, but I digress...)
So what does this have to do with artificial intelligence? Well, in identifying a language without being told what it is, of course!
A few solutions have been discussed. One approach that has been attempted had something to do with Markov Chains. The code is in the GeSHi repos, and I haven't looked at it.
One solution I suggested was to run the code example through all the supported languages (Yes, I know, that's expensive. Not something to be done in real time.), and select the ruleset based on how many rules(X) were matched for a language and how much of the code sample was identified(Y). Using a simple heuristic of (a*X)/(b*Y), you can account for a number of matched rules while hopefully accounting for an overly-greedy regex rule.
How can we take this a step farther? How about formatting languages we don't know about?
Well, many, many languages have rules in common. Common keywords, common code block identifiers, common symbols for comments, common symbols for quotation, etc. This tends to result from their being derived or inspired in some way by another language. For the sake of avoiding pedantry, I'll just say that C, C++, Perl, Python, PHP, Pascal and Java all have a few common ancestors.
One way would be to note the best N language matches, take an intersection of their common rules, and apply that intersection as its own ruleset. This would certainly work for many of the variants of BASIC out there, as well as specialized variants of common languages like C and low-level ISAs.
I haven't regularly posted to my journal here on Slashdot in a couple years. Meanwhile, I've posted over 1000 blog posts elsewhere, and recently started using simulpost tools to post to several different SN sites I'm on. However, there are still folks here who aren't in those places, and, of course, there's the wonderful world of the Firehose and the exhilarating risk that some of my idle musings might hit the front page. (If I'm averaging almost three posts per day, there's bound to be something interesting in there...)
What I'd like is the ability to post to my Slashdot account using my own script. I remember the Early days of Slashdot where some folks were using third-party clients to participate in the commenting system. It'd be nice if it were possible for us to do that again today, but with journals. It'd be nice for me to be able to reconnect with old friends, and it'd definitely be nice to bring some of that hacker and DIY flavor back to Slashdot. With the exception of folks like Alioth, that piece of Slashdot seems to be all but gone.
So I threw together a few more feeds. Here's the list of all the ones I've got right now:
Bad English: Usages of the English language that annoy me. Currently aggregates searches for "begs the question" and "could care less". Feel free to suggest more; If I like them, I'll add them.
Facepalms and Headdesks: Aggregates searches for the unconventional emotiwords (I don't know a better term; I don't think onomatopoeia) terms "facepalm" and "headdesk". If you have any more along these lines, let me know...
Meme Happy: Currently aggregates "in im ur", "it's over 9000" and "do a barrel roll". I also added a search for '"ours is not to wonder why, ours is but to do or" -die'
Zero Wing: When I tried to come up with memes for "meme happy", I kept thinking of references to Zero Wing. So that got its own feed.
...Comes from the D&D game I'm *not* runing. My character (A wizard/cleric crossclass) had set alarm spells in case he was attacked in the middle of the night. (His party members didn't really care for him at this point.) When his alarm spells triggered, he discovered that nobody had entered his room. Rather, someone was trying to intrude into the building entrance. (He accidentally set the field of view of his "Eyes of Alarm" spell a bit to broad, I guess.)
Not wanting to spend the five minutes to don his leather armor, I simply said "OK, I put on my robe and wizard hat, and head out into the hall."
At this point, one of the other players started laughing uncontrollably. He and I were apparently the only two who were familiar with the Legend of Bloodninja.
So in the D&D 4e game I ran last Saturday, the PCs had knocked an NPC (who'd earlier been flippantly addressed by another NPC as "Joe", because he was a spontaneous tavern patron bit character who I didn't intend or expect to be important.) unconscious (0 hp) and laid him on a table. Then they tried blasting open a door, triggering a level 7 Necrotic damage trap. (This is the D&D 4e equivalent to 3e's negative energy.)
The unconscious NPC was within range of the blast, was killed by the necrotic blast...and was pumped sufficiently full of necrotic energy to be brought back as a zombie. Checked the rules on zombies, and discovered they follow the orders of whoever "created" them. Which I ruled to be the PC that blasted the door.
So now that PC has a pet Zombie named Joe, which we're handling as though it were a Ranger's animal companion. He told me the first thing he's going to do is find a way to get the zombie to stop rotting...
# Take this perl script and modify its behavior by adding or inserting up to three lines.
# You may jump over or skip existing lines, but do not remove or modify them.
# Once you've modified it, post your version somewhere.
I thought I'd share a set of about 120 photos I took at Anime Weekend Atlanta this past weekend, mostly of cosplayers. All Safe For Work, per AWA's dress code policies...
All life evolves by the differential survival of replicating entities. -- Dawkins