Extraer audio del video:
ffmpeg -i audio.mp4 -map 0:a audio.aac -vn
Combinar audio en video
ffmpeg -i video.mp4 -i audio.aac -c copy -map 0:v:0 -map 1:a:0 videoconaudio.mp4
| import Store from 'test/Store'; // El store re piola que hicimos | |
| describe('Shows modal', () => { | |
| beforeEach(() => { | |
| // inicializamos nuestro store | |
| store = new Store(); | |
| // Disparamos acciones necesarias para poder tener los datos | |
| return store.dispatch(loadPost(POST_ID)).then(() => { | |
| // Limpiamos el log para poder tener asserts más limpitos | |
| store.clearActions(); |
| /* | |
| Importamos el store de verdad, el cual fue modificado para recibir un array | |
| de middlewares que aplica además de los default (thunk en mi caso). Utilicé | |
| la función `compose` de redux para esto, y quedó algo así: | |
| ``` | |
| export default (middlewares = []) => createStore( | |
| reducer, | |
| compose(applyMiddleware(thunk, ...middlewares), | |
| ) | |
| ``` |
| import { Component } from 'react'; | |
| import PropTypes from 'prop-types'; | |
| class KeyEvent extends Component { | |
| listen = (event) => { | |
| if (event.key === this.props.when) { | |
| this.props.do(); | |
| } | |
| } |
Extraer audio del video:
ffmpeg -i audio.mp4 -map 0:a audio.aac -vn
Combinar audio en video
ffmpeg -i video.mp4 -i audio.aac -c copy -map 0:v:0 -map 1:a:0 videoconaudio.mp4
Crear archivo /pull.php
<?php
shell_exec('./pull.sh 2>&1');
echo "Done.";
| export default ` | |
| type Query { | |
| post(id: Int!): Post | |
| posts: [Post] | |
| author(id: Int): Author | |
| } | |
| ` |
| export default ` | |
| type Author { | |
| id: Int! | |
| firstName: String | |
| lastName: String | |
| posts: [Post] | |
| } | |
| type Post { | |
| id: Int! |
| clickAndWait = (cb, ms = 2000) => { | |
| setTimeout(cb, ms) | |
| } | |
| openFirstPhoto = () => { | |
| document.querySelectorAll('._nljxa')[0].childNodes[0].childNodes[0].click() | |
| } | |
| likePhoto = () => { | |
| document.querySelectorAll('.coreSpriteHeartOpen')[0].click() |
URL: https://www.youtube.com/watch?v=NGxVLnJKhP8
La charla explica cómo funciona internamente React con el objetivo de entender cómo y por qué ciertas optimizaciones de performance funcionan.
shouldComponentUpdate puede no funcionar bien sin inmutabilidad, porque necesitás hacer un deep equal lo cual puede ser muy costoso, y un simple === no va a funcionar porque tanto this.state.key y nextProps.key referencian a la misma instancia del objeto. Con datos inmutables, cada uno referenciaría a una nueva instancia por lo cual un === funcionaría.
usar setState() o connect() en los children puede tener un impacto en la performance. En el caso de un List cuyos hijos son varios Item, en lugar de pedir la data de los items en la lista, se puede pasar el id y llamar a mapStateToProps en cada Item para evitar un recálculo en el elemento padre, que obliga a un recálculo en todos los elementos hijos.
| { | |
| "scripts": { | |
| "start": "webpack-dev-server --config webpack.config.dev.js", | |
| "build-prod": "NODE_ENV=production webpack -p --config webpack.config.prod.js" | |
| } | |
| } |