Search
Write a publication
Pull to refresh
0
0
Сергей @shambho

User

Send message

О речи, языке и музыке

Reading time16 min
Views10K
Disclaimer No. 1. В прошлый раз я несколько переусердствовал с набросом, результатом чего стал настолько эпический срач в комментах, что я боюсь туда заглядывать, за что прошу прощенья у всех, кому не ответил. Исправляюсь и привожу одну хорошую и годную статью, которая, вообще-то, писалась для другого ресурса, но там меня больше нет.

Disclaimer No. 2. Никакого отношения к тематике Хабра эта статья не имеет, писать про это в комментах не надо. Не нравится хаб «Научно-популярное» — отпишись молча.

Я думаю, многие из вас задумывались о смысле музыки. Поймёт ли представитель дикого племени музыку Бетховена? А средневековый житель — музыку «Битлз»? Насколько универсален музыкальный язык и почему вообще мы способные его понимать?

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

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

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

Обзор мозгокомпьютерного интерфейса Emotiv Epoc

Reading time9 min
Views97K
Вот тут давно сокрушались, что нет героя в отечестве, который бы купил какой-нибудь нейрокомпьютерный интерфейс, помучил бы его на благо сообщества и поделился с окружающими результатами мучений. Собственно есть. Я его купил и попытался использовать. Подробности с картинками под катом.

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

10 самых распространённых ошибок при программировании на JavaScript

Reading time10 min
Views156K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

На первый взгляд, этот язык может показаться довольно простым. Встраивание в веб-страницу базового функционала JavaScript — это не проблема для любого опытного разработчика, даже если он ранее не сталкивался с этим языком. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. Сегодня мы рассмотрим некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Читать дальше →

Руководство новичка по эксплуатации компоновщика

Reading time32 min
Views217K
David Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).

Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).

Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
g++ -o test1 test1a.o test1b.o
test1a.o(.text+0x18): In function `main':
: undefined reference to `findmax(int, int)'
collect2: ld returned 1 exit status

Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
Читать дальше →

Pivothead: солнцезащитные очки с HD камерой

Reading time2 min
Views29K


На Хабре уже несколько раз упоминали Pivothead — hi-tech солнцезащитные очки (к слову, достаточно стильные), которые могут служить в качестве бытового видеорегистратора.

При этом вместе с очками производитель продает и разные линзы, включая оптические, так что очки можно использовать не для защиты от солнца, а… ну, как очки для людей с плохим зрением.

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

Трисекция угла и другие задачи на построение

Reading time7 min
Views16K
На Хабре была статья, где автор строил трисекцию угла. В этом посте я расскажу, почему невозможно точно разделить произвольный плоский угол на три равные части циркулем и линейкой, по ходу дела дам краткое введение в алгебраическую теорию полей, и покажу, как это можно применить к другим известным задачам на построение.

Введение


Знаменитая задача трисекции произвольного угла циркулем и линейкой без делений является одной из древнейших задач, привлекавших многих математиков в течение нескольких тысячелетий. Неразрешимость задачи, т.е. невозможность такого построения, была окончательно доказана в 19 веке, однако некоторые люди до сих пор предлагают свои решения. Например, решение одного академика РАН было опубликовано в журнале «Наука и жизнь». Хотя, может быть, это такой тонкий троллинг…


Наука и жизнь, №3, 1998


Правда, по словам одного профессора математики, поток писем с решениями трисекции угла и простыми доказательствами великой теоремы Ферма в последнее время заметно снизился. Сейчас ему присылают, как правило, доказательства гипотезы Римана.
Дальше

Reedy – Скорочтение, которое действительно можно использовать

Level of difficultyEasy
Reading time9 min
Views245K
Reedy – продвинутая реализация технологии скоростного чтения

В последнее время наблюдается рост интереса к скорочтению на основе технологии RSVP. Однако большинство приложений и расширений на эту тему, при более близком знакомстве, увы, оказываются не очень удобны для ежедневного использования. А ведь в потенциале они могу помочь значительно экономить время и быстрее получать информацию. Мой друг OlegCherr решил доработать технологию, создав реализацию пригодную для постоянного использования, а я ему в этом помогаю. После двух месяцев постоянной практики чтения, тестирования, исследований и улучшений решил написать статью с разбором того, что получилось в результате, потому что результат, смею считать, будет интересен и другим. На текущий момент всё выполнено в виде расширения к браузеру Chrome и названо Reedy. Приложение под Android на подходе.
Подробности

Анализ дружеских связей VK с помощью Python

Reading time6 min
Views79K
Совсем недавно на Хабре появилась статья о реализации дружеских связей в ВКонтакте с помощью Wolfram Mathematica. Идея мне понравилась, и, естественно, захотелось сделать такой же граф, используя Python и d3. Вот, что из этого получилось.
Читать дальше →

Официальное мобильное приложение Хабрахабра

Reading time2 min
Views120K
На прошлой неделе, в день рождения Хабрахабра мы намекнули, что готовим мобильные приложения для сайта. Ждали? Не сомневаемся.



Дамы и господа, леди и джентльмены! Настало время расчехлить свои смартфоны для нового приложения.
Читать дальше →

Поражение роботов: взлеты и падения высокочастотного трейдинга (Часть 2)

Reading time7 min
Views14K
[Первая часть]

Снижение объема фондовых рынков может до определенной степени быть связано с тем, что высокочастотный трейдинг отпугивает инвесторов от вложений в ценные бумаги, что особенно заметно после события 6 мая 2010 года, получившего название Flash Crash, когда принятое компьютерами решение о продаже большого количества фьючерсов вызвало массовый обвал цен на рынке. Промышленный индекс Dow Jones упал на 600 пунктов примерно за 5 минут. Когда произошел скачок цен, большинство высокочастотных трейдеров, работавших на рынке в тот день, обогатились. А тех, чьи машины в тот день не работали, обвинили в пособничестве обвалу и недообеспечении ликвидности, поскольку падение ускорилось из-за того, что сравнительно немногие высокоскоростные трейдеры были готовы купить акции, снижение цен на которые все нарастало под давлением тех, кто хотел их продать.
Читать дальше →

Неопределенное поведение в C++

Reading time9 min
Views65K
Достаточно сложной темой для программистов на С++ является undefined behavior. Даже опытные разработчики зачастую не могут четко сформулировать причины его возникновения. Статья призвана внести чуть больше ясности в этот вопрос.

Статья является ПЕРЕВОДОМ нескольких статей и выдержек из Стандарта по данной теме.

Что такое «точки следования»?

Стандарте сказано:
Точки следования (sequence points)– такие точки в процессе выполнения программы, в которых все побочные эффекты уже выполненного кода закончили свое действие, а побочные эффекты кода, подлежащего исполнению, еще не начали действовать. (§1.9/7)


Побочные эффекты? А что такое «побочные эффекты»?

Побочный эффект (side effect) (согласно Стандарту) – результат доступа к volatile объекту, изменения объекта, вызова функции из библиотеки I/O или же вызова функции, включающей в себя какие-то из этих действий. Побочный эффект является изменением состояния среды выполнения.

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

Например:
Читать дальше →

How-to: Пишем торговых роботов на TradeScript

Reading time7 min
Views45K
image

Тема создания механических торговых систем или попросту биржевых роботов вызывает на Хабре определенный интерес. Мы частенько освещаем теоретические аспекты алгоритмической торговли, но не так часто говорим о ее практической составляющей. Поэтому в сегодняшнем топике будут рассматриваться реальные примеры различных роботов, созданных с помощью скриптового языка TradeScript.
Читать дальше →

Анимированные графики в R (и немного про бифуркацию, хаос и аттракторы)

Reading time4 min
Views20K
Однажды для презентации мне понадобились анимированные графики. С графиками, собственно, проблем не возникло, а для их анимации пришлось воспользоваться еще одним пакетом animation, который можно установить из CRAN.
Читать дальше →

Как стать квантом в HFT-компании

Reading time7 min
Views33K
image

Я часто получаю письма от желающих устроиться на работу в HFT-фирмы (HFT или High-Frequency Trading – высокочастотный трейдинг). У них иногда возникают проблемы с процессом подачи заявления, а также с пониманием необходимых технических навыков для конкретной должности. Я написал данную статью с целью объяснить, что же такое высокочастотный трейдинг, какие навыки необходимы для того, чтобы Вас приняли на работу, и к кому стоит обратиться в поисках вакансии.

Имейте в виду, что HFT – сугубо техническая область. Она привлекает наиболее выдающихся кандидатов в сфере математики, физики, информатики и электротехники, чаще всего во время их обучения в аспирантуре или после нескольких лет работы в какой-либо узкоспециализированной области промышленности. Несмотря на свою высокооплачиваемость, работа в HFT-фирмах потребует значительных затрат в плане обучения и вложенных сил.
Читать дальше →

Как работают сигналы и слоты в Qt (часть 1)

Reading time10 min
Views121K


Qt хорошо известен своим механизмом сигналов и слотов. Но как это работает? В этом посте мы исследуем внутренности QObject и QMetaObject и раскроем их работу за кадром. Я буду давать примеры Qt5 кода, иногда отредактированные для краткости и добавления форматирования.
Читать дальше →

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

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

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

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

image

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

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

Простой интерпретатор с нуля на Python #2

Reading time8 min
Views18K


В предыдущей статье мы рассматривали сам язык IMP и основную структуру интерпретатора. Также, мы тщательно рассмотрели лексер. В этой статье мы будем писать небольшой парсер для нашего языка. Он будет извлекать AST (abstract syntax tree) из списка токенов, сгенерированных лексером. Библиотека комбинатора будет независимая, то есть с помощью нее можно будет написать парсер для любого языка.


Что такое комбинаторы парсеров?

Есть очень много способов написать парсер. Самым простым и быстрым способом сделать это являются комбинаторы.

Вы можете считать парсер функцией, которая принимает поток токенов. Если успешно, то парсер будет «съедать» немного токенов из потока. Функция вернет часть финального AST вместе с остальными токенами. Комбинатор — это функция, которая производит парсер, как его результат, обычно после приема одного или нескольких анализаторов (парсеров) в качестве входных данных, отсюда и название — «комбинатор». Вы можете использовать комбинаторы для создания законченного парсера для языка, как IMP, путем создания множества маленьких парсеров для каждой части языка.
Читать дальше →

ЦБ РФ против Биткоин?

Reading time9 min
Views82K
imageНе так давно мы публиковали статистику для размышлений на тему куда же идёт рынок электронных денег РФ (часть1, часть 2).

И 2013-2014 гг. доказали, что всё сказанное, к сожалению, свершилось: банки теряют лицензии и происходит постепенное укрупнение и без того не малых кредитных организаций (чего только стоит продажа Банка Москвы и ТрансКредитБанка, а также закрытие одного из крупнейших процессинговых центров в лице Мастер Банка); ЦБ РФ встал «в стойку» и объявил охоту на криптовалюты, которую подхватила Генпрокуратура РФ; а «классические» электронные деньги постепенно начинают обрастать ненужными «субинститутами» и процедурами, которые навряд ли (с)делают жизнь лучше, а потому – игроки стараются избавиться от собственных же творений (из самых важных, можно упомянуть: Яндекс.Денеги, РБК-money, падение акций Qiwi после одного лишь упоминания об «антитеррористическом пакете», закрытие metabank.ru, но примеров за последние 2-3 года накопилось слишком, чересчур даже, много).

Каждый из приведённых случаев нуждается в тщательном и взвешенном анализе, но сейчас речь пойдёт не об этом: оборот Биткоин незаконен на территории РФ. Так нам сказали. Но на каком основании? Если уйти от логичной полемики «на основании вышеизложенного и прямо поставленного», то запрет на одной политической воле – это давно пройденный и далеко не самый эффективный этап и для публичной власти, и для норм, ею же созданных.

Поэтому всё под хаброкатом – это лишь попытка начать обсуждение важного и по-настоящему ценного вопроса о будущем IT в РФ.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity