Skip to content

Instantly share code, notes, and snippets.

View juliandavidmr's full-sized avatar
:octocat:
Working from home

Julian David juliandavidmr

:octocat:
Working from home
View GitHub Profile

Projects in progress

Projects that entertain me in my spare time.

  • i18n-editor
  • superconvert
    • Page: Decode base64.
    • Page: Encode base64.
    • Page: Generate random number (allow max/min values).
  • Page: Generate random UUID.
@juliandavidmr
juliandavidmr / counterdown.ts
Created December 20, 2019 19:17
Counterdown + RxJS
import { Observable, timer } from "rxjs";
import { map, takeWhile, take } from "rxjs/operators";
export function countdown(minutes: number, delay: number = 0) {
return new Observable<{ display: string; minutes: number; seconds: number, finished: boolean }>(
subscriber => {
timer(delay, 1000)
.pipe(take(minutes * 60))
.pipe(map(v => minutes * 60 - 1 - v))
.pipe(takeWhile(x => x >= 0 && !subscriber.closed))
emcc main.c -O3 -o index.js -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'cwrap']"
@juliandavidmr
juliandavidmr / packageLock2Markdown.js
Created October 29, 2019 22:46
Generate markdown file from package-lock.json
// Run: node packageLock2Markdown.js "C:\..PATH..\package-lock.json" > out.md
const fs = require('fs');
const args = process.argv.slice(2);
let markdownOutput = '';
const contents = JSON.parse(fs.readFileSync(args[0], 'utf8'));
@juliandavidmr
juliandavidmr / packageLock2Markdown.js
Created October 29, 2019 22:46
Generate markdown file from package-lock.json
// Run: node packageLock2Markdown.js "C:\..PATH..\package-lock.json" > out.md
const fs = require('fs');
const args = process.argv.slice(2);
let markdownOutput = '';
const contents = JSON.parse(fs.readFileSync(args[0], 'utf8'));
@juliandavidmr
juliandavidmr / index.html
Created July 10, 2019 18:51
Change $scope/model from jquery/vanilla
<!DOCTYPE html>
<html ng-app="revalidation">
<head>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" data-semver="3.3.1" data-require="bootstrap@3.3.1" />
<script data-require="angular.js@1.4.3" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular.js"></script>
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
@juliandavidmr
juliandavidmr / cinecalidad.js
Created February 24, 2019 23:10
Get a list of movies from Cinecalidad
function getDetailsMovie(htmlString) {
var div = document.createElement('div');
div.innerHTML = htmlString.trim();
div = div.querySelectorAll('#content_inside > .post_box');
var listMovies = [];
div.forEach(element => {
var a = element.querySelector("a")
if (a) {
@juliandavidmr
juliandavidmr / pasos_para_entender_lib.md
Last active December 27, 2018 20:37
Pasos para entender un proyecto/librería de npm, github, gitlab, etc.

Pasos para entender una librería

  • Leer la documentación general (Normalmente se encuentra en un archivo README.md o Wiki).
  • Determinar herramienta de empaquetación: Rollup, Webpack…
  • Determinar estándar usado: ES6, ES5, TypeScript…
  • Determinar archivo(s) de arranque (Normalmente se visualiza desde un principio en el package.json con la clave main).
  • Obtener listado de dependencias (package.json > dependencies) y observar su comportamiento/funcionamiento (puede observarse rapidamente en la documentación oficial de cada librería desde npm o git(hub|lab)).
  • Abrir archivo de arranque encontrado anteriormente:
    • Buscar función inicializadora, probablemente esté declarado con alguno de los siguientes nombres: boostrap, main, lib. En ES6, ES7 o Typescript se puede encontrar con la exportacion de una funcion anonima o una clase: export default function ...
  • La función inicializadora (parametros de constructuctor cuando se trata de class) puede

Nombre Componente

Descripción del componente/librería. Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, quedando esencialmente igual al original. Fue popularizado en los 60s con la creación de las hojas "Letraset", las cuales contenian pasajes de Lorem Ipsum, y más recientemente con software de autoedición, como por ejemplo Aldus PageMaker, el cual incluye versiones de Lorem Ipsum.

Guía de uso

<bzg-demo [color]="'red'">
  <p>Contenido</p>
@juliandavidmr
juliandavidmr / filter_svg_css.css
Created November 25, 2018 14:48
Apply filter CSS from SVG
path {
stroke-width: 1px;
&:hover {
cursor: pointer;
stroke-width: 2px;
filter: url(#dropshadow);
}
}