Around IT in 256 seconds

Podcast for developers, testers, SREs... and their managers. I explain complex and convoluted technologies in a clear way, avoiding buzzwords and hype. Never longer than 4 minutes and 16 seconds. Because software development does not require hours of lectures, dev advocates' slide decks and hand waving. For those of you, who want to combat FOMO, while brushing your teeth. 256 seconds is plenty of time. If I can't explain something within this time frame, it's either too complex, or I don't understand it myself.

By Tomasz Nurkiewicz. Java Champion, CTO, trainer, O'Reilly author, blogger

Kategorie:
Technologia

Odcinki od najnowszych:

#17: BPM: Business process modeling
2020-10-06 22:48:16

[...] All of this complexity is somewhat hidden with BPM framework. First of all the process is first drawn. Using a special notation known as BPMN. This is actually quite natural. You use arrows to show how insurance claim changes state over time - and why. Then the diagram is translated into fairly standard XML. Now those pesky developers need to fill in the gaps. I mean, writing code that does some logic. For example sending an SMS when a claim enters a certain state. Or transferring money when a transition happens from one state to another. [...] Read more: https://256.nurkiewicz.com/17 Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

[...] All of this complexity is somewhat hidden with BPM framework. First of all the process is first drawn. Using a special notation known as BPMN. This is actually quite natural. You use arrows to show how insurance claim changes state over time - and why. Then the diagram is translated into fairly standard XML. Now those pesky developers need to fill in the gaps. I mean, writing code that does some logic. For example sending an SMS when a claim enters a certain state. Or transferring money when a transition happens from one state to another. [...]

Read more: https://256.nurkiewicz.com/17

Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#16: Akka
2020-09-23 01:11:11

Akka is a toolkit for building highly scalable, concurrent applications. It's written in Scala and based on the ideas from Erlang. Its approach to achieve concurrency is quite radical. Rather than mutexes, semaphores and shared memory, Akka uses so-called _actor model_. Actor is a small, stateful object that doesn't expose traditional methods. Instead, actors send and receive asynchronous messages with each other. There is no other way to interact with an actor. If you want an actor to do something or give you some information, message passing is the only way. Send a message, actor will receive it at some point in time, consume it and optionally send a response back.  Read more: https://256.nurkiewicz.com/16 Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

Akka is a toolkit for building highly scalable, concurrent applications. It's written in Scala and based on the ideas from Erlang. Its approach to achieve concurrency is quite radical. Rather than mutexes, semaphores and shared memory, Akka uses so-called _actor model_. Actor is a small, stateful object that doesn't expose traditional methods. Instead, actors send and receive asynchronous messages with each other. There is no other way to interact with an actor. If you want an actor to do something or give you some information, message passing is the only way. Send a message, actor will receive it at some point in time, consume it and optionally send a response back. 

Read more: https://256.nurkiewicz.com/16

Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter


#15: Mutation testing
2020-09-15 00:00:59

Imagine I wrote a script that takes your codebase and removes a random line. Fairly simple. Or maybe some more subtle change, like replacing plus with minus operator? Or switching `x` and `y` parameters with each other? OK, so now my script builds your project. Most of the time it will fail the compilation or test phase. But what if the build succeeds? Well, apparently your test suite is not covering some lines? OK, but what if my script only removes or alters lines covered by tests? How is it possible that the build still succeeds? Turns out your tests aren't as good as you think. And I just described mutation testing that discovers that. Read more: https://256.nurkiewicz.com/15 Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

Imagine I wrote a script that takes your codebase and removes a random line. Fairly simple. Or maybe some more subtle change, like replacing plus with minus operator? Or switching `x` and `y` parameters with each other? OK, so now my script builds your project. Most of the time it will fail the compilation or test phase. But what if the build succeeds?

Well, apparently your test suite is not covering some lines? OK, but what if my script only removes or alters lines covered by tests? How is it possible that the build still succeeds? Turns out your tests aren't as good as you think. And I just described mutation testing that discovers that.

Read more: https://256.nurkiewicz.com/15

Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#14: Static, Dynamic, Strong and Weak Type Systems
2020-09-01 00:30:40

When choosing or learning a new programming language, type system should be your first question. How strict is that language when types don't really match? Will there be a conservative, slow and annoying compiler? Or maybe a fast feedback loop, often resulting in crashes at runtime? And also, is the language runtime trusting you know what you are doing, even if you don't? Or maybe it's babysitting you, making it hard to write fast, low-level code? Believe it or not, I just described static, dynamic, weak and strong typing. Read more: https://256.nurkiewicz.com/14 Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

When choosing or learning a new programming language, type system should be your first question. How strict is that language when types don't really match? Will there be a conservative, slow and annoying compiler? Or maybe a fast feedback loop, often resulting in crashes at runtime? And also, is the language runtime trusting you know what you are doing, even if you don't? Or maybe it's babysitting you, making it hard to write fast, low-level code? Believe it or not, I just described static, dynamic, weak and strong typing.

Read more: https://256.nurkiewicz.com/14

Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#13: Cassandra
2020-08-18 09:12:02

Cassandra is an open-source NoSQL database. It's heavily optimized for writes, but also has intriguing read capabilities. Cassandra has near-linear scalability. In terms of CAP theorem it favours availability over consistency. Interestingly, despite NoSQL label, Cassandra tables have strict schema. Also, Cassandra Query Language is similar to SQL. Read more: https://256.nurkiewicz.com/13 Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

Cassandra is an open-source NoSQL database. It's heavily optimized for writes, but also has intriguing read capabilities. Cassandra has near-linear scalability. In terms of CAP theorem it favours availability over consistency. Interestingly, despite NoSQL label, Cassandra tables have strict schema. Also, Cassandra Query Language is similar to SQL.

Read more: https://256.nurkiewicz.com/13

Get the new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#12: Continuous integration, delivery and deployment
2020-08-11 08:56:06

Typically, more than one developer is working on the same codebase. How do they share their work? The simplest approach is a common Dropbox folder. This has several drawbacks, mainly we risk breaking other's work with our half-done features. So we come up with version control systems. Read more: https://256.nurkiewicz.com/12 Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

Typically, more than one developer is working on the same codebase. How do they share their work? The simplest approach is a common Dropbox folder. This has several drawbacks, mainly we risk breaking other's work with our half-done features. So we come up with version control systems.


Read more: https://256.nurkiewicz.com/12

Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#11: MapReduce
2020-08-04 08:29:29

MapReduce is a programming model for processing large amounts of data. It works best when you have a relatively simple program, but data is spread across thousands of servers. MapReduce was invented and popularized by Google. I'll talk about MapReduce in general and Hadoop in particular. Read more: https://256.nurkiewicz.com/11 Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

MapReduce is a programming model for processing large amounts of data. It works best when you have a relatively simple program, but data is spread across thousands of servers. MapReduce was invented and popularized by Google. I'll talk about MapReduce in general and Hadoop in particular.


Read more: https://256.nurkiewicz.com/11

Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#10: HTTP protocol
2020-07-28 00:15:52

HTTP protocol is fundamental to the Internet. It's a simple request-response protocol where the request is initiated by the client, typically a web browser. Read more: https://256.nurkiewicz.com/10 Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

HTTP protocol is fundamental to the Internet. It's a simple request-response protocol where the request is initiated by the client, typically a web browser.

Read more: https://256.nurkiewicz.com/10

Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#9: Retrying failures
2020-07-21 22:55:15

I find it quite fascinating how many failures in complex systems could be avoided if we simply... tried again. So how so you retry effectively, so that your systems are much more fault-tolerant and less brittle? Read more: https://256.nurkiewicz.com/9 Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

I find it quite fascinating how many failures in complex systems could be avoided if we simply... tried again. So how so you retry effectively, so that your systems are much more fault-tolerant and less brittle?

Read more: https://256.nurkiewicz.com/9

Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

#8: Kafka's design
2020-07-14 21:16:31

Kafka is not a message broker. However, it can be used as such very effectively. Instead, I'd like to think about as a very peculiar database. A database where inserts are insanely fast and sequential reads are preferred and very fast as well. In this episode I am focusing on the architecture and internals of Kafka. The best way to understand Kafka is by examining how it works. Read more: https://256.nurkiewicz.com/8 Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

Kafka is not a message broker. However, it can be used as such very effectively. Instead, I'd like to think about as a very peculiar database. A database where inserts are insanely fast and sequential reads are preferred and very fast as well.

In this episode I am focusing on the architecture and internals of Kafka. The best way to understand Kafka is by examining how it works.

Read more: https://256.nurkiewicz.com/8

Get new episode straight to your mailbox: https://256.nurkiewicz.com/newsletter

Informacja dotycząca prawa autorskich: Wszelka prezentowana tu zawartość podkastu jest własnością jego autora

Wyszukiwanie

Kategorie