GreenAsh
All-natural web development, poignant wit, and hippie ramblings since 2004
GeneralWeb developmentSociety / politics / economyEssays / personal
- Posts
- 170 from 16 Jan 2005 to 7 Jan 2025
- Posting
- now and then
- Kind
- personal blog
- Feed
- https://greenash.net.au/atom/
2025 3
2024 3
2023 1
2022 10
- Ozersk: the city on the edge of plutonium
- GDPR-compliant Google reCAPTCHA
- Introducing: Instant-runoff voting simulator
- Scott Morrison is not keen on ABC interviews
- Is Australia supporting atrocities in West Papua?
- On the Proof of Humanity project
- Introducing: Hack Your Bradfield Vote
- I don't need a VPS anymore
- Email-based comment moderation with Netlify Functions
- Introducing GreenAsh 5
2021 8
2020 1
2019 1
2018 3
2017 5
2016 5
2015 7
- Introducing Flask Editable Site
- Cookies can't be more than 4KiB in size
- Robert Dawson: the first anthropologist of Aborigines?
- Splitting a Python codebase into dependencies for fun and profit
- Generating a Postgres DB dump of a filtered relational set
- Storing Flask uploaded images and files on Amazon S3
- Five long-distance and long-way-off Australian infrastructure links
2014 10
- Conditionally adding HTTP response headers in Flask and Apache
- Forgotten realms of the Oxus region
- First experiences developing a single-page JS-driven web app
- Mixing GData auth with Google Discovery API queries
- Australian LGA to postcode mappings with PostGIS and Intersects
- Database-free content tagging with files and glob
- Sharing templates between multiple Drupal views
- The cost of building a "perfect" custom Drupal installation profile
- Using PayPal WPS with Cartridge (Mezzanine / Django)
- Protect the children, but don't blindfold them
2013 9
- Some observations on living in Chile
- How smart are smartphones?
- Symfony2: as good as PHP gets?
- Current state of the Cape to Cairo Railway
- Money: the ongoing evolution
- Configuring Silex (Symfony2) and Monolog to email errors
- Show a video's duration with Media: YouTube and Computed Field
- Natural disaster risk levels of the world's largest cities
- Rendering a Silex (Symfony2) app via Drupal 7
2012 11
- Node.js itself is blocking, only its I/O is non-blocking
- Batch updating Drupal 7 field data
- How compatible are the world's major religions?
- How close is the European Union to being a federation?
- Syria, past and present: mover and shaken
- Israel's new Law of Return
- Introducing the Drupal Handy Block module
- Introducing the Drupal Template Field Variables module
- Flattening many-to-many fields for MySQL to CSV export
- Enriching user-entered HTML markup with PHP parsing
- Argentina: ¿que onda?
2011 16
- Django Facebook user integration with whitelisting
- A blood pledge to never vote for Tony Abbott
- Geeks vs hippies
- Don't trust Facebook with your data
- World domination by box office cinema admissions
- Kosher and the Land that G-d forgot
- Thread progress monitoring in Python
- FotoJazz: A tool for cleaning up your photo collection
- On the Torah and the Word of G-d
- Five good reasons to not take drugs
- Highway border crossings between Chile and Argentina
- Travel is a luxury
- Solr, Jetty, and daemons: debugging jetty.sh
- Jimmy Page: site-wide Django page caching made simple
- On and off
- The Art of Sport
2010 10
- The English Language and The Celtic Question
- Boycott GPS
- An inline image Django template filter
- An autop Django template filter
- Introducing GreenAsh 4
- Non-Shelbyville Sydney map
- Taking PHP Fat-Free Framework for a test drive
- Generating unique integer IDs from strings in MySQL
- Haiti coverage in OpenStreetMap vs Google Maps
- Refugee Buddy: a project of OzSiCamp Sydney 2010
2009 7
2008 11
- First DrupalCamp Australia was a success
- Listing every possible combination of a set
- A count of Unicode characters grouped by script
- Randfixedsum ports in C# and PHP
- Legislation and programming: two peas in a pod
- On the causes of the First World War
- Drupal and Apache in Vista: some tips
- Drupal at the 2008 Sydney CeBIT Expo
- The Net, ten years ago
- Step one: consume less
- Robotic garbage sorting
2007 8
2006 20
- GreenAsh ground-up videocast: Part III: Custom theming with Drupal 4.7
- GreenAsh ground-up videocast: Part II: Installing and using add-on modules with Drupal 4.7
- Freaky Teletubby hypnosis
- GreenAsh ground-up videocast: Part I: Installing and configuring Drupal 4.7
- Pleasure vs pro
- GreenAsh 3.0: how did they do it?
- Must have, must do
- Import / Export API: final thoughts
- Stop shining that light in my face
- Import / Export API: progress report #4
- Import / Export API: progress report #3
- Drupal lite: Drupal minus its parts
- Import / Export API: progress report #2
- On death and free minds
- Import / Export API: progress report #1
- An undo button for Drupal
- Australia's first Drupal meetup, and my weekend in Melbourne
- An IE AJAX gotcha: page caching
- A patch of flowers, a patch of code
- A novel style
2005 21
- One year of Drupal
- Draft dodging: the first and final version
- A plain-text program design standard
- Web 2.0, and other nauseating buzzwords
- The river without a river-bed
- What a mean word
- Room to swing a cat
- The glossy future
- Movies for the masses
- Busker bigotry
- In search of an all-weather bike
- Showing sneak previews in Drupal
- Aussie Daylight Savings PHP function
- Desire and suffering
- The fantasy genre: an attempt to explain its success
- Hierarchical URL aliasing
- Cross-vocabulary taxonomy hierarchies
- Basic breadcrumbs and taxonomy
- Vive la HTML
- Why junk collecting is good
- Always read the book first