Plurrrr

a tumblelog
week 14, 2020

The beginner’s guide to Nmap scanning

Nmap is probably one of the most known scanning tools. Nmap is a free and open-source network scanning tools created by Gordon Lyon. It’s used to scan hosts for open ports and running services. In the present post, you will have a great understanding of the most useful scanning commands implemented by Nmap. Let’s dive in.

Source: The beginner's guide to Nmap scanning.

Dependency Injection in Go using Fx

But as your software grows, you start feeling the growing pains – your main function starts becoming more and more convoluted. You start having all sorts of small bits and pieces plugged in here and there – healthchecks, database setup code, metrics, tracers, external API connections, etc etc.

And what if your application grows into a microservice architecture? What do you do when you have five different microservices demanding the same bunch of setup code, specific to your environment?

In this article, I will introduce you to Fx. It’s a Go framework which solves both problems outlined above using dependency injection.

Source: Dependency Injection in Go using Fx, an article by Preslav Mihaylov.

Brachypelma smithi eating

Just before 1PM I gave a a mealworm, Tenebrio molitor, to my Brachypelma smithi. This was the second time it ate in my care, the previous time was last Saturday.

Brachypelma smithi eating a mealworm
Brachypelma smithi eating a mealworm, Tenebrio molitor.

I probably schedule a weekly feeding for this little one.

Ladybird Beetles

In the early evening Adam and Alice collected ladybird beetles, Coccinella sp. in order to release them on the insect hotels we bought recently.

Coccinella spp on an insect hotel
Ladybird beetles, Coccinella sp., resting on an insect hotel.

Several of the beetles ran away from the insect hotels and most likely won't stay.

6 Things Markdown Got Wrong

John Gruber's Markdown is almost a perfect content authoring format. Here are 6 things it got wrong (in my opinion, of course).

Source: 6 Things Markdown Got Wrong.

Buying Plants

Before noon, Esme and I went to garden centre "De Carlton", which is just a short ride from our house. I was not sure if the place wou ld be open but it was. I wanted to buy two orchids, Phalaenopsis sp. And after looking around for a while Esme fell in love with a large specimen of Monstera deliciosa.

Guzmanias on display
Guzmania plants on display.

When I found out it was only 5 euro to have the large plant delivered I decided to buy it as displayed standing inside a nice basket.

Monstera deliciosa in our living room
Monstera deliciosa in our living room.

On our way back, Esme spotted a large branch. In "De Carlton" they have a large branch hanging with plants and lamps attached to it. She wants something like this above our dining table. Despite the branch being large and heavy she insisted on carrying it on her bike while walking.

Moth Orchid Phalaenopsis sp. flowering
Moth Orchid Phalaenopsis sp. flowering.

Past 4pm the two orchids and the Monstera were delivered home. I took photos of the Monstera in its new location, and a photo of each of the orchids against a white background.

Moth Orchid Phalaenopsis sp. flowering
Moth Orchid Phalaenopsis sp. flowering.

The branch Esme took is probably going to be a weekend project. I can't wait to see it in place.

What’s a virus, anyway?

For starters, viruses are easily the most abundant life form on Earth, if you accept the proposition that they're alive. Try multiplying a billion by a billion, then multiply that by ten trillion, and that (10 to the 31st power) is the mind-numbing estimate of how many individual viral particles are estimated to populate the planet.

Source: What's a virus, anyway? Part 1: The bare-bones basics, an article by Bruce Goldman.

Don’t repeat my mistakes while developing a ML library

A while ago, I took a project where the goal was to develop a Natual Language Processing (NLP) library that would support multiple pre-trained embedding methods (BERT, Elmo, Word2Vec, etc.) — similar to Hugging Face’s transformers but with more models and support for multiple languages. The library should take a document corpus on the input and transform it into an aggregated embedding for each document. The library should be developed in Python 3 and the goal was to integrate it into an online platform for Machine Learning. In the development process, I’ve made many mistakes and I am sharing it with you, so you don’t repeat them. Most importantly I learned a lot!

Source: Don’t repeat my mistakes while developing a Machine Learning library, an article by Roman Orac.

Tarantula rehousing

In the afternoon I rehoused my smallest tarantula, a Chromatopelma cyaneopubescens, from the plastic container it came in when I bought it to a much higher plastic container; 0.65 litre or 0.17 gallon. This species likes to web a lot and with a few twigs, which easily fit in the higher container, I could provide more anchor points.

Chromatopelma cyaneopubescens new terrarium
Chromatopelma cyaneopubescens in its new terrarium.

In the above photo you can see the spider resting on top of some of its old webbing (left) which I transferred when I rehoused the tarantula. You can also see the 1mm holes I drilled for cross-ventilation. I also drilled four 1mm holes in the lid. The substrate to the right is kept slightly moist as this species prefers a dry climate. I used all substrate that came in the original container, which in this new container adds up to a depth of nearly 4cm or 1.57 inches.

How to SSH Properly

SH is a powerful tool which often grants a lot of access to anyone using it to log into a server. In this post, I’m going to talk about a few different ways that you can easily improve the security of your SSH model without needing to deploy a new application or make any huge changes to user experience.

Source: How to SSH Properly, an article by Gus Luxton.

What the heck is pyproject.toml?

And so I decided to write this blog post to try and explain to setuptools users why pyproject.toml exists and what it does as it's the future of packaging in the Python ecosystem (if you are not a conda user 😉).

Source: What the heck is pyproject.toml?, an article by Brett Cannon.

Mixins in Python and Ruby Compared

The venerable “mixin” is a technique I learned as a Python developer. Now, after writing Ruby code for the past year, I’m excited to compare how these two languages approach mixins, including similarities, differences, and traps. There will be code!

Source: Mixins in Python and Ruby Compared, an article by Andrew Brookins.

Analyzing Docker Image Security

Docker containers are not inherently secure as many people think. So, it’s crucial use tools and scanners to rid your containers of vulnerabilities…

Source: Analyzing Docker Image Security, an article by Martin Heinz.

I Am Switching to JS

After 5 years of using Go I am finally moving on. Go has served me well and has been the best language I could have possibly used for the longest time, but it is now the moment for me to let it Go.

Over time Go has not failed to show me its limitations and its issues, to the point where I decided to switch to something more future proof and with a more thriving community.

I don’t want to write this post as a list of things that pushed me away from my previous language, I find that kind of post sterile and of very little use for the readers, this is just a post on what I find great in JavaScript and what made me decide to switch.

Source: I Am Switching to JS.

State machines in Rust

Now that we've looked at what state machines are, and hopefully convinced you of their usefulness, let's take a look at how to implement them in Rust. Much of what I'm saying here was inspired by Hoverbear's "Rust state machine pattern" post, which I recommend reading.

Source: State Machines, an article by Yoshua Wuyts.

Useful Queries For PostgreSQL Index Maintenance

PostgreSQL has a rich set of indexing functionality, and there are many articles explaining the syntax, usage, and value of the index. In this article, I will write basic and useful queries to see the state of database indexes.

Source: Useful Queries For PostgreSQL Index Maintenance, an article by Ibrar Ahmed.

Falsehoods programmers believe about time

I have repeatedly been confounded to discover just how many mistakes in both test and application code stem from misunderstandings or misconceptions about time. By this I mean both the interesting way in which computers handle time, and the fundamental gotchas inherent in how we humans have constructed our calendar – daylight savings being just the tip of the iceberg.

In fact I have seen so many of these misconceptions crop up in other people’s (and my own) programs that I thought it would be worthwhile to collect a list of the more common problems here.

Source: Falsehoods programmers believe about time, an article by Noah Sussman.

When to assume neural networks can solve a problem

Thus, I thought it might be helpful to lay down the heuristic that generates such answers. I by no means claim these are precise or evidence-based in the scientific sense, but I think they might be helpful, maybe even a good start point for further discussion on the subject.

Source: When to assume neural networks can solve a problem.

The iPad at 10: Emerging from the Shadow of the iPhone

The 10th anniversary of the iPad isn’t a destination, it’s just an arbitrary point from which to take stock of where things have been and consider where they are going. To do that, it’s instructive to look at more than the endpoints of the iPad’s history and consider what has happened in between. Viewed from that perspective, the state of the iPad ten years later, while at times frustrating, also holds reason for optimism. No single product in Apple’s lineup has more room to grow or potential to change the computing landscape than the iPad does today.

Source: The iPad at 10: Emerging from the Shadow of the iPhone, an article by John Voorhees.

How to Use any() in Python

As a Python programmer, you’ll frequently deal with Booleans and conditional statements—sometimes very complex ones. In those situations, you may need to rely on tools that can simplify logic and consolidate information. Fortunately, any() in Python is such a tool. It looks through the elements in an iterable and returns a single value indicating whether any element is true in a Boolean context, or truthy.

Source: How to Use any() in Python, an article by Alex Ronquillo.