Экономия на расходных материалах. Научная нефантастика

Привет, GeekTimes! Расходы на печать, пожалуй – самая серьезная проблема, cвязанная с содержанием и использованием парка печатающих устройств. Нет такой компании, которая не стремилась бы снизить стоимость одного отпечатка бумажного документа. И нет такого дилетанта от ИТ, который бы не имел рецепта экономии.
Между тем, добиться реальной (и эффективной, не за счет качества печати или надежности техники) экономии можно благодаря соблюдению нескольких простых принципов.

08/25/2016 11:46:07
0

Неожиданное поведение WinAPI-функции IsWow64Process()

Эта заметка пишется для тех, кто когда-нибудь будет гуглить название WinAPI-функции IsWow64Process() в попытках понять, почему же она иногда работает не так, как это описано в MSDN. Вполне возможно, что это буду я сам через год-другой. Но, возможно, пригодиться и кому-то ещё.

Итак, о чём же идёт речь? Операционная система Windows, как известно, бывает 32-битной или 64-битной. На 32-битной Windows можно запустить только 32-битные приложения — а значит вопрос «это 32-битное приложение или 64-битное?» там попросту не имеет смысла, ответ известен заранее. Жизнь на 64-битном варианте Windows немного веселее — здесь можно запускать как 64-битные приложения (они считаются нативными), так и 32-битные, которые не являются родными для ОС, и выполняются они в специальной подсистеме WoW64 (Windows-on-Windows 64-bit). Подсистема эта включает в себя средства запуска 32-битного кода, отдельные ветки реестра и системные папки для работы 32-битных приложений в 64-битной среде.

Иногда бывает важно знать, является ли некоторый процесс, работающий в 64-битной Windows, действительно нативным 64-битным процессом, или WoW64-процессом (то есть 32-битным приложением, работающим в WoW64-подсистеме). Для этих целей Microsoft предлагает использовать функцию IsWow64Process(). Описание в MSDN достаточно детально, есть пара предупреждений на счёт способа её вызова, но в общём-то всё тривиально. Пример кода даже есть. Беда только в том, что в некоторых случаях эта функция врёт и определяет архитектуру процесса неверно.
08/25/2016 11:41:50
0

Использование триграмм для коррекции результатов распознавания


На рисунке выше изображены 8 возможных триграмм (N-граммы с N=3), приписываемое Вэнь-вану (Квадратно-круговое расположение взято из книги [1]



Естественные языки могут быть охарактеризованы распределением частот встречаемости своих элементов, таких как слова, отдельные буквы или последовательности букв (N-граммы). Формально N-граммой называется строка из N символов, принадлежащих некоторому алфавиту, состоящему из конечного числа символов. О теоретических и прикладных вопросах применения аппарата N-грамм для автоматической коррекции текста можно прочесть в работе [2].



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


08/25/2016 11:39:40
0

Способы интеграции с 1С

Какие важнейшие требования предъявляются к бизнес-приложениям? Одними из самых главных являются следующие задачи:
  • Легкость изменения/адаптации логики работы приложения к меняющимся бизнес-задачам.
  • Легкость интеграции с другими приложениями.

То, как решается в 1С первая задача, было кратко описано в разделе «Кастомизация и поддержка» этой статьи; мы еще вернемся к этой интересной теме в одной из будущих статей. Сегодня же речь пойдет о второй задаче, об интеграции.
08/25/2016 11:33:08
0

Из опыта использования SObjectizer: акторы в виде конечных автоматов – это плохо или хорошо?

Познакомив читателей с фреймворком SObjectizer, его возможностями и особенностями, можно перейти к рассказу о некоторых уроках, которые нам довелось усвоить за более чем четырнадцать лет использования SObjectizer-а в разработке C++ного софта. Сегодня поговорим о том, когда агенты в виде конечных автоматов не являются хорошим выбором, а когда являются. О том, что возможность создания большого количества агентов – это не столько решение, сколько сама по себе проблема. И о том, как первое соотносится со вторым...


08/25/2016 11:26:05
0

[Перевод] В защиту посредственности



Вот есть такой парень. Всемирно известный миллиардер. Технический гений, изобретатель и предприниматель. Физически развитый, талантливый и симпатичный, с такой точёной челюстью, будто сам Зевс спустился с Олимпа и самостоятельно высек из камня эту скотину.

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

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

Этот человек, как вы уже догадались, Брюс Уэйн. Также известный, как Бэтмен. И (спойлер) его не существует. Он выдуман.

Интересная грань человеческой натуры – нам необходимо придумывать персонажей, совершенных во всех смыслах и воплощающих всё, чего мы желаем сами. В средневековой Европе ходили истории о галантных рыцарях, убивающих драконов и спасающих принцесс. В Древнем Риме и Греции были мифы о героях, в одиночку выигрывавших войны и иногда сражавшихся против самих богов. В любой другой культуре полно таких выдуманных историй.
08/25/2016 11:24:29
0

[Перевод] Статическая и динамическая типизация

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



Тип — это коллекция возможных значений. Целое число может обладать значениями 0, 1, 2, 3 и так далее. Булево может быть истиной или ложью. Можно придумать свой тип, например, тип "ДайПять", в котором возможны значения "дай" и "5", и больше ничего. Это не строка и не число, это новый, отдельный тип.


Статически типизированные языки ограничивают типы переменных: язык программирования может знать, например, что x — это Integer. В этом случае программисту запрещается делать x = true, это будет некорректный код. Компилятор откажется компилировать его, так что мы не сможем даже запустить такой код. Другой статически типизированный язык может обладать другими выразительными возможностями, и никакая из популярных систем типов не способна выразить наш тип ДайПять (но многие могут выразить другие, более изощренные идеи).


Динамически типизированные языки помечают значения типами: язык знает, что 1 это integer, 2 это integer, но он не может знать, что переменная x всегда содержит integer.


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

08/25/2016 11:21:11
0

Блокчейн и финтех-хакатон в Университете Иннополис

image

17—18 сентября на площадке ИТ-вуза пройдёт первый в России хакатон, посвященный созданию новых продуктов для финтех-индустрии с использованием современных ИТ-решений и болкчейн-технологий. В программе: искусственный интеллект в жюри, средства на развитие продукта, подарки и финтех-воршкоп с экспертами венчурного фонда Life.SREDA и банка Barclays. Участие бесплатное. За подробностями добро пожаловать под кат.
08/25/2016 11:19:30
0

Fujitsu World Tour 2016: движемся к цифровой трансформации

Осенью мы вновь приглашаем всех причастных к развитию индустрии ИТ в России присоединиться к международной конференции Fujitsu World Tour 2016, которая будет проходить в Москве 20 сентября. И хотя конференция проходит каждый год уже в течение десятка лет (раньше она носила название Fujitsu IT Future, а еще раньше – MiniVisIT), мы еще никогда заранее подробно не рассказывали о ней участникам Хабра. В этом году мы решили исправить ситуацию.



Fujitsu World Tour охватывает весь мир: от Орландо (США) до Сиднея (Австралия), от Хельсинки (Финляндия) до Йоханнесбурга (ЮАР). Мы же хотим рассказать о том, что интересного будет на конференции, и зачем вам нужно там побывать.
08/25/2016 11:18:34
0

Нейросеть Google сжимает фотографии лучше JPEG


Фрагмент 32×32 пикселя оригинального изображения, сжатого разными методами. Иллюстрация: Google

Разработчики из компании Google поделились очередными достижениями в применении нейросетей для практических задач. 18 августа они опубликовали на arXiv научную статью «Сжатие полноразмерных изображений с помощью рекуррентных нейронных сетей» ("Full Resolution Image Compression with Recurrent Neural Networks"). В статье описан инновационный метод сжатия фотографий с помощью нейросети, показан процесс её обучения и примеры её работы.

Разработчики информируют, что это первая нейросеть в мире, которая на большинстве битрейтов сжимает фотографии лучше JPEG (по кривой скорость/искажение), при помощи энтропийного кодирования или без его помощи.
08/25/2016 11:10:28
0