Generated by All in One SEO Pro v5.0.0.1, this is an llms.txt file, used by LLMs to index the site. # Half-Elf on Tech Thoughts From a Professional Lesbian ## Sitemaps - [XML Sitemap](https://halfelf.org/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Articles](https://halfelf.org/articles/) - I write about finance, management and economy, my book “Money Studies” is out now. No posts were found. Join 900+ subscribers Stay in the loop with everything you need to know. Sign up - [On Beyond ABS: Integrating ACF Pro and MLB](https://halfelf.org/2026/on-beyond-abs-integrating-acf-pro-and-mlb/) - Building a new site and using ACF to automate the things that are a pain let me spin up features in lightning speed and have a baseball site look like the Show. - [No More Ollama Drama: A Private AI](https://halfelf.org/2026/no-more-ollama-drama-a-private-ai/) - Running your own AI for a private site isn't all that hard to do, but it is hard to get it right. With some trial and error (lots of errors) you can run Ollama. - [FAIR: Successes, Lessons, and What's Next](https://halfelf.org/2026/fair-successes-lessons-and-whats-next/) - FAIR 1.3 is out, but the rollercoaster isn't over. The "chicken and egg" of funding neutral infrastructure has never been tougher. But we keep going. - [Manage Your Social Media Calendar: Post Iz Easy](https://halfelf.org/2025/manage-your-social-media-calendar-post-iz-easy/) - Running your own Social Media poster? Auto post from WordPress? Even to Xitter? Welcome to Postiz. Iz posting. - [Free UpTime by Automagically Watching the Watchers](https://halfelf.org/2025/free-uptime-by-automagically-watching-the-watchers/) - A look between multiple different (mostly) self hosted ways to monitor the uptime of services and websites and more. - [AI Solves Site Speed And Won’t Make You Obsolete](https://halfelf.org/2025/ai-solves-site-speed-and-wont-make-you-obsolete/) - I have a conflicting relationship with AI. I like to think of it as a realist view of a tool that can level me up without making me worthless. - [We Should Free All WordPress Plugins and Themes](https://halfelf.org/2025/we-should-free-all-wordpress-plugins-and-themes/) - What if we democratized everything in WordPress, and not just publishing? What if we freed all themes and plugins? How far could we fly? - [Toxic Users: The Unforgiven and the Danger of Unbanning](https://halfelf.org/2025/toxic-users-the-unforgiven-and-the-danger-of-unbanning/) - Toxic users can poison an online community. They harass, threaten, and exploit. Some are beyond redemption. This is why unbanning the unforgiven is a dangerous gamble. - [Automate Your Site Checks with Cron (and WPCron)](https://halfelf.org/2025/automate-your-site-checks-with-cron-and-wpcron/) - Want to monitor all your cron jobs on your WordPress site? You can do this, but it's messy. Really messy. - [Cute Bears, Uptime Kuma, and Docker](https://halfelf.org/2025/cute-bears-uptime-kuma-and-docker/) - Chilling on my couch with an iPad and I built out my own replacement for UptimeMonitor. - [Monstrous Site Notes](https://halfelf.org/2025/monstrous-site-notes/) - MonsterInsights has a Site Notes feature, and you can automate them. It's fun. - [Meilisearch at Home](https://halfelf.org/2025/meilisearch-at-home/) - Integrating Meilisearch with your WordPress site isn't actually that hard, and it sure make search faster. - [Cookie Consent on Hugo](https://halfelf.org/2025/cookie-consent-on-hugo/) - Cookie Consent matters, even when your site is a tidy little static site that only makes one cookie call. - [Open for Employment - No Longer!](https://halfelf.org/2024/open-for-employment/) - I am currently open for employment offers. -- EDIT! No longer! - [Replacing the W in Your Admin Bar](https://halfelf.org/2025/replacing-the-w-in-your-admin-bar/) - Ever wanted to replace the W in your WordPress admin bar? Wanted to remove the items you don't need? You can do that and more! - [Editor Sidebar Madness and Gutenberg](https://halfelf.org/2024/editor-sidebar-madness-and-gutenberg/) - Making a document sidebar in Gutenberg isn't hard at all, but it is messy and confusing when you're starting out. - [Small Hugo, Big Images](https://halfelf.org/2024/small-hugo-big-images/) - Resizing images in Hugo is neither obvious nor easy, but it is doable! - [Hugo and a Lot of Images](https://halfelf.org/2024/hugo-and-a-lot-of-images/) - When your Hugo site has a lot of images, you have to take additional measures. - [Why NOT WordPress?](https://halfelf.org/2024/why-not-wordpress/) - I've taken my oldest site and moved it away from WordPress. Why? It's complicated. - [Plugins: If I Did It...](https://halfelf.org/2024/plugins-if-i-did-it/) - When you do the crime and provide evidence you did it, it made my life easier. - [Plugins: It's the Wild Wild West](https://halfelf.org/2024/plugins-its-the-wild-wild-west/) - In which we should ban someone because they didn't want to work with another developer. - [Plugins: Fake Plugins Are Your Fault](https://halfelf.org/2024/plugins-fake-plugins-are-your-fault/) - The hacked code is not coming from Hello Dolly. It's just not. - [Plugins: How Not To Report](https://halfelf.org/2024/plugins-how-not-to-report/) - Here's how you give a terrible proof of nothing and act like you're the victim all along. - [Plugins: Do Better](https://halfelf.org/2024/plugins-do-better/) - Do a better job and review everything and listen to me because I know better! - [Plugins: Kick Rocks](https://halfelf.org/2024/plugins-kick-rocks/) - There are good ways of handling a bad review you don't like. This is not one of them. - [Plugins: WordPress Owns The World](https://halfelf.org/2024/plugins-wordpress-owns-the-world/) - Ah the logic of if one person from NYC kicks you in the shin, clearly all people from NYC are shin-kickers. - [Plugins: Stealing The Butt (vulgar)](https://halfelf.org/2024/plugins-stealing-the-butt-vulgar/) - There's a right and a wrong way to fork code, and a right and a wrong way to handle it when you're called out about a fork. - [Plugins: Not Your Circus, Not Your Gold Mine](https://halfelf.org/2024/plugins-not-circus-not-mine/) - Let it go! Let it go! Someone else's fuck ups with a plugin are not your responsibility! - [Plugins: Offsite Help (vulgar)](https://halfelf.org/2024/plugins-offsite-help-vulgar/) - Not linking to off-site help shouldn't end with sexual threats, but some people... - [Piracy and the GPL](https://halfelf.org/2024/piracy-and-the-gpl/) - A nuanced question about piracy forces me to talk about the ethical considerations and intent of theft. Piracy, though complicated, should not stray into harmful or exploitative territory. - [Plugins: Scams, Fans, and Plans](https://halfelf.org/2024/plugins-scams-fans-and-plans/) - If you have to ask what the difference is between an MLM and a real business, you probably got suckered by one. - [Looping LinksWith The WP HTML Processor](https://halfelf.org/2023/looping-linkswith-the-wp-html-processor/) - What if you could replace regexing all your content with something less cryptic? With WP 6.1 and up, you can. - [Plugins: From Banned to Back](https://halfelf.org/2024/plugins-from-banned-to-back/) - Where in someone is banned, and makes it back. It really does happen. - [Plugins: When it Restarted](https://halfelf.org/2024/plugins-when-it-restarted/) - A return of the booking plugin drama, with a repeat method. - [Plugins: Just Sexism](https://halfelf.org/2023/plugins-just-sexism/) - These encounters are pretty normal to anyone who doesn't identify as male, and uses the internet. - [Plugins: D.M.C.A](https://halfelf.org/2023/plugins-d-m-c-a/) - Young man, keep your code on the web, I said. Young man, don't send a takedown instead, I said. Young man, 'cause you're hurting yourself. There's no need to bug the half elf .... - [Plugins: Finally, a Decent Bribe!](https://halfelf.org/2023/plugins-finally-a-decent-bribe/) - It's a bad Three Stooges tale when one person makes three 'company' accounts and spams for all. - [Plugins: What a B*tch](https://halfelf.org/2023/plugins-what-a-btch/) - A very short story about someone who just hates. - [Plugins: Sex and Gutenberg](https://halfelf.org/2023/plugins-sex-and-gutenberg/) - Someone hated Gutenberg so much they made everything about it, and decided we all got drugs from Automattic. Not kidding. - [Docked Libraries and DNSMasque](https://halfelf.org/2023/docked-libraries-and-dnsmasque/) - I had a really bad afternoon with Docker misbehaving and screwing up my entire workflow. All I did was restart the Docker app and it all fell apart. - [Plugins: Threatening to Go Public](https://halfelf.org/2023/plugins-threatening-to-go-public/) - Demanding a plugin be reopened because you don't have the time to fix the security issues is not a good argument. - [Plugins: My Way Or Nothing](https://halfelf.org/2023/plugins-my-way-or-nothing/) - Sometimes you can be too smart for your own good. This story is about someone who knew better than WordPress... but wanted to use it anyway. - [Plugins: Mask of Many Faces](https://halfelf.org/2023/plugins-mask-of-many-faces/) - One person, over 15 accounts, and a lot of weird comments about bathing ended up with a company banned from hosting code. - [Plugins: Always Get a Contract](https://halfelf.org/2023/plugins-always-get-a-contract/) - A he-said/he-said argument turns into a perfect example of how NOT to hire a contractor. - [Plugins: Double the Damage](https://halfelf.org/2023/plugins-double-the-damage/) - Sometimes the question is who stole what from whom and where. In this case, it was practically a shell game, or the worst version of 'Who's on First.' - [Appreciation](https://halfelf.org/2023/appreciation/) - I'm not often speechless but today, I was. - [Interlude: Gutenberg Moves Fast](https://halfelf.org/2023/interlude-gutenberg-moves-fast/) - If we don't start slowing down and marking the trail for developers, we will begin haemorrhaging the very people who make WordPress a success. - [Plugins: Bad Thief](https://halfelf.org/2023/plugin-bad-thief/) - This is the story about a man who didn’t understand that buying a plugin doesn’t mean you own the code. - [How Many Plugins Is Too Many?](https://halfelf.org/2014/how-many-plugins/) - How many plugins does it take to crash a site? The answer is lower than you think. - [Plugins: I Hate Security Plugins (mostly)](https://halfelf.org/2023/i-hate-security-plugins/) - I don’t really hate them all, but I don’t use them, and it’s down to my personal philosophy. That and how many suck. - [It’s Not About the Money](https://halfelf.org/2023/its-not-about-the-money/) - How you spend your money reflects on you. And how you handle your code does too. - [Plugins: When It Changed](https://halfelf.org/2023/plugins-when-it-changed/) - There was a time when I didn’t think anything would go wrong with plugins. And I remember the time when I realized how much trouble we were going to be in. This is the memory of that story. - [Stopping Jerks in Gravity Forms](https://halfelf.org/2023/stoping-jerks-in-gravity-forms/) - Stopping jerky people is a heck of a lot harder than stopping spammers. It doesn't always have to be. - [Zaptodon](https://halfelf.org/2023/zaptodon/) - Zap it to me. Send your WordPress posts to Mastodon without a plugin (but it's not free). - [Plugin Stories: What Do You Want to Hear?](https://halfelf.org/2023/plugin-stories-what-do-you-want-to-hear/) - I have a lot of tales from the dark. But I don’t know what kinds you’re interested in. So … here’s the chance! - [Hugo Deployment via GitHub Actions](https://halfelf.org/2021/hugo-deployment-via-github-actions/) - Using GitHub actions to build and deploy a static site is fun. - [oEmbedding Galleries](https://halfelf.org/2021/oembedding-galleries/) - Why make a complicated, UX fussy, WordPress plugin when I could just make oEmbed a thing? - [Why We Hate Your Security Reports](https://halfelf.org/2021/why-we-hate-your-security-reports/) - I did some self reflection on why I hate security reports, and what I came up with was "people aren't explaining themselves." - [Stopping Jerks in Ninja Forms](https://halfelf.org/2022/stopping-jerks-in-ninja-forms/) - Stopping spam with Ninja Forms is shockingly harder than I expected, and overall disappointing. - [CLI Like a Webhost](https://halfelf.org/2022/cli-like-a-webhost/) - Command Line tools to knock administrator to the next level! - [Open Dungeons](https://halfelf.org/2022/open-dungeons/) - Making things with a 3D printer is all Jan's fault. - [oEmbedding Hugo](https://halfelf.org/2021/oembedding-hugo/) - Even more oembed magic, this time for a static site builder. - [FreshRSS: A Simpler Self Hosted RSS Manager](https://halfelf.org/2021/freshrss-self-hosted/) - I've been using Tiny Tiny RSS for ... well years. Almost a decade. I like it a lot, the interface is nice and pretty to use. But there have always been some serious lingering issues with it. The developer is very opinionated, to the point of aggressionThe development is Docker, to the point that non-Docker - [Failure to Protect](https://halfelf.org/2021/failure-to-protect/) - I talk a lot about things that are wrong. Things that lead to abuse. And the question everyone has is "How do I fix this?" - [Bad Actors: Block or Not?](https://halfelf.org/2021/bad-actors-block-or-not/) - Should I block or should I mute now? If I mute there will be trouble. If I block it may be double. - [Vulnerability Reports Miss The Mark](https://halfelf.org/2021/vulnerability-reports-miss-the-mark/) - Do you get weird 'security' emails that you think may be full of it? Me too! - [Gravity Forms and Disallowed Keys](https://halfelf.org/2021/gravity-forms-and-disallowed-keys/) - How to send people on your disallowed comment list to the spam bin, and live better. - [18 Months Without Contact Forms](https://halfelf.org/2017/18-months-without-contact-forms/) - I've decided I like not having a contact form, so let's talk a little about behaviour. - [When It's (Not?) Burnout](https://halfelf.org/2021/when-its-not-burnout/) - It's not burnout, except that it is, and it's also harassment and abuse and it's exhausting. - [Stolen GPL](https://halfelf.org/2012/gpl-and-theft/) - Stealing GPL isn't impossible, it happens more often than I'd like, and it could be easily avoided with a simple attribution of effort. - [Email Verification and Unsubscribing](https://halfelf.org/2021/email-verification-and-unsubscribing/) - Sometimes you want to scream at the phone when you can't do something as simple as close an account. - [New Math](https://halfelf.org/2014/new-math/) - Math and learning isn't just rote memorization, but getting that intuitive understanding of how the numbers relate to the formulas. All roads lead to Rome, once you learn to walk. - [Hey, Twitter, Why Do You Hate Us?](https://halfelf.org/2018/hey-twitter-why-do-you-hate-us/) - Hey, Twitter. Why don't you like people with multiple accounts? - [Algolia: Search Faster](https://halfelf.org/2020/algolia-search-faster/) - Being driven to dementia by search woes, it's time to embrace insanity and find out what you really need. - [The Importance of Correct Casting](https://halfelf.org/2020/the-importance-of-correct-casting/) - When upgrading to PHP 7.4 makes your plugins throw errors about string offsets and broken arrays, we have to read the notes. - [Shlinky Dinks](https://halfelf.org/2020/shlinky-dinks/) - For a number of reasons it was time to move on to new things. I was looking for a better, more modern solution to running my own short URLs. There are a lot of reasons people want these. When I started with them, it was because Twitter had limits and I wanted to control my - [Critical Math](https://halfelf.org/2020/critical-math/) - Never tell me the odds, give me an hour and a lot of paper and I'll figure them out. - [How the WordPress Upgrade Works](https://halfelf.org/2011/how-the-wordpress-upgrade-works/) - Every time WordPress upgrades, someone is going to bitch that WordPress 'deleted' their stuff. Guess what? It can't. - [Bummer Of A Birthmark, Hal](https://halfelf.org/2019/bummer-of-a-birthmark-hal/) - Just because you're the bad guy doesn't mean the other person is a hero. - [There Are No Top Influencers](https://halfelf.org/2019/there-are-no-top-influencers/) - We need to care less about the personal aggrandizement of a few select individuals, and more about the collective success of the WordPress project. - [Shut Your Pi-hole](https://halfelf.org/2019/shut-your-pi-hole/) - Blocking ads and reducing traffic on your home-network can totally be done with $30 and an hour. - [Saving Theme Data to a File](https://halfelf.org/2019/saving-theme-data-to-a-file/) - Including HTML content from WordPress when it's not your post content but your theme settings can be done! It's just a mess. - [Rolling Your Own Related Posts](https://halfelf.org/2019/rolling-your-own-related-posts/) - Related Posts that are extendable and customizable are within your reach! - [On Behavior and Respect](https://halfelf.org/2019/on-behavior-and-respect/) - Reputation is what other people know about you. Honor is what you know about yourself. The friction tends to arise when the two are not the same. There is no more hollow feeling than to stand with your honor shattered at your feet while soaring public reputation wraps you in rewards. That's soul destroying. The other way around is merely very, very irritating. - [Spam Your Blacklist](https://halfelf.org/2018/spam-your-blacklist/) - Tired of cranky people being jerks? Want to stop them from abusing your contact form? It's sadly harder than it should be. - [Hiatus: Irregular Updates](https://halfelf.org/2018/hiatus-irregular-updates/) - From here out, updates will be irregular. - [Monitored Automation](https://halfelf.org/2018/monitored-automation/) - Trust but verify what your systems are doing. - [ES5, ESNext, and a Headache](https://halfelf.org/2018/es5-esnext-and-a-headache/) - If you're confused about the weird "ES" names with regards to Gutenberg and Javascript, there's some history that may help you out. - [Being Aware about Safe Spaces and Self Care](https://halfelf.org/2018/being-aware-about-safe-spaces-and-self-care/) - Taking care of yourself, even in work, may mean walking away. - [Blocks: Another Way to Adjust Settings](https://halfelf.org/2018/blocks-another-way-to-adjust-settings/) - Adding buttons to a Gutenberg block can indeed be done. Dare I say it? Simply. - [WordPress Reviews: The Good, The Bad, and the Stalker](https://halfelf.org/2016/wordpress-reviews-good-bad-stalker/) - The following is the original notes on my WCEU talk about WordPress reviews. It's more or less what I said, though the video will no doubt be up soon. 30 Months In Jail Over a One Star Review This is a true story. In late 2014, a man violently assaulted a woman who left a - [FacetWP: Making Sorting Suck Less](https://halfelf.org/2017/facetwp-making-sorting-suck-less/) - Using Facet is fascinating. - [Review: FacetWP](https://halfelf.org/2017/review-facetwp/) - Review: I love FacetWP and so should you. - [Small Steps with Composer](https://halfelf.org/2018/small-steps-with-composer/) - Getting started with Composer sure feels daunting. How about we start small and make something straightforward? - [More Complicated Composition](https://halfelf.org/2018/more-complicated-composition/) - A slightly more complicated setup for Composer? Why not! - [Genesis: Overriding a Child Theme](https://halfelf.org/2017/genesis-overriding-child-theme/) - Changing the credits without editing a child theme is hard, but not impossible. - [Pagination and Static Front Pages](https://halfelf.org/2016/pagination-static-front-pages/) - Page numbers, pagination, and three lines of code. - [A Fully Functional Alexa Skill](https://halfelf.org/2017/fully-functional-alexa-skill/) - A fully functional example of a WP JSON API powered Alexa app. Fork it. - [Shortcodes Aren't Leaving Us](https://halfelf.org/2018/shortcodes-arent-leaving-us/) - Don't panic about shortcodes going away. It's not all what you think. - [Context is Everything](https://halfelf.org/2018/context-is-everything/) - It matters not just how we do a thing, but what we do it for and what - [Show Feedback in "Right Now"](https://halfelf.org/2018/show-feedback-in-right-now/) - Adding Jetpack messages to At a Glance in WordPress isn't all that complicated, and it works out nicely. - [Selective DeGutenberging](https://halfelf.org/2018/selective-degutenberging/) - Okay let's be honest, friends. Not everything is ready for Gutenberg. In fact, I myself have certain sites that aren't ready for it today. That's why there exists an excellent plugin known as the Classic Editor. This allows you to decide it you want to block Gutenberg (which is the default option) or if you want - [Shortcodes vs Blocks](https://halfelf.org/2018/shortcodes-vs-blocks/) - Thinking about blocks vs shortcodes and what's coming next. - [Gutenberg Spoiler Blocks Redux](https://halfelf.org/2018/gutenberg-spoiler-blocks-redux/) - Another version of a repeatable spoiler block with Gutenberg. - [Gutenberg Categories](https://halfelf.org/2018/gutenberg-categories/) - Want to make your own category for Gutenberg Blocks? You can! - [Advanced Block Behaviour](https://halfelf.org/2018/advanced-block-behaviour/) - Some more extra things with Gutenberg that are on the wild side of advanced. - [Post Editing Is Broken](https://halfelf.org/2018/post-editing-is-broken/) - Today, the editor is broken and we need a revolution to correct it. - [cPanel ❤️ DreamObjects](https://halfelf.org/2018/cpanel-❤️-dreamobjects/) - Backups aren't impossible anymore. - [Recording Phone Conversations](https://halfelf.org/2018/recording-phone-conversations/) - How to record a phone call on an iPhone. Legally and safely. - [Do Robots Dream of Electric Smut?](https://halfelf.org/2018/do-robots-dream-of-electric-smut/) - "I'll know it when I see it" works for humans, but not robots. - [Disable Google Ads on One Page](https://halfelf.org/2018/disable-google-ads-on-one-page/) - So you've given up on whitelisting your page with Google ads and want to get that one page out of the way? - [You'll Probably be Fine with Gutenberg](https://halfelf.org/2018/youll-probably-be-fine-with-gutenberg/) - You're probably going to be just fine with Gutenberg. - [Hashtag your Jetpack with Taxonomies](https://halfelf.org/2018/hashtag-your-jetpack-with-taxonomies/) - A different way to customize your hashtags. - [Hashtag Your Jetpack with Custom Post Types](https://halfelf.org/2018/hashtag-your-jetpack/) - Want to put a hashtag on your Jetpack'd tweets? You can do it with a little magic. - [Custom Admin and Tool Bar Icons](https://halfelf.org/2018/custom-admin-and-tool-bar-icons/) - Messing with toolbars and icons. - [Image Attribution](https://halfelf.org/2018/image-attribution/) - How to add more fields to your images in WordPress. - [Protect My Plugins, Please](https://halfelf.org/2018/protect-my-plugins-please/) - Managing sites involves managing plugins. No. Not like that. - [Query Vars, Post Titles, and Yoast SEO](https://halfelf.org/2018/query-vars-post-titles-and-yoast-seo/) - How to customize your post titles with query variables and Yoast SEO. - [Conceptualizing Privacy](https://halfelf.org/2018/conceptualizing-privacy/) - Some thoughts on what the difference is between the US and those folks across the pond about privacy. - [HTTPS and HSTS](https://halfelf.org/2016/https-hsts/) - A little ditty about HSTS and making things even safer! Oh my! - [Blocking Referrer Spam Server Wide Sucks](https://halfelf.org/2016/blocking-referrer-spam-server-wide/) - Blocking them before they get to you isn't easy. - [Caching Dismissible Alerts With localStorage](https://halfelf.org/2018/caching-dismissible-alerts-with-localstorage/) - Using Javascript loclaStorage to store persistent string data and have it keep alerts dismissed. - [How Many Plugins Is Too Many To Create?](https://halfelf.org/2018/how-many-plugins-is-too-many-to-create/) - No, not how many is too many to use. How many is too many to make, support, manage, and wrangle. As a developer. - [Future Proof Names](https://halfelf.org/2018/future-proof-names/) - Names are hard, so try to make yours one that lasts. - [It's Just Math: WP-CLI Edition](https://halfelf.org/2018/its-just-math-wp-cli-edition/) - A quick WP-CLI example of running calculations. - [jQuery Tablesorter](https://halfelf.org/2018/jquery-tablesorter/) - Put them in the order you want without having to hard code things. - [Bad Faith Names](https://halfelf.org/2018/bad-faith-names/) - It's not the weirdest copyright case I know of, but it's cock of the walk. - [A Case Sensitive Headache](https://halfelf.org/2018/a-case-sensitive-headache/) - Sometimes computers exist to make us cry. When it can't tell the difference between FOO, foo, and Foo, it make actually manage it. - [Customizing Login Pages](https://halfelf.org/2018/customizing-login-pages/) - Not everyone wants to flip you off with an error, but you could if you wanted. - [FUD: The Sky Is Not Falling](https://halfelf.org/2018/fud-the-sky-is-not-falling/) - (Except when it is) - [Data Deletion May Not Be What You Think](https://halfelf.org/2018/data-deletion-may-not-be-what-you-think/) - Deletion of data may not be entirely what you think. - [Consent and Awareness](https://halfelf.org/2018/consent-and-awareness/) - GDPR terrifies a lot of people. It's a lot to take in, it's a lot to learn, and yes, we all need to do it. - [CMB2: Conditional Meta Fields](https://halfelf.org/2018/cmb2-conditional-meta-fields/) - Hiding parts of CMB2 fields is necessary to make like less confusing and easier. - [Facebook to Automation: Nuts](https://halfelf.org/2018/facebook-to-automation-nuts/) - Facebook will be removing the ability to post automatically ... awesome. Nothing will go wrong. - [It's Just Math](https://halfelf.org/2018/its-just-math/) - Understanding a little more about hooks explains how I run simple math on post saves. - [NoEmbed: Embedding What's Not oEmbed](https://halfelf.org/2018/noembed-embedding-whats-not-oembed/) - Instead of a shortcode, how about a URL? - [A Slightly More Complex Sample Box: Spoilers](https://halfelf.org/2018/slightly-complex-sample-box-spoilers/) - Making a very simple Gutenberg block that is editable isn't impossible, and is very much like a shortcode. - [A Sample Block: Spoilers](https://halfelf.org/2018/a-sample-block-spoilers/) - A simple block for Gutenberg. No frills. Well. One frill. - [When You Need Blocks](https://halfelf.org/2018/when-you-need-blocks/) - Getting started with Gutenberg takes a little effort but it's working just fine. - [You Don't Need a Block](https://halfelf.org/2018/you-dont-need-a-block/) - Like a great many people, I recognize the need to learn the new world with Gutenberg and adapt my code as well as my writing to the platform. But, like a great many people, I recognized my coding ability might not quite be up to snuff with the javascript required for blocks. But then I asked - [AutoDeploy: Github to DreamObjects](https://halfelf.org/2018/autodeploy-github-to-dreamobjects/) - There are a lot of things that Github makes easy. One of them is a great way to keep versions of data publicly accessible, trackable, and deployable. Well. Not so much that last one. Automated deployment with Github can be incredibly convoluted, twisted, and perplexing. If you don't speak high geek, it's worse. Thankfully there - [Posts by Day, Every Year](https://halfelf.org/2018/posts-by-day-every-year/) - Get a list of all posts on a day, regardless of the year. - [Organization](https://halfelf.org/2018/organization/) - Understanding tags vs categories vs custom taxonomies vs custom post types, and how they all mesh together. - [Shortcode Example: Reviews](https://halfelf.org/2018/shortcode-example-reviews/) - A shortcode for reviewing things in a standard kind of way. - [WP-CLI Tables](https://halfelf.org/2018/wp-cli-tables/) - Aiding debugging efforts with WP-CLI and table output. - [Google Auto Ads](https://halfelf.org/2018/google-auto-ads/) - Automagical ads from Google. - [Genesis Theme: Anonymize Posts](https://halfelf.org/2018/genesis-theme-anonymize-posts/) - Removing ego from posts by removing the author. - [Light Fingered Fish](https://halfelf.org/2018/light-fingered-fish/) - Stealing hooks to make your fish fly with Jetpack's contact form. - [Safari and SameOrigin](https://halfelf.org/2018/safari-and-sameorigin/) - Sometimes Safari is a special snowflake when it comes to clickjacking. Who knew that would break Customizer? - [Types of Related Posts](https://halfelf.org/2018/types-of-related-posts/) - It's all about relativity. - [A Name is Not A Description](https://halfelf.org/2018/a-name-is-not-a-description/) - "Hello, I'm female developer." - [Reordering Facet Displays ... For Death](https://halfelf.org/2018/reordering-facet-death/) - Using FacetWP to tackle multiple deaths, sort ordering, and of course, Sara Lance. - [CORS - Not Beer](https://halfelf.org/2018/cors-not-beer/) - Making remote files accessible isn't always as simple as a link. - [Remoteless SVG](https://halfelf.org/2018/remoteless-svg/) - Copying code to the cloud and syncing it locally isn't impossible. Just annoying. - [Let's Talk, Slack](https://halfelf.org/2018/lets-talk-slack/) - Dear Slack, I want to like you more, but you don't understand adults. - [The Invisible Facets](https://halfelf.org/2018/the-invisible-facets/) - Sorting data that doesn't exist can be difficult, because there's nothing to save. So you have to think around it. - [What Is The Measure of a Site?](https://halfelf.org/2018/what-is-the-measure-of-a-site/) - What are you measuring? What is useful? What is the right way to explain it all? - [Processing Numbers with WordPress](https://halfelf.org/2018/processing-numbers-with-wordpress/) - Getting at your data to make meaningful metrics starts with saving them smartly. - [Customizing Which Random Post](https://halfelf.org/2018/customizing-random-post/) - A little customized randomness to make it more sane. - [Stacked Charts Part 3: The Javascript](https://halfelf.org/2018/stacked-charts-part-3-javascript/) - Finally there's the outputting of the javascript. - [Stacked Charts Part 2: Rebuilding the Array](https://halfelf.org/2018/stacked-charts-part-2-rebuilding-array/) - Stage two is taking all the data, shoving it back together, and splitting it out in a totally different way. - [Stacked Charts Part 1: Understanding Your Data](https://halfelf.org/2018/stacked-charts-part-1-understanding-data/) - Chart.js, WordPress, and taxonomies begins with understanding the data you're processing and saving it in a retrievable way. - [Restrict Site Access Filters](https://halfelf.org/2018/restrict-site-access-filters/) - Handling restricted access and caching together, without going crazy. - [Structured Data](https://halfelf.org/2018/structured-data/) - Sometimes structured data exists to vex me. - [Customizing Jetpack Feedback](https://halfelf.org/2018/customizing-jetpack-feedback/) - Messing with Jetpack's feedback forms for fun and management. - [Accidental Example](https://halfelf.org/2018/accidental-example/) - When not thinking about your example data gets you into hot water for someone else. - [Thimking About Security](https://halfelf.org/2018/thimking-about-security/) - No, that's not a typo. I want you to THIMK - [Still Not Using Plugins for Security](https://halfelf.org/2018/still-not-using-plugins-for-security/) - It's not that I don't like them, it's that I don't like them. - [Mindful Development and Misunderstandings](https://halfelf.org/2018/mindful-development-misunderstandings/) - Being classified as hate speech when you’re the opposite gives a person some perspective. - [The Purpose of a Case Study](https://halfelf.org/2018/purpose-case-study/) - Making a case study begins with nothing. And that is the hardest start of all. - [A Difference of Tone](https://halfelf.org/2018/a-difference-of-tone/) - Rethink the way you ask questions, and you'll find yourself open to learning even more. - [Data Structure](https://halfelf.org/2017/data-structure/) - Determining the design of data. - [Migrating from Post Meta to Custom Post Types](https://halfelf.org/2018/migrating-post-meta-custom-post-types/) - One way to migrate post meta to it's own post type. - [Random Post of the Day](https://halfelf.org/2017/random-post-day/) - Tweeting random content on the regular part 1: JSON, WP_Query, and Transients. Or not. - [Zap a Daily Tweet](https://halfelf.org/2017/zap-daily-tweet/) - Tweeting random content on the regular part 2: The Automation - [Data Based Sites](https://halfelf.org/2017/data-based-sites/) - Or: How Sara Lance Made Me Cry - [Hey You Gays Filter](https://halfelf.org/2017/hey-gays-filter/) - Degenderizing guys since 2017 - [Mapping Domains Without a Plugin](https://halfelf.org/2014/mapping-domains-without-plugin/) - How I broke my ecommerce store on the day of a big book release, and subsequently fixed it. - [Subdomain vs Domain](https://halfelf.org/2012/subdomain-vs-domain/) - When two words are very similar, it's easy to get confused. Which witch is which? Whether, weather, and wether. Affect vs effect... Okay, you know, English sucks. We have way too many words that will drive you to drink, and if you know anyone who's learned English as a second language, please take time to - [Reordering Sort Order Redux](https://halfelf.org/2017/reordering-sort-order-redux/) - A repeat on some cleverly done sorting. - [Why I Do This](https://halfelf.org/2017/why-i-do-this/) - Why? Because. - [Accepting Failure](https://halfelf.org/2017/accepting-failure/) - Learning from failure. - [Cron Caching](https://halfelf.org/2017/cron-caching/) - Tricking caching into grabbing a page with cron and wp_remote_get. - [Github Introduces Archiving](https://halfelf.org/2017/github-introduces-archiving/) - Yes, you can archive repositories now. - [Deploying from Github via TravisCI](https://halfelf.org/2017/deploying-from-github-via-travisci/) - Deploying code with Travis is powerful, but incredibly complicated for a hobbyist. - [Indiegogo Embed](https://halfelf.org/2017/indiegogo-embed/) - Don't use iframes, use shortcodes. - [Grunt Can't Build Sass on High Sierra](https://halfelf.org/2017/grunt-cant-build-sass-on-high-sierra/) - We are the crystal gems, we'll always save the day. And if you think we can't, we'll always find a way. - [The Never-ending Progress Bar](https://halfelf.org/2017/the-never-ending-progress-bar/) - Getting rid of something from your dock on a Mac can be a real pain. - [PHP Spaceship](https://halfelf.org/2017/php-spaceship/) - We built this operator on PHP. - [Find It, Write It, or Buy It?](https://halfelf.org/2017/find-write-buy/) - Should you use the free one, build it yourself, or buy it? The answer is yes. - [Crypto Mining on Websites Isn't Evil](https://halfelf.org/2017/crypto-mining-websites-isnt-evil/) - How you chose to use it on your website may or may not make you evil, though. - [LGBT+Allies At WordCamp US - 2017](https://halfelf.org/2017/lgbtallies-wordcamp-us-2017/) - It's time for the Big LGBT+Allies Party again! - [Dynamic Amazon Associates](https://halfelf.org/2017/dynamic-amazon-associates/) - Dynamic advertisement isn't as difficult as all that, provided you have the data you need. - [The Curious Case of a Comatose Cloud](https://halfelf.org/2017/curious-case-comatose-cloud/) - In learning how remotely hosted images aren't always all that. - [FacetWP: Spinning While Updating](https://halfelf.org/2017/facetwp-spinning-updating/) - How to use FacetWP and Font Awesome to make a spinning icon while your data loads. - [Alternate Symbols](https://halfelf.org/2017/alternate-symbols/) - Making symbol icons with a Font Awesome fallback? Why not! - [Git: Combining Your Messy Commits](https://halfelf.org/2017/git-combining-messy-commits/) - Merging all your messy development commits into one isn't impossible with Git. In fact, it's easier than a lot of other things. - [Query Strings vs Static Resources](https://halfelf.org/2017/query-strings-vs-static-resources/) - What are those variables and why do I care? - [Targeting Ads](https://halfelf.org/2017/targeting-ads/) - Figuring out how to handle more targeted ads means understanding what you signed up with. - [Make WordPress Gay](https://halfelf.org/2017/make-wordpress-gay/) - Give yourself a rainbow admin bar on WordPress. - [Admins Are Humans Too](https://halfelf.org/2017/admins-are-humans-too/) - Humans are the most dangerous creatures. - [Plex + Roku = TV](https://halfelf.org/2017/plex-roku-tv/) - Watching TV from the computer on the TV can totally be done. - [Housing Large Media Files](https://halfelf.org/2017/housing-large-media-files/) - The woes of big files on WordPress. Or anything really. - [But Seriously...](https://halfelf.org/2017/but-seriously/) - The art of being taken seriously begins with taking things seriously. - [Be Nice to Future You](https://halfelf.org/2017/be-nice-to-future-you/) - Six simple rules for making your future you love you. - [Loading Common Libraries Smartly](https://halfelf.org/2017/loading-common-libraries-smartly/) - Including common libraries doesn't have to be complicated. - [You Don't Know Paths](https://halfelf.org/2017/dont-know-paths/) - Avoiding calling files directly in WordPress can be done even in the weirdest circumstances. - [Is This A Good Idea?](https://halfelf.org/2017/is-this-a-good-idea/) - Some thoughts on ideas that have been done before. - [Dogfooding DreamPress](https://halfelf.org/2017/dogfooding-dreampress/) - While I work for DreamHost, and I've used DreamPress since day one, I haven't have the opportunity to put a serious, stress site up on it. The reason for that is simple. The two sites I have that I might do that for are ineligible for pretty much all managed WordPress hosts ... because they're - [Remotely Hosting SVGs](https://halfelf.org/2017/remotely-hosting-svgs/) - Moving SVGs to the cloud for multiple sites. - [Flushing Another Post's Varnish](https://halfelf.org/2017/flushing-another-posts-varnish/) - Some fun with Varnish and updating a post not your own. - [Updating Another Post's Meta](https://halfelf.org/2017/updating-another-posts-meta/) - A brief note about updating a different post type's meta. - [I Hate Migrating Sites, And That's Okay](https://halfelf.org/2017/hate-migrating-sites-thats-okay/) - Mansplaining migrations to a professional. - [Deploying from GitHub with Codeship](https://halfelf.org/2017/deploying-github-codeship/) - Deploying from Github to your server, pretty much any server, via Codeship. - [Review: Twitter vs Twitter](https://halfelf.org/2017/review-twitter-vs-twitter/) - Some thoughts on the two twitter desktop apps I've used, and why. - [Demi Related Post Types](https://halfelf.org/2017/demi-related-post-types/) - Related posts and custom posts, based on tags. - [Semi Related Posts](https://halfelf.org/2017/semi-related-posts/) - Once in a while you write some code that you're pretty sure will never be useful to anyone else on the planet, but the idea is cool, so you want to share it. Hence this post. The Power Of Relations I was making coffee one Sunday morning, thinking about how I could keep turning a - [The Monetization of Edge Sites](https://halfelf.org/2017/monetization-edge-sites/) - The headaches of pains of when you're not able to use Google Ads, but you still want to monetize your sites... - [Stopwords and Sort Queries](https://halfelf.org/2017/stopwords-sort-queries/) - Rejiggering the sort order to ignore specific stop words. - [The Passion of Change, Part 2](https://halfelf.org/2017/passion-change-part-2/) - Part Two: How we get it done and what we use to do it. - [How Mobile is AMP?](https://halfelf.org/2017/how-mobile-is-amp/) - Should you use AMP to power your mobile site? No. Here's what you do instead. - [The Passion of Change, Part 1](https://halfelf.org/2017/passion-change-part-1/) - Part One: What is the change and why do we use WordPress? - [Date, Time, and PHP](https://halfelf.org/2017/date-time-php/) - Some thought on handling time and space without a TARDIS. - [Hello Trello](https://halfelf.org/2017/hello-trello/) - Sometimes there isn't the answer you expect when you look for a plugin. In this case? It doesn't exist yet. - [Yes, You Can Use Enqueues](https://halfelf.org/2017/yes-can-use-enqueues/) - How to enqueue inline parameters with your WordPress enqueued javascript. Because yes, you can. - [Fight The Future](https://halfelf.org/2017/fight-the-future/) - Life in the slow lane isn't okay. - [Git Attributes: Control Your Vendor Folders](https://halfelf.org/2017/git-attributes/) - A simple way to hide your vendor folders from everyone on Git and Github. - [The Unbearable Uniqueness of Functions](https://halfelf.org/2017/unbearable-uniqueness-functions/) - Thinking about the reasons we need unique and distinct names in our code. - [Fight For The Future: Battle for the Net](https://halfelf.org/2017/fight-future-battle-net/) - The Battle for Freedom continues. Here's how you can fight back. - [FacetWP, JSON API, and WP_Query Searches](https://halfelf.org/2017/facetwp-json-api-wp_query-searches/) - Telling FacetWP not echo it's code comments in certain places. Like JSON API output. - [This Post Was Written on Gutenberg](https://halfelf.org/2017/post-written-gutenberg/) - Overall, I like Gutenberg, but it's rough and has some bugs. - [Still Don't Disable Right Click](https://halfelf.org/2017/still-dont-disable-right-click/) - Protecting your site by disabling right click is the wrong answer. - [Review: Do The Twist](https://halfelf.org/2017/review-do-the-twist/) - The Twist+ charger from OneAdaptr really was perfect in Europe and beyond! - [Plural URLs](https://halfelf.org/2017/plural-urls/) - Some fun with plurals and WordPress URLs. - [Expect the Unexpected](https://halfelf.org/2017/expect-the-unexpected/) - Never, ever, trust anyone to be right all the time. Especially you. - [Linear Regressions in PHP](https://halfelf.org/2017/linear-regressions-php/) - Using PHP to calculate trendiness - [Secure Mindsets in Plugins](https://halfelf.org/2017/secure-mindsets-plugins/) - Keeping the mindset of security and what it means to you yesterday, today, and tomorrow. - [Chassis - When VVV is Too Much](https://halfelf.org/2017/chassis-vvv-much/) - It won't be everything to everyone, but it can be something for most people. - [POST Isn't Just For Posting](https://halfelf.org/2017/post-isnt-just-posting/) - When is a post not a post? - [Custom Alexa Skills and WordPress](https://halfelf.org/2017/custom-alexa-skills-wordpress/) - Connecting Alexa and WordPress, securely. - [Hello World: WordPress, the Rest API, and Alexa](https://halfelf.org/2017/hello-world-wordpress-rest-api-alexa/) - A simple hello-world style skill for the Amazon Echo, powered fully by WordPress. No SDKs, no libraries. - [Flash Briefing JSON Feed](https://halfelf.org/2017/flash-briefing-json-feed/) - Making a JSON Feed acceptable for Amazon Alexa Skills. - [Alexa Flash Briefing Skills and Video Enclosures](https://halfelf.org/2017/alexa-flash-briefing-video-enclosures/) - Amazon's Flash Briefing RSS scanner has some flaws when it comes to videos. - [Tracking Changes On Sites](https://halfelf.org/2017/tracking-changes-sites/) - Trying to track changes in webpages when they don't make it easy isn't easy. - [SEO and URLs and Indexes](https://halfelf.org/2017/seo-urls-indexes/) - Index pages aren't hurting your SEO, though your content may be. - [Calm Under Pressure](https://halfelf.org/2017/calm-under-pressure/) - We must chose control. - [Adding Sort Options to Facet](https://halfelf.org/2017/adding-sort-options-facet/) - Adding sort-by options to your Facet powered site. - [FacetWP, Genesis, and Archives](https://halfelf.org/2017/facetwp-genesis-archives/) - Changing the archive header dynamically based on your Facet choices. - [Taxonomy Icons](https://halfelf.org/2017/taxonomy-icons/) - Giving each taxonomy an icon. Not the term, the taxonomy. - [While Not Being Consumed](https://halfelf.org/2017/while-not-being-consumed/) - When you're evil for doing good. - [Defining Yourself](https://halfelf.org/2017/defining-yourself/) - Defining yourself requires a lot more guts than people warn you about. - [Grandchildren Templates](https://halfelf.org/2017/grandchildren-templates/) - Templates in a widget instead of a theme? We can do that too! - [Grandchildren Themes](https://halfelf.org/2017/grandchildren-themes/) - The solution to children of children themes is a plugin. - [Hugo and Lunr - Client Side Searching](https://halfelf.org/2017/hugos-lunr-search/) - A little javascript and JSON make searching an at-home affair for Hugo. - [Hugo Making JSON](https://halfelf.org/2017/hugos-making-json/) - Building a JSON file with all the data from all the posts in a Hugo site is actually not only possible, but it won't drive you insane. - [Sharing Content with Static Sites Dynamically](https://halfelf.org/2017/sharing-content-static-sites-dynamically/) - Using a little jQuery to make my static site more dynamic. - [FacetWP and Genesis Pagination](https://halfelf.org/2017/facetwp-genesis-pagination/) - Making pagination from Facet match Genesis. - [Why I Write About What I Code](https://halfelf.org/2017/why-i-write-about-what-i-code/) - Write and code to be a better writer and coder. Yes, it's that simple. - [CMB2: Size Matters](https://halfelf.org/2017/cmb2-size-matters/) - Size matters. Screens are not infinite and people hate scrolling. So make it suck less. - [Will You Help Me Sell My Plugin?](https://halfelf.org/2017/will-help-sell-plugin/) - No. - [CMB2, Select2, and Taxonomies](https://halfelf.org/2017/cmb2-select2-taxonomies/) - Making taxonomies update based on CMB2 options, all so I can use Select2 - [Admin Alerts on Posts](https://halfelf.org/2017/admin-alerts-posts/) - Alerting editors to information in WP Admin makes sure people know what they're doing. - [Front Facing Alerts on Posts](https://halfelf.org/2017/front-facing-alerts-posts/) - Making 'admin' alerts show up on the front end as well as the backend of a WordPress site. - [Add An Item to the Publish Box](https://halfelf.org/2017/add-item-publish-box/) - Showing post meta (or anything else) in the publish box is just a function away. - [Local: For When You Don't Need The Kitchen Sink](https://halfelf.org/2017/local-dont-need-kitchen-sink/) - A review on the app Local by Flywheel. tl;dr? I like it. - [Multi Faceted Connections](https://halfelf.org/2017/multi-faceted-connections/) - Doing a little complex filtering with FacetWP to split apart serialized data into something less messy. - [I'll Know A Duck When I See It](https://halfelf.org/2017/ill-know-duck-see/) - Quack. Quack. Quack. - [Sharing WordPress Content with any PHP App](https://halfelf.org/2017/sharing-content-php/) - Using WordPress to show data on any PHP site, via the JSON API. - [Sharing WordPress Content with Hugo](https://halfelf.org/2017/sharing-content-hugo/) - Sharing content between WordPress and Hugo with our new BFF, JSON. - [Genesis Themes: Author Box Shortcode](https://halfelf.org/2017/genesis-themes-author-box-shortcode/) - Author boxes as a shortcode? Surely you jest! - [The New SEO Scam](https://halfelf.org/2017/new-seo-scam/) - The bottom line is that if it looks too good to be true, it is. No probably about it. - [The Grammar of URLs in Email](https://halfelf.org/2017/grammar-urls-email/) - Using URLs in your written copy isn't impossible, it just requires a bit of thought. Like everything else. - [Trust No One](https://halfelf.org/2017/trust-no-one/) - The kinds of users and the kinds of trust each user engenders. - [(Slightly) More Performant WP Queries](https://halfelf.org/2017/slightly-performant-queries/) - Theoretical performance gains on your WP_Query calls. - [CMB2: Repeatable Groups](https://halfelf.org/2017/cmb2-repeatable-groups/) - Some data migration of individual post metas into grouped post meta. Part of a continuing saga in how Sara Lance wants to drive me insane. - [EasyApache 4](https://halfelf.org/2016/easyapache-4/) - It's totally possible that I upgraded to EasyApache 4 so I could have PHP 7 on some domains and not all. - [A Day Without Me](https://halfelf.org/2017/a-day-without-me/) - A day without a woman. Today. - [You Are Not Psychic](https://halfelf.org/2017/you-are-not-psychic/) - You don't know what will be insecure next. You can't. So secure your code as best you can and secure it better if people point out your shortcomings. Learn. Improve. Protect. - [A Day Without Women](https://halfelf.org/2017/day-without-women/) - A day without WordPress. March 8th. - [Access: Denied or Granted?](https://halfelf.org/2017/access-denied-granted/) - A nonce of your time to discuss what a user can and cannot do. - [Datepicker and a Widget](https://halfelf.org/2017/datepicker-and-a-widget/) - Adding a jquery datepicker to my widgets. - [Names, Short Names, and More Names](https://halfelf.org/2017/names-short-names-names/) - Naming things is hard. It's harder when you're not sure who's going to be using your things. Thankfully I have a friend who inspires me to think deeply. - [REST API - Democratizing Reading](https://halfelf.org/2017/rest-api-democratizing-reading/) - Using the REST API in WordPress will let you democratize your readers' experiences. - [It Has Been X Days Widget](https://halfelf.org/2017/x-days-widget/) - Making a 'how many days since the last death' widget lets me use some functions I've been itching to play with. - [JSON Rest API (In Peace)](https://halfelf.org/2017/json-rest-api-peace/) - Making my first REST in Peace API for a site. To show dead people. We all have our hobbies. - [REST API On This Day](https://halfelf.org/2017/rest-api-day/) - Extending the existing API to do another thing. - [Always Validate Data](https://halfelf.org/2017/always-validate-data/) - Cleaning data and validate it before saving is just common sense. - [A Case for REST API](https://halfelf.org/2017/case-rest-api/) - Don't disable the REST API. - [eCommerce Dream](https://halfelf.org/2013/ecommerce-dream/) - My dreams about a Multisite eshop where I no longer have to say "Today, there is no plugin that can share an inventory between WordPress sites on a Multisite Network." - [Display Posts, Ordered By Post Meta](https://halfelf.org/2017/display-posts-ordered-post-meta/) - Sorting posts based on meta is not easily done out of the box, but it can be done. - [When a Page is an Endpoint](https://halfelf.org/2017/when-a-page-is-an-endpoint/) - Technically all pages in WordPress are virtual pages. But now it's time to virtualize your virtuality. - [Learning nginx](https://halfelf.org/2014/learning-nginx/) - I really did try to master nginx, but I still come up short. - [Hotlinking is Evil (And So Is Google)](https://halfelf.org/2013/hotlinking-google/) - Google's new image search is twice the evil for twice the speed. But is it worth it to anyone besides Google? - [Cacheless (or not)](https://halfelf.org/2013/cacheless-or-not/) - A lot of words in order to make a smaller, faster, leaner, meaner site. My experiment with going sans Caching Plugins begins. - [Every Site should have a Favicon](https://halfelf.org/2009/every-site-should-have-a-favicon/) - Without a favicon, your site just looks naked. - [Updating Multiple Posts' Meta](https://halfelf.org/2016/updating-multiple-posts-meta/) - I wish my answer was "This is super easy!" Except it's really not. - [Drop DES Ciphers](https://halfelf.org/2017/drop-des-ciphers/) - Some more cPanel security for your sites. - [On Uninstalling WordPress Plugins (and Data)](https://halfelf.org/2017/uninstalling-wordpress-plugins-data/) - Why uninstalling a plugin tells you it's removing data, even when it's not. - [cPanel and Two-Factor Authentication](https://halfelf.org/2017/cpanel-2fa/) - Making life more secure, one two factor at a time. - [Show Featured Images on Post List](https://halfelf.org/2017/show-featured-images-post-list/) - Adding a custom column to show if you have a featured image or not. - [Moving cPanel email to Gmail](https://halfelf.org/2016/moving-cpanel-email-gmail/) - I finally switched to Gmail for my email... And I don't regret it. - [Gmail: Handling Bad Emails](https://halfelf.org/2016/gmail-handling-bad-emails/) - Sorting emails and sending specific auto-replies is complicated, but doable. - [WordPress Multisite 101](https://halfelf.org/2012/wordpress-multisite-101/) - I wrote an ebook about running your own network without tearing out your hair. It's a cheat sheet for the rest of us. - [WordPress Multisite 110 - Electric Boogaloo](https://halfelf.org/2012/electric-boogaloo/) - The sequel is out. It's still pay what you will. If you like Multisite, this is the next step up. - [WordPress Multisite Control](https://halfelf.org/2016/wordpress-multisite-control/) - Where do the options and settings for network plugins go? - [Genericons Neue](https://halfelf.org/2016/genericons-neue/) - A neue wave of generic icons. - [Postbox: Desktop Email That Doesn't Suck](https://halfelf.org/2016/postbox-desktop-email-doesnt-suck/) - My desktop mail app of choice is Postbox. - [Hiya: Bye-a Spammers!](https://halfelf.org/2016/hiya-bye-spammers/) - Save a headache and kill the robocalls! - [I'm Fine With Envato](https://halfelf.org/2015/im-fine-envato/) - I really have no issue with any theme shop. They're doing nothing worse than anyone else. - [If You Call Yourself a Developer You Should ...](https://halfelf.org/2015/call-developer/) - There are expectations that come when you make a claim of being a 'developer of ten years.' - [The Trouble With Libraries](https://halfelf.org/2016/trouble-libraries/) - The recent brouhahah with plugins and frameworks (and libraries) brings up serious problems and no perfect solutions. - [Arbitrary Component Upgrades Are Not Helpful](https://halfelf.org/2015/arbitrary-upgrades-harmful/) - Is Bootstrap making the biggest mistake by upgrading a component when they don't need the benefits? - [The Details of Your Life](https://halfelf.org/2015/details-life/) - Your pain doesn't really make anything go any faster. - [Circular Arguments Need Research](https://halfelf.org/2016/circular-arguments-need-research/) - The circular arguments, that silence proves success, or at least an acceptable status quo, need to be thrown out on their ears. - [The Despair of Licensed Updates](https://halfelf.org/2016/despair-licensed-updates/) - The drama is that which we brought on ourselves. - [Balancing Information and Monetization](https://halfelf.org/2016/balancing-information-monetization/) - Some thoughts on monetizing the web. - [Dog Shaming Disclosure](https://halfelf.org/2016/dog-shaming-disclosure/) - Publicly shaming people does not make them better. So stop it. - [The Time and The Place](https://halfelf.org/2016/time-place/) - There's a time and place for everything, and this was neither of those. - [Bundling - Not What We Wanted](https://halfelf.org/2016/bundling-wanted/) - The trouble with bundling is the presumptions we make. - [Two Forks In The Road](https://halfelf.org/2016/two-forks-road/) - Because healthy rivalry between friends and equals is a good thing. - [On Trust and Money](https://halfelf.org/2016/trust-money/) - This won't have all the answers, and in fact it probably leaves people thinking "But ..." and that's okay. You don't have to like everyone and everything. - [The Problem with Renaming](https://halfelf.org/2016/the-problem-with-renaming/) - If you don't pick a good name, you may need to rebrand yourself. Sure, you can, but at what cost? - [The Privilege of Default Settings](https://halfelf.org/2016/privilege-default-settings/) - When we assume we are the default setting, the baselines, we're making bad assumptions. - [The Privilege of Privacy](https://halfelf.org/2016/privilege-privacy/) - The vulnerability of my security is you. So stop it. - [The Perception of Approachability](https://halfelf.org/2016/the-perception-of-approachability/) - The connections we make foster a strange sense of approachability that isn't always felt on both sides. - [Custom Colors with the Twenty Seventeen Theme](https://halfelf.org/2017/custom-colors-twenty-seventeen-theme/) - Changing colors on Twenty Seventeen isn't very fun, but that's pretty much the only thing I don't like about the theme. - [Secure Your Shit](https://halfelf.org/2017/secure-your-shit/) - Making all your online behavior more secure starts with good passwords and two factors. - [SSL Security: Killing RC4](https://halfelf.org/2017/ssl-security-killing-rc4/) - Making your site more secure from the server level. - [SSL Security: Forward Secrecy](https://halfelf.org/2017/ssl-security-forward-secrecy/) - Keeping your readers and customers safe requires a little elbow grease with SSL Ciphers. - [Text Alerts and Email](https://halfelf.org/2017/text-alerts-email/) - Forwarding emails to texts? Yeah, you can do that. - [Can AMP and SVGs Be Friends?](https://halfelf.org/2017/can-amp-svgs-friends/) - If you're too lazy to read, the answer is "Don't use SVGs on AMP pages." - [Prefix or Suffix](https://halfelf.org/2017/prefix-or-suffix/) - Making your function names readable by humans is, perhaps, the most important thing. - [Copyright Years for WordPress](https://halfelf.org/2017/copyright-years-wordpress/) - Echoing the year for copyright in a shortcode isn't terribly complicated, and you can even account for year zero. - [Mailbag: When Do I Use "If Exists"?](https://halfelf.org/2017/mailbag-use-exists/) - A quick answer: Use unique names in everything except shared libraries. - [PHP Ternary Operations](https://halfelf.org/2017/php-ternary-operations/) - Understing a faster way to sort through true/false scenarios in PHP. - [Cleaning up SVGs](https://halfelf.org/2017/cleaning-up-svgs/) - If you were here on Friday, I talked about the headache of using SVGs on AMP pages. In that post I mentioned that one of the fixes was to 'clean' the SVG file. Why would be bother? The simple answer is that smaller files are better. But as we learned with AMP being picky, it's - [Rebranding Featured Image](https://halfelf.org/2017/rebranding-featured-image/) - Featured Images renamed and rebranded. - [Recoding Taxonomies](https://halfelf.org/2017/recoding-taxonomies/) - Renaming the secret names of your taxonomies for mental health. - [Featured Image Size Redux](https://halfelf.org/2014/featured-image-size-redux/) - Improving on my display of featured image size for Genesis themes. - [Recovering Your Cape](https://halfelf.org/2013/recovering-your-cape/) - How to recover a lost super admin account. Also remember, you are not Oprah. - [Displaying Taxonomy Count](https://halfelf.org/2017/displaying-taxonomy-count/) - Showing a number of posts from a taxonomy in a shortcode was surprisingly complicated. - [Displaying Post Count](https://halfelf.org/2017/displaying-post-count/) - Showing a number of posts in a shortcode isn't that hard. Here's the code. - [Prettier Search Queries](https://halfelf.org/2016/prettier-search-queries/) - Making search pages a little prettier is easy. Making it prettier for custom searches is a little harder, but still do-able. - [Where Did Underline Go?](https://halfelf.org/2016/where-did-underline-go/) - So WordPress deleted underline and you're losing your mind? Maybe you should rethink your understanding of underscores. - [Two Factor Authentication](https://halfelf.org/2013/two-factor-authentication/) - You want to add something to your protection armor? Two-Factor Authentication it is! But what is it, what does it do, and how do you use it? - [EasyApache 4, PHP, and WP-CLI](https://halfelf.org/2016/easyapache-4-php-wp-cli/) - A little chat about PHP being a tricky thing in EA 4. - [Damn You, Autocorrect!](https://halfelf.org/2016/damn-you-autocorrect/) - Autocorrect is great until you have words and names that aren't included in the 'standard' English dictionaries. - [Custom AMP Design](https://halfelf.org/2016/custom-amp-design/) - Customizing the AMP design for your pages can be done, but it takes a little elbow grease. - [Security: Do it the WordPress Way](https://halfelf.org/2016/security-wordpress-way/) - When there's a choice to reinvent the wheel or use the wheel? Use the damn wheel. - [You Are Not Your Code](https://halfelf.org/2016/you-are-not-your-code/) - I'm a writer, an artist, a dreamer, and a contributor to open source. I have the time to give back to the community, to continue to learn and grow, and to make more of the Internet a better place for everyone. - [AMP It Up](https://halfelf.org/2016/amp-it-up/) - Ramping up your WordPress site on mobile with Google's AMPlification project. - [RankingCoach Drops the Ball](https://halfelf.org/2016/rankingcoach-drops-ball/) - Sometimes the target audience is missed, but assuming all businesses still match the old model is short sighted. - [WordCamp LGBT Tribe is Code](https://halfelf.org/2016/wordcamp-lgbt-tribe-code/) - We're here, we're queer, we like beer and WordPress. - [WordCamp US - LGBT+Allies Tribe Meetup](https://halfelf.org/2016/wordcamp-us-lgbtallies-tribe-meetup/) - We're inviting everyone to come hang out with diverse WordPressers at Philly's most welcoming gay bar. - [Yoast Custom Meta with CPTs](https://halfelf.org/2016/yoast-custom-meta-cpts/) - Making for better SEO without having to think, just by using some elbow grease. - [OpenGraph Images and Taxonomies](https://halfelf.org/2016/opengraph-images-taxonomies/) - Making a custom open graph image for a taxonomy is harder than it looks. - [Custom Meta, Keywords, and Taxonomies](https://halfelf.org/2016/custom-meta-keywords-taxonomies/) - Using focus keywords to streamline a relatively random page. - [OnPage is On Fleek](https://halfelf.org/2016/onpage-fleek/) - Keywords and content are just the tip of the iceberg. - [Managing User Permissions](https://halfelf.org/2016/managing-user-permissions/) - Managing users on your site can be a big mystery, but it doesn't have to be. - [Chronic Infections: Blacklisted](https://halfelf.org/2016/chronic-infections-blacklisted/) - Google will be blacklisting repeatedly infected websites. This will be interesting. - [Clear Communication](https://halfelf.org/2016/clear-communication/) - There will always be room for debate. - [Revealing Slides](https://halfelf.org/2016/revealing-slides/) - A little bit of insight in how I customize my slides. - [Your Slides Suck](https://halfelf.org/2014/your-slides-suck/) - And for the record, my slides suck too. They suck because they're not accessible. - [SEO Slides Is A Pie](https://halfelf.org/2013/seo-slides-pie/) - SEO Slides. Not entirely what I need, and possibly too expensive for what I'll use it for. But still a really good plugin and service. - [Hot Hands And Playoffs](https://halfelf.org/2016/hot-hands-playoffs/) - On math, probability, baseball, and the outlier Joe DiMaggio. - [Torrenting Cache](https://halfelf.org/2016/torrenting-cache/) - Caching with torrents. It flows messily. - [Not Spilling SEO Juice](https://halfelf.org/2016/not-spilling-seo-juice/) - Not spilling your juice is important to keep your SEO ranking. - [stdin: is not a tty](https://halfelf.org/2016/stdin-not-tty/) - Making annoying errors shut up. - [United States Patent: 8010458](https://halfelf.org/2011/united-states-patent-8010458/) - An online social network is provided in which members of the online social network control who may view their personal information and who may communicate with them. The members control who may view their personal information by setting a visibility preference. A member may not view another member's full personal profile if the measure of - [Git Subtrees](https://halfelf.org/2016/git-subtrees/) - Branching the modules into trees works a lot better and solves a long standing wish of mine. - [Yoast SEO: Selective Stopwords](https://halfelf.org/2016/yoast-seo-selective-stopwords/) - Custom Post Types, stopwords, globals, weird errors, and selectively applying filters. - [Review: Spark Love for Your Gmail](https://halfelf.org/2016/review-spark-gmail/) - Set fire to your email. In a good way. Spark delivers the heat. - [Optimizing Images](https://halfelf.org/2016/optimizing-images/) - Smashing images into smaller and smaller images for faster and faster loading. - [Google Knowledge Blindspot](https://halfelf.org/2016/google-knowledge-blindspot/) - Google, like the US government, has a difficult time understanding what a 'person' is sometimes. - [Per-Site MU Plugins](https://halfelf.org/2016/per-site-mu-plugins/) - A different way to per-site Multisite in MU Plugins. - [Adding Per Site Multisite Options](https://halfelf.org/2013/adding-per-site-multisite-options/) - You want options? We got options! Different ways to handle per-site functions on a Multisite network! - [Sortable Custom Columns: Taxonomies](https://halfelf.org/2016/sortable-custom-columns-taxonomies/) - Making even more things sortable! - [Sortable Custom Columns: Another Post Type's Data](https://halfelf.org/2016/sortable-custom-columns-another-post-types-data/) - If only we always knew how we wanted to use all our data before we actually set it all up, but sometimes that's just how it goes. - [My Question is "You Suck"](https://halfelf.org/2013/my-question-is-you-suck/) - Some help with handling those support questions that aren't questions, and reviews that should have been support questions. - [Custom Columns Search: Not unique table/alias](https://halfelf.org/2016/custom-columns-unique-tablealias/) - WordPress database error: [Not unique table/alias: 'wp_postmeta'] ... Well that can't be good, can it? - [Sortable Custom Columns](https://halfelf.org/2016/sortable-custom-columns/) - Making your custom columns sortable is a little annoying, but really nice once it's working. - [Review: Ninja Forms 3](https://halfelf.org/2016/review-ninja-forms-3/) - Three is here, and it's amazing. - [Lesbians Eat Data](https://halfelf.org/2016/lesbians-broke-jetpack/) - Debugging why the data on my site killed my server was astounding. - [Debugging cPanel's Default Webpage](https://halfelf.org/2016/debugging-cpanels-default-webpage/) - Automating all the things sometimes ends in disaster. Trust your tools, but remember how to debug. - [Optimizing Post Meta Search](https://halfelf.org/2016/optimizing-post-meta-search/) - Trimming down the meta key names I searching for to prioritize my results in a WordPress search. - [Post Meta, Custom Post Meta, and Statistics](https://halfelf.org/2016/post-meta-custom-post-meta-statistics/) - More fun with post meta, CMB2, statistics, and numbers. - [Passing Variables in WordPress Templates](https://halfelf.org/2016/passing-variables-wordpress-templates/) - Passing variables and parameters and overriding when needed in your theme. - [Chart.js Category Statistics](https://halfelf.org/2016/chart-js-category-statistics/) - Using Chart.js for pretty charts is pretty simple once you get the hang of it. - [What They Don't Tell You](https://halfelf.org/2016/dont-tell-you/) - If you prick us, do we not bleed? If you tickle us, do we not laugh? If you poison us, do we not die? And if you wrong us, shall we not revenge? - [Let's Encrypt cPanel](https://halfelf.org/2016/lets-encrypt-cpanel/) - Are you there, server? It's me, Let's Encrypt. Making your sites more secure. - [Making HTTPS Everywhere](https://halfelf.org/2016/make-https-everywhere/) - Making everything secure is easier than you may think. - [Elasicsearch as a Service](https://halfelf.org/2016/elasicsearch-service/) - Getting started with Elasticsearch involved me determining running it on my own was a bad idea. - [Search Options for Custom Post Data](https://halfelf.org/2016/search-custom-post-data/) - Searching custom meta data in WordPress isn't default. And that is sad. - [Greylist, RBLs, and Spam](https://halfelf.org/2016/greylist-rbls-spam/) - Stopping spam a little more inventively than just saying "If there are 100 recipients, these are bad..." - [CMB2 And The Dropdown Years](https://halfelf.org/2016/cmb2-dropdown-years/) - Making a year-range in CMB2 is easy (if you befriend a developer). - [Backtrack to Clean Code](https://halfelf.org/2016/backtrack-clean-code/) - We walk backward through code to find the clean data and resolve our problems. - [Mobile Ad Detection](https://halfelf.org/2016/mobile-ad-detection/) - Some simple mobile detection for Google Ads. - [Long Term Vision](https://halfelf.org/2016/long-term-vision/) - While it may seem 'easier' to make multiple separate plugins that all do similar things, long term it makes your developers crazy and hurts your users. - [The Need for Mobile Speed](https://halfelf.org/2016/need-mobile-speed/) - Contemplating how terrible the modern web is on a slow connection. - [Keep A Name In Mind](https://halfelf.org/2016/keep-name-mind/) - Name your 'things' wisely for what they are and where they live. - [Blocking Together](https://halfelf.org/2016/blocking-together/) - Blocking users on Twitter got a whole lot more interesting. - [Hiding Custom Taxonomy Parents](https://halfelf.org/2016/hiding-custom-taxonomy-parents/) - Short and simple (and effective) way to prevent people from manually making children categories. - [WordPress Multisite: Block Site](https://halfelf.org/2016/wordpress-multisite-block-site/) - It's not actually very easy to protect yourself online when you can't block people who are offensive or abusive. - [A Monstrous Regiment of Content](https://halfelf.org/2014/a-monstrous-regiment-of-content/) - Ruminations on the monstrous combination of an installation being managed in a overly complicated way. - [Adding Post Meta Data to Quick Edit](https://halfelf.org/2016/adding-cmb2-data-quick-edit/) - A practical example of adding post meta data to quick edit, and wondering why we have to cry so much when we do it. - [Customizing Taxonomies as Dropdowns in Quick Edit](https://halfelf.org/2016/taxonomies-dropdowns-quick-edit/) - Customizing Quick Edit to show - [Looking Back at MovableType](https://halfelf.org/2016/looking-back-movabletype/) - MovableType still feels very early 2000s. - [What Are You Paying For With That License?](https://halfelf.org/2016/paying-license/) - What are we selling and what are we getting when we buy software? - [Not Mailbag: Where Contact Forms Fail](https://halfelf.org/2016/mailbag-contact-forms-fail/) - Protecting yourself from abuse and harassment in comment forms seems to be a white whale. - [Mailbag: Life Without Contact](https://halfelf.org/2016/mailbag-life-without-contact/) - I don't really miss that contact form at all. - [Whose Fault Is The Hack?](https://halfelf.org/2016/whose-fault-hack/) - Who's fault is it, exactly? - [Multisite Emails and Redirects](https://halfelf.org/2016/multisite-redirect-registrtation-per-site/) - Handling the mess that is Multisite registration and emails when you're on a per-site basis. - [Apple Watch UX: Too Small](https://halfelf.org/2016/apple-watch-ux/) - We're making steps forward, but the UX could use some work. - [Multisite And Theme Activation Checks](https://halfelf.org/2016/multisite-theme-activation-checks/) - Network activating a plugin gets weird on Multisite when you need to check if the theme is also active. - [Debugging Unexpected Output](https://halfelf.org/2016/debugging-unexpected-output/) - Helping debug unexpected errors is not as obvious as it might be. - [Google Advertising Experiments](https://halfelf.org/2016/google-advertising-experiments/) - See who's clicking on your Google Ads. Or not. - [Boundaries](https://halfelf.org/2016/boundaries/) - Not being an asshole starts with recognizing that you're not special at all. - [So Take an Upgrade, Maria!](https://halfelf.org/2016/take-upgrade-maria/) - A message to my sites. Say we won't use Oracle. Gonna start a new life. - [How Do You Solve a DB Like Maria?](https://halfelf.org/2015/solve-db-like-maria/) - How do you push to the cloud and pin it down? How do you find the query that means Maria? - [Is This A Good Name For Your Project?](https://halfelf.org/2016/good-name-project/) - Names should be unique. They should be distinct. The should be yours. - [How To Pick Your Webhost](https://halfelf.org/2016/pick-webhost/) - How to pick a webhost comes down to understanding yourself, what you need, and how you work. - [My Super Secret .htaccess File](https://halfelf.org/2013/my-super-secret-htaccess-file/) - An inside look into my wild and wooly and actually pretty simple .htaccess settings. - [SSD: An Anecdotal Journey](https://halfelf.org/2016/ssd-anecdotal-journey/) - Anecdotally SSD is an incredible improvement of the old bog hard drives. - [A Simplier Hugo Deploy](https://halfelf.org/2016/simplier-hugo-deploy/) - An even simplier, no-go required, deployment for Hugo. - [Encrypting Source Code Doesn't Make It Safer](https://halfelf.org/2016/encrypting-source-isnt-safer/) - All the work you're doing to hiding your code is about as useful as preventing right-click on images. - [Why I Don't Use Git Flow Anymore](https://halfelf.org/2016/no-more-git-flow/) - I don't regret Git Flow. It taught me a lot and made me comfortable. But now it's time to spread my wings. - [Aiding Symbol Selection](https://halfelf.org/2016/aiding-symbol-selection/) - Managing the icons in a more visual way sometimes means offering more education. - [PSA: DreamObjects URL Changes](https://halfelf.org/2016/psa-dreamobjects-url-changes/) - There's a possible breaking change to DreamObjects coming up in September. Be prepared. - [De-fontification](https://halfelf.org/2016/de-fontification/) - I love fonts. They're a great way to make your site unique. Back in the early 2010s, we were all using them all over the place. It's time to retire them. This month, WordPress core pulled it's dependency on Google Fonts and I couldn't be happier. The concept behind the Font Natively project is incredibly - [Farewell Mothra, Hello Ogra](https://halfelf.org/2016/farewell-mothra-hello-ogra/) - Moving cPanel to CentOS7 wasn't hard at all! - [The Beta Tester's Paradox](https://halfelf.org/2016/beta-testers-paradox/) - The more likely a person is to test Beta and RC, the less likely they are to have bad code. - [The Perils of Symbol Selection](https://halfelf.org/2016/perils-symbol-selection/) - Understanding symbols and their meanings in the real world application isn't always as easy as we'd wish. - [Switching The Main Blog on Multisite](https://halfelf.org/2014/switching-main-blog-multisite/) - Here's how you swap out two sites on a Multisite. - [Open Source Doesn't Mean Public](https://halfelf.org/2016/open-source-doesnt-mean-public/) - Open, closed, and in between, we can't always discuss everything we work on. - [Referrer Spam In Adsense](https://halfelf.org/2016/referrer-spam-adsense/) - Oh joy, oh rapture, Semalt is at it again. - [Too Many SVGs](https://halfelf.org/2016/many-svgs/) - Slow down, your blog's gotta last. You've got to make that download fast! Just zipping through the kilobytes. Viewing your site should be so groovy. - [Making More With Less Work](https://halfelf.org/2016/making-less-work/) - Making my code do more work for me, with custom meta content and repetition. And repetition. And repetition. - [Custom Terms and CMB2](https://halfelf.org/2016/custom-terms-cmb2/) - Let's say you have some custom taxonomies in WordPress. And let's say you want to add a special field to them for an icon. How would you do it? - [A Blog Thought On Documentation](https://halfelf.org/2016/blog-thought-documentation/) - Everyone, everyone, hates doing it. We all do. But there's something that blogging regularly has brought me that is specifically related to documentation. And it's this. I am more likely to write down exactly how I solved a problem if I think about it as a new blog post. I know, that sounds so simply - [Prettier DreamObjects Listing](https://halfelf.org/2016/prettier-dreamobjects-listing/) - Making my DreamObjects image lists look prettier. - [DreamObjects Droplet](https://halfelf.org/2016/dreamobjects-droplet/) - Giving the world a nope-ta-pus! - [On The Fly Checklists](https://halfelf.org/2016/fly-checklists/) - Making your checklists fly. - [Null and Zero](https://halfelf.org/2016/null-zero/) - To a human, they're similar. To a computer, they're not. - [Combining Data from Multiple CPTs](https://halfelf.org/2016/combining-data-multiple-cpts/) - Bring out your dead! Sometimes you just need to track random things. - [Fauxgo and Rickroll](https://halfelf.org/2016/fauxgo-rickroll/) - Learning by humor. - [Obviously Oblivious](https://halfelf.org/2016/obviously-oblivious/) - Obvious plugins are the best plugins. - [Migrating from CMB to CMB2](https://halfelf.org/2016/migrating-cmb-cmb2/) - Moving some inherited code from CMB to CMB2 is pretty simple. - [Because Developers Never Typo](https://halfelf.org/2016/developers-never-typo/) - Never trust input. - [More Chart.js Fun](https://halfelf.org/2016/chart-js-fun/) - Making more beautiful charts is fun. - [Dependency Disaster](https://halfelf.org/2016/dependency-disaster/) - The circle of hell of dependencies is one we may never climb out of. - [The Pressure to Succeed as a Woman Who Codes](https://halfelf.org/2016/pressure-succeed-woman-codes/) - What men in dresses, fake geek girls, and coders all have in common. - [Composer and WordPress' Plugin Preflight Check](https://halfelf.org/2016/composer-wporg-preflight-check/) - More control over Composer means fewer conflicts with SVN's preflight checks on WordPress.org - [Project Bloat](https://halfelf.org/2016/project-bloat/) - Can we have a serious talk about project bloat? During the framework kerfluffle, I remarked that I hated seeing a 10 line plugin needlessly include a framework like CMB2 because of the size of plugin it created. Someone remarked that if the library helped them write something in ten lines instead of 100, wasn't that - [Making Plugins Filterable](https://halfelf.org/2016/making-plugins-filterable/) - I'm really bad at thsi since, generally, I don't know why people would want to with the plugins I make. Which means I don't do it. Which means I didn't know how. I have a plugin that records the IP address of users as they register and outputs it on the 'show users' page. It's - [Apple Watch Faces](https://halfelf.org/2016/apple-watch-faces/) - After close to a year with a watch, I've sorted out what kind of watch faces I like. - [The Awareness of Method](https://halfelf.org/2016/awareness-intent/) - Being aware of how we speak (or type) to others is imperative in communication when you're pretty much all remote. - [On Saying No](https://halfelf.org/2016/saying-no/) - Saying no and hearing no is never simple. - [Unique vs Common](https://halfelf.org/2016/unique-vs-common/) - A little on the topic of naming libraries and functions. - [The Big Picture](https://halfelf.org/2016/big-picture/) - The big picture of putting users first. - [Cooking as a Dev Skill](https://halfelf.org/2016/cooking-dev-skill/) - Learning to cook is exactly like learning to code. Only it tastes better. - [Baby Steps Security](https://halfelf.org/2016/baby-steps-security/) - The move to enforcing better security is fraught with misinformation and caution. Two Factor is not the holy grail. - [Chickens, Eggs, and MVP](https://halfelf.org/2016/chickens-eggs-mvp/) - I do have thoughts on the REST API. I want it. I want it now. But I want it done right. - [Apple Does the Right Thing](https://halfelf.org/2016/apple-right-thing/) - I am glad it's hard to hack into my iPhone. Now make it that hard to hack into my laptop. - [Poor Support Experience](https://halfelf.org/2016/poor-support-experience/) - An experience in no-communication from the unlikeliest source. Apple. - [Very Voluminous Vagrants](https://halfelf.org/2014/very-voluminous-vagrants/) - Various methods of testing WordPress. Because there is no one perfect way to get it all done. - [What's In a Plugin Name](https://halfelf.org/2016/whats-plugin-name/) - A name that is both concise and descriptive is still possible. - [Mailbag: No More Contact](https://halfelf.org/2016/mailbag-contact/) - The mailbox is now closed. - [Mailbag: Assumptions are the Mother of All Screw Ups](https://halfelf.org/2016/mailbag-assumptions-mother-screw-ups/) - Assume good faith. - [Impostercide](https://halfelf.org/2016/impostercide/) - On defeating yourself. - [Working with Webhosts](https://halfelf.org/2016/working-webhosts/) - Working with webhosts is a lot like working with your doctor. Telling them important things without overwhelming them is complicated. - [Representation of Code](https://halfelf.org/2016/representation-code/) - We are (not) Spock. - [Mailbag: The Trouble of Rollbacks](https://halfelf.org/2016/mailbag-trouble-rollbacks/) - Why we don't downgrade plugins? We can't reliably pick the right pervious version. - [Packaging and Shipping Resource Folders](https://halfelf.org/2016/resource-folders/) - No, I don't mean resources to get help. Have you ever opened a plugin or theme and seen a folder that says bower_components or node_modules? Yeah, I hate those. I don't hate Bower or Node, I use them quite a lot. I hate how people use them in their plugins. What Are Those Folders? In - [WP JSON API Challenges](https://halfelf.org/2016/wp-json-api-challenges/) - My experience with the JSON API has been a failure to launch, mostly because my preconceived notions were wrong. All wrong. - [GPL Isn't Protecting You](https://halfelf.org/2016/gpl-isnt-protecting/) - The GPL is about freedom to take your code and make it mine. That doesn't mean you're unprotected, it just means you need to protect yourself. - [Mailbag: Can I Track Issues with Github Like WP Support?](https://halfelf.org/2016/mailbag-can-track-issues-github-like-wp-support/) - Tracking all your issues on all your Github repos? Not all that hard. - [Mailbag: Why Do Cannonical URLs Mess Me Up?](https://halfelf.org/2016/mailbag-cannonical-urls-mess/) - Don't panic! Here's a towel and an answer to why your urls are 301 redirecting. - [Why CDN Media Needs a Plugin](https://halfelf.org/2016/cdn-media-needs-plugin/) - There's one simple reason, but understanding that reason comes with understanding how media is saved in general. - [The Fiscal Responsibility of 25%](https://halfelf.org/2016/fiscal-responsibility/) - Do we have a fiscal responsibility to not update or must we update, regardless of the big picture? - [Mailbag: How do plugins update?](https://halfelf.org/2016/mailbag-plugins-update/) - How plugins (and themes) upgrade and (possibly) why we sometimes break WordFence. - [Not Ditching ZenPhoto After All](https://halfelf.org/2016/not-ditching-zenphoto/) - Walking through the problems that made me stick with ZenPhoto after all. - [Ditching ZenPhoto for Hugo?](https://halfelf.org/2016/ditch-zenphoto-hugo/) - My adventure of moving from ZenPhoto to Hugo did not go as expected. - [Mailbag: Access and Security](https://halfelf.org/2016/mailbag-access-security/) - Not everyone needs to be an admin. The path of least resistance is often the wiser one. - [Mailbag: Hugo from iPads](https://halfelf.org/2015/mailbag-hugo-ipads/) - Yes, you can totally post to a Hugo managed site via your iPad. You just need to git a little help. - [JSON to Markdown](https://halfelf.org/2016/json-markdown/) - Struggling on my mastering of the JSON API. How can you turn JSON into Markdown? - [Using JSON with Hugo](https://halfelf.org/2016/using-json-hugo/) - I may still be in over my head, but I'm learning to swim! - [Porting Jekyll to Hugo](https://halfelf.org/2015/porting-jekyll-hugo/) - Moving from Jekyll to Hugo is more about trading Liquid for GoLang than anything else. - [Looping Hugo](https://halfelf.org/2015/looping-hugo/) - Looping through Hugo became a day of insanity when a variable couldn't decide if it was an integer or a string. - [Mailbag: Wasting Time](https://halfelf.org/2015/mailbag-wasting-time/) - Everything comes back to WordPress. - [Deploying with Hugo](https://halfelf.org/2015/deploying-hugo/) - Deploying on Hugo is a lot easier since it runs on my server too. - [Consenting to Collection](https://halfelf.org/2015/consenting-collection/) - Collecting information on users is something every program wants to do. Doing it is easier said than done. When you build a product, you want people to use it. Obviously. But more than that, you want to know how they're using it so you can know how to make it better for everyone. In order - [Disclosure](https://halfelf.org/2015/disclosure/) - Fully explaining what it is your product does is an absolute must. - [Hugo](https://halfelf.org/2015/hugo/) - There's no app quite like Hugo. Where ever you go, I go. So Bye, bye, birdie! - [Mailbag: Why did you ask that at the Town Hall?](https://halfelf.org/2015/mailbag-ask-town-hall/) - I ask the tough questions sometimes, and I accept answers I don't fully agree with. - [Beginning to Understand JSON](https://halfelf.org/2015/beginning-understand-json/) - Starting to understand all the fuss about the JSON API. - [Calypso](https://halfelf.org/2015/calypso/) - It's just an app to the left, and then a blog to the right as we get used to the new world order of WordPress on the desktop. - [It's Okay To Overwhelm](https://halfelf.org/2015/overwhelming/) - When we're overwhelmed we may make mistakes, but we'll learn a lot too. - [I Am The 20%, And So Are You](https://halfelf.org/2015/i-am-20/) - I have always and will always fight for the users. Even when they outnumber me. I am the 20%. - [Rant: Lightboxes and Scrolling](https://halfelf.org/2015/lightboxes-scrolling/) - Size matters when your box is too big for my screen. - [Mailbag: Why Won't You Help Me From Myself?](https://halfelf.org/2015/mailbag-help-me-from-myself/) - Sometimes when you build a better mousetrap, you only catch yourself. - [Say Thank You Publicly and Be a Better Coder](https://halfelf.org/2015/thank-you-better-code/) - When I was at WordCamp Tokyo, I was reminded of the power of a thank you and how it makes Open Source better. - [Mapping the Apple Watch](https://halfelf.org/2015/mapping-apple-watch/) - Using the Apple Watch to get lost and un-lost is always interesting. Unless you use Google Maps. Then it sucks. - [The Security of a Lifetime License](https://halfelf.org/2015/security-lifetime-license/) - StudioPress ups and downs the value in their pro-plan, making me think about the hidden value of a lifetime license. - [Octopress](https://halfelf.org/2015/octopress/) - Adding new tools to my Jekyll bag. - [One Direction: Sanely](https://halfelf.org/2015/one-direction-sanely/) - The way you flip your URLs has me overwhelmed. - [App Review: iStat Menus](https://halfelf.org/2015/app-review-istat-menus/) - A quick review of a desktop app I love for keeping tabs on my stats. My computer stats. - [Quick Notes on Ruby and Jekyll](https://halfelf.org/2015/ruby-jekyll/) - A very quick, brief, overview on the relationship of Jekyll, Ruby, and Gems. - [Mailbag: But You Can't Post Mobile!](https://halfelf.org/2015/mailbag-cant-post-mobile/) - Mobile posting from Jekyll really isn't a thing. But it's not like it was much better with MediaWiki anyway. - [Jekyll Table of Contents](https://halfelf.org/2015/jekyll-table-contents/) - Adding a 'simple' table of contents to Jekyll makes you consider the weight of your site. Is a heavy overhead worth it? - [Deploy Jekyll Without Ruby](https://halfelf.org/2015/deploy-jekyll-without-ruby/) - Deploying your Jekyll site with a command. - [Jekyll Collections](https://halfelf.org/2015/jekyll-collections/) - Figuring out collections with Jekyll is kind of like Custom Post Types. - [Bye Wiki, Hello Jekyll](https://halfelf.org/2015/bye-wiki-hello-jekyll/) - Mastering Jekyll at last. - [Fetch As Google Failed](https://halfelf.org/2015/fetch-google-failed/) - A short tale of debugging and WordPress. - [Jekyll Layouts vs Wiki Templates](https://halfelf.org/2015/layouts-templates/) - Replacing a variety of templates with cleverly built layout files. - [Bad Habits, Bad Dates](https://halfelf.org/2015/bad-habits-bad-dates/) - In my move from MediaWiki to Jekyll, I learned I'd been doing some things in a pretty terrible way. - [Mailbag: Why Jekyll?](https://halfelf.org/2015/mailbag-jekyll/) - Why would I go to Jekyll when I could have WordPress? - [Apple News: Only Our News Fits](https://halfelf.org/2015/apple-news-fits/) - Rant: Apple News is all the news that fits, except the news you can't have. - [Mailbag: Delete My Account, Please](https://halfelf.org/2015/mailbag-delete-account-please/) - Sorry, Charlie, I can't help you there. - [New Plugin: @Reply Two](https://halfelf.org/2015/new-plugin-reply-two/) - Making managing and leaving comments a little easier. - [Turning It Off And On Again](https://halfelf.org/2015/turning-on-off/) - Spending a day debugging when you can't see anything that resembles an error message is entertaining. In the "not at all" way. - [An Ad Network You Can't Use](https://halfelf.org/2015/ads-you-cant-use/) - It's really the best ad network I've heard of. But I've barely heard of it. - [Stop Using Copy Protection](https://halfelf.org/2015/stop-using-copy-protection/) - Give up. The only full protection is not to post your image in the first place. - [To Block or Not To Block](https://halfelf.org/2015/block-block/) - Thoughts on the issues of ads and their blockers. - [Changing Git History](https://halfelf.org/2015/changing-git-history/) - It's back to the future when you make too many commits in git! - [Custom Excerpts Read More for Genesis](https://halfelf.org/2015/custom-excerpts-read/) - Adding in 'read more' for a custom excerpt on Genesis. - [Mailbag: An Appropriate Solution](https://halfelf.org/2015/mailbag-appropriate-solution/) - Be prepared for what you're getting into. - [Stupid Easy](https://halfelf.org/2015/stupid-easy/) - Who are you writing your code for? How will they use it? Do they need simple or complex? - [HTTPS and WordPress](https://halfelf.org/2015/https-wordpress/) - You can set up HTTPS on WordPress smartly or less smartly. Let's be smart. - [On Site Advertising: Affiliates](https://halfelf.org/2015/site-advertising-affiliates/) - Basically I'm really bad about these. - [CDN vs Local](https://halfelf.org/2015/cdn-vs-local/) - The ultimate answer is "I do not know." - [Mailbag: Curbing Comments By Count](https://halfelf.org/2015/curbing-comments-count/) - I do moderate. And I use tools for it. So can you! - [On Site Advertising: WordAds](https://halfelf.org/2015/site-advertising-wordads/) - WordAds, while a beta product, was just not usable enough. - [On Site Advertising: Google Adsense](https://halfelf.org/2015/site-advertising-google-adsense/) - The grand pappy of all ad networks still holds up. - [On Site Advertising: Project Wonderful](https://halfelf.org/2015/site-advertising-project-wonderful/) - Project Wonderful is really pretty awesome and has a lot of features. Now if only their revenue and style were the tops. - [Mailbag: Chocolate Cake is a Need](https://halfelf.org/2015/mailbag-need-cake/) - Multisite, revenue sharing, categories as subdomains, and more in this week's mailbag! - [Cookie Free Domains and CDNs](https://halfelf.org/2015/cookie-free-domains/) - Messing with static locations for static things on a website. - [CloudFlare Experiment Ends Weirdly](https://halfelf.org/2015/cloudflare-ends-weirdly/) - After five months of CloudFlare, I've turned it off. Unsatisfied. - [It's Not Beer It's Homebrew](https://halfelf.org/2014/its-not-beer-its-homebrew/) - Homebrew installs the stuff you need that Apple didn’t. - [Mailbag: Finding A Rogue WordPress Setting](https://halfelf.org/2015/finding-rogue-wordpress-setting/) - Don't make settings changes without reading what they do! - [Mailbag: Headers Already Sent](https://halfelf.org/2015/mailbag-headers-already-sent/) - In which I digress when talking about headers already sent errors. - [Don't Use WordPress MultiSite](https://halfelf.org/2011/dont-use-wordpress-multisite/) - There's a time and a place for everything and that's WordPress. But there isn't just one perfect answer to all things! If you use MultiSite, you should be doing it for the right reasons. - [Folder Permissions on Windows](https://halfelf.org/2010/folder-permissions-on-windows/) - This solution won't help everyone, but it helped me today. I had to add permissions on a few hundred folders, and I didn't want to do it manually. - [Genericon'd Menus](https://halfelf.org/2013/genericond-menus/) - Adding Genericons to your menus is easy as it gets. - [Extending Chrome](https://halfelf.org/2013/extending-chrome/) - For fun, profit, and perhaps a little tweaking of terrible websites, I'm using Chrome Extensions to make the web suit me a little more. - [InBox Insanity](https://halfelf.org/2014/inbox-insanity/) - I just don't like that unread message count, hanging over me, staring at me, looking at me... demanding my attention. - [WCSF Video: Don't Use WordPress Multisite](https://halfelf.org/2013/wcsf-video-dont-use-wordpress-multisite/) - Guess who is up on WPTV now? - [Torrenting](https://halfelf.org/2013/torrenting/) - Torrenting is really easy. It's also legal, depending on what you torrent. - [Dr. Jekyll and Ms. Hyde](https://halfelf.org/2014/dr-jekyll-and-ms-hyde/) - "Helen and her damn thongs" is a line that remains stuck in my head forever. In this case, it's Jekyll and it's damn forks. - [Mailman Newsletter Widget](https://halfelf.org/2012/mailman-newsletter-widget/) - Adding in a mailman signup widget is so easy, I wonder why I never did it before! - [Smart Servers](https://halfelf.org/2011/smart-servers/) - Smart Servers are the new buzzword. A server that is semi-cloud-like, but still it's own master. What does it mean? Is this just another flash in the pan? I've decided to buy into it. - [Diving Into Varnish](https://halfelf.org/2014/caching-varnish/) - A little dive into Varnish for Apache on the same server ends with being all wet. - [Woopra Gravatars](https://halfelf.org/2010/woopra-gravatars/) - How to make Gravatars show up on Woopra for Theme Hybrid. - [bbPress 1.x Functions](https://halfelf.org/2010/bbpress-function/) - Some quick and dirty functions I came up with for the bbPress 1.x days. - [Dig Yourself Out of a Hole - Multisite Edition](https://halfelf.org/2010/dig-yourself-out-of-a-hole-multisite-edition/) - Sometimes, when you're smart and savvy, you make changes that later on shoot yourself in the foot. Here's what I did, how I solved it, and how to use this as an example of why you just keep trying! - [WordPress: Open Comments More Selectively](https://halfelf.org/2011/wordpress-open-comments-more-selectively/) - If you want to enable comments on 'all' of your posts selectively, we can do that for ya! - [Making a Stand Alone SQL Account](https://halfelf.org/2012/stand-alone-sql-account/) - A very simple thing you can do to make your sites more secure is to use a separate SQL user for your web apps. - [WordPress Multisite Subdomains Without Wildcards](https://halfelf.org/2012/multisite-subdomains-wildcards/) - The easiest way to run a Multisite network with subdomains is to use wildcard subdomains, because they'll automagically map anything.yourdomain.com to yourdomain.com and WordPress will in turn translate that for you. When you're on shared hosting, you can't do that. But don't worry! If you're willing to do it manually, every time you have a - [phpMyAdmin vs CMS](https://halfelf.org/2012/phpmyadmin-vs-cms/) - By 'CMS' I mean WordPress, Drupal, whatever. So here's a funny. I moved my DreamHost site to a VPS, so I could learn nginx (I'm still a newb) and suddenly I couldn't get to my phpMyAdmin anymore! Before someone says it's DreamHost's fault, this is actually due to how I installed subdomains (which I don't - [Subdomains Back Where They Belong](https://halfelf.org/2012/moving-subdomains/) - In my last post, I talked about how I did something dumb with my subdomains. How did I install subdomains? Stupidly. Or rather, stupid for DreamHost. See, many other hosts, when you make a subdomain, come up with this structure for your files: So when I made my subs, I made them similar to that. - [CentOS and PHP 5.4](https://halfelf.org/2013/centos-and-php-5-4/) - Sundays are for Coding for Me. This weekend I upgraded to PHP 5.4, which meant I had to reinstall my two favorite extensions and added a new one. - [Review: Sitespeed.io](https://halfelf.org/2014/review-sitespeed-io/) - Analyze your website while getting a beer. - [Is It My Server or My Theme?](https://halfelf.org/2012/server-or-theme/) - Site slowness shouldn't start with pointing fingers at your host, but at yourself. - [Kick PageSpeed Up A Notch](https://halfelf.org/2013/kick-pagespeed-up-a-notch/) - If you're using Apache and PHP 5.3 on your DreamHost domain, you have the magical power to enable Google PageSpeed. Just go and edit your domain and make sure you check the box for "Page Speed Optimization": But what does that even mean, I hear you ask? PageSpeed is Google's way to speed up the - [Take my SPDY, Please](https://halfelf.org/2014/google-apache-take-spdy-please/) - So Google gave mod_spdy to Apache. Now what? - [Image Compression](https://halfelf.org/2015/image-compression/) - Compressing images to make your site load faster is all fun and games, until someone loses an eye. - [WordPress Media Library: Show ID](https://halfelf.org/2013/media-library-show-id/) - How to add a new column on the WordPress Media Library to show the ID. - [Passwordless SSH](https://halfelf.org/2012/passwordless-ssh/) - Everyone talks about it, this is how I setup passwordless SSH. - [Collecting Conflicting Stats](https://halfelf.org/2013/collecting-conflicting-stats/) - Measuring success via traffic isn't as simple as opening one program and reading a number. - [Gensis: Post Title on Featured Image](https://halfelf.org/2014/gensis-post-title-on-featured-image/) - A little more featured image magic for your day. - [Mailbag: Multiple Download Buttons](https://halfelf.org/2015/mailbag-download-buttons/) - How I make fake download 'buttons' for my EDD store. - [MP6uccess - Tips and Tricks](https://halfelf.org/2013/mp6uccess-tips-and-tricks/) - MP6 has moved from 'This is really nice' and into 'I gotta use this' territory with one simple addition: color themes. - [wp-cron it up](https://halfelf.org/2013/wp-cron-it-up/) - It schedules more than posts, and it can be totally worked around, if you're into that sort of thing. - [Review: DesktopServer](https://halfelf.org/2013/review-desktopserver/) - Finally installed DesktopServer. It's a pretty neat thing, but depending on your workflow, maybe isn't quite what you want. It works for me, so here's my unsolicited review. - [Subdomains, WordPress and nginx](https://halfelf.org/2012/subdomains-wp-nginx/) - This should be obvious, but I'm not familiar with nginx, so it wasn't. I added trunk.elftest.net as a separate subdomain (rather than Multisite) because I wanted it to run trunk and not impact anyone else. The way that DreamHost works, is you have a separate folder for your nginx configurations, called nginx, and it lives off your - [Separate Users Are Good](https://halfelf.org/2013/separate-users-are-good/) - Separating your domains by userID is not only smart, it's so easy a caveman could do it! - [Why We Don't Auto-Update Plugins](https://halfelf.org/2013/we-dont-update-plugins/) - Understanding a little more about why we upgrade what we do, and why we don't what we don't. - [SSL Intermediary Certificates](https://halfelf.org/2014/ssl-intermediary-certificates/) - SSL failures in weird places with cPanel, WHM, Comodo, and a phone I don't have. - [WordPress Upgrade Script](https://halfelf.org/2010/wordpress-upgrade-script/) - How I update WordPress really fast without the automated installer. - [WordPress Plugin Script](https://halfelf.org/2010/wordpress-plugin-script/) - Handy little script to upload new versions of WordPress plugins. It's stupid. It works. - [Google’s Blog Search is Irrelevant](https://halfelf.org/2009/googles-blog-search-is-irrelevant/) - Google's blog search screws up SEO for everyone. - [The Self-Perpetuating Myths](https://halfelf.org/2012/self-perpetuating-myths/) - G.R.O.S.S. didn't work for Calvin, and it won't work for us either. Are we discriminatory because we're actually racists, or do we only look that way from the outside? - [Listen to the Aftertaste](https://halfelf.org/2012/halfelf-chats/) - So yeah, you heard me Wednesday night. Or now if you want to download it and listen. I dialed in to the WP Late Night Aftertaste. - [WordCamp Elevator Pitches](https://halfelf.org/2015/wordpress-elevator-pitch/) - You've got my attention. Now sell it right. - [Whatevergram: The Honeymoon is over](https://halfelf.org/2014/whatevergram-the-honeymoon-is-over/) - Collecting my hipster media isn't as easy as I want it to be. - [Multisite Stands Alone](https://halfelf.org/2012/multisite-stands-alone/) - Multisite is the WP baby, and it can't do everything you want because we haven't written it all yet. That's all there is to it. - [No More PHP Code (In Widgets)](https://halfelf.org/2013/no-more-php/) - Breaking up with PHP Code in Widgets is making friends with Otto. - [Is SEO Best Handled by a Plugin or Theme?](https://halfelf.org/2013/seo-plugin-vs-theme/) - While WordPress is great at SEO, it can be improved upon by good themes and good plugins. But which is best and won't leave me hanging out to dry if I change themes? - [Ministry of Silly Plugins](https://halfelf.org/2013/silly-plugins/) - Sometimes you have to look at what's weird to understand how great a thing can be. Study and learn from the silly! - [Giving Back Anew](https://halfelf.org/2014/giving-back-anew/) - Giving back to something new in WordPress is just a part of WordPress. - [Why Not Multisite?](https://halfelf.org/2014/why-not-multisite/) - Anything you want to do on a Multisite you can do on a single install of WordPress, with the right plugins. But... Maybe there is a good reason for Multisite. - [SSL for One Domain on Multisite](https://halfelf.org/2014/ssl-for-one-domain-on-multisite/) - Quickly setting up SSL for one domain on my multisite. - [Contact Form 7 and Anti-Spam](https://halfelf.org/2012/contact-form-7-and-anti-spam/) - DreamHost has a fairly simple anti-spam policy, which can be summed up as this: You cannot send email from an address that isn't your domain. If that was greek to you, don't worry. What that means is that my WordPress blog here can only send emails as elftest.net. That poses a small problem if you're - [Self-Update Your Plugins](https://halfelf.org/2014/self-update-your-plugins/) - Keeping up with your own Joneses isn't always easy, but it can be, - [Why I Pushed Back On Your Plugin](https://halfelf.org/2014/pushed-back-plugin/) - The talk at WordCamp Ventura was actually called "Top 11 Reasons Your Plugin Was Rejected." It was supposed to be ten, but Konstantine said "You should make it 11!" and I did but forgot to update the info for him. Bonus reason! You can see all the slides at helf.us/wcventura2014 right now. Video will be - [Mailbag: What Plugins Do I Use?](https://halfelf.org/2014/mailbag-plugins-use/) - Let's close out 2014 with some plugin suggestions... Or not. What plugins do I use? - [Mailbag: Tools To Keep Consistent](https://halfelf.org/2015/mailbag-keep-consistent/) - The trick behind posting three days a week, regularly, for over two years, is to use the right tools. And to have a lot of questions! - [MailBag: Why Do You Do It?](https://halfelf.org/2015/mailbag/) - Why I WordPress, more thoughts on security, and also responsibility. - [Mailbag: Multisite or Not?](https://halfelf.org/2015/mailbag-multisite/) - Nope, still wouldn't use Multisite for this one. - [I Hate Your Framework](https://halfelf.org/2015/hate-framework/) - The plugin itself was one PHP file and three JS files. The framework was over two megs. The plugin added in a new setting to select which one of the three javascript files should be called. The framework 'made it pretty.' I'm right up there telling people that the WordPress Settings API is a giant - [Defines, Variables, and Plugin Dirs](https://halfelf.org/2015/defines-variables-plugin-dirs/) - If you've spent any time looking at PHP code, then you've seen defines and variables Defines A define looks like this: This makes a global constant that can be used anywhere. In the case of WordPress, it means they can be used across multiple plugins or themes. This is very useful if you make a - [Mailbag: What's The Diff?](https://halfelf.org/2015/whats-diff/) - Ideas can always be copied. Code can be cloned. But you should be an original. - [Who's Following Me Anyway](https://halfelf.org/2013/whos-following-me-anyway/) - Welcome to the Internet, where everything's made up, and the points don't matter. - [Software Freedoms](https://halfelf.org/2011/software-freedoms/) - GPL does not, cannot, and will not protect the developer who writes the original code. But that's not why we use it. - [Plugin Licenses, Upsells, and Add-ons](https://halfelf.org/2012/plugin-licences-upsells-addons/) - If you can't obfuscate your code, or have an API just to check a license, how are you supposed to earn any money with a plugin in the WordPress repository? Stop thinking about hiding your code and start extending it. - [New Smilies?](https://halfelf.org/2014/new-smilies/) - I switched to using the new smilies ala WordPress.Com. It wasn't hard. - [All is Revealed](https://halfelf.org/2014/all-is-revealed/) - Faster slides with HTML5 and all is revealed! - [Hotlink Protection](https://halfelf.org/2010/hotlink-protection/) - Hotlinking is putting a link to someone else’s webpage’s graphic on your site. This is also called bandwidth theft. Directly linking to a website’s files (images, video, etc.) means that when someone accesses your website, they draw bandwidth from another. If you use an IMG tag to show a picture from someone else’s page on - [Email PopUp](https://halfelf.org/2013/genesis-email-popup/) - Blame Chris Lema for diving into jquery, CSS, and a pop-up ad that isn't a pop-up. - [jQuery Toggling](https://halfelf.org/2014/jquery-toggling/) - Just a quick toggling in jquery to show/hide some text. - [WordPress iOS App: Good for Bloggers](https://halfelf.org/2014/wordpress-ios-app/) - The verbification of WordPress lets me down when I reflect on the iOS app. - [iPad Mini](https://halfelf.org/2014/ipad-mini/) - A little ditty about my iPad Mini and why I like it so. - [You'll Never Take My Freedom!](https://halfelf.org/2011/youll-never-take-my-freedom/) - I may not agree with what you do, but if it's legal, I will defend your right to do it. - [The Legality of Forking](https://halfelf.org/2011/the-legality-of-forking/) - "An avidity to punish is always dangerous to liberty. It leads men to stretch, to misinterpret, and to misapply even the best of laws. He that would make his own liberty secure must guard even his enemy from oppression; for if he violates this duty he establishes a precedent that will reach to himself." -- Thomas Paine - [The Morality of Forking](https://halfelf.org/2011/morality-of-forking/) - "Those who expect to reap the blessings of freedom must, like men, undergo the fatigue of supporting it." -- Thomas Paine - [PMC Sues THR Over Open Source Code](https://halfelf.org/2011/pmc-sues-thr-over-open-source-code/) - Open Source goes to court, but this time none of the regular players are involved. - [GPL Freedoms - Yep, Porn's Good!](https://halfelf.org/2011/gpl-freedoms-porn-is-good/) - You may not like it, you may find it distasteful, but it's perfectly acceptable, license wise, to use certain products for anything you want. Just don't break the law. - [GPL - Oh Dear God](https://halfelf.org/2012/gpl-oh-dear-god/) - GPL - I don't really care what flavor you use but won't anyone think about the users? - [Fork With Restraint](https://halfelf.org/2012/fork-with-restraint/) - While the GPL allows you to fork plugins, you should think long and hard if there's a reason you need to do this. - [How To Submit a WordPress Plugin](https://halfelf.org/2012/submitting-wp-plugins/) - A non-technical how to get your plugin in the WordPress repository. - [The Responsibility of Freedom](https://halfelf.org/2014/the-responsibility-of-freedom/) - With great freedom comes some very odd responsibilities when it comes to reselling products. - [It's Not GPL and That's Okay](https://halfelf.org/2014/its-not-gpl-and-thats-okay/) - The patchwork elephant of websites means that there isn't one answer for everything. - [Great Walls of Fire](https://halfelf.org/2014/great-walls-of-fire/) - When speed causes a slowdown, you may be offloading your site into inaccessibility. - [Mountain Lion and SVN](https://halfelf.org/2012/mountain-lion-and-svn/) - Real fast, if you're having SVN problems with Mountain Lion, and have an 'old' version of SVN, read this. - [Capital H Dangit](https://halfelf.org/2012/capital-h-dangit/) - Stealing capital P to save myself a little embarrassment. - [Version Control](https://halfelf.org/2013/version-control/) - Using version control correctly isn't that hard, but when you do it wrong, it's painful for everyone. - [World Time Event Shortcode](https://halfelf.org/2013/world-time-event-shortcode/) - Embed a time-zone friendly event notice in your blog posts? Why not! - [DreamHost Logo ala CSS](https://halfelf.org/2013/dreamhost-logo-ala-css/) - Making a logo with CSS is pretty fun and cool. Props to Clee, my coworker. - [Shortcode: MLB.TV](https://halfelf.org/2013/shortcode-mlb-tv/) - A quick shortcode to show MLB.TV videos. - [Don't Fear The Auto Update](https://halfelf.org/2013/dont-fear-the-auto-update/) - WordPress Auto-Updates are not terrible, they're not evil, and this comes from a woman with tinfoil in her hats. They're okay by me. - [Genesis Favicons Multistyle](https://halfelf.org/2014/genesis-favicons-multistyle/) - Multisite? Favicons? Genesis? Why yes, let's make them sing! - [All Comments By Email](https://halfelf.org/2014/all-comments-by-email/) - A WordPressy way to list all comments by email address from the comments page. - [Local Backups](https://halfelf.org/2014/local-backups/) - Making regular backups on your own computer of your website isn't just smart, it's super smart. Here's how I do it. - [Mailbag: Pinging Pingbacks](https://halfelf.org/2014/mailbag-pinging-pingbacks/) - Handling ping backs and managing your link backs. - [Customize Network Toolbars](https://halfelf.org/2014/customize-network-toolbars/) - A quick mess with your 'My Sites' list on WordPress Multisite - [Why I Like Font Icons](https://halfelf.org/2014/why-i-like-font-icons/) - I really do love Font Icons, and here's why I do and how I use them and how you can too. - [Better Headers](https://halfelf.org/2015/better-headers/) - Making better headers on your code files will make everyone happier. - [Subdomains and Subfolders, One Network](https://halfelf.org/2015/subdomains-subfolders-one-network/) - A multisite network with subdomains and subfolders? Sure. Why not! - [GeoIP Options](https://halfelf.org/2015/geoip/) - When you have to know where people are from, you have to check their locations and there's no perfect way to do it. - [Gallery Columns Zero](https://halfelf.org/2015/gallery-columns-zero/) - Making WordPress galleries behave in a different way. No columns, adaptive width. - [Slow Site Troubleshooting: Database Edition](https://halfelf.org/2015/slow-site-db/) - So your WordPress is slow and you've already done the needful. You've checked your plugins and themes, you've put caching in place, you've checked for hacks, but it's still slow, especially on the back end of WordPress? It may be your database. More specifically it may be your wp_options table. When your options table gets - [Heartbeat API](https://halfelf.org/2015/heartbeat-api/) - Making our sites run faster with a beating heart. - [Bad Code](https://halfelf.org/2015/bad-code/) - Code can be bad while still being totally right. - [Varnish Cache and Cache-Control](https://halfelf.org/2015/varnish-cache-cache-control/) - Cache what cache can and not what it can't. - [Trading APC for Zend](https://halfelf.org/2013/trading-apc-for-zend/) - When the big dogs switch to Zend, it's time for the little dogs to do it too. Gain some speed and style with Zend Optimizer+, coming soon with PHP 5.5 - [Listing Everything on DreamObjects](https://halfelf.org/2015/listing-everything-dreamobjects/) - Show all your bucket's items as a list? Not too hard. - [A Theme By Any Other Name](https://halfelf.org/2012/what-is-a-theme/) - Delving further into themes and how to segregate types of themes. You didn't know they had types? now you do. - [WP Comments ReplyTwo](https://halfelf.org/2013/wp-comments-reply-two/) - Creating a nested plugin solution for @replies and always-on-reply-links with some theme and plugin code. - [Genesis: Static Nav Bar](https://halfelf.org/2013/genesis-static-nav-bar/) - No, it doesn't come with Guinan, but you can have a sticky navigation bar as your site's Ten Forward in two easy steps! - [A New Utility](https://halfelf.org/2013/a-new-utility/) - Carrie Dils' Utility Theme us everything I tried to do on my own, only better. - [Gaining REM](https://halfelf.org/2014/gaining-rem/) - That's me in the corner. That's me in the spotlight using scss. Trying to auto-calc my rem. And I don't know if I can do it. Oh no I div'd too much. I didn't div enough. - [Professional Utility](https://halfelf.org/2015/professional-utility/) - Use and usability and form and function. Carrie Dils nails all of that in a new theme. - [grep vs ack](https://halfelf.org/2012/grep-ack/) - Grep vs ack is like vi vs emacs. What tool you use is based on your comfort level. While I've been a grep-er for years, I just switched to ack, and I regret nothing. - [Drag to Choose File](https://halfelf.org/2014/drag-to-chose-file/) - This one trick saved a half-elf hours of work with clicking on buttons! - [Upgrading Multiple Macs](https://halfelf.org/2013/upgrading-multiple-macs/) - What if I told you ... you only had to download that 5 G file once? - [Defaults Matter](https://halfelf.org/2014/defaults-matter/) - Determining default settings is a challenge. What are you trying to do? What do your users need you to do? What do you want and need? - [Why I Write eBooks](https://halfelf.org/2014/why-i-write-ebooks/) - I love reading. And writing. I do it all the time. Alllll the time. Oh and a sneak announcement at the end. Read more to reveal all! - [Making a WP-CLI Plugin](https://halfelf.org/2015/making-wp-cli-plugin/) - Messing around with wp-cli, it was fun to learn how to make a plugin ... without a plugin. - [What I Learned From The Man](https://halfelf.org/2015/learned-man/) - I learned a number of things in my tenure at Le Bank, and a surprising number are still useful. - [Jetpack Koolaid](https://halfelf.org/2013/jetpack-koolaid/) - I guess I'm drinking the Automattic Kool-aid when I say I don't really have a problem with Jetpack. - [My WordPress Scripts](https://halfelf.org/2010/my-wordpress-scripts/) - Speaking of when to code... I get asked "If you don't use the built in WordPress upgrade tool, how do you upgrade your install?" a lot. So... here's how. - [Make An RSS Powered Email List](https://halfelf.org/2011/make-an-rss-powered-email-list/) - Want to feed your email list from an RSS feed without having to rely on things like FeedBurner or MailChimp? With rss2email and some savvy, you totally can! - [Distributed Company](https://halfelf.org/2011/distributed-company/) - Our tech skills have adapted to world wide collaboration, but why haven't our communication skills? - [The Person of WordPress](https://halfelf.org/2014/wordpress-person/) - The arm of support and the arm of humanity. - [Don't Use WWW](https://halfelf.org/2012/dont-use-www/) - Go www free. It's the way to be. Or not, but I certainly never use it anymore. - [Mapped Domains And Google Search](https://halfelf.org/2014/mapped-domains-google-search/) - For some reason my non-mapped URLs still show up in Google, and I didn't want that! - [Single Site Login Loop](https://halfelf.org/2014/single-site-login-loop/) - Looping the login in a different way on Single Site WordPress - [Beta Testers](https://halfelf.org/2015/beta-testers/) - So you wanna be a beta tester? Only the bold need apply to beta test. - [March into CloudFlare](https://halfelf.org/2015/march-cloudflare/) - Eating my own hotdogs by using CloudFlare. - [Changing Your Domain Name In Multisite](https://halfelf.org/2014/changing-domain-name-multisite/) - It's three steps, it takes five minutes, and it's not impossible at all. Also if you're having a Multisite 'redirect loop' after upgrading to 3.9 read the extra step at the end. - [Sometimes The Answer Sucks](https://halfelf.org/2013/answers-sucks/) - We Canna Perform Miracles, Captain! - [Speaking at WordCamp Boston](https://halfelf.org/2013/speaking-at-wordcamp-boston/) - Come to WordCamp Boston and see me speak about Managed WordPress Hosting - [Getting Good Advice](https://halfelf.org/2014/getting-good-advice/) - Driving fast to understand your goals works ... if you're a race car driver. - [Jetpack Menu Stats](https://halfelf.org/2012/jetpack-menu-stats/) - Add a link to Jetpack's 'Stats' in your per-site menu on the toolbar. - [Website Viewability](https://halfelf.org/2011/website-viewability/) - Will the desire to be on the cutting edge return us to the days of 'This site is best viewed in...' - [Lion: Switching F4 to run Launchpad](https://halfelf.org/2011/lion-launchpad/) - No plugins, no problem! You can change your keys on your Mac to show LaunchPad without any hassle at all! - [Community Driven Design](https://halfelf.org/2011/community-driven-design/) - While we all design open source, there's a point at getting in on the changes and it's not beta testing. Testing begins earlier, and your responsibility depends on who you support. - [Simply Complicated](https://halfelf.org/2012/simply-complicated/) - The tl;dr for this post is that I don't like Tumblr, and find it a clunky, poorly supported psudeo-blog and you should use something else. - [Font Size Matters](https://halfelf.org/2014/font-size/) - Rumination on Font Sizes being too damn small. - [On Site Advertising](https://halfelf.org/2015/site-advertising/) - It's about taste in advertising. - [Mailbag: Delete A New Page In Multisite](https://halfelf.org/2015/7811/) - Force deleting a page for new Multisites. - [Static Content Subdomain](https://halfelf.org/2015/static-content-subdomain/) - Moving some content to a separate subdomain for fun and profit. - [Encrypt My Site, Please!](https://halfelf.org/2015/encrypt-site-please/) - Making things more secure for all things. - [Don't Publish Bad Code](https://halfelf.org/2015/dont-publish-bad-code/) - Especially if you know it's bad. If you know it's bad and you publish it, you're reckless. - [OpEd: Community, Community, Community](https://halfelf.org/2015/oped-community/) - If we want to make it better, we have to actually do something. - [Everything Is Vulnerable](https://halfelf.org/2015/everything-vulnerable/) - If we can convince ourselves not to do stupid things, we can be safer. - [Mailbag: Debugging .Com](https://halfelf.org/2015/mailbag-debugging-com/) - A rare question about WordPress.com turns into databases and PHP crying in a corner. - [It's Okay To Write Bad Code](https://halfelf.org/2015/okay-write-bad-code/) - When we fail, we learn. But we can do more than just learn how to code better when we write bad code. We can learn to be better people. - [I Love/Hate Font Icons](https://halfelf.org/2015/love-hate-font-icons/) - Too bad they don't love me as much as I want them to. - [Rant: Chrome is the New Nanny Browser](https://halfelf.org/2015/rant-chrome-new-nanny-browser/) - Sometimes there's too much protection and not enough options. - [Rant: We've Forgotten Nettiquette](https://halfelf.org/2015/rant-weve-forgotten-nettiquette/) - Treat others the way you would like to be treated has a converse of don't treat others in ways you would find annoying. Life can be that simple. - [Internet Abuse](https://halfelf.org/2015/internet-abuse/) - The internet remembers. Always. - [Name Collisions](https://halfelf.org/2015/name-collisions/) - Sometimes a plugin update stomps all over your non wordpress.org hosted plugin, and it's all because of name collisions. - [Make or Break Yourself](https://halfelf.org/2015/make-break/) - How you react to adverse situations is what makes or breaks your business, not the fact that you had one in the first place. - [Mailbag: I Lost My Site](https://halfelf.org/2015/mailbag-lost-site/) - When you lose your domain, you may not lose anything. - [Rant: Gmail Contacts](https://halfelf.org/2015/rant-gmail-contacts/) - Using gmail to add new contacts to your contacts in Google sucks. - [Mailbag: Why Don't You Tell People How To Contact You?](https://halfelf.org/2015/mailbag-dont-tell-people-contact/) - When you ask for help, consider how you ask. If you'd pay for the result, start with that. - [Updating Bower with Grunt](https://halfelf.org/2015/updating-bower-grunt/) - Automation is king. So is content of course, but automating the code behind the content will save you time, money, and headaches. - [Mailbag: Multisite Subdomains Live Where?](https://halfelf.org/2015/mailbag-multisite-lives-where/) - Where is WordPress installed? Where does it run from? Where is WWW set? - [Uniqueness Matters](https://halfelf.org/2015/uniqueness-matters/) - I got 99 problems, but prefixes ain't one. - [Bower To The Master](https://halfelf.org/2015/bower-master/) - Automate repeatable tasks. It's just that simple. - [Trust the Changelog](https://halfelf.org/2015/trust-changelog/) - Do we need to know why the upgrade has to happen now? Do I need to understand the why? - [Mailbag: Would You Review...](https://halfelf.org/2015/mailbag-review/) - I say no, a lot, to favors like plugin and theme reviews. - [CloudFlare Code Muncher](https://halfelf.org/2015/cloudflare-code-muncher/) - Protecting my email worked until it ate the code I wanted to display. - [URL Validation](https://halfelf.org/2015/url-validation/) - Clunky code because I can't just say 'is_url' for some reason. - [How To Duplicate Content](https://halfelf.org/2013/how-to-duplicate-content/) - A question I'm asked a lot is how can two sites have exactly the same content. While I really cannot fathom a good reason why, here's how I'd do it. - [Mailbag: Static Bars and z-index](https://halfelf.org/2015/mailbag-static-bars-z-index/) - A little CSS for the z-indexing of stacks. - [Mailbag: Getting Started as a Freelancer](https://halfelf.org/2015/mailbag-getting-started-freelancer/) - Getting started in a career for helping? Where do you actually start? - [Software Death Isn't New](https://halfelf.org/2015/software-death-isnt-new/) - Or how I learned to stop worrying and love the bomb. - [If You Know What To Do](https://halfelf.org/2015/know-what-to-do/) - You can make it better or you can make it worse. It's up to you. - [Mailbag: Network Shared Media](https://halfelf.org/2015/mailbag-network-shared-media/) - Network shared media on a multisite can be slow. This we know. - [How Hackers Find You](https://halfelf.org/2015/hackers-find/) - Hackers really just don't care. - [Design for Multisite or DIE](https://halfelf.org/2015/design-multisite-or-die/) - You don't have to code for Multisite to code for Multisite. But when you code with WordPress Multisite in mind, you just may be doing_it_right() - [Underscores (A Plugin We Need)](https://halfelf.org/2015/underscores-plugin-need/) - A framework is not a starter pack. - [Multiple Languages, Multiple Approaches](https://halfelf.org/2015/multiple-languages-approaches/) - I was contemplating WordPress and how it handles multiple languages recently. - [Editing Content In Ghost Rocks](https://halfelf.org/2015/ghosting-dog-food/) - I really like the editor on Ghost - [Coding My Own Dogfood](https://halfelf.org/2015/coding-dogfood/) - Your pull request is more than a bug fix, it's a promise. - [2.2 Million AOL Dialup Users](https://halfelf.org/2015/2-2-million-aol-dialup-users/) - I was terrified but not for the reasons people seemed to think. - [Update Fatigue](https://halfelf.org/2015/update-fatigue/) - There are two simple rules for updates: When there are new features or when there's an important bug. Other than that? Hands OFF that push! - [Self Ghosted](https://halfelf.org/2015/nux-self-ghosted/) - No one said this was easy. And if they did, they lied. - [NUX: Setting Up Ghost (Self Hosted)](https://halfelf.org/2015/nux-setting-ghost-self-hosted/) - Sometimes NUX sucks really badly. Ghost's self hosted experience is the pits. - [Detoxify Your Website](https://halfelf.org/2015/detoxify-website/) - Cleanse your site's colon and keep your sanity. - [Newsletters Are Still Cool](https://halfelf.org/2015/newsletters-still-cool/) - This is weirdly short. But they are still kinda cool. - [Mailbag: Ghost Image Errors](https://halfelf.org/2015/mailbag-ghost-image-errors/) - I had a small issue with uploading images on Ghost. I solved it. I feel smart. - [NUX: Setting Up Ghost Pro](https://halfelf.org/2015/nux-ghost-pro/) - I'm not giving up to Ghost quite yet, but it is an interesting experience. - [Mailbag: Homogenous websites?](https://halfelf.org/2015/mailbag-homogenous-websites/) - All of these things are quite like the other. All of these things are quite the same. - [Hello, Mike](https://halfelf.org/2015/hello-mike/) - Gender bias based on names, even when the name ends in A? - [Learn Another Language](https://halfelf.org/2015/learn-another-language/) - Je m'appele Ipstenu. Je viens des Etats-Unis. - [Mailbag: A Case Against (Part Of) Jetpack](https://halfelf.org/2015/mailbag-case-part-jetpack/) - Someone noticed I'm not eating my own dogfood. There's a reason. - [CloudFlare's SSL](https://halfelf.org/2015/cloudflare-ssl/) - Follow the SSL chain with CloudFlare and a certificate. - [Git Flow](https://halfelf.org/2015/git-flow/) - Late as always to these git things. In the ever increasing madness to the method of making code easier to do, we come to the automation of git-flow. This is a library of git subcommands that helps automate some parts of the flow to make working with it a lot easier if you're using Vincent - [Mailbag: Self-Signed SSL](https://halfelf.org/2015/self-signed-ssl/) - A self-signed certificate made for a drama filled day. - [Mailbag: Facebook Page Notifications](https://halfelf.org/2015/facebook-page-notifications/) - Facebook's MySpace takeover only worked because MySpace imploded. - [Mailbag: SNI Incompatibility?](https://halfelf.org/2015/mailbag-sni-incompatibility/) - Nope. Not worried at all. - [Mailbag: Debugging the Dread "No Permissions"](https://halfelf.org/2015/debugging-dread-permissions/) - Debugging a site where you've lost all access to anything once logged in. - [The Ebb and Flow of Automation](https://halfelf.org/2015/ebb-flow-automation/) - I growled, I groaned, but finally I grunted. - [Mailbag: What Code Makes You Sigh?](https://halfelf.org/2015/mailbag-code-sigh/) - Code that makes me sigh isn't bad code or wrong code all the time. It's just ... code. - [Mailbag: Learning Resources](https://halfelf.org/2015/mailbag-learning-resources/) - My number one resource? Searching. - [Why I (Still) SelfHost](https://halfelf.org/2015/still-selfhost/) - I know it when I see it, but does Google? - [Markdown Isn't All Bad](https://halfelf.org/2015/markdown-isnt-bad/) - It's painful to admit that Markdown really isn't as evil as I thought it was. - [Mailbag: Being Rejected Is Good](https://halfelf.org/2015/mailbag-rejected-good/) - You lose more than you win, and losing hurts worse than winning feels good. - [What Themes Get Wrong](https://halfelf.org/2015/themes-get-wrong/) - There are things themes do that drive me up a wall. - [Packaging Code](https://halfelf.org/2015/packaging-code/) - You can, and should, clean up your development before you push it live. And I don't just mean the language. - [Mailbag: Wrong Robots](https://halfelf.org/2015/mailbag-wrong-robots/) - No, I really am still using the robots file I said I am. Just not here. - [Don't Be Rude (Except When You're Not)](https://halfelf.org/2015/dont-rude-except-youre/) - While Wikipedia fails at it's own tenets regularly, I strive to remember this one: assume good faith. - [Cheap Is As Cheap Gets](https://halfelf.org/2015/cheap-gets-cheap/) - Spending money to make money isn't a new concept. - [Rant: Worse than a Popup](https://halfelf.org/2015/rant-worse-popup/) - Ads worse than popups? Sure. But it's iOS only. - [Mailbag: Trash the Blog Slug](https://halfelf.org/2015/mailbag-trash-blog-slug/) - You can remove the blog slug on your multisite, but you may not actually want to. - [A Case For Hello Dolly](https://halfelf.org/2015/hello-dolly/) - We all start from different places, and Hello Dolly represents the hopes and dreams of every developer out there. - [Overreaction to Negative Reviews](https://halfelf.org/2015/overreaction-negative-reviews/) - The anger comes from deep within ourselves. - [Mailbag: Have You Ever Split a Multisite?](https://halfelf.org/2015/mailbag-ever-split-multisite/) - A non-theoretical post about how I split up a Multisite. - [WordPress Login Protection With .htaccess](https://halfelf.org/2013/wp-login-protection-htaccess/) - No ModSecurity? No problem (unless you're on nginx)! You can still do things to help protect yourself from the insanity of people hammering your server trying to log in to WordPress. - [Dumping ms-files](https://halfelf.org/2012/dumping-ms-files/) - Two years ago I wrote up how you move your main site into blogs.dir. Now that 3.5 is here, I decided to write how you move everything to uploads/sites. You don't have to do this to keep using WordPress, I just thought it would be fun. - [Whose Responsibility Is It?](https://halfelf.org/2014/whose-responsibility/) - What can go wrong? How likely is it? What are the consequences? If it's your business, you have to know. - [Even Better Drag And Drop!](https://halfelf.org/2014/even-better-drag-and-drop/) - Another really quick bit of fun with dragging media into your browser. - [Portable Charging](https://halfelf.org/2014/portable-charging/) - A couple thoughts on the portability and usability of charger. - [Replacing a Hard Drive](https://halfelf.org/2014/replacing-hard-drive/) - A hardware moment when in I replace my Hard Drive. Don't drop your laptops, people. - [Mailbag: Translations](https://halfelf.org/2014/mailbag-translations/) - The second hardest thing about translations is trusting the translator. - [Mailbag: I Don't Woo, But I Do CPT](https://halfelf.org/2014/mailbag-woo-cpt/) - The art of Custom Post Types and control - [Don't You Give That Girl a Gun](https://halfelf.org/2014/dont-give-that-girl-a-gun/) - When people insist on doing things that will hurt their site, how far does it go? - [When Sites Go Down](https://halfelf.org/2014/when-sites-go-down/) - I lost a day of being able to work, but not my faith in my host. - [Cold Calling Support](https://halfelf.org/2014/cold-calling-support/) - Sometimes I'm not nice to 'support' but that's when it's not support, but sales. - [Reset the Net Gotchas](https://halfelf.org/2014/reset-the-net-gotchas/) - Yesterday we wanted to take back the net. Today let's talk about some sticking points I have with it. - [It's a Piece of Cake](https://halfelf.org/2014/its-a-piece-of-cake/) - It's a lie that everything is easy. Everything's hard the first time, so we have to keep trying until it's easy. - [C'mon Get Trac'in!](https://halfelf.org/2014/cmon-get-tracin/) - When should you, that new user, use trac, and when should you not? - [How to Market Your Blog](https://halfelf.org/2014/how-to-market-your-blog/) - The trick is that you're not marketing anything at all. - [Save Bacon With ModSecurity](https://halfelf.org/2014/modsecurity-bacon/) - Sometimes we get too particular in our quest to stop those damn, dirty, hackers. - [It's Better to Extend](https://halfelf.org/2014/better-to-extend/) - Deciding what you need and want is why WordPress being extendable is a win for everyone. - [So You Just Have One Small Question....](https://halfelf.org/2014/one-small-question/) - It's a gift to be simple but our answers rarely are. - [Why Can't Multisite...](https://halfelf.org/2014/why-cant-multisite/) - You can't always get what you want (but if you try sometimes, you just might find, a plugin you need). - [Easier Control](https://halfelf.org/2014/easier-control/) - Thou art mortal. Thy code will change. Thou art mortal. Thy code will change. - [Resilient Responses in Reviews](https://halfelf.org/2014/resilient-responses-in-reviews/) - I'll know bad code when I see it, but fixing it is another matter. - [ZOMG! You Stole My Code!](https://halfelf.org/2014/zomg-you-stole-my-code/) - Teach a user to upload, and you've saved your own vacation. Which you paid for by installing and teaching them to begin with. - [You're Wrong about Open Source Development](https://halfelf.org/2014/youre-wrong/) - You're not wrong, but you may be wrong, and that's why your favorite tool doesn't do what you want. Yet. - [I Don't Care If You Use Multisite](https://halfelf.org/2014/dont-care-about-multisite/) - Nope. Don't care. La la la! Not listening to you! I care that you think, not if you use. - [Not The Bug I Expected](https://halfelf.org/2014/not-the-bug-i-expected/) - Adventures in debugging a database error of the sort I had never seen before! - [Is This Plugin Bad?](https://halfelf.org/2014/bad-plugin/) - They're not bad, they're just misguided! And the secret answer is "Be aware." - [Impostor Syndrome](https://halfelf.org/2014/impostor-syndrome/) - More philosophy than anything else, the illogic behind feeling like you can't and how it limits you. - [Poor Customer Service](https://halfelf.org/2014/poor-customer-service/) - How to turn me from understanding and apologetic about my mistake into someone who outright hates your service. - [It's Never A Good Time](https://halfelf.org/2014/never-a-good-time/) - There's just never a good time to turn something off or close the doors. The world is 24/7, so we're gonna have problems. - [Videos: Local or Service](https://halfelf.org/2014/videos-hosting/) - Pondering where and how to host my media is not as easy as it might be. - [Your Username is Not A Secret](https://halfelf.org/2014/username-secret/) - Things that aren't secrets shouldn't be hidden, since it just wastes your time. - [Welcome the Warehouse](https://halfelf.org/2014/welcome-the-warehouse/) - It was incredibly simple and basic to make a store online using WordPress, a good theme, and a good plugin. - [Your Website is Work](https://halfelf.org/2014/website-is-work/) - "But it's HARD!" Yes, yes it is. That's why it's work. Let's be honest about this so people aren't surprised by this. - [On Beyond Shared Hosting](https://halfelf.org/2013/beyond-shared-hosting/) - Going beyond shared hosting is not simple, it's not straight forward, and there is never one answer to magically know when you need to. Sorry. - [Don't Say WordPress](https://halfelf.org/2013/dont-say-wp/) - Sometimes it's WordPress, sometimes it's not. And sometimes saying "WordPress" blinds everyone to the real problems. - [Presentations Are Not Transcripts](https://halfelf.org/2013/presentations-transcripts/) - Why I write slides the way I do. They're not ever going to be transcripts ever again. - [Change Your Code](https://halfelf.org/2013/change-your-code/) - Ponderings of change, technology, and should I recode a system. - [Privacy and Evil and Money](https://halfelf.org/2013/privacy-and-evil-and-money/) - This is somewhat of a rant about something new Google did that doesn't please me. Opt-Out ad endorsements. - [Facebook: Scam Artist](https://halfelf.org/2013/facebook-scam-artist/) - Facebook stacks the deck against you if you're trying to communicate with other people, which certainly seems odd for a social network. - [Polyphemus Problem Pans Out](https://halfelf.org/2013/polyphemus-problem-pans-out/) - Solving a problem that nobody could, when nobody was bothering me, and nobody owned my files. - [What To Expect When You're Expecting to Go to WCSF](https://halfelf.org/2014/expect-wcsf/) - So you're coming to WordCamp SF? Here's what I've learned in two years! - [Get Sassy](https://halfelf.org/2013/get-sassy/) - I'm a little on the fence about Sass still, but it's time to get a little sassy and a little less grumpy about something new. - [Cloud Experiment](https://halfelf.org/2013/cloud-experiment/) - An experiment with CloudFlare as a cloud proxy service. I now understand it, and I can recommend it to certain people. - [MySQL - my.cnf](https://halfelf.org/2013/mysql-my-cnf/) - Saving some manual labor with cron, bash scripting, and a config file. - [Entry Level Hosting](https://halfelf.org/2013/entry-level-hosting/) - What kind of hosting do I need? How do I know which one is right? Let's start by understanding what entry level is and is not. - [Breaking Up Multisite](https://halfelf.org/2013/breaking-up-multisite/) - Multisite may not want to quit you, but you can force it to release one site on your network if you try. - [Whois On First](https://halfelf.org/2013/whois-on-first-know-your-website-details/) - Three simple things everyone who has a website should know. Of course, they're not that simple, are they? - [To Fork Or Not To Fork](https://halfelf.org/2013/to-fork-or-not-to-fork/) - Child themes, plugins, hacks, and tweaks. How do you edit a theme when you've outgrown what it is and make it what it needs to be? - [Code By Any Other Name](https://halfelf.org/2013/code-by-any-other-name/) - My advice for naming your plugins and themes is to remember there is more than one name. - [Deploying With Git](https://halfelf.org/2013/deploying-with-git/) - It may have taken me a year, but I've finally figured out that I was wrong the whole time, and using git to handle deployments isn't impossible, it's just different, and it can totally be scripted. - [Changing How We Develop](https://halfelf.org/2013/changing-how-we-develop/) - Developing new code in an old way, Aaron Jorbin's "WordPress Post Forking" looks to the future of how we take our software past hobby. - [Goodbye Google Reader](https://halfelf.org/2013/goodbye-google-reader/) - Google gave, and Google has taken away. - [Multisite Per Site Registration](https://halfelf.org/2012/multisite-registration/) - It's a holy-grail to many. Make a per-site registration form that will not only let users sign up, but actually add them to the site they signed up from! - [The dangers of an unchecked MultiSite?](https://halfelf.org/2010/the-dangers-of-an-unchecked-multisite/) - If you're running a website, you have a lot more responsibility than just yourself. - [Nginx Proxy](https://halfelf.org/2014/nginx-proxy/) - I finally set up nginx as a proxy for my apache box. This is not true nginx, and I can't run SPDY on it yet, or even SSL, but it sure does speed stuff up! - [Stick a Fork In It](https://halfelf.org/2014/stick-fork/) - Merging your fork back into itself by pulling in the changes from the parent isn't hard, just weird. - [Multiple Domains, Multiple Logins](https://halfelf.org/2015/multiple-domains-logins/) - It's for your own good that you can't be logged in automatically to multiple domains. - [The Road to PHP 5.x](https://halfelf.org/2015/road-php-5-x/) - Why don't we move to PHP 5.6 today? Well if it was that simple... - [Mailbag: Can I do it on WP (Legally?)](https://halfelf.org/2014/mailbag-wp-legally/) - Yep, you can still use WordPress for porn. - [Two Factor Apps](https://halfelf.org/2014/two-factor-apps/) - A new Two Factor App for a new phone! - [Mailbag: Where Do I Start Learning?](https://halfelf.org/2015/mailbag-start-learning/) - Who wants to be a WordPress millionaire? - [Themes Suck](https://halfelf.org/2014/themes-suck/) - Run for the hills! Someone wants design advice! - [You're Not The Priority With Free Support](https://halfelf.org/2014/priority-free-support/) - You aren't the most important person in the world to everyone. - [Hide Your Site on Multisite](https://halfelf.org/2014/hide-site-multisite/) - Hiding things is easy. Hiding them well is not. Especially on a Multisite. - [Being Smart Cures Headaches](https://halfelf.org/2014/smart-plugin-url/) - Just something everyone should know and use in their development. plugins_url(). - [Don't Be Afraid To Learn In Adversity](https://halfelf.org/2014/afraid-learn/) - Don't be afraid to code badly. You can't know it all from the beginning. And don't let people get you down about that. - [Don't Reinvent the Wheel](https://halfelf.org/2014/dont-reinvent-wheel/) - Unless the wheel needs it, of course... - [No Notice For Upgrades?](https://halfelf.org/2014/notice-upgrades/) - How I was silly and blocked my own emails for WordPress upgrades. - [Multisite Favicons](https://halfelf.org/2014/multisite-favicons/) - More fun with Favicons. Now we're playing with Multisite. - [Including Assets](https://halfelf.org/2014/including-assets/) - Be mindful in your use of add-on packages to your code. Only use what you need, and leave the rest out. - [WIRED Doesn't Use Multisite](https://halfelf.org/2014/wired-doesnt-use-multisite/) - When a company makes all the right choices for all the right reasons, I want to jump up and cheer. - [Git The Master Race](https://halfelf.org/2014/git-master-race/) - I was working on a project, a side project for fun with a friend, and she expressed a slight worry. We weren't using any versioning on our theme or mu-plugins code. Or anything else for that matter. There were three of us. We thought about using GitHub until I pointed out I had git on - [Mailbag: .htaccess Magic with Subdomains and Subfolders](https://halfelf.org/2014/mailbag-htaccess-magic/) - Redirect a subdomain and a folder at once? Sure thing! - [Karuta](https://halfelf.org/2014/karuta/) - Put on your hakama and play Karuta, WordPress style. - [TotalSpaces](https://halfelf.org/2014/totalspaces/) - For everyone at WCSF who asked "How did you get your Spaces on Mac to have names?" here's the answer. TotalSpaces 2, by Binary Rage, is "the ultimate grid spaces manager for your Mac" and they're not wrong. It took me a long time to agree that I needed to utilize spaces on my Mac, - [Migrating to DreamPress](https://halfelf.org/2013/migrating-to-dreampress/) - How to Migrate an existing account to DreamPress. This is NOT for beginners! - [Domain Registration, No Hosting](https://halfelf.org/2012/domain-registration-no-hosting/) - Just want to use DreamHost for DNS? You can do that! Login into your Panel and go into Domain > Registrations. Click the "Add Hosting" button on the far right. It will redirect you to a new page and from that page you can select from "Fully Hosted, Redirect, etc". The very last one is - [I'll be in Tybee!](https://halfelf.org/2012/ill-be-in-tybee/) - There's an upcoming WordPress Community Summit, and I'll be attending! I was invited before I was employed here at DreamHost (who is providing lunch, yay!), so now I'm serving two purposes! The first is as a community support leader, and in that auspice, I plan to represent the common user. The second is as DreamHosts's - [Upcoming Speaking Gigs for DreamHost and WordPress](https://halfelf.org/2013/upcoming-speaking-gigs/) - WordCamp San Francisco - July 26-29 ("Don't Use WordPress Multisite") DreamCon - Aug 2-3 ("Choosing WordPress Plugins" and "Get Out Of The Monkey House") WordCamp Portland - Aug 10 ("Rolling Your WordPress Support Character (without any code)") You get me twice at DreamCon. Twice the elf for one low payment! I believe all these will be recorded - [Mailbag: Site Security Plugins](https://halfelf.org/2014/mailbag-site-security-plugins/) - What security plugin to use? Oh if only that was the easy question. - [Why You Can't (Always) Catch Cache](https://halfelf.org/2014/catch-cache/) - Fast as fast can be, you'll never cache me. - [Working With A Translator](https://halfelf.org/2014/working-with-a-translator/) - Lost in translation, I've learned a lot about how to communicate when we don't speak the language. - [Automatic Geolocation](https://halfelf.org/2014/automatic-geolocation/) - Where I am is who I am and your geolocation methods piss me off. - [WordCamp Tokyo](https://halfelf.org/2014/wordcamp-tokyo-2014/) - Another upcoming WordCamp, this time overseas! - [The Bias of Transparency](https://halfelf.org/2014/the-bias-of-transparency/) - How transparent do we need to be? - [WordCamp Ventura](https://halfelf.org/2014/wordcamp-ventura/) - Come see me at WordCamp Ventura! - [Did You Know .... Gravatars](https://halfelf.org/2014/did-you-know-gravatars/) - Need to check on your Gravatar? There's an easy way. - [Make Your Advice Work](https://halfelf.org/2014/make-your-advice-work/) - Taking Tim Gunn's advice to your website. - [Don't Be Afraid of Looking Foolish](https://halfelf.org/2014/looking-foolish/) - Get messy, dance like no one's watching, and learn from those mistakes. - [The Mindset of Security](https://halfelf.org/2014/the-mindset-of-security/) - Gas station sushi is still sushi, right? You know not to eat that. Apply your common sense to your security. - [Hack’n’Slash Security](https://halfelf.org/2010/hacknslash-security/) - Your security is your responsibility. Don't trust your host to do everything right, and understand what you're getting into. - [Featured Image Size](https://halfelf.org/2014/featured-image-size/) - When you can't remember the size of your featured images and it matters... - [He Ain't Heavy, He's My Website](https://halfelf.org/2014/heavy-website/) - Why would I use Multisite vs Single Sites when I have 100 sites? - [Network Rules](https://halfelf.org/2014/network-rules/) - I have my own rules about how I run a network and here they are! - [The Great Internet Slowdown](https://halfelf.org/2014/great-internet-slowdown/) - Join the battle for net neutrality on September 10th. - [The Internet is Down](https://halfelf.org/2014/internet-down/) - Storing addresses on the internet when the address book runs out of room means the internet goes boom - [Marrying Multisite](https://halfelf.org/2014/marrying-multisite/) - When you can't quit Multisite, it's time to contemplate how to marry it all together. - [The Revolution of .htaccess and Multiple Domains](https://halfelf.org/2014/htaccess-revolution/) - Real if-statements in Apache, really powerful, and really awesome let you handle multiple domains in far cleaner and complex ways. And I love it. - [Don't iframe Me In](https://halfelf.org/2014/dont-iframe-me-in/) - Just give me apis, lots of apis, and the secure connection through. - [Referrer Madness](https://halfelf.org/2014/referrer-madness/) - Salting the SEO statistics and munging my analytics? No thank you. - [Mailbag: One Analytics to Bind Them](https://halfelf.org/2014/mailbag-one-analytics-to-bind-them/) - One Google Analytic Account for all your sites? Super Easy! - [Moving WordPress Multisite](https://halfelf.org/2012/moving-wordpress-multisite/) - Moving WordPress is easy. Moving WordPress Multisite is less so, but it can still be done. - [Home Affects Your Website](https://halfelf.org/2014/home-affects-your-website/) - No, just being on a shared server is not more dangerous than anything else. - [Just Push Publish](https://halfelf.org/2014/just-push-publish/) - They're going to read it anyway. Or not. - [DreamUp Security](https://halfelf.org/2014/dreamup-security/) - Listen to me talk about security from a non-code perspective (as much as one can). - [Mailbag: Playing the Middle](https://halfelf.org/2014/mailbag-playing-the-middle/) - It's time to pull out the Jump to Conclusions Mat when everyone assumes you know everything! - [La Vitesse 2: Cruise Control](https://halfelf.org/2014/la-vitesse-2-cruise-control/) - The other side of speed is understanding what your server can cache for you. Sandra Bullock not included. - [La Vitesse](https://halfelf.org/2014/la-vitesse/) - The art of caching and catching content. Understanding what makes up static content is the first step to speed. - [Speed Up Your Site](https://halfelf.org/2012/speed-up-your-site/) - Making your site run faster, when you don't have access to the root of your server, is hard, but not impossible. - [Mailbag: Multisite Files](https://halfelf.org/2014/mailbag-multisite-files/) - Moving Multisite Files. Again? Why not! - [Mailbag: Multisite Theme Activation](https://halfelf.org/2014/mailbag-multisite-theme-activation/) - Multiple domains, multiple themes, and dynamic switcheroos? I'm going to have to vote no. - ["Oh yeah. That's a bug."](https://halfelf.org/2014/oh-yeah-thats-a-bug/) - When developers sound dismissive, don't despair! It's not disdain, but development. - [HSTS and Chromium](https://halfelf.org/2014/hsts-chromium/) - The canary rolled over dead and broke my site without a care in the world. Thankfully it was fixable, but this is a case where the bad error message was horrifying. - [Bad Replies to Bad Reviews](https://halfelf.org/2014/bad-replies-to-bad-reviews/) - How you handle a bad review is more telling than not having any at all. - [Mailbag: Multisite Caching](https://halfelf.org/2014/mailbag-multisite-caching/) - Do as much for your users so they don't have to think or worry. And cache what you can catch safely! - [The Wheel Is Fine](https://halfelf.org/2014/wheel-is-fine/) - Don't reinvent the wheel, unless the wheel needs it. - [Yum!](https://halfelf.org/2014/yum/) - Saving time from compiling with RPM, yum, and scripts. - [Not Everything is WordPress](https://halfelf.org/2014/not-everything-is-wordpress/) - There's more than one way to skin a cat. - [When the Fork Breaks](https://halfelf.org/2014/when-the-fork-breaks/) - In the night kitchen, we ponder forking products to make new cakes. - [Support Politeness](https://halfelf.org/2014/support-politeness/) - It's not overrated, it's not out of date, and it's something you need to do in all things. - [Mailbag: I want to make WordPress.com](https://halfelf.org/2014/mailbag-wordpress-com/) - Thoughts on if one should, or should not, try to run their own network of unrelated sites. - [Bad Browser Complacency](https://halfelf.org/2014/bad-browser-complacency/) - Keeping up with the Joneses is about supporting more and embracing change. - [Mailbag! .htaccess questions](https://halfelf.org/2014/mailbag-htaccess-questions/) - Ken has some questions about .htaccess and I have some answers! - [You Are The Weakest Link](https://halfelf.org/2014/you-are-the-weakest-link/) - Thoughts on the weakest link in security: You and me. - [So Your WordPress Upgrade Broke](https://halfelf.org/2014/wp-upgrade-broke/) - This will happen to everyone, and this is not about how to fix it, but why it happens, and how to decide who to trust so it happens less. - [Catch a Session](https://halfelf.org/2014/catch-a-session/) - Me, talking about ecommerce, running a store, and yeah, a little Heartbleed. - [General Behavioral Guidelines](https://halfelf.org/2014/general-behavioral-guidelines/) - Some general ways to behave online, in order to get the best out of the internet. - [Apache 2.4 Kiboshed SPDY](https://halfelf.org/2014/apache-kiboshed-spdy/) - I won't be using SPDY because I can't have my cake and eat it too. - [Migrating A WordPress Site With wp-cli](https://halfelf.org/2014/migrating-with-wp-cli/) - If scotch is for shippers, clearly margaritas are for migrations! - [Category or Tag?](https://halfelf.org/2014/category-v-tag/) - You should read Lorelle Van Fossen. Shut up, she's right. - [WordPress' SEO Sucks](https://halfelf.org/2014/wordpress-seo-sucks/) - Or: How to rank really high in a totally non-related search. - [Embedding Videos from TVGuide](https://halfelf.org/2014/tvguide-videos/) - Sometimes things that should be super obvious are not. Embedding videos should not be this hard, and yet it is. - [Storify oEmbed](https://halfelf.org/2012/storify-oembed/) - Of note, this no longer appears to work. It's been almost 2 years. Not shocked. Embedly has a plugin though. http://wordpress.org/plugins/embedly/ I was reviewing a plugin that went the long way around for this (similar to how things work on my Rickroll plugin, with a search/replace). You would think this is easier: But even though - [Open Source Olympics](https://halfelf.org/2014/open-source-olympics/) - The spirit of what the Open Source movement is to me is more than just a group of people making amazing things happen. - [I Hate WP Here](https://halfelf.org/2014/i-hate-wp-here/) - You can hate change all you want but it will happen, so let's take it in a better direction. - [Copyleft](https://halfelf.org/2014/copyleft/) - It's left, it's right, it really all matters how you protect yourself, but also your readers. - [LastPass? LostPass!](https://halfelf.org/2014/lastpass/) - Not a great experience with LastPass. - [Genesis Design for Gummies](https://halfelf.org/2014/genesis-design-for-gummies/) - You're not a dummy, but the idea of coding makes you a little wobbly. The brilliant developers at Reaktiv have your back. - [Forget 100%](https://halfelf.org/2014/forget-100-percent/) - Please don't tell me about how your service is 99.999% reliable. Tell me all about how you're prepared to handle the unexpected. - [Don't Fear Wandering Off Topic](https://halfelf.org/2011/dont-fear-wandering-off-topic/) - Bill Engvall's wife commented that he wanders off topic, and sometimes you have to suffer through 'Bad Weiner Day', but eventually he'll get to the point. The point here is that you shouldn't be afraid to wander off topic. - [Just Ask](https://halfelf.org/2014/just-ask/) - You've got to give a little to get what you want. - [Electric Sass Boogaloo](https://halfelf.org/2014/electric-sass-boogaloo/) - Making my css work on all media sizes has me dancing in the streets. - [SEO Advice I Ignore](https://halfelf.org/2014/seo-advice-ignored/) - Sometimes I listen, sometimes I don't, and sometimes I just outright disagree. - [No Contact Information](https://halfelf.org/2013/no-contact/) - A new card for a new era? Something like that. Moar card, less info. It's logical, I swear! - [Dashicon My CPTs on the Dashboard](https://halfelf.org/2013/dashicon-my-cpts/) - It's not a Reeses, but here's a totally simple way to style your CPTs in 'Right now' as well as the menu! - [CAPTCHA Isn't Accessible](https://halfelf.org/2010/captcha-isnt-accessible/) - The concept was great. Make a way for people to easily prove they're people and stop bots! The problem is it's no longer 'easy'. Nor do they work. - [Make It Pretty](https://halfelf.org/2013/make-it-pretty/) - Make your WordPress toolbar pretty for all users, and win! - [Why I Hate Facebook](https://halfelf.org/2013/why-i-hate-facebook/) - It's not the quality of content, but the way you have to beat your head against a way to get around that frosts my lizard. - [WPwatercooler - Multisite Edition](https://halfelf.org/2013/wpwatercooler-multisite-edition/) - Multisite, multisite, multisite! Why is it always Multisite? Listen to me talk on WPwatercooler about Multisite, plugins, and other related shenanigans. - [Command Line Cleaning WP](https://halfelf.org/2013/command-line-cleaning-wp/) - Burn the land and boil the seas, I use CLIs to clean WP. My heavy handed, command line methodology to scrubbing the heck out of a WordPress install when I clean. - [Plugin Wish: Login With Google](https://halfelf.org/2013/plugin-wish-login-with-google/) - I don't know how to write this code, but I'd love to see a WP Plugin take Google Integration to the next level. - [Sidebar Login Widget](https://halfelf.org/2012/sidebar-login-widget-2/) - Simple widget with basic options for a login form. - [ShareDaddy Genericons](https://halfelf.org/2013/sharedaddy-genericons/) - Using Genericons for ShareDaddy (in Jetpack) it not that hard at all. - [Instagram oEmbed](https://halfelf.org/2012/instagram-oembed/) - More of an example on how to do embed, but useful for some. - [Embedding CBS Video](https://halfelf.org/2012/embedding-cbs-video/) - How to make a quick shortcode to embed CBS videos on your site. - [I Make Plugins CPT](https://halfelf.org/2012/i-make-plugins-cpt/) - Extending Mark Jaquith's "I Make Plugins" plugin to work with Custom Post Types. - [WordPress Site Description](https://halfelf.org/2012/wp-site-description/) - How I added that cool link to my site description. - [Display Videos Shortcode](https://halfelf.org/2011/display-videos-shortcode/) - A short-code to display recent videos posted to a CPT on my site. Can be easily extended. - [WordPress: Change HTML Editor Font](https://halfelf.org/2011/wordpress-html-editor-font/) - How to quickly change the font on your HTML editor. - [Show Site ID Columns in MultiSite](https://halfelf.org/2011/site-id-columns-multisite/) - WordPress 3.1 removed them. I don't use 'em but people kvetched so I wrote this over a 'smoke break.' - [WordPress Google Libraries](https://halfelf.org/2011/wordpress-with-google-libraries/) - Easy one-file drop in for using Google Libraries in your WordPress install. - [Ban Whack-a-Mole](https://halfelf.org/2010/ban-whack-a-mole/) - Down and dirty ban blocker. - [WordPress Cancel Post Button](https://halfelf.org/2012/cancel-post-button/) - Add a 'Cancel Post' button to your post editor in WordPress. - [How 17 Famous Website Looked In The Past: In The ’90s. You’ll Be Amazed | ImmatureBusiness](https://halfelf.org/2011/how-17-famous-website-looked-in-the-past-in-the-90s-youll-be-amazed-immaturebusiness/) - Remember those times in the ’90s when you had to type WWW. and websites looked dull, boring, and full of moving and annoying flash banners. I’m sure nobody wish to go back to those times. Now, websites are focusing more and more on the user experience, loading speed, and subtle ways to locate ads without distracting the - [‘it’s not my best work’ — not a surrender to mediocrity](https://halfelf.org/2011/its-not-my-best-work-not-a-surrender-to-mediocrity/) - Not My Best Work by Dan Epstein. - [Dot-dash-diss: The gentleman hacker's 1903 lulz - tech - 27 December 2011 - New Scientist](https://halfelf.org/2011/dot-dash-diss-the-gentleman-hackers-1903-lulz-tech-27-december-2011-new-scientist/) - A century ago, one of the world’s first hackers used Morse code insults to disrupt a public demo of Marconi's wireless telegraphvia Dot-dash-diss: The gentleman hacker's 1903 lulz - tech - 27 December 2011 - New Scientist. - [“Without a plugin” considered dangerous | sabreuse](https://halfelf.org/2011/without-a-plugin-considered-dangerous-sabreuse/) - There’s just one problem with this. Plugins exist for a very good reason: to add non-core functionality 1 to your site without hosing up the whole lot. Via “Without a plugin” considered dangerous | sabreuse - [WordPress › Help Stop SOPA/PIPA](https://halfelf.org/2012/wordpress-help-stop-sopapipa/) - We are not a small group. More than 60 million people use WordPress — it’s said to power about 15% of the web. We can make an impact, and you can be an agent of change. Go to Stop American Censorship for more information and a bunch of ways you can take action quickly, easily, - [WordPress 3.4 - No Problem](https://halfelf.org/2012/wordpress-3-4-no-problem/) - Now that I've said it, I'm doomed, but I haven't run into any major issues with WP 3.4 beta. Actually, I'm using it on this site right now. - [MeetWP: Troubleshooting](https://halfelf.org/2013/meetwp-troubleshooting-and-hacked-sites/) - In the tripod of security, it occurs to me that I'm all three! WP Dev, Webhost, User. Jinkies! Watch me talk about security in a way you may not have heard before. - [CodePoet Interview with Me!](https://halfelf.org/2012/codepoet-interview-with-me/) - Happy Hanukkah. Check out my totally awesome interview with Code Poet. - [Lightning Bolt at Portland!](https://halfelf.org/2013/lightning-bolt-at-portland/) - I'll be speaking at WordCamp Portland too! - [Speaking at WordCamp San Francisco - 2013](https://halfelf.org/2013/speaking-at-wordcamp-san-francisco-2013/) - I'll be talking at WordCamp San Francisco - [MeetWP 04 - Troubleshooting a Hacked Site with Mika Epstein](https://halfelf.org/2013/meetwp-04-troubleshooting-a-hacked-site-with-mika-epstein/) - MeetWP Virtual Meeyup Video - [WCPDX: Lightning Talk](https://halfelf.org/2013/wcpdx-lightning-talk/) - Missed me in Portland? Watch "Rolling Your WordPress Support Character (Without Any Code)" right here, right now! - [DreamCon In Review](https://halfelf.org/2013/dreamcon-in-review/) - A different kind of hosting event for a different kind of webhost. - [Why Does The WordPress Background Auto-Upgrade Work?](https://halfelf.org/2013/why-does-the-wordpress-background-auto-upgrade-work/) - About three years ago I wrote why the upgrade didn't work. Today I'm happily thinking about how well it will work for everyone. As Jen Mylo would say, code changes. - [Writing Evil Code](https://halfelf.org/2013/writing-evil-code/) - Evil code I've written in order to help me teach people, but also to understand how evil is done. - [Hotlinking](https://halfelf.org/2004/hotlinking/) - Image theft is one thing I'm resigned to on the net. Bandwidth theft I oppose with all the anger in my heart. - [Give Back Or Die](https://halfelf.org/2013/give-back-or-die/) - The greed in open source is the only thing I can see being it's downfall. We must, all of us, contribute. - [Censorship in Moderation](https://halfelf.org/2013/censorship-in-moderation/) - Not everything to do with technology means code. Curating a website means, often, you have to edit your content and your comments in order to foster the sort of relationship with your visitors that you desire. In doing so, are we censoring? - [Retina Favicons](https://halfelf.org/2013/retina-favicons/) - Time for a Favicon Reboot because of two words: Retina Display. - [Highway To Plugin Danger Zone](https://halfelf.org/2012/plugin-danger-zone/) - Third Party code in your plugins are great, but you have to know what you're getting in to, be willing and ready to support it, and know how to secure it. So. Do ya, punk? - [Risk vs Transparency](https://halfelf.org/2012/risk-vs-transparency/) - The risk of keeping a public list of all 'naughty WordPress plugins' does not outweigh the benefits of having such a list. - [TimThumb, Heroism and FUD](https://halfelf.org/2011/timthumb-heroism-and-fud/) - When a group of people see what's wrong and get together to fix it, that is success in anyone's book. - [The Latest Malware Malfeasance](https://halfelf.org/2010/the-latest-malware-malfeasance/) - So you've been hacked. Welcome to the club. Here's what you do. - [Auto Multisite Registration](https://halfelf.org/2012/more-multisite-registration/) - Join or die! Adding users to multisite, when you want your site-admins not to have to work all the time, just got easier. - [Sidebar Login Widget](https://halfelf.org/2012/sidebar-login-widget/) - A quick bit of code and a question about where you like settings. - [What WordCamp SF Means to Me](https://halfelf.org/2013/what-wordcamp-sf-means-to-me/) - Serendipity, enough coincidences to make half a season of How I Met Your Mother, and a life I wouldn't trade for anything. - [When the lights go out on the Matt Report!](https://halfelf.org/2013/lights-out-matt-report/) - Talking about support and all that sort of stuff with Matt Mederios, back in March. - [Evaluating Evil](https://halfelf.org/2013/evaluating-evil/) - Be vewwy vewwy quiet. I'm hunting evals. How I track down some evil via command line. - [Getting Involved - Notes](https://halfelf.org/2012/getting-involved/) - My notes for my WCSF talk. There were no slides, or I'd embed them! - [Unix One Liner - Writing to a file](https://halfelf.org/2010/unix-one-liner-writing-to-a-file/) - Sometimes the simple tasks are ones I'll spend a long time on trying to automate rather than do it the long way. This was an effort to shorten 7 commands to 3. - [DreamPress: We Went There](https://halfelf.org/2013/dreampress-we-went-there/) - You got WordPress in my DreamHost! - [When Your Code Doesn't Self-Alert...](https://halfelf.org/2013/no-self-alert/) - Not having a way to let people know that your code needs and update is neglectful. We should be able to easily get alerts when we need to upgrade. - [Not RSS 2 Email](https://halfelf.org/2013/not-rss-2-email/) - Spend time upgrading a server and learning Python, or spend time writing a simple plugin that does a simple thing. Simplicity wins. - [Personal Version Control With Git](https://halfelf.org/2013/personal-version-control-git/) - It's Git-ting better all the time. I set up my own git repo on my server in order to manage my own version control a little privately. - [WordPress False Security](https://halfelf.org/2013/false-security/) - There are certain things I just don't do to make my site more secure, because I don't think they matter. There are others that I do, because I think they do matter. I guess the time to post about this is now! - [WordPress Login Protection with ModSecurity](https://halfelf.org/2013/wp-login-protection-modsec/) - If you have ModSecurity and root access, you can cold-stop people trying to brute force into WordPress on your server. - [Customizing Author's Comments on Genesis](https://halfelf.org/2013/customizing-comments-genesis/) - I needed to customize my comments on a socialish site, so people always knew who was in charge. With Genesis Framework it's pretty painless, even if you have no idea what you just wrote. - [Command Line WP](https://halfelf.org/2012/command-line-wp/) - Git'er Done! I sat and installed wp-cli on Friday and spent my Labor Day weekend messing with it. - [Your Photos, Your Way](https://halfelf.org/2013/your-photos-your-way/) - Why am I supporting PressGram on KickStarter? Because I want the app, and so do you, even if you haven't realized it yet. - [Chrome Dumps Webkit](https://halfelf.org/2013/chrome-dumps-webkit/) - Words. They fail me. Chrome changes the game again, and I'm not sure how I feel. - [You’re not the boss of me](https://halfelf.org/2009/youre-not-the-boss-of-me/) - My move into the land of VPS. And I never look back. - [WordPress, DSO and Permissions](https://halfelf.org/2011/wordpress-dso-and-permissions/) - DSO is my PHP flavor of choice, but it has strange issues with WordPress, necessitating in permissions more open than I like. Thankfully there's a fix! - [I Don't Understand CloudFlare](https://halfelf.org/2013/i-dont-understand-cloudflare/) - Protecting your website can come in many flavors. I've always learned towards doing as much on the server (vs in the 'app'), but the new trend of external services that speed your site up and protect you confuse me. - [Tiny Tiny RSS](https://halfelf.org/2012/tiny-tiny-rss/) - When you've just had enough, you learn something new. Today it's running my own web-RSS reader. - [Genericons: Plugin'd](https://halfelf.org/2013/genericons-plugind/) - I need to be buffed, okay? I need buffs. Buff me! - [IE 8 and SVG Smilies](https://halfelf.org/2013/ie-8-and-svg-smilies/) - Filtering Smilies on a Sunday afternoon. - [Backwards Settings API](https://halfelf.org/2013/backwards-settings-api/) - Rewinding an existing plugin to do things correctly involved a lot of me hitting my head on my desk out of frustration until everything was illuminated. - [Let Your Content Be Copied](https://halfelf.org/2013/let-your-content-be-copied/) - Giving it away gives it back to you. - [Anti-Social Competition](https://halfelf.org/2013/anti-social/) - There's room for more than one social media app. Stop competing by removing/restricting, and start being better. - [Multisite Login Loop](https://halfelf.org/2012/multisite-login-loop/) - Unravelling the login loop when you break WordPress Multisite. - [Social Throttling](https://halfelf.org/2012/social-throttling/) - Over 75% of your followers on Facebook never see your posts. If that sobering fact doesn't get your attention, nothing will. - [Don't Tread On Me](https://halfelf.org/2013/dont-tread-on-me/) - Do Not Track is dying, and while I still think you should install it, this may be the time for more drastic measures. - [Google Apps Ain't Free](https://halfelf.org/2012/google-apps-aint-free/) - Short and sweet Google makes a change that ain't gonna make people happy. - [Multisite eBooks Updated for WordPress 3.5](https://halfelf.org/2012/multisite-ebooks-updated-for-wordpress-3-5/) - All of my Multisite eBooks, both PWYW and Kindle, have been updated for WordPress 3.5 (which is due any second now). - [How to Support Plugins](https://halfelf.org/2011/how-to-support-plugins/) - I made the best plugin in the world and someone says it broke. Now what!? Here's how to support your plugins! - [Switching Network Types](https://halfelf.org/2012/switch-multisite-types/) - Want to change your WordPress Multisite from sub.domain.com to domain.com/sub? It's not that hard, though it can be annoying if you have a lot of sites. - [Sucking Clams, Kosher Style](https://halfelf.org/2010/sucking-clams-kosher-style/) - ClamAV uses more resources than it's usefulness indicates. - [Google Apps](https://halfelf.org/2012/google-apps/) - Want to use Google Apps for email? It works with Multisite just fine! - [SEO: Impossible ](https://halfelf.org/2012/seo-impossible/) - Links are worthless. Backlinks will hurt you. This post will self destruct. - [Failure Is Always An Option](https://halfelf.org/2012/failure/) - Embrace your failures, for from them come innovations. - [Cloudy With a Chance of Upgrades](https://halfelf.org/2012/cloudy-upgrades/) - Don't let your eyes be bigger than your server. Know when you need cloud and when you don't. - [Encrypted Search Terms](https://halfelf.org/2012/encrypted-search-terms/) - I haven't seen a lot of people kvetching about this, which surprises me. If you like to look at JetPack's stats and happen to giggle over your search terms, you may have noticed encrypted_search_terms showing up. Your search terms are what other people use in order to find you. So for example, someone found my - [WordPress: Sticky Posts On Static Front Page](https://halfelf.org/2011/wordpress-sticky-posts-on-static-front-page/) - The main reason I don't theme is becuase I don't like to. But when I have to, I actually do know what to do. - [Command Line Mac Trash Tricks](https://halfelf.org/2012/fast-trash-mac/) - Command line my trash? Why not! - [Handling Negatives](https://halfelf.org/2012/handling-negatives/) - Turn your frown upside down and don't panic when your plugin gets bad reviews. - [Getting involved – Log on, jump in, hang out](https://halfelf.org/2012/getting-involved-wcsf/) - The video of me at WCSF. - [Managed Themes Have A Place](https://halfelf.org/2012/managed-themes/) - Managed Themes are great for the middle-of-the-road project. - [Basic Troubleshooting Is Still a Must-Have Skill](https://halfelf.org/2010/basic-troubleshooting-is-still-a-must-have-skill/) - Are we lowering the bar too much for people with self-hosting? Where do we draw the line? - [My Custom PostTypes Live in MU](https://halfelf.org/2012/my-custom-posttypes-live-in-mu/) - I use CPTs on three of my 15 WordPress sites. I never put them in my theme's function if I can help it. - [Owning My Data](https://halfelf.org/2012/owning-my-data/) - I strongly believe in owning my own data wherever possible, and being responsible for it. - [The Perception of Security](https://halfelf.org/2012/the-perception-of-security/) - An expanded set of thoughts about what makes security. - [No Children Necessary](https://halfelf.org/2012/no-children-nessecary/) - I use surprisingly few child themes these days, because most of what I want to do can be done in widgets, css, or a mu-plugin. - [Forever Alone No More](https://halfelf.org/2012/forever-alone-no-more/) - How about using version control on your website, just like the big boys? You can do that on WP Engine without rolling your own. - [The Dangers of Being Uneducated](https://halfelf.org/2012/dangers-of-uneducated/) - When you don't know what you're doing, you're gonna have a bad time. Take the time to learn first. I hear all the cool kids are doing it. - [Art History of Plugins](https://halfelf.org/2012/art-history-plugins/) - How an art history lesson will help you be a better judge of what plugins are safe(r) to install on your WordPress site. - [Scorched Earth Security](https://halfelf.org/2012/scorched-earth-security/) - Burn the land and boil the sea. You can't reinfect me. - [DoS/DDoS and You](https://halfelf.org/2012/dosddos-you/) - If you're on a VPS you can always bail yourself out of a DoS. If you're on Shared hosting, you're more limited, but not abandoned. - [The Anarchy of .htaccess and Multiple Domains](https://halfelf.org/2012/htaccess-anarchy/) - Redirecting URLs with .htaccess is easy, right up until you start tossing subdomains and mapped domains into the mix. - [Amazoned](https://halfelf.org/2012/amazoned/) - The saga of self publishing. This is not a how-to, but more of a 'this is what I did and why' kind of post. - [Penguins Just Gotta Be Me](https://halfelf.org/2012/penguins-just-gotta-be-me/) - The recent Penguin and Panda updates by Google have hammered people. We still don't really know what's going on with that. - [ZenPhoto and ColorBox](https://halfelf.org/2012/zenphoto-and-colorbox/) - A weekend spent sorting out ColorBox and how to bring a gallery into the 2010s. - [On The Segregation of Code](https://halfelf.org/2012/code-segregation/) - Stop trying to move your content. Separate code from Content and your life will be easier. - [You Can't Be Everything](https://halfelf.org/2012/you-cant-be-everything/) - No one app can do it all, and don't take it personally when it doesn't. You can please some people sometime, but you cannot please all the people all of the time, after all. - [Permalink Elephants](https://halfelf.org/2012/permalink-elephants/) - After years of research, toil and struggle, I've determined the 100% foolproof best permalink structure ever! - [jQuery - Why U No Enqueued?](https://halfelf.org/2012/jquery-why-u-no-enqueued/) - There are some pretty basic things done wrong when calling js files in WordPress plugins. Let's fix that. - [Lesson #1373 - Learning](https://halfelf.org/2012/lesson-1373-learning/) - I'll take knowledge, please. ## Pages - [Half-Elf on Tech](https://halfelf.org/) - Mika “ipstenu” Epstein is otherwise known as the WordPress Half-Elf Rogue. This is her blog about code, open source technology, open data, and mindful development practices. - [Get In Touch](https://halfelf.org/get/in-touch/) - I do not reply to all emails (or even most) but if you want to shoot me a line and you don't have my email, here's your chance. - [Events (Past and Upcoming)](https://halfelf.org/events/) - At this time, I do not attend events or travel as much as I did for the last decade. A break is a good thing. Scheduled/Planned Events WordCamp Canada 2026 (planned) Past Events WordCamp US 2019 Panel Discussion WordCamp Sacramento 2019 Slides WordCamp NYC 2019 Slides WordCamp Minneapolis/St. Paul 2019 Slides WordCamp Manchester 2018 Video - [About the Half-Elf](https://halfelf.org/about/) - ( ... and what does a Half-Elf have to do with WordPress?) Mika (実佳) Ariela Epstein is better known as Ipstenu, the WordPress Half-Elf Rogue. Working for Awesome Motive as a Wordpress Developer and researcher, Mika helps make the internet safer for everyone. Until 2023, she was the lead rep for the WordPress.org Plugin Review - [The Saga of Harassment by Way2Enjoy](https://halfelf.org/harassment-rst/) - Originally posted on 26 October, 2022. Note: This document is written in third person as it was originally created for use in a legal cease and desist document. It is a longer, more comprehensive, version of the story told on this site in 2021, with details expanded upon for clarity and posterity. Summary The company - [Harassment by Way2Enjoy - 2025](https://halfelf.org/harassment-rst/rst-2025/) - January Starting in January, Mr. Tiwari primarily targeted Mr. Mullenweg, taking advantage of the increased hostility between Mr. Mullenweg and WPEngine (a web hosting company). As other leaders in the WordPress community spoke up, and were subsequently banned from WordPress.org, Mr. Tiwari took to calling Mr. Mullenweg bipolar, and Mr. Wood ‘[Matt’s] pet dog’. In - [Harassment by Way2Enjoy - 2024](https://halfelf.org/harassment-rst/rst-2024/) - After spending most of 2023 complaining about other things, Tiwari decided to again bring up his grievances with WordPress. January Tiwari continued to keep his attacks to Mullenweg directly (likely because Epstein has not been active on Twitter since 2022 and as such is not a target for his outrage). When Mullenweg posted about his - [Privacy Policy](https://halfelf.org/get/privacy/) - Last Updated: 18 May 2018 By using this website, you agree to the terms of service. You are welcome to use, reuse, and extend the data here for no fees. Terms of Use The following terms and conditions govern all use of this site, the content, services, and products including, but not limited to, the - [Cookie Policy](https://halfelf.org/get/cookie-policy/) - While we do our best to prevent the setting of any cookie without consent, the only sure-fire way to block cookies is that visitor who do not wish to have cookies placed on their computers should set their browsers to refuse cookies before using this website, with the drawback that certain features may not function - [Résumé](https://halfelf.org/resume/) - I’m Mika Epstein, known in the WordPress world as the Half-Elf Rogue. I use WordPress, I write plugins, and I’m well versed in the ins and outs of WordPress, code and community. Let’s be clear, I know WordPress pretty darn well, but that's not all! Employment Cover Letter Hire Me Profiles WordPress Forums WordPress Developer - [Harassment by Way2Enjoy - 2023](https://halfelf.org/harassment-rst/rst-2023/) - As Mrs. Epstein left Twitter at the end of 2022, Mr. Tiwari had been silent on most WordPress matters for a few months. He did begin the year complaining to people who liked Tumblr, repeating the disinformation that Tumblr was for porn. February On the 18th of February, the postponed (pre pandemic) WordCamp Asia finally - [Harassment by Way2Enjoy - 2022](https://halfelf.org/harassment-rst/rst-2022/) - Only two emails were sent in early 2022, both ignored, however a decision was made to change his email from 'file and mark read' to 'do-not-deliver’. Mr. Tiwari emailed again per the logs of the email system (do-not-deliver puts the email in trash automatically, it does not actually reject the email) and moved to Twitter - [Harassment by Way2Enjoy - 2020](https://halfelf.org/harassment-rst/rst-2020/) - January - March At the start of the year, Mr. Tiwari opened a number of tickets with DreamHost, all asking for his work to be restored. At that time, the support team was made aware of the situation and directed to close the tickets. On 8 January, Mr. Tiwari said he would no longer email. - [Harassment by Way2Enjoy - 2019](https://halfelf.org/harassment-rst/rst-2019/) - January In January Mr. Tiwari resumed emailing with a new story. Now he had a day job in service/manual labor (from 10am to 10pm) and had learned some humbling things. He also claimed to be fiscally responsible for his hitherto unmentioned 8 siblings (previously only a sister who was getting married was mentioned), his mother - [Harassment by Way2Enjoy - 2018](https://halfelf.org/harassment-rst/rst-2018/) - November Between November 21st and the 27th, the Plugins team received over 30 emails in 9 email 'chains' (that is, using the same subject and replying to himself). The first few replies were replied to in kind, reminding Mr. Tiwari that he, the Way2Enjoy account, and his company had their fair chances and they squandered - [Licenses and Copyright](https://halfelf.org/get/license/) - Half-Elf on Tech by Mika A. Epstein is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Unported License. Based on a work at halfelf.org. Disclaimer You are free: to Share — to copy, distribute and transmit the work to Remix — to adapt the work Under the following conditions: Attribution:You must attribute the work in the - [Get](https://halfelf.org/get/) ## Sydney Templates - [Front Page Template](https://halfelf.org/athemes_hf/front-page-helf/) - The WordPress Half-Elf Rogue Blogging about code, open source technology, open data, and mindful development practices, with a dip into real life stories from 13 years of WordPress plugin reviews. About the Elf Newest Posts Professional Lesbian Experience Matters Other Sites and Projects Other Nerdy Things Celebrating the representation of queers on television. A hand-built ## Categories - [How It Is](https://halfelf.org/category/how-it-is/) - Making philosophy about the why behind technical things. - [How To](https://halfelf.org/category/how-to/) - [How It Works](https://halfelf.org/category/how-it-works/) - [Video](https://halfelf.org/category/video/) - [How it Was](https://halfelf.org/category/how-it-was/) - Posts about how things were in Plugin Review land. - [How It Could Be](https://halfelf.org/category/how-it-could-be/) ## Tags - [svn](https://halfelf.org/tag/svn/) - [ban hammer](https://halfelf.org/tag/ban-hammer/) - [plugins](https://halfelf.org/tag/plugins/) - [function](https://halfelf.org/tag/function/) - [gravatars](https://halfelf.org/tag/gravatars/) - [unsupported](https://halfelf.org/tag/unsupported/) - [hacks](https://halfelf.org/tag/hacks/) - [htaccess](https://halfelf.org/tag/htaccess/) - [multisite](https://halfelf.org/tag/multisite/) - [wordpress](https://halfelf.org/tag/wp/) - [essay](https://halfelf.org/tag/essay/) - [themes](https://halfelf.org/tag/themes/) - [administration](https://halfelf.org/tag/administration/) - [hosting](https://halfelf.org/tag/hosting/) - [support](https://halfelf.org/tag/support/) - [spam](https://halfelf.org/tag/spam/) - [email](https://halfelf.org/tag/email/) - [coding](https://halfelf.org/tag/coding/) - [website](https://halfelf.org/tag/website/) - [open source](https://halfelf.org/tag/open-source/) - [humor](https://halfelf.org/tag/humor/) - [rss](https://halfelf.org/tag/rss/) - [security](https://halfelf.org/tag/security/) - [seo](https://halfelf.org/tag/seo/) - [software](https://halfelf.org/tag/software/) - [design](https://halfelf.org/tag/design/) - [privacy](https://halfelf.org/tag/privacy/) - [speed](https://halfelf.org/tag/speed/) - [servers](https://halfelf.org/tag/servers/) - [cms](https://halfelf.org/tag/cms/) - [apple](https://halfelf.org/tag/apple/) - [desktop](https://halfelf.org/tag/desktop/) - [identity](https://halfelf.org/tag/identity/) - [browser](https://halfelf.org/tag/browser/) - [mediawiki](https://halfelf.org/tag/mediawiki/) - [analytics](https://halfelf.org/tag/analytics/) - [google](https://halfelf.org/tag/google/) - [performance](https://halfelf.org/tag/performance/) - [development](https://halfelf.org/tag/development/) - [macintosh](https://halfelf.org/tag/macintosh/) - [heo](https://halfelf.org/tag/heo/) - [documentation](https://halfelf.org/tag/documentation/) - [freedom](https://halfelf.org/tag/freedom/) - [bandwidth](https://halfelf.org/tag/bandwidth/) - [backup](https://halfelf.org/tag/backup/) - [php](https://halfelf.org/tag/php/) - [social media](https://halfelf.org/tag/social-media/) - [firewall](https://halfelf.org/tag/firewall/) - [debug](https://halfelf.org/tag/debug/) - [troubleshooting](https://halfelf.org/tag/troubleshooting/) - [risk](https://halfelf.org/tag/risk/) - [cloud](https://halfelf.org/tag/cloud/) - [command line](https://halfelf.org/tag/cli/) - [ux](https://halfelf.org/tag/ux/) - [domain](https://halfelf.org/tag/domain/) - [registration](https://halfelf.org/tag/registration/) - [database](https://halfelf.org/tag/database/) - [tumblr](https://halfelf.org/tag/tumblr/) - [git](https://halfelf.org/tag/git/) - [internet](https://halfelf.org/tag/internet/) - [ebooks](https://halfelf.org/tag/ebooks/) - [mu-plugins](https://halfelf.org/tag/mu-plugins/) - [shortcode](https://halfelf.org/tag/shortcode/) - [zenphoto](https://halfelf.org/tag/zenphoto/) - [wordcamp](https://halfelf.org/tag/wordcamp/) - [search engines](https://halfelf.org/tag/search-engines/) - [interview](https://halfelf.org/tag/interview/) - [cron](https://halfelf.org/tag/cron/) - [genericons](https://halfelf.org/tag/genericons/) - [css](https://halfelf.org/tag/css/) - [deployment](https://halfelf.org/tag/deployment/) - [automation](https://halfelf.org/tag/automation/) - [genesis](https://halfelf.org/tag/genesis/) - [dreamhost](https://halfelf.org/tag/dreamhost/) - [dreampress](https://halfelf.org/tag/dreampress/) - [review](https://halfelf.org/tag/review/) - [apache](https://halfelf.org/tag/apache/) - [slides](https://halfelf.org/tag/slides/) - [favicon](https://halfelf.org/tag/favicon/) - [facebook](https://halfelf.org/tag/facebook/) - [comments](https://halfelf.org/tag/comments/) - [javascript](https://halfelf.org/tag/javascript/) - [rant](https://halfelf.org/tag/rant/) - [advertising](https://halfelf.org/tag/advertising/) - [updates](https://halfelf.org/tag/updates/) - [ecommerce](https://halfelf.org/tag/ecommerce/) - [speaking](https://halfelf.org/tag/speaking/) - [ssl](https://halfelf.org/tag/ssl/) - [copyright](https://halfelf.org/tag/copyright/) - [accessibility](https://halfelf.org/tag/accessibility/) - [learning](https://halfelf.org/tag/learning/) - [moving](https://halfelf.org/tag/moving/) - [behavior](https://halfelf.org/tag/behavior/) - [upgrading](https://halfelf.org/tag/upgrading/) - [mailbag](https://halfelf.org/tag/mailbag/) - [cache](https://halfelf.org/tag/cache/) - [hardware](https://halfelf.org/tag/hardware/) - [font](https://halfelf.org/tag/font/) - [dns](https://halfelf.org/tag/dns/) - [language](https://halfelf.org/tag/language/) - [cloudflare](https://halfelf.org/tag/cloudflare/) - [ghost](https://halfelf.org/tag/ghost/) - [images](https://halfelf.org/tag/images/) - [community](https://halfelf.org/tag/community/) - [management](https://halfelf.org/tag/management/) - [business](https://halfelf.org/tag/business/) - [license](https://halfelf.org/tag/license/) - [unix](https://halfelf.org/tag/unix/) - [widget](https://halfelf.org/tag/widget/) - [buddypress](https://halfelf.org/tag/buddypress/) - [cdn](https://halfelf.org/tag/cdn/) - [ios](https://halfelf.org/tag/ios/) - [jekyll](https://halfelf.org/tag/jekyll/) - [regex](https://halfelf.org/tag/regex/) - [ruby](https://halfelf.org/tag/ruby/) - [markdown](https://halfelf.org/tag/markdown/) - [app](https://halfelf.org/tag/app/) - [octopress](https://halfelf.org/tag/octopress/) - [watch](https://halfelf.org/tag/watch/) - [dropbox](https://halfelf.org/tag/dropbox/) - [json](https://halfelf.org/tag/json/) - [rest api](https://halfelf.org/tag/rest-api/) - [town hall](https://halfelf.org/tag/town-hall/) - [hugo](https://halfelf.org/tag/hugo/) - [static site](https://halfelf.org/tag/static-site/) - [golang](https://halfelf.org/tag/golang/) - [responsibility](https://halfelf.org/tag/responsibility/) - [grunt](https://halfelf.org/tag/grunt/) - [gallery](https://halfelf.org/tag/gallery/) - [api](https://halfelf.org/tag/api/) - [failure](https://halfelf.org/tag/failure/) - [github](https://halfelf.org/tag/github/) - [contact](https://halfelf.org/tag/contact/) - [frameworks](https://halfelf.org/tag/frameworks/) - [filter](https://halfelf.org/tag/filter/) - [communication](https://halfelf.org/tag/communication/) - [composer](https://halfelf.org/tag/composer/) - [libraries](https://halfelf.org/tag/libraries/) - [dreamobjects](https://halfelf.org/tag/dreamobjects/) - [transmit](https://halfelf.org/tag/transmit/) - [s3](https://halfelf.org/tag/s3/) - [terms](https://halfelf.org/tag/terms/) - [workflow](https://halfelf.org/tag/workflow/) - [centos](https://halfelf.org/tag/centos/) - [easyapache](https://halfelf.org/tag/easyapache/) - [testing](https://halfelf.org/tag/testing/) - [harassment](https://halfelf.org/tag/harassment/) - [taxonomies](https://halfelf.org/tag/taxonomies/) - [categories](https://halfelf.org/tag/categories/) - [post meta](https://halfelf.org/tag/post-meta/) - [quick edit](https://halfelf.org/tag/quick-edit/) - [monetization](https://halfelf.org/tag/monetization/) - [marketing](https://halfelf.org/tag/marketing/) - [planning](https://halfelf.org/tag/planning/) - [mobile](https://halfelf.org/tag/mobile/) - [cpanel](https://halfelf.org/tag/cpanel/) - [search](https://halfelf.org/tag/search/) - [service](https://halfelf.org/tag/service/) - [let's encrypt](https://halfelf.org/tag/lets-encrypt/) - [stats](https://halfelf.org/tag/stats/) - [charts](https://halfelf.org/tag/charts/) - [nginx](https://halfelf.org/tag/nginx/) - [sql](https://halfelf.org/tag/sql/) - [caching](https://halfelf.org/tag/caching/) - [shell](https://halfelf.org/tag/shell/) - [math](https://halfelf.org/tag/math/) - [baseball](https://halfelf.org/tag/baseball/) - [torrent](https://halfelf.org/tag/torrent/) - [names](https://halfelf.org/tag/names/) - [money](https://halfelf.org/tag/money/) - [mail](https://halfelf.org/tag/mail/) - [js](https://halfelf.org/tag/js/) - [writing](https://halfelf.org/tag/writing/) - [permissions](https://halfelf.org/tag/permissions/) - [event](https://halfelf.org/tag/event/) - [cmb2](https://halfelf.org/tag/cmb2/) - [amp](https://halfelf.org/tag/amp/) - [whm](https://halfelf.org/tag/whm/) - [query](https://halfelf.org/tag/query/) - [code](https://halfelf.org/tag/code/) - [oped](https://halfelf.org/tag/oped/) - [jquery](https://halfelf.org/tag/jquery/) - [politics](https://halfelf.org/tag/politics/) - [grammar](https://halfelf.org/tag/grammar/) - [data](https://halfelf.org/tag/data/) - [migration](https://halfelf.org/tag/migration/) - [local](https://halfelf.org/tag/local/) - [studiopress](https://halfelf.org/tag/studiopress/) - [shortcodes](https://halfelf.org/tag/shortcodes/) - [facetwp](https://halfelf.org/tag/facetwp/) - [scams](https://halfelf.org/tag/scams/) - [ethics](https://halfelf.org/tag/ethics/) - [metabox](https://halfelf.org/tag/metabox/) - [admin](https://halfelf.org/tag/admin/) - [alerts](https://halfelf.org/tag/alerts/) - [information](https://halfelf.org/tag/information/) - [postmeta](https://halfelf.org/tag/postmeta/) - [monitor](https://halfelf.org/tag/monitor/) - [sorting](https://halfelf.org/tag/sorting/) - [apps](https://halfelf.org/tag/apps/) - [amazon](https://halfelf.org/tag/amazon/) - [echo](https://halfelf.org/tag/echo/) - [feeds](https://halfelf.org/tag/feeds/) - [feed](https://halfelf.org/tag/feed/) - [alexa](https://halfelf.org/tag/alexa/) - [chassis](https://halfelf.org/tag/chassis/) - [local development](https://halfelf.org/tag/local-development/) - [urls](https://halfelf.org/tag/urls/) - [custom post types](https://halfelf.org/tag/custom-post-types/) - [travel](https://halfelf.org/tag/travel/) - [editor](https://halfelf.org/tag/editor/) - [enqueues](https://halfelf.org/tag/enqueues/) - [protest](https://halfelf.org/tag/protest/) - [time](https://halfelf.org/tag/time/) - [activism](https://halfelf.org/tag/activism/) - [macos](https://halfelf.org/tag/macos/) - [twitter](https://halfelf.org/tag/twitter/) - [Codeship](https://halfelf.org/tag/codeship/) - [varnish](https://halfelf.org/tag/varnish/) - [television](https://halfelf.org/tag/television/) - [pride](https://halfelf.org/tag/pride/) - [lgbtq](https://halfelf.org/tag/lgbtq/) - [svg](https://halfelf.org/tag/svg/) - [archives](https://halfelf.org/tag/archives/) - [bitcoin](https://halfelf.org/tag/bitcoin/) - [mining](https://halfelf.org/tag/mining/) - [decisions](https://halfelf.org/tag/decisions/) - [fix](https://halfelf.org/tag/fix/) - [sass](https://halfelf.org/tag/sass/) - [homebrew](https://halfelf.org/tag/homebrew/) - [travis](https://halfelf.org/tag/travis/) - [GUI](https://halfelf.org/tag/gui/) - [embed](https://halfelf.org/tag/embed/) - [indiegogo](https://halfelf.org/tag/indiegogo/) - [sara lance](https://halfelf.org/tag/sara-lance/) - [sample](https://halfelf.org/tag/sample/) - [example](https://halfelf.org/tag/example/) - [filters](https://halfelf.org/tag/filters/) - [jetpack](https://halfelf.org/tag/jetpack/) - [chart](https://halfelf.org/tag/chart/) - [random](https://halfelf.org/tag/random/) - [statistics](https://halfelf.org/tag/statistics/) - [slack](https://halfelf.org/tag/slack/) - [dom](https://halfelf.org/tag/dom/) - [cors](https://halfelf.org/tag/cors/) - [external](https://halfelf.org/tag/external/) - [image](https://halfelf.org/tag/image/) - [aws](https://halfelf.org/tag/aws/) - [safari](https://halfelf.org/tag/safari/) - [customizer](https://halfelf.org/tag/customizer/) - [ads](https://halfelf.org/tag/ads/) - [related posts](https://halfelf.org/tag/related-posts/) - [contact form](https://halfelf.org/tag/contact-form/) - [hook](https://halfelf.org/tag/hook/) - [wp-cli](https://halfelf.org/tag/wp-cli/) - [gutenberg](https://halfelf.org/tag/gutenberg/) - [blocks](https://halfelf.org/tag/blocks/) - [hooks](https://halfelf.org/tag/hooks/) - [actions](https://halfelf.org/tag/actions/) - [login](https://halfelf.org/tag/login/) - [gdpr](https://halfelf.org/tag/gdpr/) - [mental health](https://halfelf.org/tag/mental-health/) - [yoast](https://halfelf.org/tag/yoast/) - [toolbar](https://halfelf.org/tag/toolbar/) - [admin menu](https://halfelf.org/tag/admin-menu/) - [icons](https://halfelf.org/tag/icons/) - [recording](https://halfelf.org/tag/recording/) - [audio](https://halfelf.org/tag/audio/) - [censorship](https://halfelf.org/tag/censorship/) - [adsense](https://halfelf.org/tag/adsense/) - [classic editor](https://halfelf.org/tag/classic-editor/) - [hiatus](https://halfelf.org/tag/hiatus/) - [blacklist](https://halfelf.org/tag/blacklist/) - [raspberry pi](https://halfelf.org/tag/raspberry-pi/) - [pi-hole](https://halfelf.org/tag/pi-hole/) - [bullying](https://halfelf.org/tag/bullying/) - [dnd](https://halfelf.org/tag/dnd/) - [dice](https://halfelf.org/tag/dice/) - [probabilities](https://halfelf.org/tag/probabilities/) - [averages](https://halfelf.org/tag/averages/) - [array](https://halfelf.org/tag/array/) - [string](https://halfelf.org/tag/string/) - [algolia](https://halfelf.org/tag/algolia/) - [elasticpress](https://halfelf.org/tag/elasticpress/) - [customer service](https://halfelf.org/tag/customer-service/) - [forms](https://halfelf.org/tag/forms/) - [vulnerability](https://halfelf.org/tag/vulnerability/) - [mansplaining](https://halfelf.org/tag/mansplaining/) - [self care](https://halfelf.org/tag/self-care/) - [safety](https://halfelf.org/tag/safety/) - [FreshRSS](https://halfelf.org/tag/freshrss/) - [ttrss](https://halfelf.org/tag/ttrss/) - [reporting](https://halfelf.org/tag/reporting/) - [oembed](https://halfelf.org/tag/oembed/) - [netphotographics](https://halfelf.org/tag/netphotographics/) - [3d printing](https://halfelf.org/tag/3d-printing/) - [d&d](https://halfelf.org/tag/dd/) - [cli](https://halfelf.org/tag/cli-2/) - [Ninja Forms](https://halfelf.org/tag/ninja-forms/) - [EXCLUDE](https://halfelf.org/tag/exclude/) - [gravity forms](https://halfelf.org/tag/gravity-forms/) - [questions](https://halfelf.org/tag/questions/) - [stories](https://halfelf.org/tag/stories/) - [GPL](https://halfelf.org/tag/gpl/) - [contracts](https://halfelf.org/tag/contracts/) - [sockpuppets](https://halfelf.org/tag/sockpuppets/) - [bribery](https://halfelf.org/tag/bribery/) - [sexism](https://halfelf.org/tag/sexism/) - [dmca](https://halfelf.org/tag/dmca/) - [mastodon](https://halfelf.org/tag/mastodon/) - [zapier](https://halfelf.org/tag/zapier/) - [scam](https://halfelf.org/tag/scam/) - [mlm](https://halfelf.org/tag/mlm/) - [9](https://halfelf.org/tag/9/) - [capitalism](https://halfelf.org/tag/capitalism/) - [react](https://halfelf.org/tag/react/) - [docker](https://halfelf.org/tag/docker/) - [piracy](https://halfelf.org/tag/piracy/) - [wpwatercooler](https://halfelf.org/tag/wpwatercooler/) - [AI](https://halfelf.org/tag/ai/) - [employment](https://halfelf.org/tag/employment/) - [jobs](https://halfelf.org/tag/jobs/) - [wpadminbar](https://halfelf.org/tag/wpadminbar/) - [health check](https://halfelf.org/tag/health-check/) - [FAIR](https://halfelf.org/tag/fair/) - [uptime](https://halfelf.org/tag/uptime/) - [self-hosting](https://halfelf.org/tag/self-hosting/) - [llm](https://halfelf.org/tag/llm/) - [ollama](https://halfelf.org/tag/ollama/) - [acf](https://halfelf.org/tag/acf/) - [mlb](https://halfelf.org/tag/mlb/)