Category Archives: Web

Stuff for the internets.

Cyclists behaving badly? Riding group won’t share the road [Because there isn’t room to]- YouTube

This “news” piece is a disgusting example of stoking motorist elitism and violent attitudes. I feel a few things need to be made straight:

  • There is not room for a car and a bicycle to safely share those lanes side-by-side. Repeat that.
  • Taking the lane is done to cause a motorist to not try to squeeze past with their multiple ton metal box in a lane that does not accommodate that safely. Slowing down and waiting for a safe opportunity to pass will take, what? 10 seconds? 20? 30 or 60? How many minutes would it take for you to be comfortable with someone risking the rest of your life and your family’s lives without you? I’m guessing there isn’t any number at which anyone would be, so don’t risk that of anyone else for the same. Just slow down, be patient and hope others treat you with at least that basic amount of human decency.
  • By riding abreast a large group significantly reduces its length and likewise the time and distance it takes to overtake them. Imagine trying to pass a single file line of 20 bicycles that must ride in the center of the lane due to lack of safe space. That part of British Columbia’s Motor Vehicle Act should be changed for everyone’s benefit.
  • No one stops at stop signs. Whether people walk, ride, or drive people go right on through whenever they feel they have the chance. This is not a cyclist thing, it’s a people thing. The only difference is when a motorist does it it is dangerous for everyone around them. Every time. This article does a good job of introducing a study from the University of South Florida which reflects this point.
  • On that point, imagine how happy the average angry motorists would be to have to sit and wait for 20 bicycles in front of them to each come to the complete stop motorists only demand of cyclists? Yet it will only take a few seconds for the whole group to follow the leader. There’s no need to imagine that, though. In San Francisco, people on bikes do just that occasionally.

I hope the shortsighted producer(s) at CTV who made this video trash is ashamed of the hateful, violent comments it’s drawn. Because I guarantee someone they love and who means the world to them, or someone that person loves, will face the violent hatred of a motorist someday for the simple act of riding a bicycle. Same goes for those commenters.

All it takes is a little empathy and considerate thought about the way things work to see you owe the world around you the utmost care while operating a machine as dangerous as a motor vehicle and that, no, a motor vehicle does imbue you with privilege above others.

Postfix PCRE TLD body check

This is used to reject spam e-mail containing a URL to the top level domains .date or .loan, and can of course be modified to include others. If you feel your users may ever have a legitimate need to be contacted about these domains it would be best to not use this.

Some familiarity with perl compatible regular expressions in postfix will be helpful.

/https?://([a-z,0-9,-]+.){1,3}(date|loan)// REJECT

This pattern matches both http and https protocols, and links containing from 1 to 3 subdomains of the TLD (http://3.2.example.com/ or https://example.com/ would match were .com the target).

Insert that line into your custom body checks file and no more spam du jour. Enjoy.

OS X Server 5 Shenanigans

OS X Server 5 for OS X 10.10. and 10.11, while a significant improvement to Lion Server for OS X 10.7, still behaves oddly when mixing SSL and non-SSL requests. Whereas before it wanted every request redirected to the SSL pipe, now it will let you do either. It won’t, however, let you do both.

WordPress will try to do both. Why? I dunno. It should work, and did on plain Apache 2, but OS X Server 5 puts up a proxy to the WAN and serves from a different port. This is not presented upfront to the Server.app user, but is most likely in the docs. RTFM much? Ha-ha! No.

The affect this had on my WordPress install is instead of logging in being presented with a page that merely stated,

You don’t have permission to view this page.

Or some such equally helpful information. A little web searching turned up the answer. To overcome this the following can be added to wp-includes/http.php

/* Adding this BS for OS X Server 5 being a dick... */
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $_SERVER['HTTPS']='on';
}

I saw a post on wordpress.net that said to put this into config.php, but that did not work for me. Neither did the mod_rewrite mumbo-jumbo in that thread and apparently it didn’t for the OP, either.

I admit being ignorant to what HTTP_X_FORWARDED_PROTO is, but it appears to be a HTTP header from an Apache mod Apple is running. Unique to them or something well known? I dunno. I don’t pretend to try to keep up with this stuff any longer. That’s why I went to WordPress; So I wouldn’t have to.

Hide thumbnails of certain users content on Flickr

Using CSS you can identify and hide thumbnails from users. Makes it a bit easier to skip past or ignore people who can’t help but taint your favorite groups with inappropriate or offensive material or idiotic political themed collages. Nothing kills my buzz like having the local flora, fauna, and other interesting things interrupted with fear mongering hate rhetoric.

/**** A-holes on Flickr ****/
a[href*="/USER_ID/"]:before {
  content: "NUTJOB ";
}
a[href*="/USER_ID/"] img {
  display:none !important;
}

This does not hide the actual content on its own page or disable any links. It just lets you easily identify items to avoid while hiding the thumbnail.

The USER_ID can be culled from the URL the item resides at. For instance my ID in context: http://www.flickr.com/photos/strawhousepig/ Keep in mind that not all IDs are human readable. The default value is a seemingly random string.

Netflix search bookmarklet

Drag this link to your bookmarks, or copy paste the URL.

Search Netflix

What it does: Takes the current selected text and sends it to Netflix.com as a search string. If no text is selected a prompt window will pop-up allowing you to manually enter a term. Also, if you are browsing The Internet Movie Database (IMDb) when you select it the title of the page will be used as the search string.

What it is:

is_imdb=/.imdb.com/;
if(is_imdb.test(document.domain)){
  q=document.title.split(' - IMDb',1);
}else{
  if(getSelection()!=''){
    q=getSelection();
  }else{
    void(q=prompt('Enter search term (Netflix)',''));
  }
}
if(q){
  window.open('http://netflix.com/WiSearch?v1='+escape(q));
}

Mac ready “lightbox” close widget

I use a Mac, you use a Mac. Our close window button is in the top left corner of the window so it’s convenient when a JavaScript pop-over puts the “button” there, though most don’t. A few I run into I’ve decided to throw some CSS at to fix them.

/**** Mac ready "close" widget ****/
/* Wordpress admin "More info..." */
div#TB_ajaxWindowTitle {
  position:absolute;
  top:0px;
  left:25px;
  float:none !important;
  display:inline !important;
}
div#TB_closeAjaxWindow {
  display:inline !important;
  float:left !important;
  clear:left !important;
}
/* Amazon */
div.ap_close {
  left: 24px !important;
}
span.ap_closebutton {
  float:left;
  clear:left;
}
/* "Fancybox" */
a#fancybox-close {
  left:-15px !important;
}
/* "MultiBox" */
div.MultiBoxClose {
  left:-26px !important;
}
/* Disqus profile */
a.dsq-modal-close-btn {
  position:absolute !important;
  top:10px !important;
  left:10px !important;
}

This would of course go into your user defined CSS file. Which in Safari can be added at Safari > Preferences | Advanced – Style sheet:

Nintendo’s Tech Support Forums: How do I get what I pay you for? [UPDATE]

[UPDATE]The “November Update” of 2011 has rectified this situation. You can now add only the amount necessary to make a single purchase. Way to go Nintendo. Very happy to be able to use it again. My wallet not so much.
………………

Nintendo’s Tech Support Forums: How do I get what I pay you for?.

Me bitching about the way the 3DS eShop works.
Continue reading