Pull to refresh
0
0
g1itch @g1itch

User

Send message

Иерархические модели в Qt

Reading time8 min
Views58K
Продолжаю тему создания моделей с использованием Qt MV. В прошлый раз была критическая статья по поводу того, как делать не надо. Переходим к позитивной части.

Для создания плоских моделей списков и таблиц можно использовать заготовки QAbstractListModel и QAbstractTableModel. Доведение их до готовности не составляет большого труда, поэтому рассматривать их подробно нет необходимости.

Создание же иерархических моделей – более сложная задача. О ней и пойдет речь в этой статье.
Заинтересовавшихся прошу под кат
Total votes 24: ↑23 and ↓1+22
Comments7

Стереть нельзя восстановить

Reading time9 min
Views65K
Две любопытные исследовательские статьи из разных концов планеты, опубликованные в Сети практически сразу друг за другом, дают существенно новый взгляд на криминалистические аспекты в работе SSD, или твёрдотельных устройств хранения данных, часто именуемых флэш-драйвами.
Внутренние механизмы работы SSD настолько существенно отличаются от традиционных накопителей на жёстких магнитных дисках, что криминалисты уже не могут опираться на нынешние технологии хранения данных в тех ситуациях, когда улики с носителей типа SSD фигурируют в судебных разбирательствах.
С другой стороны, фрагменты данных, хранимых в памяти флэш-драйвов, могут оказываться практически неуничтожаемыми.
Читать дальше →
Total votes 122: ↑109 and ↓13+96
Comments111

Доступно о криптографии на эллиптических кривых

Reading time37 min
Views255K
image


Тем, кто знаком с криптографией с открытым ключом, наверно известны аббревиатуры ECC, ECDH и ECDSA. Первая — это сокращение от Elliptic Curve Cryptography (криптография на эллиптических кривых), остальные — это названия основанных на ней алгоритмов.

Сегодня криптосистемы на эллиптических кривых используются в TLS, PGP и SSH, важнейших технологиях, на которых базируются современный веб и мир ИТ. Я уже не говорю о Bitcoin и других криптовалютах.

До того, как ECC стала популярной, почти все алгоритмы с открытым ключом основывались на RSA, DSA и DH, альтернативных криптосистемах на основе модулярной арифметики. RSA и компания по-прежнему популярны, и часто используются вместе с ECC. Однако несмотря на то, что магия, лежащая в фундаменте RSA и подобных ей алгоритмов легко объяснима и понятна многим, а грубые реализации пишутся довольно просто, основы ECC всё ещё являются для большинства людей загадкой.

В этой серии статей я познакомлю вас с основами мира криптографии на эллиптических кривых. Моя цель — не создание полного и подробного руководства по ECC (в Интернете полно информации по этой теме), а простой обзор ECC и объяснение того, почему её считают безопасной. Я не буду тратить время на долгие математические доказательства или скучные подробности реализации. Также я представлю полезные примеры с визуальными интерактивными инструментами и скриптами.
Читать дальше →
Total votes 127: ↑125 and ↓2+123
Comments73

Kademlia DHT: Основы

Reading time7 min
Views38K
Здравствуйте!
В этой статье, как и, надеюсь, в последующих, я хочу рассказать об одной из современных структурированных пиринговых сетей. Данный материал включает в себя мою переработку документаций, описаний и статей, найденных по теме. В качестве введения представлена общая краткая теория p2p-сетей, DHT, а уж затем следует основная часть, которой посвящена заметка.

Читать дальше...
Total votes 54: ↑52 and ↓2+50
Comments35

Кнопка выключения для Raspberry Pi

Reading time3 min
Views87K
Порты GPIO являются одними из главных преимуществ Raspberry Pi, недаром в более поздних версиях платы их количество было увеличено с 26 до 40. К сожалению, большинство подключаемых к ним плат (сенсорные экраны, светодиодные матрицы, платы расширения и т.д.), в целях совместимости со всеми моделями «малинки», используют только первые 26 контактов, оставляя остальные 14 «за бортом». Но мы не дадим пропасть добру! В данной статье я расскажу, как сделать кнопку выключения или перезагрузки на двух неиспользуемых портах. На самом деле функциональность кнопки может быть любой, зависит от вашей фантазии и потребностей.



Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments31

Исследование: мы не видим внеземной жизни, поскольку наша зародилась слишком рано

Reading time4 min
Views44K

Еще одно возможное решение парадокса Ферми




На Geektimes неоднократно публиковались статьи, в которых предлагалось решение так называемого парадокса Ферми. Сам парадокс формулируется следующим образом: «Если жизнь — распространенное явление во Вселенной, следовательно, в обозримой ее части должно существовать большое количество развитых цивилизаций, которые человек мог бы уже заметить. Но за десятки лет наблюдений за космосом этого не произошло». Именно поэтому Ферми и спросил: «Ну, и где они в таком случае?».

Предполагаемых ответов на этот вопрос множество, о некоторых из них можно прочитать здесь, здесь и здесь. Сейчас группа ученых из Гарварда дает еще один возможный ответ. Специалисты предположили, что цивилизации, которые мы могли бы заметить, просто еще не родились. По их мнению, высока вероятность того, что наша собственная цивилизация является наиболее развитой в обозримой части Вселенной. «Если вы хотите знать, когда жизнь начала зарождаться во Вселенной, то ответ — «сейчас»», – говорит Ави Лоэб, руководитель группы исследователей из Гарвард-Смитсоновского центра астрофизики. Авторы работы, опубликованной в «Journal of Cosmology and Astroparticle Physics», полагают, что в будущем жизнь будет зарождаться на других планетах чаще, чем это происходит сейчас или чем происходило в прошлом.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments336

Отстой ли XMPP?

Reading time6 min
Views35K
Я должен признаться, что написать эту статью я решил очень спонтанно, прочитав статью «XMPP отстой» и почувствовав некоторую близость к чувствам автора, так как также использую ХМРР в одном из наших продуктов. Тем не менее, сжав эмоции в кулак, я всё-таки решил просто изложить, почему я испытываю смешанные чувства к данному протоколу и разложить по полкам плюсы и минусы. Также расскажу, что мы выбрали для сервера и клиента. Это все, чтобы тебе, дорогой читатель, сделать правильный выбор и вырвать меньше волос в твоих будущих проектах.
Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments31

MaidSafe — распределённая система хранения и обработки данных

Reading time8 min
Views24K

MaidSafe – интересная распределённая система передачи и хранения данных. Мне понравилась эта идея и я захотел поделиться с общественностью. Компания MaidSafe зарегистрирована в Шотландии, и разрабатывает свой проект при поддержке спонсоров.

Обзор платформы


MaidSafe состоит из двух главных компонентов – сеть и клиентские приложения. Сеть находится в разработке, и планируется к выходу к концу 2014 года (уже доступны исходники для компиляции на github. Также готовятся к выпуску приложения, которые на примере покажут использование SAFE API и позволят всем создавать свои собственные приложения.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments9

Продолжаем ставить OpenWrt на всё что угодно. D-link DNS-320L

Reading time5 min
Views60K
Приобрел я этот NAS с четкой целью, он должен работать на OpenWRT. Сам я в linux не силен, так что собирал информацию по крупицам с интернета. В русскоязычной части ничего не было найдено, поэтому решил написать инструкцию для народа + сохранить что-то, так как памяти своей я не доверяю.

В итоге получился NAS, который загружает прошивку с внутренней памяти и монтирует жесткий диск, подключенный по usb, как основную память.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments20

Три редкоиспользуемые оси в XPath

Reading time2 min
Views80K
Основная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.

ancestor


Задача: получить атрибут id элемента-«прадеда» foo.

Обычно в таких случаях начинают рисовать лестницы:

../../../@id

Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:

ancestor::foo[1]/@id

Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments16

Wme2 — на что способен браслет от авторов первого iPhone: ЭКГ, давление и пульс из двух пальцев

Reading time16 min
Views53K
Глупые тесты про “Психологический возраст”, которые засорили весь эфир в социальных сетях, по сути могли иметь под собой серьезную медицинскую базу, и сегодня я расскажу вам о том, каков возраст моей вегетативной нервной системы, а сделаю это с помощью браслета Wme2.



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


Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments32

Учимся писать userscript'ы

Reading time7 min
Views291K
Доброго времени суток всем желающим приобщиться к миру пользовательских скриптов (они же userscript, userJS, юзерскрипты).

В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят!

Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru.
Поехали!
Total votes 144: ↑134 and ↓10+124
Comments44

Замечательное выступление настоящего программиста

Reading time1 min
Views150K
Не нашёл на хабре — спешу поделиться. Восхитительное выступление Александра Соловьёва ingspree на конференции JavaScript Frameworks Day 2013. На видео ниже просто набор отрывков из него, желающим посмотреть полностью — сюда.

Total votes 324: ↑272 and ↓52+220
Comments133

Цикл разработки через Github

Reading time3 min
Views105K

Разработка



Я расскажу о цикле разработки через Github, который я использую. Он был проверен в течении года на командах разного размера: 3 — 14 человек.

Существует 2 основных ветки: master и dev.

master — стабильная ветка, готовая к выкатыванию на production сервер в любой момент.

dev — ветка, над которой в данный момент работает команда.

Итак, в начале разработки master и dev ветки идентичны.

Читать дальше →
Total votes 102: ↑86 and ↓16+70
Comments59

Dalek.js — простое функциональное тестирование веб-приложений

Reading time2 min
Views23K
Вы знаете, что такое Selenium и/или PhantomJS? И с чем их едят? Тогда, возможно, вам будет интересен проект Dalek.js — кроссбраузерная утилита для тестирования веб-приложений.

Dalek.js позволяет писать тесты, которые ходят по веб-страничкам, щелкают ссылки, заполняют формы, отправляют данные и делают скриншоты. То же самое и даже больше делают тесты, написанные с использованием Selenium'а или Phantom.js, в чем подвох?

Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments26

Прослушка украинских мобильников: как это сделано и как защититься

Reading time6 min
Views92K
В лентах новостных сайтов вы уже не раз читали о том, как спецслужбы разных стран отслеживают переговоры и передачу данных обычных граждан. Сейчас набирает обороты новый скандал с прослушкой украинских абонентов, осуществляемой якобы с территории России.

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

Если коротко, схема такая. Атакующий внедряется в сеть сигнализации SS7, в каналах которой отправляет служебное сообщение Send Routing Info For SM (SRI4SM), указывая в качестве параметра телефонный номер атакуемого абонента А. В ответ домашняя сеть абонента А посылает атакующему некоторую техническую информацию: IMSI (международный идентификатор абонента) и адрес коммутатора MSC, который в настоящий момент обслуживает абонента.

image

Далее атакующий с помощью сообщения Insert Subscriber Data (ISD) внедряет в базу данных VLR обновленный профиль абонента, изменяя в нем адрес биллинговой системы на адрес своей, псевдобиллинговой системы.
Читать дальше →
Total votes 117: ↑90 and ↓27+63
Comments45

Wi-Fi сети: проникновение и защита. 3) WPA. OpenCL/CUDA. Статистика подбора

Reading time24 min
Views361K


Баста карапузики, кончилися танцы.

В предыдущей части мы детально рассмотрели «читерские» приёмы обхода «защит» (скрытие SSID, MAC-фильтрация) и защит (WPS) беспроводных сетей. И хотя работает это в половине случаев, а иногда и чаще — когда-то игры заканчиваются и приходится браться за тяжёлую артиллерию. Вот тут-то между вашей личной жизнью и взломщиком и оказывается самое слабое звено: пароль от WPA-сети.

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

К концу статьи вы поймёте, почему ленивый 20-значный пароль из букв a-z на пару солнц более стоек, чем зубодробительный 8-значный, даже использующий все 256 значений диапазона.

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
По традиции, под катом ещё 15 страниц
Total votes 168: ↑167 and ↓1+166
Comments57

Переезд проекта с SVN на Git

Reading time8 min
Views72K
image
Много лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
Читать дальше о том, как это делается от А до Я
Total votes 119: ↑113 and ↓6+107
Comments51

Функторы, аппликативные функторы и монады в картинках

Reading time5 min
Views192K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


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


Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Total votes 184: ↑175 and ↓9+166
Comments60

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity