Tumgik
codingquill · 1 month
Note
your blog (is that what you call it) seems to be packed with a lot of useful information, thank you for taking your time to make this
Oh, thank you so much ❤️! This blog is still a work in progress, but I'm glad you find the information useful. I'm hoping to expand it further in the future and maybe even explore other platforms.
Stay tuned for more content!
3 notes · View notes
codingquill · 3 months
Text
Network switches
What’s a network switch ?
A switch is a device used in computer networks to connect multiple devices together within a single local area network (LAN). Its main role is to facilitate communication between different connected devices, such as computers, printers, servers, IP phones, etc.
It is a mini-computer which is made up of RAM, ROM, flash RAM, NVRAM, a microprocessor, connectivity ports and even an operating system.
Tumblr media
RAM
RAM (Random Access Memory) contains the current configuration of the switch and temporarily stores the MAC address table, which is then processed by the microprocessor.
Microprocessor
The microprocessor is the heart of the switch, responsible for data processing, including switching and creating links between multiple devices.
External memories
External memories, such as flash RAM, ROM, and NVRAM (Non-Volatile RAM), store configuration files , different versions of the IOS , etc ...
Ports
The switch ports are the communication interfaces of the switch. There are several of them, generally 24 for a Cisco switch. Each port is associated with an LED which indicates its status and activity.
Tumblr media
How does it work ?
Now how does a switch work to transfer information from one machine to another?
Suppose we have 4 machines: A, B, C and D connected to our switch in ports 1, 2, 3 and 4 as follows:
Tumblr media
The switch only works with MAC addresses , so basically we have an empty MAC address table stored in RAM as soon as the switch starts up which looks like this : 
Tumblr media
Transmitting data from machine A to machine B happens in the following steps:
Machine A sends a frame to machine B
Once this frame arrives at port 1 (which is the one linked to A), the switch reads the source MAC address and stores it in the MAC address table
The switch reads the destination MAC address and looks for it in the table, if it is not in the table, it broadcasts to all the active machines connected to the switch except the source one.
If the port linked to the machine we want is active, it sends a response frame from which the switch reads the MAC address we were looking for (@B)
Once done, it records the MAC address of B in the table.
Tumblr media
This process repeats until the switch reaches what is called "MAC address table stability", that is to say it knows all the MAC addresses of the connected machines and has no more need to broadcast.
Tumblr media
Starting and configuring a switch
When it comes to booting a switch, the process is similar to that of a traditional computer system:
POST (Power-On Self Test): The switch performs proper functioning tests on all hardware.
Loading IOS (Internetwork Operating System): The switch operating system is loaded.
Loading the configuration. At this stage we have two cases:
Either the switch already has a startup configuration defined and stored in NVRAM
Either the switch is blank and it is up to us to define the startup configuration when it goes to setup mode
Tumblr media
Switch configuration
Tumblr media
The configuration of a switch is done through different modes, such as user mode, privileged mode and global configuration mode, which allows access to specific configuration modes, such as interface mode, routing mode, line mode, etc.
And to do all this of course you must first connect the switch with the machine via the console cable and open a terminal emulator
💡 It should be noted that the only machine that can configure the switch is the one connected to it by a console cable, the others are only hosts.
77 notes · View notes
codingquill · 3 months
Text
NP-Completeness
Machine learning #1
Complexity Recap
Tumblr media
Assuming one already knows what algorithmic complexity is, I am writing this paragraph to explain it to those who don't. The complexity of an algorithm can be measured by its efficiency. So let's say I have a problem P for which I've proposed two algorithmsA and B as solutions. How could I determine which algorithm is the most efficient in terms of time and data support? Well, by using complexity ( space complexity and time complexity ). One way of measuring complexity is O notation.
 Exponential Complexity O(2^n)
Tumblr media
In algorithms, this complexity arises when the time or space required for computation doubles with each additional element in the input. Problems with exponential complexity are typically NP-hard or NP-complete
P-Class and NP-Class
The P-class represents the set of polynomial problems, i.e., problems for which a solution can be found in polynomial time.
The NP-class represents the set of non-deterministic polynomial problems, i.e., problems for which a solution can be verified in polynomial time. This means it's easy to verify if a proposed solution is correct, but finding that solution might be difficult.
P = NP Question?
The question of whether P is different from NP is one of the most important problems in theoretical computer science. It is part of the seven problems selected by the Clay Institute in the year 2000, for which a reward of one million dollars is offered to whoever solves them.
NP-Complete Problem Class
NP-complete problems are problems that are both in the NP-class and are harder than all other problems in the NP-class.Solving any of these problems would be considered a major breakthrough in theoretical computer science and could have a significant impact in many areas such as optimization, planning, cryptography, etc. There is no specific monetary reward associated with solving an NP-complete problem, but it would be considered a significant achievement.
From an NP Problem to Another 
A polynomial reduction is a process that transforms an instance of one problem into an equivalent instance of another problem. In the case of polynomial reduction between NP-complete problems, this means that if you can efficiently solve problem B, then you can also efficiently solve problem A. This leads to the fact that if only one problem is solved from the list, then all the other problems will also be solved.
Approximation Algorithms
Computer scientists have devised approximation algorithms to efficiently solve NP-complete problems, even if finding an exact solution in polynomial time is not possible. These algorithms seek to find a solution that is close to optimality, although it may not be the optimal solution.
We can divide them into two categories:
Heuristics: These are explicit algorithms that propose solutions for NP-complete problems.
Metaheuristics: Unlike heuristics, metaheuristics are general strategies that guide the search for a solution without prescribing a specific algorithm.
19 notes · View notes
codingquill · 7 months
Text
Tumblr media
I'm currently learning React and I'm taking a 13-hour course. I can't keep this website to myself because it's truly amazing. It's perfect, it's free, and there are other courses out there with much less interaction and smoothness that make you pay a lot.
The website I'm talking about is Scrimba. I highly recommend it for anyone starting their front-end journey. I'm confident that no one will disagree with me on this.
Have a great day! <3
328 notes · View notes
codingquill · 7 months
Text
What is Cloud Computing ?
Tumblr media
Cloud computing has become a widely discussed topic in recent years, but explaining it in simple terms to someone without a background in computer science can be challenging. Allow me to break it down for you.
Cloud computing is a method of storing and accessing data and programs over the internet, rather than keeping them on your personal computer or mobile device. To illustrate this, let's consider online email services like Gmail or Outlook. When you use these services, you can access your emails from anywhere because they are stored in the cloud. This means you don't need to install any special software or save your messages on your hard drive. Instead, your emails are stored on remote servers owned by companies like Google or Microsoft. You can access them from any device connected to the internet, regardless of your location.
Understanding Servers in the Cloud
Now, let's delve into the concept of servers in the cloud.
The data stored in the cloud is saved on physical servers, which are powerful computers capable of storing and processing vast amounts of information. These servers are typically housed in data centers, which are specialized facilities that accommodate thousands of servers and other equipment. Data centers require significant power, cooling, security, and connectivity to operate efficiently and reliably.
Tumblr media
Microsoft and Google are two of the largest cloud providers globally, and they have data centers located in various regions and continents. Here are some examples of where their data centers are located, according to search results:
Microsoft has data centers in North America, South America, Europe, Asia, Africa, and Australia.
Google has data centers in North America, South America, Europe, and Asia.
45 notes · View notes
codingquill · 7 months
Text
I just finished putting together my notes for today's Linux lab,it was quite unorganized ! But , what I know best to do is making things super easy to follow. If anyone would like a copy, I can add it to the Linux drive I created earlier. Let me know if you're interested!
Tumblr media
10.10.2023
29 notes · View notes
codingquill · 7 months
Text
youtube
4 notes · View notes
codingquill · 7 months
Text
If you enjoy developing and coding, there are several paths you can pursue:
Front-end development
Back-end development
Full-stack development
It's important to note that there is generally more competition in back-end development compared to front-end. Therefore, securing an internship in back-end development may be more challenging than in front-end.
However, if coding isn't your preference (which doesn't mean you shouldn't be in the field), there are alternative career options you can explore:
DevOps engineering : My next post will be about DevOps
Testing (consider obtaining the ISTQB certificate)
Management of tech projects
These options provide diverse opportunities within the IT industry.
96 notes · View notes
codingquill · 7 months
Text
What happens when you start your computer ? ( Booting a computer )
We studied this in the lecture today, and it was quite interesting. What makes something a hundred times simpler than it is? Creating a story about it. That's why I made this super fun dialog that will help you understand it all.
I've set up a drive to compile everything I create related to the Linux operating system. Feel free to explore it for more details on the topics discussed in the conversation below. Check it out here.
Tumblr media
Have a fun read, my dear coders!
In the digital expanse of the computer, Pixel, the inquisitive parasite, is on a microventure with Binary, a wise digital guide. Together, they delve into the electronic wonders, uncovering the secrets hidden in the machine's core.
Pixel: (zooming around) Hey there! Pixel here, on a mission to demystify the tech wonders . There's a creature named Binary who knows all the ins and outs. Let's find them!
Binary: (appearing with a flicker of pixels) Pixel, greetings! Ready to explore what happens inside here?
Pixel: Absolutely! I want the full scoop. How does this thing come alive when the human outside clicks on "start"?
Binary: (with a digital chuckle) Ah, the magic of user interaction. Follow me, and I'll reveal the secrets.
(They traverse through the circuits, arriving at a glowing portal.)
Pixel: (inquiring) What's the deal with this glowing door?
Binary: (hovering) Pixel, behold the BIOS - our machine's awakening. When the human clicks "start," the BIOS kicks in, checking if our components are ready for action.
(They proceed to observe a tiny program in action.)
Pixel: (curious) Look at that little messenger running around. What's it up to?
Binary: (explaining) That, Pixel, is the bootloader. It plays courier between the BIOS and the operating system, bringing it to life.
Pixel: (excitedly buzzing) Okay! How does the computer know where to find the operating system?
Binary: Ah, Pixel, that's a tale that takes us deep into the heart of the hard disk. Follow me.
(They weave through the digital pathways, arriving at the hard disk.)
Pixel: (curious) Huh? Tell me everything!
Binary: Within this hard disk lies the treasure chest of the operating system. Let's start with the Master Boot Record (MBR).
(They approach the MBR, Binary pointing to its intricate code.)
Binary: The MBR is like the keeper of the keys. It holds crucial information about our partitions and how to find the operating system.
Pixel: (wide-eyed) What's inside?
Binary: (pointing) Take a look. This is the primary boot loader, the first spark that ignites the OS journey.
(They travel into the MBR, where lines of code reveal the primary boot loader.)
Pixel: (in awe) This tiny thing sets the whole show in motion?
Binary: (explaining) Indeed. It knows how to find the kernel of the operating system, which is the core of its existence.
(They proceed to the first partition, where the Linux kernel resides.)
Pixel: (peering into the files) This is where the OS lives, right?
Binary: (nodding) Correct, Pixel. Here lies the Linux kernel. Notice those configuration files? They're like the OS's guidebook, all written in text.
(They venture to another partition, finding it empty.)
Pixel: (confused) What's the story with this empty space?
Binary: (smirking) Sometimes, Pixel, there are barren lands on the hard disk, waiting for a purpose. It's a canvas yet to be painted.
Pixel: (reflecting) Wow! It's like a whole universe in here. I had no idea the operating system had its roots in the hard disk.
(They continue their microventure, navigating the binary landscapes of the computer's inner world.Pixel gazes at the screen where choices appear.)
Pixel: What's happening here?
Binary: (revealing) This is where the user picks the operating system. The computer patiently waits for a decision. If none comes, it follows the default path.
(They delve deeper into the digital code, where applications start blooming.)
Pixel: (amazed) It's like a digital garden of applications! What's the enchantment behind this?
Binary: (sharing) Here, Pixel, is where the applications sprout to life. The operating system nurtures them, and they blossom into the programs you see on the screen.
Pixel: (excited) But how does the machine know when the human clicks "start"?
Binary: It's the BIOS that senses this initiation. When the human triggers "start," the BIOS awakens, and we embark on this mesmerizing journey.
312 notes · View notes
codingquill · 7 months
Text
how does linux nat a ping?
"In most private networks, multiple hosts connect to the Internet through a router. For IPv4, the router performs network address translation (NAT) by rewriting the original host’s source address to the router’s public IP address. The router can lookup the correct host for a reply packet based on the packet’s port field, at least for protocols like TCP and UDP.
But a command like ping doesn’t use TCP or UDP; it uses ICMP, and those packets do not have a port field. So how does NAT work for ICMP packets?
This led me down a deep rabbit hole: running experiments in network namespaces, capturing packets, reading RFCs, and tracing through the Linux source code."
I love deep-dives like these. Curiosity can take you down some very interesting rabbit holes. I had not looked at this stuff at this level since my computer networks class in university. This was an enjoyable read. 🤓
97 notes · View notes
codingquill · 7 months
Text
Are you a CS student? Check out the GitHub Student Developer Pack!
🐢 Even if you've activated in the past, I think it's fun to re-visit if anything new has been added :D
Tumblr media Tumblr media
●~•───────────────────────────────────────•~●
I learned about this when I attended my 1st hackathon, I used the pack to get a free website domain (from Namecheap) and used Digital Ocean cloud services to host apps, and even tried out Educative's courses. Later, when I was hosting a hackathon, they released their ~hackathon hosting starter pack~ and it was great to have access to extra resources to support hosting virtual events!
I recently remembered this existed and wanted to promote it here, so if you're a student interested in CS/Software Dev, have a upcoming hackathon or just want to play around with some premium tools, pls take time to check this out!
Something exciting I noticed this time around is the addition of project template examples (Ex: Discord Bots) and a career readiness section 👀
Personally, I am still using: Codespaces, GitHub Pages, I *still* have my domain with NameCheap, and there's a handful of services they added that I want to check out now :D
●~•───────────────────────────────────────•~●
-> Get the GitHub pack here: https://education.github.com/pack
●~•───────────────────────────────────────•~●
326 notes · View notes
codingquill · 7 months
Text
What is the kernel of an operating system ?
You can think of the kernel as the core component of an operating system, just like the CPU is the core component of a computer. The kernel of an operating system, such as the Linux kernel, is responsible for managing system resources ( such as the CPU, memory, and devices ) . The kernel of an operating system is not a physical entity that can be seen. It is a computer program that resides in memory.
Key points to understand the relationship between the kernel and the OS:
The kernel acts as the intermediary between the hardware and the software layers of the system. It provides a layer of abstraction that allows software applications to interact with the hardware without needing to understand the low-level details of the hardware
The kernel controls and manages system resources such as the CPU, memory, devices, and file systems. It ensures that these resources are allocated and utilized efficiently by different processes and applications running on the system.
The kernel handles tasks like process scheduling, memory management, device drivers, file system access, and handling interrupts from hardware devices.
The kernel can be extended through the use of loadable kernel modules (LKM). LKMs allow for the addition of new functionality or device drivers without modifying the kernel itself.
190 notes · View notes
codingquill · 7 months
Text
UNIX vs Linux
Tumblr media
While studying my first lecture of the Linux course, I noticed that the lecture notes always referred to Linux (UNIX). This made me confused about whether Linux and UNIX are the same thing. After conducting some research, here's what I found:
UNIX was created before Linux. UNIX is an operating system that was developed in the 1960s and 1970s at Bell Labs. It was designed to be a portable, multi-user, and multitasking operating system. UNIX became widely adopted and influenced the development of many other operating systems, including Linux.
On the other hand, Linux was created in 1991 by Linus Torvalds as a free and open-source operating system. Linus Torvalds developed the Linux kernel, which is the core component of the operating system. Linux was inspired by UNIX and aimed to provide similar functionality and design principles while being accessible to a broader audience.
There are some key differences between the two:
Licensing: UNIX is a proprietary operating system, and its source code is not freely available. In contrast, Linux is open-source, which means its source code is available for anyone.
Kernel Design: The kernel design of UNIX and Linux differs. UNIX typically uses a monolithic kernel. Linux, on the other hand, uses a modular monolithic kernel.(I'll explain this in another post)
Command Line Interface: While both UNIX and Linux provide a command line interface, UNIX systems often have their own set of commands and tools, while Linux distributions commonly include the GNU utilities, which provide a comprehensive set of command-line tools.
Availability and Community Support: UNIX is typically associated with commercial offerings from companies . In contrast, Linux has a wide range of distributions that are freely available and supported by vibrant communities.
youtube
113 notes · View notes
codingquill · 7 months
Text
A structured way to learn JavaScript.
I came across a post on Twitter that I thought would be helpful to share with those who are struggling to find a structured way to learn Javascript on their own. Personally, I wish I had access to this information when I first started learning in January. However, I am grateful for my learning journey so far, as I have covered most topics, albeit in a less structured manner.
N/B: Not everyone learns in the same way; it's important to find what works for you. This is a guide, not a rulebook.
EASY
What is JavaScript and its role in web development?
Brief history and evolution of JavaScript.
Basic syntax and structure of JavaScript code.
Understanding variables, constants, and their declaration.
Data types: numbers, strings, boolean, and null/undefined. - Arithmetic, assignment, comparison, and logical operators.
Combining operators to create expressions. - Conditional statements (if, else if, else) for decision making.
Loops (for, while) for repetitive tasks. - Switch statements for multiple conditional cases.
MEDIUM
Defining functions, including parameters and return values.
Function scope, closures, and their practical applications.
Creating and manipulating arrays.Working with objects, properties, and methods.
Iterating through arrays and objects.Understanding the Document Object Model (DOM).
Selecting and modifying HTML elements with JavaScript.Handling events (click, submit, etc.) with event listeners.
Using try-catch blocks to handle exceptions.Common error types and debugging techniques.
HARD
Callback functions and their limitations.
Dealing with asynchronous operations, such as AJAX requests.
Promises for handling asynchronous operations.
Async/await for cleaner asynchronous code. - Arrow functions for concise function syntax.
Template literals for flexible string interpolation.
Destructuring for unpacking values from arrays and objects.
Spread/rest operators.
Design Patterns.
Writing unit tests with testing frameworks.
Code optimization techniques.
That's it I guess!
595 notes · View notes
codingquill · 7 months
Text
19.09.2023
It's currently 9am , my goal today is to create a full-stack chat application .
And I also wanted to respond to @thepordigycarb's comment
Tumblr media
You absolutely did not waste 6 years in my opinion. Algorithms are fundamental to every programming language. In my college experience, we dedicated an entire semester to studying algorithms, and it greatly helped us understand programming concepts. Algorithms foster critical thinking skills, which are essential for a coding journey. Understanding algorithm complexity is crucial because many companies assess problem-solving abilities during interviews. The best solutions are those with optimal complexity. This is where your 6 years of learning come into play. Additionally, knowledge of object-oriented programming (OOP) is vital.Java is indeed used in web development, with popular frameworks such as Spring and Hibernate.
Therefore, the post I published does not cover everything, but rather focuses on the essential basics that aspiring web developers need to know.
62 notes · View notes
codingquill · 7 months
Text
15.09.2023 / Linkedin banners ressources
I applied for two internships today (cross your fingers for me), and I also spent some time working on my LinkedIn profile, updating it to the best of my ability with my current resources.
Guys, work on your LinkedIn profile. Don't leave the banner image empty; it makes you appear as if you can't even put in a little effort to create a decent page, and it only takes a few minutes before you get bored.
Speaking of which, I initially searched online for some banners and found this:
Are people really selling LinkedIn banners for $50??
Anyway, if you don't want to spend $50 on a LinkedIn banner, here are some solutions I suggest:
Go to Notion, create a new page, add a header image, click on it to change it, then go to 'Unsplash,' search for your specific field, and you'll find high-quality and beautiful images (Copy the link to that image) paste it in your browser, and you're done.
Visit this website; in the templates section, search for LinkedIn banners, and you'll find several options. Even if you don't like them completely, you can edit them to your liking.
Go to this Canva page; you'll find numerous free and beautiful banners that you can also edit as per your preference. You can even filter your search by your field or preferred style for your banner.
21 notes · View notes
codingquill · 8 months
Text
800 free Computer Science classes | Comp-Sci Resources ♥
Tumblr media
800 free Computer Science classes you could take online right with video lectures!
Link: GitHub - Developer-Y/cs-video-courses: List of Computer Science courses with video lectures
I found this link in a tweet and found the site very helpful! Take full advantage comp sci learners!!!
Have a nice day and happy programming ♥
2K notes · View notes