Planet CDOT

March 23, 2019


Anh Hoai Ung

Blog Post

Hello my fellow progammer friend,

So, it has been one week, and I am still currently working on 2 of the projects that I mentioned. It was quite hard and I still trying to get my work done in time.

To be honest, I am not really the direction that needed to complete this project. I am currently just trying to make it run first in my computer. I also try to search for more information about JavaScript and C++ commands and functions to implement and fix the bugs.

I will try to post new update whenever I have done something new. For now, my plan is to try finish these projects as soon as I can to have time to recheck. If I find out that I can not fix the bug, I will post a blog with new project links in it.

Thank you for reading until nơ. I will see you in the next post.

by hoaianhkhang at March 23, 2019 03:27 AM


Brandon Wissmann

Contributing to Status

Contributing to Status.im

This week I am working on making some bug fixes in the Status.im repository. Previously I’ve written about some minor contributions to this project, however, now I am trying to do something more significant.

I believe it would be helpful to explain to my future self as well as anybody wishing to contribute to Status any gotchas I experienced while contributing.

First thing is first, your best chance of being able to successfully build the environment is to either use Ubuntu or MacOS. Previously I’ve tried building on windows and was not successful.

The following will involve MacOS only as this is what I’ve been using to make contributions. Before starting anything you will need to have cloned the repository by running git clone https://github.com/status-im/status-react .

The next step is simple, change into the directory and run the environment setup script: make setup . That is all that needs to be done. This process may take a while.

To start building the project type make shell. This will create a Nix environment and must be run every time you wish to work on Status. Inside the shell you will have to run one of the following commands depending on the device you wish to test:

make startdev-ios-simulator
make startdev-ios-real
make startdev-android-avd
make startdev-android-genymotion
make startdev-android-real

Then, in a second terminal window:

make react-native

That’s it! You’re now ready to develop. Just remember to be patient as these scripts can take multiple hours to setup. Just be thankful it is all automated for you.

by Brandon Wissmann at March 23, 2019 03:20 AM


Al Vincent Valdez

Release 0.3 Update

For my 0.3 release I decided to work on Github Desktop and selected two issues that I can work on. Hopefully these issues are going to be workable for me. If not I have plenty of other issues to work on in this project. I also already have the project working on my computer so now all that is left is to start debugging.

Issue #1 Issue #2

by Alvin Valdez at March 23, 2019 03:20 AM


David Li

Release 0.3 Update

Issue: https://github.com/nodejs/node/issues/26546
PR: https://github.com/nodejs/node/pull/26875

For this release project, I have begun working on an issue for nodejs, however I did not expect that most of the files were already taken. I found a file that has yet to be updated, however it was just a simple line change. At this moment, I am wondering if I should switch to a different issue. The change I have made is:

const debug = require('util').debuglog('policy');
to
const debug = require('internal/util/debuglog').debuglog('policy');

If I do not get a reply about how to test whether this change will work in a few days, I intend to close the PR and move to a different issue.

by dli119seneca at March 23, 2019 03:15 AM


Oleksii Polovyi

Pandas update

This week I was working on API: timeseries accessors naming convention issue.

My first steps were to setup virtual environment with conda and built the project from the source code. Contributing page was very helpful.

"Successfully installed pandas"

This issue has some history that I read through in order to understand current status better. This was the first time jreback (core member) mentioned the problem. A few months later, there was an unfinished PR that was closed due to inactivity. However, there is a discussion between jorisvandenbossche, emilydolson and jreback on how to solve this issue.

The following changes have to be applied to tests and docs:

  1. dayofweek to day_of_week
  2. dayofyear to day_of_year
  3. daysinmonth to day_in_month

Using VS Code search I found that there were some naming duplicates in timeseries.rst:

  • weekofyear,”The week ordinal of the year”
  • week,”The week ordinal of the year”
  • dayofweek,”The number of the day of the week with Monday=0, Sunday=6″
  • weekday,”The number of the day of the week with Monday=0, Sunday=6″

weekofyear is a duplicate that wasn’t covered but it is related to the naming conventions issue.

Additionally, there are some requests from core members that were not completed in PR above:

  • test in test_series for dt accessor needs updating
  • define def _dir_deletions() returns a set of the attributes to remove
  • deprecate the old names (e.g. w/o the underscores)
  • add the warning in the _field_accessor

TODO

  • Fix naming duplicates and conventions
  • Add functionality requested by the core members
  • Run the tests (about 20 minutes each)
  • Describe the changes in doc/source/whatsnew/
  • Submit a PR for review

by ApolllonDev at March 23, 2019 02:43 AM


Harsh Patel

Release 0.3 – Update

For, release 0.3, I picked two issues, one from Marquez project and another one from Sloth android project. I was very excited to work on these two issues, but unfortunately, the issue from Marquez project was assigned to someone else and the Sloth project code maintainer didn’t reply to me yet with any information.

So, I had to pick another issue from marquez project, but either they were assigned to someone else or they were too hard for me to fix it. Then, I found an issue where I had to write a test for one of the mapper class. I found that really interesting as I had to use Junit. I’ve written JUnit tests before during my CIBC’s co-op work term and I was quite familiar with that. So, I’ve started working on it and I am pretty much done implementing it. Though, I still need a confirmation from the code maintainers that the issue isn’t assigned to someone else or it’s already fixed. Otherwise, my whole effort will go in vain.

Issue link

by hjpatel16 at March 23, 2019 02:03 AM


Jatin Kumar

Contribution to AntennaPod: March22

A podcast manager for Android

Hey folks,

This week I am working on an issue in AntennaPod. It’s a podcast manager which allows you to subscribe, download top podcasts available in the market.

The project is written in Java and XML.

For the issue, I am adding empty views to various pages. At first I thought the task will be easy but later I found its not that simple. Especially understanding fragments code was a challenge. For almost two days I was lost I had no idea how fragments work. Not only that fragments can be coded in many different ways which makes it more complex to understand as every developer has its own style of writing code. So, I had to do some digging about it.

Issue link

Later I was able to create empty views for some pages. But I wasn’t sure if
my code is according to their project coding standards. So I sent a pull request of my current work for review. Luckily, it passed all the test (hurray!)

Pull request

Then, one of contributor recommended to create only one empty view(xml) instead of recreating empty views for each page. But, he didn’t said anything about my java code (main code) so I believe it’s a good sign.

Now, I am finishing off remaining work and I believe I will submit my final PR to resolve the issue by next week.

Stay Tuned!

by jatinkumar at March 23, 2019 01:20 AM


Olena Vyshnevska

Release 0.3, Update 1

For the third release, I was looking into a bunch of different tickets, but it turned out to be quite hard to find a good one. Some of the tickets I found were still open, but already fixed in the code, others required more info to start working on them, and I couldn't get any response from the team.
For now, I ended up looking into Marquez project. It has a lot of nice tickets, but I'm still having troubles to get it working on my machine.
Other tickets that I consider working on are:




by Olena Vyshnevska (noreply@blogger.com) at March 23, 2019 01:18 AM


Sahib Arora

Experience With GitHub Desktop

Hi guys,

Recently, I had a look to the issue in the VScode [issue], Unfortunately, they assigned somebody else to issue, before I could finish up the my research and become a capable candidate for the issue.

Just wanna let you know, it happens all the time but as Open source is a huge world in itself, I tried finding a new issue related to GitHub Desktop, From my personal experience I don’t really like their desktop application, so why not to give enhancement to this project!

I was going through the enhancement, people would like to have in it and found one, people wants to see list of all the repositories and could change it.

This is what it looks now:

These are the list of all the repositories it has inside:

These are the list of all the repositories we want to show in the above list.

I have started working to understand the code, where it goes and from where I can do it, lets hope for the best how it goes!

Will keep you update!!

by sahib Arora at March 23, 2019 12:59 AM


Rachael Scotchmer

An Update On Aseprite

For my latest assignment in DPS909, I've been working on this issue in Aseprite. This wasn't really planned -- to be honest, I actually was going to deal with a bug in filer first -- but one thing led to the next, and I suddenly found myself working on this project instead. I talked about how I've dealt with something similar -- making a fill tool -- in last week's blog post -- and much to my delight, that past experience has served me quite well. In fact, modifying the current code for the fill tool to fill pixels connected on a diagonal was hands-down the easiest part in tackling this issue. It took me maybe 20 minutes to implement -- a few lines copied from existing code, a +1 here, a -1 there... Throw in a couple of if-statements, and voila! It's done. The only tricky part came when using the fill tool on a large area caused the program to crash. To determine where the issue was, I used the most basic of debugging techniques -- commenting bits of code out and seeing if the program would run without them. It took all of two minutes to figure out the problem, which was this little bit here:

if (check_flood_line(image, mask, p->y-1, p->lpos-1, p->rpos, bounds, src_color, tolerance, data, proc)) { done = false; }

Amazing, how such a small if statement can ruin your day. ...Well, function call, actually -- it was a bad parameter passed to check_flood_line that caused everything to grind to a halt. After a bit of testing, I figured out that when p->lpos-1 was less than zero, it crashed the program. Now, I'll be honest -- I didn't really delve into the why. Reading the source code for Aseprite is not my favourite thing; the style is not what I'm used to, and I find it difficult to keep track of a lot of the variables (many of which are called very descriptive things like c or p). Add that to a large (by my standards) and fairly complicated (again, by my standards) file system, and it's difficult to parse through things.

That said, I did take a quick look at check_flood_line to try and see if I could understand, at least at a surface level, what was happening when the passed l->lpos-1 was less than zero. I am 95% certain that it's because 0,0 represents the top-left corner of the canvas, so anything less than zero goes beyond the valid bounds of said canvas. Trying to access these non-existent parts of the canvas causes the program to crash -- understandably, since you can't get or set values of something that doesn't exist. But since there's no check for that in check_flood_line, the function still tries to access these nonexistent parts of the canvas anyway.

Why only one of the eight snippets of code I added is affected by this is beyond me. But the fix is pretty easy -- before passing l->lpos-1 to the function, check it to make sure it's equal to or greater than zero. I could have done this check in check_flood_line itself, but since it seemed to work with everything except one specific instance, I decided to err on the side of caution and include the test only in what I added. If need be, I can always move it later.

And with that, it was on to adding the option to toggle between this new fill option and the old one. Truth be told, I haven't quite figured that out yet -- though I did get some pointers from the project owner! I put up a work-in-progress pull request and asked for a bit of help. dacap pointed me in the right direction, and I've actually managed to add some buttons to the UI! This is a first for me, as I've never done anything UI-related in C++. I don't particularly enjoy it, but I think part of that's because it's still very new and unfamiliar. Once I understand it a bit more, I think I'll like it a bit more, too.

Despite having spent most of this post talking about the code, I didn't spend a whole lot of time messing about in the files. I think I spent more time trying to find files -- and then even more time trying to figure out how to install Aseprite. It is a task and a half to set-up -- requiring CMake, SKIA, Ninja, and probably a few others I can't remember off the top of my head, a lot of work needs to be done before even cloning the repository. Now, to be fair, a lot of it involves copy-pasting things into the command line and letting the computer do all the hard work for you. The hard part comes with a) installing the several other dependencies and b) remembering what steps you need to take to compile Aseprite after you've set it up.

For me, this meant re-adding certain things to the PATH, running CMake on Ninja, and then compiling Aseprite with Ninja. Depending on your machine, you may or may not have to do more or less. Just make sure to remember it, because let me tell you, nothing is worse than seeing a wall of errors in your console after trying to compile a project that worked perfectly yesterday.

But, hey, overall it's been a very positive experience, and I'm definitely looking forward to seeing the end product when this issue is fixed. I'm sure there's a fair bit of work left to do -- most of it probably reading existing code -- but right now, that's more of an exciting task than a daunting one.

by rscotchmer (noreply@blogger.com) at March 23, 2019 12:49 AM

March 22, 2019


Abdirahman Guled

Release 0.3 Update

In my last blog i discussed that i was going to work on project wired-elements. Wired element is basically a UI (User Interface) element that gives things sketchy and hand-drawn look. I went on and found issue-79.

Next thing i did was set up working environment my:

  1. fork the project.
  2. clone to my local machine.
  3. created an branch issue-79.
  4. run the project.

Once i run the project, it opened on my browser. for the moment it’s not clear to me exactly where i have to place the code. i will send a message under the issue for help and guidance.

by abdi guled at March 22, 2019 08:55 PM


Iryna Thompson

Release 0.3, First PR

SPDX-ONLINE-TOOLS

For my first Release 0.3 pull request, I worked on the spdx-online-tools project that provides an open-source online Software Package Data Exchange (SPDX) facility for to uploading and parsing SPDX documents for validation, search, and comparison with the SPDX license list.

Features

  • Upload/parse SPDX documents
  • Validate SPDX documents
  • Compare multiple SPDX Rdf files
  • Convert from one SPDX format to another
  • Compare license text to the SPDX listed licenses

Windows Environment Setup

  • Install Python 2.7+
  • Download the virtual environment by running pip install virtualenv
  • Create a new virtual environment for a project by running pip mkvirtualenv venv
  • Activate the new virtual environment by running source venv/Scripts/activate
  • Install the required Python libraries for this project from the requirements.txt, by running pip install -r requirements.txt
  • Check existing environment list by running lsvirtualenv -b or lsvirtualenv -l
  • Open a virtual environment by running workon venv

GitHub Sensitive Data

The settings.py file uses some sensitive data (the Client ID for the Github Oauth Apps and the randomly-generated Django secret key for each new project) from the secret.py file to work with the GitHub API.
So, I had to set my GitHub OAuth App for the application homepage URL to http://localhost:8000/ and the Authorization callback URL to http://localhost:8000/oauth/complete/github.

Django Database Setup

  • To migrate Django for applying migrations to make models (adding a field, deleting a model, etc.) into the project database schema, I ran python manage.py migrate
  • To create new migrations based on the changes I have made to models, I ran python manage.py makemigrations appName
  • To use the license-xml-editor with licenses/exceptions from spdx license list and download the license name, I ran python src/populate.py
  • To populate the licenseRequests database table with data, I ran python manage.py loaddata ./app/testFiles/licenseRequests.json

Application Run

  • To test the application, I ran python manage.py test
  • To start the application, I ran python manage.py runserver
  • Open localhost:8000/ in the browser
  • To use API, I opened localhost:8000/api/something

First Issue Fixes

  • I added some CSS enhancement to convert mouse pointer on hover and highlighting table rows on mouse hover
  • I moved redundant CSS from multiple files into one file
  • While testing some button click functionality, I found and raised a new bug (I am a Software QA Engineer after all) and fixed the code.
  • After fixing these bugs, the team asked me to remove some redundant CSS in other files, so I have some small bugs to fix for this project for my next pull request

First Issue
First PR

Dealing with Multiple Commits

While working on fixing my issue, I had to push 6 commits. The project team asked me to squash my multiple commits into 1. So, I decided to use git rebase

  • To see the list of my all commits and find the commit that is 1 before my first commit, I ran git log
  • To rebase, I ran git rebase a9b11aa... -i
  • Then I changed all but the first commit inside the opened editor from pick to squash
  • To push the squashed commit, I ran git push origin branch-name -f

Image: ‘Documents Key
http://www.flickr.com/photos/157270154@N05/37638855235
Found on flickrcc.net

by irynathompson0609 at March 22, 2019 08:33 PM


Joshua Jadulco

Open Source Work Update, Week of March 22, 2019

Aftermath of Adventure In WordPress

Last week I was doing work on the WordPress For Android repository and over the weekend and this week I have continued to work on the same issue since then to resolve the Issue properly, and I have managed so far to produce 2 solutions: Changing the appropriate string for the specific error message and Using the event.error.message function of the WordPress-FluxC for Android which is responsible for network and persistence capabilities of the WP for Android app by helping to connect and sync data from a WordPress site.

Eyes Up On K9-Mail

Other than that, I have been trying to look at an Issue on K9-Mail for Android repository The Issue pertains to an unclear Toast message that only states “null” and doesn’t state the source of the error.

What is K9-Mail?

K9-Mail is an open source email client for Android. Think of it as a Gmail-like app for your phone or Outlook except that one defining feature of it is that it supports OpenPGP – an encryption standard for encrypting emails to send confidential data or prevent possible snooping of emails from third parties, more of that can be found here.

What’s OpenPGP’s relation to K9-Mail?

OpenPGP is just a standard – that means it can be implemented in any way possible by an API as long as the implementation conforms to the standard. In Android, this implementation was provided by OpenKeychain and K9-Mail uses the OpenKeychain API to encrypt and decrypt messages.

The Issue

The problem can be divided into 2 sections – K9-Mail’s usage of the OpenKeychain API and how error handling is handled in K9Mail. Currently, I’m studying how OpenKeychain is being utilized in K9-Mail:

K9Mail-OpenPGP

As you can see from above, the handleOpenPgpError() function handles the error processing capabilities of the OpenPGP implementation of the OpenKeychain API but this is K9-Mail’s usage of the API and it’s not K9-Mail’s error handling. K9-Mail’s error handling for the specific Issue at hand can be found at the MessageCompose.java file, specifically onMessageBuildException() function:

MsgBuildException

The ‘null’ message in the aforementioned Issue is caused by the ‘me.getLocalizedMessage() function call generating a null return value so obviously something’s wrong with the getLocalizedMessage() method when the OpenKeychain app is not properly setup.

by joshj9817 at March 22, 2019 07:15 PM


Vladimir Rozin

penguingV Enhancement

Good ol' C++ and Image Processing

    The issue that was listed in penguinV's repository asks for a slight improvement on their already implemented EdgeDetection() algorithm, which currently works with double values. The improvement must template the algorithm so the work can be done with 'float's as well.
    Well, templating the class with all of its methods is not that hard, separating headers (.h) from implementation (.cpp) of a templated class is not that tricky (by the way, I have recently found a beautiful tutorial on how it can bee done in 3(!) different ways), but making sure that at the time of comparison/assignment of a double to int (and vise-versa) the data won't be truncated because of differences in bit sizes - that can be a bit time-consuming. As of now, the algorithm uses uint32_t (unsigned 32-bit integer) as its integer type to be able to hold/pass data from/to double variables (truncating decimals, obviously), but with switch to float, the uint16_t will need to be used.
    The coding-side of problem gets introduced here in desire to provide flexibility to a user of the EdgeDetection, when the user would only pick either double or float, and integer component would be chosen automatically at the run-time. Yet, as I recently found out, there is no such a thing as run-time function's types declaration, so the following is not possible: 
template<typename T = double>
class EdgeDetection
{
private:
...
typedef  std::conditional<std::is_same<T, double>::value, uint32_t, uint16_t>::type  _UINT;
}

This part std::is_same<T, double> would return inline constexpr bool value and so we would be able to determine if  uint32_t or uint16_t should be used, but std::is_same<> will be able to return something only at the run-time, so we cannot declare an object of type _UINT before the std::is_same<> is done.
    The solution to this can probably be the implementation of so-called "visitor pattern", which, basically, separates the object structure from its algorithm, allowing us to use "double dispach" to split the run-time flow in two different streams (for doubles and floats in or example). I will try to apply the pattern and see if it is something we can do the workaround with.


by Vladimir Rozin (noreply@blogger.com) at March 22, 2019 05:36 PM


Andrew Koung

Update on Release 0.3

I’m currently working on filerjs as part of my 0.3 release. What I’ve assigned myself to do is add a new feature in the library. I will implementing the fs.watchFile() function which does a manual poll to see if a file has been changed. I can say for sure that this was a challenging task for myself because I knew absolutely NOTHING about file systems in the browser. My professor, David and friend, Brandon led me towards the right direction by giving me some background knowledge. I had spent countless hours analyzing the nodejs repository and breaking things down slowly because there were syntaxes I was unfamiliar with and terminology being thrown around. After about three to four days, I began my leap of faith and started diving into the creation of the feature and had great conversations with my professor. That’s pretty much it and here are the links to the issue and pull request:

https://github.com/filerjs/filer/issues/654

https://github.com/filerjs/filer/pull/748

by Andrew Koung at March 22, 2019 05:13 PM


Woosle Park

Release 0.3 Update

Much Assembly Required

Currently working on this issue for release. I have an idea of how to implement the death count and walk distance however the total execution time is still unknown for me. I am having issues running test cases because I think the program doesn’t properly close the socket so relaunching the server causes an error because the port is already in use. Linux also seems to be more unstable so switching over to Windows may be a better solution to running and testing my code. All in all, I still have to actually implement and figure out how the code works but luckily I the userstat file seems to have been designed with flexibility of adding additional stat tracking I just have to learn where the stats can be recorded and sent from.

 

by woosle1234 at March 22, 2019 06:45 AM


Abdirahman Guled

Lab 8

For the remaining part of the course, i want to continue to contribute to anything with JavaScript weather it is react or angular.

Release 0.3:

For this release i found a project called wired-elements. It’s a set of common UI elements with a hand-drawn, sketchy look. These can be used for wireframes, mockups, or just the fun hand-drawn look.

I come a cross issue-79. In this issue it’s required to create a range slider with two points. Below is an image containing a conversation i had with one of the project members.

The project member notified me that Single slider have already been created and a disabled version of it too. Below is an image of the sliders created:

Release 0.4:

For this project, i’m in the process of looking for something to contribute to. However, i come a cross AZAN. It’s an Islamic prayer times allowing Muslims to view prayer time in their region. Below is an example:

I come a cross issue-3. In this issue more time zones have to be added. Below is an image of the issue:

Project 1:

wiredjs/wired-elements

issue-79:

New control: Range silder · Issue #79 · wiredjs/wired-elements

Project 2:

fahrinh/azan-gnome-shell-extension

Issue-3:

Not Enough Timezones Defined · Issue #3 · fahrinh/azan-gnome-shell-extension

by abdi guled at March 22, 2019 02:12 AM

March 19, 2019


Abdirahman Guled

Pull Request Four

In this pull request, i worked on react project . This projects allows others to create group or join a group.

In this project i modified scss margin in src/components/GroupLanding/ GroupLanding.scss.

Branch:

abdiG/map-share

Project:

leroyzhao/map-share

by abdi guled at March 19, 2019 06:42 PM

March 18, 2019


Alexei Bonilla

Bon's Blog 10 - Anotha One

Hello everyone, thanks for stopping by,

Another week, another set of tasks.

This weeks task is to research more Issues to work and continue contributing. The two issues I will be taking on this week are bugs in the Calculator application on your windows PC and mission pinball, software used in actual pinball machines. I think these 2 issues will provide a good challenge while also still allowing me to complete other course work. The 2 issues I will work on will be linked below, and I hope you guys will be back for the updates.

Alex

Issue #1

Issue #2

by abonilla1 (noreply@blogger.com) at March 18, 2019 03:35 AM


Harsh Patel

Lab 8 – Release 0.3

Hey there! Now, I have got experience to fix small bugs for open source projects. I’ll now push my limits and will work on issues that make me think out of the box and I’ll implement something more than code cleanups or good first issue where I fixed typos or did small code changes.

Sloth Android App

I wanted to work on an android open source project because that is something that I am interested in. Here is the issue link which I think I’ll be working on for next releases

Issue link

Marquez Project

I love java programming, so I’ll like to contribute to this project more and I did contribute to marquez project before.

Issue link

Also, I would like to contribute for React Native and Spring framework if I find issues which I will be able to implement.

STAY TUNED!!!!!

by hjpatel16 at March 18, 2019 12:58 AM

March 16, 2019


Rachael Scotchmer

Moving Up: Plans to Tackle Larger Issues

My next two tasks for DPS909 are to fix two issues that are a bit bigger than the ones I've dealt with previously. Thanks to my prof, I've already got one issue to work on: a bug in Filer where flags are interpreted as strings, not numbers. I'm not entirely sure how much work it will take to fix this -- I think it largely depends on how wide-spread the issue is across files. If it's contained to only a few, that makes my life easy; if not, I imagine I'll be playing a game of "Where's Waldo", where Waldo is one of many instances of the bug. On the bright side, my prof has offered to mentor me through fixing the bug, so I know I can count on some guidance for this.

The other issue I wanted to work on is in a different project. I recently got into doing pixel art, which is easiest to make when you've got a specialized program for it. A few Google searches led me to Aseprite, an open-source image editor geared directly toward those of us doing pixel art. Of course, I didn't know it was open source when I bought it; that revelation only came a bit later, when doing some google searches for tutorials and the like. Had I known that, I probably would have compiled it myself. Oops.

Either way, it was $15 well-spent. Not only did I get a neat little program that did exactly what I needed, but I found a new open source project with a couple bugs that I could probably work on -- one of which has impacted me directly. When using the fill tool, it would be nice if it could use the 8-connected pixels method, which is very helpful when recolouring linework. An issue for just that feature had already been filed, so I jumped at the chance to add this feature myself.

Since Aseprite is written in C++, I'm pretty confident that I'll be able to understand what's going on -- I've been working with C++ since semester 2, so I'm very familiar with it. Funnily enough, I've also solved this exact issue in the past -- it was just for some schoolwork though, and not an open source project. The main trick here will be finding the file in which the fill tool is implemented, but I've already got some leads. They are:

The .cpp files seem like the best place to start, given that they're where the code is actually implemented. Judging by names alone, I would also guess that floodfill.cpp has what I'm looking for -- fill_selection probably just fills something that's been selected with the marquee or magic wand tool.

So, between Aseprite and Filer, I think I'm set for my next two contributions to the open source community!

by rscotchmer (noreply@blogger.com) at March 16, 2019 02:43 PM


Brandon Wissmann

DPS909 — Release 0.3 and 0.4

DPS909 — Release 0.3 and 0.4

For my release 0.3 and 0.4 I am looking to improve my knowledge in ClojureScript, therefore I plan to work on issues in the Status.im repository. I have previously contributed to this project in 0.2 and enjoyed the interaction with the core contributors there.

I am hoping to be able to squash a couple of medium to low severity bugs. The first that has caught my eye is issue #7671. Which is an issue that brings up an error code when a user performs a certain set of actions. I believe this will be a good challenge since I will have to understand how things are interacting with one another in this project.

The next issue I would like to complete for release 0.4 is issue #7432 which has a similar context to #7671, however, while it is a low severity I believe it may be harder to track down the cause of this issue as it involves multiple users interacting.

I look forward to completing these and continuing to write about what I learn through these projects.

by Brandon Wissmann at March 16, 2019 01:07 PM


Xiaowei Huang

Lab 8 – Prep for 0.3 and 0.4 Open Source Projects

Here’s the two projects I will work on for my 0.3 & 0.4

https://github.com/MarquezProject/marquez/issues/332

https://github.com/prestosql/presto/issues/135

The Marquez Project issue is related to my release 0.2, which is a complicated. Here’s a reply from the developer,


Yeah, updating the return type of the mapper is slightly more involved than a simple class rename. The issue doesn’t go into the specifics, but you’d eventually run into complication errors once you renamed the class. We want to make sure any class using the mapper are also update along with your PR.

In the 0.3 release, I will keep communication with him and try to close this case.

For my 0.4, presto is one the projects I interested and mentioned in 0.1, about database and Java. I talked with it community through Slack, and asked a start-up issue in it. The owner replied me directly and shown me the one he think it may fit to me. I still need to take some to figure it out. By now, I had set up my working environment, which saved me some time.

by Violet H. at March 16, 2019 04:24 AM


Iryna Thompson

Discovering Open-Source Projects for Release 3.0

I have spent the last 3 days searching for projects with bugs I could potentially assist with. While doing this, I encountered a number of issues:

  • For larger projects, I noticed contributors created enhancement requests without consulting each other resulting in the issue raised being associated with out of date version of the planned design.
  • When issues are raised, they were often untriaged for long periods of time, sometimes for years, so when I tried to contribute, I learned the issues were no longer valid.
  • A very high percentage of “Open” issues were in fact closed upon closer investigation giving the false impression there were far more unresolved issues than was actually the case.

Potential Projects

Nevertheless, I was able to find two candidates projects for my 3.0 Release:

https://github.com/topcoder-platform/community-app

https://github.com/mozilla/network-pulse

Potential issues I would like to work on include:

Issue #1

Issue #2

These candidate projects interested me because they appeared to provide good opportunities to improve my existing JavaScript and Python coding skills, or to become more familiar with the React JavaScript library used for building user interfaces.

I also very much want to contribute to the Mozilla project as I have been an independent Open-Source QA manual tester for Mozilla Firefox projects for around 3 years.

Image: ‘I wish it were 1999
http://www.flickr.com/photos/53326337@N00/3353884600
Found on flickrcc.net

by irynathompson0609 at March 16, 2019 03:53 AM


Anh Hoai Ung

Lab 8

Hi everyone, again again 🙂

So, it is just only about few weeks left, and I got some new issues and request to pull. For this lab, I will choose an issue to work with, and after some time looking for a fit open source project to work with, I found out that I can work with emscripten and speak.js.


Emscripten is an LLVM-to-JavaScript compiler, while speak.js is a port of the eSpeak speech synthesizer from C++ to JavaScript using Emscripten. I chose them because I found myself easier to deal with the issues in it. I will be updating my progress more frequently, although there may be some delay due to my busy schedule for the last few weeks.

Thank you for reading :D.

by hoaianhkhang at March 16, 2019 03:12 AM


Vincent Logozzo

0.3 Road Map

Microsoft/Calculator

One of the projects id like to work on for my 0.3 release is Microsoft Calculator, I was going to take another look at Visual Studio Code for potential issues, and then decided to see what other projects Microsoft had on there github. Since I started OSD, I've wanted to work on a C++ project, but most are a massive code base and do complex computing, but this project is a much better starting point, and a good name to contribute to. I found this issue asking to move the engine from C pointers and manually deleting memory to C++ smart pointers, for anyone who doesn't know, a smart pointer is the closest thing your going to get to Java's garbage collection in C++


Microsoft/microsoft-ui-xaml

The second project i'd like to work on is from Microsoft as well, microsoft-ui-xaml. I'm sure everyone has a opinion of microsoft's UI/UX decisions. Most people have used windows 8, even if only for a moment... but windows 10 has seen lots of UI improvement, even the last update bringing dark mode file explorer,
which from this blog, you might see is a welcome change with me. The issue I found for this project is simple, the UI has a color change when the mouse enters a button, this color change is black to gray in dark mode, but the back button doesnt follow this color scheme. I would like to work on this bug, to get my feet wet on the front end of desktop applications, its probably one of the biggest things not covered in the CPA/CPD program.

by Vlogozzo (noreply@blogger.com) at March 16, 2019 03:00 AM


Vladimir Rozin

Deep Into Issues

In search of the best bugs


    I've been looking for a couple projects that I might be able to contribute to. Time period - 2 weeks for each. Level of difficulty - intermediate. Excitement - beyond limits. 
    After a couple of decent hours spent on looking for no less decent projects to work on, I decided to come back to the one that I have already worked on - penguinV (you can read about this project in one of my previous posts) - and choose one, that I haven't worked with before - opencv. OpenCV is an open source project, which is implemented in C++ and Python and is widely used in various computer vision projects. 
    The issues that I would like to focus on have different backgrounds, one is an enhancement, and the other is a bug fix. I believe I should be able to manage to finish both of them on time, even having a tight schedule this semester and working on 3 big projects at the same time. 
    Wish me luck and wait for the updates :)


by Vladimir Rozin (noreply@blogger.com) at March 16, 2019 02:58 AM


David Li

SPO600 Lab 8

https://github.com/nodejs/node/issues/26546
https://github.com/excaliburjs/Excalibur/issues/1102

For releases 0.3 and 0.4, I found an issue from Nodejs and Excaliburjs. The former being a frequently used cross platform runtime that executes JavaScript code externally from a browser while the latter is a HTML5 game engine. For 0.3, I intend to do the issue for nodejs. As it is labelled a good first issue, there is a large quantity of files to work on. I intend to do approximately 2-3 of them, if not more. For 0.4, Excaliburjs is my choice. The issue itself does not list how many files need altering, but it will not be a small amount most likely. I intend to work on the larger files if possible.

by dli119seneca at March 16, 2019 02:54 AM


Paul Moon

Issue for release 3 or 4?

So far I managed to find one issue, which is a functionality implementation for a discord bot, I was always curious about discord bots and this could be a good issue to work on to get a taste and feel for such.

However it might be a bigger under taking to be a 3rd release, and perhaps would be better suited for the 4th release.

Still on the prowl for another issue, but mostly I keep stumbling on some school work like thing where its testing GitHub, or fluff things that are quite small, and changing docs, readme.md or some variable changes. Other than those it seems to be quite a large and big under taking issues

by bakamonomoon at March 16, 2019 01:47 AM


Julia McGeoghan


Sahib Arora

Journey Continued… [Open source]

Hi guys,

Today, Before I talk further about contributing to the Open Source. Lets discuss the importance of why to contribute. How contributing to Open source can help us?

Lets hear the story of Ethan Arrowood

Contributing to open source helped me land an internship at Microsoft. Here’s how it can help you.

As mentioned in the story, it was open source contributions which stood him different from the crowd. Just have a look to his contributions. 500 Contributions over a year, that’s a lot. If you have less, its all good, Not everyone is active like him. But the main Idea behind his story was, contributions in open source not just help in learning but can also help you in getting into your dream companies.

Lets have a look back!

Earlier, I did some localization work with React. It was a good experience in learning how is the culture. Then, I got a chance to do some designing for one project and last not least I got a chance to do some coding with a project coded in React. Most of the contributions were easy to do not tricky, nor a lot of readings. But now as with some experience, this time I will try to get into something from where I can get a boost to my Open source carrier. What I mean by this is that, I will try to contribute to some big and famous Open source projects.

List of Open Source Projects I am looking to Contribute into are:

  1. Microsoft VS Code: It is one of the most famous Editor, I have been using it from 1.5 yrs, So, I am gonna try to find some issue which I could understand and work on it.

The issue, right now I am looking into is: [issue].

2. Git Hub Desktop: Recently, I was having a look to my professor’s work, by which I got some experience in Git hub desktop. So, I will be looking forward to get some more insights.

There are several different, I am looking forward to:

Some of them are:

  • facebook/react-native
  • tensorflow/tensorflow
  • angular/angular-cli
  • angular/angular
  • ansible/ansible
  • kubernetes/kubernetes

If you guys have anything let me know and thanks for stopping by, if you wanna hear more, stay tuned!

by sahib Arora at March 16, 2019 01:04 AM


Oleksii Polovyi

React Native and Pandas

For a long time, I wanted to try working with React Native and my new challenge is to implement a high-priority feature within the buttercup-mobile project.

Additionally, I will contribute to the Pandas project by fixing naming conventions issue. Pandas’ setup is a complex process and it will take some time to onboard.

by ApolllonDev at March 16, 2019 12:12 AM

March 15, 2019


Jatin Kumar

Future Open Source Contribution Plan: March Edition

Hey there folks!

This week I will be working on an WordPress android application.

Personally, I have been using wordpress for a quite some time and I love it. It is just so clean and simple to use. Recently, I found that there is an android app for the WordPress which is an Open Source project(repo). These days I have been investing lot of time learning cool things in android development. Soon, I will be uploading my ongoing android projects on Github as Open Source.

For now, I am going to fix some existing bugs or maybe add some cool feature in WordPress app. In process, I will also try to find some undiscovered bugs.

I have already setup my workspace. Throughout the project, I really loved the variable/function naming convention. But, I have to become more familiar with the codebase and get down to work on bugs.

The issues that I am planning to work are as follows:

Issue 1

Issue 2

Issue 3

I will be still looking out for some other exciting Open Source projects to work on so let me know in comments if you have any recommendations.

Stay Tuned!

by jatinkumar at March 15, 2019 11:22 PM


Olena Vyshnevska

Lab8 Issues for future releases


In the third release, I'm planning to work on one of my previously selected projects. From my experience with popular GitHub open source projects, sometimes it might take a lot of time to get any reply from their team, which might be a problem if I come up with any questions along the way. Moreover, picking a project from the previous release will save time on setting up the project and getting familiar with it.

Slothpixel project

One of the good options to work on in the next release is Slothpixel project. It is an open source Hypixel data platform which is currently at the early stage of its development.
It uses React JavaScript library to build user interface. React is considered to be one of the most demanded programming skill in the job markets and one of the most popular javascript frameworks. So it will be a perfect add-on to my resume.

The issue I might work on:
https://github.com/slothpixel/ui/issues/3

by Olena Vyshnevska (noreply@blogger.com) at March 15, 2019 10:51 PM


Yuansheng Lu

Lab 8: 0.3 and 0.4 Open Source Projects

In the Release 0.3 and 0.4, I am going to make contribution to the projects named bootstrap-slider and angular-bootstrap-slider. The project’s link is here: https://github.com/seiyria/angular-bootstrap-slider https://github.com/seiyria/bootstrap-slider

The reason why I want to work on this project is that I am currently working on a volunteer project for a company in Toronto. The front-end code is implemented using Angular. Now I need to add a slider to my project. Therefore, I found this slider project which used Angular. Now I want to get familiar with this GitHub project and then I can use it in my volunteer project.

In the Release 0.3, I found an issue posted by a maintainer. The issue is about legacy problem: https://github.com/seiyria/angular-bootstrap-slider/issues/156. I want to fix this problem. Once it’s done, I also need to add a test to make sure it sill works properly.

In the Release 0.4, I planed to add more test to make sure this component can work on the mobile phone, because I also need to use this component on the mobile platform for my volunteer project. The issue is here: https://github.com/seiyria/bootstrap-slider/issues/918

by luysh0420 at March 15, 2019 09:38 PM


Jacob Adach

Lab 8 – Release 0.3

For release 0.3 the goal is to be more invested in an open source project and take on a bigger challenge and get more involved within the community.

That being said I am looking for a REACT or maybe even a NATIVE REACT project to work with. I feel like web development is something I want to dig into because of 2 reasons: I find it interesting and I don’t know too much about web development on a high technical level.

There are a few projects which I am looking at which I will list below:

Buttercup application, this is a REACT application which helps users store passwords for easy access which are encrypted and accessed through a private key.

Buttercup mobile application, same as above except this one is written in NATIVE REACT.

Visual Studio Code, open-source free to use editor which uses Typescript.


I am leaning towards buttercup desktop application using REACT, i like how the application looks and work on my desktop and browser and I would like to tinker around the code and see how it all comes together. I found a relatively easy issue, its not super easy but it is something that I find I can jump into at my current level of knowledge.

https://github.com/buttercup/buttercup-desktop/issues/574

I am hoping I can find other classmates to work on the project with me and I might even switch my project o work on another project with a classmate because it will make life easier.

by jacobadach at March 15, 2019 06:49 PM


Julia McGeoghan

Continued Open Source Contributions

These recent weeks in Open Source have been an interesting and fun one for me. I’ve learned more about proper project documentation, rebasing, task automation, various Node.js core modules, and making larger Pull Requests to projects. Most of those lessons were related to a couple of contributions in particular, which you can view here:

Working with Docusaurus

These recent weeks were my first exposure to Docusaurus. Learning about something like this was great because I’m now likely to use it as a solution in the future. It’s a nice, quick way to create a simple documentation site.

It’s pretty interesting to learn how it works in general. The highest level description of it I can give is that it will take files you store in a certain folder + a couple json files and use these to generate your site for you. I wouldn’t mind learning more about how Docusaurus actually goes about doing that, at some point.

Node Processes

Image result for nodejs

I’ve been wanting to get better with Node and my recent Open Source contributions have certainly centered around that a lot! I’ve been writing a lot of different Node-centric blog posts lately, each inspired by said work.

One thing that I’m a bit caught on is how to better handle spawned processes in Node applications. In the recent script I wrote 30 typedoc processes would be spawned simultaneously….

const typedoc = spawn(typedocPath,
[
'--tsconfig', config,
'--excludeNotExported',
'--out', output, file,
'--theme', "markdown"
]);

…and this would cause the CPU use to reach 100% of its utilization, making the computer itself very laggy and slow! Not only that but the processing itself would take a while. So effectively a developer’s computer could become close to unusable for a minute or two, purely because this script was running….

I have a hunch there was something I could do to at least alleviate the CPU usage on the computer when something like this is running. I’m definitely going to look into this one more in-depth.

What’s Next

At this point I’m making smaller fixes or changes to what I wrote. For example, there would be nits in one script I’d notice while writing the other, and instead of addressing them in a technically unrelated PR I saved them for later.

refactor: update how copy readme script prints output to terminal by jkmdev · Pull Request #1546 · Microsoft/fast-dna

For a while I think I’ll just focus on making smaller, easier bug fixes to this project. I want to learn more about the 30 or so packages/projects included in it, doing so would be a better way of learning about each different one.

by Julia McGeoghan at March 15, 2019 06:31 PM


Joshua Jadulco

An adventure on WordPress for Android

Background

Over the course of the past week, I’ve been working on an Issue in the WordPress for Android repository. The project itself is very overwhelming because of how large it is – building the app itself took a whooping 23 mins just to be compiled. The longest one I’ve ever seen. However, the structure of the application itself is coherent – I was able to easily locate the files that needed to be fixed. To start, the Issue that I tackled can be found here.

A confusing error message

WrongErrorString

As you can see from the above GIF, when I want to change my current linked email address of my WordPress account, to an email that’s also tied to another WordPress account, the app itself only gives a vague error message that the account settings can’t be saved – it doesn’t state the fact that the email address itself is an issue and a less technical person might not be able to correctly diagnose the cause of the error.

Debugging in WordPress for Android

Now, before I’m able to produce the error message in the GIF above, I needed to create an app in the WordPress Developer App Manager. Why? Because apparently we need our own OAuth information so that the WordPress for Android app that’s installed on my emulator phone can enable to log-in to my WordPress account and test experimental features.

As seen here below, I created the app necessary to generate OAuth information:WPAndroidTesting

OAuth Information

For privacy purposes, I cleared out my own OAuth information details. When you create your own app, you’ll see your own OAuth information below and you can use the “Client ID” and “Client Secret” information fields for the app by inputting them into the gradle.properties file into the WP.OAUTH.APP_ID and WP.OAUTH.APP_SECRET fields.

WPAndroidOauthSettings

Now that proper setup for the debugging is complete, I was now able to make changes and test them. The needed fix is a simple change to the Toast message for the app by creating a string named error_email_used_settings in the strings.xml file and attribute the message “That e-mail address is already being used.” to it. Now that it’s in the strings.xml file, I was able to use it as an error message for the Toast. As shown below, the ToastUtils.showtoast(getActivity(), R.string.email_used_settings, Toast.Utils.Duration.LONG) code snippet is the one responsible for generating the error message as a Toast.

CodeSnippet

A helpful error message

And now we have a more coherent error message that tells the user what exactly went wrong when they weren’t able to save their new email address.

CorrectErrorString

 

by joshj9817 at March 15, 2019 06:19 PM


Volodymyr Klymenko

Adding SVG support to Lona’s file preview

Last week, I made my first contribution to Lona. If you haven’t read my previous post, you can find it here:

Contribution to Lona + How to set up Ruby environment on macOS

I really liked the experience of contributing to this project, and I decided to work on it until the end of the semester. Earlier this week, I had an opportunity to fix the following bug:

Currently Lona Studio displays some image files, e.g. PNG files, when selected in the file navigator. However, it doesn’t display SVG files, which it really should, since it handles them elsewhere correctly. (from the issue description)

Here is how the .png files are displayed:

The .svg files are not displayed at all:

Fix

First, I had to add SVG to the list of supported formats in Info.plist.

Then, I added the following lines to the implementation of the read function, which is called on file selection event:

let data = try Data(contentsOf: url, options: NSData.ReadingOptions())
if url.pathExtension == "svg" {
let size = CGSize(width: 450, height: 450)
content = SVG.render(contentsOf: url, size: size, resizingMode: .scaleAspectFit)
} else {
content = NSImage(data: data)
}

Let’s walk through this chunk of code.

  1. It checks the extension of the selected file.
  2. If the file has ansvg extension, it sets the content (which has type of NSImage) to the result of render function, which was implemented in the SVG enum.
  3. If the file has any other image extensions, it just sets content variable to NSImage with data.

And here is the result:

As you can see, the SVG image is rendered when a user selects the image in the file navigator 👍

Enjoyed this post? Feel free to give this post a few claps so others can enjoy it 👏

by Volodymyr Klymenko at March 15, 2019 03:12 AM

March 14, 2019


Woosle Park

Lab 8 – Picking projects

I was really interested in helping develop a game so for both projects for release 0.3 and 0.4 I picked open source games.

Much Assembly Required

This game is a multiplayer server game where you move a microbot collecting ores. The feature that was desired was to user stats on the UI such as death count, execution time, and walking distance. Still unknown if execution time is a realtime counter or in-game counter. This one requires JAVA code which I’m a little rusty on so I’m gonna need to refresh my knowledge to code this. This is my release 0.3.

Mission Pinball

This is a pinball game. The feature desired is to implement more variable displays for the UI as well as being able to configure what variables to display. Still known what variables to display and how it should be configurable. I will need to learn some python for this code but looking over it seems to use the draw feature which logic I think I can follow. This will be my release 0.4.

Much Assembly Required Issue

Mission Pinball Issue

 

by woosle1234 at March 14, 2019 07:20 AM

March 12, 2019


Paul Moon

late final report

Hectic week, and mostly hectic trying to do the pull requests, I feel like some of my pull request was pretty terrible. It felt like it was bit of a “fluff” kind of pull request, I believe I need to be better at finding communities and issues that are my level and/or get better myself

The translation pull request was by far the most difficult task I’ve done, honestly thought it might be simple and straightforward, but I’ve had quite the issue regarding the translation from sentence structure to word usage from previous translations and other standalone translation that became popular.

The simple error fix and typo fix pull request were quite simple and straight forward, it was just a simple changing variable or words. In the end it seems like there are lot of simple issues that people do not wanna take the time to do themselves, or just feel that it is not worth the effort.

Most of the issue just seems, I made a simple mistake and I don’t wanna try and fix or want to bother to fix, might as well use GitHub to my advantage. Feels like some people are in a way abusing the community because they feel like they can exploit others good will.

by bakamonomoon at March 12, 2019 04:11 AM

March 11, 2019


Adel El Masery

My First Month of Open Source

The Journey to 4 Pull Requests

Pull Requests

  1. React Romanian Translation
  2. Custom date formatting program
  3. Docusaurus
  4. Firefox Devtools

My Journey Summed Up

I started this release hoping to land four separate, meaningful code contributions in open source projects. I was a bit surprised to find that good issues were not that easy to land, as there were many contributors eager to claim an issue.

As I struggled to find an issue of my own, I began to lower my standards on what an acceptable issue would be and started to look outside of the three projects I was initially interested in. My journey led me to contribute to four different projects, React.ro, custom-date-formatting, Docusaurus, and Firefox Devtools.

Admittedly, I believed that landing a good issue would be simple and did not leave myself enough time to find something truly meaningful for myself. This is definitely an area I wish to improve on for my next release, since working on something you’re passionate about is much more enjoyable and motivating.

My pull requests were not in vain however, as I learned many useful skills and got a firm grasp on how GitHub issues and pull requests work. The members of the community I interacted with were eager to help me and answer any questions I had. One member of the Docusaurus team also showed me that adding the issue number in my pull request will automatically link the issue in the PR and then close the issue once the PR is merged. Small tips like these are always welcome and I greatly enjoy becoming more familiar with software I regularly use.

Overall, my first open source experience was pleasant and the community was very welcoming and helpful. I look forward to making bigger contributions in open source and seeing where my next release will take me.

by Adel El Masery at March 11, 2019 11:57 PM

Contributing to Docusaurus

My Third Open Source Contribution

For my third pull-request, I searched for a bigger project to contribute to. Although I already contributed to React by translating documentation, I wanted to be involved in something more immediately relevant to myself.

I found Docusaurus while browsing a list of good-first-issues on GitHub and immediately noticed an open issue I could contribute to. The community was very helpful and responded to me quickly after I claimed the issue.

My pull-request was successful and I learned a bit about fixing issues (and including issue numbers in the PR) on GitHub through the helpful comments by the Docusaurus community.

by Adel El Masery at March 11, 2019 11:40 PM

Continuing Contributions in Open Source

Joining an Open Source Community

My main focus for the 2nd pull request was to find an issue in OpenRCT2 to work on. Unfortunately my efforts did not turn up any meaningful results and I decided to pursue different projects for this release.

For my 2nd pull request, I joined a custom date formatting project utilizing JavaScript and TypeScript. My pull-request involved adding myself to the contributors list in order to pursue future issues in this project.

by Adel El Masery at March 11, 2019 10:14 PM

Open Source Contributions Update 2

Romanian Translation for React Documentation

For my first issue I decided to do some documentation translation for the Romanian React community. My search for meaningful issues has yielded few results and translating this documentation seemed like a good first issue to work on.

My completed translation is featured in this pull request. There are some minor grammatical changes that I must make before the translation is perfect since my Romanian is a little rusty. Overall, this was a good introduction to contributing in open-source projects.

by Adel El Masery at March 11, 2019 10:10 PM

March 10, 2019


Vincent Logozzo

0.2: Final Summary

A Month of Open Source

what went wrong and right

after completing the 0.2 release and my first experience contributing to open source, I many things about the community and atmosphere. My first week was a rocky start, I spent the week looking for a bug to fix to no avail, then I found godot.

godot
Godot was a ambitious, project to start on, a very large code base and what appears to be a lack of maintainers in the repo, sitting on over 300+ idle pull requests. Between those two things and the loops you need to jump through to start development, I opted to not contribute to the project.

ArtStationApplication
After godot, I found Jwilder's Art Station Application, A smaller java project starting development. I found this issue, asking for functionality to rename shapes created inside the application, this seemed like a simple solution, until I found out there was no UI for this feature. The changes weren't ridiculous, but one thing I learned from this project, is that github doesn't make the best friends with java projects.
My initial pull request had reformatted an entire document with Eclipse and because I wasn't sure how to resolve this with git, I decided to re-fork and create another pull request. From that I learned to not use IDE formatting on an entire document and that pull requests aren't a snapshot of your repo, but is updated anytime you make a change to your repo. After adding names to the shapes, the save and load functions needed to be updated to handle this new member varriable. This was my second pull request for Art Station App..

Dots-and-boxes
dots-and-boxes is another new project, a simple online game writing in javascript. The issue was a simple request, change the color of the start/end game button to not appear inactive, as there original colors were gray. The creator provided me with some feedback about my commit messages here. I sent my pull request with some feedback to help the creator understand why the CSS structure was causing a "race condition" and causing the last file imported to overshadow the previous files.

Chaos
Chaos is a very new project, 10 days old at the date of writing this, the creator created a issue for the housekeeping task of creating/updating a .gitignore, getting ready for outside contributions. My pull request is a compilation of .gitignore files from the github team that meet the issues requests.

Something I Learned
I learned that when starting work on a new project, I should focus on the ground work first: setting up my development environment, getting a working version on my machine, and then reproducing the bug. After all these things have been done we can start to work on the code or try and identify the area of the problem.

by Vlogozzo (noreply@blogger.com) at March 10, 2019 11:32 PM


Anh Hoai Ung

Final Summary Blog

Hello there (General Kenobi),

So after all pull requests, and coding and programs, this assignment has come to an end. That is why this post will summary all of it all together.

Overall, this whole project has given me a better chance to utilize GitHub and my C language knowledge. I had some trouble when I tried to debug all of the annoying bugs, but thanks to Google, I was able to fix it alright. I may have to check my code more careful next time to save my time. GitHub has given me a better chance to contribute to open source project, therefore helping a wider community. Open Source is really useful for code like me because I have wider library of codes to learn and improve if necessary. I hope I can prove helpful to other Open Source project in the future. I will stop now, and update more for the next Assignment. Cheers :D.

by hoaianhkhang at March 10, 2019 04:51 AM

March 09, 2019


Anh Hoai Ung

Release 0.2 Update

Hello Everyone,

It has been a while since my last post, and I have been able to submit a lot of things to open source projects. As I have stated in my previous post, I have chosen some other simpler projects to work on in C and C++. So here is my report for what have done on the past few weeks.

I was trying to find some open source projects that needed helps, or projects that allow me to submit a pull request in C language. I will included the name of the projects and the link to it in the end of this post. The issues was mostly asking any contributor to add some application in their project’s appropriate language’s folder, while one of the issue was asking to adding another condition to a find prime number program.

I chose to work on these projects because I am most familiar with C and C++. I have been studying it from the first semester until now, so it is the language that I am confident to work with.

I used Visual Studio 2017 to work on the code, and changed some of the errors that I did not pay attention before. After a while, I was able to finish my work and pull a request to the project.

Thanks to the projects, I was able to practice my C and C++ programming more, and discover some uses of library and functions that I have not used much before.  I will update more on my last post for this Release, thank you for reading my late post :D.

 

Link:

– Adding Credit Card Program: https://github.com/rishabh-malik/Hacktoberfest-2018/pull/333

– Adding Finding Prime Number Program: https://github.com/Kakashiutano/psychic-octo-guacamole/pull/10

– Create Basisc C Game: https://github.com/gouravthakur39/beginners-C-program-examples/pull/33

– Adding Bank Account Program: https://github.com/kinetickansra/algorithms-in-C-Cplusplus-Java-Python-JavaScript/pull/166

by hoaianhkhang at March 09, 2019 11:49 PM


Alexei Bonilla

Bon's Blog 9 - Reflection

Hello everyone and welcome to my blog.

Today's post i will reflect on my work for the 0.2 release.

Here are all the Pull Requests and the Repo's I created and contributed too.

Password Generator - Read Me
Psychic Octo Guacamole - Prime C
Name Suggestion Index -  National Bank
Name Suggestion Index - First Bank

Some things that went well in this assignment was the amount of good first bugs that github has.
There is tons of options for contributions in the open source community, and it was great to research through and pick projects that I like.

Somethings to be improved on this assignment and something i mentioned in the last blog, is time.
Time management in this release was not what it could be and will be corrected immediately for future releases.

Through this process I have learned communication through github, the massive world of open source and the great community that github is.

I've also realized that open source is definitely something that I want to contribute too long after the completion of the OSD600 course.

I hope everyone has a wonderful weekend.

Ill catch you all in the next one.

Alex

by abonilla1 (noreply@blogger.com) at March 09, 2019 05:05 AM

Bon's Blog 8 - Completion

Hello everyone,

Today's blog is a good one, I have good news. I have submitted my last Pull Request and have finished the second release.

This week I worked on a project that was most likely created by a student. I found this issue in the project that seemed fairly simple to contribute too. The issue is to find a prime number using the C language. The first issue I noticed with the code is that


The "else" statement is not spelled correctly. To add a little complexity to this issue i also decided to re-write the code.

So that was all for this issue. The pull request can be located here.

Some involvement I had in the Github community this week was for the previous name-suggestion-index project.

Something I learned this release is time management. It's really important to manage the workload you have so projects can be done on time with good quality.

I hope everyone has a happy friday!

Alex

by abonilla1 (noreply@blogger.com) at March 09, 2019 04:55 AM


Jacob Adach

Release 0.2 SUMMARY

Getting right into it from my last PR project, I learned enough about REACT to follow along and understand how the project worked which is great because REACT is a huge part of web development these days and understanding it will definitely help me work on bigger and more interesting projects.

I managed to successfully submit my last #3 PR and have it merged as well.

The issue was that they wanted the text fields cleared when switching pages. Because of REACT’s statefullness the text fields were remaining in tact. There was a function passed down from a few higher components which was able to set the properties of the text fields so all I needed to do was call the function with the proper parameters and set it to an empty string in the components constructor method which gets called anew each time the page is loaded.

I also asked to tackle another issue for the Igloo project because I would like to work with REACT more.

My new issue is here

https://github.com/IglooCloud/IglooAurora/issues/43 , basically adding in an outline color to text fields and buttons. Pretty simple, but I would like to take more time to navigate through the REACT project so I can learn how it all strings together.

Update on final PR of 0.2

New issue was frustrating, more of CSS than logic and the worst part was that the css gave me issues lol. I tried to outline a textfield with a light blue color but the outline would extend PAST the bottom of the field, so it looked like this weird Frankenstein input field with a border hovering beyond the input boxes border.

I finally managed to make it fit by using the box-shadow and height css-style attributes, kind of forced it but this app is supposed to be compatible with mobile devices as well so I am not sure how well it will work the way I implemented it. I would love to test it on my mobile device but time is not on my side, to do that I would have to set up a custom listening server to my computers IP and then access it with my phone.

I will definitely let the contributors know of my issues and possible issues with my PR but it works well on my browsers IE and FF. There were no issues with the buttons, only text fields, so I am hoping to get some feedback from the main contributor regarding this issue.

FINAL THOUGHTS REGARDING RELEASES 0.2

I very much enjoyed working on projects within the open-source community, except for the first project I chose to work on which was very difficult because the main contributor did not speak English natively which lead to a difficult communication barrier where I did not really understand everything he was asking, and also because it was my first project I needed to overcome a lot of hurdles like learning how someone else’s project works for the first time.

Beyond that, I gained a lot of confidence in dealing with open source projects and I enjoy the collaboration of working with others. The great thing about working in open source is its free experience to put on your resume and proof-of-work is visible to everyone.

by jacobadach at March 09, 2019 12:31 AM

March 08, 2019


Julia McGeoghan

Node and Linux Processes

About Node and Linux Processes

Lately I’ve been learning more about Linux systems programming, as well as Node.js. As such I’ve learned that the two share some similarities; in general Node seems to borrow a lot from Unix/Linux standards. In this post I will cover one specific similarity; how they handle processes.

A process is a running instance of a program. In node they are accessed through process object, which exposes many of the functions and properties of the currently running node process. In Linux, processes can be interacted with by a suite of functions built to do so.

POSIX Signal Events

Like in Linux, Node has the ability to handle POSIX signal events. POSIX signals are a form of interprocess communication; a signal will be sent asynchronously to another process that signifies some sort of event.

A common signal is SIGINT , or signal interrupt, it is often triggered when a user presses CTRL-C in the terminal. When handled in a Node script it would look something like:

function handle(signal) {
console.log(`Received ${signal}`);
}
process.on('SIGINT', handle);

Where handle is a generalized function that can take any type of signal, not just SIGINT . The last line attaches the handle object to the SIGINT event, or signal.

When writing this code for Linux processes, it would look very similar. You’d write a function capable of handling a signal, or group of them:

static void handler(int sig) {
switch(sig) {
case SIGINT: cout << "Handles SIGINT signal..." << endl;
break;
case SIGTSTP: cout << "Handles SIGSTP signal..." << endl;
break;
}
}

Then use the signal function to attach this handler to a specific signal.

sighandler_t error = signal(SIGINT, handler);

Exit Codes

In Node when a process terminates it often ends with exit code 0. However in some cases an error might occur, in which case a different exit code will be returned depending on the specific error. While not the same, there is some overlap between exit codes in Linux and Node. In Linux they are:

  • 1 - Catchall for general errors
  • 2 - Misuse of shell builtins (according to Bash documentation)
  • 126 - Command invoked cannot execute
  • 127 - “command not found”
  • 128 - Invalid argument to exit
  • 128+n - Fatal error signal “n”
  • 130 - Script terminated by Control-C
  • 255\* - Exit status out of range

Node exit codes are a lot more varied, for a full list you can find them here. Of those available those similar to the Linux implementation include:

  • 1 Uncaught Fatal Exception - There was an uncaught exception, and it was not handled by a domain or an uncaughtException event handler.
  • 2 - Unused (reserved by Bash for builtin misuse)
  • >128 Signal Exits - If Node receives a fatal signal such as SIGKILL or SIGHUP, then its exit code will be 128plus the value of the signal code. This is a standard Unix practice, since exit codes are defined to be 7-bit integers, and signal exits set the high-order bit, and then contain the value of the signal code.

Forking (Child Processes)

Both Linux and Node processes have the ability to fork a parent and run child processes. Creating and using multiple processes in this way can be a great way to better scale an application and make use of it.

In Node child processes can be created with a variety of functions, but the one of most interest here is a function called fork() . In both Linux and Node this function not only creates a child process, but can also be used to communicate between the parent and child.

For Node, the parent file would look like the following:

const { fork } = require('child_process');

const forked = fork('child.js');

forked.on('message', (msg) => {
console.log('Message from child', msg);
});

forked.send({ hello: 'world' });

And in the child file, child.js:

process.on('message', (msg) => {
console.log('Message from parent:', msg);
});

let counter = 0;

setInterval(() => {
process.send({ counter: counter++ });
}, 1000);

by Julia McGeoghan at March 08, 2019 08:23 PM


Volodymyr Klymenko

Contribution to Lona + How to set up Ruby environment on macOS

Earlier this week, I was looking at Airbnb’s open source projects, and I discovered a project called Lona.

Lona is a collection of tools for building design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts. (from Lona’s GitHub repo)

I really loved the idea of this project, so I chose it to be my next project for my open source course. There aren’t many issues opened, and I wasn’t sure what’s a good task to start with. I’ve used a tip from the project’s README file, which stated:

If you’re interested in contributing or using it at your company, feel free to open a GitHub issue or get in touch with me on Twitter @dvnabbott. (Lona README)

So I tweeted to Devin, who is maintaining this project:

He was very kind and helped me to find a good first issue:

Having some experience in open source development, I know how important communication between maintainers and contributors is. I believe that this is the key to building a community around the project and making people want to contribute more in the future. I appreciate his time and help a lot.

Let’s get back to the project itself. Lona consists of 3 parts:

  • Lona Components — A data format, .component, for cross-platform components
  • Lona Studio — A GUI tool for designing .component files, Swift Mac app.
  • Lona Compiler — A CLI tool & API for generating UI code from .component files, ReasonML

As you can see from the tweets above, I chose Lona Studio for my contribution. I decided to focus on Swift development for the next several months, so I would like to work as much as possible with this language. Also, I found it interesting because I haven’t worked with Mac apps before, and, as far as I know, macOS development differs a lot from iOS development.

Setting up the project

First of all, I had to set up the project on my machine. It wasn’t trivial for me because there was one prerequisite that I didn’t have. In order to build Lona Studio from source, you need the following tools to be installed:

  • bundler
  • CocoaPods
  • Carthage

I had CocoaPods and Carthage installed already on my Mac, but I didn’t have Bundler, and I haven’t even heard about it.

Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed. (from bundler.io)

I have never touched Ruby before, so I had to set up Ruby environment in order to install Bundler. First, you need to install RVM (Ruby Version Manager). Here are the steps I used for installing it:

  1. Install GnuPG
brew install gnupg gnupg2

2. Install RVM’s keys

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

3. Run verified installation

curl -sSL https://get.rvm.io | bash -s

4. Unset default Apple’s Ruby version

unset GEM_HOME

5. Load RVM into the Terminal session:

source ~/.rvm/scripts/rvm

6. Disable Autolibs (you can read more about this feature here)

rvm disable autolibs

7. Install OpenSSL

brew install openssl

8. Install Ruby version you want to use. I’ll go with 2.4.0.

rvm install 2.4.0 --with-openssl-dir=`brew --prefix openssl`

9. Make it a default version.

rvm use 2.4.0 --default

10. Finally, install Bundler 🎉

gem install bundler

That’s it 😃

Issue

The welcome screen of Lona looks similar to XCode’s welcome screen, and the maintainers requested a feature, where pressing “Enter” key on the selected project would open that project. The only way to open the project was to double-click it.

Lona’s Welcome Screen.

Implementation

The issue description was very helpful, and it specified the file, which I should look at, and the function I should override.

There was a RecentProjectList.swift file that contained the implementation of the list of projects. I wrote a function that would handle “Enter” press, and open the selected project:

override func keyDown(with event: NSEvent) {  
let carriageReturnKeyCode = 36
if event.keyCode == carriageReturnKeyCode {
onOpenProject?(projects[tableView.selectedRow])
}
}

Basically, I check if the keyCode of the pressed key is equalled to carriage return key code (36). If it is true, I call the function that opens a specified project:

onOpenProject?(projects[tableView.selectedRow])

It was approved by maintainers and successfully merged into master 🥳

However, later Devin noticed that it would crash no rows were selected, so he quickly created a new patch to fix, where he simply added a check for tableView.selectedRow to be ≥ than 0:

if event.keyCode == carriageReturnKeyCode, tableView.selectedRow >= 0

Next time, I’ll be more careful and try to catch possible crashes 😬

Here is the end result of my contribution:

Summary

It was a nice experience contributing to this project, maintainers are welcome to contributors, and it’s one of the factors why I’m going to contribute more to this project. If you are interested too, check out GitHub repo of Lona:

airbnb/Lona

by Volodymyr Klymenko at March 08, 2019 06:48 PM


Xiaowei Huang

Summary – Release 0.2

Unbelievably I did four pull requests, as followed

https://github.com/workshopper/javascripting/pull/261 https://github.com/workshopper/javascripting/pull/260
https://github.com/MarquezProject/marquez/pull/381
https://github.com/MarquezProject/marquez/pull/390

The Javascripting project issues were easy as they’re translation job. I took me some time to go through files to find those need to be improved. The local setup was easy and smooth.

The second project was a different story. I found it through other student pull request link. Their issue trackers have been well organized with various labels. I can easily locate the suitable ones

My first PR was easily, but I missed some details to modify the required class. After I modified the wrong classnames which should not be changed, the auto-test failed. For easing my work, I created another branch to do my job, which I can start clearly, and use Linux ‘greb’ scripting to help me to locate the classname to be changed. I learnt a lesson from this experience, and I have to work in details in my future.

The second PR looked easy. I made a quick change and tested online. After I reviewed the failure detail, I went back to go through the classes before and after my change. Their members were different, which meant the modification was far more complicated than just a name changed. I had a communication with the author, and he committed it needs other classes to support this change. He didn’t refuse my PR.

I consider to continue on this project in my later releases if I get the chance.

by Violet H. at March 08, 2019 04:30 PM


Joshua Jadulco

Open Source Work Update, Week of March 7, 2019

A try at documentation and automated UML diagrams

Over the couple of last few days, I’ve been working on an Issue at TravelMate’s repository which concerns documenting the app by using automated UML (Unified Modeling Language) diagrams. I opened the Issue myself last November of 2018 and has only gained traction in February due to people that want to contribute to it. I finally got to it and made the corresponding Pull Request. I chose to work on a documentation issue because mainly I wanted to explore how the documentation process for a software project can develop and how it will be useful for the developers and maintainers of the project.

How to generate UML Diagrams for an Android Project in Android Studio

As stated in the Issue, I wanted to use automated UML diagram generation so that the documentation process can be done more efficiently compared to generating UML diagrams manually. Thus, I had to find a solution that would work for Android Studio projects. With some searching around, I came across SimpleUML. It’s a plug-in intended for IntelliJ and subsequently made compatible for Android Studio. Although I was skeptical to try it due to the comments at its page stating that the plug-in is not working properly, I nevertheless tried it still and managed to get it to work.

Installation:howto_simpleumlce

If the recording is way too small for your screen, open the GIF file in a new tab by right-clicking it and selecting “Open image in new tab” option. If you want the step-by-step instructions for it:

  1. Open Android Studio and the Android project you want to work on for.
  2. Click the “File” option in the top left of the screen
  3. Click “Settings” option then select the “Plugins” option.
  4. Click the “Browse Repositories” option and it should open up a new dialog box.
  5. Look for the search tab as indicated by the Magnifying Glasses icon. Type in “SimpleUMLCE” in the tab.
  6. Once you find the “SimpleUMLCE” plug-in, click the green “Install” button and proceed with the installation instructions as directed. You will need to restart your Android Studio for the plug-in to work

Generating UML Diagrams:

Now that SimpleUML plugin is installed, you need to generate the UML diagrams automatically for a target file that you want:

  1. Right-click the target Java/Kotlin file that you want to generate UML diagrams for then select the “Add to SimpleUML Diagram” -> “New Diagram” option located near the bottom of the selection box.
  2. Follow the instructions on the new dialogue box of “Create A New Diagram” by giving your diagram a name. SimpleUML would automatically determine to save the file in the current folder of the Android project you’re working on. If you want to change it, click the 3-dots button and select a new folder. Be wary that the plug-in itself doesn’t support creating new folder within the dialog box, so create a new folder on your file explorer before selecting a new folder in the dialog box.
  3. Now that you successfully completed all the steps, a UML diagram that looks like below should be presented to you:adapters_diagramlayout

The PR that I made basically contains UML diagrams similar to the one above. If you don’t understand UML diagrams and this is your first time seeing them, let me run a quick introduction to them.

What are UML diagrams?

UML Diagrams are basically diagrams that document how a software project is structured. It does this by representing the functions/routines that are present within a file and giving it the appropriate graphical representations. UML diagrams can be much more complex than the one featured above but for the sake of simplicity and practicality in using these for our specific kind of purpose, the UML diagrams that will be generated by SimpleUML will mostly look the same as the one in the screenshot above.

In the screenshot above, you have the file name at the very top of the blue box. In the case of the function “CardViewOptionsAdapter”, it’s name is displayed in the very top and its fields (read: variables) are listed under a section called ‘fields’. The functions within the file are listed under a section called ‘methods’ and you can see from the screenshot above that it has a “onCreateViewHolder” function in the file. Every UML diagram generated using SimpleUML will follow these patterns.

With a UML diagram above, future developers that have the SimpleUML plug-in installed can see the functions in multiple files and use it to better understand how a software project is structured.

Other Issues and projects I’m looking at

Since my last targeted Issue of Brave Browser for Android didn’t work out well due to the errors that I encountered when making the Android project work at my computer (read: Being unable to dual-boot Ubuntu and Windows at my home PC) and using a Virtual Machine w/ Ubuntu installed on it seemed a very impractical setup due to how much resource Android Studio needs to run, I decided to be more careful and only work on projects which have a clear documentation for setting up the project and which will build and run on the Windows platform. Thus, I picked the WordPress Mobile For Android project and chose to look at this particular Issue.

by joshj9817 at March 08, 2019 04:26 PM


Alexei Bonilla

Bon's Blog 7 - What the deuce?

Hey sailors, welcome back on the ship.

In today's blog I will discuss my progress with the name suggestion index.

Taken from the README.md "The goal of this project is to maintain a canonical list of commonly used names for suggesting consistent spelling and tagging of features in OpenStreetMap."

The issues I worked on are the following:
Issue 1
Issue 2

I need to add tags for the index on the following issues requiring research and judgment. The technology required for this PR were: a text editor, node, and google.

What I learned this week is to expect feedback. Project maintainers will let you know on improvements or suggestions to improve the quality of PR's.


My PR's for this project:
PR 1
PR 2

Next post i'll focus on my last PR, untill then ill catch you guys on the flipside.

Alex




by abonilla1 (noreply@blogger.com) at March 08, 2019 02:02 AM

Bon's Blog 6 - The struggles

Hello everyone, and welcome back to my blog.

In this blog i will talk about my progress made in this assignment. I was browsing some open source projects on github when i found this project. 

There were no issues in the project, but since i thought it was cool i'd give it a look.
The TLDR of it is, you enter a certain parameters into the function at it returns a random generated password. 

Reading the README.md file, i realized a spelling error had been made. I then made the following PR

Something i found interesting is the age of the creator of the project, and i thought i was cool to contribute. I will continue to look at her other repo's looking to help a fellow young gun in the world off development.

UPDATE: the PR was merged. great. 

My plan for the next blog will be to take a look at this. This porject by OSMlab has many issues and I'm sure I can find a way to contribute.

Anyways folks, as always, later days.


Alex 

by abonilla1 (noreply@blogger.com) at March 08, 2019 01:16 AM

Bon's Blog 5 - The search begins

Hey everyone,

Today's blog will be short. I have been working on searching for projects that i can contribute too.
Personally, the languages i would like to work for these projects would be any of the following: C, C++, JavaScript, Java, HTML, or CSS. I choose these because of previous experience using the languages.

My progress has been limited, due to other commitments, but i have been looking at the Filer project, like in previous assignments, as a starting point.

My plan next week is to have a PR completed.

by abonilla1 (noreply@blogger.com) at March 08, 2019 12:55 AM


Vincent Logozzo

Week 4: Chaos

Chaos

github.com/experus/chaos


"Chaos will be a library that makes it easier to do some general tasks and add ADR to your application. Will soon be developed." As the created wrote, Chaos is starting development to bring extra functionality to your applications. With any new project on github, there are initial setup that needs to be completed to get things rolling. Viloskovic created this issue asking someone to update the .gitignore  for a list of IDE's and frameworks; Netbrains, Eclipse, IntelliJ IDEA, Maven, Maven Release Plugin files, OS X. One thing I learned from ArtStationApplication is that, once files get inside the repo, the .gitignore wont stop them from being tracked by git and suddenly everyone is passing around irreverent or unnecessary file. Setting up a .gitignore is a very important part of starting a project, luckily the github team has a repository for every .gitignore imaginable. 

by Vlogozzo (noreply@blogger.com) at March 08, 2019 12:42 AM

March 07, 2019


Xiaowei Huang

Lab 7 – Release 0.2

Marquez

As my previous post said, I step into this project. Their issue trackers have been labelled clearly, and it didn’t take me a long time to find 2 suitable issues from.

1st issue ~ Rename class Job #358

The title and description was lean. And I asked the author about my thought to it and got a quick response with clear explanation about how to continue. However, it’s a tricky project as I cannot properly build it locally. After I applied my update, I had to use their tester to run it. Meanwhile I also changed some class name wrong which should be changed. I got some failure.

It’s a practical lesson to educate me to keep think in detail. Besides, I use Ubuntu added on top of W10 to help me to locate the files easily, like,

$grep -R " Job "

And this PR has been merged.

https://github.com/MarquezProject/marquez/pull/381

2nd issue ~ Return JobRunRow on JobRunRowMapper.map()

It sounds easy, but NOT.

After renamed the return class, the automation tested failed. And I looked deeper about those two switching classes, which have different class members. It means it cannot simply changed. I communicated with the author, he said actually more supporting files need to be changed, before the PR could be merged.

I consider this work is pending at this point. I may want to continue on it for the later release job.

https://github.com/MarquezProject/marquez/pull/390

by Violet H. at March 07, 2019 09:46 PM