Pull to refresh
8
0
Егор Воронцов @sdore

Типичный Python'ист

Send message

Гипотеза Эскобара

Reading time28 min
Views14K
Эскобар — великий математик, живший на Земле на прошлом витке общемирового времени.
На прошлом витке чего-о?


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

Комплексные числа были открыты без участия Эскобара, но это не значит, что мы должны отказываться от его наследия. Все знают, что 2+2=4, 2×2=4, 2^2=4. Только, при возведении в степень существует разница в порядке аргументов. Что если применить аксиому Эскобара на нашем убеждении, что у порядка при возведении в степень может быть только два варианта? Ну а вдруг — больше?
Пишет тексты нам никто
Total votes 22: ↑16 and ↓6+15
Comments19

Летающее крыло

Reading time4 min
Views20K

Нет, я не плачу и не рыдаю
На все вопросы я открыто отвечаю
Что наша жизнь игра, и кто ж тому виной
Что я увлёкся этою игрой


Описываемые события относятся к староглиняным временам и происходили в одной пластилиновой местности, когда Arduino было еще не особо популярно, на каждом углу пучок за пятачок еще не продавалось. 3D принтер в личном пользовании в виде кубического Reprap был у очень немногих — а большинство просто не подозревали о их существовании. Ценность рассказа сопоставима с руководством по ремонту телефона с дисковым номеронабирателем — чисто археологическая. Да и задуман он был как вступление, но это вступление переросло основной рассказ и, как-то незаметно для меня, поглотило его.
Читать дальше →
Total votes 82: ↑81 and ↓1+102
Comments27

Лучший мультитул для IT инженера

Reading time3 min
Views81K

Самый нужный мультитул для IT-инженера

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

Читать далее
Total votes 118: ↑107 and ↓11+126
Comments152

Языка С/C++ не существует

Reading time2 min
Views61K

Каждый день везде, в том числе в технических статьях, появляется мифический С/С++, честно говоря я просто устал это видеть и хочу в этой короткой статье донести простейшую мысль - С и С++ это два совершенно разных языка с разными требованиями и подходами к разработке.

Читать далее
Total votes 146: ↑115 and ↓31+108
Comments383

Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах

Reading time26 min
Views639K
Комикс XKCD про 14 конкурирующих стандартов: Надпись: СИТУАЦИЯ: есть 14 конкурирующих стандартов. Гик: 14?! Абсурд! Нам необходимо разработать один универсальный стандарт, на все случаи жизни. Спутница гика: Да! Надпись: Скоро: СИТУАЦИЯ: Есть 15 конкурирующих стандартов.

This article is also available in English

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

TL;DR:
  • SBC — нормальный кодек
  • У наушников есть свой эквалайзер и пост-процессинг на каждый кодек отдельно
  • aptX не настолько хорош, как о нём говорят рекламные анонсы
  • LDAC — маркетинговое фуфло
  • Качество звука в режиме разговора всё ещё низкое
  • В браузер можно встроить аудиоэнкодеры на C, скомпилировав в WebAssembly через emscripten, и они не будут особо тормозить.

Total votes 175: ↑171 and ↓4+167
Comments180

Типографская раскладка для 60-процентной клавиатуры

Reading time22 min
Views22K


Оригинал фото: pxhere.com/ru/photo/1600961

Обычную часть раскладки я описывал в предыдущей статье. А сейчас расскажу о возможностях, которые превращают раскладку в типографскую: пробелы, тире, кавычки, апострофы, диакритические знаки.
А также лигатуры, диграфы и многое другое
Total votes 39: ↑39 and ↓0+39
Comments18

Начинающие программисты боятся темноты

Reading time7 min
Views100K

Не могу больше. Это не моё. Я не тяну. Всю ночь не спал, ворочался, вставал, курил, читал, пытался смотреть телевизор, снова ложился… Ненавижу.

Всех, кто пишет эти радужные истории «войти в айти». Тех, кому я заплатил за курсы по программированию. «Друзей» и «советчиков», которые сказали: смело бросай свою старую, нелюбимую работу, и иди в программисты. Если бы вы только знали, о чём говорите…

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

Я один в темноте.

Читать далее
Total votes 179: ↑148 and ↓31+150
Comments301

Как сервис Repl.it (W18) хакнул хакеров

Reading time5 min
Views13K
image

Во время месячной атаки у нас были деньки передышки и мы умудрились сгонять на стартап-тусу от BloombergBeta. Хороший способ выпустить пар перед предстоящими бессонными ночами.

(Repl.it — сервис, который позволяет писать код на большинстве языков прямо в браузере, без установки дополнительного IDE)

Ввязываясь в стартапы, никто не говорит вам, что борьба с нехорошими хакерами — это часть работы. Самые сильные противники, с которыми нам приходилось бороться в Replit — это хакеры даркнета. Однажды мы столкнулись лицом к лицу с подпольной группой, которая делала очень плохие вещи на нашем сервисе. И вот как это было.
Читать дальше →
Total votes 35: ↑24 and ↓11+21
Comments16

Невменяемый, необъятный масштаб браузеров

Reading time3 min
Views73K

Увидев вот эту публикацию про браузерные войны, я хотел бы представить альтернативное наблюдение за тем, как мы докатились до такой жизни. Но Дрю ДеВолт уже всё сказал за меня.

Начиная с первых войн между Netscape и IE, главным инструментом в конкуретной борьбе браузеров стала функциональность. Вот только стратегия неограниченного роста и расширения — совершенно безумная. Слишком долго мы позволяли ей продолжаться.

С помощью wget я скачал все 1217 спецификаций W3C, опубликованных на текущий момент. Существенная часть из них должна быть реализована в браузере, чтобы современный веб работал. Я подсчитал объём этих спецификаций. Как думаете, насколько сложен современный веб?

Читать далее
Total votes 166: ↑156 and ↓10+190
Comments695

Как я делаю цифровую минигитару

Reading time11 min
Views29K
image

В этой статье я постараюсь в общих чертах описать путь создания девайса от идеи до реализации юзабельного прототипа.

Меня зовут Дмитрий Дударев. Я занимаюсь разработкой электроники и очень люблю создавать различные портативные девайсы. Еще я люблю музыку. Полгода назад я взял у друга акустическую гитару чтобы попытаться научиться на ней играть по урокам из ютуба и табулатурам. Было тяжело. То ли я неправильно что-то делал, то ли плохо старался, то ли в обществе моих предков мелкая моторика вредила размножению. В любом случае, ничего кроме звуков дребезжащих струн у меня не выходило. Мое негодование усиливала постоянная расстройка струн. Да и окружающим тысячный раз слушать мою кривую Nothing else matters удовольствия не доставляло.

Но в этих муках про главное правило электронщика я не забыл. Если что-то существует, значит туда можно вставить микроконтроллер. Или, хотя бы, сделать портативную электронную модификацию.
Читать дальше →
Total votes 142: ↑142 and ↓0+142
Comments79

Своими руками: Компьютер в столе с жидкостным охлаждением

Reading time2 min
Views76K
image

Друзья, всех приветствую!

Ко мне обратился товарищ и попросил помочь воплотить его мечту в реальность.

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

Изготовление начинается с рамы: это столешница, ножки, перекладина жесткости и кронштейн.

Размеры товарищ захотел 122 на 65 см.
Читать дальше →
Total votes 186: ↑138 and ↓48+138
Comments201

Установка OpenSolaris snv_134b SPARC на SunFire v100

Reading time2 min
Views7.2K
Не так давно пришлось устанавливать OpenSolaris на SunFire v100. Задача, как оказалось, совсем не тривиальная. У нас есть:

  • Intel x86 PC
  • SunFire v100 на UltraSPARC IIe/IIi
  • И диск с записанным OpenSolaris snv_134b.

Итак, приступим…
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments4

Маленький раритет из времен, когда компьютеры были большими

Reading time3 min
Views16K
За время моего сисадминства через меня прошло много всякого железа, правда, в основном современного. Однако отголоски суровых 90х, пришедшихся на мои школьные годы, частично окунули меня в уже уходящий золотой век ИТ, когда мне в руки попала материнская плата с процессором Ti486DLC-40, 8 мегабайтами памяти, мультикартой, звуковушкой ESS1868, Quantum на 170 мегабайт… и черно-белым монитором Hewlett Packard, управляемым какой-то видеокартой Oak с огромными 256 килобайтами памяти. Я раздобыл книгу по досу и всё заверте…

И спустя 15 лет, разбираясь в шкафу, я неожиданно наткнулся на совершенно необычную находку, которую в уже далёком 2009 году мне презентовал один замечательный человек….
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments17

Нейросеть на Python, часть 2: градиентный спуск

Reading time16 min
Views60K
Часть 1

Давай сразу код!


import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
    layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
    layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
    layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
    layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
    synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
    synapse_0 -= (alpha * X.T.dot(layer_1_delta))

Часть 1: Оптимизация


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

Суть происходящего в том, что обратное распространение не вносит в работу сети оптимизацию. Оно перемещает неверную информацию с конца сети на все веса внутри, чтобы другой алгоритм уже смог оптимизировать эти веса так, чтобы они соответствовали нашим данным. Но в принципе, у нас в изобилии присутствуют и другие методы нелинейной оптимизации, которые мы можем использовать с обратным распространением:
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments5

Где живет интернет: точка обмена трафиком на Манхэттене

Reading time2 min
Views32K


Точки обмена трафиком — весьма интересный объект для ознакомления, как для обычных поклонников мира техники, и так и для профессионалов сетевых технологий. Для того, чтобы познакомить мир с изнанкой Интернета, Питер Гарритано решил показать, как выглядит точка обмена трафиком, располагающаяся на Манхэттене, в Нью Йорке.

Сам Питер — не профессионал, но интересуется сетевыми технологиями, поэтому он решил прояснить для себя, как и где живет Интернет. Где соприкасаются линии связи, как передается информация. Последние несколько месяцев Питер занимается изучением точек обмена трафиком, так называемых «carrier hotels». Точка обмена интернет-трафиком (англ. Internet Exchange Point, IX, IXP) — сетевая инфраструктура, предназначенная для оперативной организации соединений и межоператорского обмена IP-трафиком (пиринга) между независимыми сетями в Интернет.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments21

Игра Let's Twist: Путь в неизвестность

Reading time9 min
Views22K
Вначале этого года группа начинающих разработчиков работала на игровую студию, нарушающую все каноны мобильной разработки. Низкий приток пользователей (а точнее его абсолютное отсутствие), нехватка рекламных бюджетов и поддержки издателей демонтировало команду, и было принято решение рискнуть и создать что-то свое, доказать в первую очередь самим себе, что большие бюджеты и известность — не главный фактор успеха.

В этой статье я, Артур, основатель и гейм-дизайнер инди команды ArmNomads Games (состоящей из трех человек), хочу поделиться пройденным нами путем в опасные дебри мобильного гейминга. От идеи до конечного релиза.



Главной задачей при создании идеи был поиск определенного издателя и целевой аудитории. Мы прекрасно понимали, что сделать что-то универсальное очень сложно. Руководствуясь ограниченностью ресурсов и времени, было принято решение сотрудничать с издателем Ketchapp, но, в то же время, иметь пути отхода. Для этого мы предприняли попытку сочетать минималистичный геймплей и красивый арт. Имея опыт работы с движком Unity, мы думали, что это лучший вариант. Из плюсов этого движка можно отметить быстроту разработки, графический интерфейс и кроссплатформенность.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments19

Полезные НЕ советы программисту

Reading time5 min
Views59K
Я программист с небольшим стажем, но уже делаю свои первые робкие шаги по карьерной лестнице. Я много читаю и самообучаюсь, иногда что-то пробую в своей практике. И теперь я готов поделиться с вами несколькими советами по программированию которые очень помогают мне в моей каждодневной работе. Ко всем советам я пришел сам и они многократно опробованы в моих проектах.
Читать дальше →
Total votes 132: ↑87 and ↓45+42
Comments65

«Герои мата и меха» портированы на javascript

Reading time1 min
Views43K
← жать на картинку, это зеркало для хабраэффекта

«Герои матмеха» или «Сдать сессию и остаться в живых». Остросюжетный пошаговый симулятор студента матмеха СПбГУ портирован из глубины веков (98 год) на Javascript и доступен прямо из браузера. Этот квест будет интересам студентам смежных инженерных профессий. Выдержка из документации к оригиналу:
«Эта программа - некоторый синтез всех тех эмоций, что получил автор, пытаясь (с грехом пополам) выйти на сессию в конце второго семестра первого курса на мат-мехе. Правда, при этом автор находился в более выгодном положении, чем Вы - центральный персонаж этой игры, которому предстоит получить зачёты по 6-ти предметам практически с нуля.»



О процессе портирования и о авторах
Total votes 107: ↑90 and ↓17+73
Comments44

Отличная идея: цветовая индикация ввода пароля

Reading time1 min
Views1.9K
Разработчик Mattt Thompson предложил, на мой взгляд, очень оригинальную и интересную идею цветовой индикации ввода пароля в поля формы. Для введенного пароля считается хэш который представляется в виде трех цветных полосок рядом с полем ввода пароля. Таким образом, во-первых, производится валидация повторного ввода пароля. А во-вторых и это самое главное, зная свой цветовой код вы сможете сразу узнать ошиблись вы или нет при первом вводе пароля.


Более подробно о идее в блоге автора. Попробовать идею на живом примере можно здесь.
Плагин для jQuery с реализацией идеи github.com/mattt/Chroma-Hash доступен по лицензии MIT.

PS: НЛО! Введи такую фичу на Хабре, поддержи оригинальную идею!
Total votes 181: ↑148 and ↓33+115
Comments101

Да, я пишу десктопные приложения под Windows

Reading time5 min
Views120K


Здравствуйте, меня зовут Владимир и я анонимный разработчик десктопных приложений под Windows. В этом месте все должны сказать «Здравствуй, Владимир!», а кто-то может быть добавит «Молодец, что осознал!». А потом все похлопают. Нет, правда, иногда от чтения Хабра у меня возникают именно такое ощущение, что нормально, нет, даже не «нормально», а допустимо и одобряемо сегодня писать только микросервисы для каких-то стартапов, которые будут по какому-то REST API отдавать данные какому-нибудь фронтенду на Ангуляре, который и будет, наконец, показывать пользователю что-то невероятно полезное, вроде таблицы с аггрегированными отзывами о стрижках пуделей с возможностью посмотреть на гуглокартах где бы в вашем городе можно было сделать именно такую стрижку вашему пуделю (несуществующему). А никаких других программ писать уже нет-нет, никак нельзя! Что за чушь?!

Да, многое сегодня происходит в вебе и на мобильных устройствах, но, знаете ли, далеко не всё. Значительная часть приложений по-прежнему является десктопным софтом. И даже (о, ужас!) не под Mac Os или Linux, а под тот самый богомерзкий Windows. И, знаете ли, софт этот живёт, развивается, поддерживается и является ежедневным рабочим инструментом миллионов людей. И никуда он мигрировать не собирается, потому что есть причины, по которым иногда именно десктопное приложение является лучшим вариантом.
Читать дальше →
Total votes 272: ↑231 and ↓41+190
Comments565

Information

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