Back in 2010 when I needed an ADSL2 router in the US I bought a Netgear DGN3500. It did what I wanted out of the box and being based on a MIPS AR9 (ARX100) it seemed likely OpenWRT support might happen. Long story short I managed to overwrite u-boot (the bootloader) while flashing a test image I’d built. I ended up buying a new router (same model) to get my internet connection back ASAP and never getting around to fully fixing the broken one. Until yesterday. Below is how I fixed it; both for my own future reference and in case it’s of use any any other unfortunate soul.
The device has clear points for serial and JTAG and it was easy enough (even with my basic soldering skills) to put a proper header on. The tricky bit is that the flash is connected via SPI, so it’s not just a matter of attaching JTAG, doing a scan and reflashing from the JTAG tool. I ended up doing RAM initialisation, then copying a RAM copy of u-boot in and then using that to reflash. There may well have been a better way, but this worked for me. For reference the failure mode I saw was an infinitely repeating:ROM VER: 1.1.3 CFG 05
My JTAG device is a Bus Pirate v3b which is much better than the parallel port JTAG device I built the first time I wanted to do something similar. I put the latest firmware (6.1) on it.
I tied all of this together with an openocd.cfg that contained:source [find interface/buspirate.cfg] buspirate_port /dev/ttyUSB1 buspirate_vreg 0 buspirate_mode normal buspirate_pullup 0 reset_config trst_only source [find openocd-scripts/target/arx100.cfg] source [find openocd-scripts/board/dgn3500.cfg] gdb_flash_program enable gdb_memory_map enable gdb_breakpoint_override hard
I was then able to power on the router and type dgn3500_ramboot into the OpenOCD session. This fetched my RAM copy of u-boot from dgn3500_ram/u-boot.bin, copied it into the router’s memory and started it running. From there I had a u-boot environment with access to the flash commands and was able to restore the original Netgear image (and once I was sure that was working ok I subsequently upgraded to the Barrier Breaker OpenWRT image).
All the documentation and guides I found say that to enable a persistent journal on Debian you just need to create /var/log/journal. It is true that once you create that directory you will get a persistent journal.
All the documentation and guides I found say that as long as you are in group adm (or sometimes they say group systemd-journal) it is possible to see all system logs by just typing journalctl, without having to run it as root. Having simply done mkdir /var/log/journal I can tell you that is not the case. All you will see is logs relating to your user.
The missing piece of info is contained in /usr/share/doc/systemd/README.Debian:
Enabling persistent logging in journald
To enable persistent logging, create /var/log/journal and set up proper permissions:
install -d -g systemd-journal /var/log/journal
setfacl -R -nm g:adm:rx,d:g:adm:rx /var/log/journal
-- Tollef Fog Heen , Wed, 12 Oct 2011 08:43:50 +0200
Without the above you will not have permission to read the /var/log/journal//system.journal file, and the ACL is necessary for journal files created in the future to also be readable.
The monthly meeting of West Yorkshire GNU/Linux User Group will be on the 27th of July, at 7pm. The meeting will be located at The Lord Darcy on Harrogate Road. If there is anything you immensely like or especially dislike about Linux and its relatives then come to us. We will hopefully match up the former to assist the latter.
I'm sticking to my calorie restricted diet. Once I get to the correct target weight or waist size I'll stick to the diet but increase the calories to match my burn rate so I stay put at the right size.
My diet is a combination of three highly regarded diets: the DASH; the portfolio and the Mediterranean diet. They are basically the same for over ~75% of their components and ideas, so they are easy to combine. All three are good for reducing blood pressure, reducing serum LDL and if used in a calorie restricted manner then good for reducing body mass.
The all share the following obvious components: lots of fresh fruit and vegetables every day (5 portions of each); high fibre un-refined cereals; plenty of nuts and pulses; low levels of fat & sugar and not much processed food.
The DASH diet keeps the salt levels low or ultra low. Lower than the national RDA and either aligned with the WHO upper limit in the basic version, or lower still in the ultra low salt version. Caffeine and alcohol are also moderated to lower than normal levels.
The portfolio diet adds more plant protein in the form of soya and other legumes. It also adds know "cholesterol" absorbing foods to the diet like beta-glucans from wholemeal oats, sterols from fortified dairy products and soya instead of some diary products.
Finally from the Mediterranean diet there is oily fish, e.g. mackerel and sardines instead of beef.
I'm now less than 75 kg, and starting to fit into medium sized men's clothing rather than large which is too lose and XL which fits like a tent. About 10 kg to go if you assume BMI, and about 1 trouser size if you accept waist:height ratio.
The Debian Perl team had its first sprint in May and it was a success: 7 members met in Barcelona the weekend from May 22nd to May 24th to kick off the development around perl for Stretch and to work on QA tasks across the more than 3000 packages that the team maintains.
Even though the participants enjoyed the beautiful weather and the food very much, a good amount of work was also done:
The full report was posted to the relevant Debian mailing lists.
The participants would like to thank the Computer Architecture Department of the Universitat Politècnica de Catalunya for hosting us, and all donors to the Debian project who helped to cover a large part of our expenses.
The Independent reports that David Cameron wishes to ban the instant messaging application WhatsApp due its use of end-to-end encryption.
That we might merely be pawns in manoeuvring for some future political compromise (or merely susceptible to cheap clickbait) should be cause for some concern, but what should worry us more is that if it takes scare stories about WhatsApp for our culture to awaken on the issues of privacy and civil liberties, then the central argument against surveillance was lost a long time ago.
However, the situation worsens once you analyse the disapproval in more detail. One is immediately struck by a predominant narrative of technical considerations; a ban would be "unworkable" or "impractical". A robust defence of personal liberty or a warning about the insidious nature of chilling effects? Perhaps a prescient John Locke quote to underscore the case? No. An encryption ban would "cause security problems."
The argument proceeds in a tediously predictable fashion: it was already difficult to keep track whether one should ipso facto be in favour of measures that benefit the economy, but we are suddenly co-opted as technocrats to consider the "damage" it could to do the recovery or the impact on a now-victimised financial sector. The «coup-de-grâce» finally appeals to our already inflated self-regard and narcissism: someone could "steal your identity."
The tragedy here is that I suspect that this isn't what the vast majority of people really believe. Given a hypothetical ban that could, somehow, bypass all of the stated concerns, I'm pretty upbeat and confident that most people would remain uncomfortable with it on some level.
So what, exactly, does it take for us to oppose this kind of intervention on enduring principled grounds instead of transient and circumventable practical ones? Is the problem just a lack of vocabulary to discuss these issues on a social scale? A lack of courage?
Whilst it's certainly easier to dissect illiberal measures on technical merit than to make an impassioned case for abstract freedoms, every time we gleefully cackle "it won't work" we are, in essence, conceding the central argument to the authoritarian and the censorious. If one is right but for the wrong reasons, were we even right to begin with?
Yes, it's summer time, get ready for almost raw i/o, or slightly cooked!
It's now been a few weeks since I've been on my new diet. Since April I've lost a further ~6 kg, currently weighing in at around 77 kg. Other than my trip to Guernsey which appear to have added 1 kg (all the raspberries and tomatoes...) instead of a 440 g loss, taking me about 1.5 kg off track. I've stopped using a weekly weigh-in, opting for a 7-day moving average which is less volatile and probably more meaningful.
My diet is basically what I had when I was too heavy but slightly tweaked:
I've had to exclude:
The up shot is that with the limit on sugars, fats and salt most processed foods are now off limits, and will probably remain that way for ever. The occasion item is okay but it really has to be only occasionally.
The main addition to my diet are the nuts, I'm not really a fan of them, but they apparently are good for LDL/HDL ratio and blood pressure. I've also added some xylitol based mints as they are minty (I have a sweet tooth) and apparently there is good evidence that they contribute to reducing dental decay.
I've also swapped some of my yoghurt to yoghurt with plant sterols in or yoghurt based on soya rather than milk. Both are proven to reduce your LDL levels in the blood, which is probably a good idea - though possibly not enough to make a clinically significant outcome.
So recently I posted on twitter about a sudden gain in strength:
I have conquered pull-ups! On Saturday night I could do 1.5. Today I could do 11! (Chinups were always easy.) #fitness— Steve Kemp (@Stolen_Souls) June 15, 2015
To put that more into context I should give a few more details. In the past I've been using an assisted pull-up machine, which offers a counterweight to make such things easier.
When I started the exercise I assumed I couldn't do it for real, so I used the machine and set it on 150lb. Over a few weeks I got as far as being able to use it with only 80lb. (Which means I was lifting my entire body-weight minus 80lb. With the assisted-pullup machine smaller numbers are best!)
One evening I was walking to the cinema with my wife and told her I thought I'd be getting close to doing one real pull-up soon, which sounds a little silly, but I guess is pretty common for random men who are 40 as I almost am. As it happens there were some climbing equipment nearby so I said "Here see how close I am", and I proceeded to do 1.5 pullups. (The second one was bad, and didn't count, as I got 90% of the way "up".)
Having had that success I knew I could do "almost two", and I set a goal for the next gym visit: 3 x 3-pullups. I did that. Then I did two more for fun on the way out (couldn't quite manage a complete set.)
So that's the story of how I went from doing 1.5 pullus to doing 11 in less than a week. These days I can easily do 3x3, but struggle with more. It'll come, slowly.
So pull-up vs. chin-up? This just relates to which way you place your hands: palm facing you (chin-up) and palm way from you (pull-up).
Some technical details here but chinups are easier, and more bicep-centric.
Anyway too much writing. My next challenge is the one-armed pushup. However long it takes, and I think it will take a while, that's what I'm working toward.
Long weekend in Guernsey.Location: Guernsey
Well 123-reg mostly I think you don't know how to do email.
Yesterday was our last full day on Guernsey as we return to the UK this afternoon. The forecast was good for the morning and not so good in the afternoon, so we decided to walk to the northern tip while it was nice and if needed take the bus back. More beaches and fewer crags on this section of coastline than the southside.
The afternoon wasn't so nice, but it also wasn't too bad so we were still able to walk back to our hotel without getting cold or wet. We have now walked all the eastern seaboard of Guernsey from the southern most point (I think) to it's northern most.
Today is our last day in Guernsey, and we have had a lovely break - I think we will come back but with our bikes and for more than just a flying visit.
As the ferry back to Blighty was in the afternoon, we had several hours to explore the castle that guards the port. It was a few quid to get in, but very interesting with several museums and lots to look at. We had a very nice lunch in the sun at the back of the castle in relative peace, with no pigeons, seagulls or tourists bothering us.
Back to work tomorrow!
While I mentioned last September that I had failed to be selected for an H-1B and had been having discussions at DebConf about alternative employment, I never got around to elaborating on what I’d ended up doing.
Short answer: I ended up becoming a law student, studying for a Masters in Legal Science at Queen’s University Belfast. I’ve just completed my first year of the 2 year course and have managed to do well enough in the 6 modules so far to convince myself it wasn’t a crazy choice.
Longer answer: After Vello went under in June I decided to take a couple of months before fully investigating what to do next, largely because I figured I’d either find something that wanted me to start ASAP or fail to find anything and stress about it. During this period a friend happened to mention to me that the applications for the Queen’s law course were still open. He happened to know that it was something I’d considered before a few times. Various discussions (some of them over gin, I’ll admit) ensued and I eventually decided to submit an application. This was towards the end of August, and I figured I’d also talk to people at DebConf to see if there was anything out there tech-wise that I could get excited about.
It turned out that I was feeling a bit jaded about the whole tech scene. Another friend is of the strong opinion that you should take a break at least every 10 years. Heeding her advice I decided to go ahead with the law course. I haven’t regretted it at all. My initial interest was largely driven by a belief that there are too few people who understand both tech and law. I started with interests around intellectual property and contract law as well as issues that arise from trying to legislate for the global nature of most tech these days. However the course is a complete UK qualifying degree (I can go on to do the professional qualification in NI or England & Wales) and the first year has been about public law. Which has been much more interesting than I was expecting (even, would you believe it, EU law). Especially given the potential changing constitutional landscape of the UK after the recent general election, with regard to talk of repeal of the Human Rights Act and a referendum on exit from the EU.
Next year will concentrate more on private law, and I’m hoping to be able to tie that in better to what initially drove me to pursue this path. I’m still not exactly sure which direction I’ll go once I complete the course, but whatever happens I want to keep a linkage between my skill sets. That could be either leaning towards the legal side but with the appreciation of tech, returning to tech but with the appreciation of the legal side of things or perhaps specialising further down an academic path that links both. I guess I’ll see what the next year brings. :)
Yesterday morning we awoke at silly o'clock to take the train to catch the ferry from Poole to Guernsey. The ferry was rather busy with people going to the Island Games in Jersey, but we got off a St. Peter Port. We walked up the hill to our B&B to discover there had been a booking error and they were actually full - so they took us to another hotel (an extra star) where we stayed instead.
The glorious weather we had for our crossing had mostly deserted us and it had become rather dull and flat. However the predicted rain didn't turn up so we were able to explore the town without getting wet and were able to find some food for dinner.
This morning was great, after our breakfast we went into town to explore further. Once we had bought lunch bits we took the bus towards the airport, getting off one stop shy, then we walked all along the southern coast back to St. Peter Port. The walking was easy and the views were beautiful - very reminiscent of the Brittany coast or Cornwall. More like the UK and less like France they were a bit stingy with with signs and it was a bit confusing in places - the French GR paint marking system is very simple and much easier to navigate with than the occasional sign!
When we made it back to town we had a look at La Valette Underground Military Museum, which was most fascinating, and packed with more stuff than you would imagine could fit in such a small place.
For dinner we decided to try eating out. La Creperie was strange, the staff appeared to be of Slavic origin, half the menu was not crepe or galette, but the galette was actually quite good though the crepe was only average. Definitely fusion food!
The Core Infrastructure Initiative announced today that they will support two Debian Developers, Holger Levsen and Jérémy Bobbio, with $200,000 to advance their Debian work in reproducible builds and to collaborate more closely with other distributions such as Fedora, Ubuntu, OpenWrt to benefit from this effort.
The Core Infrastructure Initiative (CII) was established in 2014 to fortify the security of key open source projects. This initiative is funded by more than 20 companies and managed by The Linux Foundation.
The reproducible builds initiative aims to enable anyone to reproduce bit by bit identical binary packages from a given source, thus enabling anyone to independently verify that a binary matches the source code from which it was said it was derived. For example, this allow the users of Debian to rebuild packages and obtain exactly identical packages to the ones provided by the Debian repositories.
After leaving IBM I’ve joined Pace at their Belfast office. It is quite a change of IT sectors, though still the same sort of job. Software development seems to have a lot in common no matter which industry it is for.
The job is still Software Development, and there should be some fun challenges with things like allowing a TV set top box to do on demand video content when all you have is a one-way data stream from a satellite, for instance, which make for some interesting solutions. I’m working in the Cobalt team which deals with a delivering data from the TV provider onto set top boxes, so things like settings, software updates, programme guides and on demand content and even apps. Other teams in the office work with the actual video content encryption and playback and the UI the set top box shows.
The local office seems to be all running Fedora, so I’m saying goodbye to Ubuntu at work. I already miss it, but hopefully will find Fedora enjoyable in the long term.
The office is on the other side of Belfast so is a marginally longer commute, but it’s still reasonable to get to. Stranmillis seems a nice area of Belfast, and it’s a 10 minute walk to the Botanical gardens so I intend to make some time to see it over lunch, which will be nice as I really miss getting out as I could in Hursley and its surrounding fields.
Also, web services generally spit out one of a fairly common set of formats: (json, xml, html) and I often just want to grab a value from the response and use it in a script - maybe to make the next call in a workflow.
So I made please which makes it super simple to do things like making a web request and grabbing a particular value from the response.
For example, here's how you'd get the page title from this site:please get http://offend.me.uk/ | please parse html.head.title.#text
Or getting a value out of the json returned by jsontest.com's IP address API:please get http://ip.jsontest.com/ | please parse ip
The parse part of please is the most fun; it can convert between a few different formats. Something I do quite often is grabbing a json response from an API and spitting it out as yaml so I can read it easily. For example:please get http://date.jsontest.com/ | please parse -o yaml
(alright so that's a poor example but the difference is huge when it's a complicated bit of json)
Also handy for turning an unreadable mess of xml into yaml (I love yaml for its readability):echo '<docroot type="messydoc"><a><b dir="up">A tree</b><b dir="down">The ground</b></a></docroot>' | please parse -o yaml
As an example, of the kinds of things you can play with, I made this tool for generating graphs from json.
I'm still working on please; there will be bugs; let me know about them.