whird.jpope.org cover image

No More StatusNet for Me

Due to an update to PHP 5.5 in the Arch repos and the fact that I haven't been able to get the queuedaemons to run for my StatusNet instance, I have closed my instance for good. Most likely, I will not be starting a fresh instance anytime, then again, who knows. I currently don't have the bandwidth (time or energy) for more than the pump.io and Diaspora instances running as it is. Maintaining three socialverses was getting overkill anyway, even with my crossposting. It was awesome while I had it but, it's time to move on. You can find me at jpope[at]io.jpope.org and jpope[at]pod.jpope.org. EDIT: I have re-joined the StatusNetiverse at jpope[at]micro.fragdev.com Saddened Comments: aqeeliz This is going to be the next annoying thing, we both use federated social networks (you using more than one) and we still can't communicate with each other :) See you when someone develops a Pump.io StatusNet bridge. 2013-09-09 01:16:08 jpope Yes, proper 'federation' sho…

StatusNet Nginx conf

I've always meant to post my nginx conf that I use for StatusNet. Up until now, I failed doing so... Due to a convo in #statusnet IRC, I remembered that I still needed to post it here. ;) My conf for StatusNet is based on @joar's post here and I really haven't changed much. The conf can be seen on my pastebin.…

Crossposting to all the places

Seeing that I'm currently hosting three social networks, and trying to be active on all three, I needed a way to post to all three simultaneously. This is the script that I use to cross post to all the places. ;) StatusNet posting is simply using curl, Pump.io uses the CLI scripts in my pump install and Diaspora is using cliaspora. The script can optionally post to all three at once, a single network or any combination of just two. For pump.io posting, if you haven't ever used the CLI scripts, you'll need to run the pump-register-app and pump-authorize in order for my script to post (as it uses the pump-post-note script). Also, I am using a version of the pump-post-note script that has a post to Public option as well as a Quiet option (it doesn't return "OK" after posting). You can also see my previous posts regarding posting via the command line here and here for more. Posting to Diaspora is done with cliaspora. My script will test for an open cliaspora session and will open one if the test fails. I am als…

BashScriptVille Part II

I've now added a new pumpio (and statusnet) bot that pulls comics from XKCD. Why? Why the hell not? Don't we all love XKCD? The "bots" are located at XKCD@pump.jpope.org and xkcd@sn.jpope.org if you want to follow. The script I wrote for these two can be found here. For pumpio, it does use a custom script based on one of the scripts included in a standard pumpio install, My scipt allows for titles to be added to a regular note and can be found in my Github Gogs repo for pump.jpope.org. The pumpio script also has a small mod to post the notes publicly instead of only to Followers (thanks @jrobb!). The bot script also captures the newest posted comic and stores the comic id in a small file so the next time the script is run, I don't end up posting the newest one multiple times. Well, hopefully I don't. ;) The script also formats the pumpio version in html and in textile for use with the Textile plugin on statusnet. I now have 11 pumpio bots that live in BashScriptVille: apod@pump.jpope.org bofh@pump.jpope.org f…

One Year of being a Fed

A year ago today, I said the hell with it and started my own StatusNet instance. Since then, it's been my main source of online engagement with other identicats and feds and even twits. During that time, I've posted 18,550 notices, with the first 10,000 happening quite quickly, subscribed to 272 people and have 158 people subscribed to me. My instance has captured 632789 notices from all around the StatusNet globe. I've certainly got quite a bit of use out of my mostly hasty decision to install it. I've broken it a few times, and fixed it enough that I haven't missed posting something every day. First notice, year one: jpope First. on 2011-11-01 from mustard First notice, year two: jpope And I start my #federation day with a #cupofcoffee. :) on 2011-11-01 from IdentiCurse So, now that I have a year down, and things are running quite well (my instance even survived my recent migration to Nginx), I think I'll kill it off. It's just been too much damn work to keep it goi…

StatusNet Subscription Hacking

Some time back, @sazius changed his StatusNet instance from 'SSL always' to 'SSL sometimes'. My hunch was right. I had problems subscribing to @jezra, switched from always SSL to sometimes. Worked fine. Hope doesn't break smth else:) sazius (sazius)'s status on Friday, 30-Mar-12 18:53:19 UTC - status.saz.im This change caused me to not receive any notices from him aside from direct @-replies. I tried to fix this a few different times without success. Until today. I should also note that I tried to resub (via the browser) to him however, every different way I tried, I would just get a "Could not set up the remote subscription" error message. I also tried running the "two-step" but, it would only return an error as well. Well, crap. Off to the command line then... Before proceeding with this post though, I will mention that it's a real brain dump in the realm of $ cat /home/jpope/brain > /home/jpope/blog and may not make much sense. I will also say that it'll make more sense for those used to…

Wunderbot Update

This is a quick update to announce that my Wunderground bot plugin for StatusNet has gotten a couple of new features since it's initial release. The first one is that if a US zip code or Canadian postal code isn't supplied in the notice to the bot, it'll attempt to get the users location from the notice. This info is attached to the notice only if it has been allowed by the user (it may be turned on by default, I can't quite remember). To turn it on, you have to check the "Share my current location when posting notices" checkbox in the settings (i.e. http://identi.ca/settings/profile) and put a valid location in the Location field. Another option is to have your browser or client (some clients such as Mustard have this option) attach the location information. If the notice has the location information (which is in latitude/longitude format), the bot will pass the lat/long to the Wunderground API and it'll return the current conditions appropriately. One thing to note is that the bot will use a provided posta…

WunderBot

To continue my recent work with the Wunderground api, I have now hacked together a new StatusNet bot plugin. With this plugin, you can ask the bot for the current weather conditions with just the word 'weather' and the five digit US zip code of your choice. So long as Wundergound recognizes the zip code, it should return some basic details. This plugin is currently active over on my Matrix instance, just ping @Niobe. @jpope It is currently Overcast and feels like 64.0 F (17.8 C) in Jefferson City. The humidity is 58% and the wind is From the NNE at 2.9 MPH Gusting to 5.8 MPH. #cloudy http://www.wunderground.com/US/MO/Jefferson_City.html Niobe (niobe)'s status on Monday, 17-Sep-12 22:18:02 CDT - matrix.jpope.org I have looked to do this before but, hadn't had much success. Mostly, my lack of proper coding skills has usually been my holdup. Previously, I found a bot on identi.ca (source) that already did what I've done here, except the execution is quite different. That bot (which currently does…

Weather Bots

This has been me off and on the past couple of days: Playing with bash and the wunderground api. Jeremy Pope (jpope)'s status on Sunday, 02-Sep-12 10:13:33 CDT - micro.jpope.org My Matrix bots have been providing me with a few weather details ever since I set that StatusNet instance up. I have a little bash script that will pull the data on a set schedule via cron. Previously, I had been using google's "secret" weather api as it pulled quickly, is easily parsed, didn't require an account and had just the few details that I wanted. Judging from the error message I get when attempting to open the xml feed in my browser, they've blocked my IP and or domain: After a quick search, it turns out the api was shut down. This has also had an effect on my XMPP jsonbot as it uses the google feed for it's weather as well. :( So, now it was time to find another place to pull from. I prefer to pull from an api as opposed to scraping a page somewhere. I really hate having a script fail due to the page being scrape…

ScrollToTop plugin update

The ScrollToTop StatusNet plugin that I started awhile back has been seeing quite a few updates recently. I updated the original blog post concerning it just last week however, there have been more updates to it so I figured a fresh blog would be good. Initially, the plugin was just simply inserting some html + css to the SN interface that would add a static button to scroll to the top of the page when clicked. We have since (we being @mvdan and myself) moved the plugin to using the jquery via the jquery script that SN already has. So now, the plugin is just simply inserting some html + css + js to the SN interface... This has improved the experience with the button (it doesn't add a '#' to the end of the URL after being clicked for one) along with providing me an easy way to add more functionality and effects. The original CSS opacity transitions have been moved to the js script as well. Due to moving the code from inserting raw html to inserting the <div> and <img> attributes via arrays, I had t…

StatusNet - ArchLinux rc.d scripts

This is a quick post to put my rc.d scripts that I use for my StatusNet instances. Both of these scripts, one for micro.jpope.org and the other for matrix.jpope.org, have been working great for me for the past few months. I also have Monit monitoring the daemons and restarting them as necessary via these scripts. My micro instance has four daemons running: queuedaemon, imdaemon, twitterstatusfetcher and synctwitterfriends for the queue, XMPP and the Twitterbridge. The init script for it has a each of these listed just so that I can easily check the status of them. The matrix script only has one daemon, queuedaemon, as that instance is setup much lighter than my main instance. If someone is looking for a quick and simple script, the matrix one will probably be the better choice to start with. Both scripts are pretty much the same aside for the extra few lines to capture the pid's of the extra daemons running For both of these scripts, there are the main config settings at the beginning for StatusNet install p…

ScrollToTop Plugin

I recently made a small change to the layout of my StatusNet instance to show 50 notices per page instead of the default 20 per page. This little change was made to the framework.php file in ./lib ./lib/framework.php:define('NOTICES_PER_PAGE', 50); `</pre> Since my instance is a single user instance, the increase of notices isn't going to increase the overall load on my server by much. I'm not sure I'd do this on larger instances like identi.ca, parlementum.net, brainbird.net, etc. due the the increase in page load. Of course, I could be wrong. The one side effect having the increased notices, is the increase of scrolling back to the top of the page. Solution? Enter a plugin called ScrollToTop. This plugin adds a small static image to the bottom right of the page that will scroll to the top of the page when clicked. Simple. ;-) The plugin can be installed by navigating to the plugins directory and pulling it from git. git clone https://gitorious.org/scrolltotop ScrollToTop And then, you'll have to add t…

Simple StatusNet Plugins

On a recent exploration of the files of my StatusNet install, I happened to open up PLUGINS.txt in the root of the install. Upon reading through, I happened to notice the line: In the simplest case, you can add a function to config.php and use the Event::addHandler() function to hook an event: Basically, what this means is that simple plugins can be added to everyone who runs an instance's favorite file, config.php. Previously, I have hacked together a simple plugin to add a 'Stop Censorship' banner across the site logo (link). This plugin could have been just as easily done directly in config.php, and maybe with a little more ease. Anyway, here are a couple that I came up with to put this config.php plugin thing in action. They are both just simply adding elements to the page and are not very complex. The first one adds a Flattr button to the primary navagation at the top of the page. It has two seperate parts, the first to add the Flattr javascript to the <head\> section of the page and the sec…

MySQL Took Over My Hard Drive

Yeah, so it's probably due to misconfiguration on my part but, I ran across an issue where the MySQL binary logs soaked up 83% of the disk space on my server. Of course, at first I didn't realize that was the issue. After looking through various system logs, I moved on to the MySQL logs since I was having issues shutting down and starting MySQL. In the error log found in /var/lib/mysql, I noted that it said something about not having disk space. Wait a minute, the last time I checked I was using well under 5GB of my 20GB partition on my server. A quick 'df -h' confirmed that my root partition was completely full. :/ So to figure out what was using all of my hard drive space, I used this command that will list any files it finds that is over 50MB. # cd / # find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' And that showed me that over 2 dozen files were in the /var/lib/mysql dir, all with filenames like mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 mysql-bin.000004 ... mysql-bi…

Ten Grand

I've hit a milestone on my StatusNet instance. Wasn't anything that I was striving to do but, it was bound to happen. I've now surpassed 10,000 notices (dents, statuses, magical posts of mystery). My 141 day StatusNet journey up to this point has been quite interesting and fun. During this time, I've managed to get my instance running quite well on my server here at home. The initial "server" was my desktop at the time, until the power supply burned up and took the motherboard and cpu with it. Moved the hard drive over to another box, which I went from 4GB RAM to 1GB (eek, Apache and MySQL didn't like that move). Moved it to EC2 when my ISP was having issues. Moved it back home when they got things straightened back out. Changed the distro underneath from Debian to Arch. All this and I managed to not miss a day of posting a notice since I started my instance back on November 1st. I was also dubbed the #IdenticursarianPope (Link) With a 71 notice a day average, I've been determined to be #asuitablenoiselevel…

First Posts

This post is just a gathering of some of the first notices of some of the individual StatusNet instances that are currently active. At least currently active and have entered my SN database. These instances are mostly comprised from this list that I have put together. The actual images were obtained by using @pla1's excellent dentimage.com (don't forget to Flattr it). Also, if you don't see your instance listed here, don't take it personal. I may have either overlooked it or couldn't find the first notice that is currently in existence. I can add it to the list if you like, just let me know. ;) In alphabetical order (hopefully): Comments: aqeeliz Now history will remember me as the person with a boring first dent, maybe I should have something witty and memorable. 2012-01-25 07:29:42…

My StatusNet Meteor and Realtime Setup

While writing my last post regarding setting up my StatusNet instance, I only glossed over the realtime subject. This was due to @ryanweal writing his post on the topic. Still, I remember the couple of evenings I spent trying to get Meteor and StatusNet talking with each other. It was somewhat a pain in the ass. Now that it's setup and working, I rarely even think about it. First things first, I headed over to http://meteorserver.org/installation/ and followed the steps there to install Meteor. All was good until step 6 (the Integrate with web server section) but, to be fair, they even say "Here's the tricky bit." in the instructions. After a bunch of messing around, it turned out somewhat easier than I thought. The following is after completing steps 1-5 on Meteor's installation guide. One note on the init.d script creation. As my webserver currently runs Debian, I had to comment out line 6 for the /etc/init.d/functions as it doesn't exist... ;) In the end, I used port 8080 as the subscriber port and 808…

StatusNet Setup Notes

So now that I've established my StatusNet instance and have it running pretty well, I figured that it'd be a good time to document some of my experiences on setting it up. If you've read my previous entry when I actually started my instance, you may have noticed that I pretty well started it up quite hastily. I did have some experience in setting an instance up but, hadn't really messed with the configuration much aside from disabling some of the plugins. And that instance was (and is still) a private instance where the majority of it's activity is from my various machines checking in with uptime and update stats. For my public instance, I really didn't put much thought into how heavy, or how light, I was going to have it. Initially, I just wanted a SN instance that would work. In the end, my instance is probably overkill, especially considering it is just a single user instance. If you look through the active plugins on my instance, between having the Realtime w/ a Meteor server, Memcache, Twitterbridge, In…

Stop American Censorship StatusNet Plugin

Our ████████ ████████ may be at ████ if the ████/████ █████ are ██████. ██████ see ████://██████████████████.org for ████ ███████████.* This is a simple StatusNet plugin that will add the 'Stop Censorship' banner and a link to americancensorship.org to the logo on an SN instance. I basically took the the code that's available at americancensorship and added it to a plugin script. (As a matter of fact, I copied the Awesomeness plugin and stripped it down to what I needed.) If I had actual PHP skills, this plugin would have options and stuff but I don't so there isn't any. So a little editing of the plugin script may/will be needed to adjust the banner for your site. First, download and extract the archive (censorship.tar.gz or censorship.zip) to your StatusNet plugins directory. If you use the tar.gz, you'll need to chown the extracted directory so that it matches the rest of your SN install. Something such as: chown -R http:http Censorship should do the trick, adjust the user:group as needed. To activate th…

StatusNet Theme - Dartik

Here is the first StatusNet theme that I am releasing. It is basically a port of the Drupal theme, Dartik, which is a dark sub-theme of the default Drupal 7 theme, Bartik. For this theme, I mostly started with the base StatusNet theme and started tweaking the css to match. The theme on my Drupal install is a modified version of Dartik so creating a theme for StatusNet was a must so that my site just blended together. Click thumbnail for larger image. To use this theme, download the archive attached to the bottom of this post (see edit at bottom of post) and extract it to the theme directory in your StatusNet install. tar xvf dartik.tar.gz Add a line to config.php that calls the new theme: $config['site']['theme'] = 'dartik'; Also, it's good practice to run checkschema.php any time you make changes to the config.php. php scripts/checkschema.php Now you should see a new look to your StatusNet instance. If you find any oddities, please let me know and I'll try to fix it. There are a few things that I want to…