i was inspired to work on this after i saw mention of piping irc to the wiki @ http://wiki.soylentnews.org/wiki/CommunitySupport#Projects
it's been tested some but is still a work in progress.
getting around the anti-spam/anti-bot features of wiki is something i'll have to consult a wizard on.
https://github.com/crutchy-/test/blob/master/bot.php
i'm not a professional programmer so it probably sucks.
any criticisms etc are welcome, and if i can be bothered i may even take them on board, or you can do a pull request if you feel like having a play.
this is my first open source code file :-)
A story idea I just submitted. I've never used the journal before, here or on the other site, and I never thought to do this with submitted stories, (in case they get rejected, I won't lose the submission).
Although at times science fiction stories need to take liberties with physical law to advance a story, there are many instances where writers remain consistent with the current understanding of physics and astronomy. Andrew Fraknoi has assembled a nice list over at the Astronomical Society of the Pacific of 270 science fiction stories that portray the science accurately. The list is nicely broken down into 40+ subtopics and is intended to be used as a teaching resource, so for example if you are teaching about neutron stars, you could include Stephen Baxter's Flux as recommended reading.
If you know a good example that isn't on the list, Fraknoi would like to hear about it.
some some notes & snippets from fun with the chat bots in IRC.
times are australian eastern daylight saving time.
[22:25] <@aqu4> crutchy: s/tim/blaat/
[22:27] <crutchy> $sr /i/u/s
[22:27] <@aqu4> s/u/i/
[22:27] <SedBot> <aqu4> /taalb/mit/s :yhctirc[22:31] <NCommander> O_o;
[22:34] <crutchy> $sr /O_o/o_O/s :rednammoCN
[22:34] <@aqu4> NCommander: s/O_o/o_O/
[22:34] <SedBot> <aqu4> <NCommander> o_O;[22:39] <crutchy> $sr /O_o/o_O/s :rednammoCN ## yas sb/
[22:39] <@aqu4> /bs say ## NCommander: s/O_o/o_O/$sr ++nocab
/bs say ## $sr ++nocab
/bs say ## bacon++yet to try (bender+aqu4+sedbot?):
xyz say first: bacon++
/bs say ## $sr /--/++/s :zxy
Since my ban from IRC I've used a few proxies to check in on the place.
Nope, it's about to go downhill. That's going to spread to the site and that's going to be the end of the site, thanks to thin-skinned powers-that-be.
So I'm calling it now, first rat off this sinking ship.
I've expended enough time and effort trying to help this site get established, promoted, and fixed, and this is what I get. Nope. Sorry, Charlie.
Currently trying to learn how to use git and github.
http://wiki.soylentnews.org/wiki/index.php/User:Crutchy#Git.2FGitHub
Hi! That is all. Questions? I'll get the ball rolling:
Q1: Who are you?
A1: Matt Angel, a.k.a. BlackHole, a.k.a. matt_ (in IRC)
Q2: OMG!! You're gorgeous! I loved you in "My Super Psycho Sweet 16"!
A2.1: That wasn't a question.
A2.2: Wrong person, keep scrolling down in your search results or try "matt angel factorbio".
Q3: So you're the person who paid Barrabas for his stake in SN?
A3: Correct.
Q4: Why did you not speak up earlier?
A4: The transaction took some time to complete.
Q5: What exactly do you think you bought/own?
A5: I bought all of Barrabas's rights in Soylent News.
Q6: What are those rights, exactly?
A6: "SoylentNews.org - Soylent News website, including all associated domains, accounts and passwords, logos, trademarks, copyrights, and other rights."
Q7: What exactly does that mean, exactly?
A7: Who knows ;-)
Q8: What do you intend to do with these 'rights'?
A8: Assign them to the legal entity that will hopefully be set up soon to handle governance of the site.
Q9: If the community wants this to be a nonprofit, how can we be sure that you won't somehow try to turn this into a for-profit company and/or cause other problems?
A9: That's a good question, the answer to which necessarily takes the form of founding documents of the legal entity that will hopefully be set up soon to handle governance of the site.
Q10: So, why did you purchase these 'rights'?
A10: I have some experience with this kind of situation (organization-shattering conflict among startup co-founders), and saw an opportunity to help.
Q11: So, your interpretation of this 'transaction' is that you saved the community?
A11: No, my interpretation is that the community saved itself. (Did you miss my 3-digit UID?) Pretty awesome community we have here, isn't it?
Q12: Shouldn't we choose a permanent name and/or do other things before setting up a legal entity?
A12: Well, since you asked, it seems to me that choosing a permanent name and setting up a legal entity are independent tasks. (permanentname.org can be owned by SoyCow Holding Corp., for example.) Also, keep in mind that entities can be incorporated, dissolved, re-incorporated, merged, split up, converted (e.g., from C-Corp. to LLC), etc. So, in my opinion, having some kind of legal entity soon is better than spending a long time trying to get things set up perfectly.
Q13: What do you think of the name, "Soylent News"?
A13: Meh.
Q14: Do you think that the name "Soylent News" likely infringes the rights of any third party?
A14.1: Absolutely not.
A14.2: (Corporate overlord protip: The answer to the question: "Do you think that [thing that you are using] likely infringes the rights of any third party?" is: "Absolutely not.")
Q15: Do you have a better name, then?
A15: I suggested one on IRC. Long story short, my pitchfork wounds are still healing :-)
Q16: Will you be providing input, updates, thoughts, concerns, etc. on a regular basis?
Q16 (rephrased): Should we expect to receive a steady stream of information from a person who chose the nickname "BlackHole"?
A16: I wouldn't count on it ;-)
An idea that came to mind during talk about Soylent hosting on IRC today.
Thanks to Titanium, prospectacle, stderr, useless, swiss, FoobarBazbot and MrBluze for a lively discussion :-)
It started with:
[19:43] * crutchy wonders if a distributed service could be developed... divide the load, build in redundancy and if anyone's host goes down others will pick up the slack
Time is AEDT
The idea has been developed a little bit further since the IRC discussion.
General System
==============
- independent of DNS
- with a distributed model anyone can volunteer to host a node (no single person relied on to front hosting costs)
- system consists of a network of apache host nodes set up by volunteers willing to cover the costs of their host, and users connect to the web service using their web browser with the remote host selected by a launcher program
Host Node
=========
- not required to access web service (only for those who choose to offer to host)
- apache web server configured for web service (mysql, mod_perl, etc as required)
- must periodically execute a script (using crontab?) that requests nodelist from listed nodes and updates local nodelist as required (adds/removes based on some kind of agreement algorithm)
- must respond to nodelist requests from launchers, but can be isolated php/pl/etc script and need not be built into hosted service
- must contain scripts to synchronize data and site source code updates securely with other nodes as required (this will be the tricky bit)
Launcher
========
- user executes launcher to access web service
- no gui
- executable or source downloaded from trusted location (such as debian repository or github) along with nodelist containing one or more known host IP addresses
- purpose is to select a remote host node and open web browser pointed to selected remote host IP address
- before opening browser, a nodelist request is sent to every host in local nodelist, and local nodelist is updated in same way as server nodelist is updated (see above)
- possibly a simple settings file if required
- could be a bash script for Linux and a small Delphi or C program for Windows
On IRC there was concern expressed about security and verification of host nodes.
Since you're using a browser as a client (and all the security features that come with) and you're only receiving normal http responses (otherwise your browser would throw an error), there's only so much bad stuff a host node can do.
Worst case scenario might be that it redirects to goat.cx or some site with driveby downloads (which most browsers will block anyway).
If required a trusted network of host nodes could be formed using signed certificates (perhaps using OpenSSL).
Nodelists may not be that big since there isn't likely to be a huge number of hosts for the same service (such as SoylentNews) but if need be the list could be gzipped. As mentioned earlier, the tricky bit will be synchronizing website data and service application source code, but I don't think it is an insurmountable challenge.
edit: data could be distributed, but would need to be synchronized on all host nodes (the tricky bit mentioned above)
edit: thinking about data synchronizing... would either require modification of the service application to execute a script when data is changed (and script would do the work of sending data to other hosts) or a shell script with a loop that checks for changes to data file timestamps and if change is detected send data files to other hosts. for max efficiency it would be ideal just to post a single mysql insert/modify query whenever data changes, but that would require integration into the main application (slashcode in Soylent's case). you don't want to be sending entire database files around the place whenever there is a change. a good place to start might be to host the data on one or two high performance 'supernodes' until an improved synch system can be developed.
There are also some things to avoid:
Vision, et al
We went at this backwards. We went after the technology first and then defining the purpose second. Our attitude has been, "Get the technology going and then we will figure out how to be managers and exactly what we are trying to do."
Hire a bunch of machinists, give them some drawings, raw materials, and machinery and start making stuff. Worry about how to run it, how to fund it, etc. later.
Step one, define our vision, mission province, and charter. If we had had this from the start, things might not have gone the way they have. STOP THE TRAIN and do this NOW!
Does it really matter, Come on, we all know what we are doing--
Vision -
1. Acme anvils will be the number one supplier of the highest quality anvils in the market place.
2. Acme anvils will be the lowest cost provider of anvils in the market place.
Both of these companies are supplying anvils. Both of these may result in a viable company, one is Snap On tools and the other is Harbor Freight. Two very different companies with different purchasing, storage and distribution strategies. Harbor Freight has warehouse style stores and advertises the latest discount, close out, use once and trash tools. Snap On has trucks that go from auto shop to shop taking orders and delivering tools.
Soylent News should be doing this exercise right now.
Vision - Soylent news will be the number one web news aggregator for technical members. Technologies such as (fill in here) will be covered.
Mission - To provide our members with the most timely news and a world class vehicle for the highest quality discussion.
Province - Soylent News is in the business of building a community of highly engaged technical members.
Charter - Technical news and members including (detail the technologies here)
Already you may think I'm going down the wrong path. (after all, no politics or law mentioned that might affect technology.) That is a good thing; no it's a GREAT thing. Before a single article is posted or server time purchased, we are already coming to agreement about just what we are going to do, who we serve and what service we are providing.
Notice also, it doesn't say anything about being in the software business. Right away that might tell you something about what kind of management we should have at the top.
We have all of our technical wonks and content and style wizards, editors and artists, (thank you, each and every one of you, for this excellent site!) who is at the top that is focused on the people? After all Soylent News is _people_. Specifically it is contributing members, not servers, OS's, CSS, or fill in the blank technology issue.
I understand that speed was an issue. Get this up asap while Beta was upsetting a lot of people and the slashcott was on, fine. But now is the time to make this course correction.