С развитием смартфонов в последние годы было разработано много инструментов, чтобы упростить жизнь разработчикам, обеспечив их максимальной производительностью и качеством. Занимать лидирующие позиций в App Store сегодня не простое задание. А научить ваше приложение масштабироваться еще сложнее. Когда приложением пользуются миллионы пользователей, вы должны следить за приложением и при необходимости выполнять все операции моментально. Поэтому одной из проблем, с которой сталкиваются многие разработчики, является Database. Она действительно вызывает сильную головную боль для каждого из нас, и я думаю, что сегодня у вас есть только два варианта: SQLite и Core Data. Я был большим поклонником Core Data и его способностью работать с записями и сохраняющимися данными, но я понял, что впустую трачу много времени, работая с ним при разработке приложений. Недавно, я столкнулся с Realm, новой лучшей заменой SQLite и Core Data.
@byT3b0N3read-only
User
LinOTP+RADIUS. Аутентификация с помощью одноразовых паролей
12 min
20K1. Основные сведения
В данной инструкции описывается процесс интеграции LinOTP и FreeRadius на машинах под управлением CentOS а также настройка аутентификации пользователей SSH по ОТР, сгенерированному с помощью программного обеспечения Google Authenticator (или любого, использующий аналогичный алгоритм).
+7
Подборка бесплатных инструментов для разработчиков
28 min
186KTranslation
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.
+82
Некоторые репозитории в помощь изучающим и преподающим Python и машинное обучение
13 min
64KПривет сообществу!
Я Юрий Кашницкий, раньше делал здесь обзор некоторых MOOC по компьютерным наукам и искал «выбросы» среди моделей Playboy.
Сейчас я преподаю Python и машинное обучение на факультете компьютерных наук НИУ ВШЭ и в онлайн-курсе сообщества по анализу данных MLClass, а также машинное обучение и анализ больших данных в школе данных одного из российских телеком-операторов.
Почему бы воскресным вечером не поделиться с сообществом материалами по Python и обзором репозиториев по машинному обучению… В первой части будет описание репозитория GitHub с тетрадками IPython по программированию на языке Python. Во второй — пример материала курса «Машинное обучение с помощью Python». В третьей части покажу один из трюков, применяемый участниками соревнований Kaggle, конкретно, Станиславом Семеновым (4 место в текущем мировом рейтинге Kaggle). Наконец, сделаю обзор попавшихся мне классных репозиториев GitHub по программированию, анализу данных и машинному обучению на Python.
+22
Бюджетная рассылка СМС
8 min
48KПриветствую всех хаброжителей!
Конечно, зализанная тема про рассылку смс сообщений, но как говориться: «много — не мало». Как-то так получилось, что именно она меня постоянно преследует: то одни, то другие добрые люди попросят принять участие (советом, например) в реализации бюджетной рассылки сообщений. И поэтому чтобы не пропадать накопленному добру, оставлю здесь, а вдруг кому-то пригодится…
Итак-с… Опускаем все варианты реализации на базе обычного компа и оси семейства NT. А перейдем сразу к «автономным» системам.
Чем может похвастаться arduino в этом направлении? Отвечу сразу, ОНО работает, но есть нюансы, о которых напишу ниже. Вообщем, имеем китайский вариант arduino 2560 (было перепробовано практически вся линейка) и два дополнительных модуля — сеть W5100 (наиболее стабильный вариант) и GSM SIM 900. Выглядит это все дело как-то так.
Задача была следующая:
— устройство должно уметь общаться по http
— отправлять сообщение
— выдавать результат в формате json
Гугл делится всей необходимой информацией, и на выходе получаем следующий код:
Конечно, зализанная тема про рассылку смс сообщений, но как говориться: «много — не мало». Как-то так получилось, что именно она меня постоянно преследует: то одни, то другие добрые люди попросят принять участие (советом, например) в реализации бюджетной рассылки сообщений. И поэтому чтобы не пропадать накопленному добру, оставлю здесь, а вдруг кому-то пригодится…
Итак-с… Опускаем все варианты реализации на базе обычного компа и оси семейства NT. А перейдем сразу к «автономным» системам.
Чем может похвастаться arduino в этом направлении? Отвечу сразу, ОНО работает, но есть нюансы, о которых напишу ниже. Вообщем, имеем китайский вариант arduino 2560 (было перепробовано практически вся линейка) и два дополнительных модуля — сеть W5100 (наиболее стабильный вариант) и GSM SIM 900. Выглядит это все дело как-то так.
Задача была следующая:
— устройство должно уметь общаться по http
— отправлять сообщение
— выдавать результат в формате json
Гугл делится всей необходимой информацией, и на выходе получаем следующий код:
+15
Let's Encrypt объявил о кросс-сертификации от IdenTrust
3 min
14KНа сайте проекта Let's Encrypt появилась информация, что 19 октября 2015 удостоверяющие центры «Let's Encrypt Authority X1» и «Let's Encrypt Authority X2» получили кросс-подписи от IdenTrust. Теперь сертификаты выпущенные Let's Encrypt стали доверенными для всех основных браузеров. Проверить это можно, зайдя на страницу, защищенную первым сертификатом Let's Encrypt: helloworld.letsencrypt.org. Если ваш браузер не выдает предупреждения, значит, считает сертификат этого домена доверенным.
+24
Модификация системного вызова. Часть 2
6 min
16KВ предыдущей части мы договорились до того, что не экспортируемые имена ядра Linux могут использоваться в коде собственных модулей ядра с тем же успехом, что и экспортируемые. Одним из таких имён в ядре является селекторная таблица всех системных вызовов Linux. Собственно, это и есть основной интерфейс любых приложений к сервисам ядра. Теперь мы рассмотрим как можно модифицировать оригинальный обработчик любого системного вызова, подменить его, или внести разнообразие в его выполнение в соответствии с собственным видением.
+19
Z-Desk — геометрические построения в пространстве
7 min
16KПривет, Хабр. Хочу рассказать об одной своей разработке в области 3D-графики, которую назвал Z-Desk.
Мои родители – инженеры. У нас дома была чертежная доска. Было что-то волшебное, когда на нее закреплялась бумага, а на бумаге с помощью нехитрых инструментов создавался чертеж. Школьное черчение стало моим любимым предметом. В институте появилась вообще срывающая голову дисциплина — начертательная геометрия. С помощью простых правил можно было делать сложнейшие пространственные построения.
Предыстория
Мои родители – инженеры. У нас дома была чертежная доска. Было что-то волшебное, когда на нее закреплялась бумага, а на бумаге с помощью нехитрых инструментов создавался чертеж. Школьное черчение стало моим любимым предметом. В институте появилась вообще срывающая голову дисциплина — начертательная геометрия. С помощью простых правил можно было делать сложнейшие пространственные построения.
+19
Новый способ MITM-атаки на протокол TLS делает злоумышленника незаметным
5 min
26KАвстрийские исследователи безопасности обнаружили уязвимость протокола TLS (Transport Layer Security), которая позволяет злоумышленникам проводить «атаки посредника» (Man in the middle, MITM).
Новая техника позволяет атакующему получать полный контроль над приложениями в клиентском браузере, прослушивать коммуникации, подменять контент на веб-сайтах и осуществлять на них действия от лица жертвы. При этом не производится подмена серверных сертификатов, что позволяет избежать обнаружения атаки.
Протокол TLS используется для безопасной передачи данных, однако серьезные уязвимости в нем обнаружены не впервые — две предыдущие ошибки безопасности получили название Logjam и Bar Mitzvah.
Новая техника позволяет атакующему получать полный контроль над приложениями в клиентском браузере, прослушивать коммуникации, подменять контент на веб-сайтах и осуществлять на них действия от лица жертвы. При этом не производится подмена серверных сертификатов, что позволяет избежать обнаружения атаки.
Протокол TLS используется для безопасной передачи данных, однако серьезные уязвимости в нем обнаружены не впервые — две предыдущие ошибки безопасности получили название Logjam и Bar Mitzvah.
+13
Бэкдор SYNful Knock для атаки на маршрутизаторы: в чем проблема и как защититься
4 min
14KПредставители компании Mandiant (принадлежит FireEye) на этой неделе опубликовали результаты исследования безопасности маршрутизаторов Cisco. Им удалось обнаружить бэкдор, с помощью которых злоумышленники могут осуществлять ранее неизвестные атаки и собирать большие объёмы конфиденциальных данных, не привлекая к себе внимания.
+10
Запуск мега-мануала от Stackoverflow
8 min
40KStackoverflow объявили о запуске нового амбициозного проекта: документационном хабе для всех существующих технологий. Предполагается, что для каждого существующего на Стеке тэга можно будет создать раздел документации, и в этом разделе постить топики, похожие на существующую парадигму вопрос-ответ, но являющиеся разделами документации. Возможно получится, что Стек станет для опен-сорсного комьюнити такой-же стандартной площадкой для документации, как, скажем, Гитхаб для исходников.
+65
Zigbee для самых маленьких. Пост номер 1
6 min
26KОколо месяца назад попали в мое распоряжение модули Atmel ATZB-S1-256-3-0-C основанные на чипе ATmega256RFR2 объединяющим в себе 2.4Mhz трансивер, микроконтроллер AVX на 256 килобайт памяти и даже чип-антенну. Атмель обещали в свою очередь out of the box поддержку Zigbee для этих модулей и было принято решение строить наш mesh именно на них.
Если кто не понял то при помощи этих модулей можно относительно просто построить IoT меш сеть добавляя к модулям лишь кнопочки, лампочки, сенсоры и батарейки. Основной микропроцессор уже на месте, даже с осцилятором из трансивера.
Звучит довольно просто, не так ли? На практике все оказалось намного прозаичнее. Основной проблемой оказалась недооценка технологической сложности атмелевского стека Zigbee, самого стандарта Zigbee, ну и переоценка собственных возможностей. Дело в том что сам я давно не програмировал на C, давно перешел на Matlab и Python, все указатели и другие средства управления ресурсами и процессами давно положил в тумбочку и выкинул ключ. Ну что-же… в мире ембеддед меня ждало много приятных неожиданностей.
+14
Основы GNS3. Обзор
5 min
171KTutorial
Здравствуйте, коллеги! Относительно недавно я публиковал пару статей о созданном курсе для внутреннего обучения — «Курс молодого бойца». Курс был достаточно тепло принят в рунете, в результате чего было принято решение о создании еще одного — “Основы GNS3”.
Cisco Packet Tracer очень полезная и удобная штука, имеет множество преимуществ. Но наши знания и задачи уже выходят за рамки возможного у данного симулятора. Мы уже выросли из “штанишек” Cisco Packet Tracer. И теперь нас ждет GNS3! Практически все темы, которые будут затронуты уже наверняка есть в сети Интернет, я просто попытаюсь систематизировать имеющиеся данные и свести в один курс. Всем кто заинтересовался, добро пожаловать под кат…
Cisco Packet Tracer очень полезная и удобная штука, имеет множество преимуществ. Но наши знания и задачи уже выходят за рамки возможного у данного симулятора. Мы уже выросли из “штанишек” Cisco Packet Tracer. И теперь нас ждет GNS3! Практически все темы, которые будут затронуты уже наверняка есть в сети Интернет, я просто попытаюсь систематизировать имеющиеся данные и свести в один курс. Всем кто заинтересовался, добро пожаловать под кат…
+12
Зaчем мне AshleyMadison, если я не курю?
5 min
31KКак вы все уже наверное знаете, недавно были выложены дампы баз AshleyMadison. Я решил не упускать возможность и проанализировать реальные данные дейтинг платформы. Попробуем предсказать платежеспособность клиента по его характиристикам таким как возраст, рост, вес, привычки и т.д.
Попробуем?
Попробуем?
+20
Навигация в закрытых помещениях – от идеи до рабочего прототипа
4 min
20KРазработчики внутренней практики DataArt «Путешествия и гостиничный бизнес» представляют систему внутреннего позиционирования и рассказывают, чем она интересна для индустрии.
Что такое система позиционирования во внутренних помещениях?
Исходя из статьи в википедии, это решение для нахождения объектов и людей внутри здания с помощью радиоволн, магнетических полей, акустических сигналов или другой сенсорной информации, собранной с помощью мобильных устройств. Проще говоря, с помощью этой системы можно определить свое местоположение в большом здании, используя лишь специальное приложение на смартфоне. Для людей, не работающих в технической сфере, это звучит как волшебство; для тех, кто теряется в аэропортах, торговых центрах и других зданиях — как панацея; для разработчиков железа и ПО — как серьезный вызов.
+7
Микросервисы без серверов (облачный вариант)
20 min
23KTranslation
Здравствуйте, дорогие читатели!
Как помнят самые внимательные из вас, мы работаем над инновационной книгой о микросервисах, но в то же время не забываем читать, что пишут в Сети на эту тему. Поэтому не смогли пройти мимо интереснейшей статьи из блога Amazon, автор которой Тим Вагнер делится своими взглядами на микросервисную архитектуру.
Много Java, JavaScript, схем, рассуждений и очень много текста
Как помнят самые внимательные из вас, мы работаем над инновационной книгой о микросервисах, но в то же время не забываем читать, что пишут в Сети на эту тему. Поэтому не смогли пройти мимо интереснейшей статьи из блога Amazon, автор которой Тим Вагнер делится своими взглядами на микросервисную архитектуру.
Много Java, JavaScript, схем, рассуждений и очень много текста
+5
Ограничение памяти, доступной программе
13 min
57KTranslation
Решил я как-то заняться задачкой сортировки миллиона целых чисел при имеющейся памяти в 1 Мб. Но перед этим мне пришлось подумать над тем, как можно ограничить объём доступной памяти для программы. И вот, что я придумал.
Перед тем, как окунуться в разные методы ограничения памяти, необходимо знать, как устроена виртуальная память процесса. Лучшая статья на эту тему — «Анатомия программы в памяти».
Прочитав статью, я могу предложить две возможности для ограничения памяти: уменьшить виртуальное адресное пространство или объём кучи.
Первое: уменьшение объёма адресного пространства. Это довольно просто, но не совсем корректно. Мы не можем уменьшить всё пространство до 1 Мб — не хватит места для ядра и библиотек.
Второе: уменьшение объёма кучи. Это не так-то просто сделать, и обычно так никто не делает, поскольку это доступно только через возню с компоновщиком. Но для нашей задачи это был бы более корректный вариант.
Также я рассмотрю другие методы, такие, как отслеживание использования памяти через перехват вызовов библиотек и системы, и изменение окружения программы через эмуляцию и введение «песочницы».
Для тестирования будем использовать небольшую программу по имени big_alloc, размещающую, и затем освобождающую 100 MiB.
Виртуальная память процесса
Перед тем, как окунуться в разные методы ограничения памяти, необходимо знать, как устроена виртуальная память процесса. Лучшая статья на эту тему — «Анатомия программы в памяти».
Прочитав статью, я могу предложить две возможности для ограничения памяти: уменьшить виртуальное адресное пространство или объём кучи.
Первое: уменьшение объёма адресного пространства. Это довольно просто, но не совсем корректно. Мы не можем уменьшить всё пространство до 1 Мб — не хватит места для ядра и библиотек.
Второе: уменьшение объёма кучи. Это не так-то просто сделать, и обычно так никто не делает, поскольку это доступно только через возню с компоновщиком. Но для нашей задачи это был бы более корректный вариант.
Также я рассмотрю другие методы, такие, как отслеживание использования памяти через перехват вызовов библиотек и системы, и изменение окружения программы через эмуляцию и введение «песочницы».
Для тестирования будем использовать небольшую программу по имени big_alloc, размещающую, и затем освобождающую 100 MiB.
+36
Дополненная реальность на Qt
8 min
37KСейчас дополненная реальность – это одно из самых интересных направлений. Поэтому я и взялся за ее изучение, а результатом этого стала собственная реализация кроссплатформенной безмаркерной дополненной реальности на Qt. Речь в этой статье пойдет о том, как это было реализовано (или же как это реализовать самому). Под катом можно найти демку и ссылку на проект на гитхабе.
+37
Как я сдавал OSCP
7 min
60KПериодически на хабре поднимается тема подготовки специалистов в различных областях информационной безопасности и получения соответствующих сертификаций. Уже обсуждали подготовку и сдачу CISSP, CISA, Security+, CEH\ECSA. Раз в две-три недели нас активно приглашают на курсы от пентестит.
В этом же топике я хочу познакомить читателей с еще одним вариантом обучения и поделиться собственным опытом прохождения курса Penetration Testing Training with Kali Linux от Offensive Security с последующей сдачей экзамена.
+16
Обзор новшеств Docker Engine с 1.0 до 1.7. Введение в Docker Compose
12 min
27KВ прошлых статьях мы уже рассматривали что такое Docker и как использовать Dockerfile и осуществлять коммуникацию между контейнерами.
Эти статьи были написаны по Docker 1.1.2. С тех пор в Docker появилось много полезного, о чем мы расскажем в этой статье. Также мы рассмотрим подробнее Docker Compose, утилиту, позволяющую определять мультиконтейнерное приложение со всеми зависимостями в одном файле и запускать это приложение в одну команду. Примеры будут продемонстрированы на облачном сервере в InfoboxCloud.
Эти статьи были написаны по Docker 1.1.2. С тех пор в Docker появилось много полезного, о чем мы расскажем в этой статье. Также мы рассмотрим подробнее Docker Compose, утилиту, позволяющую определять мультиконтейнерное приложение со всеми зависимостями в одном файле и запускать это приложение в одну команду. Примеры будут продемонстрированы на облачном сервере в InfoboxCloud.
+22
Information
- Rating
- Does not participate
- Registered
- Activity