Hey, I'm Josh Kayani, a student and fledgling software developer. Here, I rant and rave about tech and other topics.
With the close of Fall 2017, I’m heading into my penultimate semester at NC State - pretty crazy to think about, especially since with each semester, I realize there’s more and more I want to learn. Maybe grad school is worth considering?
This past year, I’ve done quite a bit! By finishing my sophomore year at NC State, I’ve cleared most of the introductory/required computer science classes including:
Well, I’ve gone full circle - I switched from Jekyll to WordPress in 2015, and I’ve recently finished doing the reverse. Maybe I just love constantly switching things up, or maybe I made the switch because of the allure of Github Pages!
Just like last year, the University of North Carolina at Chapel Hill and Major League Hacking teamed up to put on Hack NC 2016 - a 24 hour hackathon with the objective of building cool stuff, very fast. And, just like last year, I went - except this time, we won something.
Last semester, a friend and I were taking Discrete Math (counting, sets, logic, etc.), and he asked me a question about how modulus worked with negative numbers. It took me a bit to come up with a good answer, and I think it provides a nice framework for understanding how that operation works as a whole, so here goes.
The last time I mentioned research, I was starting an REU during the Spring 2016 semester at NC State. Now, it’s Summer 2016, and I’m still here – I was given the opportunity to continue working on my project as part of the Science of Software REU.
This past month, I was graciously given the opportunity to work on an undergraduate research project in NC State’s CSC (Computer Science) department! The project is part of an REU (Research Experience for Undergraduates), which is an initiative sponsored by the National Science Foundation to get undergrads into research. It’s pretty surprising (at least to me), that I was able to start research as a freshman, but it’s a lot more accessible than I’d previously thought!
Over the summer – my last one before starting university – I was looking for a project to get into. I had a Github account, and I’d worked on a bunch of small personal projects before, but never had I contributed to someone else’s work. It just seemed too hard; how could I contribute anything of value to a project I didn’t create?
A few months ago, I attended my first hackathon: Hack NC, a statewide “hacking” competition sponsored by MLH (Major League Hacking), held at the UNC Chapel Hill campus. The whole event was filled with conferences/talks, networking and corporate PR stuff, and free food, all with the pretense of developing something cool within 24 hours.
Smart Most developers use some sort of version control, either through full-blown corporate systems, or the super amazing tool Git, paired with the equally amazing online repository system, Github. Being a novice developer, I have yet to start out with either of the two technologies; while I plan on doing so soon, I wanted to share my experiences with using Google Drive as a collaboration and version control system, especially for code projects.
So recently, I decided to resurrect my blog. It was built on top of a tool called Jekyll, which is a static website generator, written in Ruby. It essentially worked like WordPress (with its own famous “loop”), with page/post templates written in HTML and Liquid (a templating engine), and pages/posts themselves written in Markdown. You’d simply run a build command, and Jekyll would spit out a full website, ready for upload to a server.
Many Java developers, budding and veteran, use the Eclipse IDE – heck, I even used it in my AP Computer Science class in high school (even though it was technically taught with the BlueJ IDE). In the course, we were required to have documentation on the top of any Java classes we wrote in the following format: