RSS
Pages: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 ... 133
[>] [Из песочницы] Практическое применение преобразования Фурье для обработки сигналов
habra.16
habrabot(difrex,1) — All
2017-03-16 20:30:03


**Введение**

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

Данный опус не претендует на полноту и связность изложения.
[Читать дальше →][1]

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

[>] [Из песочницы] Параметрическое моделирование в САПР SolveSpace
habra.16
habrabot(difrex,1) — All
2017-03-16 23:00:03


Многие из нас в школе или университете посещали уроки черчения, но не многим из нас это нравилось. Часами возиться с линейкой, циркулем и плохо заточенным карандашом, пытаясь ровно и без помарок выводить размерные линии, бесконечные штриховки и странные формы, мало кому могло показаться интересным. Тем более, что к тому времени уже существовали компьютерные программы, способные автоматизировать это скучное, бессмысленное и беспощадное занятие. А настоящий прорыв в области проектирования деталей и подготовки конструкторской документации произошел в 1989 вместе с дебютом параметрического моделирования в [Системе Автоматизированного Проектирования (САПР)][1] Pro/Engineer.



Это — вводная статья к циклу статей "Параметрическое моделирование". Из этого цикла вы узнаете о внутреннем устройстве настоящего **решателя геометрических ограничений**, проблемах и их решениях на примере open-source САПР "SolveSpace". Кому не чужд мир трехмерного моделирования, добро пожаловать под кат!



![image alt text][2]

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

[1]: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
[2]: https://habrastorage.org/files/b6a/fb7/cc2/b6afb7cc209a4402a3fe2e56ee75b1f7.png
[3]: https://habrahabr.ru/post/324160/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Использование скриптов в Openvpn для интеграции его с другими сервисами системы (Firewall, DB и т.д.)
habra.16
habrabot(difrex,1) — All
2017-03-16 23:30:03


Захотелось собрать VPN-комбайн который бы пользователей брал из БД, настраивал фаервол под этого пользователя и писал логи в БД.

OpenVPN на каждое событие (подключение, отключение клиента) может вызывать внешнюю программу. Этим и воспользуемся.
[Читать дальше →][1]

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

[>] По следу Cobalt: тактика логической атаки на банкоматы в расследовании Group-IB
habra.16
habrabot(difrex,1) — All
2017-03-17 00:30:04


![image][1]

В июле 2016 года работа First Bank, одного из крупнейших банков Тайваня, была парализована. Банк столкнулся с масштабной атакой: люди в масках одновременно опустошили три десятка банкоматов на $2 млн. Полиция терялась в догадках: на корпусах банкоматов не было ни следов взлома, ни накладных устройств — скиммеров. Злоумышленники даже не использовали банковские карты.

Как все происходило, зафиксировали видеокамеры: люди в масках подходили к банкоматам, звонили по мобильному — банкомат выдавал деньги, преступники складывали их в рюкзаки и убегали. После такого масштабного налета восемь крупнейших банков страны приостановили выдачу наличных в 900 банкоматах.

То, с чем столкнулся First Bank, называется логической атакой. Ее суть в том, что киберпреступники получают доступ к локальной сети банка и из нее устанавливают полный контроль над банкоматами. Удаленно они получают команду на выдачу денег. Сообщники взломщиков — “мулы” — забирают деньги и передают их организаторам атаки. Таким образом Cobalt — самая активная и опасная преступная группа — меньше чем за год атаковала банки в двух десятках стран мира.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/39b/b8a/e8d/39bb8ae8d74949beb149fba14c84a3f0.png
[2]: https://habrahabr.ru/post/323996/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Liscript — REPL боты онлайн
habra.16
habrabot(difrex,1) — All
2017-03-17 11:30:04


![][1]

Некоторое время назад, вдохновившись прочтением SICP, я написал пару своих реализаций интерпретаторов лиспоподобного языка со строгой семантикой, добавил десктопный GUI, консольный интерфейс, написал на нем Тетрис и много чего еще, и опубликовал пару статей на Хабр об этом. Недавно я добавил возможность широкой аудитории познакомиться с данным языком — написал REPL-ботов для следующих мессенжеров: IRC, Telegram, Slack, Gitter. Боты располагаются на специально созданных для них каналах, но в большинстве случаев их можно добавлять/приглашать на другие каналы и вести с ними личную переписку. Такой формат позволяет проводить текстовые онлайн-доклады на тему основ функционального программирования, сопровождая их демонстрацией интерпретатора в реальном времени. Конечно, графические окна с анимацией конечно можно создавать только в десктопном варианте приложения. Поэтому для большего раскрытия возможностей языка и РЕПЛа я написал текстовую реализацию игры Лабиринт, в которую могут играть с ботом любое количество человек. Подробности и немного лирики под катом.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/c1e/d1e/e2b/c1ed1ee2b6fb443fb66faf0b5e45d987.png
[2]: https://habrahabr.ru/post/324166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики
habra.16
habrabot(difrex,1) — All
2017-03-17 11:30:04


![][1] C 1 по 10 марта прошёл online-этап соревнования по кибербезопасности [NeoQUEST-2017][2]. Пришло время подвести итоги, поделиться любопытной статистикой прохождения, а также вкратце рассказать про сами задания.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/48f/54a/d3c/48f54ad3c0f548e58b5047ed2aad4ec2.jpg
[2]: http://neoquest.ru
[3]: https://habrahabr.ru/post/323838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Фильтрация и создание цепочек в функциональном JavaScript
habra.16
habrabot(difrex,1) — All
2017-03-17 12:30:04


![][1]



_Предлагаем перевод [статьи][2], которая позволит кому-то освежить свои знания по теме, а также будет полезна новичкам в JavaScript, пока ещё осваивающим этот язык._

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

Хотя JavaScript поддерживает методики функционального программирования, он не оптимизирован для полноценного использования этой парадигмы, как Haskell или Scala. Не обязательно добиваться того, чтобы ваши JS-программы полностью соответствовали концепциям функционального программирования. Но их применение помогает поддерживать чистоту кода и концентрироваться на создании архитектуры, которая легко тестируется и может использоваться в нескольких проектах.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/0ba/6fd/4e0/0ba6fd4e0c4c4f6498160e49b7737b1a.png
[2]: https://www.sitepoint.com/filtering-and-chaining-in-functional-javascript/
[3]: https://habrahabr.ru/post/324172/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Поиск пути в играх Tower Defense
habra.16
habrabot(difrex,1) — All
2017-03-17 14:00:04


_[Прим. пер.: в [оригинале статьи][1] есть интерактивные демо, которые я продублировал с помощью видео. Для большей наглядности рекомендую изучить примеры в оригинале.]_

В играх жанра Tower Defense (TD) множество врагов стремится добраться в одну точку. Во многих играх TD существует заранее заданный путь или несколько путей. В некоторых, в том числе в классической [Desktop Tower Defense][2] можно размещать башни в произвольных местах, и они становятся препятствиями, влияющими на пути врагов. **Запустите демо** и **нажимайте на карту**, чтобы возводить или убирать стены:


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

[1]: http://www.redblobgames.com/pathfinding/tower-defense/
[2]: http://armorgames.com/play/1128/desktop-tower-defense-15
[3]: https://habrahabr.ru/post/324090/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Простой, надёжный и удобный мониторинг серверов на Linux
habra.16
habrabot(difrex,1) — All
2017-03-17 15:00:05


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

[![][1]][2]

Программа, о которой пойдёт речь, называется [Nigel’s Monitor][3], или просто nmon. Она, используя простой интерфейс ncurses, умеет выводить, в реальном времени, сведения о различных показателях, характеризующих состояние сервера. Среди них — данные по процессору и памяти, информация о сетевых ресурсах, о дисковых накопителях, о файловой системе и NFS, о процессах. Набор отображаемых показателей можно настраивать. Nmon имеет текстовый интерфейс, поэтому, для работы с ним достаточно подключиться к серверу по SSH.

Предлагаю установить nmon и поговорить о том, как им пользоваться.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/149/b7f/f31/149b7ff315084773b9780782338a33a8.jpg
[2]: https://habrahabr.ru/company/ruvds/blog/324194/
[3]: http://nmon.sourceforge.net/pmwiki.php
[4]: https://habrahabr.ru/post/324194/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Автоматизация бизнес-процессов. Ad-hoc изменения на примере из жизни. Часть 3
habra.16
habrabot(difrex,1) — All
2017-03-17 15:00:05


![image][1]Тема внедрения изменений в бизнес-процессы дошла и до Российского отделения международной Ассоциации BPM-профессионалов ([ABPMP Russian Chapter][2]) в виде статьи президента этой ассоциации г-на Белайчука под названием ["С чего начинается управление изменениями"][3]. Точнее г-н Белайчук поделился с читателями своего блога переводом статьи с англоязычного ресурса.



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



Далее в статье описываются трудности, которые непременно возникнут в организации при каждом витке итерации вносимых изменений в "устоявшуюся" работу процессов организации, и как с ними бороться на уровне психики?! "людей, сталкивающихся с изменениями".



Не уверен, какими именно способами члены международной Ассоциации BPM-психологов, извините, BPM-профессионалов решают поставленные задачи, так как кроме психологических методов решения вопросов по внедрению изменений других предложено, увы, так и не было.



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



Суть подхода заключается в следующем:


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

[1]: https://habrastorage.org/getpro/habr/post_images/b23/1ed/2cc/b231ed2cccd9994e3caa4b8ae5ae90a9.jpg
[2]: http://abpmp.org.ru/
[3]: http://mainthing.ru/ru/item/786/
[4]: https://habrahabr.ru/post/319344/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Загрузка доверенной среды или лёгкий путь к паранойе в IT
habra.16
habrabot(difrex,1) — All
2017-03-17 15:00:05


![][1]



Несмотря на несколько академичное название, тема носит вполне себе практичный характер.
Когда мы видим заголовки новостей об очередном успешном взломе чатов Telegram или WhatsApp (ЦРУ, Иранскими спецслужбами, Zimperium – нужное подчеркнуть), людям достаточно часто приходится объяснять, что компрометация операционной системы или аккаунта пользователя не является синонимом слабости защиты самого приложения, и это не является поводом отказаться от пользования своим любимым мессенджером, т.к. на его месте может оказаться без принципиальной разницы любой другой.



А если вы, например, загрузившись с флэшки «перезабиваете» пароли администратора любой своей Windows-машины, это отнюдь не говорит о чудовищных дырах в «мастдае», а о вас – как о супер-хакере, взломавшем детище Microsoft.



Хотелось бы немного прояснить вопросы среды, компонентов доверия и угроз, чтобы создать целостную картинку и разобраться в том, чего мы ждём в плане безопасности от операционной системы, BIOS и любимого чат-приложения, дабы не перекладывать ответственность с больной головы на здоровую.



Итак, начнём с практики, есть следующий кейс:

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

[1]: https://habrastorage.org/files/d27/80e/b98/d2780eb98f71469faec8281b5c573ff4.jpg
[2]: https://habrahabr.ru/post/324178/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Russian Code Cup снова бросает вызов программистам
habra.16
habrabot(difrex,1) — All
2017-03-17 15:30:05


![][1]

Крупнейший российский чемпионат по спортивному программированию [Russian Code Cup 2017][2] стартует 19 марта. Талантливые программисты со всего мира вновь будут соревноваться в правильности и скорости решения задач и поборются за призовой фонд в размере 750 тысяч рублей.

Основная программа Russian Code Cup (RCC) традиционно состоит из трех этапов: три квалификационных раунда (2 апреля, 16 апреля и 29 апреля), отборочный раунд (14 мая) и финал (10 сентября). На каждом этапе участникам предстоит решить от четырех до восьми разноплановых задач. Те, кому не повезло в первом квалификационном раунде, могут попытать удачи в следующих. В отборочный тур пройдут по 200 лучших участников с каждой квалификации, а в финале сойдутся 50 лучших программистов.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/61d/8e0/213/61d8e021370e4cb5a878be677ddb4d81.jpg
[2]: http://www.russiancodecup.ru/
[3]: https://habrahabr.ru/post/324006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть вторая
habra.16
habrabot(difrex,1) — All
2017-03-17 16:00:05


Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков?

![image][1]

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

Сразу оговорюсь, что в статье рассмотрена только техническая сторона вопроса.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/e14/d61/766/e14d6176668748619800ed71326c9f91.png
[2]: https://habrahabr.ru/post/324174/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Аналог std::vector из C++11 на чистом C89 и как я его писал
habra.16
habrabot(difrex,1) — All
2017-03-17 16:30:04


[![image][1]][2]
_Жилой массив людей. Нет, серьёзно._



Холивары между ценителями Си и приверженцами его "сына" в лице C++ начались ещё до моего рождения и прекратятся разве что после смерти обоих этих языков и меня заодно. Адепты великого творения Кернигана-Ритчи до последней секунды рабочего дня готовы доказывать приспешникам Страуструпа аксиомы про вечность Си и его невероятную гибкость. Те в ответ им по-свойски советуют лучше порадоваться рабочему дню, ведь он вот-вот окажется последним – двадцать первому веку кроссплатформенный ассемблер не нужен. Распаляясь, сторонники Си приводят давно прошедшие через голову навылет миллионы тезисов "почему Си лучше C++", при этом каждый раз подчёркивая, что второй все достоинства первого растерял ещё будучи в отцовской утробе, попутно утратив лик человеческий. Обвиняемая сторона в обиде не остаётся и… а хотя постойте, о чём это я.



Я люблю Си, уважаю C++ и не переношу холивары (честно). При этом я осознаю, что в Си действительно не хватает многого, и яркий тому пример – отсутствие удобной работы с данными. В C++ эту проблему во многом решает STL и свойства самого языка. На мой студенческий взгляд, здесь особо отличается всем знакомый `std::vector`. Если стало интересно, как я реализовал его аналог средствами C89 – прошу под кат.

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

[1]: https://habrastorage.org/files/07f/3b0/d1b/07f3b0d1b2cc4f3cad3fb0272953ac4b.png
[2]: https://habrahabr.ru/post/324210/
[3]: https://habrahabr.ru/post/324210/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Glitch — новый подход к разработке приложений
habra.16
habrabot(difrex,1) — All
2017-03-17 17:30:05


На днях мы наткнулись на [интересную статью][1] на блог-платформе Medium, речь в которой идет о свежем проекте компании [Fog Creek][2] — Glitch (с английского «глюк», «сбой программы»). Бета-версия проекта стартовала в декабре 2016 года, правда, под другим названием, но об этом позже.

[Glitch][3] – это, как заявляют создатели, «дружелюбное сообщество, где вы можете создать приложение своей мечты».

![][4]

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

[1]: https://medium.com/glitch/welcome-to-glitch-fe161d0fc39b#.hr4blxyqc
[2]: https://www.fogcreek.com/
[3]: https://glitch.com
[4]: https://habrastorage.org/files/a82/57f/6e9/a8257f6e908d4b32aadcae16407f03a4.png
[5]: https://www.youtube.com/watch?v=iPc6dXBFhA4
[6]: https://habrahabr.ru/post/324180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N2
habra.16
habrabot(difrex,1) — All
2017-03-17 17:30:05


![Правим потенциальные уязвимости][1]
Мы решили в меру своих сил регулярно искать и устранять потенциальные уязвимости и баги в различных проектах. Можно назвать это помощью open-source проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/a5f/0f0/695/a5f0f069598b9c8e9e1080a28abf47dd.png
[2]: https://habrahabr.ru/post/324222/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Пишем Java Stream API на коленке за пару минут
habra.16
habrabot(difrex,1) — All
2017-03-17 18:30:04


Stream API — замечательная вещь быстро завоевавшая популярность у джава программистов. Лаконичные однострочники обрабатывающие коллекции данных посредством цепочек простых операций map, filter, forEach, collect оказались очень удобны. Операции над парами ключ-значение, конечно, тоже не помешали бы, но увы.

В целом примерно понятно как это всё устроено, но все же зачастую ответ на вопрос «А как бы это написал я?» здорово помогает понять внутренние механизмы той или иной технологии. Так получилось, что внезапно для себя я ответил на этот вопрос применительно к Stream API, историей изобретения этого велосипеда и спешу с вами поделиться.
[Читать дальше →][1]

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

[>] Security Week 11: 38 зараженных смартфонов, ФБР плачет от шифрования, Google снова подлатал Chrome
habra.16
habrabot(difrex,1) — All
2017-03-17 20:30:04


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

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

[>] [Из песочницы] Собираем свой OpenShift Origin Cluster
habra.16
habrabot(difrex,1) — All
2017-03-17 20:30:04


«Всю разработку — в контейнеры» — с этой фразы началось мое увлекательное путешествие в мир Docker. Попытки угодить требованиям разработчиков привели к выбору OpenShift Origin. Однако, завести полноценный кластер, как оказалось, задача нетривиальная. Во время постройки контейнерной инфраструктуры я пытался найти что-нибудь по теме, в том числе на Хабре, и не находил, как это ни странно. Поэтому ниже я попробую описать весь базовый процесс установки и постараюсь уберечь вас от граблей, по которым фактически гулял.

Приступим:
[Читать дальше →][1]

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

[>] [Перевод] Что такое Resizable Concurrent Map
habra.16
habrabot(difrex,1) — All
2017-03-17 22:00:04


В одном из прежних постов я рассказывал, как реализовать [«простейшую в мире lock-free хеш-таблицу»][1] на C++. Она была настолько проста, что было невозможно удалять из нее записи или менять ее размерность. С тех пор прошло несколько лет, и не так давно я написал несколько многопоточных ассоциативных массивов без таких ограничений. Их можно найти в моем проекте [Junction][2] на GitHub.

Junction содержит несколько многопоточных реализаций интерфейса map – даже «самая простая в мире» среди них, под названием `ConcurrentMap_Crude`. Для краткости будем называть ее **Crude** map. В этом посте я объясню разницу между Crude map и **Linear** map из библиотеки Junction. Linear — самый простой map в Junction, поддерживающий и изменение размера, и удаление.

Можете ознакомиться с объяснением того, как работает Crude map, [в первоначальном посте][3]. Если коротко, то она основана на _открытой адресации_ и _линейном пробировании_. Это значит, что она по сути является большим массивом ключей и значений, использующим линейный поиск. Во время добавления или поиска заданного ключа мы вычисляем хеш от ключа, чтобы определить, с какого места начать поиск. Добавление и поиск данных возможны в многопоточном режиме.

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

[1]: https://habrahabr.ru/company/wunderfund/blog/322496/
[2]: https://github.com/preshing/junction
[3]: http://preshing.com/20160201/new-concurrent-hash-maps-for-cpp/
[4]: https://habrastorage.org/files/e64/1eb/a82/e641eba82cc14f4c80fac5cacc26ea78.png
[5]: https://habrahabr.ru/post/324060/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Имена или семантика классов в программировании
habra.16
habrabot(difrex,1) — All
2017-03-17 23:00:04


**1\.** При программировании на придумывание имен может уходить ощутимо много времени. Казалось бы, такая маловажная вещь, как имя. И вот только сегодня я осознал, почему я трачу на это время, и почему, в итоге, это не напрасная трата времени.

Придумывание имени для модели, класса (предметной области) — важно и при проектировании, и при кодировании. Ведь имя несет с собой огромное облако ассоциаций из реальной жизни, из других областей.

Выбор имени — это один из этапов проектирования, когда какие-то сложные вещи — операции, объекты, отношения, скрываются уровнем абстракции. То есть скрываются за назначенным именем.

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

Как вы яхту назовете, так она и поплывет.
[Читать дальше →][1]

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

[>] Iptables: немного о действии REDIRECT, его ограничениях и области применения
habra.16
habrabot(difrex,1) — All
2017-03-18 23:00:04



Данная заметка повествует о действии REDIRECT в iptables, его ограничениях и области применения

# Iptables и REDIRECT


Действие REDIRECT предназначено для перенаправления пакетов с одного набора портов на другой внутри одной системы, **не выходя за пределы хоста**.
[Читать дальше →][1]

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

[>] findNclean: найти и вычистить
habra.16
habrabot(difrex,1) — All
2017-03-19 01:30:03


[![][1]][2]

Нет-нет, этот пост совсем не про боль и страдание! Даже немножко наоборот. Просто картинка напоминает о значимости первой строчки будущего кода ).

Вначале, просто хотел описать свежую [утилиту][3], с пылу с жару из под клавиатуры. Сама по себе она вполне ничего (хоть и до блеска бляхи новоиспечённого дембеля её ещё полировать и полировать), но описывать только её оказалось как-то скучновато. Потом решил, что на её примере можно поделиться башизмами, которыми сам раньше не пользовался. Далее подумал, что можно убить двух зайцев и описывать её совместно с жизненными примерами. Но в конце понял, что негоже мучить и без того изрядно потрёпанных зверушек, и решил просто их немножко причесать. Третий заяц (который и не заяц вовсе, а удав) мудро предпочёл воздержаться от участия в этом бардаке.

Так что если вдруг, тебе регулярно приходится искать файлы и может даже затем перемещать их куда-то; или тебе всё равно какой слой пыли лежит на файловой системе твоего сервера с аптаймом в несколько сотен лет и тебе просто интересен bash; или если ты просто мимо проходил\{,а,о\}, то не проходи мимо! [Читать дальше →][4]

[1]: https://habrastorage.org/files/f83/b42/91d/f83b4291d39b406ca2a482f5732765a1.jpg
[2]: https://habrahabr.ru/post/323828/#
[3]: https://github.com/vmspike/findNclean
[4]: https://habrahabr.ru/post/323828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Изменение размера изображения с учётом содержимого
habra.16
habrabot(difrex,1) — All
2017-03-19 02:00:04


Изменение размера изображения с учётом содержимого (Content Aware Image Resize), жидкое растяжение (liquid resizing), ретаргетинг (retargeting) или вырезание шва (seam carving) относятся к методу изменения размера изображения, где можно вставлять или удалять _швы_, или наименее важные пути, для уменьшения или наращивания изображения. Об этой идее я узнал из [ролика на YouTube][1], от Shai Avidan и Ariel Shamir.



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



Для подопытной картинки, я поискал по запросу[1][2] `"sample image"`, и нашел её[2][3]:


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

[1]: https://www.youtube.com/watch?v=qadw0BRKeMk
[2]: #fn:duckduck
[3]: #myfootnote2
[4]: https://habrastorage.org/files/63d/4b1/dc3/63d4b1dc37d4495c8aa36c931a30b02b.jpeg
[5]: https://habrahabr.ru/post/324284/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сделайте свой анонимайзер за 10 минут
habra.16
habrabot(difrex,1) — All
2017-03-19 09:00:03


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

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

[>] Как искать паттерны в биржевых данных и использовать их в торговле?
habra.16
habrabot(difrex,1) — All
2017-03-19 18:00:05


Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли.
Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения.
В статье есть несколько приятных бонусов в виде кода на Python — Вы сможете сами проанализировать любые (почти) биржевые данные (или значения индикаторов), запустить собственного торгового робота и проверить любую торговую стратегию.
Все условия и определения паттернов в статье приведены для примера, вы можете использовать любые критерии.
[Читать дальше →][1]

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

[>] Yapf — причесываем код Python автокорректором
habra.16
habrabot(difrex,1) — All
2017-03-20 09:30:04


В эпоху все большей популярности различных js и css linter'ов, не удивительно появление удобного линтера с автокоррекцией для Python.

Приветствуйте, Yapf — готовое решение, для превращения каши из строк во вполне читаемый код. И поверьте, он вам пригодится.

[github.com/google/yapf][1]

![image][2]

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

[1]: https://github.com/google/yapf/
[2]: https://habrastorage.org/files/0bb/9aa/a5b/0bb9aaa5b0be45f284e180d20c4ab021.jpg
[3]: https://habrahabr.ru/post/324336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор uniset2-testsuite — небольшого велосипеда для функционального тестирования
habra.16
habrabot(difrex,1) — All
2017-03-20 12:30:05


![][1]

Как естественное продолжение работы над [libuniset2][2], возник проект [uniset2-testsuite][3]. Это свой небольшой велосипед для функционального тестирования. В итоге он развился до более-менее универсального решения с «плагинами». Написан на python. Если интересно почитать, то прошу… заходите.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/c26/80f/447/c2680f4472e943a3ad61d5a82678e4d3.png
[2]: https://habrahabr.ru/post/278535/
[3]: https://github.com/Etersoft/uniset2-testsuite
[4]: https://habrahabr.ru/post/323290/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] ASP.NET Core: Разработка приложений ASP.NET Core с помощью dotnet watch
habra.16
habrabot(difrex,1) — All
2017-03-20 12:30:05


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

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

[1]: https://habrastorage.org/files/3b4/c17/fee/3b4c17fee9f04e97adbd7198ea3b1fd7.jpg
[2]: https://habrahabr.ru/post/324312/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Удаление метаданных из PDF
habra.16
habrabot(difrex,1) — All
2017-03-20 14:00:04


![image][1]

Вот, казалось бы, тривиальная задача — удалить metadata из документа. Уже тысячу раз специалисты по паранойе информационной безопасности давали подобного рода рекомендации: «обязательно удаляйте избыточную метаинформацию из документов перед публикацией». И объясняли зачем это может понадобиться ([пример][2]). В сети масса инструкций о том как это сделать для различных форматов изображений и документов, но в то же время про такой распространённый формат как PDF внятной информации довольно мало.

Я провел небольшой эксперимент и по результатам собрал небольшой toolchain и freeware утилит. Вот этим всем и хочу поделиться.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/2e7/d0d/8ba/2e7d0d8bad264a0a9fcaba7faa095aa9.png
[2]: https://toster.ru/q/193551
[3]: https://habrahabr.ru/post/324348/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как перестать ходить на конференции участником и начать выступать? Советы от Андрея Акиньшина
habra.16
habrabot(difrex,1) — All
2017-03-20 14:30:05


В преддверии конференции [DUMP][1] мы решили поговорить с докладчиками о разработке, их работе и жизни. Первое интервью мы взяли у одного из лучших российских спикеров Андрея Акиньшина.

[Андрей Акиньшин][2] ([@DreamWalker][3]) — разработчик [Rider][4] в JetBrains, мейнтейнер проекта [BenchmarkDotNet][5] (библиотека для написания .NET-бенчмарков, поддержанная .NET Foundation), .NET MVP, кандидат физико-математических наук, серебряный призёр ACM ICPC.

Андрей — спикер многих мероприятий для разработчиков и председатель программного комитета конференции DotNext. В интервью Андрей рассказал, как собрать материал, как готовиться к докладу, как сделать интересные слайды и зачем вообще ходить на конференции.

![image][6]
_Андрей Акиньшин — спикер многих конференций. Ват, например, одно из последних выступлений — [«Поговорим про арифметику»][7]._
[Читать дальше →][8]

[1]: http://dump-conf.ru/?utm_source=habr&utm_medium=post&utm_campaign=akinshin
[2]: http://aakinshin.net/ru/about/
[3]: https://habrahabr.ru/users/dreamwalker/
[4]: https://www.jetbrains.com/rider/
[5]: https://github.com/dotnet/BenchmarkDotNet
[6]: https://habrastorage.org/files/1b2/653/599/1b26535999ae43d88355c6f2b1d9115d.jpg
[7]: https://www.youtube.com/watch?v=t8GuveyIV38
[8]: https://habrahabr.ru/post/324352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Intel и Google — дружим «облаками»
habra.16
habrabot(difrex,1) — All
2017-03-20 14:30:05


На проходившей в Сан-Франциско конференции [Google Cloud Next ‘17][1] объявлено о программе стратегического партнерства «Better Together» («Вместе лучше») между компаниями Google и Intel в области облачных технологий и «Интернета вещей». Цель программы — предоставить разработчикам программные и аппаратные компоненты, инструменты и учебные материалы для ускорения процесса создания приложений. При этом Google открывает доступ к своему «облаку» и его функционалу, а Intel обеспечивает программными средствами разработки, такими как [Intel IoT Developer Kit][2] и предоставляет шлюзы «интернета вещей» в лице [Intel NUC][3].

![][4]
Планируется запустить совместные он-лайн ресурсы для разработчиков — [главная страница проекта][5] на сайте Intel Developer Zone уже работает — а также провести тренинги и другие мероприятия. В свою очередь, специалисты компаний будут проводить интеграцию между участвующими в программе Intel IoT Developer Kit, Intel NUC и [Google Cloud Platform][6].
[Читать дальше →][7]

[1]: https://cloudnext.withgoogle.com/
[2]: https://software.intel.com/ru-ru/iot/hardware/dev-kit
[3]: http://www.intel.ru/content/www/ru/ru/nuc/products-overview.html
[4]: https://habrastorage.org/files/96a/e88/394/96ae883949bb479a836f637257001f43.jpg
[5]: https://software.intel.com/en-us/iot/cloud-analytics/google
[6]: https://cloud.google.com/
[7]: https://habrahabr.ru/post/323978/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Использование map и reduce в функциональном JavaScript
habra.16
habrabot(difrex,1) — All
2017-03-20 14:30:05


_Предлагаем вашему вниманию переводной материал об использовании map и reduce в функциональном JavaScript. Эта статья будет интересна в первую очередь начинающим разработчикам._

За всеми этими разговорами о новых стандартах легко забыть о том, что именно ECMAScript 5 подарил нам ряд инструментов, благодаря которым мы сегодня можем использовать функциональное программирование в JavaScript. Например, нативные методы [map()][1] и [reduce()][2] на базе JS-объекта `Array`. Если вы до сих пор не пользуетесь `map()` и `reduce()`, то сейчас самое время начать. Наиболее современные JS-платформы нативно поддерживают ECMAScript 5. Использование этих методов позволит сделать ваш код гораздо чище, читабельнее и удобнее в обслуживании. `map()` и `reduce()` помогут вам встать на путь более элегантной функциональной разработки.
[Читать дальше →][3]

[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
[2]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
[3]: https://habrahabr.ru/post/324342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [NeoQuest2017] 6 планета или «Слишком много всего…»
habra.16
habrabot(difrex,1) — All
2017-03-20 15:00:04


Есть мнение, что после драки кулаками не машут.
Но первый в моей жизни ctf [NeoQuest2017][1] показал, что бумажная ИБ от практической отличается достаточно сильно и с ходу флаги взять не получится. Хотя, как оказалось, подобрался я к флагу в плотную.
Итак:
> **«СЛИШКОМ МНОГО ВСЕГО…»**
> Эта планета напоминает тропики… Невероятное количество разнообразной флоры и фауны! Наши рюкзаки все заполнялись и заполнялись образцами, а журналы наблюдений – описаниями, а ведь мы только начали исследование планеты! Оглядевшись вокруг, мы поняли, что гораздо эффективнее будет заносить все сведения удаленно сразу в бортовой [журнал][2]. Вот только передача данных очень медленная, поэтому нужно грамотно расставить приоритеты.
[Читать дальше →][3]

[1]: http://neoquest.ru/about.php
[2]: https://213.170.100.212/
[3]: https://habrahabr.ru/post/324360/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Делаем свой Skype с переводом речи в реальном времени, только лучше
habra.16
habrabot(difrex,1) — All
2017-03-20 15:00:04


Не так давно Skype анонсировал реал-тайм перевод во время видеообщения с собеседником. Эта тема уже давно не дает покоя человечеству: многие помнят фильм «Автостопом по галактике» и Babel fish. Мы решили разобраться, как сделать это существо на Voximplant. Описание и демка – под катом. [Читать дальше →][1]

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

[>] Как и почему статические анализаторы борятся с ложными срабатываниями
habra.16
habrabot(difrex,1) — All
2017-03-20 15:30:06


![почему статические анализаторы борятся с ложными срабатываниями][1]
В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализатором как особый случай, на который сознательно не выдаётся предупреждение. Если честно, я не ожидал такого всплеска комментариев на тему того, что анализатор может очень редко, но не выдать предупреждение на ошибку из-за реализованных в нём механизмов отсечения ложных срабатываний. Борьба с ложными срабатываниями настолько большая составляющая любого статического анализатора, что как-то даже не понятно, что тут собственно обсуждать. Это надо делать и всё. Такие механизмы существуют не только в нашем анализаторе, но и в других анализаторах/компиляторах. Тем не менее, раз этот момент вызвал столь бурное обсуждение, я думаю, стоит уделить ему внимание, поэтому и написал эту поясняющую статью.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/868/88f/ec7/86888fec755babf7003ce362008fddcd.png
[2]: https://habrahabr.ru/post/324372/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Исключения в Windows x64. Как это работает. Часть 3
habra.16
habrabot(difrex,1) — All
2017-03-20 16:00:03


Опираясь на материал, описанный в [первой][1] и [второй][2] частях данной статьи, мы продолжим обсуждение темы обработки исключений в Windows x64.

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

[1]: https://habrahabr.ru/company/aladdinrd/blog/321868/
[2]: https://habrahabr.ru/company/aladdinrd/blog/322956/
[3]: https://habrahabr.ru/post/324376/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как и почему статические анализаторы борются с ложными срабатываниями
habra.16
habrabot(difrex,1) — All
2017-03-20 16:00:03


![почему статические анализаторы борятся с ложными срабатываниями][1]
В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализатором как особый случай, на который сознательно не выдаётся предупреждение. Если честно, я не ожидал такого всплеска комментариев на тему того, что анализатор может очень редко, но не выдать предупреждение на ошибку из-за реализованных в нём механизмов отсечения ложных срабатываний. Борьба с ложными срабатываниями настолько большая составляющая любого статического анализатора, что как-то даже не понятно, что тут собственно обсуждать. Это надо делать и всё. Такие механизмы существуют не только в нашем анализаторе, но и в других анализаторах/компиляторах. Тем не менее, раз этот момент вызвал столь бурное обсуждение, я думаю, стоит уделить ему внимание, поэтому и написал эту поясняющую статью.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/868/88f/ec7/86888fec755babf7003ce362008fddcd.png
[2]: https://habrahabr.ru/post/324372/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Метод наборов
habra.16
habrabot(difrex,1) — All
2017-03-20 16:30:04


Читая книгу [«Конкретная математика»][1], одновременно набираясь знаний и осознавая свою некомпетентность в вопросе, ещё в самой первой главе я наткнулся на **метод наборов**, который авторы используют для решения [Задачи Иосифа Флавия][2]. Метод они не объясняют, сочтя его слишком элементарным, так что пришлось искать информацию о нём самому. В рускоязычном сегменте интернетов достаточно подробного описания не нашел, поэтому воспользовался [ответом с math.stackexchange.com][3], который позже перевёл, и теперь представляю его вам, дабы те, кто тоже не понял метод инстинктивно, смогли проникнуться.
Далее — перевод от первого лица.
[Читать дальше →][4]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0
[2]: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%98%D0%BE%D1%81%D0%B8%D1%84%D0%B0_%D0%A4%D0%BB%D0%B0%D0%B2%D0%B8%D1%8F
[3]: http://math.stackexchange.com/questions/1017498/mathematical-explanation-for-the-repertoire-method
[4]: https://habrahabr.ru/post/324370/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Прекрасные конечные автоматы на Rust
habra.16
habrabot(difrex,1) — All
2017-03-20 18:00:05


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



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



Один интересный шаблон, часто применяемый к таким проблемам — "Конечный автомат". Предлагаю потратить немного времени, чтобы понять, что именно имеется ввиду под этим словосочетанием, и почему же это так интересно.

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

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

[>] Ненормальное программирование: макрос-интерпретатор в Notepad++
habra.16
habrabot(difrex,1) — All
2017-03-20 19:30:03


![swap][1]



_Обмен значений. Исходный текст и текст после 1-го, 2-го и 3-го выполнения макроса. Далее будут примеры посложнее._



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



На всякий случай напомню: макрос в Notepad++ и в других текстовых редакторах – записанная последовательность действий пользователя над текстом. Макрос можно запускать многократно для быстрого выполнения рутинных операций. Макрос "запоминает" нажатия клавиш и может воспроизводить, например, такие действия:


* Ввод и удаление символов
* Перемещение курсора
* Копирование и вставка
* Поиск в тексте

Сначала это казалось невозможным, ведь макрос слишком "глуп" и прямолинеен:


* Нельзя менять последовательность действий во время выполнения макроса.
* Искомая строка фиксирована — никакой вставки из буфера обмена.
* Нельзя выполнить действие переменное количество раз, а также пропустить действие в зависимости от какого-либо условия.[Читать дальше →][2]

[1]: https://habrastorage.org/files/683/224/06a/68322406acab4e3cab1f8577203f0d2e.png
[2]: https://habrahabr.ru/post/324314/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Биометрия: искусство узнавания. Перспективы биометрических систем на примере платформы Id-Me от компании RecFaces
habra.16
habrabot(difrex,1) — All
2017-03-20 19:30:03


![][1]

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

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

[1]: https://habrastorage.org/files/ace/b34/ee0/aceb34ee054b4f4ab1b1921fba82224a.jpg
[2]: https://habrahabr.ru/post/324398/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Открытый курс машинного обучения. Тема 4. Линейные модели классификации и регрессии
habra.16
habrabot(difrex,1) — All
2017-03-20 21:00:05




Всем привет!



Сегодня мы детально обсудим очень важный класс моделей машинного обучения – линейных.
Ключевое отличие нашей подачи материала от аналогичного в курсах эконометрики и статистики – это акцент на практическом применении линейных моделей в реальных задачах (хотя и математики тоже будет немало).



Пример двух таких задач – это соревнования Kaggle Inclass по [прогнозированию популярности][1] статьи на Хабре и по [идентификации взломщика][2] в Интернете по его последовательности переходов по сайтам. Домашним заданием №4 будет применение линейных моделей в этих задачах.



А пока еще можно сделать простое 3 задание – до 23:59 20 марта.
Все материалы доступны на [GitHub][3].


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

[1]: https://inclass.kaggle.com/c/howpop-habrahabr-favs-lognorm
[2]: https://inclass.kaggle.com/c/catch-me-if-you-can-intruder-detection-through-webpage-session-tracking
[3]: https://github.com/Yorko/mlcourse_open
[4]: https://habrahabr.ru/post/323890/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Браузерная WebRTC трансляция с RTSP IP-камеры с низкой задержкой
habra.16
habrabot(difrex,1) — All
2017-03-20 22:30:05


![][1]


По некоторым данным, на сегодняшний день, в мире установлены **сотни миллионов** IP-камер для видеонаблюдения. Однако далеко не для всех из них критична задержка в воспроизведении видео. Видеонаблюдение, как правило, происходит «статично» — поток записывается в хранилище и может быть проанализирован на движение. Для видеонаблюдения разработано множество программных и аппаратных решений, которые хорошо делают свою работу.

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

[1]: https://habrastorage.org/files/f7f/aff/610/f7faff6101c14442b381c8eb029098a0.jpg
[2]: https://habrahabr.ru/post/324294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Исторический экскурс: Первый в мире поисковый движок
habra.16
habrabot(difrex,1) — All
2017-03-21 00:00:08


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

Более того, они заранее не знали, существует ли искомый инструмент. Поэтому приходилось вручную просматривать FTP-хранилища, структура которых значительно отличалась. Именно эта проблема и привела к появлению одного из ключевых аспектов современного мира — интернет-поиска.

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

[1]: https://daily.jstor.org/alan-emtage-first-internet-search-engine/
[2]: https://habrastorage.org/files/9f3/95a/a36/9f395aa361e543728f5bdd21fea28fc4.jpg
[3]: https://habrahabr.ru/company/it-grad/blog/323946/
[4]: https://habrahabr.ru/post/323946/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как я сделал тестер-оптимизатор для нахождения прибыльных стратегий на Бирже — 2
habra.16
habrabot(difrex,1) — All
2017-03-21 00:30:05


![Multidimensional Space Trading Strategies][1]
_Рис. 1. Оптимизация многомерного пространства алгоритмов торговых стратегий._

**Оптимизация торговых стратегий**

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

[1]: https://softalgotrade.com//images/habrahabr/MultidimensionalSpaceStrategies2.png
[2]: https://habrahabr.ru/post/324430/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Первый в мире поисковый движок: Исторический экскурс
habra.16
habrabot(difrex,1) — All
2017-03-21 00:30:05


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

Более того, они заранее не знали, существует ли искомый инструмент. Поэтому приходилось вручную просматривать FTP-хранилища, структура которых значительно отличалась. Именно эта проблема и привела к появлению одного из ключевых аспектов современного мира — интернет-поиска.

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

[1]: https://daily.jstor.org/alan-emtage-first-internet-search-engine/
[2]: https://habrastorage.org/files/9f3/95a/a36/9f395aa361e543728f5bdd21fea28fc4.jpg
[3]: https://habrahabr.ru/company/it-grad/blog/323946/
[4]: https://habrahabr.ru/post/323946/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор uniset2-testsuite — небольшого велосипеда для функционального тестирования. Часть 2
habra.16
habrabot(difrex,1) — All
2017-03-21 07:30:04


![][1]

В [первой части][2] был обзор возможностей. А в этой части рассмотрим, какие уже реализованы интерфейсы тестирования и как добавить свой…
[Читать дальше →][3]

[1]: https://habrastorage.org/files/c26/80f/447/c2680f4472e943a3ad61d5a82678e4d3.png
[2]: https://habrahabr.ru/post/323290/
[3]: https://habrahabr.ru/post/323444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вконтакте совершил очередной прорыв. На короткое время все пользователи соцсети получили права модераторов
habra.16
habrabot(difrex,1) — All
2017-03-21 08:00:09


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

Какой-то хороший человек успел записать видео с возможностями, которые есть у модераторов (система не давала читать сообщения или просматривать скрытые фото из-за ошибки доступа, но у реальных модераторов такой доступ, судя по всему есть).


Подробнее под катом
[Читать дальше →][1]

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

[>] Придумываем название для нового гипервайзера для архитектуры MIPS с аппаратно-поддерживаемой виртуализацией
habra.16
habrabot(difrex,1) — All
2017-03-21 11:00:05


На днях в офисе Imagination Technologies в Санта-Клара, Калифорния ко мне подходит специалист по многоядерному Линуксу Леонид Егошин и говорит:

Егошин: Вот, написал самый маленький гипервайзер в мире.

Я: Да? А как называется?

Егошин: Еще не придумал. И маркетинг названия не спустил. Придумай название! Это все равно будет opensource-проект.

Я: Мне чего-то трудно такое придумать. Как говорится «как вы яхту назовете, так она и поплывет». Надо общественность спросить.

Егошин: И я еще в апреле в Долгопрудном буду, в МФТИ. Не был там с XX века. Есть ли там кто-нибудь, кого интересует MIPS-Linux/IoT/гипервизоры на MIPS?

Я: Ну об этом тоже можно спросить общественность.

Итого, я написал этот пост, чтобы спросить общественность. Но сначала я расскажу, кто такой Леонид Егошин и что такое гипервайзер.

\*\*\*

Не вся молодежь знает, но в СССР был свой Unix. Не при Брежневе, но уже при Андропове.

И вот одним из первых советских юниксологов и был Егошин (он единственный на фотке на Красной Площади 1980-х, кто улыбается). Потом Егошин переехал в Silicon Valley и стал работать в MIPS Technologies, которая стала Imagination Technologies. На снимке справа Егошин уже в 2015 году, с первой привезенной в Америку из России платой с российским микропроцессором Байкал-Т — Егошин помогал отлаживать на ней Линукс:

![][1]

А теперь что такое гипервайзер.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/cc0/37d/975/cc037d9751c77ea54351f0db5a38a85a.png
[2]: https://habrahabr.ru/post/324444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 ... 133