Как стать автором
Обновить
22
0
Павел @PavelN

Пользователь

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

Сложно о простом: как измерить время открытия страницы и не нажить себе врагов

Время на прочтение12 мин
Количество просмотров16K
Вы разработчик и хотите увидеть, что ваша страница стала быстрее открываться после всех оптимизаций. Или вам нужно доказать начальству, что вы не верблюд и всё действительно ускорили. А, может быть, вы хотите убедиться, что ваши пользователи не будут страдать от медленно открывающихся страниц. Или, как в нашем случае, вы тестировщик, который теперь отвечает за клятую клиентскую производительность, и пропущенные тормоза на продакшен не дают спать по ночам.

Измерять клиентскую производительность – нетривиальная задача. Особенно если у вас в проекте сотни страниц на множестве стендов. Каждая наполнена js кодом, и сотни разработчиков каждый день оптимизируют, меняют, пересоздают их. Нужно спроектировать систему сбора, обработки и хранения данных. Какое хранилище выбрать? Как спроектировать базу, и в какой СУБД? Немало интересных задач, которые меркнут перед лаконичным «сколько времени открывалась страница?». Для нас поиск ответа на этот вопрос вылился в квест с детективными расследованиями, жаркими спорами и поиском истины. Его самые интересные моменты – в этой статье.


Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии3

Как я был разработчиком, а теперь тимлид

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

enter image description here


Сейчас вы прочитаете увлекательную историю моего превращения из разработчика в тимлида. Это было долгое путешествие со множеством шагов назад, которое всё же закончилось уверенным шагом вперёд. Устраивайтесь поудобнее, берите попкорн… Поехали!

Читать дальше →
Всего голосов 158: ↑139 и ↓19+120
Комментарии164

Наблюдения, которые указывают на решимость предприятия к изменениям

Время на прочтение8 мин
Количество просмотров8.9K
Раздается звонок.

— Здравствуйте, это Сергей? Меня зовут <Ηράκλειο> (не вникайте в название, слово существующее, но это плоды секундной фантазии), я — директор по производству на <Κρήτη>. У меня есть ряд проблем с производственным планированием. Могли бы мы с вами встретиться?

На встрече присутствовал Ηράκλειο, генеральный директор и, случайно заглянувший, собственник бизнеса. Мне предоставили список технических требований к производственному планированию, наличие которого положительно сказывается как предметности разговора. В ходе беседы познакомились, поделились коммерческой и организационной информацией, очертили первые шаги.
Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии4

Мой опыт получения PMP

Время на прочтение6 мин
Количество просмотров31K
Совсем недавно я стала счастливым обладателем сертификата PMP — Project Management Professional. И в этой статье я хочу поделиться своим опытом со всеми, кому предстоит этот экзамен, кто еще только думает сдавать или не сдавать, ну и с теми кому просто интересна эта тема.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии10

Подборка полезных материалов по DevOps

Время на прочтение3 мин
Количество просмотров29K
Делимся новым контентом по DevOps: курсы Microsoft Virtual Academy на русском языке, видео-уроки по DevOps-практикам на Channel 9 и подборка полезных материалов.


Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии2

Бинарные (файловые) хранилища, страшная сказка с мрачным концом

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


Даниил Подольский (Git in Sky)


Доклад мой называется «Бинарные, они же файловые, хранилища», но, на самом деле, мы имеем дело со страшной сказкой. Проблема в том (и это тезис моего доклада), что сейчас не существует не то что хорошей, а хотя бы приемлемой системы хранения файлов.

Что такое файл? Файл – это кусок данных с именем. Что важно? Почему файл – это не строка в базе данных?

Файл слишком большой, чтоб можно было обращаться с ним как с одним куском. Почему? Есть у вас сервис, раз у нас HighLoad конференция, у вас сервис, который держит одновременно 100 тыс. соединений. Это не так уж много, если по каждому из соединений мы отдаем файл в 1 Мбайт размером, но нам нужно примерно 100 Гбайт памяти для буферов под эти файлы.
Всего голосов 69: ↑57 и ↓12+45
Комментарии43

Быстрый рендеринг с DOM шаблонизаторами

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

Борис Каплуновский (BSKaplou)


Борис Каплуновский

Я довольно долго работал над докладом и старался сделать его настолько противоречивым, насколько это возможно. И сразу начну с противоречия – я в корне не согласен с тем, что веб-компонентами можно пользоваться. Уже поднимался вопрос о 300 Кбайтах, я глубоко уверен, что 300 Кбайт для страницы Javascripta – недопустимо много.

Сегодня я расскажу о довольно глубоком путешествии во фронтенд. Началось это путешествие тогда, когда я обнаружил, что фронтенд aviasales.ru тормозит, и надо что-то делать. Это путешествие началось года полтора-два назад, и вещи, о которых я буду рассказывать, – это сжатое повествование того, что я узнал.

Самым критичным, на мой взгляд, в производительности фронтенд-приложений является рендеринг. Все мы знаем, что работа с DOM – это такая вещь, которую нужно стараться избегать. Чем больше вы делаете вызовов к DOM API, тем медленнее работает ваше приложение.
Всего голосов 62: ↑52 и ↓10+42
Комментарии56

16 мифов о CRM-системах

Время на прочтение17 мин
Количество просмотров29K
Окончательно решив завести блог на Хабре, мы составили для себя тематический план. Посовещавшись, включили в него полезные вопросы о различных бизнес-процессах, работе с ТЗ, KPI, законах работы с корпоративным заказчиком… И как-то сразу отмели идею объяснять, как же этот софт устроен. Но комментарии к постам заставили нас пока ровно на один раз отступить от задуманного.

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


Читать дальше →
Всего голосов 23: ↑17 и ↓6+11
Комментарии80

Как новые руководители разрушают доверенные им компании

Время на прочтение26 мин
Количество просмотров400K
Эта статья – о рисках смены руководства в больших компаниях и характерных явлениях при попытках игнорировать закон эффективного управления собственностью:
Эффективно управлять можно только той собственностью, которую мог бы создать сам.
Кто не может создать, – будет только разрушать!
И.А. Дедюхова, Кодекс Хамурапи
Картинка для привлечения внимания читателей из поколений Y и Z:


Краткое содержание


Новый директор себе в подчиненные и советники пригласит своих «проверенных людей». Увеличение штата топ-менеджеров в условиях фиксированного ФОТ повлечет за собой сокращение рядовых сотрудников на значительный процент.
Новый директор в первую очередь будет сокращать те подразделения, работу которых он не понимает. Под прессом психологического давления руководители этих подразделений возмут на себя обязательства самостоятельно разработать планы по сокращению и принять на себя все риски их реализации.
Сокращения пройдут под флагом повышения эффективности, но для «непонятных директору» подразделений не смогут сформулировать критерии этой эффективности, кроме «минимизации затрат». Цель по минимизации затрат без дополнительных обоснованных ограничений – это цель по уничтожению, и не имеет отношения к настоящей оптимизации.
Отсекая непонятные ему части компании (выводя в аутсорс и т.п.), директор попытается превратить компанию в ту, работу которой он полностью способен понять, которой он в полной мере способен управлять.
Проблему нехватки знаний в технической области новый директор и его команда компенсируют «помощью» от западных консалтинговых компаний. Это приведет к ситуации внешнего управления, причем без всякой ответственности за диктуемые извне решения.
Внешняя и внутренняя отчетность о работе компании до самого конца не будет показывать никаких признаков проблем, т.к. тому, кто принес плохие вести не выдают премию, а рубят голову.


Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии95

Как дать адекватную оценку времени, когда неопределённость бьёт по башке

Время на прочтение12 мин
Количество просмотров81K
Большинство людей не умеют адекватно оценивать сроки выполнения задач. Ой как это заставляет порой понервничать… Тут и «дэдлайн подкрадывается незаметно». И перестраховка в 500% на всякий случай (все равно не хватает). И отжимание «заведомо раздутых сроков», чтобы исполнитель пообещал чего-то более приемлемого. И невнятные бормотания вместо конкретных цифр.

image

В этой статье собраны и структурированы принципы и методы, с помощью которых можно научить себя и других давать адекватные оценки. В начале — общие принципы и чуть-чуть математики. В конце — конкретика для студий.
Читать дальше →
Всего голосов 81: ↑68 и ↓13+55
Комментарии24

Исследуем вопрос наказаний 2.0

Время на прочтение11 мин
Количество просмотров60K
Этот материал будет полезен в первую очередь тем, кто много занимался программированием и вдруг внезапно стал вынужден заниматься управлением проектами и людьми. С год назад я рассказал про наказания на конференции, а солнышки из Битрикса сделали текстовую версию для #habr. К сожалению, потеряв в точности, четкости и правильности акцентов. За год материала добавилось. В конце — чеклист для ленивых :)

Итак. Если вы не садист или моральный урод, а ваши сотрудники — не мазохисты, то сомневаюсь, что кому-то из вас наказания доставляют удовольствие. Мне — нет.
image
Читать дальше →
Всего голосов 109: ↑91 и ↓18+73
Комментарии175

Социальная инженерия из первых рук

Время на прочтение1 мин
Количество просмотров23K
Кевину Митнику, родоначальнику социальной инженерии, принадлежат золотые слова:
Социальный инженер задумал заполучить проект (исходники) Вашего нового продукта за 2 месяца до релиза.
Что остановит его?
Ваш файервол? Нет.
Мощная система идентификации? Нет.
Система обнаружения вторжений? Нет.
Шифрование данных? Нет.
Ограничение доступа к номерам дозвона модемов? Нет.
Кодовые имена серверов, которые затрудняют определение местонахождения проекта искомого продукта? Нет.
Смысл здесь в том, что никакая технология в мире не сможет противостоять атаке социального инженера.



Однако частично обезопасить себя всё же можно – изучив, чем движим социальный инженер, как он мыслит и действует, какими приёмами пользуется. Зная это, можно уберечь себя от атак социальных инженеров. Подробно об этом можно почитать в книге про Кевина Митника «Искусство обмана». Однако поскольку книги читать мало кто любит, можно посмотреть фильм «Взлом», где хорошо проиллюстрированы приёмы, которыми пользовался Кевин. Ниже представлены ключевые видеофрагменты из этого фильма. Их вполне можно использовать при проведении корпоративных тренингов по информационной безопасности.
Читать дальше →
Всего голосов 22: ↑14 и ↓8+6
Комментарии6

Грабли, на которые вы не хотели бы наступить в своем проекте

Время на прочтение11 мин
Количество просмотров19K
Добрый день, меня зовут Сергей и я руководитель продуктового направления в компании «ДоксВижн». За время работы в сфере автоматизации электронного документооборота мне довелось участвовать в десятках проектов внедрения, причем в разных ролях (от инженера до руководителя проектного офиса), с разных сторон (заказчик, представитель компании-внедренца, вендор) и с разными системами (Docsvision и Directum). Своим проектным опытом я хочу поделиться с вами.

Зная процесс и набив кучу шишек, я даю в статье несколько рекомендаций, которые позволят подойти к проекту внедрения СЭД (как и любой ИТ-системы) подготовленными и более гладко его реализовать. Мой коллега уже давал советы ИТ-специалистам заказчика, ответственным за внедрение. Я взгляну на вопрос под другим углом и поделюсь рядом нюансов, которые стоит учесть именно компании-интегратору. Особенно, если вам предстоит первый проект внедрения. Надеюсь, статья будет полезна, хотя на многие «грабли» все равно нужно иногда наступать самостоятельно, и идеальных рецептов в проектной практике не существует.

Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии1

Битва за ADFS (Active Directory Federation Services)

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

Предыстория


Проект начинался как портал на основе SP 2007, а позже на основе 2010 SP. Изначально все пользователи были в Active Directory. Был только один тип пользователей. Связи между ними были достаточно простыми. Появлялись новые типы пользователей, которые сложным образом становились связаны друг с другом. Также постепенно проект обрастал различными связанными подсистемами, часть из которых работала внутри портала, часть вне его. И это все усложняло схему авторизации.


Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии0

«Крутелочка к пимпочке»: как снизить количество невалидных багов вдвое, и почему техподдержка – друг разработчика

Время на прочтение5 мин
Количество просмотров8.7K
imageС каким бы приложением ни была связана ваша работа и в каком бы качестве вы ни присутствовали в процессе, рано или поздно наступит тот момент, когда к вам впервые явится пользователь и, доверчиво моргая, спросит: а почему у меня пимпочка не пимпает? Чтобы пимпочка пимпала, – скажете вы, погибая от умиления (поставил! пользуется!), – нужно сперва покрутить крутёлочку. К десятому пользователю умиления поубавится. К пятидесятому вы, вероятно, заведете пару-тройку шаблонов для ответа на наиболее популярные вопросы. К сотому наймете с полдесятка студентов на должность инженеров технической поддержки и вздохнете с облегчением – ровно до того момента, пока один из них не образуется у вашего рабочего стола с вопросом: а у меня тут пользователь пришел, и у него пимпочка не пимпает – почему? Крутёлочка? Какая крутёлочка?

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

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

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

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

Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
Читать дальше →
Всего голосов 117: ↑114 и ↓3+111
Комментарии66

Подсчет себестоимости часа разработки программного обеспечения

Время на прочтение4 мин
Количество просмотров148K
Сегодня я расскажу о больной теме как для покупателей программного обеспечения, так и для провайдера этой услуги – себестоимости разработки. Понятно, что сейчас не самое лучшее время для того, чтобы разбрасываться бюджетами. Только это не значит, что производители должны работать себе в убыток. Многие говорят о жадности предпринимателей, но я вам вот что скажу: нет ничего постыдного в том, чтобы делать честный бизнес и адекватно считать свои косты.

image
Читать дальше →
Всего голосов 47: ↑42 и ↓5+37
Комментарии79

Использование C# и Wix# для создания msi-пакетов

Время на прочтение9 мин
Количество просмотров39K
От переводчика: англоязычные it-блоггеры обычно начинают такие статьи со слов I'm so excited. Про Wix# я узнал совершенно случайно и спешу поделиться этим открытием с хабрасообществом, т.к. каждый, кто имел дело с «голым» WiX, знает, насколько неприятным может быть этот процесс. И вот теперь можно сделать msi-дистрибутив, написав всего лишь несколько строчек на C#! По-моему, это круто! А относительно недавно (4 дек 2014) автор Wix# Олег Шило дал интервью изданию InfoQ. Перевод этого интервью я и представляю вашему вниманию. И прошу не судить строго за кальку некоторых слов — тот же «деплоймент» мне как-то ближе, чем «развертывание».
Предоставим слово Олегу Шило, автору Wix#
Всего голосов 26: ↑24 и ↓2+22
Комментарии9

Грабли, .NET, COM и dynamic

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

Жил — был древний код эпохи динозавров


Дано: адов кодярник работающий с 16ю разными версиями одного и того же «ах какого» продукта. COM, Interop, интерфейсы, реализации, сигнлтоны с факторями, паттерны с антипаттернами, модули и прочие ошметки крывавого ынтырпрайзу. Стандартный набор. Рос, мужал и матерел тот кодярник лет семь. Пока однажды очередной фикс не привел к исправлению массового копипаста в 16 модулях. Если кому интересно — foreach на for меняли.

Помучившись, провели исследование. Копипаст на 95% идентичен, различаются только имена пакетов из интеропов.

А можно ли как-то писать так чтобы не оборачивать сотни и сотни функций в свои врапперы, плюс ручками боксинг / анбоксинг этих врапперов?

Есть же ключевое слово dynamic!
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии7

DuoCode: транслируем C# в JavaScript

Время на прочтение10 мин
Количество просмотров25K
Есть такой язык программирования, который называется C#. И есть очень много разработчиков, которым он очень нравится. А ещё есть такой язык программирования, который называется JavaScript. Как-то так сложилось, что он нравится далеко не всем C#-разработчикам. А теперь представьте ситуацию: есть заядлый C#-разработчик. Он очень любит C#, все-все проекты на нём пишет. Но судьба распорядилась так, что ему понадобилось написать клиентское веб-приложение. Знаете, такое, чтобы пользователю не нужно было себе ничего скачивать и устанавливать, чтобы он мог просто открыть любой браузер в любой операционной системе на любом устройстве — а приложение уже там. И вот тут у нашего лирического героя возникла проблема: вроде бы JavaScript идеально подходит для этой задачи, но вот писать на нём отчего-то не очень хочется. К счастью, в современном мире существует много языков, которые транслируются в JavaScript (всякие TypeScript, CoffeScript и тысячи других). Но наш разработчик оказался очень упрямым: он упорно не хочет изменять своему любимому C# с «вражескими» технологиями.

К счастью для него, счастливое будущее уже практически наступило. Есть такой проект, который называется DuoCode. Он умеет транслировать C#-код в JavaScript. Пока он в состоянии beta, но у него уже весьма неплохо получается: поддерживаются нововведения C# 6.0, Generic-типы, Reflection, структуры и LINQ, а отлаживать итоговый JavaScript можно на исходном C#. Давайте посмотрим внимательнее, что же представляет из себя продукт.

Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии54

Информация

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