- 1 Free Software and Open Source Symposium Report by Jose Romasanta
- 2 Dylan Segna and Andrei Kopytov: Processing.js
- 3 Kevin Cearns: MongoDB: Advantages of an Open Source NoSQL Database
- 4 Conclusion
Free Software and Open Source Symposium Report by Jose Romasanta
Even though I had been in Seneca College for about 4 years, I have never experienced FSOSS before this year’s event. The reason for this was probably because I never took notice of it or too busy with schoolwork, work, and personal life. I was only drawn to this year’s event after learning more about what open source is from David Humphrey’s course. To be honest I went to FSOSS in order to complete this report but after experiencing the event, I would love to return next year. I kind of regretted not going to FSOSS on Thursday for the robotics and processing.js competitions.
Dylan Segna and Andrei Kopytov: Processing.js
The first presentation that I had attended was about Processing.js by Dylan Segna and Andrei Kopytov. Andrei Kopytov is very familiar to me since we started the BSD program together in the same year and took some class. I am not sure about Dylan Segna’s background though. I do know that they both now working with CDOT.
What is Processing.js
The presentation began with Dylan Segna explaining what is Processing.js and its history. He stated that Processing.js is created from processing from java that allowed 2d graphics rendering to “bridge the gap between art and programming”. In order words processing.js is a tool that can be used to create computer graphical animations using coding.
Seneca’s Contribution to Process.js
Dylan Segna later on continued by discussing and demonstrating Seneca’s contribution to processing.js. Such includes adding more processing capabilities to processing.js and 3d technology.
Processing.js supports external inputs such as keyboard and mouse. Moreover, it is capable with other popular media such as videos and images. Unfortunately to use sound, an external library must be imported into processing.js. The Segna and Kopytov also demonstrated pomax recreation of Super Mario using Processing.js. From this, I can see processing.js potential and increased my interest on the technology.
Problems with Processing.js
Impression on Presentation
This presentation seems very short and concise. IT seems more like a demonstration of the technology with no actual in-depth look at the coding. I did notice that they have gained many people’s interest in using processing.js by showing the possibilities that processing.js can handle. It would be better if they have shown how processing.js can be used in a practical production development. Perhaps show if any business have used such technology.
From viewing their presentation, it has inspired me to try making some processing.js projects. Maybe experiment and make a game or some kind of animation. It would be a great practice and may look good in my portfolio. I’ve always wanted to develop some kind of animation but never had any idea what to use. I had look into other software but required some kind of payment, it is great that processing.js it open source.
Kevin Cearns: MongoDB: Advantages of an Open Source NoSQL Database
The speaker about MongoDB was Kevin Cearns. He currently runs an infrastructure company that provides platform and infrastructure service other companies. He has a strong interest in open source and uses it regularly in his company. He came across MongoDB when his company was contracted by WalMart.ca to build their website. The problem was that they were given a short time and the customer kept changing the requirements. Thus, the database kept changing as well. Therefore, Kevin Cearns decided to implement MongoDB because of it being NoSQL and easy to change database structure.
What is NoSQL
NoSQL is a new topic for me similarly to the whole MongoDB. Apparently MongoDB uses the NoSQL structure. Kevin Cearns gives a brief description of NoSQL. Such includes that is to don’t use SQL queries to control the database. It is an open source technology that anyone can contribute to. And the most important characteristics are that it does not use a Schema, in other words, the data structure does not need to be defined. MongoDB is number one technology in popularity that uses NoSQL.
What is MongoDB
According to Cearns, MongoDB was created in 2007. MongoDB is a cross platform database system that uses JSON document like called BSON (JSON written in binary) to store data. BSON are stored into a file system instead of being into one file used by the most well know relational database system. It is an open source but can be used commercially if license is obtained. MongoDB is available to Mac OS, Windows, and Linux. It can support a total of 12 different type of programming languages and framework including C++, .NET, Java, Ruby, PHP, and Node.js.
What makes MongoDB better than Relational Database
According to Cearns, storage space and scan-speed is very efficient. The reason for this is that the data are stored into a file system instead of a single file. As a result the files are memory mapped by the computer.
Unlike relational databases, MongoDB is rescalable. In other words, database structures can be changed at anytime. This is possible because the developers are not required to define tables and relationships in order to use MongoDB. Relational uses relationships with other tables while MongoDB uses JSON file with collections.
MongoDB Reliability and Security
Since the data is stored into file it is recommended that MongoDB can be protected into two ways. By the “master and slave” system where there is one primary server and several secondary. If primary changes, secondary will mirror the changes. If a primary gets killed, a secondary takes over at primary. Each server will be stored into different devices. The other way is called “Sharding”, in which files are spread though out different devices instead of one. If one device gets hacked, they will not be able to access other data that’s stored inside other devices. Developers using MongoDB can choose to use both. Unlike relational database “sharding” would not be possible because all tables must be located into the same single file.
Kevin Cearns also demonstrated how to Setup and run MongoDB. He showed the audience where to download and how to install into the machine with simple command line. He also demonstrated how to make replications, and Shards. The most impressive part of his demonstration is he added a new item into the database without creating and declaring any tables. Although he did not use the well-know SQL statements, it did not seem too unknown to me because he used JSON and simple methods similar to what LINQ statements in .NET framework.
MongoDB Resource and Community
Kevin Cearns explains that has very good documentation (document.mongoDB.com) for an open source application. He claims that it is always up to date with everything developers need to know how to use the application. He also said that education of MongoDB is free, anyone can enroll in classes provided online (education.mongodb.com).
Kevin Cearns said that anyone is free to join MongoDB community group. A community based in Toronto. The MongoDB community can be accessed by Google plus group and meetup.com.
Impression on Presentation
Kevin Cearns’ presentation is very impressive because it was able to successfully discuss what MongoDB is, how to set up MongoDB, And how to use MongoDB. At first I heard of MongoDB but I did not have a clue on what it was. I now understand after his clear explanation. He also expressed how MongoDB is currently being used in practical websites and system. Such as WalMart.ca and foursquare.
I have chosen to listen in to this presentation because it seems like Mozilla’s Webmaker uses MongoDB heavily in their systems. My current milestone that I am working on is preventing Blacklisted words from being saved. I was told to understand the code by looking for when the save or update button is click to when the date is inserted into the MongoDB. The problem was I did not understand what a MongoDB is before attending this presentation.
Moreover, I have also learned from presentation that database does not have to be like what I have been taught while at school. Other technology that uses NoSQL like MongoDB is different because it does not require predefining the tables and structures of relationships.
I have learned some new information while in FSOSS. This includes application stated in this report (Processing.js and MongoDB). Moreover, I have also viewed some videos that was posted on FSOSS website that I found very interesting including Ubuntu and Open Source Computer Graphics Software. FSOSS has really given me more of a positive look at open source. It has shown me that most open source can have a monetary value to developers because many companies implement uses open sources applications such as MongoDB. Move over, mostly every production systems have implemented some kind of open source application. Working with open source can be very good in building a career portfolio due to it shows how flexibility you are as a developer and more add content.