return to OCLUG Web Site
A Django site.
March 17, 2013

Rob Echlin
echlin
Talk Software
» Editing menus on LXDE

The menus are created from the foo.desktop file for each application.

To find them, you can do a couple of things.

First, using Synaptic package manager, select the package, then click on the “Properites” icon in the toolbar. Use the tab “Installed Files”.

Second, you can use this command line, where the “package-name” needs to be the name of your package. Tab completion works for Bash shell on the name of the package, if you know how it starts.

dpkg -L package-name | grep desktop

I found this out because I needed to change the “EXEC” string in “d2x-rebirth-demo” (the “Descent 2″ rewrite) to:

/usr/local/games/d2x-rebirth/d2x-rebirth -hogdir /usr/local/games/d2x-rebirth/data


March 15, 2013

Ian Ward
excess
excess.org - News
» Painting with Braille

This is something I've been wanting to write for a while.

Unicode page U+2800 has all the combinations of a 2x4 grid of Braille dots. Braille dots that line up neatly with the ones on all sides in most fonts. We can paint with this!

March 12, 2013

Michael P. Soulier
msoulier
But I Digress
» Video on Raspbian

Currently our upstairs TV has a raspberry pi attached to it. It's running the basic Raspbian distribution, based on Debian Linux. I'm using it for development as well as for a media center at the moment, so I'm not using RaspBMC, I'm going to order another one has a dedicated media center, but for now I need to be able to play movies off of a usb stick.

I tried VLC, but the performance was horrible. Apparently it doesn't use the native GPU. I read about it online, and thanks to that finally found omxplayer, which does use the native GPU. Unfortunately, it's not all that polished when playing from the command-line. It leaves behind text in the terminal above and below the video at certain aspect ratios, which is visually distracting.

They haven't fixed it yet so I put a wrapper script around it to work around the issue. I plan to put a whole interface around it at some point just for fun, but for now at least I can watch movies without text in the black bars above and below:

#!/bin/sh

setterm -cursor off
clear
omxplayer -o hdmi $1
clear
setterm -cursor on

Simple, but it works.

» Joysticks on Mac OS X in Flightgear

I like flight simulators. I've played all of the good ones, Flightgear is an open-source flight simulator that isn't bad, and is steadily getting better with every release. While it is available to run on Mac, there's no way to calibrate the Joystick due to a lack of caring on Apple's part.

But, Flightgear is hackable. The joystick file is just a set of XML bindings, those bindings can run code, so using coefficients to the input and controlling the output, in theory I can calibrate the settings myself. So, I did:

<?xml version="1.0"?>

<PropertyList>
    <axis n="0">
        <desc>Aileron</desc>
        <binding>
            <command>nasal</command>
            <script>
                var value = cmdarg().getNode("setting").getValue();
                if (abs(value) &lt; 0.05) {
                    value = 0;
                }
                else {
                    value -= 0.15;
                    value *= 1.5;
                }
                setprop("/controls/flight/aileron", value);
            </script>
        </binding>
    </axis>
    <axis n="1">
        <desc>Elevator</desc>
        <binding>
            <command>nasal</command>
            <script>
                var value = cmdarg().getNode("setting").getValue();
                if (abs(value) &lt; 0.05) {
                    value = 0;
                }
                else {
                    value -= 0.1;
                    value *= -1.5;
                }
                setprop("/controls/flight/elevator", value);
            </script>
        </binding>
    </axis>
    <axis n="2">
        <desc>Rudder</desc>
        <binding>
            <command>nasal</command>
            <script>
                var value = cmdarg().getNode("setting").getValue();
                if (abs(value) &lt; 0.05) {
                    value = 0;
                }
                else {
                    value *= 1.5;
                }
                setprop("/controls/flight/rudder", value);
            </script>
        </binding>
    </axis>
    <axis n="3">
        <desc>Throttle</desc>
        <binding>
            <command>nasal</command>
            <script>
                var value = cmdarg().getNode("setting").getValue();
                value -= 0.5;
                value *= -1.5;
                setprop("/controls/engines/engine/throttle", value);
            </script>
        </binding>
    </axis>

<axis n="4">
    <desc>View Direction</desc>
    <direction>left</direction>
    <low>
    <repeatable>true</repeatable>
    <binding>
        <command>nasal</command>
        <script>view.panViewDir(1)</script>
    </binding>
    </low>
    <high>
    <repeatable>true</repeatable>
    <binding>
        <command>nasal</command>
        <script>view.panViewDir(-1)</script>
    </binding>
    </high>
    <dead-band type="double">0</dead-band>
    <binding>
    <factor type="double">-1</factor>
    </binding>
</axis>
<axis n="5">
    <desc>View Elevation</desc>
    <direction>upward</direction>
    <low>
    <repeatable>true</repeatable>
    <binding>
        <command>nasal</command>
        <script>view.panViewPitch(1)</script>
    </binding>
    </low>
    <high>
    <repeatable>true</repeatable>
    <binding>
        <command>nasal</command>
        <script>view.panViewPitch(-1)</script>
    </binding>
    </high>
    <dead-band type="double">0</dead-band>
    <binding>
    <factor type="double">-1</factor>
    </binding>
</axis>
<button>
    <desc>Brakes</desc>
    <binding>
    <command>nasal</command>
    <script>controls.applyBrakes(1)</script>
    </binding>
    <mod-up>
    <binding>
        <command>nasal</command>
        <script>controls.applyBrakes(0)</script>
    </binding>
    </mod-up>
</button>
<button n="3">
    <desc>Flaps Up</desc>
    <repeatable>false</repeatable>
    <binding>
    <command>nasal</command>
    <script>controls.flapsDown(-1)</script>
    </binding>
    <mod-up>
    <binding>
        <command>nasal</command>
        <script>controls.flapsDown(0)</script>
    </binding>
    </mod-up>
</button>
<button n="4">
    <desc>Flaps Down</desc>
    <repeatable>false</repeatable>
    <binding>
    <command>nasal</command>
    <script>controls.flapsDown(1)</script>
    </binding>
    <mod-up>
    <binding>
        <command>nasal</command>
        <script>controls.flapsDown(0)</script>
    </binding>
    </mod-up>
</button>
<button n="1">
    <desc>Elevator Trim Forward</desc>
    <repeatable>true</repeatable>
    <binding>
    <command>nasal</command>
    <script>controls.elevatorTrim(0.75)</script>
    </binding>
</button>
<button n="2">
    <desc>Elevator Trim Backward</desc>
    <repeatable>true</repeatable>
    <binding>
    <command>nasal</command>
    <script>controls.elevatorTrim(-0.75)</script>
    </binding>
</button>
<name type="string">WingMan Extreme Digital 3D</name>
</PropertyList>

Right now, the calibration is good, but the controls are really jerky and overly sensitive. I'll have to see if I can smooth them out. But, they work.

March 7, 2013

Digital Copyright Canada
digitalcopyright
Digital Copyright Canada
» Ongoing government dishonesty conflating Copyright with Counterfeiting

This isn't a new issue, even if there is a new Conservative Government bill C-56 tabled before parliament. The long and short titles tell a shortform of the dishonesty:

An Act to amend the Copyright Act and the Trade-marks Act and to make consequential amendments to other Acts

Short Title: Combating Counterfeit Products Act

read more

March 4, 2013

CREDIL news feed
credil
CREDIL: News
» CREDIL - Lunch-and-Learn: LVM and Xen

Our next Lunch-and-Learn topic at CREDIL Lunch-and-Learn will be on "LVM and Xen", to be presented by Lucas Bates on Thursday, March 21, 2013.

If you wish to attend the Lunch-and-Learn, please contact us ahead of time so we can ensure there is enough space for everyone.

February 26, 2013

Ian Ward
excess
excess.org - News
» Iterables, Iterators and Generators: Part 2

This is the second part of the talk I gave January 24, 2013 at the Ottawa Python Authors Group.

Part One introduces Python iterables and iterators and generators. This part covers the advanced use of generators while building an interactive two-player network game.

February 12, 2013

Ian Ward
excess
excess.org - News
» Iterables, Iterators and Generators: Part 1

This is part one of a talk I gave January 24, 2013 at the Ottawa Python Authors Group

Part Two is now also available.

Both parts of this presentation are also available as a single IPython Notebook which you can download and run locally, or view with nbviewer.ipython.org. The complete source is available at https://github.com/wardi/iterables-iterators-generators

February 7, 2013

Digital Copyright Canada
digitalcopyright
Digital Copyright Canada
» Commercial infringers demanding government gut laws protecting technology owners.

I sent the following to my MP and to the Minister of Industry:

Mr McGuinty, my MP for Ottawa South,
Cc: The Honourable Christian Paradis, Minister of Industry,

As you know I have spent more than a decade working on protecting technology owners from various forms of infringement of their tangible property rights. Much of the threats to property rights comes from people and organizations falsely claiming such infringements are necessary to protect their rights.

To borrow from a related phrase: One owners right to protect their property ends at my right to protect my property.

read more

January 31, 2013

Michael Richardson
mcr
Michael's musings
» First Experiences using PrestoCard

Our PRESTOcards.ca arrived in the mail on Monday. Hard to blame prestocard for taking 10 days to get them to us, more likely it's Canada Post's Dark Delivery regime... we are still getting Xmas cards. http://www.ottawacitizen.com/business/Mail+delivery+dark+might+brightest+forward+Canada+Post/7673752/story.html

So Meaghan went to work with the Prestocard on Tuesday. It worked fine in the morning. Normal route is 16 or 151-westboro-95 to Bayview, O-train to Greenboro, and if the number 43 driver decides he is picking up passengers, she can avoid a dangerous walk along a usually snow covered non-existant sidewalk north on Bank Street, one stop.

Things went okay on the way. The presto card site noticed what stop she got on. She didn't swipe on the O-train. Should she? She got on the 43, and it saw that too. Curiously, it doesn't say what actual bus route she was on...

The trip home wasn't as good. It saw at location "15", which was the bus back to the O-Train, and then, 27 minutes later, it charged her another half fare (one ticket), at Bayview to come home. No idea why, we asked.

She had noticed this situation on the scanner, and so we checked that night, and everything looked okay last night, but when we looked today, the system had caught up to the extra fare.

We were checking because I tried to yesterday to see if my prestocard had been loaded correctly with my Feb. Bus pass. On Tuesday it gave me a red and told me to see customer service. Oh no, I think... will it work on Friday morning? Today, on my way home, using my paper January pass, I swiped my prestocard again... the machine happily announced that I had been charged a $2.60 fare.

Huh I think? Does it mean... I'm good for a $2.60 fare, or does it mean, that it's gonna try to deduct from me? So far, it hasn't done anything yet. I'll see tomorrow.

My opinion is that it should have simply said: "Your february bus pass will be valid 2013-02-01. See driver if you need to pay a fare"

Comments to G+: https://plus.google.com/103865510556691933694/posts/5vRsQ1rX8na

January 24, 2013

CREDIL news feed
credil
CREDIL: News
» CREDIL - Lunch-and-Learn: Time and task management

Our next Lunch-and-Learn topic at CREDIL Lunch-and-Learn will be on "Time and task management", to be presented by Julien Lamarche on Thursday, February 21, 2013.

If you wish to attend the Lunch-and-Learn, please contact us ahead of time so we can ensure there is enough space for everyone.

January 22, 2013

Rob Echlin
echlin
Talk Software
» Proposed Stack Eschange site for DITA

Anders Svensson has created a proposal for a DITA Stack Exhange Site.
It’s at http://area51.stackexchange.com/proposals/49912

DITA is an OASIS standard for XML documentation.


January 20, 2013

Rob Echlin
echlin
Talk Software
» User Group Connect has a new URL

“User Group Connect 2013″ has a new URL. You can find us at ugconnect.ca

If you don’t know about UGC, it is an opportunity for User Group’s in Ottawa to get together and for the Ottawa technology community to get together to meet some of the 30 or so User Groups in Ottawa.

On Saturday February 9, from 10am to 4pm, join us in the lounge at Shopify, 126 York St. The entrance is at the back of the building, from the parking lot.

Accessibility problems – Unfortunately, this location is not wheelchair accessible. It has stairs, and the washroom is up a flight of stairs.

Also, you can still reach the User Group Connect site at the old URL.


Tagged: groups, Ottawa

January 18, 2013

Michael Richardson
mcr
Michael's musings
» Impressions of PrestoCard Site

I visited the Rideau Centre this morning to attempt to obtain a PrestoCard for myself (Monthly pass), my wife (she uses tickets 3 days/week), and my son (1 ticket every week or so). I also wanted a spare card for when my other-in-law visits. She drives from Farrhaven to our house, and takes the bus with us downtown because she is afraid to drive downtown.

The lineup at the rideau centre was basically out the door, and management seemed to be doing a good job of dealing with the unexpected number of people, but waiting an hour wasn't in my todo list today, so I proceeded to work.

I sat down at my comptuer and went to OCtranspo.com, and was led to prestocard.ca.

javascript needs to be turned on this site. I use NoScript to keep me safe from stupid things. The site should be useable for people without javascript. This is a simple requirement for a site to be accessible to people who have various disabilities. (and there is no reason for the moneris site to need javascript. none)

So, the first use of javascript is to popup a window to show me the usage agreement for the site. That's uselessly long. TOO LONG DIDN'T READ. And it's in a small little window, very hard to read, impossible to change the font size (can you say "Senior citizens"), I didn't find a way to print it. I didn't try copy and pasting it. How will I know if it changes? PLEASE FIRE THE LAWYER WHO WROTE THIS. IT IS USELESS. Visit tos-dr.info.

I walked through the process for my first, card, saw the button "Edit Products", and clicked on it, before I hit pay. Oops, you lost all of the form entry bits. That's really a loss. I tried logging in again, only to realize that actually, you haven't even created my account yet. The technical term for this failure is that your site is not RESTful. This means your web development guys are back in 1998. The .aspx extension on he URLs would seem to confirm that.

I went through things again, and went to payment, at which point I discovered that Moneris really does suck. Once I enable javascript, it gets all confused, so I had to start again.

Now that you have lost my payment, I come back, and discover that I have an account now. Apparently you don't create an account until I click on "Pay", which is a serious mistake in user flow. Oh, since you check to see if my username is unique (rather than using my email address. DUH. Good web people figured that awhile ago), at the page where I enter it, by the time I get to payment, actually, it could already be in use.

so I ask for a card, and I'm asked to view the user agreement again. Another fail. I already agreed to it.

so I click on "get a card" on the left, when I get to payment for my wife's card, and I get myself a card, I get to payment, and you have forgotten about first card. Okay, so you don't really have a shopping cart.

finally, I ordered two cards, having to do two credit card transactions. I've very glad that you are putting the credit card transactions elsewhere, because if it was processed through your site, I would not be using it.

I happened to return to the contact us page (in another tab), to enter another comment, and noticed that the contactus page had expired. WAT? It's a contactus page, there shouldn't be any state at all associated with it.

Given that the web people have had an extra 8 months to fix any issues, I am pretty upset about the quality of this interface. I will have to use this site 6-8 times a year, I really expect it to work properly. I have done sites like this in 6-8 weeks, and they worked way better than this.

» Impressions of PrestoCard Site

I visited the Rideau Centre this morning to attempt to obtain a PrestoCard for myself (Monthly pass), my wife (she uses tickets 3 days/week), and my son (1 ticket every week or so). I also wanted a spare card for when my other-in-law visits. She drives from Farrhaven to our house, and takes the bus with us downtown because she is afraid to drive downtown.

The lineup at the rideau centre was basically out the door, and management seemed to be doing a good job of dealing with the unexpected number of people, but waiting an hour wasn't in my todo list today, so I proceeded to work.

I sat down at my comptuer and went to OCtranspo.com, and was led to prestocard.ca.

javascript needs to be turned on this site. I use NoScript to keep me safe from stupid things. The site should be useable for people without javascript. This is a simple requirement for a site to be accessible to people who have various disabilities. (and there is no reason for the moneris site to need javascript. none)

So, the first use of javascript is to popup a window to show me the usage agreement for the site. That's uselessly long. TOO LONG DIDN'T READ. And it's in a small little window, very hard to read, impossible to change the font size (can you say "Senior citizens"), I didn't find a way to print it. I didn't try copy and pasting it. How will I know if it changes? PLEASE FIRE THE LAWYER WHO WROTE THIS. IT IS USELESS. Visit tos-dr.info.

I walked through the process for my first, card, saw the button "Edit Products", and clicked on it, before I hit pay. Oops, you lost all of the form entry bits. That's really a loss. I tried logging in again, only to realize that actually, you haven't even created my account yet. The technical term for this failure is that your site is not RESTful. This means your web development guys are back in 1998. The .aspx extension on he URLs would seem to confirm that.

I went through things again, and went to payment, at which point I discovered that Moneris really does suck. Once I enable javascript, it gets all confused, so I had to start again.

Now that you have lost my payment, I come back, and discover that I have an account now. Apparently you don't create an account until I click on "Pay", which is a serious mistake in user flow. Oh, since you check to see if my username is unique (rather than using my email address. DUH. Good web people figured that awhile ago), at the page where I enter it, by the time I get to payment, actually, it could already be in use.

so I ask for a card, and I'm asked to view the user agreement again. Another fail. I already agreed to it.

so I click on "get a card" on the left, when I get to payment for my wife's card, and I get myself a card, I get to payment, and you have forgotten about first card. Okay, so you don't really have a shopping cart.

finally, I ordered two cards, having to do two credit card transactions. I've very glad that you are putting the credit card transactions elsewhere, because if it was processed through your site, I would not be using it.

I happened to return to the contact us page (in another tab), to enter another comment, and noticed that the contactus page had expired. WAT? It's a contactus page, there shouldn't be any state at all associated with it.

Given that the web people have had an extra 8 months to fix any issues, I am pretty upset about the quality of this interface. I will have to use this site 6-8 times a year, I really expect it to work properly. I have done sites like this in 6-8 weeks, and they worked way better than this.

January 14, 2013

Digital Copyright Canada
digitalcopyright
Digital Copyright Canada
» Remember Aaron Swartz by working for open society and against government abuses

Dan Gillmor offers great words for those of us mourning Aaron Swartz.

January 12, 2013

Rob Echlin
echlin
Talk Software
» New Java 1.7 vulnerability

I found this in my email:

http://www.h-online.com/developer/news/item/Dangerous-vulnerability-in-latest-Java-version-1781156.html

I will disable Java plugin in all browsers on my machines at work on Monday.

Cert.org is taking this seriously: http://www.kb.cert.org/vuls/id/625617

This could be used against Linux, Mac or Android, not just Windows, if anyone cared to try. They would not have access to root without further exploits, although popping up a window that looks like your Updater, or Microsoft’s, would catch some inexperienced Linux users.


Tagged: security, software

January 10, 2013

CREDIL news feed
credil
CREDIL: News
» CREDIL - Lunch-and-Learn: Git

Our next Lunch-and-Learn topic at CREDIL Lunch-and-Learn will be on "Git", to be presented by Brenda Butler on Thursday, January 17th.

If you wish to attend the Lunch-and-Learn, please contact us ahead of time so we can ensure there is enough space for everyone.

January 2, 2013

Digital Copyright Canada
digitalcopyright
Digital Copyright Canada
» Public Domain Day 2013

January 1'st each year we morbidly celebrate the death of authors and other creative persons. Flaws in the law mean the expiry of the copyright monopoly, and works finally entering the public domain to the enrichment of all humanity, is most often calculated from the year of a creative person's death.

Wallace J.McLean, Meera Nair and Michael Geist all blogged about the celebration.

read more

January 1, 2013

Michael P. Soulier
msoulier
But I Digress
» Jim Butcher on Men vs. Women

I'm reading Jim Butcher's "Cold Days", his latest installment in the Dresden Files, and I felt the need to share this quote:

So, ladies, if you ever have some conversation with your boyfriend or husband or brother or male friend, and you are telling him something perfectly obvious, and he comes away from it utterly clueless? I know it's tempting to think to yourself, "The man can't possibly be that stupid!"

But yes. Yes, he can.

Our innate strengths just aren't the same. We are the mighty hunters, who are good at focusing on one thing at a time. For crying out loud, we have to turn down the radio in the car if we suspect we're lost and need to figure out how to get where we're going.

Umm, yeah, I've had to turn the radio down...