Ramblings of Narc

When the issue isn't confused enough.

Archive for April, 2008

Required Reading — Depression

This XKCD forum thread is very interesting, and worth the read-through.

Note: I’ve never been diagnosed with depression or any other mental disorder, but nor have I given anyone the chance to do so. I don’t honestly want to know for certain, either. Also, I don’t really trust the Romanian medical system, at least in psych- fields. I have an irrational fear of most medications, and don’t trust Romanian psychs to do anything other than to recommend exactly that.

ETA: Yes, I am very much aware I might be hypochondriac, and that it’s possible nothing’s wrong with me, etc., etc.. I’d prefer an informed medical opinion, but I don’t trust the people who could offer one.

Sometimes, the comments are even better

I was pointed at this post explaining the REST architecture from, uh… somewhere. I think I may have found it on joel.reddit.com, but I’m not 100% sure.

Anyway, so I read the article, found it absolutely wonderful at explaining REST, and then moved on to the comments. I was honestly surprised at these accusations of sexism. And I don’t even understand for what — the choice of words? He stated from the start that he was talking to his wife. It was my assumption that he didn’t want to put her name out there for everyone to read, so he stuck to the “Wife” noun in describing her throughout the article. I don’t see how any of that was sexist in any way. Would it have sounded better if a homosexual man was explaining things to his boyfriend and used “Boyfriend:” throughout the article? Is there really a difference?

Um, right. Kinda got side-tracked there. The point was, I ended up reading the comments… and comment #152 had this (among other things) to say:

Programming is done sitting in a room in an illegal state of mind for long periods of time thinking about things that would make a math teacher scream

And I realized… yeah, that’s pretty much what it is. Good explanation. Is that why there are so few women programmers? Because programming is not a social experience? Probably. Is that a sexist statement? Maybe. Does it have anything at all to do with the article? Not really. But it is an interesting insight.

Licensing

I’ve been reading The Free Software Definition as published by the Free Software Foundation, and considering how I could use that with regards to my projects.

Well, I haven’t read about copyleft yet, but considering that’s mostly a GNU thing, and I’m not GNU, I’d rather make my own license. However, I do like their wording and enumeration of the four basic freedoms. Therefore, my first draft Narc License v. 0.5 looks like this:

[Program Name] is Free Software, as defined by the Free Software Foundation at http://www.gnu.org/philosophy/free-sw.html. Therefore, you are hereby accorded the following freedoms:

  • You have the freedom to run the program anytime, on any platform, for any purpose.
  • You have the freedom to study how the program works, and adapt it to your needs. For this purpose, the source code is made available at [source code URL] in packages whose names end with “-source”.
  • You have the freedom to redistribute copies at any time, for any cost, and for any purpose.
  • You have the freedom to modify the program in any way, and release your modifications to the public at any time, for any cost, and for any purpose. You are explicitly NOT required to release modifications under this exact license, or any other. You are explicitly NOT required to notify anyone of your modifications, the release thereof, or of their intended purpose.

In accordance with these terms, please note that:

  • I, as the programmer, am not under any obligation, legal or otherwise, to support, assist, or otherwise help with the program.
  • I make no promises that the program will function in any sense of the word. While I make a good faith effort to ensure that it will not break, the fact remains that I am only human. I am not to be held liable for any foreseen or unforeseen consequences or side-effects of breakage of the program.
  • I make no promises that the program will perform a useful task, or that it is fit for any particular purpose. As stated above, I have made a good faith effort to ensure the software is useful. However, I am not liable for any lack of merchantability or fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you.

However, please note that I have an interest in making the software function and be useful, therefore you are encouraged to contact me at [email address] to notify me of any failings in the program, or to request assistance from me, or simply to state that the program is useful to you.

In short: in return for the freedom to do anything with the software, you are assuming the responsibility that I may not respond or assist with any inquiries regarding it. I will try to do so, but I make no guarantees.

Please be aware that the legal status of software licenses is currently unknown (as of 2008-04-07), and this license may not be legally binding in your legal jurisdiction.

Reviewing courts are hereby asked to apply local law that most closely approximates an absolute waiver of all civil liability in connection with the program, unless it can be proved that an additional statement was made, in writing and signed by me, the programmer, whereby liability is being assumed.

Not having researched the field very deeply, I can’t say if this is similar, in letter or in spirit, with any other software license currently in existence. I also can’t honestly say that I care either way.

You are welcome (nay, encouraged) to comment on any part of the license. I haven’t used it for anything yet, but I intend to release at least TNChat under this license.

ETA: Having read more, it occurs to me that the FSF is mostly concerned with keeping their work free, whereas all I care about is that the version I’m releasing be free. More accurately, they’re worried about “proprietary developers” using their (zomg) free software to make proprietary software (OHNOES!). Me, I don’t care if they do that. I don’t even ask them to tell me about it. I guess if I cared about it, I’d use GPL.

Well, there’s nothing stopping me from switching to GPL later.

ETA2: FSF to the rescue again: this license here is for Non-copylefted free software. Just a step above public domain, in that it doesn’t mean I can’t re-release under different terms later. According to the same page, public domain specifically means “not copyrighted”, and that’s not exactly what I want.

And since I’m stuck on the GNU website, one more piece of reading: Why Software Should Not Have Owners.

ETA3: Having browsed many other sources (no links, sorry; there’s too many of them), I’ve come to several conclusions:

  • firstly, it’s a bad idea to lose GPL-compatibility;
  • explicitly allowing derivative (or creative derivative) works to be relicensed under any terms is a bad idea;
  • GPL is not the only GPL-compatible license out there; GNU APL is an interesting idea;
  • shorter doesn’t necessarily have any influence on better, and I like short;
  • writing a new license is bad because it’s hard to get right, and fragments the community;
  • the Eiffel Forum License, v2 looks good. As far as I can tell, it makes all the points I wanted to make in the above, and does so in a much shorter and cleaner format;

I guess I’ll be joining Sean B. Palmer in using EFL (his reasoning is offered here and resonates very well with me).

TNChat!

So lately I’ve been working with XUL. Specifically, I’ve been trying to recreate the (very old) Flash client for TNChat made by a friend (sorry, no link; I can’t be arsed to locate one).

As a result, ladies and gentlement, I present to you: Codem TNChat v. 0.3 (zip, 6.31 MB) (incl. XULRunner).

For those of you with some experience with XULRunner, you may wish to download the source code (zip, 146 kB) instead.

Update: Just fixed a bug that was preventing URLs from turning into links — download TNChat v. 0.3.1 (zip, 6.31 MB) or TNChat 0.3.1 source (zip, 146 kB) instead of the above.

Please note the following:

  • You’re looking at an Alpha version. I couldn’t crash it easily, but I haven’t honestly tried very hard. That means it may or may not work for you. If it doesn’t, send me an email and I’ll try to help you get it working.
  • What you see in this version may not necessarily still exist in the next. Alpha versions are not feature-complete, nor stable. In other words, if you get used to this version, I can’t guarantee the next one will look exactly the same.
  • XULRunner can be a bit of a bitch sometimes, either refusing to run, or taking an inordinate amount of time to start up. If you think this has happened, try the following:
    1. Go to Start -> Run…;
    2. Type in “taskkill /f /im:xulrunner.exe” (without the quotes)
    3. Click “OK” or hit the Enter key
    4. Wait a second or two and then try running TNChat again.
  • The server for this client is running on my computer. As such, it’s my bandwidth, and my Internet connection. At this time, there is no way to kick or ban users. Please don’t make me build that in sooner than I expected.
  • For the same reason as above, a warning: if my Internet connection dies, so will the server. I’m sorry for that, but I can’t control my ISP (if I could, I’d have a better pipe!).
  • Finally, if the interface doesn’t seem very straightforward to you, email me or ask in the comments about it. I promise to update this post with any notes resulting from such questions.

Finally, the server is not yet available to the general public, though you may, of course, ask politely for a copy.

Oh, and I know the /buzz sound is annoying. I’ll replace it in some future version.

Another Update: There is now a protocol documentation available, for those curious.