For the next government, a citizen’s wish list

To the Representative to the House for Mandaluyong City:

I am Antonio A Hilario, resident of this city.

I am looking forward to Mr Duterte leaving office, now. It occurs to me that this is going to leave a sour taste in the mouth for the two-fifths of the electorate that managed to get their wish – a leader who promised straight talk, and fast, far-ranging solutions to complex problems.

 I count myself part of the opposition to Duterte’s “leadership,” if you could call it that. Apart from wanting a President who thinks clearly and deeply about things that matter to me, what do I want from the government that will supplant this one?
1. An election reform law in two parts: Modify the Omnibus Election Code to institutionalize a runoff mechanism to reduce a multiway Presidential race to a choice between two leading candidates. Let’s not do this again – permit a candidate chosen by a non-majority to impose a wildly unreal platform of governance on the entire country. And some sort of law that will attenuate the impact, if not remove the possibility, of forming a legislative supermajority like we saw with the 17th Congress. I don’t know if that’s a good idea, let alone how it can be done.
2. Immediately define a program to improve the Local Government Code to address both a) devolution of political and fiscal authority, and b) improvement of NG project budgeting for provincial infra development. We learned that a periodic review of the LGC needed to be done, was mandated to be done; the next government will just please see to it.
3. I want the banking system to extend credit to startup manufacturing enterprises that can be grown from Kickstarter– or Crowd Supply-like projects by Filipinos. I want our existing export industry to be mandated to support these enterprises. The idea is to promote what the previous generation called “high-tech industry” including not just electronics and communcation technology, but also maybe biotech and software engineering, and I.T. security. For example, it would be nice for companies like Mesco, who manufacture and market machine tools, be given tax credits for providing low-cost consulting and machining/manufacturing support for a bunch of inexperienced designers who want to bring a design to market. That’s going to take a regulatory framework I don’t feel is present today.
The circuit layout I cannot manufacture
The 3-axis desktop mill I’ve yet to complete


4. I want the Department of Justice and Commission on Human Rights to institute a program to support litigation by victims of tokhang against the State, for the utterly irresponsible conduct of the present government’s “drug war” campaign. The country must make amends, by means including indemnification, to citizens harmed by this policy.
5. I want this problem of food security to go away: Government has to find a way to support ALL the smallholder food farmers to improve their efficiency and make rice and vegetable farms viable sources of income.
6. I want a fair share of the benefit and responsibility of using the West Philippine Sea, and for Government to work with co-claimants to put together a unified diplomatic front against China’s expansionism.
7. I want political party platforms, and not the whims of powerful, unaccountable patrons fronted by attractive personalities, become the basis for NG programs. This inescapably means that private campaign funding must become more strongly regulated, and possibly that money for e.g. airtime on commercial broadcast stations, indirect funding of political party operations (by tax credit, maybe) has to come from the public coffers.
8. I never ever want to hear again, the line that “the Constitution is trash”, come from the mouth of any Filipino of voting age, who has absolutely no argument to back that up. I put this to the secondary schools to have to fix. There’s only so much that an individual citizen can do to help make the Constitution accessible to others, and it is not enough to merely publish the Constitution online.
9. A president who isn’t such a fucking jackass (and deserved special mention in my privacy policy), who doesn’t represent the worst of the politics and mindset of the 70s – that would be good to have, along with a new government.
– Some thoughts arising from first reading, a couple of days back, Ateneo de Manila Lecturer Segundo E Romero‘s post on the idea of a shadow cabinet, a shadow government.

To the pro-Marcos voter – That’s “Ferdinand Marcos, Jr.”, not “Bongbong”

You do not have the right to vote in ignorance, or to choose just any yahoo because “it feels good,” or because “that’s the candidate we choose around here – because he’s one of us.”

No, he’s not.  We’re not holding elections for you to enjoy your mindfuck.  We’re not holding elections only to pay for your ignorance, your vote that will restore to power the family we Filipinos threw out in 1986.

And no, I’m not sorry that our school system failed you, that your teachers did not teach you the nation’s judgement of thirteen years of dictatorship (we rejected it).  You’re an adult now; it’s your fucking job to be informed about the consequences of your actions, your choices.

We vote in thirty-eight days.  Don’t fuck it up for the rest of us, eh?  Just don’t.  Don’t shame us all by putting the Presidency within reach of that son of a dictator and his family.

They are NOT off the hook for their acts of plunder.  They have not been absolved of their cases before the Presidential Commission on Good Government.


P.S. And, please – your “Bongbong” is no longer six years old.  Call him by the name he fully, truly represents.  His name is Ferdinand Romualdez Marcos Jr., and he’s not running for you or me.  He’s running to rehabilitate the Marcos name, more than anything else.

Questions for the COMELEC source code review

Here are five questions I’d like answers to following the COMELEC (Commission on Elections) source code review that’s supposed to have started on October 1, 2015.

1) How are the Smartmatic vote counting machines built? What are the capabilities of the embedded processor? Does it run an embedded operating system, or is it running “bare metal” code?

2) Did COMELEC arrange that results of the source code review – importantly, findings of code defects that affect the integrity of system operation – get forwarded to the manufacturer for field software update?

3) Is there a way to verify that the version of firmware (loaded into processor flash memory) corresponds to the release version of the software being reviewed?

Another way to ask this question is this: Do the code audit teams have access to the compilers and firmware update tools used by the manufacturer, to install firmware binaries into the device? Note that if the VCMs are not field-reprogrammable, then the usefulness of findings of a code audit are extremely limited. If there are any serious defects and there is no way to update the firmware, then manual procedures need to be put in place to work around those defects.

Continue reading “Questions for the COMELEC source code review”

Enable Beaglebone Black LCD3 backlight dimming

To enable backlight dimming using the CircuitCo LCD3 cape, you need to connect the backlight boost circuit EN line to EHRPWM1A, by removing R126 and adding a 0R resistor (or blob of solder) to the pads for R123.

Then, you can issue the command

echo 38 > /sys/class/backlight/backlight/brightness

to control backlight intensity.


Using the LCD3 cape on Beaglebone Black with Linux kernel 3.16.1

The Beaglebone Black is a palm-sized computer for electronics hobbyists, designed by Gerald Coley, charter member of  Development is supported by an open source community, with the help of Texas Instruments (which manufactures the BBB’s embedded MPU, the AM3358).

If you’ve been struggling to get the Beaglebone LCD3 cape working with the mainstream Linux kernel releases from, the first thing you need to know is that it can be done.  The key to making this work is to understand that dynamic cape loading isn’t yet supported in the mainline tree (but see Robert C. Nelson’s guide at for a guide to building a special branch that does support dynamic cape load and unload.  Kernel 3.8+ works with the LCD3 cape).  There are a lot of people still working on cleaning up the code to meet kernel maintainers’ criteria for acceptance.  Until that happens, we’ll have to make do by cobbling together a custom devicetree source file to support devices which don’t yet run out of the box, using the mainline kernel source.

What works

  • Resistive touch screen using the AM3358 A/D converters
  • All five GPIO user buttons
  • GPIO-driven user LED
  • Backlight
  • And, of course, the TFT LCD itself

I’ll assume that you’re able to compile a Linux kernel, and have got around to doing so a few times for your BBB.  These instructions apply to the stable Linux kernel 3.16.1, but should be straightforward to apply to other (recent) releases which support the Direct Rendering Manager interfaces and ARM device trees.

I’d recommend that you install this newly compiled kernel onto an SD card filesystem, rather than use the BBB’s onboard eMMC storage.  Be warned that the kernel configuration file I’ve provided with this guide is taken from my own working system, which I use as a router – there’s a lot of firewall, bridging, etc., other networking-related modules built (and built-in) which may not be suitable for general use.


  • Power down and detach the LCD3 cape from your BBB.
  • Fetch and unpack a copy of the 3.16.1 stable kernel from
  • Apply this patch to modify arch/arm/boot/dts/am335x-boneblack.dts and arch/arm/boot/dts/am335x-bone-common.dtsi, or fetch them from the links indicated.   You’d typically do cd linux-3.16.1 ; patch -Np1 ../lcd3-support-3.16.1.patch to apply this patch.
  • Copy this kernel configuration file over into the kernel directory tree root.
  • Run make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- LOADADDR=0x80008000 uImage dtbs, etc. to build the kernel.  Alternately, if you’ve set up an in situ build environment on your BBB, you can copy this build script into the kernel directory tree root and run ./  The script starts a complete build process starting with make menuconfig, to create a uImage-structured kernel and associated kernel modules.
  • Copy arch/arm/boot/dts/am335x-boneblack.dtb into the correct location for your BBB.
  • Restart your BBB to confirm that the kernel works for you.  You’ll want to take a look at the output of dmesg to check which devices were initialized.
  • Power off, and mount the LCD3 cape.
  • Power up.

Under the hood

The provided patch simply enables a number of device tree nodes, representing devices on the ARM system-on-a-chip (SOC).  The nodes that need to be exposed to the kernel to use the LCD3 cape are 1) the onboard A/D converter, 2) the enhanced high-resolution pulse width modulation subsystem (ehrpwmss), used for controlling the panel backlight,  3) general-purpose I/Os used to drive the user LED and provide interrupt-driven key events.

Note that the provided kernel configuration script enables a number of kernel features, the most important of which are

  • Support for touch panels using the AM3358 onboard A/D,
  • User input drivers for GPIO keys, and for building the evbug module (to aid debugging key press events), and
  • OMAP DSS DRM support.

After rebooting your BBB with this new kernel, the LCD3 cape should become available as a framebuffer device /dev/fb0.

To find out more: