-- Leo's gemini proxy

-- Connecting to tilde.pink:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

C Vu articles

I wrote for the ACCU.org members-only journal “C Vu” (ISSN 1354-3164, not formally peer-reviewed but well-edited) starting from 1995. I found it to be a good learning environment: if I wrote an article with a misunderstanding, someone would correct it (and the journal being members-only reduces the odds of that situation later being misjudged by an overly-hasty potential employer or similar). The journal’s style has changed a bit since the early days. Here is a list of my articles for reference.

Mental models in design. C Vu, 35(5):3-4, November 2023.

Standard libraries are faster than you think. C Vu, 35(3):10, July 2023. (vector implementations and Box64-style emulation)

Avoiding 4 in Customer-facing Numbers. C Vu, 35(2):5-6, May 2023. (modifying C++17 charconv base-9 for tetraphobia)

Developing on a Chromebook. C Vu, 34(5):8, November 2022.

On Code Optimisation Part 1 in CVu 34.3. C Vu, 34(4):9, September 2022.

Inline Confusion. C Vu, 34(3):7, July 2022. (why use static inlines in plain C)

A C++ Quiz. C Vu, 33(6):9-10, January 2022.

Working for Equity. C Vu, 33(4):7, September 2021. (on entrepreneurs’ recruitment issues)

The Tips Jar. C Vu, 33(3):13, July 2021. (‘fix a class of faults’ + partial Python 3 on RISC OS)

Avoid “proofreading golf”. C Vu, 33(2):8, May 2021.

Revival of RISC OS? C Vu, 33(2):6, May 2021. (for introductory coding on low-end Raspberry Pi models, but Python still on 2 and gcc still pre-C++11)

Machine-sensitive Makefiles. C Vu, 33(2):4, May 2021. (via conditional macros set by shell file-existence tests)

Professionalism in programming: does it translate? C Vu, 33(2):7, May 2021. (敬业程序员协会/敬業程序員協會)

Making a FreeBSD Port. C Vu, 32(6):3-4, January 2021.

Is Gitee China’s GitHub? C Vu, 32(5):5, November 2020.

GPL out, Apache in. C Vu, 32(5):11-12, November 2020. (GPL now widely misunderstood as denying commercial use of code)

Book review: Girl Decoded by Rana el Kaliouby and Carol Colman. C Vu, 32(4):23-24, September 2020.

Jumping around in Emacs. C Vu, 32(4):12, September 2020.

When Will Python 2 End: An Update. C Vu, 32(3):9, July 2020. (Python 2 due to be in Ubuntu 20.04 till 2025 or paid till 2030; unclear how long Pip’s servers will support pip 20 after 2021; Python 2 *was* going to be in CentOS till 2029—update December 2020: CentOS changed this to end-2021 and RHEL8/OEL8 to 2024)

Static analysis in GCC and Clang. C Vu, 32(3):11, July 2020.

The trouble with GitHub forks. C Vu, 32(3):10, July 2020. (The path of least resistance is to let them go out of date. Update: by November GitHub had implemented a way to send pull requests downstream to forks, and in 2021 made “Fetch upstream” a UI option.)

Thoughts on “Computational Thinking”. C Vu, 32(2):8-10, May 2020. (Pitfalls of trying to assess it in children; see also correction in C Vu, 32(3):20, July 2020)

Adding Python 3 Compatibility to Python 2 Code. C Vu, 32(1):7-8, March 2020.

“HTTPS Everywhere” Less Harmful Now. C Vu, 32(1):5-6, March 2020. (A follow-up to my 2016 article. The protocol has improved and public Wi-Fi’s treatment of HTTP has worsened, but low-income users on old devices are still a concern.)

Letter to the Editor. C Vu, 32(1):20, March 2020.

Why I don’t develop for iOS. C Vu, 31(6):5-6, January 2020. (It costs too much just to find out if your app is allowed or not)

Python 2 has setdefault. C Vu, 31(6):9, January 2020. (I somehow missed it for 19 years)

How to stay out of a webmaster’s bad books. C Vu, 31(6):13, January 2020. (Try identifying your program in the User-Agent, and *save* your downloads instead of hammering my server thousands of times a day)

GitHub’s Crazy Contribution-Graph Game. C Vu, 31(1):8-11, March 2019. (How I ended up playing it as a favour, with unintended consequences like delaying commits to other days. Current streak 1260; previous streak 1026)

China’s New AI School Textbooks. C Vu, 30(6):13, January 2019. (I suspected the “AI” word was imposed on the authors by the series editor)

When Will Python 2 End? C Vu, 30(6):8, January 2019. (Canonical’s commitment to 10 years of support for Ubuntu 18.04 meant they were promising to maintain Python 2 until 2028, but they later clarified that support after 2023 is paid-only.)

Don’t Brush Bugs Under The Carpet. C Vu, 30(5):4, November 2018. (A PrimerPooler user stopped giving me details on finding a local workaround)

One SSH Key Per Machine! C Vu, 30(4):13, September 2018. (A common private key is a bad idea, especially if an admin’s new assistant accidentally puts it on the Web)

Don’t Assume Any Non-Zero exit() Will Fail! C Vu, 30(3):8, July 2018. (Unix tools using POSIX wait() get only the low 8 bits of your exit code)

A Brief Introduction to Docker. C Vu, 29(5):8, November 2017.

Why I Avoid PHP. C Vu, 29(4):9-10, September 2017. (Existing PHP code tends to be worse than it looks)

Thonny: Python IDE for Beginners (review). C Vu, 29(4):5, September 2017. (Update: beware Thonny 4 contains a pro-Ukraine message which might get you in trouble in some countries; Thonny 3 is not affected)

A Hollywood Take on Dangling Pointers? C Vu, 29(2):6-7, May 2017. (A parody film script to explain a danger of cstr)

Delivering Bad News from QA. C Vu, 28(5):4-5, November 2016. (The wrong approach has cost people their careers)

Random Confusion. C Vu, 28(4):10-11, September 2016. (BSD-manual unclarity on rand() vs random(), plus XorShift)

An Introduction to OpenMP. C Vu, 28(4):8-9, September 2016.

Why Floats Are Never Equal. C Vu, 28(4):5, September 2016. (Well they are *sometimes*, but unexpected things happen e.g. compiler changes precision on register spill)

How to Block Russia From Your Website. C Vu, 28(3):9-10, July 2016. (Russia’s anti-extremism law is too indiscriminate; even some ACCU code reviews could count as “extremist” by Russian standards)

Book review: Make Games With Python by Sean M. Tracey. C Vu, 28(1):23, March 2016. (I’m sorry to say I couldn’t really recommend giving this book to a child)

“HTTPS Everywhere” Considered Harmful. C Vu, 27(6):8, January 2016. (Especially for people whose only connection to the Internet is via 2G GSM, reading public-service articles that could be identified by traffic analysis anyway)

Use the DOM Inspector. C Vu, 27(4):22, September 2015.

WattOS R9 Worth Knowing About. C Vu, 27(4):13, September 2015. (old hardware)

Ode to the BBDB. C Vu, 27(4):5, September 2015.

Letter to the Editor. C Vu, 27(3):21, July 2015.

Golang programming on AppEngine. C Vu, 27(3):8, July 2015.

Simple Android programming with WebKit. C Vu, 27(1):13-14, March 2015.

Using ACCU Membership for Unique IDs. C Vu, 27(1):5, March 2015.

Perl is a Better Sed, and Python 2 is Good. C Vu, 26(5):10-12, November 2014.

Checking Websites for Specific Changes. C Vu, 26(3):8, July 2014.

From Raspberry Pi to the Cloud. C Vu, 26(1):17-18, March 2014. (porting to AppEngine and OpenShift 2)

The Soundtrack to Code 2: Going Classical. C Vu, 26(1):11, March 2014.

The Windows XP Threat: A Call to Action. C Vu, 25(5):7-8, November 2013. (I tried to encourage webmasters to detect and warn their Windows XP visitors to upgrade to GNU/Linux)

Future-Proofing your Python Scripts. C Vu, 20(2):18, April 2008. (Speculation on making Python 2 code compatible with Python 3 which wasn’t then complete)

An NSLU2 “Slug”. C Vu, 19(5):4, October 2007.

One Laptop per Child. C Vu, 19(5):18, October 2007.

A Brief Introduction to Cygwin. C Vu, 19(4):8, August 2007.

Customising a Diskless Linux. C Vu, 19(3):16-17, June 2007. (Knoppix remastering for a media-desk application)

A Python Gotcha. C Vu, 19(1):9, February 2007. (Floating-point precision loss could lead to an infinite loop in an early version of Gradint’s scheduler)

Book review: Web Accessibility: Web Standards and Regulatory Compliance by Thatcher et al. C Vu, 19(1):32, February 2007.

QEMU as a Means of Software Distribution. C Vu, 18(3):20, April 2006. (At the time it could run virtual machines without needing administrator privileges)

Putting Old Modems to Use. C Vu, 18(1):17, February 2006. (fax, SMS, textphone, dialer)

ROX Filer. C Vu, 17(6):31, December 2005. (brief review)

Recycling throwaway hardware. C Vu, 17(5):39-40, October 2005. (Debian-3.1 based scripts to navigate educational recordings on a monitorless PC for a refugee)

Cross-Compiling Python Scripts into Windows Applications. C Vu, 17(3):16, June 2005. (Used by Gradint; works with Python 2.3 but not 2.5+)

Automatically Generating Word Documents. C Vu, 17(2):26-28, April 2005.

Book review: Official Eclipse 3.0 FAQs by John Arthorne and Chris Laffra. C Vu, 17(1):42, February 2005 (Web only; printed in C Vu, 18(3):39, April 2006).

Automatically-Generated Nightmares. C Vu, 16(6):30, December 2004. (on being asked to debug a 100-page printout of automatically-generated code)

Book review: Contributing to Eclipse: Principles, Patterns and Plug-ins by Erich Gamma & Kent Beck. C Vu, 16(5):36, October 2004.

Using a Live Linux Distribution. C Vu, 16(4):19, August 2004.

I Wish They’d Use the Standard. C Vu, 15(5):23, October 2003. (Bugs in early versions of FoxMail)

Intrusive Identifiers. C Vu, 15(3):16, June 2003. (Undefine format, divert and shift before running English text through M4)

TCC review. C Vu, 15(3):18, June 2003.

Book review: Reader’s Digest How to do just about anything on the Internet. C Vu, 15(3):34, June 2003. Not recommended.

A Python Project. C Vu, 15(2):24-26 and 15(3):21-24, April & June 2003. (2-part article about an early version of Gradint’s code)

A Programmer’s View of Book Writing. C Vu, 15(1):14, February 2003.

PDF Problems—Can We Learn From Them? C Vu, 14(6):26, December 2002. (Acrobat 4 failing to properly tell users it can’t handle version 5)

Don’t Touch That Clock! C Vu, 14(4):17, August 2002. (overnight wget downloads crashed by NTP-sync)

An Introduction to 4DML. C Vu, 14(4):26-27, August 2002. Also: 4DML Revisited. C Vu, 14(5):23, October 2002.

Quick thought on Ruby. C Vu, 14(4):11, August 2002. (it’s more like Perl than Python)

On Keeping Notes. C Vu, 14(3), June 2002.

On Re-Inventing the Wheel. C Vu, 14(2), April 2002.

My Top 25 Unix/Linux Utilities. C Vu, 14(1), February 2002.

Book review: Java and XSLT by Eric Burke. C Vu, 14(1), February 2002.

Book review: Data Structures & Algorithms in Java 2ed by Michael Goodrich & Roberto Tamassia. C Vu, 13(4), August 2001.

POVray review. C Vu, 13(3), June 2001.

Emacs (long-term review). C Vu, 13(3), June 2001.

Conference review: ACM CHI 2001. C Vu, 13(2), April 2001.

Book review: Professional Linux Programming by Neil Matthew & Richard Stones. C Vu, 13(2), April 2001.

Some Thoughts on Academic Papers. C Vu, 13(1), February 2001.

Various Ergonomic Equipment. C Vu, 13(1), February 2001.

Apache Cocoon and XML Publishing. C Vu, 12(6), November 2000.

ED: Should You Know It? C Vu, 12(6), November 2000. (Also correction in C Vu, 13(1), February 2001.)

Visual Control and COM. C Vu, 12(5), September 2000.

Appropriate Teaching. C Vu, 12(5), September 2000.

SDF and FunnelWeb review. C Vu, 12(5), September 2000.

(Shell script interfaces in) LUCI C Vu, 12(5), September 2000.

Burning Your Own CDs. C Vu, 12(5), September 2000.

Book review: Designing Effective Speech Interfaces by Susan Weinschenk & Dean Barker. C Vu, 12(5), September 2000.

Book review: Teach Yourself GTK+ Programming in 21 Days by Donna Martin et al. C Vu, 12(5), September 2000.

Book review: Business Modelling with UML by Hans-Erik Erikson & Magnus Penker Overload 39, 2000.

ISO 8601: A Standard You Should Know About. C Vu, 12(4), July 2000.

An Introduction to Fuzzy Logic. C Vu, 12(3), May 2000.

A Personal View. C Vu, 12(3), May 2000. (Fear of being criminalised by unintentional patent infringement)

An Issue of Patents. C Vu, 12(3), May 2000. (on adequate disclosure to prove prior art)

Reinventing Wheels. C Vu, 12(3), May 2000.

The Clock is Still Ticking. C Vu, 12(3), May 2000. (S2G in 2038 and Y2K sliding-window fixes)

An Introduction to CGI Programming. C Vu, 12(2), March 2000.

Domain Name Registration. C Vu, 12(2), March 2000. (negative experience helping a friend register a .net domain)

Doc++ review. C Vu, 12(1), January 2000.

Is there a “best language”? C Vu, 12(1), January 2000.

Syntax Highlighting. C Vu, 12(1), January 2000.

Commenting Your Work. C Vu, 11(6):18, September 1999.

On Configurability and Consistency. C Vu, 11(6):10-11, September 1999.

Microsoft Visual Studio 6.0 Enterprise Edition review. C Vu, 11(6):70-76, September 1999. (Also some GNU/Linux tools that worked better)

Book review: Lingo Sorcery (2nd ed) by Peter Small. C Vu, 11(6):67, September 1999.

Difference Structures in C/C++. C Vu, 11(5):13-14, July 1999. (on writing C or C++ in the style of Prolog)

A Personal View. C Vu, 11(5):10-12, July 1999. (on being made anxious by university careers-service rhetoric)

What’s In a Struct? C Vu, 11(4):23-33, May 1999.

Using Bit Patterns. C Vu, 11(4):47-48, May 1999.

Tools and Un-smart Pointers. C Vu, 11(4):50-51, May 1999.

Pointers in Hyperspace. C Vu, 11(4):48-49, May 1999.

Compile Time Assertions in C Revisited. C Vu, 11(4):51-52, May 1999. (Jon Jagger made a correction to this in C Vu 11(5):39-42, July 1999.)

So You Want to Do Research? C Vu, 11(4):15, May 1999. (The 10 funniest responses to my informal enquiries)

Writing for Voice Synthesisers. C Vu, 11(3):13, March 1999.

Looking Stupid v Being Stupid. C Vu, 11(3):6-7, March 1999. (on admitting one has learned from mistakes rather than covering them up)

Boolean Assumptions. C Vu, 11(3):18, March 1999.

Assumptions. C Vu, 11(3):12-13, March 1999.

Book review: A Programmer’s Guide to Sound by Tim Kientzle. C Vu, 11(3), March 1999 (Web only, not in printed issue).

Book review: Software Reliability Engineering by John Musa. C Vu, 11(3):64-65, March 1999.

Book review: Interface Design: The Art of Developing Easy-to-Use Software by Peter Bickford. C Vu, 11(3):65-67, March 1999. (Includes some accessibility-related aggression, plus author’s response. I’m glad to see Apple improved since then.)

A Personal View of Microsoft Visual C++ C Vu, 11(3):70-71, March 1999.

Naming Conventions for Spoken Readability. C Vu, 11(2):26-28, January 1999.

The Scope of ACCU. C Vu, 11(2):4, January 1999. (on a ‘C++ vs Java’ discussion)

letter about Japanese encodings C Vu, 11(2):15-16, January 1999.

TeraTerm Pro 2.3 & Various X servers (review). C Vu, 11(2):70-72, January 1999.

Security Implications of Running a Web Gateway. C Vu, 11(1):36-38, November 1998.

A Letter on Java. C Vu, 11(1):28-29, November 1998. (Character-encoding handlers in early versions)

Ming GNU C++ and Programmer’s File Editor review. C Vu, 11(1):59-61, November 1998.

An Overflow Problem. C Vu, 10(3):37-40, March 1998. Also: A Random Missed Message. C Vu, 8(4):21-22, May 1998 (plus various responses from others in the same issue)

Symptoms of a Composer Doing Too Much With Computers. C Vu, 10(3):12, March 1998.

Why I left GeoCities. C Vu, 10(3):15, March 1998. (Their newly-added popup advertising spoiled my page’s accessibility for blind people)

Bill Gates’ Lecture at Cambridge (report). C Vu, 10(2):4-5, January 1998.

A Little Thought on Qualifications. C Vu, 10(1):44-45, November 1997.

Automatic Optimisation Aids. C Vu, 10(1):45-46, November 1997.

Book review: Beyond MIDI: The Handbook of Musical Codes. C Vu, 9(6):72-73, September 1997.

Palmtop C++. C Vu, 9(5):38-40, July 1997. (This was about programming the Psion Series 3a)

Dr Dobb’s Journal (report). C Vu, 9(5):6-7, July 1997. Also C Vu, 9(6):6-7, September 1997; C Vu, 10(1):8-10, November 1997; C Vu, 10(2):15, January 1998.

ACCU and the Disabled. C Vu, 9(4), May 1997.

The “Professional Touch”: Using Double Bezier Cubics. C Vu, 9(4), May 1997. (Trying to improve my music program’s font)

Introducing PCM. C Vu, 9(4), May 1997.

Randomness. C Vu, 9(3):7-9, March 1997. (Responses were in the following issue)

Automatic Calibration and “Heuristic” Programming. C Vu, 9(3):10, March 1997.

Computer Music Composition. C Vu, 8(6):40-41, September 1996.

HP LaserJet Programming (review). C Vu, 8(5):62, July 1996.

Writing Applications for the Visually Impaired. C Vu, 8(4):26-28, May 1996.

Parallel and Distributed Background Processing. C Vu, 8(4):30-32, May 1996.

Multi-Player Games. C Vu, 8(4):24-26, May 1996. (I wrote a networked text-adventure for blind students at New College Worcester)

Using Persistent Data. C Vu, 8(3):34, March 1996.

Increase your Program’s Execution Speed? C Vu, 8(1):27-32, November 1995.

Various learning discussions (in letters to the editor etc) “Write First—Join After” C Vu, 7(4), May 1995; C Vu, 7(5):30-32, July 1995; C Vu, 7(6):44-47, September 1995; C Vu, 8(1):12-13, November 1995; C Vu, 8(3):-56, March 1996; C Vu, 8(4):15, May 1996; C Vu, 9(2), January 1997; C Vu, 9(4), May 1997; C Vu, 9(6):18-19, September 1997; C Vu, 10(1):16-18, November 1997.

There might be a couple more early ones I missed in this list.

Legal

All material © Silas S. Brown unless otherwise stated. Acrobat is an Adobe trademark. Android is a trademark of Google LLC. Apache is a registered trademark of The Apache Software Foundation. AppEngine is possibly a trademark of Google LLC. Apple is a trademark of Apple Inc. Debian is a trademark owned by Software in the Public Interest, Inc. FreeBSD is a registered trademark of the FreeBSD Foundation. GitHub is a trademark of GitHub Inc. HTC and Touch are trademarks of HTC Corporation. Java is a registered trademark of Oracle Corporation in the US and possibly other countries. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. Microsoft is a registered trademark of Microsoft Corp. Python is a trademark of the Python Software Foundation. Raspberry Pi is a trademark of the Raspberry Pi Foundation. RISC OS is a trademark of Pace Micro Technology Plc which might now have passed to RISC OS Ltd but I was unable to find definitive documentation. Unix is a trademark of The Open Group. Wi-Fi is a trademark of the Wi-Fi Alliance. Windows is a registered trademark of Microsoft Corp. Any other trademarks I mentioned without realising are trademarks of their respective holders.

-- Response ended

-- Page fetched on Mon May 6 03:33:57 2024