The Curious Engineer

All blogs / Electronics

Blog about WordPress, Electronics and Software Products

kaspars.net

I blog about WordPress, electronics, home automation and passive house related ideas. Subscribe to this blog via RSS, ActivityPub or email. Check my projects on GitHub and follow my personal accounts on Twitter, Mastadon, Bluesky and Instagram.

ElectronicsPHPNetworking

Posts
470 from 20 Sep 2007 to 8 Oct 2026
Posting
monthly (6 in the last year)
Kind
personal blog
Feed
https://kaspars.net/feed

2026 1

  1. Building High Capacity 18V/20Ah Battery for Makita Power Tools

2025 9

  1. Notes on Umami Analytics
  2. Setup Huawei MA5671A SFP GPON for Your Fiber ISP
  3. Setup Local Development Domain with Public DNS
  4. Custom Email Address for Kids Google Account
  5. Fix Dell Monitor Flickering and Ghosting on Mac
  6. Notes on Iron Sulphate for Graying Wood
  7. Notes on FAIR Package Manager
  8. The Potential of WordPress Comments
  9. Remote Logging for Mikrotik RouterOS

2024 7

  1. Customizing the Seriously Simple Podcasting Plugin
  2. How to Allow Unfiltered HTML to Editors on WordPress Multisite
  3. How to Rate Limit Requests to Specific PHP Files with Nginx
  4. Use AppleScript to Resize All Windows for Screen Recording
  5. Airbank D13 Puffer Pro Review and Teardown
  6. Bafang CAN Bus Programming
  7. USB-C PD65W Adapter and Charger for 18V and 20V Power Tool Batteries

2023 6

  1. Building a Solar Powered Lora Meshtastic Community Network
  2. Notes on PowerWalker VI 500 R1U UPS
  3. Notes on Beelink U59 Pro (Intel N5105) as a Home Server
  4. Notes on NEO Tuya Zigbee HomeKit Hub
  5. Nilan Compact P2 (GEO3 Polar) Review
  6. How Much Insulation is Too Much?

2022 8

  1. Insulation Efficiency of Electric Hot Water Heaters
  2. Notes on Tuya Air Quality Sensors
  3. Use Ventilation Exhaust Air for Space Heating and Hot Water
  4. Notes on Zemismart HomeKit Zigbee Hub
  5. Use Hiking DDS238-2 ZN/S Energy Meter with Home Assistant
  6. Use Aqara G2H Zigbee Camera Hub with Home Assistant
  7. Notes on Gree Amber Nordic / Prestige GWH09YD-S6DBA2A Heat Pump
  8. Notes on MySensors

2021 7

  1. WireGuard on MikroTik RouterOS
  2. Using Mini Split Heat Pumps for Space and Hot Water Heating
  3. Notes on Lollette LE3U PLC
  4. Remote Access Protocol for Reolink Battery Powered Cameras
  5. When Tuya SM-AW713Z (Zigbee) is Actually SM-AW713 (WiFi)
  6. Zehnder ComfoSpot 50 Communication Protocol
  7. Sonoff Si7021 Teardown

2020 11

  1. Mikrotik CAPsMAN is Awesome
  2. WireGuard Routing and Port Forwarding
  3. WireGuard Network Managers
  4. RSS Feeds for WordPress Plugin and Theme Support Forum Topics and Replies
  5. Store Contact Form 7 Submissions in TablePress
  6. WireGuard on Raspberry Pi
  7. CSS Minification for Server-Side Rendered Apps
  8. Using Unit Tests to Find WordPress Plugin Bugs
  9. How to Bulk Update the “Tested up to” Version for WordPress Plugins
  10. RAK7246 LoRaWAN Gateway Review
  11. Aranet4 Teardown

2019 17

  1. Sensor Pilot: A Progressive Web App (PWA) for Bluetooth Sensors
  2. Apple Podcasts Subscriptions
  3. Action Camera Lenses
  4. Ikea Trådfri vs Xiaomi Mijia and Aqara Zigbee Switches
  5. Sensors for Smart Passive House
  6. Checkout Pilot for WooCommerce
  7. How to Show and Hide Gutenberg Blocks in Context
  8. Solar Powered Raspberry Pi Camera
  9. Docker Volume Permissions
  10. PGP Subkeys for Keybase
  11. Notes on Sign In with Apple
  12. Custom Fields Metabox in Gutenberg Block Editor
  13. WordPress Product Demo Videos
  14. Notes on ESP8266 and MicroPython
  15. Top Posts in 2018
  16. Missing Dependencies and Open Source Contributions
  17. Homebrew for WordPress Development

2018 13

  1. Laravel Homestead for WordPress Theme and Plugin Development
  2. Block Context for Gutenberg
  3. Low Power ESP8266
  4. MicroPython Button Debounce
  5. Solid, WebID and OpenID Connect
  6. WordPress Development Environment as a Composer Dependancy
  7. Google Smart Lock for All
  8. MySensors, RFM69 and ATTiny841
  9. Composer, Travis and Bash Source
  10. Notes on Webpack Hot Module Replacement
  11. Retiring the WordPress Blogroll
  12. Relays for Home Automation
  13. Static Websites with Headless WordPress via REST API

2017 22

  1. MacOS Photos Backup
  2. Notes on Grunt
  3. Notes on Metalsmith and Jekyll
  4. KEY-ID FIDO U2F: How to Remove the Green LED
  5. Part 2: DIY Electric Skateboard Electronics
  6. Atom Autocomplete for WordPress Coding Standard (WPCS) Whitelist Flags
  7. 10 Years of Blogging
  8. Decoding the FVT ESC Firmware
  9. Poker 3 for Mac
  10. WordPress.com Usability Issues
  11. How to Get YouTube Channel Subscriber Count without Using API
  12. Part 1: DIY Electric Skatboard, Hub Motor & Trucks
  13. DIY Professional Wireless Headphones
  14. Display for Orange Pi Zero
  15. Orange Pi Zero GPIO Pins
  16. Wiring Maytech Hub Motors to Flier Twin ESC
  17. PiJack Ethernet Hat for Raspberry Pi Zero
  18. Orange Pi Zero as a Web Server
  19. Check the Progress of createinstallmedia
  20. The Electric Poodle Project
  21. Video Review of the Maytech 90mm Hub Motors for Electric Skateboards
  22. Starting a Video Blog

2016 11

  1. Habits
  2. MacBook Battery Time Remaining
  3. WordPress Blogroll Still Rolling
  4. Using 3.5mm and XLR Microphones with iPhone 7 over Bluetooth
  5. Instagram Stories are Awesome
  6. Why Drupal Faded
  7. C.H.I.P Computer is Awesome
  8. Create Excel .xlsx Files in PHP
  9. AI is Overrated
  10. Pebble Watch is Awesome
  11. Sensor Data in Physical Web URLs

2015 18

  1. Sync OS X Photos to Anywhere
  2. WordPress Admin Over SSL in Multisite
  3. The Future of Cryptography with Quantum Computing
  4. Contenful User Interface
  5. Two-Step Verification Setup Workflow
  6. NaNoWriMo 2015
  7. Select and Subscribe Bookmarklet for Feedly
  8. WordPress.com User Experience
  9. WooCommerce for Apple TV
  10. Version 0.2 of Contact Form 7 Controls
  11. PHP 7 Build Script
  12. Stop pushing the web forward
  13. PHP, Net-SNMP and OS X 10.10.5
  14. Home Batteries
  15. Storing Raspberry Pi Wi-Fi Network Settings on the SD Card
  16. Invisible Click Tracking
  17. Electric Penny Bicycle
  18. Social Networks and Vlogging in 2014

2014 24

  1. Mounting Shared Folder in VirtualBox on OS X for ESP8266 SDK
  2. ESP8266 Wi-Fi Module with Teensy and Arduino
  3. Concatenate Assets Instead of Loading Conditionally
  4. John Schuch on Electronics, Hackaday and Licensing
  5. Version 1.3.6 of Storage for Contact Form 7 Plugin
  6. Contact Form 7 Extras
  7. Brent Simmons on Social Media
  8. Jason Schuller on WordPress Theme Business
  9. Non-Blocking Javascript
  10. Use Nginx Reverse Proxy to Mirror GitHub API
  11. RSS and Shared Links in OS X Yosemite
  12. Getting Twitter Follower Count without Using API
  13. Widget Context 1.0 Now Available
  14. Export as CSV for Storage for Contact Form 7 Plugin
  15. Contact Form 7 not Sending Emails
  16. Contact Form 7 Storage Plugin
  17. Menu Performance in WordPress 3.9
  18. Enable Custom Page Template for Static Front Page in WordPress
  19. Minit Update: Better Cache Purge and a Filter to Exclude Files
  20. New Plugin: Custom 404 Error Page
  21. GitHub Gists SSH Access
  22. Håkon Wium Lie on CSS Regions
  23. Create Release ZIP Files from Git Tags
  24. Selling tinklog.com domain name

2013 43

  1. Use Javascript to Change Viewport Width Depending on the Window Size
  2. Matteo Spinelli on Open Source
  3. Minit Plugin and SSL
  4. Numeric Shortlinks Plugin Update
  5. Cache Purge for Minit
  6. Script Helper Plugin for WordPress
  7. USB Device Profile of Mobius Action Camera
  8. Reusable Software
  9. Disable Sitemap Creation in WordPress SEO
  10. Grand Rewrite
  11. Recursive PNGOUT
  12. New Plugin: Code Prettify (Syntax Highlighter)
  13. Recursive PNGOUT for Optimising All Images in a Folder
  14. Difference Between Tumblr and WordPress
  15. Minit Plugin and Web Fonts
  16. How to Stream Audio Over SSH Using SoX
  17. Disable Title Rewrite in WordPress SEO
  18. Content and CMS
  19. Photos and Timelapse Videos Using Avconv (ffmpeg)
  20. How to Remove Duplicate Files and Images with Duff in Linux
  21. Interview with Dougal Campbell
  22. Building Medium
  23. Glances System Monitor
  24. New Plugin: Numeric Shortlinks
  25. FeedBurner and WordPress
  26. Darkleech and Apache
  27. Automatic Theme Fallbacks for Post Formats in WordPress 3.6
  28. Auto Auto Update
  29. Chrome OS and Android
  30. Brian Shih on Google Reader
  31. WordPress, Draft and Revision Control
  32. Major Rewrite of Widget Context
  33. New Plugin: Widget Output Cache
  34. Allow Plugins to Short-circuit wp_nav_menu
  35. PHP Live Regex
  36. Incorrect 301 Redirects Due to a Bug in “Redirect Canonical”
  37. Twenty Thirteen WordPress Theme
  38. AVG, MAX, MIN on meta_value in WordPress
  39. Add Unique Rel Attribute to Each Gallery Within a Post
  40. WordPress Multisite Without a Domain Mapping Plugin
  41. Envato Could Allow 100% GPL Themes and Plugins
  42. Take Control of Your Widgets — My Presentation from WordCamp Norway 2013
  43. Speaking at WordCamp Norway 2013

2012 55

  1. Use PHP as a Proxy to Dropbox for Serving a Static Website
  2. Webscript.io
  3. Video: 50 Shades of WordPress by Andy Stratton
  4. Instagram Slideshow with AngularJS
  5. AngularJS
  6. How to Detect iPad Mini Using Javascript
  7. Just Ship It
  8. On OAuth
  9. Navigating Text Using Keyboard Shortcuts
  10. On GitHub
  11. New Plugin: Mobile Redirect for WordPress
  12. Death of CMS for Personal Publishing
  13. New Plugin: Minit
  14. Metroshare Social Sharing Plugin for WordPress
  15. How to Download and Migrate Attachments and Images from a Large WordPress.com Blog
  16. Place Postal Code Before City in Gravity Forms Address Fields
  17. Texts is a Rich Editor for Plain Text
  18. Tip: Terminal Keyboard Shortcuts
  19. The Magazine by Marco Arment
  20. Instagram Square
  21. The Complexities of Creating a Markdown Parser
  22. Use GitHub for WordPress Plugin Development
  23. Link: Moving Beyond End-to-End Path Information to Optimize CDN Performance
  24. Add WordPress Plugins via Symlinks
  25. Monitor Memcached with Munin
  26. Add Featured Images as Enclosures to Posts in WordPress RSS Feeds
  27. Add Custom Image Sizes to Media Uploader
  28. Fixing /etc/init.d/php5-fpm Init Script for PHP 5.4 (from Dotdeb) on Debian Squeeze
  29. PHP: header_remove
  30. WordPress — Expression Engine Reversion
  31. Widget Control Plugin Preview; Looking for Beta Testers
  32. Gas Mask — /etc/hosts Editor for Mac
  33. Develop and Work with WordPress Multisite Locally Using a Production Database
  34. 11px Verdana on Retina Displays
  35. Include Terms from Custom Taxonomy in Permalinks of Custom Post Types
  36. How to Use Manual Social Button Placement with the New Facebook Plugin for WordPress
  37. Super Easy Responsive Images with Viewport Cookies
  38. 워드 프레스 — WordPress in Korean?
  39. 3D DOM Element Inspector in Firefox
  40. History of Nginx
  41. Add Input Field Type as CSS Class in Gravity Forms
  42. New Plugin: Blog Archive by Categories
  43. Limit the Number of Words or Characters in WordPress Editor
  44. .po/.mo File Conversion Tool for WordPress Translators
  45. Add the Order of Widgets Within a Sidebar as a CSS Class to All Widgets
  46. Enable WordPress Dashboard Quick Login
  47. Page Stacks in UI
  48. How to Avoid Widow “Read More” Links in Post Excerpts
  49. Rasmus Lerdorf on the History and Future of PHP
  50. Add Custom URL Redirects to Your WordPress Dashboard Areas or Login Page
  51. How to Remove All Line Breaks from Text Using Regex
  52. How to Extract Heading Content (h1, h2, etc.) from an HTML String Using Regex
  53. How to Add Post Categories and Tags as #Hashtags to Tweets Automatically with the Simple Twitter Connect Plugin
  54. HTML5 Notepad App Update
  55. Round 2 of Tumblr vs. WordPress vs. Blogger: FIGHT!

2011 31

  1. Away Until February 2012
  2. How to Embed Your YouTube Channel as a Playlist
  3. Use Sticky Posts as Category Description
  4. How to Remove “View all posts filed under” Prefix from Link Title Attribute in Category Widget
  5. Check Who is Tweeting About Your Blog or Website
  6. Backblaze Review
  7. How to Automatically Add Image Credit or Source URL to Photo Captions in WordPress
  8. WebKit Bug: Anti-aliasing for @font-face fonts
  9. How to Exclude Sticky Posts from Adjacent Post Links
  10. Widget Context UI Update 2011, Version 2
  11. Request for Feedback: Widget Context UI Update 2011, v1
  12. Akismet, Akismet, Akismet
  13. Page Speed Score of 100/100 with WordPress
  14. The trend towards permissive licensing
  15. Multiple Galleries 0.4
  16. Self-hosted HTML5 Notepad App With Synchronization
  17. Remove Inline CSS and Line Breaks in WordPress Galleries
  18. A Simple PHP Utility to Migrate Emails Between Two IMAP/POP Accounts
  19. Replace WordPress Login Logo With Your Site’s Name and Link
  20. Add rel Attribute to Image Links in WordPress Galleries
  21. Enable WordPress Plugin, Theme Updates and Pretty Permalinks on Nginx
  22. How to Add Simple Google Site Search to Any Website
  23. Rewrite WP-Minify URLs for CSS and JS Offloading
  24. Page Speed 95/100
  25. Tabbed Widgets Update: Version 1.3.1
  26. Tabbed Widgets Update: Version 1.3
  27. Idea for WikiLeaks Identity
  28. Very Fast
  29. Google Sitelinks
  30. Design On January 2011
  31. How to Add Shortlink Support to Twitter Tools

2010 39

  1. The Price of Software and WordPress Themes
  2. Graphic vs. Web Design
  3. YSlow Grade A
  4. High Performance WordPress
  5. jQuery Script for Loading More Posts
  6. Matthew Carter on The Boston Globe
  7. Alexa on konstruktors.com
  8. Deriving and Linking GPL
  9. Linux Kernel, Modules and Plugins
  10. GPL Sockets
  11. Location Aware Login Prompt
  12. Automatic Updates for Plugins and Themes Hosted Outside WordPress Extend
  13. OpenID and PHP 5.3
  14. AJAX Cache Purge Cookie Plugin
  15. Laptop from Aboard the Shuttle Spacecraft
  16. Widget Context User Interface Update
  17. Bitmaps for Gnome Panel Background
  18. AJAX Cache Key Invalidation Plugin
  19. Steve is Listening (or iPhone 4)
  20. Standalone Script for Clearing APC Cache
  21. Chrome OS vs Android for Tablets
  22. Use AJAX for Cache Invalidation
  23. Regarding the ‘Like’ Button
  24. ‘Clear APC Cache’ Button for WordPress
  25. PHP APC Potential Cache Slam Averted for Key
  26. Moving Away from MediaTemple
  27. Patent Absurdity, a Documentary
  28. STS-131 in Orbit
  29. Multiple Galleries per Post/Page, WordPress 2.9 and 3.0 Update
  30. Coincidence
  31. Ubuntu's Lost Identity
  32. Notes on the 2010 WordPress Theme
  33. Remove index.html from the URL
  34. The Magic of Software (Licensing)
  35. The Unspoken Heroes of Web Design
  36. Sunday with Beethoven
  37. Egīls Pārups (parups.com) running a child theme of Portfolio Racer
  38. Smarter Cleaner Gallery
  39. Google humor: page speed suggestion

2009 54

  1. Web Infinity
  2. Automatically Escape HTML Entities of Code Fragments in Comments
  3. Semantics of Article Headline and Byline
  4. Tabbed Widgets 0.83
  5. Pāri jumtiem lido kaijas
  6. Tabbed Widgets Updated for WordPress 2.8
  7. Multiple Galleries per Post/Page
  8. The Pricey GPL Thought Experiment
  9. Basic Math of GPL
  10. Automatic Updates for Developer Hosted Themes
  11. Enable Automatic Updates for Plugins Hosted by Developers
  12. US Stimulus Package: $2588 to Every American
  13. Perfumes Named After Their Month of Release
  14. Education, Creativity and Individuality
  15. WhiteHouse.gov Runs Drupal
  16. Concatenate Javascript and CSS Files with WP Minify
  17. Global Debt Comparison
  18. OSCar 24H
  19. Hey, You’re OK
  20. PubSubHubbub & WordPress
  21. WordPress.com Redesign
  22. WordPress and Nginx
  23. Twitter’s Success
  24. No Font Embedding, Please
  25. Widget Context Plugin Added to the Official Plugin Repository
  26. Widget Context 0.4.1
  27. Member of the Free Software Fundation
  28. Palm WebOS and GPL
  29. Proprietary vs. Liberal vs. GNU GPL
  30. Widget Context Update for WordPress 2.8
  31. WordPress, Plugins and Open Source
  32. OpenID Plugin and WordPress 2.8
  33. Is iPhone 3G "S" Slow or Small?
  34. Free Software, GPL and WordPress
  35. Widget Context Plugin for WordPress 2.8
  36. Quick Reply Templates Plugin and WordPress 2.8
  37. CSS @Imports Suck
  38. Digital Britain and USB Flash Drives
  39. Remove Border from Image Links
  40. WordPress Admin Header Design Tweak, Take Two
  41. Tweaking WordPress Admin Header
  42. Matt Mullenweg Tonight on WordPress Weekly
  43. The Future of Media is Linux
  44. Open Source Logo for Labeling Things and Ideas Made in Latvia
  45. Design on April 2009
  46. Display Widgets Only on Certain Pages
  47. WordPress 2.8 bleeding-edge and WordPress_Module::_weak_escape()
  48. Widget Context Update — Word Count Check
  49. Cite, Quote and Twitter
  50. MediaTemple’s Disappointing Grid
  51. The New Pepsi Logo
  52. Rights to Read a Book Out Loud
  53. Jill Barber
  54. I still believe in two hearts

2008 75

  1. WordPress, GPL and Widget Context
  2. WordPress Plugins which I Use
  3. WordPress, Themes and GPL
  4. PHP Speedy and WordPress 2.7
  5. Post from Laconi.ca to WordPress
  6. Bitstream Charter Typeface
  7. 6:00 AM Podcast Theme Preview
  8. Squeeze the Header of the New WordPress 2.7 Dashboard
  9. Show Ads Only to Visitors Coming from Search Engines
  10. 22 queries, 1.459 seconds
  11. Come and See the New Design
  12. WordPress 2.7 Vertical Navigation
  13. What Designers Do
  14. WordPress UI Idea: Menu Item Sorting and Renaming
  15. WordPress 2.7 Administration UI Wireframes
  16. Tabbed Widgets Plugin Update (0.76)
  17. WordPress Dashboard UI Idea #3
  18. Open Share Icon that Looks Good at Small Sizes
  19. WordPress Dashboard — Idea No.3
  20. Microsoft, you finally got it!
  21. WordPress Dashboard UI Idea Update
  22. WordPress Crazyhorse UI vs. Kaspars’ UI Proposal
  23. Fully Functional Drag-and-Drop WordPress Dashboard Design Idea
  24. Idea for a WordPress Dashboard Layout & Design
  25. First Impressions of WordPress 2.7
  26. Tabbed Widgets Now Better than Ever
  27. Comments and the Future of Blogging
  28. Widget Context plugin for WordPress
  29. Saliņas Guļbūves (log houses) Powered by WordPress
  30. It is a Big Day Today
  31. Vote for Tabbed Widgets Plugin
  32. Comic Sans Design Challenge
  33. Is Your WordPress Theme Good Enough?
  34. Google recursion?
  35. What Makes a Great Journalist
  36. Idea: WordPress Theme for Audio & Video Podcast Websites
  37. Tabbed Widgets in the Wild
  38. Opera Web Standards Curriculum
  39. Tabbed Widgets Plugin for WordPress
  40. Getting PHP Speedy Plugin to Work with WordPress 2.6
  41. Running and Debugging WordPress 2.6 Beta
  42. Fixing «PostPost» and «Ozh’ Absolute Comments» Plugins
  43. Is Linux the New Black, the New Red?
  44. issuu — simple and intuitive document viewer
  45. Baltic Amber 1.32 — removed .youare section from your WordPress Dashboard
  46. OpenID SeatBelt plugin for Firefox
  47. In the World of Open Source
  48. Baltic Amber Themes in the Wild
  49. Baltic Amber Admin Themes & Schemes Now With a Colour Picker
  50. How to Be Your Own OpenID Provider and Use Your blog’s URL for Identification
  51. Baltic Amber Themes & Schemes for Your WordPress 2.5 Administration Panel
  52. Sounds of typing
  53. Eclipse PHP Development Tools (PDT) Video Tutorials
  54. Simple Fullscreen Text Editors for Students, Bloggers, Journalists and Writers
  55. Solving the Authentication and Plugin Errors After an Upgrade to WordPress 2.5
  56. Hello, WordPress 2.5
  57. WordPress Plugin of the Year: PHP Speedy
  58. We’re back with a free font suggestion — Liberation Sans
  59. Posting suspended while on vacation
  60. How to Create Beautiful and Elegant HTML Lists Using CSS
  61. Woolgathering — Daily Sketches and Drawings by Elizabeth Perry
  62. Web Design Critique: Consistency and Homogeneity of the Blog Layout
  63. Podcast of the week: WordPress Weekly
  64. Single page entry archive is available finally
  65. Suggestions for writing flexible and usable plugin
  66. WordPress Plugin: Custom Function Widgets
  67. Singer/songwriter Martin Confused — acoustic and absolutely fantastic
  68. Take-away photo and image positioning CSS styles for blogs — idea for a plugin
  69. Got a meta in a heada’ — supporting standards and welcoming IEn where n = 1…∞
  70. Browser Versions as a Switch of Rendering Modes — the Verdict
  71. IE8 Version Targeting — Understanding and Discussing the Arguments
  72. Browser Version Targeting vs. the Web Standards
  73. Say Hello to Morning Racer
  74. Podcast of the week: Boagworld
  75. Got permalinks broken after the latest WordPress update

2007 19

  1. Screenshots of a new 2-column WordPress theme
  2. Back to pencil and paper
  3. Updated AdSense Manager Plugin: Ad Slot IDs and Rounded Corners
  4. Standards Watch: Design Observer
  5. Preview of a new WordPress theme
  6. Introducing and explaining the nature of light
  7. Nanoblog, Tumblelog or Asides
  8. How Graphic is the Web Design, and How Web is the Graphic Design
  9. New WordPress Theme: Sans–serif Racer
  10. Logos and Names Are Not Headings
  11. Features Of the Upcoming «Times Racer» WordPress Theme
  12. Time Magazine’s Blind Love for Apple
  13. Agneka Simple — WordPress Theme
  14. Usage of the Term ‘Web 2.0’
  15. Finally Some Critical Writing About the Web
  16. Now It’s Your Turn Journalist
  17. What is Wrong with the Tech Journalism
  18. Good and Bad CSS Identifiers
  19. Optimize for search engines or users?