Pull to refresh
11
0
Кирилл @wide

User

Send message

Как обучть мдль пнмть упртые скрщня

Reading time16 min
Views40K

Недавно я натолкнулся на вопрос на Stackoverflow, как восстанавливать исходные слова из сокращений: например, из wtrbtl получать water bottle, а из bsktballbasketball. В вопросе было дополнительное усложнение: полного словаря всех возможных исходных слов нет, т.е. алгоритм должен быть в состоянии придумывать новые слова.


Вопрос меня заинтриговал, и я полез разбираться, какие алгоритмы и математика лежат в основе современных опечаточников (spell-checkers). Оказалось, что хороший опечаточник можно собрать из n-граммной языковой модели, модели вероятности искажений слов, и жадного алгоритма поиска по лучу (beam search). Вся конструкция вместе называется модель зашумлённого канала (noisy channel).


Вооружившись этими знаниями и Питоном, я за вечер создал с нуля модельку, способную, обучившись на тексте "Властелина колец" (!), распознавать сокращения вполне современных спортивных терминов.


Читать дальше →
Total votes 88: ↑87 and ↓1+86
Comments17

Перевод вики проекта Svelto.ECS. ECS фреймворк для Unity3D

Reading time27 min
Views8.3K

Привет, Хабр! Представляю вашему вниманию перевод вики проекта Svelto.ECS, написанного Себастьяно Мандала (Sebastiano Mandalà).

Svelto.ECS — результат многолетних исследований и применения принципов SOLID в разработке игр на Unity. Это одна из многих реализаций паттерна ECS, доступная для C# с различными уникальными функциями, введенными для устранения недостатков самого паттерна.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments0

Организация Virtus.Pro распускает три игровых состава

Reading time3 min
Views19K

Руководство одной из крупнейших киберспортивных организаций на территории СНГ вчера уволило менеджмент и распустило все составы по MOBA-дисциплинам




Virtus.pro или, как их еще называют, «Медведи», из-за логотипа организации, вчера вечером лишились 60% своих игровых составов и менеджмента. Решение было принято руководством организации на основе низких результатов команд в последние месяцы.

Под раздачу попали составы по Dota (Virtus.pro, VP.Polarity), менеджмент команд, а также организация полностью закрывает направление Heroes of the Storm — MOBA от Blizzard.

Роспуск составов Dota 2


У составов VP по доте непростая история: коллективы никогда не мог похвастаться стабильной игрой и взятием больших титулов. Все составы «виртусов» за последние годы были абсолютно непредсказуемы: сегодня они по всей карте уничтожают соперника Tier-1 уровня, а завтра проигрывают команде второго эшелона.
Читать дальше →
Total votes 23: ↑14 and ↓9+5
Comments29

Какие были альтернативы человечеству

Reading time5 min
Views59K
Человек — разумный, и это наше главное отличительное свойство, но возникает большой вопрос: а действительно ли человек единственное разумное существо на планете? Не будем брать в расчёт дельфинов, собак и прочих далёких от нас животных. На самом деле, в истории приматов разумность возникала далеко не один раз. И очень много разных существ вступали на этот путь, развивались, но по тем или иным причинам сходили с дистанции. Обо всём этом в очередном выпуске наших друзей — канала Sci-One TV — рассказывает антрополог Станислав Дробышевский. Смотрите видео, а текстовую версию читайте под катом.


Читать дальше →
Total votes 73: ↑63 and ↓10+53
Comments289

Спросите Итана №31: почему мы сделаны из материи?

Reading time10 min
Views28K

Если в начале существования Вселенной в ней было одинаковое количество материи и антиматерии, почему в сегодняшнем космосе материя доминирует?


Вы можете не чувствовать себя очень мощным, но если вы — взрослый человек среднего размера, в вашем скромном теле содержится не меньше 7 × 1018 Дж потенциальной энергии — её было бы достаточно, чтобы вы могли взорваться с мощностью тридцати очень больших водородных бомб, если бы вы знали, как освободить её и если бы вам это было очень нужно.
— Билл Брайсон


В конце недели я выбираю лучший из ваших вопросов для колонки “спросите Итана”, и на этой неделе честь предоставляется Джастину Старру, который спрашивает:
Насколько я понимаю, в зарождавшейся Вселенной были равные части материи и антиматерии, в результате чего происходила серьёзная аннигиляция. И как же материя в результате победила?


Джастин спрашивает об одной из величайших нерешённых загадок Вселенной.

Подумайте об этих двух вроде бы противоречащих друг другу фактах:
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments51

Создание библиотеки для iOS

Reading time3 min
Views12K

Разработчики часто сталкиваются с типовыми задачами, которые появляются в новых проектах. Постепенно накапливается база вспомогательного кода, которая собирается в библиотеки и переносится из проекта в проект. И чем больше проектов, тем тяжелее становится поддерживать такие библиотеки.
image

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments7

Террористы пользуются собственным мессенджером с шифрованием

Reading time2 min
Views11K
image

Группа хакеров Ghost Security Group, провозгласившая своей задачей борьбу с проявлениями терроризма в киберпространстве, нашла специальное мобильное приложение, которым, по заявлению GSG, пользуются для общения террористы из т.н. «исламского государства». Приложение «Alrawi», по словам GSG, поддерживает зашифрованные чаты.

Естественно, приложение нельзя скачать из Google – оно распространяется через специализированные сайты. Надёжность протокола шифрования чатов пока никто не исследовал – но чаты шифруются, а забанить это приложение не представляется возможным.

Ранее, в декабре 2015, Ghost Security Group, проникнув в один зашифрованных чатов в Telegram, обнаружили мобильное приложение, представляющее собой новостной портал с пропагандой «достижений» террористов. Портал управляется группой Amaq News Agency, чья деятельность связывается с ИГИЛ.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments12

Panasonic продемонстрировал прозрачный дисплей

Reading time1 min
Views17K
image

На выставке потребительской электроники CES 2016 компания Panasonic показала необычный дисплей, способный становиться прозрачным. При этом в стандартном режиме работы он выглядит как обычный дисплей.

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

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

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

Под катом – анимированные GIF с демонстрацией работы дисплея.
15 Мб
Total votes 22: ↑18 and ↓4+14
Comments10

Тестирование iOS-приложений

Reading time7 min
Views35K
В этой статье я хочу рассказать о тестировании iOS приложений и небольшой автоматизации этого процесса.
Под катом будут рассмотрены инструменты для модульного и функционального тестирования и приведены простые примеры.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments14

Облегчаем поддержку iOS приложения. Часть 2 — локация и сеть

Reading time6 min
Views8.7K
Добрый день, хаброжители,

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

  1. Облегчаем поддержку iOS приложения. Часть 1 — не отрываясь от Xcode
  2. Облегчаем поддержку iOS приложения. Часть 2 — локация и сеть
  3. Облегчаем поддержку iOS приложения. Часть 3 — падение и логи

В первой статье я поделился своим опытом работы с трудно воспроизводимыми багами. В этой статье я расскажу, как можно поступить с багами, которые связаны с сетью или локацией. Тех, кого интересует эта тема, прошу под кат.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments0

Записки iOS программиста о его молотках, кувалдах и микрометрах

Reading time20 min
Views32K
В один прекрасный момент, когда на собеседованиях меня уже убеждали, что я senior iOS developer — у меня возникло ощущение, что я уперся. Пишу похожий код, решаю задачи похожими способами и ощущение, что непонятно, куда развиваться дальше. Я думаю, с этой проблемой сталкивался не один я — нехваткой новых идей, концепций, направлений. Я бы хотел рассказать вам о тех инструментах и фреймворках, которые помогли преодолеть мне это ощущение.

Думаю, большинство из здесь присутствующих разработчиков читали таких ребят, как банду четырех. Все, хотя бы на собеседованиях, слышали слово паттерн, кто-то более (или менее) везучий слышал слова пострашнее — императивный, функциональный, монада, реактивность и другие ужасы. Вообще, довольно много ярких и интересных идей ходит в мире разработки ПО и, к счастью, далеко не все из них существуют только в виде словесных абстракций. Я бы хотел в этой статье немного рассказать не столько о прикладном инструментарии (хотя именно с ним мы и сталкиваемся большую часть рабочего времени), сколько о примерах инструментария, для использования которых нужно осмысление, которое существенно помогает в дальнейшем. Я бы хотел рассказать о том, как (и какие) инструменты изменяют сам процесс проектирования, написания кода, по крайней мере сделали это для меня.


Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments13

Будущее вселенной

Reading time15 min
Views105K
Как-то я наткнулся на интересную тайм-ленту предполагаемых событий вселенной на википедии, но она была довольно скудной и без картинок, так что я залез в гугл и поискал «future time line», и первое, что увидел, — этот сайт. Мне очень понравилась эта статья и я решил перевести ее, заодно и вычитать ее получше.
Все, что здесь изложено — лишь предположения и теории, вполне возможно, что все или некоторые события будут не такими. Весь пост представлен в виде тайм-ленты от 10000 до 10100 года, и содержит много интересных картинок и ссылок на вики, читать много и интересно.



10 000 – 15 000 Н.Э.


Гиперновая из звездной системы Эта Киля начинает воздействовать на наш регион Галактики


Эта Киля – одна из самых больших и нестабильных звезд в нашей Галактике. Ее температура настолько высока, что ее гравитация не в состоянии удерживать газ, утекающий с ее поверхности по сформированным потокам вверх, от нее. Она впервые была замечена в 1843 году, когда ее звездная величина (читай величина свечения) достигла -0.8, сделав ее второй по яркости звездой в ночном небе.
Она в дальнейшем утихла на какое-то время, и снова «засветила» в конце 1990-х. Эта флуктуация продолжается с периодичным вспыхиванием и затуханием, и будет продолжаться до тех пор, пока не случится неизбежное. Не в состоянии совладать с собственной массой и плотностью, она коллапсирует и, потом, превращается в одну из самых смертельных сил, известных в природе – в гиперновую.
На какое-то время, этот колоссальный взрыв освещает всю галактику. Это будет достаточно ярко, чтобы заметить в дневное время с Земли, в то время как ночью это сравнимо с полной луной.
Но гораздо больше вреда принесут убийственные струи гамма-излучения, выброшенные умирающей звездой. Они будут выброшены на таких высоких энергиях, что даже системы в тысячах световых лет от Эта Киля будут задеты. В результате, на многочисленных планетах в нашем регионе Галактики произойдет вымирание живых организмов в это время.

Читать дальше →
Total votes 265: ↑257 and ↓8+249
Comments239

Алгоритм Х или что общего между деревянной головоломкой и танцующим Линком?

Reading time5 min
Views67K


Предисловие


Как-то в гостях мне в руки попалась головоломка, в которой из 25 одинаковых фигурок требовалось собрать куб. Я провозился с ней почти весь вечер, и как можно догадаться, абсолютно безрезультатно. Тем не менее, я не мог сдаться просто так.

Не можешь сам — заставь компьютер. Сказано — сделано. В результате написанному по наитию алгоритму пришлось работать всю ночь, чтобы найти все 4 уникальных решения. В процессе гугления решений для сравнения, я нашёл программу Burr Tools, которая справилась с этой задачей за 3 минуты на моём ноутбуке.

Такая разница в скорости заставила меня разобраться, как решается эта задача и ещё целый класс подобных.

Так как же решается эта задача и ещё целый класс подобных?
Total votes 145: ↑141 and ↓4+137
Comments14

Суждения, умозаключения, силлогизмы… или достижения античной логики в одном посте

Reading time5 min
Views62K
Когда я учился в школе, мы изучали логику, но сейчас даже в моём любимом лицее её почему-то не преподают. Более того, я узнал, что большинство моих знакомых (даже успешно закончивших вузы) не знают, ни о логическом квадрате, ни о различных модусах. В этом небольшом топике, я постараюсь вкратце рассказать обо всём. Сразу скажу, что гуру дискретной математики вряд ли узнают что-то новое, но остальным должно быть как минимум интересно, а как максимум полезно.
Читать дальше →
Total votes 27: ↑18 and ↓9+9
Comments20

Марсианский код: лекция о том, как программировали Curiosity

Reading time1 min
Views33K
На конференции HotDep 2012 Джерард Хольцман из Лаборатории реактивного движения НАСА прочёл лекцию о том, как обеспечивалась надёжность и корректность кода для марсохода Curiosity. Часовая лекция рассказывает, какие методики, стандарты кодирования и инструменты разработки применялись программистами НАСА, чтобы написать три с половиной миллиона строк сверхнадёжного кода, который в автономном режиме посадил Curiosity на поверхность Марса и обеспечивает работу всех его систем и приборов.

Лекцию можно посмотреть онлайн на сайте usenix.org, или скачать в формате .mp4 (228 Мб).

Total votes 74: ↑49 and ↓25+24
Comments22

Как заставить компилятор C/C++ генерировать плохой код

Reading time4 min
Views37K
Это перевод статьи «How to trick C/C++ compilers into generating terrible code?», автор оригинала — Aater Suleman.

На курсе архитектуры ЭВМ мне сказали, что процессор похож на машину. Руль и педали — это ISA, двигатель — микроархитектура, а программа — водитель. Продолжая эту аналогию, скажу, что использование компьютера похоже на управление машиной через пульт дистанционного управления. Пульт — это клёвая вещь, но в то же время важно понимать, как он работает. Даже в профессиональном ПО я видел много примеров кода, который может смутить даже самый умный компилятор. В этой статье я расскажу об основных методах запутывания компиляторов.

Читать дальше →
Total votes 80: ↑76 and ↓4+72
Comments79

Как собрать бинарный deb пакет: подробное HowTo

Reading time15 min
Views226K
Сегодня я расскажу на абстрактном примере как правильно создать *.deb пакет для Ubuntu/Debian. Пакет мы будем делать бинарный. Пакеты, компилирующие бинарники из исходников здесь не рассматриваются: осилив изложенные ниже знания, в дальнейшем по готовым примерам можно понять суть и действовать по аналогии :)

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

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

Для тех, кто не хочет вдаваться в мощную систему установки софта в Linux, рекомендую посетить сайт проги CheckInstall: она автоматически создаёт deb-пакет из команды «make install» ;) А мы вместе с любопытными —
поехали дальше!
Total votes 73: ↑63 and ↓10+53
Comments40

Unix как IDE: Введение

Reading time3 min
Views38K
Профессиональные программисты, как новички, так и опытные, обычно придерживаются концепции IDE, или «интегрированной среды разработки». Правда, удобно же иметь самые необходимые средства организации, написания, поддержки и тестирования кода в одном приложении с единым интерфейсом для всех инструментов? К тому же, среда, специально спроектированная для программирования, дает ряд преимуществ, таких как автодополнение, проверка и подсветка синтаксиса.

Подобные средства есть для всех распространенных настольных ОС, включая Linux и BSD, и многие из них совершенно бесплатны, так что вряд ли имеет смысл ограничивать себя в Блокнотом Windows, nano или cat.

Однако, в среде поклонников Unix гуляет в разнообразных вариациях мем о том, что «Unix — это IDE», в том смысле, что средства, которыми разработчики располагают в терминале, легко реализуют основные возможности современных IDE. Вы можете соглашаться или отказываться признать Unix «IDE» в том самом смысле, что Eclipse или Microsoft Visual Studio. Так или иначе, вас скорее всего удивит, насколько законченную среду разработки может являть собой скромный Bash.
Читать дальше →
Total votes 108: ↑88 and ↓20+68
Comments71

C++0x (С++11). Лямбда-выражения

Reading time13 min
Views305K
Буквально на днях случайно наткнулся на Хабре на статью о лямбда-выражениях из нового (будущего) стандарта C++. Статья хорошая и даёт понять преимущества лямбда-выражений, однако, мне показалось, что статья недостаточно полная, поэтому я решил попробовать более детально изложить материал.

Читать дальше
Total votes 75: ↑71 and ↓4+67
Comments83

Руководство новичка по эксплуатации компоновщика

Reading time32 min
Views210K
David Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).

Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).

Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
g++ -o test1 test1a.o test1b.o
test1a.o(.text+0x18): In function `main':
: undefined reference to `findmax(int, int)'
collect2: ld returned 1 exit status

Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
Читать дальше →
Total votes 194: ↑193 and ↓1+192
Comments38
1

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity