Как стать автором
Обновить
22
0
Дмитрий Бабокин @DmitryBabokin

Compilers

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

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

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

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

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

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

Время на прочтение 4 мин
Количество просмотров 12K
Зачем покупать дорогой ПК, если ваш iPhone быстрее решает SMT?

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

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


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

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

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

image

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

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

Читать дальше →
Всего голосов 91: ↑86 и ↓5 +81
Комментарии 600

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

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

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


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


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

Читать дальше →
Всего голосов 60: ↑57 и ↓3 +54
Комментарии 22

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

Время на прочтение 7 мин
Количество просмотров 369K
Купили ли вы уже себе новый 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 миллионов раз.
Читать дальше →
Всего голосов 71: ↑69 и ↓2 +67
Комментарии 163

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

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

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


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



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

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

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

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

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



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

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


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

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

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


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

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

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

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

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

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

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

О прошлом


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

image

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

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

Время на прочтение 3 мин
Количество просмотров 59K
Привет Хаброжители!
У нас вышло 4-е измененное издание книги «Современные операционные системы».

image

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

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

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

Содержание


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

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

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 2

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

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

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

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

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

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

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

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

Время на прочтение 2 мин
Количество просмотров 12K
Всем привет!
Вновь доносим до вас новости из жизни C++ сообщества в России.

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

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


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

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

Краткий обзор тем под катом.
Читать дальше →
Всего голосов 39: ↑37 и ↓2 +35
Комментарии 15

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

Время на прочтение 7 мин
Количество просмотров 41K
Компания, где я работаю, разрабатывает программное обеспечение на 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 — работают хорошо.

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

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

Время на прочтение 4 мин
Количество просмотров 13K
Мой недавний пост про OpenMP 4.0 натолкнул меня на мысль, что было бы неплохо написать и про Intel Cilk Plus, потому что модель программирования весьма интересная и уж точно заслуживает отдельного внимания. Ну и раз её часть стала фактически новым стандартом OpenMP, то, вероятно, были на то веские причины.
Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Комментарии 22

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

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



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

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

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

Время на прочтение 2 мин
Количество просмотров 66K
На третьем курсе бакалавра электронной инженерии мне требовалось выбрать диссертационный проект. Он мог быть чисто теоретическим, либо практическим, что включает в себя производство на свет демонстрационного продукта. Сердце легло ко второму варианту, ведь практические задания куда интересней скучной писанины.

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

image
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Комментарии 59

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

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


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

Информация

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