Pull to refresh
4
0
Send message

Прогнозируем солнечные затмения с помощью ~100 строк кода Python

Reading time6 min
Views2.2K

8 апреля 2024 года автор статьи, основатель и СЕО компании Modal Labs, Эрик Бернхардссон планировал посмотреть свое первое полное солнечное затмение. За день до этого ему пришла в голову идея — что, если попробовать рассчитать периодичность этого явления в прошлом и будущем, используя Python? Несмотря на незначительные сложности с системой координат, автору удалось создать работоспособное решение всего за несколько часов.

Под катом читайте, как с помощью ~100 строк кода удалось вычислить и проследить путь каждого солнечного затмения в период с 2020 по 2030 год.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 12: ↑12 and ↓0+14
Comments1

Оптимизируем A/B-тесты: единый шаблон и DIY-инструментарий для аналитиков

Level of difficultyEasy
Reading time16 min
Views3.4K

Представьте ситуацию. Приходит Product Owner и говорит: «Давайте сделаем новый дизайн страницы сайта». Аналитик берётся за задачу — проводит A/B-тест. Такая же задача случается в соседней команде, в сопоставимом по сложности продукте, — но если в первом случае тест занимал пару часов, то во втором ждать приходится несколько дней. Чем больше команд и аналитиков, тем выше риск разрозненности. 

Унификация процессов помогает минимизировать этот риск, только как к ней лучше подступиться? Подготовить чеклисты, шаблоны, документацию, скрипты..? В нашем случае понадобилось всё это, плюс самодельный инструмент, который автоматизирует статистический анализ результатов A/B-тестов

Под катом пошагово описываем, как мы унифицировали процессы в нашем A/B-тестировании, и что получили на выходе.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments2

Как развивать направление исследований и по каким критериям оценивать их успешность: кейс МойОфис

Level of difficultyMedium
Reading time9 min
Views1.5K

К счастью, сегодня многие ИТ-компании знают, насколько важно развивать направление исследований. UX-исследования помогают понять ожидания пользователей, а значит, позволяют создавать продукты, максимально удовлетворяющие их потребности. Благодаря UX-исследованиям можно выявить проблемы пользовательского опыта на ранних этапах разработки и внести необходимые изменения до запуска. Поэтому необходимость этого процесса вопросов ни у кого не вызывает.

Однако в процессе развития этого направления компании сталкиваются с множеством сложностей: начиная от того, где искать респондентов, заканчивая вопросами эффективного хранения результатов исследований. Все это сложные вызовы, которые зависят в том числе и от типа продуктов. Случается, что без должной поддержки UX-исследования не получают своего развития и решения принимаются экспертно, как это часто бывает в заказной разработке.

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

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments4

Пишем простые расширения VS Code для автоматизации задач командной строки

Reading time8 min
Views7.9K

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

Для написания расширений используется Typescript, который достаточно просто освоить. Однако существенным препятствием является то, что в документации часто нет ответов на вопросы, которые возникают при реальной разработке.

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

Читать далее
Total votes 18: ↑17 and ↓1+17
Comments11

Укрощение имен. Как нейминг помогает оптимизировать код

Reading time12 min
Views9.5K

Что такое имя? Имя — это ярлык, дескриптор, указатель в вашей памяти. Это краткое изложение сложной идеи. Оно позволяет ссылаться на «экономику» или «догфудинг» в середине предложения, избегая развернутого на три абзаца объяснения термина.

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

Под катом разработчик Джозеф Гласс* делится правилами эффективного нейминга и разбирает их на практических примерах.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 45: ↑38 and ↓7+32
Comments6

Пять лучших технических советов, которые я украла у гуманитариев

Reading time11 min
Views8.2K

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

Марианна Беллотти*, тимлид и автор книги «Kill It with Fire», в стремлении стать хорошим руководителем начала все больше размышлять над советами, которые когда‑то помогли ей вырасти в профессии. И поймала себя на мысли: зачастую лучшие из них исходили от людей без опыта работы с программным обеспечением.

Вот пять ее любимых советов.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 45: ↑33 and ↓12+24
Comments7

Что читать техлиду: 7 увлекательных книг

Reading time6 min
Views28K

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

Немет, Луц, Лав, Танненбаум, Страуструп, Олифер, Лукас — вот лишь некоторые известные авторы, о которых мы сегодня не будем говорить. Надеемся, что раз вы стали лидером технической команды, то с фундаментальной литературой в своей области знаний знакомы не понаслышке.

Под катом рекомендуем 7 изданий о soft-skills, методологиях, управлении командами и проектами.

Читать далее
Total votes 57: ↑55 and ↓2+60
Comments16

Как я использовал нейросеть для категоризации трехмерных тел

Reading time13 min
Views7.2K

Значимость темы машинного обучения (machine learning) сегодня очевидна. Это огромный домен знаний в Computer Science, которому в России, в частности, посвящают конференции уровня недавней AI Journey. Существует множество способов применения ML в различных областях, среди самых исследованных: распознавание изображений/видео/голоса, процессинг текста. Однако есть и более любопытные задачи, с которыми справляется ML. Например, обучение с подкреплением, что позволяет ИИ играть в игры типа Го, идентификация людей по фотографии, распознавание жестов, движений и поз человека.

Одной из не совсем обычных областей применения машинного обучения можно назвать работу с трехмерными телами. Такая технология активно исследуется за рубежом, а вариантов использования у нее может быть масса. Простой пример: дрон сканирует помещение, в котором находится множество тел. С помощью ML дрон может классифицировать объекты окружения, найти ошибки в пространственном размещении этих тел или же построить 3D-интерьер комнаты со ссылками на онлайн-магазин, где эти предметы можно купить.

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

Читать далее
Total votes 53: ↑52 and ↓1+55
Comments3

День «Mother of all demo»: отмечаем годовщину главного ИТ-события

Reading time6 min
Views3.7K

9 декабря 1968 года — день, который определил развитие компьютерной техники и информационных систем на десятилетия вперед. Тогда, на осенней конференции Joint Computer, Даг Энгельбарт в ходе полуторачасовой демонстрации представил результат трудов исследовательского центра по усилению способностей человека. Этот результат — среда для совместной работы oN-Line System (NLS), для которой были разработаны программная и аппаратная часть, а также нетривиальный способ демонстрации системы.

Оконный режим, командная строка, гипертекст, навигация, видеоконференцсвязь, редактирование текста, версионирование и даже совместная работа… Ах да, и конечно же, мышка: многие почему-то делают акцент исключительно на этой детали, скромно характеризуя дату как «день рождения компьютерной мыши».

Итак, сегодня «большому демо» исполнилось 54 года. И под катом мы рассмотрим его довольно пристально. Дело в том, что недавно были опубликованы ремастеры (1, 2, 3) старой записи, и теперь вместо размытого фона рядом с Дагом Энгельбартом мы можем видеть интерфейс NLS во всей его красе.

Этот пост — знак признательности всем тем людям, которые сделали это демо возможным.

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments7

Что читать разработчику C++

Reading time6 min
Views28K

В этой подборке — не только классические рекомендации книг для C++ программистов. Обычно советуют издания про паттерны, развитие стандарта или успехи большой компании. Но за всем этим изобилием «экспертных советов» и best practices теряется одна простая мысль: язык программирования — это средство выражения мысли от одного разработчика другому, а также средство описания пользовательского API в самом широком смысле.

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

Первые 5 книг этой подборки — в меньшей степени про технику, в большей степени об осознанности деятельности C++ программистов любого уровня. Остальные — «золотой фонд» классической литературы для C++ разработчиков.

Читать далее
Total votes 95: ↑85 and ↓10+76
Comments16

Information

Rating
Does not participate
Registered
Activity

Specialization

Customer Service Manager, Customer Service Director