Pull to refresh
3
0
Send message

Собираем DOCX из ADOC

Level of difficultyMedium
Reading time5 min
Views2K

Статья про то, как можно собрать docx-файл из git(adoc)-дерева.

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

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

5 диаграмм, необходимых для документирования архитектуры решений

Reading time8 min
Views81K

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

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

Как я психанул и написал свой менеджер закладок

Level of difficultyEasy
Reading time2 min
Views9.8K

Я менеджер менеджеров, отвечаю за разные команды с разными фокусами. У каждой команды свои проекты. В каждом проекте есть по несколько Миро-досок, гугл-доков, доков в конфлюенсе, эпик в джире и еще горка ВАЖНЫХ ссылок!

Все это богатство надо как-то организовать и перестать, наконец, дергать в слаке коллег с вопросом: "А напомни, плз, ссылку на...".

Читать далее
Total votes 18: ↑18 and ↓0+21
Comments37

5 признаков, что профессия аналитика вам не подходит

Level of difficultyEasy
Reading time6 min
Views15K

На эту статью меня вдохновил мем о «лёгкой» работе айтишников, которые, мол, просто включают компьютер и получают за это по 300к в секунду. В комментариях к нему кто-то написал: «Ребят, недостаточно просто работать, надо ещё и любить свою работу». Вот тут я и задумалась: а можно ли обойтись без любви? 

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

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

Если вы НЕ обнаружите у себя эти 5 признаков, приходите на курс «Аналитик данных» в Практикум, я там наставник. Если же всё это про вас — подумайте дважды.

Читать далее
Total votes 20: ↑14 and ↓6+11
Comments9

Как мы делаем Автограф — «русское Visio»

Reading time6 min
Views22K
image
Самая первая инженерная версия редактора, не самая удобная для конечных пользователей

В России MS Visio используется для того, чтобы нарисовать планы помещений, вентиляции, пожарной сигнализации, рисовать всякие схемы работы — и так далее. Потом в какой-то момент оно пропало, а желание делать удобные схемы осталось.

Мы начинали в 1991 году с софта для автоматизации проектирования электросхем — когда вы рисовали одну схему, а по ней синтезировались недостающие участки, вроде расчёта типа и количества реле, нужного сечения кабеля и так далее. К 2010 году дорога приключений привела нас к тому, что мы начали делать уже схемы для объектов энергетики.

Сейчас мы замещаем Visio в России и поддерживаем VSD/VSDX-форматы в обе стороны.

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

Сильно упрощая, каждая схема и в нашем движке, и в движке Visio состоит из векторных элементов. Пользователь перемещает окно с полем зрения по схеме, и для этого места идёт рендер — рисуются только те элементы, которые видно. Для каждого масштаба делается пререндер этого вектора с разной детализацией, то есть пользователь каждый момент времени работает со всего одной группой SVG-элементов. Всё остальное только кажется схемой из деталей, на самом деле — это единая отрендеренная большая картинка.
Читать дальше →
Total votes 44: ↑43 and ↓1+49
Comments69

Декомпозиция монолитной системы с использованием Strangler-паттерна

Level of difficultyMedium
Reading time16 min
Views6.4K

Привет! Меня зовут Дима, я архитектор в Купере. Сегодня расскажу о шаблоне проектирования Strangler, который мы использовали для поэтапного выноса бизнес-логики из монолитной системы в отдельный сервис. 

Сначала обратимся к первоисточнику, а затем перейдем к практическим моментам, с которыми столкнулись в процессе работы. Поехали!

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

Умное хранение или как мы снизили рост БД Oracle в полтора раза

Level of difficultyMedium
Reading time8 min
Views3.1K

Сегодня предлагаем обсудить сжатие данных в Oracle.
 
Ситуация: один наш крупный клиент в сфере телекома стремится нарастить абонентскую базу, поощряет потребление услуг и рост трафика. Это позволяет развиваться компании в целом и каждой её системе в отдельности, включая нашу систему взаиморасчётов с партнёрами — Partner Relationships Managment.

Проблема: регулярный прирост информации в БД на 0.6 TБ в месяц превращается в 7.2 TБ в год. При этом востребованной для изменений является информация только за последние два-три месяца. Остальные данные накапливаются и хранятся для отчётности. При таком подходе база разрастается очень быстро, а каждый SSD системы хранения данных становится на вес золота. К тому же необходимо поддерживать согласованность резервной и тестовой БД. 

Есть два выхода: закидывать в базы, как «в топку», бесконечное количество дисков, либо оптимизировать хранение информации. Мы выбрали второе.

В этой статье главный инженер-программист по бизнес-системам Кирилл Солдатов расскажет, что конкретно сделали в Nexign. Информация будет полезна всем, кто как и мы сталкивается с необходимостью управления большими массивами в БД Oracle.

Читать далее
Total votes 8: ↑5 and ↓3+7
Comments18

Erlang — классный функциональный язык (или как мы сели в лужу)

Level of difficultyEasy
Reading time8 min
Views6.5K

Однажды я устроился в проект на Erlang. Вообще мой профиль тогда был в основном Java и немного BigData. Но по результатам собеседования договорились что я попробую написать небольшое тестовое задание — и сам пойму нравится ли мне язык — и ребята оценят, гожусь ли я им. Ну и за выходные справился — язык непривычный но не очень сложный — и интересный, с необычными «фишками». Команде же, куда меня взяли, оказался удобен мой опыт в бигдате и амазоне.

Сейчас я расскажу на паре примеров про язык — он действительно по‑своему классный (если вам нравится функциональное программирование — это для вас) — и про то как, однако, он оказался неудачным выбором для проекта (данного‑конкретного).

Статья для широкого круга читателей, не знакомых с языком — знатоки же Эрланга в частности и ФП вообще возможно найдут неточности в моём повествовании — дело было лет 6 назад — так что можете смело поправлять и даже ругать при необходимости:)

Вперёд - кто смелый :)
Total votes 22: ↑18 and ↓4+21
Comments38

Почему важно оптимизировать формат данных

Level of difficultyMedium
Reading time21 min
Views16K
image

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

Алгоритмы — важнейшая часть программы: замена «горячего» алгоритма O(n) менее сложным, например, O(log n), обеспечивает практически произвольное увеличение производительности. Однако существенно влияет на производительность и структурированность данных: программы выполняются на физических машинах с физическими свойствами, например, разными задержками чтения/записи данных в кэши, на диски или в ОЗУ. После оптимизации алгоритмов стоит изучить эти свойства, чтобы достичь наибольшей производительности. Оптимизированный формат данных учитывает используемые алгоритмы и паттерны доступа при выборе того, как сохранять структуру данных на физическом носителе. Благодаря этому можно увеличить скорость алгоритмов в несколько раз. В этом посте мы покажем пример, в котором нам удалось достичь четырёхкратного повышения скорости чтения простым изменением формата данных в соответствии с паттерном доступа.

Сравнение хранилищ данных AoS и SoA


Современное оборудование, и, в частности CPU, спроектировано так, чтобы обрабатывать данные определённым образом. Расположение данных в памяти влияет на то, насколько эффективно программа сможет использовать кэш CPU, как часто она сталкивается с промахами кэша и насколько оптимально она сможет задействовать векторные команды (SIMD). Даже при использовании оптимальных алгоритмов выбор неподходящего формата данных может приводить к частым перезагрузкам кэша, простаивающим конвейерам и чрезвычайно большому объёму передач содержимого памяти; всё это снижает производительность.
Читать дальше →
Total votes 43: ↑43 and ↓0+59
Comments2

Как нарисовать квадрат 3 × 3 см на веб-странице*

Reading time5 min
Views28K

* Не привлекая внимания санитаров

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

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

Что ж, вызов был брошен. И я поставил себе задачу (вы же тоже сами ставите себе задачи?) — нарисовать красивый красный квадратик размером 3 × 3 см. Тому, что у меня в итоге получилось, и посвящён мой необычный рассказ. 

Читать далее
Total votes 117: ↑108 and ↓9+118
Comments50

Еще один язык разметки для аналитиков

Level of difficultyEasy
Reading time12 min
Views7.5K

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

В этой статье я буду рассуждать о графических артефактах в технической документации. О том, какие существуют визуальные языки, о подходе «docs as code», задачах которые нужно решать применительно к графике в рамках этого подхода и инструментах которые пробовал использовать. Также рассмотрю возможные, на мой взгляд, улучшения процесса работы с графическими артефактами и расскажу о попытке спроектировать и реализовать свой собственный язык разметки.

Читать далее
Total votes 5: ↑5 and ↓0+8
Comments6

Как я управляю временем, чтобы все успевать: адская смесь Time Blocking, Pomodoro и дофаминовых циклов

Level of difficultyEasy
Reading time7 min
Views51K

Привет! Я Женя, CPO в корпоративном мессенджере Compass. Было бы круто управлять временем, как в старенькой TimeShift, в которой я зависал в 2008 году, но нет. Зато можно поностальгировать, глядя на скриншоты.

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

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

Поэтому мне пришлось подтянуть теорию и найти свое удобное решение.

Читать далее
Total votes 47: ↑42 and ↓5+45
Comments46

История Git: на этот раз не так весело

Reading time23 min
Views31K

Линус Торвальдс как-то написал в своей книге, что создавал Linux для развлечения, но в итоге это привело к революции. Git, его второе творение, также оказалось «случайной революцией» — и сегодня это стандартный инструмент для людей в ИТ. Однако процесс его создания был уже не таким «весёлым» — по крайней мере, для самого Линуса. 

Читать далее
Total votes 99: ↑98 and ↓1+114
Comments56

Зарубежная банковская карта в 2024: где оформить онлайн, сколько стоит, как пополнять?

Level of difficultyEasy
Reading time5 min
Views68K

Привет, Хабр! Меня зовут Мила, когда‑то я работала аналитиком в банках, а нынче делаю авторские туры в Африку. По работе мне постоянно приходится отправлять деньги за границу, оплачивать отели, трансферы, билеты онлайн и оффлайн.

Хочу поделиться опытом оформления одной конкретной карты банка Казахстана. Данный банк, опасаясь санкций, публично отрицает возможность открытия счетов для нерезидентов ОНЛАЙН. Поэтому помогающие конторы стараются не ссылаться на реальное название банка, а заменять его на псевдонимы: «зелёный банк», «свободный банк», «банк воландеморт». Так что тссс! мы все понимаем, что король голый, но вслух ни‑ни.

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

Итак, поехали.

Читать далее
Total votes 63: ↑49 and ↓14+44
Comments116

Чем роль продуктового дизайнера отличается от роли UX/UI-дизайнера. Показываю на практике

Level of difficultyEasy
Reading time9 min
Views5.9K

Часто сталкиваюсь с тем, что люди смешивают понятия продуктового дизайна и UX/UI-дизайна. Это делают и работодатели, и работники, и даже авторы образовательных программ. В этой статье я хочу рассказать, в чём же заключается роль дизайнера продукта и чем она отличается от роли дизайнера интерфейса. И как это проявляется на практике.

Читать далее
Total votes 21: ↑20 and ↓1+24
Comments15

«Мы вступаем на неизведанную территорию математики» — Теренс Тао, математик, обладатель Филдсовской премии

Reading time7 min
Views38K

У Теренса Тао, одного из величайших из ныне живущих математиков, есть свой взгляд на искусственный интеллект.

Перевод интервью из издания The Atlantic

Читать далее
Total votes 33: ↑28 and ↓5+27
Comments14

Писать код для компьютеров сложно, ещё сложнее — писать код для людей

Level of difficultyMedium
Reading time7 min
Views14K

Писать код для компьютера и так достаточно сложно: вы берёте что-то большое и неопределённое, какую-нибудь крупную расплывчатую цель бизнеса, которой нужно достичь. Затем рекурсивно разбиваете её на части и продумываете все сценарии, пока не получите чёткие логические конструкции, которым сможет следовать компьютер. Компьютеры очень хорошо справляются с выполнением логических конструкций.

А теперь немного усложним задачу. Будем писать код для людей!

Объясню, что я имею в виду: я говорю о коде, с которым смогут взаимодействовать другие люди. В частности, я имею в виду искусство создания удобных фреймворков, библиотек, API, SDK, DSL, встроенных DSL или даже языков программирования.

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

Ричард Фейнман как-то сказал: «Представьте, насколько сложнее была бы физика, если бы электроны имели чувства». Он говорил это в другом контексте, но мне кажется, это частично описывает и программирование для людей. У человека, интерпретирующего твой код, есть чувства!

Давайте поговорим о том, как упростить ему задачу.
Читать дальше →
Total votes 43: ↑40 and ↓3+57
Comments6

От Agile к анти-Agile

Reading time4 min
Views2.5K

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

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

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

Читать далее
Total votes 9: ↑5 and ↓4+4
Comments9

ИПР — то, чем вы сможете похвастаться на собеседовании или в баре

Reading time6 min
Views49K

Мы на Хабр Карьере помогаем IT-специалистам зарабатывать больше, а компаниям — быть в курсе трендов на рынке найма. 

Не так давно мы стали внедрять Индивидуальные Планы Развития (ИПР-ы) в Хабре и это оказалось непросто. Нам стало любопытно: каким специалистам они подходят, как влияют на мотивацию, повышение и как их собирать, чтобы сотрудникам было по-настоящему интересно по ним идти. 

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

К исследованию подключили команду платформы корпоративного обучения Грейд от Яндекс Практикума — оказалось, что ребята умеют круто наполнять ИПР-ы и собирают индивидуальные образовательные треки под каждого специалиста. 

А чтобы пользы от статьи было больше, мы в Хабре сделали сервис для составления ИПР-а, в котором можно выбрать цель, сроки и планировать задачи для достижения результата.

Читать исследование
Total votes 33: ↑24 and ↓9+38
Comments24

Легаси 14-летней выдержки: как мы отказались от фреймворка, пронизывающего всю разработку, — и выжили

Level of difficultyEasy
Reading time5 min
Views7.8K

Меня зовут Михаил Кузнецов, я product owner в команде, которая развивает внутреннюю платформу разработки Mindbox. В этой статье я расскажу, как мы отказались от легаси-фреймворка, который пронизывал все микросервисы. И убедились — такая трансформация осуществима даже в компании на 100+ разработчиков и 1000+ корпоративных клиентов.

Читать далее
Total votes 16: ↑12 and ↓4+14
Comments12
1
23 ...

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity