05 декабря 2014

GitHub VS Роскомнадзор - кто кого?


Разумеется, под "кто кого" нужно понимать не битву между администрацией GitHub'а и сотрудниками Роскомнадзора, а самоорганизующийся компромисс между дебильными законами с их бездумным применением, и возможностью Россиян нормально пользоваться интернетом.

Итак, случилось то, чего IT-шная братия опасалась ещё тогда, когда законопроект о блокировке сайтов впервые появился на слуху: из-за того, что какой-то мудак загрузил пользовательский контент, попадающий под ограничения закона, на очень популярный профессиональный сайт (в данном случае для программистов), и этот сайт оказался заблокирован. Вследствие чего оказалась частично или полностью парализована работа очень многих людей.

Роскомнадзор заблокировал очередной сайт в интернете. Ну и что?

28 апреля 2014

Yandex PDD в качестве Dynamic DNS для Linux / OS X

Снова про бесплатный Dynamic DNS своими руками. Пришло время прощаться с Dyn.com (бывший DynDNS). Началось всё с того, что благополучно работавший 15 лет DynDNS сначала перестал регистрировать бесплатных пользователей, сократил количество предлагаемых на выбор доменов, стал заставлять раз в 30 дней подтверждать активность аккаунта, заходя в него, а теперь и вовсе объявил о прекращении предоставления бесплатных услуг любителям халявы вроде меня.

Сначала я начал искать альтернативу вроде no-ip.com или dns.he.net. Но вспомнил, что есть замечательный DNS сервис от Яндекс, совмещённый с почтой для домена, которым я уже пользуюсь. Осталось только создать в нём субдомен и научиться обновлять для него свой IP адрес. В общем-то готовые решения для этого быстро нашлись на GitHub. Например, вот GUIёвое приложение на .NET для Windows, или расширение для PowerShell. Ещё нашлись клиенты на Ruby, Perl (12) и иже с ними, работающие по принципу "вот 30 строк кода на моём любимом языке, но для того, чтобы это заработало, скачайте фреймворк и 300 библиотек, которые требует мой код". Решения для Windows мне не подходят, т.к. у меня нет Windows. Наколенные реализации на ruby, perl и прочей экзотике меня тоже не порадовали. Нет, я, конечно, могу скачать руби и gem'ы для него, но не хочу. Я хочу, чтобы просто работало. Желательно в Linux, а ещё лучше - на роутере.

21 апреля 2014

Чтобы узнать, кто такая проститутка Кэт, госдума приняла отдельный закон

К сегодняшнему дню только ленивый не написал о том, что закон, приравнивающий блоггеров к СМИ, избыточен (дублирует действующие законодательные нормы) и в плане глобальной выполнимости иррационален (даже Роскомнадзор, ответственный за его выполнение не представляет, как это можно сделать). Единственное для чего он может быть использован на практике - в качестве инструмента для выборочных репрессий против неугодных писак, до которых по действующему законодательству докопаться не получается.

А вот если посмотреть на это с другой стороны - кто попадёт под действие нового закона в первую очередь? За исключением самой процедуры регистрации в качестве СМИ, какие изменения ждут топ-блоггеров, какие нормы нового закона они сейчас нарушают? Очевидно, усилятся репрессии против блога команды Навального, но его хоть по закону, хоть вопреки закону будут прессовать. Закон о блогах дублирует существующие статьи (клевета, разжигание, налоги с рекламы и т.п.), которых авторы блогов-тысячников и миллионников и так сейчас придерживаются (или обязаны придерживаться) - в этом плане вряд ли что-то изменится. Ну разве что дизайнеру всея Руси придётся воздержаться от обилия нецензурных фраз. Пожалуй, нововведениями являются обязательные деанонимизация (необходимость опубликовать своё реальное имя) и официальный публичный адрес для обращений, на который могут писать "компетентные органы" и автор на их обращения обязан отвечать. То, что нужно отвечать перед "компетентными органами" - вряд ли можно назвать новостью. Единственным принципиальным изменением является лишение девственности анонимности. Ну а кто из топ-блоггеров пишет анонимно? Большинство своих имён и так не скрывают. Я бы даже сказал, они и так известны. За сокрытие собственной личности борется, пожалуй, только ставшая мегапопулярной внезапно даже для себя проститутка Кэт. Так вот и получается, что одно из немногочисленных изменений, которые реально вызовет новый закон в российской блогосфере (помимо выборочных репрессионных действий) - Екатерина перестанет быть Безымянной. Стоило ли ради этого всей государственной думой принимать аж целый закон?

21 января 2014

Плохой хороший МТС

Сегодня, случайно обнаружив на сайте МТС новость о том, что я могу сэкономить 500 рублей, я очень обрадовался (и этой экономии я радуюсь до сих пор). Однако, в процессе подключения и после, решив немного покопаться в личном кабинете, и проанализировать свои затраты на мобильную связь, в очередной разы возымел негодование от непрозрачности и неудобства пользования сервисами оператора большой тройки и запутанности тарифов. Желающим узнать причины негодования подробнее, под кат.

Осторожно, будет мат. По-другому, извините, не получилось.


24 декабря 2013

Save programmers' SSD

Recently, building project, I thought, how many file i/o operations happen during build process, and how terribly it reduces my SSD lifetime by consuming a limited number of write cycles. Immediately appeared a natural wish to link a build system's temporary files directory somewere in tmpfs. At first I wanted to write a shell script, but soon understood that it's a wrong way and decided to include according instructions in build project. As I wanted to make this easily reusable, a small SaveSSD plugin for Gradle was born. Source code is published at Github, and the compiled library can be included in project by referencing my maven repository at Bintray. Plugin was tested in Android Studio and Intellij IDEA with Android and Java projects, but it should work with any Gradle project on all *nix systems (on Windows it just does nothing). By the way, as RAM access is much faster, than HDD access, HDD owners also can gain profit from SaveSSD plugin usage - build process becomes faster. Nevertheless, there is an option to turn it on and off for every team member individually.

Спасаем программерские SSD

Недавно, ожидая завершения сборки проекта, я задумался, сколько операций файлового ввода-вывода происходит во время этого процесса: генерация файлов с байткодом, файлы ресурсов, одексированные файлы, оптимизация всего этого ProGuard'ом, выполнение тестов и т.п., а также отчёты и логи о каждом действии, и как это влияет на срок жизни моего SSD. И сразу захотелось прилинковать каталог с временными файлами системы сборки куда-нибудь в tmpfs. Сначала хотел написать shell-скрипт, но, быстро осознав негобкость такого подхода, решил включить соответствующие инструкции в сам проект, а также сделать их подходящими для повторного использования с минимумом усилий. В результате получился плагин SaveSSD для Gradle (системы сборки и управления зависимостями, используемой в качестве основной в Android Studio, а также поддерживаемой в некоторых других IDE). Полную инструкцию по использованию можно посмотреть на Github, где опубликованы исходники, а подключить скомпилированную библиотеку можно, сославшись на мой репозиторий в Bintray. Протестировано в Android Studio и Intellij IDEA на Android и Java проектах, но должно работать с любыми Gradle-проектами на *nix-системах (при запуске под Windows плагин просто ничего не делает). Кстати, поскольку скорость доступа к RAM существенно выше, чем к HDD, владельцы HDD тоже могут получить от этого плагина выгоду в виде ускорения сборки. Тем не менее, предусмотрена возможность включать и выключать его каждому участнику команды индивидуально, по желанию.

18 ноября 2013

Очередное свинство от МТС

В кои-то веки мой баланс на счёте оператора мобильной связи МТС оказался отрицательным. Обраружив это, я заметил такую вот несправедливость: у меня подключена услуга "СуперБИТ", чтобы можно было пользоваться интернетом на смартфоне, не обращая внимание на то, в каком регионе России находишься (от Мотива в своё время отказался именно из-за конских цен на роуминг и интернет-роуминг, соответственно). Стоит это удовольствие без малого 200 рублей в месяц, оплата снимается единовременно, так что, немного недоглядев, немудрено уйти в минус, что, собственно, и произошло. Так вот свинство МТС заключается в том, что сняв деньги за услугу по предоставлению "безлимитного" интернета на месяц вперёд, и обнаружив, что на счёте после этого образовался минус, они тут же перестают её предоставлять. Конечно, нормально, когда при отрицательном балансе не предоставляются тарифицируемые услуги, но когда мне не предоставляют уже оплаченную услугу и отказываются предавать мой нетарифицируемый (в соответствии с оплаченной услугой) траффик, это, на мой взгляд, свинство, даже если где-то там мелкими буковками написано, что они могут так делать. И ведь, будь у меня доступен этот трафик, я бы с тут же зашёл в интернет-банк прямо со смартфона, и оплатил, как только обнаружил "недостачу". Ну пусть бы даже при отрицательном балансе были доступны только сайты самого МТС, на котором можно пополнить баланс с банковской карты и/или крупнейшие интернет-банки, но ведь услуга передачи данных отключается вообще! И, находясь в центре города (хорошо, если своего), приходится как-нибудь изворачиваться, искать Wi-Fi или терминал оплаты платить конскую комиссию за пополнение счёта (с интернет-банками я уже забыл что это такое). Ситуацию несколько усугубляет то, что никаких оповещений не приходит, и о "минусе" узнаёшь в самый неподходящий момент, помучившись с телефоном, недоумевая, почему "интернет не работает". При попытке позвонить хотя бы слышишь голосовое предупреждение о недостатке средств, а интернет просто молча пропадает.

P.S.: Напоследок немного позитива: пополняя счёт, обнаружил, что сейчас действует акция +10% бонусом от суммы пополнения счёта с помощью MasterCard, "заработал" 200 халявных рублей, успевайте.