RSS
Pages: 1 ... 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 ... 210
[>] [Перевод] Использование LSM-движка из SQLite 4 в качестве отдельной NoSQL базы данных с использованием Python
habra.15
habrabot(difrex,1) — All
2016-01-11 15:00:04


![image][1] На сегодняшний день две мои самые любимые темы — SQLite и key-value базы данных. И в этот раз я пишу сразу про обе: этот пост посвящён Python-обёртке для используемого в SQLite 4 key-value хранилища на основе [LSM][2]. Я не слишком внимательно отслеживаю релизы SQLite, но версия 3.8.11 привлекла моё внимание, поскольку в её описании заявлено серьёзное увеличение производительности по сравнению с 3.8.0. В сопроводительной информации я наткнулся на упоминание о новом экспериментальном расширении для полнотекстового поиска ([о котором писал когда-то][3]), и потому мне стало интересно, какая складывается ситуация с [SQLite 4][4]. Изучив доступную информацию, я обратил внимание, что одной из задач разработчиков было обеспечить в новых версиях [интерфейс для подключаемых движков баз данных][5]. На момент написания этого поста в SQLite 4 уже было два встроенных бэкенда, один из которых — key-value хранилище на основе LSM. В последние пару месяцев мне доводилось поиграться с [Cython][6], пока я писал Python-обёртку для встроенных k-v хранилищ [UnQLite][7] и [Vedis][8]. И я подумал, что было бы неплохо применить Cython для создания интерфейса движка БД на основе LSM, используемого в SQLite 4. Разобравшись с [исходным кодом SQLite 4][9] и [крохотным заголовочным файлом LSM][10], я написал [python-lsm-db][11] ([документация][12]). [Читать дальше →][13]

[1]: https://habrastorage.org/getpro/habr/post_images/a68/ddf/3e6/a68ddf3e6b52165cae0448a58f3a6b37.png
[2]: https://en.wikipedia.org/wiki/Log-structured_merge-tree
[3]: http://charlesleifer.com/blog/building-the-sqlite-fts5-search-extension/
[4]: http://sqlite.org/src4/doc/trunk/www/design.wiki
[5]: http://sqlite.org/src4/doc/trunk/www/storage.wiki
[6]: http://cython.org/
[7]: http://unqlite-python.readthedocs.org/
[8]: http://vedis-python.readthedocs.org/
[9]: http://sqlite.org/src4/tree?ci=trunk
[10]: https://github.com/coleifer/python-lsm-db/blob/master/src/lsm.h
[11]: https://github.com/coleifer/python-lsm-db
[12]: http://lsm-db.readthedocs.org/
[13]: http://habrahabr.ru/post/274733/#habracut

[>] Проверяем IronPython и IronRuby с помощью PVS-Studio
habra.15
habrabot(difrex,1) — All
2016-01-11 16:00:09


Совсем недавно мы выпустили новую версию нашего анализатора PVS-Studio с поддержкой проверки C# проектов. Пока на время релиза дальнейшая разработка продукта была приостановлена, я занимался тестированием анализатора. В качестве проектов для своих экспериментов я взял IronPython и IronRuby. А раз эти проекты были проверены, я решил написать небольшую статью-отчёт. ![][1]

## IronPython и IronRuby

IronPython и IronRuby представляют собой реализацию языков программирования Python и Ruby на платформе .NET. Исходный код этих проектов доступен на GitHub по этой [ссылке][2]. Также в комплекте идёт исходный код [DLR][3]. Начиная с .NET Framework 4.0 DLR является его частью, и IronPython и IronRuby используют её. Тем не менее я всё равно проверил старую версию DLR, раз уж она там оказалась. [Подробности][4]

[1]: https://habrastorage.org/getpro/habr/post_images/151/718/fc4/151718fc401e86e72f3fc8ce459e0e1d.png
[2]: https://github.com/IronLanguages/main
[3]: https://en.wikipedia.org/wiki/Dynamic_Language_Runtime
[4]: http://habrahabr.ru/post/274863/#habracut

[>] [Перевод] IEnumerable интерфейс в C# и LSP
habra.14
habrabot(difrex,1) — All
2015-05-11 19:00:02


Эта статья — продолжение статьи [C#: коллекции только для чтения и LSP][1]. Сегодня мы посмотрим на интерфейс IEnumerable с точки зрения [принципа подстановки Барбары Лисков][2] (LSP), а также разберемся, нарушает ли этот принцип код, имплементирующий IEnumerable. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/256605/
[2]: https://ru.wikipedia.org/wiki/Принцип_подстановки_Барбары_Лисков
[3]: http://habrahabr.ru/post/257667/#habracut

[>] [Перевод] Кастомные корутины в Unity 5.3
habra.15
habrabot(difrex,1) — All
2016-01-11 16:30:04


_Всем привет. Это перевод статьи из официального [блога][1] движка Unity. В ней пойдет речь о способе создания своих корутин, появившемся в версии 5.3._ ![][2] Среди новых блестящих возможностей Unity 5.3 я обнаружил одну небольшую вещь, которая оказалась мне полезной, и, думаю, может пригодиться и вам. Это кастомные корутины, представленные классом _CustomYieldInstruction_. Благодаря ему, вы сможете очень просто создать свои собственные [корутинные][3] yield-операторы. Давайте рассмотрим это на живом примере. [Читать дальше →][4]

[1]: http://blogs.unity3d.com/
[2]: https://habrastorage.org/files/1e5/d05/e9a/1e5d05e9a8614188b0afb1311b4d8db2.png
[3]: http://docs.unity3d.com/Manual/Coroutines.html
[4]: http://habrahabr.ru/post/274305/#habracut

[>] Видео от пользователя: MacOS внутри ReactOS
habra.14
habrabot(difrex,1) — All
2015-05-11 22:30:02


![image][1] Под катом спрятано видео, на котором один из пользователей нашего проекта демонстрирует работу приложений для MacOS внутри ReactOS при помощи [Mini vMac][2]. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/1d1/9ad/960/1d19ad960b6a1bc6eb3ea70bee2b25d2.jpg
[2]: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CB4QFjAA&url=http%3A%2F%2Fwww.gryphel.com%2Fc%2Fminivmac%2F&ei=dTFNVdL2HsHYsgHO94HQDw&usg=AFQjCNFXratXeIPTe3hZBx15-vnUAp8x0Q&sig2=kSPmFqX6l7S8PMxqz0G3mg&bvm=bv.92885102,d.bGg
[3]: http://habrahabr.ru/post/257589/#habracut

[>] Об автоматическом дифференцировании, методе Ньютона и решении СЛАУ на Delphi. Часть 1
habra.14
habrabot(difrex,1) — All
2015-05-11 22:30:02


Об автоматическом дифференцировании (АД) на Хабре уже писалось [здесь][1] и [здесь][2]. В данной статье предлагается реализация АД для Delphi (протестировано в Embarcadero XE2, XE6) вместе с удобными классами методов Ньютона для решения нелинейных уравнений f(x) = 0 и систем F(X) = 0. Любые ссылки на готовые аналогичные библиотеки приветствуются, сам же я подобного не нашел, не считая отличного решателя СЛАУ с разреженной матрицей (см. под катом). [Читать дальше][3]

[1]: http://habrahabr.ru/company/intel/blog/170729/
[2]: http://habrahabr.ru/post/63055/
[3]: http://habrahabr.ru/post/247379/#habracut

[>] [Перевод] GlassRAT: анализ трояна из Китая с помощью RSA Security Analytics и RSA ECAT
habra.15
habrabot(difrex,1) — All
2016-01-11 16:30:04


![][1] Специалистами RSA Research была обнаружена троянская программа GlassRAT для удаленного администрирования (Remote Administration Tool — RAT) с «нулевым уровнем обнаружения», подписанная сертификатом, украденным или полученным от популярного китайского разработчика ПО. Эта вредоносная программа могла избегать обнаружения на протяжении несколько лет. Телеметрия и ограниченные отчеты, не выдерживающие никакой критики, свидетельствуют, что целью GlassRAT являлись китайские граждане, связанные с транснациональными корпорациями. Будучи полностью «прозрачным» для большинства антивирусных продуктов, троянец GlassRAT можно обнаружить с помощью детальной экспертизы, а также с помощью конечных инструментов для обнаружения угроз, таких как RSA Security Analytics и/или RSA ECAT. Также представлены доказательства того, что способ организации командной инфраструктуры сети GlassRAT имеет много общего с другими вредоносными кампаниями, которые ранее были направлены на Азиатские организации геополитического и стратегического значения. Более подробно с этой информацией можно ознакомиться тут: . [Читать дальше →][2]

[1]: https://habrastorage.org/files/d6d/f6d/b89/d6df6db8931a47d187f271d120539fe9.jpg
[2]: http://habrahabr.ru/post/274245/#habracut

[>] [Перевод] Новое в Wolfram Language | Аналитическое решение уравнений в частных производных
habra.15
habrabot(difrex,1) — All
2016-01-11 16:30:04






_Перевод поста Devendra Kapadia "[New in the Wolfram Language: Symbolic PDEs][1]". Код, приведенный в статье, можно скачать [здесь][2]. Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][3] за помощь в переводе и подготовке публикации_.

----

Уравнения в частных производных (УрЧП) играют очень важную роль в математике и ее приложениях. Их можно использовать для моделирования реальных явлений, таких как колебания натянутой струны, распространения потока тепла в стержне, в финансовых областях. Цель этой статьи — приоткрыть завесу в мир УрЧП (тем кто еще с ним не знаком) и ознакомить читателя с тем, как можно эффективно решать УрЧП в Wolfram Language, используя новый функционал для решения краевых задач в [**DSolve**][4], а так же новую функцию [**DEigensystem**][5], которая появилась в [версии 10.3][6]. История УрЧП восходит к работам известных математиков восемнадцатого века — [Эйлера,][7] [Даламбера,][8] [Лапласа,][9] однако развитие этой области в последние три столетия так и не остановилось. И потому в статье я приведу как классические, так и современные примеры УрЧП, что позволит рассмотреть эту область знаний под разными углами. Давайте начнем с рассмотрения колебаний натянутой струны с длиной [π][10], закрепленной на обоих концах. Колебания струны можно смоделировать с помощью одномерного волнового уравнения, приведённого ниже. Здесь _u(x,t)_ — вертикальное смещение точки струны с координатой _х_ в момент времени _t_: ![][11] [Читать дальше →][12]

[1]: http://blog.wolfram.com/2016/01/07/new-in-the-wolfram-language-symbolic-pdes/
[2]: http://blog.wolfram.com/data/uploads/2016/01/New-in-the-Wolfram-Language-Symbolic-PDEs-Blog-Post.cdf
[3]: http://habrahabr.ru/users/kirillguzenko/
[4]: http://reference.wolfram.com/language/ref/DSolve.html
[5]: http://reference.wolfram.com/language/ref/DEigensystem.html
[6]: http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn103.html
[7]: http://scienceworld.wolfram.com/biography/Euler.html
[8]: http://scienceworld.wolfram.com/biography/dAlembert.html
[9]: http://scienceworld.wolfram.com/biography/Laplace.html
[10]: http://reference.wolfram.com/language/ref/Pi.html
[11]: https://habrastorage.org/getpro/habr/post_images/8a2/5ea/bf5/8a25eabf5699c9b04719768580d2d11b.png
[12]: http://habrahabr.ru/post/274857/#habracut

[>] Trojan-Downloader.Win32.Cabby.cemx — Часть вторая — Функционал
habra.14
habrabot(difrex,1) — All
2015-05-12 05:00:03


![][1] В [предыдущей части][2] разобрали и сняли первый слой обороны зловреда. Сделали дамп процесса после расшифровки основного кода, сохранив его в отдельном исполняемом файле. Настало время разобраться с логикой и смысловой нагрузкой самого Downloader'а. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/dfe/47a/8ab/dfe47a8abb7b9fbc8374943cac7c7909.png
[2]: http://habrahabr.ru/post/257413/
[3]: http://habrahabr.ru/post/257681/#habracut

[>] SoC: поднимаем простой DMA на FPGA
habra.14
habrabot(difrex,1) — All
2015-05-12 11:00:02


![][1] День добрый! В [прошлой статье][2] я описывал, как «поднять» с нуля **SoC** от **Altrera**. Мы остановились на том, что измерили пропускную способность между **CPU** и **FPGA**, когда копирование выполняется процессором. В этом раз мы пойдем немного дальше и реализуем примитивный **DMA** в **FPGA**. Кому интересно — добро пожаловать под кат. [Тут интересно][3]

[1]: //habrastorage.org/files/c97/609/a2a/c97609a2af92412d907c555b8eb45655.jpg
[2]: http://habrahabr.ru/post/235707/
[3]: http://habrahabr.ru/post/248145/#habracut

[>] Сэр Чарльз Энтони Ричард Хоар или просто батя Quicksort, NULL и проблемы обедающих философов
habra.15
habrabot(difrex,1) — All
2016-01-11 16:30:04


![][1] Рыцарь в образовании и компьютерных науках, мужик, в честь которого назвали логику, первый, кто признался в своей ошибке на миллиард долларов, разработчик qsort, празднует сегодня, 11 января, свое 82-летие. (Наверняка вместе с [Кнутом][2].) [Читать дальше →][3]

[1]: https://habrastorage.org/files/092/de5/ec6/092de5ec62f541e7925d0349f18ca4f8.jpg
[2]: http://habrahabr.ru/post/274787/
[3]: http://habrahabr.ru/post/274865/#habracut

[>] Vectorization Advisor, ещё один пример — разгоняем фрактал
habra.14
habrabot(difrex,1) — All
2015-05-12 12:00:03


Мы недавно [уже писали][1] о новом Vectorization Advisor. О том, что это такое и зачем нужно, читайте [в первой статье][2]. Этот же пост посвящён разбору конкретного примера оптимизации приложения с помощью этого инструмента. Приложение взято из примеров библиотеки Intel® Threading Building Blocks (Intel TBB). Оно рисует фрактал Мандельброта и распараллелено по потокам с помощью Intel TBB. Т.е. преимущества многоядерного процессора оно использует — посмотрим, как обстоят дела с векторными инструкциями. ![][3] [Читать дальше →][4]

[1]: http://habrahabr.ru/company/intel/blog/255731/
[2]: http://habrahabr.ru/company/intel/blog/255731/
[3]: //habrastorage.org/files/bf7/d45/80e/bf7d4580ee2e470c83f052b251d55f32.png
[4]: http://habrahabr.ru/post/257309/#habracut

[>] [Перевод] Виртуальный учебник Wolfram Language (Mathematica)
habra.14
habrabot(difrex,1) — All
2015-05-12 15:00:02






[Скачать учебник][1] (ZIP-архив, ~35 МБ) В документацию системы [Wolfram _Mathematica_][2] встроен [виртуальный учебник][3], который подробно рассказывает о базовых принципах языка [Wolfram Language][4], а также на множестве примеров показывает то, как его можно применять в самых разных областях знаний. Этот учебник содержит в себе **356 статей**, общий объем которых составляет несколько тысяч печатных страниц. Мне радостно сообщить, что этот учебник теперь **переведен на русский язык**. [Читать дальше →][5]

[1]: http://data.wolframmathematica.ru/WolframLanguageVirtualBookRu.zip
[2]: http://www.wolfram.com/mathematica
[3]: http://reference.wolfram.com/language/tutorial/VirtualBookOverview.html
[4]: http://www.wolfram.com/language/
[5]: http://habrahabr.ru/post/257733/#habracut

[>] Как поймать то, чего нет. Часть шестая. Вирусы в банке
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


Финансовые учреждения на данный момент являются самыми зарегулированными с точки зрения безопасности. Наличие многочисленных приказов, писем и стандартов позволяет, казалось бы, ответить на любой вопрос в ходе разработки и реализации политики безопасности. Но это только на первый взгляд, и на самом деле выполнение требований того же стандарта СТО БР РФ не обеспечит никакой антивирусной безопасности — разработчики стандарта находятся в плену традиционных представлений об антивирусах и антивирусной системе защиты. С другой стороны, наличие возможностей свободного толкования положений законов и стандартов позволяет недобросовестным поставщикам обосновывать свое «соответствие» букве требований. На что же нужно обращать внимание при реализации антивирусной защиты в банковской сфере? Как показывает практика, львиная доля вопросов и заблуждений связана с защитой банкоматов и терминалов. И вызываются они незнанием положений того же PCI-DSS. Поэтому и начнем мы обзор именно с них. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/257725/#habracut

[>] Prolog для программистов ч.2
habra.15
habrabot(difrex,1) — All
2016-01-11 17:00:05


Публикация первой части ( [habrahabr.ru/post/274603][1] ) вызвала довольно обширную и интересную дискуссию по различным аспектам языка применения ПРОЛОГ. Цель была – показать опытным, и не очень, программистам, что ничего сложного в Прологе нет, и каждый может его применять в работе. Почему-то не было вопросов непосредственно по тексту публикации. Буду думать, что там все понятно. Приступим к рассмотрению более практических аспектов программирования на языке Пролог. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/274603/
[2]: http://habrahabr.ru/post/274799/#habracut

[>] Вперед к победе: опубликована конкурсная программа PHDays V
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


[![][1]][2] 26 и 27 мая в [ЦМТ][3] состоится пятый по счету форум Positive Hack Days. Подготовка к мероприятию идет полным ходом: формируется [программа][4] докладов и мастер-классов (проголосовать за то или иное выступление можно на сайте), к инициативе [PHDays Everywhere][5] присоединились первые площадки из разных стран, но это еще не все. Традиционно на форуме проходил много конкурсов. Сегодня мы расскажем о том, в каких соревнованиях смогут принять участие гости PHDays и интернет-пользователи, а также о том, какие призы ждут победителей. [Читать дальше →][6]

[1]: //habrastorage.org/files/bb9/e94/a98/bb9e94a982f34ddbab287e3f1e6bee68.JPG
[2]: http://habrahabr.ru/company/pt/blog/257753/
[3]: http://www.wtcmoscow.ru/about/
[4]: http://www.phdays.ru/program/
[5]: http://www.phdays.ru/registration/everywhere/
[6]: http://habrahabr.ru/post/257753/#habracut

[>] [recovery mode] Защищает ли ваши персональные данные Электронное правительство Республики Казахстан (www.egov.kz)?
habra.15
habrabot(difrex,1) — All
2016-01-11 17:00:05


Большое количество пользователей Казнета уже давно использует удобный портал egov.kz для получения онлайн услуг. Полагаясь на квалификацию разработчиков портала, пользователи указывают свои данные, в частности номера мобильного телефона, для пользования «мобильным правительством» (если вами не указан номер телефона, то при каждой авторизации сайт настойчиво просит его указать). [Скрин 1] ![image][1] После указания номера телефона ваши данные с этого момента находятся под угрозой. Узнать ваш номер телефона зная только ФИО не составит труда, и для этого даже не нужно взламывать сам портал. Итак, предположим, что злоумышленник хочет узнать номер телефона определенного человека и использовать его в своих целях. Что для этого нужно. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/fd1/69e/4b5/fd169e4b54b6616800df2233b0df68ad.png
[2]: http://habrahabr.ru/post/274869/#habracut

[>] Победитель конкурса — «Куботроник»
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


В [прошлой публикации][1] мы предложили хабровчанам придумать название для открытого проекта — конструктора из кубиков, напечатанных на 3D принтере. ![image][2] Победитель выбран! [Читать дальше →][3]

[1]: http://habrahabr.ru/company/masterkit/blog/256549/
[2]: http://habrastorage.org/files/53f/eab/4a1/53feab4a135c4449b63d819dcd30802f.jpg
[3]: http://habrahabr.ru/post/257741/#habracut

[>] Михаил Романович Шура-Бура — патриарх отечественного программирования и его разработки
habra.15
habrabot(difrex,1) — All
2016-01-11 17:00:05


![][1]![][2] Михаила Романовича Шура-Бура — прекрасный ученый, который внес огромный вклад в создание и разработку первых отечественных ЭВМ. Известен также как создатель первой ПП (программирующей программы), интерпретирующей системы ИС-2 для машины М-20. Вспоминая о космическом корабле Буран, нельзя не упомянуть фамилию Михаила Шура-Буры, который был одним из разработчиков программного обеспечения для корабля. Родился Михаил Романович 21 октября 1918 года в селе Парафиевка (Украина, Черниговская область), куда его родители переехали из Киева, так как началась гражданская война и нужно было как-то прокормить семью. Дед был простым деревенским кузнецом, отец окончил университет и практиковал адвокатскую деятельность. [Подробности][3]

[1]: https://habrastorage.org/files/23b/59d/561/23b59d56161c47498c348e6d7a5357c0.jpg
[2]: https://habrastorage.org/files/33c/932/2aa/33c9322aae004648b8a28080d8e8b396.jpg
[3]: http://habrahabr.ru/post/274851/#habracut

[>] Хорошо настроенный Emacs
habra.15
habrabot(difrex,1) — All
2016-01-11 17:00:05


Все что нужно знать для того чтобы быстро и грамотно настроить Emacs. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274759/#habracut

[>] Коварный Волкодлак. Трансформация дистрибутива Ubuntu
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


Меньше месяца назад была выпущена новая версия Ubuntu 15.04, но уже сейчас полным ходом идут обсуждения планов по разработке будущих версий дистрибутива. ![][1] Попробую собрать воедино всю информацию относительно Ubuntu 15.10 и 16.04 LTS, которая стала известной: [Читать дальше →][2]

[1]: //habrastorage.org/files/c50/c73/925/c50c739251e94560a2ea427fecc1bfcd.jpeg
[2]: http://habrahabr.ru/post/257703/#habracut

[>] Линус Торвальдс анонсировал выход ядра Linux 4.4 LTS (Long-Term Support)
habra.15
habrabot(difrex,1) — All
2016-01-11 18:30:05


Тихо и незаметно вышло в свет ядро Linux 4.4 LTS (Long-Term Support), о чем известил Линус Торвальдс. Новинка включает довольно значительные обновления, включая, например, 3D поддержку виртуальных дравейров GPU. Благодаря этому можно использовать аппаратную поддержку графики в guest VM. Также включена поддержка Open-Channel Solid State Drives (SSDs) посредством LightNVM. Более того, Linux kernel 4.4 LTS поддерживает RAID5 MD, есть интеграция eBPF, что позволяет непривилегированным пользователям запускать eBPF программы. Также стоит упомянуть поддержку Block polling для улучшения общей производительности high-end устройств хранения данных, mlock2() syscal и многое другое. Улучшена поддержка 64-битных ARM, решена проблема с утечкой памяти в Skylake CPU от Intel. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274871/#habracut

[>] [Перевод] Руководство по шифрованию данных на PHP
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


_От переводчика: в процессе программирования никогда не забываю о том, что [я опасно некомпетентен в криптографии][1], и всем советую исходить из этого тезиса (ну, может быть кроме вас и еще вон того крутого парня). Однако, так или иначе, в процессе работы возникают задачи, связанные с защитой данных, и их надо решать. Поэтому я предлагаю вашему вниманию перевод статьи финского разрабочика [Timo H][2], которая показалась мне достаточно интересной и полезной._ Это краткое руководство о том, как избежать распространенных ошибок с симметричным шифрованием на PHP. Будем рассматривать случай, когда данные обрабатываются на стороне сервера (в частности, шифрование происходит на сервере, а данные могут быть получены, например, от клиента в виде открытого текста, пароля и т.п.), что является типичным случаем для PHP-приложений. Cведения из этого руководства не стоит использовать для создания шифрованных сетевых соединений, которые имеют более сложные требования. Для таких случаев надо использовать [spiped][3] или [TLS][4]. Естественно, рекомендации, приведенные здесь, не являются «единственно возможным способом» организации шифрования на PHP. Цель этого руководства — попытаться оставить поменьше места для ошибок и сложных неоднозначных решений. [Читать дальше →][5]

[1]: http://habrahabr.ru/post/181372/
[2]: http://timoh6.github.io
[3]: https://www.tarsnap.com/spiped.html
[4]: https://ru.wikipedia.org/wiki/TLS
[5]: http://habrahabr.ru/post/257439/#habracut

[>] [Из песочницы] Разгадываем картинку из твиттера компании Intel
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


Имеется страшилка, обладающая невероятным количеством подчеркиваний, лямбд и чрезвычайно редкой функцией \_\_import\_\_: ![][1] Что за зверь и что он делает? Конечно же, мы можем как нормальные люди перепечатать код в интерпретатор и посмотреть. что будет. Но раз уж время давно за полночь, разбираться интереснее руками. [Читать дальше →][2]

[1]: //habrastorage.org/files/8b9/272/b21/8b9272b21bed4e24bbf3874b3520fae9.png
[2]: http://habrahabr.ru/post/257757/#habracut

[>] EMCSSL – Система идентификации пользователей WWW на основе подсистемы NVS криптовалюты EmerCoin и децентрализованных клиентских SSL-сертификатов
habra.14
habrabot(difrex,1) — All
2015-05-12 17:00:02


Под катом подробно рассмотрена масштабируемая инфраструктура для беспарольной авторизации на неограниченное число независимых серверов сети. Инфраструктура базируется на блокчейне криптовалюты, используя последний как децентрализованное доверенное хранилище хеш-сумм клиентских SSL-сертификатов. Сами сертификаты могут быть сгенерированы клиентами локально, без участия каких-либо внешних сервисов авторизации, и быстро заменены по мере необходимости, что делает эффективными как плановую замену, так и быстрый отзыв скомпрометированных сертификатов. Также предложена система InfoCard — децентрализованных распределённых «визитных карточек», с возможностью организации информации в иерархическую структуру, что может быть полезным для быстрого обновления содержимого карточек членов компаний или других организаций. Совместное использование предложенных сервисов позволяет быстро, буквально в один клик, создавать и обновлять учётные записи, а также иметь беспарольный логин и защищённое соединение с неограниченным множеством серверов. Новизна предложения заключается в полной децентрализации системы, то есть отсутствия некой группы серверов авторизации под единым управлением, что имеет место в системах Kerberos, OpenID, TeddyID и им подобных. В результате, становится невозможным блокировка пользователя посредством административного ресурса, или же одномоментного отказа в обслуживании всей системы авторизации из-за технических сбоев или злонамеренных атак на серверы авторизации. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/257605/#habracut

[>] IO Ninja – программируемый эмулятор терминала/сниффер (часть 3). Пишем «автоответчик»
habra.14
habrabot(difrex,1) — All
2015-05-13 14:30:02


![jancy][1]Продолжаем [цикл статей][2] о терминале/сниффере [IO Ninja][3] и переходим к рассмотрению одной из самых выигрышных сторон новой версии нашего продукта – программируемости. Она открывает новые применения такого, казалось бы, заурядного инструмента, как терминал или сниффер.

# Обзор архитектуры плагинов

Как и в предыдущей, второй версии продукта, исполнимые файлы третьей версии IO Ninja содержат лишь фреймворк необходимых компонентов (включая UI виджеты, движок для логгирования и классы для работы с IO, такие как io.Socket, io.Serial, io.PCap и т.д.). Логика же работы с конкретными транспортами содержится в плагинах, написанных на языке [Jancy][4]. Эти плагины лежат в выделенной папке «scripts» в виде исходных кодов и доступны как для ознакомления, так и для редактирования пользователями. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/b61/b7e/756/b61b7e756a1f85df0edf526a0ccf3e0c.png
[2]: http://habrahabr.ru/company/tibbo/blog/255221/
[3]: http://tibbo.com/ioninja/
[4]: http://tibbo.com/jancy/
[5]: http://habrahabr.ru/post/256803/#habracut

[>] Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”
habra.15
habrabot(difrex,1) — All
2016-01-11 18:30:05


Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых [sentiment140][1] и [tweet\_viz][2]), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис [AlchemyAPI][3], но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в [статье][4] “Известий”, опубликованной 3 января.



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

[1]: http://www.sentiment140.com/
[2]: https://www.csc.ncsu.edu/faculty/healey/tweet_viz/tweet_app/
[3]: http://www.alchemyapi.com/developers/getting-started-guide/twitter-sentiment-analysis
[4]: http://izvestia.ru/news/601050
[5]: http://habrahabr.ru/post/274027/#habracut

[>] Вычисление биномиальных коэффициентов… вручную
habra.15
habrabot(difrex,1) — All
2016-01-12 01:30:02


Ранее в двух статьях была затронута тема вычисления биномиальных коэффициентов с помощью компьютера. [Расчет биномиальных коэффициентов на Си (С++) ][1] [Расчет биномиальных коэффициентов с использованием Фурье-преобразований][2] По их прочтению может сложиться мнение что это сложная и ресурсоемкая задача. Прежде чем программировать что-то, попробуем разобраться что здесь к чему. Факториальная формула: ![image][3] Раскроем ее: ![][4] Очевидно, что ![][5] и тогда ![][6] А теперь попробуем посчитать например ![][7]: [Читать дальше →][8]

[1]: http://habrahabr.ru/post/274689/
[2]: http://habrahabr.ru/post/274729/
[3]: https://habrastorage.org/getpro/habr/post_images/01d/df4/164/01ddf4164554f2f65f67842dd8ea7dbf.png
[4]: https://habrastorage.org/files/672/a9c/bf6/672a9cbf660f4d688a2e256dbaebc44d.png
[5]: https://habrastorage.org/files/8c2/4c5/dfb/8c24c5dfb1644635ba87c07cc47add69.png
[6]: https://habrastorage.org/files/baf/7dc/cb0/baf7dccb02924c11ba7b41a5ab4c35d0.png
[7]: https://habrastorage.org/files/ace/a73/910/acea739101d14d598d9e2ca61db10c53.png
[8]: http://habrahabr.ru/post/274889/#habracut

[>] Про волнения в головах
habra.15
habrabot(difrex,1) — All
2016-01-12 02:00:02


Пару месяцев назад мне захотелось поэкспериментировать с нейроинтерфейсом. Никогда этой темой не занимался, но вдруг стало любопытно. Вроде как лет 5-10 назад обещали бум нейроустройств, а всё что мы сейчас имеем на рынке — устройство чтобы махать [ушами][1], устройство чтобы светить [камешком][2], да устройство чтобы левитировать [шаром][3]. Где-то на подходе устройство чтобы будить вовремя. Вот [тут][4] есть неплохая статья про всё это дело. В то же время регулярно появляются какие-то исследования, где рассказывают, что люди могут научиться двигать роботическими руками-ногами или писать тексты ([1][5], [2][6], [3][7], вот [тут][8] есть подборка). Но это всё опытное, в единственном экземпляре, со стоимостью аппаратуры как хорошее авто. А где что-то посередине? Что-то полезное обычному пользователю? Пусть даже не везде, а в каких-то отдельных применениях. Ведь даже навскидку придумывается несколько вещей: детектор засыпания для водителя, повышение работоспособности (например через выбор музыки, или управление перерывами!). Можно выбрать что-то более специфическое. Например смотреть и анализировать своё состояние в киберспорте. Для этого же даже трекеры зрачков выпускают и используют. Почему нет таких применений? Этот вопрос мучил меня. В итоге решил почитать куда наука движется, а так же купить простенькую нейрогарнитуру и затестить. В статье — попытка разобраться в теме, немного исходников и много анализа текущих достижений потребительской электроники. [Читать дальше →][9]

[1]: http://www.necomimi.com
[2]: https://www.youtube.com/watch?v=WYXsQlLOzg8
[3]: http://www.amazon.com/Mattel-P2639-Mindflex-Game/dp/B001UEUHCG/ref=pd_sim_21_2?ie=UTF8&dpID=41a9RLcHYAL&dpSrc=sims&preST=_AC_UL160_SR138%2C160_&refRID=1G4T8T1EE1AQW5WYHH7H
[4]: http://habrahabr.ru/company/neuronspace/blog/262357/
[5]: http://vk.com/video-55155418_171160287
[6]: https://www.youtube.com/watch?v=9uw5R_qx3-0
[7]: https://www.youtube.com/watch?v=QRt8QCx3BCo
[8]: http://brain.bio.msu.ru/bci_r.htm
[9]: http://habrahabr.ru/post/274665/#habracut

[>] Слон и Моська, или подключение LCD к Attiny13A
habra.15
habrabot(difrex,1) — All
2016-01-12 09:00:02


Вновь приветствую читателей «Хабра»! **Присказка.** Честно сказать, хотел написать статью несколько другого содержания, которая затрагивала бы тему применения и использования сдвиговых регистров, когда сам, даже не думал что в моих проектах это станет необходимым. Но так однажды случилось, что я решил втянуть в область программирования микроконтроллеров своего друга, который во многих вопросах с легкостью разберется сам, а в других… [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274895/#habracut

[>] [Из песочницы] Задача о двух мудрецах. Компьютерная программа для решения
habra.14
habrabot(difrex,1) — All
2015-05-13 15:00:03


Задача о двух мудрецах уже много лет всплывает на различных форумах и постоянно возобновляет к себе интерес. Напомню условие:

> У некоторого султана было два мудреца: Али-ибн-Вали и Вали-ибн-Али. Желая убедиться в их мудрости, султан призвал мудрецов к себе и сказал: «Я задумал два числа. Оба они целые, каждое больше единицы, но меньше ста. Я перемножил эти числа и результат сообщу Али и при этом Вали я скажу сумму этих чисел. Если вы и вправду так мудры, как о вас говорят, то сможете узнать исходные числа».
>
>
>
> Султан сказал Али произведение, а Вали – сумму. Мудрецы задумались. Первым нарушил молчание Али.
>
>
>
> — Я не знаю этих чисел, — сказал он, опуская голову.
>
>
>
> — Я это знал, — подал голос Вали.
>
>
>
> — Тогда я знаю эти числа, — обрадовался Али.
>
>
>
> — Тогда и я знаю! — воскликнул Вали.
>
>
>
> И мудрецы сообщили пораженному султану задуманные им числа.
>
>
>
> Назовите эти числа.

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

[1]: http://habrahabr.ru/post/257809/#habracut

[>] Уязвимость в продуктах Trend Micro позволяет любому веб-сайту выполнить произвольную команду Windows
habra.15
habrabot(difrex,1) — All
2016-01-12 10:00:02


[Тавис Орманди][1] из Google Project Zero обнаружил удивительнейшую [уязвимость][2] в антивирусных продуктах Trend Micro под Windows, позволяющую любому веб-сайту, который посещает пользователь, выполнить произвольному команду на его машине.



Орманди, занимающийся аудитом популярных антивирусных продуктов, обратил внимание на один из компонентов Trend Micro AV — [менеджер паролей][3], написанный на JavaScript с использованием node.js. Оказалось, что он открывает несколько HTTP RPC-портов, позволяющих выполнять произвольные команды! Это означает, что любой веб-сайт способен запустить на машине пользователя скрипт, который, например, может стереть всю информацию на диске, установить другую вредоносную программу из внешней сети или или просто-напросто удалить тот же самый антивирус. [Читать дальше →][4]

[1]: https://twitter.com/taviso
[2]: https://code.google.com/p/google-security-research/issues/detail?id=693
[3]: http://www.trendmicro.com/us/home/products/software/password-manager/index.html
[4]: http://habrahabr.ru/post/274899/#habracut

[>] Опасное видео: как я нашёл уязвимость в видеохостингах и не умер через 7 дней
habra.15
habrabot(difrex,1) — All
2016-01-12 13:00:03


![][1] Всем привет! В сегодняшнем посте я хочу рассказать об одной довольно интересной уязвимости, которую нашёл и зарепортил в bug bounty нескольких крупных компаний, за что получил солидное вознаграждение. Уязвимость заключается в следующем: если сформировать специальный видеофайл и загрузить его на сервер, то:

* можно получить на нём SSRF;
* можно получить local file read;
* если пользователь скачает этот файл, то автоматически будет подвержен уязвимостям, даже если его не откроет: можно будет получить доступ к данным на компьютере пользователя и узнать его имя.

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

[1]: https://habrastorage.org/getpro/habr/post_images/756/9da/20a/7569da20abba3a0d1755c8f1e2d1677a.jpg
[2]: http://habrahabr.ru/post/274855/#habracut

[>] Выходу Dolphin Smalltalk 7 под Open Sourсe посвящается
habra.15
habrabot(difrex,1) — All
2016-01-12 13:30:02


![][1]На днях компания ObjectArts полностью открыла исходники и выпустила язык, и среду разработки Dolphin Smalltalk под открытой лицензией MIT! Я не смог пройти мимо, не попробовав проверить этот проект с помощью анализатора кода PVS-Studio. Могу поздравить разработчиков с тем, что у них получилось создать код высокого качества. Мне не удалось найти значимых ошибок. Однако как всегда есть некоторое количество багов и пахнущего кода. Надеюсь благодаря этой статье код станет чуть лучше.

## О проекте

[Dolphin Smalltalk][2] — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн. Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов. С помощью [PVS-Studio][3] 6.00 были проверены открытые исходники [Dolphin Smalltalk Virtual Machine][4]. Далее представлены результаты проверки статическим анализатором. Несмотря на то, что проект DolphinVM очень маленький, в его коде всё равно встречаются подозрительные места. [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/874/540/a7b/874540a7b0d09c427394c728e5cd429f.png
[2]: http://object-arts.com/dolphin7.html
[3]: http://www.viva64.com/ru/pvs-studio/
[4]: https://github.com/objectarts/DolphinVM
[5]: http://habrahabr.ru/post/274909/#habracut

[>] Форензика и стеганография в видеофайле: разбор заданий online-этапа NeoQUEST-2015
habra.14
habrabot(difrex,1) — All
2015-05-13 15:00:03


![][1] Прошедший online-этап ежегодного соревнования по кибербезопасности NeoQUEST-2015 был крайне богат на интересные и нетривиальные задания! В этой статье мы:

* займемся стеганографией видеофайлов и эзотерическим языком программирования Piet, разбирая задание «Истина внутри»
* влезем в шкуру компьютерного криминалиста, поработаем с TrueCrypt и ответим на вопрос «А был ли ключ?».

Отличная новость: утверждена дата «очной ставки» NeoQUEST-2015! Мероприятие состоится **2 июля** (четверг) в Санкт-Петербурге, в [КДЦ «CLUB HOUSE»][2]! Как и прежде, вход бесплатный — нужно лишь зарегистрироваться на нашем [сайте][3]. [Читать дальше →][4]

[1]: //habrastorage.org/files/dbe/a13/a63/dbea13a630fa4cb49651a4f890d5a14d.jpg
[2]: http://club-house.org/
[3]: http://neoquest.ru
[4]: http://habrahabr.ru/post/257737/#habracut

[>] [Из песочницы] История одного тестового задания
habra.14
habrabot(difrex,1) — All
2015-05-13 15:00:03


Некоторое время назад, листая просторы хабра, я наткнулся на вакансию «Python Backend Разработчик». В ней больше всего меня подкупило расположение офиса — он был рядом с домом, и я написал отклик. Ответ пришел быстро с вопросом о том, не готов ли я выполнить тестовое задание. Я ответил, что подумаю, если мне его пришлют. Письма с заданием не было недели две. И вот, перед самыми майскими праздниками пришел ответ с тестовым заданием. Задание казалось простым, но я решил отказаться от дальнейшего общения вообще, так как почему-то за две недели порыв поиска новой работы прошел, да и праздники впереди. Однако в тот же день я заболел. Вполне себе серьезным насморком со всеми вытекающими. И на следующий день я решил попробовать забороть это тестовое задание и посмотреть, что из этого выйдет. И об этом мой рассказ. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/257817/#habracut

[>] Стандарты симметричного шифрования стран СНГ на Python
habra.15
habrabot(difrex,1) — All
2016-01-12 13:30:02


Первые недели нового года самое подходящее время для того, чтобы уютно устроившись у окошка, вспомнить что же нам принес год ушедший. А принес он нам два новых стандарта шифрования. Российский стандарт ГОСТ Р 34.12-2015 (блочный шифр Кузнечик). И украинский ДСТУ 7624:2014 (блочный шифр Калина). Холодными, зимними вечерами нельзя упускать такой удачный повод покодить. Под катом краткое описание алгоритмов и их реализация на Python. А чтобы новым шифрам было веселее, разбавим их общество белорусским СТБ 34.101.31-2007. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273895/#habracut

[>] Стань автором «Хакера» и получи инвайт на форум PHDays V
habra.14
habrabot(difrex,1) — All
2015-05-13 15:30:05


[![][1]][2] Как и в прошлом году, редакция «Хакера» приглашает своих читателей превратиться в писателей и бесплатно попасть на конференцию [Positive Hack Days][3]. Пять лучших материалов, которые вы пришлете до 15 мая 2015 года, будут опубликованы на страницах издания, а их авторы получат гонорар вместе с приглашениями на форум. Помимо редакции журнала, материалы оценит программный комитет, который отвечает за Call for Papers на PHDays. Автор наиболее интересного исследования на темы компьютерной криминалистики, практических взломов, атак на веб- и корпоративные приложения, новых открытий в области конкурентной разведки и т.д. получит сразу три инвайта на форум, а остальные участники — по одному приглашению. [Читать дальше →][4]

[1]: //habrastorage.org/files/206/c73/70e/206c7370e597472e8d3f1e421ddbe113.jpg
[2]: http://habrahabr.ru/company/pt/blog/257811/
[3]: http://www.phdays.ru/
[4]: http://habrahabr.ru/post/257811/#habracut

[>] Java и время: часть вторая
habra.15
habrabot(difrex,1) — All
2016-01-12 13:30:02


Эта статья написана в продолжение к [первой части][1] и посвящена [новому Date Time API][2], который был введен в Java 8. Я изначально хотел оформить эту тему отдельно, поскольку она достаточно большая и серьезная. Я еще сам не в полной мере начал использовать этот API в проектах, поэтому разбираться будем вместе по ходу. В принципе в переходе на новый API нет никакой срочной необходимости, более того многие еще и не начинали проекты на Java 8, а это означает, что время на освоение еще есть. В статье я постараюсь не скатываться в банальный перевод штатной документации, больше я хотел бы сконцентрироваться на том, что мне показалось особенно важным. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/274811/
[2]: https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
[3]: http://habrahabr.ru/post/274905/#habracut

[>] [Из песочницы] GIF изнутри
habra.15
habrabot(difrex,1) — All
2016-01-12 14:30:04


![][1] Вам когда-нибудь было интересно, как устроены gif-ки? В данной статье попробуем разобраться с внутренним строением [GIF][2]-формата и методом сжатия [LZW][3].

# Структура GIF

Файл в формате [GIF][4] состоит из фиксированной области в начале файла, за которой располагается переменное число блоков, и заканчивается файл завершителем изображения. ![][5] **Основные характеристики формата GIF:**

* Изображение в формате [GIF ][6]хранится построчно, поддерживается только формат с индексированной палитрой цветов;
* Поддерживается 256-цветовая палитра;
* Этот формат позволяет хранить несколько изображений в одном файле;
* GIF поддерживает анимационные изображения; _Такие изображения представляют собой последовательность из нескольких статичных кадров, а также информацию о том, сколько времени каждый кадр должен быть показан на экране. Анимацию можно сделать цикличной, тогда вслед за последним кадром начнётся воспроизведение первого кадра и т. д._
* Поддерживает «прозрачность»; _Один из цветов в палитре может быть объявлен «прозрачным». В этом случае в программах, которые поддерживают прозрачность GIF (например, большинство современных браузеров) сквозь пиксели, окрашенные «прозрачным» цветом, будет виден фон. GIF анимация может использовать прозрачность для того чтобы не сохранять очередной кадр целиком, а только изменения относительно предыдущего._
* Используется универсальный алгоритм сжатия без потерь LZW.

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

[1]: https://habrastorage.org/files/c7f/abc/fab/c7fabcfab6ac48be82906ac67ca3b623.png
[2]: https://ru.wikipedia.org/wiki/GIF
[3]: https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch
[4]: https://ru.wikipedia.org/wiki/GIF
[5]: https://habrastorage.org/files/d49/97d/227/d4997d2275b141e0bebbe826eb796c26.png
[6]: https://ru.wikipedia.org/wiki/GIF
[7]: http://habrahabr.ru/post/274917/#habracut

[>] [Из песочницы] Настройка шлюза на базе Pfsense. Часть 1
habra.14
habrabot(difrex,1) — All
2015-05-13 18:30:04


Что всегда заметит каждый пользователь? Правильно, отсутствие интернета. Но как? «Вконтакте» не грузится — значит, интернета нет. Но ведь бывает, что директор или бравые богатыри из отдела ИБ хотят что-то запретить, что-то собрать, где-то проконтролировать. И тут администратор начинает танцевать вокруг шлюза в интернет. Если в компании много денег, то танцы могут быть длительными и с галантными кавалерами (мар Checkpoint, мистер PaloAlto, господин SonicWall). А вот что делать, если денег только на железо, функционала хотят много, а делать надо быстро? Pfsense, активно поддерживаемый сообществом бесплатный, гибкий и несложный в настройке межсетевой экран на базе FreeBSD. [Подробности][1]

[1]: http://habrahabr.ru/post/257787/#habracut

[>] [Из песочницы] Автоматический контроль времени жизни общих C++-QML объектов
habra.15
habrabot(difrex,1) — All
2016-01-12 16:00:03


Речь пойдет об объектах, используемых в C++ и QML одновременно, верхушкой иерархии наследования которых является QObject. Насколько мне известно, реализации механизма автоматического контроля времени жизни таких объектов на уровне библиотеки не существует. Подобный механизм избавил бы от сложностей, возникающих при ручном контроле времени жизни объектов, а так же от потенциальных багов, утечек памяти и крешей приложения. В этой статье я опишу этапы реализации данного механизма, а так же проблемы, рассмотренные в процессе исследования данной проблемы. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274915/#habracut

[>] Быстрое создание phar файлов используя Box
habra.15
habrabot(difrex,1) — All
2016-01-12 16:00:03


![][1] `Phar` — это аналог `jar` из мира Java, но только применительно к PHP. `Phar` упаковывает файлы проекта в специальный архив и позволяет легко переносить и устанавливать приложение без манипуляций с самим проектом в виде исполняемой программы.

Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.



Для создания phar файлов в PHP существует [довольно развесистый API][2], но есть способ проще и удобнее — использовать проект [Box][3]. [][4]

## Формат JSON файла

Проект Box позволяет описать процесс создания phar файла в удобном JSON формате. Самый простой файл выглядит так:

{
"files": ["src/Put.php"],
"main": "bin/main",
"output": "example.phar",
"stub": true
}

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

[1]: https://habrastorage.org/files/2df/b9b/759/2dfb9b7599e94f9ba15455c55ff50c87.jpg
[2]: http://php.net/manual/en/book.phar.php
[3]: https://github.com/box-project/box2
[4]: #format-json-faila
[5]: http://habrahabr.ru/post/274745/#habracut

[>] [Из песочницы] График счастья с python, pandas и matplotlib
habra.15
habrabot(difrex,1) — All
2016-01-12 16:30:03


![image][1] Зима — это по истине прекрасное время года. Но именно зимой я всегда задумываюсь о том, что встаю и ухожу на работу, а затем и возвращаюсь с работы, не видя солнечного света. Сегодня мне захотелось визуализировать данные о восходе и заходе солнца и соотнести их со столь привычным для многих распорядком дня (рабочие часы и время бодрствования). Для работы мы будем использовать Python (pandas + matplotlib). Посмотрим, что из этого получилось. [Читать дальше →][2]

[1]: https://habrastorage.org/files/553/f10/7c5/553f107c5c7a414187e431f96fe456bf.png
[2]: http://habrahabr.ru/post/274927/#habracut

[>] [Из песочницы] Django Single Sign-On и Microsoft Active Directory
habra.15
habrabot(difrex,1) — All
2016-01-12 17:00:04




### Начало

Однажды мне пришлось заняться разработкой Web-приложения для корпоративного использования на Python+Django. И самым первым вопросом, который пришлось решать — это прозрачная авторизация на сайте или **Single Sign-On (SSO)**. На предприятии широко используется служба каталогов на базе Microsoft Active Directory, и к настоящему моменту практически все корпоративные приложения позволяют использовать windows-авторизацию и не вводить постоянно логины/пароли, поэтому новое приложение просто должно было удовлетворять существующему положению вещей и реализовывать указанную выше возможность для «прозрачной» авторизации пользователей. Хотя о вопросе реализации SSO для Django написано немало статей, однако для того, чтобы реализовать то, что мне было необходимо, пришлось затратить относительно много времени. Поэтому, чтобы избавить некоторых из вас от возможных долгих поисков информации и ее сборки в работающую схему, предлагаю вам свой мануал, как сделать прозрачную авторизацию в приложении Django с использованием учетных записей Active Directory. **Итак мы имеем:** [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274931/#habracut

[>] [Перевод] Абстракции без накладных расходов: типажи в Rust
habra.14
habrabot(difrex,1) — All
2015-05-13 20:00:02


В [предыдущем посте][1] ([англ.][2]) мы затронули два столпа дизайна Rust (поскольку во внутренней речи я постоянно склоняю название языка, дальше я буду использовать русскоязычное название «раст», что мне кажется более органичным — прим. перев.):

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

Этот пост начинает рассказ о третьем столпе:

* **абстракции без накладных расходов.**

Одна из мантр C++, которая делает его таким подходящим для системного программирования — принцип абстракции с нулевой стоимостью:

> Реализации C++ подчиняются принципу нулевой стоимости: ты не платишь за то, что не используешь [Страуструп, 1994]. Более того: то, что ты используешь, кодируется наилучшим образом.
>
>
>
>
>
> – Бьёрн Страуструп
>
>

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

[1]: http://habrahabr.ru/post/256211/
[2]: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html
[3]: http://habrahabr.ru/post/257775/#habracut

[>] [Из песочницы] Вычисление биномиальных коэффициентов… всё-таки программно
habra.15
habrabot(difrex,1) — All
2016-01-12 17:00:04


Ранее, в трёх статьях была затронута тема вычисления биномиальных коэффициентов. [Расчет биномиальных коэффициентов на Си (С++)][1] [Расчет биномиальных коэффициентов с использованием Фурье-преобразований][2] [Вычисление биномиальных коэффициентов… вручную][3] В последней статье автор продемонстрировал чисто математическую оптимизацию вычисления биномиальных коэффициентов. Оказалось, что для их вычисления и компьютер-то не особенно нужен. Хватит бумаги, ручки, калькулятора . Однако, если одной из вышеперечисленных вещей под рукой не окажется, но в области досягаемости будет простаивающий компьютер, то можно сделать то же самое и на компьютере. [Подробности][4]

[1]: http://habrahabr.ru/post/274689/
[2]: http://habrahabr.ru/post/274729/
[3]: http://habrahabr.ru/post/274889/
[4]: http://habrahabr.ru/post/274911/#habracut

[>] Выбираем корпоративный интернет-шлюз
habra.14
habrabot(difrex,1) — All
2015-05-13 21:30:02


Корпоративный интернет-шлюз — голова ИТ-инфраструктуры, но в случае любых проблем он мгновенно превращается в другую часть тела… для компании. Выбор интернет-шлюза зависит от множества обстоятельств: выделенного бюджета, квалификации и пристрастий к аппаратным и программным решениям ответственного за сеть админа, размера сети, необходимости наличия сертификатов и т.д. Наверное, эта статья не для, познавших Дао гуру, которые с помощью подручных средств вроде третьего пенька, бубна и какой-то матери играючи могут обеспечить бесперебойный доступ в интернет и контроль трафика для сотен машин. Мы поговорим о вещах более стандартных и приземленных: как выбрать корпоративный интернет-шлюз и что в нем должно быть? [![][1]][2] [Читать дальше →][3]

[1]: //habrastorage.org/files/4a6/c56/d37/4a6c56d3713b415d9759dd60bbaf8d5a.jpg
[2]: http://habrahabr.ru/company/smart_soft/blog/257829/
[3]: http://habrahabr.ru/post/257829/#habracut

[>] [Из песочницы] Разбор решения занявшего второе (пока что) место в конкурсе Hola по программированию почтовых фильтров на JavaScript
habra.15
habrabot(difrex,1) — All
2016-01-12 17:00:04


В ноябре прошлого (уже) года, Hola объявила [конкурс по программированию почтовых фильтров на js][1], и недавно опубликовала [его результаты][2]. Я разделил второе место с Ильей Макаровым, и сейчас я расскажу…

## Как это было

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

[1]: http://habrahabr.ru/company/hola/blog/270847/
[2]: http://habrahabr.ru/company/hola/blog/274697/
[3]: http://habrahabr.ru/post/274935/#habracut

[>] [Перевод] Ученые протестировали мозговую активность, чтобы найти угрозу кибербезопасности
habra.14
habrabot(difrex,1) — All
2015-05-13 21:30:02


![image][1] Старая пословица о том, что цепь сильна настолько, насколько сильно её самое слабое звено, безусловно, относится и к риску, с которым компании сталкиваются при защите своей информационной безопасности. Сотрудники создают угрозы, которые могут быть настолько же разрушительными для компании, как и действия хакеров. Исследователи Государственного университета штата Айова работают над тем, чтобы лучше понять эти внутренние угрозы, пытаясь проникнуть в головы сотрудников, которые несут риск для своих компаний. Для этого они измерили мозговую деятельность, чтобы определить, что может спровоцировать сотрудника нарушать политику компании и продать или обменять конфиденциальную информацию. Исследование показало, что самоконтроль является существенным фактором в данном случае. [Читать дальше →][2]

[1]: http://habrastorage.org/files/bfe/761/e5c/bfe761e5c4154531bf07038b9f6c6d3c.jpg
[2]: http://habrahabr.ru/post/257831/#habracut

Pages: 1 ... 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 ... 210