DNS “bug” in Chrome

I restarted chrome just now and all my local subdomains stopped working.

mypage.localhost could not resolve. (net::ERR_NAME_NOT_RESOLVED)
This is apparently some kind of security fix.

A dirty quickfix solution is to simply add another line to your hosts file.

/etc/hosts looks like this for me now

127.0.0.1     localhost
127.0.0.1     localhost.
127.0.0.1     mypage.localhost

Binero <3 Git

This post will be written in Swedish since it concerns the swedish host Binero and their recently added support of Git.

Binero har nyligen lagt till stöd för Git på sina servrar (äntligen) så här kommer en liten guide på vad du behöver göra för att komma igång med deploy via Git istället för FTP. Det finns säkert något bättre sätt att göra det här, men jag är ingen unix-guru så det får ni gärna upplysa mig om något bör uppdateras.

I korta drag behöver du skaffa ett ssh-konto på binero, generera ett rsa-nyckelpar, ladda upp den privata nyckeln till binero och den publika till bitbucket eller github.

1. Skaffa ett ssh-konto inne i kontrollpanelen. Det gör du genom att logga in i kontrollpanelen och gå till Filer -> SSH i menyn.

2. Ladda hem PuttyGen och generera ett nyckelpar med SSH-2 RSA (radioknappen i mitten) och utan en passfras. Spara din privata nyckel någonstans på hårddisken så att du har den kvar. En publik nyckel kan alltid genereras utifrån den privata så det räcker med att spara den privata.

3. Konvertera din privata nyckel till OpenSSH-formatet genom att välja Conversions -> OpenSSH i menyn i PuttyGen. Döp den konverterade nyckeln till id_rsa (ingen filändelse alltså)

4. Ladda hem Putty. Logga in på ssh.binero.se (port 22) med ditt nya ssh-konto.

5. Skriv cd .ssh och tryck enter för att gå in i ssh-mappen

6. Anslut till ditt konto med FTP och för över id_rsa till .ssh-mappen. Du måste också ändra filrättigheterna till 600. Det kan du göra antingen via ditt ftp-program (högerklicka på filen) eller via ssh. Googla på chmod om du vill veta mer.

7. Gå tillbaka till puttygen och kopiera den långa text som står överst i fönstret. Fältet har rubriken ‘Public key for pasting into OpenSSH authorized_keys file’

 

11. Logga in på bitbucket och gå till något repo. Välj Settings -> Deployment keys. Lägg till en nyckel genom att klistra in den text du hittade i PuttyGen. Ge nyckeln någon label i stil med binero_git och tryck spara.

12. Tillbaka till Putty. Gå in den mapp där du vill börja deploya med git.
cd .. för att komma ut ur .ssh-mappen
cd minhesida.se

13. Om du redan har kod här så skriver du git init
och sen git remote add origin [email protected] (url:en till ditt repo som du hittar på bitbucket). Kom ihåg att du klistrar in med shift + insert.

14. git fetch -a

15. git checkout -f origin/master (vi vill undvika git pull)

16. Nu är du igång. Exakt i vilken mapp du ska stå inne på din site beror på hur du lagt upp ditt repo. Alla mina repon börjar med topp-mappen public_html Därför räcker det att jag går direkt i minhemsida.se och skriver alla git-kommandon.

Om ditt git-repot har alla filer direkt i rooten gör du samma procedur när du står i public_html-mappen istället.

Det var en kort sammanfattning. Om du har några frågor så är det bara att lämna en kommentar här så uppdaterar jag guiden och skickar ett svar till dig. Vi hörs!

Output php variables to javascript

Every time I see php-files full of javascript as enormous strings I cry inside. It’s not necessary, it’s bad practice and best of all, easy to avoid. You can and should separate business logic (php) from behaviour (javascript). It’s a mess to maintain otherwise.

For some reason this is really common in wordpress plugins. I guess it’s the overall sloppy style of WordPress that’s taking its toll.

Thankfully there is build in functionality to pass php variables to javascript in wordpress. Let’s dive right in, or read up on wp_localize_script() in the codex.

<?php

// Register the script first.
wp_register_script( 'some_handle', 'path/to/myscript.js' );

// Now we can localize the script with our data.
$myData = array( 
     'userName' => 'Kristoffer Darj', 
     'userEmail' => [email protected]' 
);
wp_localize_script( 'some_handle', 'kristofferdarj', $myData );

// The script can be enqueued now or later.
wp_enqueue_script( 'some_handle' );

That’s it really. Access the variable by simply writing

kristofferdarj.userName

in your javascript.

I choose the object name kristofferdarj since I want to avoid collisions, so usually i just name it like the domain.

It’s equally easy if your not in wordpress. Many frameworks like CakePHP has this built in as well and it’s easy to recreate in pure PHP as well. Might add that later if there is some interest.

First passive income

Ladies and gentlemens, I now have something worth of awe. A passive income. I’m leaning back in my antique divan as I’m writing this cashing in dollar after dollar.

The site delivering this long awaited flood of money turned out to be light-candle.com
Perhaps the idea I’m least proud of. It doesn’t contribute to the good of mankind or enlighten people that use it. It does however allow people to express their sorrow free of charge by lighting virtual memorial candles.

72 hours after a lighting a virtual candle it goes out though. (Can’t have the servers run hot you know.) But for a mere donation of $1 a candle will burn for a 100 days! Yes I know it sound so cheap and amazing. You might want to rush and fetch your wallet right away.

No seriously. It has only brought me $10 dollars so far but it’s better than nothing. I guess I have to start somewhere. And you should to (donate to me that is), start doing something now that might change your situation later.

light_candle

Auto compiled lesscss-files on windows made simple

  • I don’t want the hassle of installing node.js right here and now.
  • I’m on Win
  • I want to compile my less-files so that respond.js works
  • I just want it to work

WinLess to the rescue. It watches for filechanges and recompiles automagically.

This way I can use LESS and still have media queries running smoothly in IE 8 thanks to respond.js (which needs a .css file to parse)

Powered by kittens and brainpower.