Как стать автором
Обновить
6
0
Виталий @byabuzyak

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

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

Я провел сто собеседований, отказал сотне людей — и только потом научился собеседовать

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

Не желал бы я вам попасть ко мне на собеседование года два назад. Я провел их около сотни, и за все время взял может человек четырех. Не знаю почему, но эйчары считали, что это круто. Слава строгого интервьюера шла впереди меня. Знакомые звали меня собеседовать для чужих команд, и даже для чужих компаний, о которых вы слышите каждый день. И везде — не проходил никто.
Читать дальше →
Всего голосов 253: ↑228 и ↓25+203
Комментарии431

Введение в анализ сложности алгоритмов (часть 1)

Время на прочтение10 мин
Количество просмотров379K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Введение


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

Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Читать дальше →
Всего голосов 106: ↑98 и ↓8+90
Комментарии27

Sampler. Консольная утилита для визуализации результата любых shell команд

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

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


Sampler


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


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Всего голосов 298: ↑297 и ↓1+296
Комментарии54

Сертификация в Apple Developer Center простым и понятным языком

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

Кратко о главном


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

Зачастую при первом погружении в эту систему у начинающих (и не только) разработчиков возникают серьезные проблемы с пониманием того, как функционирует Apple Developer Center (будем называть его «девцентр» для простоты). В результате, мне в процессе профессиональной деятельности не раз приходилось наблюдать на новых местах работы огромные свалки из профилей и сертификатов в девцентре, в результате чего приходилось приступать к «разбору завалов».

При этом, в сети довольно не такой большой выбор материалов на эту тему. Конечно, в официальной документации Apple все хорошо структурировано и очень подробно описано, но зачастую просто не хватает времени на изучение такого количества материала. Как правило, хочется быстро понять, что именно и в каком порядке нужно сделать для корректной работы приложения на этапах разработки, тестирования и при публикации его в магазин App Store. В русском же сообществе подобных материалов, собранных в одном месте и в удобном доступе, я не видел вовсе, поэтому и решил написать эту статью. Для всех интересующихся — добро пожаловать под кат.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии17

Самые полезные приёмы работы в командной строке Linux

Время на прочтение5 мин
Количество просмотров156K
Каждый, кто пользуется командной строкой Linux, встречался со списками полезных советов. Каждый знает, что повседневные дела вполне можно выполнять эффективнее, да только вот одно лишь это знание, не подкреплённое практикой, никому не приносит пользы.

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

image

Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
Читать дальше →
Всего голосов 146: ↑130 и ↓16+114
Комментарии149

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

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

В начале июля 2014 года бухгалтера из казино Люмьер Плейс [Lumiere Place] в Сент-Луисе обнаружили, что несколько их игровых автоматов сошли с ума на пару дней. Программное обеспечение, одобренное правительством, даёт автоматам фиксированную фору математическими методами, так, чтобы казино были уверены в том, сколько они заработают в долгосрочной перспективе – допустим, 7,129 центов на каждом долларе. Но 2 и 3 июля несколько автоматов из казино Люмьер выдали гораздо больше денег, чем приняли, несмотря на отсутствие каких-то особенных джекпотов. Такое отклонение на жаргоне индустрии называется отрицательным удержанием. И поскольку ПО не подвержено приступам безумия, единственным объяснением было то, что кто-то жульничает.

Охрана казино подняла архивы видеонаблюдения и обнаружила виновника, тёмноволосого мужчину 30 с чем-то лет в рубашке-поло на молнии с коричневой прямоугольной сумкой. В отличие от большинства мошенников, он вроде бы никак не воздействовал на выбранные им автоматы. Он выбирал только старые модели, изготовленные австралийской компанией Aristocrat Leisure. Он просто играл, нажимая на кнопки игр типа Star Drifter или Pelican Pete, украдкой держа при этом свой iPhone ближе к экрану.
Читать дальше →
Всего голосов 161: ↑146 и ↓15+131
Комментарии632

Selenium для Python. Глава 4. Поиск элементов

Время на прочтение7 мин
Количество просмотров319K
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

Selenium для Python. Глава 2. Первые Шаги

Время на прочтение6 мин
Количество просмотров320K
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Теплый и ламповый VPN

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

Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

— Алло, милый! У меня youtube не работает!
— Прекрасно, иди спать!
— Нууу! Там новая серия вышла!
— Завтра всё сделаю!
— Ну Заяя, нуууу!
— Ладно! Ладно! Сейчас.


Из этого поста вы узнаете ответы на следующие вопросы:
Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!
Читать дальше →
Всего голосов 188: ↑169 и ↓19+150
Комментарии157

Разработка мобильных приложений на PhoneGap и jQuery Mobile

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


PhoneGap — это OpenSource платформа, позволяющая разрабатывать мобильные приложения на HTML, JavaScript и CSS под различные платформы (практически без изменения кода приложения) в их число входят: iOS, Android, Blackberry, WebOS, Symbian и Windows Mobile на подходе. Прелесть его в том, что он не требует навыков разработки под конкретную платформу. Вы пишете свое приложение на JavaScript, используете HTML и CSS для разметки. Вы пишете мобильное приложение как обычный сайт или веб-сервис.
Движок PhoneGap расширяет API браузера и добавляет следующие возможности: доступ к акселометру, доступ к камере (пока только фото), доступ к компасу, доступ к списку контактов, запись и прослушивание аудио файлов, предоставляет доступ к файловой системе, позволяет работать с разными HTML5 хранилищами localStorage, Web SQL и т.п а также позволяет безболезненно обращаться к любому кросс-доменному адресу.
Кроме платформы PhoneGap имеет, пока бесплатный, билдер приложений под все устройства в один клик.

jQuery Mobile


Думаю все знают, но напомню ещё раз. jQuery Mobile — это надстройка над jQuery, позволяющая безо всяких проблем разрабатывать мобильные веб сайты и мобильные веб приложения.

Если вы знаете HTML, JavaScript, CSS, jQuery и испытываете проблемы с Java, Objective-C и другими, но желаете попробовать свои силы в мобильной разработке, то эта статья для вас.
Читать дальше →
Всего голосов 117: ↑115 и ↓2+113
Комментарии47

Deep Learning: Сравнение фреймворков для символьного глубокого обучения

Время на прочтение5 мин
Количество просмотров29K
Представляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой сверточной нейронной сети с рекуррентной нейронной сетью.


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

ЦОД повышенной ответственности: фотоэкскурсия

Время на прочтение12 мин
Количество просмотров117K
Больше 15 лет мы строим и обслуживаем дата-центры для клиентов. Наш третий собственный дата-центр «Компрессор» — объект, в котором воплотилось многое из накопленного опыта.


Распределительная


Стойки

Ниже рассказ про устройство ЦОД в картинках и объяснения, где, что и как работает.

Осторожно, трафик.
Читать дальше →
Всего голосов 121: ↑116 и ↓5+111
Комментарии119

Ищем уязвимости с помощью google

Время на прочтение8 мин
Количество просмотров148K
Любой поиск уязвимостей на веб-ресурсах начинается с разведки и сбора информации.
Разведка может быть как активной — брутфорс файлов и директорий сайта, запуск сканеров уязвимостей, ручной просмотр сайта, так и пассивной — поиск информации в разных поисковых системах. Иногда бывает так, что уязвимость становится известна еще до открытия первой страницы сайта.

Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии14

Как взломать Telegram и WhatsApp: спецслужбы не нужны

Время на прочтение2 мин
Количество просмотров717K
На прошлой неделе общественность взбудоражила новость о возможной причастности спецслужб к взлому аккаунтов оппозиционеров в популярном мессенджере Telegram. На протяжении своего существования человечество пыталось объяснить всё необъяснимое с помощью высших сил – Богов. В наше время все непонятные вещи объясняют происками спецслужб.

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



А затем мы провели атаку через сеть SS7 на один из тестовых номеров (подробнее о самих атаках мы писали ранее). И вот что у нас получилось:
Читать дальше →
Всего голосов 156: ↑146 и ↓10+136
Комментарии242

Инструкция: Как создавать ботов в Telegram

Время на прочтение6 мин
Количество просмотров1.7M
24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.
Попробую это исправить
Всего голосов 19: ↑14 и ↓5+9
Комментарии22

Работа с камерой в Android

Время на прочтение7 мин
Количество просмотров130K
Работа с камерой на телефоне всегда представляла для меня интерес. Как же это все устроено… И вот мне в руки попал телефон с Android'ом. Я не преминул возможностью попробовать разобраться в этом. Вот что получилось в итоге.
Исходный код и подробности
Всего голосов 61: ↑55 и ↓6+49
Комментарии19

Как покрыть мониторингом все слои инфраструктуры

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

Как-то я посчитал, что 1 минута простоя hh.ru в будни днем затрагивает около 30 000 пользователей. Мы постоянно решаем задачу снижения количества инцидентов и их длительности. Снизить количество проблем мы можем правильной инфраструктурой, архитектурой приложения — это отдельная тема, ее мы пока не будем брать во внимание. Поговорим лучше о том, как быстро понять, что происходит в нашей инфраструктуре. Тут как раз нам и помогает мониторинг.

В этой статье на примере hh.ru я расскажу и покажу, как покрыть мониторингом все слои инфраструктуры:
  • client-side метрики
  • метрики с фронтендов (логи nginx)
  • сеть (что можно добыть из TCP)
  • приложение (логи)
  • метрики базы данных (postgresql в нашем случае)
  • операционная система (cpu usage тоже может пригодиться)

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

MySQL и JOINы

Время на прочтение6 мин
Количество просмотров147K
Поводом для написания данной статьи послужили некоторые дебаты в одной из групп linkedin, связанной с MySQL, а также общение с коллегами и хабролюдьми :-)

В данной статье хотел написать что такое вообще JOINы в MySQL и как можно оптимизировать запросы с ними.

Читать дальше →
Всего голосов 85: ↑83 и ↓2+81
Комментарии67

Червь, который изменил Интернет

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



Все произошло около полуночи 4 октября 2005 года в солнечном городе Лос-Анджелес. Тогда 19-летний хакер Сэми Камка выпустил в сеть нечто, более известное теперь как “червь Samy”. Это был первый самый быстрый и самораспространяющийся вирус, который навсегда изменил мир веб-безопасности.
Читать дальше →
Всего голосов 62: ↑51 и ↓11+40
Комментарии36

Информация

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