#Tutorial
170 postsSeeed Xiao ESP32-C6 using Adafruit CircuitPython 9.1.1 blink sketch
How to get a Seeed Xiao ESP32-C6 board up and running with Adafruit CircuitPython 9.1.1 and blink an LED.
Read postUSB-C PD Power Bank to Resmed AirMini or Airsense CPAP
Is it cheaper to build your own solution to portable CPAP battery, or buy something off the shelf?
Read postEnable copy and paste on website that disable copy and paste
A tutorial on how to enable copy and paste on website that disable copy and paste. Specifically BrimFinancial
Read post100 ideas project retrospective (2023)
Looking back at 100 days of daily project ideas in 2023, what got built, what got scrapped, and why I burned out doing it.
Read postIdea 083 - Dried flower art installation
A staircase tunnel of glowing dried flowers in shards of glass
Read postIdea 67 - Deadmans vault SAAS SafePassage
End-to-end encrypted digital vault for storing and sharing sensitive information after death
Read postIdea 060 - The Little Prince in a million parts
Layered paper craft light boxes of the different chapters of The Little Prince
Read postIdea 053 - HTML and CSS photo book for Blurb
Instead of using Blurb publishing tools create the book using HTML and CSS
Read postIdea 041 - BioPunks Garden
Youre a Biopunk building their garden by selectively breeding for DNA markers in plants
Read postIdea 034 - 20 questions for people
A website that asks you 20 questions and tries to uniquely identify you in the world What are the optimal questions to ask?
Read postIdea 012 - LED Constellation Star map
Constellation map PCB made with overlapping LEDs
Read postYear in review 2021
Year in review 2021: 31,893 bird photos, 363 species, moving from Vancouver to Burnaby, and a year of working from home stats.
Read postJanuary 2020 brain dump
January 2020 brain dump: links on polyhedra, plotter art, LED lava lamps, capacitive touch PCBs, and tools for makers.
Read postESP8266 + Neopixel + FastLED - Workshop slides
Slides from the March 2019 ESP8266, NeoPixel, and FastLED workshop I taught at Maker Labs.
Read postPodcasts 2019
My February 2019 podcast rotation, with a starter episode picked for each show from Reply All to 99 Percent Invisible.
Read postFeb 2019 brain dump
February 2019 links on Arduino LED projects, an Etch A Sketch CNC, a zombie ESP8266 game, and James Clar's neon art.
Read postTravel Tips
What worked and what didn't on a two-month trip through South Korea, Vietnam, Cambodia, Thailand, and China.
Read postNov 2018 brain dump
November 2018 bookmarks on Wobble Garden, PCB art, SI playing cards, sand tables, and Islamic geometric design books.
Read postHow I buy bitcoins and Ethereum
How I buy Bitcoin and Ethereum from Canada using Coinbase, LocalBitcoins, and Quadrigacx, with the fees and signup time for each.
Read postEarthquake Kits for Vancouver
What I put in my Vancouver earthquake kit for under $30, parts list, and the personal items I tell people to add themselves.
Read postNotes from April 2017
April 2017 links: Google AnyPixel, a drinkable tequila cloud, the Cubic Cyphercon puzzle badge, ESP8266 deauther, and Shodan.
Read postWood working in vancouver
Where to do woodworking in Vancouver: rentable shops, intro courses at the Round House and Maker Labs, plus where to buy wood and tools.
Read post3D printing in vancouver
A guide to 3D printing in Vancouver: where to get prints done, what printer to buy, where to find models, and which shop to skip.
Read postESP8266 Tips
Working notes on the ESP8266: useful libraries, debugging the Arduino core, taming the 300mA current spikes, and deep sleep gotchas.
Read postNotes from January 2017
January 2017 links: HexCells, the Universal Play Machine, makerjs for laser drawings, Mosquitto MQTT, and Node-RED home automation.
Read postNovember 2016 interesting link dump
November 2016 link dump: open source car control, ESP8266 MQTT LED controllers, the Maslow CNC, Boldport, and the poop emoji oral history.
Read postFixing a broken particle photon firmware in windows for the L3D Cube
How to recover an L3D Cube Particle Photon from the red SOS blink by reflashing firmware on Windows.
Read postDay 100 - ESP8266 IFTTT button
An ESP8266 internet button that fires IFTTT recipes, built for an upcoming VHS workshop.
Read postDay 95 - IStandWithAhmed workshop
Source code for the IStandWithAhmed workshop, a binary count-up clock with a WS2811 strip and Arduino.
Read postDay 72 - fairy door workshop
Group photo from the fairy door workshop at VHS, with a longer write-up coming on the hackspace blog.
Read postDay 67 - Testing fairy door
Sample fairy doors built with friends to test designs for the upcoming Magic Fairy Door workshop.
Read postPaper bookshelf from DIY Furniture book
A paper prototype of the slot-together bookshelf from the DIY Furniture book, built before cutting it in real wood.
Read postLaser cut, layered circles
A 5-layer laser-cut paper circle design with a quick Inkscape tutorial on offsetting strokes with Stroke to Path.
Read postIntroduction to Home automation with the Raspberry Pi - Sunday November 24th 2013
VHS workshop on Raspberry Pi home automation: read temperature, motion, and door sensors, log them, and switch relays.
Read postIntro to Security, Passwords
Intro to password security: long passwords, multi-factor auth, password databases, and why to use different passwords per site.
Read postGetting started with your Raspberry PI
Step-by-step Raspberry Pi starter notes: NOOBS, SSH, AdaFruit WebIDE, and a Python blink script on the GPIO pins.
Read postUsing a Raspberry PI with a webcam to make time lapse videos.
Bash script for a Raspberry Pi and a cheap USB webcam that grabs a timestamped JPEG every ten seconds for time lapse.
Read postRaspberry PI as a FM transmitter
Turning a Raspberry Pi into an FM transmitter by abusing the spread-spectrum clock on GPIO pin 4.
Read postRaspberryPI - Find the MAC address and change the host name
How to find your Raspberry Pi's MAC address and rename its hostname so you can pick it out on a shared network.
Read postRaspberry PI controlling an Arduino via the pyfirmata protocol
Talking to an Arduino from a Raspberry Pi over USB with the pyFirmata protocol to read analog pins and drive PWM.
Read postRaspberry PI and the GPIO pins
Setting up a Raspberry Pi headless, wiring the GPIO pins to an LED and a magnetic door switch, and pushing readings to COSM.
Read postLaser cutter Tips, tricks and resources
A link list of places to find laser-cut files, project ideas, and inspiration for the laser cutter.
Read postLaser safe font - Laser cutter Tips, tricks and resources
Why laser-cut text falls apart in fonts with closed counters, and a switch to stencil fonts like Stencilano.
Read postThis has been a great year.
Year-end notes on VHS hitting 110 members, board work, Maker Faire prep, and house hunting in Vancouver.
Read postRental Guide are bad people, and suck.
A warning about Vancouver's Rental Guide, who advertise fake listings and sell a craigslist-rescraping service.
Read postRaspberry PI - Start up questions
Answers to the first questions a Windows user hits when booting a Raspberry Pi: power, USB current, login, keyboard layout.
Read postHow do you talk to someone over a common, instant message client (Gtalk, MSN) securely, with encryption
How to set up Pidgin with the Off the Record plugin to hold encrypted, verified chats over MSN or Gtalk.
Read postHow to be distracted
A play-by-play of how one Facebook reply, a Wikipedia rabbit hole, and a game of Winbolo killed an entire day.
Read postJavascript redirect when device has restarted
A small jQuery snippet that polls an embedded webserver after a reboot and redirects users once the device is back online.
Read postPlaya tips and tricks
Personal tips for Burning Man: tennis-ball kickstand, marked piss bottles, fresh socks, and bike lights.
Read postPlaying with app inventor for android
Building a simple sensor-reading Android app with Google App Inventor, and the features I wish it had.
Read postLight painting with Processing
A two-hour Processing.org sketch that does live light painting with a webcam, built for SHHH10 binary beers night.
Read postMerge/combined PDF documents into a single PDF
A free Java app for merging dozens of PDFs into one file, saving $90 in per-file print shop fees.
Read postCanon S90 CHDK How do you get to the record mode?
On a Canon S90 running CHDK, switch from playback to record mode with the shutter button, not the playback button.
Read postPHP email template
A tiny PHP pattern for loading an email body from a template file and substituting variables before sending.
Read postWhat are mysql-bin.000001, mysql-bin.000002...
What the mysql-bin.000001 files in your MySQL data directory are for, and how to safely disable and delete them.
Read postShut the Box
Shut the Box is an old French sailor dice game where players close numbered tiles 1 through 9 using two dice.
Read postShip
Ship is a five-dice game where players must roll 6, 5, and 4 in order before counting the remaining dice as crew points.
Read postInstructions on how to fix your computer, install windows applications on your mac, Hack someones Facebook, and make a million dollars from a World of warcraft clone.
A joke set of universal tech instructions involving a metal fork and your own face.
Read postSevens Out
Sevens Out is a two-dice game where players keep rolling and adding until they roll a seven, then pass the dice.
Read postSevens
Sevens is a six-dice game where pairs adding to seven are discarded and the rest of the dice count for your score.
Read postButter fried bacon wrapped filet Mignon
Recipe for bacon-wrapped filet mignon seared in butter and bacon grease with garlic, served with avocado salad.
Read postSettlers of Catan: Tricks and Tactics
Settlers of Catan: Tricks and Tactics
Read postFatal error: Call to undefined function: php_info() in /home/*/public_html/info.php on line 2
A quick fix for a PHP fatal error caused by calling php_info() instead of phpinfo().
Read postSequences
Sequences is a six-dice game where players score points for consecutive runs starting at 1, racing to 100.
Read postScrew Your Neighbor
Screw Your Neighbor is a card elimination game where players hold one card and try to avoid being stuck with the lowest.
Read postRound The Clock
Round the Clock is a two-dice game where players race to roll the numbers 1 through 12 in sequence.
Read postIs Aluminum is a conductor ?
A short note on why aluminum conducts both electricity and heat, and why it shows up in most heat sinks.
Read postQualify
Qualify is a five-dice game where each player rolls five times, setting aside at least one die per turn for the highest total.
Read postIdeas on how to advertise your stories
A list of ways writers can promote a short story before and after publication, from blogs to social media to forums.
Read postPig
Rules and history of Pig, a single-die push-your-luck game used in classrooms to teach probability.
Read postCakePHP - Security.level
Why CakePHP was logging users out at random, and the Security.level setting that fixed the session regeneration.
Read postGet special folders with SHGetKnownFolderPath
A small Windows C++ sample that calls SHGetKnownFolderPath to find the right per-user spots for app data and logs under UAC.
Read postCakePHP - Disable validation in controler
A one-line CakePHP trick to skip model validation in a controller so you can update legacy records full of bad data.
Read postCakePHP - Search bar
A CakePHP snippet that wires a search box to a paginated index, matching the query against story titles and author names.
Read postIndian Poker
A drinking card game where you lick a card to your forehead and bet drinks on whether yours is higher than everyone elses.
Read postCakephp - Add meta tags to views
How to inject per-view meta keywords and descriptions into a CakePHP layout using $scripts_for_layout and the HTML helper.
Read postIndian Dice
Rules for Indian Dice, a five-dice poker variant for when you want to play poker but cannot find the cards.
Read postCakephp - Session->setFlash is not working any more.
Fix for missing CakePHP setFlash messages after 1.2: the template needs an explicit session check and flash call.
Read postIce Cube Raft Race
A drinking game where each player fills an ice cube tray with beer and races to suck every slot dry through a straw.
Read postCakephp - Using the same view for multiple controler functions
How to reuse one CakePHP view across multiple controller actions by disabling autoRender and calling render() with the template path.
Read postHigh
Rules for High, the simplest two-dice game: each player rolls and the highest total takes the pot.
Read postGolf
Rules for Golf, a three-dice game also called Dragon Slayer where every non-double roll counts as a stroke over eighteen rounds.
Read postConvert HEX string to BYTE array, bug.
A C++ ConvertHexToBytes function posted as a find-the-bug puzzle using strtok_s and sscanf_s.
Read postFourteens
Rules for Fourteens, a ten-dice tavern banking game from the 1930s Midwest paying eight-to-one on fourteen hits of the point.
Read postFifty
Rules for Fifty, a quick two-dice game where doubles score five, double sixes score twenty-five, and double threes wipe you out.
Read postwinnt.h(5545) : error C2146: syntax error : missing ; before identifier ContextRecord
Fix for the winnt.h C2146 ContextRecord compile error: include windows.h before the offending header.
Read postDisarm The Bomb
A drinking game where four beer cans get taped into a cube, taped to your hands, and you have ten minutes to drink them.
Read postDirty Hearts
A card-flipping drinking game where every heart turns into a round of nosy questions and unwanted dares.
Read postDice 10,000
Rules and house variants for Dice 10,000, the five-dice push-your-luck game also called Zilch, Farkle, and Amish Dice.
Read postDanger Dice
A drinking game where six numbered pint glasses get filled and downed based on what comes up on a single die.
Read postCutpurse
Rules for Cutpurse, a two-dice tavern game where the low roller sets the point and players race to eleven.
Read postCubilete
Rules for Cubilete, a traditional Cuban five-dice game scored by poker-style hands of kings, queens, jacks, and aces.
Read postCrokinole
Notes on Crokinole, the Ontario-born tabletop flicking game, with a bit of its 1876 history and the basic rules.
Read postCrazy Eights
Rules for Crazy Eights, the classic shedding card game where 8s are wild and let you change the called suit.
Read postCentennial
Rules for Centennial, a three-dice race game where you hit the numbers 1 through 12 and back down again in order.
Read postBoss Dice
Rules for Boss Dice, a two-player San Francisco bar game scored on five-dice poker hands with two rerolls each.
Read postBooray
Rules for Booray, a French-Louisiana trick-taking card game with a five-card draw and ante-and-pot scoring.
Read postBarbudi
Rules for Barbudi, a two-player Mexican casino dice game where shooter and fader bet on which doubles come up first.
Read postAces In The Pot
Rules for Aces In The Pot, a two-dice gambling game where 1s feed the pot and 6s pass coins to your neighbour.
Read postHow to find the text column header of a CListCtrl in MFC
Short MFC helper that pulls the text of a CListCtrl column header by index using the underlying CHeaderCtrl.
Read postAdd/Remove operation is impossible, the code element Cxxx is read only
Fix for the Visual Studio error when adding a control event handler: delete the .ncb and .suo files, then rebuild.
Read postDump a CListCtrl
C++ snippet that walks an MFC CListCtrl and writes every row and column out to a CSV file.
Read postHow to create a menu and submenu on right click in MFC
MFC snippet that builds a right-click context menu with a nested submenu using CMenu and TrackPopupMenu.
Read postTroubleshooting CakePHP
A running list of CakePHP 1.2 fixes, starting with HtmlHelper::file moving to FormHelper.
Read postWordpress, Creating a RSS feed for each category.
The undocumented WordPress URL pattern for getting a per-category RSS feed: /?feed=rss2&cat=ID.
Read postC++ name mangling hell
Why exported C++ functions show up with mangled names like FirstGetBuf@US&NP and how extern "C" fixes GetProcAddress.
Read postHow to Move/Backup/Load a SVN repository
Three svnadmin commands to dump, move, and reload an SVN repository onto a new server.
Read postDefault action for vista power button
How to change the Vista Start menu power button from Sleep to Shut Down so a closed laptop stops draining the battery.
Read postThe procedure entry point_except_handler4_common could not be located in the dynamic link library msvcrt.dll
Notes on fixing the msvcrt.dll _except_handler4_common error caused by a Vista DLL landing on Windows XP.
Read postInsert new post in to wordpress from php
PHP snippet that builds a post object and calls wp_insert_post to add a new entry to WordPress 2.5.1.
Read postHow to make a CMinMaxAvg class
A small C++ CMinMaxAvg class that tracks count, total, min, max, and average for a stream of ints.
Read postHow to install PHPBB 3.0.1
Step-by-step install guide for phpBB 3.0.1 on an Apache/MySQL host, written for COMP2920.
Read postHow to block spam on a wordpress Blog
Five-step walkthrough for turning on Akismet in WordPress to kill almost all comment spam.
Read postNSIS - Tips
A growing snippet library for NSIS installers: opening folders, registering ActiveX files, checking if a process is running.
Read postRabo Encendido(Cuban Oxtail Stew)
Recipe for Cuban rabo encendido, a slow oxtail stew with port, sherry, chipotle, and Cajun seasoning.
Read postBar Tricks
Pointers to a Wired wiki of bar bet tricks and a video of 1000 ways to open a beer bottle.
Read postPHP strip non alphanumeric
A small PHP function that strips every non-alphanumeric character out of a string with preg_replace and ereg_replace.
Read postLast windows boot time, Install date
A one-liner using systeminfo and find to print the last Windows boot time or install date.
Read postThe quick and dirty way of getting the size of a file up to 4GB.
A short fseek and ftell snippet for grabbing a file size in win32 when the file is under 4GB.
Read postOpen DNS
Review of OpenDNS, with notes on how its NXDOMAIN redirects break utilities that depend on a real not-found reply.
Read postHow to disable AVG 7 temporarily.
Steps to turn off the AVG 7 Resident Shield from the Free Control Center when you need to.
Read postTom Kha Gai
Recipe for Thai coconut chicken soup with galangal, lemongrass, lime leaves, and chiles.
Read postIf you build it they will come mentality...
Notes on why a new website needs promotion, with tips on search engine submission, AdWords, and outreach.
Read postDisable and Enable MFC controls by name
Snippets for enabling, hiding, and moving MFC dialog controls by ID using GetDlgItem.
Read postHow to access Facebooks data
Walkthrough of the Facebook REST API using PHP to pull friends, check pairs, and look up user info.
Read postHow to make a facebook applcation.
Step-by-step build of a hello-world Facebook app with the PHP5 API, from app registration to login.
Read postHow to beat 9 grandmasters at once
A video on the trick for playing nine chess grandmasters simultaneously and not losing.
Read postNot alowing comments
Warren Ellis turns off comments and asks readers to reply via trackback instead, boosting his inbound links and Google rank.
Read postKeeping track of your comments
Comparing Subscribe-to-Comments plugins against coComment.com for tracking replies on the blogs you comment on.
Read postSMF - Redirect after reply or post
How to make Simple Machines Forum send users back to the topic after posting instead of dumping them on the board index.
Read postHow to burn .uif files
How to burn a MagicISO .uif file by decompressing it to an ISO and then writing it with ImgBurn.
Read postTips for pulling an all nighter
Tips for pulling an all-nighter at the computer: showers, dark editor themes, fruit, a 4 a.m. meal, and loud music.
Read postIf you know beans about chili, you know chili aint got no beans
My slow-cooker chili recipe with bacon and three kinds of beans, plus a note on the no-beans purist debate.
Read postInternet explorer (IE) caching AJAX requests.
Fixing IE's aggressive AJAX caching by appending a timestamp query parameter to the request URL.
Read postMistakes I have made
Ten blogging and web design mistakes I made over the years, from subdirectories and subdomains to too many RSS feeds.
Read postResize thumbnails in Wordpress
Two recipes for changing WordPress's default upload thumbnail size, one for pre-2.1 and one for 2.1+.
Read postWordpress robots.txt
A line-by-line walkthrough of my WordPress robots.txt file and why each Disallow rule exists.
Read postAlways add the www
A short .htaccess mod_rewrite snippet that 301-redirects the non-www version of a domain to the www version.
Read post5 MSN/Yahoo/GTtalk/AOL/IM Etiquette tips
Five etiquette tips for using MSN, Yahoo, GTalk and other IM clients without annoying the people on the other end.
Read postTimeless content
Notes on writing timeless blog content that stays useful 5 to 10 years after posting, with tips on dates and wording.
Read postPrint your own Yahtzee sheets
Printable Roll the Dice score sheets (Yahtzee clone) in PDF, with rules, history, and scoring strategy notes.
Read post12 Tips for creating a killer landing page.
Twelve rules for landing pages that convert, drawn from rebuilding a friend's AdWords campaign from 2 leads a day to 25.
Read postJohn Chow - How to make money online
Notes on trimming a 200-feed RSS list down to 10 and a quick review of John Chow's make-money-online blog.
Read post23 Tips for writing good blog posts and articles.
Twenty-three rules for writing readable blog posts, from snappy headlines to splitting long pieces and crediting sources.
Read postDel.icio.us bookmarks 2007-05-16 - 2007-05-22
Weekly del.icio.us dump: oscilloscope art, a homebrew lava lamp, an ice-bulb instructable, and a pile of dice game writeups.
Read postHow to make dice, and a brief history
A short history of dice from divining sticks to teetotums, plus printable origami paper dice for when yours go missing.
Read postFinding a good web host
Notes on picking a web host by disk space, uptime, and company age, with a comparison of GoDaddy, Dreamhost, and friends.
Read postDel.icio.us bookmarks 2007-04-24 - 2007-05-04
Weekly del.icio.us dump: RSS tips, a Vancouver clean-up event, the TeRK robot kit, and a WordPress theme generator.
Read postHOW TO - Pre-sliced bananas
A linked how-to for pre-slicing a banana inside its peel using a needle and thread.
Read postVIVO Media arts - upcoming workshops
Picks from VIVO Media Arts' upcoming workshop list: circuit bending, reverse animation, and digital photography.
Read postHippo Update Checker (Windows)
Hippo Update Checker scans installed Windows programs against an online version database and lists download links for any updates.
Read postThis Weeks Del.icio.us bookmarks 2007-04-02
Weekly del.icio.us dump on guitar stompboxes, an RGB mood lamp, ferrofluid Morpho Towers, Game of Life, and the Translink bus-stop hack.
Read postProject: The $5 Cracker Box IPod Amplifier
Built the MAKE magazine cracker box iPod amp around an LM386 to drive a small 8 ohm speaker for a friend's metal sculpture.
Read postThis Weeks Del.icio.us bookmarks 03/28/2007
Weekly del.icio.us dump covering a Van de Graaff generator, an LED sequence learner, GPS loggers, password crackers, and more.
Read postExtracting the IPTC data from an image in PHP
How to pull Picasa captions and other IPTC metadata out of an image in PHP using iptcparse and iptcembed.
Read postMark Jenkins - Plastic babies
Mark Jenkins makes cheap plastic babies from plastic wrap and clear tape, with ideas for turning them into LED-lit sculptures.
Read postFlickrs camera trend data
Flickr mines Exif data from uploaded photos to track which camera makes and models are rising or falling in popularity.
Read postSubscribe to Comments
A Wordpress plug-in that emails readers when someone replies to a post they commented on, installed with two file uploads.
Read postTrack your packages with Google Maps
Isnoop.net plots UPS, FedEx, USPS, and DHL package progress on Google Maps and spits out an RSS feed of pickups and deliveries.
Read postRss feeds in your inbox
Services like rssfwd.com and squeet.com turn any RSS feed into email updates for people who refuse to use a feed reader.
Read postGoogle talk
Notes on Google Talk, the XMPP protocol behind it, and how to connect to the GTalk network from Trillian with the Jabber plugin.
Read postView Product Key XP
Keyfinder, a freeware tool that pulls Windows and Office product keys out of the registry and can write a new key back.
Read postAudio Player Wordpress Plugin
The 1pixelout WordPress audio player plugin, a simple start/stop streaming player that also works outside WordPress.
Read postWhat are RSS feeds and how to use them
An intro to RSS feeds and feed readers like FeedDemon, Thunderbird, and Google Reader for tracking site updates in one place.
Read postCreate a invisible book shelf
An invisible bookshelf made by hiding an L bracket behind the bottom book of a stack.
Read postDisable Windows low disk space warning
A one-line regini command to set the NoLowDiskSpaceChecks registry key and stop Windows from nagging about a near-full drive.
Read post12 Rules for Choosing Domain Names
Twelve rules from SEOmoz for picking a domain name: keywords, dot-com only, easy to type, no hyphens or numbers.
Read postUSB Powered Charger for Two AA NiMH/NiCd Cells
Plans for a USB powered fast charger for two AA NiMH or NiCd cells, based on Stefan Vorkoetter's circuit.
Read postHow to check your MAC address of your network cards
A short walkthrough for finding the MAC address of a Windows network card using ipconfig /all from the command prompt.
Read post