• Guest
HabraHabr
  • Main
  • Users

  • Development
    • Programming
    • Information Security
    • Website development
    • JavaScript
    • Game development
    • Open source
    • Developed for Android
    • Machine learning
    • Abnormal programming
    • Java
    • Python
    • Development of mobile applications
    • Analysis and design of systems
    • .NET
    • Mathematics
    • Algorithms
    • C#
    • System Programming
    • C++
    • C
    • Go
    • PHP
    • Reverse engineering
    • Assembler
    • Development under Linux
    • Big Data
    • Rust
    • Cryptography
    • Entertaining problems
    • Testing of IT systems
    • Testing Web Services
    • HTML
    • Programming microcontrollers
    • API
    • High performance
    • Developed for iOS
    • CSS
    • Industrial Programming
    • Development under Windows
    • Image processing
    • Compilers
    • FPGA
    • Professional literature
    • OpenStreetMap
    • Google Chrome
    • Data Mining
    • PostgreSQL
    • Development of robotics
    • Visualization of data
    • Angular
    • ReactJS
    • Search technologies
    • Debugging
    • Test mobile applications
    • Browsers
    • Designing and refactoring
    • IT Standards
    • Solidity
    • Node.JS
    • Git
    • LaTeX
    • SQL
    • Haskell
    • Unreal Engine
    • Unity3D
    • Development for the Internet of things
    • Functional Programming
    • Amazon Web Services
    • Google Cloud Platform
    • Development under AR and VR
    • Assembly systems
    • Version control systems
    • Kotlin
    • R
    • CAD/CAM
    • Customer Optimization
    • Development of communication systems
    • Microsoft Azure
    • Perfect code
    • Atlassian
    • Visual Studio
    • NoSQL
    • Yii
    • Mono и Moonlight
    • Parallel Programming
    • Asterisk
    • Yandex API
    • WordPress
    • Sports programming
    • Lua
    • Microsoft SQL Server
    • Payment systems
    • TypeScript
    • Scala
    • Google API
    • Development of data transmission systems
    • XML
    • Regular expressions
    • Development under Tizen
    • Swift
    • MySQL
    • Geoinformation services
    • Global Positioning Systems
    • Qt
    • Dart
    • Django
    • Development for Office 365
    • Erlang/OTP
    • GPGPU
    • Eclipse
    • Maps API
    • Testing games
    • Browser Extensions
    • 1C-Bitrix
    • Development under e-commerce
    • Xamarin
    • Xcode
    • Development under Windows Phone
    • Semantics
    • CMS
    • VueJS
    • GitHub
    • Open data
    • Sphinx
    • Ruby on Rails
    • Ruby
    • Symfony
    • Drupal
    • Messaging Systems
    • CTF
    • SaaS / S+S
    • SharePoint
    • jQuery
    • Puppet
    • Firefox
    • Elm
    • MODX
    • Billing systems
    • Graphical shells
    • Kodobred
    • MongoDB
    • SCADA
    • Hadoop
    • Gradle
    • Clojure
    • F#
    • CoffeeScript
    • Matlab
    • Phalcon
    • Development under Sailfish OS
    • Magento
    • Elixir/Phoenix
    • Microsoft Edge
    • Layout of letters
    • Development for OS X
    • Forth
    • Smalltalk
    • Julia
    • Laravel
    • WebGL
    • Meteor.JS
    • Firebird/Interbase
    • SQLite
    • D
    • Mesh-networks
    • I2P
    • Derby.js
    • Emacs
    • Development under Bada
    • Mercurial
    • UML Design
    • Objective C
    • Fortran
    • Cocoa
    • Cobol
    • Apache Flex
    • Action Script
    • Joomla
    • IIS
    • Twitter API
    • Vkontakte API
    • Facebook API
    • Microsoft Access
    • PDF
    • Prolog
    • GTK+
    • LabVIEW
    • Brainfuck
    • Cubrid
    • Canvas
    • Doctrine ORM
    • Google App Engine
    • Twisted
    • XSLT
    • TDD
    • Small Basic
    • Kohana
    • Development for Java ME
    • LiveStreet
    • MooTools
    • Adobe Flash
    • GreaseMonkey
    • INFOLUST
    • Groovy & Grails
    • Lisp
    • Delphi
    • Zend Framework
    • ExtJS / Sencha Library
    • Internet Explorer
    • CodeIgniter
    • Silverlight
    • Google Web Toolkit
    • CakePHP
    • Safari
    • Opera
    • Microformats
    • Ajax
    • VIM
  • Administration
    • System administration
    • IT Infrastructure
    • *nix
    • Network technologies
    • DevOps
    • Server Administration
    • Cloud computing
    • Configuring Linux
    • Wireless technologies
    • Virtualization
    • Hosting
    • Data storage
    • Decentralized networks
    • Database Administration
    • Data Warehousing
    • Communication standards
    • PowerShell
    • Backup
    • Cisco
    • Nginx
    • Antivirus protection
    • DNS
    • Server Optimization
    • Data recovery
    • Apache
    • Spam and antispam
    • Data Compression
    • SAN
    • IPv6
    • Fidonet
    • IPTV
    • Shells
    • Administering domain names
  • Design
    • Interfaces
    • Web design
    • Working with sound
    • Usability
    • Graphic design
    • Design Games
    • Mobile App Design
    • Working with 3D-graphics
    • Typography
    • Working with video
    • Work with vector graphics
    • Accessibility
    • Prototyping
    • CGI (graphics)
    • Computer Animation
    • Working with icons
  • Control
    • Careers in the IT industry
    • Project management
    • Development Management
    • Personnel Management
    • Product Management
    • Start-up development
    • Managing the community
    • Service Desk
    • GTD
    • IT Terminology
    • Agile
    • Business Models
    • Legislation and IT-business
    • Sales management
    • CRM-systems
    • Product localization
    • ECM / EDS
    • Freelance
    • Venture investments
    • ERP-systems
    • Help Desk Software
    • Media management
    • Patenting
    • E-commerce management
    • Creative Commons
  • Marketing
    • Conferences
    • Promotion of games
    • Internet Marketing
    • Search Engine Optimization
    • Web Analytics
    • Monetize Web services
    • Content marketing
    • Monetization of IT systems
    • Monetize mobile apps
    • Mobile App Analytics
    • Growth Hacking
    • Branding
    • Monetize Games
    • Display ads
    • Contextual advertising
    • Increase Conversion Rate
  • Sundry
    • Reading room
    • Educational process in IT
    • Research and forecasts in IT
    • Finance in IT
    • Hakatonas
    • IT emigration
    • Education abroad
    • Lumber room
    • I'm on my way

Go contribution workshop in Russia

Go contribution workshop in Russia
 
For a long time we planned to send a patch to Go, but always postponed?
 
Faced with difficulties, did not know where to start?
 
In this article I will describe how we conducted the Go contribution workshop in Kazan,
 
about its results, as well as about the lessons that the organizers have learned.
 
Spoiler: It is planned to repeat this event when Go goes into the active development phase (exits the code freeze state). See the details under the cut.
GopherCon .
 
Someone comes to help others understand the work process, pick up the problem and solve it, then go through the review and, ideally, reach the infusion of the patch in upstream . Others come in as a "First Time Contributor".
 
If you are interested in one of the following, you might be interested in participating:
 
 
To be immersed in low-level details Go tulchejna (the compiler, the linker, the assembler, )
 
Speed ​​up some function from the standard library or run
 
Add missing examples or tests for any of the packages
 
Refactoring some very terrible code
 
Finalize support for a rarer architecture or OS (with you hardware and /or OS)
 
To communicate with those who already for a long time contribute in Go
 
 
The list is not complete, everyone can find something of their own in this.
 
Workshop in Russia
 
At some point, I decided that I wanted to put my hand to organizing such an event. Most of all I wanted to be in the circle of people with similar interests.
 
The preliminary program of the exercise was approximately 6-10 hours (the range of the best and worst case). The most suitable format was the hackathon, but it was not possible to find sponsors at that time. But it was possible to conduct elective classes for Scientific and practical platform IVMIT KFU , once a week for an hour and a half. The obvious drawback: due to large breaks between participation, it would take some extra time. And no pizza.
Sigh
 
Quite unexpectedly, I was a guest in podcast GolangShow (ep. 119) , where he talked about the idea of ​​doing something similar for students. A bit later Elena Grahovac created the channel # kfu-go-2018 in of the Russian community Go . There could communicate not only KFU students, but all those who were interested to participate remotely.
 

After that, the university approved the details of the meeting, certain dates became known. Instead of the hackathon, they received a course in the Go programming language. This did not change much of the content, the goal remained the same and it was clearly described in announcement .


 

Then came the scan tracker in the search for tasks that could be performed within the framework of the event, at least partially (even better - completely).


 
Lesson №1 [/b]

In fact, it turned out that the list of tasks included those that were interests or understood personally to me. This was also recognized at the time of compiling the list, but it is difficult to influence this.


 

Perhaps it would be better if this list was composed of several people with a different profile and interests.


 

Any participant could go to the tracker Go and choose anything for himself, but for the tasks from the list explanations were ready, and for some of them a partial solution.


 

Most of the content that was generated during the course is available in the repository kfu-go-2018 . There you can find tasks.org .


 

The first meeting was


 

Students who had not previously written on Go came. Most of them have not even heard of such a programming language.


 

Half of the first lesson we spent on building Go from the sources. On different computers there were different, including unexpected problems. Different OS, versions of system compilers (someone did not intend to Go 1.4), and so on. It did not work tritely ./make.bash ( make.bat for Windows) with different errors.


 

When the majority still had a working Go, our first Hello World was the output in the compiler ( go tool compile ) Of the canonical message when a new flag was sent to it.


 
It took 90 minutes: talked about Go, compared it to C ++, collected the tulcein, disassembled the bootstrapping process and collected the updated compiler.

 
Lesson №2 [/b]

Separately it is worth mentioning that I was helped by Delux Farkhulin . Empirically revealed that more than four people alone are very difficult to lead. The situation becomes more complicated when none of the participants, except the mentors, knows Go. You have to perform many additional steps. However, if there were four of us, it would be much easier (there were 15 students).


 

The first patches in the project Go


 

For the second lesson, the goal was to go directly to contributing:


 
  •  
  • Agreed with Daniel Martí that it will be available at the agreed time and will be able to hold a review (put +2 if the patch is trivial and correct).  
  • Ilya Tokar suggested scratch repository, where it's much easier to send the first CL (change list). Allows you to try out gerrit in work without risks, something to break.  
  • Prepared stickers for delivery to those who successfully poured patches in Go.  

 

We were lucky: the scratch repository was broken. Someone sent the incorrect code to the repository and because of this trybots (CI tests) always failed. One of the tasks that I prepared was to fix what was causing the build error.


 

By the end of the lesson 6 patches were sent:
 
CL105415 , CL105395 , CL105356 , CL105416 , CL105355 , CL105375 .


 

Stickers got everyone.


 


 

It took 180 minutes: disassemble the process of developing Go, all designed Google CLA , set up gerrit, sent "hello world" patches, fixed the scratch repository assembly, and one of the participants managed to send the patch to golang /go (merge was the same day).

 
Lesson №3 [/b]

For good stickers "on time" you need to contact proven suppliers. Saving on the nearest points where you can print stickers without cutting is not a good idea. And you can not combine the logo of the gopher with anything else: a gopher with an Intel tablet in its hand violates all the conceivable laws of stickers.


 

The rest of the classes took place according to a more free scheme. We came and worked on our tasks, exchanged experience and helped each other. Almost every such meeting was sent several patches.


 

Then came the code freeze and the course approached the logical end. By this time it was poured 17 patches . We are still going on Saturdays and working on different Go utilities


 


 

Difficulties of the "second step"


 

The easiest way was to take the first step. For those who are unsure of working with git, the scratch repository is a great solution.


 

It was not too difficult to find problems of minimum volume and not requiring much context. Various linters helped here. Run " gometalinter --enable-all " On the package of GOROOT and choose what to correct.


 

It was more difficult with the tasks to the level above. It was difficult for me to suggest this, but it was difficult for them to choose this. At the same time, it was understood that we had already outgrown the correction of linter warnings (that is, the challenge was gone, for new productive tasks it was necessary to look for new types of tasks).


 

In theory, a good second-level task is to improve the tests in Go: increasing coverage, adding or improving benchmarks, fixing not completely correlated or disabled tests, testing regression tests, and so on. This requires some immersion in the tested package, but the scope of changes will be minimal and it is easy enough to check the result. But not everyone likes to work with tests.


 

Examples from what we managed to take as tasks of the second level:


 
  1.  
  2. encoding /json: add the full path to the field in UnmarshalTypeError ( # 22369 )  
  3. time: optimize time.Time.Sub and time.Since ( # 17858 )  
  4. cmd /compile: avoid slow versions of LEA instructions on x86 ( # 21735 )
     
     
    We started them closer to the code freeze, so we did not have time to finish it: there were 2 Saturdays for 90 minutes, but this is not enough. Moreover, everyone worked on their task. Perhaps it would be easier in the case of splitting into teams at least two people, for example, in the case of issue21735 , you can simultaneously test different hypotheses and study different parts of the compiler in parallel, then share knowledge.
     
    Lesson №4 [/b]
    Most of all, it is worth paying attention to this part, the inevitable deepening and the issues that follow. I doubt that there are people who know all parts of Go so as to be able to support with any choice, so here everything again converges to the shortage of different experts.
     
    Workshop v2
     
    Some of the problems described above would be solved by an alternative format, when a more complex task would not require solving it for three weeks. The next workshop should be held as a continuous event, at least for 4-5 hours, and ideally with a break and for longer.
     
    Usually the format of the hakaton also implies some preparation of the participants before the start, namely the choice of the task and the preliminary description of the ways of its solution, the formation of teams. This, too, can help increase the number of successful contributions.
     
    Need more mentors who can in real time help participants choose and solve problems.
     
    The choice of a city depends on the number of participants and their geographic distribution. I'm closer to four options: Moscow, Innopolis, Kazan, Nizhny Novgorod.
     
    In conclusion,
     
    It is not necessary to come to similar hackathons to start contributing to Go, a motivating example may be an article by Marco As a newcomer to Go, it was . However, in the company of the same interested people it is easier to overcome the initial discomfort and confusion, to go from the beginning to the end.
     
    If you are not indifferent to this topic, stay tuned for updates, look in at golang-ru.slack . The next period of active development of Go begins with August 2018 : not too far to forget about it, and not too close, so as not to have time to properly prepare.
     
    Bonus materials for beginner contributors
     
     
    Speech How to contribute in Go Stanislav Afanasyev ( Goandfix.me )
     
    Slides How to Contribute to Go
     
    Slides Golang compiler internals for ARM64
     
    Relatively recently, new readme began to appear, aimed at new contributors: cmd /compile , cmd /compile /internal /ssa .
     
    Only registered users can participate in the survey. Enter , you are welcome.
    Would you like to participate in the Go contribution workshop?
    Yes, in the form of a participant
    Yes, in the form of a mentor /reviser
    No
    No, but I support the idea
    2 people voted. There are no abstentions.

It may be interesting

  • Comments
  • About article
  • Similar news
Marketing Manager 3 April 2019 11:36
You can find  dissertation web pages over the internet just like you receive ostensibly  spotted while in the web-site.  Capital  Gains Tax Advice London
Marketing Manager 20 April 2019 15:01
I enjoy each one of  the posts, We appreciated, I would enjoy a lot more info with this  particular, due to the fact it's very enjoyable., Be thankful meant for  providing.  Local  Business Directory
Marketing Manager 14 May 2019 12:16
Quickly your website  can irrefutably acquire well known being among the most regarding submitting  buyers, due to its thorough content articles or simply just essential  critiques.  Plumbing  Ideas
Marketing Manager 27 May 2019 12:31
I adore the articles and reviews, I must say i dearly loved, I would like advise about it, because life-style decent., Many thanks meant for looking at. theychangedme.com


Marketing Manager 29 May 2019 13:29
As i decided to buy  onto your webpage even now the positioning of center entirely some more bit  of submits. Pleasurable strategy for foreseeable future, I am bookmarking on  every occasion attain consumers complete originates ready.  com  facebook orca folder
Marketing Manager 31 May 2019 15:29
I'm keen on ones write-up. It truly is beneficial to discover people verbalize on the cardiovascular system in addition to understanding within this significant theme is usually simply discovered. seattle pest control seattle


Marketing Manager 1 June 2019 14:44
That's it's better  that you ought to best suited examination in advance of making. It is easy to  make improved upload that way.  https://www.diffuseur-huiles-essentielle.fr


This kind of seems  totally best. Every one of these little information are manufactured together  with lots of backdrop information. I prefer that a whole lot  Casino  bonus
Marketing Manager 3 June 2019 11:08
Rapidly this kind of fantastic web site will surely unquestionably often be well-known amongst many creating any website people, for your meticulous articles along with testimonies.you can try this out

Sunny Deol 4 June 2019 10:52
I really like your personal submit. It is excellent to find out an individual clarify within phrases within the middle in addition to lucidity relating to this important subject might be effortlessly observed. see this here

Blood lab in Mulund 8 June 2019 12:43
I read your blog frequently, and I just thought I’d say keep up the fantastic work. Blood lab in Mulund

voyance gratuite par telephone 8 June 2019 20:37
Thanks for your insight for your fantastic posting. I’m exhilarated I have taken the time to see this. It is not enough; I will visit your site every day. voyance gratuite par telephone


HELLO 10 June 2019 12:06
Excellent post. I was reviewing this blog continuously, and I am impressed! Extremely helpful information especially this page. Thank you and good luck. www.thermometres-bebes.fr


susan 18 June 2019 11:39
Believe it or not, it is the type of information I’ve long been trying to find. It matches to my requirements a lot. Thank you for writing this information. www.planchas-gaz.fr


susan 19 June 2019 16:00
I am always looking for some free kinds of stuff over the internet. There are also some companies which give free samples. But after visiting your blog, I do not visit too many blogs. Thanks. https://www.lesfrigorifiques.fr


loren geil 30 June 2019 17:14
This valuable appears  to be like utterly preferred. Every single one of small to medium sized  details manufactured using lots of the past becoming familiar with. I need  this approach a tremendous amount.  Mississippi  Local Guide
Guest Marketing Manager 6 July 2019 20:28
As i purchased with your blog site while positioning fascination purely a little bit little submits. Fulfilling technique for extended, We will be book-marking during a period attain forms finish happens further up.panama-papers-cases

Harry Jack 9 July 2019 13:08
Wonderful blog! Do you have any tips and hints for aspiring writers? Because I’m going to start my website soon, but I’m a little lost on everything. Many thanks! more again
seokt098 9 July 2019 16:23
Superbly written  article, if only all bloggers offered the same content as you, the internet  would be a far better place..  안전토토
ryanjones ryanjones 17 July 2019 13:49
This is actually at the same time an extremely excellent submitting we all significantly knowledgeable seeking by means of. It really is definately not on a regular basis we've chance to see a little. CBD Oil coupon code
susan 18 July 2019 15:55
I have bookmarked your blog, the articles are way better than other similar blogs.. thanks for a great blog! All Season Tires Ottawa

ryanjones ryanjones 24 July 2019 22:44
It is simultaneously a good location that we very savored searching. Is not daily that offer the chance to see a product.Barista



That is why selling advertising campaigns marketing so that you could invaluable explore previous advertisment. Quite simply to jot down stronger set that fit this description.buy steroids canada

Billy Ortiz 26 July 2019 08:42
Immediately the following web-site might glimmer recognition amongst the majority of blog plus site-building consumers, because of meticulous discussions and also product reviews.products review



Immediately the following web-site might glimmer recognition amongst the majority of blog plus site-building consumers, because of meticulous discussions and also product reviews.products review

Guest Marketing Manager 26 July 2019 13:46
Without difficulty these pages may irrefutably potentially often be famous concerned with lots of blogs and forums men and women, so that you can it has the hardworking content and also beliefs.Mike Klingler

Julia Mayr 30 July 2019 13:16
Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me. Sun Protection Costa Blanca Murcia

Guest Marketing Manager 10 August 2019 13:47
Fairly quickly this approach blog may well indisputably become popular approximately a large amount of weblog and additionally site-building many people, to make sure you the country's fastidious reports and / or feedback.golden retriever puppies for sale

Harry Jack 11 August 2019 21:53
Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!

new england patriots live stream
nfl live stream free online
watch nfl live stream online
watch nfl live streaming
dallas cowboys live stream

thomasela 23 August 2019 20:39
For that reason it is preferable you will want to similar analyze ahead of generating. You are able to release more effective post like this. <a href="http://whazzup-u.com/profiles/blogs/elegant-cash-internet-casino-review
">먹튀</a>


For that reason it is preferable you will want to similar analyze ahead of generating. You are able to release more effective post like this. 먹튀
Harry Jack 25 August 2019 13:47
Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work! royal green condo
ryanjones ryanjones 28 August 2019 14:41
Rapidly this kind of fantastic web site will surely irrefutably often be well-known amongst many creating any website people, due to the fact thorough articles along with testimonies.https://fairpokerqq.com

Guest Marketing Manager 3 September 2019 13:54
Which is moreover an excellent distribute that we in fact treasured researching. It is not daily that individuals keep the chance to learn a very important factor.Juweliere in Ingolstadt

weber

Author

11-06-2018, 03:24

Publication Date

Programming / Compilers / Open source / Go

Category
  • Comments: 145
  • Views: 1 018
"Warm lamp" sound with your own hands.
Voronezh, we are waiting for you (and
SpaceX conducted the first Mars Workshop
Contribute in Go using a static
Digest of news from the world of
What was frozen on the feature freeze
Write a comment
Name:*
E-Mail:


Comments
The Daily Reports is the reliable and authentic news and blog publisher. Visit The Daily Reports for up-to-date US news, international news and policy analysis. Check out: International Politics News
Today, 17:28

saifwordpress

nice post, keep up with this interesting work. It really is good to know that this topic is being covered also on this web site so cheers for taking time to discuss this!  https://l23movies.club/
Today, 15:35

Legend SEO

Extremely helpful post. This is my first time i visit here. I discovered such a large number of intriguing stuff in your blog particularly its exchange. Truly its extraordinary article. Keep it up.먹튀검증사이트

Today, 14:34

raymond weber

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me.  pigmentvlekken verwijderen - dermasensation.nl
Today, 14:25

jacksonseo

Bangalore Escorts provides escort call girls by the escort agency in Bangalore. We have selected the best high profile call girls in Bangalore. Visit us www.piyagupta.com/
South Bangalore  Escorts || Marathahalli Escorts || Electronic City Escorts || Hebbal Escorts || Mg road Escorts || Ulsoor Escorts || Ub city Escorts || Nandi hills Escorts || Malleswaram Escorts || Commercial street  Escorts || Indira nagar Escorts || Hsr layout Escorts

Today, 12:24

piyagupta01

Adv
Website for web developers. New scripts, best ideas, programming tips. How to write a script for you here, we have a lot of information about various programming languages. You are a webmaster or a beginner programmer, it does not matter, useful articles will help to make your favorite business faster.

Login

Registration Forgot password