boa: Run a server from anywhere

Usually I steer away from server daemons on this site; I don’t have enough experience setting them up and the configuration can be a little tricky.

boa was fairly straightforward though, even when I added the complication of yanking the Debian binary and jamming it down the craw of my Arch installation.

2015-04-10-lr-0xtbe-boa

No major accomplishment in the grand scheme of things, but I at least have a real screenshot to show off. :\

Everything I know about boa is off the Debian page or the help flags, with a little more added in the configuration file. If you point everything at the current directory when boa runs, it will serve up its own folder, much like you see above.

On the one hand, that might be preferable to some of the complexities for members of the high-end server market.

Apparently boa runs on an exceptionally small amount of resources, and can even do its business on Pentium-grade equipment. I don’t have a Pentium machine now that I can put that claim to the test, but perhaps the next one that comes along, I’ll try. (Actually I do have one now, but it’s so badly battered that I’m considering setting it free.)

That’s about all I can say about boa, but that’s mostly because I’m fairly ignorant about web servers to start with. If you’re in that racket and need something with a smaller profile, boa might be for you.

In Debian. Not in Arch. 😉

mpfc: Doing everything so right

Once I knew what mpfc stood for, it made perfect sense — it is, after all, a music player for the console.

2015-04-09-lr-0xtbe-mpfc-01 2015-04-09-lr-0xtbe-mpfc-02 2015-04-09-lr-0xtbe-mpfc-03

And a very nicely done music player too, I might add. You can learn how to handle 90 percent of mpfc within the first 15 seconds of starting it, which is a delightful thing.

The opening screen will cue you to use the question mark for help screens at any point in time, and the available keys are listed with their function in a popup window.

mpfc has a playlist-and-browser approach that might remind you of the good old days of cplay. Pressing “B” puts you into a file navigation mode, and highlighting a file is done with the Insert key — much like Midnight Commander.

Once you have selected a file or two, add it to the playlist with the “a” key, or swap out the playlist for your current selections with the “r” key (for “replace”). It’s very intuitive, and very easy to master.

The playback screen has balance controls, volume indicators, an animated progress indicator and a live-update status display for bitrate and so forth. And as you open popups, a tab bar along the bottom shows your “breadcrumb trail,” in case you get yourself lost in layers of windows. 🙄

And as you can see … glorious, glorious color. :mrgreen:

I really can’t find anything bad to say about mpfc; if I had any warnings or advice, they would boil down to a note that mpfc relies on gstreamer for playback, and to remember that your music filetype will require certain support for gstreamer. It’s a slightly different model than what most players use, but I find no fault.

mpfc is in AUR, but not in Debian. The home page is on Google Code, so if you like it and want to preserve it, you probably should export it to Github so it doesn’t disappear when Google Code shuts down in January.

Oh, I almost forgot — a gold star for mpfc, for doing everything so right: ⭐ Enjoy! 🙂

lancat: Zero-configuration network transfer option

Quick on the heels of pyncp, I got a short note about Graham Edgecombe’s lancat.

2015-04-08-6m47421-lancat-01 2015-04-08-6m47421-lancat-02

As you might imagine, lancat works a lot like pyncp, with a couple of exceptions. Yes, it’s intended as another fire-and-forget, zero-configuration network transfer option. And as you can see in the pictures (which I snapped a little too early), one machine “sends,” and another “receives,” and they listen for one another in the mean time.

A couple of small differences though. And not just that lancat is written in ruby, and pyncp was in python (and ncp was in C).

First, lancat is apparently desingned to work like a pipe, with your source file redirected into it on the sending end, and out of it on the receiving end. This might lend itself to use in scripts or with other tools.

Second, lancat’s function is determined by a flag, not by interpreting a command in sequence. That might prove more convenient, or at least quicker than typing out a full command for pyncp/ncp to interpret.

Aside from that, lancat works much as might be expected, but comes with the same caveats as pyncp did: There is no provision for security (or compression) unless to force it before and after.

But there are tools for that, and given that lancat handles pipes and redirects well, it shouldn’t be a big issue. 😉

atto: Pushing the limits of practicality

For a second title today, here’s atto.

2015-04-07-6m47421-atto-01 2015-04-07-6m47421-atto-02

atto is a line editor of extremely minuscule dimensions. The source code takes up only 16K, and the executable is a mere 18K. My ancient ps_mem.py script tells me that, without a loaded file, atto is running on 40K, which makes it technically smaller than e3 — and that is saying something.

Problem is, as a line editor, it can be quite a tangle to work with. I supposed if you’ve handled ex, which is vi’s line editor counterpart, atto might be easier to learn.

But for me, line editors are mostly inscrutable. atto has a help screen that shows all the available keystrokes and their corresponding actions, but I find I’m a bit lost on how to even navigate with atto. I see that pressing SPACE steps through the file line by line for me, and if I press “e” I get an editing prompt, but beyond that, I’m mostly lost.

I suppose I should be disappointed or try harder, but to be honest, atto (and line editors on the whole) are mostly curiosities to me. I have tried a few, and even some that are one step up from your normal line editor, but the entire style just doesn’t appeal to me. I cut my teeth on WordStar and the like, and line-by-line editing is just not my style.

In any case, I can see the usefulness of extremely small editors such as this, and given its gossamer profile, it has applications in wicked tight situations. But I would probably have to work my way back to the Pentium era to put myself into one of those spots.

Not in AUR. Not in Debian. The command to compile atto is on the home page. Enjoy!

patool: Multilingual

I ran into some time-consuming real-world issues yesterday, so I have to apologize for missing a post. I’ll make up for it today.

As today’s tool, or perhaps as yesterday’s tool with another to come, here’s patool.

2015-04-07-6m47421-patool

I don’t use multiarchive tools much. Part of that is just that I rely on tar most of the time, unless I get a different format from another source. But usually, the things I compress are simply tar‘ed up. That might make me one of the few people on the planet who knows the proper command sequence to un-tar something.

Regardless, patool has a few points that are worth discussion.

Most of patool seems to work as command-action-target format, so extracting a file — just about any compressed file, I might add — is as simple as patool extract file. The extension of the file appears to be irrelevant to patool — if I rename a file to show a different extension, it manages to extract it anyway.

Of course that might be the flexibility of the underlying compression tools in working with other formats. It’s hard to tell.

patool does a couple of things that you might like. patool can directly repack an archive to switch formats, which could save you a few steps if you’re converting all your old 7zip files into something more modern.

And patool seems smart enough not to overwrite a file that exists already, and will instead create a folder and drop the target in it. Very convenient.

Like a lot of multiarchive tools, patool seems only as multilingual, in terms of archive formats, as what you have installed on your machine. So I’m guessing if you want the ability to decompress .ace files, you’ll need to install unace first. So from a technical standpoint, patool doesn’t really save you any disk space.

patool is python-based, and in both AUR and Debian. If you’re interested in how it compares to multiarchive standbys like atool, unp or dtrx … give it a try and report back to us. 😀

pyncp: Quick and easy network transfer

This will be quick and easy today, since pyncp is a clean and straightforward tool.

2015-04-05-6m47421-pyncp

If you remember waaay back, almost two years ago, we looked at ncp as a quick alternative for network file transfer. pyncp accomplishes much the same thing, but apparently sticks to python for its magic.

There are no exquisite flags for pyncp, but the program has to be installed on both the source machine and the destination. One machine “pushes” a file with pyncp push file.txt, and the other “polls” for it with pyncp poll. You don’t need superuser privileges or passwords — you don’t even need to know how to manage the network. One pushes, one pulls. Or polls, I guess I should say.

That’s it. If you want an encrypted transmission, I believe you might have to do that manually, and decrypt after arrival. Same goes for compression, but if you’re managing a series of file transfers over an open network, you should be doing those things manually anyway.

I only tested pyncp over my home network, so I have no guarantees how it will behave out in the wide open world. pyncp is in AUR as pyncp-git; my Debian search turned up nothing.

colormake: Does what you’d expect

On the one hand, I can admire colormake for its simplicity.

2015-04-04-6m47421-colormake

On the other, that’s about all it does. I will grant that colormake does convert make’s output to something more readable, but I also have to admit that the color doesn’t do much to help me understand what make is saying. 😦

Calling colormake is not particularly different from using make itself; you can apparently use it in almost every case where make is used. Even asking for help with -h or --help sends that request straight through to make, and you’ll get make’s quick help listing.

Which means if you want guidance you have to go straight to the man pages. And for what I’ve seen, there’s only one flag you can give colormake, which specifies an exact makefile, as opposed to just Makefile, I believe.

colormake is in Debian and AUR, but I see some differences between the two that suggest the Debian rendition hasn’t been updated. The only colors I saw in the version yanked from Debian were white and cyan, but the AUR version pulls its source from Github and was much more colorful.

I feel obligated to mention that there is an identical (knockoff?) project in Daniel C. Jones’s namesake program, the main difference being the use of python, I believe. So hey — two-for-one today! 😀 🙄

fdd: Le catalogue extraordinaire

I see the word “fdd” and I think “floppy disk drive.” I don’t know why, but it just pops into my head. This fdd is not a floppy disk drive at all.

2015-03-30-6m47421-fdd-01 2015-03-30-6m47421-fdd-02

You could use it to manage and arrange your floppy disk drives though, and in that sense it’s very helpful.

StreaK left a comment a few days ago about it, and it’s one of the few cataloging tools I can remember for the console. Personally I blame that on the proliferation of high-end, high-performance database tools that are just as easy to use at the command line of your home PC as they are on high-end servers or business-grade machines.

Regardless, fdd is very impressive for its scale. The full-screen approach is nicely arranged with key commands along the bottom, and stretches to fit any size terminal — even smaller than 80×24, which is an accomplishment.

Color is good, with easy-to-read highlights and nicely spaced menus for adding or editing records. fdd is showing its age in some places; it has both 720k and Zip-Disk as options for disk media, even if CDROM and DVD are options too.

I tested fdd by adding a few dull CDs to it, and was pleased to see the ability to read the directory of a drive, and add it automatically to the record, which you can see above. If you’re cataloging collected disks of photos or documents, this could be a huge help.

The home page, as you might have already realized, is long-gone, but the almighty archive.org has an impression of it. Source code is available here, if you want to build it. I didn’t find fdd in either Debian or Arch.

Overall, fdd is a great cataloging tool with good options and a flexible interface. It’s obviously left over from another generation, and now that we’ve arrived at the era of online storage and terabyte-sized media, I don’t know if fdd will find a home or not.

But I can’t deny that it’s a great utility with a great design. I’m willing to give this a gold star even if it probably has outlasted its usefulness: ⭐ Enjoy, if you can. 😉

Bonus: A low score of games after a score of games

I should probably apologize for yesterday’s post; I couldn’t remember when I had done anything special for April Fool’s Day, and perhaps it was just dumb. I’m allowed to be dumb once in a while.

And I’m finally stretched thin on games, which is a good thing. Here’s what’s left, and my notes about my luck with them … or lack thereof.

  • animonstres: This managed to make it onto my list but it appears to be graphical. It’s possible there’s an ncurses or text-only mode, but it wasn’t immediately visible.
  • bj: Supposedly a text-only blackjack game that supposedly survives on some shell account services, but other than this rather esoteric and probably unrelated source code page, I can’t find any reference to it. I’m not sharp on compiling assembler either, so maybe that page is totally irrelevant. I did see this, but didn’t have any luck building it.
  • cls: An e-mail suggested cls as a game worth investigating, but I think the tipster was kidding. That’s not any kind of game.
  • corewars: I have felt obligated for a long time to include corewars in this list, but to be honest, I can’t find any sort of text-only version of the game. Even pmars seems to spawn an X window, and will complain if you try to run it in a tty. If you know of a text-only way to play corewars, please let me know. 😦
  • drmario: A Tetris-ish game in the vein of Mario Bros., etc. Wouldn’t compile for me.
  • enigma: If I understand correctly, enigma was the original text version of chroma, and was later absorbed into it. I didn’t try this, since I took it to be a twin to what chroma offers in textmode.
  • gin: Sort of like bj, above, I have seen reference to a gin rummy game for the terminal, but couldn’t find a source file and don’t have any relevant links. I have lots of irrelevant links though, and I can forward them to you if you want. … 😛
  • manhunt: Screenshots of this suggest its something similar to dopewars but with a puzzle orientation. I can’t find the source for it, and other unrelated “manhunt” titles are obscuring my searches.
  • reversi: A Reversi clone for the terminal, written in lisp. I have a terrible time trying to find which lisp interpreter to use and the order of instructions to start lisp games, so if you know of a better way to get this built and started, please send me baby-step instructions. 😳
  • sewer-massacre and urban-warfare: Two roguelikes, both written in lisp, but in this case, both of the precompiled binaries complained about needing readline … which pacman says is installed. And of course, my efforts to build them from source were hopeless. That seems to be a recurring theme these days. …
  • torus: Supposedly a borderless, wraparound knockoff of robots, this would not compile for me from the torus-src source file. It may be something simple that I have mis-configured, or it may be that the code is just too old.
  • ularn: ularn apparently has a pedigree that reaches back all the way to the late 1980s, and exists in versions for a variety of operating systems, including (of all things) PalmOS. My attempts to build it from its Github home weren’t very successful though, and most of the errors I saw were beyond my ability to fix. 😦
  • ultrarogue: I feel a little bad leaving out ultrarogue, because from a technical standpoint, it does nothing wrong. It compiles, it runs, it stretches to just about any screen size. And supposedly it’s almost 30 years old. But unfortunately, it’s just not different enough for me. And when I hold it up to things like scrap or Frozen Depths, it’s just sort of … blah.
  • wallyplus: Touted as a Go client in ncurses, but wouldn’t build for me. The source code has datestamps of 2002, so it’s more than likely it just hasn’t rolled with the times.

I will probably stop there. I have a few other, very small “games” that I tinkered with only as long as it took to acknowledge that they didn’t work. Listing them here would just be sort of rubbing their noses in their failure. And in some cases, I’m sure it’s not their fault.

Next up: Boring stuff … 😦 😉

Neverwinter: MMORPG mania, in text only

A few e-mails have suggested I should include some top-tier games instead of just home-grown open-source titles. I do admit to sidestepping some text-ified games just because I see their text interface as a bit of a gimmick.

But it’s not fair to leave them out, since it’s a viable option, particularly if you’re sitting in the Pentium 4 bracket, like I am. So here’s Neverwinter, set to render through the caca libraries.

2015-03-23-6m47421-neverwinter-caca

It makes sense to me to critique Neverwinter in the same style as something like Frozen Depths or maybe TROG, since it’s essentially a fantasy roguelike, rearranged in 3D text mode, of course. So I’ll pick this apart in terms of theme and then mechanics.

Neverwinter uses the skeleton of the venerable Dungeons and Dragons fantasy role-playing game as the foundation of a massively multiplayer online role-playing game, but it’s important to remember that the modern MMORPG is oftentimes not really an RPG. As is the case here: Character creation steps through the choice of race and class, then abilities and a little bit of character history, before plunging into some introductory quests … all very much styled after first-person shooter games.

The tutorial levels are followed by a scripted series of contextual adventures, most of which are arranged around the premise that the citadel of Neverwinter is besieged by an undead princess (I think that’s the idea), and your role is as a protector of the few remaining enclaves in the citadel and the surrounding countryside to withstand her attacks.

Knowing of course that it’s a MMORPG, it’s fairly obvious that the situation will never be resolved, since that tenuous state of siege is what sets the frame for the entire game. It’s not like anyone is really expecting there to be a pitched battle between the undead attackers and the remaining holdouts of Neverwinter; that would mean the end of the game, silly. 😛

In any sense there’s enough variation in the number and themes of the quests to keep you entertained for a while, whether you’re thinning orc hordes as a lowly ninth-level character, or traversing spliced planes of existence around level 35, or waiting for Tiamat to rise at level 60, as in the screenshot above. Granted, most are just fetch quests, but that’s what most quests boil down to anyways. :\

Which brings in the mechanical portion of this introduction. Neverwinter uses a free-floating over-the-shoulder camera paired with WASD keys as the default form of movement. Major powers and functions are tied to the QERF and 123 keys plus SHIFT and TAB, which means if you’re right-handed, most everything is within a key’s distance of your left hand. (Don’t ask me what left-handed players do. I’m not weird. 😉 )

Graphics are good, and the carryover into text-only is acceptable. A lot of the detail will obviously depend on the speed and dimensions of your terminal, but that has been the assumption as far back as the aalib rendition of Quake. If you want proper bloom and water effects, you’ll probably have to tinker with your display settings for a bit. In some cases the display seemed clearer and easier to read when I reduced caca’s dithering and antialiasing settings, but that will probably be different on your machine.

Basic attacks and direction are tied to mouse movement, meaning the camera’s direction at any one point is forward. I like that, since it means there’s no complex camera wrangling at critical points in battle. Forward is forward.

Neverwinter incorporates the basic journal, map and quest functions you might see in most top-tier games, and wisely hides them all from view until you summon their popup menus with hotkeys. There are also a wide variety of shops and auctions to peruse, most offering goodies intended for specific classes at specific levels.

Beyond that though, is where things begin to erode. I see no big difference between most of the character classes, except where their particularly powerful abilities come into play. That might be a matter of opinion, but it only pans out in the most extreme cases.

And don’t expect the kind of individual sense of character that you enjoy know from traditional pen-and-paper role-playing games. One control wizard is very much like every other control wizard, and really only differs from a trickster rogue in the way damage is dealt and the dye of their equipment … which probably won’t enthuse classical RPG fans. (Then again, I have yet to find a modern-day MMORPG that bothered to include many actual role-playing elements, but that’s beside the point.)

That sort of generality seems to spread into other parts of the game too. Ability scores don’t seem to carry much weight at any point in the game. Magical items are generally “an adjective noun of gerund,” and after a few hours it’s obvious what power corresponds to what part of speech. Each quest region has a new variation on currency, and by the time you reach the uppermost levels, epic campaigns are trading in esoteric parts of dragons, presumably torn off corpses at some point. It becomes bewildering, even if it’s nicely arranged and manageable.

On the whole, Neverwinter is sufficiently entertaining to stand as a viable fantasy MMORPG in this day and age, and mechanically speaking it’s been designed for fast and easy control. Whether or not it really deserves to carry the Dungeons and Dragons banner — or stand as a continuation of the revered Baldur’s Gate/Neverwinter Nights product line — is a matter of debate: It has most of the main ideas, but waters down the platform until it’s … something only vaguely related.

Neverwinter is not in AUR or Debian; you’ll need to install the caca libraries before you install the game and add #include <stdio> at the top of main.c before you run make. Oh, and by the way. … April Fool’s. 😛 😉