WWW posts page 26

GiveCamp 2016 day 2

Day 2 of GiveCamp is complete. My team is in quite good shape. We shed one member early on. I too left to be re-purposed, but that didn’t last long. I briefly helped one team determine that, after my attempt to help them hack a plugin, it was time to jump ship to another. They didn’t need my further assistance, and the organizers couldn’t find another place for me, so I went back to my original team. Another of our members went home early. Even at a relaxed pace and searching for things to do, we were able to complete their nice-to-haves and improve some things from their quick-setup state. Tomorrow should be easy.

The event of the day more present on my mind at the moment is that my tent pole broke. When I first lay down in it, I saw the pole going at a weird angle. I got out and pulled the fly partly off to find the pole split and rather sharp. The tent was standing alright, but, not wanting the pole to poke through the fly, I attempted to fix it. I spent like an hour between working on and thinking of a field repair. In the end, nothing really got the broken pieces to stay together when the pole was arched. Now I lay in a slightly tilted, wonky tent, tired My tent is a Eureka Midori, and this is the second Eureka I’ve had the pole break on. Neither had I used very many times, maybe a handful each. Disappointing.


Givecamp 2016 day 1

First day of GiveCamp 2016. Working on the Cleveland Garlic Festival website. Seems like it’s going to be another relatively easy one, as I think the last few have been. We are rebuilding the site to run on WordPress and be responsive, plus other general improvements as we go. I’m on a team of four plus one organization representative. Things are going smoothly.


Library of Babel

Awesome, there is a digital version of the Library of Babel. Everything that you could ever write is in there, with some caveats. Caveats are that:

  • each book is less than or equal to 1,312,000 characters
  • it is in the English alphabet
  • all characters are lowercased
  • all non-alphabet characters removed except the space, period, and comma

Any searches would have to be translated to those specifications.

I found this through Jeremy Keith’s discussion of the anchor / link element.

The writings of Charles Dickens, Adactio, and myself can be found in there, many times over.


Quick regex to strip html tags

Recently, I needed to strip some HTML tags from some data. The goal was to make a field in a database that was a WYSIWYG text area into plain text content that could go inside a link. I did it using a simple regex of /<\/?[^>]+>/ to find the tags so I could replace them with an empty string. In PHP, this looked like:

$string = preg_replace('/<\/?[^>]+>/', '', $string);

This is perhaps a naïve implementation, but it served my purposes fine. Of course, I had totally forgotten about PHP’s built in strip_tags() function, but on comparing it, it also seems to not do exactly what I want. For instance, it seems to get rid of the content of <a> tags.


Abstractions: interfaces as lists, details, and flows

I read a post recently of Dave Rupert lamenting that he can describe any digital interfaces as lists, details, or flows. This is, of course, an abstraction. Abstractions can be useful for reducing complexity and making things understandable. In code, they also can be used to reduce duplication and provide reason for limited responsibility, improving maintainability. But if everything is fit into a small number of buckets, it can certainly make it seem like there is a lack of diversity, a sameness to everything.

With any good abstraction, everything can fit into it with a certain level of mental effort. Some might be more willing to go further than others to make a given classification work. In code, too heavy abstraction can lead to a given abstraction trying to do too much, or conversely, functionality being limited to fit a simple concept of the abstraction.

Continue reading post "Abstractions: interfaces as lists, details, and flows"

Stir Trek 2016 talk videos

I’m glad that Stir Trek has released videos of its 2016 talks, since I didn’t luck out in getting a ticket this year like I had last year. At least I will (hopefully) be much less tired watching them than when I drove down to Columbus early morning last year. Of course, the videos are good to have even for people who went: These multitrack conferences always seem to have multiple good talks at the same time, including at least one slot with multiple “must see” ones.


Dreamhost must’ve had an outage of some sort this (last) morning. I noticed a little after 11 that I couldn’t upload anything to or log into my (shared) server. My sites were inaccessible. I tried the sites of a couple other people I know using Dreamhost (also shared), and they were also inaccessible, so it must’ve been something somewhat significant. Strangely, nothing relevant was on Dreamhost status. I tweeted about it at 11:20 and got a response from DreamhostCare that they were looking into it. They didn’t say anything more, but I noticed things were up and running again around 11:42. I found later that it must’ve been a DDoS on their nameservers. Outages have been rare, but certainly annoying when they happen.


Duplicate selectors: Increase specificity without being more specific

CSS has a concept of specificity wherein more “specific” selectors take precedence over less specific. Sometimes specificity rules cause a set of property values to be applied while another is desired. This can result in the developer increasing specificity on the desired set to outweigh the other set. When I’ve needed extra specificity, I’ve often use an ‘html’ class on the <html> element or a ‘body’ class on the <body> element. The downsides of are it:

  • is more specific, as in precise, meaning the selector won’t match in a document without those helper classes.
  • has a performance penalty for needing to check a(nother) parent element of the target element.
  • only allows one more unit of specificity at the class level for each parent used.

Today (yesterday), I found a better way that can add any amount of class level specificity (weight) without being more specific (precise), thanks to CSS Wizardry. I’ve been doing this CSS thing for a while, but I hadn’t realized .foo.foo would match <div class="foo">. In essence, you can duplicate a selector and chain it onto itself to create an equivalent selector, but with double the specificity. You can duplicate it as many times as needed to get the desired specificity, e.g. .foo.foo.foo.foo to override .foo.foo.foo, without requiring any parent selectors. Besides the benefits already mentioned, it could be seen as more explicit in its purpose than using parent elements, because there is no other reason to do it. I will have to start using this.


WordPress.com redirects don’t support HTTPS

Gah. Apparently wordpress.com is discouraging ‘https’ for self-hosted blogs: Their redirection service does not allow any protocol but ‘http’. I could swear it did when I first set it up, as I remember typing in my URL with ‘https’ and I thought I tested it with curl -I to make sure it works, but the docs have an explicit note saying:

Note: Site redirects will only point to a non-ssl ( http:// ) url.

I don’t remember seeing it before, but the wayback machine suggests it was there since 2013, well before I switched to self-hosted.

Continue reading post "WordPress.com redirects don’t support HTTPS"