Search
Write a publication
Pull to refresh
52
0.5
Дмитрий @bogolt

User

Send message

WhatsApp вышел на тропу войны

Reading time7 min
Views119K
Вы уже слышали, что WhatsApp был куплен Фейсбуком. Но мимо внимания публики прошла не менее интересная новость.
WhatsApp начал проводить агрессивную политику в адрес открытых решений, реализующих его протокол.

Об этом сообщают разработчики проекта OpenWhatsApp, который разрабатывает WhatsApp-клиенты для Nokia N9 и Blackberry 10, где нету официальных клиентов WhatsApp.
По требованию жалобы DMCA, в конце прошлой недели Github удалил более 35 репозиториев с открытым исходным кодом и, как обещают юристы WhatsApp, это только начало.

Пишешь либу под WhatsApp — значит поднимай Gitlab!

Сомнения в юридической чистоте проекта OpenWhatsapp в целом оправданы, однако есть ряд этических и бизнес-возражений к принятым мерам.
Давайте изучим историю вопроса и позицию позицию обеих сторон.
Читать дальше →

Переходы наличности и переходы на личности

Reading time12 min
Views85K
Представьте, что мы живем в мире криптографии, электронной коммерции и свободных экономических отношений. Пользуемся электронными средствами платежей, где в корзине и кошельке операции осуществляет калькулятор, где микроскопические суммы и огромные средства проводятся в многочисленных транзакциях без каких-либо проблем за ничтожное количество времени, с автоматическим учетом налогов, сборов и отчислений, где нам привычны покупки в электронных супермаркетах и доставка до порога по одному прикосновению к экрану телефона или клику мышкой. И вот, в наш прекрасный, удобный и отлаженный мир электронных платежей, построенный на принципах безопасности и криптографии, со всеми присущими ему технологиями и образу мышления, впитанными с молоком матери, приходит причудливый и странный механизм, которым, как говорят средства массовой информации, пользуются только анархисты, конспираторы и преступники.
Любопытное нажатие для путешествия в этот мир

Децентрализация: Какие сервисы уже есть?

Reading time8 min
Views57K


Децентрализация — это отсутствие единого центра контроля и единой точки отказа.
Несомненно, в нынешнее время, много проектов стараются перевести те или иные сервисы от принципа Клиент-Сервер к принципу Клиент-Клиент.

Давайте посмотрим что мы уже имеем, и чего нам не хватает.

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

Просто о make

Reading time6 min
Views497K
Меня всегда привлекал минимализм. Идея о том, что одна вещь должна выполнять одну функцию, но при этом выполнять ее как можно лучше, вылилась в создание UNIX. И хотя UNIX давно уже нельзя назвать простой системой, да и минимализм в ней узреть не так то просто, ее можно считать наглядным примером количество- качественной трансформации множества простых и понятных вещей в одну весьма непростую и не прозрачную. В своем развитии make прошел примерно такой же путь: простота и ясность, с ростом масштабов, превратилась в жуткого монстра (вспомните свои ощущения, когда впервые открыли мэйкфайл).

Мое упорное игнорирование make в течении долгого времени, было обусловлено удобством используемых IDE, и нежеланием разбираться в этом 'пережитке прошлого' (по сути — ленью). Однако, все эти надоедливые кнопочки, менюшки ит.п. атрибуты всевозможных студий, заставили меня искать альтернативу тому методу работы, который я практиковал до сих пор. Нет, я не стал гуру make, но полученных мною знаний вполне достаточно для моих небольших проектов. Данная статья предназначена для тех, кто так же как и я еще совсем недавно, желают вырваться из уютного оконного рабства в аскетичный, но свободный мир шелла.
Читать дальше →

Great Permutator — опыт участия в бандлах и не только

Reading time9 min
Views6.1K
Всем привет! В данной статье я поделюсь своим опытом продвижения компьютерной игры и участия в бандлах на примере моего проекта Great Permutator, который я очень неспешно пилю вот уже почти полтора года. Возможно, этот опыт кому-то покажется интересным, а кому-то даже окажется полезным. Общий тон статьи несколько негативный, рассказывающий «где были ошибки» и «как лучше не делать», нежели «как у нас все круто и хорошо».

image

Но, обо всем по порядку.

Читать дальше →

Домашний сервер «всё-в-одном» — success story

Reading time9 min
Views139K
Жил да был у меня роутер одной хорошей фирмы на букву «Dead». Ну, это с ним, собственно, и случилось.
Посмотрел я на цены новых, на кучу компьютерного хлама в углу, на список подключений на домашнем компе… И понял, что не нужен мне роутер. Соберу свой, с нормальной маршрутизацией, DNS, WINS, i2p, блекджеком и так далее.
Как это было?

Асинхронность: назад в будущее

Reading time22 min
Views114K

Асинхронность… Услышав это слово, у программистов начинают блестеть глаза, дыхание становится поверхностным, руки начинают трястись, голос — заикаться, мозг начинает рисовать многочисленные уровни абстракции… У менеджеров округляются глаза, звуки становятся нечленораздельными, руки сжимаются в кулаки, а голос переходит на обертона… Единственное, что их объединяет — это учащенный пульс. Только причины этого различны: программисты рвутся в бой, а менеджеры пытаются заглянуть в хрустальный шар и осознать риски, начинают судорожно придумывать причины увеличения сроков в разы… И уже потом, когда большая часть кода написана, программисты начинают осознавать и познавать всю горечь асинхронности, проводя бесконечные ночи в дебаггере, отчаянно пытаясь понять, что же все-таки происходит…

Именно такую картину рисует мое воспаленное воображение при слове “асинхронность”. Конечно, все это слишком эмоционально и не всегда правда. Ведь так?.. Возможны варианты. Некоторые скажут, что “при правильном подходе все будет работать хорошо”. Однако это можно сказать всегда и везде при всяком удобном и не удобном случае. Но лучше от этого не становится, баги не исправляются, а бессонница не проходит.

Так что же такое асинхронность? Почему она так привлекательна? А главное: что с ней не так?
Назад в будущее...

Немного о независимых игровых разработчиках

Reading time8 min
Views51K
Так случилось, что я уже длительное время занимаюсь фултайм инди разработкой. Это значит, что единственный источник дохода — это игры, которые я делаю не на заказ. Никакого фриланса или удаленной работы. Параллельно явлюясь соведущим подкаста для инди разработчиков, где гости рассказывают каково это быть независимыми разработчиками в той или иной части рынка, используя определенную технологию и целясь на какие-то платформы. Эта статья — небольшой FAQ по частым вопросам, которые приходят.

Читать дальше →

Ускоряем Nginx за 5 минут

Reading time5 min
Views298K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь

Продуктивная прокрастинация: разработка под BlackBerry и Tizen

Reading time8 min
Views18K


Я не фанат Android. И еще больший «не фанат» Java. Поэтому, когда передо мной встала задача закончить портирование моего iOS/Mac/Win8/WP приложения на Android, я предпочел заняться чем угодно, лишь бы оттянуть этот счастливый момент: съездил на собеседование в Москву на позицию iOS разработчика в Британию (провалил), сделал вне очереди две карты к моей стратегической игре, посмотрел фильм «Кадры» («The Internship» – право, не стоило), сделал себе понтовые наклейки на MacBook и… выделил два раза по две недели на портирование того же приложения под BlackBerry и Tizen.

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

PS. Не спешите минусовать, никуда я не денусь, и сделаю порт приложения на Android… после того, как портирую под все остальное…
Читать дальше →

Internet Archive позволяет запускать Atari-игры и старое ПО прямо в браузере

Reading time1 min
Views20K


Два года ушло у команды Internet Archive на разработку JavaScript-порта MESS-эмулятора, позволяющего запускать старые игры и ПО (типа первого редактора таблиц) прямо в современном браузере. По словам разработчиков, разработка позволяет запускать все, от Atari-игр до старого-старого ПО.

Читать дальше →

Хакеры на экране — 2

Reading time5 min
Views128K


Этот пост — продолжение статьи о том, как в кино изображают хакеров. Затронутая тема показалась мне довольно интересной (и далеко не исчерпанной) и в эти выходные я решил продолжить описывать такое явление, как «хакеры на экране» и дополнить коллекцию киноляпов.

На КДПВ стоп-кадр фильма «Железный Человек-2». Как нетрудно догадаться, рисующие этот интерфейс управления боевого костюма дизайнеры зашли в первый попавшийся русскоязычный онлайн-магазин, торгующий кондиционерами (умиляет даже сохранившееся название переменной «kolichectvo») и вырезали часть html-кода…

Читать дальше →

zsh: tips & tricks

Reading time3 min
Views31K

zsh logoО zsh не раз писали на хабре. Однако, и как те топики, и как мои личные наблюдения, показывают, что большинство людей, знакомых с zsh, используют его как bash с продвинутым автокомплитом. Да и тот (автокомплит) используют не на полную катушку.



Я не хочу описывать как раскрасить консоль во все цвета радуги или сделать промт, показывающий всё на свете. Я хочу показать, что возможности zsh гораздо шире, и его использование в качестве основной оболочки может сделать вашу работу немного краше.

Если вам интересно, и вы не сторонник холиваров, милости прошу

Linux Kernel EFI Boot Stub или «Сам себе загрузчик»

Reading time10 min
Views81K
UEFI Tux Logo

Введение


Прочитав недавнюю статью Загрузка ОС Linux без загрузчика, понял две вещи: многим интересна «новинка», датируемая аж 2011 годом; автор не описал самого основного, без чего, собственно, и работать ничего не будет в некоторых случаях. Также была ещё одна статья, но либо она уже устарела, либо там опять таки много лишнего и недосказанного одновременно.

А конкретно, был упущен основной момент — сборочная опция ядра CONFIG_EFI_STUB. Так как в последних версиях U(lu/ku/edu/*etc*)buntu эта опция по умолчанию уже включена, никаких подозрений у автора не появилось.
Насколько мне известно, на текущий момент она включена в дистрибутивах указанных версий и выше: Arch Linux, Fedora 17, OpenSUSE 12.2 и Ubuntu 12.10. В комментах ещё упомянули, что Debian с ядром 2.6 умеет, но это не более, чем бэкпорт с последних версий. На этих дистрибутивах пересобирать вообще ничего не нужно! А ведь на других CONFIG_EFI_STUB, скорее всего, либо вообще отсутствует, т. к. опция доступна только с ядра версии 3.3.0 и выше, либо выключена по умолчанию. Соответственно, всё, описанное ниже, справедливо для ядра, собранного с опцией CONFIG_EFI_STUB.

Итак, что же такое Linux Kernel EFI Boot Stub?


Общая информация

А ни что иное, как… «exe-файл»!
Читать дальше →

Некоторые возможности Python о которых вы возможно не знали

Reading time8 min
Views117K

Предисловие


Я очень полюбил Python после того, как прочитал книгу Марка Лутца «Изучаем Python». Язык очень красив, на нем приятно писать и выражать собственные идеи. Большое количество интерпретаторов и компиляторов, расширений, модулей и фреймворков говорит о том, что сообщество очень активно и язык развивается. В процессе изучения языка у меня появилось много вопросов, которые я тщательно гуглил и старался понять каждую непонятую мной конструкцию. Об этом мы и поговорим с вами в этой статье, статья ориентирована на начинающего Python разработчика.

Подробности

Автоматическая очистка старых драйверов, или выжмем немного места из Windows 7

Reading time6 min
Views233K
В один прекрасный (или печальный, кому как) день мне надоело, что у меня периодически заканчивается место на ноутбуке. Да, я в курсе, что жёсткие диски сейчас дешевы, но это для меня не выход, потому что:
  • У меня SSD, а он всё-таки подороже будет, чем обычные HDD (объём моего текущего SSD — 120 гигов)
  • Ноутбук рабочий, соответственно данные на нём тоже, должны быть шифрованы, всё такое, поэтому самопальный и не утверждённое работодателем носитель втыкать не стоит
  • Я жадный :)

Этот топик, пожалуй, предназначен и может быть полезен тем людям, кого волнует свободное место на системном диске, обычные средства очистки уже испробованы, а хочется выжать ещё чуть-чуть (как в старом анекдоте — первая попавшаяся в гугле ссылка на анекдот, если сайт плохой — пардон).
Если заинтересовало - милости просим

FQ_CoDel — планировщик пакетов, который сделает все за вас

Reading time3 min
Views28K
Качаете и раздаете торренты на высокой скорости, но из-за этого прыгает пинг в онлайн-играх, и играть становится невозможно? Сожитель совершает видеозвонок по скайпу, а вы не хотите ему мешать? Держите файлопомойку, которая занимает весь канал, а QoS настраивать лень? Заливаете видео на youtube с телефона, скорость ограничить не можете?

fq_codel — планировщик пакетов (qdisc) с активным управлением очередью, который решит все ваши проблемы!
Все еще не верите? Посмотрите видео!

На видео видно, что компьютер слева, подключенный через обычный домашний роутер с прошивкой cerowrt (измененный OpenWRT), открывает сайты значительно быстрее, чем правый компьютер с тем же роутером, но со стандартной прошивкой.
Читать дальше →

Hacker-friendly Software-defined radio

Reading time4 min
Views68K
Сложно себе представить, как бы выглядел сегодня мир, если бы передача информации посредством радиосигналов не была изобретена. К счастью для нас, развитие цивилизации пошло иным образом, и на сегодняшний день мы имеем не поддающееся исчислению количество информации, витающей в эфире. Большое разнообразие бытовой и промышленной радиоаппаратуры, реализующей различные протоколы взаимодействия, огромные информационные системы, в основе которых лежит обмен информацией по радиоканалам. Определенный интерес порой представляет из себя, как же организовано это невидимое глазу общение и обмен данными.

Взглянем на пару любопытных доступных инструментов для работы с радио.
Читать дальше →

А почему бы не перестать страдать по мелочам?

Reading time3 min
Views47K


Вот ждёте вы важное письмо от коллеги. 5 минут, 10, 20 — а нет его! Блин, а проверю-ка я спам. И точно — есть, 19 минут назад пришло. Чёрт, я же вроде уже добавлял этого человека в whitelist — почему письмо в спаме? Надо разобраться, проверить правила… Но сейчас нет времени, это мелочь, письмо срочное, а в эти правила как закопаешься, так на полчаса, еще и админов может быть придётся дёргать. Нет, потом…
А завтра письмо от коллеги опять в спаме.

Так, заходим на сайт… Блин, не сохранилась авторизация. Вот на всех сайтах сохраняется, а тут нет. Почему? Может быть почистить куки? Может сохранился старый пароль? Надо разобраться… Нет, ну это сейчас и в настройках рыться, и не дай бог, сохранённые пароли для других сервисов потру, нет, потом. Это ведь, в сущности, мелочь, а мне надо работать…
А завтра снова раздражение от не сохранённой авторизации и минута на размышление о причинах.

О, вот библиотека, которая делает то, что мне надо. Хм, на Python, а мне надо на С++. А на С++ такой нет. Ну ок, почитаю питоновский код, пойму общую идею и перепишу на С++. Ух ты, у моего редактора нет подсветки кода на Python! Может быть есть какой-то плагин? Или поискать другие редакторы? Ай, ну ладно, это ведь одноразовая задача, не буду тратить время — сейчас полдня потрачу на сравнение десятка IDE и редакторов кода на Python, а у меня ведь задача совсем другая, плюну, это ведь мелочь…
А завтра к библиотеке на Python выходит обновление и его снова приходится читать.

Почему бы не перестать страдать по мелочам?
Читать дальше →

Information

Rating
3,215-th
Registered
Activity