Skip to content

Instantly share code, notes, and snippets.

@yujikiriki
yujikiriki / psauxww
Created April 21, 2015 22:42
jtune-psauxww
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 33792 4412 ? Ss Apr20 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Apr20 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr20 0:11 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Apr20 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Apr20 0:59 [rcu_sched]
root 8 0.0 0.0 0 0 ? S Apr20 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Apr20 0:00 [migration/0]
root 10 0.0 0.0 0 0 ? S Apr20 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S Apr20 0:00 [watchdog/1]
@yujikiriki
yujikiriki / lsproc
Created April 21, 2015 22:43
jtune-lsproc
1
10
1000
1020
1024
1044
1052
1062
107
108
/**
* A monad to abstract dependencies in the code, see https://coderwall.com/p/kh_z5g
*/
object Reader {
/**
* an implicit to convert a function A => B in a Reader[A, B]
*/
implicit def reader[C, R](block: C => R): Reader[C, R] = Reader(block)
// This should work with Scala 2.10.4 & scalaz 7.1, core, effect and concurrent packages
import scalaz.{ concurrent, Free, Functor, Monad, syntax }
import concurrent.Task
import Free.{freeMonad => _, _}
import syntax.monad._
// Describe the set of actions - which are functors
sealed trait RedisF[+A] {
def map[B](fn: A => B): RedisF[B]
@yujikiriki
yujikiriki / sistemasjulian.md
Created June 12, 2015 12:54
modelar sistemas Julián

Don Julián!

Me quedé sorprendido por las respuestas que le dieron a su pregunta de cómo enseñarle a nuevos devs a modelar un sistema.

Me horrorizó ver respuestas que hablaban que DDDesign es demasiado, o que FP y DDDesign no van; o peor aún, que sospechan que ágil y DDDesign no pueden ir juntas.

Hace unos años escribí sobre el concepto de la simpatía semántica, un copy/paste de la Simpatía Mecánica de Thompson. Considero que ese debería ser ppal mensaje que me hubiera gustado que me enseñaran cuando arranqué a trabajar "profesionalmente".

Si ese concepto es claro, no debería importar si ud usa UML o no, si usa cajitas y rayitas para definir mapas semánticos o lo que quiera. Parafraseando a Fowler, lo importante de UML es comunicar. En este caso, comunicar la abstracción del mundo real que luego convertirá en código fuente.

@yujikiriki
yujikiriki / akkavserlang.md
Created June 12, 2015 12:58
akkavserlang

Hola!

Hace más de dos años venimos trabajando en diferentes tipos de proyectos haciendo uso de Akka/JVM/Scala. A la fecha hemos entregado exitosamente 14 proyectos de tamaño medio a grande, pasando por webapps, automatizaciones de procesos de laga duración, sistemas de autenticación y autorización, service registries, aplicaciones core de negocio, entre otros ejemplos.

En la mayoría de ellos hemos tenido que resolver problemas a través de la construcción de patrones para sistemas distribuidos: convergencia de estado a través de CvRDT, quórum a través de RAFT (hecho en casa), jitter y exponential backoff en el consumo de servicios, implementación de sagas para soportar transacciones de larga duración o no tan simples esquemas de recuperación ante catástrofes sobre distintos IaaS.

Lo que quiero tratar de decir con esta introducción es que calcular pi, o cualquier otro problema algorítmico es lo menos común de los problemas en los que hemos elegido Akka para resolverlos. De hecho, en las pruebas que hicimos d

// A safer ADT+shapeless alternative ...
//
object ShapelessEnumDemo extends App {
// ADT as an enumeration. Barely any more boilerplate ...
sealed trait WeekDay
object WeekDay {
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = new WeekDay {}
val values: Set[WeekDay] = Values
}
@yujikiriki
yujikiriki / aurora-scheduler.log
Created September 11, 2015 20:43
aurora-scheduler.log
Sep 11, 2015 3:35:37 PM com.twitter.common.args.apt.Configuration load
INFO: Loading @CmdLine config from: [jar:file:/home/yuji/git/aurora/dist/distributions/aurora-scheduler-0.9.0/lib/client-flagged-0.0.5.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/yuji/git/aurora/dist/distributions/aurora-scheduler-0.9.0/lib/server-set-1.0.74.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/yuji/git/aurora/dist/distributions/aurora-scheduler-0.9.0/lib/application-module-stats-0.0.44.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/yuji/git/aurora/dist/distributions/aurora-scheduler-0.9.0/lib/application-0.0.73.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/yuji/git/aurora/dist/distributions/aurora-scheduler-0.9.0/lib/args-0.2.9.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/yuji/git/aurora/dist/distributions/aurora-scheduler-0.9.0/lib/logging-0.0.61.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt
@yujikiriki
yujikiriki / mesos-master.log
Created September 11, 2015 20:45
mesos-master.log
I0911 15:34:16.061110 30331 main.cpp:229] Build: 2015-09-09 15:22:34 by yuji
I0911 15:34:16.061204 30331 main.cpp:231] Version: 0.24.0
I0911 15:34:16.061213 30331 main.cpp:234] Git tag: 0.24.0
I0911 15:34:16.061219 30331 main.cpp:238] Git SHA: 8b77e68f8be5d0766a4bbfba18b397d619611f95
I0911 15:34:16.061358 30331 main.cpp:252] Using 'HierarchicalDRF' allocator
I0911 15:34:16.061925 30331 leveldb.cpp:176] Opened db in 440485ns
I0911 15:34:16.062157 30331 leveldb.cpp:183] Compacted db in 209913ns
I0911 15:34:16.062211 30331 leveldb.cpp:198] Created db iterator in 35778ns
I0911 15:34:16.062223 30331 leveldb.cpp:204] Seeked to beginning of db in 1872ns
I0911 15:34:16.062230 30331 leveldb.cpp:273] Iterated through 0 keys in the db in 186ns
@yujikiriki
yujikiriki / mesos-slave.log
Created September 11, 2015 20:46
mesos-slave.log
╰─✘ ./build/bin/mesos-slave.sh --master=127.0.0.1:5050
I0911 15:34:18.310139 30379 main.cpp:185] Build: 2015-09-09 15:22:34 by yuji
I0911 15:34:18.310219 30379 main.cpp:187] Version: 0.24.0
I0911 15:34:18.310226 30379 main.cpp:190] Git tag: 0.24.0
I0911 15:34:18.310232 30379 main.cpp:194] Git SHA: 8b77e68f8be5d0766a4bbfba18b397d619611f95
I0911 15:34:18.310508 30379 containerizer.cpp:143] Using isolation: posix/cpu,posix/mem,filesystem/posix
I0911 15:34:18.313657 30379 main.cpp:272] Starting Mesos slave
I0911 15:34:18.314357 30379 slave.cpp:190] Slave started on 1)@127.0.1.1:5051
I0911 15:34:18.314381 30379 slave.cpp:191] Flags at startup: --appc_store_dir="/tmp/mesos/store/appc" --authenticatee="crammd5" --cgroups_cpu_enable_pids_and_tids_count="false" --cgroups_enable_cfs="false" --cgroups_hierarchy="/sys/fs/cgroup" --cgroups_limit_swap="false" --cgroups_root="mesos" --container_disk_watch_interval="15secs" --containerizers="mesos" --default_role="*" --disk_watch_interval="1mins" --docker="docker" --docker_k