Pull to refresh

Ссылочное из pdf файла

Reading time1 min
Views589
Очень мало в данной области выкладывается опытов и практических рекомендаций. Или просто мало встречал) Решил начать свою серию.

Есть западные рекомендации по нетривиальному наращиванию ссылочной массы, а именно создания pdf книжечки с полезными материалами и незамысловатой ссылкой внутри (хотя бы site.ru) как на источник.

Решил проверить на сколько это работает в нашей среде:

Читать дальше →
Total votes 6: ↑3 and ↓30
Comments8

Qt Framework: потоки, иерархический конечный автомат, работа с USB-устройствами = QThread + QStateMaсhine + libUSB

Reading time68 min
Views25K
Почти все разработчики программного обеспечения рано или поздно подходят к этапу, когда необходимо применить технологию распределения задач по отдельным потокам. Сейчас трудно представить разработку без применения того или иного фреймворка (framework).
Множество из них содержат необходимые инструменты для создания многопоточных приложений. Не исключение и Qt Framework.

Поговорим о методах Qt многопоточной разработки подробнее.

Сообщество разработчиков ПО на Qt Framework огромно. Люди охотно делятся навыками и приёмами создания многопоточных приложений. Существует множество замечательных книг и статей по вопросам изящного и не очень решения задачи работы с несколькими потоками.
Казалось бы, всё уже решено. Что ещё можно добавить?
Попробую описать работу потока на основе функционирования конечного автомата. Признаюсь, не находил материалы с подобным решением в сети.
Если статья поможет вам с идеей, что, по моему мнению, гораздо ценнее написанного кода, буду очень рад.

Выражаю отдельную благодарность А. Н. Боровскому за книгу «Qt4.7+.Практическое программирование на C++».
Рекомендую к обязательному прочтению!
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments28

Смотрите на свой Google календарь через календарь Висты

Reading time1 min
Views784
Одна из величайших вещей в Висте которую вы встретите, это iCal — встроенный календарь который позволяет вам подписаться на календари от сайтов третьих лиц, таких как Google, и получать от них апдейты. Если вам нравится Вистовский календарь, но при этом вы хотите принимать информацию из других интернет источников, то эта функция для вас. Например, Гугл позволяет вам быстро добавить событие в Гугл Календарь, но не в календарь Висты.

Дальше тут:
ru.vistarewired.com/2007/04/24/%d1%81%d0%bc%d0%be%d1%82%d1%80%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-%d1%81%d0%b2%d0%be%d0%b9-google-%d0%ba%d0%b0%d0%bb%d0%b5%d0%bd%d0%b4%d0%b0%d1%80%d1%8c-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%ba%d0%b0%d0%bb
Total votes 4: ↑1 and ↓3-2
Comments2

Об Intel Optane и прочих вариантах хранения информации

Reading time6 min
Views11K
Заинтересовала меня статья aisergeev об Intel с их технологией 3D XPoint. В статье указано, что это технология хранения информации не боящаяся утечки электронов, что в общем-то принято называть энергонезависимой памятью. Замечательно что подобные технологии приходят в нашу жизнь. На данный момент среди твердотельных энергонезависимых устройств хранения информации, наиболее широко распространены usb flash и ssd. Но, у них есть минусы в виде этой самой утечки электронов, что в свою очередь накладывает ограничения на срок хранения информации. Очевидно что Intel выпустил принципиально иной тип памяти, раз уж запись в нём не зависит от утечки электронов.

Очень меня заинтересовала как именно Intel создали свою память. Я поискал в сети и хочу поделиться с вами возможными вариантами этой технологии.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments25

Разбираем x.509 сертификат

Reading time11 min
Views217K

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments31

Книга «Аудит безопасности информационных систем»

Reading time11 min
Views18K
image В книге Никиты Скабцова (магистр CS, опыт работы инженером по информационной безопасности – 10 лет, преподаватель «компьютерные сети, операционные системы», сертификаты: CEH, CCSA, LPIC, MCITP) рассматриваются методы обхода систем безопасности сетевых сервисов и проникновения в открытые информационные системы. Информационная безопасность, как и многое в нашем мире, представляет собой медаль с двумя сторонами. С одной стороны, мы проводим аудит, ищем способы проникновения и даже применяем их на практике, а с другой — работаем над защитой. Тесты на проникновение являются частью нормального жизненного цикла любой ИТ-инфраструктуры, позволяя по-настоящему оценить возможные риски и выявить скрытые проблемы.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments4

На что способен мозг студента, познающего компьютерный мир

Reading time7 min
Views24K
Доброго времени суток.

Закончив писать очередной скрипт на Bash, понял, что всё должно быть совершенно иначе, однако всё работало. Хочу вам показать, какие непотребства и костыли написал я, дабы решить задачу, но пока не имея вагона знаний. Иначе говоря, карикатура на программирование.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments30

Компиляция. 6: промежуточный код

Reading time17 min
Views11K
Первый этап — разбор синтаксиса нашего джей-скрипа — пройден; подбираемся к генерации кода.

Начнём с генерации п-кода (промежуточного переносимого псевдокода) — нечто вроде «абстрактного машинного языка». Его выбирают так, чтобы
  • его было легко генерировать;
  • его было легко обрабатывать.
Обработка п-кода — это, как правило, его переработка в исполнимый машинно-зависимый код. Тем не менее, можно ограничиться лишь генерацией п-кода, и объявить его готовой скомпилированной программой. Запуск такой программы будет, по сути, интерпретацией п-кода. У этого подхода всё больше и больше сторонников; так что и мы для начала ограничимся компиляцией в п-код.

Далее в посте:

  1. Выбор кода
  2. Компиляция
  3. Выполнение
  4. Backpatching
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments14

Как работают квантовые компьютеры. Собираем паззл

Reading time33 min
Views243K


Квантовые компьютеры и квантовые вычисления — новый баззворд, который добавился в наше информационное пространство наряду с искусственным интеллектом, машинным обучением и прочими высокотехнологическими терминами. При этом мне так и не удалось найти в интернете материал, который бы сложил у меня в голове пазл под названием “как работают квантовые компьютеры”. Да, есть много прекрасных работ, в том числе и на хабре (см. Список ресурсов), комментарии к которым, как это обычно и бывает, еще более информативны и полезны, но картинка в голове, что называется, не складывалась.


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


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

Получилось или нет - решать, как обычно, вам.
Total votes 111: ↑111 and ↓0+111
Comments105

«Пишите письма…» или тренируемся работать с данными по обращениям граждан в правительство Москвы (DataScience)

Reading time19 min
Views5.8K
Приветствую коллеги! Пришло время продолжить наш спонтанный мини цикл статей, посвящённый основам машинного обучения и анализа данных.

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

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

Напомню, что наша статья рассчитана в первую очередь на начинающих любителей Python и его распространённых библиотек из области DataScience. Готовы? Тогда, милости прошу под кат.


Читать дальше →
Total votes 17: ↑11 and ↓6+5
Comments5

О судьбе отечественного оборудования для сетей 5G. Часть III Основные действующие лица

Reading time26 min
Views9.8K

И снова здравствуйте!

Первая часть. Обзор Рынка

Вторая часть. Внешние и внутренние противоречия

Третья часть. Основные действующие лица

Четвертая часть. Что есть базовая станция 4G/5G?

В прошлый раз мы рассмотрели внешние и внутренние противоречия, которые, как мне кажется, и породили саму тематику создания отечественного оборудования для сетей 5G.

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

Как обычно - буду рад конструктивной критике, обратной связи и дискуссии для дальнейшего углубления и улучшения материала.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments11

Компиляция программ с помощью Notepad++

Reading time17 min
Views55K

Компиляция программ при помощи текстового редактора на примере Notepad++




Цель: Научиться компилировать программы из командной строки. Научиться компилировать из текстового редактора Notepad++ (вернее научиться писать скрипты и связывать их), создавать скрипты и макросы, устанавливать системные переменные.

Сам текстовый редактор ничего не компилирует и не запускает. Также как и IDE не компилирует. Компиляция происходит с помощью компилятора. Выполнение производится некоторой средой выполнения. Это может быть интерпретатор команд или среда выполнения.
При компиляции программы на C# упаковываются в сборки. Код на языке IL автоматически преобразуется в код для конкретного процессора. Что относится к java, то скомпилированные файлы .class выполняется виртуальной машиной Java. Файлы .java компилируются в бай-код, то есть некоторый промежуточный код. Компиляция в exe файл тоже производится компилятором.

.EXE (сокр. англ. executable — исполнимый) — расширение исполняемых файлов, применяемое в операционных системах DOS, Windows, Symbian OS, OS/2 и в некоторых других, соответствующее ряду форматов. Процесс получения exe файла состоит из следующих этапов: препроцессинг, ассемблирование, компилирование, линковка.

ОUT файлы — исполняемые файлы для UNIX-подобных операционных систем.
Файл может хранить исполняемый код, общую динамическую библиотеку или объектный код.

Терминология

Читать дальше →
Total votes 27: ↑17 and ↓10+7
Comments51

Обзор примера применения обучения с подкреплением с использованием TensorFlow

Reading time21 min
Views46K
КПДВ. В Karpathy game играет нейронная сеть

Всем привет!
Я думаю, что многие слышали о Google DeepMind. О том как они обучают программы играть в игры Atari лучше человека. Сегодня я хочу представить вам статью о том, как сделать нечто подобное. Данная статья — это обзор идеи и кода примера применения Q-learning, являющегося частным случаем обучения с подкреплением. Пример основан на статье сотрудников Google DeepMind.
За подробностями добро пожаловать под кат
Total votes 22: ↑22 and ↓0+22
Comments15

Уменьшить использование оперативной памяти в Firefox 2.0 — проще простого!

Reading time1 min
Views469
После выпуска второй версии Файрфокса, незадачи с использованием очень большого количества оперативной памяти стали более проблематичными. В среднем, Firefox не должен занимать более 80MB вашей RAM. Любое число выше этого означает что вы — жертва Firefox’ового глюка с памятью. Вы наверняка уже видели много статей о том как от этого избавиться, но я пишу эту статью потому что ни один из этих способов для меня по настоящему не сработал. Эта статья немного другая — в нее я добавил несколько моих собственных ингридиентов для решения этой проблемы.

Читать тут: ru.vistarewired.com/2007/05/03/%d1%83%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b8%d1%82%d1%8c-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b9
Total votes 15: ↑3 and ↓12-9
Comments13

Защита от DDoS на уровне веб-сервера

Reading time5 min
Views46K
Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.

image

Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments4

Генерация родословного дерева на основе данных Wikipedia

Reading time22 min
Views6.3K
В этой статье я хочу показать, как с помощью фреймворка Selenium Webdriver можно, исходя из данных Wikipedia, составить генеалогическое древо заданной персоны (например, легендарного основателя первой династии русских правителей Рюрика).

В статье будет рассказано, как определить имя персоны, вычислить ссылки на страницы детей персоны, а также будет построен алгоритм генерации генеалогического древа.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments8

Использование хеш-значений с обработкой коллизий в качестве суррогатных ключей в справочниках DWH

Reading time7 min
Views4.1K

Общеизвестно, что в хранилищах данных для связи таблиц фактов со справочниками используются суррогатные ключи. В большинстве случаев это целочисленный счетчик, который взаимно однозначно определяет бизнес ключ (или бизнес ключ плюс зависимость от времени для медленно меняющихся справочников). С увеличением объемов обрабатываемой информации в случае большой кардинальности справочников использование счетчиков в качестве суррогатных ключей становится проблемой с точки зрения производительности, т.к. при загрузке фактов необходимо определить значение суррогатного ключа по довольно большому справочнику. Для решения этой проблемы многие компании переходят на формирование суррогатных значений на основе хеш-значений бизнес-ключей.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments13

Business Intelligence по-русски — на квинтетах

Reading time26 min
Views3.5K

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


Своим заказчикам мы обычно предлагаем достаточно мощный и гибкий инструмент BI, способный решить все их задачи, однако это — зарубежный коммерческий продукт, а клиентов всё чаще интересует тема импортозамещения. В рамках изучения наших перспектив в этом плане мы начали тестирование собственного инструментария BI, используя open-source решения и платформу разработки, построенную на квинтетах.




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

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments2

Автоматическое определение языка произвольного текста на РНР — библиотека PHPLangautodetect

Reading time15 min
Views20K
Знаете, работа с стартапе, который пытается создать что-то новое и уникальное на рынке очень захватывает. И не только открывающимися возможностями, но и часто нетривиальными задачами и вопросами, которые ставятся перед создателями и которые раньше никто не решал. Вот один из таких вопросов как раз вчера появился передо мной: дано нам произвольную строку текста, заведомо известно, что она может быть двух, а в некоторых случаях и трехъязычной, то есть там смешанный текст из нескольких языков. Необходимо прозрачно для пользователя определить язык, на котором написан текст.

На самом деле задача не такая и редкая — подобная функциональность есть и в текстовых редакторах, и в переключателе клавиатуры PuntoSwitcher, да и в системах машинного перевода такой функционал востребован, не говоря уже про системы поиска информации. Кстати, именно в контексте создания специализированного поисковика и классификатора текстов и появилась такая проблема. Необходимо было получить такую возможность в собственной программе на платформе РНР и при этом не задействовать сторонние сервисы — подобная возможность в виде веб-сервиса присутствует в Google Language API (в своём блоге я уже исследовал этот сервис), однако она выполняется удалённо и имеет некоторые существенные для нас ограничения, в частности, процедура опознания языка выполняется с существенной задержкой и асинхронна по своей природе. Кроме этого очень хотелось иметь полный контроль над процессом и иметь возможность его гибко настраивать, чего, увы, нет в сторонних сервисах. Поэтому пришлось подумать и попробовать реализовать собственными силами, результат же представляем вашему вниманию.
Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments45

Манхэттенский проект

Reading time10 min
Views11K
image

«Манхэттенский проект» (англ. Manhattan Project) — это кодовое название программы США по разработке ядерного оружия, осуществление которой началось 17 сентября 1942 года. Перед этим исследования велись в «Урановом комитете» (S-1 Uranium Committee, с 1939 года). В проекте принимали участие учёные из Соединённых Штатов Америки, Великобритании, Германии и Канады. В рамках проекта были созданы три атомные бомбы: плутониевая «Тринити» (взорвана при первом ядерном испытании), урановый «Малыш» (сброшена на Хиросиму 6 августа 1945 года) и плутониевый «Толстяк» (сброшена на Нагасаки 9 августа 1945 года).
Читать дальше →
Total votes 116: ↑98 and ↓18+80
Comments66
1
23 ...