Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Wei-Yu

#33510 pasa mucho cuando empiezas en esto que si no andas muy alerta te encasquetan un marrón. Puede ser algo como lo que estás haciendo, o un data entry glorificado que casi roza ser mono de excel, o calzarte un proyecto hiper legacy e inmantenible con la excusa de seguir facturando horas. Situaciones de mierda las que quieras.

Puedes dar un cambio si le echas esfuerzo y cuanto antes lo hagas mejor para ti. Igual te cuesta mucho o poco, pero no serías el único que lo ha conseguido, así que posible es.

desu

#33510 Que proyectos tienes para ense;arme que sabes hacer esas cosas?

Abros stream y hacemos pair, no tengo nada que hacer xq hay un bug en travis

voy a hacer un tutorial... a ver si funciona...

edit: no funciono tenia todo mal del docker, a la config, al codigo

he ido al oficial de confluent de kafka y tambien esta mal. el docker compose esta mal y no espera a que se levanten los containers con healthchecks cuanndo hay dependencias y esta petando todo el rato haciendo retrials.

"kafka" "big data engineers"

1 respuesta
Zh3RoX

#33512 No puedo enseñarte nada, tengo muy descuidada la cuenta de github, es algo en lo que tengo que trabajar ya si quiero salir de aquí, subir proyectos que tengo por ahí perdidos de hace tiempo y desarrollar nuevos para demostrar.

He hecho proyectos personales de clase típicos CRUD con Angular + Spring boot, una app multimedia con Angular + Ionic, con React hice también la típica galería de imágenes. Utilicé también Firebase.

En las prácticas hicimos en equipo una web de geoposicionamiento con GIS stack .NET+Angular, que nos quedó muy bien para hacerlo en 3 meses y sin experiencia.

Y alguno más que se me olvidará.

De todas formas si me pusiesen ahora por delante una prueba técnica probablemente no la pasaría.

2 respuestas
B

#33513 pues creo que tienes claro lo que debes hacer primero. Mira en qué tecnología te gustaría trabajar y márcate dos side projects guapos en github, así de paso aprendes/refuerzas esa tecnología. Cuando tengas algo que enseñar, empiezas con la búsqueda de curro, pero hasta entonces nada.

Te lo dice alguien que también ha cambiado de rama

2
desu

#33513 Pues ahi lo tienes.

Haz ese CRUD bonito con cuatro cosas modernas y ya lo tienes.

No hace falta matarse mucho.

4h por proyecto es suficiente.

estoy en streaming, ni el pom de muestra funcina. osea es que ni el hello world. miras el tutorial y el codigo que esta puesto le faltan cosas respecto al de github... en fin...

XDDDDDDDDDDD

1
Zoko

tutorial que no va a funcionar porque lo escriben fperos

my streamer

1
desu

he pasado, me voy directo al de confluent que lo hice hace a;os y se que va.

despues de comer por alla a las 14h voy a seguir

aren-pulid0

me estan dando una charla de metasesgos en mi empresa, madre mia que pronto me voy a ir de aquí

por supuesto con perspectiva de genero

es que vaya puta ironía

1 respuesta
eondev

#33518 yo contestaba y los dejaba en evidencia xD
btw a @r2d2rigo le molan esas charlas full feministas. Hoy debe ir con la cara pintada y todo

1 respuesta
desu

El tutorial, bonito, 10 lineas:

@EnableBinding(KStreamProcessorWithBranches.class)
@EnableAutoConfiguration
public static class WordCountProcessorApplication {

@Autowired
private TimeWindows timeWindows;

@StreamListener("input")
@SendTo({"output1","output2","output3})
public KStream<?, WordCount>[] process(KStream<Object, String> input) {

		Predicate<Object, WordCount> isEnglish = (k, v) -> v.word.equals("english");
		Predicate<Object, WordCount> isFrench =  (k, v) -> v.word.equals("french");
		Predicate<Object, WordCount> isSpanish = (k, v) -> v.word.equals("spanish");

		return input
				.flatMapValues(value -> Arrays.asList(value.toLowerCase().split("\\W+")))
				.groupBy((key, value) -> value)
				.windowedBy(timeWindows)
				.count(Materialized.as("WordCounts-1"))
				.toStream()
				.map((key, value) -> new KeyValue<>(...)
				.branch(isEnglish, isFrench, isSpanish);
}

interface KStreamProcessorWithBranches {

		@Input("input")
		KStream<?, ?> input();

		@Output("output1")
		KStream<?, ?> output1();

		@Output("output2")
		KStream<?, ?> output2();

		@Output("output3")
		KStream<?, ?> output3();
	}
}

El mundo real, donde hay excepciones no solo de deserializacion y tenemos que mandar las cosas a la dlq:

@Autowired
private SendToDlqAndContinue dlqHandler;

@StreamListener("input")
@SendTo("output")
public KStream<?, WordCount> process(KStream<Object, String> input) {

input.process(() -> new Processor() {
			ProcessorContext context;

			@Override
			public void init(ProcessorContext context) {
				this.context = context;
			}

			@Override
			public void process(Object o, Object o2) {

			    try {
			        .....
			        .....
			    }
			    catch(Exception e) {
			        //explicitly provide the kafka topic corresponding to the input binding as the first argument.
                    //DLQ handler will correctly map to the dlq topic from the actual incoming destination.
                    dlqHandler.sendToDlq("topic-name", (byte[]) o1, (byte[]) o2, context.partition());
			    }
			}

			.....
			.....
});
}

Es increible enserio como enga;an a los fperos, es que nada de esta mierda cuando te pones a verlo en serio funciona. Al final lo tienes que hacer todo a mano como siempre XD

1 respuesta
Traber

Hasta el paint hace mejor el indentado. #33520

1 respuesta
desu

#33521 Es que spring no vale ni para hacer copy paste de su codigo. Ni indentar saben. Putos fperos.

Enserio como me quema este tema.

Con lo agustito que estoy con mi go. Que al menos los fperos cuando la lian es obvio ver lo que han hecho y corregirlo...

Aqui toma veinte beans que se autoinyectan y no sabes donde esta nada definido.

La inyeccion de contenedores de lo peor que le ha pasado a la industria del software con diferencia.

El otro dia en un repo del curro vi algo asi:

Imaginate que es un constructor que acepta una configuracion y tienes varios tipos de configs y varios tipos de Foo/Bar segun la config.... Y si el GetDefautlFoo y GetDefaultBar luego llamaban el mismo GetDefault XD

Pues los hijos de puta hard codearon dentro del constructor todo como en mi ejemplo. XD

Madre mia, es que a la gente la sacas de java y se les olvida todo lo basico de programacion XDDDDDDD para que tienes un constructor si no inyectas los parametros??? Esto es en una libreria que se usa en 4 o 5 proyectos, pues en todos el default hard codeado.

Pues en Go esto lo ves al toque, en java que tienes 10 beans en lugar de llamadas a funciones que puedes ir siguiendo no lo ves y se hace una monta;a de mierda intragable.

edit: perdona el codigo no era asi, en lugar de devolver *Foo tenian una interface y la devolvian. que este error tambien lo cometi yo la priemra semana de aprender go...

r2d2rigo

#33519 lo que me mola es partirle la cara a parguelas como tu

B

cuánta violencia

LLoid

Qué es un metasesgo?

1 respuesta
B

#33525 la orientación que está tomando algo dentro de facebook

aren-pulid0

Os dejo un peque;o resumen del capitulo introductorio de un curso que me estoy estudiando sobre blockchain, ethereum y smart contracts por si lo quereis leer ma;ana mientras os tomais el cafe

Es un tema muy extenso y aqui esta muy resumido, tambien el curso tiene un enfoque pragmatico y no entra en muchos detalles asique... ah y esta en ingles escrito de mi pu;o y letra osea que si leeis algo raro no os asusteis


Blockchain & Ethereum

Blockchains are decentralized databases that operate blocks of transactions, each new block is chained to the previous one, that's why they are called block chains.

Ethereum introduced the concept of smart contracts, these are programs that can be run inside the blockchain through the EVM (Ethereum Virtual Machine). These programs must be compiled to EVM Bytecode to be executed.

Addresses

Blockchains use asymmetric cryptography, a private key (a big random number) is generated on the client side and through ECDSA and private key as input public keys are created. Point to take into account is that you can not obtain a private key from a public key so this relation is not reversible.
In the case of Ethereum these public keys are hashed through the Keccak-256 algorithm (this similar to the more well known SHA-3) obtaining a 64 character string, from those the 40 starting from right to left are kept and 0x is added to finalize with a 42 characters string as the Ethereum address.

Wallets

Wallets are software that manage the creation of a private key and multiple addresses on different blockchains. In order to have a more human approach of the private key instead of a big number it is used a mnemonic phrase (wordlist) which rules are described here.
BIP-0039

Also it is notable to mention that wallets create a layered structure of public keys that ensure privacy. This is a complicated topic, you can know more about this here.
BIP-0032

Transactions

Transactions inside Ethereum can be of 3 types:

Token transactions
Smart contract execution
Smart contract creation

In order to be executed the transaction must give a prize to the network maintainers (miners in the case of proof of work consensus like Ethereum), this must be paid in Ether to calculate the amount of Ether we use Gas * Gas Price.

Gas amount is calculated with the amount of instructions made by the EVM when executing a smart contract.

Transactions have the following parameters:

  • From
  • To
  • Value
  • Gas
  • GasPrice
  • Data

Value is only used when ethers are transferred from one address to another address.
Data is used when you deploy a new smart contract or when you call a function of a smart contract on the blockchain.

The steps to include a transaction on the blockchain are the following:

  1. Build a transaction
  2. Sign transaction with private key
  3. Send transaction to the blockchain
  4. Network maintainers mine the transaction

Smart contracts

Small programs that run on the blockchain, these are some key features

  • Code is inmutable
  • Not required to be executed on a certain server as they are executed on the blockchain
  • They are very safe
  • Easy to transfer money
  • Very slow
  • Limited capabilities, they cannot deal with complicated computation or big amount of data
  • No future scheduling
  • You cannot call API’s outside the blockchain

They are programmed in Solidity, this source code is compiled to EVM Byte and then is able to be run on the EVM.


Me he dejado cosas como que son los algoritmos de hash, los tipos de cuentas en ethereum y las diferentes redes que hay dentro de ethereum pero es tarde en la noche ya...

A ver si en un tiempo me roleo a Web3 / Blockchain developer

@Soltrac

2 3 respuestas
JuAn4k4

#33527 Pagan en bolsas de oro, aunque sea poco eco friendly y acabe desapareciendo (como todo).

1 1 respuesta
Soltrac

#33528 tienes que actualizarte eh....eso de poco eco friendly....la mayoría de redes funcionan con servidores que requieren poca potencia.

Y te digo otra cosa, viene para quedarse. Estamos hablando de que tienes acceso a una base de datos de tamaño infinito en la que no tienes que pagar nada para hacer uso de ella, que sabes que no se va a corromper, ni tienes que preocuparte de su seguridad

1 respuesta
Kaledros

#33529 Y con un poco de suerte un día de estos le encontramos un uso que no implique una huella de carbón como la Estrella de la Muerte o que se use sólo para especular y robar XDD

1
desu

#33527 si necesitas ayuda de blockchain comentame

como sabeis en 2017 ya estaba programando para ethereum y ayudando a establecer los standards de contratos
en 2018 ya tenia mi tfg de votacion que fue pionero en el mundo y despues copiado en miles de proyectos

1
pineda

te ha faltado que solo lo usan narcotraficantes y vendedores de armas

mama mia

1 respuesta
Kaledros

#33532 Tanto no, pero desde el principio ha sido una solución en busca de problema, un poco como inventar el abrelatas antes que la lata. Tiene sus usos, pero si no existieran las criptos habría que ver quién lo usaría y para qué.

1
desu

No teneis ni idea.

Leed esto: https://evanhatch.medium.com/len-sassaman-and-satoshi-e483c85c2b10

Es la unica fuente fiable sobre crypto concurrencias que necesitais.

Las cryptos nacieron para tener emails sin spam.

Dicho esto es un campo de la informatica que ha aportado mucho a los sistemas distribuidos. Porque muchos algoritmos matematicos de los 90 han sido aplicados por primera vez en la blockchain y poco a poco otros sitemas estan pillando tambien.

Imaginaros tener un foro donde la gente que postease mierda (downvotes) le costase dinero. La gente solo postearia serio y de altisima calidad. Pues eso lo resuleves con criptos.

Por un /dev sin fperos y solo desus.

2
PaCoX

alguien de acex? les han jodido la web xd

TheBrotha

#33527 Ya sabes que cuando quieras paso tu cv <3

isvidal

He cenado con tu jefe @desu, Albert, te manda saludos, todo cosas buenas de ti

14
pantocreitor

Vengo a pedir opinión. En modo blog ya he comentado un par de cosillas anteriormente pero por dar info: llevo unos 18 meses desde que me incorporé al mercado laboral en este sector y en esos 18 meses he pasado de ganar 14k a 20k y ahora tengo un par de ofertas de 30k (de hecho una es de 30k y otra de 30 o 31).
La duda viene en una de ellas ya que es subcontratación y a la larga no se como me afecta eso. Me hacen contrato indefinido, me meten en el proyecto y en principio nada mas. En la entrevista con la empresa a la que le daría servicio en caso de aceptar lo comenté y me dijeron que en su sección trabajan con partners de esta manera y que con el tiempo es posible que me hagan interno, pero claro, esto tampoco me inspira mucha confianza.
La otra oferta tendré mas datos esta tarde (igual me acaba interesando mas).

Opiniones?

3 respuestas
Zoko

#33538

@desu te llaman

1 respuesta
pantocreitor

#33539 Pero que se porte bien xD

1 1 respuesta