27 Jul 2014
Making pretty pictures with the CLI-junky's waterfall
27 Jul 2014 8:09am GMT
26 Jul 2014
It's a pretty common thing in backend go programs to have multiple coroutines concurrently needing to modify a shared resource, and needing a response that tells them whether the operation succeeded and/or other auxiliary information. Something centralized manages the shared state, the changes to it and the responses.
26 Jul 2014 5:22pm GMT
24 Jul 2014
Managing passwords is a necessary evil. You can choose a number of different strategies for keeping track of all of your login credentials; from using the same password for every site which prioritises convenience over sanitysecurity, through to creating heinously complex unique passwords for every service and then balancing the relief of knowing your risks of being hacked have been minimised with the very real fear you will only remember any of them for a short period-if at all-and will shortly be locked out of everything.
Fortunately, this is a solved problem. There are a number of password managers available, both as desktop clients and cloud services. Personally, I find the idea of storing my passwords in the cloud has all the fascination of bungee jumping; it's apparently mostly safe, but that can be cold comfort… The first application that I used, and used happily for quite a long time, was KeePassX.
Around the end of 2012, I started experimenting with KeePassC, a curses-based password manager that is completely compatible with KeePassX and has very little in the way of dependencies. I have been using it solidly on my home and work laptops ever since and, after recently uninstalling Skype on my desktop, have switched over to it completely1. I'm still not entirely clear why I haven't written about it previously.
Written in Python 3, KeePassC is entirely keyboard driven (naturally enough, you can use Vim keybinds) and integrates seamlessly with your browser and clipboard. My experience of the software over the last eighteen-odd months is that it has been incredibly stable and the developer, Karsten-Kai, has been exceptionally responsive and helpful in the forum thread.
Like most good software, there is not a lot to it. You pull up the login page, switch to a terminal and run
keepassc, enter your passphrase (I use a Yubikey for this and it works wonderfully) and then search for your desired entry with / and then hit c to copy the password to your clipboard before switching back to the browser and you are in.
KeePassC also has a set of simple command line options, run
keepassc -h to see them. Additionally, you can set up KeePassC as a server, I haven't experimented with this as I sync my database. The only functionality that the X application offers in addition, as far as I can tell, is the auto-filling of your username and password fields bound to a keybind; undoubtedly, this is a very handy feature, but I haven't really missed it at all.
As I said, I store the database in a directory synced between all my machines2 (using Syncthing), so I have access to an up-to-date versions of my credentials everywhere. Well, almost everywhere. I don't use the Android client because the mobile web is just such a fundamentally insecure environment and I see it as just being sensible, rather than any sort of inconvenience.
- Skype and KeePassX were the only two applications I used that required Qt, so once Skype was gone there was no reason to keep KeePassX installed.
- And, after a nasty scare very early on with a corrupt database, I back that file up daily.
Creative Commons image on Flickr by xserv.
24 Jul 2014 9:36pm GMT
12 Jul 2014
Bartłomiej Piotrowski wrote:
A new major release of MariaDB will be moved to [extra] soon. The change in versioning scheme has been made to clearly distinguish provided functionality from MySQL 5.6. From now on, it won't be possible to easily move between various MySQL implementations provided in the official repositories.
Due to major changes in MariaDB 10.0, it is recommended (although not necessary) to dump the tables before upgrading and reloading the dump file afterwards. After upgrading to the new version don't forget to restart
mysqld.service and run
mysql_upgrade to check the databases for possible errors.
Additionally TokuDB storage engine has been disabled because of repeating build failures. I'm sorry for any inconvenience caused. TokuDB is available again in MariaDB 10.0.12-2.
12 Jul 2014 2:38pm GMT
10 Jul 2014
It is now almost exactly two years since the AIF was put out to pasture. At the time, it caused a degree of consternation, inexplicably causing some to believe that it presaged the demise of-if not Arch itself, then certainly the community around it. And I think it would be fair to say that it was the signal event that launched a number of spin-offs, the first of which from memory was Archbang; soon followed by a number of others that promised "Arch Linux with an easy installation," or something to that effect…
Of course, if you look back at the Installation Guide immediately before the move to the new scripts, for example the version that shipped with the last AIF in October, 2011, it is pretty evident that the current approach is a lot simpler. Sure, there is no curses GUI to step you through each part of the install but the introduction of
arch-chroot meant that you no longer need those prompts.
There is also the added advantage that these scripts are useful outside the installation process itself; they can be used for system maintenance and, in the rare event that your recent bout of experimentation at 2am after a few drinks doesn't pan out the way you anticipated, repair.
One of the other responses to the new approach, however, has been the steady proliferation of "helpful" install scripts. These are essentially bash scripts that emulate the behaviour of the AIF and walk people through an automated install of their system. Well, not really their system, more accurately a system. So you run one of these scripts, answer a few prompts and then, when you reboot, you have a brand spanking new Arch Linux install running KDE with the full panoply of software and, in a few special cases, some customized dot files to "enhance" your experience.
From a certain perspective, I can see how these things appeal. "I wonder if I could script an entire install, from the partitioning right through to the desktop environment?" That sounds like a fun project, right? Where it all comes unstuck, unfortunately, is when the corollary thought appears that suggests sharing it with the wider community would be a good idea. It is at this point that a rigorous bout of self-examination about the outcomes that you are seeking and your base motivations for this act of selflessness are called for.
Whatever those motivations are, whether driven by altruism or the naked desire for fame and fortune that have-from time to time-alighted on these projects when they appear on /r/archlinux and the adoring throngs bestow their favours in equal measures of upvotes and bitcoin, they are grotesquely misplaced. No good comes from these things, I tell you; none.
Why not? Because, in the guise of being helpful, you are effectively depriving people of the single most important part of using Arch: building it themselves. It's like inviting someone to a restaurant for an amazing haute cuisine meal, sitting them down across the table from you and then them watching as the staff bring out a mouth-watering array of dishes, each of which you ostentatiously savour before vomiting it all back into their mouth.
Now, I am sure there is a small minority (well, at least from my own sheltered experience I imagine it is small) who would relish this scenario, but for most it would qualify as a pretty disappointing date.
Then, after the technicolour table d'hôte, there is the matter of the clean up. Recently, we had someone show up on the Arch boards who had "installed Arch" but who did not understand how to edit a text file; literally had no clue how to open a file like /etc/fstab make some changes and then save it. This is beyond stupid; it is a drain on the goodwill of the community that has to deal with this ineptitude, it is unfair on people to put them in a position where they feel they are at the mercy of their technology, rather than in control of it, and it does nothing to advance the interests of Arch.
If you want to write something like this to improve your scripting skills, by all means proceed. If you want to contribute to Arch, then pick a project to contribute to, some bugs to squash, wiki edits, whatever; just don't publish another one of these idiotic scripts, because you aren't doing anyone any favours, quite the contrary.
Flickr Creative Commons image, Measuring spoons by Theen Moy.
10 Jul 2014 9:49pm GMT
Florian Pritz wrote:
The BBS, Wiki and AUR will be moving to a new server starting today at 13:30 UTC.
Expected downtime is 2 hours, this post will be updated when the migration is complete.
Update: The new server is online and services seem to work just fine. Most nameservers should have already picked up the changes, but if you still can't connect (especially to the AUR) please wait a couple hours.
(If you want to check with host, dig or nslookup the new IPs are 18.104.22.168 and 2a01:4f8:160:3033::2)
10 Jul 2014 12:51pm GMT
04 Jul 2014
Hot off the presses for the 4th of July, we are pleased to bring you the latest TalkingArch iso. Rockin' the latest 3.15.3 Linux kernel and a new irssi configuration that connects new users to live humans ready to help get them set up, this TalkingArch promises to be better than ever. If you have [...]
04 Jul 2014 9:21pm GMT
29 Jun 2014
Now with all 476 puzzles and images
29 Jun 2014 5:02am GMT
27 Jun 2014
After relieving my Pi of seedbox duties, I was looking around for some other use for it. I decided, after looking over the Arch wiki article on OpenVPN, that the Pi would be a terrific VPN server; when I am out and about I can access a secure connection to my home network, thereby significantly reducing the risk of my privacy being compromised while using connectivity to the Internet provided by the notoriously security conscious sysadmins that run networks in hotels and other public places.
Setting it up was straightforward enough, the wiki is typically clear and thorough; the only bottleneck in the process was waiting for the Pi's tiny chip to chug through the creation of public keys. Once it was done, and I had tested that it was indeed working as intended, a more vexing issue presented itself. The service wouldn't come up after rebooting. Not a deal breaker, I could always just SSH in and manually bring the server up, but that sort of defeats the purpose of being able to have the thing running reliably.
The reason that it fails on boot is that, without a hardware clock, the Pi resets its time to UNIX time until the NTP daemon can start, which in turn depends upon the network being up. So, after rebooting, the journal would show the VPN server as having failed as the date was nearly half a century ago.
There are a variety of fixes floating around, the most amusing being a wrapper for init. Suffice to say, this wasn't an option for me. Looking at the problem logically, it occurred to me that the issue was actually a trivial one: the correct sequencing of different services post boot. Isn't this, I asked myself, one of the issues systemd was supposed to address?
I just had to ensure that the network came up as quickly as possible after boot, that the time was reset correctly once there was a viable connection, and that the
openvpn.service waited for those things to happen before launching.
I have fitted the Pi with a wireless dongle, so the first step was to ditch netctl (the default network manager on the ARM image) and replace it with systemd-networkd. This is the point at which all the wingnuts that think that systemd is some sort of conspiracy to overthrow the old UNIX gods and replace them with false idols in chapeau rouge start foaming at their retrognathic mouths about "viral takeovers" and-seriously what fucking planet do these imbeciles hail from?-"an abhorrent and violent slap in the face to the Unix philosophy."1
For those of us that accept the theory of evolution, this technology is both effective and non-threatening; in fact, it is quite an improvement over its by now ageing predecessor. So, a few minutes later, /etc/systemd/network/wlan0.network and /etc/wpa_supplicant/wpa_supplicant-wlan0.conf had pretty much written themselves and then it was just a matter of enabling the eponymous services as well as
systemd-resolved.service. Reboot and the network is up seemingly instantly.
Compounding my heresy, I then switched out NTP for systemd-timesyncd and the Pi's clock was now reset with the same alacrity. The final piece, ensuring that the openvpn service waited for this to happen, was to add two lines to the service file:
That is all there is to it. Reboot and the network comes up, the clock is reset and then the OpenVPN server starts. Like magic. The sort of heathen magic that threatens to sap and impurify all of our precious bodily fluids.
- No, Virginia, I did not make that up… And I don't really understand how you can slap a philosophy in the face, but then rationality is anathema to zealots; irrespective of which chimæra they prostrate before.
27 Jun 2014 9:57pm GMT
25 Jun 2014
My wife's laptop recently died and was replaced. Unlike last time, there were regular backups with the last performed only a day or two before the failure. So all is fine… Right? Turns out not so much. The new laptop Continue reading →
25 Jun 2014 11:56am GMT
24 Jun 2014
The past days have been very "FOSS" for me.
Let's start from the beginning: Tuesday I managed (= it means I found money) to became a supporter of the FSFE! This is something that I had in mind since the last Linux Day (I'm sorry, that post is in Italian!) because I meet the FSFE Bari guys there and we had a nice chat.
I already knew the FreeYourAndroid campaign, but on Thursday I stumbled upon Nikon Roussos' post and he really motivated me to start replacing closed app with FOSS app on my phone.
Thanks to F-Droid after some hour I realized there's a good FOSS alternative for almost every application I use. Notably, I switched from Navigator to OsmAnd~, from Google Keep to Mirakel, from Google Translator to QuickDic, from Google Hangout (SMS) to TextSecure, from Twitter to Twidere.
Luckily I was already using Apollo, ConnectBot, Document Viewer, KeePassDroid, Barcode Scanner, Diode, Episodes...
The list was not so short as I thought initially and this scared me because there were too many Google apps. Yes, that's because it has the best services out there, but this means it had my location, my SMSs, my todos, my translations, my mails, my contacts, my events,... even my website stats! - I bet Google knows me better than I do.
On Monday, next step was to move away from Google Analytics. I did a quick search and found Piwik. The setup was simple and faster and it even allows (through a third-parthy script) to import your data from Google Analytics.
Tuesday. It was time to remove the Dropbox client and switch to ownCloud. I never really used Dropbox to store my private files, I just did install the client because others co-workers did and we needed a quick way to work on a folder at the same time. Luckily I don't have to share a folder with co-workers anymore, and even if I had I would use the website instead - Yep, downloading and uploading the file everytime.
I used this day to remove that package from my system and setup an ownCloud server that I'm using for remote backups. Now I can put my private files on the cloud because I trust the service this time :-).
Only GMail and Google+ left and then I free-ed my Android.
Google+ is harder. I don't want to quit Google+ because of the FOSS development around it. It's a great place where to look for FOSS news, look for people reactions and even people issues. It's a real pity Pump.IO or even Diaspora* aren't at the same level. However, I always publish my staff as 'Public' audience, so Google doesn't really own anything.
Let me say that I don't want to quit every closed service and use my own instance (it would be cool, but you know it isn't realistic), instead I guess we should look for a FOSS alternative first and in the case there's none we could split our data between many companies...and start making the FOSS implementation!
Oh I almost forgot, keep an eye upon the Tox Project! It's the free alternative to Skype/Hangout.
24 Jun 2014 12:11am GMT
21 Jun 2014
For the past few months, TalkingArch has had an IRC channel called #talkingarch on the Freenode network. This arrangement worked out pretty well, since the network was already set up. However, Kyle was recently invited to try running an IRC server linked with another, and enjoyed the experience so much that a new network was [...]
21 Jun 2014 4:54am GMT
13 Jun 2014
Vim is not just an editor (and not in the way that Emacs is more than just an editor); it is for all intents and purposes a universal design pattern. The concept of using Vim's modes and keybinds extends from the shell through to file managers and browsers. If you so choose (and I do), then a significant amount of your interactions with your operating system are mediated by Vim's design principles. This is undeniably a good thing™ as it goes some way to standardising your command interface (whether at the command line or in a GUI).
To that end, I have been spending more time working with Vim and trying to improve both my understanding of it's capabilities, the environment in which I use it and how I can optimise both of those conditions to not necessarily just be more productive, but to minimise friction in my work flows.
A large part of my job involves writing and, happily, so does a good deal of what constitutes my leisure activity. Whether it is emails written in Mutt, these blog posts, longer documents written in LaTeX, or just roboposting to forums; it is Vim all the way down. So I have spent some effort setting up Vim to make that experience as comfortable as possible.
The first step, and one I took several years ago now, was to write custom colour schemes, depending on whether I am in the console or X. Several weeks ago, I came across a Vim plugin called DistractFree, which is described as "enabling a distraction free writing mode." I had always been slightly (well, perhaps scathingly would be more accurate) cynical when reading about these sorts of things when they first started to appear, but-after playing with two or three of them-this one has really grown on me (see the screenshot on the right).
I adapted my colour scheme for it, added a line to my ~/.vimrc to enable it for specific document types, and have not looked back.
autocmd BufRead <em>.markdown,</em>tex call DistractFree#DistractFreeToggle() | wincmd w
The final piece was to set up spell checking to work properly. As well as using English, I wanted to share my personal whitelist of words between all of my machines, so I define a location in ~/.vimrc as well:
set spelllang=en_gb " real English spelling set dictionary+=/usr/share/dict/words " use standard dictionary set spellfile=$HOME/Sync/vim/spell/en.utf-8.add " my whitelist
Then it is just a matter of ensuring that misspelled or other flagged words (like those that should be capitalised) are highlighted correctly. This required a couple of lines in my colour schemes:
" Spell checking --- if version >= 700 hi clear SpellBad hi clear SpellCap hi clear SpellRare hi clear SpellLocal hi SpellBad ctermfg=9 hi SpellCap ctermfg=3 cterm=underline hi SpellRare ctermfg=13 cterm=underline hi SpellLocal cterm=None endif
The most significant change, however, was that I recently purchased a hard copy of Drew Neill's excellent Practical Vim. I have long been a fan of Drew's excellent podcast, Vimcasts, and the book is every bit as impressive as the collection of those episodes, and more. Reading it on my commute over the last week, I have been constantly amazed at the power and flexibility of this editor and Drew's ability to clearly articulate how to work economically and efficiently with it. I'm convinced this is an invaluable resource for anyone that currently uses Vim or wants to learn.
I expect that, over time, as I become more proficient with Vim, that I will adapt some of these settings, but for the time being they feel very comfortable and allow me to focus on hacking words together (and to do the occasional bit of scripting on the side)…
13 Jun 2014 9:30pm GMT
05 Jun 2014
Hi Arch community,
Arch Linux (archboot creation tool) 2014.06-2 "2k14-R2" has been released.
Homepage and for more information on archboot:
Please get it from your favorite arch linux mirror:
Further documentation can be found on-disk and on the wiki.
Thanks to all testers, who reported bugs in last release.
05 Jun 2014 1:19pm GMT
04 Jun 2014
Florian Pritz wrote:
Perl 5.20, as any other new perl version, requires all modules that are not purely perl code to be rebuilt. We did that for all packages in our repos.
The last couple major updates printed an error message when trying to load modules built against the wrong version, 5.20 seems to cause segfaults. Please make sure to rebuild all custom installed CPAN modules and binaries that link to libperl.so.
Refer to my post on arch-dev-public for a script that helps to find those packages.
04 Jun 2014 2:00pm GMT
02 Jun 2014
The TalkingArch team is pleased to announce the release of the June 2014 iso. This release includes version 3.14.4 of the linux kernel and all the latest base packages that are included on the official Arch Linux iso. As always, you can download the latest TalkingArch iso from its download page, either via BitTorrent or [...]
02 Jun 2014 3:32pm GMT