Shallow Thoughts : : blogging

Akkana's Musings on Open Source Computing and Technology, Science, and Nature.

Sat, 09 May 2020

Change to the Blog: Index Page Only Shows Summaries Now

Recently, I was dealing with the RSS page for a local newspaper, and being irritated at how it had the full text of every story on the RSS page, not just the first few paragraphs like most sites do.

And then I realized that Shallow Thoughts has the same problem. In my defense, I set up this blog a long time ago (2004). And nobody complained, so I guess I just never noticed. Anyway, I think it's kind of rude to put the whole story on the index page; it's much more friendly (and the index page loads a lot faster) if there are just intros for each story, letting the reader decide whether to click through.

And then I had to figure out how to do that. PyBlosxom is semi-orphaned, but there are actually still a few developers (I submitted some fixes last year to get Shallow Thoughts working under Python 3, and they were quickly accepted) and everything still works. And the documentation is pretty good, too; it turned out I just needed to enable the "Readmore" plugin and add a couple of configuration lines.

So now the index page, both in HTML and RSS, is much shorter and should load much faster. I hope the change is welcome and doesn't cause any problems for anybody!

And now, on to today's "I" entry ...

Tags:
[ 13:56 May 09, 2020    More blogging | permalink to this entry | comments ]

Fri, 15 Nov 2019

Blog Post Length: Fun with Shell Pipelines, GNUplot and Matplotlib

Sometimes I tend to ramble on, and wonder if articles I'm writing are really too long for a blog post. I try to keep them under about 200 lines, but sometimes a really meaty topic demands more. It occurred to me to wonder how long a typical Shallow Thoughts post is.

A quick measure is lines, which I can measure this way starting in the directory where I have the source files for all my past posts:

find . -name '*.blx' -exec wc -l '{}' \; | sort -h >/tmp/bloglen.dat

The find produces lines like:

79 ./linux/cmdline/random-command.blx
so if I sort -h (human-readable numbers), it will sort on the first column and give me a sorted list of all posts in order of size. The shortest posts, three of them, were only five lines; the longest was 346 lines.

But what's the distribution of lengths?

[Length of all blog posts, sorted] I can plot the sorted data easily with gnuplot:

gnuplot -p -e 'plot "/tmp/bloglen.dat"'
or, if I didn't want the temp file, I could have done that all with one command:
find . -name '*.blx' -exec wc -l '{}' \; | sort -h | gnuplot -p -e 'plot "/dev/stdin"'

That's kind of interesting. But I was really more interested in seeing a frequency distribution: do I have a lot more shorter posts, or longer ones? For that I do need the temp file.

I wasted some time trying to find a way in gnuplot to plot frequency distribution. The best I found was

set style fill solid
plot '/tmp/bloglen' u ($1):(1) t 'data' smooth frequency w boxes
pause mouse close
(put that in a file and then run gnuplot on that file).

But it's not actually right: the bargraph shows 1 for lots of blog post lengths that aren't represented in the data.

I finally gave up on gnuplot, having wasted enough time that I could easily have written a Python script, and did so, which only took a few minutes.

import matplotlib.pyplot as plt

posts = []
with open('/tmp/bloglen') as fp:
    for line in fp:
        posts.append(int(line.split()[0]))

plt.hist(posts, bins=max(posts))

plt.show()

[Length of all blog posts, frequency distribution] Turns out I'm doing pretty well at keeping them under 200 lines. The vast majority of posts are fairly short, with a peak around 50 lines, and relatively few exceed 200. Only a couple of outliers get over 300.

I think I'm okay with that. Whether you, the readers, agree -- well, feel free to tell me!

For comparison, this post is 95 lines.

Tags: , , ,
[ 21:28 Nov 15, 2019    More blogging | permalink to this entry | comments ]

Thu, 10 Oct 2019

RSS was Down, Now Back Up, with Atom

A reader pointed out to me that the RSS page on my blog hadn't been updated since May.

That must be when I updated PyBlosxom to the latest version and switched to the python3 branch. Python 2, as you probably know, is no longer going to be supported starting sometime next year (the exact date in 2020 doesn't seem to be set). Anyway, PyBlosxom was one of the few tools I use that still depend only on Python 2, and since I saw they had a python3 branch, I tried it.

PyBlosxom is no longer a project in active development: as I understand it, some of the developers drifted off to other blogging systems, others decided that it worked well enough and didn't really need further tweaking. But someone, at some point, did make a try at porting it to Python 3; and when I tried the python3 branch, I was able to make it work after I made a couple of very minor tweaks (which I contributed back to the project on GitHub, and they were accepted).

Everything went fine for a few months, until I received the alert that the index.rss and index.rss20 files weren't being generated. Curiously, the RSS files for each individual post are still there; just not the index.rss and index.rss20.

I found there was already a bug filed on that. I tried the workaround mentioned in the bug, at the same time adding Atom to the RSS 0.9.1 and RSS 2.0 flavors I've had in the past. I haven't generated Atom for all the old entries, but any new entries starting now should be available as Atom.

Fingers crossed! if you're reading this, then it worked and my RSS pages are back. Sorry about the RSS hiatus.

Tags: , ,
[ 09:10 Oct 10, 2019    More blogging | permalink to this entry | comments ]

Sun, 18 Aug 2013

Nominated for FOSS Force Blog Competition

Shallow Thoughts has been nominated as a competitor in round two of the Foss Force Best Personal Linux or FOSS Blog Competition. There are plenty of excellent blogs on the list and I'm flattered to be included.

If you have a moment, take a look and vote for your favorite (whether or not it's Shallow Thoughts). You can vote for up to two. If nothing else, it's a good excuse to check out some excellent articles on free software from a variety of writers. Voting ends on Monday.

Tags:
[ 12:05 Aug 18, 2013    More blogging | permalink to this entry | comments ]

Fri, 11 Mar 2011

Testing blog comments

Based on the offline comments I got, I'm going to try Disqus for blog comments.

Setting up an account was easy, and I think I have the PyBloxsom side working now. So this is a test post to see if comments are working. Feel free to post comments and see! In theory, you should be able to use OpenID, Twitter, Disqus or various other types of accounts.

Comments aren't visible on the blog home page, only on the pages for individual stories.

If you want to try commenting but can't think of anything to say, how about the Japan earthquake? Wow! My heart goes out to everyone affected by the huge quake or the tsunami that followed. Any good links to information about the quake?

Tags:
[ 17:09 Mar 11, 2011    More blogging | permalink to this entry | comments ]

Tue, 08 Mar 2011

Blog Comment Services

People periodically ask me why I don't have comments on my blog.

It's not because I don't want to see user discussion -- I'd love that. In particular, several people had opinions on my recent post about locations for the SCALE conference, and I would have loved to see and participate in a discussion on that.

The hold-up is purely technical: my current blogging setup makes it difficult to add them and keep the system maintained.

But lately several services have arisen that apparently make it easy to add comments to otherwise static pages, and I'm considering trying one.

The candidates I know about are:

None of these is perfect. I believe they all require signing up, though the first two can use an OpenID account, and of course a lot of people already have a Facebook account. But it might be a lot better than no comments.

Readers of my blog: do you have a preference, or any experience with any of these services? ("Don't bother adding any of these" is also a valid option, as are suggestions for services I didn't list.) If there's a preference, I'll go with it ... otherwise, I'll probably just pick one and try it.

Please mail me your thoughts or suggestions. Thanks!

Tags:
[ 22:16 Mar 08, 2011    More blogging | permalink to this entry | comments ]

Fri, 29 Feb 2008

Script to add tags

Python is so cool. I love how I'll be working on a script and suddenly think "Oh, it should also do X, but I bet that'll be a lot more work", and then it occurs to me that I can do exactly that by adding about 2 more lines of python. And I add them and it works the first time.

Anyway, it turned out to be very easy to go through all existing blog articles and add tags for the current category hierarchy, being careful to preserve each file's last-modified date since that's what pyblosxom uses for the date of the entry. add-tags.py

Tags: ,
[ 19:37 Feb 29, 2008    More blogging | permalink to this entry | comments ]

Wed, 27 Feb 2008

Got tags working with pybloxsom

Entries on this blog are arranged by category. But all too often I have something that really belongs equally well in two categories. Since pyblosxom's categories follow the hierarchy on disk, there's no way to have an entry in two categories. Enter tags.

Tags are a way of assigning any number of keywords to each blog entry. Search engines apparently pay attention to tags, and most tagged blogs also let you search by tag.

I wanted my tags to follow whatever canonical tag format the big blogging sites use, so search engines would index them. Unfortunately, this isn't well documented anywhere. Wikipedia has a tags entry that mentions a couple of common formats; the HTML format given in that entry (<a rel="tag" ...>) turns out to be the format used on most popular sites like livejournal and blogspot, so that's what I wanted to use. Later, someone pointed me to a much better tag explanation on technorati, which is useful whether or not you decide to register with technorati.

Next: how to implement searching? The simplest pyblosxom tags plug-in is called simply tags.py. All the others are much more complex and do tons of things I'm not interested in. But tags.py doesn't support static mode, and points to a modified tags.py that's supposedly modified to work with static blogs.

Alas, when I tried that version, it didn't work (and an inquiry on the pybloxsom list got a response from someone who agreed it didn't work). So I hacked around and eventually got it working. Here's a diff for what I changed or just the tags-static.py plug-in.

Additional steps I needed that weren't mentioned in tags.py:

I also wrote a little python index.cgi for my blog's /tags directory, so you can see the list of tags used so far. Strangely, tags.py didn't create any such index, and it was easier to make a cgi than to figure out how to do it from a blosxom plug-in.

And as long as I'm posting pyblosxom diffs, here's the little filename diff for 1.4.3 that I apply to pyblosxom whenever I update it, to let me use the .blx extension rather than .txt for my blog source files. (That way I can configure my editor to treat blog files as html, which they are -- they aren't plaintext.)

Anyway, it all seems to be working now, and in theory I can tag all future articles. I'll probably go back and gradually add tags to older articles, but that's a bigger project and there's no rush.

Tags: ,
[ 16:04 Feb 27, 2008    More blogging | permalink to this entry | comments ]