Идея создания книги собственными руками поселилась в голове изрядно давно. Изучив практическую сторону вопроса, я лишь укрепился в этом желании, но руки никак не доходили даже до выбора книги. И вот некоторое время назад судьба распорядилась за меня. В силу обстоятельств непреодолимой силы во мне появилось желание подарить уникальную вещь, а, как известно, лучше книги подарка нет. Выбор пал на любимое произведение объекта моего неконтролируемого интереса, невероятно мудрое и емкое, смыслом, а не словами, творение Экзюпери — «Маленький принц». Желание творить подстегивала и моя личная любовь к этой книге. Решение было принято, время неумолимо приближало момент вручения, и я приступил к работе.
Станислав @proDOOMman
User
Настройка GUI в линуксе для мониторов с High DPI
3 min
37KВ последнее время появилось достаточно много мониторов с высоким разрешением, 150 dbi и выше, особенно в ноутбуках. И при этом всё выглядит жутко маленьким.
Причина этого — система думает что у Вашего монитора разрешение 96..100 dpi.
Решать это только увеличением размера шрифта неправильно, т.к. размеры всех остальных элеменов интерфейса остаются маленькими. Надо чтобы графическая оболочка сама это делала.
Мне с решением этой проблемы пришлось весьма долго рыться в интернете, собирая мелкие заметки, т.к. не оказалось места где бы это можно было увидеть всё вместе.
Ниже будет идти список где что поправить, все параметры привожу для своего монитора — 13,3" при 2560x1600, это даёт 226 dpi. Более высокое разрешение сейчас я видел только в ноутбуке Fujistu U904 — 262 dpi.
Причина этого — система думает что у Вашего монитора разрешение 96..100 dpi.
Решать это только увеличением размера шрифта неправильно, т.к. размеры всех остальных элеменов интерфейса остаются маленькими. Надо чтобы графическая оболочка сама это делала.
Мне с решением этой проблемы пришлось весьма долго рыться в интернете, собирая мелкие заметки, т.к. не оказалось места где бы это можно было увидеть всё вместе.
Ниже будет идти список где что поправить, все параметры привожу для своего монитора — 13,3" при 2560x1600, это даёт 226 dpi. Более высокое разрешение сейчас я видел только в ноутбуке Fujistu U904 — 262 dpi.
+32
Marlight: лампы для программистов
12 min
92KMarlight — это светодиодная RGBW лампочка, управляемая по радиоканалу с частотой 2.4 ГГц. Она может управляться как с пульта, который непосредственно передает на частоте лампочки, так и с помощью роутера, который подключается в домашней Wi-Fi. С помощью роутера, который транслирует команды, поступающие к нему по сети в радиопакет для лампы, лампами можно управлять из мобильного приложения, компьютера или домашнего сервера.
Я рассказывал раньше о системе для умного дома — NooLite(1, 2), но самый главный ее недостаток для обычных пользователей это то, что ее надо устанавливать с применением клемм, паяльника, с разрезанием проводки и так далее. Обратной стороной является высокая возможность настроить все по своему вкусу, но это не всегда необходимо. В этот раз я расскажу о системе, которая обладает похожими функциями, но рассчитана на обычных людей — все что надо сделать для ее установки, это просто ввернуть лампочку в патрон.
Я рассказывал раньше о системе для умного дома — NooLite(1, 2), но самый главный ее недостаток для обычных пользователей это то, что ее надо устанавливать с применением клемм, паяльника, с разрезанием проводки и так далее. Обратной стороной является высокая возможность настроить все по своему вкусу, но это не всегда необходимо. В этот раз я расскажу о системе, которая обладает похожими функциями, но рассчитана на обычных людей — все что надо сделать для ее установки, это просто ввернуть лампочку в патрон.
+103
Обзор специализированных способов обхода блокировок в интернете
4 min
918KПредставляю вашему вниманию обзор и мои субъективные оценки некоторых специализированных способов обхода блокировок со стороны провайдеров или сетевых администраторов.
Описание:
Хороший, быстрый аддон.
На момент тестирования было доступно 5 прокси в разных странах.
Плюсы:
Высокая скорость работы аддона
Быстрые прокси
Минусы:
Требуется регистрация в сервисе
1. Аддоны для браузеров
ZenMate (Chromium-based, Firefox, Android, iOS)
- Удобство использования: 5/5
- Скорость: 5/5
- Шифрование трафика: Да (TLS)
- Анонимность: Да
- Проксирование всего трафика: Да
- Выборочное проксирование: Да
Описание:
Хороший, быстрый аддон.
На момент тестирования было доступно 5 прокси в разных странах.
Плюсы:
Высокая скорость работы аддона
Быстрые прокси
Минусы:
Требуется регистрация в сервисе
+89
Атаки по времени — сказка или реальная угроза?
4 min
34KПервую статью на хабр хотел написать совершенно о другом, но в один прекрасный день коллега по работе решил заморочиться и сделать защиту от «Атаки по времени» (Timing attack). Не долго разбираясь в различных материалах на эту тему, Я загорелся и решил написать свой велосипед и покататься на нем по лаборатории поэкспериментировать.
Результат этого небольшого эксперимента под катом.
Результат этого небольшого эксперимента под катом.
+43
Новое в Java 8
15 min
508KTranslation
Java еще не умерла — и люди начинают это понимать.
Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
+94
Дифференциальный криптоанализ для чайников
9 min
45KШифр FEAL обладает таким же уровнем стойкости что и DES. Более того, увеличенная длина ключа (64 бита по сравнению с 56 битами в DES) затрудняет возможность перебора. Шифр FEAL обладает хорошим распределением шифротекстов, близким к случайному. И это тоже говорит в пользу FEAL по сравнению с DES.Это краткое содержание спецификации алгоритма шифрования FEAL, опубликованного в 1987 году.
Ничто не вечно под луной. В данном топике я расскажу как при наличии всего 40 пар открытых-закрытых текстов получить полный ключ FEAL4 за несколько минут.
+62
Классические паттерны проектирования на Scala
14 min
37KTranslation
Об авторе:
Pavel Fatin работает над Scala plugin'ом для IntelliJ IDEA в JetBrains.
В этой статье будут представлены примеры того, как реализуются классические паттерны проектирования на Scala.
Содержание статьи составляет основу моего выступления на JavaDay конференции (слайды презентации).
Pavel Fatin работает над Scala plugin'ом для IntelliJ IDEA в JetBrains.
Введение
В этой статье будут представлены примеры того, как реализуются классические паттерны проектирования на Scala.
Содержание статьи составляет основу моего выступления на JavaDay конференции (слайды презентации).
+36
Модификация UEFI BIOS, часть вторая: полезные модификации
7 min
140KTutorial
В этой статье я постараюсь рассказать о наиболее популярных и полезных модификациях UEFI BIOS, условиях их применения и способах поиска. Кроме этого, на описанной в первой части утилите UEFITool свет еще не сошелся клином, поэтому будут упомянуты и другие программы, используемые для модификации UEFI BIOS'ов различных производителей.
Если тема вам интересна — добро пожаловать под кат.
Если тема вам интересна — добро пожаловать под кат.
+56
Основы Scala. 5 часов поедания мозгов
3 min
63KTutorial
Добрый день, уважаемое хабрасообщество!
В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».
Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».
Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
+50
Сетевое программирование для разработчиков игр. Часть 2: прием и передача пакетов данных
9 min
105KTranslation
От переводчика: Это перевод второй статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/
Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.
В предыдущей статье мы обсудили различные способы передачи данных между компьютерами по сети, и в конце решили использовать протокол UDP, а не TCP. UDP мы решили использовать для того, чтобы иметь возможность пересылать данные без задержек, связанных с ожиданием повторной пересылки пакетов.
А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.
В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).
Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.
Поэтому, хоть я далее и приведу первый простой пример взаимодействия с BSD сокетами, в дальнейшем мы не будем использовать их напрямую. Вместо этого, после освоения базового функционала, мы напишем несколько классов, которые абстрагируют всю работу с сокетами, чтобы в дальнейшем наш код был платформонезависимым.
Первая статья — http://habrahabr.ru/post/209144/
Прием и передача пакетов данных
Введение
Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.
В предыдущей статье мы обсудили различные способы передачи данных между компьютерами по сети, и в конце решили использовать протокол UDP, а не TCP. UDP мы решили использовать для того, чтобы иметь возможность пересылать данные без задержек, связанных с ожиданием повторной пересылки пакетов.
А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.
BSD сокеты
В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).
Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.
Поэтому, хоть я далее и приведу первый простой пример взаимодействия с BSD сокетами, в дальнейшем мы не будем использовать их напрямую. Вместо этого, после освоения базового функционала, мы напишем несколько классов, которые абстрагируют всю работу с сокетами, чтобы в дальнейшем наш код был платформонезависимым.
+38
Сетевое программирование для разработчиков игр. Часть 1: UDP vs. TCP
9 min
171KTranslation
От переводчика: Это перевод первой статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.
В этой статье мы начнем с самых базовых аспектов сетевого программирования — приема и передачи данных по сети. Прием и передача данных — это основная и наиболее простая часть из всего круга задач, которыми занимаются сетевые программисты, но часто бывает сложно определить, каким путем лучше двигаться. Уделите этой части достаточно внимания — если у вас останется непонимание, то это может привести к ужасным последствиям для вашей многопользовательской игры в дальнейшем!
Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.
В этой статье мы начнем с самых базовых аспектов сетевого программирования — приема и передачи данных по сети. Прием и передача данных — это основная и наиболее простая часть из всего круга задач, которыми занимаются сетевые программисты, но часто бывает сложно определить, каким путем лучше двигаться. Уделите этой части достаточно внимания — если у вас останется непонимание, то это может привести к ужасным последствиям для вашей многопользовательской игры в дальнейшем!
Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
+64
Облако.Mail.Ru + EncFS для резервного копирования домашнего фотоархива
6 min
114KTutorial
В конце декабря Mail.Ru вновь (впервые с 1997 года ;) выпустила революционный продукт — облачное хранилище, первым активным пользователям которого бесплатно выдают один терабайт. 1 Тб — по меркам начала 2014-го года это совершенно эпический объем, по крайней мере в масштабе национальной отрасли ИТ. Ради справедливости можно отметить, что некоторые китайские компании дают и больше, однако практическая применимость таких предложений для большинства читателей Хабрахабра выглядит сомнительной.
Небольшим изъяном актуальной версии Облака по мнению многих моих друзей и коллег выглядит то, что Облако (по крайней мере официально) не поддерживает WebDAV. Это не позволяет «из коробки» использовать шифрование с помощью простых и популярных в народе средств вроде Boxcryptor. Поскольку сам по себе Boxcryptor — это всего лишь удобная графическая надстройка над encfs+fuse, я решил для себя и для друзей составить короткую и простую инструкцию, как эффективно шифровать данные бэкапов в Облаке.Mail.Ru
Я продвинутый фотолюбитель. Мой фотоархив насчитывает примерно 600Гб данных, причем примерно половина из них — это выполненные в высоком разрешении сканы родительских слайдов, начиная с 1957 года. Почти все хранится в NEF+CR2 (это raw-форматы Canon и Nikon), каждая фотокарточка занимает от 15 до 60 мб. Иными словами, бесплатный терабайт от Flickr меня совсем не устраивал в частности из-за невозможности хранить необработанные исходники фото. Начиная с 2008-го года, резервирование архива выглядит так: раз в году я покупаю современный жесткий диск стоимостью 100 евро и копирую на него все содержимое предыдущего диска, а старый HDD отправляется «на пенсию» в медиа-сервер, который включается 3-4 раза в год. У этого подхода много достоинств (несмотря на смертность жестких дисков, данные еще ни разу не пропадали), но есть огромный недостаток — физическое расположение хранилища.
Я много путешествую по миру, и за последние 10 лет суммарно провел в России (где находится медиа-сервер и стопка «отставных» HDD) не более 4-х лет. Иногда случаются казусы, связанные с потерей внешних винчестеров — так я потерял значительную часть архива фотографий 2012-го года, которые банально не довез до своего дома на родине. На словах решение простое — «go cloud», а вот на деле тарифы всех мало-мальски удобных сервисов, позволявших заархивировать 1Тб оригиналов фотоизображений, были долгое время прямо-таки заоблачными.
И вот 20 декабря 2013 года нам было объявлено о том, что все желающие обладатели ящика на mail.ru могут получить в подарок 1 терабайт. Бесплатно. Для любых файлов. Но только у многих возникают вопросы, как хранить свои данные в облаке в зашифрованном виде.
Небольшим изъяном актуальной версии Облака по мнению многих моих друзей и коллег выглядит то, что Облако (по крайней мере официально) не поддерживает WebDAV. Это не позволяет «из коробки» использовать шифрование с помощью простых и популярных в народе средств вроде Boxcryptor. Поскольку сам по себе Boxcryptor — это всего лишь удобная графическая надстройка над encfs+fuse, я решил для себя и для друзей составить короткую и простую инструкцию, как эффективно шифровать данные бэкапов в Облаке.Mail.Ru
Постановка задачи
Я продвинутый фотолюбитель. Мой фотоархив насчитывает примерно 600Гб данных, причем примерно половина из них — это выполненные в высоком разрешении сканы родительских слайдов, начиная с 1957 года. Почти все хранится в NEF+CR2 (это raw-форматы Canon и Nikon), каждая фотокарточка занимает от 15 до 60 мб. Иными словами, бесплатный терабайт от Flickr меня совсем не устраивал в частности из-за невозможности хранить необработанные исходники фото. Начиная с 2008-го года, резервирование архива выглядит так: раз в году я покупаю современный жесткий диск стоимостью 100 евро и копирую на него все содержимое предыдущего диска, а старый HDD отправляется «на пенсию» в медиа-сервер, который включается 3-4 раза в год. У этого подхода много достоинств (несмотря на смертность жестких дисков, данные еще ни разу не пропадали), но есть огромный недостаток — физическое расположение хранилища.
Я много путешествую по миру, и за последние 10 лет суммарно провел в России (где находится медиа-сервер и стопка «отставных» HDD) не более 4-х лет. Иногда случаются казусы, связанные с потерей внешних винчестеров — так я потерял значительную часть архива фотографий 2012-го года, которые банально не довез до своего дома на родине. На словах решение простое — «go cloud», а вот на деле тарифы всех мало-мальски удобных сервисов, позволявших заархивировать 1Тб оригиналов фотоизображений, были долгое время прямо-таки заоблачными.
И вот 20 декабря 2013 года нам было объявлено о том, что все желающие обладатели ящика на mail.ru могут получить в подарок 1 терабайт. Бесплатно. Для любых файлов. Но только у многих возникают вопросы, как хранить свои данные в облаке в зашифрованном виде.
+66
Анонимный Дед Мороз 2014. Пост хвастовства новогодними подарками
1 min
58KПривет, %username%
Хабра-АДМ 2014 набирает обороты. Уже более 100 человек отправили подарки. И, что очень круто, 3 уже получили.
А это значит, что наступила пора показать всем, что вам прислал ваш Дедушка Мороз.
С НАСТУПАЮЩИМ НОВЫМ 2014 ГОДОМ!
UPD: Ссылка для обращения к новогодним эльфам.
+51
MNP — что имеем на сегодняшний день?
3 min
64KОсталось пару дней до начала внедрения услуги MNP (MobileNumber Portability). MNP – это возможность сохранить свой телефонный номер после смены оператора связи.
Активное обсуждение введения MNP началось еще в декабре 2012 года, но только более чем через полгода в июле 2013 было подписано постановление, касающееся внесения изменений и поправок в закон «О связи», позволяющий с 1 декабря 2013 года россиянам сохранять свой номер при переходе от одного оператора мобильной связи к другому. Заветная дата наступит уже в предстоящее воскресенье…
Активное обсуждение введения MNP началось еще в декабре 2012 года, но только более чем через полгода в июле 2013 было подписано постановление, касающееся внесения изменений и поправок в закон «О связи», позволяющий с 1 декабря 2013 года россиянам сохранять свой номер при переходе от одного оператора мобильной связи к другому. Заветная дата наступит уже в предстоящее воскресенье…
+56
Датацентр РЖД
2 min
61KНа маленькой улице поблизости от набережной Обводного канала стоит здание, выделяющееся лишь загадочной конструкцией на крыше.
После конференции «InfoTrans 2013» мне удалось побывать там, где не ступала нога журналиста, — в Санкт-Петербургском Информационно-вычислительном центре РЖД. Это один из трёх больших датацентров РЖД, управляющих всеми железными дорогами страны.
После конференции «InfoTrans 2013» мне удалось побывать там, где не ступала нога журналиста, — в Санкт-Петербургском Информационно-вычислительном центре РЖД. Это один из трёх больших датацентров РЖД, управляющих всеми железными дорогами страны.
+75
Unchecky – долой потенциально нежелательные программы
2 min
51KУже давно стал нормой тот факт, что при установке программного обеспечения (а иногда и при других обстоятельствах) предлагаются дополнительные потенциально нежелательные программы, такие как тулбар или «защитник интернета». Также часто попадаются предложения поменять стартовую страницу или поисковик. Эти предложения предоставляются как часть процесса установки и, как следствие, неопытный пользователь устанавливает весь набор по умолчанию, ни о чем не подозревая. Результат, я думаю, всем известен.
Я давно думал над этой проблемой, а сегодня хочу предоставить вам решение — программа под названием Unchecky (от англ. uncheck – снять галочку). Подробности под катом.
Я давно думал над этой проблемой, а сегодня хочу предоставить вам решение — программа под названием Unchecky (от англ. uncheck – снять галочку). Подробности под катом.
+60
FileAPI 2.0: Загрузка файлов на сервер год спустя
11 min
70KПривет Хабр! Примерно год назад я представил вашему вниманию первую версию open-source библиотеки FileAPI, предназначенную для работы с файлами на клиенте и последующей загрузки на сервер.
За это время был пройден долгий путь. Библиотека заработала 670+ звезд и 90+ форков. С помощью github-сообщества удалось исправить множество «детских» проблем и внести ряд улучшений. Было закрыто более 100 тасков, и благодаря Илье Лебедеву сделана загрузка файлов по частям. Сегодня я с гордостью хочу представить вам FileAPI 2.0.
За это время был пройден долгий путь. Библиотека заработала 670+ звезд и 90+ форков. С помощью github-сообщества удалось исправить множество «детских» проблем и внести ряд улучшений. Было закрыто более 100 тасков, и благодаря Илье Лебедеву сделана загрузка файлов по частям. Сегодня я с гордостью хочу представить вам FileAPI 2.0.
+148
Настройка I2P Out Proxy
2 min
28KTutorial
Добрый день уважаемые хабраюзеры.
Сегодня я вам предлагаю обсудить создание единого прокси сервера способного в пургу, жару и блокировку оставаться не преклонным и свято блюсти принципы свободы информации, единения и мира во всём мире. Да, да речь пойдет опять об i2p, но уже с позиции серверных настроек.
Представим, что существует добрый самаритянин за границей у которого постоянно включен i2p роутер и он готов нести радость людям создав нам proxy.antizapret.i2p
+7
А знаете ли Вы, что возвращает .getClass()?
2 min
108KЯ думаю, почти любого Java разработчика когда-то спрашивали на собеседовании: «Какие есть методы у класса Object?»
Меня, по крайней мере, спрашивали неоднократно. И, если в первый раз это было неожиданностью (кажется, забыл про clone), то потом я был уверен, что уж методы Object'а-то я знаю;)
И каково же было мое удивление, когда спустя несколько лет разработки я наткнулся на собственное незнание сигнатуры метода getClass()
Под катом пара слов про Class, .class, .getClass и, собственно, сюрприз, на который я наткнулся.
Меня, по крайней мере, спрашивали неоднократно. И, если в первый раз это было неожиданностью (кажется, забыл про clone), то потом я был уверен, что уж методы Object'а-то я знаю;)
И каково же было мое удивление, когда спустя несколько лет разработки я наткнулся на собственное незнание сигнатуры метода getClass()
Под катом пара слов про Class, .class, .getClass и, собственно, сюрприз, на который я наткнулся.
+32
Information
- Rating
- Does not participate
- Location
- Белгород, Белгородская обл., Россия
- Date of birth
- Registered
- Activity