Quick tip: Add multiple users with multiple public SSH keys with Ansible

Because it took me a while to figure out how to do it cleanly, here’s my solution for adding multiple users with multiple public SSH keys on a server, using Ansible:

in login-vars.yml

users:
- login: "user1"
  pass_hash: "$6$G1Q........"
  pubkeys: 
    - "ssh-rsa AAAAB3N.....yBd1 user1@first-key"
    - "ssh-rsa AAAAB3N.....eWDp user1@second-key"
- login: "user2"
  pass_hash: "$6$G1A........"
  pubkeys: 
    - "ssh-rsa AAAAB3N.....yCDd1 user2@first-key"
    - "ssh-rsa AAAAB3N.....eaop user2@second-key"

in roles/setup-users/main.yml

- name: configure user accounts
  user:
    name={{ item.login }} 
    append=yes
    password={{ item.pass_hash }}
  become: yes
  with_items:
    - "{{ shell_users }}"

- name: Add users public keys
  authorized_key:
    user={{ item.login }}
    key="{% for key in item.pubkeys %}{{ key ~ "\n" }}{% endfor %}"
  become: yes
  with_items:
    - "{{ shell_users }}"

Stravomatic: an Android app to automatically start Strava rides

This week-end I remembered that when I got my new phone, it counted my steps on its own, and I looked up why. I discovered that there’s a Google Play Service that enables developers to get the user’s activity (walking, running, cycling etc) and I decided to try to code my first Android app: Stravomatic.

I use Strava since a few years and find it great to keep track of statistics , but sometimes I forget to start it each morning and evening when commuting.

Development went much better than I expected and I think I have a good and reliable app that starts a Strava activity if I start bicycling (or running) (for completeness, because I never run) (apart this week-end where I went around the garden numerous times for testing). It’s a simple app with a settings page and a background component that keeps track of what happens :

As it doesn’t use GPS, and takes advantage of Google Play Services, it doesn’t seem to take a noticeable toll on the battery, so I’m quite happy about that.

I published it on Google Play : Stravomatic, and I’m quite proud about it! I hope it’ll help other forgetful people :)

My own homemade BB-8

After having seen the latest Star Wars movie, I, like numerous other geeks, fell in awe with the BB-8 droid, and, like numerous other geeks, I wanted to try and build one.

So, I started by getting a 300mm plastic ball and another of 180mm diameter (which was more of a 160mm ball according to my ruler…), a pair of motors, and got the electronic parts box out of the cupboard, guessing I’d just start and solve problems as they come instead of spending a lot of time with plans, and getting demoralised half-way.

DSC_0526

The start was rather easy: get the useless parts out of the balls, and sand them so the paint would adhere.

DSC_0534

Then I made a few calculations to create the main board at the lowest possible place, and placed the motors and wheels at each side.

DSC_0541

Going on with the battery holder, even lower, in order to help with stability:

DSC_0544

Spoiler alert, this USB smart battery didn’t provide enough current, so later it got replaced with a S2 LiPo battery I use in RC cars.

DSC_0550

The fun part began, with a bit of Arduino programming. I used a standard 2.4GHz receiver for control, added a 3-axis gyroscope in order to try and compensate wobbling with the motors.

DSC_0558

About everything, laid out. Spoiler alert: the gyro is of no use, because the motors, which are DC motors with reductors, are far from precise enough to compensate anything. Also, even if they were precise, they could compensate pitch (front-to-back wobbling) but not roll (lateral).

DSC_0563

After upgrading the battery, the first test was rather promising:

And here came the time for the difficulties: adding the mast:

DSC_0562

And the head, with magnets to hold it in place, and caster balls to have it roll freely:

12552541_10205407629492323_2296425100086899696_n

Spoiler alert: the very little caster balls did not roll freely at all, and too much approximation in the magnets’ placement made them touch the body’s ball, making very unpleasant sounds (and also the head had that tendancy to fall):

But still, it was promising. So I started painting.

DSC_0565

DSC_0569

DSC_0570

DSC_0571

And after hours of masking, painting, re-masking, re-painting, I arrived at an unperfect, but not too shameful result:

DSC_0573

Went on with the head…

DSC_0574

DSC_0576

But with just the added weight of the two “eyes”, it couldn’t sit on BB-8 more than a couple meters… So I ditched it and re-made it from a styrofoam ball (this time of the correct size), and while I was at it, re-made the magnetic mechanism with better magnets, better caster balls and better measurements.

DSC_0578

DSC_0589

And the result looks pretty good in my opinion!

DSC_0593

It also rolls much better, although there are still a few noises and it can look like BB-8 had a few beers:

It took my three weeks to get to this point. I knew I could make it a month, so I’ve upgraded a few things, mostly so I don’t have to open the body each time I want to power BB-8 on: first, a magnetic switch (don’t use a bicycle odometer’s sensor, it won’t accept so much current and will solder itself the first time), which I can use to power on BB-8 from the outside (after a bit of searching each time):

DSC_0591

It’s made out of a bendable piece of metal and a magnet.

You can also see there a pair of relays, which are used to auto-power-off the Arduino and its motor shield after two minutes of RC signal loss; this way, I don’t have to open the body to shut it down either.

DSC_0590

And I’ve stuck in a little LiPo battery tester, so that it can scream at me when the LiPo’s starting to be too discharged (LiPos don’t like that, and when LiPos are unhappy, they tend to catch fire if you look at them wrongly, so.)

I now consider my BB-8 complete although it’s far from perfect ! I think it wasn’t the easiest robot to start building robots, but then, I enjoyed making it. Maybe next time I’ll do an R2D2, and although the body work will be harder, the mechanics will be a walk in the park.

After building it I’ve watched other videos from other BB-8 makers, and it is really fun to see how many different designs there are. Some are very simple with an RC car at the bottom of the ball, some roll by direct transmission and have turning performed by a fly wheel; some are holonomous robots with multi-directional wheels, some use indirect transmission like mine, but a flywheel to turn (this guy is good, but also has access to great resources, so I do think I could do much better if I had CNC mills, 3D printers and ACTUALLY GOT PAID TO DO IT), and this 17 years old’s model works exactly like mine, but damn this kid is skilled.

HP Laserjet P3005: fuser disassembly and gear kit replacement

Here’s how to disassemble the fuser on an HP LaserJet P3005 printer, and replace the gear kit (which is a part that fails often, reference CB414-67923). First remove the sliding plastic part at the back of the printer, then remove these two screws :

1

Then remove the big plastic panel, bottom first so it disengages at the top.

Lift these two little tabs so you pull the part they’re attached on towards you, and remove it:

2

Remove the screw holding the next panel in place (then remove it by putting the cable at the left away, and be careful not to break the clip at the right). I don’t think this is necessary, in reality. I did it because I didn’t know where I was going.

3

Then unplug the fuser cables (the cover on the power panel comes off with no screws) :

4

5

And unscrew the four screws :

6

You can then pull the fuser away and reach the gears. From left to right, the first one has a plastic tab keeping it in place, which you can pull with a little screwdriver. The second one is free when you remove the first. The third one is freed by the fourth, which is held in place by a weird little plastic piece. The sizes of the pieces are rather close but not identical, watch out for that. More details on this part of the procedure.

7

How to act like an idiot and cost a free software project money

A few monthes ago, a user made us a €5 donation for Claws Mail’s Windows version. Then asked me over email and Facebook friend request for support on “error messages that pop is starting up prior to sm something da da da” (actual quote).

7i2dq

I just replied that this seemed like he’d need to enable POP before SMTP, and that he’d get better support on the users mailing list.

And this person then filed a chargeback at his credit card company, and consequently, Paypal withdrew €5 from my account, and withdrew an extra €16 the bank charged for processing.

This got me a little disgruntled, to say the least, so I sent Paypal screenshots of the user’s email support request and Facebook friend request, and Paypal forwarded those to the bank.

Yesterday I got news that the bank resolved this in our favor (and I do hope our indelicate user got a scolding :-)), and the €5 reappeared on my account.

The €16 processing charges, though, seem lost forever.

7i2f5

Full story about Claws Mail donations – what they are for, what they aren’t for.

news for few, stuff no-one cares about