Pull to refresh
5
0

creator

Send message

Стартуем на ПЛИС, но сначала припаяем его с конструктором беспилотного автомобиля Zoox

Reading time13 min
Views15K

Однажды мне не спалось ночью и я залип на сайтах про паяльники. Возникло желание купить и сразу появились вопросы: на сколько ватт? Не больше 30? А почему большинство на 60-80 ватт? 60/40 олово свинец? А почему куча паяльных станций идут в комплекте с lead-free проводами припоя? Канифоль сейчас внутри проводов? А почему есть и провода припоя без канифоли? Бронзовую мочалку для очистки? А почему столько комплектов с и белой и бронзовой?

Вспомнил и повод, чтобы научиться паять. Когда-то Руслан Тихонов, руководитель кружка из Москвы, говорил мне что хочет сделать простые упражнения на платах ПЛИС для школьников. Как часть триады "микросхемы малой степени интеграции - ПЛИС - Ардуино". По этому поводу я купил самую дешевую плату с CPLD Altera MAX II (ныне это Intel FPGA), но обнаружил что у нее не припаян переходник.

Я выставил вопросы по паяльники на фейсбук и после оживленной дискуссии мой приятель Денис Никитин вызвался научить меня паять как полагается. Денис работает проектировщиком печатных плат в компании Zoox, ныне часть компании Amazon. Zoox делает беспилотные автомобили, то есть Денис на передовом рубеже паятельного прогресса. Я заснял мастер-класс от Дениса на видео:

Читать далее
Total votes 38: ↑35 and ↓3+32
Comments50

Анатомия игры: обратный инжиниринг на службе мододелов или как замодить игру на примере Elden Ring и не только. Часть 1

Reading time21 min
Views6.8K


В прошлый раз я уже рассказывала о том, как могут быть устроены игры. Теперь же настало время поведать вам, как это строение узнали и зачем вообще людям изучать организацию файлов той или иной игры. 
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments13

Математика в космонавтике: ротационный детонационный двигатель

Reading time11 min
Views16K


Отправка кого-то или чего-то за пределы нашей планеты и по сей день является крайне сложным и дорогостоящим удовольствием. В то время как космические путешественники из различных научно-фантастических произведений массовой культуры используют ретрансляторы («Mass Effect»), варп-двигатели («Стартрек») или даже звездные врата («Звездные врата»), в реальности же все куда прозаичнее. На данный момент нам не известны такие нереальные технологии, потому мы используем ракетное топливо. Естественно, для запуска одного шаттла или ракеты-носителя топлива нужно крайне много. Решить эту проблему может новый вид двигателей — ротационный детонационный. Пока процесс его разработки далек от завершения, ученые из Вашингтонского университета решили создать математическую модель данного устройства, чтобы лучше понять принцип его работы. Это позволит инженерам проводить точные тесты прототипов и лучше понимать, какие именно улучшения необходимо внедрять. Итак, как выглядит ракетный двигатель глазами математика и что удалось узнать благодаря моделированию? Ответы на эти вопросы ждут нас в докладе исследовательской группы. Поехали.
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments18

7 распространенных ошибок в SQL-запросах, которые делал каждый (почти)

Reading time6 min
Views85K

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

Однако работая с большим количеством junior-ов, мы раз от раза находим в их решениях одни и те же ошибки. Реально — иногда просто создается ощущение, что они копируют друг у друга код. 

Кстати, иногда такая же участь постигает и специалистов более высокого полета. 

Сегодня мы решили собрать 7 таких ошибок в одном месте, чтобы как можно меньше людей их совершали.

Читать далее
Total votes 44: ↑38 and ↓6+32
Comments92

Дрон подводный…

Reading time8 min
Views18K

Версия 0...

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

Но у нас есть АБСОЛЮТНО не освоенная стихия, море, а море у нас вокруг... и там еще никого не ловят (дронов в частности)...

Подумано - задумано, перво-наперво погружаемся в интернеты...

Читать далее
Total votes 84: ↑82 and ↓2+80
Comments58

Как проверить сетевое подключение на Smart TV (WebOS и Tizen)

Reading time3 min
Views14K

Сегодня я хочу рассказать вам о том, как я пробовал реализовать функционал «Нет подключения» на SmartTV для платформ webOS и Tizen. Это звучит довольно просто, и вы можете спросить меня, что ты можешь рассказать нам нового, но поверьте, я могу :)

Эта статья о том, как обнаружить сетевое подключение.

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

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments10

Как я написал алгоритм сортировки, который быстрее std::sort. Продолжение

Reading time21 min
Views10K

Прим. Wunder Fund: не спешите минусовать эту публикацию — её перевода на Хабре ещё не было :)

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

Кто-то, за что я этому неизвестному благодарен, разместил ссылки на мою статью на Hacker News и на Reddit. И хотя эти ссылки там разместил не я, я, всё же, прочитал большую часть комментариев, сделанных пользователями этих сайтов. По какой-то причине те комментарии, что были сделаны в моём блоге, оказались гораздо позитивнее, чем комментарии на Hacker News и Reddit. Но у меня такое ощущение, что причина появления негативных комментариев заключается, в целом, в неправильном понимании того, о чём я пишу. Здесь я собираюсь расставить все точки над «i».

Читать далее
Total votes 35: ↑34 and ↓1+33
Comments4

Как я написал алгоритм сортировки, который быстрее std::sort. Часть 3

Reading time12 min
Views7.2K

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

Прим. Wunder Fund: ну, вы наверное, и сами догадываетесь, как мы любим быстрые алгоритмы и оптимизации. Если вы тоже такое любите — вы знаете, что делать)

Читать далее
Total votes 25: ↑21 and ↓4+17
Comments0

Как я написал алгоритм сортировки, который быстрее std::sort. Часть 2

Reading time17 min
Views7.8K

Прим. Wunder Fund: ну, вы наверное, и сами догадываетесь, как мы любим быстрые алгоритмы и оптимизации. Если вы тоже такое любите — вы знаете, что делать)

Публикуем вторую часть перевода материала об очень быстром алгоритме сортировки — «Ska Sort». В первой части говорилось о временной сложности алгоритмов и о том, какие улучшения базового алгоритма «Американский флаг» позволили автору «Ska Sort» повысить скорость сортировки. Сегодняшний материал посвящён рассказу о том, почему новый алгоритм быстрее других алгоритмов сортировки.

Читать далее
Total votes 32: ↑25 and ↓7+18
Comments3

Я написал более быстрый алгоритм сортировки

Reading time34 min
Views45K

Может показаться откровенной наглостью в наши дни утверждать, что Вы изобрели алгоритм сортировки, который на 30% быстрее, чем лучший существующий. Увы, я должен сделать гораздо более наглое заявление: я написал алгоритм сортировки, который в два раза быстрее, чем std :: sort для многих входных данных. И за исключением случаев, когда я специально конструирую воспроизведение нахудших для него ситуаций, алгоритм никогда не бывает медленнее, чем std :: sort (и даже когда попадаются эти худшие случаи, они обнаруживаются и происходит автоматический возврат к std :: sort).

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

Читать далее
Total votes 61: ↑58 and ↓3+55
Comments36

Как я написал алгоритм сортировки, который быстрее std::sort. Часть 1

Reading time14 min
Views22K

Прим. Wunder Fund: ну, вы наверное, и сами догадываетесь, как мы любим быстрые алгоритмы и оптимизации. Если вы тоже такое любите — вы знаете, что делать)

В наши дни сказать, что изобрёл алгоритм сортировки, который на 30% быстрее того, что считают эталонным, это значит — сделать довольно смелое заявление. Я, к сожалению, вынужден сделать ещё более смелое заявление. Дело в том, что я создал алгоритм сортировки, который, для многих вариантов входных данных, вдвое быстрее std::sort. И, за исключением сортировки специально созданных входных последовательностей, на которых алгоритм упирается в свой худший случай, он всегда быстрее std::sort. (А когда появляются данные, приводящие к худшему случаю алгоритма, я эту ситуацию детектирую и автоматически перехожу на std::sort).

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

Учитывая то, о чём я писал в моём прошлом материале, это, конечно, вариант поразрядной сортировки (radix sort). То есть — его временная сложность ниже, чем O(n log n). Вот два основных направления, по которым я усовершенствовал базовый алгоритм:

Читать далее
Total votes 34: ↑26 and ↓8+18
Comments6
Привет, Хабр. Меня зовут Антон Иванов, я СТО «Лаборатории Касперского». Сейчас информационная безопасность — обширная область с очень размытым краем. Не всегда можно понять, где кончается обычная разработка и начинается ИБ-разработка. Под катом я расскажу, почему пытаться провести эту грань вообще контрпродуктивно. А также — почему мы занимаемся машинным зрением для беспилотников и что изобрёл автор квиксорта (помимо квиксорта).
Читать далее
Total votes 27: ↑24 and ↓3+21
Comments6

Arduino ракета на 3D принтере — учимся приземлять ракеты дома

Reading time7 min
Views22K

Сегодня я хотел бы поделиться своим опытом проектирования ракеты типа «Батут-М» с управлением вектора тяги (thrust vector control), все детали будем печатать на 3D принтере, а в качестве микроконтроллера использовать Arduino Nano BLE.

Читать далее
Total votes 81: ↑79 and ↓2+77
Comments38

PlantUML — инструмент продуктового разработчика

Reading time10 min
Views38K

Я дико люблю ковыряться в чужом коде. Это одна из моих любимых специализаций. То есть я просто беру чужой код, анализирую его, читаю. Как я читал его раньше: я переводил код в русский язык. Описывал, что происходит по флоу кода, и пытался понять, что там происходит. Эти записи я в дальнейшем использовал как для написания статей в Confluence, так и для общего понимания происходящего.

С одной стороны, решение работающее. С другой, буквально через неделю-две я уже начинал сомневаться, достаточно точно ли я «перевел» с кода на русский язык? И тогда вспомнил про UML-диаграммы. И вместо того, чтобы записывать текст, стал визуализировать его и исписал неимоверное количество тетрадей. 

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

Давайте вспомним, что такое Unified Modeling Language. Чаще всего в университете UML используется для описания диаграммы классов.

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments18

Растения I класса опасности. Памятка по идентификации

Reading time15 min
Views155K
Признаю честно, я не собирался сейчас писать заметку, ибо в лавине разномастного хабр-научпопа ботанике с примесью химии конкурировать достаточно сложно. Да и все, кому интересны мои публикации давным-давно координируются телеграм-каналом, а самые активные даже patreon-ируют и влияют на создание контента. Но внезапно, после того, как аннотация заметки в фэйсбуке набрала кучу репостов, я решил вынести ее на Хабр, ибо «Знание-сила». Под катом короткая статья, про растительные сверхтоксины, которые в прямом смысле вокруг нас. Как не крути, а это надо знать всем!

Вторая часть — Токсины растений. User Stories
Третья часть — Ядовитые декоративные растения в саду и огороде. Справочник
Четвертая часть — Опасные «вкусняшки». Ядовитые лесные ягоды. Памятка для детей и взрослых


Определить сверхтоксичное растение!
Total votes 170: ↑164 and ↓6+158
Comments164

Предлоги в английском: with или by. Как выбрать нужный и не облажаться

Reading time12 min
Views40K


У Роуэна Аткинсона есть популярная юмористическая сценка про великолепного Иисуса. Девушка по имени Мария легла в ящик и была распилена надвое главным героем. Пила – это инструмент, значит, нужен предлог with, а Иисус – действующее лицо, ставим предлог by. Ещё можно добавить, что with используется в активном залоге, а by – в пассивном.

Всё так просто? Чёрта с два! На самом деле всё гораздо сложнее. Оба предлога можно использовать с одушевлёнными и неодушевлёнными существительными в активном и пассивном залоге.

Более того в русском языке нет фиксированных значений у этих предлогов. By и with можно перевести следующими способами: в, с, на, по, за, из-за, наречием, деепричастием, творительным падежом или вообще никак не переводить.

Всё это только затрудняет их понимание. Поэтому давайте рассмотрим 37 правил употребления этих предлогов.
Total votes 4: ↑2 and ↓20
Comments13

WPF, UWP, WinUI, MAUI, Windows App SDK

Reading time6 min
Views24K

Человека далёкого от клиентской разработки на Windows все эти термины определённо путают. И даже среди MS-сообщества регулярно возникают споры жив UWP или мёртв. Причем главный вопрос в этом споре - а что же такое UWP?

Вот уже года 3 Microsoft проводит "рефакторинг" в своём "королевстве".  Несколько устав видеть одни и те же споры в твиттере, и оставлять одни и те же комментарии на хабре, я решил расписать как же многочисленные UI-фреймворки MS соотносятся между собой. Кто из них больше мёртв. Возможно, кому-то это поможет в выборе технологии для будущего проекта.

Читать далее
Total votes 32: ↑31 and ↓1+30
Comments40

Как одним движением сжечь 10000$ и получить удар током

Reading time14 min
Views103K

Представим себе в сущности довольно-таки заурядную ситуацию: у вас сломался сетевой источник питания. Вы берете в руки мультиметр и измеряете напряжение на входе и выходе источника. На входе у вас честные 230 В переменного тока из розетки, а на выходе по нулям. Вы знаете, что ваш источник питания – импульсный, и вы в курсе про то, что транзисторами источника управляет ШИМ-контроллер, который очень легко идентифицируется на плате.
На столе у вас стоит новенький осциллограф Tektronix DPO 7254 или какой-нибудь LeCroy WavePro 7300A ценою более 10000$, и вы решаете посмотреть с его помощью сигналы ШИМ-контроллера, чтобы диагностировать его исправность или неисправность. На щупе осциллографа написано, что его максимально допустимое напряжение равно 1000 В, это с хорошим запасом больше напряжения в розетке. Непосредственно на самом осциллографе рядом с разъемами для подключения щупов написана цифра 400 V, кроме того, у вас щуп с делителем 1:100, что тоже вселяет уверенность, что все будет в порядке. Вы включаете осциллограф и пробуете подключить его щуп к плате источника питания, однако, как только вы касаетесь щупом осциллографа платы источника питания, проскакивает искра и раздается громкий ба-бах. Экран вашего новенького осциллографа безжизненно потухает, сам осциллограф не реагирует ни на какие кнопки, а комнату заполняет характерный запах сгоревшей электроники. Что же произошло? Почему сгорел осциллограф и как такого избежать? Обо всем этом читайте под катом.
Читать дальше →
Total votes 143: ↑140 and ↓3+137
Comments218

Трюки с виртуальной памятью

Reading time14 min
Views17K

Я уже довольно давно хотел написать пост о работе с виртуальной памятью. И когда @jimsagevid в ответ на мой твит написал о ней, я понял, что время пришло.

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

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

Читать далее
Total votes 43: ↑39 and ↓4+35
Comments24
1
23 ...

Information

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