Search
Write a publication
Pull to refresh
34
0
Diamond Maker @Deeman

User

Send message

3D иллюзии

Reading time3 min
Views9.2K

Общее:


Madonnari — один из видов уличного искусства, очень популярного в мире. Рисунки сделаны на тротуаре и искажены таким образом, что появляется иллюзия трехмерного объекта, когда смотришь на рисунок с определенной точки. Многие художники используют методы, разработанные еще в шестнадцатом веке, чтобы делать такие рисунки.
Читать дальше →

Жадные алгоритмы

Reading time4 min
Views207K
ДеньгиДоброго времени суток, хабр! Сегодня я бы хотел рассказать про жадные алгоритмы.

Есть много методов решения тех или иных задач: динамическое программирование, перебор. Не менее известными и довольно распространенными являются жадные алгоритмы.

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

64-битная ОС на ассемблере

Reading time1 min
Views28K


Разработчики из канадской компании Return Infinity специализируются на низкоуровневом программировании и экспериментальных разработках. На днях они выкатили новую версию BareMetal, 64-битной операционной системы, написанной полностью на ассемблере. Цель этого проекта — избавиться от неэффективного машинного кода, который генерируют компиляторы высокоуровневых языков вроде C/C++ и Java. Если изначально писать на ассемблере, то код получается более производительным и компактным. Вся ОС занимает 16384 байт, а программка “Hello World!” компилируется в файл 31 байт.
Читать дальше →

Самое простое и захватывающее падение в мир микроконтроллеров или Meggy Jr RGB

Reading time3 min
Views29K
Итак, всем любителям ретро игр, пиксель арта, железа типа arduino и тех, у кого закрадывалась мысль написать свою простенькую игру, при этом не сильно вдаваясь в дебри даташитов!

Хочу представить вам 8-битный игровой хендхелд, на микроконтроллере Atmega-328, с большим, ярким экраном с пикселями, которые невозможно не заметить.
На борту есть: 32КБ памяти для вашего кода, 6 кнопок, простенький динамик, 8 дополнительных диодов и разъем для программирования и обмена данными.

image

Что можно сделать с такими малыми ресурсами?
Но ведь в любом деле основной ресурс — это ваше воображение и опыт!

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

Установка и настройка rtorrent+rutorrent+nginx+php-fpm в Arch Linux

Reading time5 min
Views18K

Предыстория


Для работы с торрентами я достаточно долго использовал ktorrent. Сей клиент мои потребности в удобном управлении закачками удовлетворял полностью, пока я не заметил, что на популярных торрентах загрузка процессора доходила до 50% (а с uTP — ещё больше), а потребление памяти в и без того жирном KDE стало неприятно бросаться в глаза.

Было решено сменить KDE на xfce (это отдельная история), а программу для торрентов подобрать с хорошим функционалом и удобным управлением. Перепробовав transmission, deluge и rtorrent, я остановлися на последнем.

О том, как настроить rtorrent+rutorrent+nginx+php-fpm, и будет под катом.
Читать дальше →

Vogue-Tec News #2

Reading time3 min
Views16K

Ежечекпоинтовый обзор нововведений, интересностей и общих событий вокруг плеера из журнала Vogue, а теперь и Playboy.

Содержание


  • Playboy плеер
  • Новый Linux
  • VNC!
  • Корпус, SDIO, I2C и все, все, все...
  • FAQ

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

Упрощаем регистрацию и вход на сайт

Reading time7 min
Views35K
Представляю вашему вниманию перевод статьи под названием "Innovative Techniques To Simplify Sign-Ups and Log-Ins" от Anthony T. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.


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



Форма авторизации на сайте Basecamp

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

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

[Графический редактор на Canvas] Мягкая кисть

Reading time4 min
Views8.4K

Если вы создаете графический редактор на canvas, вам наверняка захочется иметь в арсенале мягкую кисть. Так вот, задача эта довольно нетривиальная и я постараюсь осветить основные трудности и подсказать пути решения.
(на картинке пример работы мягкой кисти в GIMP)
Перед прочтением рекомендую ознакомиться с предыдущей статьей.

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

Torrent-файл. Что же у него внутри?

Reading time7 min
Views57K

Введение


image
Добрый день.
Использую, как и многие, крупный торрент-трекер — rutracker.org, однако есть одна особенность которая меня раздражает.
Это добавление в список трекеров адреса ix*.rutracker.net, который служит для непонятных мне целей. Однако который часто (у меня — практически всегда) выдаёт ошибки (502 Bad Gateway и 0 No Response). Торрент-клиент (у меня Transmission) помечает торрент сломанным. Что само собой довольно сильно мне мешает. Особенно если учесть особенность Transmission — она задаёт статус торрента по последнему ответу трекера. То есть опрашиваем ix*, он возвращает ошибку, торрент помечается как Broken, через n минут/секунд опрашивается следующий трекер из списка — bt*.rutracker.org или retracker.local, которые возвращают успешный код и торрент снова становится нормальным. Такая чехарда не особо меня радует.

Решение банально — убрать этот нехороший адрес из списка. Однако файлов у меня много, из каждого вручную вырезать совсем не хочется, да и дополнительное действие при добавлении нового торрента выполнять тоже не было никакого желания. Поэтому принял решение разобраться в формате и автоматизировать удаление трекера из списка.
Читать дальше →

Разговариваем с Rails-приложением через XMPP (Jabber)

Reading time5 min
Views6.5K

Статья расскажет о том, как получать сообщения от вашего Rails-приложения по протоколу XMPP (Jabber) и наоборот, управлять приложением, отправляя ему команды через XMPP.

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

Bitcoin, генерируем монеты в общем пуле

Reading time7 min
Views258K
Криптовалюта Bitcoin продолжает развиваться, сложность генерации блока повышается с каждым разом. Торги на биржах идут уже на весьма существенные суммы. А вот генерировать в одиночку становится почти нереально.
Сегодня речь пойдёт о генерации монет коллективно — в общем пуле. В этом случае приз за генерацию блока разделяется между всеми участниками пула примерно пропорционально вкладу в генерацию блока.
За счёт большой суммарной вычислительной мощности пула генерация блоков происходит намного чаще, чем если работать в одиночку, но и приз каждому участнику меньше. В долговременном среднем получается примерно столько же (минус процент владельца пула), но зато равномернее.

Что такое Bitcoin, и как оно работает на хабре уже есть статьи. А вот о генерации в общем пуле информация весьма разрозненна даже в его родной вики. В этой статье рассказывается о механизме работы пулов, имеющихся пулах, клиент-программах и некоторых результатах.

Термины, пулы, программы, результаты, рассчёты, выводы...

Эмулятор компьютера с linux на JavaScript

Reading time2 min
Views46K
Никакой серверной части. Только JS: полноценный эмулятор компьютера с линуксом на борту.

bellard.org/jslinux
(внимание, только хром и FF4)

Я долго с ним игрался — это не имитация, линукс ведёт себя как настоящий линукс — компилированные программы работают, ошибки в них вызывают segmentation fault, повреждение корневой файловой системы вызывает бурю возмущения в dmesg и т.д.
Эмулятор PC на JS с линуксом на борту

dd показывает при работе с памятью более чем приличную производительность — более 40 мб/с (не забываем, что это эмулятор, и что это JS в вашем браузере!).

Я никогда не думал, что мы доживём до подобного.

… А теперь начинается оргия:

* С использованием локального хранилища мы можем организовать диски (каждый key-value соответствует одному сектору).
* С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть.
* С использованием существующих технологий (NUMA, DRBD, corosync) можно организовать вычислительный кластер из браузеров.

(Кстати, показывать консоль в этом случае не обязательно — вы запускаете виртуальную машину у клиента в бэкграунде, виртуальная машина присоединяется к кластеру, начинает считать, по её аварийному завершению — закрытию браузера — кластер автоматически переконфигурируется).

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

Никто не мешает создать паравиртуализированный драйвер видео с помощью canvas, у вас есть webGL, для которого можно написать свой вариант cuda и получить довольно мощную акселерацию вычислений…

Ну и финал — запуск хрома внутри эмулируемой виртуальной машины.

Итак, эмуляция дошла до браузеров…

Перенаправление траффика на удаленный сниффер средствами iptables+iproute2

Reading time5 min
Views43K
После покупки своего первого смартфона люди обычно замечают, что расходы на мобильную связь немного увеличиваются. Обычно это происходит за-за того, что «умный» телефон «ходит в Сеть» без ведома хозяина. Конечно, решить эту проблему просто — установить специальные утилиты для блокирования подключений к точкам доступа GPRS/HSDPA либо купить безлимитный тариф на доступ в Интернет и забыть. Столкнувшись с описанной ситуацией, я в первую очередь заинтересовался и тем, что телефон ищет в Сети и, самое главное, что передает в Сеть. Последнее особенно актуально в связи с недавними новостями.
Читать дальше →

Не слушайте их

Reading time1 min
Views908
Не слушайте их, когда они говорят, что ваша идея бесперспективна.
Когда говорят, что идея должна быть Идеей.
Эти перфекционисты, мой бог, они говорят вам, что лучше потратить год на отладку.
Они говорят, что пользователи капризны и не примут проект с недоработками.
Вы предпочитаете слушать их? Тех, которые из-за своего перфекционизма сами ничего не запустили?
Это лучшая отмазка для тех, кто не хочет пытаться – «Либо надо сделать идеально, либо не делать.»
Идеал недостижим. Нет предела совершенству. Проект всегда будет недоработан. Такова природа бытия.
Поэтому, не тяните. Не тяните с запуском стартапа.
Энтузиазм пропадает. Появляются новые идеи. Меняются планы.
Просто запускайте, поглощайте критику, улучшайте. Главное – это готовая основа.

Не слушайте их. Слушайте себя.

Ускорение ядра Linux с помощью графического процессора GPU

Reading time2 min
Views6.7K
Исследования Университета штата Юта, спонсированные частично компанией NVIDIA, направлены на изучение ускорения ядра Linux с использованием ускорения графического процессора GPU. Вместо того чтобы просто позволить приложениям пользователя использовать огромную силу предлагаемых современных графических процессоров, исследователи надеются ускорить части ядра Linux запустив его прямо на GPU.

Из страниц исследования: «Идея проекта KGPU состоит в том, чтобы графический процессор GPU рассматривался в качестве вычислительного сопроцессора для операционной системы, позволяющего производить параллельные вычисления внутри ядра Linux. Это даст возможность использовать SIMD (или SIMT в CUDA) для ускорения функциональности ядра Linux и внести новые функциональные возможности, которые ранее считались слишком интенсивными вычислениями для ядра. Проще говоря, проект KGPU делает возможными векторные вычисления внутри ядра».
Читать дальше →

Проверка пяти открытых проектов статическими анализаторами общего назначения

Reading time10 min
Views2.2K


В статье «Трудности сравнения анализаторов кода или не забывайте об удобстве использования» [1] говорится о том, что сравнить между собой два инструмента не так просто как кажется, потому что помимо собственно технических характеристик анализаторов очень большое значение имеет такой параметр как удобство использования.

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

В статье показаны ошибки, выявленные с помощью статического анализатора кода, встроенного в Visual Studio 2010. Исследование проводилось на пяти open source проектах. Эти же проекты были проверены с помощью PVS-Studio. Приведены результаты сравнения этих двух инструментов.

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

Как я веду прямые эфиры на интернет-радиостанции

Reading time4 min
Views26K
Для того чтобы вести прямой эфир кажется не так много и надо: настроить звук так чтобы одновременно играла музыка и шла запись с микрофона, хорошо если при этом будет работать Skype. На практике оказывается не так всё просто. В статье я расскажу о настройках моей рабочей станции и используемом программном обеспечении во время ведения эфиров на интернет-радио.

Описанный сетап вполне себе подходит для проведения музыкальных эфиров, более того, для них он и был первоначально сделан.


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

Музыкальная подсветка коллекции оптических стекол

Reading time3 min
Views4.1K
В музее оптики СПбГУ ИТМО есть довольно примечательный экспонат — каталог Аббе, представляющий из себя коллекцию оптических стекол различных марок и размеров. Руководство музея желало чтобы этот каталог подсвечивался под музыку, поэтому на свет появился проект музыкальной подстветки каталога, которым я собственно и занимался. Это что-то сродни задаче мигания светодиодом при помощи микроконтроллера, только помасштабнее.

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

Кодирование аудио с потерями. Что к чему?

Reading time12 min
Views89K
Внимание: это старая версия статьи, новая доступна на моём сайте.

Эволюция кодирования аудио



На дворе 2011-й год, с момента появления первого MP3 кодировщика прошло уже 17 лет. Но то, что большинство из нас до сих пор спокойно слушает музыку в формате MP3 — вовсе не значит, что прогресс всё это время топтался на месте. И это касается не только развития алгоритма кодирования MP3, но и эволюции кодирования аудио с потерями вообще — в виде новых, более совершенных кодеков, действительно позволяющих получить лучшее качество при меньшем размере. Такие форматы как OGG Vorbis, AAC, WMA, Musepack давно оставили позади устаревший MP3 с его многочисленными ограничениями и недостатками.
Читать дальше →

Делаем микросхемы дома — шаги 0 и 1

Reading time3 min
Views112K
В этой статье я расскажу о начале своей работы над совершенно безбашенной задачей: конечная цель в том, чтобы получить рабочую микросхему по «толстым» нормам (5-10µm) дома. Это не первое апреля и я не сумасшедший, это просто моё хобби.

Возникла эта идея не сейчас и неспроста. С детства я хотел быть газосварщиком, и… делать микросхемы. И если по первому пункту мне достаточно быстро удалось сделать дома сварочный аппарат (бутан-водород/кислород), то с микросхемами все никак не складывалось. Долгое время все мысли останавливались на том, что я не знал где можно взять собственно полупроводники необходимой чистоты (и мысли останавливались на ковырянии мощных транзисторов), пока на форуме не подсказали что в принципе, можно и купить пластины. Затем я даже наткнулся на человека, который 20 лет работал над похожей задачей, и в итоге сдался. Пожалуй, тут можно было опустить руки и перестать тратить время на глупые мечты. Но, однажды я увидел ролик чудовищно гениальной женщины – Jeri Ellsworth – она смогла сделать отдельные полевые транзисторы на основе заводских пластин – и тогда я решил, что настало время поплотнее заняться этой проблемой.

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity