« first day (1678 days earlier)      last day (1413 days later) » 

12:26 AM
    :54548528
    var aᅠ = 1;
    var a = 2;
    var ᅠa = 3;
    if(aᅠ==1 && a== 2 &&ᅠa==3) {
        console.log("Why hello there!")
    }
c mamut
 
12:44 AM
Hola
alguien por aqui que haya utilizado firebase
 
 
2 hours later…
3:01 AM
@MiguelGallo iop
 
hola
con angular?
@jack
@JackNavaRow
 
sip
 
puedes ayudarme por favor?
te lo agradeceria bastante
@jack
 
te recomiendo mejorar tu pregunta tienes solo imagenes
que quieres saber de firebase
 
disculpa no me podria comunicar contigo por whatsapp y asi enviarte mpas información?
por aqui no puedo mandar imagen
 
3:03 AM
y el repo git_
lo siento no dare mi numero
 
import {Component} from '@angular/core';
import {AngularFireDatabase} from '@angular/fire/database';
import { Observable } from 'rxjs/internal/Observable';




@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})

export class AppComponent {

items: Observable<any[]>;

constructor(private db: AngularFireDatabase) {
this.items = db.list('marketplace-everis').valueChanges();

}

}
 
pero que quieres saber
 
ahi estoy llamando a la BASE DE DATOS
 
por recomendacion trata de cambiar nombre de las colecciones
 
EN FIREBASE ESTA COMO REAL DATA TIME
 
3:06 AM
en realidad alli no llamas a la base de datos
en el archivo inicial defines tu db
y otras cosas
en este caso marketplace es una coleccion
 
y en otro componente tengo lo siguiente
@Component({
selector: 'app-uicomponents',
templateUrl: './uicomponents.component.html',
styleUrls: ['./uicomponents.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class UIcomponentsComponent implements OnInit {
public menuData: IMenu[];
public searchForm: FormGroup;


constructor(private http: HttpClient, private cd: ChangeDetectorRef, private db: AngularFireDatabase ) {
// Get a reference to the database service

}
ngOnInit(): void {
this.initForm();
/* this.http.get('db').subscribe((response: IMenu[]) => {
el codigo que esta comentado ahi obtenia un JSON que tenia en local , lo mostraba y lo podia filtrar con ese codigo que esta comentado
ahora lo que quiero hacer el mismo mostrar y filtrar la información de toda la base de datos
de firebase pero no se como hacerlo
 
@MiguelGallo filtrar informacion de toda la base de datos?
en una base de datos tienes muchas colecciones
en modelo SQL la llamamos tablas
en base de datos NoSQL pueden ser colecciones o key data o cualquier cosa
 
{
"0" : {
"attributtes" : [ {
"default-value" : "https://sevenkingdoms-stg.interbankcloud.pe/assets/img/avatar/NO_CLIENTE_MASCULINO.png",
"description" : "Valor de recurso de la imagen",
"name" : "image",
"type" : "string"
}, {
"default-value" : "Image",
"description" : "Etiqueta referencial de la imagen",
"name" : "imagealt",
"type" : "string"
} ],
"description" : "Representa un avatar configurable",
"name" : "Avatar",
"tag" : "ibk-avatar",
"type" : "atomo"
},
"1" : {
"attributtes" : [ {
"default-value" : "7",
esa es parte de la información que esta en firebase
por ejemplo quiero obtener el name de cada uno mostrarlo y poderlo filtrar
pero no se como empezar a utilizar la base de datos y utilizarlo en el componente como quiero
 
bueno... depende como guardes en tu coleccion
ese objeto es un registro en tu coleccion?
 
si
es parte de la colección
 
3:11 AM
bueno lo ideal es que sea n registros
 
que esta en firebase
 
para que puedas filtrar si vas a tener un solo dato para que preocuparte de firebase
 
primero deseo mostrarlo
en la aplicación angular
y no se como inicializar la BD y que muestre los NAME de toda esa colección
te envie dos componentes uno donde esta el THIS.DB
y en el otro donde quiero poner la lógica y mostrar loque quiero
 
import {Component} from '@angular/core';
import {AngularFireDatabase} from '@angular/fire/database';
import { Observable } from 'rxjs/internal/Observable';




@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})

export class AppComponent {

items: Observable<any[]>;

constructor(private db: AngularFireDatabase) {
this.items = db.list('marketplace-everis').valueChanges();

}

}
ahi ya estoy obteniendo toda la base de datos???
como hago para poder mostrarlo en el otro componente
 
3:14 AM
no es la base de datos
voy de nuevo
para la base de datos db estas buscando todos los datos de la coleccion marketplace-everis
y lo que quieres es como filtrar datos en una coleccion firebase
si buscas asi en google tendria mas ayuda
mira
 
justo intente con ese video y no me funcionó :/
creo que si observarias mi pantalla podrias ver mayor información , si deseas conectate a mi maquina
 
no
dejame explicarte mejor
porque no estas viendo el error que tienes
en primer lugar tienes que tu valor es un observable
 
si por favor estoy con esto todo el dia :/
 
primero items: Observable<any[]>;
esto deberia ser items: FirebaseListObservable<any[]>;
 
entonces no deberia ser observable deberia ser FirebaseListObservable
ok
 
3:23 AM
this.items = db.list('marketplace-everis' ,  {
}) as  FirebaseListObservable<any[]>;
 
ok
export class AppComponent {

items: FirebaseListObservable<any[]>;

constructor(private db: AngularFireDatabase) {
this.items = db.list('marketplace-everis' , {}) as FirebaseListObservable<any[]>;

}

}
 
mira encontre un repo
te explico mejor
ya tienes el observable ahora te falta asignarlo
 
si por favor explicame
me sale este error en el {} que esta al lado de 'marketplace-everis'
Argument of type '{}' is not assignable to parameter of type 'QueryFn'.
Type '{}' provides no match for the signature '(ref: Reference): Query'.ts(2345
 
db.list('marketplace-everis' ,  {
}).subscribe((itemsSnapShot) => {
      this.items = [];
      itemsSnapShot.forEach((data: any) => {
        this.items.push(data=
      });
    });
  }
mira si quieres seguimos mañana ando medio dormido
 
ese codigo debe ir aqui?
export class AppComponent {

items: FirebaseListObservable<any[]>;

constructor(private db: AngularFireDatabase) {
this.items = db.list('marketplace-everis' , {}) as FirebaseListObservable<any[]>;

}

}
 
3:33 AM
si
guiate con el codigo que te envie cualquier cosa me haces un ping
pero lo leere mañana
 
no te preocupes
luego que deberia realizar? ya tendria que avanzar en el otro componente para mostrarlo?
 
 
2 hours later…
5:10 AM
A las güenas :-)
 
5:24 AM
@Trauma buenos días
 
 
2 hours later…
7:12 AM
good morning
 
buenass
 
Bueenas
Mmm.. creo que acabo de ser objeto de serial-voting
 
@abulafia hacia arriba o hacia abajo?
de igual manera se rectificarán seguramente
 
Hacia arriba, no me quejo. Y no creo que se detecte, sólo han sido cinco votos
pero los cinco así de golpe, y a respuestas bastante antiguas
 
son 3 a una hora y 2 a otras
igual no se rectifican
 
7:19 AM
ah, no sé. Los vi ahora juntos
 
Lo cierto es que eran cinco de mis mejores respuestas. Quien haya votado es un connoisseur
 
@abulafia igual filtró por repsuestas con mas votos?
 
No, no son precisamente las más populares, pero estaban entre las que más satisfecho me sentía yo. A ver si he votado yo sonámbulo :-)
 
Hombre, señor Don @abulafia. ¿ Está ud. puesto en temas de redes electricas, usando numpy y scipy ?
(peloteo ...)
 
7:23 AM
@Trauma Pues no, si te refieres a cómo modelarlas. Si son cosas de sintaxis o de numpy quizás pueda ayudar
 
@abulafia la de los colores es canela en rama
 
@lois6b Con esa me gané una camiseta! :-)
 
@abulafia Tengo aquí un código pythonero que hay que pasar a C++. Como era de esperar, la versión C++ no funciona, así que he hecho un ejemplo mínimo verificable para el de python ... y ** ¡ Explota !** (el de python)
con lo cual me encuentro en una situación pelín complicadilla ...
 
Un misterio? Ya me has torcido el día :-)
 
La verdad es que no pudo hablar con el tipo que hizo el de python, y ahora no se si lo estoy usando bien, o mal, o estoy borracho, o que carajo pasa
yo era feliz con mi C++ a pelo
ainnnggggggggg
 
7:27 AM
Pues si puedes pásame el MWE y le echo un vistazo. Si quieres puedes crearlo en colaboratory y compartirlo, así vemos lo mismo y descartamos problemas de instalación o versiones
 
huy, no he usado nunca el colaboratory ese
¿ eso como va ?
 
es como un jupyter notebook, en la nube, de Google
tiene preinstaladas las cosas de python científico
 
ah, mucho mas claro. Ni idea de lo que es un Jupiter noteebok ...
jejeje
dame un segundo
 
ah no?
Bueno, si no pásame el código a pelo y creo yo el colab y te lo comparto
ya verás, vas a flipar si no usaste nunca un jupyter notebook
 
en la vida he usado yo un bicho de esos
dame un segundo que miro el colab ese
@abulafia Na, paso. Voy a tardar mas en aprender a usarlo
¿ como te paso el código ?
 
7:30 AM
pastebin? Como quieras
 
son 147 líneas
 
me vale pastebin o similar
 
ok
@abulafia Ya
No estoy seguro de que sean necesarios todos los import
 
Ok, pues mira, he creado un colaboratory que puedes entrar a ver: colab.research.google.com/drive/…
 
¡ Que rapidez !
 
7:34 AM
de momento he metido tu código y lo he ejecutado. Me ha dado el error que puedes ver en la celda de salida
 
:-O
 
No es más que un entorno python. Cada celda tiene el código que escribas en ella, y al ejecutarla (con Mayus+Intro), se ve el resultado debajo
 
Es el mismo error que me da a mí
y se suponía que ese código funcionaba
 
Todas las celdas comparten el mismo "kernel", o sea, variables módulos, etc. Es como un intéprete interactivo, pero vía web y con salida "enriquecida" (puede mostrar tablas, gráficas, etc.)
Bueno, a ver si depuro el problema
 
La verdad es que mola el colab ese
¿ para C++ lo hay ?
 
7:37 AM
No creo, se basa en la tecnología de "jupyter" que es para python
aunque sé que hay otros proyectos similares para otros lenguajes (Julia o JS)
busca por C++ notebook a ver
 
@abulafia La primera función, find_islands( ), esa funciona bien
 
ten en cuenta de todas formas que la filosofía es interactiva, asi que no creo que haya para lenguajes compilados
 
@abulafia Pues molaría :-)
 
Voy separando en celdas para ejecutar separadamente las funciones y ver en cuál falla y poder ir viendo resultados intermedios
 
ok
Te lo agradezco mucho
la versión C++ de find_islands( ) funciona bien, comprobado
y es casi un calco 1:1 de find_islands( ) en python
si, comprobado. find_islands( ) en python da el resultado correcto; [ [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13], [7] ]
 
7:43 AM
Veo una cosa curiosa. Falta el 7 en la primera secuencia, por lo que deja una longitud de 13 elementos y no 14
en cambio genSparse sí que tiene 14x5
quizás de ahi viene el problema
 
un segundo, que lo miro
huy, se me murió el portatil
ya volví, un segundo
Pues me dejas patidifuso, se supone que esos son los datos de prueba que tengo
osea, no son datos mios, se sopone que son datos correctos
 
A ver si consigo entender qué se supone que ha de hacer el código
 
la de find_islands si lo tengo claro
 
puede ser un problema de indexar desde 0 en vez de 1, o un off-by-one
 
pufff
Si es que no se ni lo que se supone que hace
y no puedo ponerme en contacto con el tipo que la escribió
 
7:49 AM
El python es tuyo o te lo dieron?
 
me lo dieron
 
no es muy pythónico el código, parece escrito por alguien que viene de Java o de C++
 
jejeje
ingenieros eléctricos ... ¿ que se puede esperar de ellos ?
xD
 
Voy a refactorizar esa función y hacerla más pythónica a ver si así la entiendo
 
@abulafia No sabía que python tenía algo parecido a los tipos: `C_element_bus: csc_matrix``
esos 2 puntos : son para que el interprete compruebe el tipo, ¿ no ?
 
7:51 AM
Se llama type hinting. Es una cosa "nueva" (desde la 3.5)
no, el intérprete pasa de todo. Son poco mas que comentarios "on steroids"
 
es opcional, tipo typescript
 
en realidad son para el IDE, para que pueda subrayarte errores, o darte hints de autocompletado
 
@abulafia oooh
 
o para typecheckers estáticos
 
pues vaya, que chasco
anda que si le llegan a poner tipado estático al python ...
jejeje
 
7:52 AM
o teóricamente sería posible añadir tests para el runtime, pues esas "anotaciones" quedan formando parte del ejecutable y son accesibles por introspección
algunos frameworks lo usan
 
@abulafia jeje ... es un primer paso :-)
ya me veo el python4 con tipado fuerte
jejeje
 
Es útil. El typechecker estático a fin de cuentas es una especie de "compilador"
 
es muy util ... pero pierdes ciertas funcionalidades
 
si pasa el typechecker, los tipos al menos están bien. En realidad es el mismo tipo de garantía que te da C++ o Java. La funcionalidad puede seguir estando mal, pero eso ya se ve mediante tests unitarios
 
para aprovecharlo bien, tendrían que meter también sobrecarga de funciones
 
7:53 AM
@Trauma ¿Has visto Deno?
 
En python no, porque el tipado tiene en cuenta que todo es dinámico. Por eso es un follón de aúpa.
 
@PabloLozano nope
 
La sobrecarga (una especie de) puede hacerse también abusando de que todo es dinámico, mediante decoradores. La biblioteca estándar trae un decorador "singledispatch" o algo parecido, que te permite hacer algo similar a la sobrecarga
pero es un horror, e innecesario en python ya que tienes lo del duck typing
 
El creador de Node dejó de usarlo, se salió del proyecto
 
@abulafia hombre, la sobrecarga va muy bien con el tipoado estático, da funcionalidad sin perder velocidad
 
7:56 AM
Bah, no es más que name mangling, no?
 
y tras unos años aprendiendo Rust y Go, volvió a usar Node como usuario y se dio cuenta de lo visibles que son los errores de diseño de Node
así que ha vuelto a crear un intérprete basado en V8, pero desde cero, sin retrocompatibilidad con Node
con ES201X como base
y Typescript como lenguaje principal
no usa NPM y el manejo de los módulos sigue el estándar estándar
con lo que se acabó la carpeta node_modules
 
@abulafia no, eso es para exportar las funciones. La selección se realiza en tipo de enlazado
es decir, no hay penalización de velocidad
bueno, exportarlas y que el enlazador las distinga
así que si, forma parte del proceso
 
@Trauma Pues a eso me refería con name mangling. Básicamente equivale a que tengas mi_funcion_int_int(), mi_funcion_int_float(), etc.
 
correcto
no te entendí bien
pero la selección de la función a llamar se hace al enlazar, no al ejecutar
 
Buenos días.
 
8:01 AM
Estoy intentando entender qué hace la matriz sparse esa. Y en concreto su accessor .indptr
 
ufff
es una matriz dispersa en formato columnas comprimidas o algo así
data, indices, indptr
yo mismo no lo tengo muy claro
 
¿Tienes cuenta google? Porque quizás si te comparto el notebook "directamente" (en vez de vía enlace), podamos crear un chat sobre colab, o algo así. Para no meter ruido por aqui
 
sip, la del curro
 
puedes escribirme un email a abul4fia, para que la pille del remite y te invite al colab
@Trauma Gracias, sabía lo que era una matriz dispersa, pero no cómo la implementa scipy o qué interfaz tiene
 
@abulafia yo no termino de verlo claro el formato csc comprimido eso
pero tampoco he tenido tiempo de ponerme con ella
mi primera implementación de find_islands( ) fué desde 0, y las matrices dispersas csc son raras
 
8:06 AM
Alguno usa TFS?
 
los elementos != 0 con 0 antes y después, en la misma columna, no se almacenan en data
 
o ha usado?
 
por supuesto, mi implementación no funcionó
 
Algo va mal en todo esto. Si miro el valor de genSparse.transpose().indptr veo que sale [0, 1, 2, 3, 4, 5]. Aún sin entender qué es eso, se ve que tiene sólo 6 elementos. Sin embargo el código intenta acceder a su elemento j y j+1, habiando sacado j de la lista island. En esa lista hay números mayores de 5
 
traspose( ) es la traspuesta
 
8:11 AM
Aunque rompe antes de intentarlo (por otra razón)
 
ya intenté quitar esa llamada
y falla igual
según el autor, tiene que ser así, la traspuesta
 
sí, sí. Ya entendí qué guarda la matriz dispersa esa. Tienes muchas formas de verlo. Una de ellas, la más obvia, es pasarla a una matriz normal, mediante .toarray() eso da una matriz de 15x4 en la que casi todo son ceros, salvo algún 1
por ahi ok
 
Bueno dejo el problema que me ocurre, a ver si alguno tiene la clave, estoy en cooproducción con otra empresa, me han creado una cuenta y al intentar conectarme no me sale su proyecto, pero a ellos desde su empresa si, comprobé si era mi pc conectandome desde el de otro compañero, con el mismo problema, probé a crear un proyecto yo, el cual, si que lo vemos los dos, pero el otro nada, no hay manera, a alguno le ha pasado y sabe por dónde pueden ir los tiros?
 
ya vas mas adelantado que yo
 
luego tienes la vista que te sale cuando haces un print() de esa matriz. Ahí te da algo como esto:
  (0, 0)	1
  (1, 1)	1
  (2, 2)	1
  (3, 5)	1
  (4, 7)	1
Que también tiene sentido, pues son las "coordenadas" en las que están los unos
 
8:13 AM
no he intentado nada sin usar dispersas. Los datos reales serán enormes
 
y luego está lo de .indptr que es lo que no sé qué hace, y lo que está intentado usar la función que da problemas
 
@abulafia eso guarda los límites en cada columna de los datos, o algo así
yo te digo que no he terminado de comprenderlo
ufff ... siento si no tiene sentido lo que digo, estoy en 3 charlas a la vez :-/
y tengo que ir a levantar al crio
 
Ok, a ver qué avanzo entretanto
 
hoy tendré otro gran dolor de cabeza:-)
 
8:28 AM
y ahora reunión. Precisamente ahora se van a poner a mover cosas de sitio en el repo
¡ si es que no me dejan intranquilo !
@abulafia volveré lo antes posible, sorry
 
no problem
 
Buenas, ¿Alguno de los presente entiende sobre streams en java?
Me he quedado atascado en un ejercicio de clase y agradecería una mano para poder terminarlo
 
qué problema tienes?
 
joé, un poco de calma ya por fín
voy a empaparme un poco de la compresión csc esa de las matrices
 
Ya lo tengo claro
@Trauma Puedes escribirme a abul4fia desde tu trabajo, para que te comparta el notebook directamente?
 
8:42 AM
@abulafia Debería haberte llega el correo ya
 
Ah, ya lo veo si
ya está
 
ok
al final es la cuenta oficial de SOes
xD
 
Vale :-)
Enviada invitación
 
ok
estoy en el colab
 
No parece que haya un chat... pero supongo que podemos escribir directamente en las celdas y cada uno ve lo que escribe el otro
 
8:44 AM
@abulafia hay una cosa que no estoy seguro de que estés en lo cierto
 
No te veo.. (no sé qué debería ver, nunca lo usé en modo colaborativo)
 
`# La matriz se organiza por columnas.
# Cada columna contiene algunos datos distintos de cero.
# Todos los datos que la matriz tiene distintos de cero están en .data
sparse.data`
joer, no la queria toda
No estoy seguro de Todos los datos que la matriz tiene distintos de cero están en .data
bueno, ahí se puede comprobar, dame un seg
tuve problemas con ese mismo axioma en mis pruebas iniciales
 
¿por qué dices que no? Yo he sido capaz a reconstruir la matriz original a partir de mis hipótesis, como puedes ver más abajo
 
ah, perdona, Aún no llegué ahí
 
Tengo que obtener de una "consulta" a un stream ciertos valores y estos no pueden estar repetidos, os explico un poco mejor
 
8:47 AM
Ahora estaba intentando entender qué hace find_islands() ¿me puedes iluminar?
 
@abulafia intenté recorrer una csc_matrix usando un tipo de iterador que solo pasaba por celdas != 0
sin usar indptr
y no funcionó
claro, era muy distnito a lo que haces
 
@Trauma ¿Cómo lo intentaste?
 
Tengo un clase estudiante que tiene una lista de una clase materia, la cual tiene un nombre y una nota.

Luego tengo una "base de datos" que me devuelve una lista de estudiantes. Tengo que conseguir que de esa lista de estudiantes, me devuelva la lista de materias y de esa lista de materias quedarme solo con los nombres no repetidos
 
fué con armadillo, en C++
 
supongo que tendrá iteradores más amigables que el indptr ese, que es lo más bajo nivel pues es cómo lo almacena realmente en sus tripas
 
8:48 AM
es lo que tenemos que hacer en este proyecto
sip, tiene iteradores tipo C++
que recorren solo las celdas con valores
 
No, yo me refiero a la propia matriz csc de python
 
PERO me daban problemas
ok
@abulafia find_islands( ) divide un circuito electrico en islas independientes, sin puntos de union
se le pasa una matriz de adyacencia de los nodos que forman el circuito
 
@Manuel Pon un pregunta, ahora mismo no puedo mirarlo pero en un rato quizá pueda ponerte una respuesta
 
Pero no entiendo la salida en este caso concreto. Una "isla" es una secuencia de números del 0 al 13 (excepto el 7). La otra contiene solo un [7]. ¿Qué representan estos números?
 
Oki, la pongo, gracias
 
8:51 AM
@abulafia en un entorno gráfico, se van creando nodos. Cada nodo tiene un identificador numérico único
 
Bueno, vale. Y entonces qué misión tiene la última función, la que falla?
 
@abulafia Muy buena pregunta
NI PUÑETERA IDEA
se los datos de salida esperados
 
XD
 
luego mi hija dice que no entiende como me pagan por estar aquí t'ol dia sentado con el ordenador
O_O
Si ella supiera ...
un segundo, busco los datos de salida esperados ...
Resultado
Isla0: [0, 1, 2, 3]
isla1: [4]
Ese se supone que es el resultado de get_elementos_of_the_island( )
para cada isla encontrada con find_island( )
 
:return: array of indices of the elements that match that island Hmmm
 
8:56 AM
si, al author le gustan los comentarios largos y explicativos
por si no te habías dado cuenta
 
Y tienes idea de qué representa genDense ?
 
Ni pajolera. No se de donde sale eso.
esos datos de prueba se generaron con una aplicación de diseño de circuitos
un ingeniero electrico sabran lo que son
a mi, ni aunque intentará explicarmelos
@abulafia Va, déjalo. Esto es imposible así
esperaré a que vuelva el autor
y que me ilumine
@abulafia Este es el programa completo que estamos reescribiendo
 
ese programa se supone que funciona bien y correctamente
de él va sacando los datos de prueba para testear el código C++
 

« first day (1678 days earlier)      last day (1413 days later) »