Planet Linux Australia
Celebrating Australians & Kiwis in the Linux and Free/Open-Source community...

March 29, 2015

Twitter posts: 2015-03-23 to 2015-03-29

Challenge for 2015: hackaday prize competition

So the 2015 Hackaday prize is happening, until at least August.

Somehow I’ve currently ended up involved with not one, but two entries!  The good thing is that with four months to go until the first round submission, I have been careful not to bite off more that can be chewed in the time available on weekends, or after the kids go to bed, etc. with other commitments. Along the way though it should be educational and fun, and with any luck I might at least win a T-shirt or something (some electronics test gear would be nice) … I’m under no illusion we will get anywhere near winning a trip to space!

The themes this year are is “Build Something that Matters”, around environment, agriculture and energy, with the related facet of solving a problem, and not necessarily a world-scale problem.

So my first project, of which I am making good progress, is a farm crop monitoring system for Australian conditions.  This utilises the ESP8266 wifi module and will exercise its deep sleep mode, and solar power, along with a yet to be determined Linux module for a local base station, and hopefully ISM band telemetry over long distances. I will also be helped by my neighbour who is a farmer who can use this system.

The second project, which is not my idea but that of a close friend, (but for which I am presently responsible for maintaining the hackaday.io page), is an Algorithmic Composting machine built out of repurposed parts and cheap electronics.  I’ll probably end up assisting with the embedded electronics, as well as keeping the documentation up to date.

I wont be posting here in a lot of detail as the contest progresses, as there is a project log built into the hackaday.io site intended for that purpose.  So follow along at http://hackaday.io/project/4758 and http://hackaday.io/project/4991  instead! (And please like our projects if you have a hackaday account!)

 

March 28, 2015

Fedora 21: automatic software updates

The way Fedora does automatic software updates has changed with the replacement of yum(8) with dnf(8).

Start by disabling yum's automatic updates, if installed:

# dnf remove yum-cron yum-cron-daily

Then install the dnf automatic update software:

# dnf install dnf-automatic

Alter /etc/dnf/automatic.conf to change the "apply_updates" line:

apply_updates = yes

Instruct systemd to run the updates periodically:

# systemctl enable dnf-automatic.timer
# systemctl start dnf-automatic.timer

clintonroy

PyCon Australia 2015 is pleased to announce that its Call for Proposals is now open!

The conference this year will be held on Saturday 1st and Sunday 2nd August 2015 in Brisbane. We’ll also be featuring a day of Miniconfs on Friday 31st July.

The deadline for proposal submission is Friday 8th May, 2015.

PyCon Australia attracts professional developers from all walks of life, including industry, government, and science, as well as enthusiast and student developers. We’re looking for proposals for presentations and tutorials on any aspect of Python programming, at all skill levels from novice to advanced.

Presentation subjects may range from reports on open source, academic or commercial projects; or even tutorials and case studies. If a presentation is interesting and useful to the Python community, it will be considered for inclusion in the program.

We’re especially interested in short presentations that will teach conference-goers something new and useful. Can you show attendees how to use a module? Explore a Python language feature? Package an application?

Miniconfs

Four Miniconfs will be held on Friday 31st July, as a prelude to the main conference. Miniconfs are run by community members and are separate to the main conference. If you are a first time speaker, or your talk is targeted to a particular field, the Miniconfs might be a better fit than the main part of the conference. If your proposal is not selected for the main part of the conference, it may be selected for one of our Miniconfs:

DjangoCon AU is the annual conference of Django users in the Southern Hemisphere. It covers all aspects of web software development, from design to deployment – and, of course, the use of the Django framework itself. It provides an excellent opportunity to discuss the state of the art of web software development with other developers and designers.

The Python in Education Miniconf aims to bring together community workshop organisers, professional Python instructors and professional educators across primary, secondary and tertiary levels to share their experiences and requirements, and identify areas of potential collaboration with each other and also with the broader Python community.

The Science and Data Miniconf is a forum for people using Python to tackle problems in science and data analysis. It aims to cover commercial and research interests in applications of science, engineering, mathematics, finance, and data analysis using Python, including AI and ‘big data’ topics.

The OpenStack Miniconf is dedicated to talks related to the OpenStack project and we welcome proposals of all kinds: technical, community, infrastructure or code talks/discussions; academic or commercial applications; or even tutorials and case studies. If a presentation is interesting and useful to the OpenStack community, it will be considered for inclusion. We also welcome talks that have been given previously in different events.

Full details: http://2015.pycon-au.org/cfp



Filed under: Uncategorized

Parallel Importing vs The Economist

Simpson-economistFor the last few years I have subscribed to the online edition of  The Economist magazine. Previously I read it via their website but for the last year or two I have used their mobile app. Both feature the full-text of each week’s magazine. Since I subscribed near 15 years ago I have paid:

Launched Jun 1997   US$ 48
Jun 1999            US$ 48
Oct 2002            US$ 69
Oct 2003            US$ 69
Dec 2006            US$ 79
Oct 2009            US$ 79
Oct 2010            US$ 95
Oct 2011            US$ 95
Mar 2014            NZ$ 400 (approx US$ 300) 

You will note the steady creep for a few years followed by the huge jump in 2014.

Note: I reviewed by credit card bill for 2012 and 2013 and I didn’t see any payments, it is possible I was getting it for free for two years :) . Possibly this was due to the transition between using an outside card processor (Worldpay) and doing the subscriptions in-house.

Last year I paid the bill in a bit of a rush and while I was surprised at the amount I didn’t think to hard. This year however I had a closer look. What seems to have happened is that The Economist has changed their online pricing model from “cheap online product” to “discount from the printed price”. This means that instead of online subscribers paying the same everywhere they now pay slightly less than it would cost to get the printed magazine delivered to the home.

Unfortunately the New Zealand price is very high to (I assume) cover the cost of shipping a relatively small number of magazines via air all the way from the nearest printing location.

econ_nzecon_us

 

 

 

 

 

 

 

 

 

 

 

 

 

 

So readers in New Zealand are now charged NZ$ 736 for a two-year digital subscription while readers in the US are now charged US$ 223 ( NZ$ 293) for the same product. Thus New Zealanders pay 2.5 times as much as Americans.

Fortunately since I am a globe-trotting member of the world elite® I was able to change my subscription address to my US office and save a bunch of cash. However for a magazine that publishes the Big Mac Index comparing prices of products around the world the huge different in prices for the same digital product seems a little weird.

March 26, 2015

The Cloud : An Inferior Implementation of HPC

The use of cloud computing as an alternative implementation for high performance computing (HPC) initially seems to be appealing, especially to IT managers and to users who may find the jump from their desktop application to the command line interface challenging. However a careful and nuanced review of metrics should lead to a reconsideration of these assumptions.

read more

sswam

Job control is a basic feature of popular UNIX and Linux shells, such as “bash”.

It can be very useful, so I thought I’d make a little tutorial on it…

^C    press Ctrl-C to interrupt a running job (you know this one!)
^\    press Ctrl-\ (backslash) to QUIT a running job (stronger)
^Z    press Ctrl-Z to STOP a running job, it can be resumed later
jobs  type jobs for a list of stopped jobs (and background jobs)
fg    type fg to continue a job in the foreground
bg    type bg to continue a job in the background
kill  kill a job, e.g. kill %1, or kill -KILL %2
wait  wait for all background jobs to finish

You can also use fg and bg with a job number, if you have several jobs in the list.

You can start a job in the background: put an &-symbol at the end of the command. This works well for jobs that write to a file, but not for interactive jobs. Things might get messy if you have a background job that writes to the terminal.

If you forget the % with kill, it will try to kill by process-id instead of job number.  You don’t want to accidentally kill PID 1!

An example:

vi /etc/apache2/vhosts.d/ids.conf
^Z
jobs
find / >find.out &
jobs
fg 2
^Z
jobs
bg 2
jobs
kill %2
fg


March 25, 2015

Keeping up with noisy blog aggregators using PlanetFilter

I follow a few blog aggregators (or "planets") and it's always a struggle to keep up with the amount of posts that some of these get. The best strategy I have found so far to is to filter them so that I remove the blogs I am not interested in, which is why I wrote PlanetFilter.

Other options

In my opinion, the first step in starting a new free software project should be to look for a reason not to do it :) So I started by looking for another approach and by asking people around me how they dealt with the firehoses that are Planet Debian and Planet Mozilla.

It seems like a lot of people choose to "randomly sample" planet feeds and only read a fraction of the posts that are sent through there. Personally however, I find there are a lot of authors whose posts I never want to miss so this option doesn't work for me.

A better option that other people have suggested is to avoid subscribing to the planet feeds, but rather to subscribe to each of the author feeds separately and prune them as you go. Unfortunately, this whitelist approach is a high maintenance one since planets constantly add and remove feeds. I decided that I wanted to follow a blacklist approach instead.

PlanetFilter

PlanetFilter is a local application that you can configure to fetch your favorite planets and filter the posts you see.

If you get it via Debian or Ubuntu, it comes with a cronjob that looks at all configuration files in /etc/planetfilter.d/ and outputs filtered feeds in /var/cache/planetfilter/.

You can either:

  • add file:///var/cache/planetfilter/planetname.xml to your local feed reader
  • serve it locally (e.g. http://localhost/planetname.xml) using a webserver, or
  • host it on a server somewhere on the Internet.

The software will fetch new posts every hour and overwrite the local copy of each feed.

A basic configuration file looks like this:

[feed]
url = http://planet.debian.org/atom.xml

[blacklist]

Filters

There are currently two ways of filtering posts out. The main one is by author name:

[blacklist]
authors =
  Alice Jones
  John Doe

and the other one is by title:

[blacklist]
titles =
  This week in review
  Wednesday meeting for

In both cases, if a blog entry contains one of the blacklisted authors or titles, it will be discarded from the generated feed.

Tor support

Since blog updates happen asynchronously in the background, they can work very well over Tor.

In order to set that up in the Debian version of planetfilter:

  1. Install the tor and polipo packages.
  2. Set the following in /etc/polipo/config:

     proxyAddress = "127.0.0.1"
     proxyPort = 8008
     allowedClients = 127.0.0.1
     allowedPorts = 1-65535
     proxyName = "localhost"
     cacheIsShared = false
     socksParentProxy = "localhost:9050"
     socksProxyType = socks5
     chunkHighMark = 67108864
     diskCacheRoot = ""
     localDocumentRoot = ""
     disableLocalInterface = true
     disableConfiguration = true
     dnsQueryIPv6 = no
     dnsUseGethostbyname = yes
     disableVia = true
     censoredHeaders = from,accept-language,x-pad,link
     censorReferer = maybe
    
  3. Tell planetfilter to use the polipo proxy by adding the following to /etc/default/planetfilter:

     export http_proxy="localhost:8008"
     export https_proxy="localhost:8008"
    

Bugs and suggestions

The source code is available on repo.or.cz.

I've been using this for over a month and it's been working quite well for me. If you give it a go and run into any problems, please file a bug!

I'm also interested in any suggestions you may have.

Devops and Old Git Branches

A guest blog post I wrote on managing git branches when doing devops.

When doing Devops we all know that using source code control is a “good thing” — indeed it would be hard to imagine doing Devops without it. But if you’re using Puppet and R10K for your configuration management you can end up having hundreds of old branches lying around — branches like XYZ-123, XYZ-123.fixed, XYZ-123.fixed.old and so on. Which branches to cleanup, which to keep? How to easily cleanup the old branches? This article demonstrates some git configurations and scripts  that make working with hundreds of git branches easier…

Go to Devops and Old Git Branches to read the full article.

March 24, 2015

Skill Improvements versus Interface Designs for eResarchers

The increasing size of datasets acts a critical issue for eResearch, especially given that they are expanding at a rate greater than improvements in desktop application speed, suggesting that HPC knowledge is requisite. However knowledge of such systems is not common.

read more

March 23, 2015

A quick walk through Curtin

What do you do when you accidentally engaged a troll on twitter? You go for a walk of course.



I didn't realize there had been a flash flood in Canberra in 1971 that killed seven people, probably because I wasn't born then. However, when I ask people who were around then, they don't remember without prompting either, which I think is sad. I only learnt about the flood because of the geocache I found hidden at the (not very well advertised) memorial today.



       



Interactive map for this route.



Tags for this post: blog pictures 20150323-curtin photo canberra bushwalk

Related posts: Goodwin trig; Big Monks; Geocaching; Confessions of a middle aged orienteering marker; Narrabundah trig and 16 geocaches; Cooleman and Arawang Trigs



Comment

Mee (noodle) and Nasi (rice) Goreng Recipe/s

This is based on recipes online and an interpretation by a local restaurants that I used to frequent. While there are other alternative recipes that possibly taste better, I find that this is the quickest and easiest version.

- sugar

- curry powder

- chilli sauce

- soy sauce

- tomato sauce

- eggs

- chicken, prawns, and/or seafood mix

- egg noodles (any kind)

- lemon juice (optional)

- oyster sauce (optional)

- garlic (optional)

- ginger (optional)

- onion (optional)

- tomatoes (optional)

- tofu (optional)

- vegetables (optional, type is your choice)

Coat chicken with bicarbonate soda if desired (meat tenderiser. This step is not required at all if chicken is diced into small enough pieces and cooked well) and then wash off in cold water. Marinade chicken in fish sauce, sugar, garlic, pepper (optional step). Fry off chicken, tofu, onion, garlic, ginger, etc... in pan. Create sauce by using tomato sauce, soy sauce, chill sauce, curry powder, sugar, etc... Cook sauce and add noodles/rice when ready. Garnish everything with chopped lettuce and fried shallots if desired.



The following is what it looks like.

http://indaily.com.au/food-and-wine/2014/09/23/adam-liaws-mee-goreng/

March 22, 2015

Twitter posts: 2015-03-16 to 2015-03-22

March 21, 2015

Narrabundah trig and 16 geocaches

I walked to the Narrabundah trig yesterday, along the way collecting 15 of the 16 NRL themed caches in the area. It would have been all 16, except I can't find the last one for the life of me. I'm going to have to come back.



I really like this area. Its scenic, has nice trails, and you can't tell you're in Canberra unless you really look for it. It seemed lightly used to be honest, I think I saw three other people the entire time I was there. I encountered more dogs off lead than people.



 



Interactive map for this route.



Tags for this post: blog pictures 20150321-narrabundah photo canberra bushwalk trig_point

Related posts: Goodwin trig; Big Monks; Cooleman and Arawang Trigs; A walk around Mount Stranger; Forster trig; Two trigs and a first attempt at finding Westlake



Comment

A more accessible online world will benefit everyone.

An empty wheelchair at the bottom of the stairs

PSA: If you are a web professional, work in a digital agency or build mobile apps, please read this article now: Taking the social model of disability online

Done? Great.

"The social model of disability reframes discussion of disability as a problem of the world, rather than of the individual. The stairs at the train station are the problem, rather than using a wheelchair."

El Gibbs has reminded me of question time during Gian Wild's keynote at Drupal Downunder in 2012. Gian asserts that accessibility guidelines are a legal requirement for everyone, not just Government. There was an audible gasp from the audience.

It's true that our physical environment needs to include ramps, lifts, accessible toilets, reserved parking spaces, etc in order to accommodate those with mobility needs. Multi-lingual societies require multi-lingual signage. There are hearing loops - but for some reason, this "social model" of accessibility doesn't seem to have extended online.

Making the digital world accessible, and counteracting the systemic discriminatory impact of failing to do so is something we must take seriously. We must build this in during planning and design, we must make it easy for content editors to maintain WCAG compliance AFTER a site or app is delivered.

Building accessibility features in from the beginning also means it costs less to implement, and delivers a double win of making the whole team more mindful of these issues to begin with. It should be part of the acceptance criteria, it should be part of the definition of done.

I'd like to see us tackle these issues directly in Drupal core. If you're interested in keeping track of accessibility issues in Drupal, you might like to follow drupala11y on twitter, and check out issues on drupal.org that have been tagged with "accessibility"

Accessibility traps might not affect you now, but they will. This is probably affecting people you know right now. People who silently struggle with small font sizes, poor contrast, cognitive load, keyboard traps, video without captions. 

My own eyesight and hearing is not what it was.  My once able parents now require mobility aids. My cousin requires an electric wheelchair. A friend uses a braille reader, and yet I still forget.  It's not front and centre for me, but it should be. Let's all take a moment to think about how we can focus on making our online and digital world more accessible for everyone. It really does benefit us all.

An Introduction to Supercomputers

Very much a minor update to the presentation I gave in 2013, this talk provides a definition of supercomputers, high performance computing, and parallel programming, their use and current metrics, the importance and dominance of the Linux operating system in these areas, as well as some practical hands-on examples.

An Introduction to Supercomputers. Presentation to Linux Users of Victoria Beginners Workshop, 21st March, 2015

March 20, 2015

2015 Arctic Sea Ice Maximum Annual Extent Is Lowest On Record | NASA

A quick trip to Namadgi

I thought I'd drop down to the Namadgi visitors centre to have a look during lunch because I hadn't been there since being a teenager. I did a short walk to Gudgenby Hut, and on the way back discovered this original border blaze tree. Its stacked on pallets at the moment, but is apparently intended for display one day. This is how much of the ACT's boarder was marked originally -- blazes cut on trees.



 



Interactive map for this route.



Tags for this post: blog pictures 20150320-namadgi photo canberra bushwalk namadgi border

Related posts: Goodwin trig; Big Monks; Geocaching; Confessions of a middle aged orienteering marker; A quick walk through Curtin; Narrabundah trig and 16 geocaches



Comment

Our privacy is about to be serially infringed – ABC The Drum

March 19, 2015

LInks: WW1 Maps, Shawshank, Microservices, Dev Interviewing

Two very different numbers

Omnishambles

While watching another disappointing day in Australian political life unfold,  I wondered: How long has it been since Tony Abbott declared, “good government starts today“?

It’s such a great example of Abbott’s hopelessness: He survived as Prime Minister after a failed party room spill motion only to deliver another classic clanger. Good job, Tony.

Then I checked the date and realised it had only been 38 days since the attempted spill. It seems much longer because barely a day goes by without a spectacular cock-up or gaffe by Abbott or one of his ministers.

Laura Tingle wrote yesterday that “we are being governed by idiots and fools“, excoriating the Abbott government for recklessness and incompetence, hinting at a deeper problem in our political system. Jonathan Green picked up where Tingle left off, suggesting Australia’s next great reforms “will be of this stagnant polity itself”. We can only hope.

I don’t want to juggle the date arithmetic next time I ponder how long we’ve been blessed with “good government”. The obvious* solution is a Twitter account to remind everyone*, right?

Thus, an automated, single-serving Twitter account that tweets the number of days since the spill, with a topical news item and photo, neither of which tend to reflect well on the Prime Minister.

Violence Against Women

Late yesterday evening, a wise voice caught me off guard: There’s a lot of men making a lot of noise about data retention today. Where’s that noise when a woman is killed every week by a partner or ex-partner?

If central Sydney can undergo substantial social and commercial upheaval after the deaths of two young men in “king hit” attacks, surely 8 intimate partner homicides (and 22 total suspicious deaths) of women so far this year would elicit some response? History suggests otherwise.

So we must make more noise.

My meagre contribution today is, yes, a single-serving Twitter account. I know it’s silly and practically meaningless, but hopefully people will see it, share it, and support women like Rosie Batty who are doing the really important work.

It will tweet updated figures from two sources:

First, Guardian Australia has a page for women who have died “where police have later laid charges against their partners or ex-partners”. (It’s a mouthful of legalese because they have to be careful about affecting trials.)

Second, Destroy the Joint’s Counting Dead Women Australia team maintains a Facebook post that documents every woman who has died violently, and follows what happens after. It’s based on a UK project of the same name.

38 days since “good government” began. 22 women violently killed in Australia this year. Two very different numbers.

Minimalist VHF Software Defined Radio Part 2

Shortly after I published the first post on a simple VHF SDR, Brady KC9TPA started making suggestions about optimising the code. So I encouraged him to have a look into the transmit side. How can we take a baseband modem signal (like GMSK) and convert it up to a HF IF frequency like 10.7 MHz using the STM32F4 DAC?

After a busy month (and not much sleep) Brady has done it! The following figures explain how it works:

Normally we would use a baseband DAC, mixer, LO, and crystal filter to generate a signal at HF (top). However Brady has shown it is possible to use a much simpler architecture (bottom).

So with the STM32F4, some clever software, and a buffer amplifier, he has generated a 10.7MHz HF signal. The DAC runs at 2MHz, which creates images (aliases) spaced every 1 MHz. The Band Pass Filter (BPF) selects just the image you want, e.g. 10.7 MHz in our case. The BPF doesn’t have to be very demanding like an Xtal filter, as the other images are 1MHz away. It is possible to tune the exact frequency a few hundred kHz in software.

Compared to a baseband IQ design this architecture doesn’t need two DACs, and doesn’t have have any IQ balance issues.

He used a GMSK modem signal as the baseband signal, however it could have easily been SSB, analog FM, or FreeDV. This is basically a baseband to HF SSB exciter. With a suitable BPF it could easily be tuned to anywhere on the lower HF bands. Software could then be used to tune the tx frequency within that band.

Brady received and sampled the 10.7MHz signal using an off the shelf SDR and it demodulated perfectly. Here are few photos showing his experimental set up, just a STM32F4 Discovery board and a buffer amplifier connected to the DAC. Note the sharp edges on the scope plot – this indicates lots of juicy HF content that we can tune to. He hasn’t added a BPF yet. The last plot is the GMSK signal as received by our demodulator running in Octave.

Our next step will be to mix this signal to VHF and add a PA to produce a 1 Watt 2M signal, to support our VHF FreeDV work. Please contact us if you can help us with a VHF PA design!

This design and the previous post that demonstrated the HF rx side suggests that the SM1000 could be modified to be a HF SDR transceiver. It already has a microphone and speaker amplifier, and even runs FreeDV out of the box! We would need to add a BPF, PA, and some gain on the rx side.

There is still a question over the STM32F4 internal ADC, e.g. it’s inter-modulation performance when used in over-sampled mode (thanks Glen English for pointing this out). Some more work required there. However this architecture is not limited to the STM32F4 – any uC connected to a few M-sample/s DAC and ADC (internal or external) will do. That’s the great thing about radios based on gcc C code and nearly no hardware!

Indo-Chinese Chilli Chicken (or Prawn) Recipe

This is based on recipes online and an interpretation by a local fusion restaurant that I used to frequent. While there are other alternative recipes that possibly taste better, I find that this is the quickest and easiest version.

- chicken (purchase diced for quicker preparation time. This recipe also works very well with prawns if you're more keen on seafood.)

- onion

- capsicum

- tomato sauce

- soy sauce

- chilli sauce

- tomatoes (fresh or canned and diced, optional)

- egg (optional)

- cornflour (optional)

- garlic (optional)

- ginger (optional)

- spring onion (optional)

- lemon juice (optional)



Coat chicken with bicarbonate soda if desired (meat tenderiser. This step is not required at all if chicken is diced into small enough pieces and cooked well) and then wash off in cold water. Marinade chicken in corn flour, egg, salt, pepper (optional step). Fry off chicken in pan. Create sauce by using tomato sauce, soy sauce, chill sauce add add to pan (add water to mixture if it reduces too far over time). Add onion and capsicum to pan as well to cook through. Add garlic, ginger, lemon juice, etc... to taste... Goes well with rice or crusty bread.



The following is what it looks like.

https://nishkitchen.wordpress.com/category/indo-chinese/

https://nishkitchen.wordpress.com/tag/chilli-chicken-recipe/



http://www.indianfoodforever.com/indo-chinese/chinese-chilli-chicken.html

http://food.ndtv.com/recipe-boneless-chilli-chicken-98809

http://www.boldsky.com/cookery/non-vegetarian/chicken/indo-chinese-chilli-garlic-chicken-recipe-053009.html?PageSpeed=noscript

March 18, 2015

Goodwin trig

I talk about urban trigs, but this one takes the cake. Concrete paths, street lighting, and a 400 meter walk. I bagged this one on the way home from picking something up in Belconnen. To be honest, I can't see myself coming here again.



   



Interactive map for this route.



Tags for this post: blog pictures 20150318-goodwin photo canberra bushwalk trig_point belconnen

Related posts: Harcourt and Rogers Trigs; Big Monks; Narrabundah trig and 16 geocaches; Cooleman and Arawang Trigs; A walk around Mount Stranger; Forster trig



Comment

LUV Beginners March Meeting: An Introduction to High Performance Computing Using Linux

Mar 21 2015 12:30
Mar 21 2015 16:30
Mar 21 2015 12:30
Mar 21 2015 16:30
Location: 

RMIT Building 91, 110 Victoria Street, Carlton South

Of the top five hundred computers in the world today, 97% of them run Linux. This is no accident, as Linux offers the best platform for efficient and scalable code. In this introductory session, LUV members will be introduced to the core concepts and architecture behind supercomputing, high-performance computing, and parallel processing, along with an introductory session on an actual HPC system.

LUV would like to acknowledge Red Hat for their help in obtaining the Buzzard Lecture Theatre venue and VPAC for hosting.

Linux Users of Victoria Inc., is an incorporated association, registration number A0040056C.

March 21, 2015 - 12:30

read more

March 17, 2015

SM1000 Part 12 – Testing in the US

Walter, K5WH has one of the 3 pre-beta SM1000 units. He writes:

Here’s a pic of the operations setup of the SM1000 on the air today from Houston Texas, into my HPSDR radio. With average Power down to 3 watts even. Made successful contacts to Mel-K0PFX and Gerry-N4DV. After working the audio levels a little, had reports of nice transmitted audio, and the received audio was very clean sounding as well. We were even fortunate enough to have a station breaking in with us from Benin West Africa, TY2BP Pat.

So not only working a couple stateside stations, but first DX as well. Great success with the SM1000! Walter has used the SM1000 with his HSPDR and TS-480 radios at power levels between 4 and 75W.

Pictures of depression

A warning light is pulsing on the control panel in front of you, but it can wait. You’ll get to it in a moment. So many things to do.

A polite, persistent bleeping began at some point. You weren’t paying enough attention to recall when. It’s ever so slightly out of phase with the warning light.

You feel a dull rumbling through the seat, the floor, between your joints. The room shifts on its axis, as if it’s falling away from under you.

Darkness. A klaxon splutters and honks. Rotating beacons cut the room into contorted still images. Orange, blue, orange, blue.

You watch a wall puncture, crack, and tear. The air around you whistles out into silence.

Metal grinds through metal. It would sound like two trains carving through each other, but for the vacuum.

Then the walls peel away.

Floating. Alone. Adrift. Bewildered.

In depression, no one can hear you scream.

Gravity

Late last year, I had another crash. (Episode is a silly word.) I should’ve seen it coming. Or, I did see it coming, but pretty much anything else short of anchovies is more pleasant than actually dealing with it.

I have no right or reason to be depressed. There are contributing factors, for sure, but no root cause. In every other respect, life is grand. But that’s not how depression works. It’s a parasite, sucking out every feeling until you’re a dead-eyed husk… except guilt. That one it nurtures.

What’s weird is having a graphical representation of the fall. Check it out: Metadata! The quantified self!

Physical memory utilisation on SLIVER

This is a collectd chart of the RAM utilisation in my desktop computer. SLIVER has two big monitors, a nice video card, proper headphones, and so on. It’s where the work gets done, and it’s a dead zone from late November to mid February. My GitHub activity chart looks much the same.

Things improved in February, but I’m still taking a break from work. I need to get my shit together, and don’t want to disappoint anyone if I hit another wall. See that gap in March? Another wall!

But I’m out of the dead zone.

On good days, I’ve been seeing friends, doing personal projects, science experiments, and learning new things. On bad days, sleeping, watching television, reloading web pages. I’m still trading the occasional people-heavy event for a couple of bad days to “recover”. Pfft. That’ll get better.

It sucks being away from work. Lots of big changes and exciting things going on. But I’m grateful for the support, understanding, and time away. Back soon.

– — –

The big difference this time around is hope. Psychologically, I know I can beat depression a hundred times worse, because I did. Financially, I can survive a siege of non-functional depression because I’ve had three years to build a war chest to outlast it. Personally and professionally, I’m more confident because I know where I fit, and what I need to learn.

So, it’s been a shitty few months. But it’s going to be okay.

2001: A Space Baby

Google Breakpad and the post crash experience

Google Breakpad has many components to it, but at the basic level it lets you capture information at the time a crash occurs and upload that to the net. A really cute part of Breakpad is that the binary doesn't need to have the debug symbols in it, you don't even need to have them on the client machine at any location. When you build version $githash then you use a breakpad tool to copy out the debug symbols into separate files. When the user discovers a crash they upload a minidump file to a server of your selecting. Then you can combine the extracted symbols from build time and the minidump file to generate a backtrace with line number information. So software users don't have to know about gdb or lldb or whatnot and how to make a backtrace and where to paste it.







I recently updated FontForge's use of breakpad to use a small server on localhost to report the bug. The application dmg file for fontforge will soon also include the extracted symbols for the build. By telling breakpad to use a local server, that server can lookup the symbols that are shipped and generate a human readable backtrace with line number information. Because its also a web interface and running locally, it can spawn a browser on itself. So instead of getting the Mac dialog supplied by the osx crash reporter app telling you that there was a crash, you get a web page telling you the same thing. But the web page can use jQuery/Bootstrap (or $ui tool of choice) and ask what the user was doing and offer many ways to proceed from there depending on how the user wants to report things. The https://gist.github.com/ site can be used to report without any login or user accounts. It's also rather handy as a place to checking larger backtraces that might be, maybe, 50-100kb.



But once you can upload to gist, you can get a http and other URL links to the new gist. So it makes sense from there to offer to make a new github issue for the user too. And in that new issue include the link to the gist page so that developers can get at the full backtrace. It turns out that you can do this last part, which requires user login to github, by redirecting to github/.../issues/new and passing title and body GET parameters. While there is a github API, to report a new issue using it you would need to do OAuth first. But in the libre world it's not so simple to have a location to store the OAuth secure token for next time around. So the GET redirect trick nicely gets around that situation.





For those interested in this, the gist upload and callback to subsequently make a github issue are both available. The Google Breakpad hands over the minidump to a POST method which then massages the minidump into the backtrace and spawns a browser on itself. The GET serves up all the html, css, js, and other assets to the browser and that served html/js is what I link to at the start of the paragraph which is where the actual upload/reporting of the backtrace takes place.



The only thing left to do is to respond to the backtraces that come in and everybody gets a more stable FontForge out of the deal. It might be interesting to send off reports to a Socorro server too so that statistics month on month can be easily available.



FWIW

Today I emailed Julie Collins MP, and senators Catryna Bilyk, Carol Brown, Jacqui Lambie, Helen Polley, Lisa Singh and Anne Urquhart concerning data retention. For the record, and in case it helps anyone else who wants to contact their representatives and senators, here’s what I wrote:

Dear NAME/TITLE,

I am writing regarding the Telecommunications (Interception and Access)

Amendment (Data Retention) Bill 2014. As I am sure you are very busy,

I will be as brief as I can.

The distinction the bill makes between metadata (so-called “non-content

data”) and content is grossly misleading; once you have enough of it,

metadata is just as privacy invasive, if not more so, than the actual

content of communications, and as such should only be collected with

proper judicial oversight, i.e. after a warrant is obtained.

Retaining this data for the entire Australian population is mass

surveillance, nothing more, nothing less, and is completely

inappropriate in a modern democratic society.

Tinkering around the edges as Labor is suggesting with amendments to

protect journalists’ sources is misguided at best; the only way to

protect such sources effectively would be to not retain the sources’

data either, and given that you can’t know who they are, the only way

to achieve this would be to not retain anyone’s data at all.

Finally, mandatory data retention won’t help to catch any criminal with

even a shred of intelligence, as it can be trivially circumvented by

the use of overseas communications providers, virtual private networks

and the like.

In summary, I am completely opposed to mandatory data retention in

Australia. As my representative, I’m asking you to reject this bill.

Yours faithfully,

Tim Serong

March 15, 2015

Twitter posts: 2015-03-09 to 2015-03-15

Memorable Quotes

- They like their cats fried with garlic and washed down with beer in Vietnam's specialist restaurants.



Some diners even falsely believe that by eating a cat's spine they will gain the feline's agility.



Although no official statistics are available, eating cat meat in Vietnam is by all accounts almost as popular as eating dog meat, something of a tradition in the South-east Asian nation, despite the import of both meats being illegal.

...

Animal rights groups say cats and dogs are smuggled across the border from China, Thailand and Laos to feed the Vietnamese trade.



Residents of Hanoi say they see few cats and dogs roaming the streets.

http://www.smh.com.au/world/cat-on-the-menu-outrage-at-vietnamese-trade-in-felines-20150205-136ras.html

- Dog vs. Cat

In this gastronomic sampling of Chinese food, I'd have to go with dog. The meat was much more tender with a pleasant flavor. Cat on the other hand was average and not something to really look forward to eating.

http://thoughtcatalog.com/mark-wiens/2013/07/what-does-dog-and-cat-meat-taste-like/

- "My life is rather full. I have a full time job and numerous hobbies in addition to copy editing Wikipedia."...

http://www.mirror.co.uk/news/technology-science/technology/man-makes-47000-wikipedia-edits-5106883

- Statistics: you can sensationalise anything with the right statistics. Case in point being the ad for the TV program about what really happens in Bali: "one Australian dies every 9 days in Bali". With the number of Australians visiting Bali that is probably unsurprising. So if they stayed in Australia they were more of a chance to die as one Australian dies every 3 1/2 minutes in Australia.

https://plus.google.com/109656415348418300485/posts

- A 'notorious molester' at Knox Grammar School had memorial gates erected in his honour with the inscription 'He touched us all', an inquiry has been told.

http://www.skynews.com.au/news/national/2015/02/24/school-put-up-memorial-for--molester-.html

- If you use a search engine, you will discover a wealth of material and, after reading and attmepting to apply some of it to your situation, you will enjoy a sense of satisfaction and achievement that I would in no way wish to deprive you of...

http://unix.stackexchange.com/questions/187140/centos-software-raid-1-issue

- @fruit: To quote the great Homer Simpson, "Aw, you can come up with statistics to prove anything, Kent. Forty percent of all people know that.

https://www.ozbargain.com.au/node/184124

- "It's like watching a truck jack-knife on a road," Oliver says, clearly relishing the suspense. "It's like, 'It didn't crash this time. Let's give it five minutes, then it's going into a ditch'."



Oliver, host of Last Week Tonight, the satirical take on the world's news and current affairs that is fast becoming one of the world's most popular programs of its type, describes Abbott as "a car crash of a human being", albeit terrific fodder for comedy.

...

"Tony Abbott is an objectively fascinating man," Oliver insists. "The fact he's the leader of a country is in itself appealing as a comic. What's nice is being able to present someone who people have not seen here [in the US] and just to give them a glimpse into other people's pain, as well as their own."

http://www.smh.com.au/entertainment/tv-and-radio/tony-abbott-is-a-car-crash-of-a-human-being-says-comedian-john-oliver-20150302-13sog5.html

- "This paint job sends a direct message back to perpetrators that their wild urinating on this wall is not welcome," said Julia Staron of the St. Pauli's Community of Interest group to Reuters. "The paint protects the buildings and the residents and most importantly it sends a signal this behaviour is not on."

http://www.cbc.ca/news/trending/german-city-uses-water-repellent-paint-to-splash-public-urinators-with-their-own-pee-1.2985123

- Work on the embassy was stopped in 1985, after it was determined that the building was so riddled with listening devices implanted by Soviet workers that the structure was in effect a multistory microphone. Washington and Moscow, as well as the Administration and Congress, have been haggling over what to do with the building ever since.

http://www.nytimes.com/1992/06/20/world/deal-made-on-bugged-us-moscow-embassy.html

- The Prime Minister has once again left onlookers shocked, and probably a little confused, but for once it wasn't what was coming out of his mouth, rather what was going into it.



While on a tour of a produce farm in Tasmania, Tony Abbott was seen to be munching on a raw onion - skin and all.

Onion, anyone?



"Better than any other onions I've eaten in a long time," Mr Abbott was reported as saying.



Images of the odd onion-fest immediately began doing the rounds online, with one media outlet labelling Mr Abbott "The Minister for Onions."



Mr Abbott was touring Charlton Farm Produce near Devonport in Tasmania on Friday when all of a sudden, he picked up the onion and ate it skin-on merely commenting that it was delicious and not shedding a single tear.



The PM, who appeared to be grimacing slightly, but otherwise may as well have been eating an apple, took the onion in his hand, and casually chomped into it while watching the grading of the vegetable.

http://www.smh.com.au/federal-politics/political-news/tony-abbott-shocks-as-he-eats-a-raw-onion-whole-20150313-143syz.html

Evolution

I saw this on Twitter today:

I’m going to leave aside the possibility that this is a plot by someone else to ruin Justin D’Agostino’s life by forging an email to Kelly Ellis, as I’ve seen similar sentiments posted too many times (i.e. more than never), and I’m fucking sick of it.

Assuming for a moment that the egg-donor hypothesis is correct, if you are insufficiently evolved to control your urges (or if you share any of the opinions stated in the email above), then you are insufficiently evolved to warrant employment. Please leave and make room for someone else.

Books for Sale – Part 2

I’m doing a book clean-out. The following are all for sale. Remainders will be given away to charity or something. Pickup is from either my house (Dominion Rd/Balmoral, Auckland) or my I can meet during the week near my work in Wyndham Street in the Auckland CBD.

Prices as mark, discount if you want to by more than 5 or so. Links may not match the exact edition I am selling.

If you are interested in any please contact me via email ( simon@darkmere.gen.nz ) or over twitter ( @slyall ). Sale will run to end of April or so.

See Part 1 for more books

Business

Commentary / Opinion / Speculation / Politics

Technical

Travel / Misc

 

Books for sale – Part 1

I’m doing a book clean-out. The following are all for sale. Remainders will be given away to charity or something. Pickup is from either my house (Dominion Rd/Balmoral, Auckland) or my I can meet during the week near my work in Wyndham Street in the Auckland CBD.

Prices as mark, discount if you want to by more than 5 or so. Links may not match the exact edition I am selling.

If you are interested in any please contact me via email ( simon@darkmere.gen.nz ) or over twitter ( @slyall ) Sale will run to end of April or so.

See Part 2 for more books

Science Fiction / Fantasy

Deryni Books by Katherine Kurtz, all paperbacks of used quality unless otherwise named.

  • Deryni Rising – $4
  • Deryni Checkmate – $4
  • High Deryni – $4
  • Camber of Culdi (2 copies) -$4 each
  • The Bishops Heir (Hardback, ripped jacket) – $4
  • The Quest for Saint Camber – $4
  • The Deryni Archives – $4

Science Fiction Short Story Collections

Sci-Fi Novels

Other Fiction

History

March 14, 2015

hacksa2015 – we won!

The previous week we were informed that we were the winners of the first hacksa competition!

This was really awesome, we had put in a bit of work that week and it validates my ideas about how to approach a hackathon I blogged about previously . You can see our proof of concept web application at http://phaze.space

I think what helped us over the line was that we had a working web application that actually ‘did something’, or a ‘minimum viable product’ in the parlance: we demonstrated the primary user experience ( generate musical playlists when you don’t know what to choose ) along with various potential features illustrated by button placeholders.

There was a cash prize, and some music, and headphones, and a membership in a co-working space which we donated to the runner-up because we all have day jobs and wouldn’t be able to use it.  For me though the best prize was tickets to the NetWorkPlay conference held in Adelaide last week.  This was a completely different scene, this was a media industry conference (mostly documentary film-makers, and a mix of other film industry and media) and I met some different and quite interesting people.

One takeaway from NetWorkPlay as a software guy was research showing that most younger people directly use youtube as a search engine instead of google when searching for media. This was interesting, my first instinct (habit?)  is using google or other ‘traditional’ search engines even when searching for videos that ends up with me on YouTube anyway. A learned quite a few other interesting things, and more importantly had to move out of my comfort zone and had a good time interacting with people I would never have likely crossed paths with.

So thanks to my team members (you know who you are) for an awesome effort, and I’m looking forward to govhack 2015!

I’d also like to thank the competition organisers, including madeinkatana.com , SA Music Development Office, Musitec and Flinders New Ventures Institute, and the sponsors for the generous prizes.

brendanscott

Today is π day, at least in the US, where they think it’s a good idea to order dates by neither most nor least significant digits (3/14/15). The 14th of March is hailed in geekiness as π day because, in US date representations it’s 3.14 – the first 3 digits of the constant π.  However, today isn’t just any old π day. Today is a super π day because the two digits of the year 3.14.15 make up the 3rd and 4th decimal places of the constant.

Make the most of your super π day, because it won’t be happening again!

Unless, that is, you decide, perhaps temporarily, to join some Orthodox Churches and observe the Julian calendar, in which case you can have your π and eat it again in 13 days’ time.



March 13, 2015

Response to "Adopting Microservices at Netflix: Lessons for Team and Process Design"

NGINX has released an article entitled Adopting Microservices at Netflix: Lessons for Team and Process Design. For a high level article it reads well, but closer consideration suggests that it fraught with problems, not the least some rather simplistic panacea attitudes.

read more

LUV Beginners April Meeting: What's in the Cloud?

Apr 18 2015 12:30
Apr 18 2015 16:30
Apr 18 2015 12:30
Apr 18 2015 16:30
Location: 

RMIT Building 91, 110 Victoria Street, Carlton South

Daniel Jitnah will have a look at virtualisation technology in Linux, including a brief demo of setting up and managing virtual machines. Then he will talk about what "the cloud" really is and its relation to virtualisation and will demonstrate a very simple cloud system: OpenNebula... just as an example. He'll also have a look at what are the common offerings for Linux based cloud software systems.

LUV would like to acknowledge Red Hat for their help in obtaining the Buzzard Lecture Theatre venue and VPAC for hosting.

Linux Users of Victoria Inc., is an incorporated association, registration number A0040056C.

April 18, 2015 - 12:30

read more

March 12, 2015

clintonroy

Walked into work fairly early.

Dead tired by the end of the day.

Signed onto sleepio to give them a burl. Looks like they’d like me to get a fitbit..



Filed under: diary

March 11, 2015

clintonroy

Awful day.

Sleep was disrupted by neighbours moving their cars around at two thirty am to make way for builders coming. Why two thirty? fucked if I know.

Finally dragged myself out of bed tired and headachy, headed into work.

Did manage to get some stuff done at work before the jack hammering started, and I left immediately in the early afternoon.

Struggling to stay awake till a sensible hour while catching up on a few of these here diary entries.



Filed under: diary

clintonroy

Walked home.

Conference stuff.



Filed under: diary

clintonroy

Walked into work stupidly early.

Home early, straight to bed.



Filed under: diary

clintonroy

Library day.



Filed under: diary

clintonroy

Coder dojo, much to my surprise I was introducing my simplified markov chain generator. It didn’t get much traction, but I felt that was because most of the kids had something they were interested in doing.

Next week I’m apparently talking all about 3D printing…



Filed under: diary

clintonroy

Deliberately didn’t walk to work as I’m giving blood today.

Stuffing myself silly with food and water, and only one coffee. So much water.

Was vindicated when I gave blood in record time with no dramas, and I didn’t get even a minor bruise at the extraction point.

Stuffed myself silly straight after.



Filed under: diary

clintonroy

Walked to walk stupidly early.

Conference work that night.



Filed under: diary

clintonroy

The monthly Python Users group meeting. There was a great talk about calculating statistics, like variances, in a single pass.



Filed under: diary

clintonroy

Walked home.

Conference stuff.



Filed under: diary

clintonroy

Was on the motorbike for the first time in a while today. Riding into work very early is great, riding home at peak hour is silly however.



Filed under: diary

March 10, 2015

WebVTT Audio Descriptions for Elephants Dream

When I set out to improve accessibility on the Web and we started developing WebSRT – later to be renamed to WebVTT – I needed an example video to demonstrate captions / subtitles, audio descriptions, transcripts, navigation markers and sign language.

I needed a freely available video with spoken text that either already had such data available or that I could create it for. Naturally I chose “Elephants Dream” by the Orange Open Movie Project , because it was created under the Creative Commons Attribution 2.5 license.

As it turned out, the Blender Foundation had already created a collection of SRT files that would represent the English original as well as the translated languages. I was able to reuse them by merely adding a WEBVTT header.

Then there was a need for a textual audio description. I read up on the plot online and finally wrote up a time-alignd audio description. I’m hereby making that file available under the Create Commons Attribution 4.0 license. I’ve added a few lines to the medadata headers so it doesn’t confuse players. Feel free to reuse at will – I know there are others out there that have a similar need to demonstrate accessibility features.

March 09, 2015

FreeDV and Codec 2 2015 Road Map

Last week I had a great chat with Gary Pearce KN4AG from Ham Radio Now:

Which brings me to my plans for 2015……..

2015 Open Digital Voice Road Map

I’m pretty excited about where Open Source Digital Radio is going in 2015. My goals for this year are:

  • A “sub zero” negative SNR FreeDV HF mode.
  • VHF FreeDV mode(s) that demonstrates a TDMA repeater in a 5kHz channel, diversity reception, high bit rate audio/data, and operation at 10dB less C/No than analog FM or 1st generation DV systems.
  • SM1000 speaker-mic and SM2000 VHF radio in production.

This figure shows the work packages we need to execute to make this happen:

The amount of blue shading indicates progress to date. It’s doable, but we could use some help – see below. The custom VHF radio product is the audacious stretch goal, but we need custom hardware to demonstrate the potential of open source VHF DV. In particular decent modems, TDMA, diversity, and variable bit rate (VBR). Sub-carrier VBR is explained in the next section. I’m no Icom, but do have the huge open source advantage of “owning the stack” and a very impressive brains trust that is forming up behind this work.

Sub Carrier Variable Bit Rate

HF and VHF channels vary wildly in quality due to multipath fading. If the channel is really poor it’s essential to push through with low quality, but intelligible speech. However if the channel is good, you may have 20dB more signal to noise ratio available. Current digital (and to a lessor extent analog) voice radio systems just toss that 20dB away. Systems are designed for the worst case, with power heaped on to survive the fading.

I’ve been brainstorming a sub-carrier idea. We send the must-have information using a full power, low bit rate to survive the worst case. On HF this might be 450 bit/s. At the same time, we transmit a higher bit rate sub-carrier at say 10dB less power. When the channel is good, we use the high bit rate carrier. When it’s poor, we fall back to just the low bit rate carrier.

This is better than a protocol based system that negotiates the bit rate, as it requires no back channel and can handle rapid changes in channel quality. It does however require a demodulator that can determine when the sub-carrier is viable. This needs some smarts to avoid rapid high/low quality switching, or for Ham radio could be manually switch-able so the operator has full control.

Sending a second, low power carrier has negligible impact on our total transmit power, e.g. 11 W total rather than 10W (0.4dB). It does use more bandwidth, and will require some implementation tricks (e.g. two class C amplifiers at VHF, but no changes at HF with a linear amplifier). The addition of a low power sub-carrier will have a small impact on peak/average power ratio (PAPR) compared to multiple carriers at the same power. Another bonus.

It’s an idea we can implement as we have complete control over the stack. From microphone to antenna and back again. Go Open Source.

I’d like to try this trick for both HF and VHF.

Daniel has illustrated it well for GMSK carriers:

Old school, analog colour TV worked like this. You get the black and white image information and sync signals on one carrier, then a sub-carrier carries the colour information. In weak signal situations you get black and white. Hmm, I wonder if this analog analogy is too dated. Showing my age.

Codec 2 and AMBE 2+

I recently compared a few AMBE 2+ samples with Codec 2, both at 2400 bit/s. I think they are close enough, except for the $100k up-front license fee, several $ per-unit license fee, policy of eternal lock-in through standardisation, patent encumbrances, and being forbidden by law to modify and learn anything about the algorithm. Not sure why Codec 2 is louder. I listen to them through my laptop speaker as that’s close to a radio.

Codec Female Male
Original female male
AMBE 2+ female male
Codec 2 female male

I cheated a bit, and ran both of them through a a 200Hz high pass filter. AMBE does a better job between 0 and 200 Hz. However most radio systems use an audio bandwidth of 400 to 2600 Hz. Indeed analog FM in VHF applications is sharply filtered at 400Hz so various control tones are not heard.

This isn’t the best we can do with Codec 2, it can be improved further.

Get Involved

There is a fine group of people who are already working with me. They are having fun and working on a really useful and meaningful project. Here are some examples:

  • Rick, KA8BMA and I have had a great year building the SM1000 together.
  • Mel Whitten K0PFX and his band of merry Hams have done a fantastic job promoting HF DV and testing FreeDV.
  • Daniel, VA7DRM has been zooming around British Columbia testing VHF diversity and prototypes of a 2nd generation VHF DV system.
  • Richard Shaw has been doing fine work on cross platform build systems and packaging of FreeDV and Codec 2.
  • Many people have provided invaluable, high level technical advice on RF, Modems, HF and VHF channels and DSP. You know who you are.
  • Many other contributors, large and small, through donations, testing, donations of test equipment, promotion, porting, contract development or small patches, some of which have expressly asked to remain anonymous (e.g. for commercial reasons).

Don’t Just Talk. Act

What did you do during the Open Source Digital Radio revolution?

Contributions count much more than suggestions. Suggestions add to my TODO list, contributions make it shorter. I’m just one guy working part time for nearly zero income and have my limits. If you can help make my TODO list shorter rather than longer please contact me!

If you have a great, must-have suggestion, then I will politely ask you to step up and submit a patch for it. Now you have my attention!

Can you code in C, use Octave/Matlab, write a radio or protocol specification, provide me with RF test equipment, or use a soldering iron to design and make VHF radios? Please contact me.

If you don’t have time or skills then you can still support this work by buying a SM1000 or simply donating. I also need my sig-gen and spec-an either replaced or fixed! Let me know if you need my shipping address :-)

Donation in US$:

Stromlo and Brown Trigs

So, the Facebook group set off for our biggest Trig walk yet today -- Stromlo and Brown Trigs. This ended up being a 15km walk with a little bit of accidental trespass (sorry!) and about 600 meters of vertical rise. I was expecting Stromlo to be prettier to be honest, but it wasn't very foresty. Brown was in nicer territory, but its still not the nicest bit of Canberra I've been to. I really enjoyed this walk though, thanks to Simon, Tony and Jasmine for coming along!



                     



Interactive map for this route.



Tags for this post: blog pictures 20150309-stromlo_and_brown photo canberra bushwalk trig_point

Related posts: Goodwin trig; Big Monks; Narrabundah trig and 16 geocaches; Cooleman and Arawang Trigs; A walk around Mount Stranger; Forster trig



Comment

March 08, 2015

Technocracy: a short look at the impact of technology on modern political and power structures

Below is an essay I wrote for some study that I thought might be fun to share. If you like this, please see the other blog posts tagged as Gov 2.0. Please note, this is a personal essay and not representative of anyone else :)

In recent centuries we have seen a dramatic change in the world brought about by the rise of and proliferation of modern democracies. This shift in governance structures gives the common individual a specific role in the power structure, and differs sharply from more traditional top down power structures. This change has instilled in many of the world’s population some common assumptions about the roles, responsibilities and rights of citizens and their governing bodies. Though there will always exist a natural tension between those in power and those governed, modern governments are generally expected to be a benevolent and accountable mechanism that balances this tension for the good of the society as a whole.

In recent decades the Internet has rapidly further evolved the expectations and individual capacity of people around the globe through, for the first time in history, the mass distribution of the traditional bastions of power. With a third of the world online and countries starting to enshrine access to the Internet as a human right, individuals have more power than ever before to influence and shape their lives and the lives of people around them. It is easier that ever for people to congregate, albeit virtually, according to common interests and goals, regardless of their location, beliefs, language, culture or other age old barriers to collaboration. This is having a direct and dramatic impact on governments and traditional power structures everywhere, and is both extending and challenging the principles and foundations of democracy.

This short paper outlines how the Internet has empowered individuals in an unprecedented and prolific way, and how this has changed and continues to change the balance of power in societies around the world, including how governments and democracies work.

Democracy and equality

The concept of an individual having any implicit rights or equality isn’t new, let alone the idea that an individual in a society should have some say over the ruling of the society. Indeed the idea of democracy itself has been around since the ancient Greeks in 500 BCE. The basis for modern democracies lies with the Parliament of England in the 11th century at a time when the laws of the Crown largely relied upon the support of the clergy and nobility, and the Great Council was formed for consultation and to gain consent from power brokers. In subsequent centuries, great concerns about leadership and taxes effectively led to a strongly increased role in administrative power and oversight by the parliament rather than the Crown.

The practical basis for modern government structures with elected official had emerged by the 17th century. This idea was already established in England, but also took root in the United States. This was closely followed by multiple suffrage movements from the 19th and 20th centuries which expanded the right to participate in modern democracies from (typically) adult white property owners to almost all adults in those societies.

It is quite astounding to consider the dramatic change from very hierarchical, largely unaccountable and highly centralised power systems to democratic ones in which those in powers are expected to be held to account. This shift from top down power, to distributed, representative and accountable power is an important step to understand modern expectations.

Democracy itself is sustainable only when the key principle of equality is deeply ingrained in the population at large. This principle has been largely infused into Western culture and democracies, independent of religion, including in largely secular and multicultural democracies such as Australia. This is important because an assumption of equality underpins stability in a system that puts into the hands of its citizens the ability to make a decision. If one component of the society feels another doesn’t have an equal right to a vote, then outcomes other than their own are not accepted as legitimate. This has been an ongoing challenge in some parts of the world more than others.

In many ways there is a huge gap between the fearful sentiments of Thomas Hobbes, who preferred a complete and powerful authority to keep the supposed ‘brutish nature’ of mankind at bay, and the aspirations of John Locke who felt that even governments should be held to account and the role of the government was to secure the natural rights of the individual to life, liberty and property. Yet both of these men and indeed, many political theorists over many years, have started from a premise that all men are equal – either equally capable of taking from and harming others, or equal with regards to their individual rights.

Arguably, the Western notion of individual rights is rooted in religion. The Christian idea that all men are created equal under a deity presents an interesting contrast to traditional power structures that assume one person, family or group have more rights than the rest, although ironically various churches have not treated all people equally either. Christianity has deeply influenced many political thinkers and the forming of modern democracies, many of which which look very similar to the mixed regime system described by Saint Thomas Aquinas in his Summa Thelogiae essays:

Some, indeed, say that the best constitution is a combination of all existing forms, and they praise the Lacedemonian because it is made up of oligarchy, monarchy, and democracy, the king forming the monarchy, and the council of elders the oligarchy, while the democratic element is represented by the Ephors: for the Ephors are selected from the people.

The assumption of equality has been enshrined in key influential documents including the United States Declaration of Independence, 1776:

We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.

More recently in the 20th Century, the Universal Declaration of Human Rights goes even further to define and enshrine equality and rights, marking them as important for the entire society:

Whereas recognition of the inherent dignity and of the equal and inalienable rights of all members of the human family is the foundation of freedom, justice and peace in the world…1st sentence of the Preamble to the Universal Declaration of Human Rights

All human beings are born free and equal in dignity and rights.Article 1 of the United Nations Universal Declaration of Human Rights (UDHR)

The evolution of the concepts of equality and “rights” is important to understand as they provide the basis for how the Internet is having such a disruptive impact on traditional power structures, whilst also being a natural extension of an evolution in human thinking that has been hundreds of years in the making.

Great expectations

Although only a third of the world is online, in many countries this means the vast bulk of the population. In Australia over 88% of households are online as of 2012. Constant online access starts to drive a series of new expectations and behaviours in a community, especially one where equality has already been so deeply ingrained as a basic principle.

Over time a series of Internet-based instincts and perspectives have become mainstream, arguably driven by the very nature of the technology and the tools that we use online. For example, the Internet was developed to “route around damage” which means the technology can withstand technical interruption by another hardware or software means. Where damage is interpreted in a social sense, such as perhaps censorship or locking away access to knowledge, individuals instinctively seek and develop a work around and you see something quite profound. A society has emerged that doesn’t blindly accept limitations put upon them. This is quite a challenge for traditional power structures.

The Internet has become both an extension and an enabler of equality and power by massively distributing both to ordinary people around the world. How has power and equality been distributed? When you consider what constitutes power, four elements come to mind: publishing, communications, monitoring and enforcement.

Publishing – in times gone past the ideas that spread beyond a small geographical area either traveled word of mouth via trade routes, or made it into a book. Only the wealthy could afford to print and distribute the written word, so publishing and dissemination of information was a power limited to a small number of people. Today the spreading of ideas is extremely easy, cheap and can be done anonymously. Anyone can start a blog, use social media, and the proliferation of information creation and dissemination is unprecedented. How does this change society? Firstly there is an assumption that an individual can tell their story to a global audience, which means an official story is easily challenged not only by the intended audience, but by the people about whom the story is written. Individuals online expect both to have their say, and to find multiple perspectives that they can weigh up, and determine for themselves what is most credible. This presents significant challenges to traditional powers such as governments in establishing an authoritative voice unless they can establish trust with the citizens they serve.

Communications– individuals have always had some method to communicate with individuals in other communities and countries, but up until recent decades these methods have been quite expensive, slow and oftentimes controlled. This has meant that historically, people have tended to form social and professional relationships with those close by, largely out of convenience. The Internet has made it easy to communicate, collaborate with, and coordinate with individuals and groups all around the world, in real time. This has made massive and global civil responses and movements possible, which has challenged traditional and geographically defined powers substantially. It has also presented a significant challenge for governments to predict and control information flow and relationships within the society. It also created a challenge for how to support the best interests of citizens, given the tension between what is good for a geographically defined nation state doesn’t always align with what is good for an online and trans-nationally focused citizen.

Monitoring – traditional power structures have always had ways to monitor the masses. Monitoring helps maintain rule of law through assisting in the enforcement of laws, and is often upheld through self-reporting as those affected by broken laws will report issues to hold detractors to account. In just the last 50 years, modern technologies like CCTV have made monitoring of the people a trivial task, where video cameras can record what is happening 24 hours a day. Foucault spoke of the panopticon gaol design as a metaphor for a modern surveillance state, where everyone is constantly watched on camera. The panopticon was a gaol design wherein detainees could not tell if they were being observed by gaolers or not, enabling in principle, less gaolers to control a large number of prisoners. In the same way prisoners would theoretically behave better under observation, Foucault was concerned that omnipresent surveillance would lead to all individuals being more conservative and limited in themselves if they knew they could be watched at any time. The Internet has turned this model on its head. Although governments can more easily monitor citizens than ever before, individuals can also monitor each other and indeed, monitor governments for misbehaviour. This has led to individuals, governments, companies and other entities all being held to account publicly, sometimes violently or unfairly so.

Enforcement – enforcement of laws are a key role of a power structure, to ensure the rules of a society are maintained for the benefit of stability and prosperity. Enforcement can take many forms including physical (gaol, punishment) or psychological (pressure, public humiliation). Power structures have many ways of enforcing the rules of a society on individuals, but the Internet gives individuals substantial enforcement tools of their own. Power used to be who had the biggest sword, or gun, or police force. Now that major powers and indeed, economies, rely so heavily upon the Internet, there is a power in the ability to disrupt communications. In taking down a government or corporate website or online service, an individual or small group of individuals can have an impact far greater than in the past on power structures in their society, and can do so anonymously. This becomes quite profound as citizen groups can emerge with their own philosophical premise and the tools to monitor and enforce their perspective.

Property – property has always been a strong basis of law and order and still plays an important part in democracy, though perspectives towards property are arguably starting to shift. Copyright was invented to protect the “intellectual property” of a person against copying at a time when copying was quite a physical business, and when the mode of distributing information was very expensive. Now, digital information is so easy to copy that it has created a change in expectations and a struggle for traditional models of intellectual property. New models of copyright have emerged that explicitly support copying (copyleft) and some have been successful, such as with the Open Source software industry or with remix music culture. 3D printing will change the game again as we will see in the near future the massive distribution of the ability to copy physical goods, not just virtual ones. This is already creating havoc with those who seek to protect traditional approaches to property but it also presents an extraordinary opportunity for mankind to have greater distribution of physical wealth, not just virtual wealth. Particularly if you consider the current use of 3D printing to create transplant organs, or the potential of 3D printing combined with some form of nano technology that could reassemble matter into food or other essential living items. That is starting to step into science fiction, but we should consider the broader potential of these new technologies before we decide to arbitrarily limit them based on traditional views of copyright, as we are already starting to see.

By massively distributing publishing, communications, monitoring and enforcement, and with the coming potential massive distribution of property, technology and the Internet has created an ad hoc, self-determined and grassroots power base that challenges traditional power structures and governments.

With great power…

Individuals online find themselves more empowered and self-determined than ever before, regardless of the socio-political nature of their circumstances. They can share and seek information directly from other individuals, bypassing traditional gatekeepers of knowledge. They can coordinate with like-minded citizens both nationally and internationally and establish communities of interest that transcend geo-politics. They can monitor elected officials, bureaucrats, companies and other individuals, and even hold them all to account.

To leverage these opportunities fully requires a reasonable amount of technical literacy. As such, many technologists are on the front line, playing a special role in supporting, challenging and sometimes overthrowing modern power structures. As technical literacy is permeating mainstream culture more individuals are able to leverage these disrupters, but technologist activists are often the most effective at disrupting power through the use of technology and the Internet.

Of course, whilst the Internet is a threat to traditional centralised power structures, it also presents an unprecedented opportunity to leverage the skills, knowledge and efforts of an entire society in the running of government, for the benefit of all. Citizen engagement in democracy and government beyond the ballot box presents the ability to co-develop, or co-design the future of the society, including the services and rules that support stability and prosperity. Arguably, citizen buy-in and support is now an important part of the stability of a society and success of a policy.

Disrupting the status quo

The combination of improved capacity for self-determination by individuals along with the increasingly pervasive assumptions of equality and rights have led to many examples of traditional power structures being held to account, challenged, and in some cases, overthrown.

Governments are able to be held more strongly to account than ever before. The Open Australia Foundation is a small group of technologists in Australia who create tools to improve transparency and citizen engagement in the Australian democracy. They created Open Australia, a site that made the public parliamentary record more accessible to individuals through making it searchable, subscribable and easy to browse and comment on. They also have projects such as Planning Alerts which notifies citizens of planned development in their area, Election Leaflets where citizens upload political pamphlets for public record and accountability, and Right to Know, a site to assist the general public in pursuing information and public records from the government under Freedom of Information. These are all projects that monitor, engage and inform citizens about government.

Wikileaks is a website and organisation that provides an anonymous way for individuals to anonymously leak sensitive information, often classified government information. Key examples include video and documents from the Iraq and Afghanistan wars, about the Guantanamo Bay detention camp, United States diplomatic cables and million of emails from Syrian political and corporate figures. Some of the information revealed by Wikileaks has had quite dramatic consequences with the media and citizens around the world responding to the information. Arguably, many of the Arab Spring uprisings throughout the Middle East from December 2010 were provoked by the release of the US diplomatic cables by Wikileaks, as it demonstrated very clearly the level of corruption in many countries. The Internet also played a vital part in many of these uprisings, some of which saw governments deposed, as social media tools such as Twitter and Facebook provided the mechanism for massive coordination of protests, but importantly also provided a way to get citizen coverage of the protests and police/army brutality, creating global audience, commentary and pressure on the governments and support for the protesters.

Citizen journalism is an interesting challenge to governments because the route to communicate with the general public has traditionally been through the media. The media has presented for many years a reasonably predictable mechanism for governments to communicate an official statement and shape public narrative. But the Internet has facilitated any individual to publish online to a global audience, and this has resulted in a much more robust exchange of ideas and less clear cut public narrative about any particular issue, sometimes directly challenging official statements. A particularly interesting case of this was the Salam Pax blog during the 2003 Iraq invasion by the United States. Official news from the US would largely talk about the success of the campaign to overthrown Suddam Hussein. The Salam Pax blog provided the view of a 29 year old educated Iraqi architect living in Baghdad and experiencing the invasion as a citizen, which contrasted quite significantly at times with official US Government reports. This type of contrast will continue to be a challenge to governments.

On the flip side, the Internet has also provided new ways for governments themselves to support and engage citizens. There has been the growth of a global open government movement, where governments themselves try to improve transparency, public engagement and services delivery using the Internet. Open data is a good example of this, with governments going above and beyond traditional freedom of information obligations to proactively release raw data online for public scrutiny. Digital services allow citizens to interact with their government online rather than the inconvenience of having to physically attend a shopfront. Many governments around the world are making public commitments to improving the transparency, engagement and services for their citizens. We now also see more politicians and bureaucrats engaging directly with citizens online through the use of social media, blogs and sophisticated public consultations tools. Governments have become, in short, more engaged, more responsive and more accountable to more people than ever before.

Conclusion

Only in recent centuries have power structures emerged with a specific role for common individual citizens. The relationship between individuals and power structures has long been about the balance between what the power could enforce and what the population would accept. With the emergence of power structures that support and enshrine the principles of equality and human rights, individuals around the world have come to expect the capacity to determine their own future. The growth of and proliferation of democracy has been a key shift in how individuals relate to power and governance structures.

New technologies and the Internet has gone on to massively distribute the traditionally centralised powers of publishing, communications, monitoring and enforcement (with property on the way). This distribution of power through the means of technology has seen democracy evolve into something of a technocracy, a system which has effectively tipped the balance of power from institutions to individuals.

References

Hobbes, T. The Leviathan, ed. by R. Tuck, Cambridge University Press, 1991.

Aquinas, T. Sum. Theol. i-ii. 105. 1, trans. A. C. Pegis, Whether the old law enjoined fitting precepts concerning rulers?

Uzgalis, William, “John Locke”, The Stanford Encyclopedia of Philosophy (Fall 2012 Edition), Edward N. Zalta (ed.), http://plato.stanford.edu/archives/fall2012/entries/locke/.

See additional useful references linked throughout essay.

Twitter posts: 2015-03-02 to 2015-03-08

Static networking in Ansible the quick and dirty way

I’m in the process of setting up a server at home to replace an old one. I’m maintaining the new one via Ansible to try and get keep as tidy as possible. Part of the setup involves setting up a bridge interface so that I can run kvm virtual machines on the box.

In order to make the box a little more stable I decided to make the ethernet settings static rather than via DHCP. Unfortunately ansible doesn’t really have a nice standard way of setting up network ports (there are a few modules around but none in the main distribution).  After looking around I decided just to make a simple ansible role to handle the files.

The machine is running centos7. The networking initially looked like:

/etc/sysconfig/network-scripts/ifcfg-enp2s0
::::::::::::::
HWADDR=9C:B6:54:07:E8:49
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=enp2s0
ONBOOT=yes
#

I decided the easiest way was to just manually create and copy the files. So I created a static_networking role.

roles/static_networking/handlers/main.yml
roles/static_networking/files/grey/ifcfg-enp2s0
roles/static_networking/files/grey/ifcfg-bridge0
roles/static_networking/tasks/main.yml
roles/static_networking/tasks/setup-redhat.yml

Inside the tasks the main.yml just loads up the setup-redhat.yml which is:

---
- name: copy files if they are listed in var
  copy: src={{ ansible_hostname }}/ifcfg-{{ item }} dest=/etc/sysconfig/network-scripts/ owner=root mode=0644
  with_items: static_interfaces
  notify:
  - restart network

Which is fairly simple. It just goes though a list of “static_interfaces” for a host and copies these files from the local machine to the machine I am setting up. If the copy makes any changes it sends a notify.

For the machine “grey” I just create some entries in hosts_vars/grey.yml

static_interfaces:
 - enp2s0
 - bridge0

and then the files themselves:

roles/static_networking/files/grey/ifcfg-bridge0
::::::::::::::
DEVICE="bridge0"
ONBOOT="yes"
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.1.1.28
NETMASK=255.255.255.0
GATEWAY=10.1.1.1
::::::::::::::
roles/static_networking/files/grey/ifcfg-enp2s0
::::::::::::::
DEVICE="enp2s0"
ONBOOT="yes"
NM_CONTROLLED="no"
BOOTPROTO="none"
BRIDGE=bridge0
HWADDR="9c:b6:54:07:e8:49"

which are the actual files to be copied. If any files are actually updated the handler will be triggered

roles/static_networking/handlers/main.yml 
---
# Called by "name" when network config files are changed
- name: restart network
  service: name=network state=restarted

Overall it seems to work and I only broke networking once (the ip on enp2s0 keep getting re-added until I forced network manager to forget about it). I wouldn’t really recommend this sort of thing for non-trivial sites though. Keeping per-site configs in roles isn’t really the best way to do things.

March 07, 2015

[tech] Honey, I wrote my first Chrome extension!

I love reading Linux Weekly News. It's a great source of high quality Linux and FOSS journalism, and I've been a subscriber for years.

One mild annoyance I have with the site is the way articles are cross-linked. All the article URIs are in the format /Article/531114/, which isn't particularly descriptive about that article's content.

When faced with an article that links to another article, with perhaps a word of anchor text, it's hard to tell if the new article is worth opening in a tab, is indeed already open in a tab, or has been previously read. (Yes, the "visited link" colour can help to a small degree, but even then, it doesn't tell you which previously read article it is).

This is what God the W3C invented the title attribute for.

Back in April 2011, I emailed Jonathan Corbet and asked if his content management system could just do this, but it was apparently a bit tricky, and it got filed in the "feature request" bucket.

I was sufficiently irritated by this deficiency last Monday, when doing some heavy reading on a topic, and so I decided to take matters into my own hands, and also learn how to write a Chrome Extension into the bargain.

I was delighted to have scratched the itch under 24 hours later and developed something that solved my particular problem - lwn4chrome I'm calling it.

I'm just finalising an icon for it, and then I'll have a stab at putting it in the Chrome Web Store as a freebie.

I might even have a crack at writing a Firefox extension as well for completeness, but I suspect the bulk of LWN's readership is using Chrome or Chromium.

March 05, 2015

Acurite 02032CAUDI Weather Station

I found an Acurite Weather Center 02032CAUDI at Costco for $99, which seemed like a pretty good deal.

It includes the "colour" display panel and a 5-in-1 remote sensor that includes temperature, wind-speed and direction, humidity and rain gauge.

The colour in the diplay is really just a fancy background sticker with the usual calculator-style liquid-crystal display in front. It does seem that for whatever reason the viewing angle is extremely limited; even off centre a little and it becomes very dim. It has an inbuilt backlight that is quite bright; it is either off or on (3-levels) or in "auto" mode, which dims it to the lowest level at certain hours. Hacking in a proximity sensor might be a fun project. The UI is OK; it shows indoor and outdoor temperature/humidity, wind-speed/rain and with is able to show you highs and lows with a bit of scrolling.

I was mostly interested in its USB output features. After a bit of fiddling I can confirm I've got it connected up to Meteobridge that is running on a Dlink DIR-505 and reporting to Weather Underground. One caveat is that you do need to plug the weather-station into a powered USB hub, rather than directly into the DIR-505; I believe because the DIR-505 can only talk directly to USB2.0 devices and not older 1.5 devices like the weather station. Another small issue is that the Meteobridge license is €65 which is not insignificant. Of course with some effort you can roll-your-own such as described in this series which is fun if you're looking for a project.

Luckily I had a mounting place that backed onto my small server cupboard, so I could easily run the cables through the wall to power and the DIR-505. Without this the cables might end up a bit of a mess. Combined with the fairly limited viewing angle afforded, finding somewhere practical to put the indoor unit might be one of the hardest problems.

Mounting the outdoor unit was fine, but mine is a little close to the roof-line so I'm not sure the wind-speed and direction are as accurate as if it were completely free-standing (I think official directions for wind-speed are something like free-standing 10m in the air). It needs to face north; both for the wind-direction and so the included solar-panel that draws air into the temp/humidity sensor is running as much as possible (it works without this, but it's more accurate with the fan). One thing is that it needs to mounted fairly level for the rain-gauge; it includes a small bubble-level on the top to confirm this. Firstly you'll probably find that most mount points you thought were straight actually aren't! Since the bubble is on the top, if you want to actually see it you need to be above it (obviously) which may not be possible if you're standing on a ladder and mounting it over your head. This may be a situation that inspires a very legitimate use of a selfie-stick.

It's a fun little device and fairly hackable for an overall reasonable price; I recommend.

On VMware and GPL

I do not believe any of the current reporting around the announced case has accurately described the issue; which I see as a much more subtle question of GPL use across API layers. Of course I don't know what the real issue is, because the case is sealed and I have no inside knowledge. I do have some knowledge of the vmkernel, however, and what I read does not match with what I know.

An overview of ESXi is shown below

overview of vmkernel and vmkapi

There is no question that ESXi uses a lot of Linux kernel code and drivers. The question as I see it is more around the interface. The vmkernel provides a well-described API known as vmkapi. You can write drivers directly to this API; indeed some do. You can download a SDK.

A lot of Linux code has been extracted into vmkLinux; this is a shim between Linux drivers and the vmkapi interface. The intent here is to provide an environment where almost unmodified Linux drivers can interface to the proprietary vmkernel. This means vendors don't have to write two drivers, they can re-use their Linux ones. Of course, large parts of various Linux sub-systems' API are embedded in here. But the intent is that this code is modified to communicate to the vmkernel via the exposed vmkapi layer. It is conceivable that you could write a vmkWindows or vmkOpenBSD and essentially provide a shim-wrapper for drivers from other operating systems too.

vmkLinux and all the drivers are GPL, and released as such. I do not think there could be any argument there. But they interface to vmkapi which, as stated, is an available API but part of the proprietary kernel. So, as I see it, this is a much more subtle question than "did VMware copy-paste a bunch of Linux code into their kernel". It goes to where the GPL crosses API boundaries and what is considered a derived work.

If nothing else, this enforcement increasing clarity around that point would be good for everyone I think.

March 04, 2015

Fried Fish with Butter Fried Potatoes Recipe

This is based on recipes online and an interpretation by a local restaurant that I used to frequent. While there are other alternative recipe that possibly taste better, I find that this is the quickest and easiest version.

- potatoes

- pre-made frozen, battered, fish

- sour cream

- tartare sauce

- salt

- butter

- bacon bits (optional)

- spring onion (optional)


Fry fish in pan. In meantime, chop potatoes into rough chunks and place into microwave until soft (to reduce cooking time. Boiling can take a long time). When fish cooked remove from heat. Place potatoes pieces into pan with a knob of butter to provide it with a crunchy 'crust'. Add bacon bits to same pan to add some 'crispness' as well. 


To serve, garnish fish with lemon juice and tartare sauce and serve potatoes and bacon bits with salt, chopped spring onion, and sour cream.



http://dtbnguyen.blogspot.com.au/2012/02/butter-fried-potatoes-with-bacon-bits.html



Would go really well with a salad to help you to cut through the fatty nature of the dish.

GNU Octave 3.8.2 Source Installation

GNU Octave is a high-level language, primarily intended for numerical computations. It makes a very good alternative to MATLAB.

Download from ftp://ftp.gnu.org/gnu/octave/



wget ftp://ftp.gnu.org/gnu/octave/octave-3.8.2.tar.bz2

Extract to /usr/local/src/OCTAVE



cd /usr/local/src/OCTAVE

tar xvjf octave-3.8.2.tar.bz2

read more

March 01, 2015

Twitter posts: 2015-02-23 to 2015-03-01

clintonroy

A quite full on day.

Woke up early because..that’s what I do. Headed out to Sunnybank library in the morning, CoderDojo, then back to The Edge for minicomicon, where I picked up a few small freebies, but didn’t spot anything that I felt like buying. I spent a little time coding up a simple Markov generator, hopefully simple enough for the coder dojo folks to follow. After all that, out to Humbug.



Filed under: diary

February 28, 2015

SM1000 Part 11 – Accepting Pre-orders!

The first batch of 100 SM1000s are being built in China right now and we estimate shipping will start in late March. Due to popular demand I am accepting pre-orders right now!

Australian customers can buy directly from my Store, rest of the world please use the Aliexpress Store for direct shipping from Shenzhen, China.

Thanks Rick KA8BMA and Edwin from Dragino for all your kind help!

February 27, 2015

clintonroy

I went to bed really early last night due to my weird ongoing headache. I had a little help getting to sleep. This meant I basically had a full nights sleep by three o’clock. So I ended up walking to work stupidly early and arriving before five am. I still had some residual effects of the whatever-the-heck headache in the morning, but it’s gone by the evening.

The internet was really weird today, llamas and dresses for some reason.

Doing some conf stuff at The Edge. See three friends walk past on the walkway :)



Filed under: diary

Fried Rice Recipe

This is based on a family recipe, recipes online, and an interpretation by local restaurants that I used to frequent. While there are other alternative recipes that possibly taste better, I find that this is the quickest and easiest version.

- chinese sausage

- rice

- eggs

- onion

- garlic

- tomato sauce

- salt
- sugar

- soy sauce

- spring onion (optional)

 - dried shrimp (optional)

- shitake mushrooms (optional)

- lettuce (optional)

- fried shallot (optional)

- prawns (optional)

- Chinese BBQ Pork (also called char-siu/charsiu. See elsewhere on this blog for this recipe)



Sautee onion, garlic, chinese sausage in pan. Fry egg and then shred so that it can be mixed through rice more easily later on. Add rice and then add the rest of the diced/chopped ingredients. Add salt, sugar, soy sauce, etc... to taste. Garnish with shredded lettuce and fried shallots.



The following is what it looks like.

http://www.taste.com.au/recipes/1351/chinese+fried+rice

http://www.taste.com.au/recipes/15297/easy+fried+rice

http://www.taste.com.au/recipes/collections/fried+rice+recipes

A(nother) new era of WordPress

The other night at WordPress Sydney, I dropped a five minute brain-dump about some cool things going on in the web ecosystem that herald a new era of WordPress. That’s a decent enough excuse to blog for the first time in two years, right?

I became a WordPress user 9 years ago, not long after the impressive 2.0 release. I was a happy pybloxsom user, but WordPress 2.0 hit a sweet spot of convenience, ease of use, and compelling features. It was impossible to ignore: I signed up for Linode just so I could use WordPress. You’re reading the same blog on (almost) the same Linode, 9 years later!

WordPress 2.0

WordPress

Fast forward to 2015 and WordPress powers 20% of the web. It’s still here because it is a great product.

It’s a great product because it’s built by a vibrant, diverse Open Source community with a fantastic core team, that cares deeply about user experience, that mentors and empowers new contributors (and grooms or cajoles them to become leaders), and isn’t afraid of the ever-changing web.

Another reason for the long term success of WordPress is that it’s built on the unkillable cockroach of the world wide web: PHP.

I won’t expound on the deficiencies of PHP in this post. Suffice to say that WordPress has thrived on PHP’s ubiquity and ease of adoption, while suffering its mediocrity and recent (albeit now firmly interrupted) stagnation.

HHVM

The HipHop Virtual Machine is Facebook’s high performance PHP runtime. They started work on an alternative because PHP is… wait for it… not very efficient.

Unless you’ve goofed something up, the slowest part of your PHP-based application should be PHP itself. Other parts of your stack may exhibit scaling problems that affect response times, but in terms of raw performance, PHP is the piggy in the middle of your web server and data stores.

“But like I said, performance isn’t everything.” — Andi Gutmans

What is the practical implication of “performance isn’t everything”? Slow response times, unhappy users, more servers, increased power utilisation, climate change, and death.

Facebook’s project was released in 2010 as the HipHop compiler, which transpiled PHP code into C++ code, which was then compiled into a gigantic monolithic binary, HTTP server included.

In early 2013, HipHop was superseded by HHVM, a jitting virtual machine. It still seemed pretty weird and awkward on the surface, but by late 2013 the HHVM developers added support for FastCGI.

So today, deployment of HHVM looks and feels familiar to anyone who has used php-fpm.

Want to strap a rocket to your WordPress platform? I strongly recommend experimenting with HHVM, if not putting it into production… like, say, Wikipedia.

Hack

Not content with nuking PHP runtime stagnation, the HHVM developers decided to throw some dynamite in the pants of PHP language stagnation by announcing their new Hack language. It’s a bunch of incremental improvements to PHP, bringing modern features to the language in a familiar way.

Imagine you could get in a DeLorean, go back to 2005, and take care of PHP development properly. You’d end up with something like Hack.

Hack brings performance opportunities to the table that the current PHP language alone could not. You’ve heard all those JavaScript hipsters (hi!) extolling the virtues of asynchronous programming, right? Hack can do that, without what some describe as “callback hell”.

Asynchronous programming means you can do things while you wait. Such as… turning database rows into HTML while more database rows are coming down the wire. Which is pretty much what WordPress does. Among other things.

Based on the WordPress team’s conservative approach to PHP dependency updates, it’s unlikely we’ll see WordPress using Hack any time soon. But it has let the PHP community (and particularly Zend) taste the chill wind of irrelevance, so PHP is moving again.

WP-API

Much closer to WordPress itself, the big change on the horizon is WP-API, which turns your favourite publishing platform into a complete and easy-to-use publishing API.

If you’re not familiar with APIs, think about it this way: If you cut off all the user interface bits of WordPress, but kept all the commands for managing your data, and then made them really easy to use from other applications or web sites, you’d have a WordPress API.

But what’s the point of stripping off all the user interface bits of WordPress? Aren’t they the famously good bits? Well, yes. But you could make even better ones built on top of the API!

Today, there’s a huge amount of PHP code in WordPress dedicated to making the admin user interface so damn good. There’s also a lot of JavaScript code involved, making it nice and interactive in your browser.

With WP-API, you could get rid of all that PHP code, do less work on the server, and build the entire admin user interface in the browser with JavaScript. That might sound strange, but it’s how most modern web applications are built today. WordPress can adapt… again!

One of the things I love about WordPress is that you can make it look like anything you wish. Most of the sites I’ve worked on don’t look anything like traditional blogs. WP-API kicks that up a notch.

If you’ve ever built a theme, you’ll know about “the loop”. It’s the way WordPress exposes data to themes, in the form of a PHP API, and lots of themers find it frustrating. Instead of WordPress saying, “here are the posts you wanted, do what you like”, it makes you work within the loop API, which drip-feeds posts to you one at a time.

WP-API completely inverts that. You ask WordPress for the data you want — say, the first ten posts in May — then what you do with it, and how, is 100% up to you.

There’s way more potential for a WordPress API, though. A fully-featured mobile client, integration with legacy publishing systems at your newspaper, custom posting interfaces for specific kinds of users, etc., etc., etc.

The best bit is that WP-API is going to be part of WordPress. It’s a matter of “when”, not “if”, and core WordPress features are being built today with the WP-API merge in mind.

React

According to its creators, “React is a JavaScript library for building user interfaces”, but it’s way cooler than that. If you’re building complex, interactive interfaces (like, say, the admin back-end of a publishing platform), the React way of thinking is fireworks by the megaton.

For all the hype it enjoys today, Facebook launched React in 2013 to immense wailing and gnashing of teeth. It mixed HTML (presentation) and JavaScript (logic) in a way that reminded developers of the bad old days of PHP. They couldn’t see past it. Some still can’t. But that was always a facile distraction from the key ideas that inspired React.

The guts beneath most user interfaces, on the web or desktop, look like a mad scientist’s chemistry lab. Glass everywhere, weird stuff bubbling over a Bunsen burner at one end, an indecipherable, interdependent maze of piping, and dangerous chemical reactions… you’d probably lose a hand if you moved anything.

React is a champagne pyramid compared to the mad chemistry lab of traditional events and data-binding.

It stresses a one-way flow: Data goes in one end, user interface comes out the other. Data is transformed into interface definitions by components that represent logical chunks of your application, such as a tool bar, notification, or comment form.

Want to make a change? Instead of manipulating a specific part of the user interface, just change the data. The whole user interface will be rebuilt — sounds crazy, right? — but only the changes will be rendered.

The one-way data flow through logical components makes React-based code easy to read, easy to reason about, and cranks your web interface to Ludicrous Speed.

Other libraries and frameworks are already borrowing ideas, but based on adoption to date, number of related projects, and quality of maintenance, I reckon React itself will stick around too.

Connecting the Dots

It won’t happen overnight, but WP-API will dramatically reduce the amount of active PHP code in WordPress, starting with the admin back-end. It will become a JavaScript app that talks to the WP-API sooner than anyone suspects.

Front-end (read: theme) development will change at a slower pace, because rendering HTML on the server side is still the right thing to do for performance and search. But themers will have the option to ditch the traditional loop for an internal, non-remoting version of the WP-API.

There’ll be some mostly-dead code maintained for backwards compatibility (because that’s how the dev team rolls), but on the whole, the PHP side of WordPress will be a lean, mean, API-hosting machine.

Which means there’s going to be even more JavaScript involved. Reckon that’s going to be built the same way as today? Nuh-uh. One taste of React in front of WP-API, and I reckon the jQuery and Backbone era will be finished.

In WordPress itself, most of this will affect how the admin back-end is built, but we’ll also see some great WordPress-as-application examples in the near future. Think Parse-style app development, but with WordPress as the Open Source, self-hosted, user-controlled API services layer behind the scenes.

What about HHVM? You’re going to want your lean, mean, API-hosting machine to run fast and, in some cases, scale big. Unless the PHP team surprises everyone by embracing the JVM, I reckon the future looks more like HHVM than FPM (even with touted PHP 7 performance improvements).

Once HHVM is popular enough, having side-by-side PHP and Hack implementations of  core WordPress data grinding functions will begin to look attractive. If you’ve got MySQL on one side, a JSON consumer on the other, and asynchronous I/O available in between, you may as well do it efficiently. (Maybe PHP will adopt async/await. See you in 2020?)

End

Look, what I’m trying to say is that it’s a pretty good time to be caught up in the world of WordPress, isn’t it? :-)

Champagne Pyramid

February 26, 2015

Chicken Curry Recipe

This is based on a family recipe.

- chicken

- sugar

- salt

- pepper

- garlic

- curry

- onion

- carrot

- potato

- fish sauce

- coconut milk

- curry mix (powder or liquid)(optional)

- tomatoes (optional)



Marinate chicken in sugar/salt/pepper/garlic/curry powder mixture. Brown off chicken in pan. In the meantime, dice vegetables and put into microwave for short period to speed up cooking time. Put all vegetables into pan. Add coconut milk and possibly a curry mix (to boost the flavour) to pan to create sauce. Use fish sauce to taste. Goes well with white rice or else bread.



The following is what it looks like. 

http://www.taste.com.au/recipes/7378/coconut+chicken+curry

http://www.bbcgoodfood.com/recipes/1993658/homestyle-chicken-curry

Szechuan Pork Mince Recipe

This is based on recipes online and an interpretation by a local restaurants that I used to frequent. While there are other alternative recipes that possibly taste better, I find that this is the quickest and easiest version.  
- pork mince

- salt

- sugar

- pepper

- chilli bean paste

- rice wine

- soy sauce

- tofu (fried or fresh)

- soy sauce

- garlic (optional)

- ginger (optional)

- caramel (optional)

- green beans (optional)



Marinade pork mince in salt/sugar/pepper/rice wine/soy sauce. Fry off off mince in wok/pan. Add chilli bean taste. Add sugar, pepper, soy, caramel, etc... sauce to taste. Slice tofu, put into microwave for 30 seconds and drain liquid, and stir through sauce. Fry off green beans in the meantime and add into mixture if you want at this point. Water down sauce if it gets too thick.



Goes well with a asian chicken soup (use pre-made or make a quick one using carrots, celery, onion, chicken bones, water, pepper, salt, pepper, soy sauce, and fish sauce) and steamed white rice.



The following is what it looks like.

http://www.girlichef.com/2014/03/Szechuan-Green-Beans-with-Ground-Pork.html

http://www.cookinglight.com/food/in-season/green-bean-recipes/szechuan-green-beans-ground-pork

Vietnamese Grilled Lemongrass Pork Chop Recipe

This is based on recipes online and an interpretation by a korean/japanese fusion restaurant that I used to frequent. While there are other alternative recipe that possibly taste better, I find that this is the quickest and easiest version. 
- pork chops
- sugar

- garlic

- shallot or yellow onion
- lemongrass

- pepper

- soy sauce

- fish sauce
- rice wine vinegar

- oil


Coat pork with bicarbonate soda if desired (meat tenderiser) and then wash off in cold water. Create marinade sauce by starting with liquids and then adding sugar, soy sauce, garlic, etc... Marinade pork with sauce. Cook rice in meantime. Pan fry pork and then place under grill for quicker results or else place directly in grill/oven/bbq from start to finish. 

 
Goes well with a asian chicken soup (use pre-made or make a quick one using carrots, celery, onion, chicken bones, water, pepper, salt, pepper, soy sauce, and fish sauce) and steamed white rice, fried eggs, pickled carrot or cucumber (sliced finely and dressed with vinegar and sugar) and nuoc mam as a sauce.




The following is what it looks like. 

Chinese Roast (BBQ/Char-Siu) Pork Recipe

This is based on recipes online and an interpretation by local restaurants that I used to frequent. While there are other alternative recipe that possibly taste better, I find that this is the quickest and easiest version.
- pork

- soy sauce

- hoisin sauce

- Chinese rice cooking wine

- sugar

- garlic

- honey (optional)
- pepper (optional)
- oyster sauce (optional)

- star anise (optional)

- red food colouring (powder or liquid)
Split (if too large to fit into oven/grill) pork if required. Coat pork with bicarbonate soda if desired (meat tenderiser) and then wash off in cold water. Create marinade sauce by starting with hoy sin sauce and then adding sugar, soy sauce, garlic, etc... Marinade pork with sauce. Cook rice in meantime. Pan fry pork and then place under grill for quicker results or else place directly in grill/oven/bbq from start to finish. 


Goes well with a asian chicken soup (use pre-made or make a quick one using carrots, celery, onion, chicken bones, water, pepper, salt, pepper, soy sauce, and fish sauce) and steamed white rice.


The following is what it looks like.

Korean/Japanese Pork Bolgogi (BBQ Pork) Recipe

This is based on recipes online and an interpretation by a korean/japanese fusion restaurant that I used to frequent. While there are other alternative recipe that possibly taste better, I find that this is the quickest and easiest version.
- pork (purchase offcuts/pre-sliced pork belly in some stores for a more timely meal)

- bolgogi sauce

- sugar

- mirin or rice cooking wine

- crushed/diced garlic or powder

- soy sauce

- ginger (optional)

- pepper (optional)

- spring onion (optional)

- shichimi togarashi spice mix

http://en.wikipedia.org/wiki/Shichimi



Slice pork if required. Coat pork with bicarbonate soda if desired (meat tenderiser) and then wash off in cold water. Create marinade sauce by starting with bolgogi sauce and then adding sugar, soy sauce, garlic, ginger, shichimi togarashi spice mix, etc... Marinade pork with sauce. Cook rice in meantime. Pan fry pork and then place under grill for quicker results or else place directly in grill/oven/bbq from start to finish.


Serve with Miso soup, sweet potato fries, and rice. Garnish pork with shichimi togarashi spice mix and rice with soy sauce. Add kimchi to meal if desired.



You can change the meat to chicken or even beef if the sauce is changed to the appropiate one.



The following is what it looks like.

http://zenkimchi.com/featured/recipe-dwaeji-bulgogi-grilled-korean-spicy-pork/

http://crazykoreancooking.com/recipe/spicy-pork-bulgogi-spicy-marinated-pork

Simple Pasta Recipes

As the title states the following are a bunch of recipes that I sometimes use for pasta. This is being placed here for my own possible records and for others to use if so desired.


The point of these recipes is to achieve the best taste, in the quicket possible time, at the cheapest possible price. That's why the ingredients are somewhat non-traditional at times. Here's the other thing, it's obvious that they can be altered quickly and easily to suit other core ingredients. Don't be afraid to experiment.


Bacon and Mushroom Carbonara with Pasta

- white pasta sauce (can be any. We will modify to suit our tastes but most are roughly the same. Alfredo is often the easiest/closest to what we finally want though)

- mushrooms (buy them pre-sliced and you'll have the sauce done for this recipe done in no time)

- bacon (buy it pre-diced and you'll have the sauce done for this recipe done in no time)

- sugar (to taste)

- salt (to taste)
- soy sauce (to taste)

- pepper (to taste)
Fry off bacon then mushroom in a pan. Add pasta sauce. In the meantime, cook pasta with some salted water. Use sugar/salt/soy sauce to change sauce if too tart, sweet, etc... Garnish pasta and sauce with parmessan if desired.


Spaghetti Bolognese with Pasta

- pasatta or tomato based pasta sauce

- beef mince
- onion (optional)

- garlic (optional)

- fresh chilli or chilli flakes (to taste)
- salt (to taste)

- sugar (to taste)

- soy sauce (to taste) 
- pepper (to taste)
- tomato sauce (to taste)
Sautee onion, garlic, and chilli. Brown mince (remove excess liquid if desired. It will change the nature of the sauce if there is excess liquid). Add pasta sauce. In the meantime, cook pasta with some salted water. Use sugar/salt/pepper/soy sauce to change sauce if too tart, sweet, etc... Garnish pasta and sauce with parmessan if desired.


Spaghetti Bolognese (Asian Interpretation) with Pasta

- pasatta

- sliced beef
- onion (optional)

- garlic (optional)

- fresh chilli, sriracha chilli sauce, or chilli flakes (to taste)
- salt (to taste)

- sugar (to taste)

- soy sauce (to taste) 
- fish sauce (to taste) 
- pepper (to taste)
Sautee onion, garlic, and chilli. Brown mince (remove excess liquid if desired. It will change the nature of the sauce if there is excess liquid). Add pasta sauce. In the meantime, cook pasta with some salted water. Use sugar/salt/pepper/sriracha chilli sauce/soy sauce to change sauce if too tart, sweet, etc... Garnish pasta and sauce with parmessan if desired.


Seafood or Chill Prawn Tomato Sauce with Pasta

- pasatta or tomato based pasta sauce

- prawns or seafood

- onion (optional)

- garlic (optional)

- fresh chilli or chilli flakes (to taste)
- sriracha chilli sauce, sambal oelek, or chilli bean paste (to taste)
- salt (to taste)

- sugar (to taste)

- soy sauce (to taste) 
- pepper (to taste)
- tomato sauce (to taste)
- diced fresh tomato (optional)(buy pre-diced canned if pressed for time)

- olives (optional)(buy canned, pre-sliced, and drain holding liquid if pressed for time)
Sautee onion, garlic, and chilli. Sear seafood (remove excess liquid if desired. It will change the nature of the sauce if there is excess liquid). Add pasta sauce, and fresh tomato and olives (if desired). In the meantime, cook pasta with some salted water. Use sugar/salt/pepper/sriracha chilli sauce/soy sauce to change sauce if too tart, sweet, etc... Garnish pasta and sauce with parmessan if desired.


Pork Chops With White Sauce with Pasta

- pork chops

- cream
- tomato sauce
- garlic
- salt (to taste)

- sugar (to taste)

- soy sauce (to taste) 
- pepper (to taste)
- tomato sauce (to taste)
Sear pork chop with garlic to level desired (remove excess liquid if desired. It will change the nature of the sauce if there is excess liquid) and remove from pan. Add cream to deglaze pan and create sauce. In the meantime, cook pasta with some salted water. Use sugar/salt/pepper/tomato sauce/soy sauce to change sauce if too tart, sweet, etc... Garnish pasta and sauce with parmessan if desired.

clintonroy

Another weird day really.

The headache from yesterday did not improve, after physio and tablets. I went to bed early and woke up around 2am with my head still banging.

Work has a construction site across the road and it’s still very noisy at times, it was very difficult dealing with both a headache throbbing inside my head and the builders machines throbbing the outside of my head.

I had lunch offsite with H, who is always doing a million and one things and making me feel lazy.

I decided I didn’t want to deal with the headache and noise in the afternoon and headed home.



Filed under: diary

February 25, 2015

clintonroy

Bit of an odd day today.

Physio appointment in the morning, specifically looking at my right forearm, I was concerned I was seeing the initial stages of RSI, but the physio relieved those anxiety’s at least. They physio used dry needles to  settle down the muscle that was acting up, that was a first and quite an interesting experience.

Next up I went out to the UQ Market day to rendezvous with the UQCS club, to give them some pamphlets describing PyCon Australia  and Humbug a little. Most of our volunteers last year were UQ students, and I’d be delighted if that were the case again this year.

I’ve ended up with a headache at the end of the day, maybe because I didn’t have any coffee till after lunch?



Filed under: diary

clintonroy

Walked to work.

While doing some conference stuff, discovered that I hate printers. It took something like an hour to print out two pages of basic text and one image. Whatever pdf version every tool was spitting out, was not handled at all well by either printer.



Filed under: Uncategorized

clintonroy

Did not walk in today.

Did go and see _Juptier Ascending_ which I really quite liked. If the main baddy wasn’t so completely over the top, I would have quite enjoyed it.



Filed under: diary

February 24, 2015

Minimalist VHF Software Defined Radio Part 1

I think the future of radio hardware is a piece of wire connected to a GPIO pin.

The rest of the radio will be “gcc compilable” free software running on commodity CPU horsepower. I spoke about this at length in my recent linux.conf.au 2015 talk.

For the last two weeks I’ve been developing a simple radio architecture that is moving in that direction. The motivation is hardware to test our VHF FreeDV ideas. I’ve got to the point where I can tune 146 MHz VHF radio signals. The performance largely meets my design specs. The radio consists of about 20 off the shelf parts and a STM32F4 Discovery board with a Bill of Materials (BOM) cost of a few $. With another design pass it will be capable of good RF performance and also run FreeDV (or the mode of your choice). Completely stand alone – no PC.

Boo Baseband IQ, Chip-sets and FPGAs

I’m not a fan of baseband IQ designs, due to issues with phase and amplitude balance, and carrier feed through. This means development time and engineering pain. IQ signals should live only in software. Nor am I a fan of semi-closed chip-sets, FPGAs, or fixed point. More pain, development time, inaccessible tools, complex hardware designs, multilayer PCBs (even for prototypes), vendor lock-in, non-portable and proprietary issues.

I’m using the STM32F4, NE602 mixer, and Si5351 LO as that’s what I had laying about. However I’m not hung up on any of them. Please free free to subsitute your favourites. What I do care about is radio architectures that minimise hardware and maximise free software.

No chip-sets or lock-in here. The hardware is very simple so major changes can be made in minutes, and prototyped by anyone who can hold a soldering iron next to a piece of blank PCB.

Design Walk Through

I prototyped the radio on a few square inches of blank PCB:

In the foreground is the Open Radio that I’m using for the Si5351 LO.

High Q filters and MacGyver Filter Tuning

It took me a few days to get a decent 10.5MHz Band Pass Filter (BPF) working. Learned all about loaded and unload Q of various inductors, filters, and rigged up a way to sweep filters using some Si5351 code:



  float f;

  unsigned long long f_ull;

  

  si5351.init(SI5351_CRYSTAL_LOAD_8PF,25000000);

 

  while(1) {

    for (f=8.0; f<12; f += 0.1) {

      f_ull = f*100000000ULL;

      si5351.set_freq(f_ull, 0, SI5351_CLK0);

      delay(1000);

    }

  }



Using my oscilloscope’s FFT function with infinite persistence selected on the display I can get a good feel for the filter performance:

I needed a pretty high Q for the BPF so I tested several inductors in a parallel 10MHz LC tuned circuit. I swept the circuit with the Si5351 and measured the insertion loss at resonance. At resonance the only impedance is the effective resistance of the inductor Rl. This forms a voltage divider with the source impedance (1500 ohms in my case).

Inductor Insertion Loss (dB) Rl Xl Qu
6T 6mm air core 200nH 16 281 12.5 22.5
FT37-61 3T 1uH 4 2565 60 43
Jaycar moulded inductor 1uH 3 1500 60 85

I eventually settled on a T50-2 toroid, which could achieve an unloaded Q of over 100 at 10MHz. A two stage coupled resonator BPF gets 40dB attenuation at 10.5 +/- 1MHz. I’m still climbing the RF learning curve but this testing was fun and useful for me. A crystal filter designed for FM radios (16 kHz bandwidth) would also do the job.

Band pass Sampling

We are using the neat trick of band pass sampling. This is a bit confusing – how do we sample a 10.5MHz signal with a sample rate of 2MHz?

OK, say you want to sample a signal at frequency f with an ADC having a sample rate Fs. Turns out the ADC can’t tell the difference between between f, Fs+f, 2Fs+f etc.

Here’s an example of a f1 = 5 Hz and f2 = 105 Hz signal sampled at Fs = 100 Hz. Note how the sampled signal is exactly the same!

That’s why we usually put a low pass filter in front of the ADC, to limit the “images” that the ADC would otherwise sample. By using a band pass filter, we can intentionally select one of the images.

So the sample and hold of the ADC can also perform a frequency translation step, saving us the need for a mixer and second local oscillator. In practice, the ADC tends to be less sensitive when sampling higher frequencies. In the case of the STM32F4 the sample and hold is a RC circuit with a -3dB point of 7MHz. As a simple RC filter rolls off slowly it still has plenty of gain at 10.5MHz.

Software IIR Tuner

The big challenge with this architecture is how to handle 2 MS/s from the ADC on a uC that is only clocked at 168 MHz. That’s only 84 instructions per sample at 100% CPU load. In this small budget we need to “tune” the 500 kHz signal so that other adjacent signals are filtered out. Then re-sample down to 44 or even 8 kHz, hopefully with enough MIPs left over to run the FreeDV stack (a GMSK modem and Codec 2).

Here is the block diagram of the tuner, the C source code is in iir_tuner.c

The ADC sees our 10.5 MHz signal as a 500 kHz signal. We use an Infinite Impulse response (IIR) bandpass filter to stomp on everything else except the signal centred on 500 kHz. IIR just means it’s recursive (uses previous outputs). This filter is the exact DSP equivalent of a LC tuned circuit, as used in the analog BPF. Once filtered, we can then safely decimate the signal (reduce the sample rate) by a factor of 45 so our poor little uC can start breathing again. Much easier to process the signal at a sampling rate of 44.4 kHz (ish) than 2 MHz.

The IIR filter is implemented in C like this:



  y[n] = x[n] - 2*sqrt(beta1)*cos(w)*y[n-1] - beta1*y[n-2]

y[n] is the latest output, x[n] the input. The w is the centre frequency of the filter in radians (w = 2*pi*f/Fs) and beta1 is the “Q” of the filter, i.e. sets how sharp it is. If you set beta1 = 0.999 you get the filter we are using. Make beta1 = 1 you get an oscillator. If you make beta1 > 1 you get overflow errors.

As we are MIPs-shy we set w=pi/2, which is one quarter of the sampling frequency of 2 MHz, or 500 kHz. This makes cos(w) = 0 and the the whole filter reduces to:



   y[n] = x[n] - beta1*y[n-2]



This executes in about 12% of the STM32F4 without any particular effort in optimisation. Good enough.

The IIR filter does make the spectrum of the signal a little spikey in the middle so we use an equaliser to flatten it out again. This is a simple Finite Impulse Response (FIR) filter that is the exact inverse of the IIR filter, but scaled for the lower sampling rate:



   y[n] = x[n] + beta2*x[n-2]

I started by simulating the tuner in Octave (adcres.m), which produced these fine plots:

I set a spec of 40dB rejection of adjacent signals, which is a function of the IIR tuner and the analog 10.5 MHz BPF.

In the plots above there are 4 signals. First the “wanted” signals at f+8 and f-7kHz (6dB down), at the edges of the desired bandwidth we need for nasty old legacy analog FM. Then I popped in an interferer f-207kHz away. If we don’t filter well enough the interferer will get aliased into the pass band. You can see that in the lower plot – the f-207kHz signal now appears about 30dB down in the pass band. Hopefully the analog BPF will push it down a bit more in practice.

The fourth signal is an impulse that effectively has energy at all frequencies, and neatly shows us the shape of the filters that implement the tuner. That’s the continuous line in each plot (0dB on top plot). I set the level of this broadband signal to 40dB less than the f+8kHz pass band signal.

Results

Here’s an example output for a 146.0025 MHz CW signal at -30dBm and -60dBm:

These are FFTs of 10 seconds of output samples. The x axis spans about 4 kHz, and the y axis is in dB, but not relative to any reference level. The central line is at about 2 kHz, so we have down converted by 146.005MHz from the input.

There is no gain apart from the mixer. Still, we can see at the -30dBm level we have about 60dB between the wanted signal and the highest spurious lines. At the -60dBm level the signal drops 30dB as expected.

Even at -30dBm the ADC is only being driven at about 10% of it’s maximum level, so we have another 20dB of headroom available there. Some gain would let us detect signals down to an appropriate MDS.

The spurious spurs appear to be 500Hz (ish) apart, which is the ADC interrupt service routine frequency. This is probably some power supply noise which we can clean up, as I did in the SM1000 development. The current prototype construction is pretty rough, so there are bound to be some issues in a VHF plus high speed digital system.

I wrote a FM demodulator in C and ran it on the STM32F4, sampling the results. Here is a strong local signal and here is a sample of Mark, VK5QI from a repeater.

The sample from the repeater is a scratchy. The periodic noise I think is at the rate buffers are transferred up to the Host PC I used for collecting samples. However please bear in mind this is not a finished radio, there is currently only about 10dB gain in total, and no input BPF! Off air reception at this early stage was just a long shot I thought I’d try for fun. Gain is cheap, we can add that in the next pass.

The real innovation here is the extreme simplicity of the hardware.

Being an on-chip ADC I’m not expecting sparkling performance. However it might be “good enough” – especially given it comes for free and the low SNR requirements (about 6dB) we need for GMSK. We shall see.

I measured the adjacent channel rejection as -30dB at 1 MHz and -40dB at a 25 kHz offset. The 25 kHz figure is exactly as designed (40dB). The 1MHz offset figure is 10dB worse than designed for. This could be due to the ADC input impedance loading the BPF and reducing the Q.

For a real radio these figures need to be much better, so another design pass is required. However I don’t think there is any risk here, just engineering effort. This first pass has shown that the architecture works.

Next Steps

  1. Replace the NE602 mixer with one that can deliver good strong signal performance.
  2. Have another design pass to meet a reasonable spec, like MDS of -120dBm for 1200 bit/s GMSK, adjacent channel rejection of -60dB, 100dB blocking of signals at +/- 1MHz. Rationalise the sampling rates (e.g. uC clock, ADC clock) so we get exactly Fs=48kHz at the output of the tuner.
  3. Put a proper 144-148MHz BPF on the input of the mixer.
  4. See if we can tune 70cm signals as well, e.g. with a harmonic of the LO. The mixer is good to 500 MHz.
  5. Determine if the Si5351 is OK in terms of phase noise, spurious lines. We could just about use a crystal oscillator, and tune chunks of the 2M band using banks of BPFs and IIR tuner software. The ADC sample clock might also be causing problems, e.g. spectral lines or phase noise. We can test that by measuring the implementation loss of the demodulator for a given receiver input C/No.
  6. Work out a clever way to transmit a 1W constant envelope signal at VHF. Perhaps a similar architecture operating in reverse, i.e. DAC running at 2MHz, tune to the 10.5 MHz image, up convert that to VHF. However as linearity is not required, the mixer could be a XOR logic gate.
  7. With a different BPF ahead of the ADC can we tune HF signals directly (i.e. delete the NE602)? What sort of performance will it have? Will the ADC dynamic range limit adjacent signal rejection?

LUV Main March 2015 Meeting: CoderDojo / OpenPower and POWER8

Mar 3 2015 19:00
Mar 3 2015 21:00
Mar 3 2015 19:00
Mar 3 2015 21:00
Location: 

The Buzzard Lecture Theatre. Evan Burge Building, Trinity College, Melbourne University Main Campus, Parkville.

Speakers:

• Kieran Nolan and Martin Harris: CoderDojo

• Stewart Smith: OpenPower and POWER8

The Buzzard Lecture Theatre, Evan Burge Building, Trinity College Main Campus Parkville Melways Map: 2B C5

Notes: Trinity College's Main Campus is located off Royal Parade. The Evan Burge Building is located near the Tennis Courts. See our Map of Trinity College. Additional maps of Trinity and the surrounding area (including its relation to the city) can be found at http://www.trinity.unimelb.edu.au/about/location/map

Parking can be found along or near Royal Parade, Grattan Street, Swanston Street and College Crescent. Parking within Trinity College is unfortunately only available to staff.

For those coming via Public Transport, the number 19 tram (North Coburg - City) passes by the main entrance of Trinity College (Get off at Morrah St, Stop 12). This tram departs from the Elizabeth Street tram terminus (Flinders Street end) and goes past Melbourne Central Timetables can be found on-line at:

http://www.metlinkmelbourne.com.au/route/view/725

Before and/or after each meeting those who are interested are welcome to join other members for dinner. We are open to suggestions for a good place to eat near our venue. Maria's on Peel Street in North Melbourne is currently the most popular place to eat after meetings.

LUV would like to acknowledge Red Hat for their help in obtaining the Buzzard Lecture Theatre venue and VPAC for hosting.

Linux Users of Victoria Inc. is an incorporated association, registration number A0040056C.

March 3, 2015 - 19:00

read more

February 23, 2015

APM:Plane 3.2.3 and 3.3.0beta1 released

The ArduPilot development team has a special treat for fixed wing users today - a double release!

  • A new stable 3.2.3 release with 3 fixes for 3.2.2
  • A new 3.3.0beta1 release with a lot more changes for wider testing

The 3.2.3 release is a minor update to 3.2.2 with 3 fixes:

  • A fixed to relative altitude drift when on the ground before takeoff
  • fixed TKOFF_THR_DELAY to be able to be up to 127 (for 12.7 seconds)
  • fixed INS_PRODUCT_ID (it was being reported as zero)

The most important fix is for the altitude drift, which could cause a poor altitude reference if your GPS altitude drifted while disarmed. The bug showed up as a significant drift in the reported relative altitude on the ground station when the aircraft was disarmed with the EKF enabled. The root cause of the bug was a disconnect between the EKF origin and the planes origin for relative altitudes. It only happened when the GPS altitude varied significantly while disarmed.



Start of 3.3.0 beta releases

The 3.3.0beta1 release has a lot more changes in it. The largest of the changes are internal, such as performance improvements in the NuttX operating system on Pixhawk, but given the size of the changes we want as many test users as possible.

Changes in 3.3.0beta1 include:

  • a new SerialManager library which gives much more flexible management of serial port assignment
  • changed the default FS_LONG_TIMEOUT to 5 seconds
  • raised default IMAX for roll/pitch to 3000
  • lowered default L1 navigation period to 20
  • new BRD_SBUS_OUT parameter to enable SBUS output on Pixhawk
  • large improvements to the internals of PX4Firmware/PX4NuttX for better performance
  • auto-formatting of microSD cards if they can't be mounted on boot (PX4/Pixhawk only)
  • a new PWM based driver for the PulsedLight Lidar to avoid issues with the I2C interface

I'm expecting a lot more changes will go into the 3.3.0 release as we still have a lot of pending pull requests. I will be doing regular beta updates as new patches go in (once they are flight tested).

Happy flying!

Oakey trig

I've got to say, this trig was disappointing. It was a lunch time walk, so a bit rushed, but the trig was just boring. Not particularly far, or particularly steep, or in a particularly interesting area. That said, it wasn't terrible. It just felt generic compared with other trigs I've walked to.



         



Interactive map for this route.



Tags for this post: blog pictures 20150223-oakey_trig photo canberra tuggeranong bushwalk trig_point

Related posts: Big Monks; A walk around Mount Stranger; Forster trig; Two trigs and a first attempt at finding Westlake; Taylor Trig; Urambi Trig



Comment

February 22, 2015

Twitter posts: 2015-02-16 to 2015-02-22

Geocaching

I've been trapped at home with either a sick child or a sick me for the last four or five days. I was starting to go a bit stir crazy, so I ducked out for some local geocaching. An enjoyable shortish walk around the nearby nature park.



Interactive map for this route.



Tags for this post: blog canberra tuggeranong bushwalk geocaching

Related posts: Another lunch time walk; Lunchtime geocaching; Big Monks; Confessions of a middle aged orienteering marker; Geocaching in the evening, the second; Geocaching in the evening



Comment

Error while running "git gc"

If you see errors like these while trying to do garbage collection on a git repository:

$ git gc
warning: reflog of 'refs/heads/synced/master' references pruned commits
warning: reflog of 'refs/heads/annex/direct/master' references pruned commits
warning: reflog of 'refs/heads/git-annex' references pruned commits
warning: reflog of 'refs/heads/master' references pruned commits
warning: reflog of 'HEAD' references pruned commits
error: Could not read a4909371f8d5a38316e140c11a2d127d554373c7
fatal: Failed to traverse parents of commit 334b7d05087ed036c1a3979bc09bcbe9e3897226
error: failed to run repack

then the reflog may be pointing to corrupt entries.

They can be purged by running this:

$ git reflog expire --all --stale-fix

Thanks to Joey Hess for pointing me in the right direction while debugging a git-annex problem.

clintonroy

Waking up at two for no discernible reason.

Breakfast with C was a better start to the morning.

Afternoon at The Edge doing conference stuff.



Filed under: diary

clintonroy

Coder Dojo down at Sunnybank Hill library. Quite exhausting after a bad night’s sleep!



Filed under: diary

clintonroy

Walked to work.

Caught up with a C after work, as a surprise thing rather than a planned thing.



Filed under: diary

clintonroy

A bit of a nothing apart from work day.



Filed under: diary

clintonroy

Walked to and from work, in an attempt to have a good night sleep tonight..

Tropical Cyclone Marcia has degenerated to a tropical low and is hovering around Brisbane today, making for a lot of rain. I quite like walking in the wet, as long as I’ve got my wet weather gear. Most of the work colleagues are cats and stayed home.

Conference planning later at The Edge.



Filed under: diary

clintonroy

Walked to and from work today.

Doing some conference planning later on.



Filed under: diary

February 21, 2015

Command and Control







ISBN: 9780141037912

LibraryThing

I finished this book a while ago and it appears that I forgot to write it up. This book is by the author of Fast Food Nation and it is just as good as his other book. The history of America's nuclear weapons and their security (or lack thereof) is as compelling as it is terrifying. I found this book hard to put down while reading it, and would recommend it to others.



Tags for this post: book eric_schlosser nuclear weapons safety

Related posts: Random linkage; Fast Food Nation; Starfish Prime; Why you should stand away from the car when the cop tells you to; Random fact for the day; More nuclear bunkers
Comment Recommend a book

Systemd joke

Since a few people seemed to like it on Twitter..

This item originally posted here:



Systemd joke

Forster trig

Its been too long since I've attempted a trig walk -- 15 days to be exact. That's mostly because I've been really busy at work these last couple of weeks. That said, it was time for another trig, and this one was a bit of an adventure.



Forster Trig is in the Bullen Nature Reserve and is one of the least urban trigs I've attempted so far, which is why this post is a bit more detailed than normal. Big Monks is probably the other trig walk most similar to this one. One of the challenges with this trig is that there is no track to the trig point. Reading John Evan's walk notes from his single assent of this trig, it seems that many people follow the 132kV power lines to the trig, but I consider this "cheating" as the power line is on private land and I didn't want to spend effort on getting permission to walk on someone's farm.



Instead, I followed the Kambah Pool to Cassurina Sands track, and then turned right to bush bash to the trig when I got reasonably close. There wasn't any formed track this way, so I don't think this is a common approach. On the map you'll notice a fence marked -- that's where I had to jump a barbed wire fence, which wasn't the best plan ever. On the way back down from the summit I found a vehicle track, and I'd recommend that others follow that route (the one on the map with two gates marked and some stairs). The stairs are interesting -- a previous walker has mounded stones on both sides of the fence to make it easier to cross.



Either way, its a bush bash up the hill itself, which is covered in reasonably dense spiky vegetation. You're going to want gaiters or long pants.



             



Interactive map for this route.



Tags for this post: blog pictures 20150220-forster_trig photo canberra tuggeranong bushwalk trig_point

Related posts: Big Monks; A walk around Mount Stranger; Two trigs and a first attempt at finding Westlake; Taylor Trig; Oakey trig; Urambi Trig



Comment

February 18, 2015

Confessions of a middle aged orienteering marker

I was an orienteering marker for the kid's scout troop tonight -- I guess it could have been a trick, but I think they were genuine. The basic idea was I went and stood at where the mark on the map was, and then noted which kids found me. Nice little hill in MacArthur, with pleasant views. I think I've found a good place for a geocache as well.



Interactive map for this route.



Tags for this post: blog canberra bushwalk tuggeranong

Related posts: Big Monks; Geocaching; Point Hut Cross to Pine Island; A walk around Mount Stranger; Another lunch time walk; Forster trig



Comment

February 17, 2015

Little Black Mountain

I went on a walk on Monday with the Canberra Bushwalking Club up Little Black Mountain. Its a nice area and I mostly enjoyed the walk. I say mostly because the walk leader was quite un-welcoming. There was the lecture about emergency beacons, and then the lecture about how he's never been bitten by a snake. It was quite an odd experience. I think I might avoid that leader in the future.



Interactive map for this route.



Tags for this post: blog canberra bushwalk

Related posts: Goodwin trig; Big Monks; Geocaching; Confessions of a middle aged orienteering marker; A quick walk through Curtin; Narrabundah trig and 16 geocaches



Comment

clintonroy

Bus to work, after discovering that I had no spare clothes at work, somehow. That won’t be a problem for a couple of weeks now.

Horrible nights sleep meant I had to skip the new software engineering meetup.



Filed under: diary

February 16, 2015

Expanding Horizons

Looking back, I do seem to blog a lot about the software & open source technology!

I do have wider interests though, I read widely & ponder about space technology, graph theory & network science, open data, math, economics, history, politics, or anything really. I find that taking the time to learn about new and unrelated topics, just like taking the time to meet new people with different interests, tends to increase the chance of serendipitous opportunities, or provide “outside the square” insights into problems I am currently working on.

Everyone has Jargon

Along with last months foray into music & content, I have been studying the tech startup economy. I find it fascinating learning how to decode the jargon, and I guess I experienced a bit of what other people probably get when relating to IT / software developer people :-)  One thing I discovered is the extent to which the startup scene itself has spawned an industry built on servicing the startups and the venture capital firms that provide funding. Whether this is an indication of a maturing market since the days of the DotCom boom, time will tell.

The startup industry has a cross-over into open source. Many new businesses are founded using open source: nearly every web app that is not a pure Microsoft build would be using some combination of open source tools (and the Microsoft Azure service supports Linux); many provide premium services related to an open source product which helps spur further development in that product.  I think this is a good thing for open technology generally as it benefits the entire community, not just that business, as would be the case with a purely closed product.  By contributing to open source, the business can concentrate on value adding around its core “thing” whilst leveraging the community in a two-way effort to improve the overall software ecosystem.  Paraphrasing Bob Young from one of the Linux.conf.au keynotes, open source is a long term form of barter benefiting everyone.

Another cross-over is the Lean Startup methodology. A friend dragged me along to a workshop the other week, and it was really interesting to see some of the parallels with agile software development.

In Adelaide there is a growing niche / tech startup community which I think is refreshing and important to the future of this city, for so long  heavily reliant on either the vanishing manufacturing sector, the illusory and fading mining boom, or the defence sector so often cut at the whim of a government.  High technology must form a core of our economy into the future if we are to remain a vibrant state!  I have become more aware of this since participating in the hackathons, which although a fun activity for myself, often cross-over into the startup community.

Sharing the Load

One discovery I made is AngelList Syndicates, a way of letting small investors pool funds and invest small amounts (say, in the order of $1000-$5000) into high tech startups. This is probably not for the novice investor, but I would not be averse to investing a percentage of my superannuation into this area.  I will be doing quite a bit more research first however, to try and get a better handle on the investment risk, and the impact of Australian superannuation law! I found available information about the many small and non-listed technology companies, largely US based, but also in Australia,  opaque to say the least.

As part my research I am subscribed to a few startup sector  mailing lists, interestingly this has led me to discover quite a few new websites or technology services I would not otherwise have found  about.  I try out a lot of free web apps, but usually skip the paid services because I cant justify the cost at this point.  Sometimes there are trial offers for various services though, and I came across one interesting site, Mattermark, that claimed to track private and startup companies, many of the kind found on AngelList.  I asked some questions about whether it was relevant to my interests in Australia and along the way ended up having email conversation with one of the developers which was actually really pretty cool, so I figured I’d give it a go.

Trial Run

After I accessed the web app, obviously the first thing I did was find the Location menu and switch to Australia :-)

This produced a spreadsheet-like display with companies in rows, and various metrics across the columns. I was quite surprised to recognise several businesses I knew, such as CoinJar, muru-D and other companies I didn’t even realise were Australian, such as Canva. Oddly the NSW Greens were reported as a company despite being a political party.  It seems Mattermark uses in machine learning to aggregate data from multiple feeds, and there were not too many other oddities, so having only one or two out of place entries in such a large database is pretty good.

Companies are initially ranked by ‘Growth Score‘ a term I had to research, and it seems to be a metric combining funding and employee count with social media and downloads, all things I presume are important to measuring a business growth in a period where it might not be producing much revenue as yet.

Another search I tried was ‘Space Travel’, which was provided as one of many possible categories.  This was very interesting to me because I keep coming across new space commercialisation ventures on twitter, but seeing a whole pile of them listed in one place was rather exciting. (As in, the future is finally nearly here!)

In fact there are rather a lot of categories!

I have some screenshots but until I get around to posting them there is a video showing how it might be used by its primary customer base on Youtube.

I regularly canvass LinkedIn for interesting & local technology businesses, for networking opportunities and community event promotion, but that can be hit and miss. I think Mattermark could be a helpful complement to that, although the subscription is too pricey for me in my situation as a hobbyist / small investor.  This would likely be a useful tool for anyone working in the startup services industry or dealing with managing investments but if thats your thing you should probably do your own research and take the trial for a spin rather than relying on my opinion as an amateur.

Now, hopefully I’ll find something to blog about in space technology soon!

 

February 15, 2015

Twitter posts: 2015-02-09 to 2015-02-15

clintonroy

Felt rather ill after Humbug, I’m assuming it was the sushi place at Sunnybank yesterday.

Catching up on these here diary notes..



Filed under: diary