Posts

Contributing to Tab for a Cause!

It's been a long year of many efforts, but I'm excited to be back and blogging on ways to contribute to open source! Recently, I've been looking at a project called Tab For A Cause, which is a cute little chrome extension that enables you to donate ad revenue to the charity of your choice! They have a couple open issues, including some good starter ones for frontend developers trying to dip their toes into the open source world. In this blog post, I'll talk you through the steps of how to get set up to contribute, and at the end, I'll talk you through what I plan on doing next! Getting Started: First off, I checked out their git repo  to see if there were any contributing guidelines or any setup steps in the README . There wasn't a community contribution guidelines doc, but the README did provide some basic prerequisite requirements as well as setup steps. Installing the Prerequisites I'm working on a Mac, so I am using Homebrew to handle my installations. A

Architecting a software application from the ground up

Hi all! It's been a hot minute. Settling into work post-college has been a larger task than expected, and getting into a rhythm where I have time to write up my experiences has taken longer than I would have hoped. As of three weeks ago, I am the singular software engineer at a medical device startup based in Atlanta, GA, USA. In this post, I will document the current state of the software at this company, the immediate tasks ahead of me, and my progress to date in developing the architecture of the new software. The State of Things As of right now, the existing platform, which supports hardware product #1, is written in C# on a .NET Framework platform. There are two repositories, one for our hardware schematics/firmware and the other for our C# application, which encompasses everything from the UI (implemented in WPF) to the software which runs on the Zynq chip on the hardware device itself. The Path Ahead Ahead of me is the task of rebuilding the existing application into a brand

Summer in Review

Image
Hello! My name is Madeleine Goebel and I have spent the past three months working on a GSoC project to enable the creation of single file, self contained executables for Perl 6. If you would like to look at the code for my contributions, you can check them out on the  self-contained-executable branch of NQP.   As the summer comes to an end, I thought it would be appropriate at this point to summarize what I have accomplished so far, and what additional capabilities I would like to add in the future. There were four major phases to this project: generating ELF files (May/June), handling bytecode directly (July), adding the --compile capabilities to NQP (July), and enabling the use of modules (August). In this post, I will start with the original premise of my project, go over the highlights from the four major phases of work, and then discuss what improvements that would be nice to make in the future. I will also touch on my general experience in the GSoC and my experience working wi

Trials and Tribulations with Modules: Part Two

Image
Hello! I am a CS student working on a GSoC proof of concept to modify perl6 to create executable binaries. This blog documents my journey and struggles. There are likely more correct and maintainable ways to do what I've done so far. If you know a better way, or if you see an inaccuracy, please let me know in the comments section. This post has been incoming for a while, and as a result, has grown to a massive size. To make it a bit easier to digest, and more useful for those of you reading this hoping to find information about a particular aspect on module loading, I have chopped this post up into multiple smaller posts focusing on each of the smaller aspects. In this particular post, I'm going to focus on how module loading works. What's a module? For a complete explanation of modules, please refer to the Perl 6 documentation . This tutorial is a short and sweet explanation of modules, and this one is a bit more in depth, so pick your poison :). In brief sum

Trials and Tribulations with Modules: Part One

Image
Hello! I am a CS student working on a GSoC proof of concept to modify perl6 to create executable binaries. This blog documents my journey and struggles. There are likely more correct and maintainable ways to do what I've done so far. If you know a better way, or if you see an inaccuracy, please let me know in the comments section. This post has been incoming for a while, and as a result, has grown to a massive size. To make it a bit easier to digest, and more useful for those of you reading this hoping to find information about a particular aspect on module loading, I have chopped this post up into multiple smaller posts focusing on each of the smaller aspects. In this particular post, I'm going to focus on how the dependencies required by your Perl 6 program are identified and how the dependency tree works. Identifying the dependencies An interesting feature I was accidentally triggering when running perl6 --compile=foo foo.pl6  gave me a bit of a head start in figurin

Flags and Syscalls and Modules, Oh My!

Image
Hello! I am a CS student working on a GSoC proof of concept to modify perl6 to create executable binaries. This blog documents my journey and struggles. There are likely more correct and maintainable ways to do what I've done so far. If you know a better way, please let me know in the comments section. I have a couple of updates this week! I've gotten --compile working and have made progress on packaging the code for Modules inside the ELF (though I haven't quite coaxed things into using those packaged modules). Fair warning, this post is going to be a bit long. If you want to hear about the changes I made to NQP , jump to Adding the --compile functionality . If you want to hear about the changes I made to p6_linker , jump down to Altering the p6_linker.  If you want to hear about the progress towards module functionality, jump down to Module troubles. If you just want a brief summary of what I did, jump down to In summary. And as always, if you want to hear about