Skip to content

Instantly share code, notes, and snippets.

<?php
/* Shorten a URL using Google's goo.gl API. Requires an API key. */
function googl_shorten_url($url, $api_key) {
$endpoint = 'https://www.googleapis.com/urlshortener/v1';
$ch = curl_init(sprintf('%s/url?key=%s', $endpoint, $api_key));
curl_setopt_array($ch, array(
\CURLOPT_POST => true
, \CURLOPT_AUTOREFERER => true
, \CURLOPT_FOLLOWLOCATION => true
, \CURLOPT_SSL_VERIFYPEER => false
<?php
function github_markdown($text) {
$ch = curl_init('https://api.github.com/markdown/raw');
curl_setopt_array($ch, array(
\CURLOPT_POST => true
, \CURLOPT_RETURNTRANSFER => true
, \CURLOPT_POSTFIELDS => $text
, \CURLOPT_SSL_VERIFYPEER => false
, CURLOPT_HTTPHEADER => array('Content-Type: text/plain')));
@ttscoff
ttscoff / grab links.bookmarklet
Last active February 20, 2025 09:55
Create a bookmark and paste the code from `grab links.bookmarklet` into the url. Trigger it on a page containing links you want to save and then click the section of the page containing the links. A Markdown list of all links will be generated, and clicking the resulting list will select all for copying.
@aaronpk
aaronpk / gist:5846789
Last active October 10, 2025 15:42
Added WebFinger support to my email address using one rewrite rule and one static file.
[[email protected] www]$ cat .htaccess
RewriteEngine on
RewriteCond %{QUERY_STRING} resource=acct:(.+)
RewriteRule ^\.well-known/webfinger /profile/%1? [L]
[[email protected] www]$ cat profile/[email protected]
{
"subject": "acct:[email protected]",
"links": [
{
@stevesouders
stevesouders / activetable.js
Last active December 30, 2024 05:11
ActiveTable is a bookmarklet that makes any table sortable. It also allows you to remove columns, and it remembers the removed columns for next time. Use alt+click to UNhide all columns (and clear memory). To use it, create a bookmark called "ActiveTable" that has this URL: javascript:(function(){ var jselem=document.createElement('SCRIPT'); jse…
// ActiveTable - a bookmarklet to make tables sortable and editable
function init() {
var aHrows = getHrows();
var numHrows = aHrows.length;
var aHidden = getHiddenColumns();
ATpopup = document.createElement("div");
ATpopup.style.cssText = "position: absolute; visibility: hidden; padding: 0; font-family: Arial; background-color: rgba(255, 255, 255, 0.9); border-radius: .5em; text-align: center; box-shadow: .05em .05em .5em #00C;";
ATpopup.innerHTML = "<a href='sort' title='sort' onclick='sortColumn(); return false'><img border=0 src='http://stevesouders.com/images/sort_up_down.png' style='padding-top: 0.2em;'></a><br><a href='hide' style='color: #C00; font-family: monospace; font-size: 1.5em; text-decoration: none;' title='hide' onclick='hideColumn(); return false'>x</a>"; // TODO - use protocol-less URL for img
@liunian
liunian / gist:9338301
Last active June 3, 2025 07:34
Human Readable File Size with PHP
<?php
# http://jeffreysambells.com/2012/10/25/human-readable-filesize-php
function human_filesize($bytes, $decimals = 2) {
$size = array('B','kB','MB','GB','TB','PB','EB','ZB','YB');
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$size[$factor];
}
echo human_filesize(filesize('example.zip'));
@kafene
kafene / dnscrypt-installation.md
Last active July 30, 2017 20:09
DNSCrypt Installation

Create and enter a working directory

mkdir -p ~/dnscrypt-working-directory && cd ~/dnscrypt-working-directory

Become root

sudo -s