Awesome PHP has been relocated permanently to its own Github repository. No further updates will made to this gist.
Please open an issue for any new suggestions.
Awesome PHP has been relocated permanently to its own Github repository. No further updates will made to this gist.
Please open an issue for any new suggestions.
#301 Redirects for .htaccess | |
#Redirect a single page: | |
Redirect 301 /pagename.php http://www.domain.com/pagename.html | |
#Redirect an entire site: | |
Redirect 301 / http://www.domain.com/ | |
#Redirect an entire site to a sub folder | |
Redirect 301 / http://www.domain.com/subfolder/ |
import struct | |
import SocketServer | |
from base64 import b64encode | |
from hashlib import sha1 | |
from mimetools import Message | |
from StringIO import StringIO | |
class WebSocketsHandler(SocketServer.StreamRequestHandler): | |
magic = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' |
#!/bin/sh | |
### | |
# SOME COMMANDS WILL NOT WORK ON macOS (Sierra or newer) | |
# For Sierra or newer, see https://github.com/mathiasbynens/dotfiles/blob/master/.macos | |
### | |
# Alot of these configs have been taken from the various places | |
# on the web, most from here | |
# https://github.com/mathiasbynens/dotfiles/blob/5b3c8418ed42d93af2e647dc9d122f25cc034871/.osx |
This article has been given a more permanent home on my blog. Also, since it was first written, the development of the Promises/A+ specification has made the original emphasis on Promises/A seem somewhat outdated.
Promises are a software abstraction that makes working with asynchronous operations much more pleasant. In the most basic definition, your code will move from continuation-passing style:
getTweetsFor("domenic", function (err, results) {
// the rest of your code goes here.
# sudo ./vhoster.sh example.com | |
NGINX_CONFIG='/etc/nginx/sites-available' | |
NGINX_SITES_ENABLED='/etc/nginx/sites-enabled' | |
WEB_DIR='/vagrant' | |
SED=`which sed` | |
CURRENT_DIR=`dirname $0` | |
if [ -z $1 ]; then | |
echo "No domain name given" |
<?php | |
// I have Groups. A group can have many discussions. A single discussion can have many posts. | |
// models/Group.php | |
public function delete() | |
{ | |
// Check for discussions belonging to the group first | |
if ($this->discussions) { | |
foreach ($this->discussions as $discussion) { | |
$discussion->delete(); | |
} |
My efforts to port http://www.youtube.com/watch?v=f6kdp27TYZs to Clojure.
func boring(msg string) {
for i := 0; ; i++ {
fmt.Println(msg, i)
time.Sleep(time.Second)
}
grab the moto-fastboot version of fastboot here
grab the appropriate stock firmware here (tip: you want the one that matches your android build number in settings -> about phone)
unzip this file somewhere and make it easy to run the moto-fastboot-osx64
command from step 1
get your phone into fastboot mode, google it if needed but just power the phone off, hold the down volume key and power button for 3 seconds then let go, should get you there
verify you are ready for flashing:
./moto-fastboot-osx64 devices
-- should list a device --
most of the time you just need to flash system and recovery images, so from your unzipped stock firmware files do this:
I have spent quite a bit of time figuring out automounts of NFS shares in OS X...
Somewhere along the line, Apple decided allowing mounts directly into /Volumes should not be possible:
/etc/auto_master (see last line):
#
# Automounter master map
#
+auto_master # Use directory service