Eduardo Zepeda's latests posts

This may look pretty good so far, at first, but it has multiple disadvantages; first, you will be creating workers without control, which can increase your program’s memory usage incredibly fast; second, you are constantly creating and destroying workers, which can be costly for your program.

","datePublished":"Wed, 28 Jun 2023 00:00:00 +0000","dateModified":"Wed, 28 Jun 2023 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/software-architecture/worker-pool-design-pattern-explanation/"}},{"@type":"BlogPosting","headline":"Chat Gpt, Searle's Chinese Room and consciousness","description":"

Chat GPT is on everyone’s lips, some are afraid of it, because of its ability to solve code problems others are excited about its potential to change the world of work. Today I leave aside the economic consequences of AI and the question about whether we’re in an overhyped AI bubble or not , to focus on the philosophical aspect of Chat GPT and reflect a bit on the question: does Chat GPT really understand language, is Chat GPT conscious?

","datePublished":"Wed, 19 Apr 2023 00:00:00 +0000","dateModified":"Wed, 19 Apr 2023 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/artificial-intelligence/chat-gpt-searles-chinese-room-and-consciousness/"}},{"@type":"BlogPosting","headline":"Go with Reflect: Boost Your Code's Flexibility","description":"

The “reflect” package is a useful library in the Go programming language that provides functions for working with reflection.

\"\" Hey! did you know that I wrote a completely Free Go programming language tutorial?, click here to read it it

What is reflection in programming?

Reflection is the ability of a program to inspect its own structure at runtime. This includes the ability to examine: types, values and metadata of objects in memory. Reflection allows us to have more flexible and generic code and allows us to create functions and data structures that can work with any type of object, regardless of its type. It is also the basis for metaprogramming.

","datePublished":"Mon, 13 Mar 2023 00:00:00 +0000","dateModified":"Mon, 13 Mar 2023 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/go/go-with-reflect-discover-how-reflect-can-boost-your-programs-flexibility/"}},{"@type":"BlogPosting","headline":"Stream your videos and audios: HLS for your applications","description":"

Almost all modern web applications perform some form of streaming, from video platforms to live streaming. In this post I explain how streaming works with HLS in such a simplified way that it will bring out your inner purist.

I leave you a minimal example of streaming in Go here in my github repository , in case you want to see the code.

Introduction to streaming

Videos and audios contain a lot of encoded information, so their handling and downloading strongly impacts the bandwidth and usage of any server.

","datePublished":"Thu, 02 Mar 2023 00:00:00 +0000","dateModified":"Thu, 02 Mar 2023 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/linux/stream-your-videos-and-audios-a-simple-introduction-to-streaming-with-hls-for-your-applications/"}},{"@type":"BlogPosting","headline":"Fast and performant APIs using Go Lang gRPC and Protobuffers","description":"

Protobuffers allow you to create a Go Lang gRPC API that has the characteristic of being incredibly faster, because it uses binary instead of other less optimized formats (such as JSON), in this post you will learn what this type of API is and why it is so fast.

In my post about the basic characteristics of a REST API I mentioned to you that, besides REST, there were other types of APIS, one of them is gRPC, which is derived from RPC, so let’s start the post talking about the latter.

","datePublished":"Thu, 19 Jan 2023 00:00:00 +0000","dateModified":"Thu, 19 Jan 2023 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/software-architecture/fast-and-performant-apis-using-go-lang-grpc-and-protobuffers/"}},{"@type":"BlogPosting","headline":"I Test ChatGPT With Codewars Coding Challenges","description":"

ChatGPT is breaking with everything previously known in artificial intelligence, some developers are worried that it may replace them in their jobs, just as Github Copilot threatened at the time. In this post I test ChatGPT’s supposed intelligence against three codewars challenges.

How does Codewars work?

Before we start you need to understand that Codewars is a social network for programmers where code challenges written by the same users are shared. Each challenge can be tested with a series of tests and, if it passes all of them, the challenge is considered completed. These challenges are called katas.

","datePublished":"Mon, 12 Dec 2022 00:00:00 +0000","dateModified":"Mon, 12 Dec 2022 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/artificial-intelligence/i-test-chatgpt-with-codewars-coding-challenges/"}},{"@type":"BlogPosting","headline":"Go Migration Tutorial with migrate","description":"

In frameworks like Django, migrations are created automatically , from the models. However, in languages like go, as long as we are not using an ORM, migrations will be done manually.

\"\" Hey! did you know that I wrote a completely Free Go programming language tutorial?, click here to read it it

What is a database migration?

A migration is an abstraction to manage the state and changes that occur in a database. Instead of executing SQL statements one by one manually, we automate the process by writing all the necessary SQL and running it automatically.

","datePublished":"Fri, 25 Nov 2022 00:00:00 +0000","dateModified":"Fri, 25 Nov 2022 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/go/go-migration-tutorial-with-migrate/"}},{"@type":"BlogPosting","headline":"Go: Handling Signals for Closing Applications","description":"

Today I’m going to talk about a topic that is often overlooked in most tutorials: handling application closing. What do I mean? To those times when you have to close an application, but there may be pending tasks running, open connections or you simply want to leave a record, in the form of a log, that the application was closed.

\"\" Hey! did you know that I wrote a completely Free Go programming language tutorial?, click here to read it it

","datePublished":"Thu, 06 Oct 2022 00:00:00 +0000","dateModified":"Thu, 06 Oct 2022 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/go/go-handling-signals-for-closing-applications/"}},{"@type":"BlogPosting","headline":"Generating PDFs with Django and Reportlab","description":"

With django and reportlab we can generate PDFs dynamically, using information from our database, user input or any other business logic we want.

Installation of reportlab

The first thing will be to install reportlab, we can use pip, pipenv or any other package manager you want.

pip install reportlab
# pip install reportlab

Define PDF response type in Django

Once installed, the first lines we will write will be to make sure that the browser knows that we will return a pdf, we will do it through an HTTP header, the Content-Type header, through the content_type variable.

","datePublished":"Thu, 22 Sep 2022 00:00:00 +0000","dateModified":"Thu, 22 Sep 2022 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/django/generating-pdfs-with-django-and-reportlab/"}}]}