Пример системного дизайна: как GitHub индексирует код для молниеносного поиска и извлечения информации
Компания GitHub разработала свою поисковую систему под названием Project Blackbird с нуля на языке Rust, поскольку существующие готовые решения не соответствовали ее требованиям в тех масштабах, в которых она работала. Движок поддерживает такие функции, как поиск с использованием идентификаторов, пунктуации, подстрок, регулярных выражений, подстановочных знаков и т.д., которые являются специфическими для поиска кода в отличие от обычного текстового поиска.
Поисковая система также поддерживает глобальные запросы по 200 млн. репозиториев и индексирует изменения кода в репозиториях в течение нескольких минут. Поиска кода - это самый большой кластер GitHub, состоящий из 5184 виртуальных процессоров, 40 ТБ оперативной памяти и 1.25 ПБ резервного хранилища, поддерживающий в среднем 200 запросов в секунду и индексирующий более 53 млрд. исходных файлов.
Статья: https://scaleyourapp.com/system-design-github-code-search-engine/
Компания GitHub разработала свою поисковую систему под названием Project Blackbird с нуля на языке Rust, поскольку существующие готовые решения не соответствовали ее требованиям в тех масштабах, в которых она работала. Движок поддерживает такие функции, как поиск с использованием идентификаторов, пунктуации, подстрок, регулярных выражений, подстановочных знаков и т.д., которые являются специфическими для поиска кода в отличие от обычного текстового поиска.
Поисковая система также поддерживает глобальные запросы по 200 млн. репозиториев и индексирует изменения кода в репозиториях в течение нескольких минут. Поиска кода - это самый большой кластер GitHub, состоящий из 5184 виртуальных процессоров, 40 ТБ оперативной памяти и 1.25 ПБ резервного хранилища, поддерживающий в среднем 200 запросов в секунду и индексирующий более 53 млрд. исходных файлов.
Статья: https://scaleyourapp.com/system-design-github-code-search-engine/
Интерактивное введение в преобразования Фурье
Преобразования Фурье - это инструмент, используемый в целом ряде различных задач. В этом руководстве рассказывается о том, что такое преобразование Фурье и как оно может быть полезно. А также о том, как с его помощью можно создавать красивые вещи.
Статья: https://www.jezzamon.com/fourier/
Преобразования Фурье - это инструмент, используемый в целом ряде различных задач. В этом руководстве рассказывается о том, что такое преобразование Фурье и как оно может быть полезно. А также о том, как с его помощью можно создавать красивые вещи.
Статья: https://www.jezzamon.com/fourier/
Jezzamon
An Interactive Introduction to Fourier Transforms
Fourier transforms are a tool used in a whole bunch of different things. This is a explanation of what a Fourier transform does, and some different ways it can be useful.
Карманная книга CTO стартапа
В этой книге, написанной для технических директоров стартапов, рассматриваются вопросы лидерства, управления и разработки. Цель книги - дать представление об общих проблемах, с которыми сталкивается каждый технический руководитель. В книге приведены основные положения, которые помогут руководителям принимать обоснованные решения. В книге представлены лучшие практики и справочные материалы для лучшего понимания каждой темы.
Исходники: https://github.com/ZachGoldberg/Startup-CTO-Handbook
В этой книге, написанной для технических директоров стартапов, рассматриваются вопросы лидерства, управления и разработки. Цель книги - дать представление об общих проблемах, с которыми сталкивается каждый технический руководитель. В книге приведены основные положения, которые помогут руководителям принимать обоснованные решения. В книге представлены лучшие практики и справочные материалы для лучшего понимания каждой темы.
Исходники: https://github.com/ZachGoldberg/Startup-CTO-Handbook
GitHub
GitHub - ZachGoldberg/Startup-CTO-Handbook: The Startup CTO's Handbook, a book covering leadership, management and technical topics…
The Startup CTO's Handbook, a book covering leadership, management and technical topics for leaders of software engineering teams - ZachGoldberg/Startup-CTO-Handbook
This media is not supported in your browser
VIEW IN TELEGRAM
App motion
Коллекция анимаций из мобильных приложений для вдохновения.
Сайт: https://appmotion.design/
Коллекция анимаций из мобильных приложений для вдохновения.
Сайт: https://appmotion.design/
Новая жизнь старого GPS-приёмника
В этой статье я расскажу о том, как я использовал старый GPS-приемник в качестве приёмника для захвата "сырых" данных GPS. Также я постараюсь рассказать о базовых принципах приема и декодирования данных GPS.
Статья: https://habr.com/ru/articles/765402/
В этой статье я расскажу о том, как я использовал старый GPS-приемник в качестве приёмника для захвата "сырых" данных GPS. Также я постараюсь рассказать о базовых принципах приема и декодирования данных GPS.
Статья: https://habr.com/ru/articles/765402/
Как macOS управляет виртуальными ядрами Apple Silicon?
Одной из наиболее характерных особенностей Apple Silicon является наличие двух типов процессорных ядер: E (Efficiency) - энергоэффективных, но более медленных, и P (Performance) - ядер, на которых обычно выполняется большая часть кода в используемых нами приложениях. Приложения не решают напрямую, на каких ядрах они будут работать, это привилегия macOS, но они сообщают о своей заинтересованности, задавая качество обслуживания (QoS), которое затем учитывается при планировании их работы. С появлением в Sonoma режима Game Mode планирование работы процессора теперь может работать по-другому: ядра E резервируются для использования в играх. В этой статье рассматривается еще одна нетипичная ситуация - запуск виртуальной машины macOS, которой назначено заданное количество виртуальных ядер. Как с этим справляется macOS Sonoma?
Статья: https://eclecticlight.co/2023/10/23/how-does-macos-manage-virtual-cores-on-apple-silicon/
Одной из наиболее характерных особенностей Apple Silicon является наличие двух типов процессорных ядер: E (Efficiency) - энергоэффективных, но более медленных, и P (Performance) - ядер, на которых обычно выполняется большая часть кода в используемых нами приложениях. Приложения не решают напрямую, на каких ядрах они будут работать, это привилегия macOS, но они сообщают о своей заинтересованности, задавая качество обслуживания (QoS), которое затем учитывается при планировании их работы. С появлением в Sonoma режима Game Mode планирование работы процессора теперь может работать по-другому: ядра E резервируются для использования в играх. В этой статье рассматривается еще одна нетипичная ситуация - запуск виртуальной машины macOS, которой назначено заданное количество виртуальных ядер. Как с этим справляется macOS Sonoma?
Статья: https://eclecticlight.co/2023/10/23/how-does-macos-manage-virtual-cores-on-apple-silicon/
Телесериал Fallout от Amazon получил дату выхода в 2024 году
Премьера телевизионной адаптации популярной серии видеоигр Fallout, созданной компанией Amazon, состоится на канале Amazon Prime Video 12 апреля 2024 года, объявила компания в понедельник.
Сериал был анонсирован в июле 2020 г. вместе с сообщением о том, что сценаристы Westworld Джонатан Нолан и Лиза Джой выступят в качестве исполнительных продюсеров. В январе 2022 г. стало известно, что Нолан выступит режиссером первого эпизода, а шоураннерами станут два других сценариста - Женева Робертсон-Дворет ("Капитан Марвел", Tomb Raider) и Грэм Вагнер ("Портландия", "Офис", "Кремниевая долина").
Недавно за закрытыми дверями Amazon показала трейлер, из которого стало известно, что действие сериала будет происходить в Южной Калифорнии и что он будет строго придерживаться визуального и повествовательного стиля игры. О сюжете и персонажах известно немного.
Премьера телевизионной адаптации популярной серии видеоигр Fallout, созданной компанией Amazon, состоится на канале Amazon Prime Video 12 апреля 2024 года, объявила компания в понедельник.
Сериал был анонсирован в июле 2020 г. вместе с сообщением о том, что сценаристы Westworld Джонатан Нолан и Лиза Джой выступят в качестве исполнительных продюсеров. В январе 2022 г. стало известно, что Нолан выступит режиссером первого эпизода, а шоураннерами станут два других сценариста - Женева Робертсон-Дворет ("Капитан Марвел", Tomb Raider) и Грэм Вагнер ("Портландия", "Офис", "Кремниевая долина").
Недавно за закрытыми дверями Amazon показала трейлер, из которого стало известно, что действие сериала будет происходить в Южной Калифорнии и что он будет строго придерживаться визуального и повествовательного стиля игры. О сюжете и персонажах известно немного.
Анализ 10 000 вопросов с технических интервью: частотность и вероятность встречи
Я проанализировал 600 публичных мок-интервью с YouTube и собрал из них 10 000 уникальных вопросов. Затем посчитал, как часто они встречаются, и определил вероятность появления каждого вопроса. У меня есть данные по 20 профессиям, включая frontend, python, java-разработчика, специалиста по тестированию и многих других.
Статья: https://habr.com/ru/articles/769480/
Я проанализировал 600 публичных мок-интервью с YouTube и собрал из них 10 000 уникальных вопросов. Затем посчитал, как часто они встречаются, и определил вероятность появления каждого вопроса. У меня есть данные по 20 профессиям, включая frontend, python, java-разработчика, специалиста по тестированию и многих других.
Статья: https://habr.com/ru/articles/769480/
Как Tinder разрабатывает продукт (и почему так)
Я слежу за Рози Хогмаскалл (бывшим руководителем отдела роста продуктов в Peanut и Top Testing Influencer 2023 года), и она поделилась своими наблюдениями о том, как Tinder растет в дизайне и монетизации. Меня покорил подобный дизайн - когда он обусловлен небольшими изменениями в дизайне, основан на моделях роста и объясняется в таких практичных деталях.
Статья: https://adplist.substack.com/p/how-tinder-designs-product-and-why
Я слежу за Рози Хогмаскалл (бывшим руководителем отдела роста продуктов в Peanut и Top Testing Influencer 2023 года), и она поделилась своими наблюдениями о том, как Tinder растет в дизайне и монетизации. Меня покорил подобный дизайн - когда он обусловлен небольшими изменениями в дизайне, основан на моделях роста и объясняется в таких практичных деталях.
Статья: https://adplist.substack.com/p/how-tinder-designs-product-and-why
Попытка получения исходников ядра от производителей, и последующее хамство от них
В мире технологий существует множество компаний, которые производят устройства и программное обеспечение для них. Однако, в некоторых случаях, эти компании не соблюдают международные нормы работы с ПО, что приводит к нарушению принципа свободы и соблюдения договоренностей. Примером такой ситуации может служить случай с Honor 90, когда внаглую нарушают GPLv2.
Статья: https://habr.com/ru/articles/769892/
В мире технологий существует множество компаний, которые производят устройства и программное обеспечение для них. Однако, в некоторых случаях, эти компании не соблюдают международные нормы работы с ПО, что приводит к нарушению принципа свободы и соблюдения договоренностей. Примером такой ситуации может служить случай с Honor 90, когда внаглую нарушают GPLv2.
Статья: https://habr.com/ru/articles/769892/
Хабр
Попытка получения исходников ядра от производителей, и последующее хамство от них
В мире технологий существует множество компаний, которые производят устройства и программное обеспечение для них. Однако, в некоторых случаях, эти компании не соблюдают международные нормы работы с...
Анимированные иконки Lottie Framework
UseAnimations - это отзывчивая и многоплатформенная библиотека микроанимаций. Основанные на сетке 32px и редактируемых файлах Lottie.json, эти анимированные иконки придерживаются единого стиля, что делает их идеальным решением для дизайна продуктов.
Сайт: https://useanimations.com/index.html
UseAnimations - это отзывчивая и многоплатформенная библиотека микроанимаций. Основанные на сетке 32px и редактируемых файлах Lottie.json, эти анимированные иконки придерживаются единого стиля, что делает их идеальным решением для дизайна продуктов.
Сайт: https://useanimations.com/index.html
Useanimations
A micro-animations library
Animated icons in Lottie Framework and for immediate implementation to your apps or websites.
ERNIE — удивительный компьютер на военных технологиях
Что такое генератор случайных чисел? Несколько строчек кода, а в некоторых языках программирования — так и вовсе одна. Удивительно, но факт: в 1957 году генератор случайных чисел занимал небольшое помещение, поскольку именно для этой цели был построен специальный компьютер. И построен он был не просто так, а для решения важной практической задачи. Разрабатывал его, к слову, Томас Флауэрс — человек, создававший во время Второй мировой войны вычислительные машины, которые расшифровывали секретные сообщения немецкой армии.
Статья: https://habr.com/ru/companies/serverspace/articles/770092/
Что такое генератор случайных чисел? Несколько строчек кода, а в некоторых языках программирования — так и вовсе одна. Удивительно, но факт: в 1957 году генератор случайных чисел занимал небольшое помещение, поскольку именно для этой цели был построен специальный компьютер. И построен он был не просто так, а для решения важной практической задачи. Разрабатывал его, к слову, Томас Флауэрс — человек, создававший во время Второй мировой войны вычислительные машины, которые расшифровывали секретные сообщения немецкой армии.
Статья: https://habr.com/ru/companies/serverspace/articles/770092/
Интерактивное введение в шейдеры
Что, если я скажу вам, что для создания графики, как простой, например, градиентов, так и сложной, например, эффектов дождя, достаточно всего нескольких строк кода? Добро пожаловать в мир шейдеров!
Статья: https://www.mayerowitz.io/blog/a-journey-into-shaders
Что, если я скажу вам, что для создания графики, как простой, например, градиентов, так и сложной, например, эффектов дождя, достаточно всего нескольких строк кода? Добро пожаловать в мир шейдеров!
Статья: https://www.mayerowitz.io/blog/a-journey-into-shaders
www.mayerowitz.io
A Journey Into Shaders
Demystify shaders with this beginner-friendly guide. Explore fragment shaders, signed distance functions, and metaballs through interactive code examples. Learn how to create beautiful blob animations and effects using just a few lines of code.
👍2
Медленно движущиеся квазичастицы создали самый быстрый полупроводник в мире
Исследователи из Колумбийского университета (США) создали самый быстрый и эффективный полупроводник, работающий при комнатной температуре. Изначально материал был синтезирован для тестирования микроскопа высокого разрешения, и не предполагалось, что он будет проводить ток. Его можно вытягивать в тонкие атомарные листы и соединять с другими материалами. Один из элементов, входящих в состав материала, является чрезвычайно редким и дорогим, поэтому полупроводник вряд ли будет использоваться в потребительских устройствах в будущем.
Новость: https://interestingengineering.com/science/fastest-most-efficient-semiconductor
Исследователи из Колумбийского университета (США) создали самый быстрый и эффективный полупроводник, работающий при комнатной температуре. Изначально материал был синтезирован для тестирования микроскопа высокого разрешения, и не предполагалось, что он будет проводить ток. Его можно вытягивать в тонкие атомарные листы и соединять с другими материалами. Один из элементов, входящих в состав материала, является чрезвычайно редким и дорогим, поэтому полупроводник вряд ли будет использоваться в потребительских устройствах в будущем.
Новость: https://interestingengineering.com/science/fastest-most-efficient-semiconductor
Как создавался самый масштабный редизайн Slack
Время было подходящее. Мы добавили новые функции (huddles, холсты, списки и т.д.) в UI-систему пользовательского интерфейса, которая изначально была разработана исключительно для обмена сообщениями. Исследования показывали, что пользователи самых больших и активных команд с трудом справляются с основными задачами. Навигация нашего продукта достигла предела. Slack мог предложить больше, но найти это было сложно.
Требовалась новая парадигма, которая бы должным образом демонстрировала наши расширяющиеся предложения.
Однако редизайн обычно попадает в категорию "большие затраты, большие несоответствия, сомнительная польза", которую компании стараются избегать любой ценой. Если только что-то совсем не сломалось, не многие компании готовы вкладывать в это деньги.
Но вот как мы использовали возможности дизайна для реализации этой амбициозной затеи.
Статья: https://slack.design/articles/how-our-biggest-redesign-yet-came-to-be/
Время было подходящее. Мы добавили новые функции (huddles, холсты, списки и т.д.) в UI-систему пользовательского интерфейса, которая изначально была разработана исключительно для обмена сообщениями. Исследования показывали, что пользователи самых больших и активных команд с трудом справляются с основными задачами. Навигация нашего продукта достигла предела. Slack мог предложить больше, но найти это было сложно.
Требовалась новая парадигма, которая бы должным образом демонстрировала наши расширяющиеся предложения.
Однако редизайн обычно попадает в категорию "большие затраты, большие несоответствия, сомнительная польза", которую компании стараются избегать любой ценой. Если только что-то совсем не сломалось, не многие компании готовы вкладывать в это деньги.
Но вот как мы использовали возможности дизайна для реализации этой амбициозной затеи.
Статья: https://slack.design/articles/how-our-biggest-redesign-yet-came-to-be/
Использование абстракции для улучшения читаемости функций
Команда Google сравнивает две реализации и подчеркивает, что одна из них проще для понимания благодаря постоянному уровню абстракции, представления логики кода сверху вниз.
Заметка: https://testing.googleblog.com/2023/09/use-abstraction-to-improve-function.html
Команда Google сравнивает две реализации и подчеркивает, что одна из них проще для понимания благодаря постоянному уровню абстракции, представления логики кода сверху вниз.
Заметка: https://testing.googleblog.com/2023/09/use-abstraction-to-improve-function.html
Расширяя границы Discord: миллион с лишним пользователей на одном сервере
В этом посте мы расскажем о некоторых способах, с помощью которых за последние несколько лет удалось увеличить количество одновременных пользователей на отдельных серверах Discord с десятков тысяч до двух миллионов.
Статья: https://discord.com/blog/maxjourney-pushing-discords-limits-with-a-million-plus-online-users-in-a-single-server
В этом посте мы расскажем о некоторых способах, с помощью которых за последние несколько лет удалось увеличить количество одновременных пользователей на отдельных серверах Discord с десятков тысяч до двух миллионов.
Статья: https://discord.com/blog/maxjourney-pushing-discords-limits-with-a-million-plus-online-users-in-a-single-server
Регулировка громкости Bluetooth-наушников
Недавно я приобрел наушники Tozo T6. Они замечательные, и я их люблю, но при сопряжении, отключении или подключении они воспроизводят звук, который, на мой взгляд, слишком громкий. Я не смог исправить это, например, настроив эквалайзер на уменьшение нескольких децибел по всему диапазону. Я спросил производителя об этом по электронной почте, и они быстро ответили, что ничего не могут сделать, что вполне понятно - это, вероятно, не самая распространенная просьба. Но для меня это было слишком громко, чтобы продолжать пользоваться ими, поэтому я решил попытаться решить проблему самостоятельно.
Статья: https://blog.ornx.net/post/bluetooth-volume-fix/
Недавно я приобрел наушники Tozo T6. Они замечательные, и я их люблю, но при сопряжении, отключении или подключении они воспроизводят звук, который, на мой взгляд, слишком громкий. Я не смог исправить это, например, настроив эквалайзер на уменьшение нескольких децибел по всему диапазону. Я спросил производителя об этом по электронной почте, и они быстро ответили, что ничего не могут сделать, что вполне понятно - это, вероятно, не самая распространенная просьба. Но для меня это было слишком громко, чтобы продолжать пользоваться ими, поэтому я решил попытаться решить проблему самостоятельно.
Статья: https://blog.ornx.net/post/bluetooth-volume-fix/
System Design 101
В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений.
Статья: https://habr.com/ru/articles/770564/
В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений.
Статья: https://habr.com/ru/articles/770564/
Хабр
System Design 101
О сложных системах простыми словами. В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы...
10 уроков успешных стартапов, созданных одним человеком
Современное состояние технологического рынка, появление искусственного интеллекта и инфляционное давление заставили многих инженеров-программистов заняться предпринимательством. Растет ниша штатных инженеров-программистов, занимающихся побочным бизнесом (как программным, так и не программным). Существуют также инди-хакеры - люди, которые занимаются индивидуальным бизнесом на собственные средства.
Побочные предприятия и "инди-хакерство" не являются чем-то новым. Люди занимаются этим уже несколько десятилетий.
Я пообщался с инди-хакерами и инженерами-программистами, которые успешно занимаются побочным бизнесом (от 20 тыс. долл. США в месяц), чтобы понять, чему я могу научиться.
Статья: https://engineercodex.substack.com/p/10-lessons-from-software-side-ventures
Современное состояние технологического рынка, появление искусственного интеллекта и инфляционное давление заставили многих инженеров-программистов заняться предпринимательством. Растет ниша штатных инженеров-программистов, занимающихся побочным бизнесом (как программным, так и не программным). Существуют также инди-хакеры - люди, которые занимаются индивидуальным бизнесом на собственные средства.
Побочные предприятия и "инди-хакерство" не являются чем-то новым. Люди занимаются этим уже несколько десятилетий.
Я пообщался с инди-хакерами и инженерами-программистами, которые успешно занимаются побочным бизнесом (от 20 тыс. долл. США в месяц), чтобы понять, чему я могу научиться.
Статья: https://engineercodex.substack.com/p/10-lessons-from-software-side-ventures
Engineer’s Codex
10 lessons from successful one-person startups
I interviewed 7 indie hackers and full-time SWEs with side ventures for their insights.