Skip to content

Instantly share code, notes, and snippets.

View chinghanho's full-sized avatar
💁‍♂️
What's up?

Ching-Han Ho chinghanho

💁‍♂️
What's up?
View GitHub Profile
@chinghanho
chinghanho / Grok-Bot-Harness-Explainer.md
Created October 21, 2026 17:06 — forked from gfsaaser24/Grok-Bot-Harness-Explainer.md
How the Grok Bot harness works: architecture, prompts, state, tools and service dependencies

How the Grok Bot harness works - @gabefletcher

The Grok Bot host builds model requests, runs tools and saves the agent's state. Hosted services also handle identity, scheduling, sync and other features.

A message starts in the desktop app. The desktop sends it to the box host and shows the response. It also manages account connections and can run tools on the user's computer. The host builds the model's context, calls the provider, runs requested tools and saves the results. It then decides whether another model call is needed. The visible chat, model conversation and learned memory use separate stores. Changing the model provider leaves the other hosted service calls in place.

The original architecture sections cover public host 17e335e and desktop 0.52. The later comparison adds five-host source analysis, desktop .57.1 findings and isolated runtime measurements. Host and desktop have separate version number

@chinghanho
chinghanho / README.md
Last active November 12, 2021 09:34
貝殼放大前端工程師徵才 2021 年版本

image

團隊簡介

貝殼放大股份有限公司成立於 2014 年 10 月,是臺灣第一間也是最大的群眾集資顧問公司。至今協助超過 300 個團隊實踐夢想,累積集資金額超過 21 億元。提供的服務包含:初期的專案評估、市場調查、策略設定;製作期的影片拍攝、文案創意、商業設計;行銷面的廣告投放、社群經營、公關操作、客戶服務等,為集資提案者解決過程中的各種問題和需求。貝殼放大輔導的專案集資成功率達 9 成以上,平均單案集資金額超過 400 萬元,其中超過 30 件是破千萬案件。

在 2020 年,《#TaiwanCanHelp|集資刊登紐約時報全版廣告:台灣人寫給世界的一封信》、《魔法阿媽 23 週年電影數位修復集資計畫》、《十二夜 2》動保教育推廣計劃、《Cubiio 2 世界最薄金屬雕刻機|雷射切割機》、《大象杯 2 代》、《SwitchBot 智慧開關機器人》等深具社會意義或新奇有趣的產品集資計劃,皆有貝殼放大的參與。

2017 年參與台北世大運品牌網路行銷亦有出色表現,售票比例創下夏季世大運有史以來最高紀錄。之後陸續提供多家跨國上市櫃企業&公部門品牌顧問或整合行銷服務,合作夥伴包含:美國運通、星展銀行、桂冠、樂天、台灣小米、霹靂布袋戲、台灣櫻花、聲林之王、衛福部、台北市觀傳局⋯⋯。

@chinghanho
chinghanho / eventemitter.js
Created September 16, 2020 06:27 — forked from mudge/eventemitter.js
A very simple EventEmitter in pure JavaScript (suitable for both node.js and browsers).
/* Polyfill indexOf. */
var indexOf;
if (typeof Array.prototype.indexOf === 'function') {
indexOf = function (haystack, needle) {
return haystack.indexOf(needle);
};
} else {
indexOf = function (haystack, needle) {
var i = 0, length = haystack.length, idx = -1, found = false;
@chinghanho
chinghanho / gist:15b8072f99d5883757398931683d72b8
Last active September 17, 2020 00:29
Weekly development breakdown
We couldn’t find that file to show.
@chinghanho
chinghanho / HEY-YOU.md
Created July 13, 2020 17:36 — forked from cowboy/HEY-YOU.md
jQuery Tiny Pub/Sub: A really, really, REALLY tiny pub/sub implementation for jQuery.
@chinghanho
chinghanho / paginated.js
Created October 15, 2019 16:30 — forked from jstott/paginated.js
lodash paginated items
function getPaginatedItems(items, page, pageSize) {
var pg = page || 1,
pgSize = pageSize || 100,
offset = (pg - 1) * pgSize,
pagedItems = _.drop(items, offset).slice(0, pgSize);
return {
page: pg,
pageSize: pgSize,
total: items.length,
total_pages: Math.ceil(items.length / pgSize),
@chinghanho
chinghanho / encoding-video.md
Created June 17, 2019 15:23 — forked from glen-cheney/encoding-video.md
Encoding video for the web

Encoding Video

Installing

Install FFmpeg with homebrew. You'll need to install it with a couple flags for webm and the AAC audio codec.

brew install ffmpeg --with-libvpx --with-libvorbis --with-fdk-aac --with-opus
const canvasSketch = require('canvas-sketch'); // not yet released tool
const Random = require('./util/random');
const { lerp } = require('./util/math');
// We can force a random seed or a specific string/number
Random.setSeed(Random.getRandomSeed());
const settings = {
pixelsPerInch: 300,
// When exporting, use the seed as the suffix
uniform sampler2D tex; // matched from gst-plugin-gl uniform
const vec4 kappa = vec4(1.0,1.7,0.7,15.0);
// These can be made uniform if they are added to:
// gst/gl/gstglfiltershader.c:363
// gst_gl_shader_set_uniform_1f (filtershader->shader0, "screen_width", width);
// gst_gl_shader_set_uniform_1f (filtershader->shader0, "screen_height", height);
const float screen_width = 1920.0;
@chinghanho
chinghanho / fuzzy_string_match.js
Created May 13, 2018 15:34
Fuzzy string matching function for JavaScript
// Fuzzy matching algorithm
var fuzzyMatch = function(needle, haystack) {
if(needle === "" || haystack === "") return true;
needle = needle.toLowerCase().replace(/ /g, "");
haystack = haystack.toLowerCase();
// All characters in needle must be present in haystack
var j = 0; // haystack position
for(var i = 0; i < needle.length; i++) {