What have I been doing?

Well, it is pretty hard to answer.

No matter how tough you are, the pandemic hit us hard. I was able to manage the two years after I dived into work.
I literally worked as many hours as I worked back when I just started my career. I was thrilled and had an exciting drive. The project I was working on needed many features and during business hours, I rushed to create endpoints and features; by night, I improved tests and documentation.

Soon, stress and panic attacks took over the excitement and drive I had while I coded. One day I simply fell during the shower due to dizziness, and that made me reevaluate the whole situation.
It turned out impossible to dedicate myself to personal projects or any activity I love. At that point, I struggled to do the basics.
Don’t get me wrong, I loved that company and I am completely grateful for such an opportunity. I spent 6 years of my life there and to be honest, I never completed 2 years in a company before because there was always a better open position. I learned a lot and worked with skilled people that were always willing to share knowledge and experience.

The company and the projects suffered a few changes. We moved all our codebase from Azure Functions NodeJS to C#/NetCore6. It’s supposed to be a great learning experience and growth opportunity. But to me, it simply wasn’t.
The stress and panic attacks turned into a burnout and I, for the first time, had no joy in coding. My productivity dropped drastically and I had a hard time keeping focus or finishing my deliverables. It was frustrating to see myself acting like that, I really wanted to be a good employee and programmer.

So I took the decision to check new opportunities, to answer every recruiter on LinkedIn, and to apply to great companies. My mistake was not taking a period for myself but starting to enroll in many recruitment processes. I started a trial process in a company that really knows how to treat its staff, but I messed up… I messed up really hard because I still couldn’t focus and work like before.

Fortunately, I was accepted by another company. They really liked my experience, knowledge, and way to solve problems. It’s been a great experience so far and the level of pressure, stress, and work volume have been completely bearable for my well-being. Well, let’s not forget that 20 days into the new company I got appendicitis and it burst. Maybe it’s my body’s response to everything I went through before, maybe it’s just a coincidence. But I am getting better every day.

I started plentiful projects and/or activities in the past three to four years, some I had to drop, and some I wasn’t motivated to keep on. I am going to comment on a few:

VST Plugin – Boss HM2

I created a rough VST plugin effect simulating the infamous Boss HM-2, known for its chainsaw sound and notorious for the old-school Swedish death metal guitar tone. It was created using iPlug2 and faust language and consisted basically of an asymmetric clipping stage followed by three parametric equalizer filters(one for the low knob and two for the high knob). It did the job surprisingly quite well, but nothing different than what could be achieved using any good distortion plugin followed by any equalizer plugin.

For my very first project, it was fine, but my goal was to model the effect after the real circuit and soon I was dealing with quadratic functions, filter topologies, frequency response functions, thick signal processing books, and many things I wasn’t ready to deal with. At least at that moment and with the volume of work I was dealing back then.

It was a fun experience and I definitely plan to go back to it, but I still need to understand a lot of signal processing to be able to model the circuit schematic to the proper equations and functions.

Poetry

One day I was just laying down in bed and I had a moment where the words started coming to my mind. I got up and started writing non-stop until I finished my (very first) poem.

I really don’t know how to explain how it happened, maybe it was inspiration? I don’t know. It happened a few times more and now I am trying to write on a regular basis, even if it’s not something that I find good… I can’t rely on inspiration every time.

Vermicomposting

Since I have a couple of birds, there is always a few fruit leftovers that they reject during the day and I also deal with cardboard and paper bags from services like Amazon. Considering this, I decided to start a worm farm.

There is not much to say, they kinda do all the work for me. But it is really exciting to research and understand more about these detritivorous creatures… and obviously reduce my waste output

Gardening

After these years, I ended up moving to an apartment with an external area and, combined with the worms mentioned earlier, sounded like the perfect environment to grow some crops. I have quite a few pots with different herbs and chili peppers, I am still considering getting bigger pots to have larger plants.

Compared to my usual activities, it’s something completely different to have small interactions and see the changes after some days or weeks.

Fermenting

I started and brew a few batches of Kombucha during the pandemic. It worked well and I am definitely revisiting it soon. Recently I also did my own hot sauce, even bottled it into small glass bottles to give it a gift to friends. Oh… did I mention I grew the chilies?

URL Shortening and PasteBin clone

As a way to learn and keep myself motivated, I like to start personal projects using languages and technologies different from what I use while working. Since I never used MongoDB(or any NoSQL), I decided to do a couple of simple projects.

With ExpressJS and MongoDB I created my own version of Pastebin and URL shorter for personal use.

What’s up next?

Well… I am planning to keep track of my new or ongoing activities and projects here. It’s quite abandoned right now, to be honest.

I feel quite insecure to open the source of some projects, like the VST or the ExpressJS/MongoDB one, at least when working with something I am still learning and I don’t dominate yet. It feels like I am showing all my mistakes to the world.
But well… I am starting a new project with Rust and SFML, my goal is to document (and commit) every step and hopefully start new projects after the first one.

So please, unlike the B string of my guitar: stay tuned!

Three survival tools for an inhospitable (production) environment

As a web developer, you may need to deal with your client’s production environment. Sometimes it’s not the easiest environment to work with, like in a shared hosting or a limited

I already worked with some clients that I wasn’t able to remote connect to the database. Others didn’t allow me to connect to a regular FTP service, all files had to be transferred one by one via a Web FTP.

Over the years I’ve put together some tools to help me with those situations.Other than small snippets and scripts, here are three of the tools that I must used in the last eight years.

Adminer (formerly phpMinAdmin)

Adminer is a single file database management tool written in PHP that can handle MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch and MongoDB. Useful since most of the free database GUI tools doesn’t offer Tunneling connections.

MySQL BigDump

BigDump allows you to import massive and large MySQL dumps. It works well very limited servers.

phpFileManager

phpFileManager can help you when you don’t have FTP access to the hosting. It’s multi-uploader and compress/extract are very convenient.

Conclusion

I know that the use of such hostings are decreasingly over the years. But we, as developers, must be prepared to such sittuations. I hope my tips here can help you someway.

Setting up a half-assed PHP development environment on Windows

I, personally, don’t like to develop on Windows, but sometimes I am sitting at my desktop computer(that I use mainly for gaming) and need to code or fix something. Here I will present the setup that I use.

Cygwin64

Have you ever wondered to use git, gcc, make and even emacs on Windows? Cygwin is the easy way to achieve that. Download and run the Cygwin installer. The base package works fine, but make sure to install net/openssh and devel/git packages are selected.

Now just set your system’s PATH environment variable including the cygwin /bin/ folder path.

ConEmu

conemuThis step is not entirely necessary, but I don’t regret using it. Download and install ConEmu. Open the Settings (Super+Alt+P), select the Startup entry from the tree menu and select Specified named task to Cygwin Bash.

 

Vagrant and Scotch Box

I used to roll my Vagrant boxes using PuPHPet. Recently on Windows I had some issues with shared folders settings, I am now using the preconfigured box from Scotch Box.

First download and install VirtualBox and Vagrant. Then clone and setup with vagrant, the first time will take a while since Vagrant need to download the image.

git clone https://github.com/scotch-io/scotch-box.git scotchbox
cd scotchbox
vagrant up

Before shutting down your computer, you should suspend your box.

vagrant suspend

You can ssh into your box using the following command:

vagrant ssh

Visit http://192.168.33.10/ to access your box.
This setup is far from perfect, but it works for me. A while ago I used JetBrains PhpStorm as IDE to develop, recently I changed to Atom simply because it loads faster and I don’t use all the features of PhpStorm.