Skip to content

Instantly share code, notes, and snippets.

Avatar

Jeremy Lu coodoo

View GitHub Profile
@coodoo
coodoo / permutation.js
Created Aug 17, 2021
permutation in js with reducer
View permutation.js
let arr = [
['a1', 'a2'],
['b1', 'b2', 'b3']
]
let result = arr.reduce(
// -----------
// 最外層 reduce 會依序遍歷
// ['a1', 'a2'] 與 ['b1', 'b2', 'b3']
View wallpaper.js
const fetch = require('node-fetch')
const fs = require('fs-extra')
const { execSync } = require('child_process')
const main = async () => {
const query = `nasa,cycling,surfing,underwater,swimming`
const size = `1`
const order = `latest`
const orientation=`landscape`
const photoName = 'photo.png'
@coodoo
coodoo / example.js
Created Mar 8, 2021
一個十分鐘寫的土砲 hotkey manager
View example.js
useHotkey(['Meta', 'c'], () => {
console.log( `要跑 1`, )
})
useHotkey(['ctrl', 'c'], () => {
console.log( `要跑 2`, )
})
View sizer.js
import {
PixelRatio,
Dimensions,
useWindowDimensions
} from 'react-native'
const to = n => Number(n.toFixed(2))
const { width, height } = Dimensions.get('window')
// 將短的那邊視為 width
View a.js
function matrixArrayToCssMatrix(array) {
return "matrix3d(" + array.join(',') + ")";
}
function multiplyMatrixAndPoint(matrix, point) {
//Give a simple variable name to each part of the matrix, a column and row number
var c0r0 = matrix[0],
c1r0 = matrix[1],
c2r0 = matrix[2],
View _final.md

前言

這是 Oct. 28 ~ Nov. 01, 2020 間於推特上舉辦的趣味面試挑戰,四天期間共 517 人次閱讀、42 人 fork sandbox,最後收到九份回答,如果這是正式面試,將錄取 5 人、備取 1 人、拒絕 3 人,也就是成功率約六成。

先說結論

  • 面試時別急著跳進去回答問題,先拉高層次觀察問題的形狀,搞清楚 root cause 後再思考答案與解法

  • 過程中多詢問主考官真正想達到的目地、目前為何採取此手法、現在的做法是否遇到困難、有無解法上的限制(time, mem, cpu bound)

@coodoo
coodoo / karabiner.json
Last active Aug 9, 2020
Toggle vi_mode mode with caps_lock so that hjkl keys function as arrow keys and u/i as delete and backspace.
View karabiner.json
{
"global":
{
"check_for_updates_on_startup": true,
"show_in_menu_bar": false,
"show_profile_name_in_menu_bar": false
},
"profiles":
[
{
View gpx.js
{
id: 'Root',
initial: 'after map loaded',
states: {
'before map loaded': {
on: {},
states: {}
},
'after map loaded': {
on: {},
@coodoo
coodoo / statechart-xstate.md
Last active Sep 17, 2021
Extensive research of statecharts with a focus on front-end development.
View statechart-xstate.md

The case for statechart and xstate -- why it matters and how we can benefit from it

Bottom line up front

  • redux is a global data management tool, not a proper state management tool, hence causing a lot of troubles

  • statecharts is an extension to Finite State Machine (FSM) which provides explicit and safe state management capabilities, perfectly fit for front-end development

  • statecharts had been used intensivelly in all industries (be it embedded systems, hardware, electronics, aeronautics, automotive, game development and more), it's us front-end developers late to the party

View machine.js
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions