_ ____ ___ _ _ _____ / \ | __ ) / _ \| | | |_ _| / _ \ | _ \| | | | | | | | | / ___ \| |_) | |_| | |_| | | | /_/ \_\____/ \___/ \___/ |_| ____ ___ __ __ _ _ ___ _ ____ ____ ____ ___ / ___| / _ \| \/ | \ | |/ _ \| | / ___/ ___/ ___| / _ \ \___ \| | | | |\/| | \| | | | | | | | | | \___ \| | | | ___) | |_| | | | | |\ | |_| | |__| |__| |___ ___) | |_| | |____/ \___/|_| |_|_| \_|\___/|_____\____\____|____/ \___/ =============================================================================== CCSO is an old (we're talking developed in the late 80s) database search protocol. It was most often used to look up the contact information of professors and staff at universities in the early 90s. You can imagine it's well obscure now; only about eight CCSO servers, still mostly universities, are in operation today. Gopher has remarkable integration with CCSO. There's a dedicated itemtype in menus for doing CCSO lookups, so you can search for things through CCSO from a Gopher menu without leaving the server. Neat! You can now count Somnolescent as running one of those less than a dozen CCSO servers. Using a homespun Python server script, with any CCSO-capable Gopher client, you can access our vast database of who's-who in Somnolescent, people, character, or thoughtform. This menu provides some instructions on how to make use of it. I'M NOT A NERD. GIVE ME THE SHORT VERSION. =============================================================================== Lies, you're on Gopher. You'll need a Gopher client capable of handling CCSO searches. Lynx is the most user-friendly. Grab the Windows version here or use your terminal (sudo apt install lynx if necessary) if you're using a *nix: http://invisible-island.net/lynx/ Go back to the SomnolCCSO menu with the G key and then select the "Use SomnolCCSO!" selector at the top of it. From there, you can do searches based on name, species, home universe, or group affiliation (Somnolescent, guilds in Pinede, subgroups of characters in Pennyverse, and so on). If you are a nerd, I will go on... ACCESSING SOMNOLCCSO =============================================================================== Owing to its obscurity, many Gopher clients do not support CCSO. They won't know what to do with the itemtype, or (in the case of both the Floodgap and Meulie proxies) will explicitly tell you CCSO searches are not supported. You'll need a capable client in order to use SomnolCCSO. The easiest way to access CCSO at the moment is through Lynx. The browser has full CCSO support and will even give you a nice UI of all the fields you can search right in front of you. Lynx is usually installed on Linux by default, but if not, you can use apt to get it. Windows users can find builds on the following site or through Cygwin: http://invisible-island.net/lynx/ http://www.cygwin.com Most CCSO-capable clients aren't as nice and will require you to punch in a proper CCSO query. These aren't hard! Don't be afraid--we'll explain those in the next section. These include older browsers like Netscape and Mosaic, whichsend all entered text as query commands, a quirk I'll talk about in the next section. telnet can access CCSO, if you want something raw and dirty. telnet can use all available CCSO commands. Oh, and of course! The actual ph client that was officially used with CCSO now works with our server. Much thanks to Michael Lazar of mozz.us for testing that and submitting patches to get our server working with it. Here's some places you can find ph proper, or standalone third-party clients: gopher://mozz.us:70/1/ccso-source http://github.com/michael-lazar/ccso-nameserver The server can be found at gopher.somnolescent.net:105, or you can use the selector in the SomnolCCSO menu. CCSO COMMANDS AND QUERIES =============================================================================== CCSO is based around a few basic commands. SomnolCCSO supports a subset of these, as the rest were meant for authentication (which we don't use) or setting server information (we do everything on the backend). The query command is how you look up people in our database. It takes a field, which is what you're searching by, and then the bit to look up in that field. Queries look like this: query affiliation="somnolian" return all query name="cammy" return all query universe="pennyverse" return all "affiliation" is the field, and "somnolian" is the search term. Most clients, like the aforementioned Netscape and NCSA Mosaic, will send everything you type as a query command. In other words, you'll only be able to send queries to the CCSO server (which is fine, this is what you want mostly). In this case, you just need to type in: affiliation="somnolian" SomnolCCSO appends the "return all" if you don't specify what fields to return. If you do want to specify specific fields to return, you'd just type their names in instead of "all". So if you wanted to get just the names and Discord usernames of all the Somnolians who have elected to publish them, you'd type in: affiliation="somnolian" return name discord Do note that, although CCSO canonically supports wildcard searches a la regex, SomnolCCSO does not. It might in the future, but that wigs me out at the moment. Maybe if the SomnolCCSO server script becomes a serious CCSO server for others to use, we'll implement that. Sorry! If you're using telnet or a client that lets you send raw CCSO commands, here's the other commands you can use with our server. siteinfo: Returns some information about the server, where to learn more about it, and who to contact if something isn't quite right. status: Returns the server status, namely the server version and the database status. fields: Lists all of the fields you can search or filter by. Results from the fields command look like this: -200:1:name max 64 Indexed Lookup Always Default "max 64" means the maximum number of characters for that field in a search. "Indexed Lookup" means you can search by that field. "Always" means the field will be returned regardless of what you search (so you don't confuse yourself by lack of names). "Default" means you can choose to return or not return that field using the "return [field]" phrase at the end of a query. BUT WHY??????? WHO CARES??????? YOU SMELL????????????? =============================================================================== CCSO is old and obscure and that's fun. There's less than ten CCSO servers still in existence. I've wanted one for years. I had a neat idea for how to use one. It integrates well with Gopher. I just showered today. If you want more information on the structure of the CCSO protocol (maybe to build support for it into your Gopher client? A boy can dream, anyway), there's a mirror of RFC2378, which codifies how a CCSO server works in practice, in the SomnolCCSO menu.