Rebooting my free services

I have a strong compulsion to emulate large, centralized platforms. I think it irks me to collaborate with others on sites that are owned by for-profit companies, because their rules are derived from the bottom line, and that is a community anti-pattern.

Or I was hypnotized as a child. I am not ruling that out, and will probably be leaning on it as an excuse to explain more of my behavior in the future. ^_~

Anyhow, I find myself assessing my network assets, and I have a lot going on. Some of the services I run are useful (like the talkgroup), but others are not utilized as I imagined they would be. Phabricator and GitLab come to mind.

Because I keep notes, I know my motivation in setting these up. I want free software and community resources available to folks that I don’t think would use them otherwise. Specifically, my friends. I like servers, and I like devops (see hypnotizing theory above), but not everyone has my time or skillset to spin up a site. So I figured I would do that, and folks wouldn’t need to default to the mainstream alternative that uses them as the product.

But as it turns out, the primary folks that use these services are people that could do it themselves. And everyone else is either not interested, or have activation inertia towards the mainstream.

I’ve known all this for a while, of course. It just didn’t deter me. But now I am seeing the return on investment in terms of time, and I’d like to spend that elsewhere. I want to make more impact, and I think cutting back on some services will free up the mental energy to produce some new projects I have in mind.

Specific sites and services

I will transition All the codes! away from GitLab. I am tired of being a second rate citizen with their “open core” model, and my host that was absorbed by the GitLab company is no longer dedicating enough resources to my instance, making it crawl along. Too many straws, so away it goes. Since I just need a web viewer and something that is fast, I am considering Gogs.

guildworks is complicated, because I really like the software, but I don’t develop software the way they do (meaning, I don’t really collaborate). I really love the way tasks work there, and I haven’t found anything similar, but it seems silly to keep that up just for that relatively small component.

I was going to run another community jabber server, but the admin for that is so prohibitive I am going to avoid it. Instead, to encourage federation and decentralization, I am going to create a node on interi.org, and will have a rolling project slot for helping others setup Prosody.

I’ve been thinking about wikae a lot lately, but I no longer think documentation should default to public editing. MediaWiki hits this niche that I don’t use, so I will be finishing off maiwiki. Instead of going through piecemeal as I’ve been, I will be exporting it as a whole into a static site generator, for archiving. Note: I have some exciting develops in documentation coming up!

I am keeping Discourse up because we use it often enough, and it is great software. But I am running it as a listserv (with a really great web interface), but I am not looking to integrate other sites into it. I want it to be great as its thing, which is sharing info for discussion.

And finally I am clearing the table for planned social network things. I don’t think the federated social network model works, and I don’t think anything that could scale against the mainstream can remain free and open. Instead I want to build recipes for specific social tools, which server me and my tribe, and which can be easily emulated for others.

And that’s it. Cleaning up, re-focusing. If you have any concerns about the sites I’ve mentioned, leave me a comment or email me. And let’s get a cup of tea sometime. ^_^

New wiki notice

I sent this out to the users that registered with an email address on maiwiki:

Hiya! This is maiki, the one that runs this wiki. I recently found that the database has so many bot registrations, it is now 17GB! While we don’t have an issue with spam in the articles, I did run out of hard drive space, so I am going to start over with a new wiki instance.

My plan is to migrate all the content over from this wiki to a new one, and turn off user registration. I will manually add folks to the wiki that wants to edit it, which has only been a handful of us, and that should take care of it.

I would also like to relicense everything under CC0 (http://creativecommons.org/about/cc0). The current wiki is CC-BY-SA. The reason is that most of the content on the wiki is created by me, and I want to dedicate it to the commons.

If you do not want your content relicensed with CC0, please let me know and I will remove your contributions from the new wiki. ^_^

maiki

Locking down the wiki

I thought about it for a day, and decided to set the wiki to only be editable by those with a confirmed email address. The main reason is that I don’t have time to fight spam now, and this may help. It isn’t a permanent decision, though I fear that I may just leave it like that out of frustration.

Eventually I hope to find a different method for combating spam, and if I went ahead with my plans for a wikae cluster and filled it with active communities, it might work. I’ve got to think about this, but I don’t have the energy to do so now.

Bummer.

I am bummed out by the amount of spam I am getting in MediaWiki. My impulse is to turn on confirmed editing (meaning they need to confirm their email address), but that isn’t the wiki spirit. On the other hand, only folks that I know are using it. Sad.

Template:Ximg

Adam created a cool template for embedding and aligning external images in MediaWiki.

I wanted to keep copyrighted materials out of the file list so I can easily archive the wiki and share the data, so Adam made it easy to get the same effects as the native markup. Through discussion we decided to make the template generic, and e also created a personalized version of the template for the Rise of the Runelords campaign they are documenting. Groovy!

AbuseFilter: block anonymous edits on user talk pages

Here is the latest MediaWiki AbuseFilter (number 5):

[code light=”true”]
!("user" in user_groups)
& article_namespace = 3
[/code]

The first line checks if the visitor is logged in, and the second checks if they are editing a User Talk page. I got the namespace number from Manual:Namespace.

I made a special warning message, and then if they try again it simply disallows it. I am going to see how many hits it gets, before blocking the people/bots that trigger it, to make sure normal folks don’t get caught by it.

Learning to code

I am learning to code. It is scary.

I’ve wanted to program for years, most of my life, actually. The furthest I’ve gotten is some tiny BASIC programs, and bash scripting. Someone mentioned to me that for a person with such strong opinions about software, it is odd that I don’t write any. I agree.

Choosing a programming language to learn is tough. Everyone will like their language, which means that there are very few people who could assess your interests and make a recommendation. It is also compounded by the fact that I have dealt with various languages for a long time in my webcraft, so I have my built-in biases as well.

I’ve gotten my list down to a few, all of which I intend to learn at least the basics. They are, in order of focus: JavaScript, Lua and Python.

JavaScript, because I feel like I can get by okay without writing my own code, but it would be neat to step up my game in webcraft, and start applying it to other platforms, aka webapps on mobile devices. Every vendor is trying to make the web feel like it is native to the device it is on, and I would like to be in on that. I have ideas for games that can be done by the technologies we mean when we use HTML5 as a buzzword. Also, I think node.js is really cool, and makes it so JavaScript has a pretty complete feature set for me.

Lua, because it is used in a lot of games, is becoming a scripting language used in MediaWiki, and what Prosody is written in (I’ve always wanted to write a jabber dice plugin, nothing works the way I want it). I have a lot of ideas for using Semantic MediaWiki data, and Lua is another tool, and potentially very powerful at that.

And of course there is Python. I want to learn Python for various reasons, but the most important one is probably because it feels like something a hacker knows. I use it everyday, a surprising amount of GNU/Linux desktops use a lot of Python just beneath the surface. There is also MediaGoblin, pygame, and Ren’Py, all of which I would like to contribute to eventually.

Challenges

My reservations are that coding makes my life difficult, specifically, I can’t sleep. My hope is that therapy and perhaps medication will help me get pass the early barrier where I can’t focus on a language any more, and have to stop to get my life together.

I am able to point that out because since we found out were we going to be parents, I’ve been researching my brain (well, various brain sciences, not mine in particular) to figure out why I am the way I am, and how I can mitigate some horrible traits of mine so they aren’t transmitted to Clover.

Well, it turns out that they aren’t horrible, and that I have various symptoms of ADHD, as well as the behaviors that come from compensating for them (like low self-esteem, or the feeling that I am too lazy or stupid to learn how to code).

I am learning JavaScript first, because it is something that is strongly integrated into my daily work, I am somewhat familiar with how it works, and I hope that helps me ease into it when I am feeling desperate and stupid.

If you know me, and you know any of these languages, I could use the support when I ask questions, and recommendations on where to start. So far I am doing the JavaScript tracks on Code Academy and going through Eloquent JavaScript, which I find easy to read and understand.

I hope one day I look back on this post and am all like, “d00d, you killed it! You made that one awesome game, and you mentor others! And it all started here.” Because I like totally talk like that. ^_^

Thinking in wiki

I’ve been really into wikae lately, as is apparent by how much I written about it. A wiki is a particular set of features and workflows, and it has its own mindset.

I am thinking in wiki.

This site is becoming more of a journal, where my posts are either about flash in the pan events, or part of longer thought out articulations. The frequency of posts has gone down, because I am doing more mind-mapping in other places, like text files in git repos, and in various wikae.

It has brought a few things to light for me, about how I write, and what I am trying to create. Here are a few examples:

  • Temporality – A lot of the things (most?) I blog about are not important to me after a few months. That means I have old announcement posts and tons of broken links that have no value, but I keep them to provide temporal context. I am not convinced it is that useful.
  • Anti/Social – I think blogging is very important, but it does bother me that blogs are essentially silos. This isn’t really a critique, just that instead of loading up blogs with like buttons and allowing people to leave comments with their social network credentials, it is probably more worthwhile for the majority of bloggers to assess what collaboration looks like for them.
  • Our tools are aging – The software that runs some of the most important spaces on the web, like MediaWiki and WordPress, were developed a long time ago. It is easy to find feature requests from years ago, still being pleaded for. Again, not a critique, just an observation of what popularity does to software, and how dominance affects the culture and motives of the community that supports it.

These aren’t new, obviously. It is just me glancing at the gap between two software projects/workflows (WordPress/blogging and MediaWiki/wiki). Then I think about StatusNet, and how it looks like it could be practically abandoned for other projects. In one sense, that is a bummer, and I’ve invested a lot of time in it. On the other hand, maybe it isn’t so bad for things to get torn down and built back up, especially considering the transient nature of status updates, almost all of which are unimportant to me a few days afterward.

I’ve really pushed MediaWiki hard in the last couple of months. I’ve bumped up against a lot of walls, and some of them stopped me. But overall, I am happy with the result, which is a system to collaborate with those that want to, and a relatively decent way to create bodies of useful content. I am rushing as fast as I can to configure all the extensions I think I will need, so I can eventually just focus on creating. That will be the real test.

Wikae spam

My wikae are getting spammed, so now I’ve got to step up my game. ^_^

Unfortunately, wikae get targeted for spam very easily. And despite this becoming more and more of a problem, the tools used to combat it kinda suck.

In order to minimize the inconvenience for legit folks, I made some changes to help me monitor the issue. They are: SpamBlacklist, Nuke and .

  • Extension:SimpleAntiSpam – Catches dumb bots right off the bat.
  • Extension:SpamBlacklist – Uses the Wikimedia blacklist, which is okay for now. I will customize it as I see patterns emerge.
  • Extension:Nuke – Mass page deleting. Pro-tip: Searching for pages without putting in anything will give you a list of recent content with checkboxes, which is a fast way to get a lot of spam deleted at once.
  • $wgEmailConfirmToEdit – This is the worst one, which requires an email address to edit. I am just turning this on so I can have a small respite until I have more time to look into this.

It is tough having a publicly editable wiki. While Wikipedia is awesome precisely because anyone can edit it, most other wikae have neither the resources nor the critical mass required to effectively combat spam. I have to think about whether requiring an account is going to be okay for my specific needs, or if I really do think my projects can benefit from more accessibility.

One cool thing about the wikae farm is that I only have to block an account once! Makes it a bit easier to manage. ^_^