Как стать автором
Обновить
22
0.7
Вячеслав Слинкин @slinkinone

Агент «Везде успеть»

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

Хочешь быть iOS разработчиком? Будь им!

Время на прочтение2 мин
Количество просмотров388K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

Читать дальше →
Всего голосов 234: ↑222 и ↓12+210
Комментарии38

Современная классика — браузер Vivaldi 1.0

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

Всем привет!

Сегодня у нас с вами знаменательный день — выходит в свет первая финальная версия браузера Vivaldi. И обобщение здесь не фигуральное — то, что мы смогли сделать на сегодняшний день, мы сделали только благодаря вам, нашим пользователям. Вы помогали нам тестировать еженедельные сборки, присылали нам свои идеи и пожелания, да и просто подгоняли нас, не позволяя расслабляться и филонить. Но, самое главное, все эти четырнадцать месяцев с выхода первой публичной тестовой версии вы давали нам понять, что такой браузер, как Vivaldi, вам нужен, вы его ждёте и надеетесь, что он не обманет ваши надежды.
Читать дальше →
Всего голосов 87: ↑75 и ↓12+63
Комментарии570

Анализ утилит статического анализа C++ кода

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

Тест 1:

int main()
{
	vector<int> v;
	v.reserve(2);
	assert(v.capacity() == 2);
	v[0];
	v[0] = 1;
	v[1] = 2;
	cout << v[0] << endl;
	v.reserve(100);
	cout << v[0] << endl;
	return 0;
}
Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии34

Быстрый анализ транзитного трафика

Время на прочтение4 мин
Количество просмотров18K
Перед любым системным администратором рано или поздно возникает задача количественного анализа трафика (откуда / куда, по каким протоколам / портам, в каких объемах и т. п.), проходящего по его сети. Особенно неприятно, когда эта задача возникает спонтанно, как побочный результат DDoS-а, а денег на серьезные решения от Cisco или Arbor, как обычно, нет. И хорошо еще, если шлюзом для сети выступает сервер, на котором можно запустить tcpdump или wireshark, но что делать если:

  • шлюзом выступает устройство провайдера, а в сети есть только файл-сервер;
  • данные о трафике нужны не постоянно, а от времени к времени;
  • устройство не поддерживает возможность запуска на нем сторонних программ;
  • трафика столько, что сервер после запуска tcpdump-а «клеит ласты»;
  • или наоборот, настолько мало, что его уровень сравним с долей (хотя и значительной) обычного трафика?
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии21

Релиз AppCode 2016.1: улучшенная поддержка Swift и C++

Время на прочтение3 мин
Количество просмотров8.2K
Привет, Хабр!

На прошлой неделе вышел AppCode 2016.1. Изначально мы анонсировали его как 3.4, но потом совместно с другими десктопными продуктами JetBrains перешли на новую схему версионирования и теперь будем использовать ее.



С момента выпуска версии 3.3 прошло еще два минорных релиза, в которых появилось много полезного (например, Evaluate Expression и Set Value для отладчика в Swift). В 2016.1 мы в основном продолжали работать над поддержкой Swift — и вот что получилось.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии30

Первый интерфейс «мозг-мозг» (пока у крыс)

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


Мигель Николелис и Михаил Лебедев с коллегами из отдела нейробиологи университета Дьюка (США) опубликовали научную работу с описанием первого в мире интерфейса для передачи сигналов из мозга в мозг через интернет.
Читать дальше →
Всего голосов 116: ↑110 и ↓6+104
Комментарии149

Практика работы с сигналами

Время на прочтение6 мин
Количество просмотров109K
Хочу запечатлеть небольшой опыт работы с сигналами в Linux. Ниже будут представлены примеры использования наиболее значимых конструкций в этой области. Постараюсь разложить все по отдельным полочкам, чтобы всегда было легко глянуть и вспомнить, что и как использовать.
Читать дальше →
Всего голосов 73: ↑62 и ↓11+51
Комментарии61

WPS Pixie Dust Attack — Взлом Wi-Fi сети за 5 минут. Описание уязвимости

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


Уязвимость не новая, но ввиду отсутствия материалов в «РУ» сегменте — решил написать данную статью.

Базово о WPS:
WPS — Wi-Fi Protected Setup. Второе название QSS — Quick Security Setup.
Стандарт разработанный для упрощения процесса настройки беспроводной сети.
WPS позволяет подключится двумя различными способами:
— ввод 8-ми значного пин кода (обычно указывается c обратной стороны роутера)
— нажатием специально предназначенной для этого кнопки на роутере

PIN являет собой код из 8 цифр, 8я — чек сумма. Брут такого кода, с учетом защиты от перебора, может занять до нескольких дней.

В конце 2014 года специалист по компьютерной безопасности Доминик Бонгард (Dominique Bongard) нашел уязвимость в WPS, которая позволила взломать Wi-Fi роутер за несколько минут.

Проблема была в генерации случайных чисел (E-S1 и E-S2) на многих роутерах. Если мы узнаем эти числа — мы сможем легко узнать WPS pin, так как именно они используются в криптографической функции для защиты от брутфорса по получению WPS pin.
Роутер отдает хэш, сгенерированный с использованием WPS pin и данных (E-S1 и E-S2) чисел, что бы доказать, что он его так же знает (это сделано для защиты от подключения к фейковой точке, которая могла бы просто принять ваш пароль и слушать трафик).
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии24

Небольшое погружение внутрь взломанного сайта

Время на прочтение4 мин
Количество просмотров28K
Не секрет, что большинство сайтов в наши дни взламываются не вручную. Есть большая армия ботов, которые ищут уязвимость в скриптах сайтов, брутфорсят админ-панели CMS, FTP/SSH аккаунты, затем загружают небольшие скрипты-загрузчики или бэкдоры, через них внедряют в скрипты сайта несколько десятков управляющих «агентов», а также раскидывают по случайным каталогам, открытым на запись, веб-шеллы, спам-рассыльщики и другие вредоносные php (и иногда perl) скрипты. Изнутри зараженный сайт выглядит примерно так (фрагмент отчета сканера AI-BOLIT):



Паттерны заражения (число, состав и назначение вредоносных скриптов) могут меняться. В данном случае статистика по заражению следующая:

  • 41 вставка бэкдора
  • 5 WSO веб-шеллов
  • 4 скрипта, внедряющих вредоносный код в .php файлы
  • 7 mail() спам-рассыльщиков
  • 2 спам-рассыльщика, работающих через SMTP
  • 1 бэкдор
  • 1 скрипт, внедряющий вредоносный код в wordpress/joomla скрипты

Среди “вредоносов” есть всякие интересные экземпляры. Но речь сегодня пойдет не о них. Интереснее анализировать не столько статический вредоносный код в файлах, сколько процесс работы с «вредоносами» в динамике: какие запросы и в каком формате шлют командные центры внедренным бэкдорам, с какой интенсивностью, с какими параметрами и т.п. Кроме того, статический анализ для современных зловредов работает плохо, потому что некоторые скрипты не содержат payload’ов.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии36

Palantir и отмывание денег

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


Palantir
[Контент удален по требованию Википедии]

На официальном канале Palantir есть видео с демонстрацией работы аналитика, использующего систему Palantir в ходе расследования отмывания денег. По-моему, как-то так видели пользу информационных технологий «отцы-основатели» Вэнивар Буш («As We May Think»), Дуглас Энгельбарт («The Mother of All Demos») и Джозеф Ликлайдер («Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»), о которых я писал немного ранее.

(За помощь с переводом спасибо Ворсину Алексею)

Всего голосов 27: ↑23 и ↓4+19
Комментарии17

А если найду? Перелет еще дешевле чем вы уже нашли

Время на прочтение3 мин
Количество просмотров122K
Если вы планируете поездку и уже нашли недорогой перелет, не спешите покупать билеты, потому что сейчас вы найдете билеты еще дешевле. И это не реклама очередного говноагрегатора.

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

Читать дальше →
Всего голосов 123: ↑99 и ↓24+75
Комментарии299

Офис Google в Швейцарии

Время на прочтение3 мин
Количество просмотров59K
Привет, Хабровчане. Новый год я провел в городе Цюрих, где пообщался с несколькими сотрудниками корпорации зла, и прогулялся по их офису.

В своем посте я постараюсь описать побольше социальных особенностей работы в Google в Швейцарии, но скрыть от вас интерьер офиса я не могу, он шикарен :)

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

Итак, в Цюрихе находится центральный офис Google в Европе.



В нем работает около 1500 сотрудников, из них примерно 60 русскоговорящих. Хантят их как из других офисов (например, много людей переезжают из Московского офиса Google), так и напрямик.

UPD. Мо многочисленным просьбам в комментариях сделал отдельную тему для вопросов относительно работы в офисе Google в Цюрихе: habrahabr.ru/blogs/google/138980

Читать дальше →
Всего голосов 163: ↑157 и ↓6+151
Комментарии117

Суперскалярный стековый процессор: скрещиваем ужа и ежа

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

В данной статье мы будем разрабатывать (программную) модель суперскалярного процессора с OOO и фронтендом стековой машины.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии16

С++ exception handling под капотом или как же работают исключения в C++

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

От переводчика


В мире победили языки высокого уровня и в мирах руби-питон-js разработчиков остается только разглагольствовать, что в плюсах не стоит использовать то или иное. Например, исключения, потому что они медленные и генерируют много лишнего кода. Стоило спросить "и какой же код он генерирует", как в ответ получил мямленье и мычание. А и правда — как же они работают? Ну что ж, компилируем в g++ с флагом -S, смотрим что получилось. Поверхностно разобраться не сложно, однако то, что остались недопонимания — не давали мне спать. К счастью, готовая статья нашлась.

На хабре есть несколько статей, подробных и не очень (при этом все равно хороших), посвященных тому, как работают exceptions в C++. Однако нет ни одной по-настоящему глубокой, поэтому я решил восполнить этот пробел, благо есть подходящий материал. Кому интересно как работают исключения в C++ на примере gcc — запаситесь pocket-ом или evernote, свободным временем и добро пожаловать под кат.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии10

11 неожиданных особенностей языков программирования

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

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

Пустые строки в Oracle SQL



Image courtesy Nic Hughes CC BY 2.0
Читать дальше →
Всего голосов 71: ↑59 и ↓12+47
Комментарии175

25 вопросов задаваемых на собеседовании системным администраторам Linux

Время на прочтение6 мин
Количество просмотров158K
Перевод Андрей А. Породько. Оригинал Pradeep Kumar · March 21, 2016 (http://www.linuxtechi.com/25-interview-questions-for-linux-administrator-job/).
Надеюсь кому-нибудь пригодится. Меня спрашивали про ps, top и overcommitment в kvm ;-)
Внимание! Много букв и нет картинок.
От переводчика. Пожалуйста, не пишите в комментариях что что-то можно сделать по-другому — это перевод. Когда вам зададут на интервью в RedHat подобный вопрос, у вас будет возможность проявить себя ;-)
Читать дальше →
Всего голосов 33: ↑17 и ↓16+1
Комментарии64

Пошаговое руководство к исполняемым файлам (EXE) Windows

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


English: PDF JPG SVG
Русский: PDF PNG SVG

Автор: Эндже Альбертини (Ange Albertini)
Перевод на русский: Lyr1k
Всего голосов 207: ↑179 и ↓28+151
Комментарии39

Время учиться: дайджест бесплатных образовательных материалов от Mail.Ru Group

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

Кадр из к/ф «Операция Ы и другие приключения Шурика»

Как говорят, «кризис — пора возможностей». И поэтому сейчас самое время начать вкладывать в саморазвитие, осваивать новую профессию или повышать свою квалификацию. Займитесь изучением языков программирования, обретением навыков разработки, тестирования и вообще всячески прокачивайте свой IT-скилл. Ведь чем больше вы знаете, тем прочнее будете стоять на ногах. А чтобы вам было легче сориентироваться и выбрать направление, мы сделали подборку наших бесплатных образовательных материалов, курсов и инициатив за 2015–2016 годы.
Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии29

Титаник на Kaggle: вы не дочитаете этот пост до конца

Время на прочтение31 мин
Количество просмотров82K
Привет, хабр!

#{Data Science для новичков}

Меня зовут Глеб Морозов, мы с Вами уже знакомы по предыдущим статьям. По многочисленным просьбам продолжаю описывать опыт своего участия в образовательных проектах MLClass.ru (кстати, кто еще не успел — до конца еще можно получить материалы прошедших курсов — это, наверное, самый краткий и максимально практичный курс по анализу данных, который можно себе представить).

Данная работа описывает мою попытку создать модель для предсказания выживших пассажиров «Титаника». Основная задача — тренировка в использовании инструментов применяемых в Data Science для анализа данных и презентации результатов исследования, поэтому данная статья будет очень и очень длинной. Основное внимание уделено исследовательскому анализу (exploratory research) и работе по созданию и выбору предикторов (feature engineering). Модель создаётся в рамках соревнования Titanic: Machine Learning from Disaster проходящего на сайте Kaggle. В своей работе я буду использовать язык «R».
Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Комментарии5

Немного размышлений и советов по оптимизации кода на С++

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


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

Как правило, язык C++ используют там, где требуется высокая скорость работы. Но на C++ без особых усилий можно получить код, работающий медленнее какого-нибудь Python/Ruby. Именно подобным кодом оперируют многочисленные сравнения Any-Lang vs C++.

Вообще, оптимизация бывает трех типов:

  1. Оптимизация уже готового, проверенного и работающего кода.
  2. Изначально написание оптимального кода.
  3. Просто использование оптимальных конструкций.

Специально заниматься оптимизацией готового кода следует только после того, как проект закончен и используется. Как правило, оптимизация потребуется только в небольшой части проекта. Поэтому сначала нужно найти места в коде, которые съедают большую часть процессорного времени. Ведь какой смысл ускорять код, пусть даже на 500%, если он отнимает только 1% машинного времени? И следует помнить, что, как правило, гораздо больший выигрыш в скорости дает оптимизация самих алгоритмов, а не кода. Именно про данный ее вид говорят: «преждевременная оптимизация — зло» (с).

Второй тип оптимизации — это изначальное проектирование кода с учетом требований к производительности. Такое проектирование не является ранней оптимизацией.

Третий тип даже не совсем оптимизация. Скорее это избегание неоптимальных языковых конструкций. Язык C++ довольно сложный, при его использовании частенько нужно знать, как реализован используемый код. Он достаточно низкоуровневый, чтобы программисту пришлось учитывать особенности работы процессоров и операционных систем.
Читать дальше →
Всего голосов 81: ↑68 и ↓13+55
Комментарии89

Информация

В рейтинге
1 680-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Software Architect
Linux
C
C++
Git
Docker
CI/CD
English
OOP