Skip to content

Instantly share code, notes, and snippets.

View tincho's full-sized avatar

Martin tincho

View GitHub Profile
Mon4ik / useLocalStorage.ts
Last active May 2, 2024 16:06
Typescript useLocalStorage hook
/* `useLocalStorage`
* Features:
* - JSON Serializing
* - Also value will be updated everywhere, when value updated (via `storage` event)
import { useEffect, useState } from "react";
export default function useLocalStorage<T>(key: string, defaultValue: T): [T, (value: T) => void] {
getify / 1-CalendarItem.js
Last active March 21, 2024 09:11
an illustration (non-trivial example) of many newer JS class features
// abstract class, not intended to be instantiated directly
class CalendarItem {
static #UNSET = Symbol("unset")
static #isUnset(v) {
return v === this.#UNSET;
static {
for (let [idx,msg] of [
"ID is already set.",
"ID is unset.",
christr /
Last active December 4, 2023 04:05 — forked from mhussain/
Linode dynamic DNS updating script
# Modified by Chris Richardson ( and on 09/20/2020
# Previous versions of this script don't work because they hadn't been updated since 2012. There are now more steps involved to set this up.
# This script update is based on information found here:
# You first must find out the domain ID and resource ID numbers. In order to do this follow the steps below.
# 1. Create a Linode API Key through your account profile at Give it rights to read/write to domains only.
# 2. From a shell run the following command: LINODE_API_KEY=[insert API key from step 1 here]
# 3. Run the following command to get the domain ID number for the domain you want to manage: curl -H "Authorization: Bearer $LINODE_API_KEY"
chronon /
Created September 3, 2018 22:19
Dell XPS 13 9370 Dual Boot Win 10 and Debian Linux

Dell XPS 13 9370 Dual Boot Win 10 and Debian Linux

Windows Preparation and Setup

  1. Download Win 10 installation ISO and create a bootable USB drive.
  2. Boot, F12 for system menu, select BIOS Setup.
    • System Configuration -> SATA Operation and change from "RAID On" to "AHCI".
    • Secure Boot -> Secure Boot Enable and change to "Disabled"
  3. Reboot, F12 for system menu, select the external USB drive and install Win 10.
zentala / formatBytes.js
Created September 27, 2017 11:57
Convert size in bytes to human readable format (JavaScript)
function formatBytes(bytes,decimals) {
if(bytes == 0) return '0 Bytes';
var k = 1024,
dm = decimals || 2,
sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
// Usage:
tincho / date-utils.js
Last active July 13, 2022 04:17
some utils for JS Date handling
why fixDate?
if we create a JS Date writing:
var d = new Date("2015-05-15")
we are not specifying any timezone
the browser/environment will asume it is UTC+000,
and always represent it in user's LOCAL TIMEZONE!
so, running in an environment located in a UTC-3 zone,
d would actually show 2015-05-14 at 21:00
and may lead to errors.
CharlyJazz / XMLHttpRequest.js
Last active May 17, 2023 08:13
XMLHttpRequest injection load javascript script.
//Before </body> tag
var xhr = new XMLHttpRequest();"get", "cookbook.js", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {
var script = document.createElement("script");
script.type = "text/javascript";
script.text = xhr.responseText;
swPrecache.write(path.resolve(__dirname, `../public/service-worker.js`), {
cacheId: `know-it-all`,
filename: `service-worker.js`,
stripPrefix: `public/`,
staticFileGlobs: [
`public/app.*.js`, // don't include the polyfills version
dontCacheBustUrlsMatching: [
/\.(js|json)$/, // I'm cache busting js and json files myself
romuloctba /
Last active August 1, 2023 12:03
Install Adobe Photoshop CS6 on Wine (Ubuntu, Elementary OS, Linux Mint)

Step 1. Install the Wine Team Ubuntu PPA

First start by installing Wine btw it's a utility to install windows apps in linux :

open the Terminal and :

   sudo add-apt-repository ppa:ubuntu-wine/ppa     
   sudo apt-get update && sudo apt-get upgrade
   sudo apt-get install wine1.7 winetricks
franleplant /
Last active May 24, 2024 01:51
Delegacion de dominios de

IMPORTANTE mi recomendacion es evitar en lo posible ya que es tenido diversos problemas con su servicio, la renovacion es incomoda, me han disputado y quitado dominios que he tenido y pagado por años, tenes que sacar clave fiscal para crear un dominio. Si no tienen problemas teniendo un dominio que no sea entonces usen Godaddy u otra cosa.

Dicho esto, si no te es posible escaparle al segui leyendo.

Si te sirvio esta informacion considera aportar para apoyar mi trabajo via Bitcoin 1MBakrHeKFxks4SbhY7MdnhDEQnkDnPoJK Desde ya muchas gracias

Como delegar?

Mi recomendacion es usar un DNS hosted como Route 53 de AWS. DNS hosted significa que es un servidor de DNS, conectado a la base de datos distribuida que es DNS, hostead / administrado por otro, en este caso AWS. Hay otras alternativas solo que yo solo use Route 53. Busquen Hosted DNS en internet para ver alternativas. Route 53 es realmente muy barato, algo asi como 1 dolar por mes mas 0.2 dolares por hosted zone (domi