These are chat archives for unbalancedparentheses/gut

29th
Oct 2014
Federico Carrone
@unbalancedparentheses
Oct 29 2014 02:59
gato
@jfacorro
mira
padding_size(List) ->
    lists:foldl(fun (X, Length) ->
                        largest(string:len(X), Length)
                end, 0, List).

largest(X, Y) when X < Y ->
    Y;
largest(X, _Y) ->
    X.
print_help(Help, []) ->
    Padding = padding_size(maps:keys(Help)),
    maps:fold(fun (Key, #{desc := Desc}, _) ->
                      PaddedKey = string:left(Key, Padding),
                      ColorPaddedKey = color:blue(PaddedKey),
                      io:format("~s # ~s~n", [ColorPaddedKey, Desc])
              end, 0, Help);
no viste alguna puta funcion que haga eso
de obtener el string mas grande de una lista
o sea la lista mas grande dentro de una lista_
me parecio una pija hacer eso
y estoy medio quemado
seguro hay una forma mas boluda
xD
Juan Facorro
@jfacorro
Oct 29 2014 03:02
/code io:format
que usaste el otro día
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:02
no, pero solo funca
para
numero
ÑP
:P
una_paja
Juan Facorro
@jfacorro
Oct 29 2014 03:02
no no
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:03
funca para todo_
?
lei que funca solo para numero
Juan Facorro
@jfacorro
Oct 29 2014 03:03
podes poner el ancho de una linea
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:03
no me joda
ajajajajajajajajaj
Juan Facorro
@jfacorro
Oct 29 2014 03:03
banca que te busco el texto
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:03
tas seguro? mira que lei recien en stackoverflow
lo probaste?
yo no lo probe porque lei
que no funcaba
igual pera
eso solo me sirve para el pading
en vez de hacer string right...
pero para buscar el tamanio mas grande de una lista de strings
si o si tengo que recorrer la lista
son dos cosas diferentes
Juan Facorro
@jfacorro
Oct 29 2014 03:04
The general format of a control sequence is ~F.P.PadModC. The character C determines the type of control sequence to be used, F and P are optional numeric arguments. If F, P, or Pad is *, the next argument in Data is used as the numeric value of F or P.

F is the field width of the printed argument. A negative value means that the argument will be left justified within the field, otherwise it will be right justified. If no field width is specified, the required print width will be used. If the field width specified is too small, then the whole field will be filled with * characters.

P is the precision of the printed argument. A default value is used if no precision is specified. The interpretation of precision depends on the control sequences. Unless otherwise specified, the argument within is used to determine print width.

Pad is the padding character. This is the character used to pad the printed representation of the argument so that it conforms to the specified field width and precision. Only one padding character can be specified and, whenever applicable, it is used for both the field width and precision. The default padding character is ' ' (space).

Mod is the control sequence modifier. It is either a single character (currently only t, for Unicode translation, and l, for stopping p and P from detecting printable characters, are supported) that changes the interpretation of Data.

Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:04
si lo lei
pero en stack overflow
lei que solo funca para numeros
bueno dps lo pruebo
pero cuchame
igual eso SOLO
me resuelve lo del string:right
que es una tonteria
lo otro tengo que hacerlo igual
lo que te preguntab
a
es esta parte
padding_size(List) ->
    lists:foldl(fun (X, Length) ->
                        largest(string:len(X), Length)
                end, 0, List).

largest(X, Y) when X < Y ->
    Y;
largest(X, _Y) ->
    X.
para obtener el padding size
Juan Facorro
@jfacorro
Oct 29 2014 03:05
erlang1> io:format("~10.. s~n", ["pepe"]).
      pepe
ok
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:05
ah ok, bueno eso me resuelve el string right
es igual, de hecho no se cual me gusta mas
bah si es mejor el otro
si boloh pero eso me importa poco
gracias igual
ahora lo cambio
pero me preocupa lo otro
que me huele mal
ah de hecho
no puedo hacer eso xD
no me sirve
porque yo no tengo 10 como numero
tengo algo variable
:P
Juan Facorro
@jfacorro
Oct 29 2014 03:06
lists:max
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:06
no
lists max hace otra cosa
lists max de ["hola", "v"]
te devuelve v
esta bien que haga eso
es asi en todos los lenguajes
devuelve el string mas grande
y el grande no es por tamanio
Juan Facorro
@jfacorro
Oct 29 2014 03:07
hace comparacion alfanumerica
si
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:07
claro, por eso hice lo otro
y por eso no me sirve el formatting
lamentablemente
no se si me explico
toy medio quemado
pero no es 10 mi valor
es variable
para que quede bien impreso
si tengo un numero harcodeado
queda feo
tiene que ser 1 mas que el mas grande
Juan Facorro
@jfacorro
Oct 29 2014 03:08
lists:max(lists:map(fun length/1, List))
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:08
uhm pera que toy dormido ja
ah
buen punto
eso era lo que queria xD
gracias jaja
Juan Facorro
@jfacorro
Oct 29 2014 03:08
:)
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:09
bueno
ahora comiteo
y te hago una ultima pregunta
sobre disenio
sobre que te gusta mas
para el help
Juan Facorro
@jfacorro
Oct 29 2014 03:09
dale
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:09
dame 5
Juan Facorro
@jfacorro
Oct 29 2014 03:09
oka
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:12
aca mejor
mira
y este
@jfacorro
fijate la estructura del help
Juan Facorro
@jfacorro
Oct 29 2014 03:13
no me lo abre :(
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:13
que te tira_
?
Juan Facorro
@jfacorro
Oct 29 2014 03:13
no no
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:13
que no te abre_
?
Juan Facorro
@jfacorro
Oct 29 2014 03:13
me refiero a que esperaba que gitter hiciera alguna magia
con los links que pagaste
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:14
ah
si la otra vez hizo
deben haberlo sacado
Juan Facorro
@jfacorro
Oct 29 2014 03:14
ahi vi el help
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:14
ni idea
cucha
fijate
es un mapa
la otra...
es que cada funcion publica
tenga un
new_help
Juan Facorro
@jfacorro
Oct 29 2014 03:14
hace un llamado dinamico
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:14
y asi
y yo busque todas las funciones + _help
para obtener la help
me entendes_
?
Juan Facorro
@jfacorro
Oct 29 2014 03:14
sip
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:14
que preferis
la 2 es tipo
un DSL
en alguna medida... jaja
pero feo
en thor hacen eso
mira
Juan Facorro
@jfacorro
Oct 29 2014 03:15
lo que no se es como lo buscaria
s
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:15
Juan Facorro
@jfacorro
Oct 29 2014 03:15
todos los modulos con el prefijo gut_
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:15
class MyCLI < Thor
  desc "hello NAME", "say hello to NAME"
  def hello(name)
    puts "Hello #{name}"
  end
end
Juan Facorro
@jfacorro
Oct 29 2014 03:15
?
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:15
no, pera
primero decime
que te gusta
yo dps te digo como lo implemento
no se si se entiende
todas las funciones publicas que son de help
del modulo de commandos
Juan Facorro
@jfacorro
Oct 29 2014 03:15
el mapa donde estaria
?
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:15
no, no habria mapa
tenes dos formas
la primera es la actual
en la que
vos definis todas las funciones publicas
y una funcion help
que devuelve un mapa
con cada comando
y cada comando tiene un mapa
que tiene una descripcion corta y una larga
esa es la forma actual
la funcionalidad de imprimir, llamar a las funciones
y demas
Juan Facorro
@jfacorro
Oct 29 2014 03:17
si, comprendo
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:17
esta en gut_thor que luego va a estar en un repo aparte
llamado thorerl
vos lo unico que haces
fijate en gut.erl
es llamar a gut_thor:process
perdon
parse
bueno la segunda forma
es en vez de tener un mapa
Juan Facorro
@jfacorro
Oct 29 2014 03:17
prefiero la del mapa
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:17
que explica la desc corta y larga
ok
la otra garpa mas
en lenguajes como ruby
Juan Facorro
@jfacorro
Oct 29 2014 03:17
claro
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:17
en erlang
es medio bizarro
Juan Facorro
@jfacorro
Oct 29 2014 03:17
exacto
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:17
bueno, creo que quedo bien
no se si te fijaste
pero tira un gut help
anda mucho mas rapido que getopts
Juan Facorro
@jfacorro
Oct 29 2014 03:18
si si
lo vi
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:18
igual tengo que agregar el parsing
de --options
es solo agregar un parseo a los argumentos
antes de hacer todo lo que hago actualmente
honestamente prefiero esto
me parece mucho mas simple
Juan Facorro
@jfacorro
Oct 29 2014 03:18
por ahora no había options en gut no?
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:18
nop
pero digo para
thorerl
yo no soy muy amigo de las opciones :P
en general no me gustan lo scomandos con opciones, pero a veces si o si lo necesitas
bueno
te asigno una tarea
unbalancedparentheses/gut#53
Juan Facorro
@jfacorro
Oct 29 2014 03:19
me sigue sin gustar el punto ese en update.gens
pero bueno
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:19
ok
preferis un guion?
a ver como es lein
voy a ver un par de comandos
Juan Facorro
@jfacorro
Oct 29 2014 03:19
lein usa keywords
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:19
mix usa .
y si le metemos un espacio?
no me gustan los signos
Juan Facorro
@jfacorro
Oct 29 2014 03:20
aaah
mejor todavia
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:20
ahi esta con espacio
ahi lo pruebo
Juan Facorro
@jfacorro
Oct 29 2014 03:20
gut update gens
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:20
y hace gut update
Juan Facorro
@jfacorro
Oct 29 2014 03:21
gut update gens no me muestra nada
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:21
probalo
banca
Juan Facorro
@jfacorro
Oct 29 2014 03:21
no se si funciono o no
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:21
ah
si hay que poner
algo que loguee
me falta esa issue mira
ahora antes de dormir la hago
usefull logging
mi idea es sacar la version 1.0
para el otro viernes
con templates
y toda la bola
hoy le dedique bastante la verdad
Juan Facorro
@jfacorro
Oct 29 2014 03:22
la verdad que si
me gusta el gut update
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:22
a mi tambien jaja
tengo que agregarle algunas tonteras
que verifique
de donde lo baja
y demas
tipo con un sha1
algunas cosas asi
igual...
un brew update
no verifica nada ponele
salvo aptitude update
el resto no verifica nada casi
la unica cosa GRANDE
que falta
es 1) templates
Juan Facorro
@jfacorro
Oct 29 2014 03:23
es lo de los template
s
si
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:23
2) compilar generators
es MUY molesto si no para armar uno nuevo
tipo andar pusheando y luego haciendo new
para probar que anda viste
tipo deberia haber un compile
que te lo genere inline
o que te genere una nueva carpea
eso es un comando re gil
porque ya usa lo que tenemos
de hecho ahora veo de agregarlo
Juan Facorro
@jfacorro
Oct 29 2014 03:24
no te vas a ir a dormir nunca
asi
Federico Carrone
@unbalancedparentheses
Oct 29 2014 03:25
pera que me marie
que me falta agregar jaja
templates ni en pedo
es algo mas lio
ahhh ya se
y el 3) post install hook
perdon
post new hook
que un generator dps de un new
pueda ejecutar una serie de comandos
decime
que falta loguear
unbalancedparentheses/gut#35
no se si lo pensaste
pero es completamente independiente
de erlang
gutenberg :/
me voy a armar un generator de python despues ja
aunque no tiene tanto sentido en lenguajes de scripting
Juan Facorro
@jfacorro
Oct 29 2014 03:42
si, es language agnostic
ponelo en el README
queda re canchero
:P
Federico Carrone
@unbalancedparentheses
Oct 29 2014 04:41
ja
me voy a dormir
al final vi una serie
Juan Facorro
@jfacorro
Oct 29 2014 04:59
jajaj
This message was deleted
Federico Carrone
@unbalancedparentheses
Oct 29 2014 14:37
@jfacorro hola
che
cual es el repo
de github
tambien quiero poner que use eso
ese?
ese es el de la library
Federico Carrone
@unbalancedparentheses
Oct 29 2014 14:52
@jfacorro te falto
borrar
la config
del makefile
SHELL_OPTS = -name ${PROJECT}@hostname -config rel/sys.config
Juan Facorro
@jfacorro
Oct 29 2014 14:56
lo vi
lo acabo de corregir
Federico Carrone
@unbalancedparentheses
Oct 29 2014 14:56
de hecho
sacale tmb el name
no tiene sentido
borra el shell opts
y el
ct
ajajja
si no yo dps lo hago
disculpa, estas muy ocupado
con tus proyectos open source
Juan Facorro
@jfacorro
Oct 29 2014 15:02
done
:boom:
Federico Carrone
@unbalancedparentheses
Oct 29 2014 15:02
ahi lo veo
Juan Facorro
@jfacorro
Oct 29 2014 15:02
no confias en mi? :P
Juan Facorro
@jfacorro
Oct 29 2014 15:17
thorerl es solo el modulo ese? :o
Federico Carrone
@unbalancedparentheses
Oct 29 2014 15:20
sep
por ahora si
pero esta bueno
viste getopts igual?
no es mucho mas eh
el tema de parsing
es lo que mas es