Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
User Journal

Journal: Ask Slashdot: Where's the bugtracker? 11

Journal by Short Circuit

Where's the bug tracker for Slashdot? I'd like to be able to file bugs and feature requests.

Bugs:

  1. Link to posting journals is difficult to find. At one time, it was nearly impossible to click, because it was part of a page footer that retreated every time you got near it. (The page body was getting filled with more content as one got closer to the bottom.)
  2. List of all my old Journal Entries is difficult to find without already knowing the URL.
  3. Enable SSL by default
  4. Enable "Public Terminal" checkbox by default, or replace with a "Remember me" checkbox like everyone else has.
  5. For some reason, <ul></ul> doesn't work, and I had to switch these lists to <ol></ol>

Feature requests:

  1. Offer an explicit programmatic API for managing my user settings, so I can crosspost my blogs to my /. journal, and my 'microblog' statuses to my /. signature.
  2. Support conveniently tying my account to major single-sign-on providers who use OpenID and OAuth. Most places will allow me to click a nice, big icon to automate filling in the needed details.
  3. Support post convenience features most other social networking sites (hey, remember zoo.pl? You were one of the first social networks on the market.) such as post-by-email, importing/exporting posts from/to some other popular sites/common APIs.

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.

User Journal

Journal: Engaged. 15

Journal by Short Circuit

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.

User Journal

Journal: Hey, I found the "write in journal" link! 8

Journal by Short Circuit

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.

User Journal

Journal: D&D, pics, inspiration and scheduling philosophy

Journal by Short Circuit
I happened across Pixdaus while following someone's friendfeed, and I subscribed to its RSS feed.

It's a fast, fast RSS feed, and it's difficult to keep up with. However, I've been trying...A lot of what I've been seeing in it has been giving me genuine inspiration for settings, encounters, props and even campaigns for D&D. That, along with a blog post I recently read where the DM's roleplaying the giggling of some minor monstors got her players greatly and emotionally engaged in the combat. Roleplaying monster sounds? Why didn't I think of that? That could give me something about the combat side of things that I could enjoy.

It's sparked my interest in DMing again, and I'm slowly assembling a campaign in my mind. The next step is finding players and a suitable environment; GrandLAN, for its rich perpetual presence of players, was normally too noisy or cramped for comfortable play. I'm tempted to do hold it in my basement, where I can use my TV and sound system for still imagery and auditory props, but then I've got to worry about who can make it and when.

I still think that a "regularly scheduled" game is a bad approach. You can either count on a schedule, or you can count on the presence of players. Not both. Also, having variable time between games offers more opportunity to prepare and ensure an enjoyable session. I don't have a need to kill time; Like anybody else, I have precious little of that already. I have a desire to enjoy the game.
Programming

Journal: On syntax highlighting and artificial intelligence

Journal by Short Circuit

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.

User Journal

Journal: Wanted: Crosspost to Slashdot 3

Journal by Short Circuit

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.

User Journal

Journal: Feed happy 8

Journal by Short Circuit

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' ... Need more memes.

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.

Role Playing (Games)

Journal: This week's anecdote 1

Journal by Short Circuit

...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.

Programming

Journal: Rosetta Code live lists of unimplemented tasks.

Journal by Short Circuit
Rosetta Code's lists of unimplemented tasks in a given language are now updated daily at 00:00 UTC by a bot on a cron job. As part of its duties, the bot uploads a copy of itself, too. And you can probably guess what language I wrote it in.

But don't you dare let this hit the front page around here; I don't have the money to pay for better than a bottom-level Slicehost VPS. (Though that's a far sight better than the Dreamhost shared hosting account RC was on when it made its debut around here...)

So tell your friends, fellow coder geeks and language enthusiasts.


And before you say anything, yes, I know there are sites that do similar things. When we hit the front page of Slashdot two years ago, I put all the ones people mentioned into one page.
Role Playing (Games)

Journal: Joe the Zombie 9

Journal by Short Circuit

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...

Perl

Journal: Perl Meme 4

Journal by Short Circuit

#!/usr/bin/perl
# 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.

Role Playing (Games)

Journal: Group imagination in an RPG

Journal by Short Circuit
In my first (and most recent) major campaign as DM ( Which lasted about 7 months until several adjacent working weekends completely broke our scheduling.), I started off by designing a setting, filling a three-ring binder with a couple hundred primary and incidental NPCs (Bulk NPC generators are handy!), and then hitting the ground with the players, a few character concepts and a party concept that made it easy for players to drift in and out.

During the course of play, I discovered that actually planning plot and organization relationships outside of session time was, more often than not, a waste of time. I discovered that players wouldn't pick up plot hints if they were too subtle, and would feel like they were being led around by the nose if the hints were highly visible. Character motivations often led to the PCs behaving in a manner opposite the planned storyline, and they subtly flipped back and forth between good and evil. (Sure, they'll save the community from the evil bad boss. But if a mook in a group they were fighting tries to flee, he'd be killed while he was running away. Prisoners were for interrogation or to be sent back as messengers.) Worst of all, I discovered my players were smarter than I was; I'd think I had all of a character's motivations and connections planned out, and somebody would say at some point, "Wait. That doesn't make sense. If that's the case, then why didn't x do y?" And they'd have a very good point, and I didn't always have an answer in mind.

Eventually, I stopped planning outside the sessions. Heck, for the most part, I stopped planning altogether; The world became whatever the players saw in it. I might listen to the players talk to each other about the NPCs they'd encountered and their suspicions of NPC and in-game organizational activities, and I'd take their concepts, apply them, twist them or subvert them, and have pieces of them slowly appear as the characters investigated further. Or I might listen to a player mutter to themselves about an NPC or scenario, and take a piece of what they're saying and use it. Or I might just watch the characters play out their current situation and think, "Hey, it'd be pretty cool if that [otherwise mundane element] was important," and give it a little extra flavor text; The players' subsequent debate over the element would paint a rough picture of what I could do with it. Within the first couple months of that campaign, I'd largely exhausted the resources in my binder and was laying plot, NPCs and encounters out on an as-needed basis in-session. And it was a lot of fun.

My current campaign, started six weeks ago (and running on an alternating-weekend schedule), began with a puzzle dungeon. I had a vague idea of some of the puzzles I wanted to use in it, including some flavor and concepts for the entrance. The entrance had a rune on it that I had intended as a non-lingual hint to how to solve the first puzzle they would face once they got in the door. Instead, one of the characters saw it, and cast a very expensive comprehend languages spell to understand its meaning. Well, crud; If I told him what it might mean in its original language, it would completely throw their attention in the wrong direction for the puzzle it was supposed to help with. I wanted to get them to use their brains, not frustrate them to boredom and tears.

So I threw out the planned puzzles, gave the rune a meaning, and applied it to opening the front door (Which, while entirely non-magical, and entirely non-mechanical, did require them to think before they got it open. Though one of the PCs nearly got himself crushed in the process.). As for the rest of the puzzles, I made them up on the fly, using the PC's comprehend languages to give one-word clues to how to solve them. And it significantly added to the dungeon, because I was able to tie together the religious themes of the PCs and the dungeon's background, while using the runes to give an atmosphere of religious test.

With these experiences, I've found I prefer this way of creating a campaign; The world and plot are almost as much a mystery to me as to my players, but it's continually revealed to be a rich one built from the fantasies of my players.

You're already carrying the sphere!

Working...