How to participate in the open source Chromium project. New Open Source projects

This is not an empty call, this post I’ll tell you what bonuses free services and open source projects bring...

And so I’ll start by listing my projects (I’m not modest or prolific):

  • Free service: Charts Builder (~3,000 visits)
  • jQuery plugins: (a) Slideshow (~2,500 downloads), (a) Sexy Images (~500), jQuery iPhone UI (~3,500)
  • WordPress plugins: (a) Slideshow (~14,000) and (a) QR Code (~300)
  • WordPress themes: Constructor (~200,000), Black Urban (~16,000)
  • PHP libraries: ZFCore (~800), jQuery PHP (~7 500), Yandex XML (~700), (~1 200)
  • Miscellaneous: iCMS (~700)

Now about the benefits that each of these projects gave me:

Development experience

When developing open source projects, you understand that your code will be viewed, analyzed, compared, and thanks to this, when writing code, you keep a tight rein on yourself. Your code becomes more beautiful and simpler, it becomes easy to learn and flexible to change. This is especially true when you are not developing a final product, but a library that will be used by other developers.

// Create new instance of Yandex class $Yandex = new Yandex(); // Set Query $Yandex -> query($query) -> host($host) // set one host or multihost -> page($page) // set current page -> limit(10) // set page limit -> geo($geo) // set geo region - http://search.yaca.yandex.ru/geo.c2n -> cat($cat) // set category - http://search.yaca.yandex. ru/cat.c2n -> request() // send request ;

Communication experience

In my daily work, I rarely communicate directly with customers, but when I support my projects, I do so all the time. Someone asks something, someone asks for features, and someone points out errors. I remember there was a time when every bug or change in functionality in working projects was met with hostility, with an open source project such a trick will not work, you either react adequately or lose the user. This arrangement disciplines quite well. There are no unanswered letters in my mailbox, although sometimes I have to start a letter with the phrase “sorry for the late reply letter.”

If your product begins to be in demand, then a little by little a community begins to grow around it. So on the topic support forum I don’t need to answer all the questions; there are already people who help me. Somehow there was a message like this:

Thats all when ANTON says anything listen to him he is always right:D

Monetization

The Charts Builder service, like most home pages, is monetized using Google AdSense, with Text-Ads-Links hanging here and there, the income is ~$20 with AdSense and $60 with Text-Ads-Links per month (that’s only 8 links).

Of course, some true SEO specialists will say that this is a meager income and will recommend SAPE, XAP, Begun, etc., or some other system, but I’ve already tried a lot, and I can say that you advertise these products exclusively with referrals links (although at first the return is impressive, until the little ones are blown away).

On each project home page I have a “PayPal Donate” button - this is what brings results. Since its appearance, which is December 2009, I have received ~$600 from conscious people. To more actively stimulate users, the standard button has been replaced with progress bar:

I also plan to open a page with a list of all benefactors, although of course this is more like buying a link, but who cares? The project page is made in a similar way:

Bonuses

Probably the main bonus is the spread of the story that the author is a “cool developer.” To confirm this theory, a sufficient number of letters with offers for permanent or temporary work have accumulated in my mailbox, the main thing is that there is a desire.

Well, another bonus - I recently liked the IDE PHPStorm, and I now have a free licensed version for open source developers installed:

WordPress theme developers have additional bonus in the form of incoming links (SEO specialists will be able to convert these numbers into money):

Labor costs

Everything is not so rosy here; development and support of projects naturally takes time. I can tell you about the creation of the service http://charts.hohli.com, there was simply no support or any changes, only development and delivery. The development took me one Sunday day, that's right, I just read the news, saw a message about the release of the new Google Charts API and spent the whole day on development. The cost of my day off is €165. Later, having gained experience, the service was updated in 16 hours - +€150.

As for support, every day it takes me on average 15-20 minutes, which in no way affects my effectiveness, and on the contrary, you help a person in the morning, and “your mood has improved.”

I practically don’t do any promotion of projects, an article on a blog + an article on Habré, that’s all.

P.S.

In fact, most of my projects are about learning new things, I just don’t want to waste time on simple “hello world” examples, because I want to create something really useful. I learned the Google Chart API - I created charts.hohli.com, I had to learn WordPress - here's the Designer, I studied the capabilities of jQuery UI - and now the iPhone UI has arrived, I can give many examples.

One of the reports at the OSCON (Open Source Convention) conference held in Austin was dedicated to important issue- getting started in an open project. Puppet Labs programmer Lucy Wyman gave her recommendations to beginners.

She began with a list of possible motivations for a potential participant. Unfortunately, there is still no complete clarity on this issue - it is often believed that there is no practical benefit from such work, so it can be considered solely as a hobby. Wyman disagrees.

First of all, Open Source avoids reinventing the wheel. For example, there is absolutely no need to create your own OS from scratch if you can use the Linux kernel as a basis.

There are many advantages to this approach. Firstly, the use of ready-made code can significantly reduce both development time and the resources required for this. Secondly, this method improves the quality of the final product, since open source software is tested quite thoroughly.

As a second possible reason, Wyman mentions support for the solution the user needs. Why not help a project whose work is used every day? Obviously, the interest in this is mutual.

It is often forgotten that freedom and responsibility are two sides of the same coin. The product cannot be free, but the specificity of Open Source is that the user is invited to pay for it voluntarily and in any way convenient for him.

Participation in an open project allows a person to significantly expand their circle of professional communication and receive a lot useful information"first hand". The importance of this aspect cannot be underestimated, since it can have a very beneficial effect on a specialist’s career.

Finally, Open Source is a great way to learn something new. This is especially true for beginning programmers, one of whose main tasks is to obtain the knowledge necessary for successful work.

But what should a person do who is afraid of appearing incompetent or does not feel strong enough to make any significant contribution to an open source project? Wyman offers several ways that will allow even people who do not have programming skills to support Open Source.

First, testing. Moreover, this should be understood in an expanded sense - testers not only help to detect errors in the code, but also bring forward proposals for improving functionality for discussion.

Often, even very good developers do not have sufficient user experience to adequately evaluate their own solution from the consumer's point of view. Therefore, it is appropriate to recommend that they make any changes, including inconvenient or unusual arrangement of interface elements.

Secondly, writing documentation. This weak point a significant part of open source projects, for which even a short README was clearly compiled hastily and without due attention.

A new participant can choose original ways for himself - for example, adding comments to the program code, which will make it more readable. Good and complete documentation isn't just for users - it allows for a wider range of developers, so the input of technical writers is essential to any project.

Thirdly, technical support. A new member can help users solve their problems by spending part of their time working on the corresponding IRC channel.

Community support has traditionally been strong point Open Source. This kind of work is very necessary and is always received with gratitude by all project participants.

Fourth, training. Conducting seminars and conferences greatly contributes to the promotion of both specific solution, and everything Open Source.

If a beginner feels that he has talent as a lecturer, then he should not bury it in the ground. There are few qualified programmers, and even fewer good teachers - such contributions are in great demand and will certainly not go unnoticed.

Fifthly, design. Almost any open source project needs this.

Logo, icons, and other elements of the visual design of the application - all this makes the project truly professional.

Thus, Wyman is confident that there is a place for everyone in the Open Source world. There would be a desire, but there is an opportunity.

A developer from the USA who described his personal experience of participating in an open source project. From this material you will learn:

  • what are open source projects;
  • how you can contribute;
  • where to look for projects and tasks.

Why is it worth taking on open source projects?

First of all, this is a free programming practice. You can also supplement your resume with such projects, and, believe me, if you can explain your contribution to the common cause, getting the position of “junior” will be much easier than in the case of “just finishing courses.”

Open source project on your fingers

Do you like to walk in the park? Perhaps not now, because it’s already November, as they say “winter is coming!” I'm sure good weather You will happily wander among the trees along well-groomed alleys. But what if your favorite park was abandoned by municipal services? It would quickly become a mess. Garbage would be scattered everywhere, mixed with dog waste, waiting anxiously for someone to finally step into them. It is unlikely that you would continue to go there for walks.

Now imagine a happier picture: a group of volunteers took responsibility for maintaining their favorite park. She regularly allocates funds to transform something unkempt and neglected into something very beautiful and useful to other people. And he does this not only for personal pleasure, but also for the joy of the public. Most likely, your favorite park is supported by our taxes, but in general the above situation describes how open source projects work. While all software is essentially designed for the end user, as a developer you can contribute to an open source project and make the world a better place with new software available. If you want to take part in an open source project, you need to understand who is in charge of it and try to establish interaction with these people. I don't mean torment them half to death with questions and expect comprehensive supervision during work. You are an independent adult (even if you are not yet an adult, being independent is a great idea!). I hope you no longer need to lead by the hand and describe every step. I'm no help to you with this. But I can give you a few practical advice, which will help you as you try to make your first contribution and potentially include your piece of code in an open source project.

Search for a project

If you're looking for an open source project to get involved in, find one that really interests you. It is desirable that there are many tasks from which you can choose. Don't settle for the first project you come across. This way, you will be more motivated and able to take the tasks seriously.

Where to look for Open Source projects

They can be found in public GitHub repositories. Actually, that's where everyone is looking for them. There's a lot there.

Finding a Good First Problem

Search have a good first assignments are the key to success. Don't take on more than you can handle. Don’t try to show all your knowledge at once: look the simplest of possible tasks. This best way understand how the interaction between you and the project curators takes place. In some projects, tasks are marked with special labels indicating the level of difficulty if the curators consider them suitable for novice developers. Look for something like this when you look at the objectives of your chosen project.

When you find a suitable task, write a comment to the project curators saying that you would like to work on it. Most often they will give you the go-ahead, but perhaps for some reason they will ask you to choose another option. Don't feel like you can't start before the answer comes, but be flexible if you are asked to stop and do something else. For my first assignment, I chose something where it was necessary to tweak the css a little. It seemed to me that I could implement it and it didn’t depress me.

Start and introduction

Getting started on a project can seem deceptively easy, but there are many pitfalls. Once you have selected a problem to solve, you need to deploy the project on your machine. Most likely, the project's sources will be “heavy” (although this depends on the project). You may have to install large number dependencies just to run the project.

In the project I was involved in, there were few such moments, but this does not mean that it was easy. For example, we had to install specific versions of Ruby and specific versions of Rails, PostgreSQL, Phantom JS and Gemfile with a list of Gems for installation. This didn't seem like much of a requirement, but I had a big problem finding the specific version of Ruby needed to develop the project that would work on my computer. Finally, I used RVM to switch versions: this is another thing I learned, just to install the project and get it working on the computer. When I launched the project, I saw that it was written in Angular and Coffee Script, using Active Record to interact with data coming from the back-end. These were new things for us, and we had to figure them out on our own before starting work on the project.

Search for other tasks

You may not need this right now, or even need it in the near future, but I ran into it almost immediately. It’s great luck to immediately notice that something is not working correctly in the project. If you find such a bug, go to the working site and see if it is there. Don’t rush to write to support, maybe everything is working. Usually curators control the situation and there should be no critical errors. But if you still find something that requires attention, find and check among the tasks that already exist. Most likely, the problematic task has already been written down and most likely you do not need to do anything. Although it might be worth solving it yourself once you've finished what you're working on.

When you design and write down a new task, make sure you describe it in as much detail as possible. Use screenshots to clearly illustrate what you're trying to say and make it as easy as possible for anyone looking at the site to understand the problem you're describing. In my case, I ended up adding two additional tasks beyond the one I was assigned. I couldn't even make a pull request (this was due to security restrictions). It felt like I had taken two steps back for the project, but in reality, describing and organizing tasks still moves the project forward. Creating a pull request (PR) You have solved the problem assigned to you. Before writing a progress report, show the solution to someone who can evaluate it. Previewing is always a great idea, but for your first contribution to an open source project it simply necessary. You don't want to blush because of an unfinished or incorrectly working piece of code? For the same reason, the project curators will ask you to pass all the necessary tests before submitting a pull request. Therefore, check yourself ahead of time to be confident in your work and correct it if necessary before receiving confirmation from the curators. Make sure that you adhere to the names or style that are accepted by the project curators. You can find the information in the file CONTRIBUTING.md, it is in most projects. Also there you can clarify in what form you should create a commit message, what the description of your pull request should look like and how to create a new task.

Leave task

Sometimes you realize that you are not up to the task. Or you thought you had time for a project, but in reality you didn’t, urgent work came your way and you need to get on with it. This is normal. The main thing is to unsubscribe from the task and leave a message to the curators so that they know that you will not be able to continue working on the project. But under no circumstances abandon a task without informing the curators and unsubscribing from it.

Conclusion

I believe that from participating in the development open project- one continuous benefit. You are practicing and at the same time doing something useful for other people. On the other hand, this project can become another point on your resume and give additional advantages when fighting to get the desired position. Just last Friday I talked to a programmer who got his job (a very cool and interesting one, one that could change the world for the better, and I’m really not kidding) thanks to his work on open source projects.
What else to read:
January 1, 2018 at 01:14

How to start creating an Open Source project in the new year

  • Ruby,
  • Programming

Six months ago I came up with the idea of ​​creating my own open source project. Instead of test problems During an interview, it would be enough for me to send a link to the repository, and the prospect of helping colleagues with solving their everyday problems energized me even more.

I have always not liked gems for creating administrative panels; any unnecessary movement requires redefining classes; to change fields, you need to make changes in files. After reflection and conversation with colleagues, it was decided to create new library, which would be flexible and would not require dashboards or configuration files.

Define your goals

Each open source project solves a specific problem. Chat with colleagues, chats, forums, tell us about your idea - all this will help you at an early stage to form a picture of what solutions already exist and hear criticism from the outside. Talk to people who already have their own open source projects, they can give very valuable advice, don’t be afraid to ask and take the initiative.

One of the valuable tips that I received at this stage is to pay attention first of all to the project documentation. You may have a very good project, but no one will read the source code and try to understand how it works.

Most important aspect, without which further stages are impossible - this is motivation. The idea of ​​the project should appeal to you first of all. Most often, people get used to the tools they work with and fall into a comfort zone.

Planning

Tasks should be recorded and have a clear picture of what stage the project as a whole is currently at. Break down tasks into subtasks, ideally so that completing one task does not take more than 3-4 hours, it is important to enjoy completing small tasks, this will help avoid burnout and loss of motivation.

Choosing a specific task manager is a matter of taste. I use pivotal tracker, the main advantage is that it has a free version for open source projects, tasks are sorted by type (feature, bug, chore, release), tasks can be grouped into releases and a deadline can be determined.

Another nice feature of pivotal tracker is integration with github. If you follow a certain convention in naming commits, then all commits will be automatically displayed inside the task related changes with this task.

Registration

Every open source project should have the following things:
  • README
  • open source license
  • Contributing guidelines
The README file not only explains how to use your project, but also what the purpose of your project is and how to start using it. If you don’t know how to properly format a README, you can look at other well-known open source projects or use a template.

The license ensures that others can use, copy and modify the project's source code. You need to add this file to every repository of your open source project. MIT, Apache 2.0 GPLv3 are the most popular licenses for open source projects, if you are not sure which one to choose, you can use a convenient service.

The CONTRIBUTING file will help other developers contribute to the project. In the first steps of the project, it is not necessary to devote attention to this file close attention, you can already use ready-made template from another project.

My mistakes

If you analyze the initial stage, I had an idea, but there was no clear plan. I decided that I wanted to do this without having a clear idea of ​​how long it might take or a specific representation of the functionality that will be in the first version of the library.

I just had a lot of desire and lack of a clear plan
Having also read the history of other projects, not just open source, I noticed that at an early stage there are overly optimistic plans and an overestimation of one’s strengths and capabilities. It’s not so easy to find time every day to write a new feature for a project. In the end, most of the tasks had to be eliminated and the required minimum was left for

Open source software has become a driver of innovation. And in this article you will see this. We will look at the best OpenSource projects according to the Black Duck Open Source Rookies.

This is the eighth edition of Black Duck Open Source Rookies. Each year, Black Duck takes a look at the world of free software and finds the best new Open Source projects that were released that year.

Most of the projects that received the Black Duck award were developed or financed by commercial companies. Some projects are additions to the sponsors' core products or internal offshoots, while others become opportunities to build on those core projects.

Typically, award winners exhibit three industry trends:

It is an open source web platform for creating chats. Focused on communities and companies that want to create their own internal chat. The Rocket development team has chosen a modular, packaged approach, and this allows Rocket.Chat to offer an impressive set of functions, to implement convenient operation and real-time communication, from simple exchange text messages from emoji support, to video calling, multi-user audio conferencing, screen sharing and more.

RocketChat has native applications for Linux, Windows, MacOS, as well as mobile applications for Android and iOS. It even has its own apps for FirefoxOS, desktop and mobile devices. And since this is an Open Source project, it is an excellent choice for developers who would like to build and develop their own chat platform.

Mattermost

Another great alternative to Slack is Mattermost, which began as an HTML 5 game developer. game portal and a messaging app that aimed to reach gamers outside of Facebook. As a result, the program was converted into a solution for collaboration within the company, for such cases when the company does not want its data to be received by the provider. On at the moment is a great open source Slack alternative written in React and Go.

Mattermost brings all communication tasks into one place, through a user-friendly and intuitive interface that's easy to search and accessible everywhere. Users can exchange messages and files using their computers and smartphones while maintaining all important information within the IT infrastructure. Mattermost's interface is compatible with Slack and powers software designed for Slack. There are two versions of the program - one is designed to work with teams of up to 50 people, and the other allows you to organize communications between hundreds and thousands of users.

hubl.in

Video conferencing solutions WebEx and GoToMeeting have become standard tools in many offices. These solutions relied not only on native desktop applications, but also on new capabilities in web browsers.

Hubl.in is a free, open-source video conferencing solution from Linagora, the creator of the collaboration platform OpenPaaS. Hubl.in takes real-time communication to the next level by allowing you to use your browser for video conferencing, even without any plugins.

If you are reading this page, then you can try Hubl.in right now. It is based on WebRTC, which allows decentralized communication between browsers. This means your conference is not transmitted to Hubl.in in any way, increasing security and adding another layer of privacy.

MXNet

Deep learning methods aim to teach computers to teach themselves using neural network simulations human brain, and then transfer a huge amount of data to this network for training.

MXNet is a lightweight machine learning library created by DMLC developers CXXNet, Minerva, and Purine2. It applies the experience gained in these projects, and also mixes imperative and symbolic programming styles. MXNet uses a dynamic dependency scheduler that automatically parallelizes both symbolic and imperative operations on the fly. The focus on optimization makes MXNet fast and light on memory. The library is portable and lightweight, and easily scales even across multiple machines. It can even be used for tasks such as image recognition on a smartphone. The DMLC group wants to make open source software widely available. The MXNet project also contains a set of guidelines and diagrams for building machine learning systems.

Bazel

Bazel aims to speed up the build process and improve reliability through a shared code repository where all software is in an open source state. It automates testing and releases and uses both concurrency and caching to speed up processing. Particularly suitable for projects with large code bases, based on multiple programming languages, or across multiple platforms. The main feature of Bazel is rigorous testing under the challenging conditions of working at Google. The current version supports Linux, OS X, but not Windows.

React Native

Developers mobile applications are faced with a difficult choice: develop applications for iOS or Android using native tools, or use cross-platform ones. On the one hand, native apps are faster and offer a better user experience. However, developing such an application means writing it at least twice in the most different languages programming. Cross-platform tools like JavaScript allow them to write a program only once, but these applications often perform poorly and don't look very nice.

React Native is an open source project supported by Facebook. It allows you to move in two directions at once. By creating your applications using the React JavaScript library, you preserve the logic of JavaScript applications, as well as the user interface is completely native for both iOS and Android shells. For developers, React Native is new approach to writing mobile applications - learn once, write everywhere.

Kontena

Docker containers are a revolutionary way to deploy applications. But many organizations are still struggling with a container management solution.

Kontera is an open source project for managing containers. Kontera has many new technologies and capabilities to speed up deployment. There is support for multiple hosts, multi-AZ containers, network technology Weave, VPN access to containers, and an intuitive deployment wizard. Kontera has everything a company needs to develop, deploy and manage container systems. It can be installed on any cloud infrastructure. Since it is open source, it will soon expand beyond Docker and support Windows containers, CoreOS PKT and other container technologies.

Nulecule

The Docker open container initiative provides an excellent wrapper for applications. But it still cannot manage asset dependencies and relationships between instances in multi-container applications.

Nulecule is a specification for packaging complex multi-container applications to ensure proper deployment. Nulecule, supported by Red Hat, offers a holistic system for managing relationships between containers. Most container management systems treat multi-container applications as individual objects rather than as a whole. This approach limits the flexibility and portability of the entire application. In contrast, a Nulecule-based solution creates a standardized way to describe an application, including all dependency references and communication metadata within each container image.

InSpec

The DevOps workflow is often bogged down with complex specifications and slow development. InSpec provides a path that speeds up work by automating the compliance verification process. If compliance with rules is an integral part of the development process, this is one of the best solutions.

As an open source solution for determining compliance, security, and policy requirements, Inspec offers a variety of complex functions. Including tests to verify compliance with metadata for periodization, as well as interface command line, for convenient execution of tests. Users can control the process using a specially developed programming language. Because Inspec runs on a local system, it can examine any node in the infrastructure.

Hygieia

Tech giants are not alone in investing in free software. This year, Capital One tried to find a toolbar for developers, and neither commercial solutions nor OpenSource projects were found. Therefore, the company created its own - Hygieia. The panel was released last year and its source code is published on GitHub.

Capital One uses Hygieia in its software development process to give teams and leaders a simple, accessible and quick way get an idea of ​​the current state of the development process. Instead of showing only part of the development process, as other panels do, Hygieia offers full review in two versions: widget and slider.

The widget option shows more detailed information: features of the current stage, code contributions, integration, code analysis, security analysis, functional testing and deployment resources, etc. The slider shows the degree of progress of each element, in the development, testing and deployment stages.

Glucosio

When programmer Benjamin Kernes was diagnosed with type 2 diabetes in May 2015, he realized there were no open-source tools to track glucose levels or other metrics for people like him. In September 2015, he and a small team released Glucosio, the first open source glucose monitoring app.

Glucosio users can track their blood glucose levels and get useful tips, through the assistant application. Users can also contribute to diabetes research by providing anonymous demographic or personal information. Glucosio is currently available in 20 languages ​​and has been downloaded on every continent. The developers also plan to offer a free API for researchers so they can access the data users leave in the program.

Vault

San Francisco-based HashiCorp is known for its tool for creating and configuring a lightweight, portable development environment - Vagrant. The company's new open source project is Vault, a tool for securely managing secrets. This may contain keys, APIs, passwords, certificates, employee credentials, and other sensitive information. HashiCorp has excellent Open Source projects, one might say - keep it up.

Vault encrypts and decrypts data without storing it, and also allows security teams to define encryption parameters and developers the ability to store encrypted data without developing their own encryption algorithms. Vault can even generate private keys when requested by AWS or SQL databases, and then automatically revoke them once they've been used. It supports a single access interface with tight controls, as well as detailed audit logs, so users can rest assured that their secrets are safe.

Rancheros

Rancher Labs has developed a highly efficient container launch technology - operating system in miniature, with everything you need to run containers, but nothing more. RancherOS is a 20 MB Linux distribution specifically designed for simple way launching and managing Docker containers. The idea is that it is similar to CoreOS, but with one difference - everything here runs through Docker containers, even the operating system itself.

In RancherOS, Docker runs directly on top of the Linux kernel and distributes all userspace services as Docker containers. The Docker system instance initializes all system services (Udev, DHCP, TTY), each of which runs in a separate container. A Docker user instance creates separate containers for all users, within the user's main container. RancherOS also provides containerized updates and can use various systems container management.

OWASP Security Knowledge Framework

The OWASP Foundation (Open Web Application Security Project) is a non-profit community that provides resources and tools for securing web applications that OpenSource projects develop. Many developers are unaware of the security risks of vulnerabilities they face. To this end, OWASP SKF (Security Knowledge Framework) provides free tool open source for web application security. It can also serve teaching aid, which teaches the basics of web application security.

SKF supports software developers throughout the entire life cycle of their product, ensuring its safety. It analyzes the processing methods that developers use to edit their data, and then looks at patterns for known vulnerabilities. Once completed, solutions are provided to fix security issues.

Conclusions

These were all new Open Source projects awarded the Black Duck Award. The awards take place every year, so we will see new Open Source projects for 2016 only in 2017.