Как стать автором
Обновить
8
0
Егор Воронцов @sdore

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

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

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

Время на прочтение28 мин
Количество просмотров14K
Эскобар — великий математик, живший на Земле на прошлом витке общемирового времени.
На прошлом витке чего-о?


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

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

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

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

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


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

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

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

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

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

Читать далее
Всего голосов 118: ↑107 и ↓11+126
Комментарии152

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

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

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

Читать далее
Всего голосов 146: ↑115 и ↓31+108
Комментарии383

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

Время на прочтение26 мин
Количество просмотров639K
Комикс 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, и они не будут особо тормозить.

Всего голосов 175: ↑171 и ↓4+167
Комментарии180

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

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


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

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

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

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

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

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

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

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

Читать далее
Всего голосов 179: ↑148 и ↓31+150
Комментарии301

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 166: ↑156 и ↓10+190
Комментарии695

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

Время на прочтение11 мин
Количество просмотров29K
image

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

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

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

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

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

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

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

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

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

Размеры товарищ захотел 122 на 65 см.
Читать дальше →
Всего голосов 186: ↑138 и ↓48+138
Комментарии201

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

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

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

Итак, приступим…
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии4

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

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

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

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

Время на прочтение16 мин
Количество просмотров60K
Часть 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: Оптимизация


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

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

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

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


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

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

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

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

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



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

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

Время на прочтение5 мин
Количество просмотров59K
Я программист с небольшим стажем, но уже делаю свои первые робкие шаги по карьерной лестнице. Я много читаю и самообучаюсь, иногда что-то пробую в своей практике. И теперь я готов поделиться с вами несколькими советами по программированию которые очень помогают мне в моей каждодневной работе. Ко всем советам я пришел сам и они многократно опробованы в моих проектах.
Читать дальше →
Всего голосов 132: ↑87 и ↓45+42
Комментарии65

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

Время на прочтение1 мин
Количество просмотров43K
← жать на картинку, это зеркало для хабраэффекта

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



О процессе портирования и о авторах
Всего голосов 107: ↑90 и ↓17+73
Комментарии44

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

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


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

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

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

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


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

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность