A hyper-logical Halloween
 #programming
A hyper-logical Halloween
 #programming
Is it bad form to contact HR of the company thats interviewing you if you didnt get a response? They promised us theyd try and get back to us on Monday but didnt.
I made it to the final round of interviews. They said they'd let us know. I emailed them on Wednesday but still nothing.
Would it be bad to contact HR to see if they can give me any updates? #Programming #coding #jobs
Is it bad form to contact HR of the company thats interviewing you if you didnt get a response? They promised us theyd try and get back to us on Monday but didnt.
I made it to the final round of interviews. They said they'd let us know. I emailed them on Wednesday but still nothing.
Would it be bad to contact HR to see if they can give me any updates? #Programming #coding #jobs
It's that time of year again! The Fall semester is about to start, and I'm teaching "Advanced Programming in the UNIX Environment". The syllabus and all course materials including all code examples is available here:
https://stevens.netmeister.org/631/
All video lectures are public and available for free on YouTube:
https://www.youtube.com/@cs631apue/videos
If you want to follow along, I'll be posting lecture videos and related links in this thread throughout the semester.
Advanced Programming in the Unix Environment
Tool Tip: ed(1) is the standard text editor
As part of our discussion of unix development tools, we take a short detour to provide a quick walkthrough of ed(1), the standard text editor. This is not done merely to up your geek creds, but understanding ed(1) will also helps us better understand other tools like vi(1), sed(1), and ultimately even things like diff(1) and patch(1) better.
Advanced Programming in the Unix Environment
Tool Tip: ed(1) is the standard text editor
As part of our discussion of unix development tools, we take a short detour to provide a quick walkthrough of ed(1), the standard text editor. This is not done merely to up your geek creds, but understanding ed(1) will also helps us better understand other tools like vi(1), sed(1), and ultimately even things like diff(1) and patch(1) better.
Advanced Programming in the Unix Environment
Week 6: Memory Layout of a Process
Let's talk about the details of a process. We start with a visual representation of a process in memory and create a program that prints out the addresses of different elements of a program and observe the alignment of the text, data, and bss segments as well as the placement of the heap and stack. We also illustrate what a stack overflow looks like.
Advanced Programming in the Unix Environment
Tool Tip: ed(1) is the standard text editor
As part of our discussion of unix development tools, we take a short detour to provide a quick walkthrough of ed(1), the standard text editor. This is not done merely to up your geek creds, but understanding ed(1) will also helps us better understand other tools like vi(1), sed(1), and ultimately even things like diff(1) and patch(1) better.
Advanced Programming in the Unix Environment
Week 5: Using gdb(1), part IV
In our last segment on gdb(1), we use the debugger to examine memory locations in a running program and illustrate how pointers and arrays work in the C programming language.
Advanced Programming in the Unix Environment
Week 5: Using gdb(1), part III
In this video lecture, we'll use our newly learned debugging skills to analyze and fix yet another flawed program. In the process, we learn to debug code from multiple source files and find out how to change the value of variables while the program is running.
Advanced Programming in the Unix Environment
Week 5: Using gdb(1), part II
In this video lecture, we continue to explore the capabilities of the debugger. We show how you can set a breakpoint to pause the program and how to step through the program while watching our code.
Advanced Programming in the Unix Environment
Week 5: Using gdb(1)
Alright, let's look at gdb(1)! We begin by using it to troubleshoot our failing programs and immediately identify the location of our program where it segfaults. We also see how to inspect variables and call functions from within the debugger.
Advanced Programming in the Unix Environment
Week 5: Debugging your code
Next in our discussion of the Unix _development_ environment, we start a short series on the use of a debugger by example of gdb(1). First, we illustrate just why exactly we might want to use a separate tool instead of sprinkling "printf" statements all over our code...
Advanced Programming the UNIX Environment
Our reference platform for this class is NetBSD. Some ways to get set up are:
Use an AWS image:
https://stevens.netmeister.org/615/netbsd-amis.html
Create your own AWS image:
https://www.netmeister.org/blog/creating-netbsd-ec2-amis.html
https://www.netmeister.org/blog/netbsd-amd64-ami.html
Install NetBSD on a Linode:
https://www.netmeister.org/blog/netbsd-on-linode.html
Use UTM / qemu:
https://stevens.netmeister.org/631/utm/
Advanced Programming the UNIX Environment
Some additional hints to set up your NetBSD environment for this class:
https://stevens.netmeister.org/631/vm-setup.html
With all sources extracted, familiarize yourself with ctags(1) et al to make browsing code a breeze:
Advanced Programming the UNIX Environment
Week 1: UNIX History
We cover the early days at Bell Labs, USL vs BSDi, the birth of the BSDs and Linux, and how we got from Ken Thompson playing "Space Travel" on a PDP-7 to Unix running on your phone, fridge, and TV.
Scroll along through it all here: https://www.levenez.com/unix/unix.pdf
Advanced Programming the UNIX Environment
Week 1: UNIX Basics
In this lecture, we provide a whirlwind tour of the Unix programming environment. In the process, we write a simple shell, a simple version of the ls(1) command, and two versions of the cat(1) command while learning about the Unix Philosophy.
 
      
  
             
      
  
                            
                        
                         
      
  
             
      
  
            