Cybersecurity Projects and Presentations

I somehow graduated with a Cybersecurity degree specialization on my diploma. It was due to some graduate-level systems and hardware security courses I took. These courses provide a birds eye view of the cybersecurity field, and I had fun doing the homework assignments. The assignments were modelled after wargames and even had a leaderboard. Here is a list of short security projects and talks I did in school.

More …

Revising Resources for Coding Interviews

For the past two weeks, I’ve been doing 1 Leetcode problem a day, by hitting the random problem button. This is a bad strategy, since it’s inefficient at figuring out my weaknesses. The optimal strategy seems to involve working through a list of representative problems, categorized by topic, like the Blind 75. You would basically go through the entire list several times, looking at answers if you need to, until you can easily recognize the patterns. I did this back in early 2020, then I forgot everything.

More …

Distributed Tracing Project Proposal

Here is the accepted proposal for the distributed tracing project I will be working on this summer. Pythia is written in Rust and Jaeger is in Go. As I write weekly updates for this project, I’ll continue to post some here under the tracing tag.

Project Title: Enabling an automated instrumentation framework in a distributed tracing platform

Abstract

Diagnosing performance problems in distributed systems is challenging. One reason is that it is hard to know in advance what instrumentation to enable that can help diagnose problems. Pythia is an automated instrumentation framework that aims to solve this decision problem. The approach uses the key insight that performance variation in workflows that are expected to perform similarly provides insight to where instrumentation should be enabled. This project will validate Pythia’s approach by integrating with a mature distributed tracing system to automatically enable instrumentation that can help diagnose performance problems, as well as evaluating the system in representative distributed applications.

More …

3 Month Study Plan

I finally graduated. But not really. I’m done with coursework, but I have to complete a project or thesis before graduating in September. In lieu of taking the project class (which was only offered in the fall), I am working on an MS Project. That will take up at least 16 hours per week, from May 24 to August 13, or roughly 12 weeks. The rest of the time will be spent working on projects, hobbies, applying to jobs, and practicing for interviews. This post will serve as a list of resources as well as a timeline for my studying.

Organizing all this has become so much better with the Raindrop.io bookmarks manager. Previously, I used Instapaper but searching is not free and organization/tagging is slow. I’m planning to keep this short so I’m not overwhelmed by the amount of resources.

More …

Space Cadet Shift

Space Cadet Shift allows you to tap Shift on its own, then get an opening parentheses when you release. It’s described on QMK Docs and by Steve Losh.

Here’s a short script to get a similar function to work on Arch Linux, Manjaro, or any distro that uses X11.

xcape -e 'Shift_L=parenleft;Shift_R=parenright;Alt_L=braceleft;Alt_R=braceright'

Pressing Shift gives you ( and )
Pressing Alt gives you [ and ]
Pressing Shift+Alt gives you { and }. Order matters so make sure you press Shift first.

It might not work well on VS Code so I’m working on an extension. Works fine on Vim and terminal.

To make this run on login, edit your ~/.profile: 1 disables beeps, 2 makes capslock function as ctrl, 3 is space cadet with 100ms delay.

xset b off
setxkbmap -option ctrl:nocaps
xcape -t 100 -e 'Shift_L=parenleft;Shift_R=parenright;Alt_L=braceleft;Alt_R=braceright'