Friday, September 27, 2019

Hacktoberfest!


Hacktoberfest is around the corner, and as a software developer interested in open source, it’s a very exciting time!

It’s my first time participating in Hacktoberfest, I have no idea about how it’s going to be like or the type of work that I’ll be doing. Whatever happens, I have 2 clear goals that I’ll try to accomplish: improving my web development skills and facing a scary challenge.

I’ve been a developer for some time now, but because of the circumstances of the work I had to do, I didn’t have a chance to develop my web skills as much as I would’ve like to. Since the web is the future, I think having a solid knowledge of web technologies is crucial to be part of the software development community, and collaborating in a project heavily web-based will help me acquire the necessary knowledge to start feeling comfortable with web technologies. Also, I’ve been lucky (or “lucky”) so far because all the projects that I’ve been involved with were accessible in one way or another. With accessible, I mean that I was able to adapt to them, learning and developing the necessary skills to be able to contribute to them. Hacktoberfest gives me the chance to try to find something potentially scary that will require the best of my abilities to succeed. I don’t know if I’ll be able to overcome a real scary challenge, but I think facing one is something that every developer should go through every now and then.

These are the issues that I’d like to address:

There’s a project started and maintained by CDOT RA’s called Dahsboard that has been in development for some time, and it has a fair amount of issues related to web technologies that would definitely help me improve my react skills (I’ve never done anything in react before).
From that project, I want to take on these 2 issues: Pull Request reminder and Coding Style Standards.

Another interesting project that I’d like to work on is PenguinV. As their creators describe it, "PenguinV is a simple and fast C++ image processing library with focus on heterogeneous systems." The issue I’d like to work on is not particularly exciting, but I think it’s going to help me get familiar with the code and eventually start trying to take on more relevant issues and really contribute to the project.

Wish me luck!
Share:

Sunday, September 22, 2019

Open Source collaboration at its best

Remember mininote? It’s that small app that we made last week. It’s also part of an assignment for an Open Source course that I’m taking.
So, what about miniNote? Well, since we’re here to talk about Open Source, miniNote is the perfect excuse to show how an Open Source project grows thanks to a community of people who want to help improve software and make the world a better place.

As part of the Open Source course, we all (my classmates and I) had to create a miniNote, and the best part is that now we also got to check each other’s projects and fix bugs or add features to them.

I worked on 3 different projects:

Grommers00/my-note

my-note had a very minor issue that I wanted to address. The script tag was located at the beginning of the body tag in the html document, and I thought it was a good idea to move it to the end of the body.

It’s a minor bug, but depending on the size of the html document, a script tag in the wrong place can give the perception of a slow, bloated website.


jerryshueh/simple-note

For simple-note, I thought adding a save-on-disk functionality would be a good addition. Simple-note already had a saving functionality (not in a file) that uses ‘ctrl+x’ to save, so I added ‘ctrl+s’ as the shortcut to save on disk. It was an interesting addition since it was my first time using ‘FileSaver.js’.


Cindyledev/my-note

For this assignment, I was supposed to collaborate with 2 projects, but after finishing my 2 contributions, I started looking around because I was curious about other people’s contributions and how our apps were getting better thanks to mere collaboration. Checking my-note’s issues, I saw that one of the issues was filed by the creator of the project, not by a classmate trying to fix a bug or add a feature. In this case, it was a “real“ issue that was preventing the creator of the project from finishing the app and continue with the assignment. A fellow programmer stuck with a piece of code in an Open Source project. Say no more.

The issue was that the saving functionality wasn’t working, and the app wouldn’t show saved notes after refreshing. I did some testing and switching ‘querySelector()’ to ‘getElementById()’ seemed to fix the problem.

One mistake I made in this one is that I added the meta charset to the html document as part of this issue instead of opening a new one. I don’t think it’s a big deal (in this case), but I should be careful in the future because a contribution done through the wrong issue is almost untraceable, and if it creates a bug, it will be a huge headache for whoever has to deal with it.


I think we could call this part of the assignment pure Open Source collaboration at its best. A group of people helping each other improve their software by fixing bugs and adding features. Isn’t it amazing and exciting? No? Well, I think it is.
Share:

Wednesday, September 11, 2019

miniNote, your new web based note taking app!

What is miniNote?
The web is full of advanced, full-featured note taking applications. But what if you just wanted to open a web browser, load a very light, very fast web page, and start typing?

miniNote is an extremely lightweight, web based note taking app that will allow you to start taking notes without having to wait until endless, heavy features get loaded. It's fast, easy to use, and compatible with most if not all browsers out there.

For a quick test, click here and start taking notes right away! Don't forget to press ctrl+s to save your notes!

Open source libraries used
This was an interesting project because it gave me the chance to use open source libraries that I had never used before.

One of them was filer, a "drop-in replacement for node's fs module, a POSIX-like file system for browsers", as its creators describe it. I used filer to store the notes and also to get the content back on the web site.

Another one was HotKeys.js, an input capture library that allowed me to add a shortcut to save the user's notes.

Contribute!
You love miniNote, but you miss one or two features from your previous note taking application. No problem, you're welcome to fork our repo and start contributing!

Don't forget to check miniNote's license.
Share:

Thursday, September 5, 2019

Pydicom, a python package to work with DICOM files

I recently had the chance to work on a project that involved dealing with DICOM files. For this project, I basically had to write a parser that would extract and store all the available information about patients, tests perform on them, and visual and/or audio data embedded in the DICOMs.

As I was researching to try to find a good tool or library that would help me parse DICOM files, I came across Pydicom.

Pydicom is an open source library written in python than can create, parse and alter DICOM files. After 11 years of work, the team recently released version 1.3.0, with some good additions and bug fixes. The project was conceived as pure python package that will run on any machine that can run python, It relies on very few packages, making a very easy package to install and start using right away. Its very detailed documentation makes the learning curve very smooth, and its very active community is very responsive and will try to help as much as they can.

There are other options out there to work with DICOM files like GCDM or DCMTK, but if you want to avoid potentially complicated installation processes, and you're not concerned about the slow performance of interpreted langauges, Pydicom is probably the best solution out there for projects that need to work with DICOM files.

Pydicom GitHub



Share: