2018 archive

This page is part of the archives of my blog.

·1998 · 1999 · 2000 · 2001 · 2002 · 2003 · 2004 · 2005 · 2006 · 2007 · 2008 · 2009 · 2010 · 2011 · 2012 · 2013 · 2014 · 2015 · 2016 · 2017 · 2018 · 2019 · 2020 · 2021 · 2022 · 2023 · 2024 · 2025 · 2026 · 

This is the full archive for 2018


Beginning 2018

Fremantle

It's the fourth day of 2018, and nothing seems much different from 2017 yet. I'm still too slow at cutting bits of wood to the right size, and too indecisive about how much of my inaccuracies I want to leave showing in a finished piece, and so my wine glass shelves have progressed slowly. On the code front, I'm still trying to build a working system to extract my and my friends' photos from Flickr — the delays mostly around the best ways to keep them in MediaWiki (i.e. templates, using Cargo or not, etc.). One good thing that's happened is that GlobalPreferences' required changes to MediaWiki core have been merged, and so work can begin in earnest on the extension itself. This isn't yet that exciting, as no new functionality is being introduced, but we're one step closer to local overrides (and maybe one day even deploying the blasted thing).

My experiment in wiki-based genealogy research (over on ArchivesWiki) is progressing, and some issues around generating GraphViz graphs of human relationships are being resolved. One thing that looks like it could be useful is an idea to introduce a {{SHORTDESC:Lorem ipsum}} magic word. I reckon this could be the thing that is displayed in parentheses after a person's name in family trees (it'd beat the current system of attempting to glean a useful year-only date range out of non-standardized and variable-granularity date formats).



Not jumping for the shiny new things

Fremantle

It is very hard to not want to change things when a better idea comes along. The problem mostly seems to be that "better" is so easy to feel when you first see a new thing, and it's so hard to remember that the current way of doing things was once that same "better".

Bit by bit I'm learning to be more conservative in jumping to the next cool new technology, but I still feel the pull. A simple tweet about a new way of working with Markdown; a Hacker News thread about why hosting your own websites is dead; or the feeling of giving in to the corporate world of the web (Twitter & Flickr, mainly) will bring some cool relaxation. But really, ignoring the impulse (unless it comes again and again) is not that hard, and makes for an easier ride in the end.


Also finished listening to How to Stop Time (eps 8–10).

Loops and deadlines

Fremantle

It's a loopy sort of day. I mean there are loops in it. Which is pretty common, but sometimes gets annoying. It's like having a flowchart in your head, but someone forgot to put an end state in it and instead it links back on itself. It only does this after some sufficiently large number of steps though, so it's sort of hard to see that it's a loop at first, because you're expecting it not to be and aren't keeping count properly.


There is no deadline so every second is one: on anxiety, perfectionism, and Wikimedia projects by Léna:

There is no deadline on Wikimedia projects, and we have so, so much to do. Maybe I should grab my camera, go outside, and take decent pictures of my city. Or I should work with my local LGBT community and do an edit-a-thon. Or work at a national level, contact centers and convince them to share some of their archives. Or I should work on my tools backlog. Gosh, I haven’t seen the admin discussions on French Wikipedia for months, I should give a helpful hand. And I have so many books, I just should take some time and write articles. Or I should look at the latest mass-upload on Commons and put pictures on Wikipedia. Or I should enrich the French Wiktionnary about Gaumais, the language of my ancestors, to my knowledge I am the only one on Wikimedia projects who knows about Gaumais. What is the most important ? Where do I have the most value ? Oh, I guess I should work on that friendly space policy at Wikimedia France, I have lot of experience on what works and what doesn’t on other spaces, I would be so useful there.


Open Source Hack Afternoon

Glendalough Railway Station

I went along today to my first open source hack afternoon, a regular language/platform agnostic hack group that's now meeting at the Artifactory.

It was a hot day today, with dark orange skies from the fires up near Mundaring, and when I got to the Artifactory there was a bit of a delay in getting inside and so we sheltered in half a metre of shade against a hot wall for a little while.

We had a pretty good room with an portable air conditioner that made it just about a bearable temperature (and provided white noise, in case that's useful). Stephen brought a projector, so we could share things more easily.

I'm looking forward to next month—and maybe more people will come! Maybe it'll be nicer weather.

https://perthhackers.github.io/

What's the future of hosting MediaWiki?

Fremantle

What is to be the future of running one's own MediaWiki? Shall there be a dozen different services required (database, cache, search, parser, ...) all running with different technologies and different systems of upgrading and support? Or will we head back to the "old days" (in which things like WordPress still exist) where it's basically just a single PHP application, perhaps now with its own dependency manager (i.e. Composer), and nothing much else? Are people with shared hosting accounts going to still be able to get it running? Will they be able to get it running more easily than they can today? (Certainly, they're not often currently getting it running with Visual Editor, for example.)

I'd like to think that MediaWiki will become easier to install. Maybe that means going in the direction of Discourse, and only supporting deployment via Docker, in order to hide the complexities of all the required services. But that's got a whole lot of confusions of its own, that I think are perhaps too much. Is the future of self-hosting really going to be VPSs, or even "serverlessness"? I guess it could be. The security conundrums with shared hosts are bad, certainly... but perhaps not as bad as poorly-managed whole servers? At least Dreamhost and their ilk monitor for suspicious-looking stuff; Digital Ocean couldn't care less untill you're such a spam farm that you're interferring with other things.

Imagine if MediaWiki (with all the good bits as well) were super easy to install, that people could turn to it for any collaborative editing website! I guess I'm probably just showing my age though, and am harking back to 2002 when it seemed desirable that people would control their own bit of the web. Still, I do think MediaWiki does multiple-people-editing-multiple-pages-quickly rather well, and is still easier to use (once installed) than some combination of "Markdown files on Github and photos loaded from Instagram and embeds from Twitter" or "put it all on WordPress.com" (or God forbid "we don't need anything now we've got Slack").

MediaWiki, through it's structure and editing philosophy, really does encapsulate something great about the open web: we've got pages, they contain whatever you want, there are links between them, all changes are tracked, and beyond that lies an infinite field of human creativity and ingenuity. No algorithms to coorce your behaviour, nothing hidden and nothing prohibited. It still makes sense, and I think there's still a future for this sort of thing.


Centenary Building

Fremantle

Archaeological excavations (by a company called ARCHAE-AUS) around the Freo town hall have been carrying on this week, with evidence of a farrier's and blacksmith found at the corner of Newman Court (was Street) and William Street, where the Centenary Building stood for thirty years or so from 1929.

The sign in the middle photo reads:

Exposing 1890–1913 blacksmiths', farriers', coachbuilders', & wheelwrights'.

Mr Tyler is in the photograph taken in 1896 in the front of his workshop (photo taken from other side of William St).

I'm not sure what happened in 1913.

Around the corner they've started work to uncover the foundations of the first St Johns church. This one they know more about, as it was excavated in the 1980s (although, the word on the street is that not enough photos were taken, nor other detailed records made). It'll be exciting to see this, after knowing about the church's outline in the paving stones my whole life.


Waiting for a flight

Perth airport

Sunday morning, Perth airport. In a few hours (by the clock) I'll be in San Francisco. It'll take me a bit longer than that to get there, but that's okay—it's a nice day. The main question is whether one should add spaces next to an em dash. Or whether it's easy to use altogether too many em dashes! Tricky questions. Plenty of time to figure them out. And to find the asciicircum key (why don't they call it what we all call it?).

In the UK, "phonebox numbers reached their peak in 1992, when there were 92,000 of them"[1] and now they're getting rid of lots and will be left with only twenty thousand or so. I guess we all have other phones now (even if some of us don't use them ever and are terrible at answering when phoned).

Someone said this morning that "MediaWiki seems to be much more popular outside the foundation then it is inside it."[2] I hope that's true! I mean, it's not good that it's not popular inside the Foundation (we use Google docs sometimes for things! shock horror), but I like to think that it is popular outside. I like MediaWiki.

The coffee here really isn't as good as elsewhere. Yesterday, I had a terrific long black at the place on the corner of King and Wellington streets. Terrible seating, but lovely coffee, and a good window to peer out of. Important things. From here, a metre away, I can see black polyester-clad bums of two pilots, dragging their nice little square rolly suitcases.

Anyway, I'll stop blathering and go find a better spot to while away the time.


Template frontmatter

Golden Gate Club, San Francisco

A few years ago the static-site bloggig tool Jekyll popularised the idea of text files containing 'front matter', which is usually Yaml-formatted metadata put between some delimeters at the top of a file. This works pretty well in MediaWiki as well, with a slightly different format (i.e. templates).

Yaml Wikitext HTML
---
type: book
author: John Smith
publication_date: 1923
---
{{book
| author = John Smith
| publication_date = 1923
}}
<div itemscope itemtype="http://schema.org/Book">
  A book by <span itemprop="author">John Smith</span>,
  published in <span itemprop="date">1923</span>.
</div>

I find it useful to think of wiki pages as representing instances of some sort of 'entity', and the template at the top is what defines this.

With the addition of Cargo, all this metadata becomes queryable from elsewhere in the wiki.



2018 Firefox survey

Walpole

I just filled in the 2nd Annual Firefox Census, which is just a survey about weird stuff and Firefox and Mozilla and stuff (literally: like "To what Hogwarts house do you belong?").

I don't know why I feel like it's sort of okay to share data with a company like Mozilla, but I guess I do. Although, come to think of it I'll also sign up to loyalty programmes at grog shops too... I guess I don't really care about my personal information that much!

It's more the bloody annoying algorithms of YouTube and Twitter that annoy me. Give me chronologies and folksonomies any day! (Sort of. There is, of course, more to it, but that's always the case.)


Wikisource books for binding

Walpole

I have been experimenting with turning Wikisource works into LaTeX-formatted bindable PDFs. My initial idea was to produce quatro or octavo layout sheets (i.e. 8 or 16 book pages to a sheet of paper that's printed on both sides and has the pages layed out in such a way as when the sheet is folded the pages are in the correct order) but now I'm thinking of just using a print-on-demand service (hopefully Pediapress, because they seem pretty brilliant).

Basically, my tool downloads all of a work's pages and subpages (in the main namespace only; it doesn't care about the method of construction of the work) and saves the HTML for these, in order, to a html/ directory. Then (here's the crux of the thing) it uses Pandoc to create a set of matching TeX files in an adjacent latex/ directory.

So far, so obvious. But the trouble with this approach of wanting to create a separate source format for a work is that there are changes that one wants to make to the work (either formatting or structural) that can't be made upstream on Wikisource — but we also want to be able to bring down updates at any time from Wikisource. That is to say, this is creating a fork of the work in a different format, but it's a fork that needs to be able to be kept up to date.

My current solution to this is to save the HTML and LaTeX files in a Git repository (one per work, e.g.) and have two branches: one containing the raw un-edited HTML and LaTeX, on which the download operation can be re-run at any time; and the other being based off this, being a place to make any edits required, and which can have the first merged into it whenever that's updated. This will sometimes result in merge conflicts, but for the most part (because the upstream changes are generally small typo fixes and the like) will happen without error.

Now I just want to automate all this a little bit more, so a new project can be created (with GitHub repo and all) with a single (albeit slow!) command.

The output ends up something like Commons:File:The Nether World by George Gissing.pdf.

Updating Flickr2Piwigo

Fremantle

· Programming · Flickr · Flickr2Piwigo · OAuth · PhpFlickr · Piwigo · upgrading ·

I’ve decided to try to bring the Flickr2Piwigo plugin up to date in order to support OAuth (Flickr’s old system of authentication was turned off in the middle of last year). I’ve been tinkering with getting the PhpFlickr library working properly lately (which is what Flickr2Piwigo uses to talk to Flickr), and although there’s lots more to do to it I’ve at least got the OAuth parts working (thanks to the lusitanian/oauth package). So now I’m going to add this to the Flickr2Piwigo.

There’s no support for Composer in Piwigo, so I’m not really sure how this is going to work. Probably some custom distribution-generation process; I’ll worry about that later. Hopefully we’ll not resort to committing vendor/.

Once this is working, I’ll go back to PhpFlickr and write some better documentation (probably Read The Docs) and fix up the caching system (it’s a bespoke oddity at the moment, that I think should be replaced with simple PSR-6 support).

Email letters

Fremantle

· writing · archiving · correspondence · email · friends · letters ·

I’ve been attempting to write to people again lately. As in, proper letters on paper and in envelopes and stuck through holes in walls and doors. It doesn’t work though. Ten years ago I wrote to people, and it was reasonably easy although one had to ignore the anachronistic self-consciousness. Now, it feels like writing a telegram, for all the relevance it has to modern life. And doing so on some sort of rare letterpress’d form at that — the mechanics have become harder, the whole thing far less familiar. Where even is there a post box around here? Do stamps still come in booklets? What’s it even cost to send a letter? Only people having weddings send things in the post these days.

I once wrote a little system for writing email-letters. It was a bit like Gmail’s system of having the reply-box at the bottom of the to-and-fro conversation, except it went to further extremes of actually deleting the quoted reply text from emails, and of actually tracking correspondents as entities in their own right and not just by email address. It also prohibited writing to more than one person at once.

It feels like there’s a place for a letter-writing system that really is just email but also isn’t one’s normal email client (be that Fastmail, Gmail, Thunderbird, or whatever). Writing to a friend should be a different act to tapping off a note to a colleague or haggling with a civil servant. The user interface should reflect that. It should be simpler, calmer, and prioritise longer paragraphs and better grammar. (I’ve read similar sentiments relating to the design of the Discourse forum software; the developers of that want the software to shunt people towards better discussions, and I’m pretty sure Google don’t have anything like that idea with the Gmail interface. No one wants to write a letter on a blotter edged with full-colour advertisements for Fletcher’s Fantastic Fumigator, and Google want you to use the exact same interface for work and for social interaction. Doesn’t seem like a good idea to me.)

I’d still be using my email archiver, but it dates from an age before two-factor authentication, and improvements in the security of email providers broke it and I’ve not yet gotten around to fixing it. Perhaps it’s time to do so.

S25


· status updates ·

I think I am learning to love paperbacks. (Am hiding in New Editions this morning.)


Self-hosted websites are doomed to die

Fremantle

I keep wanting to be able to recommend the 'best' way for people (who don't like command lines) to get research stuff online. Is it Flickr, Zenodo, Internet Archive, Wikimedia, and Github? Or is it a shared hosting account on Dreamhost, running MediaWiki, WordPress, and Piwigo? I'd rather the latter! Is it really that hard to set up your own website? (I don't think so, but I probably can't see what I can't see.)

Anyway, even if running your own website, one should still be putting stuff on Wikimedia projects. And even if not using it for everything, Flickr is a good place for photos (in Australia) because you can add them to the Australia in Pictures group and they'll turn up in searches on Trove. The Internet Archive, even if not a primary and cited place for research materials, is a great place to upload wikis' public page dumps. So it really seems that the remaining trouble with self-hosting websites is that they're fragile and subject to complete loss if you abandon them (i.e. stop paying the bills).

My current mitigation to my own sites' reliance on me is to create annual dumps in multiple formats, including uploading public stuff to IA, and printing some things, and burning all to Blu-ray discs that get stored in polypropylene sleeves in the dark in places I can forget to throw them out. (Of course, I deal in tiny amounts of data, and no video.)

What was it Robert Graves said in I, Claudius about the best way to ensure the survival of a document being to just leave it sitting on ones desk and not try at all to do anything special — because it's all perfectly random anyway as to what persists, and we can not influence the universe in any meaningful way?



S95


· status updates ·

I joined newCardigan today.


EMWCon videos


· MediaWiki · Wikimedia · videos ·

I am totally enjoying the videos from EMWCon Spring 2018, e.g. Toward a MediaWiki Roadmap.

S12


· status updates ·

Defining structured data in MediaWiki just using templates with Cargo, this is a good video: https://www.youtube.com/watch?v=f6wKXPVuBTU


AutoCategoriseUploads

Fremantle

New MediaWiki extension: AutoCategoriseUploads. It "automatically adds categories to new file uploads based on keyword metadata found in the file. The following metadata types are supported: XMP (many file types, including JPG, PNG, PDF, etc.); ITCP (JPG); ID3 (MP3)".

Unfortunately there's no code yet in the repository, so there's nothing to test. Sounds interesting though.

S24


· status updates ·

I want a login-by-emailed-link feature for MediaWiki, so it's easier to log in from mobile.


S23


· status updates ·

I love the morning time, while the brain is still sharp enough to focus on one thing and get it done, but dull enough not to remember the other things and derail everything with panic about there being too much to do. The morning is when the world properly exists, and is broad and friendly.


S22


· status updates ·

I find autogenerated API docs for Javascript projects (e.g.) so much more useful than those for PHP projects.


MediaWiki with two database servers

Fremantle

I've been trying to replicate locally a bug with MediaWiki's GlobalPreferences extension. The bug is about the increased number of database reads that happen when the extension is loaded, and the increase happens not on the database table that stores the global preferences (as might be expected) but rather on the 'local' tables. However, locally I've had all of these running on the same database server, which makes it hard to watch the standard monitoring tools to see differences; so, I set things up on two database servers locally.

Firstly, this was a matter of starting a new MySQL server in a Docker container (accessible at 127.0.0.1:3305 and with its data in a local directory so I could destroy and recreate the container as required):

docker run -it -e MYSQL_ROOT_PASSWORD=pwd123 -p3305:3306 -v$PWD/mysqldata:/var/lib/mysql mysql

(Note that because we're keeping local data, root's password is only set on the first set-up, and so the MYSQL_ROOT_PASSWORD can be left off future invocations of this command.)

Then it's a matter of setting up MediaWiki to use the two servers:

$wgLBFactoryConf = [
	'class' => 'LBFactory_Multi',
	'sectionsByDB' => [
		// Map of database names to section names.
		'mediawiki_wiki1' => 's1',
		'wikimeta' => 's2',
	],
	'sectionLoads' => [
		// Map of sections to server-name/load pairs.
		'DEFAULT' => [ 'localdb'  => 0 ],
		's1' => [ 'localdb'  => 0 ],
		's2' => [ 'metadb' => 0 ],
	],
	'hostsByName' => [
		// Map of server-names to IP addresses (and, in this case, ports).
		'localdb' => '127.0.0.1:3306',
		'metadb' => '127.0.0.1:3305',
	],
	'serverTemplate' => [
		'dbname'        => $wgDBname,
		'user'          => $wgDBuser,
		'password'      => $wgDBpassword,
		'type'          => 'mysql',
		'flags'         => DBO_DEFAULT,
		'max lag'       => 30,
	],
];
$wgGlobalPreferencesDB = 'wikimeta';



Rottnest 2018

Rottnest

· Rottnest · holidays ·

A long weekend in May at Rottnest, with great weather at least to start with. I wanted to maybe finish mapping the Wadjimup walking trails. Or just doze on the verandah with a book (People of the Book) and attempt to be less anxious. It seemed worthwhile not bringing the laptop, but then the fun of writing on the wiki came back to me (hence these past-tense words written in the present) so the phone had to do.

On the first afternoon, with a swim at Antifays Bay (as I'm calling it, although not on the map of course) we saw a submarine coming in to harbour; a bushfire to the north of Perth; and some soft pink coral with many fish all around.


S21


· status updates ·

It is time I think (5AM on a Friday) to finally try to get the Flicker2Piwigo CLI script working. Small job before breakfast?


Park Güell

Barcelona

We went for a walk up a hill today.


Christ with his leg vice

Barcelona

· Christ · Sagrada Família · Barcelona · vices · woodworking · leg vices ·

I'm not sure that his posture is the most comfortable.


S1


· status updates ·

Sitting in a café in Queralbs, finally with some good wifi so I can get back to thinking about what I was working on at the Hackathon!


S29

Fremantle

The data is the thing to concentrate on. Not the systems, they can change — but the data will live on and is much harder to move transform and preserve. Software should serve the data.

Writing every day

Fremantle

I used to try to write every morning about what I was going to work on in the day. Sometimes I'd publish it as a blog post, but mostly just stick it away in my private journal — it was the process of writing it that mattered, not at all the fact that I could then read back over it. In fact, I think I pretty rarely read over anything a second time, except perhaps when searching for some bit of documentation that I had an inkling that I'd written down somewhere. Some people seem to blog about topics, I just treat it like a rambling whatever-space to put anything at all.

I tried the other day to switch to a Markdown-and-Pandoc based blog, hosted as static files on Netlify, but I then immediately wanted to search something... and couldn't. Of course, there are ways of doing static-site search (build a static index, and query it from the client) but I'm not very interested and so am back here in MediaWiki.


Cossack cemetery


S0


· status updates ·

Testing a Cargo-based microblog. Does this work?


S2


· status updates ·

This is another test. The last didn't quite do its thing.


S3


· status updates ·

Just another test. From the train. With a timezone?


S4


· status updates ·

Maybe it works now?


S5


· status updates ·

When is now?


S6


· status updates ·

Does this return to where it should?


S7


· status updates ·

Right, I think I have a Cargo-based microblog sort of working. Needs an RSS feed though.


S8


· status updates ·

No, not quite; dates are wrong and annoying.


S9


· status updates ·

Okay, dates are working, and now displayed in the timezone in which they were written. (Weird, but I like it.)


S10


· status updates ·

All of which is irrelevant to the task at hand of course, so I'll go back to that.


S11


· status updates ·

Ergh. It never quite works does it.


S13


· status updates ·

Another day, another test post. The chill is in the air today, but the tests are all passing and so things are well with the world.


S14


· status updates ·

Heading to the Goods Shed in Claremont for donuts and coffee. No coding this morning, there's too much confusion in the brain around the proper setup of Ansible. And it's a beautiful day.


S15


· status updates ·

I have one computer in my backpack, one in my pocket, and a third in a data-centre in Singapore. That's enough. I guess I have to count the various other services I use too, though. Takes the tally up a bit, and the diffusion of data as well. Hmm.


S16


· status updates ·

Good reasons not to use a phone camera in low light:


S17


· status updates ·

I think I'll go and see the sun rise.


Little Lefroy's


· status updates ·

The best coffee in Fremantle, today? Little Lefroy's on South Terrace. Marvelous place.


S19


· status updates ·

Just upgraded 5 wikis to MediaWiki 1.31… so far looking good.


S20


· status updates ·

There's something to be said for an information system that permits its users to build their own bureaucracy, without unduly involving the coders.


S27


· status updates ·

Everyone should try running their own website! (I'd qualify that, but you get the gist yeah?)


S28


· status updates ·

I really do prefer using Thunderbird for email. So much quicker than any webmail, and allows for archiving (to local disk, and thus to my main backup régime) to be part of the normal daily workflow.


S30


· status updates ·

Why Free Software Needs Free Tools: https://www.youtube.com/watch?v=U_nK6nP_RCY


S31


· status updates ·

"Don't talk about reducing waste, talk about reducing packaging, because that's what all the waste is." — so says Huddersfield University garbology chap Rodger Hobsmith on the radio.


S32


· status updates ·

Heading to Karrakatta to take photos for someone from the internet.



S33


· status updates ·

I seem to spend quite a lot of time listening to Radio 4 radio plays while I work. I rarely actually manage to follow the stories, but their general vibe seeps into the code, and bits of text can take on the flavour of a bar in 1876 or some exploration of a umbrella factory.

It's quite nice!


S34


· status updates ·

The rain is coming down this morning! But in proper Perth fashion it only lasts 15 minutes at a time and so it's easy to rush between buses and places.


S35


· status updates ·

I love those times when I get to close all windows other than what I'm working on, and focus on just one problem!


S36


· status updates ·

Ha! The latest Between the Brackets takes a little swipe at TiddlyWiki community! :P


S37


· status updates ·

Nail Stout is the shit.


S39


· status updates ·

I seem to be getting drunk, and reorganising websites. Is this a wise combination? Have I crested the Ballmer Peak?


S40


· status updates ·

Another general-purpose wiki, I think: https://wiki.org.uk/


S41


· status updates ·

So 500px have removed access (or discoverability?) from the open licensed content on their site. Which is terrible, and a good reason to host your own website on which you make the rules. You're still beholden to the people who write the software you use, but that's a far better relationship because in the worst case you can fork it and carry on regardless.


Beginning the import to Piwigo

Fremantle

· Piwigo ·

Kicking off the import of my Flickr photos into Piwigo:

This is a photo of the screen rather than a screenshot because this is all about photos!


2018-07-23


S42


· status updates ·

It's sometimes nice to not specify the title of a web page. Needs some sort of ID though. Numeric works of course. Makes it easier to "just start typing".


S43


· status updates ·

Aww TemplateWizard is really annoying on a small screen. :-(


On the groyne at South Beach


Re: Antisemitic hack hits map used by Snapchat and Citi Bike

Fremantle

· Open content · Guardian · journalism · OSM · vandalism ·

I shouldn't let it bother me, but articles like this about map vandalism annoy me. It wasn't a "hack", it wasn't unusual (although normally vandalism doesn't make it so far downstream), and the data originated from OpenStreetMap (who explained it all yesterday).

S1050

Fremantle


S44


· status updates ·

Cargo is available on Miraheze! I didn't realise.

It really is a good service (Miraheze, that is).


S45


· status updates ·

Crazy hoons on Wood Street today. Much revving and chasing and then an almighty crash. But the time I got around the corner there was an abandoned car with bits of another hanging off its front. No sign of anyone.


S46


· status updates ·

It's a splendid day, although maybe a bit early in it, and there's lots to be done. I keep thinking I'll write more, but never do. How to fix that?


S47


· status updates ·

Symfony is being super annoying, and now work's finished for the day I'm returning to the calm familiar non-trendy code of MediaWiki extensions.


S48


· status updates ·

It really is nice to return to familiar code sometimes.

I worry that as one gets older, the familiar things become more important, and maybe familiarity takes precedence over attempting to do the right thing.


S49


· status updates ·

There's something wonderful about Saturday mornings, maintaining the same morning-time excitement as during the week but being free to apply it to whatever project that takes my fancy.


S50


· status updates ·

I'm attempting to remove ParserFunctions completely, and switch all templates use to Lua modules instead.


Providing Services from a Syfony bundle

Fremantle

I'm trying to add a service in a redistributable Symfony 4 bundle. The docs say it is just a matter of loading the service configuration in the bundle's Extension class. For example, for the GoatBundle:

class GoatExtension extends \Symfony\Component\DependencyInjection\Extension\Extension {
    public function load(array $configs, ContainerBuilder $container) {
        $configDir = dirname(__DIR__).'/Resources/config';
        $loader = new YamlFileLoader($container, new FileLocator($configDir));
        $loader->load('services.yml');
    }
}

Where GoatBundle/Resources/config/services.yml looks like this:

Name\Of\InjectedClass:
  factory: [ '\Factory\For\InjectedClass', serviceFactory ]
  arguments:
    - '@service_container'

But this results in:

There is no extension able to load the configuration for "Name\Of\InjectedClass" (in GoatBundle/Resources/config/services.yml). Looked for namespace "Name\Of\InjectedClass", found none

I went around and around in circles until I realised that I was simply missing the top-level services key in services.yml! It needs to be like this:

services:
  Name\Of\InjectedClass:
    factory: [ '\Factory\For\InjectedClass', serviceFactory ]
    arguments:
      - '@service_container'

I'm only writing it all down here because it was only by this rubber ducking that I saw the problem.


S51


· status updates ·

Public websites can be archived on the Internet Arcchive (either as crawled HTML pages or dumped XML etc.), but what is one to do about private sites? Currently I'm backing up locally (of course) but it's hard to know how to make the backups usable by anyone.


S52


· status updates ·

Heading to the first day of the Australian Society of Archivists conference.


S54


· status updates ·

Interesting presentation about the Auckland University Tramping Club and archives and how sometimes professional intervention isn't the best way to go.

Belinda Battley


Australian Society of Archivists conference 2018

Burswood

· archiving · conferences · events · Perth · ASA2018 ·

I was part of the Wikimedia Australia gang at the ASA2018 conference in Perth.


Sunrise on day 3 of ASA2018

Fremantle

· ASA2018 · sunrises ·


S53


· status updates ·

When creating a header template for MediaWiki pages, it can be good to set the display title to de-emphasize the standard page title so that it can be reused lower down within the header:

{{DISPLAYTITLE:<span style="font-size:12pt;font-weight:lighter;">{{FULLPAGENAME}}</span>}}

Fremantle civic centre demolition

Fremantle

I went to see the demolition of the civic building in Kings Square today. It's a bit sad to see it all coming down. Interesting to see the side of the town hall exposed, but really mostly just melancholy. Change is always a bit like that.

(These photos are also on Commons, in commons:Category:October 2018 in Fremantle.)

S55


· status updates ·

I've updated my PageCleanUp.js script on English Wikisource to support some extra bits and bobs, at the suggestion of @pigsonthewing


S56


· status updates ·

I've been out taking photos of Mills and Wares Park, because WikiShootMe told me there was no photo yet of it on Wikidata.


S57


· status updates ·

It's so hard to remember the brilliant mind-clearing simplicity of just walking, with no goal, for at least an hour, and possibly with a pub at the halfway point. Even sore tendons succumb to the joy.


S58


· status updates ·

I reckon some people in East Freo don't want people to know that their cul de sacs are actually pedestrian thoroughfares. I'm adding 'em to OSM.


2018-10 Fremantle


· Fremantle ·

I went for a walk through Freo, and the maritime museum's shipwrecks galleries:


Data modeling

Fremantle

· Cargo · MediaWiki · modeling · data · datasets · entity-attribute-value · spreadsheets ·

I know I've said it before, but I really do find data modeling within MediaWiki with Cargo is great fun, and happens with the quick speed of normal wiki editing. It's a lot nicer (for the bulk of cases) than attempting to build a bespoke application. (Of course, I should preface all of this with some caveats about what can be done, but blah blah that can all be taken as read).

It's better to come at things from the other end, of say a small set of data in a spreadsheet. This can in many cases be easily ported into the MediaWiki idea by creating a single wiki page for each row of data, with each page containing a call to a single template. This template is where almost everything else is done.

One weird thing about it is that it's sort of closer to a EVA schema than a normal table, because each record can (but really shouldn't) have different attributes. This is a good thing from a point of view of tracking changes over time to the data, because changes to attribute names as well as their values are tracked in the page history. Of course, it also means that one has to do more scripting for some types of data modification, but for the most part that's not very hard.

Today the thing I'm enjoying about it is that it's perfectly easy to set up a new template and table and things for any quite small dataset. That means that data is given the structure it needs, rather than being munged into some more generic schema. (I guess this will also probably come back to bite me one day too, because I'll have separate things that don't fit together! But oh well.)

The other weird bit about Cargo is that it almost does away with the need to have categories in MediaWiki. I'm not sure if that's a good thing or not. So far I'm loving the extra flexibility I get with 'keywords' that are usually tied to mainspace pages.


S59


· status updates ·

Another good thing about a personal RSS reader (I use FreshRSS) is that it's really easy to, a week after reading something interesting, find an article again based on any half-remembered word or phrase. I find Twitter to just be a such an unstoppable river, that without having liked a post it's neigh on impossible to ever find it again.


Families to Rottnest

Rottnest

· Rottnest · ferries · family ·

This is my great-grandparents heading to Rottnest in the 1920s:

And us today doing the same thing:


Old decisions about old code

Fremantle

It's really quite relaxing working on existing systems compared to building new ones. There are a bunch of old decisions that have already been made about the basic things, and maybe they're annoying decisions and might be done differently if done today, but at least they're done and one needn't figure it all out again.


S60


· status updates ·

I found a bug and maybe fixed it: phabricator:T208670.


S61


· status updates ·

The genealogy demo wiki has been found by the spammers! :-(

I'm fixing it up (and upgrading).


S62


· status updates ·

Nice to see someone else using MediaWiki for their personal website: https://www.grantswebsite.net/


Bentley Library

Bentley Library

· libraries ·

Interesting discussion this morning at Bentley Library about how the Wikimedia movement can fit in to the library's programmes. Thoroughly inspiring! Am looking forward to more.


Exporting chat transcripts from Signal

Fremantle

· Signal · exporting · archiving · backups · chat ·

I've started using Signal for some things, and it seems there is a way to export chat histories from the desktop client:

  1. Open the developer tools sidebar (ctrl+shift+i)
  2. Navigate through the 'Elements' view to the div.conversation-stack element
  3. Right click on that div and 'copy outerHtml'
  4. Past this HTML into a new file and save it somewhere

Now that file can be viewed with a web browser.

This isn't a particularly great export of course, but at least it's something.


S63


· status updates ·

It's a splendid feeling, turning off one's computer at the end of the day. I recommend it.


S64


· status updates ·

I'm sitting in Perth airport hacking on an event form for the WMAU website.


S65


· status updates ·

It's a rainy dawn in San Diego. Grey skies and a bit chilly. Happy to be in this warm room (and with a better coffee than the urn provides).


S66


· status updates ·

This is a test post.


S67


· status updates ·

I'm finally fixing an upload bug in PhpFlickr, and in doing so I went looking for an answer to a thing, only to find that I had exactly this same question 2 years ago and the answer (that I wrote) is still the same. Oops. Hard to not go in circles sometimes.


In a café in Berkeley

Berkeley

· writing · recording ·

Is the internet a good place to start typing random thoughts? It feels like it’s probably not, because of all the “taken out of context”, “recalled in future years and laughed at”, and “what’s the point no one will see it” responses. But it also feels like random beginnings and unplanned words are the only things that will ever lead to more coherent and useful words, and that putting them out in the great wash of the online world is slightly better than hiding them away in a notebook in my own bottom drawer. I do write lots and lots of words that only I will ever see, and they’re usually pretty unpolished. I don’t think that what I put on this blog or Twitter or anywhere else is particularly good, but I do at least attempt to finish sentences and thoughts, and fix typos. Maybe that’s all I mean: that uploading ideas makes the brain follow through and express them, and in doing that there’s a surprising amount of satisfaction.

S68


· status updates ·

Is there any way to make WordPress store the timezone of a post? And then make it display the correct local time for each post (but still sort them in chronological order)?

I'm not sure there is, but here in MediaWiki with Cargo it's pretty easy. Maybe a bit clunky though! I've been working on my {{datetime}} template, also to support approximate dates.


S69


· status updates ·

I've fixed the PhpFlickr upload bug. Now just need to clean up the patch. But first I'm going to go and explore the rest of this library.


Building WordPress assets


· Programming · assets · build scripts · development · wordpress ·

Today I was just finally getting around to (maybe) updating my WordPress theme, and couldn’t for the life of me remember what the deal was with the new Node-based build system. So I went looking, only to find this posted on the Core blog today:

In May 2018 we’ve introduced a build step to WordPress core development as preparation to WordPress 5.0. While these changes never ended up in 5.0, the idea was to reorganize the way the JavaScript in WordPress is managed and structured so that it would be easier to include Gutenberg.

Since then, it was no longer possible to run WordPress from the src folder. This gave some issues, especially with developing WordPress core PHP. Today, @atimmer committed a patch which allows developers to build into src again.

So I do still have to build the assets, but it seems that PHP development can once again happen from the normal directory.

Maybe it’s a good thing that I’ve neglected WP development this last year or so?

S86


· status updates ·

It's Christmas morning, which means it must be time to hack on some code! Huzza!

(I still haven’t figured out how to get WordPress to show posts in their local timezones. As an interim fix, I’ve set this site to show in UTC, but perhaps that’s just more confusing.)


S70


· status updates ·

Does this work?

[Edit:] yes, it does.


S71


· status updates ·

I'm standing on a train that hasn't moved for 10 minutes. The tannoy seems broken too. I wonder if this is all there is now.


S72


· status updates ·

I think I've finally found a good cafe near the office: nice place to sit, something of a view, tables the right height, and great espresso (I'm learning that 'coffee' here doesn't really mean what it does back home). I'll come back here.


S73


· status updates ·

https://news.ycombinator.com/item?id=18769802

I forget that shell accounts are so cool. Someone giving me access to a Linux machine in 2000 was really what got me properly into programming (and turned me into a vi user).


S74


· status updates ·

Cloud chambers are cool.


S75


· status updates ·

Friday, and I'm stuffing around getting my new laptop set up. It's something of a downgrade though: the 'm' key hardly works, it's missing one rubber foot, and the control key is in the wrong place. Hurrumph. It does, however, have a working battery. Huzza.


S76


· status updates ·

Gosh, sometimes it's really hard to stay focused on a thing. I don't like it when bug reports conflict, and it's not clear which path one should take. Makes me go from one to the other and back again, and never make any progress. :(


S77


· status updates ·

The cool thing about being 16 hours behind where I normally am is that I get to listen to the Friday comedy podcast from the BBC actually on Friday, instead of scrunched into the weekend as I usually do.


S78


· status updates ·

I'm drinking a beer called Union Jack IPA, with the motto "Beer Before Glory". Apposite, considering the stupid Apache config problems I'm running into right now. No glory here.


Blue Bottle

Berkeley

· PHP · MediaWiki · coffee · Blue Bottle · Cafés · Berkeley · redirects · 404 · logging ·

I'm sitting in another Blue Bottle cafe, this time in Berkeley. These are nice places. Slightly stark, with the plywood-concrete-whiteplastic thing, but the acoustics seem fine and the tables are a good height at which to code. The coffee isn't as good as I had the other day; I'm still on the search for a decently over-roasted moka pot brew; this is as good as I've had though. I don't see why they can't serve a cup with a saucer though — I understand not having napkins, that's a good idea, but without either all I'm left with is a drippy coffee splash on the bench here.

I'm working on my silly little Log404 MediaWiki extension this morning, because I want to be able to retire my WordPress installation and do everything here in the wiki. So far, it's recording, reporting, redirecting, and deleting not-found pages, but I need it to handle redirects better and it seems there's some better way to work with query strings of the log entries. It should also be able to ignore 404s. I'm giving up for the time being on catching 'found' not-found pages such as example.org/?foo=123 which as things stand just redirects to the Main Page and is not considered a missing page. If one were migrating from a system that treated that as its own page, things wouldn't work. Perhaps it'll be enough to check for unknown query string parameters only for Main Page (because I don't suppose we should be doing it on load of every page in the wiki). That can all wait; at least so far it's going to be possible to catch e.g. example.org/2018/12/29/foo and quickly redirect it to Foo or wherever.

Does it need to store both the 404 page name and the whole query string, given that the latter always contains the title attribute? It might not be, but it might be easier to query this way... oh, and actually, given that the page title is the only thing we can redirect (i.e /Bar and /Bar?foo=123 can't be handled separately) it probably does make sense. Why then are we including the query string?

S79


· status updates ·

Hooray for the heater! Suddenly, things are looking better (I turned the heater on).


S80


· status updates ·

It should probably be called MissedPages instead.