Skip to content

Instantly share code, notes, and snippets.

View jam2-hey's full-sized avatar

Jam Huang jam2-hey

  • Taipei City, Taiwan
View GitHub Profile
@jam2-hey
jam2-hey / README.md
Last active May 16, 2022 16:41
Download your Reddit avatar in High Resolution
  1. Open Reddit's avatar editor
  2. Edit your avatar (include Premium parts)
  3. Run this code at browser's console.

Change the variable "scale" to get different size image.

@jam2-hey
jam2-hey / IncludeConstants.js
Last active August 28, 2020 02:39
Inject constants to Vue instance
export default {
install (Vue) {
Vue.mixin({
created: function () {
if (this.$options.$consts) {
Object.entries(this.$options.$consts)
.forEach(([key, value]) => {
Object.defineProperty(this, key, {
value,
writable: false
@jam2-hey
jam2-hey / README.md
Last active June 29, 2019 06:25
Initialize Youtube iFrame API

Youtube iFrame Player API - Vue Plugin

A Vue.js Plugin that initializing Youtube iFrame Player API for you.

Example

// In main.js

import YoutubePlayerAPI from './lib/vue.plugin.youtube-player.js'
class Bresenham {
static plot(x0, y0, x1, y1) {
let dots = [];
let dx = Math.abs(x1 - x0);
let dy = Math.abs(y1 - y0);
let sx = (x0 < x1) ? 1 : -1;
let sy = (y0 < y1) ? 1 : -1;
let err = dx - dy;
@jam2-hey
jam2-hey / xiaolin-wu.js
Created September 25, 2016 05:04
Xiaolin Wu's line algorithm is js (es6)
class XiaolinWu {
static integerPart(v) {
let isNeg = (v < 0) ? -1 : 1;
let abs = Math.abs(v);
let integerPart = Math.floor(abs);
return integerPart * isNeg;
}
function tablify($data, $columns)
{
$result = [];
// 收集各欄位的最大寬度
$maxWith = [];
foreach ($columns as $column) {
$maxWith[$column] = mb_strwidth($column);
(function () {
var d = document;
var w = window;
var cont = w.____ytsnap || init();
var v = d.querySelector('video');
if(v.readyState!=4) return;
var c = d.createElement('canvas');
var vw = v.videoWidth, vh = v.videoHeight;
var thunmbnail_height = 60;
@jam2-hey
jam2-hey / shortNumber.php
Last active June 14, 2016 04:29
Convert your numbers into strings like '10.3K' or '1M' for better readibility.
<?php
function shortNumber($number, $decimal = 2)
{
$suffixes = [ 4 => '', 7 => 'K', 10 => 'M', 13 => 'B', 16 => 'T'];
$absNumber = abs($number);
$sign = ($number < 0) ? '-' : '';
$magnitude = strlen(floor($absNumber)); // This is dirty, but it gets job done.
Demo: http://www.p01.org/jsconf_asia_2015/