Как стать автором
Обновить
44
0
александра @equand

Пользователь

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

Организация домашнего медиапространства

Время на прочтение5 мин
Количество просмотров13K
Вот уже полтора года мне служит верой и правдой домашний медиасервер, задачами которого являются:
  • torrent-качалка-раздавалка;
  • локальная файлопомойка;
  • примитивный веб-сервер для таких же примитивных страничек (а чего взять-то от горняка?);
  • ftp-сервер;
  • «генератор аудио-видеоконтента» для просмотра на телевизоре закачанных фильмов/мультиков (благодаря встроенной видюхе ION)...

Вертится это все под периодически обновляемой Убунтой, и в общем и целом за исключением некоторых недостатков, до недавнего времени вполне устраивал.
Как быть и что делать - под катом. Многабукаф...
Всего голосов 43: ↑38 и ↓5+33
Комментарии71

Простой интерпретатор с нуля на Python (перевод) #1

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


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


В этом цикле статей я попытаюсь захватить часть этой простоты путем написания простого интерпретатора для обычного императивного языка IMP (IMperative Language). Интерпретатор будет написан на Питоне, потому что это простой и широко известный язык. Также, питон-код похож на псевдокод, и даже если вы не знаете его [питон], у вас получится понять код. Парсинг будет выполнен с помощью простого набора комбинаторов, написанных с нуля (подробнее расскажу в следующей части). Никаких дополнительных библиотек не будет использовано, кроме sys (для I/O), re (регулярные выражения в лексере) и unittest (для проверки работоспособности нашей поделки).
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии14

Написание парсера с нуля: так ли страшен черт?

Время на прочтение12 мин
Количество просмотров95K
В прошлом топике я рассказывал о том, как мы с другом решили ради развлечения написать свой встраиваемый язык программирования для платформы .NET. У первой версии был серьезный недостаток — парсер был реализован на F# с помощью сторонней библиотеки. Из-за этого требовалась куча зависимостей, парсер работал медленно, а поддержка его была крайне муторным занятием.

Очевидно, что парсер нужно было переписать на C#, но при мысли о написании парсера с нуля вдруг находилась дюжина других срочных дел. Таким образом таск перекидывался и откладывался практически полгода и казался непосильным, а в итоге был сделан за 4 дня. Под катом я расскажу об удобном способе, позволившим реализовать парсер достаточно сложной грамматики без использования сторонних библиотек и не тронуться умом, а также о том, как это позволило улучшить язык LENS.

Но обо всем по порядку.
Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии5

Построение drbd-зеркала на Proxmox-3.0

Время на прочтение6 мин
Количество просмотров18K
В данной статье я хочу описать how-to по созданию drbd зеркалирования на Proxmox 3.0 хост-машинах. Объединить машины в proxmox кластер имеет смысл до этих операций – хотя в общем то нет никакой разницы.
Основным отличием данного материала от многих, раскинутых на просторах интернета, то что мы делаем drbd раздел не на новом физическом диске, подключенном вторым, а на lvm разделе в пределах единственного наличествующего диска.
Вопрос целесообразности таких действий достаточно спорный – будет ли быстрее drbd на «сыром» диске или нет, но в любом случае это 100% опробованный вариант. В копилку так сказать. Да и работа с «сырым» диском – это просто частный случай данной инструкции.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии18

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Смешивание текстур ландшафта

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


В данной статье я расскажу об алгоритме смешивания текстур, который позволяет привести внешний вид ландшафта ближе к естественному. Этот алгоритм легко может быть использован как в шейдерах 3D игр, так и в 2D играх.

Статья рассчитана на начинающих разработчиков игр.
Читать дальше →
Всего голосов 243: ↑237 и ↓6+231
Комментарии27

RigidBot, бюджетный 3D-принтер не уступающий лидерам

Время на прочтение2 мин
Количество просмотров160K
В недавнем времени на кикстартере стартовал проект «бюджетного» 3D принтера — RigidBot 3D Printer предлагающий качественный и дешевый вариант 3d-печати для дома или офиса. В лучших традициях краудфандинга, в первые 12 часов запрошенная сумма ($31.500) была превышена на порядок и, на текущий момент, подбирается к отметке в $500.000.

image

И хотя, очередным 3D-принтером никого не удивишь, все же стоит выделить пару интересных особенностей данного проекта:
Читать дальше →
Всего голосов 80: ↑75 и ↓5+70
Комментарии38

10 девайсов, которые вы можете проапгрейдить, немного поковырявшись с электроникой

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

Правило №1 в DIY: никогда не довольствуйтесь тем, что вам дано. Вы можете проапгрейдить или улучшить все что угодно обладая скромными познаниями и приложив немного усилий, особенно если вы немного знакомы с электроникой. Под катом 10 домашних предметов, которые вы можете круто прокачать, используя капельку припоя и ряд DIY ноу-хау.
Читать дальше →
Всего голосов 168: ↑133 и ↓35+98
Комментарии78

Протокол Railgun для сжатия трафика

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


CDN-провайдер CloudFlare в прошлом году разработал протокол Railgun для сжатия сетевого трафика. Бинарный протокол, написанный на языке программирования Google Go, передаёт хэши веб-страниц и diff’ы между ними, с поддержкой версионности. После внедрения этой технологии степень сжатия в некоторых случаях достигает 99.6%, что недостижимо с помощью gzip. Сайты 4Chan и Imgur после внедрения Railgun сократили некэшируемый трафик примерно на 50%.

Сейчас компания CloudFlare объявила, что поддержка протокола реализована также у Amazon Web Services и около 30 крупнейших хостинговых компаний. Поставить Railgun теперь как никогда просто: есть плагины для WordPress, Joomla, Drupal и прочих CMS, выпущены пакеты для большинства популярных дистрибутивов Linux и BSD.
Читать дальше →
Всего голосов 90: ↑85 и ↓5+80
Комментарии42

Операция Инвентаризация

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


Потребность


Как вы относитесь к бюрократии? Мне кажется, что почти у каждого из нас сразу возникает ассоциативный ряд «дороги», «дураки» и прочие исконно русские беды. И я был не исключением, пока не стал кем-то вроде завхоза в нашем небольшом коллективе.
Вдруг внезапно оказалось, что с увеличением числа «инвентарных единиц», будь то системный блок, монитор, принтер или кофемашина, потребность в учёте возникает сама собой. А если есть потребность, нужно искать максимально эффективное решение. Своим решением я хотел бы поделиться с вами.
42?
Всего голосов 63: ↑54 и ↓9+45
Комментарии61

Вычисление оптического потока методом Лукаса-Канаде. Теория

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

В системах компьютерного зрения и обработки изображений часто возникает задача определения перемещений объектов в трехмерном пространстве с помощью оптического сенсора, то есть видеокамеры. Имея на входе последовательность кадров, необходимо воссоздать запечатленное на них трехмерное пространство и те изменения, которые происходят с ним с течением времени. Звучит сложно, но на практике зачастую достаточно найти смещения двухмерных проекций объектов в плоскости кадра.

Если мы хотим узнать на сколько тот или иной объект объект сместился по отношению к его же положению на предыдущем кадре за то время, которое прошло между фиксацией кадров, то скорее всего в первую очередь мы вспомним про оптический поток (optical flow). Для нахождения оптического потока можно смело воспользоваться готовой протестированной и оптимизированной реализацией одного из алгоритмов, например, из библиотеки OpenCV. При этом, однако, очень невредно разбираться в теории, поэтому я предлагаю всем заинтересованным заглянуть внутрь одного из популярных и хорошо изученных методов. В этой статье нет кода и практических советов, зато есть формулы и некоторое количество математических выводов.
Читать дальше →
Всего голосов 111: ↑109 и ↓2+107
Комментарии19

Разрабатываем новый формат файла для бэкапа сайтов

Время на прочтение5 мин
Количество просмотров25K
Сейчас работаю над новым PHP-скриптом, который будет бэкапить не только базу данных, но и все файлы сайта.

Изначально планировалось использовать один из распространённых форматов архивов. В данном случае, первое, что приходит в голову — ZIP и TAR. Для них есть множество готовых классов, а расширение ZIP даже входит в стандартную поставку PHP. Но изучив спецификации форматов, а также опробовал готовые решения, склонился к изобретению своего велосипеда.

Просьба «велосипедохейтеров» воздержаться от комментариев в стиле «хватит нам велосипедов». В конце концов, без создания «велосипедов» не было бы ни Google, ни Google Chrome, ни Facebook, ни WinRAR и 7-Zip.
Читать дальше →
Всего голосов 113: ↑92 и ↓21+71
Комментарии143

Пишем расширение для google chrome

Время на прочтение11 мин
Количество просмотров29K
Написать расширение для google chrome несложно. Но при написании первого раширения могут возникнуть (и возникают) вопросы. Большинство мануалов по написанию первого расширения расчитаны на использования манифеста первой версии, поддержка которого в скором будущем прекратится.

В этой статье будет рассмотрено:
  • Как составлять манифест v.2
  • Как работать с удаленными ресурсами
  • Как работать с cookies
  • Как работать с local storage
  • Как работать с уведомлениями

Читать дальше →
Всего голосов 72: ↑65 и ↓7+58
Комментарии17

2400 иконок флагов под свободной лицензией

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


Самая большая коллекция флагов: 2400 пиктограмм размерами 16×16, 24×24, 32×32, 48×48 и 64×64. Есть государственные флаги всех стран, плюс бонусы: Англия, Абхазия, Нагорный Карабах, Красный крест, Южная Осетия, Сомалиленд, флаг Марса, НАТО и проч.

Все иконки в двух вариантах: стандартный и глянцевый.

Скачать:
www.gosquared.com/download/pixels/flags.zip

Лицензия MIT (GPL-совместимая), разрешает использование иконок в коммерческих проектах.
Всего голосов 93: ↑84 и ↓9+75
Комментарии30

MongoDB для разработчиков

Время на прочтение3 мин
Количество просмотров38K
Всемирно известная компания 10gen, разрабатывающая опенсорсную базу данных MongoDB, представляет уникальный курс по MongoDB для разработчиков. Вы научитесь всему необходимому для создания вашего приложения на основе MongoDB. Курс позволит вам овладеть навыками установки, работы с JSON, созданием схем, запросов, сохранения данных, индексации и работы с языковыми драйверами. В процессе курса вы будете строить платформу для блога, основанного на MongoDB.
Shut up, and take my money!
Всего голосов 79: ↑75 и ↓4+71
Комментарии41

Andengine: произвольный ландшафт с текстурой

Время на прочтение7 мин
Количество просмотров7.2K
Стал тут было народ писать игру под андроид и столкнулись в Andengine(кто не знает, это самый популярный граф. 2D движок под андроид) с такой задачей: есть набор соединённых между собой линий, который предствляют собой ландшафт (как сгенерить, можно почитать тут — gameprogrammer.com/fractal.html). Выглядело это примерно так:

image

Но нам не нужен “мостик”, нам нужна поверхность, да ещё и с текстурой, вообщем чтобы было вот так…
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии6

Про jQuery и велосипеды — мое дополнение

Время на прочтение6 мин
Количество просмотров64K
Сразу спешу сообщить вам, что я никоим образом не связан с автором предыдущей статьи. Однако, прочитав ее и увидев такой положительный отклик сообщества на статью, я тоже вдохновился и решил добавить немного своих наблюдений и знаний, к тому же это может послужить моей входной точкой в круги хабрасообщества.

Для затравки начнем с простого.
Читать дальше →
Всего голосов 242: ↑230 и ↓12+218
Комментарии126

Используем быстрое возведение матриц в степень для написания очень быстрого интерпретатора простого языка программирования

Время на прочтение6 мин
Количество просмотров36K
Недавно на хабре появилась неплохая статья про вычисление N-ного числа фибоначи за O(log N) арифметических операций. Разумный вопрос, всплывший в комментариях, был: «зачем это может пригодиться на практике». Само по себе вычисление N-ого числа фибоначи может и не очень интересно, однако подход с матрицами, использованный в статье, на практике может применяться для гораздо более широкого круга задач.

В ходе этой статьи мы разберем как написать интерпретатор, который может выполнять простые операции (присвоение, сложение, вычитание и урезанное умножение) над ограниченным количеством переменных с вложенными циклами с произвольным количеством итераций за доли секунды (конечно, если промежуточные значения при вычислениях будут оставаться в разумных пределах). Например, вот такой код, поданный на вход интерпретатору:

loop 1000000000
  loop 1000000000
    loop 1000000000
      a += 1
      b += a
    end
  end
end
end


Незамедлительно выведет a = 1000000000000000000000000000, b = 500000000000000000000000000500000000000000000000000000, несмотря на то, что если бы программа выполнялась наивно, интерпретатору необходимо было бы выполнить октиллион операций.
Читать дальше →
Всего голосов 173: ↑169 и ↓4+165
Комментарии55

Красивая печать в PDF из Django

Время на прочтение6 мин
Количество просмотров20K
Т.к. эта статья — результат нескольких лет экспериментов, то букв будет много. Но — возможно — она сэкономит кому-то многие месяцы езды велосипедом по граблям, которые и описаны.
В общем случае речь идет даже не о Django, а о печати регламентированных документов из python с использованием шаблонизаторов.
Кому дальше читать лень — сразу скажу — проблема до конца не решена. Но более-менее рабочий вариант вырисовался.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии29

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

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


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

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

Информация

В рейтинге
Не участвует
Откуда
Белиз-Сити, Belize, Белиз
Дата рождения
Зарегистрирован
Активность