Planet Linux Australia

Syndicate content
Planet Linux Australia -
Updated: 23 min 56 sec ago

Glen Turner: Ancient word processor files

Tue, 2014-08-05 14:19

One of the issues with writing document filters is the lack of a corpus of real documents in the various ancient formats.

If you have files you have written in the past in Wordstar, PC-Write, XyWrite, DisplayWrite and other pre-Windows word processors then I would be interested in contributions.

My hope would be that such files have little content of value, and thus the corpus could be licensed CC BY-ND 4.0.

David Rowe: Embedded FreeDV

Tue, 2014-08-05 07:29

For the SM1000 development I need a way to embed the core functionality of a FreeDV “mode” in a simple library. A FreeDV “mode” is defined by the Codec 2 rate, the FEC, the frame structure, and the FDMDV modem waveform. Several modes have evolved over the past 18 months, and more are likely in the future. The current widely used mode (e.g. in the FreeDV GUI application) is known as “1600″ due to the bit rate.

Here is the simple C API I came up with:

struct freedv *freedv_open(int mode);

void freedv_close(struct freedv *freedv);

void freedv_tx(struct freedv *f, short mod_out[], short speech_in[]);

int freedv_nin(struct freedv *f);

int freedv_rx(struct freedv *f, short speech_out[], short demod_in[]);

Here is the header file freedv_api.h , C implementation freedv_api.c, and example transmitter and receiver programs.

It’s really easy to use from the command line:

$ ./freedv_tx ../../raw/hts1.raw - | ./freedv_rx - - | play -t raw -r 8000 -s -2 -

More examples are in the Codec 2 README.

The receive side is little tricky, as the number of input samples to the demodulator (and output samples from the codec) is time varying. You can see how that’s handled in this while loop:

    nin = freedv_nin(freedv);

    while(fread(demod_in, sizeof(short), nin, fin) == nin) {

        nout = freedv_rx(freedv, speech_out, demod_in);

        fwrite(speech_out, sizeof(short), nout, fout);

        nin = freedv_nin(freedv);


The demodulator works out how many samples it needs, to adjust for differences in the transmit and receive sample clocks (e.g. a few hundred ppm).

Transmit and receive of text characters is handled through call-back functions.

This API will be useful for “embedding” FreeDV into general purpose digital comms applications like fldigi, SDR radios, Android applications, custom embedded devices like the SM1000, or “headless” implementations of FreeDV on platforms like the Raspberry Pi. It needs hardware floating point and at least a 168MHz ARM4 (the SM1000 CPU).

SM1000 Update

OK, back to the SM1000 integration. Over the last week I have optimised the FDMDV modem by re-arranging the rx filtering. The modulator now takes 5ms and the demodulator 15ms (20ms total) for 40ms worth of data (200% real time). The modem optimisation work has also accelerated the code on x86 machines significantly.

Right now I’m working on drivers for the UI (switches and LEDs) so I can put it all together. Key tests include (i) everything operates OK in real time (ii) test the modem performance is OK through the SM1000 analog interfaces and (iii) test coverage of all of the hardware so we can kick off a Qty 100 beta run.

Andrew Pollock: [life] Day 187: Kindergarten, tinkering, a spot of break and entry and some baking

Mon, 2014-08-04 20:25

Today was busy. I didn't end up getting a chance to do any Debian work, but I did do some satisfying hacking, which I'll write about separately once I've got it slightly less... hackish.

Zoe slept solidly for about 12 hours. I was a bit slow getting going this morning, and that made us a bit late getting to Kindergarten. Drop off was nice and quick and easy though.

I was supposed to have a coffee with my downstairs neighbour, Michelle, who was in the process of moving out. She had asked if she could borrow an Allen key to dismantle her bed, so I popped down with that when I got home. She'd also managed to misplace her wallet, and thought it might be at her boyfriend's house. Long story short, we ended up over there with a ladder to get into his house and (fortunately) retrieve her wallet before we ended up having our coffee.

After that, I did some hacking on my phone to try and integrate NFC with HabitRPG, which ended up being successful, but not ideally so. I managed to get that going before just before Anshu arrived to come with me to Kindergarten to pick up Zoe and Megan.

I'd asked the girls if they wanted to help bake some carrot and kale muffins when we got home, but they quickly got distracted doing some craft, so they did that while Anshu and I started on the muffins. Part way through, they decided they wanted to help after all, so they took turns throwing ingredients into the Thermomix. They then proceeded to lick the bowl clean while watching them rise in the oven.

Zoe wanted to watch an episode of Spiderman on her tablet, and so did Megan, so I put it on the TV with the Chromecast and they happily watched it while the muffins finished baking.

After that, Zoe and Megan went for a scooter around the block with us while I put a letter in the mail and picked up some mushrooms from the Hawthorne Garage. By that stage Sarah was on her way to pick up Zoe, so we got home and got Zoe organised to get picked up.

Sarah picked up Zoe, but Jason was held up in traffic, so Megan came back upstairs and watched some more TV until Jason arrived.

It was a nice, busy afternoon, which went quite quickly.

Paul Wayper: Stop the unemployed

Mon, 2014-08-04 10:25
I think there's quite a simple answer to why the Coalition is putting so much effort into punishing the unemployed: it's exactly the same as their "stop the boats" policy. If they make it so unattractive to actually register as unemployed (in order to get Centrelink benefits) then a lot of people will just not register. They'll look for work, and they'll depend on the charities and on other forms of income (begging, stealing, etc), but they won't show up in the books as unemployed. Instantly, unemployment goes down, the Coalition looks like it's "tough on dole bludgers", and someone else foots the bill.

I've been there. I was unemployed for six months in late 2000. I tried to get benefits, and after spending every day trying to find work so that I could tick off my twenty-five job searches a month I was told that since I had shares I didn't qualify for assistance. In other words, you can't save, you can't have any reserves, you have to be scraping the bottom of the barrel yourself before you get any money from the Government.

So I just didn't bother. I didn't show up to Centrelink again, and they (presumably) removed my name from the list of unemployed. Howard at that time was trumpeting the work he was doing to reduce unemployment and kept pointing to the unemployment figures. No-one looked at the number of jobs at the same time. I think a few people pointed out at the time that the worse of his policies - which match those of the Coalition today - were just designed to punish the unemployed and make them into a cheap work force rather than actually get more jobs.

It's especially poignant since the Coalition also wants to sign into law trade partnerships that send jobs overseas (by making it uneconomical to manufacture things here in Australia), denying climate change and cutting spending on renewable energy (stopping the entire renewable energy sector from investing and thus losing jobs), cutting funding for education and health (as if States are suddenly going to find that money somewhere - more jobs lost), and telling Toyota and Holden that they get nothing to keep people employed here in Australia.

It's been well pointed out that there only about 146,100 jobs for 741,700 unemployed people. But the government's own way of calculating this only thinks a person is unemployed if they actively looked for work in the week of being surveyed - they identify an entire group called "currently inactive (not in the labour force)" and then coyly ignore that group entirely, not even mentioning it on the page.

That group comprises a lot of people, some of who need help. It's the long term unemployed who have given up on the mindless form-filling, tracking and justification required for government payments. It includes mothers who stay at home full time to care for their children (which is a full time job in my opinion). It includes lots of disabled people. It includes people on pensions. And it's that group that seems to be conveniently ignored by the Coalition in their War On Bludgers.

Sridhar Dhanapalan: Twitter posts: 2014-07-28 to 2014-08-03

Mon, 2014-08-04 01:26