Search
Write a publication
Pull to refresh
38
0
Алексей Дубинин @lxyd

User

Send message

I2P: Принципы функционирования основных сервисов сети

Reading time3 min
Views53K


Сегодня мы поговорим о том, что такое NetDB, SusiDNS и о начальной инициализации сети I2P.

Совсем скоро интернет в России станет не свободным, уже сейчас различные провайдеры блокируют те или иные сайты.

И у заблокированного ресурса есть два пути:
1) Надеяться, что пользователь будет заходить на сайт через proxy/VPN
2) Перенести сайт в децентрализованную, анонимную сеть
Читать дальше →

Kaylee: распределённые вычисления в браузере

Reading time3 min
Views14K
В 1999 году проект SETI@home предложил пользователям предоставлять ресурсы своих персональных компьютеров для анализа радиосигналов из космоса в целях поиска внеземного разума. В рамках этого проекта в университете Berkley была разработана платформа BOINC (Berkeley Open Infrastructure for Network Computing), на основе которой впоследствии были запущены уже упомянутый SETI@home, ABC@home (доказательство abc-гипотезы), Climateprediction.net (улучшение климатических моделей), LHC@home (симуляция столкновений высокоэнергетических частиц) и другие.

И всё бы хорошо, но для работы BOINC требуется выполнение одного обязательного условия: пользователю требуется скачать, настроить и запустить клиентскую часть. Как же быть, если по каким-либо причинам это невозможно сделать? И как было бы здорово просто кликнуть по ссылке в браузере и вмиг превратить компьютер в звено большой вычислительной сети!

С этими мыслями я взялся за написание Kaylee.

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

Обзор бюджетных аудиофильских наушников

Reading time15 min
Views160K
Настает время, когда человек, слушая музыку, понимает, что удовольствие от этого процесса можно заметно увеличить, например, прикупив качественный плеер с наушниками. В этой статье, я решил сделать детальный обзор наушников, которые будут по душе начинающим аудиофилам. Из нескольких сотен моделей, представленных сегодня на рынке, я постарался отобрать самое лучшее, самое топовое и популярное, но тем не менее уложиться в скромный бюджет 10 тыс. рублей. Слушая, изучая форумы, читая обзоры и анализируя тесты, я выполнил детальный анализ шести пар наушников, которые должны заинтересовать потенциального покупателя.

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

Очередь тяжелых заданий на bash

Reading time3 min
Views30K
Доброго времени суток, хабражители и хабрачитатели!
Возникла у меня недавно следующая задача: требуется мониторить определенный каталог на наличие файлов, и, в случае появления в нем файла необходимо этот файл перенести в более безопасное другое место, и запустить на нем довольно длительную обработку. Казалось бы, все просто, однако ситуация омрачается тем, что нельзя делать обработку одновременно нескольких файлов (обработка тянет файлы с буржуйских серверов, которые не позволяют качать много всего с одного IP).
На ум сразу же пришла очередь заданий (FIFO), которую хотелось бы сделать на bash (чего уж далеко ходить). Желающих получить готовое решение — прошу под хабракат.

Статья расчитана на начинающих, которые впервые слышат буквосочетание FIFO применительно к bash.
Читать дальше →

Создание стереограммы на основе трехмерной модели

Reading time7 min
Views31K
На Хабре уже писали о простом алгоритме создания стереограмм. Стереограмма в нём генерируется на основе карты высот и изображения с повторяющимся рисунком. В данной статье я хочу описать другой подход к созданию стереограмм – на основе трехмерной модели. Основные отличия описанного здесь алгоритма от алгоритма, указанного выше:

  • вместо карты высот (которая по сути представляет из себя карту смещений пикселей по горизонтали) объекты задаются непосредственно в трехмерных координатах;
  • нет ограничений на количество объектов и их расположение (за исключением того, что все они должны находиться в поле зрения и на некотором расстоянии от плоскости стереограммы – для того, чтобы их можно было увидеть), тогда как при использовании карты высот мы имеем дело только с одним слоем;
  • созданная стереограмма обладает перспективой (чем дальше от наблюдателя находится объект, тем меньшим он выглядит);
  • вид объекта зависит от ракурса, с которого он виден (как и для реальных объектов).

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

Какая команда в консоли отнимает у вас больше всего времени?

Reading time4 min
Views24K
У меня — 'cd'.

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

Но должны же быть решения!



В моей любимой оболочке zsh есть такая возможность — «разворачивание» путей по нажатию : например, "/u/in/sy" -> "/usr/include/sys/"

В остальных оболочках можно приноровиться и использовать $CDPATH или pushd/popd, но лично мне это до сих пор кажется неудобным.

А еще есть пара утилиток для ускоренной навигации. Самая известная из них, пожалуй, autojump. Она следит в каких папках пользователь проводит больше всего времени и позволяет указывать только фрагмент пути к папке. Например "incl" приведет вас в "/usr/include", если вы там часто бываете.

Autojump вдохновила другого разработчика на создание утилиты "z". "Z" использует в качестве критерия для перехода т.н. "frecency" - комбинацию частоты посещений папки (frequency) и времени последнего перехода туда (recency).

Обе утилиты хороши по-своему, и я так бы и пользовался autojump или z, однако что-то мне не давало покоя. А недавно я услышал одну фразу:

If the product is used as a tool, its interface should be as unintelligent as
possible. Stupid is predictable; predictable is learnable; learnable is usable.


И тут я понял что самое время придумать свой велосипед. Не-intelligent. Тупой и удобный.
Читать дальше →

Unix как IDE: Компиляция

Reading time4 min
Views57K
Под Unix существует множество компиляторов и интерпретаторов, но здесь мы будем обсуждать лишь gcc как средство компиляции C-кода, и коротко коснемся использования perl в качестве примера интерпретатора.

GCC



GCC — это набор компиляторов, обладающий очень почтенным возрастом и распространяемый под лицензией GPL. Он известен как инструмент работы с программами на C и C++. Свободная лицензия и повсеместная распространенность на Unix-подобных системах стали залогом его неизменной популярности, хотя есть и более современные альтернативы, использующие инфраструктуру LLVM, такие как Clang.
Читать дальше →

Unix как IDE: Работа с текстом

Reading time6 min
Views29K
Текстовый редактор — это основной инструмент для любого программиста, вот почему вопрос его выбора становится причиной яростных дебатов. Unix традиционно тесно связан с двумя своими многолетними фаворитами, Emacs и Vi, и их современными версиями GNU Emacs и Vim. Эти редакторы имеют очень разный подход к редактированию текста, но при этом сравнимы по мощи.

Поскольку я отношусь к секте Vim, далее мы обсудим неисчерпаемые возможности этого редактора, а также инструменты командной строки, вызываемые прямо из Vim для расширения встроенной функциональности. Некоторые из обсуждаемых дальше принципов могут быть применимы и для Emacs, но не для простых редакторов, вроде Nano.
Читать дальше →

Button c обведенным(stroke) шрифтом на Android

Reading time5 min
Views13K
image
Понадобился мне для проекта один специфический элемент — кнопка с обведенным шрифтом. Казалось бы, что тут такого — google точно должен был это предусмотреть. Но, как оказалось, стандартными способами это сделать нельзя и нужно покопаться под капотом Button. Начал я свои поиски с тени для шрифта.
Но попытка сделать stroke шрифт таким способом провалится —
во-первых, линия вокруг букв будет размытой тем больше, чем больше вы укажете число в shadowRadius;
во-вторых, нельзя изменить ширину линии.
Немного поразмыслив, я реализовал класс, который делает все что требуется. Кого заинтересовало — прошу под кат.
Читать дальше →

Эта бесконечная гирлянда

Reading time2 min
Views28K

Удивительно, что такая книга, как эта, до сих пор не была замечена на Хабре. Не могу не попытаться исправить этот недочет.
Итак, хочу представить вам книгу американского информатика Дугласа Роберта Хофштадтера «Гедель, Эшер, Бах: эта бесконечная гирлянда».

Ахилл: Вот если бы книга называлась «Гориллы, серебро, золото» или «Эму, золото…» — тогда бы я еще мог понять…
Черепаха: Может быть, вы предпочли бы «Медь, серебро, бабуины»?


Будучи написано более тридцати лет назад, это невероятное произведение ничуть не утратило своей интересности.

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

Message dispatching на D

Reading time10 min
Views2.7K
Многие разработчики игр сталкиваются с проблемой описания и реализации протокола общения клиента и сервера, особенно если пишут свои велосипеды для работы с сокетами. Ниже я расскажу о моей попытке решить задачу как можно элегантнее и удобнее для дальнейшего использования и масштабирования приложения. Будет много compile-time'a с автоматической кодогенерацией, нежно приправленный щепоткой run-time'a.
Читать дальше →

Vim :bw, :bd, :bun, :quit, :close. Что со всем этим делать?

Reading time3 min
Views11K
Vim имеет множество команд для закрытия чего угодно и в каких угодно сочетаниях, но чего он не умеет так это закрывать все одной командой. Человеку который начал использовать Vim недавно, это может показаться довольно странным. Попробуем разобраться, как исправить эту ситуацию.
Читать дальше →

Розалинд — платформа для изучения биоинформатики

Reading time2 min
Views17K
DNA

Широко известны сайты для решения олимпиадных задач по программированию, такие, как, например, TopCoder и Codeforces, а также сборники математических задач-головоломок, например, Project Euler. За последний год произошёл бум онлайн образования: возникли стартапы Coursera и Udacity, предоставляющие онлайн курсы от топовых университетов США… но для тех, кто хочет изучить биоинформатику, пока ничего нет.

Розалинд — проект, разрабатываемый в Санкт-Петербуге и University of California, San Diego с мая 2012 года, как раз заполняет эту нишу. Это платформа для обучения биоинформатике с помощью решения задач, бесплатная и открытая.
Читать дальше →

Kiosk Mode приложения на Android

Reading time4 min
Views66K
Привет Хабр. Многие из нас каждый день трудятся на определёнными приложениями, создают что-то своё или выполняют требования нерадивого заказчика. Одним из таких требований может быть что-то вроде: «Хочу что бы из приложения нельзя было выйти, не хочу чтобы можно было делать что-то ещё, кроме как находится в моём приложений». В этом топике хочу поделиться мыслями, как же такое сделать.

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

Continuous Integration для Android

Reading time7 min
Views18K
После реализации пары проектов под Android, стало понятно, что, несмотря на их небольшие размеры и кажущуюся простоту, без автоматизированных сборок и тестирования не обойтись. Родилось желание получить следующие возможности:
  • unit тестирование,
  • интеграционное тестирование,
  • тестирование интерфейса,
  • тестирование этих типов тестов на различных версиях Android и конфигурациях девайсов,
  • рассылка по email в случае сломанного билда;
  • таже не помешает автоматическая сборка релизов.
Читать дальше

Android — Сontinuous Integration. Часть 1

Reading time3 min
Views20K
Не буду описывать в сотый раз что такое CI и зачем это нужно. Выдумщиком данной концепции считается, не безизвестный, Мартин Фаулер, а с его трудом можно ознакомиться здесь.

Я же хочу в серии из нескольких статей рассказать о том, как организовать разработку Android приложений с использованием непрерывной интеграции. Для меня было неожиданностью, что несмотря на всю популярность CI, в интернете до сих пор не существует подробной инструкции, по шагам, для новичков, даже на английском языке, не говоря про русский (ну или я таких попросту не нашел).

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

Шаблоны проектирования: нарушать правила иногда бывает полезно

Reading time11 min
Views7.6K
Это перевод оригинальной статьи Design Patterns: When Breaking The Rules Is OK

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

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

Это наводит на размышления об истории и предназначении шаблонов проектирования, а также о том, когда их следует применять, а когда — нет. А что если в каких-то случаях изменение шаблона ради достижения иного или лучшего результата может оказаться правильным решением? Разумеется, мы сразу замечаем, когда какой-либо шаблон используется неправильно. Но, возможно, в некоторых ситуациях это действительно уместно? Чтобы найти ответ на этот вопрос, давайте начнем с самого начала.
Читать дальше →

Написание музыки в Linux: что есть прямо сейчас

Reading time9 min
Views127K
Недавно я прочитал о том, что Гэйб Ньюэлл всерьёз настроен на то, чтобы перенести хорошие и качественные игры в Linux. Как он считает, это именно то, чего не хватает, и что на данный момент ограничивает развитие платформы. Безусловно, он прав. Тем не менее, лично для меня есть и другая область, которая мне даже намного важнее, чем игры — это музыка. Если без игр я могу обойтись, то музыка для меня необходима — как, впрочем, и для многих других людей.

Рабочее место Niels Ott
На картинке ­— рабочее место Niels Ott, на компьютере запущен Ardour.

Моя жена тоже музыкант, и когда она увидела, какие секвенсоры и синтезаторы есть в Linux — она даже не стала пытаться в них разобраться, просто вернувшись к своим Cubase и Reason. На её ноутбуке есть Windows 7, и когда она пишет музыку, она просто перезагружается туда и запускает там эти программы.

Я же, пользуясь Linux уже около 10 лет, не могу так просто отказаться от того, чтобы хотя бы пробовать имеющиеся программы. В принципе, могу точно сказать, что за 10 лет всё очень сильно изменилось в лучшую сторону. И всё же то, что сейчас есть под Linux для написания музыки, очень далеко от идеала. Давайте вместе разберёмся, почему бо́льшую часть музыки всё ещё пишут на Mac OS X или Windows.
Читать дальше →

Бесплатные книги по JavaScript

Reading time2 min
Views66K

Javascript Enlightenment


Cody Lindley


Уровень знаний: средний
Тщательный обзор мировоззрения JavaScript через разбор встроенных объектов и нюансов.

Открыть

Eloquent Javascript


Marijn Haverbeke


Уровень знаний: начинающий
Вводная книга по JavaScript и программирование в целом.
Открыть

Building A JavaScript Framework


Alex Young


Уровень знаний: продвинутый
Избранные статьи из цикла«Let’s Make a Framework».
Открыть

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

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity