Как стать автором
Обновить
18
0
Иван Старостин @IVNSTN

EAccessViolation

Отправить сообщение

Самопаркующийся авто за 500 строк кода

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров9.9K



TLDR


В этой статье мы научим авто самостоятельно парковаться с помощью генетического алгоритма.


Мы создадим первое поколение авто с произвольными геномами, которое будет вести себя примерно так:





Примерно на сороковом поколении авто начнут понимать, что такое авто-парковка, и начнут приближаться к парковочному месту:




Читать дальше →
Всего голосов 42: ↑42 и ↓0+60
Комментарии20

Индексы в PostgreSQL — 1

Время на прочтение17 мин
Количество просмотров414K

Предисловие


В этой серии статей речь пойдет об индексах в PostgreSQL.

Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

За скобками обсуждения останутся вопросы разработки новых типов индексов. Это требует знания языка Си и относится скорее к компетенции системного программиста, а не прикладного разработчика. По этой же причине мы практически не будем рассматривать программные интерфейсы, а остановимся только на том, что имеет значение для использования уже готовых к употреблению индексов.

В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.
Читать дальше →
Всего голосов 104: ↑103 и ↓1+102
Комментарии59

Последнее лето Марса

Время на прочтение7 мин
Количество просмотров11K

Как известно, наше Солнце, будучи типичной звездой Главной Последовательности, через несколько миллиардов лет превратится из жёлтого карлика в красный гигант. В результате оно станет более разреженным, зато поглотит Меркурий, Венеру и Землю, а через некоторое время — и Марс. Дальше нужны иллюстрации, поэтому остальную часть статьи прячу под кат.

Читать далее
Всего голосов 46: ↑42 и ↓4+59
Комментарии40

Некропланетология: о попытках спектрального анализа сгорающих планет

Время на прочтение8 мин
Количество просмотров4.6K

Статья о приливном захвате, опубликованная мной две недели назад, оказалась очень интересна сообществу и получила высокую оценку: по состоянию на 26 ноября имела +69. Эта тема явно требует продолжения, тем более, что я уже затрагивал ранее тему близкого контакта звезд и экзопланет в статье «Что варится в пекулярных звездах» от 5 июня.

В самой завязке «Соляриса» Станислав Лем рассказывает об орбитальных свойствах той планеты, на которой обитал разумный океан — показавшихся землянам парадоксальными. Планета Соляриса обращалась одновременно вокруг двух звезд, красной и голубой. По сюжету романа считалось, что никакая жизнь на подобных планетах зародиться не может, поскольку орбита априори окажется нестабильной, и планета будет то и дело выскальзывать из зоны обитаемости, чрезмерно приближаясь к звезде. Тем не менее, орбита Соляриса оставалась на безопасном отдалении от звезды – очевидно, потому, что разумный океан сам ее корректировал.

В реальности падение планет на звезду и постепенная дезинтеграция в хромосфере оказывается распространенным явлением, но систематически исследовать его начали буквально в последние годы. Дело в том, что при сгорании планеты в обычной звезде или в белом карлике можно произвести спектральный анализ ее минералов. Кроме того, приливные силы могут разорвать планету, оставив на ее месте компактный рой твердых фрагментов – и в результате также могут образовываться необычные небесные тела, отсутствующие в Солнечной системе. Это новое научное направление, условно именуемое «некропланетологией», зародилось в «Центре изучения экзопланет и их обитаемости» при университете Уорика в британском Ковентри, при участии американских специалистов из Колорадо и Калифорнии – и сейчас только начинает разрабатываться.

Читать далее
Всего голосов 27: ↑27 и ↓0+27
Комментарии6

Три недели кодирования экономят два дня проектирования

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров24K

Когда я был юн, я ненавидел архитектурное проектирование и документацию, и считал единым источником правды код. Если вы знакомы с мемом в заголовке статьи, то конечно же знаете, к чему это привело меня в конечном счете.
Эта история про то, как я пришел к необходимости процесса обязательного технического анализа по задачам для программистов.

Писать постановку, но чуть-чуть
Всего голосов 69: ↑67 и ↓2+80
Комментарии73

Дизайн экосистем

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров1.2K

В 2024 году на рынке существует довольно большое количество экосистем цифровых продуктов: как для B2C-сегмента, так и для B2B. И если просто в поисковике вбить «как создать экосистему», вы получите кучу статей от аналитиков, продактов, бизнеса. Однако, если попробовать сформулировать запрос с конкретикой по дизайну (например, «как создать дизайн для экосистемы продуктов»), мы получаем классную выдачу, в которой экосистемой называют дизайн-систему. И это ужасная подмена понятий, так как дизайн-система является всего лишь одним (хоть и очень значимым) из ингредиентов вкуснейшего экосистемного дизайн-борща.

Что же входит в этот борщ?

Узнать рецепт
Всего голосов 6: ↑5 и ↓1+4
Комментарии1

Конрад Цузе — программист, обогнавший время

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров46K


Сегодня исполняется 114 лет со дня рождения Конрада Цузе, пионера создания вычислительной техники, человека, которому сама судьба пыталась помешать двигать прогресс, но не помешала создать первый язык программирования высокого уровня, один из первых компьютеров и первую книгу по цифровой физике.
Читать дальше →
Всего голосов 90: ↑86 и ↓4+108
Комментарии29

Треугольник орг-структур компании. Часть 2 Примеры орг-структуры проектного офиса

Время на прочтение15 мин
Количество просмотров3.1K

Часто противопоставляют проектную и процессную деятельность, хотя встречается «процессный подход при управлении проектами» и наоборот (путаница связана с неточностью термина «процессный подход»). «Процесс vs Проект» см. [Process24]. Проектная деятельность - как набор типовых процессов рассмотрена (формализована) во многих проектных Best Practice, причем значительно подробнее и объемнее чем «процессный подход»: управление бизнес-процессами, Business Process Management (BPM CBOK). Про проектное управление (проектный подход) написаны «тонны» книг и придумана масса стандартов: PMBOK, ISO 21500, PRINCE2 и др.

Здесь мы рассмотрим только различные подходы к организации организационной структуры организации при реализации в ней проектов (проектная деятельность организации). Ранее в Треугольник орг-структур компании. Часть 1 были рассмотрены базовые типы орг-структур: функциональная – процессная – матричная. Добавим конкретики и практики и приведём примеры реализации орг-структуры непроектной компании и ее Офиса управления проектами (Project Management Office, PMO), как виртуального (неформального), так и выделенного в орг-штатную единицу. В проектной компании типовые проекты реализуются обычно как регулярный процесс.

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

Работа по методу: как методологи облегчают IT-разработку и ускоряют вывод новых продуктов на рынок

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.2K

Не так давно мы Газпромбанке пришли к очевидному выводу: можно создать сколько угодно отличных продуктовых команд с прекрасными разработчиками, но когда над тобой нависает такая махина, как банк, со всей его безопасностью, регуляторикой и прочими «выкрутасами», с которыми придется иметь дело, глаза начинают стекленеть, руки опускаться, а TTM отрастать. 

Всем привет, меня зовут Кирилл Гилевич, и я хочу поделиться историей о том, как в очередной попытке отстать от разработчиков мы создали Центр методологии IT-производства, которым я и руковожу. Хочу поделиться тем, как мы оптимизируем взаимодействие между командами, какие процессы для этого придумали и зачем вообще нужны методологи. 

Читать далее
Всего голосов 9: ↑9 и ↓0+10
Комментарии1

Ускорение роутера в Django в 51 раз

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров13K

История началась с разбора использования ресурсов приложением, которое занимается проксированием. Обнаружили, что довольно много времени оно тратит на выбор маршрута (роута), и решили ускорить этот процесс. Описанная в статье оптимизация не требует каких-то особых вложений, усилий или условий, поэтому приведенный код можно забрать к себе и использовать без каких-либо чрезмерных вмешательств.

Читать далее
Всего голосов 54: ↑53 и ↓1+61
Комментарии17

«Я стал тимлидом и боюсь». Что почитать и зачем

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров29K
Стресс, связанный с переходом на менеджерскую роль, способен пошатнуть любые, даже самые крепкие нервы. А если ваше решение стать руководителем желанное и осознанное, то вы легко можете загнать себя в ловушку из двух стен: тревожности и перфекционизма.

Меня зовут Александр Шиндин, я — технический менеджер мобильных продуктов Kaspersky Password Manager и Kaspersky Who Calls. Я так сильно хотел проявить себя в роли руководителя, что внутренних обучающих курсов, которые дает в таких случаях компания, мне не хватало, — и лучшим дополнением к теории стали книги. Они ускорили мое погружение в мир менеджмента, помогли быть готовым к еще большему числу нестандартных ситуаций и придали уверенности в принимаемых решениях.

В этой статье поделюсь своим личным топом книг, которые оказались в свое время полезны мне и, я уверен, будут полезны и вам как будущим или начинающим техническим менеджерам.


Читать дальше →
Всего голосов 44: ↑43 и ↓1+52
Комментарии17

Как измерять эффективность разработчиков, и почему метод McKinsey может убить культуру разработки в компании

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров5.6K

Когда люди, не знакомые с разработкой и процессами в ней предлагают свои фреймворки для измерения или улучшения эффективности, ничего хорошего из этого не выходит. Поговорим о том, почему ничего хорошего не может выйти и из метода McKinsey, которые решили, что придумали универсальный подход, и воодушевлены продвигать его в массы. А еще поговорим о том, как и зачем на самом деле стоит подходить к оценке продуктивности разработчиков, чтобы не сломать уже работающие механизмы. 

Читать далее
Всего голосов 10: ↑9 и ↓1+9
Комментарии8

SteamPunk мотоцикл. Эхо из старого мира

Время на прочтение11 мин
Количество просмотров13K

Зачем создавать паровой мотоцикл?

Весь мир сейчас пытается продвигать технику в будущее. Ищут всё более экономичные, мощные и удобные двигатели. Мне же наоборот, захотелось заглянуть в прошлое и оживить забытые технологии. Посмотреть, как оно было и вообще начиналось. Окунуться в эпоху индустриального взрыва. И создать настоящую паровую машину.  Техника прошлого очень сильно отличается от всего что мы сейчас себе представляем. Это ощущение и понимание трудно передать, но я постараюсь.

Читать далее
Всего голосов 110: ↑108 и ↓2+132
Комментарии71

Внедряем DevSecOps в процесс разработки. Часть 2. Обзор инструментов, Commit-time Checks

Время на прочтение8 мин
Количество просмотров2.9K

Привет! На связи Олег Казаков из Spectr

Мы продолжаем публикацию цикла статей, где делимся опытом и наработками и рассказываем, из чего состоит DevSecOps и как его внедрить в процесс разработки. 

В предыдущей части статьи я рассказал о том, что представляет собой процесс DevSecOps в целом, из каких этапов он состоит, и подробно остановился на первом этапе — Pre-commit Checks. Сегодня пришло время для обзора стадии Commit-time Checks и ее инструментов. Поговорим о каждом инструменте отдельно и расскажем, на чем мы все-таки остановили свой выбор.

Узнать больше о DevSecOps
Всего голосов 4: ↑4 и ↓0+6
Комментарии3

Загадочное дело о пропавшей точке

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров19K

Примерно семь лет назад мы работали над проектом по созданию решения, которое должно было позволить клиенту консолидировать все его шаблоны документов в единую систему; это что-то типа системы контроля версий для документов, которые сотрудники клиента рассылали своим заказчикам.

В то время клиент пользовался в документах шаблонами Microsoft Word с замещающим текстом. Каждый раз, когда сотруднику клиента необходимо было отправить документ по электронной почте или распечатать документ для отправки почтовой службой, он заменял весь замещающий текст документа (имя, фамилия и так далее).

В компании на тот момент было множество шаблонов с устаревшими версиями. В некоторых шаблонах использовались устаревшие условия договоров, в других — старый логотип компании или неправильный шрифт и так далее. Системой стало невозможно управлять, и клиент попросил нас найти решение.
Читать дальше →
Всего голосов 85: ↑83 и ↓2+105
Комментарии32

Как поправить 3 проблемы MVx архитектур

Время на прочтение9 мин
Количество просмотров2.6K
Итак, в прошлый раз я описал три проблемы, которыми, на мой взгляд, страдают все MVx и даже некоторые не MVx архитектуры. Если коротко, то это:

  • проблема остатка — при делении фичи на заявленные компоненты архитектуры остаётся либо «неделимая» часть фичи, либо лишние компоненты архитектуры;

    image
  • проблема масштабирования — при расширении фичи компоненты архитектуры начинают раздуваться, что усложняет дальнейшую поддержку;

    image
  • и проблема разрывов логики, когда из-за взаимодействия с UI логика разрывается на части, что тоже не помогает нам делать систему более цельной, предсказуемой и тестируемой.

    image

Описание проблем это, конечно, хорошо, но вопрос в том, как их решать? Об этом я бы и хотел поразмышлять в этом тексте. Спойлер: когда я нашел решение проблемы разрывов, я понял, что оно может решить и все остальные проблемы.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+17
Комментарии1

Куда делись достойные PM на российском IT-рынке?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров17K

Я пришла в проектный менеджмент, именно в продуктовую разработку, когда это ещё не было мейнстримом. А в данный момент изумляюсь тому, во что превратилась отрасль.

Куда делись мои старые коллеги? Умные ребята, горящие своим делом, которые и меня учили, и прекрасно справлялись со своими проектами. Куда делись люди, на которых я хотела быть похожей в профессиональном плане? У которых можно спросить и проф.совет, и обменяться опытом? И почему сейчас вокруг нет больше таких коллег? Почему более опытные по возрасту и стажу коллеги совершают ошибки незаинтересованных случайных новичков?

Постоянно всплывают такие вопросы. За время работы я сменила приличное количество компаний — все крупные, с большими разработческими и ИТ‑отделами. И начинала я работать в подобных же компаниях. Вот только качество проектного менеджмента стерлось со временем. И работать в такой среде достаточно неприятно.

Мало того, что коллеги не стараются делать хорошо. Они просто не стараются вообще что-то делать

Какие перлы мочат современные ПМ и к чему это приведет, по моему мнению — далее в этой статье.

Читать далее
Всего голосов 49: ↑37 и ↓12+38
Комментарии91

Тесты на дженериках: пишем кода в 3 раза меньше. Параметризация AssertJ и сравнение Json через объекты

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.9K

Продолжаю серию публикаций про наши Java-онлайн курсы. Предыдущие посты

Контроллеры на дженериках: пишем кода в 3 раза меньше
Миграция Java Spring Boot на Kotlin
Работа с документами в Java

Сразу предупрежу: точно так же, как в контроллерах на дженериках сами контроллеры не параметризируются, здесь мы НЕ БУДЕМ параметризировать сами классы тестов. Поэтому не спешите писать комментарии, не прочитав статьи, что это «Bad practice». По поводу усложнения кода заранее отвечу так же, как и в комментариях к статье про контроллеры — код тестов и их написание становятся проще, за счет усложнения инструментов (собственно на этом и строится разработка фреймворков и ООП). Можно считать приведенные здесь подходы слоем абстракции, праметризирующий подход популярной библиотеки AssertJ к сравнению объектов и расширяющий его на сравнение json объектов.

Кому интересно:

Добро пожаловать
Всего голосов 8: ↑7 и ↓1+8
Комментарии3

Выбираем инструмент проектирования интерфейсов для аналитика

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров11K

Всем привет! Меня зовут Бургомистренко Кристина и я — системный аналитик в компании заказной разработки Rubius. В этой статье я рассказываю про свой опыт проектирования и сравниваю несколько популярных инструментов для создания вайрфреймов, которые может использовать в своей работе бизнес/cистемный аналитик.

Читать далее
Всего голосов 13: ↑13 и ↓0+14
Комментарии26

database/sql: плохой, хороший, злой

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров7.8K

Многие Golang-разработчики  пробовали работать с БД в Go, и у каждого — свои боли. В этой статье разберём библиотеку database/sql как безотносительно конкретной СУБД, так и применительно к YDB. Рассмотрим трудности эксплуатации при использовании драйвера database/sql на проде. А также рассмотрим, что мы делали для решения проблем.

Меня зовут Алексей Мясников, я — руководитель Application Team в команде разработки YDB. Я очень люблю git blame за то, что с его помощью можно проследить, как развивалась инженерная мысль с течением времени и немножко побыть в шкуре разработчика той или иной классной штуки. В статье я расскажу, как реализовать драйвер database/sql для распределённой базы данных, какие проблемы при этом придётся преодолеть и как менялся подход с выходом новых версий Go. 

Читать далее
Всего голосов 40: ↑40 и ↓0+54
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Таганрог, Ростовская обл., Россия
Зарегистрирован
Активность