RSS
Pages: 1 ... 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
[>] 1С: Удаленный узел не прошел проверку
habra.16
habrabot(difrex,1) — All
2018-01-25 23:30:14


В новых версиях конфигурации у множества пользователей вдруг ни с того ни с сего возникла проблема:


* Контрагенты по ИНН заполняться не хотят;
* Банки и валюты не загружаются;
* Всякие прочие системы, активно использующие обращения к интернет ресурсам, выдают непонятную ошибку.

Например, такую:



![][1]



Первое, что приходит в голову: 1С опять все разломали! Не работает!!!
Но если на секунду задуматься, "не прошел проверку", что это может значить?



Статья написана в два блока:


* для людей, встретивших ошибку, и немножко не в теме...
* для специалистов, которые хотят решить проблему.[Читать дальше →][2]

[1]: https://habrastorage.org/webt/ys/y0/nf/ysy0nf4lrlainoodl4ls6ofiome.png
[2]: https://habrahabr.ru/post/347486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347486#habracut

[>] Вся боль p2p разработки
habra.16
habrabot(difrex,1) — All
2018-01-26 00:30:14


Добрый день, хабрасообщество! Сегодня я хотел бы рассказать о волшебном и чудесном проекте компании Тензор — удаленном помощнике. Это система удаленного доступа, связывающая миллионы клиентов и операторов в рамках общей клиентской базы СБИС. Удаленный помощник уже сейчас тесно интегрирован с online.sbis.ru. Каждый день мы регистрируем более десяти тысяч подключений и десятки часов сессионного времени в сутки.В этой статье мы расскажем о том, как мы устанавливаем p2p соединения, и что делать, если этого сделать не удается.

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

[1]: https://habrastorage.org/webt/zi/wf/ej/ziwfejbwesihcd6t6_tlpr5gils.png
[2]: https://habrahabr.ru/post/347534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347534#habracut

[>] Xception: компактная глубокая нейронная сеть
habra.16
habrabot(difrex,1) — All
2018-01-26 12:00:13


В последние несколько лет нейронные сети пробрались во все отрасли машинного обучения, но самый большой фурор они бесспорно произвели в области компьютерного зрения. В рамках соревнований [ImageNet][1] было представлено множество различных архитектур свёрточных сетей, которые затем разошлись по фреймворкам и библиотекам.
[][2]
Чтобы улучшить качество распознавания своих сетей, исследователи старались добавлять в сети больше слоёв, однако со временем пришло понимание, что иногда ограничения производительности попросту не позволяют обучать и использовать настолько глубокие сети. Это стало мотивацией для использования depthwise separable convolutions и создания архитектуры Xception.

Если вы хотите узнать, что это такое, и посмотреть, как использовать такую сеть на практике, чтобы научиться отличать котов от собак, добро пожаловать под кат.
[Читать дальше →][3]

[1]: http://www.image-net.org
[2]: https://habrahabr.ru/post/347564/
[3]: https://habrahabr.ru/post/347564/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347564#habracut

[>] Красивый Chromium и корявый memset
habra.16
habrabot(difrex,1) — All
2018-01-26 12:45:14


![malloc][1]Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это первая часть, которая будет посвящена функции memset.

Господа программисты, с функцией _memset _ надо что-то делать в C++ программах! Вернее, даже сразу понятно что делать — её надо прекратить использовать. В своё время я написал статью "[Самая опасная функция в мире С/С++][2]". Я думаю, несложно догадаться, что речь в статье идёт как раз о _memset_.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/756/67a/79d/75667a79d306e3d8ed926c30041f43d4.png
[2]: https://www.viva64.com/ru/b/0360/
[3]: https://habrahabr.ru/post/347594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347594#habracut

[>] Что читают инженеры GridGain. Книги для тех, кто интересуется In-Memory Computing
habra.16
habrabot(difrex,1) — All
2018-01-26 13:45:13


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


Мы даже составили небольшой список книг, которые нам очень нравятся. Ну и еще это подсказка для собеседований по [нашим свеженьким вакансиям][1], конечно. Не в смысле запомнить пару названий, а в смысле прочитать, разумеется.
[Читать дальше →][2]

[1]: https://www.gridgain.com/company/careers
[2]: https://habrahabr.ru/post/347244/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347244#habracut

[>] Пятничный формат: «языковые» разработки — исследования, объединяющие ИТ и лингвистику
habra.16
habrabot(difrex,1) — All
2018-01-26 14:15:14


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

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

[1]: https://habrastorage.org/webt/kk/sq/ys/kksqysbfmrrpfwi4utqyliyo-i0.jpeg
[2]: https://habrahabr.ru/company/spbifmo/blog/347600/
[3]: https://habrahabr.ru/post/347600/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347600#habracut

[>] Стеганография в файловой системе
habra.16
habrabot(difrex,1) — All
2018-01-26 14:15:14


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



Хочу представить вам небольшой проект по [стеганографии][1], сделанный в свободное от учебы время.



Я сделал проект по скрытому хранению информации в файловой системе (далее **ФС**).
Это можно применить для кражи конфиденциальной информации в образовательных целях.



![Image][2]



В виде опытного образца была выбрана весьма старенькая линуксовая ФС [ext2][3].


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

[1]: https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F
[2]: https://habrastorage.org/webt/_v/p6/6-/_vp66-b4brnsakckv8lcj6qbaby.jpeg
[3]: https://ru.wikipedia.org/wiki/Ext2
[4]: https://habrahabr.ru/post/347604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347604#habracut

[>] [Перевод] Как писать чистый и красивый код
habra.16
habrabot(difrex,1) — All
2018-01-26 15:00:13


Каким должен быть качественный код? Роберт Мартин выразил это невероятно точно, когда сказал: «Единственная адекватная мера качества кода — это количество восклицаний «какого чёрта!» в минуту».

[![image][1]][2]
Позвольте мне пояснить эту идею.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/360/57d/436/36057d4360f3dc0135312b6c4669e728.jpg
[2]: https://habrahabr.ru/company/ruvds/blog/347610/
[3]: https://habrahabr.ru/post/347610/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347610#habracut

[>] Открытая научная школа хакатона DeepHack.Babel
habra.16
habrabot(difrex,1) — All
2018-01-26 17:15:13


![image][1]

Перед новым годом мы [рассказывали][2], зачем нужен хакатон по машинному переводу. Уже на следующей неделе 50 участников, прошедших отбор, приедут в Долгопрудный, чтобы поучаствовать в обучении системы на непараллельных данных. Помимо многочасового брейншторминга в поиске решения поможет научная школа — [серия лекций от ведущих мировых специалистов по машинному переводу][3]. Хабр, приглашаем тебя посетить интересующие выступления! Они пройдут на Физтехе с 29 января по 4 февраля, не забудьте [зарегистрироваться][4]. Ну, а если в морозный зимний вечер выходить из дома не хочется, то можно посмотреть трансляции на [канале DeepHack][5].
[А пока рассказываем о ключевых спикерах][6]

[1]: https://habrastorage.org/webt/tz/b8/8t/tzb88tsndy-e2zzuux6r6gcotpy.png
[2]: https://habrahabr.ru/company/mipt/blog/345318/
[3]: http://babel.tilda.ws/#rec42790997
[4]: https://docs.google.com/forms/d/1r-xcBhRSdX9nDYZkn2PmuKI7EcueUhB9Y2ynItSdFtA/viewform?edit_requested=true
[5]: https://www.youtube.com/channel/UCJ-6K2HGA0hpQytlSM7FBVQ/
[6]: https://habrahabr.ru/post/347590/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347590#habracut

[>] [Из песочницы] Telegram бот для сложных квестов
habra.16
habrabot(difrex,1) — All
2018-01-26 17:15:13


«В чем же заключается преимущество?» — спросите вы, ну все дело в том, что в нем можно построить логику примерно из следующих выражений:

_– Пользователь на шаге N?
– Сообщение содержит изображение и смайлик?
– Текст подходит под регулярное выражению «I am [a-zA-Z]+»?
– Время получения раньше/позже заданного?
– Это было нажатие на клавиатуре/обычное сообщение/inline-кнопка?_

Большинство из этих правил могут быть в зависимости друг от друга, но об этом чуть позже.

Для начала, о чем я хочу рассказать:

1. [Об идее проекта][1] – зачем я это сделал, какие есть аналоги, но почему мне они не нравятся.
2. [Архитектурных решениях][2], какие возникли трудности, как были решены.
3. [Что получилось в итоге и стоило ли оно того][3], [дальнейшее развитие][4].[Читать дальше →][5]

[1]: #purpose
[2]: #architecture
[3]: #theworth
[4]: #future
[5]: https://habrahabr.ru/post/347592/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347592#habracut

[>] АТС в контейнере. Asterisk 14 + Nginx + Freepbx 14 + srtp на Centos 7 в lxc-контейнере Proxmox VE 4
habra.16
habrabot(difrex,1) — All
2018-01-26 17:15:13


В контейнеры, в наше время, можно установить множество интересных систем![][1]
но под катом вы сможете найти лишь относительно стандартную инструкцию по установке asterisk+freepbx. Скуку слегка развеет то, что версии всего ПО «последние стабильные», есть шифрование, вместо apache — nginx, а вся установка под недавно «повзрослевший» lxc. На выходе получится достаточно мобильная, компактная и современная IP-АТС, потребляющая в покое 200-300 Мб ОЗУ
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/kp/rr/95/kprr95ghxl8ejoa4ohu_be5e2fc.jpeg
[2]: https://habrahabr.ru/post/347224/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347224#habracut

[>] Препарирование файлов .XLSX: строковые значения, разметка ячеек
habra.16
habrabot(difrex,1) — All
2018-01-26 17:45:14


Итак, продолжаем разговор. На всякий случай уточню, что начало [здесь][1].

Про строковые значения и метод их хранения я уже вскользь упоминал в первой части, а сейчас поговорим подробнее. Представим, что у нас есть таблица, заполненная строковыми данными, и что она большая. При этом крайне маловероятно, что все значения в ней будут уникальны. Некоторые из них нет-нет, да повторятся где-нибудь в разных частях таблицы. Хранить такой массив «как есть» внутри XML-разметки листа нерационально с точки зрения ресурсов ПК. Поэтому все строковые значения вынесены в отдельный файл, %file%/xl/sharedStrings.xml. Часть его, которая нас интересует, выглядит, допустим, так:
[Читать дальше →][2]

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

[>] Не Москвой единой. О работе географически распределенных команд в ЕФС
habra.16
habrabot(difrex,1) — All
2018-01-26 19:45:12


Географически распределенные команды — реальность разработки сегодня. Ситуация в команде, когда аналитик в Москве, разработчик в Екатеринбурге, дизайнер в Санкт-Петербурге — скорее нормальное распределение, чем исключение. Только вероятностей в этой модели гораздо больше, и они не так предсказуемы, как завещал дядюшка Гаусс. О казусах и неожиданностях, с которыми мы столкнулись в работе удаленных команд в ЕФС, читайте под катом.
[Читать дальше →][1]

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

[>] Моделирование физических процессов на примере гидропривода в SimInTech
habra.16
habrabot(difrex,1) — All
2018-01-26 22:30:14


В предыдущей статье ([Конечные автоматы в SimInTech][1]), было показано как создавать модель системы управления на основе конечных автоматов и получать из нее код Си, готовый для загрузки в контроллер. В качестве объекта управления была выбрана достаточно простая система нагреватель и была создана примитивная модель. Чем сложнее модель, объекта тем сложнее система управления и тем интереснее ее моделирования на стадии разработки.



Основное назначение данного текста – показать как создавать модели в ПО SimInTech, зная математические уравнения физических процессов. В качестве примера использовались уравнения физических процессов в гидроприводе. По аналогии так же можно решать задачу с другими физическими процессами, уравнения которых нам известны.

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

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

[>] Добываем WiFi соседа стандартными средствами MacOS
habra.16
habrabot(difrex,1) — All
2018-01-27 00:30:13


Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплоиты для самых защищённых ОС, а сам умел только скрипткидить (термин из нулевых). Однако, мой [пост][1] про уязвимости в системах контроля версий набрал более 1000 лайков на хабре и [остаётся топ1][2] постом за всю историю хабра, не смотря на то, что был написан 9 (!) лет назад.
И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как Вардрайвинг. А точнее, как стандартными средствами MacOSX можно добыть пароли от WiFi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод beeline (бывшая corbina) помогла мне [найти багу у билайна][3] и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей
![][4]
Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя… [Читать дальше →][5]

[1]: https://habrahabr.ru/post/70330/
[2]: https://habrahabr.ru/top/alltime/
[3]: https://habrahabr.ru/post/243997/
[4]: https://habrastorage.org/webt/u8/1s/nd/u81sndgaeoykwwl1i83jbb37kz4.png
[5]: https://habrahabr.ru/post/347658/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347658#habracut

[>] Оптимизация многоступенчатых компрессоров по энергозатратам на адиабатическое сжатие газа
habra.16
habrabot(difrex,1) — All
2018-01-27 00:45:13


![][1]


### Введение


В 1934 году швейцарская фирма «БроунБовери» (Brown-Boveri) на основе теоретических работ Стодолы впервые создала многоступенчатый осевой компрессор с КПД 84 %. Вскоре, осевые компрессоры стали успешно использоваться этой фирмой для газотурбинных установок.

**Многоступенчатые осевые компрессоры [1]**

Принципиальная схема осевого многоступенчатого компрессора приведена на рисунке:

![][2]

Осевой многоступенчатый компрессор состоит из ряда последовательно расположенных направляющих лопаток 6, закрепленных в корпусе 7, и рабочих лопаток 5, расположенных на барабанном роторе 11. По мере сжатия, объем воздуха уменьшается и, следовательно, уменьшаются высоты лопаток.

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

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

В расширяющихся каналах направляющих лопаток наблюдается дальнейшее повышение давления воздуха и уменьшение скорости его движения. В проточную часть компрессора воздух поступает через входной патрубок 1 и направляющий аппарат 4, откуда, пройдя каналы рабочих лопаток 5 и направляющих лопаток 6, попадает в спрямляющий аппарат 8.

Направляющий аппарат обеспечивает необходимое направление воздушному потоку перед входом в первую ступень, а спрямляющий аппарат обеспечивает осевой выход в диффузор 9 и далее в выходной патрубок 10.

Число ступеней сжатия в такой конструкции количеством рабочих лопаток 5, расположенных на барабанном роторе 11.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/gq/xh/oa/gqxhoaa_nnj2zbdhy1b_qgvakx4.png
[2]: https://habrastorage.org/webt/g8/m1/lx/g8m1lxehdms1lkngpod8r3exxka.png
[3]: https://habrahabr.ru/post/347624/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347624#habracut

[>] [Перевод] Разбираемся с Meltdown и Spectre: что нужно знать о новых уязвимостях, которые обнаружены практически во всех CPU
habra.16
habrabot(difrex,1) — All
2018-01-27 01:45:13


Похоже, производители процессоров получили серьезный удар: за несколько дней все новостные сайты заговорили сразу о двух хардварных уязвимостях под названием Meltdown и Spectre. Должен сказать, что это очень горячая неделя, какую давно не видели в технологической отрасли. Но не буду спешить, так что разберемся со всем по порядку.

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

[1]: https://habrastorage.org/webt/61/qf/u_/61qfu_im0jmjj9cq2tulkprwbui.png
[2]: https://habrahabr.ru/post/347254/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347254#habracut

[>] Добываем Wi-Fi соседа стандартными средствами MacOS
habra.16
habrabot(difrex,1) — All
2018-01-27 03:30:13


Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой [пост][1] про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и [остаётся топ1][2] постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне [найти багу у Билайна][3] и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
[Читать дальше →][4]

[1]: https://habrahabr.ru/post/70330/
[2]: https://habrahabr.ru/top/alltime/
[3]: https://habrahabr.ru/post/243997/
[4]: https://habrahabr.ru/post/347658/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347658#habracut

[>] Майнер Monero: теперь и в рекламе YouTube
habra.16
habrabot(difrex,1) — All
2018-01-27 15:30:13


![image][1]

Осторожно: майнеры на JavaScript теперь могут быть встроены в рекламу, которую вам показывает YouTube и другие рекламные сети. Об этом сообщили сразу [несколько][2] [источников][3].

Первыми сообщили о проблеме в Twitter пользователи, чьи антивирусы способны обнаруживать криптомайнеры.
> Hey [@avast\_antivirus][4] seems that you are blocking crypto miners ([\#coinhive][5]) in [@YouTube][6] [\#ads][7]
> Thank you :)
>
> — Diego Betto (@diegobetto) [January 25, 2018][8]

Атакующие пользовались услугами сервиса Coinhive, который предоставляет возможность использовать публичный JavaScript-код с сайта для майнинга на чужих компьютерах. При этом процессоры пользователей загружались майнером до 80%.
[Читать дальше →][9]

[1]: https://habrastorage.org/getpro/habr/post_images/168/dcf/05e/168dcf05eebd40d63808a1ad201c2ad6.jpg
[2]: https://arstechnica.com/information-technology/2018/01/now-even-youtube-serves-ads-with-cpu-draining-cryptocurrency-miners/
[3]: https://diegobetto.com/crypto-miner-coinhive-youtube-ads/
[4]: https://twitter.com/avast_antivirus?ref_src=twsrc%5Etfw
[5]: https://twitter.com/hashtag/coinhive?src=hash&ref_src=twsrc%5Etfw
[6]: https://twitter.com/YouTube?ref_src=twsrc%5Etfw
[7]: https://twitter.com/hashtag/ads?src=hash&ref_src=twsrc%5Etfw
[8]: https://twitter.com/diegobetto/status/956552277413777408?ref_src=twsrc%5Etfw
[9]: https://habrahabr.ru/post/347664/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347664#habracut

[>] [Перевод] Создание игр на Python 3 и Pygame: Часть 4
habra.16
habrabot(difrex,1) — All
2018-01-27 15:45:13


![image][1]


Это четвёртая из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame. В третьей части мы углубились в сердце Breakout и узнали, как обрабатывать события, познакомились с основным классом Breakout и увидели, как перемещать разные игровые объекты.

(Остальные части туториала: [первая][2], [вторая][3], [третья][4], [пятая][5].)

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

[1]: https://habrastorage.org/getpro/habr/post_images/e38/895/a15/e38895a159ff5bbd8da2f1040b61d219.gif
[2]: https://habrahabr.ru/post/347138/
[3]: https://habrahabr.ru/post/347170/
[4]: https://habrahabr.ru/post/347256/
[5]: https://habrahabr.ru/post/347286/
[6]: https://habrahabr.ru/post/347266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347266#habracut

[>] Оператор break и fallthrough
habra.16
habrabot(difrex,1) — All
2018-01-27 18:45:14


![operator break][1]

Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это вторая часть, которая будет посвящена оператору switch, а, вернее, проблеме забытого оператора break.

Многие годы я изучал ошибки в программах и сейчас могу с уверенностью заявить, что в C, а вслед за ним и в C++, оператор _switch _ сделан неправильно. Я понимаю, что возможность не писать _break_, сделанная, чтобы передать управление дальше, позволяет писать изящные алгоритмы. Но всё равно огромное количество ошибок убедило меня, что был выбран неправильный подход. Понятно, что теперь уже поздно. Просто хотелось сказать, что правильным решением было бы обязательно писать слово _break_ или обратное ключевое слово, например, _fallthrough_. Сколько бы сил, времени и денег было сэкономлено. Конечно, этот недостаток не сравнится с [Null References: The Billion Dollar Mistake][2], но всё равно большой ляп.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/4dc/8a3/a81/4dc8a3a810f3bfff54b6c32f1debea3a.png
[2]: https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
[3]: https://habrahabr.ru/post/347668/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347668#habracut

[>] [Перевод] Python для обучения научной информатике: Моделирование систем массового обслуживания
habra.16
habrabot(difrex,1) — All
2018-01-28 08:15:13


## Аннотация


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

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

[>] [Из песочницы] Сравнение производительности C и C++ на примере сжатия Хаффмана
habra.16
habrabot(difrex,1) — All
2018-01-28 15:30:14


## Введение


Когда на IT-форумах задают вопрос «Быстрее ли язык программирования X языка Y», это обычно вызывает потоки эмоций и считается некорректным. С родни вопросу про религию или предпочтение той или иной политической партии. Действительно, язык — это способ выражения мысли, идеи. В данном случае идеи программной системы. Он не быстр и не медлен. Он может быть более или менее лаконичным, более или менее точным. А скорость определяется не столько языком, сколько конечным кодом, который генерирует компилятор этого языка. Или скоростью интерпретатора в случае интерпретируемого языка.

Но это всё философия. А на практике обычно есть практическая задача разработки ПО. И, действительно, реализовать это ПО можно на десятке разных языков программирования. Поэтому, хоть это и «религиозный вопрос» в случае публичного обсуждения, вопрос этот часто возникает в голове IT-специалиста, стоящего перед конкретной задачей. «Сколько времени мне потребуется для реализации задачи на языке X и какие у полученного ПО будут характеристики, в том числе скоростные. По сравнению с реализацией этой задачи на языке Y». Понятное дело, точного ответа на этот вопрос нет, специалист опирается на свой личный опыт и отвечает как-то типа «с вероятностью 95%, написанная на ассемблере, эта задача будет работать быстрее, чем на php». Но, положа руку на сердце, опыт этот редко базируется на точных цифрах реальных задач, которые сам этот специалист реализовал. Нет, ну кто в здравом уме будет писать сложное ПО сначала на php, а потом его же переписывать на ассемблере, только чтобы измерить характеристики? В основном ограничиваются синтетическими тестами типа сортировки массива, построения и обхода бинарного дерева и тому подобных. [Читать дальше →][1]

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

[>] Применение моделей CatBoost внутри ClickHouse. Лекция Яндекса
habra.16
habrabot(difrex,1) — All
2018-01-28 21:30:14


В каких ситуациях удобно применять предобученные модели машинного обучения внутри ClickHouse? Почему для такой задачи лучше всего подходит метод [CatBoost][1]? Не так давно мы провели встречу, посвящённую одновременному использованию этих двух опенсорс-технологий. На встрече выступил разработчик Николай Кочетов — его лекцией мы и решили с вами поделиться. Николай разбирает описанную задачу на примере алгоритма предсказания вероятности покупки.


— Сначала о том, как устроен ClickHouse. ClickHouse — это аналитическая распределенная СУБД. Она столбцовая и с открытым исходным кодом. Самое интересное слово здесь — «столбцовая». Что оно значит? [Читать дальше →][2]

[1]: https://habrahabr.ru/company/yandex/blog/333522/
[2]: https://habrahabr.ru/post/347696/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347696#habracut

[>] Programmer Unknown's BattleGround: открытая площадка для сражений программистов
habra.16
habrabot(difrex,1) — All
2018-01-28 21:30:14


![image][1]

Изначально проект PUBG (просим прощения у оригинальной [PUBG][2] за использование их аббревиатуры, мы всего лишь хотим использовать эту игру для развития навыков программирования и не планируем публиковать ее в Steam в будущем) был разработан как внутренний проект нашей студии для развлечения. Затем же мы подумали, что он может быть полезен другим студиям, компаниям и образовательным учреждениям, и опубликовали его под лицензией MIT.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/010/338/885/0103388850cb4dc97cf553338a74a701.gif
[2]: https://www.playbattlegrounds.com/
[3]: https://habrahabr.ru/post/347698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347698#habracut

[>] [Перевод] Создание игр на Python 3 и Pygame: Часть 5
habra.16
habrabot(difrex,1) — All
2018-01-29 01:30:14


![image][1]


Это последняя из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и PyGame. В четвёртой части мы научились распознавать коллизии, реагировать на то, что мяч сталкивается с разными игровыми объектами и создали игровое меню с собственными кнопками.

(Остальные части туториала: [первая][2], [вторая][3], [третья][4], [четвёртая][5].)

В последней части мы рассмотрим различные темы: конец игры, управление жизнями и очками, звуковые эффекты, музыку и даже гибкую систему спецэффектов. На десерт мы рассмотрим возможные улучшения и направления дальнейшего развития.
[Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/e38/895/a15/e38895a159ff5bbd8da2f1040b61d219.gif
[2]: https://habrahabr.ru/post/347138/
[3]: https://habrahabr.ru/post/347170/
[4]: https://habrahabr.ru/post/347256/
[5]: https://habrahabr.ru/post/347266/
[6]: https://habrahabr.ru/post/347286/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347286#habracut

[>] Анализируй это. Mista.ru
habra.16
habrabot(difrex,1) — All
2018-01-29 10:45:14


![][1]



### What, How, Why {#what-how-why}



Форум Mista.ru — один из самых старых и активных форумов посвященный 1С. Первое сообщение датировано 2000 годом и на текущий момент счетчик тем перевалил за 800000, а количество сообщений больше 16 000 000. Форум был настолько популярен, что его даже пытались "зеркалировать", так как содержал неплохую базу вопросов-ответов по 1С, из-за чего админы форума добавили "защиту от скачивания". В этой статье будет описано то, как можно скачать этот (а в наверно и любой другой) форум в относительно короткие сроки при помощи Google Cloud Platform.

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

[1]: https://habrastorage.org/webt/od/xd/kw/odxdkwpc_7anzdc0vazcz6golwq.png
[2]: https://habrahabr.ru/post/347096/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347096#habracut

[>] Тест на проникновение с помощью Metasploit Framework: базовое руководство для системного администратора
habra.16
habrabot(difrex,1) — All
2018-01-29 11:00:14


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


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

[1]: https://habrastorage.org/webt/dn/t7/1i/dnt71ihnoupajc_ialet0h-thsm.png
[2]: https://habrahabr.ru/post/347702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347702#habracut

[>] Chromium: утечки памяти
habra.16
habrabot(difrex,1) — All
2018-01-29 12:30:13


![PVS-Studio and CWE-401][1]

Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это третья часть, которая будет посвящена утечкам памяти.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/7f5/e8f/aac/7f5e8faacd9b5dd5f248d1ed618f7682.png
[2]: https://habrahabr.ru/post/347746/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347746#habracut

[>] Выпуск#8: ITренировка — актуальные вопросы и задачи от ведущих компаний
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


Продолжаем публиковать интересные задачи от ведуших IT-компаний.

В подборку попали задачи, задаваемые на собеседованиях (обычно на должность инженера-разработчика) в Yahoo! Предлагаем Вам попробовать свои силы и постараться решить задачи самостоятельно — тогда вопросы на собеседовании вряд ли застанут Вас врасплох.
[Читать дальше →][1]

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

[>] Диалоговый телеграм бот на PHP
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


На данную тему написано много статей на [Хабре][1] и просто в интернете. И я расскажу о своем опыте работы с телеграм ботом и моментами, которые «в лоб» не удалось решить.
[Читать дальше →][2]

[1]: https://habrahabr.ru/search/?q=telegram+bot#h
[2]: https://habrahabr.ru/post/347482/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347482#habracut

[>] [Из песочницы] Spring AOP. Маленький вопросик с собеседования
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


Довелось мне тут на днях побывать на очередном собеседовании. И задали мне там вот такой вот вопрос. Что на самом деле выполнится (с точки зрения транзакций), если вызвать method1()?

public class MyServiceImpl {

@Transactional
public void method1() {
//do something
method2();
}

@Transactional (propagation=Propagation.REQUIRES_NEW)
public void method2() {
//do something
}
}

Ну, мы же все умные, документацию читаем или, по крайней мере, видео выступлений Евгения Борисова смотрим. Соответственно и правильный\* ответ знаем (правильный\* — это такой, который от нас ожидает услышать тот, кто спрашивает). И звучать он должен примерно так.

«_В связи с тем, что для поддержки транзакций через аннотации используется Spring AOP, в момент вызова method1() на самом деле вызывается метод прокси объекта. Создается новая транзакция и далее происходит вызов method1() класса MyServiceImpl. А когда из method1() вызовем method2(), обращения к прокси нет, вызывается уже сразу метод нашего класса и, соответственно, никаких новых транзакций создаваться не будет_».

Но знаете, как это бывает, вроде и ответ правильный уже давно знаешь. И применяешь это знание регулярно. А вдруг раз… и неожиданно задумаешься: «_Подождите-ка, ведь если мы используем Spring AOP, то там могут создаваться прокси и через JDK, а могут и с CGLIB; а еще возможно, что CTW или LTW подключили. И что такой ответ всегда будет верен?_».

Ну что ж: интересно? Надо проверить.
[Читать дальше →][1]

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

[>] Объект в футляре или Optional в Java 8 и Java 9. Часть 2: «Как это делается в Java 8»
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


![Объект в футляре][1]

Классу Optional посвящено немало статей и tutorials, в том числе [этот][2] и [этот][3] на Хабре.

Большинство из них рассказывают **как** вызываются методы этого класса. Я в этом tutorial делаю упор на то **зачем, почему, в каких случаях** можно (а скорее даже нужно) применять тот или иной метод класса. Я думаю, это очень важно, ибо как показал опрос после [первой статьи][4] этого tutorial, далеко не все Java — программисты вошли во вкус использования всей мощи методов этого класса.

Для лучшего объяснения методов класса я буду использовать более сложные и наглядные примеры, чем в большинстве других tutotials — кофеварку, фильтрационную установку, миксер и т.д.

Это вторая статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В [первой статье][5] было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional.
В этой статье мы рассмотрим все методы класса в том виде, как их предоставляет Java 8. Расширения класса в Java 9 рассмотрены в[ третьей статье][6] этой серии.Четвертая статья будет посвящена необходимому (с точки зрения автора) дополнению к этому классу. Ну а пятая подведёт итоги. [Читать дальше →][7]

[1]: https://habrastorage.org/webt/ys/0h/kg/ys0hkgszo0x804sxkfr0q6svqcm.jpeg
[2]: https://habrahabr.ru/post/346782/
[3]: https://habrahabr.ru/post/225641/
[4]: https://habrahabr.ru/post/347480/
[5]: https://habrahabr.ru/post/347480/
[6]: https://habrahabr.ru/post/347748/
[7]: https://habrahabr.ru/post/347576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347576#habracut

[>] [Из песочницы] И так сойдёт… или как данные 14 миллионов россиян оказались у меня в руках
habra.16
habrabot(difrex,1) — All
2018-01-29 14:15:13


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

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

Но времена сейчас другие, сейчас 21 век, век больших возможностей, любой работодатель, который умеет пользоваться мышкой и знает, как выглядит браузер на рабочем столе, может проверить данные диплома. Каждый диплом, который выдаётся учебным заведением, теперь регистрируется в едином реестре, доступ к которому есть у каждого через сайт [Федеральной службы по надзору в сфере образования и науки][1].

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

[1]: http://frdocheck.obrnadzor.gov.ru/
[2]: https://habrastorage.org/getpro/habr/post_images/eb6/471/a1f/eb6471a1f7473e5163e445d9c3347444.png
[3]: https://habrahabr.ru/post/347760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347760#habracut

[>] Как при разработке плагина для Jira упаковать зависимую библиотеку в obr
habra.16
habrabot(difrex,1) — All
2018-01-29 16:15:13


При разработке плагинов для Jira периодически приходится использовать библиотеки, которых в Jira нет, поэтому их нужно установить вместе с разрабатываемым плагином. В Jira сторонние библиотеки можно упаковать в плагин двумя способами:

Указать у сторонней библиотеки область видимости компилирования, и тогда классы из этой библиотеки будут упакованы в jar-файл разрабатываемого плагина. Для этого необходимо в файле pom.xml написать:









Собрать плагин таким образом, чтобы jar-файл сторонней библиотеки находился в папке dependencies файла obr разрабатываемого плагина.
[Читать дальше →][1]

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

[>] Консервативное национальное крипторегулирование. Что несут нам новые законопроекты?
habra.16
habrabot(difrex,1) — All
2018-01-29 16:45:14


![image][1]

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

И вот на прошлой неделе различные органы власти на разных площадках выложили сразу три законопроекта, так или иначе касающихся регулирования криптовалют и токенов, майнинга, а также организации токенсейлов в России:

1. Законопроект Минфина [“О цифровых финансовых активах”][2], который призван заложить основы создания, выпуска, хранения и обращения цифровых финансовых активов;
2. Законопроект ЦБ [“Об альтернативных способах привлечения инвестиций (краудфандинге)”,][3] устанавливающий правила проведения токенсейлов;
3. Законопроект депутата Курбанова & РАКИБ “[О системе распределенного национального майнинга][4]”, претендующего создать основу для майнинга крипторубля.
[Читать дальше →][5]

[1]: https://habrastorage.org/webt/o0/st/ll/o0stllfdpdwe5tcvsxkqp6trogo.jpeg
[2]: https://www.minfin.ru/ru/document/?id_4=121810&area_id=4&page_id=2104&popup=Y%20%20%20%20%20#
[3]: http://www.cbr.ru/analytics/standart_acts/others/20180125_02.pdf
[4]: http://asozd2c.duma.gov.ru/addwork/scans.nsf/ID/CB195C54630E7E7B432582200064B9AD/%24FILE/373645-7_25012018_373645-7.PDF?OpenElement
[5]: https://habrahabr.ru/post/347768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347768#habracut

[>] Статический анализ и property-based тестирование: вместе мы сила
habra.16
habrabot(difrex,1) — All
2018-01-29 16:45:14


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



Я разрабатываю Java-инспекции в IntelliJ IDEA, которая большей частью написана на Java. В некотором смысле я нахожусь в привилегированном положении по сравнению с другими программистами: доработать статический анализатор IDE, чтобы находить новый класс ошибок — это моя прямая рабочая обязанность, которая при этом же позволяет найти и обезвредить баги в этой же самой IDE. Хочу поделиться одной такой историей успеха.

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

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

[>] «…Желают знать, что будет» или пишем гадальный шар в САПР NanoCAD на C# (MultiCAD .NET API)
habra.16
habrabot(difrex,1) — All
2018-01-29 18:00:14


Если верить одной старой [песне из советского кинофильма][1], то люди всегда интересуются вопросами будущего в трудной ситуации. Кто-то подбрасывает монетку, кто-то мучает осьминога Пауля, а совсем уж зверски настроенные люди — ощипывают ромашки. Мы с вами поступим куда как гуманней и найдем для САПР NanoCAD, весьма нетрадиционное применение, а именно сделаем свой аналог гадального шара (почти как на картинке ниже).

В статье мы еще раз потренируемся создавать пользовательские примитивы NanoCAD с помощью MultiCAD.NET API, а также прикрутим к нашему объекту взаимодействие с Windows.Forms.

Код сегодня будет только на C#, писать его будем для платной версии (NC 8.5) и для бесплатной (NC 5.1), ну и естественно пользователи Linux смогут его собрать в Mono и запустить под Wine, поэтому милости прошу под кат…

![][2]

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

[1]: https://www.youtube.com/watch?v=QgGZwy-CLb0
[2]: https://habrastorage.org/webt/b9/sw/ro/b9swro7w-vurjcb4nx9icjjkrr0.jpeg
[3]: https://habrahabr.ru/post/347720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347720#habracut

[>] Объект в футляре или Optional в Java 8 и Java 9. Часть 3: «Что добавилось в Java 9»
habra.16
habrabot(difrex,1) — All
2018-01-29 18:00:13


[![Объект в футляре][1]][2]

Это третья статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В [первой статье][3] было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional.

[Вторая статья][4] посвящена описанию методов класса Optional в том виде, как он появился в Java 8.

Эта статья описывает методы класса, появившиеся в Java 9.

Четвертая статья будет посвящена необходимому (с точки зрения автора) дополнению к этому классу. Ну а пятая подведёт итоги.
[Читать дальше →][5]

[1]: https://habrastorage.org/webt/ys/0h/kg/ys0hkgszo0x804sxkfr0q6svqcm.jpeg
[2]: https://habrahabr.ru/post/347748/
[3]: https://habrahabr.ru/post/347480/
[4]: https://habrahabr.ru/post/347576/
[5]: https://habrahabr.ru/post/347748/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347748#habracut

[>] Докеризация nginx и php на сокетах с ротацией логов
habra.16
habrabot(difrex,1) — All
2018-01-29 18:15:13


В [статье на Хабре][1] обсуждался «docker way»(TM), который гласит: один контейнер — один процесс.**one process per container**
Each container should have only one concern

Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. For instance, a web application stack might consist of three separate containers, each with its own unique image, to manage the web application, database, and an in-memory cache in a decoupled manner.

You may have heard that there should be “one process per container”. While this mantra has good intentions, it is not necessarily true that there should be only one operating system process per container. In addition to the fact that containers can now be spawned with an init process, some programs might spawn additional processes of their own accord. For instance, Celery can spawn multiple worker processes, or Apache might create a process per request. While “one process per container” is frequently a good rule of thumb, it is not a hard and fast rule. Use your best judgment to keep containers as clean and modular as possible.

If containers depend on each other, you can use Docker container networks to ensure that these containers can communicate.
Следование этому принципу при докеризации nginx чревато двумя последствиями. Настроить взаимодействие nginx и php-fpm в разных процессах через unix сокет [немного сложнее][2], чем может показаться. И [ротация логов][3], которая при обычной установке идет «из коробки», не может осуществляться в принципе, т.к. требует отправки сигнала USR1 nginx, для чего нужен ещё один процесс.
[Читать дальше →][4]

[1]: https://habrahabr.ru/post/346634/
[2]: https://medium.com/@shrikeh/setting-up-nginx-and-php-fpm-in-docker-with-unix-sockets-6fdfbdc19f91
[3]: https://blog.amartynov.ru/docker-logrotate/
[4]: https://habrahabr.ru/post/347662/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347662#habracut

[>] MentorHack: тиндер для поиска ментора, AI Boss и немного HRTech
habra.16
habrabot(difrex,1) — All
2018-01-29 20:30:14


![][1]

С 13 по 15 февраля в Москве пройдет [MentorHack][2] – хакатон по созданию сервисов для наставничества в корпоративной среде, предпринимательстве и образовании. Приглашаем всех с опытом в разработке, машинном обучении, product-менеджменте или HR и желанием получить 500 000 рублей, подарки и интересные данные от партнеров.

Под катом – подробности участия и примеры идей для проектов: от [запускающихся сервисов][3] по подбору ментора Facebook и LinkedIn до концепций AI Boss.
[Читать дальше →][4]

[1]: https://habrastorage.org/webt/fg/tc/7p/fgtc7pbfrt5d7h296n89cla0ucm.jpeg
[2]: https://mentorhack.ru/
[3]: https://techcrunch.com/2017/09/11/facebook-is-testing-a-feature-for-mentorships-between-users/
[4]: https://habrahabr.ru/post/347772/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347772#habracut

[>] Исследование защиты программы VoiceAttack
habra.16
habrabot(difrex,1) — All
2018-01-29 22:30:14


![][1]

Которая в итоге подкинула несколько приятных неожиданностей. Осторожно, под катом много скринов в хайрезе и не хайрезе, которые не убраны под спойлер ввиду их невероятной важности. А, ну и ещё там есть шутка про половые органы кентавров, но она тоже включена исключительно ради контекста.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/j0/j3/9d/j0j39dklli68enonvxtuvftnugc.png
[2]: https://habrahabr.ru/post/347800/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347800#habracut

[>] Неслучайная случайность, или Атака на ГПСЧ в .NET
habra.16
habrabot(difrex,1) — All
2018-01-30 09:15:14


> _Random numbers should not be generated with a method chosen at random._
> _— Donald Knuth_



Копаясь как-то в исходниках одного сервиса в поисках уязвимостей, я наткнулся на генерацию одноразового кода для аутентификации через SMS. Обработчик запросов на отправку кода упрощённо выглядел так:


class AuthenticateByPhoneHandler
{
/* ... */

static string GenerateCode() => rnd.Next(100000, 1000000).ToString();

readonly static Random rnd = new Random();
}

Проблема видна невооруженным глазом: для генерации 6-тизначного кода используется класс Random — простой некриптографический генератор псевдослучайных чисел (ГПСЧ). Займёмся им вплотную: научимся предсказывать последовательность случайных чисел и прикинем возможный сценарий атаки на сервис.



# Потокобезопасность {#potokobezopasnost}



Кстати, заметим, что в приведённом фрагменте кода доступ к статическому экземпляру `rnd` класса Random из нескольких потоков не синхронизирован. Это может привести к неприятному казусу, который можно часто встретить в вопросах и ответах на StackOverflow:



![][1]

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

[1]: https://habrastorage.org/webt/jw/fd/gv/jwfdgvotcjwt1wct-mz93tdkhnq.png
[2]: https://habrahabr.ru/post/347758/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347758#habracut

[>] Chromium: опечатки
habra.16
habrabot(difrex,1) — All
2018-01-30 10:45:14


![Опечатки][1]

Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это четвёртая часть, которая будет посвящена проблеме опечаток и написанию кода с помощью «Copy-Paste метода».

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

[1]: https://habrastorage.org/getpro/habr/post_images/cb3/fa0/fef/cb3fa0fef11cb4706f5ce52d238363da.png
[2]: https://habrahabr.ru/post/347826/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347826#habracut

[>] Делаем свою прошивку для IP-камеры на Rust и боремся с фродом
habra.16
habrabot(difrex,1) — All
2018-01-30 13:30:14


Это продолжение рассказа о лучших ([по мнению участников][1]) докладах HighLoad++ 2017. В предыдущей статье я [писал][2] о двух лидерах рейтинга. Идем дальше. В этом материале — доклад Вадима Антонюка о фродах и Макса Лапшина  - о прошивке для IP-камеры на Rust.

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

[1]: https://www.facebook.com/oleg.bunin/posts/1808061875902162
[2]: https://habrahabr.ru/company/oleg-bunin/blog/346934/
[3]: https://habrastorage.org/webt/i-/ut/cq/i-utcqb7jmlix3362tlolzd50bm.jpeg
[4]: https://habrahabr.ru/post/347794/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347794#habracut

[>] Старые-новые дыры Электронного правительства Казахстана
habra.16
habrabot(difrex,1) — All
2018-01-30 14:00:14


DISCLAMER!
Описанная в статье уязвимость исправлена и не несет в себе никакой опасности. Публикация написана в целях академического просвещения читателей и демонстрации важности вопросов ИБ. Описанная уязвимость присутствовала на E-GOV несколько лет и позволяла получить доступ к паролям пользователей электронного правительства Казахстана.

Недавно на портале электронного правительства Республики Казахстан egov.kz закрыли критическую уязвимость. Так как баг уже закрыт и его раскрытие больше не представляет угрозы, было принято решение обсудить его с вами, так как с технической и академической точки зрения случай представляет большой интерес для исследователей. Еще один немаловажный момент: в определенных кругах такие ошибки, в частности конкретно эта, известны очень длительное время, и их наличие вызывает много вопросов к уровню компетентности ответственных лиц.

Те, кто всегда пользуется web-сервисами через прокси, чтобы контролировать обмен данными, могли заметить в мобильной версии сайта egov.kz передаваемые на сервер запросы в виде XML. Многие исследователи пробовали подгрузить в запрос сущность, или, простым языком, провести атаку типа XXE.

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

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

[>] [Перевод] Машинное обучение и шоколадные конфеты
habra.16
habrabot(difrex,1) — All
2018-01-30 14:00:14


Говорят, что у мерчендайзеров есть негласное правило: никогда не класть рядом батончики Nesquik и Snickers. Кто знает, миф это или нет, но технологии, которые позволяют проверить условия хранения и выкладки шоколадных конфет на витрины — существуют. В этой статье мы углубимся в них и расскажем о модели машинного обучения, предназначенной как раз для этих целей.

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

[1]: https://habrastorage.org/webt/8d/7k/jk/8d7kjky21xn-qa8jpe49k9ahhmq.png
[2]: https://habrahabr.ru/post/345452/?utm_source=habrahabr&utm_medium=rss&utm_campaign=345452#habracut

[>] Как работают многоканальные телефонные номера
habra.16
habrabot(difrex,1) — All
2018-01-30 14:45:13


![][1]


Недавно на Хабре была [статья][2] про «необычные» DEF-номера. Под необычностью скрывалась «многоканальность» — возможность принимать на номер несколько параллельных звонков (а разговаривать по ним будут операторы колл-центра). Целых пять одновременных разговоров и восклицательный знак в конце фразы! Под катом я расскажу про многоканальность не с маркетинговой, а с технической точки зрения. Как операторы «принимают» звонки, чем «необычный DEF-номер» отличается от «обычного ABC-номера», и много это или мало — целых пять параллельных звонков? Кстати, почему именно пять, а не двадцать или сто?
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/u_/rl/9g/u_rl9gg4twjv980jyabtqr6aem4.jpeg
[2]: https://habrahabr.ru/company/iptelefon/blog/347190/
[3]: https://habrahabr.ru/post/347832/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347832#habracut

[>] DCShadow — новая техника атаки на Active Directory
habra.16
habrabot(difrex,1) — All
2018-01-30 14:45:13


![][1]
 
24 января 2018 года на конференции безопасности Microsoft BlueHat исследователями Benjamin Delpy и Vincent Le Toux была продемонстрирована новая технология атаки против инфраструктуры Active Directory.

Название новой техники атаки — DCShadow. Такая атака позволяет злоумышленнику создать поддельный контроллер домена в среде Active Directory для репликации вредоносных объектов в рабочую инфраструктуру Active Directory.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/on/pc/kr/onpckrtegrzfdzprye1ctpx0y3y.png
[2]: https://habrahabr.ru/post/347844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347844#habracut

[>] Подвалы Вавилонской башни, или Об интернационализации баз данных с доступом через ORM
habra.16
habrabot(difrex,1) — All
2018-01-30 15:00:14


![Гравюра М. Эшера "Относительность"][1]
[_Гравюра М. Эшера «Относительность», 1953_][2]



# Введение



В [предыдущей статье][3] на примере доменной сущности товара мы рассмотрели собственные типы данных для многоязычных приложений. Мы научились описывать и использовать атрибуты сущностей, имеющие значения на различных языках. Но вопросы хранения и обработки в реляционной СУБД, а также проблемы эффективной работы в коде приложения до сих пор актуальны.



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



Однако в индустрии все еще нет решения _Database Internationalization for Dummies_. Вместе с вами мы попробуем немного заполнить этот пробел: опишем возможные способы, оценим их преимущества и недостатки, выберем эффективные. Мы не собираемся изобретать серебряную пулю, но сценарий, который будем рассматривать, довольно типичен для корпоративных приложений. Надеемся, многим он окажется полезен.



Приведенные в статье фрагменты кода — на языке C#. На GitHub можно найти [примеры реализации][4] механизмов интернационализации с использованием двух различных связок ORM и СУБД: [NHibernate][5] + [Oracle Database][6] и [Entity Framework Core][7] + [SQL Server][8]. Разработчикам, использующим упомянутые ORM, будет интересно узнать конкретные приемы и трудности работы с многоязычными данными, а также блокирующие дефекты фреймворков и перспективы их устранения. Изложенные ниже принципы и примеры работы с многоязычными данными легко перенести и на другие языки и технологии.


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

[1]: https://habrastorage.org/webt/59/cb/d4/59cbd400d6b90552886277.jpeg
[2]: https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(%D0%BB%D0%B8%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F)
[3]: https://habrahabr.ru/company/custis/blog/313284/
[4]: https://github.com/CUSTIS-public/CUSTIS.i18n.DAL
[5]: http://nhibernate.info/
[6]: http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html
[7]: https://docs.microsoft.com/en-us/ef/#pivot=efcore
[8]: https://www.microsoft.com/en-us/sql-server/developer-get-started/
[9]: https://habrahabr.ru/post/313690/?utm_source=habrahabr&utm_medium=rss&utm_campaign=313690#habracut

Pages: 1 ... 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133