Skip to content

Instantly share code, notes, and snippets.

@HereOrCode
HereOrCode / useDrag.ts
Last active February 3, 2024 07:45
React Hook: Draggable div element
import { useCallback, useEffect, useState } from "react";
type DragInfo = {
startX: number;
startY: number;
top: number;
left: number;
width: number;
height: number;
};
@HereOrCode
HereOrCode / fetchStream.js
Created January 17, 2024 00:56 — forked from blackbing/fetchStream.js
Server Sent Event with fetch stream
const url = 'https://api.example.com/v1/sse';
const accessToken = 'test';
fetch(url, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
})
.then(response => {
if (response.ok && response.body) {
reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
@HereOrCode
HereOrCode / demo.js
Last active October 24, 2023 11:11
Video auto play
/*
* Autoplay policy in Chrome - Chrome for Developers
* https://developer.chrome.com/blog/autoplay/#example_scenarios
*
* Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.
* https://stackoverflow.com/a/68128950/7738653
*/
const video = document.querySelector("video");
@HereOrCode
HereOrCode / manifest.md
Created September 30, 2023 02:36
Manifest file format

Every extension requires a JSON-formatted file, named manifest.json, that provides important information. This file must be located in the extension's root directory.

https://developer.chrome.com/docs/extensions/mv3/manifest/

{
  "name": "crx-vue-multi-page",
 "description": "A Chrome extension demo.",
@HereOrCode
HereOrCode / jerry.swift
Created June 4, 2023 07:14 — forked from vorce/jerry.swift
Mouse move and click test thing for macos in swift
import Cocoa
import Foundation
// Move around and click automatically at random places in macos, kinda human like in a cheap way.
// Moves the mouse pointer to `moves` random locations on the screen and runs the `action` function at
// each point with the point as argument.
func mouseMoveWithAction(moves: Int, action: (CGPoint) -> Void = defaultAction) {
let screenSize = NSScreen.main?.visibleFrame.size
@HereOrCode
HereOrCode / index.js
Created January 31, 2023 09:30
translate file
const arguments = process.argv.slice(2);
const [filePath] = arguments;
main(filePath);
function main(filePath) {
const path = require('path');
const { root, dir, name, ext } = path.parse(filePath);
@HereOrCode
HereOrCode / readme.md
Created January 14, 2023 13:25
Completely uninstall Cocos Creator on Mac

Creator is a standard mac application which creates following folders and files:

~/Library/Preferences/com.cocos.creator.plist
~/Library/Application Support/CocosCreator/

#if you install v1.0.2
~/Library/Application Support/com.cocos.creator.ShipIt 

~/Library/Saved Application State/com.cocos.creator.savedState
~/.CocosCreator/
@HereOrCode
HereOrCode / Debian Motd.md
Last active February 27, 2023 13:04
Debian Motd

How to use

you need to set the following in /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
PrintMotd yes

sudo apt-get update
sudo apt-get install figlet
@HereOrCode
HereOrCode / build.cjs
Last active December 13, 2022 11:41
Build Browser Extension Zip
// build.cjs
#!/usr/bin/env node
const fs = require('fs')
const path = require('path')
// eslint-disable-next-line
var archiver = require('archiver')
const extPackageJson = require('../src/manifest.json')
@HereOrCode
HereOrCode / debug.swift
Last active June 12, 2022 05:50
Printing file name, function name, line number in Swift.
func log(_ items: Any...,
withShortFileName: Bool = true,
file: String = #file,
function: String = #function,
line: Int = #line)
{
#if DEBUG
var fileName: String = ""
if withShortFileName {