Skip to content

Instantly share code, notes, and snippets.

View linonetwo's full-sized avatar

lin onetwo linonetwo

View GitHub Profile
@linonetwo
linonetwo / .hyper.js
Last active May 24, 2019 07:01
hyper term config
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
// choose either `'stable'` for receiving highly polished,
// or `'canary'` for less polished but more frequent updates
updateChannel: 'stable',
@linonetwo
linonetwo / .hyper.js
Last active May 24, 2019 07:47
[HyperTerm setting] #config
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
hyperTransparentDynamic: {
alpha: 0.1 // default 50%
},
// Choose either "stable" for receiving highly polished,
@linonetwo
linonetwo / resolver.js
Last active May 24, 2019 07:53
Get fields in fragment of a #graphql query
async producers(_: any, __: any, ___: any, { fragments }: Object) {
const fields = flatten(values(fragments).map(data => data.selectionSet.selections.map(f => f.name.value)));
if (
intersection(fields, [
'owner',
'totalVotes',
'producerKey',
'isActive',
'url',
'unpaidBlocks',
@linonetwo
linonetwo / es5.js
Created May 24, 2019 07:59
ES5 and ES6 import export #syntax
const xxx = require('./xxx');
module.exports = xxx;
@linonetwo
linonetwo / fetchAnki.js
Created May 24, 2019 08:02
ES6 fetch #api with headers and body
fetch(`http://localhost:${env.ankiPort || 8765}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ action: 'addNote', version: 6, params }),
}).catch(error => {
pluginContext.console.log('error', 'failed adding to anki', { error, errorString: String(error) });
})
@linonetwo
linonetwo / zipResults.js
Created May 24, 2019 08:03
lodash #api zip result of two array
const zipResults = _.flow([_.zip, _.flatten, _.compact]);
@linonetwo
linonetwo / SyncAdaptor.js
Created May 24, 2019 08:12
Head Fields in HTTP #protocol
/** slug field: let parent folder create a resource named ${slug} */
const slug = basename(url);
const parentFolder = dirname(pathName);
const parentUrl = `https://${hostName}${parentFolder}`;
/** link field: links saparated by comma, and key-value saparated by semicolon;
* type means the suggested content-type, describedby means the suggested meatdata file
*/
const link = `<http://www.w3.org/ns/ldp#Resource>; rel="type", <${slug}.meta>; rel="describedby"`;
@linonetwo
linonetwo / saveToLocalRef.js
Created May 24, 2019 08:22
#react hook #api
export function useScene(
canvasRef: React.RefObject<HTMLCanvasElement>,
cameraRef: React.MutableRefObject<Camera | undefined>,
currentAirplaneObject,
currentDetectedPointObjects: Mesh[],
) {
// set up scene and model
const sceneRef = useRef<Scene>();
useEffect(() => {
// 如果这个 Effect 被调用了,说明场景需要刷新
@linonetwo
linonetwo / nginx.conf
Created September 2, 2019 09:27
[祖传的 React SSR Nginx 配置文件] 配置了路由转发等等 #react #nginx
worker_processes 4;
#定义了nginx对外提供web服务时的worder进程数。最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。
worker_rlimit_nofile 100000;
#更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。
events {
worker_connections 4096;
#设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。
@linonetwo
linonetwo / shell
Created January 8, 2020 07:30
[Enable logging in node-solid-server] #solid #javascript
DEBUG=solid:* MKCERT_PATH=\"$(mkcert -CAROOT)/rootCA.pem\" solid start # --root $(pwd)/data --data-browser-path $(pwd)/../node_modules/mashlib/dist/databrowser.html --config-file $(pwd)/../config.solid.example.json
// DEBUG=solid:*