Fixing OpenSSL on WordPress Windows PHP 5.6+


i ran into OpenSSL errors during the Disqus plugin setup.
there’s tons of hits suggesting various solutions, below is the very simple solution that worked for me…

Sample error messages:

SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto in ...


  1. download latest cacert.pem
  2. place it in a pertinent folder (e.g. $\wp-includes\certificates)
  3. edit your php.ini > openssl.cafile={full path to cacert.pem}

Automatic Header Links

I envied this little eye candy on some other blogs and it was easy to throw together.

If you’re on WordPress, a plugin like Simple Custom CSS and JS comes in handy for stuff like this.


a.headerLink:hover {
  color: inherit;
  opacity: 1;
a.headerLink {
  position: relative;
  transition: opacity 0.5s ease-in-out;
  cursor: pointer;
  opacity: .2;
a.headerLink i.fa {
  position: absolute;
  left: -1.5em;
a.headerLink:focus {
  color: inherit !important;


  $(':header:not("[class]")').each(function(idx, el){
    var l = $(el);
    var name = l.text().replace(/\W+/g, "");
    l.prepend('<a name="'+name+'" class="headerLink" href=#'+name+'><i class="fa fa-chain"></i></a>');

Developer Blog Engine Requirements


  • Currently on WordPress…
  • Got a little itch to upgrade to Ghost from recent Twitter buzz

Recording favored blog functionalities to consider towards switching engines

Feature WordPress Ghost
Self hosting just something to keep in mind… e.g. they specifically state not chasing nodeJS latest versions
Search Built-in works great No turnkey solution yet, GhostHunter, Ghost-Search
Code Highlighting Crayon is great drop in via css/js includes, e.g Prism
Social Auto Post SNAP is nice IFTT integration
Markdown (MD) Yes, but biggest disappointment1 smooth MD editing story was my biggest temptation of TryGhost
Speed a bit pokey self hosted supposed to be peppier
Database MySQL MySQL, PostGress or SQLite… which for example makes the compatibility footprint challenging for search
Comments you might want to fire up 3rd party comment engine like Disqus from the get go, to facilitate easy porting to another engine

  1. I’ve really had to fight to meet my expectations with MarkDown on WordPress… I still don’t have a RELIABLE live visual preview plugin (they’re all broken one way or another – PrettyPress, WP-Markdown, etc)… managed to get working crayon highlighting nested under MD bullets syntax by using [crayon] tag instead of ``` 

HTML5 Canvas based 3d Tag Cloud

This guy has provided an amazingly comprehensive 3d library… the configuration options are endless.

<!--[if lt IE 9]><script type="text/javascript" src="excanvas.js"></script><![endif]-->
<script src='//' type='text/javascript'/>

<script type="text/javascript">
    textColour : '#000',
    outlineThickness : 2,
    maxSpeed : 0.03,
    depth : 0.75,
    zoom: 1.15,
    weight: true,
    weightFrom: "data-weight",
    weightSize: 5

Below needs to be edited for your particular blog engine’s syntax for looping over tags (Google Blogger sample).
Due to internal use of getElementById, it appears our canvas element must be targeted via an #Id selector in above jquery (i.e. can’t use a class selector)

<canvas height='272' id='canvas3dTagCloud' width='272'>
  <p>Anything in here will be replaced on browsers that support the canvas element</p>
  <ul><b:loop values='data:labels' var='label'> <!-- this is google blogger syntax for looping over the label values -->
    <li><a expr:data-weight='data:label.cssSize' expr:href='data:label.url'><></a></li>

If you don’t have server side control, just apply necessary elements via jQuery prior to calling .tagcanvas() shown above – WordPress TagCloud sample

  jQuery(".tagcloud").wrap('<canvas id="canvas3dTagCloud" width="256" height="256"></canvas>');

External Content in Blogger Post


  • pull content from 3rd party source, using (CORS proxy) to avoid “no ‘access-control-allow-origin’ header is present on the requested resource”
  • from what i can glean, Blogger does not offer any kind of server side include facility so we have to resort to client browser tricks and that means this content is NOT going to be crawled/googlable
  • this approach relies on jQuery (Core) so you’ll need to have that referenced as well – example here, but also make sure you point at the latest version

drop this helper function in a global JS/HTML widget via the Blogger Layout editor…

function pluginContent(url, containerSelector, boolPrettyPrint) {
  var ctrl = $(containerSelector);
    .done(function (result) {

        //force prettyPrint rendering after loading dynamic content
        // google on: "google code prettify" to get dialed in on this code syntax highlighting library
        // =>
        if (boolPrettyPrint) {
    .fail(function() {
      ctrl.html('failed to retrieve external content.'+
        'try going there directly: <a href="'+url+'">'+url+'</a>')

Then use it like this in an individual blogpost:

<pre class="prettyprint linenums lang-powershell" id="prePoshDualExplorers"></pre>

  //pull code content from codeplex
  pluginContent("", "#prePoshDualExplorers", true);

Blogger Custom Domain

(taken from here)

Enter Blogger Dashboard > Settings image
Under Publishing section:

Enter your custom domain in the first box complete with the www prefix.
Check the redirect box under it.

Save those settings.

You’re done with the Blogger side.

Log in to your domain registry account (, GoDaddy, etc.) image
First, especially if you ported your domain from another registrar like me,
make sure that your domain is set to use your new registrar’s Nameservers.
Now access your raw DNS record settings (aka “Total DNS”). image
Enter IP Address as ARecord (@), this is a primary Google endpoint.  
and as CNAME (for www)  
Save Domain registry settings.  
You’re done.  
Fire your page.