Pull to refresh
22
0
Дмитрий Бабокин @DmitryBabokin

Compilers

Send message

Почему никто не может «побить» пробег Теслы

Reading time3 min
Views67K

Изображение: Audi AG

На этой неделе я совершил ошибку. Я твитнул. Я твитнул что, мол, мне, конечно, нравится Porche Taycan, но я немного разочарован тем, что он, спустя столько лет после выхода оригинальной Tesla Model S так и не смог превзойти ее пробег. И пока я придерживался мнения, что Taycan фундаментально вообще ничего не изменил, Audi нашли время и объяснили что конкретно принесли на рынок электромобили не от Tesla.
Читать дальше →
Total votes 74: ↑65 and ↓9+56
Comments348

SMT-решатель на iPhone

Reading time4 min
Views12K
Зачем покупать дорогой ПК, если ваш iPhone быстрее решает SMT?

Задача выполнимости формул в теориях (satisfiability modulo theories, SMT) — это задача разрешимости для логических формул с учётом лежащих в их основе теорий. — Википедия

Несколько дней назад я написал в твиттере: «Любопытный эксперимент: на новом iPhone прувер Z3 работает быстрее, чем на моём (довольно дорогом) десктопном Intel. Пора перевести все формальные методы исследований на телефон».


Я читал о невероятном прогрессе, которого добились разработчики процессоров Apple, и что скоро маки переведут на собственные ARM-процессоры от Apple. Эти отчёты обычно ссылаются на некоторые кросс-платформенные тесты, такие как Geekbench для демонстрации, что мобильные процессоры Apple не уступают мобильным и настольным процессорам Intel. Но я всегда немного скептически относился к этим кросс-платформенным тестам (как и к другим) — действительно ли они отражают скорость выполнения реальных задач, для которых я использую свои Mac?
Total votes 21: ↑18 and ↓3+15
Comments36

Жизнь внутри черной дыры

Reading time10 min
Views119K
Знаю, что здесь это якобы не приветствуется, но делаю кросс-пост отсюда по прямой просьбе автора — Горькавого Николая Николаевича. Есть некоторый шанс, что их идея перевернёт современную науку. И лучше прочитать о ней в оригинале, чем в пересказе рен-тв или ленты.ру.

image

Для тех, кто не следил за темой. Рассмотрим две вращающихся друг вокруг друга чёрных дыры, допустим, массами 15 и 20 единиц (масс Солнца). Рано или поздно они сольются в одну черную дыру, но её масса будет не 35 единиц, а, скажем, всего 30. Остальные 5 улетят в виде гравитационных волн. Именно эту энергию улавливает гравитационный телескоп LIGO.

Суть идеи Горькавого и Василькова в следующем. Допустим, вы наблюдатель, сидите в своём кресле и чувствуете притяжение 35 единиц массы делить на квадрат расстояния. И тут бац — буквально за секунду их масса уменьшается до 30 единиц. Для вас, в силу принципа относительности, это будет неотличимо от ситуации, когда вас отбросило в обратном направлении с силой в 5 единиц, делить на квадрат расстояния. То есть, неотличимо от антигравитации.

Читать дальше →
Total votes 91: ↑86 and ↓5+81
Comments600

Моноиды, полугруппы и все-все-все

Reading time12 min
Views41K

Если ты на практике используешь ООП, то хорошо разбираешься в таких вещах, как «паттерны проектирования». А знаешь ли ты, что есть множество полезных паттернов, которые не укладываются в этот стандартный список? К сожалению, многие из них связаны с «функциональным программированием», которое, согласно легенде, сложное и заумное. Если десять раз сказать слово «моноид», можно вызвать Дьявола.


Mark Seeman расскажет о функциональном программировании просто и быстро. Для этого он начал писать цикл статей, посвященных связи между паттернами проектирования и теорией категорий. Любой ООПшник, у которого есть 15 минут свободного времени, сможет заполучить в свои руки принципиально новый набор идей и инсайтов, касающихся не только функциональщины, но и правильного объектно-ориентированного дизайна. Решающим фактором является то, что все примеры — это реальный код на C#, F# и Haskell. Этот хабрапост — перевод самого начала цикла, первых трех статей, слитых воедино для удобства понимания.


Кроме того, с Марком можно пообщаться вживую, посетив конференцию DotNext 2017 Moscow, которая состоится 12-13 ноября 2017 г. в Москве, в «Славянская Рэдиссон». Марк прочитает доклад на тему «From dependency injection to dependency rejection». Билеты можно взять здесь.

Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments22

Полный кошмар: USB-C и Thunderbolt 3

Reading time7 min
Views369K
Купили ли вы уже себе новый MacBook или MacBook Pro? А может, Google Pixel? Вы находитесь на пороге путаницы, благодаря этим новым портам «USB-C». Этот простецкий на вид порт таит в себе вселенскую путаницу, и благословенная обратная совместимость использует различные кабели для различных задач. Покупателям придётся очень аккуратно выбирать себе кабель!



USB Type-C: порты и протоколы


Порты USB Type-C распространились достаточно широко, Google начал использовать их на своих компьютерах и телефонах Pixel и Nexus, Apple применяет их на 12" MacBook, а теперь ещё и на новых MacBook Pro. Это физическая спецификация для 24-контактного двустороннего штекера и соответствующих кабелей. В этой статье я буду называть этот физический кабель и порт «USB-C», как наиболее часто используемый термин. Google сообщает, что этот порт называют «USB-C» 21 миллион раз, «USB C» 12 миллионов раз, а правильно, «USB Type-C», всего 8,5 миллионов раз.
Читать дальше →
Total votes 71: ↑69 and ↓2+67
Comments163

Google ставит машинное обучение во главу угла

Reading time14 min
Views17K

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


Карсон Холгейт [Carson Holgate] тренируется на ниндзя. Но не в рукопашном бою – это она уже освоила. Ей 26 лет, и у неё чёрный пояс второго дана по тхэквондо. На этот раз она тренируется в алгоритмах – и вот уже несколько недель проходит программу, которая даст ей силу даже большую, чем дает рукопашный бой. Это машинное обучение, МО. Она работает программистом в Google, в подразделении Android. Холгейт – одна из 18 программистов, участвующих в этом году в программе «Ниндзя машинного обучения», которая выдёргивает талантливых кодеров из их команд и вводит в программу в стиле «Игра Эндера». В рамках программы их обучают техникам внедрения ИИ, которые должны сделать их продукты умнее. Даже ценой усложнения их программ.



«Наш слоган: „Хотите стать ниндзя в машинном обучении?“,- говорит Кристин Робсон, менеджер продукта в области МО во внутренних курсах Google, помогавшая внедрять программу. „Мы приглашаем людей из Google, чтобы провести шесть месяцев внутри команды МО, находиться рядом с наставником, работать над МО полгода, делать свой проект, запускать его и обучаться в процессе“.

Для Холгейт, пришедшей в Google почти четыре года назад с дипломом по информатике и математике, это шанс овладеть самой горячей парадигмой мира софта. Используя обучающиеся алгоритмы и большие объёмы данных, „обучать“ программы выполнению задач. Много лет МО было специальностью, которой владели немногие, „элита“. Это время прошло, и есть мнение, что МО, питаемое нейросетями, эмулирующими работу биологического мозга – это истинный путь по наделению компьютеров возможностями человека, а иногда – и сверхчеловека. Google настроен на увеличение численности этой элиты в своей компании, и надеется, что эти знания станут нормой. Программистам вроде Холгейт эта программа может позволить занять место в первых рядах, и учиться у лучших из лучших. „Эти люди делают невероятные модели, имея при этом степени доктора наук,- говорит она, не скрывая восхищения. Она уже привыкла к тому, что участвует в программе, называющей своих учащихся “ниндзя». – Я сперва морщилась, но привыкла".

Учитывая огромное количество сотрудников компании – почти половина из 60 000 работают программистами – этот проект очень мал. Но программа символизирует когнитивный сдвиг. Хотя МО уже давно используется в технологиях Google – и компания уже стала лидером по найму экспертов в этой области – в 2016 году Google просто помешалась на этой теме. На конференции по обучению в конце прошлого года директор Сандар Пичай пояснил намерения корпорации: «МО – это ядро, путь преобразований, через который мы меняем представление о том, как мы достигаем наших целей. Мы вдумчиво применяем его во всех продуктах – будь то поиск, реклама, YouTube или Play. Мы ещё в начале пути, но вы увидите, что мы систематически будем применять машинное обучение во всех этих областях».
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments9

Динамическая онтология. Как инженеры Palantir объясняют это ЦРУ, АНБ и военным

Reading time7 min
Views18K
Компания Palantir является четвертой по крутости частной компанией Кремниевой долины (после Uber, Xiaomi и Airbnb). Пока Palantir собирает информацию про все на свете, мы собираем информацию про него.



ИТишники додумались как эффективно «монетизировать математику и алгоритмы» (Сегалович, Бакунов), PayPal Mafia додумалась как монетизировать гаджеты Феанора философию (капитализация Palantir — 20 миллиардов долларов).

В десятиминутной лекции сотрудник компании Palantir расскажет про центральную концепцию их системы — динамическую онтологию.


0:00 Привет, я Ашер Синенски, инженер по развертыванию технологий Palantir. Я поговорю о динамической онтологии.
0:08 Очевидно, сейчас, эти два слова выглядят для вас довольно туманно, надеюсь, что к концу разговора вы поймете, какой смысл мы в них вкладываем.
0:17 Перед тем как переходить к делу, поясню: у многих людей проблемы со словом онтология. Что мы подразумеваем под этим словом?
0:24 Если вы посмотрите на корни этого слова, то оно образовано от греческих «онтос» (бытие) и «логия» (изучение чего-либо). По сути, онтология – это категоризация мира.
0:34 Есть много терминов, которые люди используют для описания этого: таксономия, схематизатор модели данных. Но мы используем это, в более широком смысле, как идею, что мы действительно категоризируем мир каким-то образом.
0:43 Идея о построении онтологии для изучения мира не нова. Первым, кто утвердил эту идею, был мужик по имени Платон. Идея Платоновского реализма, в основном, о том, что есть реальные вещи, а есть наше представление о вещах.
Total votes 20: ↑18 and ↓2+16
Comments13

Использование платформы Intel Edison для создания видеоровера

Reading time3 min
Views5.8K


Intel Edison — это умная вычислительная платформа, которая используется для создания различных устройств, в том числе носимых. В мире набирает популярность движение мейкеров, увеличивается число продуктов и решений, которые можно построить с использованием платформы Intel Edison. В этой статье вы вам покажем, как построить видеоровер (вездеход с камерой) с использованием платформы Intel Edison и конструктора Makeblock.
Раз это видеоровер, то он должен иметь камеру. Видео, которое она выдаёт, мы сможем смотреть на компьютере, мобильном телефоне или планшете. Дополнительно мы сможем использовать эти устройства для управления самим вездеходом и камерой.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0

Механизмы и принципы работы памяти головного мозга человека

Reading time6 min
Views112K
image

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

В подготовленном материале постараюсь объяснить механизмы, особенности, функциональность, структурные взаимодействия и особенности в работе памяти. Так же, почему нельзя проводить аналогии с компьютерами в работе мозга и вести исчисления в единицах измерения машинного языка. В статье используются материалы взятые из трудов людей, посвятившим жизнь не легкому труду в изучении цитоархитектоники и морфогенетике, подтвержденный на практике и имеющие результаты в доказательной медицине. В частности используются данные Савельева С.В. учёного, эволюциониста, палеоневролога, доктора биологических наук, профессора, заведующего лабораторией развития нервной системы Института морфологии человека РАН.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments39

Oбновление Vim FileStyle

Reading time1 min
Views5.2K

О прошлом


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

image

Прошло время и плагин получил новый функционал.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments4

Современные операционные системы. 4-е изд

Reading time3 min
Views59K
Привет Хаброжители!
У нас вышло 4-е измененное издание книги «Современные операционные системы».

image

Эндрю Таненбаум представляет новое издание своего всемирного бестселлера, необходимое для понимания функционирования современных операционных систем. Оно существенно отличается от предыдущего и включает в себя сведения о последних достижениях в области информационных технологий. Например, глава о Windows Vista теперь заменена подробным рассмотрением Windows 8.1 как самой актуальной версии на момент написания книги. Появился объемный раздел, посвященный операционной системе Android. Был обновлен материал, касающийся Unix и Linux, а также RAID-систем. Гораздо больше внимания уделено мультиядерным и многоядерным системам, важность которых в последние несколько лет постоянно возрастает. Появилась совершенно новая глава о виртуализации и облачных вычислениях. Добавился большой объем нового материала об использовании ошибок кода, о вредоносных программах и соответствующих мерах защиты. В книге в ясной и увлекательной форме приводится множество важных подробностей, которых нет ни в одном другом издании.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments12

Параллельное программирование с CUDA. Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram)

Reading time8 min
Views27K

Содержание


Часть 1: Введение.
Часть 2: Аппаратное обеспечение GPU и шаблоны параллельной коммуникации.
Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram).
Часть 4: Фундаментальные алгоритмы GPU: уплотнение (compact), сегментированное сканирование (segmented scan), сортировка. Практическое применение некоторых алгоритмов.
Часть 5: Оптимизация GPU программ.
Часть 6: Примеры параллелизации последовательных алгоритмов.
Часть 7: Дополнительные темы параллельного программирования, динамический параллелизм.

Disclaimer
Эта часть в основном теоретическая, и скорее всего не понадобится вам на практике — все эти алгоритмы уже давно реализованы в множестве библиотек.

Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments2

Lock-free структуры данных. Concurrent maps: rehash, no rebuild

Reading time6 min
Views19K

Пройдем по следам C++ 2015 Russia далее.
В предыдущей статье мы рассмотрели алгоритм для lock-free ordered list и на его основе сделали простейший lock-free hash map. У этого hash map есть недостаток: размер хеш-таблицы постоянен и не может быть изменен в процессе роста числа элементов в контейнере. Это не представляет проблемы, если мы заранее примерно представляем требуемый объем контейнера. А если нет?
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments8

Ликбез по типизации в языках программирования

Reading time12 min
Views498K
image

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

В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Читать дальше →
Total votes 239: ↑232 and ↓7+225
Comments180

Конференция C++ Russia в Москве

Reading time2 min
Views12K
Всем привет!
Вновь доносим до вас новости из жизни C++ сообщества в России.

Некоторые из вас знают, для некоторых это будет новостью, но в феврале 2015 года в Москве впервые пройдет конференция, полностью посвященная C++. В течении года мы колесили по стране, привозили в разные уголки необъятной докладчиков из других концов этой самой необъятной. И вот, теперь мы решили, что пора собрать всех на пару дней вместе, чтобы люди смогли послушать друг друга, пообщаться, может быть даже поспорить. Чтобы сделать событие ещё интереснее, мы пригласили открывать событие Шона Пэрента.

Кратко о главном


Что: конференция, целиком посвящённая C++.
Где: Москва, ГТК «Измайлово», гостиница «Альфа» (м. Партизанская).
Когда: 27-28 февраля 2015

Цена: билет стоит 3500 руб.
Сайт: meetingcpp.ru

Краткий обзор тем под катом.
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments15

Об удобной навигации и отладке C++ кода в Vim

Reading time7 min
Views41K
Компания, где я работаю, разрабатывает программное обеспечение на C++ под Linux. Долгое время мы использовали Qt Creator, с редкими ребятами работающими из Emacs и Vim. Когда я сам попытался пересесть на Vim, я понял, что ситуация с плагинами для разработки на С++ очень не простая. Поработав немного с CTags, я быстро понял, что без напильника работать в Vim будет очень сложно.
К сожалению, с ростом опыта работы с Vim редактор в Qt Creator в режиме эмуляции устраивал меня все меньше, и в какой-то момент я решил потратить немного времени и разобраться, как же сделать из Vim нормальную среду.
Я очертил для себя четыре вещи, которые я бы хотел от среды разработки, и которых мне бы хватило в Vim, чтобы полностью на него перейти:

1. Автодополнение
2. Навигация по коду
3. Отладка прямо из среды
4. Интеграция с Git (в частности Blame прямо в редакторе, и Git Grep)

Автодополнение в Vim — это решенная проблема, и название у решения YouCompleteMe. Это очень качественный плагин, который реализует автодополнение для большого количества языков программирования, в частности Python и C++. Ходят слухи, что внутри Google YouCompleteMe решает и вторую проблему с навигацией кода, но использует для этого внутренные инструменты гугла для индексирования.

Интеграция с Git в какой-то степени решена с помощью vim-fugitive. Это не такая комплексная интеграция, как бывает у Jet Brains, или в Visual Studio, но сравнимая с тем, что предлагает Qt Creator. Те два сценария, которые нужны были мне: blame и grep — работают хорошо.

Отладка и навигация были проблемами, решенными гораздо хуже. В этой статье я расскажу о плагине, который мы написали для навигации по С++ коду. В конце статьи я также расскажу о том, как мы для себя решили проблему с интегрированным отладчиком.
Читать дальше →
Total votes 56: ↑51 and ↓5+46
Comments92

Поговорим про Intel® Cilk™ Plus

Reading time4 min
Views13K
Мой недавний пост про OpenMP 4.0 натолкнул меня на мысль, что было бы неплохо написать и про Intel Cilk Plus, потому что модель программирования весьма интересная и уж точно заслуживает отдельного внимания. Ну и раз её часть стала фактически новым стандартом OpenMP, то, вероятно, были на то веские причины.
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments22

Процессоры, ядра и потоки. Топология систем

Reading time12 min
Views281K
В этой статье я попытаюсь описать терминологию, используемую для описания систем, способных исполнять несколько программ параллельно, то есть многоядерных, многопроцессорных, многопоточных. Разные виды параллелизма в ЦПУ IA-32 появлялись в разное время и в несколько непоследовательном порядке. Во всём этом довольно легко запутаться, особенно учитывая, что операционные системы заботливо прячут детали от не слишком искушённых прикладных программ.



Используемая далее терминология используется в документации процессорам Intel. Другие архитектуры могут иметь другие названия для похожих понятий. Там, где они мне известны, я буду их упоминать.

Цель статьи — показать, что при всём многообразии возможных конфигураций многопроцессорных, многоядерных и многопоточных систем для программ, исполняющихся на них, создаются возможности как для абстракции (игнорирования различий), так и для учёта специфики (возможность программно узнать конфигурацию).
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments18

Диссертационный проект или строим Hexapod своми руками

Reading time2 min
Views66K
На третьем курсе бакалавра электронной инженерии мне требовалось выбрать диссертационный проект. Он мог быть чисто теоретическим, либо практическим, что включает в себя производство на свет демонстрационного продукта. Сердце легло ко второму варианту, ведь практические задания куда интересней скучной писанины.

В то время я увлекался робототехникой. Имел опыт строительства дронов и роботов поменьше, которые то следовали за линией по полу, то решали лабиринт за короткий промежуток времени. К тому же, мотивация была приподнята недавней поездкой в Лос-Анджелес на ежегодный VEX Robotics World Championship, где, к слову, не удалось занять призового места, но удалось зарядиться позитивной энергией на весь последующий год. В общем, решил я построить Hexapod своими руками, включая механику, электронику и код.

image
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments59

Вышел Evasi0n: jailbreak для всех устройств под управлением iOS 6.х

Reading time2 min
Views144K


Только что команда хакеров Evad3rs выпустила утилиту для непривязанного джейлбрейка прошивки iOS 6.х для всех iOS устройств кроме Apple TV 3G. Это первый джейлбрейк, доступный пользователям с устройствами под управлением процессоров A6 (iPhone 5) и A6X (iPad 4). Также впервые джейлбрейк доступен для iPad Mini, который изначально поставляется с прошивкой версии 6.0. Ранее, jailbreak был доступен для пользователей iPad 3 (процессор А5Х) под управлением iOS 5.
Читать дальше →
Total votes 91: ↑60 and ↓31+29
Comments59
1
23 ...

Information

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