« first day (2016 days earlier)      last day (42 days later) » 

12:11 AM
Cuando la extencion de C es mayuscula entonces el compilador me compila C++, pero cuando es minuscula Compila en c @Trauma ¿?
Tampoco debo poner funciones dentro de estructuras.
Lo que me parece mas interesante es que yo lo compilé y no me salio aviso ni alerta ni error.
 
@abulafia Lo mismo iba a comentar, me dio la impresión de que es un bug
Suelo reportar como "no es una respuesta", pero como de baja calidad, casi nunca
 
 
6 hours later…
6:21 AM
@DanielBriceño usaste el flag -Wall al compilar?
Buenos días.
Calor para hoy y frío para mañana. Clima loco
 
@gbianchi ¿quieres decir que ya reporté esa respuesta? No. No reporté nada desde hace al menos una semana. O se trata de un bug, o alguien ha tomado control de mi cuenta (pero solo lo habría usado para hacer reportes por baja calidad, asi que no creo que sea eso)
otro misterio... me ha aparecido un +2 en la repu ¿alguna idea de qué puede causarlo?
 
A las güenas :-)
Asco de Viernes :-(
 
6:36 AM
@abulafia suma de 2 puntos por publicaciones eliminadas por el autor donde votaste negativo?
O tal vez usuario eliminado y dicho usuario te habria votado negativo en alguna pregunta?
 
@MauricioContreras Puede ser. Aunque no suelo votar negativo sí lo he hecho bastantes veces como para que eso pueda ocurrir
Lo segundo me parece más plausible
 
@DanielBriceño Ni código en los .h
 
Pero si puedo definir structs en los .h?
Ya me perdí. XD
 
6:54 AM
@MauricioContreras Si, para eso son los .h, clases, estructuras, typedef, #define globales, etc.
 
Vale, es como me lo imaginé. Estoy bastante oxidado en C/C++. Como que tomaré un cursillo online a ver si me engraso de nuevo. XD
I wanna be like @Trauma. XD
 
@MauricioContreras ¿ Te sientes atraido por el-lado-oscuro ?
Nunca menosprecies el lado oscuro xD
Siento llevarle la contraria a @CandidMoe pero, en un .h, puedes poner lo que quieras. Desde el punto de vista del lenguaje, no hay distinción. Eso si, por convención no se suele poner código ahí ... pero nada te impide hacerlo.
 
@Trauma hablamos de C/C++, antes de que existieran los Jedi. El Lado Oscuro surgió con C#, como forma natural de equilibrar La Fuerza.
 
XDDDDD
 
@Trauma Lo tengo claro. Recuerda que empece a programa en C cuando tú todavía estabas en el colegio.
 
7:00 AM
Vale. Contaba con ello ;-)
@CandidMoe Posiblemente antes xDD
 
@Trauma Hasta conozco personalmente a Brian Kernighan.
 
@MauricioContreras Tengo pelo todavía ...
 
Ese es @Trauma XD
 
@CandidMoe ¿¿ Lo conoces PERSONALMENTE ??
😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱
 
7:03 AM
Su cara cuando le dijiste que era un chavalin cuando tu picabas código.
 
@MauricioContreras No no ... yo uso gafas O-O
 
@Trauma La costumbre antigua de quitárselas para la foto.
 
@MauricioContreras XDDDD
 
@Trauma Si, personalmente. Anduvo por Chile dando unas conferencias en la U.
Lo ayude con algunos trámites de viaje.
 
7:05 AM
😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱
😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱
😱😱😱😱😱😱😱😱😱😱😱😱😱😱
 
El único Brian que me suena es Brian May. :(
 
@MauricioContreras ¡¡ SACRILEGIO !!
 
@MauricioContreras .. ¿Es un astrofisico, cierto? Creo que también toca guitarra.
 
@MauricioContreras Brian es la K de awk
 
7:06 AM
Como Feyman, que tocaba el bongo. Otro físico.
 
Cuidado con Feynman que era capaz de tocar un polirritmo 7/11 con las manos. Respect
 
Quien no conozca a Brian Kernighan en este mundillo de la programación es porque simplemente no tiene lo que se requiere. XD
 
Perdón, era 7/6 o 12/13
más difícil aún
 
@abulafia También era pintor aficionado. Hizo una exposición.
 
Esa faceta la desconocía, o la olvidé. La menciona en sus libros autobiográficos?
 
7:12 AM
@abulafia De su biografía Surely You're Joking, Mr. Feynman!
 
Entonces lo sabía y lo olvidé, porque esa la leí un par de veces
en realidad, sólo recuerdo lo del bongo y lo de lockpicking
 
Si lees entrelíneas, verás que también era cliente de prostibulos.
 
Sí, eso también lo recuerdo, no estaba tan escondido. Solo disfrazado como "clubs de striptease"
 
También iba a clubes de striptease, pero allí sólo preparaba clases.
 
7:27 AM
jelou
 
Hey, buenos días
¿Sabéis como hacer un Delete en Entity Framework en plan en cascada? Me está saltando una excepción causada por intentar borrar un registro de Foreign Key
 
8:23 AM
A las güenas, otra vez :-)
Ale, ya estoy sin equipo. Un ratito de relax :-)
Que mal se ven las fuentes en el monitor ... creo que es tema del alisado ...
 
o de la presbicia
 
pufff ... y encima no me coge la red por ethernet ... pues vamos bien
¿ Como se arreglaba esto ? Si me ha pasado ya varias veces
 
9:17 AM
¿Alguien que haya hecho alguna vez una API REST con ASP? Estoy siguiendo este tutorial y debe de faltar algún paquete o algo (por lo que he visto en SO), Cuando llego a la parte de HttpContext.Current.User = tokenhandler... me dice que Httpcontext no contiene una definición para 'Current'.
0
Q: HttpContext no contiene una definición para Current

AritzbnEstoy siguiendo este tutorial que indica como levantar una API Rest sencilla con ASP.NET, el problema es que cuando llego a implementar la clase TokenValidationHandler, me dice que HttpContext no contiene una definición para Current. // Extract and assign Current Principal and user Thread.Current...

 
10:03 AM
@abulafia. Un bonito problema: dada una lista de largo arbitrario de enteros como [3, 4, -1, 1], encontrar el primer entero positivo (>0) que falta en la lista. En este caso, sería el número 2.
 
@CandidMoe el probema no parece complejo, supongo que la gracia es hacerlo o bien con el código más eficiente posible, o bien con el más corto, o algo así, no?
 
Interpretación libre. En mi caso, busque la forma más compacta.
@abulafia Acabo de ver tu respuesta al problema del diccionario y quede PLOP!!!
 
jaja
 
2
Q: Dividir valores de un diccionario entre constante

RafaelTengo un diccionario tal como este: {'college': 13656, 'high school': 4906, 'less than high school': 2904, 'more than high school but not college': 6999} Me gustaría saber como se podría dividir los valores del diccionario por una constante (en mi caso particular, es por la longitud de un dat...

@abulafia Lo lei pensando ¿quién será este nuevo amiguito?
Pero el for es la forma de iterar más ineficiente en Python
 
no, por qué? a ver si te crees que el for que hay en la comprensión no itera también...
Vamos a cronometrar!
 
10:17 AM
@abulafia Cómo os divertís vosotros dos... xD
 
@PabloLozano imaginate cuando @Trauma se integre al grupo sibarita ...
 
def divide(d):
  for k in d: d[k]/=28465

def divide2(d):
  return {k: v/28465 for k, v in d.items()}
%timeit divide(d)   --> 581 ns
%timeit divide2(d) --> 775 ns
 
@CandidMoe no no ... ni loco :-/
Vaya mañanita que me estoy pegando :-)
 
En Javascript el for clásico es lo más rápido
17
A: for vs forEach vs map

gugadev ¿Cuáles son las ventajas/inconvenientes de cada método? Es una pregunta bastante genérica. El clásico for y el más moderno forEach, son básicamente lo mismo. De hecho, forEach nace como una alternativa más moderna al clásico for (como en la mayoría de lenguajes). El uso de for es más razonab...

 
10:36 AM
Sobre ese tema ya hablamos una vez @abulafia y yo ... por norma, todo lo que implique llamadas a funciones es mas lento.
Operadores e instrucciones básicas del lenguaje, suelen ser lo mas rápido en lenguajes interpretados.
 
sí, la única ventaja del forEach en Java es que puedes paralelizarlo (en lugar de llamar a stream(), llamas a parallelStream() y te crea un stream donde las operaciones se harán multihilo)
 
Bueno, Java es, mas o menos, compilado. Es distinto
 
y admite multihilo
 
También :-)
 
Acabo de descubrir la etiqueta datalist
toda la vida quejándome de que no había combobox en HTML nativo y ahí está
 
10:40 AM
No la conozco
 
Oye, es práctica :-)
 
parece que es la gran desconocida, con esto usar los mil plugins para hacer selects con search se simplifican
 
A mi si me sacas de Webix ... me pierdo
 
y lleva ya bastantes años, si IE10 la aceptaba
 
10:42 AM
Y ya hace mucho que no lo toco, así que estoy totalmente perdido xD
 
mira la etiqueta select2 en SOes :P
 
ojo
buenos dias casi tardes ya
 
tardes ya, es PM
 
11:34 AM
@abulafia Efectivamente es un bug: meta.stackexchange.com/questions/364136/…
 
 
1 hour later…
12:56 PM
@padaleiana Aha. Gracias!
@CandidMoe El bytecode del for "normal" es además más corto que el de la comprensión de listas
dis("for k in d: d[k]/=28465")

  1           0 SETUP_LOOP              28 (to 30)
              2 LOAD_NAME                0 (d)
              4 GET_ITER
        >>    6 FOR_ITER                20 (to 28)
              8 STORE_NAME               1 (k)
             10 LOAD_NAME                0 (d)
             12 LOAD_NAME                1 (k)
             14 DUP_TOP_TWO
             16 BINARY_SUBSCR
             18 LOAD_CONST               0 (28465)
             20 INPLACE_TRUE_DIVIDE
             22 ROT_THREE
Frente a
dis("{k: v/28465 for k, v in d.items()}")

  1           0 LOAD_CONST               0 (<code object <dictcomp> at 0x7f0b5f672f60, file "<dis>", line 1>)
              2 LOAD_CONST               1 ('<dictcomp>')
              4 MAKE_FUNCTION            0
              6 LOAD_NAME                0 (d)
              8 LOAD_METHOD              1 (items)
             10 CALL_METHOD              0
             12 GET_ITER
             14 CALL_FUNCTION            1
             16 RETURN_VALUE

Disassembly of <code object <dictcomp> at 0x7f0b5f672f60, file "<dis>", line 1>:
 
1:58 PM
No dejas de sorprender ...
 
Buenas. @MauricioContreras Si, use la opcion -Wall.
 
2:34 PM
if len(data_numeros):
    if len(data_emergencia):
        telnet = telnetlib.Telnet()
        try:
            with SSHTunnelForwarder(
                ('123.456.789', 22),
                ssh_username="mtc",
                ssh_password="mtc",
                remote_bind_address=("111.111.111", 23),
                local_bind_address=('0.0.0.0', 1557)
            ) as tunnel:
                telnet.open('127.0.0.1', 1557, 2)
                telnet.write('prueba\r\n')
                telnet.read_until("\n>")
Buenas, tengo este código estoy tratando de conectarme vía tunel desde una maquina por SSH y luego un telnet a una central pero al momento de ejecutar el script me arroja el mensaje print "%s failed: %s" el que esta en except Exception, e:
 
2:46 PM
o sea sale por excepcion.. y si mejor imprimis la excepcion_
regla para todos, siempre.. si el programa puede tirar une excepcion, que la tire!!!! no la agarren y pongan error.. eso no le sirve a nadie.. si saben como arreglarla, ahi si agarrenla y hagan algo....
 
@JuanPerez Eso es python 2.7x?
 
@PatricioMoracho un print fallo, en cualquier lenguaje, es un NO GIGANTE
 
@PatricioMoracho Si
 
No conozco mucho 2.7, pero en realidad no estas imprimiendo más que ese literal, los %s no los estas interpolando con ningun dato
 
@PatricioMoracho El problema es que no entra en el ciclo del try siempre cae en el exception
Hay conexión entre las 2 ip y los puertos están bien
 
2:58 PM
Algo más bien así print "Error: %s" % e, lo primero es saber el error
 
:57912126 Debería salirte sólo la cadena, como aqui
>>> try:
...     a = 1 / 0
... except Exception as e:
...    print "%s failed: %s"
...
%s failed: %s
@JuanPerez La dirección '123.456.789' no es una IP válida.
La dirección "111.111.111", tampoco
 
@CandidMoe Si, son ip ficticia que coloque pero las ip tienen conexión entre si
@PatricioMoracho También sucede que cuando ejecuto el script manualmente si funciona todo bien, pero cuando lo coloco en un cron job tira el error del print
 
3:15 PM
Resuelve en primer lugar el problema del print para al menos saber cual es la excepción que está ocurriendo
 
3:34 PM
@gbianchi ya lo logré con firebase la de documentación que me tuve que tragar =c
 
Bueno, ya tenemos aquí el equipo nuevo. Al final, un HP i7
Con Güindo$ instalado
... Manda cajones ...
Bueno, vamos a ir formateando y esas cosillas :-)
Ah no, primero la imagen de Ubuntu
 
puffff ... 1 solo HDMI ... como se nota que el que los compra no trabaja con ellos luego :-(
Entrada ... 19.5V, 10.3A ... ya consume el bischo
Mi i5 personal, 4.7A ... algo mas del doble
Bueno, hora del café. Hoy con donut :-)
 
3:59 PM
Jolines @Trauma, no te hacía un usuario de Linux, la verdad
 
4:26 PM
@Emily no se de que hablas...
 
@MauricioContreras hola
@MauricioContreras una consulta porfavor
mira tengo esta duda
 
@x-rw Hola
 
const evaluate =(myFile)=>{
...
...

myFile.name = name
return myFile
}
la funcion de arriba funciona me devuelve un objeto con los cambios

const evaluate =(myFile)=>{
...
...

return { ...myFile, name }
}
pero este codigo cuando uso spread no me devueve los cambios
 
No te devuelve los cambios en dónde?
Recuerda que en JS los objetos y los Arrays pasan por referencia, no sé a dónde quieres reflejar los cambios.
 
@MauricioContreras mira myFile es mi archivo
a ese objeto le quiero cambiar el nombre
pero no lo cambia
mientras si uso asi
myFile.name = name
return myFile
si lo cambia
 
4:37 PM
@Benito-B Me ofendes ... como lo que me gusta hacerlo todo 100% a mi gusto ...
 
@x-rw Claro, es que esa forma en que pretendes usar el operador spread no hace lo que tu crees.
Además está el tema de que el objeto myFile es una referencia y no un valor.
 
@MauricioContreras entonces no deberia usar spread?
 
@MauricioContreras Pues parece que debería funcionar: tio.run/##VcxNCsIwEIbhfU7x7ZpCzQGUuvQeQztoyjQj@SlI6dlj3Ah91w/…
 
@Trauma es que eso depende de dónde quiere el cambio:
15 mins ago, by Mauricio Contreras
No te devuelve los cambios en dónde?
 
Pues en el objeto que retorna, ¿ no ?
return { }
 
4:48 PM
que hacen ?¿
 
@Trauma pues en ese caso, si, pero al parecer él quiere el cambio en el objeto que recibe como argumento.
Es lo que creo
 
@MauricioContreras aaaaaaahhhhhhhhhhh ... vaaaaaleeeeeeee
Entonces no xD
 
@Trauma pero si estoy haciendo lo mismo
@Trauma no estoy entendiendo
 
En uno devuelves el argumento
En otro creas un objeto nuevo
En el primero, si modificas el argumento
en el segundo, no
 
en este no modifico? const evaluate =(myFile)=>{
...
...

return { ...myFile, name }
}
 
4:51 PM
nope
creas uno nuevo
que importa el contenido del argumento (lo copia)
 
@Trauma creo uno nuevo copiando myFile y ademas le pongo name
 
no copias myFile. Lo importas
copias el contenido de myFile
 
@Trauma pero tu ejemplo funciona
 
Mi ejemplo no modifica myFile
... y ... USB creado !!
 
@x-rw estudia este código:
 
4:54 PM
Llegó el momento de la verdad: formatear un equipo totalmente nuevo :-D
 
const myFile = {
  name: "@Trauma"
}

const evaluateSpread = valueByRef => {
  let name = "@x-rw";
  return { ...valueByRef, name}
}

const evaluate = valueByRef => {
  valueByRef.name = "@Pikoh"
}

let newData = evaluateSpread(myFile);
console.log(newData);
console.log(myFile);
evaluate(myFile);
console.log(myFile);
 
@MauricioContreras ¿¿ Porqué me usas como dato de prueba ??
Yo eso no lo consiento en la primera cita ... ¿ por quién me tomas ?
 
@Trauma Fatal Error System: Unrecoverable error reading/writing IO, BIOS corrupted, system bricked
 
puffff ... sin problema. Es equipo de empresa xDD
Dije explicitamente que no necesitaba Windows, que se usaría Linux nativo
Se lo han pasado por el forro
pues ... es lo que hay :-)
 
@MauricioContreras No pasa nada. Borras el equipo e instancias otro.
 
4:57 PM
¡¡ A formatear !!
 
@abulafia jo, claro. Pronto será: lo tiras al contenedor verde e imprimes otro.
@Trauma son nombres cortos y rápidos, uso gbianchi, pikoh y trauma por eso mismo. abulafia ya es largo, el mío ni se diga, y el de x-rw me da calambres en los dedos al tratar de escribirlo, es lo que hay.
 
@MauricioContreras mira funciona
const myFile = {
name: "@Trauma"
}

const evaluateSpread = valueByRef => {
let name = "@x-rw";
return { ...valueByRef, name}
}

const evaluate = valueByRef => {
valueByRef.name = "@Pikoh"
const name='Mauricio'
return {...valueByRef, name}
}

let newData = evaluateSpread(myFile);
console.log(newData);
console.log(myFile);
const a= evaluate(myFile)
console.log(a);
 
Entonces ya tienes claro lo de value by ref, cierto @x-rw?
 
en realidad no estoy trabajando en objeto json
estoy trabajando con objetos File
 
@x-rw no se dice objeto json, o es un objeto o es un json, pero no ambas cosas.
@x-rw vale, pues es lo mismo, es un objeto (no un json), por lo cual, se pasa por referencia.
 
5:07 PM
@MauricioContreras mira la perdida de informacion cuando uso spread
el File es el file que mando a cambiar
pero obtengo solo 4 atributos
 
@x-rw Claro, porque esto: {...obj, prop} devuelve un Objeto con prototipo Objeto, y por lo tanto pierdes los atributos o propiedades del prototipo File.
Para devolver una deepcopy del Objeto File, el operador spread se queda corto.
Una posible solución, si lo que vas a hacer es cambiar sólo el nombre del archivo, es la siguiente:
const newFile = fileByRef => {
  let name = 'trauma';
  return newFile([fileByRef], name);
}
 
¡¡ Otia !! ¡¡ 32Gb de RAM !!
free
              total       usado       libre  compartido búfer/caché  disponible
Memoria:    32647860     1803184    25412160       69024     5432516    30312832
Swap:       2097148           0     2097148
 
Eso te devuelve una copia del objeto file recibido pero con el nuevo nombre. No entiendo el porqué quieres eso, pero sería una forma de hacerlo @x-rw
@Trauma Lucky you!
 
@MauricioContreras Pues si, no me quejo :-D
A ver la gráfica ...
 
@Trauma seguro dirás: asco de gráfica
 
5:18 PM
lspci
00:00.0 Host bridge: Intel Corporation 10th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 02)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 05)
00:12.0 Signal processing controller: Intel Corporation Comet Lake PCH Thermal Controller
00:14.0 USB controller: Intel Corporation Comet Lake USB 3.1 xHCI Host Controller
00:14.2 RAM memory: Intel Corporation Comet Lake PCH Shared SRAM
Perfecto. Integrada Intel. Sin problemas en Linux :-D
 
@x-rw falta añadir el tipo de file XD, seria así:
const newFile = fileByRef => {
  let name = 'trauma';
  return newFile([fileByRef], name, {type: fileByRef.type});
}
 
@Trauma Y Linux lo puedes instalar y re-instalar cuantas veces quieras.
 
@CandidMoe mmmm, me basta sólo con una. XD
 
@CandidMoe jejeje ... Ya trae Ubuntu 20.04. Antes hablé antes de tiempo
 
Hace poco reinstale Linux como 3 o 4 veces en dos días en el mismo laptop. Estaba tratando de instalar una app. medio complicada, y me salia más barato reinstalar todo que tratar de reinstalar solo la app.
 
5:22 PM
@CandidMoe Carajo ! :-O
Creo que tiene algunas mierdas de empresa instaladas ... pero bueno, me apañaré
 
@Trauma acaso no lo formateaste?
 
Lo que si voy es a reparticionarlo, solo tiene 1 partición, con el home y / en la misma
@MauricioContreras Nope. Lo encendí y ... ¡ Sorpresa !
Trae GNome, y yo soy de XFCE
pero eso es fácil de arreglar
pero reparticionarlo ... eso es obligatorio
 
@Trauma no dijiste que traía Window$?
 
@MauricioContreras Lo dije antes de encenderlo. Traia la pegatina de mi empresa con el nombre de usuario y el pass ... y me confundió
No tiene mala pinta. Es una CPU de portatil, 6 núcleos físicos y 12 hilos
A ver como configuro yo ahora el gkrellm para mostrar todo eso jejeje
ah, y 1Tb NVME
ah, no tiene puerto ethernet :-O
El lunes a primera hora les pido permiso para comprar uno
 
@Trauma O usa un dongle USB-Ethernet
 
5:33 PM
@CandidMoe Si, eso es lo que digo ... que dejé la frase a medias, sorry
Estoy usando el mio ahora mismo
pero este es mio, no para disfrute de mi empresa
 
Buenas, quizás esta sea de las preguntas mas tontas que se han hecho por aquí pero no sé por que no me deja terminar mi registro!
Me sale arriba un cartel que pone "Complete sign up". Relleno los datos, le doy y se queda igual. Entonces no puedo votar en el foro!
 
@Rafael como? que registro?
que foro?
 
stackoverflow!
 
¡¡¡ AAAAAggggggggghhhhhhhhhhh !!!
¡¡¡ Trae instalado JAVA !!!
 
Trauma el q tengo yo, q no entiendo nada
 
5:37 PM
@Rafael si no estuvieras logueado, no podrias hablar aca
y si estas aca, es porque tenes suficiente reputacion para hablar.
Trataste de conectarte a tu cuenta con otro metodo?
 
Voy a votar una respuesta y me dice, completa tu registro y no hay forma. He probado con google, FB y normal...
Entonces entiendo que estoy registrado pero no puedo completar mi registro...
 
@Rafael dice que no estas registrado
te dice que hagas algo para completar ese inicio de sesion?
 
Si, q loguee con mi nombre, con FB o con Google. He probado las tres y nada, se refresca la pantalla y me vuelve a decir lo mismo
 
dale ctrl-f5
 
Me dice: "Termina el registro mediante cualquiera de las siguientes opciones:" Y me salen las tres opciones. Relleno, le doy y nada.
 
5:40 PM
no vaya a ser un problema de cache
 
Perdon, le doy y me lleva a preguntas principales. Pero sigue apareciendo lo de completa el registro y sigo sin poder votar
Voy a eliminar el caché a ver
Nada, no hay forma
 
6:12 PM
@Rafael La mejor forma de revisar el cache es darle a f12. Luego click derecho al boton de actualizar, y vacias la cache de manera forzada ;)
 
 
1 hour later…
7:18 PM
@MauricioContreras uy armar de nuevo? que feo
 
7:43 PM
creo que la pregunta es muy amplia
y la respuesta da varias opciones
0
Q: como hago que un texto que escriba en un input type text se guarde para que cuando la reinicie no se borre?

Pollo Voladorpor ejemplo escribo hola como esta en un inpute type text ¡, reinicio la pagina y ese texto sigue ahi, seria algo así como en un foro pero no es un foro <hmtl> <head> </head> <body> <input type="text" class="texto"> </body> </html> he intentado usar el localStorage

sería basado en opiniones? es válida la respuesta que abarca varias alternativas?
que opinan?
 
Editó la pregunta solo para mencionar que lo intentó con localStorage. Necesita ser más específico, a mi parecer
Bueno, ya está cerrada
 
8:24 PM
que lindo que no tenga que salir corriendo a cerrar cosas....
 
 
3 hours later…
11:02 PM
Noche de viernes.
The Beach Boys
 
11:48 PM
@CandidMoe Esta bastante bien, pero la versión original para mi gusto es infinitamente superior. De hecho para mi "Pet Sounds" es uno de los mejores discos de todos los tiempos, increíble que la primer versión publicada fue en mono.
 

« first day (2016 days earlier)      last day (42 days later) »