Skip to content

Questions and Answers

Julian Gonggrijp edited this page Jun 24, 2014 · 11 revisions

Table of Contents

Why would I want to download this software?

There are many possible reasons. Perhaps you like xkcd, programming jokes and/or nerdy games. Perhaps you want to use some of the functionality that we offer, for example to keep your own local database of xkcd comics that you can search for keywords (see rshelp xkcd-fetch, rshelp xkcd-search and rshelp json-parse). Or perhaps you are just curious what a bunch of nerds with short attention spans are capable of producing. ;-)

What does the Red Spider Project have to offer?

Among other things, a fortune command that emits funny quotes from the xkcd irc channel, a Gödel numbering program, a lines-of-code counting game that keeps track of your programming "level", a Markov chain random text generator and our famous xkcd comic database management system. Perhaps also amusement, fun or friendship.

For a more complete overview, see State of the art or run rshelp.

The project is sometimes described as a "small operating system". Should I be afraid?

No, not at all! We just compare it to an operating system because it is a self-contained environment with programs, libraries and documentation. It does not take control of your computer or anything, in fact nothing is installed at system level. You can also easily get rid of it if you want, because everything is bundled together in a single folder.

Why would I want to join?

If you like xkcd, and you like hacking on small, semi-serious programming projects that you might or might not finish, and you like to have peers to exchange ideas and/or code with, then the Red Spider Project might be for you.

Can I join?

Yes, please join us! We need you!

Seriously, anyone who likes to contribute is welcome.

Where can I start?

See Getting started, Getting involved, the List of free ideas and the issue tracker.

I'm not very skilled in programming yet, does that matter?

No. You'll learn along the way.

I can't program at all! What do I do?

Don't worry! First of all note that you can get involved without programming. Secondly, if it's your kind of thing you can probably learn to program fairly quickly. Consider Logo, look up tutorials for any language of your choosing on the web, or subscribe to the xkcd forums and let the community guide you!

I fixed some of your code. How do I give the patch to you?

Thank you! Please install Git (you can skip the tutorials for now), fork and clone our repository, go to the root directory of the project with your terminal or command prompt, replace the affected files with your improved versions, and run the following commands:

git commit -a -m "Short description of your improvements"
git push

Finally, go to your fork on the GitHub website and do a pull request.

For a more elaborate version of these instructions, read Getting started, Getting involved and Workflow.

I'd like to contribute something that I wrote before. How?

Read Getting involved and follow the instructions. If your program has few source files, add them to $RED_SPIDER_ROOT/src and push the changes to your fork. If there are many source files, put them in their own subdirectory. If you need help integrating your stuff with the rest of the project, post an issue. See also Issues and milestones.

Can I contribute something that isn't related to xkcd?

Sure thing! When we say "xkcd and coding combined" we mean the "xkcd feel" (whatever you consider that to be) rather than specifically the xkcd comics. Above all, this is about having fun and sharing it, not about how you do it.

Can I contribute in a language other than Python?

Sure! Currently all code on the master branch is written in Python, but that's pure coincidence. This seems to be reason for GitHub to declare us a Python project, but you should ignore that. Any portable language that is available free of charge (legally!) is welcome.

What if I want to contribute a shell script?

You have at least four options to make it sufficiently platform-neutral.

  1. Implement the script both in bash (for unixy systems) and cmd (for Windows). Of course you don't have to stop there, you can implement it in as many shell languages as you want. Let the install script decide which to install based on the platform.
  2. Implement the script in bash 1.14.2. There's a standalone executable of that version for Windows. There's also an unmaintained standalone executable of bash 2.03 for Windows. Be aware that you can't use most of the POSIX commands on Windows.
  3. Implement the script in bash 3.1. That version of bash is included in MSysGit (for Windows). The advantage is that you can work with a fairly up-to-date bash version, the disadvantage is that you force users into installing MSys even if they don't want to contribute to the project.
  4. Implement the script in a platform-neutral scripting language instead. Historically in the Red Spider Project, Python has been the language of choice for this purpose, but you could just as well pick Lua, Ruby, PHP, Perl, Scala, Io, Javascript, Tcl...
Whatever solution you choose, make sure that you update the $RED_SPIDER_ROOT/Platforms.md if applicable.

Can I contribute in a commercial language like MATLAB or Mathematica?

Please don't do that. You might have gotten the software for free if you're enrolled in an academic software licensing program, but others aren't as lucky as you are. This is expensive software.

If you already wrote something in an expensive language and you still want to share it, try to find a free language that mimics most or all of the behaviour of your expensive language. For example, most MATLAB code works in Octave with few modifications.

Can I contribute something that is based on .NET?

.NET is available for free and it's mostly portable to other platforms with Mono, so yes. Some things to pay attention to:

  • Not all .NET languages are equally portable with Mono. In particular you should probably forget about PowerShell. There's a list of supported languages.
  • If you're used to .NET you're probably also used to the Windows API. The latter is not portable so you may want to look for equivalent APIs on unixy platforms.

What if I want to use a third-party library or framework?

If the API is available free of charge it should be OK, but please try to keep external dependencies that are not (included with) programming languages to a minimum. This is a toy project meant to be lightweight and accessible, not a production environment. As this is about the fun of programming, not about getting work done economically, reinventing the wheel can be the method of choice especially if the behaviour you need is easy to implement.

If the library you want to use is just a single file, the library is fairly stable and the license permits it, you can also just copy it into the repository.

I wrote this program. Should I attribute the copyright to myself?

Yes, of course! Who else? Check Minimal requirements.

Should I add my name to Authors.txt?

If you edited a file that was originally created by someone else, and you decided not to add your name to the copyright notice because you didn't deem your changes important enough, then yes, you should.

If you edited a file that naturally doesn't come with a copyright notice (e.g. Readme.md or an ASCII art file) that's also a reason to add yourself to Authors.txt.

Under what (module|namespace|package|.*) should I put my code?

We don't have any common (module|namespace|package). Make your code global if you want or put it anywhere you like. If it comforts you, consider the Red Spider Project itself to be the package.

I have this problem with my program. Can you help me?

No guarantees, but we definitely want to try! Check out the communication channels.

The forum thread or the IRC channel seems to be silent. Should I worry?

Yes and no.

No, because you're in the right place, the discussion didn't move elsewhere. It's probably quiet because the participants are busy doing other things. You can assume that things will get more active again when people find the time. In the meanwhile, nothing stops you from getting involved.

Yes, because it's kind of worrying if a project goes dormant for too long. You can help turn the tide! Just post a message to the forum thread or start lurking in #redspider at irc.foonetic.net. The more people, the better.

How did this start?

Like anything, with an idea and people that were motivated to do it. For a detailed history, check out the forum thread.

What's with the name "the-xkcd-community"?

Actually our organization account started with the name "xkcd", but we quickly realised that would be too pretentious so it was changed to the current name (see also How did this start?, directly above). It may still seem a bit pretentious to suggest that we are the xkcd community, but we know we aren't the only one and it's complicated to change it now, so please bear with us. If you think your repo would fit under the same organization account, this can be discussed.

Who's boss?

You decide what you do, when and how. Apart from that the project is basically subject to anarchy. At present only five people have the power to grant pull requests, but rest assured that they'll never let their personal interests stand in the way of those of the project. Check Minimal requirements and Our philosophy.

Clone this wiki locally