Lots of discussion over tiny things that do not matter in the long run, part 5321
Sigh.
Sigh.
At a hotel in SF, doing my laundry. This trip has made me more amenable to taking my time to do things. Feel more happy in general and less restless :)
I’ve given up on trying to make DevLogs really comprehensive and complete, and just try to make them – even if they are incomplete. Perhaps this will help me actually write more devlogs, and thus make it more comprehensive…
I started on the Functional Programming in Scala course today. I wanted to do it the last time, but did not find the time. This time will be different – I’m in a different spot mentally, and a big drain on my emotional / time resources (“college”) is no longer a factor. I’ve already gone through the first week’s lectures (most seem straight ports from SICP), and am 2/3 of my way through the assignments for the first week. Though I’m normally not fond of the typical types of exercises (“How many ways can you make change for this scenario?”), doing them functionally seems to be enough of a twist to keep me interested. The regular languages I seem to work with these days (Java, PHP, Puppet, Python and a bit of JS) aren’t exactly well tuned to the functional style of programming (except JS, but I don’t really do that much JS these days) – so going through this course and hopefully building something in Scala can exercise my ‘OMG HOLY SHIT THIS NEW THING IS AWESOME!!1’ muscles.
The course recommends using Scala IDE. Which is Eclipse based. Despite my deep distaste for Eclipse, I’ve given it a shot and it seems fairly stable and much less shitty than the Eclipse I’m used to! Let’s see how that goes.
The way I learn the best seems to be to find a project I want to build, and then build it in a new language. I’m looking around for fun projects that I could build with Scala, and I’m pretty sure I’ll find one at some point. I should also try to diversify the communities I contribute to, so perhaps I should look for a non-Wikimedia project where I can contribute to in Scala. Should be fun :D
Other than that – I’ve been investigating performance problems with the Campaigns API – turns out Mediawiki’s Parser is really, really slow. Who would’ve thought, eh? ;). The ‘solution’, of course – is to just add more caching. Which is a sortof biggish, hairy-ish problem because of the number of changes that can cause cache invalidation. The way Mediawiki handles caching is… rather complex – but that is more due to how much functionality exists rather than anything else. Needs a proper ‘clean’ solution that is not just “Let’s cache everything for 5 minutes!!!1”. Should be fun to write up and fix!
I’ve also been spending time integrating Mediawiki-Vagrant with Wikimedia Labs. This will make it easy for anyone to setup a base mediawiki installation on Labs, and save time dicking around various mundane deployment-of-test-instance issues (did I turn on caching? How do I get this extension on? etc). This is interesting because it merges two different puppet repos – operations/puppet.git and mediawiki/vagrant.git on one machine and provides different ways of managing them. Since this is also using puppet as a sort of ‘deployment’ tool (rather than just a configuration-of-systems tool), that is an interesting / fun aspect too. Should be able to get the patch merged in a few weeks.
I visited San Francisco for the last 2 weeks. I don’t really feel insecure anymore :)
This AskReddit thread about a HIV survivor (is that even the right term?) is heartwarming. SCIENCE!!!
WordPress decided to be a dick and turned off comments without telling me. They’re back on now.
Why does all software suck?
[Warning: Childish rant ahead]
My natural sleep cycle seems to be one that tends towards the darker times – sleeping before 3AM feels like an abomination, before midnight unheard of. My best work seems to be done between 2AM and 5AM. My current ‘sleep cycle’ has me sleeping at about 8AM, and waking up at about 5PM. Plenty of sleep for the day, eh?
It is probably not healthy. I don’t look, or feel healthy. But that is the way it is.
SO IT FUCKING SUCKS WHEN THE POWER GOES OUT AT MIDNIGHT, BECAUSE I HAD JUST STARTED GETTING SHIT DONE. AND THEN YOUR PHONE REFUSES TO TETHER INTERNET, BECAUSE FUCKING ASSHOLES. AND THEN THE POWER COMES BACK AFTER THREE FUCKING HOURS AND YOU STILL CAN NOT GET ON THE INTERNET BECAUSE THE FUCKING LINE IS DEAD. IT IS MIDNIGHT AND YOU ARE IN FUCKING CHENNAI SO YOU CAN NOT EVEN GET THE FUCK OUT OF THIS PRISON. YOU CAN NOT SLEEP BECAUSE YOU JUST WOKE UP. FUCK THIS SHIT.
I’m scarily addicted to the internet. All my friends are there.
Nothing new started. The UploadCampaigns API patch I talked about yesterday was fixed and merged. I also helped merge some of MarkTraceur’s JS cleanup patches to UploadWizard. And Brion’s big detail view patch for Android Commons app. Also another cleanup/api feature patch to UploadWizard.
I don’t understand how ad-blocking is even legal. It’s like stealing – stealing content for free, IMHO there’s no difference between stealing MP3s and news or any other content. There’s some kind of user agreement between websites and its users – “you can use our site for free, but you have to watch the ads”. Adblock violates this agreement. The people responsible for this should be in prison, they’re thieves. And I’m pretty sure the time will come they will.
From HN
:D
DevLogs have been something I’ve not been writing much of of late. Time to fix that!
Spent some time reviving the WLM Android App. Wasn’t too hard, and am surprised at how well it still runs :) Some work still needed to update the templates and other metadata to refer to WLM2013 rather than WLM2012 – but that should not be too hard. The fact that it is an issue at all is simply because I ripped out all the Campaign related APIs a few weeks ago with my UploadCampaign rewrite.
multichill was awesome in moving the Monuments API to Tool Labs – hence making it much faster! Initially we thought that the Toollabs DB was too slow for writes – but this turned out to be a mistake, since apparently the Replica Databases had slow writes, but tools-db itself was fine. There’s a bug tracking this now. Toollabs version of the API still seems much faster to me than Toolserver’s :)
Mediawiki sucks. Eeeew! Specifically, writing API modules – why can’t we just be happy and have everything be JSON? Sigh!
I’m adding a patch that allows UploadCampaigns to be queried selectively, rather than just via the normal page APIs. Right now, this only lets us filter by enabled status – but in the future, this should be able to also filter on a vast array of other properties. Properties about Geographic location come to mind as the most useful. That patch still has a good way to go before it can be merged (continue support being the foremost one), but it is getting there :)
The ickiest part of the patch is perhaps that it sends out raw JSON data as a… string. So no matter which format you are using on your client, you need to use a JSON parser to deal with the Campaigns data. This sortof makes sense, since that is how the data is stored anyway. Doesn’t make it any less icky, though!
Not bad for a lazy Sunday, eh?
Update: After not being able to sleep, I also submitted a patch to make phpcs pass for UploadWizard, and also fought with the UploadCampaigns API patch to have it (brokenly?) support continuing. Yay?
I’ve been on the Internet since I was 14. And I don’t remember a time when I did not have a computer – I think I got mine when I was 10. Growing up, writing code has always been a major part of me – my identity. I’ve never quite managed to separate ‘me’ from ‘my code’ – despite mouthing off the soundbite ‘You are not your code!’ to plenty of people.
After Wikimania 2013, I spent a week in Hong Kong. The first few days were rough, but after that – it was amazing. For the first time I could imagine, I had completely managed to not think about code at all! I had my laptop locked in a locker somewhere, and didn’t even bother getting to it. I didn’t feel the burning urge to make a commit. The feeling of guilt that keeps gnawing at you from the back of the head ’teehee you have been so unproductive today!’.
That was a rather great feeling. Put things into a little bit more perspective. A step towards separating my identity from my code. I gave up on my GitHub streaks after that. I’ll probably also be less of a codeaholic.
I could write about ‘oh my god, this was amazing!’ and detail where I travelled in Hong Kong, but I think what was far more fascinating was how. I did not feel in a hurry. Did not feel like having to ’tick all boxes’ before leaving. Just… actually relaxing. And doing whatever.
Vacations are good :)