GitLab Code Quality in the Multiverse of Madness

 > Me

> gitlab codequality widget in gitlab MR view

> Displays "Code Quality hasn't changed."

> Sus

> Starts debugging

> Checks if the codequality schema is valid

> Output schema valid

> Visible confusion

> Checks gitlab docs

> After 2 days of debugging i was able to fix it

 

Whats needed for gitlab to display codequality MR widget?

> Both base and target branch must have branch pipelines, not MR pipelines

> The codequality json file must have schema https://docs.gitlab.com/ci/testing/code_quality/#code-quality-report-format 

> Both base and target branch must have codequality artifact

> For me all of the conditions were met.

 

What went wrong ?

 Even though the schema is valid, gitlab doesn't specify this key info in their docs.

check_name: A unique name representing the check, or rule, associated with this violation.

 > This parameter check_name should never have any spaces in it

> Having spaces in this field will silently fail the codequality report

 

a close up of a man in a superhero costume with his mouth open . 

 

> bYE. 

 

Share:

We Won Big

 

A pic of me with my chonky boy blue

>feel like i don't appreciate the things i have enough
>one of them is my pet, feathered friend blue

>he fell sick in dec 2024
>took him to a local vet
>prescribed antibiotics without any diagnosis
>symptoms worsened
>literally begged many vets online/offline to treat him
>met with silence, nobody cared


>one of them had the audacity to say i had to let him die and dispose it

>found fur and feather pet clinic online
>me and my nephew vetri took blue there
>thank you vetri — helped me put him in the cage, take him to salem, find the clinic, everything

>met dr. mohan raj there
>thank you doctor — competent, objective, accurate diagnosis
>liver function test done
>diagnosed blue with liver issue
>advised liver supplements

>during this, blue fell very sick again
>admitted in the same clinic for 5 days
>they took good care of him and made him recover

>started liver supplements
>2 doses per day
>i had to hold him with a towel
>give medicine through syringe without causing aspiration

>6 months passed
>this month symptoms disappeared
>feels like we won this battle

>blue is one of the reasons i want to stay in this world
>human relationships mean nothing to me
>stay strong lil bro blue
>love u for your existence, you have no idea how much you mean to me ;)

Share:

Expense tracker #62829 just dropped. Who asked?

>not trying to sound elitist but
>every time I doomscroll, there's a new expense tracker
>starter pack: add expense, select category, throw in fancy charts

>why tho?

>no one in their right mind logs expenses manually
>life is already boring.

>these apps aren't solutions, they're band-aids over existential dread

>every transaction already goes through the bank
>just give us one simple API to fetch them
>would instantly wipe out the TODO app epidemic

>went to check my bank transactions
>can't paste password
>"for security" lol okay
>I use a password manager
>had to open inspect element and inject it manually
>facepalm.png

>banks need to do better


Share:

SPF check for our simple SMTP receiver

 Why?

> bored.


The issue:

> Alice connects to my server because she wants to send an email to bob@myserver.com  
> She sets the FROM header to alice@gmail.com  
> Says it's from Gmail  
> I have no way to know if it actually came from Gmail  
> Need a way to verify it
 

SPF: 

> I ask Gmail for a list of IP addresses they send email from  
> To get that info, I need to query the TXT record for the gmail.com domain  
> I find "v=spf1 redirect=_spf.google.com"  
> Another TXT record query for _spf.google.com  
> I find "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"  
> Here we go again  
> Query all three netblocks  
> Finally get:  
> "v=spf1 ip4:35.190.247.0/25 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"  
> Once I get the IP ranges, I can finally compare the sender’s IP  

> this is how the SPF works  
> now i used pydig to recursively gather the ip ranges  
> compared it with the client ip  
> implemented spf validation  
> find it here  
> https://github.com/naveen17797/simple-smtp-receiver/releases/tag/implement-spf  

> No more forged emails

> Bye


 

Share:

SMTP mail receiver from scratch -

 Why?

> felt like i lost my curiosity

> less free time / number of pigeons to take care of

> wanted to build something new

 

Objective

>  A program which can receive email

 

What i don't want

- validation code

- multiple threads

- authentication stuff

 

How does it work:

- client connects to server and sends a command

- each command gets acknowledged by server with a success code

- if something raises error, then the connection gets dropped.

 

Source:

https://github.com/naveen17797/simple-smtp-receiver/releases/tag/init (LLM Generated code)

 

Stuff i found interesting:

> The SMTP server uses . (dot) as a signal to stop receiving DATA part of the email

> So if i manage to put a dot in a newline on email body, this will probably strip the email up to that part.

> How does SMTP prevents that from happening?

> When you send a dot on new line in the email, SMTP client automatically adds a dot and server removes them upon receiving it.

 

 

Share:

Tough times

For almost three months, I have been fighting to save my pigeon, my feathered friend, Blue. I’ve been giving him medications twice a day, and I can’t even remember the last time I had a proper night’s sleep.

Then, last Thursday, another one of my feathered friends, Delta, fell ill. I took him to one of the best vets I could find (I’ll write another blog post later about how I discovered this great hospital). After examination, he was diagnosed with crop stasis caused by Candida albicans. He is now undergoing treatment.

I don’t know how I’m going to get through these days. My entire world feels like it’s falling apart, and I feel powerless.
Share: