Skip to content

Instantly share code, notes, and snippets.

@tristobal
tristobal / rename_imgs.py
Last active January 4, 2019 14:10
Script para renombrar imágenes a partir de la fecha en la que fueron tomadas.
from itertools import chain
import datetime
import exifread
import os
import shutil
TAG_DATE_TIME_ORIGINAL = "EXIF DateTimeOriginal"
IMAGES_FIRST_PATH_ORIGIN = "/home/user/Pictures/Photos/First"
IMAGES_SECOND_PATH_ORIGIN = "/home/user/Pictures/Photos/Second"
@tristobal
tristobal / Concurrence.java
Created November 28, 2018 18:53
Ejemplo de multiples llamadas asíncronas
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import static java.util.stream.Collectors.toList;
public class Concurrence {
@tristobal
tristobal / SSLValidationRestTemplate.java
Created August 18, 2017 12:50
Small hack to avoid SSL validation in Spring RestTemplate
/**
* https://pragmaticintegrator.wordpress.com/2017/08/13/small-hack-to-avoid-ssl-validation-in-spring-resttemplate/
*/
@Autowired
private RestTemplate restTemplate;
@Bean
public RestTemplate restTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
@tristobal
tristobal / TestSendFileToSFTP.java
Created June 30, 2017 20:54
Uploading File To SFTP
/**
* <dependency>
* <groupId>com.jcraft</groupId>
* <artifactId>jsch</artifactId>
* <version>0.1.54</version>
* </dependency>
*/
import com.jcraft.jsch.*;
import java.io.*;
import java.util.Arrays;
@tristobal
tristobal / generateRandomObjects.java
Created May 22, 2017 16:55
Método para generar un objeto aleatorio de una clase X
public static Object generateRandomObjects(Class clazz) throws InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException, ClassNotFoundException {
Object obj = clazz.newInstance();
for (Method method: clazz.getMethods()) {
if (method.getName().startsWith("set")) {
for (Type subType: method.getGenericParameterTypes()) {
Class parameterClass = Class.forName(subType.getTypeName());
if (parameterClass.isAssignableFrom(String.class)) {
method.setAccessible(true);
method.invoke(obj, getRandomValues());
@tristobal
tristobal / RenameImages
Created March 17, 2017 18:15
Código Java que renombra imágenes a la fecha en la cual fueron tomadas
import com.drew.imaging.ImageMetadataReader;
import com.drew.imaging.ImageProcessingException;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.io.File;
import java.io.IOException;
import java.time.Duration;
import java.util.*;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.*;
public class Winner {
private int year;
private String nationality;
private String name;
private String team;
@tristobal
tristobal / unir-videos-gopro.md
Created March 29, 2016 15:26
Unir videos GoPro con ffmpeg por línea de comandos
  1. Crear un archivo de texto con el listado de los videos. Ej:

lista.txt

file '/home/user/Videos/video1.MP4'
file '/home/user/Videos/video2.MP4'
  1. Ejecutar lo siguiente:
@tristobal
tristobal / proxy.js
Created September 25, 2015 18:29
Proxy para desarrollos Front
//Librería para levantar automáticamente la página en el navegador por defecto (npm install open)
var open = require('open');
//Parafernalia para agregar color al log (npm install colors)
var colors = require('colors');
console.log(info.author.underline.blue);
console.log(info.name.bold.yellow +'-'+ info.version.bold.yellow);
var options = {
'weblogic': 'http://152.139.147.197:7053',
'max': 'http://152.139.28.115:8080',
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&libraries=places&language=en-US"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-resource.min.js"></script>
<script>
'use strict';
angular.module('Otd', ['OtdDirectives']);