Why Software Projects need Heroes (Lessons Learned from 1000+ Projects)
A "hero" project is one where 80% or more of the contributions are made by the 20% of the developers. Those developers are called "hero" developers. In the literature, heroes projects are deprecated since they might cause bottlenecks in development and communication. However, there is little empirical evidence on this matter. Further, recent studies show that such hero projects are very prevalent. Accordingly, this paper explores the effect of having heroes in project, from a code quality perspective by analyzing 1000+ open source GitHub projects. Based on the analysis, this study finds that (a) majority of the projects are hero projects; and (b)the commits from "hero developers" (who contribute most to the code) result in far fewer bugs than other developers. That is, contrary to the literature, heroes are standard and very useful part of modern open source projects.
https://arxiv.org/abs/1904.09954
A "hero" project is one where 80% or more of the contributions are made by the 20% of the developers. Those developers are called "hero" developers. In the literature, heroes projects are deprecated since they might cause bottlenecks in development and communication. However, there is little empirical evidence on this matter. Further, recent studies show that such hero projects are very prevalent. Accordingly, this paper explores the effect of having heroes in project, from a code quality perspective by analyzing 1000+ open source GitHub projects. Based on the analysis, this study finds that (a) majority of the projects are hero projects; and (b)the commits from "hero developers" (who contribute most to the code) result in far fewer bugs than other developers. That is, contrary to the literature, heroes are standard and very useful part of modern open source projects.
https://arxiv.org/abs/1904.09954
Кто-то мне объяснит эту тенденцию, когда опытные и в чем-то даже умные люди в IT уходят читать курсы по этому же IT ?
То есть не решают расти по карьерной лестнице, не идут в бизнес или подобное, а просто садятся в душных чатиках и рассказывают студентам и стремящимся к синьерам как нужно работать и на что смотреть.
Просто не раз на таких натыкался и не совсем улавливаю цель, или их мотивацию, хз. Может вы другой паттерн у таких дедов(и бабуль) встречали? (к примеру кофейни идут открывать)
То есть не решают расти по карьерной лестнице, не идут в бизнес или подобное, а просто садятся в душных чатиках и рассказывают студентам и стремящимся к синьерам как нужно работать и на что смотреть.
Просто не раз на таких натыкался и не совсем улавливаю цель, или их мотивацию, хз. Может вы другой паттерн у таких дедов(и бабуль) встречали? (к примеру кофейни идут открывать)
Python я в прод не пускал, но эта штука звучит полезной и приятной.
In Python every class can have instance attributes. By default Python uses a dict to store an object’s instance attributes. This is really helpful as it allows setting arbitrary new attributes at runtime.
However, for small classes with known attributes it might be a bottleneck. The dict wastes a lot of RAM. Python can’t just allocate a static amount of memory at object creation to store all the attributes. Therefore it sucks a lot of RAM if you create a lot of objects (I am talking in thousands and millions). Still there is a way to circumvent this issue. It involves the usage of slots to tell Python not to use a dict, and only allocate space for a fixed set of attributes. Here is an example with and without slots:
https://book.pythontips.com/en/latest/__slots__magic.html
In Python every class can have instance attributes. By default Python uses a dict to store an object’s instance attributes. This is really helpful as it allows setting arbitrary new attributes at runtime.
However, for small classes with known attributes it might be a bottleneck. The dict wastes a lot of RAM. Python can’t just allocate a static amount of memory at object creation to store all the attributes. Therefore it sucks a lot of RAM if you create a lot of objects (I am talking in thousands and millions). Still there is a way to circumvent this issue. It involves the usage of slots to tell Python not to use a dict, and only allocate space for a fixed set of attributes. Here is an example with and without slots:
https://book.pythontips.com/en/latest/__slots__magic.html
Ах да, чуть не забыл зачем я в офисе сижу до вечера
UPD: Слайды конечно же https://speakerdeck.com/olegkovalov/za-paru-mghnovienii-do-main
UPD: Слайды конечно же https://speakerdeck.com/olegkovalov/za-paru-mghnovienii-do-main
Speaker Deck
За пару мгновений до main()
Forwarded from How to Go wrong
GopherCon Russia 2021 стартует уже через полчаса, и бесплатная регистрация ещё открыта! Все на https://www.gophercon-russia.ru !
А ещё там можно купить билет на крутейшие воркшопы в субботу и воскресенье. Булат Замалутдинов и Николай Маржан расскажут как писать Kubernetes-операторы, чтобы всё работало и не ломалось; Искандер Шарипов расскажет как крафтить линтеры, чтобы самим всё не сломать; а Валерий Мелешкин и я расскажем как применять property-based тесты и фаззинг, чтобы самим ломать свой код до production. Места ещё есть!
А ещё там можно купить билет на крутейшие воркшопы в субботу и воскресенье. Булат Замалутдинов и Николай Маржан расскажут как писать Kubernetes-операторы, чтобы всё работало и не ломалось; Искандер Шарипов расскажет как крафтить линтеры, чтобы самим всё не сломать; а Валерий Мелешкин и я расскажем как применять property-based тесты и фаззинг, чтобы самим ломать свой код до production. Места ещё есть!
www.gophercon-russia.ru
GopherCon Russia 2021
Конференция разработчиков на Go, 23-25 апреля 2021 года, Online.
oleg_log
We want to provide a low-noise, reliable way for Go developers to be alerted of known security vulnerabilities that affect their applications. We aim to build a first-party, curated, consistent database of security vulnerabilities open to community submissions…
It's alive https://github.com/golang/vulndb
GitHub
GitHub - golang/vulndb: [mirror] The Go Vulnerability Database
[mirror] The Go Vulnerability Database. Contribute to golang/vulndb development by creating an account on GitHub.
3k get, congrats https://xn--r1a.website/sysadmin_tools
you're next https://xn--r1a.website/count0_digest
you're next https://xn--r1a.website/count0_digest
На самом деле вчера я опубликовал чуть хелперов для sync пакета в Go https://github.com/cristalhq/synx
Возможно кому-то это сделает жизнь проще (мне сделало). Спасибо Богдану (@bortlog) за когда-то там веселый пейринг в субботу.
Напомню еще про атомики) https://xn--r1a.website/oleg_log/790
Заведу еще тег #hq
Возможно кому-то это сделает жизнь проще (мне сделало). Спасибо Богдану (@bortlog) за когда-то там веселый пейринг в субботу.
Напомню еще про атомики) https://xn--r1a.website/oleg_log/790
Заведу еще тег #hq
GitHub
GitHub - cristalhq/synx: Better sync package for Go.
Better sync package for Go. Contribute to cristalhq/synx development by creating an account on GitHub.
Forwarded from Alex senpai
Я тут недавно workshop по ruleguard провёл.
Какую-то часть выложил в открытый доступ. :)
Всё остальное было в лайве (плюс там эксклюзивный контент для конференции пока приватный, попозже может открою).
В выложенную часть входит несколько обучающих видео + несколько небольших практических задачек.
Ссылка на плейлист: https://www.youtube.com/watch?v=wZMgZNtKCm0&list=PLAjl-3QkinHvbgBKtIwlD2j3qqZ7iNOhE&index=1
Практические задачки: https://github.com/go-ruleguard/workshop-tasks/blob/main/ru/tasks.md
Какую-то часть выложил в открытый доступ. :)
Всё остальное было в лайве (плюс там эксклюзивный контент для конференции пока приватный, попозже может открою).
В выложенную часть входит несколько обучающих видео + несколько небольших практических задачек.
Ссылка на плейлист: https://www.youtube.com/watch?v=wZMgZNtKCm0&list=PLAjl-3QkinHvbgBKtIwlD2j3qqZ7iNOhE&index=1
Практические задачки: https://github.com/go-ruleguard/workshop-tasks/blob/main/ru/tasks.md
YouTube
ruleguard workshop: overview (part 1)
Первая часть из серии видео с воркшопа.
В этой части:
- Клонируем demo проект
- Разбираем, из чего состоят файлы правил
- Запускаем ruleguard на demo проекте
- Используем quickfix'ы (они же автофиксы)
demo проект: https://github.com/go-ruleguard/demo-project…
В этой части:
- Клонируем demo проект
- Разбираем, из чего состоят файлы правил
- Запускаем ruleguard на demo проекте
- Используем quickfix'ы (они же автофиксы)
demo проект: https://github.com/go-ruleguard/demo-project…
Годнота. Очень советую потыкать другие статьи на сайте и/или подписаться на Твиттер
https://wordsandbuttons.online/can_you_tell_an_assembly_language_when_you_see_one.html
https://twitter.com/wordsandbuttons
https://wordsandbuttons.online/can_you_tell_an_assembly_language_when_you_see_one.html
https://twitter.com/wordsandbuttons
wordsandbuttons.online
Can you tell an assembly language when you see one?
An interactive quiz featuring several obscure high-level languages and assembly variants.
Forwarded from Технологический Болт Генона
Crypto miners are killing free CI
CI providers like GitLab, TravisCI, and Shippable are all worsening or shutting down their free tiers due to cryptocurrency mining attacks.
https://layerci.com/blog/crypto-miners-are-killing-free-ci/
CI providers like GitLab, TravisCI, and Shippable are all worsening or shutting down their free tiers due to cryptocurrency mining attacks.
https://layerci.com/blog/crypto-miners-are-killing-free-ci/
Ну наконец-то, сколько я ждал нормальных оплат в Телеге. Этож просто на кончиках пальцев ощущается, как WeChat: тут же сидишь трындишь и тут же оплачиваешь. Короч круто, скорее всего это хороший толчок к росту платформы.
https://telegram.org/blog/payments-2-0-scheduled-voice-chats
https://telegram.org/blog/payments-2-0-scheduled-voice-chats
Telegram
Payments 2.0, Scheduled Voice Chats, New Web Versions
This update brings Payments 2.0 for all Telegram chats, Scheduling and Mini Profiles for Voice Chats, new versions of Telegram Web for your browser, and more.
Вот это интересно. По крайней мере я надеюсь на интересные вещи в треде. https://www.reddit.com/r/rust/comments/my3ipa/if_you_could_redesign_rust_from_scratch_today/
Reddit
From the rust community on Reddit
Explore this post and more from the rust community
Вопрос на благо всех: подкиньте материалы по устройству ядра Linux. Совет читать сорцы можете придержать на майские праздники.
Интересны права пользователей, systemd, что там с файловыми системами и тд. Можете не совсем внутренности (аллокаторы, скедулеры), но думаю вы поняли.
Возможно в одной статье/книге этого не будет (скорее не будет), поэтому кидайте, что считаете нужным. Заранее спасибо.
Интересны права пользователей, systemd, что там с файловыми системами и тд. Можете не совсем внутренности (аллокаторы, скедулеры), но думаю вы поняли.
Возможно в одной статье/книге этого не будет (скорее не будет), поэтому кидайте, что считаете нужным. Заранее спасибо.
Товарищ Мерлин поднял старый вопрос о сравнении адресов
https://github.com/golang/go/issues/2620
Pointer values are comparable. Two pointer values are equal if they point to the same variable or if both have value nil. Pointers to distinct zero-size variables may or may not be equal.
...
A struct or array type has size zero if it contains no fields (or elements, respectively) that have a size greater than zero. Two distinct zero-size variables may have the same address in memory.
Пост https://xn--r1a.website/teamerlin/6625
struct{} в Go. Не обошлось без гугления спеки.https://github.com/golang/go/issues/2620
Pointer values are comparable. Two pointer values are equal if they point to the same variable or if both have value nil. Pointers to distinct zero-size variables may or may not be equal.
...
A struct or array type has size zero if it contains no fields (or elements, respectively) that have a size greater than zero. Two distinct zero-size variables may have the same address in memory.
Пост https://xn--r1a.website/teamerlin/6625
GitHub
Spec does not explain comparing pointers to zero-sized objects · Issue #2620 · golang/go
As far as I can see, the spec does not let me predict the result of this program. The spec doesn't say anything clearly about comparing two pointers to zero-sized objects. Both 6g and gccgo...
Шутка в названии - зачет. 4,5,6 как-то особо в душу западают.
https://www.netmeister.org/blog/software-engineering-laws.html
Был еще такой пост давно-давно https://xn--r1a.website/oleg_log/1652
https://www.netmeister.org/blog/software-engineering-laws.html
Был еще такой пост давно-давно https://xn--r1a.website/oleg_log/1652
www.netmeister.org
10 Software Engineering Laws Everybody Loves to Ignore
Sure, we
all pretend to know them, but rarely do we think they
apply to us. Your manager certainly doesn't...
all pretend to know them, but rarely do we think they
apply to us. Your manager certainly doesn't...
Пожалуй рискну спросить: прививаться будешь?
Anonymous Poll
23%
Да, обязательно
25%
Да, надо...
13%
Нет, наверное
8%
Нет, точно-точно
20%
Уже привит(а)
1%
Другое (в коменты)
9%
Результаты