Jim Cheung

Saturday, August 12, 2021

bought the book Crafting Interpreters the book you can read it free online, but I bought the book anyways so I can write note on pages.

talking about talking notes, I highly recommend Pentel Orenz Nero 0.3mm pencil it is thin enough to write lots in a tiny area and very smooth I have many pencils but this is the best.

the language made in the book is called lox and implemented in java I don't have issue with java but I don't want to just follow the example so I wrote it in clojure, just use atom for states

Sunday, August 22, 2021

emacs to highlight trailing spaces

(global-whitespace-mode)
(setq whitespace-style '(trailing tabs big-indent))

I also have to add this:

(custom-set-variables
 '(show-trailing-whitespace t))


found some good vim config at Torbet/Vim-It-Up

set scrolloff=10

nnoremap Y y$

nnoremap <leader><leader> <C-^>

nnoremap <Left> :bp<CR>
nnoremap <Right> :bn<CR>


did a tiny project using this way: React without webpack: fast path to a working app from scratch

I like how simple and fast it is, all you need is esbuild


a minimal custom event module, copy from Talk to your React components with custom events

export const on = (eventType, listener) => {
  document.addEventListener(eventType, listener)
}

export const off = (eventType, listener) => {
  document.removeEventListener(eventType, listener)
}

export const once = (eventType, listener) => {
  const handleEventOnce = event => {
    listener(event)
    off(eventType, handleEventOnce)
  }
  on(eventType, handleEventOnce)
}

export const trigger = (eventType, data) => {
  const event = new CustomEvent(eventType, { detail: data })
  document.dispatchEvent(event)
}

for react remember wrap the handler with useCallback


read Mastering TypeScript - Fourth Edition

there's some good stuffs in typescript, I particularly like the never type.

Wednesday, August 25, 2021

after tried react without webpack using esbuild, I also tried it with deno

deno already has a built-in bundler just create this import maps

{
  "imports": {
    "react": "https://esm.sh/react@17",
    "react-dom": "https://esm.sh/react-dom@17"
  }
}

then run deno bundle --import-map importmap.json app.jsx bundle.js

that is client side, for server side and ssr, can check this article: Guide to server-side rendering with Deno and React Deno.emit looks interesting


How to smoothly develop node modules locally using npm link


some new Manning books show up on safari, I picked a few to my reading list:

also reading A Common-Sense Guide to Data Structures and Algorithms, Second Edition

Thursday, August 26, 2021

saved bookmarks from last month:

terminal stuffs


clojure


good stuffs

Thursday, September 02, 2021

two "boring" books:

Friday, September 03, 2021

just needs to revisit colabs recently, found it's now much easier to access drive content now (if it don't auto-mount, call this)

from google.colab import drive
drive.mount('/content/drive')

I can keep secrets (api keys etc..) in my google drive and hide it from the notebook:

secrets = "/content/drive/MyDrive/secrets/config.json"

with open(secrets, 'r') as f:
  config = json.load(f)

for importing modules from google drive, I tried this but it doesn't work ...

import sys
sys.path.append('/content/drive/MyDrive/modules')
Blog Archive