Forwarded from Sysadmin Tools 🇺🇦
Devopstopologies
DevOps Topologies
The primary goal of any DevOps effort within an organisation is to improve the delivery of value for customers and the business, not in itself to reduce costs, increase automation, or drive everything from configuration management; this means that different…
Статья с обзором алгоритмов отрисовки дерева гита, блин, а ведь это интересная вещь, никогда не задумывался как оно работает.
https://pvigier.github.io/2019/05/06/commit-graph-drawing-algorithms.html
https://pvigier.github.io/2019/05/06/commit-graph-drawing-algorithms.html
pvigier’s blog
Commit Graph Drawing Algorithms
This article is one chapter of my master thesis entitled “Design and implementation of a graphical user interface for git”. It describes the algorithm I designed to draw the commit graph in my own prototype git client called gitamine. I have adapted the content…
A test is not a unit test if:
• It talks to the database
• It communicates across the network
• It touches the file system
• It can't run at the same time as any of your other unit tests
• You have to do special things to your environment to run it.
—by mfeathers
https://twitter.com/davecheney/status/1178289934542655489?s=21
• It talks to the database
• It communicates across the network
• It touches the file system
• It can't run at the same time as any of your other unit tests
• You have to do special things to your environment to run it.
—by mfeathers
https://twitter.com/davecheney/status/1178289934542655489?s=21
Эхххх, сидишь досматриваешь Футураму, а в слаке алерт за алертом, а я не дежурный. Отличное воскресенье. Кстати, а посоветуйте какие-то мультики, чего время терять зря ¯\_(ツ)_/¯
Ну правда же...(тред: https://twitter.com/dhh/status/1177974040432037888)
Вчера столкнулся с неприятной фичей(?) godoc.
Он распознает желтые функции как конструкторы структуры, хоть там возвращается слайс. И все фции лежат рядом, в коде читается на ура, а в документации вот такой разрыв шаблона :(
Да, тот момент, когда явный конструктор в го был бы кстати.
Док https://godoc.org/github.com/cristalhq/zookeeper
Код https://github.com/cristalhq/zookeeper/blob/master/commands.go#L92 #hq
ps. лол, не замечал раньше
Он распознает желтые функции как конструкторы структуры, хоть там возвращается слайс. И все фции лежат рядом, в коде читается на ура, а в документации вот такой разрыв шаблона :(
Да, тот момент, когда явный конструктор в го был бы кстати.
Док https://godoc.org/github.com/cristalhq/zookeeper
Код https://github.com/cristalhq/zookeeper/blob/master/commands.go#L92 #hq
ps. лол, не замечал раньше
код ~ док 🤔Ща будет пост без пруфов о том, что лучше доводить вещи до конца, ну или хотя бы постить результаты-мысли-идеи.
Где-то 4 года назад, сидя в офисе после работы я сидел и оптимизировал алгоритм сортировки. Зачем? да кто знает, мне было нечем заняться, а после собесов в Амазон желание писать алгоритмы возобновилось.
И вот, после реализации нескольких странных структур данных (дерево сегментов, Фенвика, еще что-то), пачки алгоритмов для деревьев (при чём все писалось в читаемом/неолимпиадном стиле, для потомков, на Си), я пришел к алгоритму сортировки.
К сожалению N*LogN побороть я не смог[citation needed], поэтому занялся оптимизацией на практике. Не, не переписыванием всё на векторизированный ассемблер, а просто прикидывал, как так перекрутить данные, чтобы меньше прыгать по рам-у.
Штош, я пришёл к тому же, к чему пришел и уважаемый Александреску(или это он после меня 🤔), о чём рассказано в его докладе и этой записи https://t.me/peterblog/1078 Пересказывать нет смысла, лучше прочитать пост Петра или глянуть доклад.
Так это, о чём я, да, точно, если хороните идею, то хотя бы поделитесь ею с ближним, возможно у кого-то она прорастёт сильнее.
(еще чуток про конфу С++ тут https://t.me/experimentalchill/21)
Где-то 4 года назад, сидя в офисе после работы я сидел и оптимизировал алгоритм сортировки. Зачем? да кто знает, мне было нечем заняться, а после собесов в Амазон желание писать алгоритмы возобновилось.
И вот, после реализации нескольких странных структур данных (дерево сегментов, Фенвика, еще что-то), пачки алгоритмов для деревьев (при чём все писалось в читаемом/неолимпиадном стиле, для потомков, на Си), я пришел к алгоритму сортировки.
К сожалению N*LogN побороть я не смог[citation needed], поэтому занялся оптимизацией на практике. Не, не переписыванием всё на векторизированный ассемблер, а просто прикидывал, как так перекрутить данные, чтобы меньше прыгать по рам-у.
Штош, я пришёл к тому же, к чему пришел и уважаемый Александреску(или это он после меня 🤔), о чём рассказано в его докладе и этой записи https://t.me/peterblog/1078 Пересказывать нет смысла, лучше прочитать пост Петра или глянуть доклад.
Так это, о чём я, да, точно, если хороните идею, то хотя бы поделитесь ею с ближним, возможно у кого-то она прорастёт сильнее.
(еще чуток про конфу С++ тут https://t.me/experimentalchill/21)
Telegram
Канал Петра
Интересный доклад от Андрея Александреску с CppCon 2019.
У него получилось сделать что-то удивительное. Он ускорил стандартный алгоритм сортировки std::sort. На случайных данных ускорение получилось на 3% по сравнению с реализацией в GNU и CLang. Это весьма…
У него получилось сделать что-то удивительное. Он ускорил стандартный алгоритм сортировки std::sort. На случайных данных ускорение получилось на 3% по сравнению с реализацией в GNU и CLang. Это весьма…
Forwarded from 🦖 Айти Тудэй 🦥
Однажды Эрнеста Хемингуэя попросили написать самый короткий рассказ про сервер, способный растрогать девопса
Пришло время ругаться на spring framework. Ну ладно, не совсем. В великой Intellij IDEA есть такая штука как Inspect Code, которая прогоняет разные проверки по коду и ругается, ничего особенного.
Проблема вот в чем, если вы определили какой-то ендпоинт(класс + аннотация RestController), то из-за того, что все это будет подтянуто в рантайме (разве нет?), класс явно не будет использован. Уже догадываетесь к чему это ведёт?
Правильно, целый класс с ендпоинтами никто _явно_ не инстанцирует, соотв все публичные методы никто не использует, и да, соотв любые поля в классе тоже. А так как мы пишем вебсервисы и гребём в море микросервисов, то вся архитектура состоит из нескольких слоёв, в каждом из которого по одной вещице (restcontroller -> service -> storage).
Некоторые методы в условном Storage не используются, потому что по стеку выше ничего не вызывается, хоть в коде это явно и написано. Такие дела (конфиг в иде не нашел, поэтому жалуюсь).
Проблема вот в чем, если вы определили какой-то ендпоинт(класс + аннотация RestController), то из-за того, что все это будет подтянуто в рантайме (разве нет?), класс явно не будет использован. Уже догадываетесь к чему это ведёт?
Правильно, целый класс с ендпоинтами никто _явно_ не инстанцирует, соотв все публичные методы никто не использует, и да, соотв любые поля в классе тоже. А так как мы пишем вебсервисы и гребём в море микросервисов, то вся архитектура состоит из нескольких слоёв, в каждом из которого по одной вещице (restcontroller -> service -> storage).
Некоторые методы в условном Storage не используются, потому что по стеку выше ничего не вызывается, хоть в коде это явно и написано. Такие дела (конфиг в иде не нашел, поэтому жалуюсь).
oleg_log
Пришло время ругаться на spring framework. Ну ладно, не совсем. В великой Intellij IDEA есть такая штука как Inspect Code, которая прогоняет разные проверки по коду и ругается, ничего особенного. Проблема вот в чем, если вы определили какой-то ендпоинт(класс…
вруби все настройки, сказал я себе
заработало, скажу я вам
и плагином можно https://www.jetbrains.com/help/idea/context-and-dependency-injection-cdi.html
но это не отменяет того, что махинации с МОИМИ КЛАССАМИ В РАНТАЙМЕ это круто. Это вообще не круто.
заработало, скажу я вам
и плагином можно https://www.jetbrains.com/help/idea/context-and-dependency-injection-cdi.html
но это не отменяет того, что махинации с МОИМИ КЛАССАМИ В РАНТАЙМЕ это круто. Это вообще не круто.
А если хочется еще покатать модельки по гошному коду, то можно обратиться к Брэду, он идеи ищет для дампа прокси https://twitter.com/bradfitz/status/1178677638669336576
Twitter
Brad Fitzpatrick
I downloaded https://t.co/FOUhK3EBWg to my #homelab. - About 288447 zip files (module versions) - Of the 610 GB, ~20% is Kubernetes. (each kubernetes/kubernetes or fork is 42MB) - biggest zip is 313 MB. Median 132 KB. So many stats & other analysis I want…
Forwarded from Generative Anton (Anton Repushko)
Аналитика 10 лямов репозиториев
Безумный дядька сделал аналитику огромного количества открытых реп в гитхабе/битбакете/гитлабе, посчитал файлики, запуская это всё лямбдой на AWS, а данные вытягивая с S3. В итоге всё стоило под 80 баксов.
В чём прикол? (помимо того, что это оказалось не слишком дорого и вообще посчиталось нормально)
Написана тулзовина была на Go.
Мораль: ресёч, когда нужно было просто погонять данные (или поскрапить их) да формировать json-результаты? Go, я выбираю тебя *бросает_покебол*
Безумный дядька сделал аналитику огромного количества открытых реп в гитхабе/битбакете/гитлабе, посчитал файлики, запуская это всё лямбдой на AWS, а данные вытягивая с S3. В итоге всё стоило под 80 баксов.
В чём прикол? (помимо того, что это оказалось не слишком дорого и вообще посчиталось нормально)
Написана тулзовина была на Go.
Мораль: ресёч, когда нужно было просто погонять данные (или поскрапить их) да формировать json-результаты? Go, я выбираю тебя *бросает_покебол*
GitHub
scc-data/main.go at master · boyter/scc-data
Contribute to boyter/scc-data development by creating an account on GitHub.
Такс, я наконец-то прочитал эту статью: Сложность простоты https://habr.com/ru/post/469441/
0. Она отлично написана, очень приятно читать.
1. Стало обидно за плохой отзыв о чате го в телеге, но про кол-во флуда и пустых советов все же правда, к сожалению так устроены чаты.
2. Победа в простоте работы с хаскеллом была видна из заголовка и конечно же из-за переиспользования чужого кода: вот тебе дженерики, вот тебе код, подставляй свое.
3. Однопоточный код на го оказался проще и не требовал ничего, кроме как компилятора.
4. Понравилась фраза: Идеология го, в свою очередь, скорее "код должен быть достаточно простым, чтобы в случае изменения требований его легко было выкинуть и написать новый".
Что-то в ней есть, интерфейсы(+конракты?) тому подтверждение, если не писать в жава-стиле.
5.
6. "параллелизация заключалась в изменении одной строчки, а не переосмыслении всей программы" - хочется, но нет.
И даже после всего этого что-то заставляет людей тащить го в прод и строить продукты...А статья хорошая, да.
0. Она отлично написана, очень приятно читать.
1. Стало обидно за плохой отзыв о чате го в телеге, но про кол-во флуда и пустых советов все же правда, к сожалению так устроены чаты.
2. Победа в простоте работы с хаскеллом была видна из заголовка и конечно же из-за переиспользования чужого кода: вот тебе дженерики, вот тебе код, подставляй свое.
3. Однопоточный код на го оказался проще и не требовал ничего, кроме как компилятора.
4. Понравилась фраза: Идеология го, в свою очередь, скорее "код должен быть достаточно простым, чтобы в случае изменения требований его легко было выкинуть и написать новый".
Что-то в ней есть, интерфейсы(+конракты?) тому подтверждение, если не писать в жава-стиле.
5.
commentsTree <- mapConcurrently getCommentById tree смотрися круто, но отличается от реализации в го на одну вещь: оно все делает за тебя. Хорошо это или плохо - сильно зависит от контекста, поэтому 2 решения не совсем правильно сравнивать. Либо мы берём и ручками стартуем треды/гринтреды в Хаскелле, либо ищем необходимую библиотеку на го и реализуем интерфейс, чтобы оно само посчитало и собрало результаты. 6. "параллелизация заключалась в изменении одной строчки, а не переосмыслении всей программы" - хочется, но нет.
И даже после всего этого что-то заставляет людей тащить го в прод и строить продукты...А статья хорошая, да.
Continuous Profiling in #Go
https://docs.google.com/document/d/1GKcH3bo3bbZ2wNSqQnmdK-z98c71Qmmfo8ZEVRGgDKE/edit#
И сразу репка https://github.com/profefe/profefe
Достаточно важное: формат профилей pprof совсем не привязан к Go. Для Java, JavaScript, Python и пр. есть библиотеки позволяющие получить данные профилирования в формате pprof. Возможно, profefe может стать полезным сервисов для приложений написанных на других языках.
https://docs.google.com/document/d/1GKcH3bo3bbZ2wNSqQnmdK-z98c71Qmmfo8ZEVRGgDKE/edit#
И сразу репка https://github.com/profefe/profefe
Достаточно важное: формат профилей pprof совсем не привязан к Go. Для Java, JavaScript, Python и пр. есть библиотеки позволяющие получить данные профилирования в формате pprof. Возможно, profefe может стать полезным сервисов для приложений написанных на других языках.
Google Docs
RFC: Continuous Profiling in Go (RU)
Непрерывное профилирование для Go-сервисов Статья на Хабре https://habr.com/ru/post/470443/ Статья на Медиуме https://medium.com/@tvii/continuous-profiling-and-go-6c0ab4d2504b (Анг) pprof — основной инструмент профилирования Go-сервисов. Профилировщик включен…
oleg_log
Эхххх, сидишь досматриваешь Футураму, а в слаке алерт за алертом, а я не дежурный. Отличное воскресенье. Кстати, а посоветуйте какие-то мультики, чего время терять зря ¯\_(ツ)_/¯
Шарю мультики, которыми вы поделились. Попробую разбить по группам, соре, если что-то не так.
Для всех:
- Futurama - без комментариев
- Rick and Morty - 4й сезон в середине ноября
- Adventure Time - одно из самых важных в моей жизни шоу (лонгстори)
- Over The Garden Wall - восхитительно, одно из лучших творений
- Gravity Falls - тоже неимоверно классное
- Pokemon - почему бы и нет? нестареющая классика, все мечтаю досмотреть-пересмотреть
- The Amazing World of Gumball - около AT ток менее фантастическое
- Ugly Americans - мне понравилось, жизненный юмор
- Love death and robots - местами +18 но нереально круто
- Fantastic Mr. Fox - роскошная полнометражка
- Song of the Sea - спасибо @schopenhauer_was_right
То, что посоветовали, но я не смотрел:
- Disenchantment - от автора футурамы
- Big Mouth - я так понял много о проне и сексе
- Aggretrsuko
- Final space
- Drawn Together
- F is for family
- Hazbin Hotel
Кровь-кишки:
- Mister pickles - около +18 о собаке сатане, 10/10 для меня
- Superjail - менее насильственное, но тоже годное
Аниме:
- Aggretsuko
- Steins;Gate
- JoJo
- One Punch Man
- Богиня благословляет этот прекрасный мир
- Убийца гоблинов
- Mob Psycho 100
Сложно-абстрактное:
- Interface (гуглите с "youtube series") - оч абстрактное
- Squidbillies - ух...абстрактно
Мне не зашло:
- Bojack horseman - советовали терпеть 2 сезона, я не выдержал и половины 1го, хз
- Brickleberry - толстовато, не зашло
- Paradise PD - вангую брикклбери, хотя хз
- Archer - не зашло, герой слишком мудак
- 12oz. Mouse
Спасибо @badassorange за аниме
Для всех:
- Futurama - без комментариев
- Rick and Morty - 4й сезон в середине ноября
- Adventure Time - одно из самых важных в моей жизни шоу (лонгстори)
- Over The Garden Wall - восхитительно, одно из лучших творений
- Gravity Falls - тоже неимоверно классное
- Pokemon - почему бы и нет? нестареющая классика, все мечтаю досмотреть-пересмотреть
- The Amazing World of Gumball - около AT ток менее фантастическое
- Ugly Americans - мне понравилось, жизненный юмор
- Love death and robots - местами +18 но нереально круто
- Fantastic Mr. Fox - роскошная полнометражка
- Song of the Sea - спасибо @schopenhauer_was_right
То, что посоветовали, но я не смотрел:
- Disenchantment - от автора футурамы
- Big Mouth - я так понял много о проне и сексе
- Aggretrsuko
- Final space
- Drawn Together
- F is for family
- Hazbin Hotel
Кровь-кишки:
- Mister pickles - около +18 о собаке сатане, 10/10 для меня
- Superjail - менее насильственное, но тоже годное
Аниме:
- Aggretsuko
- Steins;Gate
- JoJo
- One Punch Man
- Богиня благословляет этот прекрасный мир
- Убийца гоблинов
- Mob Psycho 100
Сложно-абстрактное:
- Interface (гуглите с "youtube series") - оч абстрактное
- Squidbillies - ух...абстрактно
Мне не зашло:
- Bojack horseman - советовали терпеть 2 сезона, я не выдержал и половины 1го, хз
- Brickleberry - толстовато, не зашло
- Paradise PD - вангую брикклбери, хотя хз
- Archer - не зашло, герой слишком мудак
- 12oz. Mouse
Спасибо @badassorange за аниме