Как стать автором
Обновить
1
0
Роман @toxi_roman

Системный администратор (IT-отдел)

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

«Молчание – золото»: 13 вещей, которые не стоит говорить разработчикам и тестировщикам

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


/ фото Sistema Bibliotecario Vimercatese CC

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

Работа в команде – ответственное занятие, поскольку в этом случае люди отвечают не только за себя, но и за окружающих, они общаются, помогают друг другу. Как бы это ни было банально, ключом к продуктивному общению между людьми всегда является вежливость и взаимоуважение. Однако все же есть определенный список фраз, которые – даже когда они звучат вежливо и корректно – не стоит употреблять в разговоре с разработчиками и тестировщиками, если вы их коллега, заказчик, «владелец» или руководитель проекта.
Читать дальше →
Всего голосов 68: ↑58 и ↓10+48
Комментарии44

Фотоэкскурсия по «облаку» компании 1cloud

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


Сегодня мы хотели бы рассказать об оборудовании 1cloud, которое «урчит» в стойках ЦОД уровня Tier III в Санкт-Петербурге (SDN) и в Москве (Dataspace).
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии2

Мифы об облачных технологиях. Часть 3: Говорим о «железе»

Время на прочтение6 мин
Количество просмотров8.1K
Сегодня вас ждет продолжение серии постов, в которой мы, используя собственный опыт разработки провайдера виртуальной инфраструктуры 1cloud.ru, развенчиваем самые популярные мифы об облаке. Во второй части мы говорили о качестве предоставляемых сервисов, а сегодня затронем тему аппаратного обеспечения.



/ фото Dennis van Zuijlekom CC
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии2

Выбор оборудования для корпоративного облачного хранилища

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


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

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

В этой статье мы рассмотрим один из подходов к выбору железа для создания корпоративного облачного хранилища.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии9

Как «прокачать» навыки программирования… практически без программирования

Время на прочтение8 мин
Количество просмотров66K
Существует большое количество хороших ресурсов, посвященных развитию технических навыков грамотного программирования. Однако всего несколько из них дают представление о знаниях, которые приходят лишь с опытом. В этом материале мы собрали советы, которые помогут повысить вашу продуктивность, позволят лучше работать и быстрее думать в процессе разработки.



/ фото hackNY.org CC
Читать дальше →
Всего голосов 41: ↑27 и ↓14+13
Комментарии17

Выходной гимн работе: Что слушают разработчики

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


Фото Vikramdeep Sidhu / CC (на фото: Охватывающие наушники Audio-Technica ATH-M50x)

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

У всех свои требования к формированию продуктивной атмосферы. Но есть в нашем мире то, что объединяет всех людей вместе. Музыка. Ведь нет ничего проще, чем включить подходящую для тебя музыку и сосредоточиться на работе [есть и те, кто работать под музыку не может, но речь в этом материале не о них].

Пользователи ресурса Quora поделились своим мнением о том, какая музыка лучше всего подходит для кодинга, а мы проанализировали их ответы и изучили научные подтверждения тому, что музыка работе – не помеха.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии53

Миф о RAM и O(1)

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


Городская библиотека Стокгольма. Фото minotauria.


В этой статье я хочу рассказать о том, что оценивать время обращения к памяти как O(1) — это очень плохая идея, и вместо этого мы должны использовать O(√N). Вначале мы рассмотрим практическую сторону вопроса, потом математическую, на основе теоретической физики, а потом рассмотрим последствия и выводы.


Введение


Если вы изучали информатику и анализ алгоритмической сложности, то знаете, что проход по связному списку это O(N), двоичный поиск это O(log(N)), а поиск элемента в хеш-таблице это O(1). Что, если я скажу вам, что все это неправда? Что, если проход по связному списку на самом деле O(N√N), а поиск в хеш-таблице это O(√N)?


Не верите? Я вас сейчас буду убеждать. Я покажу, что доступ к памяти это не O(1), а O(√N). Этот результат справедлив и в теории, и на практике. Давайте начнем с практики.


Измеряем


Давайте сначала определимся с определениями. Нотация “О” большое применима ко многим вещам, от использования памяти до запущенных инструкций. В рамках этой статьи мы O(f(N)) будет означать, что f(N) — это верхняя граница (худший случай) по времени, которое необходимо для получения доступа к N байтов памяти (или, соответственно, N одинаковых по размеру элементов). Я использую Big O для анализа времени, но не операций, и это важно. Мы увидим, что центральный процессор подолгу ждет медленную память. Лично меня не волнует, что делает процессор пока ждет. Меня волнует лишь время, как долго выполняется та или иная задача, поэтому я ограничиваюсь определением выше.

Читать дальше →
Всего голосов 128: ↑107 и ↓21+86
Комментарии96

WebSockets в Scorocode или чат своими руками за 15 минут

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


Недавно мы добавили поддержку WebSockets в разрабатываемый нами backend as a service Scorocode. Теперь вы можете полноценно использовать эту технологию при создании приложений, требующих безопасного и универсального способа передачи данных.

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

Подробности под катом.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии14

IT-новости. Август

Время на прочтение4 мин
Количество просмотров5.5K
Подходящий к концу август был традиционно не слишком богат на громкие новости в IT-мире, но несколько заметных премьер и анонсов всё же состоялось. О самых заметных событиях, которые могли пройти мимо вас, поговорим далее.

» Системы автоматического торможения идут в народ
В США пошли на радикальный шаг и обязали к 2020 году оснастить 99% всех выпускаемых автомобилей системой ААА — автоматического торможения при приближении транспортного средства к потенциальной преграде. На сегодняшний день лишь 9% всего мирового автопарка имеет такую функцию, но уже 21 автопроизводитель официально обязался включить её в базовые комплектации в ближайшее время.

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

image

» А умные автомобили в магазины
Компании Delphi и Mobileye, которые активно участвуют в разработках автопилота в автомобилях, на днях объявили о выходе самостоятельной системы на рынок в 2019 году. Таким образом, совсем скоро на полках магазинов вместе с датчиками парковки и скорости будут лежать автопилоты, которые сделают из вашего старенького ВАЗ-2106 настоящий умный автомобиль.

Для скептиков, Delphi и Mobileye сразу объявили, что это будут не компромиссные варианты (например, только перестроение между полосами или поддержание скорости), а системы, соответствующие 4 и 5 уровню рейтингу SAE (Society of Automotive Engineers). Иначе говоря, это полный автопилот, но в зависимости от стоимости это будет либо универсальный набор, либо ограниченный рядом моделей автомобилей.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии1

Wi-Fi позиционирование «дешево и сердито». О частоте замеров или возможно ли Wi-Fi позиционирование в реальном времени?

Время на прочтение9 мин
Количество просмотров18K
Это третья, пока заключительная статья из серии Wi-Fi позиционирования «дешево и сердито»: когда не используются специализированные клиентские устройства и специализированная инфраструктура, а используются только общедоступные персональные устройства (смартфоны, планшеты, ноутбуки) и обычная инфраструктура Wi-Fi.

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

Отправной точкой при расчёте частоты замеров является такая характеристика как характерная скорость движения Клиентов. Для человека это 5км/ч или 1.5 м/с. Для обеспечения позиционирования в реальном времени промежуток времени между двумя замерами не должен превышать удвоенную точность позиционирования, что позволяет строить достаточно точные для практических целей траектории движения.

Точность классического позиционирования по тестам, проведенным в предыдущей статье, составляла порядка пяти метров с достоверностью 90%. В этом случае частота замеров должна быть не менее 6,6с (либо 13,3 секунды для точности 10 метров). Теперь осталось выяснить, какова реальная частота замеров и соответствует ли она заявленной точности позиционирования.

Для тестов используется смартфон на Android 4.4.4 и ноутбук с Windows 7.

Что ж, цель ясна, средства понятны, приступим!
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии20

Кабель-менеджмент: несколько советов из собственного опыта

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


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

Да и без повреждений полно ситуаций, когда неправильный кабель-менеджмент приводит к печальным последствиям, или просто негативно влияет на общую эффективность работы дата-центра. Мы, компания KingServers, уже много лет работаем с сетевым оборудованием. И за это время сформировали ряд правил по работе с кабелями. Они не являются откровением, просто мы их используем. Возможно, кому-то эти советы пригодятся.
Читать дальше →
Всего голосов 10: ↑7 и ↓3+4
Комментарии19

Используем Secure Boot в Linux на всю катушку

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


Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы, то есть защиту от буткитов и атак типа Evil Maid. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются.


Более подробно о Secure Boot можно узнать из цикла статей от CodeRush.



Чтобы Secure Boot обеспечивал безопасность, подписываемые приложения должны соблюдать некоторый «кодекс чести»: не иметь в себе лазеек для неограниченного доступа к системе и параметрам Secure Boot, а также требовать того же от загружаемых ими приложений. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению. Такую угрозу представляют загрузчик shim, подписываемый Microsoft, и загружаемый им GRUB.


Чтобы от этого защититься, мы установим Ubuntu с шифрованием всего диска на базе LUKS и LVM, защитим initramfs от изменений, объединив его с ядром в одно UEFI-приложение, и подпишем его собственными ключами.

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

Интерфейсы в реальном мире (ещё примеры)

Время на прочтение10 мин
Количество просмотров140K
Обычный кран с горячей и холодной водой очень жесток к пользователю. В идеале его интерфейс решает три основные задачи:
  • Позволяет выбрать напор воды.
  • Позволяет выбрать температуру воды.
  • И защищает систему от гидравлического удара.

Вот тут вы можете узнать пару своих знакомых кранов:



А это — очень страшный автомобильный диод, по нему только вперёд:



Итак, если вам интересно продолжение про интерфейсы в реальном мире – заходите в пост. Осторожно, трафик.
Читать дальше →
Всего голосов 110: ↑105 и ↓5+100
Комментарии227

Что я узнал про интерфейсы в реальном мире в Китае

Время на прочтение8 мин
Количество просмотров85K
Вот типичная форма подключения к вай-фаю. Она вообще-то на огромной странице с кучей иероглифов, но серая подложка помогла мне понять, что это и есть самая важная форма подключения, а остальное — справка и реклама.



Иконки важны. Судя по ним, галочка внизу — это, почти наверняка, «я согласен с условиями». Телефон вверху — наверняка номер. Дальше — замок — это пароль. Оба поля активные, то есть логин и пароль у меня должны быть сразу, так?

Нет, нифига, китайский UX подразумевает, что я сначала введу телефон и нажму оранжевую кнопку (цвета иконки — и да, это кнопка!). Получу пароль и введу его во второе поле, а потом нажму зелёную кнопку. Робот сравнит телефон с паролем и пустит меня дальше. Эту форму, скорее всего, рисовал китаец.


А это обычная такая телефонная будка раннего космического века

Сейчас покажу ещё несколько вещей, рождённых в стране, где квалифицированных инженеров примерно раз в двадцать больше, чем в Америке, а состояние изобретательности «советского инженера» ещё не пройдено. Я, конечно, опять продолжу свою историю и покажу интерфейсы в реальном мире — они не менее интересны с точки зрения юзабилити, нежели HCI, и не менее полезны для понимания, как можно работать с пользователем.
Читать дальше →
Всего голосов 122: ↑115 и ↓7+108
Комментарии94

Интерфейсы в реальном мире

Время на прочтение5 мин
Количество просмотров180K
IT-интерфейсы часто растут из физических. Например, вот аппаратные чекбоксы:



Вообще, лучший же пример правильного инженерного интерфейса – это гранёный стакан.

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

Сейчас покажу ещё несколько интерфейсов, которые облегчают жизнь. Общий смысл – попробовать понять, как думал разработчик, чтобы сделать что-то удобнее.
Читать дальше →
Всего голосов 314: ↑304 и ↓10+294
Комментарии347

HTTP/2 уже здесь но спрайт-сеты ещё не умерли

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

В этом исследовании мы показываем, что даже если новый HTTP/2 протокол значительно улучшает скорость загрузки страницы, время для полного отказа от фронт-энд оптимизаций ещё не наступило. Сегодня мы сосредоточимся на спрайт-сетах.


HTTP/2 стал доступен в 2015, как альтернатива к замене многоуважаемого HTTP/1.1, используемого с 1997. Многие авторы предсказывают устаревание или, даже, контрпродуктивность фронт-энд оптимизаций. В список классических оптимизаций входят спрайты: группировка множества маленьких изображений (спрайтов) в одно большое (спрайт-сет).

Несмотря на быстрое внедрение поддержки и в браузерах и в серверах (вики, w3techs), мы не смогли найти опубликованные сравнительные замеры для подтверждения утверждения (прим. того, что спрайты больше не нужны). Как веб-архитекторы, тогда, мы естественно, интересовались, следует ли нам отказаться от подхода спрайтов или нет. Как гласит известная цитата Уильяма Эдвардса Деминга: “In God we trust, all others bring data”. Поэтому мы сделали свой собственный бенчмарк.


Первая часть этой статьи описывает основные отличия между HTTP/1.x и 2 и почему они могут способствовать устареванию спрайтов. Во второй части мы покажем сравнительные результаты бенчмарка.

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

Интерфейсы в реальном мире: страховка от ошибок пользователя

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

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

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



Начнём со специальной клавиатурной чашки.
Читать дальше →
Всего голосов 90: ↑85 и ↓5+80
Комментарии221

Табы или пробелы? Анализ 400 тысяч репозиториев GitHub, миллиарда файлов, 14 ТБ кода

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


Для пытливых разработчиков до сих пор остается актуальным вопрос использования табуляции и пробелов для форматирования кода. Могут ли они быть взаимозаменяемы: например, 2 пробела на табуляцию или 4? Но единого стандарта нет, поэтому иногда между разработчиками возникает непонимание. Кроме того, различные IDE и их компиляторы обрабатывают табуляцию также по-своему.

Решением вопроса обычно становится соглашение о правилах форматирования в рамках проекта или языка программирования в целом.

Команда разработчиков из Google исследовала проекты в репозитории Github. Они проанализировали код, написанный на 14 языках программирования. Целью исследования было выявить соотношение табуляций и пробелов — то есть, наиболее популярный способ форматирования текста для каждого из языков.
Всего голосов 51: ↑46 и ↓5+41
Комментарии243

Извините, мы запускаем новый продукт

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

Иногда приходит время остановиться и взглянуть по-новому на то, что ты делаешь. Что если прежние решения когда-то казались верными, а теперь создают проблемы? Наберитесь храбрости и начните с чистого листа. А я тем временем расскажу, как 8 лет назад компания QIWI сделала коммерчески правильный выбор при запуске продукта, но в 2015 пришлось многое переделать.



Читать дальше →
Всего голосов 37: ↑26 и ↓11+15
Комментарии108

Let's Encrypt: получение сертификата по шагам

Время на прочтение4 мин
Количество просмотров467K
В данной статье будет описан реальный способ получения сертификата от Let's Encrypt в ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux.



Данная статья обновляется с создана для тех, кто хочет управлять процессом создания сертификата в полностью ручном режиме. В статье пошаговая инструкция процесса, чтобы вы уже смогли оперативно создать и начать пользоваться своим сертификатом.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии49

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность