Skip to content

Instantly share code, notes, and snippets.

View lackneets's full-sized avatar
🤗
Sorry I am super busy. I may respond in weeks or months

Lackneets Chang (小耀博士) lackneets

🤗
Sorry I am super busy. I may respond in weeks or months
  • TAROBO Investment Advisors Ltd.
  • Taipei, Taiwan
View GitHub Profile
@lackneets
lackneets / phpquant.php
Created June 5, 2016 08:14
Example of PHP streaming pngquant
<?php
$new_path = '/path/to/input.png';
$cmd = 'pngquant -';
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$process = proc_open($cmd, $descriptorspec, $pipes);
@lackneets
lackneets / .htaccess
Last active March 14, 2021 19:30
PNG auto minify on demand using Apache & PHP & pngquant
# OctoberCMS storage/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
# foo/xxx.png => foo/xxx-min.png if exists
RewriteCond %{DOCUMENT_ROOT}%{ENV:BASE}$1min/$2-min.$3 -f
@lackneets
lackneets / .htaccess
Last active June 12, 2016 11:27
[Recommand] Global managament PNG auto minify on demand using Apache & PHP & pngquant
# OctoberCMS storage/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
# .../xxx.png => minified/.../xxx.png if exists
RewriteCond %{DOCUMENT_ROOT}%{ENV:BASE}minified/$1 -f
@lackneets
lackneets / font-falimies.js
Last active July 2, 2016 09:48
Get all font-family on page
(function(){
var fonts = [];
Array.from(document.styleSheets).forEach(function(styleSheet){
Array.from(styleSheet.cssRules || []).forEach(function(rule){
String(rule.style && rule.style.fontFamily).split(/\s*,\s*/).forEach(function(font){
font = font.replace(/^["'](.*)["']$/, '$1');
if(font && fonts.indexOf(font) == -1 && !font.match(/undefined|inherit|initial/i)){
fonts.push(font);
}
})
@lackneets
lackneets / youtube-responsive.js
Last active August 9, 2016 02:29
Make youtube iframe responsive
$(function(){
$('iframe[src*="youtube"][width][height]').each(function(){
var w = $(this).attr('width');
var h = $(this).attr('height');
$(this).wrap($('<div class="youtube-wrapper">').css({
'max-width' : '100%',
'height': 0,
'padding-bottom': (h/w*100) + '%',
'position': 'relative'
})).css({
@lackneets
lackneets / backend.css
Last active August 22, 2016 02:55
Better OctoberCMS font-size for Traditional Chinese
/* October */
html:lang(zh-tw), body:lang(zh-tw){ font-size:14.5px }
:lang(zh-tw) h5,.h5{ font-size:1rem }
:lang(zh-tw) .btn{ font-size:1rem; font-weight: normal; }
:lang(zh-tw) .btn[class^="oc-icon-"]:before,.btn[class*=" oc-icon-"]:before{ font-size:1rem }
:lang(zh-tw) .btn-text{ font-size:1rem }
:lang(zh-tw) .dropdown-menu{ font-size:1rem }
:lang(zh-tw) .dropdown-menu .dropdown-container > ul li a[class^="oc-icon-"]:before,.dropdown-menu .dropdown-container > ul li a[class*=" oc-icon-"]:before{ font-size:1rem }
:lang(zh-tw) .touch .dropdown-menu .dropdown-container > ul li a:hover:before{ font-size:1rem }
:lang(zh-tw) div.control-popover .popover-head h3{ font-size:1rem }
@lackneets
lackneets / iframe-responsive-beta.js
Created October 20, 2016 06:40
iframe-responsive-beta.js
/*
iFrameResponsive.js
by Lackneets Chang < [email protected] >
*/
(function(){
// Polyfill
// http://javascript.boxsheep.com/polyfills/Array-prototype-forEach/
if (!Array.prototype.forEach) {
Array.prototype.forEach = function (fn, arg) {
@lackneets
lackneets / poke.js
Created October 28, 2016 03:24
Facebook auto poke all
// https://www.facebook.com/pokes/?notif_t=poke
setInterval(function(){
var cancel = document.querySelector('a[autofocus][action=cancel]');
cancel && cancel.click();
var poke = document.querySelector('a[ajaxify*="/pokes/inline/"]:not(.saving)');
poke && poke.click();
}, 1000);
@lackneets
lackneets / radar-chart.js
Last active January 15, 2020 13:09
ChartJS Radar Chart Example
var ctx = document.getElementById('radar-chart').getContext('2d');
var data = {
labels : ["January","February","March","April","May"],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,1)",
data : [65,59,90,81,56]
},
{
@lackneets
lackneets / getScrollbarWidth.js
Created November 10, 2016 07:43
from bootstrap modal
function getScrollbarWidth(){
var scrollDiv = document.createElement('div');
scrollDiv.style.position = 'absolute';
scrollDiv.style.top = '-9999px';
scrollDiv.style.width = '50px';
scrollDiv.style.height = '50px';
scrollDiv.style.overflow= 'scroll';
document.body.appendChild(scrollDiv);
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);