Skip to content

Latest commit

 

History

History
113 lines (58 loc) · 12.8 KB

day1551-1600.md

File metadata and controls

113 lines (58 loc) · 12.8 KB

Day 1600 Linux Scripts

Today I started to study shell scripting, I start to write basic scripts and learning the Bash language. Write shell scripts is like a write C code, in the past sometimes I needed to write some scripts copying instructions from the internet without deep dive in the details. I believe if a learn how to create application with scripts and learn low level concepts my Software Engineer career receives an upgrade with this new knowledge.

Day 1595-96-97-98-99 The Linux Command Line Book

The last days I have been studying the Linux command book and making an AI course. I learned different commands/tools to process text like uniq, sort, diff, etc. Also commands to show standard output like nl, fold, fmt, etc. The Linux command line is amazing the book suggest knowing some arcane commands to process files that maybe you will not have a use case with the arrives of text editors like Word and Pages. Markdown is a great markup language to create good text files.

Day 1594 Sed Command

Today I learned how to perform basic operations with the sed Linux tool. The sed tool is amazing, offers a stream editor on the CLI, you can edit files without open the file and manipulate manually, with this tool is faster the simple edition of files like change a version number.

Day 1593 Continue Learning about Linux and Command Line

Today I learned the patch, tr and sed Linux commands/tools. I make some investigation related with the transliteration process, I remember in my first days learning programming I learned about the ROT13 cipher algorithm to encrypt your messages moving the character 13 letters in the alphabet, it's amazing how you start to study about X topic and you finish learning amazing new things.

Day 1591-92 Security, TLS, HTTPS

During the weekend, I dedicated my time to studying cybersecurity, AI security, and communication protocols such as TLS and HTTPS. I chose these topics because I didn't have any specific study plans and came across a blog post that sparked my interest in good code practices. However, I realized the need to better manage my study resources and schedule to ensure completion of my ongoing studies.

Day 1587-88-89-90 Javascript, NodeJS and Synchronous Code

These days I have been remembering how to write Javascript code. I needed to refresh my JS knowledge because I started to work on a JS project, I have a problem remembering how works the async code with async/await, I needed to review again the javascript.info async/await tutorial, also remember how to write JS unit tests with jest, on the weekend I have the plan to create an JS application to continue practice.

Day 1586 Analyzing Linux File System

Today I continue reading the Linux book and making some exercises with linux command and Python code. I take the output of some Linux command like cat, sort and uniq, and analyze the output with python, and transform this text plain into CSV file to apply filtering operations.

Day 1584-85 Completed Red Hat Course

On the weekend I completed the Building Kubernetes Application Red Hat course. This course has a 32 hours duration, I spend around three months to complete the course, because the course has multiple labs and exercises. I learned a lot of things in the course specially Containers and OpenShift.

Day 1581-82-83 RedHat Course

These day I have been working in the Building Kubernetes Application course, I am doing the last part of the course, my goal is finish this big and challenge course on the weekend to continue with a site project (a data analytics python application). One of my goals on this year is study Python, Data Engineering and learn a new programming language maybe Go or Rust.

Day 1580 Pandas for Java

Today, I attempted to create a Spark application to perform some data cleaning activities on CSV files. However, I encountered an issue where my application, which uses Java 17, was incompatible with Spark due to errors. After trying different solutions to resolve this problem, I ultimately decided to switch to using Python and Pandas for working with CSV files. I find this approach to be more suitable and efficient. Please don't use a hammer for everything, use the right tool for the work.

Day 1579 Application Problems and GitHub Issues

Today, I have been testing my database application and encountered some errors. It's interesting how even small and obvious errors can go unnoticed until we thoroughly test our code. This experience reminds me of the Agile spirit, where we deliver the Minimum Viable Product (MVP) and continuously improve through iterations. Building a JSON database is not as fast as I initially believed, but it's a valuable learning experience.

Day 1577-78 Java Path Problems

I am currently facing an issue with Java regarding file path management within the JVM filesystem. Specifically, I am encountering an error when attempting to read files from the root folder in a Java JAR application. While my code works fine in Visual Studio Code and when generating the JAR archive on my local machine, it fails when I move the JAR to a different folder. Tomorrow, I will continue investigating and resolving this error.

Day 1575-76 Problems Reading All Documents

I am facing with a problem when try to read all the documents from X collection. The problem is I am trying to read file by file, deserialize the each file into a Map, add the map to a List to finally serialize the List<Map> into a Json, I don't know why I cannot do this due to some Java errors, maybe I need a rest to recover my batteries, well on the weekend I will have some free time to solve this problem.

Day 1573-74 Continue with CRUD Database Operations

These days I have been working in my database project, I could implement the Read and Delete operations. I am happy with my current job completed, my project was created following a TDD methodology for this reason I can change/add features in my code fast.

Day 1572 Serialization and Deserialization

Today I created the basic functionalities for serialization and deserialization in my database implementation, I had some problems when deserialize the content of a file JSON file into a Java String, I am looking for a way to deserialize the Java String into a Java record, the problem is create the code generic to be reused to convert a JSON into X Java record/object.

Day 1571 Document-based database

Today, I continued working on my own database project. I encountered difficulties when attempting to save records/json into a single file. Initially, I planned to store all the records in a single file, with each table represented as a JSON file. However, this approach proved to be complex and caused issues when inserting multiple records. To address this, I have been researching how MongoDB manages these challenges and exploring the document-based approach.

Day 1569-70 Creating My Own Java Database

Today, I embarked on a Java project to enhance my programming skills. The objective of this project is to create a basic database that supports CRUD functionalities. I have decided to store the data in JSON files, which will be generated in the project's source directory within a dedicated folder. Throughout this project, I am following the Test-Driven Development (TDD) methodology, allowing me to enjoy the process of coding for a personal project after a long time.

Day 1567-68 Java Testing

I encountered a challenge today while attempting to create unit tests for a Java class. My goal was to add a new feature to the application, and I wanted to establish unit tests to ensure its quality and maintainability. However, I faced difficulties due to the inherent complexities of testing legacy code, particularly those arising from code dependencies.

While I firmly believe that unit testing is the most effective approach to understanding and validating code behavior, I was unable to fully implement tests within the required timeframe due to the feature's urgency.

Day 1566 CRLF and LF

Today, I learned why my VSC editor shows LF as the end-of-line sequence value. It was fascinating to discover that Windows uses CRLF (\r\n) and Linux uses LF (\n) for this purpose. The different approaches have historical roots, dating back to the early days of computing. While the reasons may seem outdated today, understanding this legacy adds depth to our appreciation of computer science.

Day 1565 Continue Reading About Linux

These days I have been reading the Linux command line book. I am reading the book and making excersises in my computer at the same time, it is amazing how the terminal is very powerfull and useful when you lose the fear. Today I had a unconfort situation in my work due to my English skill, I know English is very important in the Software Engineering industry, please if you are reading this, learn English and learn good, talk with people in discord, watch TV in English but the most important thing is practice this skill everyday.

Day 1561 Synchronous Architectures and Python

Today I was working in a issue related with a race condition in two Microservices that need to interact between them in the correct order, I saw this problem other times and I performed some exercises in the past to avoid issues using Events to communicate rather than synchronous code and waiting always that the process X finish it is execution before process W starts. Microservice are amazing I love how a simple Microservice design can be converted into a complicated scenario.

Day 1560 Grep and Linux Dictionary

Today I started to learn about the grep in Linux. I practice performing some grep commands using different Metacharacters like anchors and brackets. Also I discovered that Linux distributions have a dictionary, and yes this is amazing look in the /usr/share/dict/words path. On my work I read the pandas documentation about the to_dict because I need to work with this functionality.

Day 1559 Python and Flexibility

Today I was working in a task that needs to be performed fast, I choice Python to create and execute the task duw to the Python simplicity and their useful libraries to work with files, I have a lot of desire to learn how to apply TDD for this simple task working with Python, my testing skills in Python are little.

Day 1556-57-58 Java Http Server

On the weekend I have been learning about the jwebserver, a Java tool to crate a HTTP server for testing purposes. This tool is amazing sometimes we only need a HTTP server to put some information that work as an external API, and another service use this information to perform their work. Also I learned how to create a Java HTTP server for testing purposes mounting a directory hierarchy and some files in the server in memory without save the information in disk, this exercise was amazing.

Day 1555 Java and Linux

Today I learned more about Maven, I studying which plugins are required to create Java applications packaged into a jar file, how I can create a jar artifact with all the required dependencies to run. Also I continued studying Linux, now is the time to study some tools to find files and directories.

Day 1554 OpenShift S2I

Today I learned how to create applications in OpenShift with the S2I Strategy builder, was interesting how OpenShift with only a git repository with a app.py file can create and deploy an application fast. Working in creating the previous application I noticed that I don't know how to create a Java application from scratch without use a tool like maven or gradle, my plan is learn how to create a maven project without using the mvn command because in the host that I use I don't have maven installed, tomorrow I will review how to achieve this.

Day 1553 Data Analytics

Today, I engaged in several data analytics tasks. I am of the opinion that, in the future, AI tools like ChatGPT, which facilitate effortless data analytics, will diminish the significance of this aspect of software engineering. Consequently, I am hesitant to further develop this skill, although it was necessary for my current tasks. Moving forward, I am contemplating aligning my job responsibilities more closely with my long-term goals and steering clear of studying subjects that do not contribute to these objectives.