RSS
Pages: 1 ... 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 133
[>] Разработка шахматной программы
habra.16
habrabot(difrex,1) — All
2017-05-26 14:00:05


Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329528/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Эксперименты с malloc и нейронными сетями
habra.16
habrabot(difrex,1) — All
2017-05-26 14:00:05





Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про [эксперименты с malloc][1]. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе [МФТИ][2], и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования `malloc()` и `free()`. Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до `malloc()`. Итак, пора восстановить справедливость и реализовать обещанное: _ударить глубоким обучением по предсказанию работы с кучей_.



Внутри:


* Совершенствуем `libtracemalloc`, перехватчик `malloc()`.
* Строим LSTM на Keras — глубокую рекуррентную сеть.
* Обучаем модель на примере работы реального приложения ([vcmi/vcmi][3] — а вы думали, причем здесь Heroes III?).
* Удивляемся неожиданно хорошим результатам.
* Фантазируем про практическое применение технологии.
* [Исходники][4].

Интересно? Добро пожаловать под кат.


[Читать дальше →][5]

[1]: https://habrahabr.ru/company/mailru/blog/281497/
[2]: http://mipt.ru
[3]: https://github.com/vcmi/vcmi
[4]: https://github.com/vmarkovtsev/hack_malloc
[5]: https://habrahabr.ru/post/329518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пятничная дискуссия: российская vs зарубежная IT – компания. Почему все стремятся работать в Google
habra.16
habrabot(difrex,1) — All
2017-05-26 18:00:05


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

Работать в этой компании стремятся инженеры по всему миру, а для российских разработчиков компания представляется настоящим технологическим эдемом, в который еженедельно поступают более 50 000 резюме.

И стоит отметить, что компания хорошо вложилась в создание технического рая из 70 офисов в 40 странах мира, в которых уже сейчас творят более 60 000 сотрудников и функционирует секретная лаборатория Google X.

[![][1]][2]
[Читать дальше →][3]

[1]: https://habrastorage.org/web/334/300/2a7/3343002a717d4cb3bef1cafdb564507e.jpg
[2]: https://habrahabr.ru/company/efs/blog/329524/
[3]: https://habrahabr.ru/post/329524/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] О дженериках в PHP и о том, зачем они нам нужны
habra.16
habrabot(difrex,1) — All
2017-05-26 22:30:04


![][1]



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

[Читать дальше →][2]

[1]: https://habrastorage.org/web/b76/ba0/efd/b76ba0efd41746628a098a65f996fbe2.jpg
[2]: https://habrahabr.ru/post/329494/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Russian Code Cup — по следам отборочного раунда
habra.16
habrabot(difrex,1) — All
2017-05-26 22:30:04


![][1]



14 мая прошёл отборочный раунд [Russian Code Cup 2017][2]. По традиции выкладываем разбор задач и подводим итоги.



A. [Маленькие числа][3]
B. [Новая клавиатура][4]
C. [Складывание фигуры][5]
D. [Остроугольные треугольники][6]
E. [Объединение массивов][7]
F. [Два поддерева][8]



В раунде участвовали 603 человека: приблизительно по 200 лучших программистов с каждого квалификационного раунда. По результатам отборочного раунда мы взяли в финал 55 участников.

[Читать дальше →][9]

[1]: https://habrastorage.org/web/5ac/a23/388/5aca23388fb845fc82c023c0d337428e.jpg
[2]: http://www.russiancodecup.ru/
[3]: https://habrahabr.ru/company/mailru/blog/329476/#a-malenkie-chisla
[4]: https://habrahabr.ru/company/mailru/blog/329476/#b-novaya-klaviatura
[5]: https://habrahabr.ru/company/mailru/blog/329476/#c-skladyvanie-figury
[6]: https://habrahabr.ru/company/mailru/blog/329476/#d-ostrougolnye-treugolniki
[7]: https://habrahabr.ru/company/mailru/blog/329476/#e-obedinenie-massivov
[8]: https://habrahabr.ru/company/mailru/blog/329476/#f-dva-poddereva
[9]: https://habrahabr.ru/post/329476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Критическая уязвимость SambaCry: как защититься
habra.16
habrabot(difrex,1) — All
2017-05-27 11:00:04


[![][1]][2]

В популярном пакете для создания сетевых дисков на различных ОС Samba обнаружена критическая уязвимость, позволяющая удаленно получать контроль над Linux и Unix-системами. Ошибка просуществовала 7 лет — уязвимости CVE-2017-7494 подвержены все версии пакета, начиная с Samba 3.5.0, который вышел 1 марта 2010 года. Сегодня мы поговорим о том, как защититься от этой уязвимости. [Читать дальше →][3]

[1]: https://habrastorage.org/web/4f4/6f3/dff/4f46f3dff25446bca54877b761d186ff.png
[2]: https://habrahabr.ru/company/pt/blog/329558/
[3]: https://habrahabr.ru/post/329558/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] learnopengl. Урок 2.1 — Цвета
habra.16
habrabot(difrex,1) — All
2017-05-27 20:30:04


Перевод очередного урока с сайта learnopengl.com. Недавно обнаружил на русском [Уроки по OpenGL с сайта OGLDev][1], но некоторые из них требуют 4 версию opengl, а примеры кода слишком зависимы от предыдущих уроков и объектно-ориентированы. Поэтому, вниманию всех интересующихся opengl'ем новичков со стареньким железом предлагаю коротенькую статью о цвете, с которой начинается вторая часть обучающего курса от Joey de Vries:

[Читать дальше →][2]

[1]: https://triplepointfive.github.io/ogltutor/
[2]: https://habrahabr.ru/post/329592/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Уязвимость в Web API Lycamobile позволяет управлять любым номером оператора
habra.16
habrabot(difrex,1) — All
2017-05-27 20:30:04


![image][1]
Доброго времени суток. Меня зовут **Алексей**. Я занимаюсь разработкой под .NET, pentesting и reverse engineering Android apps.
В марте от одного уважаемого человека мне поступил заказ на исследование приложения [play.google.com/store/apps/details?id=com.lycamobile.myaccounts][2] и описание его private API. После непродолжительных манипуляций я понял логику запросов и уж было приступил к описанию, но заметил что при смене номера телефона в запросе сервер продолжает отдавать данные. Оказалось что сервер просто не проверяет авторизованы ли мы и вся авторизация в приложении не более чем формальность.
Немного цифр. **Lycamobile** работает в **21 стране мира**, капитализация **€1.6 billion**.
Данная уязвимость работает в uk, de, usa. Для остальных стран было лень проверять.
Команды API можно узнать там же на сервере по адресу [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/47e/912/46e/47e91246e78244474e3fef93f8910e54.jpg
[2]: https://play.google.com/store/apps/details?id=com.lycamobile.myaccounts
[3]: https://habrahabr.ru/post/329586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 21: BlueDoom защищает от WannaCry, криптолокер угрожает медтехнике, субтитры – новый вектор атаки
habra.16
habrabot(difrex,1) — All
2017-05-27 20:30:04


Благотворительный марафон сливов ShadowBrokers продолжает приносить плоды. Вслед за WannaCry в Сеть [ворвался][1] еще один червь, под завязку накачанный эксплойтами. Один семпл забрел к хорватам из местного CERT, и получил имя EternalRocks, второй такой же попался Heimdal Security и был назван не менее пафосно – BlueDoom. На целевую машину они заходили точно так же, как WannaСry, через порт 445.

Новый червяк любопытен большим числом интегрированных в него эксплойтов: он использует EternalBlue, EternalChampion, EternalRomance, EternalSynergy, ArchiTouch, SMBTouch, и DoublePulsar – все это благодаря доброте ShadowBrokers.

Заразив машину, EternalRocks на протяжении суток не делает ничего (видимо, на случай попадания запуска в песочнице – авторы полагают, что исследователи не будут так долго ждать, пока пойманная особь задергается), а потом стучится на сервер управления через сеть Tor. Но ничего особо вредоносного, помимо эксплойт-пака для дальнейшего распространения, сервер ему так ни разу и не прислал, чем изрядно озадачил исследователей.
[Читать дальше →][2]

[1]: https://threatpost.com/eternalrocks-worm-spreads-seven-nsa-smb-exploits/125825/
[2]: https://habrahabr.ru/post/329570/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Анализ рынка недвижимости методом случайного леса
habra.16
habrabot(difrex,1) — All
2017-05-28 10:30:03


Решалась задача анализа текущих предложений на минском рынке недвижимости с целью поиска недооцененных квартир. В качестве источника информации был выбран [сайт ][1]риэлтерского агентства "Твоя столица".

[Читать дальше →][2]

[1]: http://www.t-s.by
[2]: https://habrahabr.ru/post/329504/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Решение задачи коммивояжёра методом ближайшего соседа на Python
habra.16
habrabot(difrex,1) — All
2017-05-28 17:00:05


### Быстрый и простой алгоритм требующий модификации


Среди методов решения задачи коммивояжёра метод ближайшего соседа привлекает простотой алгоритма. Метод ближайшего соседа в исходной формулировке заключается в нахождении замкнутой кривой минимальной длины, соединяющей заданный набор точек на плоскости [1]. Моё внимание привлекла наиболее распространённая реализация данного алгоритма в пакете Mathcad, размещённая в сети на ресурсе [2]. Сама реализация не совсем удобна, например, нельзя вывести матрицу расстояний между пунктами или проанализировать альтернативные маршруты.

На ресурсе [2] приведена следующая вполне справедливая критика данного метода. «Маршрут не оптимальный (не самый короткий) и сильно зависит от выбора первого города. Фактически не решена задача коммивояжера, а найдена одна гамильтонова цепь графа». Там же предложен путь некоторого усовершенствования метода ближайшего соседа. «Следующий возможный шаг оптимизации — «развязывание петель» (ликвидация перекрестий). Другое решение — перебор всех городов (вершин графа) в качестве начала маршрута и выбор наикратчайшего из всех маршрутов». Однако реализация последнего предложения не приведена. Учитывая все перечисленные обстоятельства, я решил реализовать приведенный алгоритм на Python и при этом предусмотреть возможность выбора начального пункта по критерию минимальной длины марщрута.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Двухфакторная аутентификация при монтировании зашифрованного раздела LUKS с помощью Yubikey 4
habra.16
habrabot(difrex,1) — All
2017-05-28 22:30:04


### Часть 3: Yubikey 4 и LUKS


![][1]


### Введение


В статье рассматривается реализация двухфакторной аутентификации с помощью ключа Yubikey 4 для монтирования зашифрованного раздела LUKS.

Процесс реализации двухфакторной аутентификации с помощью ключа Yubikey 4 для монтирования зашифрованного раздела LUKS можно разбить на три части:

1. Подготовка LUKS раздела.
2. Подготовка к использованию ключа Yubikey 4 в операционной системе.
3. Непосредственно использование ключа Yubikey 4 для двухфакторной аутентификации.

Начальные условия:

* Linux Mint 18 Sarah 64-bit
* Yubikey 4[Читать дальше →][2]

[1]: https://habrastorage.org/web/a04/691/fb7/a04691fb72ec4559ac4c914e229c2df1.png
[2]: https://habrahabr.ru/post/329648/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Нейронные сети в детектировании номеров
habra.16
habrabot(difrex,1) — All
2017-05-29 04:00:06


![][1]
Распознавание автомобильных номеров до сих пор является самым продаваемым решением на основе компьютерного зрения. Сотни, если не тысячи продуктов конкурируют на этом рынке уже на протяжении 20-25 лет. Отчасти поэтому сверточные нейронные сети (CNN) не бьют прежние алгоритмические подходы на рынке.
Но опыт последних лет говорит, что алгоритмы CNN позволяют делать надежные и гибкие для применения решения. Есть и еще одно удобство: при таком подходе всегда можно улучшить надежность решения на порядок после реального внедрения за счет переобучения.
Кроме того, такие алгоритмы отлично реализуются на GPU (графических модулях), которые значительно эффективней с точки зрения потребления электроэнергии, чем обычные процессоры. А платформа Jetson TX так просто потребляет очень мало по меркам современных вычислителей. Наглядное “энергетическое превосходство”:
[Читать дальше →][2]

[1]: https://habrastorage.org/web/2c9/859/689/2c9859689bb740c78f93b6ac0770496a.png
[2]: https://habrahabr.ru/post/329636/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн курс «Функциональная безопасность компьютерных систем»
habra.16
habrabot(difrex,1) — All
2017-05-29 08:30:04


![][1]
[Источник][2]

Вашему вниманию предлагается статья о том, как был создан [онлайн курс по тематике «Функциональная безопасность»][3]. Сервисы онлайн обучения располагают студийным оборудованием для записи высококачественного звука и видео. А если вдруг представить, что доступа у вас к подобным ресурсам нет, а учебный материал надо подготовить для использования в онлайн режиме? Автор решил поделиться собственным опытом и раскрыть следующие вопросы:

— мотивация или зачем и кому это надо;
— инструменты подготовки и записи;
— содержание Massive Online Open Course (MOOC) по функциональной безопасности;
— дальнейшие шаги по развитию продукта.
[Читать дальше →][4]

[1]: https://habrastorage.org/web/31a/a18/c44/31aa18c44efb4fa59e6c1c05f026af0d.png
[2]: http://planetecore.blogspot.in/2014/10/what-heck-is-mooc.html
[3]: https://www.youtube.com/channel/UCBubGwRzCYVW4YtdJ7d1V7g
[4]: https://habrahabr.ru/post/329598/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Создаём постоянное хранилище с provisioning в Kubernetes на базе Ceph
habra.16
habrabot(difrex,1) — All
2017-05-29 11:30:05


![][1]
_**Предисловие переводчика**: Когда мы собрались наконец-то подготовить свой материал по разворачиванию Ceph в Kubernetes, нашли уже готовую и, что немаловажно, свежую (от апреля 2017 года) инструкцию от компании [Cron][2] (из Боснии и Герцеговины) на английском языке. Убедившись в её простоте и практичности, решили поделиться с другими системными администраторами и DevOps-инженерами в формате «как есть», лишь добавив в листинги один небольшой недостающий фрагмент._

Программно-определяемые хранилища данных набирают популярность последние несколько лет, особенно с масштабным распространением частных облачных инфраструктур. Такие хранилища являются критической частью Docker-контейнеров, а самое популярное из них — Ceph. Если хранилище Ceph уже используется у вас, то благодаря его полной поддержке в Kubernetes легко настроить динамическое создание томов для хранения (volume provisioning) по запросу пользователей. Автоматизация их создания реализуется использованием Kubernetes [StorageClasses][3]. В этой инструкции показано, как в кластере Kubernetes реализуется хранилище Ceph. [Читать дальше →][4]

[1]: https://habrastorage.org/web/a0b/8ca/ad7/a0b8caad7cb449ff8655bf584a68ca8b.png
[2]: https://crondev.com/
[3]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#storageclasses
[4]: https://habrahabr.ru/post/329666/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Откуда Рокетбанк знает ваше имя
habra.16
habrabot(difrex,1) — All
2017-05-29 13:30:04


Тратить время на поиск ручками по базе или, не приведи господи, на набивку номера из CRM в телефон – это роскошь в прямом смысле слова. Когда Рокетбанк стал набирать популярность, что сопровождалось увеличением количества заявок на новые карты, банку нужно было ускорить обработку входящих обращений. Первым делом они решили научить CRM-систему звонить. Как им удалось обуздать свою CRM, читайте под катом.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Smart IDReader SDK — как добавить распознавание в iOS приложение за 5 минут — теперь и на Github
habra.16
habrabot(difrex,1) — All
2017-05-29 15:30:04


![][1]

Ранее мы, [Smart Engines][2], уже писали про наши технологии распознавания ([паспорта РФ][3], [банковских карт][4] и многих [других][5]). Основной ценностью SDK является "ядро" или "движок" распознавания Smart IDReader, который объединяет функциональность сканирования всего, что мы умеем сканировать, под единым интерфейсом.



Библиотека распознавания написана на С++ для достижения максимальной производительности, но для использования с различными языками программирования у нас есть версии интерфейсов библиотеки на C++, C, C#, Objective-C, Java и даже Visual Basic. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris и, разумеется, [Эльбрус][6] и AstraLinux. Наши алгоритмы оптимизированы под такие архитектуры, как ARMv7-v8, AArch64, x86, x86\_64, SPARC, E2K.



Мы решили выложить демо-версию нашего SDK на Github, чтобы вы могли ознакомиться с интерфейсом библиотеки (как Objective-C часть, так и C++), почитать документацию и попробовать встроить Smart IDReader в ваше приложение. Репозиторий с демо-версией Smart IDReader iOS SDK доступен по ссылке:



Чтобы посмотреть, как Smart IDReader выглядит в нашем исполнении после встраивания, вы можете скачать бесплатные полные версии приложений из [App Store][7] и [Google Play][8].



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

[Читать дальше →][9]

[1]: https://habrastorage.org/web/370/4af/302/3704af302f9e47a590c644a1a1493266.png
[2]: http://smartengines.ru
[3]: https://habrahabr.ru/company/smartengines/blog/252703/
[4]: https://habrahabr.ru/company/smartengines/blog/272607/
[5]: https://habrahabr.ru/company/smartengines/blog/322400/
[6]: https://habrahabr.ru/company/smartengines/blog/304750/
[7]: https://itunes.apple.com/ru/app/smart-idreader/id1157877082
[8]: https://play.google.com/store/apps/details?id=biz.smartengines.smartid
[9]: https://habrahabr.ru/post/329574/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проблема сохранения контекста при асинхронном программировании в scala
habra.16
habrabot(difrex,1) — All
2017-05-29 16:30:04


В какой-то момент в проекте встает вопрос отслеживания хода выполнения операции, получения или складирование какой-то информации о ней. Для этого как нельзя лучше служит контекст операции, например, контекст клиентской сессии. Если вам интересно, как это можно сделать относительно безболезненно, прошу под кат.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/323682/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему ненавидеть код-ревьюера – хорошо
habra.16
habrabot(difrex,1) — All
2017-05-29 17:00:05


С утра вы приходите на работу, выпиваете чашечку кофе, закусывая печенькой, и в полной боевой готовности идете на свое рабочее место. Заходите в Jira (любой другой трекер), выбираете наиболее приоритетную задачу из текущего спринта и переводите ее в статус “In Progress”. Спустя некоторое время увлеченной работы задача отправляется на код-ревью, а вы позволяете себе отлучиться еще за одной чашкой кофе.



Вы довольны собой – к решению задачи вы подошли ответственно и копнули вглубь, проработав все возможные сценарии развития событий и написав красивый и лаконичный код. Вы возвращаетесь с кухни спустя несколько (десятков) минут, отвечаете на пару сообщений в одном из чатов и замечаете, что ваш почтовый ящик не пуст. Это пришла нотификация с гитхаба – ваш ревьюер оставил около 10 комментариев и сделал change request.



![][1]



Знакомая ситуация?

[Читать дальше →][2]

[1]: https://habrastorage.org/web/44e/806/711/44e80671104549c5847fff0b20262f23.jpg
[2]: https://habrahabr.ru/post/329644/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Mockанье зависимостей в node.js приложениях
habra.16
habrabot(difrex,1) — All
2017-05-30 11:30:04


Mocks, fakes, and stubs — три столпа юнит тестирования. Конечно же все знают что это такое, как солить и когда есть.
Я честно тоже так думал, пока не столкнулся с действительностью, под которую мне пришлось немного прогнуться.



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


Component = proxyquire.noCallThru().load(‘../Component’, {

‘../../core/selectors/common': { getData }

}).default; [Читать дальше →][1]

[1]: https://habrahabr.ru/post/329740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Анонимность в Tor: что нельзя делать
habra.16
habrabot(difrex,1) — All
2017-05-30 14:30:05


# Посещать собственный сайт в анонимном режиме


«Интересно, как выглядит мой сайт, когда я анонимный?» [[1]][1]<>

Лучше избегать посещения персональных сайтов, к которым прикреплены реальные имена или псевдонимы, особенно если к ним когда-либо подключались не через Tor / с реальным IP-адресом. Вероятно, очень немногие люди посещают ваш личный сайт через Tor. Это значит, что пользователь может быть единственным уникальным клиентом Tor, который сделает это.

Такое поведение ведёт к утечке анонимности, поскольку после посещения веб-сайта вся схема Tor становится «грязной». Если сайт малопопулярен и не получает много трафика, то выходные узлы Tor могут быть почти уверены, что посетитель этого сайта — владелец сайта. С этого момента разумно предположить, что последующие соединения с этого выходного узла Tor тоже идут с компьютера этого пользователя.

Источник: [[2]][2]<>
[Читать дальше →][3]

[1]: #1
[2]: #2
[3]: https://habrahabr.ru/post/329756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему стоило посетить OS Day 17
habra.16
habrabot(difrex,1) — All
2017-05-30 15:00:05



Читая комментарии к [статье][1] о конференции [OS Day 2017][2], я как разработчик одной из представленных в России ОСРВ [Embox][3], был немного в шоке. Нет, в России все знают, что кроме BolgenOS и каких-то очередных распилов у нас ничего не умеют!
Но во-первых, мероприятие проходило в главном здании РАН, и вряд ли такая солидная организация пропустила бы поделки школьников, а во-вторых, комментарии писали пользователи хабра, а значит, технически грамотные люди, и в отсутствии у них осведомлённости об [Alt Linux][4], [KolibriOS][5], [PhantomOS][6], [ReactOS][7] вряд ли можно усомниться. Я решил не вмешиваться в обсуждение, а написать собственное мнение о происходившем по итогам этой конференции.

Статья ни в коем случае не официальная, все официальные отчеты и пресс-релизы сделают организаторы. Здесь будут освещены только запомнившиеся лично мне моменты.
[Читать дальше →][8]

[1]: https://habrahabr.ru/article/327935/
[2]: http://osday.ru/
[3]: https://ru.wikipedia.org/wiki/Embox
[4]: https://ru.wikipedia.org/wiki/ALT_Linux_%28%D0%B4%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2_Linux%29
[5]: https://ru.wikipedia.org/wiki/KolibriOS
[6]: https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BD%D1%82%D0%BE%D0%BC_%28%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%29
[7]: https://ru.wikipedia.org/wiki/ReactOS
[8]: https://habrahabr.ru/post/329776/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Intel и Facebook совместно повышают производительность библиотеки Caffe2
habra.16
habrabot(difrex,1) — All
2017-05-30 15:00:05


![][1]

Каждый день окружающий нас мир генерирует все больше и больше информации — текстовой, графической, мультимедийной и т.д. За последние годы технологии искусственного разума и глубокого изучения сумели улучшить ряд приложений, которые помогают людям лучше воспринимать эту информацию, обогатив их возможностями распознавания речи, видео, изображений, а также функционалом рекомендаций.
[Как Intel и Facebook ускоряют deep learning][2]

[1]: https://habrastorage.org/web/328/859/0f7/3288590f7a824ebe8785930b096da319.png
[2]: https://habrahabr.ru/post/329682/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Технологии технологиями, а главное — код
habra.16
habrabot(difrex,1) — All
2017-05-30 15:30:06


> Так зачем же мы пишем этот плохой код, который изо дня в день замедляет нашу работу?
> Потому, что мы тогда вынуждены были сделать что-то быстрее!
> Я оставлю вас наедине с это логической несостыковкой…
> _На одной из [лекций][1] Роберта Мартина_


У нас на **DevConf **будет не самый обычный мастер-класс. Там не будут рассказывать о новых технологиях или хайлоаде. Будут говорить о коде. Хорошем, плохом. Называется он [Принципы хорошего кода на реальных примерах][2]. Расспросим немного автора.

> Что тебя побудило на такой мастер-класс?
Удрученность текущей ситуации в отрасли. Все одержимы технологиями. В последнее время облачными. Читаешь вакансию, перечисляют используемые технологии, необходимый опыт(который почти никогда, на самом деле, не нужен). Очень круто звучит на собеседованиях. Приходишь на проект. Смотришь на код… и он печально говорит тебе: «Пристрели меня». Смотришь глубже и понимаешь всю его печаль. Он смертельно болен. Как раковые опухоли разрослись классы, которые кто-то, словно в шутку, назвал контроллерами. Как метастазы везде расползлись копипасты. На психологию кода давит то, что он лишь жалкая обвязка для крутых облачных технологий. Но пристрелить дорого.
[Читать дальше →][3]

[1]: https://youtu.be/TMuno5RZNeE?t=956
[2]: https://devconf.ru/offer/283
[3]: https://habrahabr.ru/post/329704/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Краткая история случайных чисел
habra.16
habrabot(difrex,1) — All
2017-05-30 16:00:07


«Когда я задался целью получить действительно случайное число, то не нашел для этого ничего лучшего, чем обычная игральная кость» — [писал][1] в 1890 году Фрэнсис Гальтон в журнале [Nature][2]. «После того, как кости встряхивают и бросают в корзинку, они ударяются друг о друга и о стенки корзинки столь непредсказуемым образом, что даже после легкого броска становится совершенно невозможным предопределить его результат».

![image][3]
(Игральные кости времён Римской Империи)

Как мы можем сгенерировать равномерную последовательность случайных чисел? Случайность, столь прекрасная в своём многообразии, часто встречается в живой природе, но её не всегда легко было извлечь искусственным путём. Самые древние из игральных костей были найдены на Среднем Востоке, и они датируются примерно 24 столетием до нашей эры. Другим примером может быть Китай, где ещё в 11 столетии до нашей эры применялось разбивание ударом черепашьего панциря, с дальнейшей интерпретацией размера полученных случайных частей. Столетиями позже люди разрубали несколько раз стебли растений и сравнивали размеры полученных частей.
[Читать дальше →][4]

[1]: http://galton.org/essays/1890-1899/galton-1890-dice.pdf
[2]: https://uk.wikipedia.org/wiki/Nature
[3]: https://habrastorage.org/getpro/habr/post_images/d2c/ad6/1a3/d2cad61a35e4967d7b8eb08b3d6b0919.jpg
[4]: https://habrahabr.ru/post/329778/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Оценка качества алгоритмов распознавания лиц
habra.16
habrabot(difrex,1) — All
2017-05-30 20:30:04


Привет, Хабр!

Мы, в компании NtechLab, занимаемся исследованиями и разработкой продуктов в области распознавания лиц. В процессе внедрения наших решений мы часто сталкиваемся с тем, что заказчики не очень ясно представляют себе требования к точности алгоритма, поэтому и тестирование того или иного решения для их задачи даётся с трудом. Чтобы исправить ситуацию, мы разработали краткое пособие, описывающее основные метрики и подходы к тестированию, которыми хотелось бы поделиться с сообществом Хабра.

![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/web/261/5c6/039/2615c60397e8416883ca20ce58bf1e88.png
[2]: https://habrahabr.ru/post/329412/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] ИТ-конференция «Продвижение»: суббота с пользой
habra.16
habrabot(difrex,1) — All
2017-05-30 21:30:03


На субботу 3 июня в Москве обещают +11 и лёгкий дождь. Нелётная погода, ну то есть не велосипедная и не особо прогулочная. А душа требует лета, общения, азарта и новых событий. Мы придумали для вас мега насыщенный день в Телеграфе, где пройдёт IT-конференция «Продвижение». Неважно, фанатеете вы от React, занимаетесь дизайном, пытаетесь внедрить Agile или просто считаете себя гиком и книголюбом, — места, нетворкинга и интересных моментов программы хватит всем. Дело за малым — зарегистрироваться и прийти. Ну и почитать подробности под катом.

[![][1] ][2]
[Читать дальше →][3]

[1]: https://habrastorage.org/web/d9e/316/20a/d9e31620a5444ee284a206292b108074.jpg
[2]: https://habrahabr.ru/company/efs/blog/329824/
[3]: https://habrahabr.ru/post/329824/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как выбрать тот самый PHP-фреймворк. Сравнительное тестирование
habra.16
habrabot(difrex,1) — All
2017-05-30 22:00:04


![][1]



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

Для этого нужно учесть достаточно большое количество характеристик, от «как быстро всё будет работать» до «а необходима ли нам эта фича?». И так каждый раз. Именно в моменты мозгового штурма команда сравнивает удобство фреймворка, скорость, набор фич, которые реализованы в нем или в совместимых с ним модулях.

Но какой же всё-таки лучше, быстрее и производительнее?

Разработчики постоянно проводят сравнение фреймворков, чтобы прояснить для себя этот вопрос. Например, в [статье ][2]Lukasz Kujawa приведено сравнение PHP фреймворков. Одно «но» — статья за 2013 год. А ведь время идёт… Поэтому мы решили провести своё, актуальное сравнение фреймворков.

Для оценки производительности был использован [PHP Framework Benchmark][3]. Он предлагает для сравнения множество фреймворков (не только указанных выше), но автор не спешит добавлять в репозиторий новые версии проектов, что, конечно же, печально, хотя и не смертельно. При желании добавить новую версию не сложно.


Одной из основных целей данной статьи также является попытка практическим путем определить улучшения в производительности и эффективности новых версий PHP. Поэтому тестирование было проведено на РНР 5.6/7.0/7.1
[Читать дальше →][4]

[1]: https://habrastorage.org/web/309/6ba/20b/3096ba20b4834b3e9716d53ee2a9cb03.jpg
[2]: https://systemsarchitect.net/2013/04/23/performance-benchmark-of-popular-php-frameworks/
[3]: https://github.com/kenjis/php-framework-benchmark
[4]: https://habrahabr.ru/post/329718/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Linux + Azure
habra.16
habrabot(difrex,1) — All
2017-05-31 01:30:04


Привет, Хабр! Ко мне часто стали приходить с вопросом о запуске виртуалок под управлением Linux в нашем облаке. Поэтому мы решили составить для вас подборку русскоязычных материалов по этой теме: бесплатные курсы и полезные ссылки. А также завтра я буду проводить вебинар, про который вы узнаете в конце статьи.

![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/web/e07/7c3/f6e/e077c3f6e2b74e98bb0074e041d019fa.jpg
[2]: https://habrahabr.ru/post/329832/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что нового нас ждет в Swift 4?
habra.16
habrabot(difrex,1) — All
2017-05-31 03:30:04


Оглавление


1. [Односторонние диапазоны][1]
2. [Строки][2]
3. [Приватные объявления видимы в экстеншенах того же файла][3]
4. [Умные ключи пути][4]
5. [Архивирование и сериализация][5]
6. [Улучшения в Dictionary и Set][6]
7. [Метод MutableCollection.swapAt][7]
8. [reduce с поддержкой inout][8]
9. [Генеретики в сабскриптах][9]
10. [Мостик для NSNumber][10]
11. [Экземпляры классов и подтипов][11][Читать дальше →][12]

[1]: #odnostoronnie-diapazony
[2]: #stroki
[3]: #privatnye-obyavleniya-vidimy-v-ekstenshenah-togo-zhe-fayla
[4]: #umnye-klyuchi-puti
[5]: #arhivirovanie-i-serializaciya
[6]: #uluchsheniya-v-dictionary-i-set
[7]: #metod-mutablecollectionswapat
[8]: #reduce-s-podderzhkoy-inout
[9]: #generetiki-v-sabskriptah
[10]: #mostik-dlya-nsnumber
[11]: #ekzemplyary-klassov-i-podtipov
[12]: https://habrahabr.ru/post/329580/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Курсы Computer Science клуба, весна 2017, часть вторая
habra.16
habrabot(difrex,1) — All
2017-05-31 10:00:04


![][1]


Продолжаем выкладывать видеозаписи курсов [Computer Science клуба][2] при ПОМИ РАН. Первая часть [здесь][3]. В этой подборке четыре курса: «Коммуникационная сложность», «Экспандеры и их применения», «Машинный перевод» и «Избранные главы теории потоков».
[Читать дальше →][4]

[1]: https://habrastorage.org/web/0a5/837/87b/0a583787b021427196bf71435e4c7c8d.jpg
[2]: http://compsciclub.ru
[3]: https://habrahabr.ru/company/spbau/blog/326064/
[4]: https://habrahabr.ru/post/329828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Postgres и Пустота
habra.16
habrabot(difrex,1) — All
2017-05-31 10:00:04


Только что натолкнулся на возможность Postgresql, показавшуюся мне забавной.
Для кого "боян" — респект вам, я несколько лет работаю с Postgres и до сих пор не натыкался на такую штуку.



`select;` без указания полей, таблицы и условий возвращает одну строку.
Но у этой строки нет полей:


=> select;
--
(1 row)

Для сравнения:


=> select null;
?column?
----------

(1 row)
=> select null where 0=1;
?column?
----------
(0 rows)

А сможем ли мы создать таблицу из такого "пустого" запроса? Таблицу без полей.

[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329856/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Must see: видеозаписи митапа MoscowJS 37
habra.16
habrabot(difrex,1) — All
2017-05-31 17:00:06


[![image][1]][2]

В четверг, 25 мая, в офисе Avito прошла очередная встреча сообщества фронтенд-разработчиков MoscowJS. Обсуждали отладку анимации, создание WebGL визуализации, сборку webpack’ом и код-ревью. Сегодня публикуем видеозаписи докладов — профессионалам будет интересно. Приятного просмотра!
[Читать дальше →][3]

[1]: https://habrastorage.org/web/655/992/743/655992743b8f469984e700f91fafed7b.jpg
[2]: https://habrahabr.ru/company/avito/blog/329898/
[3]: https://habrahabr.ru/post/329898/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PHDays VII: хроники «Противостояния»
habra.16
habrabot(difrex,1) — All
2017-05-31 17:30:04


В этом году перед «Противостоянием» мы в очередной раз собрали сборную «солянку» частично из сотрудников Solar Security, частично из неравнодушных друзей и SOCостроителей России. В статье попробуем описать весь процесс участия в «Противостоянии» — какие были «пасхалки» от организаторов, какие шли атаки, как мы защищались, какие инструменты отработали и т.д.

![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/web/ce3/548/b1b/ce3548b1b5fb4571970bfea60eb6520f.jpg
[2]: https://habrahabr.ru/post/329890/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Роутеры, векторы атак и другие приключения шурика
habra.16
habrabot(difrex,1) — All
2017-05-31 18:00:04



Не так давно всего за один месяц свет увидели около 10 уязвимостей, связанных с получением root shell или админских учетных записей на домашних сетевых устройствах. Wi-Fi и 3G-роутеры с админскими учетками вокруг нас. Заплатив 50 $ за платный аккаунт на [shodan.io][1], любой желающий получает доступ к десяткам миллионов IoT-устройств. В их числе роутеры, веб-камеры и прочие гаджеты. С другой стороны, разработчики и поставщики сетевых устройств не придают значения таким понятиям, как «тестирование» и «безопасность». Многие серьезные уязвимости остаются без патчей, а если патчи все-таки выходят, то пользователи не торопятся их применять. Что в результате? Легионы устройств ждут своего часа, чтобы быть взломанными и стать ботами для DDOS-атак.
[Читать дальше →][2]

[1]: https://www.shodan.io/
[2]: https://habrahabr.ru/post/329902/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Роутеры, векторы атак и другие приключения Шурика
habra.16
habrabot(difrex,1) — All
2017-05-31 18:30:04



Не так давно всего за один месяц свет увидели около 10 уязвимостей, связанных с получением root shell или админских учетных записей на домашних сетевых устройствах. Wi-Fi и 3G-роутеры с админскими учетками вокруг нас. Заплатив 50 $ за платный аккаунт на [shodan.io][1], любой желающий получает доступ к десяткам миллионов IoT-устройств. В их числе роутеры, веб-камеры и прочие гаджеты. С другой стороны, разработчики и поставщики сетевых устройств не придают значения таким понятиям, как «тестирование» и «безопасность». Многие серьезные уязвимости остаются без патчей, а если патчи все-таки выходят, то пользователи не торопятся их применять. Что в результате? Легионы устройств ждут своего часа, чтобы быть взломанными и стать ботами для DDOS-атак.
[Читать дальше →][2]

[1]: https://www.shodan.io/
[2]: https://habrahabr.ru/post/329902/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод - recovery mode ] Безопасность в веб-разработке: чек-лист
habra.16
habrabot(difrex,1) — All
2017-05-31 19:30:03


_Светлана Шаповалова, редактор «[Нетологии][1]», адаптировала статью Michael O'Brien, в которой он составил чек-лист для веб-разработчиков, предпочитающих разрабатывать не только удобные, но и безопасные приложения._

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

Если вы уже заразились идеей «минимально жизнеспособного продукта» (англ. [MVP][2] — minimum viable product, прим. перев.) и считаете, что за месяц можно создать одновременно полезный и безопасный продукт — подумайте дважды, прежде чем выпускать его. Просмотрев чек-лист, вы поймете, что оставляете немало уязвимостей.

![][3]
[Читать дальше →][4]

[1]: http://netolo.gy/dsA
[2]: https://en.wikipedia.org/wiki/Minimum_viable_product
[3]: https://habrastorage.org/web/62c/13a/d76/62c13ad7605a4467ab06f258db63b2dc.jpeg
[4]: https://habrahabr.ru/post/329836/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сравнение Эльбрус-4С и Эльбрус-8С в нескольких задачах машинного зрения
habra.16
habrabot(difrex,1) — All
2017-05-31 20:00:04


В этой статье мы покажем, как работают технологии распознавания образов на Эльбрус-4С и на новом Эльбрус-8С: рассмотрим несколько задач машинного зрения, немного расскажем об алгоритмах их решения, приведем результаты бенчмаркинга и наконец покажем видео.


![][1]

Эльбрус-8С — новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.

[Читать дальше →][2]

[1]: https://habrastorage.org/web/6b2/13c/b9c/6b213cb9cc424abf8ef4116fceb7a1a1.jpg
[2]: https://habrahabr.ru/post/329858/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор изменений в новом мажорном релизе Node 8
habra.16
habrabot(difrex,1) — All
2017-06-01 00:00:04


![][1]



30 мая 2017 года в 23:00 по московскому времени вышел новый долгожданный мажорный релиз [Node.js 8.0.0][2]. Именно эта линейка версий за номером 8 в октябре 2017 перейдет в Long Term Support — цикл длительной поддержки. Предлагаю вашему вниманию небольшой обзор того огромного количества изменений и дополнений, вошедших в этот релиз.


* npm 5 (lock-файл!)
* V8 5.8
* Node.js API (N-API)
* async\_hooks
* WHATWG URL парсер
* повышение безопасности буфера
* упрощенная промисификация
* статичные коды ошибок
* и многое другое!
[Читать дальше →][3]

[1]: https://habrastorage.org/web/4a0/d6d/ec3/4a0d6dec34844defbe89acf6166a3dad.png
[2]: https://nodejs.org/en/
[3]: https://habrahabr.ru/post/329942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Нерекурсивный алгоритм генерации всех разбиений целого числа
habra.16
habrabot(difrex,1) — All
2017-06-01 00:00:04


Привет, Хабр! Вдруг снова захотелось написать сюда! Так как было время на выходных, я снова решил поиграться с алгоритмизацией и написал вот эту статейку. Хотел даже отправить в какой-нибудь рецензируемый журнал, но оценить тривиальность/нетривиальность данного материала я не в состоянии, так как программирование всего лишь мое хобби и то эпизодическое, поэтому, как обычно, заранее прошу прощения, если все окажется слишком простым и до боли знакомым.
_Спасибо администрации Хабра за отзывчивость и молниеносную оперативность при восстановлении аккаунта!_

**Итак, плоды усилий долгих...**
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329948/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Странности Generic типов Java
habra.16
habrabot(difrex,1) — All
2017-06-01 00:30:05


Я множество раз слышал о том, что дизайн Generic типов в Java является неудачным. По большей части претензии сводятся к отсутствию поддержки примитивных типов (которую планируют добавить) и к стиранию типов, а конкретнее — невозможности получить фактический тип параметра в рантайме. Лично я не считаю стирание типов проблемой, как и дизайн Generic-ов плохим. Но есть моменты, которые меня порядком раздражают, но при этом не так часто упоминаются.



#### 1 {#1}



Например, мы знаем, что метод `Class#getAnnotation` параметризован и имеет следующую сигнатуру: `public annotationClass)`. Значит, можно писать вот такой код:


Deprecated d = Object.class.getAnnotation(Deprecated.class);

Тут я решаю вынести `Object.class` в отдельную переменную и код перестаёт компилироваться:


Class clazz = Object.class;
// incompatible types:
// java.lang.annotation.Annotation cannot be converted to java.lang.Deprecated
Deprecated d = clazz.getAnnotation(Deprecated.class);

Где я ошибся?

[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329550/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] JaCarta PKI и OpenVPN для Windows
habra.16
habrabot(difrex,1) — All
2017-06-01 10:00:04


В настоящей статье описывается процесс настройки двухфакторной аутентификации по смарт-картам и USB-токенам **JaCarta PKI** на основе цифровых сертификатов X.509 в OpenVPN.

Данное решение позволяет отказаться от парольной аутентификации пользователя. Внедрение настоящего решения — это кардинальное снижение влияния человеческого фактора на безопасность системы.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329880/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Машинный интеллект в клавиатуре Gboard
habra.16
habrabot(difrex,1) — All
2017-06-01 10:00:04


Большинство людей значительную часть времени каждый день проводят за клавиатурой на мобильном устройстве: составляя письма, сообщения в чатах, социальных сетях и т. д. Однако мобильные клавиатуры всё ещё довольно нескладные. Средний пользователь печатает с мобильной клавиатуры примерно на 35% медленнее, чем с физической. Чтобы изменить это, мы недавно представили [много замечательных улучшений][1] в [Gboard for Android][2]. Мы стремимся создать умный механизм, который позволяет быстрее вводить текст, в то же время предлагая подсказки и исправляя ошибки, на любом языке на ваш выбор.

Учитывая факт, что мобильная клавиатура преобразует прикосновения в текст примерно так же, как система распознавания речи транслирует голос в текст, мы применили систему Speech Recognition. Сначала мы создали надёжные пространственные модели, которые сопоставляют нечёткие последовательности прикосновений к таскрину с клавишами клавиатуры, точно как акустические модели сопоставляют последовательности звуковых фрагментов с фонетическими единицами. Затем мы создали мощный движок декодирования, основанный на [конечных преобразователях][3] (FST) для определения самой вероятной фразы для данной последовательности прикосновений. Мы знали, что с его математическим формализмом и широким успехом в голосовых приложениях FST-декодер обеспечит необходимую гибкость для поддержки всего разнообразия сложных вариантов ввода, а также языковые функции. В данной статье мы расскажем подробно, что входило в разработку обеих этих систем.
[Читать дальше →][4]

[1]: https://blog.google/products/search/gboard-android-gets-new-languages-and-tools/
[2]: https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin
[3]: https://en.wikipedia.org/wiki/Finite-state_transducer
[4]: https://habrahabr.ru/post/329884/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Стартапы и ненормальное программирование. TBD
habra.16
habrabot(difrex,1) — All
2017-06-01 11:30:05


В преддверии HolyJS мы обсудили проблемы стартапов, географические отличия разработки и влияние open source на отрасль с Джорджем Мандисом (George Mandis). В свое время он уже доказал на практике, что для разработчика на самом деле не важны политические границы и географические координаты, на протяжении нескольких лет работая из разных стран мира. А сегодня решил поделиться с нами своими наблюдениями.

![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/web/6ea/6d4/52f/6ea6d452f7da49bd9e6601439cc8b7b5.jpg
[2]: https://habrahabr.ru/post/329940/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как поменьше беспокоиться о собственной бездарности
habra.16
habrabot(difrex,1) — All
2017-06-01 12:00:03


[![][1]][2]

Только что я столкнулся с еще одним проявлением [синдрома самозванца][3]: «Я правда разработчик — или просто хорошо гуглю?»

Далее следовал ответ, в котором я, однако, не увидел главного — поэтому ответить придется мне: слишком уж многие боятся без каких-либо оснований.

**Переведено в [Alconost][4]**


### **Если информацию легко найти, это не делает человека глупым**


Частенько мне доводится слышать одну историю — полагаю, подлинность ее сомнительна, но, как бы там ни было, суть такова. Когда у Эйнштейна попросили номер телефона, он полез его искать и сказал: «Зачем запоминать то, что можно найти менее чем за две минуты?»

[Читать дальше →][5]

[1]: https://habrastorage.org/web/118/410/563/118410563ba5415a8a88552e3e80a7eb.jpg
[2]: https://habrahabr.ru/company/alconost/blog/329954/
[3]: https://habrahabr.ru/company/alconost/blog/324048/
[4]: https://alconost.com?utm_source=habrahabr&utm_medium=article&utm_campaign=translation&utm_content=being-a-bad-programmer
[5]: https://habrahabr.ru/post/329954/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Создание софтверного движка 2.5D
habra.16
habrabot(difrex,1) — All
2017-06-01 14:00:04


В настоящее время интерес к софтверным движкам, как из игр Quake, DOOM или Duke Nukem 3D практически нулевой. Однако, эти движки имели своё очарование и мне, например, очень нравится графика именно таких вот движков с нереалистичными текстурами на стенах. Конечно, такие текстуры можно накладывать без фильтрации и в OpenGL, получая такой же уровень графики, но всё же, написать собственный софтверный движок было весьма интересно. Движок уровня Quake я написать в своё время не смог, так как не удалось создать редактор 3D карты – я просто не представлял, как вообще рисовать в 3D карту. Да и с большой вероятность текстурирование в произвольном случае в моём исполнении (без ассемблера) было бы очень медленно. Но движок уровня DOOM мне покорился. Основу такого движка я написал в 2002 году, пользуясь книжкой Шикина и Борескова “Компьютерная графика. Полигональные модели”. На базе того движка используя графику из Doom я написал некое подобие игры под MS-DOS на Watcom C. Несколько лет назад я решил вынуть из той игры код движка и переработать его под мои текущие знания языка Си++ и представления о том, как стоило бы устроить этот движок. Ну и заодно перенести этот движок под Windows и дополнить наклонами головы, как в Blood или Duke Nukem. О том, что в результате получилось, я и написал в этой статье.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329972/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Памятка по безопасности для веб-разработчиков
habra.16
habrabot(difrex,1) — All
2017-06-01 15:00:04


Разработка защищённых и надёжных облачных веб-приложений — задача непростая. Даже — очень непростая. Если вы думаете, что это не так, то либо вы — представитель неизвестной науке высшей формы жизни, либо — ждите здоровенного жареного петуха.

Если вы вдохновились [идеями][1] создания минимального жизнеспособного продукта и уверены в том, что можете разработать нечто полезное и безопасное за месяц, дважды подумайте, прежде чем выпускать в жизнь подобный «продукт», а скорее — лишь прототип.

[![][2]][3]

После того, как вы просмотрите приведённый ниже контрольный список задач, которые нужно решить для обеспечения безопасности веб-проекта, вы, наверняка, сами увидите, что многое из того, что в нём есть, в вашей разработке не учтено. Что делать? Как минимум — будьте честны с потенциальными пользователями и сообщите им о том, что ваш проект пока находится в стадии разработки, что вы предлагаете им ознакомиться с прототипом, в котором пока не реализована полноценная система безопасности.
[Читать дальше →][4]

[1]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE_%D0%B6%D0%B8%D0%B7%D0%BD%D0%B5%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82
[2]: https://habrastorage.org/web/bd7/d86/cad/bd7d86cadc224b5180f866f8191767cc.jpg
[3]: https://habrahabr.ru/company/ruvds/blog/329962/
[4]: https://habrahabr.ru/post/329962/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Определение номера пользователя Telegram с помощью брутфорса в адресной книге
habra.16
habrabot(difrex,1) — All
2017-06-01 15:00:04


Здравствуйте, друзья. Сегодня я расскажу вам о том, как можно попытаться узнать номер человека в телеграме, зная только его ник.

Теория:

1. Добавляем номера в адресную книгу телефона до лимита (если он вообще есть в iOS или Android смартфонах)
2. Смотрим в профиль нужного человека
3. Если его номер есть в адресной книге — этот номер отобразится и в профиле телеграма
4. Если нет, продолжаем брутфорсить добавляя номера до победного конца
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/329982/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Фишинг «своими руками». Опыт компании «Актив», часть вторая
habra.16
habrabot(difrex,1) — All
2017-06-01 15:00:04


![][1]

В [первой][2] статье я рассказал о теории вопроса, теперь же от теории перейдем к практике. Итак, мы успешно установили систему, настроили ее и готовы приступить к «фишингу» на собственных сотрудниках :)

[Читать дальше →][3]

[1]: https://habrastorage.org/web/c84/fec/7af/c84fec7afa464314af4da9371fd59b56.jpg
[2]: https://habrahabr.ru/company/aktiv-company/blog/329470/
[3]: https://habrahabr.ru/post/329538/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Новые «плюшки» компилятора – безопасней, быстрее, совершеннее
habra.16
habrabot(difrex,1) — All
2017-06-01 15:30:03


![][1]
Как говорилось во всеми нами любимом фильме: «Налетай, торопись, покупай живопись». Последняя, конечно, тут ни при чем, а вот «налетать» на новую Бета версию компилятора уже пора. Сегодня я расскажу о том, что нового появилось в пакете _Intel Parallel Studio XE 2018 Beta_, и в частности, в компиляторной её составляющей. А там действительно много что добавилось, ведь стандарты не стоят на месте — _C++14, C++17, Fortran 2008, 2015, OpenMP 4.5_ и _5\.0_, а компилятор должен не только их поддерживать, но и генерировать совершенный, производительный и безопасный код. Кроме этого, новые наборы инструкций _AVX512_, позволяющие «снимать сливки» с последних процессоров _Skylake_ и _KNL_, всё больше входят в арсенал современных компиляторов. Но а самое вкусное — новые ключи, которые позволяют получить ещё больше производительности «не напрягаясь». Итак, поехали!
[Читать дальше →][2]

[1]: https://habrastorage.org/web/f52/c61/d74/f52c61d7447e49d6a22b08c3e617d59a.png
[2]: https://habrahabr.ru/post/329938/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 133