Another entry in my gripping series of posts intended to remind me about various software and development things when I inevitably forget them, this time to do with pycrypto. Installing pycrypto via a regular pip install is a pain for me on Windows, as it requires some C compiling, and I don’t always have a C compiler installed or configured for pip to see. Some googling has yielded a repository of pre-built Windows links, so this is where you found them, future-me:
Category Archives: computing
I’ve had occasion to deploy Django on fresh Ubuntu systems a few times recently, for some side projects. To save me Googling these answers again the next time I do so, here are the steps for getting MySQL properly installed so Django deploys happily via pip:
sudo aptitude install mysql-server libmysqlclient-dev python-dev
I’ve been using Pandoc for generating most of my documents for some time now, even going so far as to write a small tool to add additional support specific to my needs. I mostly generate PDF documents, and I found it quite annoying to have to close the PDF viewer (I was using Acrobat) to allow Pandoc to make a new PDF.
I have since discovered that the Sumatra PDF reader will allow PDF’s it has open to be written to – I’ve been using it for a few days and it seems a nice solution to this little problem.
My torrents are downloaded by my desktop machine, which shares bandwidth with the rest of the devices on my network – my phone and my laptop, generally. I prefer the torrents not to use any bandwidth while I’m home, to free it all for whatever else I want it for.
Deluge offers scheduling, which is fine for weekdays – on almost any weekday the torrents can happily download during working hours and sleepy time. However, our weekends can vary wildly between home all weekend and barely home at all – it seems wasteful to schedule no downloading for the non-sleepy hours of the weekend on the off chance we’ll be home.
The Toggle plugin offers a better solution for my use-case – it stops all Deluge bandwidth usage when toggled. It integrates into the Deluge GUI and web clients.
However, I have found the web client to be quite slow and clunky on my phone, which is the primary device I want to use to toggle Deluge’s bandwidth usage – generally when I wake in the morning and go to bed at night. This is quite possibly my phone at fault, but it does make toggling Deluge’s bandwidth usage annoying, since I often need to use my laptop or the desktop machine.
Accordingly, I have written what I would imagine is the world’s simplest Deluge client: deluge-toggle. The client either reports what the current toggling status is, or toggles the bandwidth usage. That’s all it does, but that’s exactly what I needed.
I have also written an incredibly simple Flask webapp to interact with the deluge-toggle client, to save me having to use a console from my phone. I run this webapp on my desktop machine, and can now easily toggle Deluge’s bandwidth usage from anywhere that I can connect to my home network.
All of this is very simple, but it does say complimentary things about Flask and Deluge (particularly its plugin system) that this was as simple as it turned out to be.
Dear Microsoft, stuff like this is (a very small) part of why many people detest your software. Does one of your software developers get his jollies from adding greyed out “Restart later” buttons to (annoyingly modal) dialogs? You should get him some therapy.
As it is, I got around this with some judicious process killing. I’ll decide when I reboot my PC, thanks all the same.
Some of our internal tools at work require a number of environment variables to be set to a variety of different options, depending on the project. This can be done with set, but that only changes the value for the life of the command shell you run set in. If stand-alone apps require those environment variables, they need to be set for the system. I used to be resigned to doing this by going to the System settings (via Control Panel or a right-click on My Computer and selecting Properties), selecting Advanced Options and clicking the Environment Variables button. The variables can then either be edited one by one in a tedious multi-dialog process, or new ones added in an equally tedious process. This is especially irritating if, like me, you would prefer to use the keyboard for most tasks.
But now the drudgery has been lifted – I have found setenv.exe! This terrific little tool allows user and system env variables to be set at the command line – so setting or altering the variables now becomes a sequence of commands like
setenv.exe -m NAME VALUE
I have no idea who wrote this tool, but whoever you are, thank you, from the bottom of my heart.
EDIT: I know who wrote it now – many thanks to Vincent Fatica.
An open letter to the people who write applications which require no Internet access but whose documentation is only available online
In many parts of the world, including the part I live in, always-on-Internet is far from cheap and frequently completely unavailable. Since your application has nothing to do with the Internet, I and many others use it for whatever it’s designed to do while not online. When we decide to consult the documentation, it is therefore extremely frustrating to have your application launch our web browser and attempt to navigate to the location on your website that the documentation lives at. Your application requires no Internet access – why on earth should the help do so?
At the least, kindly inform the prospective user when they’re downloading your application that the documentation is only available online. Far better would be to offer them the option of downloading the help documents at the same time, while they are currently online, if you do not wish to bundle them with your application by default. Unless your help documents are hand crafted HTML, providing the documentation in a separate format should not be a problem.
Someone who doesn’t have a 24-hour online life but yet would still like to use and possibly purchase your application