Статья с обзором алгоритмов отрисовки дерева гита, блин, а ведь это интересная вещь, никогда не задумывался как оно работает.
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 за аниме
Forwarded from @yarosh_log