RSS
Pages: 1 ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ... 133
[>] [recovery mode] КЛАСТЕР высокой доступности на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram
habra.16
habrabot(difrex,1) — All
2016-11-01 12:00:04


![image][1]
На сегодняшний день процедура реализации **«failover» ** в Postgresql является одной из самых простых и интуитивно понятных. Для ее реализации необходимо определиться со сценариями файловера — это залог успешной работы кластера, протестировать его работу. В двух словах — настраивается репликация, чаще всего асинхронная, и в случае отказа текущего мастера, другая нода(standby) становится текущем «мастером», другие ноды standby начинают следовать за новым мастером.
На сегодняшний день repmgr поддерживает сценарий автоматического Failover — autofailover, что позволяет поддерживать кластер в рабочем состоянии после выхода из строя ноды-мастера без мгновенного вмешательства сотрудника, что немаловажно, так как не происходит большого падения UPTIME. Для уведомлений используем telegram.

Появилась необходимость в связи с развитием внутренних сервисов реализовать систему хранения БД на Postgresql + репликация + балансировка + failover(отказоустойчивость). Как всегда в интернете вроде бы что то и есть, но всё оно устаревшее или на практике не реализуемое в том виде, в котором оно представлено. Было решено представить данное решение, чтобы в будущем у специалистов, решивших реализовать подобную схему было представление как это делается, и чтобы новичкам было легко это реализовать следуя данной инструкции. Постарались описать все как можно подробней, вникнуть во все нюансы и особенности.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/a17/d60/054/a17d600549ef46759aa32c7c22b4a2fc.png
[2]: https://habrahabr.ru/post/314000/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как превратить смартфон в микрофон (идеи и вопросы)
habra.16
habrabot(difrex,1) — All
2016-11-01 12:30:04


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



# Зачем это нужно?


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

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

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

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

[>] Власти США разрешили исследователям заниматься пентестами и реверс-инжинирингом без юридических последствий
habra.16
habrabot(difrex,1) — All
2016-11-01 13:00:03


[![][1]][2]

В пятницу, 28 октября, на сайте библиотеки Конгресса США был [опубликован][3] обновленный список исключений из правил закона Digital Millennium Copyright Act (DMCA), запрещающих осуществление «обхода цифровых средств управления доступом». Эти правила регулируют условия, на которых частные пользователи могут взаимодействовать и манипулировать цифровым контентом, принадлежащим правообладателям, без риска юридических последствий для себя.

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

[1]: https://habrastorage.org/files/e3d/a36/031/e3da36031d3a4910a15f7b4ad6fcbffd.JPG
[2]: https://habrahabr.ru/company/pt/blog/314112/
[3]: https://www.federalregister.gov/documents/2015/10/28/2015-27212/exemption-to-prohibition-on-circumvention-of-copyright-protection-systems-for-access-control
[4]: https://habrahabr.ru/post/314112/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Извилистый путь разработчика
habra.16
habrabot(difrex,1) — All
2016-11-01 13:00:03


![][1]



Учиться программированию — пожизненная затея. Почти всегда будет попадаться что-то новое, о существовании чего вы ещё не знали.



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



После разговора с [@PrototypeAlex][2], где мы обсуждали множество этапов, которые проходят разработчики, у меня появилось вдохновение написать об этом. За 30 лет, которые я пишу код, я прошёл почти через каждый описанный в статье этап, и некоторые были особенно болезненными.



Узнаёте себя на каком-нибудь из этих этапов? И что я пропустил? Многие этапы ускользают из моего поля зрения; мы никогда не перестаём учиться и делать открытия.



## Великий Копипастер {#velikiy-kopipaster}



Писать код трудно, но люди решили проблему за вас! Ваш браузер переходит к Stack Overflow при вводе "s" в адресной строке, и вы часами вставляете различные фрагменты кода, чтобы увидеть, какой из них выполняет то, что вам требуется. Иногда это высасывает моральные силы, но в итоге у вас появляется хоть какой-то рабочий код.

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

[1]: https://habrastorage.org/files/f52/3aa/e67/f523aae67d264d5b9868ef5bfab07614.jpeg
[2]: https://twitter.com/PrototypeAlex
[3]: https://habrahabr.ru/post/314118/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Открытые операционные системы для интернета вещей
habra.16
habrabot(difrex,1) — All
2016-11-01 14:30:04


За последнее десятилетие большое количество проектов ОС с открытым исходным кодом перешли от рынка мобильной связи к «интернету вещей». В этой статье мы рассмотрим какие из открытых проектов нацелены на IoT ([Internet of Things][1]).
[Читать дальше →][2]

[1]: https://en.wikipedia.org/wiki/Internet_of_things
[2]: https://habrahabr.ru/post/314122/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Google опять раскрыла непропатченную уязвимость в Windows
habra.16
habrabot(difrex,1) — All
2016-11-01 15:00:04


![][1]
_В драйвере win32k.sys опять проблема_

На первый взгляд может показаться, что компания Google поступила безответственно и нарушила IT-этикет, не дав Microsoft времени на исправление бага. Специалисты Google Threat Analysis Group опубликовали факт наличия опасной уязвимости в Windows [всего через 10 дней][2] после того, как сообщили о ней в Microsoft. У редмондской компании просто физически не было времени, чтобы проверить баг, протестировать его на всех конфигурациях, подготовить патч, протестировать его на всех конфигурациях — и выкатить обновление в Windows Update. Уязвимость до сих пор не закрыта.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/036/b8c/731/036b8c7316d2cc87c0f5f80cbdc7040e.jpg
[2]: https://security.googleblog.com/2016/10/disclosing-vulnerabilities-to-protect.html
[3]: https://habrahabr.ru/post/314142/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как делают Wi-Fi-сеть в общественном транспорте
habra.16
habrabot(difrex,1) — All
2016-11-01 15:00:04


В прошлый раз [мы говорили о том, как МТС строит публичные фиксированные Wi-Fi-сети][1] для бизнеса с идентификацией пользователей: в кафе, ресторанах, в бизнес- и торговых центрах. Сегодня поговорим о том, как мы строим подвижные Wi-Fi-сети – то есть сети, которые не имеют постоянной локации. Например, Wi-Fi в общественном транспорте, который на протяжении дня передвигается по городу, такси, на выездных бизнес-мероприятий — также это удобная опция для кейтеринговых служб. Наш продукт сделан так, что для нас не имеет значения, какая сеть нужна клиенту: подвижная или фиксированная. В любом случае ты получаешь полноценную зону Wi-Fi с идентификацией. Итак, снова передаем слово Андрею Плавичу, менеджеру по маркетингу и продуктам бизнес-рынка МТС.

Мы можем построить Wi-Fi-сеть на любом передвижном транспорте: будь то автобусы, троллейбусы, поезда, пароходы и такси. При этом услуга реализована с выполнением всех требований законодательства. Обобщая, работу сети можно описать в два шага: роутер связывается с базовой станцией, а сигнал прокидывается на нашу платформу идентификации. Более подробная схема — ниже на рисунке:

![image][2]

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

[1]: https://habrahabr.ru/company/ru_mts/blog/313168/
[2]: https://habrastorage.org/getpro/habr/post_images/7ad/457/36b/7ad45736bdf7c17fb7b2b07867490ee0.png
[3]: https://habrahabr.ru/post/314134/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Поиск уязвимостей в байткоде Java: что делать с результатами?
habra.16
habrabot(difrex,1) — All
2016-11-01 15:00:04


[![][1]][2]

[Solar inCode][3] умеет обнаруживать уязвимости в байткоде Java. Но показать инструкцию байткода, которая содержит уязвимость, мало. Как показать уязвимость в исходном коде, которого нет?

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

[1]: https://habrastorage.org/files/33a/8c7/c88/33a8c7c88b30415a847ed983cfc701ed.png
[2]: https://habrahabr.ru/company/solarsecurity/blog/312056/
[3]: http://solarsecurity.ru/products/solar_inCode/
[4]: https://habrahabr.ru/post/312056/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Лекции Технотрека. 1 семестр. Разработка на Java (весна 2016)
habra.16
habrabot(difrex,1) — All
2016-11-01 16:00:04


Продолжаем публикацию наших свежих образовательных курсов. За 14 лекций Технотрека вы получите необходимые навыки и опыт в области разработки на Java, узнаете синтаксис и основные библиотеки языка, начнете понимать объектно-ориентированный подход, сможете декомпозировать сложные задачи.

Курс ведут Рустам Кильдиев, Java/Scala-разработчик мобильного ПО, и Дмитрий Архангельский, инженер-разработчик в Одноклассниках.


# Лекция 1. «Знакомство с платформой Java»



Вводное занятие, на котором кратко дается описание всего курса. Основная задача курса — не просто научить синтаксису, а дать практические навыки и понимание основ. Курс выстроен так, чтобы, выполняя небольшие задачи, написать проект «Бэкенд к мессенджеру». [Читать дальше →][1]

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

[>] Хакеры украли с помощью бота у четырёх банков миллиард рублей
habra.16
habrabot(difrex,1) — All
2016-11-01 16:30:04


Спецслужбы раскрыли группу киберпреступников, обманувших "**Промсвязьбанк**", "**Траст**", "**Уралсиб**" и кредитное учреждение "**Зенит**".

16 человек в Москве организовали киберпреступную группу и занялись мошенничеством в Интернете. Начала группа работать с суммы в миллион рублей, постепенно увеличая сумму. Всего за четыре месяца команда ограбила финансовые учреждения на миллиард рублей. Афера удалась благодаря специальной программе, которую они создали.

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

[1]: https://habrastorage.org/files/bcb/e61/dd7/bcbe61dd73874524b97131e47e89d7c6.jpg
[2]: https://habrahabr.ru/post/314150/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Нет – взломам серверов! Советы по проверке и защите
habra.16
habrabot(difrex,1) — All
2016-11-01 18:30:03


Подозреваете, что Linux-сервер взломан? Уверены, что всё в порядке, но на всякий случай хотите повысить уровень безопасности? Если так – вот несколько простых советов, которые помогут проверить систему на предмет взлома и лучше её защитить.

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

[1]: https://habrastorage.org/getpro/habr/post_images/eb1/fdd/91d/eb1fdd91d160120b11242ff57907bcb3.jpg
[2]: https://habrahabr.ru/company/ruvds/blog/314166/
[3]: https://habrahabr.ru/post/314166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] 2D магия в деталях. Часть третья. Глобальное освещение
habra.16
habrabot(difrex,1) — All
2016-11-01 18:30:03


![][1]

_Глобальное освещение, динамический свет и декали в действии._



Я очень люблю смотреть на белые предметы без текстуры. Недавно в художественном магазине я долго рассматривал гипсовые фигуры, которые художники используют в качестве модельных объектов. Очень приятно видеть все эти плавные переходы света и мягкие тени. Позже, когда я вернулся домой и открыл Unity3D, пришло понимание, что свет в моём проекте по-прежнему скучный и нереалистичный.
С этого момента началась история глобального освещения, которую я сегодня расскажу.

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

[1]: https://habrastorage.org/files/a32/3eb/731/a323eb731d8746c4b2da5d61f2af0ffb.png
[2]: https://habrahabr.ru/post/313776/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Кластер высокой доступности на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram
habra.16
habrabot(difrex,1) — All
2016-11-01 19:00:05


![image][1]


На сегодняшний день процедура реализации **«failover» ** в Postgresql является одной из самых простых и интуитивно понятных. Для ее реализации необходимо определиться со сценариями файловера — это залог успешной работы кластера, протестировать его работу. В двух словах — настраивается репликация, чаще всего асинхронная, и в случае отказа текущего мастера, другая нода(standby) становится текущем «мастером», другие ноды standby начинают следовать за новым мастером.

На сегодняшний день repmgr поддерживает сценарий автоматического Failover — autofailover, что позволяет поддерживать кластер в рабочем состоянии после выхода из строя ноды-мастера без мгновенного вмешательства сотрудника, что немаловажно, так как не происходит большого падения UPTIME. Для уведомлений используем telegram.

Появилась необходимость в связи с развитием внутренних сервисов реализовать систему хранения БД на Postgresql + репликация + балансировка + failover(отказоустойчивость). Как всегда в интернете вроде бы что то и есть, но всё оно устаревшее или на практике не реализуемое в том виде, в котором оно представлено. Было решено представить данное решение, чтобы в будущем у специалистов, решивших реализовать подобную схему было представление как это делается, и чтобы новичкам было легко это реализовать следуя данной инструкции. Постарались описать все как можно подробней, вникнуть во все нюансы и особенности.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/a17/d60/054/a17d600549ef46759aa32c7c22b4a2fc.png
[2]: https://habrahabr.ru/post/314000/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Аспект. Найти и икапсулировать изменчивость на стыке областей
habra.16
habrabot(difrex,1) — All
2016-11-01 20:30:04


В данном посте хочу опубликовать свои мысли о понятии изменчивости в сложных программных продуктах, которые распространяются копиями и обслуживают разные, непохожие друг на друга предприятия (Enterprise решения). Я очень обрадовался, когда под микроскопом рассмотрел эту самую изменчивость и заметил там «аспект».

**Аспект** — это часть программы, которая обслуживает стык нескольких предметных областей и вносит элемент уникальности в них (через программирование изменчивости). Именно там, на стыке, можно найти что-то новое, инновационное, уникальное. Часто успешные бизнесы держатся на этих маленьких, но уникальных особенностях известного во всем мире процесса, и ни одно из существующих архаичных IT решений не может быть интегрировано на такое инновационное предприятие. [Читать дальше →][1]

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

[>] О том как я написал блокировщик рекламы и трекеров для смартфонов Samsung на Android. Adhell
habra.16
habrabot(difrex,1) — All
2016-11-02 11:00:03


Представляю сообществу проект, которым занимался в последнее время: блокировщик рекламы и трекеров для смартфонов Samsung на Android с открытым исходным кодом.

Реклама блокируется на уровне устройства, то есть не только в стандартном браузере, но и во всех остальных приложениях (например, в Chrome и YouTube).


# Предыстория


Я пользуюсь блокировщиками на всех своих компьютерах, но все чаще захожу в интернет со смартфона.
Мне нравится мобильный Chrome больше чем Mozilla или Opera, но в Chrome нет поддержки расширений, а присутствие рекламы на смартфоне критичнее чем на десктопе, так как часто ограничен трафик и дисплей в несколько раз меньше.
Плюс мне нравится иногда смотреть видео на YouTube, но реклама, которую нельзя пропустить здорово мешает процессу.
Исходя из таких предпосылок я занялся поиском решения блокировки рекламы на смартфоне.

![][1]
_Пример работы приложения на Samsung Galaxy Tab 4 10.1. [m.habr.ru][2]_
[Читать дальше →][3]

[1]: https://habrastorage.org/files/638/c9b/bde/638c9bbdef4642618d72aeb3a2bdffaa.jpg
[2]: http://m.habr.ru
[3]: https://habrahabr.ru/post/314116/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Продолжаем проверять проекты Microsoft: анализ PowerShell
habra.16
habrabot(difrex,1) — All
2016-11-02 12:30:03


![][1]

Для корпорации Microsoft в последнее время стало 'доброй традицией' открывать исходные коды своих программных продуктов. Тут можно вспомнить про CoreFX, .Net Compiler Platform (Roslyn), Code Contracts, MSBuild и прочие проекты. Для нас, разработчиков статического анализатора PVS-Studio, это возможность проверить известные проекты, рассказать людям (и разработчикам в том числе) о найденных ошибках и потестировать анализатор. Сегодня речь пойдёт об ошибках, найденных в ещё одном проекте Microsoft — PowerShell.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/7b0/875/2b0/7b08752b0c6944a69b8b997e226428e4.png
[2]: https://habrahabr.ru/post/314226/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Kivy. От создания до production один шаг. Часть 1
habra.16
habrabot(difrex,1) — All
2016-11-02 14:00:04


![][1]

Буквально [статью][2] тому назад, большинством голосов, было решено начать серию уроков по созданию аналога нативного приложения, написанного для Android на Java, но с помощью фреймворка Kivy + Python. Будет рассмотрено: создание и компоновка контроллов и виджетов, углубленное исследование техники разметки пользовательского интерфейса в Kv-Language, динамическое управление элементами экранов, библиотека, предоставляющая доступ к Android Material Design, и многое другое...



Заинтересовавшихся, прошу под кат!

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

[1]: https://habrastorage.org/files/33d/628/491/33d6284916964a4a81ff15ac7ac0ed0d.png
[2]: https://habrahabr.ru/post/313160/
[3]: https://habrahabr.ru/post/314236/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Корпоративные лаборатории — обновление программы
habra.16
habrabot(difrex,1) — All
2016-11-02 15:00:04


![image][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/251/60d/569/25160d5695974ff393c714703a791adb.png
[2]: https://habrahabr.ru/post/314230/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DisTalk. Если ты не умеешь читать, это не значит то, что ты не можешь общаться
habra.16
habrabot(difrex,1) — All
2016-11-02 16:00:04


Всем привет! Сегодня я расскажу о приложении DisTalk Pro. Я должен извиниться за паузу в моих постах, опять спасал мир подбивал итоги четверти, выиграл серебряную медаль [кубка России][1] по бочча в тройках, [выступил на форуме Обнаженные сердца][2]. Но обещание есть обещание, и на этой неделе я выложил новую версию программы DisTalk в [Google Play][3] и на [GitHub][4].

Для тех кто не понимает, о чем я говорю, советую почитать [эту статью][5].

![][6]
_DisTalk Pro_
[Читать дальше →][7]

[1]: https://vk.com/wall20124065_3548
[2]: https://www.youtube.com/watch?v=zeWIlwrmI-E
[3]: https://play.google.com/store/apps/details?id=ru.aacidov.distalkpro
[4]: https://github.com/aacidov/DisTalkPro-android
[5]: https://habrahabr.ru/company/aacidov/blog/308514/
[6]: https://habrastorage.org/files/cf1/d7c/623/cf1d7c623f694488aeebe5d300a8cc39.png
[7]: https://habrahabr.ru/post/314262/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Аспект. Найти и инкапсулировать изменчивость на стыке областей
habra.16
habrabot(difrex,1) — All
2016-11-02 16:00:04


В данном посте хочу опубликовать свои мысли о понятии изменчивости в сложных программных продуктах, которые распространяются копиями и обслуживают разные, непохожие друг на друга предприятия (Enterprise решения). Я очень обрадовался, когда под микроскопом рассмотрел эту самую изменчивость и заметил там «аспект».

**Аспект** — это часть программы, которая обслуживает стык нескольких предметных областей и вносит элемент уникальности в них (через программирование изменчивости). Именно там, на стыке, можно найти что-то новое, инновационное, уникальное. Часто успешные бизнесы держатся на этих маленьких, но уникальных особенностях известного во всем мире процесса, и ни одно из существующих архаичных IT решений не может быть интегрировано на такое инновационное предприятие. [Читать дальше →][1]

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

[>] [Из песочницы] Как pdf преобразовать в текстовый txt-файл
habra.16
habrabot(difrex,1) — All
2016-11-02 17:00:03


Вы скажете, что самый простой способ — выделить весь текст в pdf, скопировать его в буфер обмена и вставить из буфера обмена в текстовый файл. И будете правы. Но это не наш случай. Файл pdf — результат сканирования многостраничного документа. Т.е. содержимое pdf — это изображения текста.

![image][1]

Предлагаемый вариант решения реализован под Windows-8, но с небольшими корректировками, думаю, вполне может быть использован для Linux и OS X.
[Читать дальше →][2]

[1]: http://www.enolsoft.com/blog/wp-content/uploads/2014/03/ocr-system-diagram.jpg
[2]: https://habrahabr.ru/post/314274/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Блокировщик рекламы для дома на коленке
habra.16
habrabot(difrex,1) — All
2016-11-02 17:00:03


# Предыстория {#predystoriya}



## Прожорливый Bind9 {#prozhorlivyy-bind9}



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



Все бы ничего, но реклама там крутится на каждый чих. Пришлось изобретать, как же ее "порезать". Первая мысль была — поднять свой DNS сервер и отправлять все неугодные домены в /dev/null на 127.0.0.1. К этому моменту мой домашний серверок вернулся ко мне и занял свое почетное место на шкафу в качестве NAS сервера.



Сказано — сделано. Поднят Bind9, прописаны конфиги для нескольких доменов, все отлично. Летим.

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

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

[>] [Перевод] Подключение шлюзов Intel для интернета вещей к AWS и обмен данными с облаком при помощи Node-RED или Python
habra.16
habrabot(difrex,1) — All
2016-11-02 19:00:04


Расскажем о том, как подключить шлюз Intel для интернета вещей к Amazon Web Services (AWS) и приступить к созданию приложений, рассчитанных на работу с этой платформой, с использованием Node-RED и Python. В итоге мы придём к решению, в котором шлюз будет передавать в облако данные, используя протокол MQTT.

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

[1]: https://habrastorage.org/files/053/9f5/f68/0539f5f686724157b5b729613c21c1cf.jpg
[2]: https://habrahabr.ru/company/intel/blog/314282/
[3]: https://habrahabr.ru/post/314282/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Malware + Blockchain = ❤️
habra.16
habrabot(difrex,1) — All
2016-11-02 19:00:04


Эта статья является продолжением цикла о написании умных контрактов на платформе Ethereum. В [первой части][1] я пообещал показать, как создать новую криптовалюту на Solidity (в мире блокчейна это является чем-то вроде аналога "Hello, world!"). Но на самом деле в этом нет смысла, так как об этом уже написано несколько хороших статей ([пример из доков Solidity][2], [пример с главной страницы Ethereum][3]).



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



**BTW** все написанное ниже имеет чисто образовательный характер.


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

[1]: https://habrahabr.ru/post/312008/
[2]: http://solidity.readthedocs.io/en/develop/introduction-to-smart-contracts.html#subcurrency-example
[3]: https://ethereum.org/token
[4]: https://habrahabr.ru/post/313710/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как запускать Python через SAS?
habra.16
habrabot(difrex,1) — All
2016-11-02 19:00:04


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

Как же это сделать?

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

[1]: https://habrastorage.org/files/95b/088/f30/95b088f30567499494d31082b69864a2.jpg
[2]: https://habrahabr.ru/post/314268/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как pdf (изображения) преобразовать в текстовый txt-файл
habra.16
habrabot(difrex,1) — All
2016-11-02 19:30:03


Вы скажете, что самый простой способ — выделить весь текст в pdf, скопировать его в буфер обмена и вставить из буфера обмена в текстовый файл. И будете правы. Но это не наш случай. Файл pdf — результат сканирования многостраничного документа. Т.е. содержимое pdf — это изображения текста.

![image][1]

Предлагаемый вариант решения реализован под Windows-8, но с небольшими корректировками, думаю, вполне может быть использован для Linux и OS X.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/5a4/0a6/7e9/5a40a67e9e23f4c72a3e533bee4a6e81.jpg
[2]: https://habrahabr.ru/post/314274/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Композиция и интерфейсы
habra.16
habrabot(difrex,1) — All
2016-11-02 19:30:03


### В мире объектно-ориентированного программирования уже достаточно давно подвергается критике концепция наследования.


Аргументов достаточно много:

* дочерний класс наследует все данные и поведение родительского, что нужно не всегда (а при доработке родительского в дочерний класс вообще попадают данные и поведение, которые не предполагались на момент разработки дочернего);
* виртуальные методы менее производительные, а в случае, если язык позволяет объявить невиртуальный метод, то как быть, если в наследнике нужно его перекрыть (можно пометить метод словом new, но при этом не будет работать полиморфизм, и использование такого объекта может привести к не ожидаемому поведению, в зависимости от того, к какому типу приведен объект в момент его использования);
* если возникает необходимость множественного наследования, то в большинстве языков оно отсутствует, а там, где есть (C++), считается трудоемким;
* есть задачи, где наследование как таковое не может помочь — если нужен контейнер элементов (множество, массив, список) с единым поведением для элементов разных типов, и при этом нужно обеспечить статическую типизацию, то здесь помогут обобщения (generics).
* и т.д., и т.п.
Альтернативой наследованию являются использование интерфейсов и композиция. (Интерфейсы давно используется в качестве альтернативы множественному наследованию, даже если в иерархии классов активно используется наследование.)

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

А как можно решить эту задачу (отсутствие дублирования кода) в случае композиции и интерфейсов?
Этой теме и посвящена настоящая статья.
[Читать дальше →][1]

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

[>] [Из песочницы] Усовершенствуем функцию ВПР в Excel
habra.16
habrabot(difrex,1) — All
2016-11-02 22:30:03


Прочтение публикации [Упрощаем бинарный поиск в Excel][1] сподвигло на дополнительное усовершенствование функции ВПР по сравнению с приведенным в статье.



Что не было учтено, и что хотелось бы добавить:

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

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

[>] [Перевод] Дональд Кнут: про ассемблер, транслятор и грамотное программирование
habra.16
habrabot(difrex,1) — All
2016-11-03 16:30:04


"[Literate programming][1] (грамотное программирование) — отношение к компьютерным программам, как к литературе: компьютерная программа пишется не столько для компьютера, сколько для людей, чтобы люди могли ее прочитать. И поскольку я пишу программы, и в некотором роде учитель. "

![image][2]

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

[1]: https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D0%BC%D0%BE%D1%82%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[2]: https://habrastorage.org/getpro/habr/post_images/381/f28/924/381f2892464e0c8afcc6df5e4b604147.jpg
[3]: https://habrahabr.ru/post/314294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] И снова автоматизация: Python «дополз» до маршрутизаторов
habra.16
habrabot(difrex,1) — All
2016-11-03 18:30:03


![image][1]

Скорость развития технологий в наши дни поражает. Скачок научно-технического прогресса в последние годы можно сравнить разве что с темпами развития космической отрасли в период с конца 50-х по середину 70-х годов ХХ века. Как тогда присутствие человека в космосе стало реальностью, так же и сейчас повсеместная замена людей машинами уже не кажется чем-то заоблачным.

Автоматизация процессов стала полноценным «трендом» нашего времени и продолжает расширять свое влияние практически во всех сферах деятельности: начиная с сельского хозяйства и заканчивая «умными домами» или искусственным интеллектом.

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

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

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

В «первой серии» пойдет речь о средствах управления событиями, реализованных в оборудовании Huawei.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/0bf/41f/ff6/0bf41fff674946788c6d5e18d2aaad56.jpg
[2]: https://habrahabr.ru/post/314008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Утечки данных в 2016 году – предварительные итоги года
habra.16
habrabot(difrex,1) — All
2016-11-04 11:00:03


Пока что ситуация с утечками данных, складывающаяся в 2016 году, не выглядит утешительной. Согласно недавно опубликованным результатам всемирного Индекса критичности утечек данных (Breach Level Index, BLI), в первой половине 2016 года было публично зафиксировано 974 серьезных утечки данных, в результате которых было похищено или потеряно 554 миллиона записей данных. И какими бы плохими ни казались эти статистические данные, печальная правда заключается в том, что это всего лишь вершина айсберга.


[Читать дальше: сколько откуда утекло][1]

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

[>] Розкомнадзор: держим ухо востро. Как вовремя заметить внесение в список
habra.16
habrabot(difrex,1) — All
2016-11-04 14:00:03


По многочисленным просьбам трудящихся, сервис мониторинга [ХостТрекер][1] реализовал функцию, позволяющую регулярно проверять списки сайтов на попадание в базу Роскомнадзора. О некоторых особенностях — ниже.

![][2]

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

[1]: http://www.host-tracker.com
[2]: https://habrastorage.org/files/52d/3f6/3b2/52d3f63b2caf492a89589d04706e3643.jpg
[3]: https://habrahabr.ru/post/314392/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка UEFI-загрузчика. Самое краткое руководство в мире
habra.16
habrabot(difrex,1) — All
2016-11-04 16:00:04


Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?



Я обещал "самое краткое руководство". Вот оно:


1. Создаём на диске таблицу разделов GPT
2. Создаём FAT32-раздел на пару сотен мегабайт
3. Скачиваем из интернета любой UEFI-загрузчик и кладём его на этот раздел
4. Настраиваем конфиг загрузчика
_(Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 и 4.)_[Читать дальше →][1]

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

[>] Роcкомнадзор: держим ухо востро. Как вовремя заметить внесение в список
habra.16
habrabot(difrex,1) — All
2016-11-04 16:00:04


По многочисленным просьбам трудящихся, сервис мониторинга [ХостТрекер][1] реализовал функцию, позволяющую регулярно проверять списки сайтов на попадание в базу Роскомнадзора. О некоторых особенностях — ниже.

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

[1]: http://www.host-tracker.com
[2]: https://habrastorage.org/files/52d/3f6/3b2/52d3f63b2caf492a89589d04706e3643.jpg
[3]: https://habrahabr.ru/post/314392/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Microsoft отказывается от поддержки EMET
habra.16
habrabot(difrex,1) — All
2016-11-04 19:00:03


Microsoft [анонсировала][1] отказ от поддержки известного бесплатного инструмента безопасности EMET. В качестве двух основных причин такого шага MS называет выход Windows 10, которая уже поддерживает ряд еще более продвинутых механизмов защиты от эксплойтов с помощью виртуализации (Device Guard, Credential Guard, Windows Defender Application Guard). Вторая причина заключается в том, что сам по себе EMET никогда не являлся настоящим security-продуктом для долговременного использования, а применялся как площадка для обката новых методов защиты от эксплуатации уязвимостей.

![][2]
> Finally, we have listened to customers’ feedback regarding the January 27, 2017 end of life date for EMET and we are pleased to announce that the end of life date is being extended 18 months. **The new end of life date is July 31, 2018. There are no plans to offer support or security patching for EMET after July 31, 2018**. For improved security, our recommendation is for customers to migrate to Windows 10.
[Читать дальше →][3]

[1]: https://blogs.technet.microsoft.com/srd/2016/11/03/beyond-emet/
[2]: https://habrastorage.org/files/2a8/4bc/468/2a84bc46899d445dacdadc0fc087974d.jpg
[3]: https://habrahabr.ru/post/314418/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 44: zero-day в Windows, уязвимость в ботнете Mirai, серьезные дыры в MySQL
habra.16
habrabot(difrex,1) — All
2016-11-05 01:30:03


![][1]У нас очередная неделя патчей с нюансами. Начнем с очередной новости про ботнет Mirai, использовавшийся для минимум двух масштабных DDoS-атак. Благодаря утечке исходников эта казалось бы одноразовая история превращается в масштабный сериал с сиквелами и приквелами. На этой неделе появился еще и спин-офф: исследователи из Invincea Labs откопали в атакующем коде Mirai три уязвимости (подробно в [этой][2] новости или в оригинальном [исследовании][3]).

Самая серьезная уязвимость приводит к переполнению буфера в коде Mirai. Проблема заключается в некорректной обработке заголовка HTTP Location, который может присутствовать в ответе атакуемого сервера. Код отвечает за удаление префикса http:// из полученной строки. Сделано это очень просто: берем длину строки и вычитаем из нее количество знаков префикса (семь штук). Если подсунуть в ответе очень короткий заголовок Location (из пяти символов), то у нас получится отрицательное число (5-7 = -2), что и приводит к переполнению буфера и сбою.

Важный момент: сбой происходит в процессе, выполняющем атаку. То есть можно таким образом прекратить атаку с зараженного устройства, но не выключить его из ботнета. В общем, получается какая-то очень знакомая, но перевернутая ситуация. Если бы речь шла о легитимной программе, мы бы говорили о «критической уязвимости, которая может быть легко эксплуатирована злоумышленником с помощью специально подготовленного ответа на http-запрос» или как-то так. Срочно патчить! А тут? По идее, наоборот, появляется возможность эффективно гасить атаки. Но возникает вопрос морально-этического плана: а не является ли эта процедура «взломом в ответ на взлом»?
[Читать дальше →][4]

[1]: https://habrastorage.org/files/0ca/322/807/0ca32280766247ec841f3afa19ee123f.jpg
[2]: https://threatpost.ru/mirai-vulnerability-disclosed-but-exploits-may-constitute-hacking-back/18949/
[3]: https://www.invincealabs.com/blog/2016/10/killing-mirai/
[4]: https://habrahabr.ru/post/314434/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О реализации сравнения объектов по значению
habra.16
habrabot(difrex,1) — All
2016-11-05 13:00:05


#### Общеизвестно, что в объектной модели .NET, как и во многих других программных платформах, сравнивать объекты можно по ссылке и по значению.


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

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


#### Пусть есть класс Person, содержащий персональные данные — имя, фамилию, и дату рождения персоны.


На примере этого класса рассмотрим:

1. минимально необходимый набор доработок класса для того, чтобы объекты этого класса сравнивались по значению с помощью стандартной инфраструктуры .NET;
2. минимально необходимый и достаточный набор доработок, чтобы объекты этого класса всегда сравнивались по значению с помощью стандартной инфраструктуры .NET — если явно не указано, что сравнение должно производиться по ссылке.
Для каждого случая рассмотрим, каким именно образом лучше реализовать сравнение объектов по значению, чтобы получился согласованный и, насколько это возможно, компактный, copy-paste free, производительный код.

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

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

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

[>] Кодируем музыку в браузере
habra.16
habrabot(difrex,1) — All
2016-11-05 14:30:04


Регулярно появляются статьи о создании кода Javascript который издаёт звуки в браузере. В них объясняется чем частота ноты До отличается от частоты ноты Ля, примеры кода исправно издают «бип-бип».

Сделаем что-то подобное, но с результатом больше похожим на музыку. И относительно наглядной нотацией в духе [ABC][1], примерно вот так:

![image][2]

Запустить код и прослушать можно здесь:

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

[1]: https://ru.wikipedia.org/wiki/ABC_(%D0%BD%D0%BE%D1%82%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C)
[2]: https://habrastorage.org/getpro/habr/post_images/89f/bb8/e52/89fbb8e529a709ac16d93970e1dce76a.jpg
[3]: https://habrahabr.ru/post/314472/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Насколько важна математическая подготовка в перспективных направлениях разработки ПО
habra.16
habrabot(difrex,1) — All
2016-11-05 20:30:04




Профессия программиста становится все более массовой и востребованной. Сейчас порог вхождения в ИТ-сферу в принципе снизился, но продолжает расти интерес к ИТ-технологиям в целом, и к программированию в частности.

Среди ИТ-компаний и программистов, тем не менее, растет конкуренция. Однако стоит отметить, что, по крайней мере, на рынке труда она достаточно честная. Например, принимая на работу программиста работодатель в первую очередь будет оценивать уровень реальных знаний и навыков, а не цвет диплома. Впрочем, эта ситуация способствует распространению «программистов-самоучек», которые ограничены узкой специализацией. Для них нередко оказывается справедливо выражение «шаг вправо, шаг влево – расстрел». Так что, сейчас недостаточно сказать: этот человек – «ИТшник», или даже программист. Программист программисту рознь.

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

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

[>] Как я пытался включить http2 у себя на проекте с nginx
habra.16
habrabot(difrex,1) — All
2016-11-06 02:00:03


В общем, как я уже читал тут в комментах: «целые статьи пишут на то, как добавить 5 символов и пробел в конфиг». Все бы хорошо, если бы не google chrome. Они решили прекратить поддержку **SPDY** и **NPN**

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

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

[>] [Из песочницы] 6 концепций функционального программирования. Польза и примеры использования
habra.16
habrabot(difrex,1) — All
2016-11-06 13:30:03


Доброго времени суток! Меня зовут Иван Смолин, я разработчик мобильных приложений на платформе iOS. Сегодня предлагаю вам окунуться в мир функционального программирования. Статья носит по большей части теоретический характер, нежели практический. В ней я постараюсь дать определения основным понятиям функционального программирования и покажу примеры реализации на C, Objective-C, Swift, Haskell.

Функциональное программирование — это парадигма программирования, которая акцентируется на вычислении через функции в математическом стиле, неизменяемость, выразительность и уменьшение использования переменных и состояний ([ссылка][1]).

Существует 6 основных концепций:

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

[1]: https://www.raywenderlich.com/82599/swift-functional-programming-tutorial
[2]: https://habrahabr.ru/post/314510/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Манифест Ричарда Столлмана: How I do my computing
habra.16
habrabot(difrex,1) — All
2016-11-06 14:00:04


![image][1]

Я использую компьютер Thinkpad X60, в котором [FSF ( Free Software Foundation)][2] инсталлировали свободную инициализирующую программу (initialization program, [libreboot][3]) и свободную операционную систему ([Trisquel GNU/Linux][4]). Это первая компьютерная модель со свободной установочной программой и свободной операционной системой, которая когда-либо [поступала в продажу][5]. Поэтому это первый компьютерный продукт, который одобрили FSF (однако не был продан Lenovo).

До этого я несколько лет использовал [Lemote Yeeloong][6]. На тот момент это был единственный ноутбук со свободной установочной программой и свободной операционной системой, который можно было купить. Но его никогда не продавали со свободной операционной системой.

До этого я использовал [OLPC][7] (One Laptop Per Child) несколько недель. Я перестал, потому что проект OLPC решил поддерживать Windows, а я не хотел этого. OLPC используют особую прошивку для WiFi, поэтому я не мог использовать внутреннее WiFi устройство. Не беда, я использовал внешнее.

Результаты меня беспокоят. Я ожидал увидеть миллионы детей, использующих Windows с OLPC. Вместо этого я вижу, как миллионы детей используют Windows с Intel Classmate.

Раннее я пользовался устройствами полностью на свободных GNU/Linux системах, но там были несвободные BIOS. На протяжении восьми лет я пытался найти способ обойти эту проблему.
[Читать дальше →][8]

[1]: https://habrastorage.org/getpro/habr/post_images/612/a33/45e/612a3345e7a69b79ef0c5e8209df0e6f.png
[2]: https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BD%D0%B4_%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
[3]: https://en.wikipedia.org/wiki/Libreboot
[4]: https://ru.wikipedia.org/wiki/Trisquel
[5]: http://gluglug.org.uk/
[6]: https://en.wikipedia.org/wiki/Lemote
[7]: https://ru.wikipedia.org/wiki/One_Laptop_Per_Child
[8]: https://habrahabr.ru/post/314432/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Синтез изображений с помощью глубоких нейросетей. Лекция в Яндексе
habra.16
habrabot(difrex,1) — All
2016-11-06 15:00:04


Пусть в блоге Яндекса на Хабрахабре эта неделя [пройдет][1] под знаком нейронных сетей. Как мы видим, нейросети сейчас начинают использоваться в очень многих областях, включая поиск. Кажется, что «модно» искать для них новые сферы применения, а в тех сферах, где они работают уже какое-то время, процессы не такие интересные.

Однако события в мире синтеза визуальных образов доказывают обратное. Да, компании еще несколько лет назад начали использовать нейросети для операций с изображениями — но это был не конец пути, а его начало. Недавно руководитель группы компьютерного зрения «Сколтеха» и большой друг Яндекса и ШАДа [Виктор Лемпицкий][2] рассказал о нескольких новых способах применения сетей к изображениям. Поскольку сегодняшняя лекция — про картинки, то она очень наглядная.


Под катом — расшифровка и большинство слайдов.

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

[1]: https://habrahabr.ru/company/yandex/blog/314222/
[2]: https://yandexdataschool.ru/edu-process/teachers#lempitsky
[3]: https://habrahabr.ru/post/314508/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Измерение сопротивления и индуктивности двигателя постоянного тока
habra.16
habrabot(difrex,1) — All
2016-11-06 22:00:04


# Постановка задачи


Есть двигатель постоянного тока. Задача — разработать, собрать и протестировать устройство, позволяющиее реализовать контур тока применительно к этому двигателю. Желаемое время переходного процесса на застопоренном двигателе (без противо-ЭДС) — не более 10мс. Интерфес связи с внешним управляющим контроллером — SPI.

Двигатель постоянного тока, коллекторный, максимальное напряжение 24В, рабочий ток до 5А.

Что значит — контур тока? Самые распространённые драйверы для управления двигателями это всякие вариации полумостов, которые усиливают напряжение. А мне хочется, чтобы драйвер брал на вход не напряжение, а силу тока. Сила, развиваемая электроприводом, прямо пропорциональна силе протекающего тока. А значит, и прямо пропорциональна ускорению на валу двигателя. Такой контур тока позволит избежать извращений, на которые нужно идти без него, как я это делал [тут][1].

Я разбил этот текст на две статьи (вторая будет опубликована через несколько дней):
* **1\. Измерение сопротивления и индуктивности двигателя**
* 2\. Разработка управляющего контура (скоро будет, оставайтесь на связи)

Вот так выглядит макет управляющего железа:

![][2]

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

[1]: https://habrahabr.ru/post/280486/
[2]: https://habrastorage.org/getpro/habr/post_images/1b5/a46/085/1b5a46085014b5705f481b05ba580c63.jpg
[3]: https://habrahabr.ru/post/314520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как устроен парсер Python, и как втрое уменьшить потребление им памяти
habra.16
habrabot(difrex,1) — All
2016-11-07 01:30:04


Любой, кто изучал устройство языков программирования, примерно представляет, как они работают: парсер в соответствии с формальной грамматикой ЯП превращает входной текст в некоторое древовидное представление, с которой работают последующие этапы (семантический анализ, различные трансформации, и генерация кода).



В Python всё немного сложнее: парсеров два. Первый парсер руководствуется грамматикой, заданной в файле `[Grammar/Grammar][1]` в виде регулярных выражений (с не совсем обычным синтаксисом). По этой грамматике при помощи `Parser/pgen` во время компиляции `python` генерируется целый набор [_конечных автоматов_][4], распознающих заданные регулярные выражения — по одному КА для каждого нетерминала. Формат получающегося набора КА описан в `[Include/grammar.h][5]`, а сами КА задаются в `[Python/graminit.c][8]`, в виде глобальной структуры `_PyParser_Grammar`. Терминальные символы определены в `[Include/token.h][11]`, и им соответствуют номера 0..56; номера нетерминалов начинаются с 256.

Проиллюстрировать работу первого парсера проще всего на примере.
Пусть у нас есть программа `if 42: print("Hello world")` [Читать дальше →][14]

[1]: https://hg.python.org/cpython/file/default/Grammar/Grammar
[2]: https://hg.python.org/cpython/file/default/Grammar/Grammar
[3]: https://hg.python.org/cpython/file/default/Grammar/Grammar
[4]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82
[5]: https://hg.python.org/cpython/file/default/Include/grammar.h
[6]: https://hg.python.org/cpython/file/default/Include/grammar.h
[7]: https://hg.python.org/cpython/file/default/Include/grammar.h
[8]: https://hg.python.org/cpython/file/default/Python/graminit.c
[9]: https://hg.python.org/cpython/file/default/Python/graminit.c
[10]: https://hg.python.org/cpython/file/default/Python/graminit.c
[11]: https://hg.python.org/cpython/file/default/Include/token.h
[12]: https://hg.python.org/cpython/file/default/Include/token.h
[13]: https://hg.python.org/cpython/file/default/Include/token.h
[14]: https://habrahabr.ru/post/314062/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О сравнении объектов по значению — 2, или Особенности реализации метода Equals
habra.16
habrabot(difrex,1) — All
2016-11-07 02:00:03


#### В [предыдущей публикации][1] мы рассмотрели общие принципы реализации минимально необходимых доработок класса для возможности сравнения объектов класса по значению с помощью стандартной инфраструктуры платформы .NET.


Эти доработки включают перекрытие методов [Object.Equals(Object)][2] и [Object.GetHashCode()][3].


#### Остановимся подробнее на особенностях реализации метода [Object.Equals(Object)][4] для соответствия следующему требованию в документации:


x.Equals(y) returns the same value as y.Equals(x).


// и, как следствие, следующему:
If (x.Equals(y) && y.Equals(z)) returns true, then x.Equals(z) returns true.
Класс Person, созданный в [предыдущей публикации][5], содержит следующую реализацию метода [Equals(Object)][6]:
**Person.Equals(Object)**
public override bool Equals(object obj)
{
if ((object)this == obj)
return true;

var other = obj as Person;

if ((object)other == null)
return false;

return EqualsHelper(this, other);
}

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

В соответствии с примером, приведенным в [документации][7], приведение производится с помощью оператора [as][8]. Проверим, дает ли это корректный результат.
[Читать дальше →][9]

[1]: https://habrahabr.ru/post/314328/
[2]: https://msdn.microsoft.com/library/bsc2ak47.aspx
[3]: https://msdn.microsoft.com/library/system.object.gethashcode.aspx
[4]: https://msdn.microsoft.com/library/bsc2ak47.aspx
[5]: https://habrahabr.ru/post/314328/
[6]: https://msdn.microsoft.com/library/bsc2ak47.aspx
[7]: https://msdn.microsoft.com/library/bsc2ak47.aspx
[8]: https://msdn.microsoft.com/library/cscsdfbt.aspx
[9]: https://habrahabr.ru/post/314500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Судоку: так сколько же их? Часть 1/2
habra.16
habrabot(difrex,1) — All
2016-11-07 11:30:03


Привет Хабр!

Данная публикация возникла после просматривания [этого поста][1], в котором автор пытается посчитать количество различных судоку. Желая более точно разобраться в вопросе, я за пару минут нагуглил точный ответ, приведенный в данной [статье][2]. Текст этой статьи мне показался интересным сам по себе, поэтому я решил сделать перевод (в довольно вольном стиле).

![][3]

К сожалению, оригинал данной статьи написан для дебилов очень широкого круга читателей, в том плане, что тема рассматривается не очень глубоко, но довольно подробно. При этом поясняется только общий подход к решению задачи, без технических деталей, и, фактически, обрывается на самом интересном месте формулировкой «ну а дальше они посчитали на компьютере». В итоге я немного дополнил изложение своими комментариями: они либо отмечены курсивом, либо спрятаны под спойлеры. В них раскрываются некоторые технические моменты более подробно. Возможно, пост вместе с этими комментариями суммарно тянет на полноценную статью, нежели чем на просто перевод, но я решил оставить все как есть (на самом деле, я не нашел кнопки перевода перевода обратно в обычную статью, а создавать новую публикацию только ради этого было лень).
[Читать дальше →][4]

[1]: https://habrahabr.ru/post/312822/
[2]: http://www.math.cornell.edu/~mec/Summer2009/Mahmood/Intro.html
[3]: https://habrastorage.org/files/d90/893/9b0/d908939b06b7475a870dbb6759ef7a53.jpg
[4]: https://habrahabr.ru/post/313224/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Текстовая трансляция HighLoad++ 2016. День первый
habra.16
habrabot(difrex,1) — All
2016-11-07 11:30:03


Сегодня в этом посте весь день будет вестись текстовая трансляция конференции HighLoad++ 2016, проходящей в Сколково 7 и 8 ноября. HighLoad++ — это более 200 экспертов высочайшего класса с докладами о высоконагруженных сервисах, проблемах работы с ними и вопросах администрирования. Более 15 залов, плотный график, честный и полезный опыт спикеров — HighLoad++ умеет собирать крутые темы, задавать тон дискуссии и всё на одном дыхании.
Если вы хотите смотреть видео из главного зала и включения из мобильной студии Хабрахабра, то вам на [страницу спецпроекта][1]. Если почитать онлайн и поообщаться в кооментариях — под кат.

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

[1]: https://special.habrahabr.ru/highload/2016/
[2]: https://habrastorage.org/files/d93/b3b/97d/d93b3b97dfb94a03bfb8a63cc267a5c0.jpg
[3]: https://habrahabr.ru/company/oleg-bunin/blog/314396/
[4]: https://habrahabr.ru/post/314396/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 27 open-source ништячков для iOS разработчика
habra.16
habrabot(difrex,1) — All
2016-11-07 15:30:04


В [портфолио компании EDISON Software][1] есть 8 проектов, связанных с [разработкой под Android][2] и 4 крупных проекта, связанных с разработкой под iOS:
* [Сервис доставки банковских уведомлений на смартфоны][3]
* [Приложение Vivaldi для работы с электронной библиотекой][4]
* [Вирусная рассылка информации][5]
* [Мобильные приложения для доступа к корпоративной инфраструктуре][6]
Хотим поделиться с вами полезной подборкой open-source библиотек для iOS разработчика.


## 1\. DZNEmptyDataSet


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

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

![image][7]

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

[1]: https://www.edsd.ru/ru/proekty/portfolio
[2]: https://www.edsd.ru/mobilnye-prilozheniya-dlya-dostupa-k-korporativnoj-infrastrukture
[3]: https://www.edsd.ru/servis-dostavki-bankovskih-uvedomlenij-na-smartfony
[4]: https://www.edsd.ru/prilozhenie-vivaldi-dlya-raboty-s-ehlektronnoj-bibliotekoj
[5]: https://www.edsd.ru/virusnaya-rassylka-informacii
[6]: https://www.edsd.ru/mobilnye-prilozheniya-dlya-dostupa-k-korporativnoj-infrastrukture
[7]: https://habrastorage.org/getpro/habr/post_images/151/e44/539/151e4453990593ac83f9b7944544d8cd.png
[8]: https://habrastorage.org/files/a00/947/56e/a0094756e9e04d3b8d64032d15249c7d.jpg
[9]: https://github.com/dzenbot/DZNEmptyDataSet
[10]: https://habrahabr.ru/post/314444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Microsoft предоставит антивирусам возможность контроля за активностью подсистемы Linux на Windows 10
habra.16
habrabot(difrex,1) — All
2016-11-07 15:30:04


В предыдущих постах нашего корпоративного блога мы несколько раз [касались][1] темы поддержки подсистемы Linux на Windows 10 (WSL), а также [описывали][2] особенности ее технической реализации. Бета-версия этой подсистемы была доставлена пользователям в выключенном виде в рамках обновления Windows 10 Redstone 1 (Anniversary Update) в августе этого года.

![][3]

Недавно Microsoft начала [анонсировать][4] изменения в ядре Windows, которые помогут AV-драйверам правильным образом работать с процессами подсистемы Linux, в контексте которых запускаются исполняемые ELF-файлы.
[Читать дальше →][5]

[1]: https://habrahabr.ru/company/eset/blog/280584/
[2]: https://habrahabr.ru/company/eset/blog/302976/
[3]: https://habrastorage.org/files/fba/9f6/67a/fba9f667abf5406fae4b3b046f7bb9e2.jpeg
[4]: https://blogs.msdn.microsoft.com/wsl/2016/11/01/wsl-antivirus-and-firewall-compatibility/
[5]: https://habrahabr.ru/post/314476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ... 133