Skip to content

Instantly share code, notes, and snippets.

View mikoloism's full-sized avatar
🌱

mikoloism mikoloism

🌱
View GitHub Profile
@rahman541
rahman541 / ES6-Setup.md
Last active May 22, 2023 04:04
ES6 Setup with nodemon

ES6 Setup

npm init -y
npm i --save-dev nodemon
npm add babel-preset-env babel-cli

Create a .babelrc config in your project root. Insert the following

{
 "presets": ["env"]

Using the classnames.bind method

Many people who work with React are familiar with the excellent classnames library. If you aren't familiar, it provides a simple function for gluing classnames together. In web programming in general, there are many times that we need to add or remove multiple classes based on conditional logic. The classnames library makes this easy.

More and more developers are embracing CSS Next and the power of CSS modules. However, when you add CSS modules to your react components, working with classnames gets more difficult. Typically, CSS modules is implemented with class name mangling. Transforming human readable class name strings into unique identifiers helps ensure that every class name in your app is unique.

This means that you can write your component CSS in isolation without worrying about the dreaded class name collisions that have plagued CSS

<button onclick="recordStop()" id="record-stop-button">Record</button>
<button onclick="playAudio()" disabled id="play-audio-button">Play</button>
<script>
const recordAudio = () =>
new Promise(async resolve => {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const mediaRecorder = new MediaRecorder(stream);
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
@dfoverdx
dfoverdx / JavaScript Members Not Bound to Instances.md
Last active September 11, 2024 22:29
Why JavaScript class members are not automatically bound to the instance of the class

It took a few years, but I finally understand why member functions of classes in JavaScript aren't automatically bound to their objects, in particular when used in callback arguments.

In most object-oriented languages, functions are members of a class--they exist in memory only once, and when they are called, this is simply a hidden argument of the function which is assigned to the object that's calling it. Python makes this explicit by requiring that the first argument of a class's member function be self (Python's equivalent of this--you can name self whatever you want, but self is the convention).

class MyClass:
@jalbam
jalbam / requestAnimationFrame-polyfill.js
Last active April 26, 2025 03:30
window.requestAnimationFrame polyfill (with high resolution timing, very precise)
'use strict';
// requestAnimationFrame polyfill by Erik Möller.
// Fixes from Paul Irish, Tino Zijdel, Andrew Mao, Klemen Slavic, Darius Bacon and Joan Alba Maldonado.
// Adapted from https://gist.github.com/paulirish/1579671 which derived from
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/
// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
// Added high resolution timing. This window.performance.now() polyfill can be used: https://gist.github.com/jalbam/cc805ac3cfe14004ecdf323159ecf40e
// MIT license
// Gist: https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0
@mikoloism
mikoloism / 1-Destructure_Object.md
Last active April 2, 2023 13:39
HOW-WRITE-CLEAN-CODE?

Destructure Javascript Object

Object for Destructuring

// common-base
const object = {
  name: {
  first: 'john',
  last: 'doe',
},
@mikoloism
mikoloism / md-cheatsheet.md
Last active April 25, 2021 17:07
Markdown cheat sheet

Markdown cheatsheet ⭐

Headings

Markdown Markup Preview
# Heading 1 <h1>HEADING 1</h1>

HEADING 1

# Heading 2 <h2>HEADING 2</h2>

HEADING 2

# Heading 3 <h3>HEADING 3</h3>

HEADING 3

# Heading 4 HEADING 4 HEADING 4
@sindresorhus
sindresorhus / esm-package.md
Last active September 29, 2026 08:36
Pure ESM package

Pure ESM package

The package that linked you here is now pure ESM. It cannot be require()'d from CommonJS.

This means you have the following choices:

  1. Use ESM yourself. (preferred)
    Use import foo from 'foo' instead of const foo = require('foo') to import the package. You also need to put "type": "module" in your package.json and more. Follow the below guide.
  2. If the package is used in an async context, you could use await import(…) from CommonJS instead of require(…).
  3. Stay on the existing version of the package until you can move to ESM.
@mikoloism
mikoloism / barcode-scanner(reader).md
Last active April 2, 2023 13:44
HTML: Barcode Scanner on modern browser