Skip to main content

Posts

Oh Happy Day!

 I wrote my first recursive function today! I've read about recursion and wanted to attempt it for the longest time. I kept letting fear get in the way. Working on problems with my team has definitely helped me learn more, faster. It has also helped with my confidence. I finally attempted a simple problem using recursion on LeetCode. I was meant to reverse a string.  First, I had to figure out how a recursive function worked exactly. When a function calls itself, it stops the execution of the rest of the code in the function until it reaches the "end" of the chain of function calls. The base case is what determines when the recursive function stops. Without a base case, it would keep calling itself forever like images reflecting off parallel mirrors facing each other. In my function, the base case is when the end of the list is reached, index >= len(s).  Once the base case is reached, it returns to the previous recursive function call on line 5 and line 6-12 are execut...

Creating a linked list

 I'm working my way through the mini courses on LeetCode to understand data structures and algorithms better. I am currently on linked lists. After a few slides, I was tasked with creating a linked list. I had no idea what to do and was stuck on this problem for days. I would look at it for a bit, not know what to do, and try to work on something else, and not be able to focus on that something else because I didn't know what to do about the linked list. Meh! It was a long 3-4 days. I finally figured it out and I have to say I feel very pleased with myseld :D  Step 1: Define a node class and a linked list class.  Each node has a value and a pointer to the next node. There is just a single pointer here because I chose to create a singly linked list. You can also have a pointer in the reverse direction point at the previous node. That would be a doubly linked list. I also had to define my actual linked list which held the value for the head node.  Step 2: Create a get ...

Python Decorators from the Best Site Ever

 This is a topic that I keep encountering but have struggled to fully grasp. To be fair I haven't looked too deeply into it. And now I am doing so. Python-course has a great article  on the topic. They really go step by step. I've summarised what was in the article and re-written it in a way I understand it better. A few notes about Python functions: Function names are references to functions and you can assign multiple names to the same function          e.g.  def func(x):                         return x                    func2 = func                    ==>> Calling either func2(4) or func(4) would give the same output as they are just references to the same function   Functions can be nested inside functions. I have done this a handful of times. Functions ...

Inserting data from CSV into Postgres table with Python

I've been looking into how to insert data from a CSV file into a Postgres Table with code. Turns out it's pretty simple and straightforward. I personally prefer doing it in code than with a command, but I'm not sure what is more common in the industry.  So now I should be able to load data from a CSV file into a Postgres table to create a REST API. The next step is trying to figure out how to convert that data into JSON format. 🤔

Figuring out Postgres Part 2(Adding data)

 My database is set up. My table is set up. Now it's time to add some data. There are 2 main ways we can do it - add data from an external file, or add data with Python.  Adding data from an external file A colleague of mine introduced me to a website - Kaggle . You can download datasets in a few different formats from this site which is pretty amazing! I found one for cat breed characteristics. I don't put much stock in breeds and that sort of thing, but I thought it would be a nice data set to use. The table I created previously wasn't exactly a good match for this data so I created a new table. One that was specifically for domestic cats and not all cats, big and small.  In SQL Shell(psql) Using the copy command in the screenshot below, I copied data from the csv file to my domestic_cats table. Printing a simple query in my Python file revealed that the data was actually copied. It was pretty exciting to see it all there.  Data printed to the terminal Input data w...

Figuring out Postgres Part 1(Setting it up)

 I've been meaning how to use Postgres for a while now and I've finally decided to dive into it. First step, installing Postgres from their website . I kept all the default settings which meant it installed PostgreSQL Server, pgAdmin4, Stack Builder, and Command Line Tools. It later prompted me to set up Stack Builder, but I took a look at this tutorial  and determined that I don't really need to do that right now. It also helped me figure out how to verify the installation using SQL Shell(psql). Everything looks good so far. I followed another tutorial on Linkedin learning to create a database. Next on the tutorial, create a virtual environment and install Psycopg2-binary in it. Apparently it's a Postgres database adapter.  And because I'm an idiot, I forgot where I saved the database. I opened up Postgres shell and used the command SHOW data_directory; But it turns out I didn't need it anyway 😁 I created a new Python file and added the following lines of cod...

Free form

 I'm been trying to find a free form submission service for the longest time. I was using google forms for the longest time but it's really ugly. It doesn't offer much in the way of customisation either. I finally came across something called Formspree and it's hard to believe that it's so easy to use! And it's free for 50 submissions a month! There's no way I'm going to get more than 50 submissions on my wee little portfolio site, so this suits me perfectly! Unfortunately the success page is a formspree page but hey, it's free. I can't complain. It makes me feel great when I manage to find workarounds 😁