Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Kaledros

#60359 Segunda parte de esto, explicando el timeline de la app, decisiones de diseño, implementación, porqués de las cosas, etc: https://newsletter.pragmaticengineer.com/p/bluesky-engineering-culture

Me llama la atención que comenzaron a prototipar en Typescript por motivos lógicos pero en cuanto empezaron a tener problemas de rendimiento se pasaron a Go.

The backend is mostly in Typescript, as is the frontend and mobile apps. This allows software engineers to work across the stack without switching languages. This choice is similar to Linear’s to use Typescript between the back and front ends.

Why pick this language? Daniel Holmgren gives several reasons:

De facto language of the web. “Javascript and therefore Typescript is probably as close as we have to a ‘lingua franca’ for the web. We felt it was a natural choice to communicate the core ideas in the reference implementation of the protocol.”

Shared front and back end language. “Having a shared implementation across the client and backend makes for a nice development experience, especially knowing that both sides have a shared understanding of the schema system.”

Fits the AT protocol’s dynamic data approach. “Being a dynamic language, Typescript has been great for working with the dynamic data you find in the ATproto ecosystem.”

A great fit for code generation. “Typescript has a really great ecosystem for code generation. I think it's that the actual official TypeScript implementation just ships the tooling for parsing into an AST and then manipulating it and outputting code. Not many people were needing that, but I was really happy it was there.”

Great for prototyping with a small team. “Typescript is a great language for quick building. The runtime is quite powerful and lets you not worry (much) about things like memory management and concurrency. The type system is very ergonomic and provides the structure you need, while seldom getting in the way. With such a small early team, it made sense to choose a language that enabled us to prototype quickly.”

The Typescript code on the backend uses the Node.js runtime. One worry the team had was how it would scale, as Node.js app runs in a single thread, without creating a new thread for every request. This means a server running Node.js can handle fewer parallel requests than frameworks that support multi-threading more efficiently.

However, the team found it's very easy to scale the service horizontally (adding more machines,) but only by building the application to be stateless. They did this, and Daniel recalls they proved a point:

“At one point, we had around 192 node processes running behind HAProxy. All these processes were super ‘bored,’ at around 1% CPU utilization. But the point is that it’s very easy to scale a stateless Node service out horizontally – so that's what we did!”

The backend started out as Typescript, but over time, Go was introduced. But why bring in another language when Typescript works well enough? Performance, says Daniel:

“Some of more infra-y services such as the Relay and our internal ‘Dataplane’ are very performance-based. They often involve a lot of crypto operations and low-level bit twiddling. These are things that Go excels at. In particular, Go has a shard-aware driver for Scylla (a database we use) which made it a natural choice for interfacing with it.”

The team has rewritten services from Typescript to Go when performance improvements warrant it. Services in Go, today:

Search services like Palomar.

The “firehose” called Relay. This service does a lot of low-level fiddling and crypto operations.

Dataplane. This service is called the “BigSky service,” and is one of few closed-sourced services. This service manages data, talking to ScyllaDB, as well as some other data stores like Redis, and their own handwritten cache stores.

1 1 respuesta
desu

A nadie le importa. Abrete un hilo para tus porquerias. Que de hecho ya hay uno.

Konishi

#60361 no hagas caso al bot, si ves algo sobre cómo han gestionado la subida de reportes avisa que parece interesante

desu

https://geohot.github.io/blog/jekyll/update/2024/10/28/americas-future.html

Geohot y yo nos vamos a Hong Kong.

Por cierto, buen analisis del shithole de Europa. Hay que largarse pronto.

GDP can be manipulated ten ways till Sunday, electricity and steel production are much harder to fake

Don_Correcto

#60358 casi 100% seguro que no habré usado tantos frameworks como tú. Simple curiosidad, en qué crees que es más simple en comparación a otros frameworks?

desu
Wei-Yu

https://www.reddit.com/r/ExperiencedDevs/comments/1gtoe56/after_5_years_of_working_in_tech_ive_surmised/

supongo que es aplicable al castellano pero el inglés siendo segunda lengua de muchos convierte el problema en algo mucho más punzante

2 respuestas
Dr_Manhattan

#60367 en castellano pasa igual, y lo que dice el post, es peor ahora que hay trabajo en remoto y se escribe mucho por teams etc

Kaledros

Yo sólo digo que el 90% de devs con los que he trabajado suspenderían un examen de lengua que un crío de tercero de la ESO debería poder aprobar. Y no sólo devs, se me cae la cara de vergüenza de ver a gente de RRHH, managers, c-suite y demás escribir como el culo o presumir de que han pasado un texto por ChatGPT y se lo ha dejado perfecto.

Y lo de los tickets es sangrante, sí.

4 2 respuestas
Wei-Yu

Por eso me hace mucha gracia el típico lloro de que cada vez bajan más el nivel en la uni. Ya se ve para lo que sirve "poner el listón alto", para que la mayoría de la gente pierda facultades al nivel de suspender cosas sencillas de la ESO xd

1 respuesta
desu

Habria que ver como redactais los que estais hablando por aqui... minimo se de uno que no sabe redactar un curriculum.

privet

#60369 aber estudiao

Yo la aplicacion que usan para las horas, desde siempre tengo esto

Me da un toc cada vez que lo veo..

Kaledros

#60370 Imagínate la que se montaría si en alguna empresa tocha se le ocurre imponer un plan de mejora de escritura a toda la plantilla que no pase un examen de tercero de la ESO y que en su trabajo tenga que escribir para que otros compañeros lo lean. No hace falta ni que la empresa sea de desarrollo, esto pasa en todas partes. Podría ser una aseguradora, un banco, etc.

Sería aún mejor si se le ocurriese al ministerio de trabajo o al de educación hacerlo obligatorio. Estoy oyendo los lloros desde aquí.

Fyn4r

#60369

Yo sólo digo que el 90% de la población

FTFY

1
Runig666

Creo que no puedo describir con palabras cuanto de hasta la polla estoy de la "blockchain" y de cuanto me toca los cojones que Europa haga concursos para implementar algo con esto...

2 respuestas
PiradoIV

#60375 ¿Se sigue hablando de blockchain en 2024?, creía que la Inteligencia Artificial había fagocitado ya el resto de buzzwords.

1 1 respuesta
Runig666

#60376 El problema es cuando esas buzzwords pasan no a ser buzzwords si no conceptos. Te ponen tutoriales de 500 paginas, con porron de nombres

...y al final cuando lo separas todo, cuando consigues ya por fin sacar la paja...

Todo se resume en un contenedor Docker gestionado con una libreria de JS. Os juro que no estoy ni de coña en esto ultimo. Al final para gestionar la super mega hyper block chain, es un contenedor, y se configura con una libreria de JS, pista...

pantocreitor

#60375 recuerdo una charla en NTT a un banco para venderle un producto de no sé qué.
El nota explicando que la blockchain era super segura y bla bla bla.
Cuando termina le cojo a parte y le digo tío, has explicado mucha paja pero a esta gente le preocupa la seguridad en las transacciones y no has comentado nada sobre eso y me suelta que si no me he enterado, que la blockchain es segura y le digo si, es “segura” en el sentido de que no puedes modificar los registros sin que cante y bla bla bla (y ya he leído algún paper diciendo que esto no es del todo cierto) y le digo vale, pero si te cuelas y metes una transacción falsa en la blockchain??? Le cambio la cara al nota xD

1 respuesta
Runig666

#60378 Yo aun recuerdo casi con miedo cuando me soltaron que la blockchain era mucho más segura que cualquier SQL porque en una SQL no queda registro de los cambios mientras que en la BlockChain todo lo que hay son dichos registros

En SQL...ese sistema que quien más y quien menos se ha puesto a registrar todas las operaciones para ver cual es más lenta...ese sistema...no tiene registro de los cambios...

Ni te quiero contar cuanto me ha llevado sacar la parte de validar la transacción no? Porque poco más y te cuentan que hay pavos a manica revisando cada transacción y dándola por valida.

2 respuestas
desu

Kaledros
#60379Runig666:

en una SQL no queda registro de los cambios

Yo le pego una bofetada ahí mismo.

1 respuesta
Runig666

#60381 Lo tengo prohibido.

Me hizo más gracia una de otro día que era súper importante ocultar que un servidor era Apache para evitar ataques...no la versión, si no que era Apache.

Claro...porque si alguien quiere atacarte va a decir "Ummm, este servidor no parece Apache, voy asumir que han hecho un servidor web propio en vez de creer que es uno de los servicios más usados del planeta"

A día de hoy, teniendo que explicarles que la seguridad por ocultación no funciona a unos pavos que en teoría solo se dedican al tema de seguridad.

1 respuesta
wdaoajw

#60382 pero wtf, si al final lo que te llega en estos casos es el chorro enorme de intentos del bot para todos los known issues, sea apache, tomcat o desu en patinete

Luego nos sorprendemos

2 1 respuesta
Fyn4r

Hombreee quien no ha tenido una web estática en el puerto 80 y recibido peticiones a admin.php xDDDDD

1 respuesta
Runig666

#60383 Eso mismo dije yo...que la solución era tan sencilla como decirle que "desplegase" cada X semanas y ya.

Si es un Docker con ficheros Vue y poco más...vamos que el motivo real de porque no estaba la ultima versión es porque no se había desplegado en meses ese proyecto, porque por defecto hace pull de la ultima.

Pero claro...ellos tienen el chocho montado y no les hace tanta gracia estar actualizando, así que se tienen que inventar este tipo de mierdas

#60384 La del puerto 80 una vez estando yo de vacaciones la intentaron "arreglar"

Basicamente el funcionamiento actual es que tengo el Traefik de turno, y luego los "infinitos" servidores que toquen. Obviamente el Traefik bloquea todo el puerto 80 y lo manda a HTTPS, pero internamente los Apache de turno estan con el puerto 80. Se puede mejorar? Por supuesto, es mitico el certificado autofirmado para que hablen entre ellos...pero es que si alguien ha llegado hasta la red interna tengo problemas más graves.

Según ellos un problema super grave porque alguien podía entrar y escuchar esas llamadas al no estar cifradas. La parte de "alguien podía entrar" en un servidor les parecía normal, el fallo era poder escuchar la red interna.

PaCoX

hombre, decir que no funciona es venirse muy arriba eh, la seguridad por ocultación tiene su importancia xd

1 respuesta
Runig666

#60386 UMMMMMM...a ver si, obviamente no vas a dejar la carpeta vhost abierta de par en par y la versión de turno porque "Total no pueden hacer nada que esta actualizado"

Pero hombre, si te ofrezco actualizar versión todos los días si quieres con total tranquilidad...y me sueltas que eso no te vale y me ponga a instalar plugins que duplican el tamaño de la imagen para cambiar la cabecera de Apache para que nadie sepa que es...el servidor más común posible. Plugins que vamos a ver en que momento empieza a dar fallos por no llevarse bien con la versión que toque.

La seguridad por ocultación lo que hace es que apetezca menos, la solución correcta al final pasa por no tener el boquete de seguridad...que siguen teniendo claro, pero como ya no les canta a la empresa de turno ellos felices.

Dr_Manhattan

Días transcurridos con Runig teniendo razón: 0

¿Perdería una discusión con él mismo?

1 respuesta
Runig666

#60388 Todos los días pierdo una discusión conmigo mismo. Si no lo hiciéramos, no existiría el debugger

1
desu

“Youth! There is nothing like it. It’s absurd to talk of the ignorance of youth. The only people whose opinions I listen to now with any respect are people much younger than myself. They seem in front of me. Life has revealed to them her last wonder. As for the aged, I always contradict the aged. I do it on principle. If you ask them their opinion on something that happened yesterday, they solemnly give you the opinions current in 1820, when people wore high stocks and knew absolutely nothing.”

― Oscar Wilde, The Picture of Dorian Gray