Pull to refresh
4
0

User

Send message

Ядерная авария на комбинате «Маяк» или «Кыштымская трагедия»

Reading time8 min
Views96K
Введение

Химкомбинат «Маяк» (Комбинат №817), расположенный в городе Озёрск (Челябинская область, Российская Федерация), или же Челябинск-40 (1948-1966), или же Челябинск-65 (1966-1994), или же «Сороковка» (как город именовали его жители), широкую известность получил в СССР только в 1989 году. До этого про него знали лишь немногие. Тем более про то, что произошло на данном комбинате 29 сентября 1957 года: одна из самых больших ядерных катастроф в истории человечества. И если про события на четвертом энергоблоке на АЭС в Чернобыле 26 апреля 1986 года знает каждый школьник и житель страны, то про сентябрьские события 1957 года на секретном химкомбинате в Уральских горах известно лишь некоторым.
Скажу честно, что промышленность – это совсем не моя тема. Но так самая страшная ядерная катастрофа произошла на энергетическом объекте, то тематика таких аварий интересна и энергетикам.

Читать дальше →

NVIDIA GTX 970 — практика ущербности, часть 2

Reading time9 min
Views47K
Всем привет! Это третья, заключительная часть материала о производительности видеокарты NVIDIA GTX 970. В первой части мы говорили о поколениях видеочипов, внутреннем устройстве GTX 970 и причинах шума на тему трёх с половиной гигов, во второй — изучали, насколько это виляет на производительность и что намерили всякие железячные издания, а сегодня займёмся непосредственно испытаниями и посмотрим, в чём GTX 970 хороша, а в чём — не очень.


Поехали!

NVIDIA GTX970 — практика ущербности, часть 1

Reading time9 min
Views37K
Недавно мы говорили о видеокартах, подробно изучали внутренний мир NVIDIA GTX 970 и причины некоторого… возмущения публики относительно её объёмов памяти. GTX 970 действительно имеет на борту все 4 гигабайта памяти, но на полной скорости доступны 3.5 ГБ – причину этого мы уже рассматривали, а сегодня посмотрим, так ли страшен чёрт, как его малюют.


Читать дальше →

NVIDIA GTX970 — теория ущербности

Reading time9 min
Views55K
В прошлой статье из цикла PC Buyer’s Guide о выборе видеокарты я получил множество интересных комментариев как в личных сообщениях, так и на почту, в скайп… где только можно. Кто-то указывал на неточности, некоторые просили помочь с выбором устройства под их конфиг. В общем, видимо, по видеокартам придётся пройтись глубже, раз тема так волнует.

Сегодня доступно поговорим о последних архитектурах карточек NVIDIA и постараемся понять, над чем смеялся усатый хохотун в этом видео:


Читать дальше →

STM32. Подключаем смарт-карты стандарта ISO7816

Reading time8 min
Views66K
О смарт-картах сказано уже немало, но процесс взаимодействия с картами на физическом уровне до недавнего времени оставался для меня загадкой. В своей статье я хотел бы осветить вопрос работы со смарт-картами по интерфейсу, описанному в части 3 стандарта ISO7816. Признаюсь честно, что потратил немало времени добывая информацию, а все оказалось предельно просто. Если интересно, давай под кат.

Читать дальше →

Храним 300 миллионов объектов в CLR процессе

Reading time5 min
Views35K

Камень преткновения — GC


Все managed языки такие как Java или C# имеют один существенный недостаток — безусловное автоматическое управление паматью. Казалось бы, именно это и является преимуществом managed языков. Помните, как мы барахтались с dandling-указателями, не понимая, куда утекают драгоценные 10KB в час, заставляя рестартать наш любимый сервер раз в сутки? Конечно, Java и C# (и иже с ними) на первый взгляд разруливают ситуацию в 99% случаев.

Так-то оно так, только вот есть одна проблемка: как быть с большим кол-вом объектов, ведь в том же .Net никакой магии нет. CLR должен сканировать огромный set объектов и их взаимных ссылок. Это проблема частично решается путём введения поколений. Исходя из того, что большинство объектов живёт недолго, мы высвобождаем их быстрее и поэтому не надо каждый раз ходить по всем объектам хипа.

Но проблема всё равно есть в тех случаях, когда объекты должны жить долго. Например, кэш. В нём должны находиться миллионы объектов. Особенно, учитывая возрастание объемов оперативки на типичном современном серваке. Получается, что в кэше потенциально можно хранить сотни миллионов бизнес-объектов (например, Person с дюжиной полей) на машине с 64GB памяти.

Однако на практике это сделать не удаётся. Как только мы добавляем первые 10 миллионов объектов и они “устаревают” из первого поколения во второе, то очередной полный GC-scan “завешивает” процесс на 8-12 секунд, причём эта пауза неизбежна, т.е. мы уже находимся в режиме background server GC и это только время “stop-the-world”. Это приводит к тому, что серверная апликуха просто “умирает” на 10 секунд. Более того, предсказать момент “клинической смерти” практически невозможно.
Что же делать? Не хранить много объектов долго?

Зачем


Но мне НУЖНО хранить очень много объектов долго в конкретной задаче. Вот например, я храню network из 200 миллионов улиц и их взаимосвязей. После загрузки из flat файла моё приложение должно просчитать коэффициенты вероятностей. Это занимает время. Поэтому я это делаю сразу по мере загрузки данных с диска в память. После этого мне нужно иметь object-graph, который уже прекалькулирован и готов “к труду и обороне”. Короче, мне нужно хранить резидентно около 48GB данных в течении нескольких недель при этом отвечаю на сотни запросов в секунду.

Вот другая задача. Кэширование социальных данных, которых скапливаются сотни миллионов за 2-3 недели, а обслуживать необходимо десятки тысяч read-запросов в секунду.
Читать дальше →

IBM-PC-несовместимые шутеры

Reading time8 min
Views20K
Так уж устроено в мире, что, заметив чей-либо успех, завистники и просто предприимчивые люди начинают из кожи вон лезть, чтобы в кратчайшие сроки подняться на гребень той же волны или хотя показать из воды голову. В киноиндустрии за примерами ходить не надо — вспомнить фильм «Челюсти», который запустил карьеру Стивена Спилберга, а также машину по производству картин на ту же тему. Челюстеподобные фильмы выходили на экран с завидной регулярностью до начала 80-х, эксплуатируя тему не только кровожадных акул, но и других обитателей морских глубин. То же самое произошло и со «Звёздными войнами», до которых снимать масштабную кинофантастику было не особо популярным делом. А успех независимого австралийского «Безумного Макса» открыл путь на экран массовому бюджетному постапокалипсису. Другим ярким примером можно назвать целый ряд фильмов, посвящённых подводной фантастике и монстрам: Бездна, Левиафан, Глубоководная Звезда Шесть и другие, — появившихся с минимальной разницей во времени, в районе 90-го года, чуть ли не пять кинолент подряд. Странное «совпадение», не находите?

DOOM and Wolfenstein box

В игроиндустрии дела обстоят немногим иначе. Вспомним, к примеру, Wolfenstein 3D или Doom. Что мешало создать похожую популярную игру раньше? Ограничения технологии? Возможно. Слабая производительность компьютеров в 3D? Тоже вариант. Нежелание издателей вкладываться в непонятный для них сегмент? Очень может быть.

Но с выходом этих игр, причём в shareware, избранной форме независимых разработчиков, и их ошеломляющим успехом пришло понимание, что надо осваивать невспаханное поле. ID Software просто распространяли свой пробный эпизод по сети, закачивая их на популярные в то время BBS и надеясь, что оттуда он пойдёт по рукам. Конечно, их также можно было купить и в магазине, но, чтобы подтолкнуть продавцов активнее заниматься PR'ом их проектов, они разрешали им оставлять всю выручку с продаж коробок с пробным эпизодом себе.

Wolfenstein 3D shareware screen

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

Читать дальше →

25 лет с «Хабблом»

Reading time13 min
Views19K

Самый знаменитый космический телескоп уже четверть века на орбите


24 апреля 1990 года на орбиту Земли был выведен космический телескоп, названный в честь американского астронома Эдвина Хаббла. С момента начала работы выросло уже целое поколение людей, которое принимает «Хаббл» за должное, поэтому легко забыть, насколько революционным был этот аппарат. На данный момент он всё ещё работает, возможно, он продержится ещё лет пять. В неделю телескоп передаёт примерно 120 гигабайтов научных данных, за время функционирования снимков набралось на более 10 тысяч научных статей.
40 МБ трафика

Тест для проверки цветового разрешения монитора или телевизора при подключении к компьютеру по цифровому видеоинтерфейсу

Reading time7 min
Views171K
«Кто нам мешает, тот нам поможет»
к/ф «Кавказская пленница»


Телевизор в качестве монитора?


В последние годы все более популярным становится использование телевизора в качестве домашнего компьютерного монитора.
И действительно — если еще несколько лет назад типичным для компьютерных мониторов Full HD разрешением (1920x1080) могли похвастаться лишь телевизоры с диагональю 40" и более, слишком большие для настольного монитора, то сейчас нетрудно найти телевизор с Full HD разрешением и с вполне «мониторной» диагональю 32" и меньше. Соответственно и размер пикселя при этом получается близким к «типовому» для настольных мониторов 0,28 мм ± 10% (ну, может быть чуть больше). А если кому-то такой пиксель покажется великоват, то с появлением доступных по цене бытовых телевизоров с разрешением 4k Ultra HD (3840x2160) размер пикселя вполне может конкурировать и с Retina.
К тому же широко распространенные в бытовых телевизорах IPS матрицы по компьютерным меркам считаются весьма «продвинутыми», и ими обычно оснащаются весьма дорогие «профессиональные» мониторы.
Казалось бы вот оно, идеальное решение для экономного домашнего пользователя — купить на грош пятаков небольшой (по телевизионным меркам) относительно недорогой 26"-37" бытовой телевизор с Full HD или Ultra HD разрешением, и в результате получить «компьютерный монитор» с большим (по компьютерным меркам) «профессиональным» IPS дисплеем, который к тому же без дополнительных вложений может быть использован и по прямому «телевизионному» назначению (что для дома тоже немаловажно!).
Однако иной раз результатом такого приобретения становится полное разочарование: компьютерная картинка на экране телевизора оказывается намного хуже, чем на простеньком старом мониторе, вместо которого этот телевизор собственно и приобретался.
Причин этого может быть множество, начиная от несоответствия разрешения соединяющего компьютер с телевизором видеоинтерфейса разрешению телевизионной матрицы, способности телевизора выводить картинку «пиксель-в-пиксель», настроек видеокарты (в частности, Overscan), настроек самого телевизора (например, резкости), проблем с кабелем, и так далее.
В данной статье мы рассмотрим только одну из возможных причин, а именно способность видеоинтерфейса, которым подключен телевизор или монитор к компьютеру, передать полное цветовое разрешение 4:4:4.

Для начала собственно тест:



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

Говорящая панда или что можно сделать с FFmpeg и OpenCV на Android

Reading time46 min
Views33K
Эта публикация о том, как можно в Windows скомпилировать библиотеку для обработки видео и аудио FFmpeg под Android в Eclipse с помощью NDK. Вы узнаете, как связать FFmpeg с библиотекой для обработки изображений OpenCV и как это всё можно использовать в Java-коде Android приложения. Всё это будет рассказано в контексте процесса создания Android приложения, основной функционал которого как раз и завязан на использовании этих библиотек и их взаимодействии. Итак, заинтересованных прошу под кат.
Читать дальше →

Подключаем оригинальные геймпады к ПК

Reading time6 min
Views862K
Привет, Geektimes! Сегодня, конечно, не пятница, но тема самая что ни на есть пятничная. Всем мы любим отдыхать, каждый делает это по-своему, и, разумеется, среди аудитории IT-ресурса есть как фанаты видеоигр, так и фанаты PC как игровой платформы. Спору нет, в шутеры и RPG/RTS играть на мышке с клавиатурой удобно, но есть целые жанры, где аналоговое управление с геймпада/джойстика/руля предпочтительней.



Сегодня мы разберёмся, как у нас обстоят дела с подключением самых популярных контроллеров к ПК: оригинальных геймпадов XBox 360, XBox One и PS3/PS4.
Lock and load

10 вещей, которых вы не знали о Java

Reading time8 min
Views106K
Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?

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

Как происходит рендеринг кадра видеоигры

Reading time5 min
Views66K
Deus Ex Human Revolution — это компьютерная игра 2011 года, которая является более успешным продолжением оригинальной Deus Ex, чем Invisible War. Но этот пост не о качестве игры, а о демонстрации её технических принципов. Адриан Курреж провёл несколько часов за реверс-инжинирингом, пытаясь понять с помощью инструмента Renderdoc, как происходит обработка каждого из кадров Human Revolution. Затем Адриан изложил результаты в своём блоге.
Осторожно, трафик

Простое объяснение движения денег в банковской системе

Reading time10 min
Views261K
От переводчика: В последние месяцы в жизнь многих людей прочно вошли новости сферы финансов. Одна из недавних тем — возможное отключение России от системы SWIFT. Угроза выглядит очень серьезно, но что на самом деле грозит стране, если события будут развиваться по этому сценарию? Наш сегодняшний материал призван помочь разобраться с тем, как все устроено в глобальном мире финансов.

На прошлой неделе [статья опубликована в ноябре 2013] Twitter сошел с ума из-за того, что кто-то перевел почти 150 миллионов долларов за одну транзакцию в криптовалюте. Появление такого твита было в порядке вещей:



Транзакция 194 993 биткоинов стоимостью в 147 миллионов долларов порождает много тайн и спекуляций

Было много комментариев о том, насколько дорого и сложно было бы это реализовать в обычной банковской системе, и, вполне возможно, что так оно и есть. Но при этом я обратил внимание вот на что: по своему опыту знаю, что почти никто не понимает, как на самом деле работают платежные системы. То есть: когда вы «перечисляете» денежные средства поставщику или «производите платеж» на чей-либо счет, как деньги переходят с вашего счета на счета других?

С помощью этой статьи я попытаюсь изменить ситуацию и проведу простой, но, надеюсь, не слишком упрощенный, анализ в этой области.
Читать дальше →

Промышленное использование C++ & OpenCV. Часть 1: Постановка задачи и методы реализации

Reading time2 min
Views38K
Чтобы не перегружать данную статью, разобью ее на 2 части:

1. Постановка задачи и методы реализации;
2. Программное распознавание и электроника.

Инженер


Начну с того, что я начинающий инженер. Будучи студентом устроился работать программистом на завод. Завод занимался производство лако-крышечных изделий. По простому: крышек для закаток.

Через некоторое время я получил задачу в любимом для многих свободном формате. Мне было позволено пофантазировать на эту тему и через некоторое время предоставить свои «мисли» по этому поводу.
Читать дальше →

Распознавание Паспорта РФ на мобильном телефоне. (UPD: 28.03.2015 + выложили программу в App Store)

Reading time8 min
Views64K
На сегодняшний день трудно найти человека, который хоть раз в жизни не сталкивался прямым или косвенным образом с распознаванием документов. Действительно, когда в мире для совершения любого сколь угодно серьезного дела необходима идентификация личности мы то и дело слышим «Можно ваш паспорт», чтобы очередной раз ввести ваши данные в компьютер с целью проверки разрешен ли вам вход, нет ли каких-либо неоплаченных долгов и так далее.
Читать дальше →

Обмен данными с использованием MPI. Работа с библиотекой MPI на примере Intel® MPI Library

Reading time9 min
Views37K


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

Мы приведем краткое описание того, как организован обмен данными в параллельных приложениях на основе MPI, а также ссылки на внешние источники с более подробным описанием. В практической части вы найдете описание всех этапов разработки демонстрационного MPI-приложения «Hello World», начиная с настройки необходимого окружения и заканчивая запуском самой программы.
Читать дальше →

Web-технологии глазами С++ программиста

Reading time5 min
Views57K
Год назад знакомые попросили сделать меня сайт с динамическим контентом. Тогда о Web я знал чуть больше чем ничего, но попробовать было интересно.

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

Надеюсь будет интересно Web разработчикам посмотреть на потуги С++ника, ну а С++ разработчикам узнать для себя что-то новое.

Что там у тебя...

Разработка простой игры в Code::blocks с использованием Direct3D 9

Reading time12 min
Views47K
Хочу рассказать о своем первом опыте в геймдеве. Сразу стоит оговориться, что статья будет чисто технической, поскольку моей целью было всего лишь получение навыков разработки графических приложений, использующих Direct3D, без привлечения высокоуровневых средств разработки игр типа Unity. Соответственно, никаких разговоров о внедрении, монетизации и раскрутке игры также не будет. Статья ориентирована на новичков в программировании приложений Direct3D, а также просто на людей, интересующихся ключевыми механизмами работы подобных приложений. Также в конце привожу список литературы по геймдеву, тщательно отобранный мной из более чем ста книг по программированию игр и компьютерной графики.
Читать дальше →

Objective-C Runtime для Си-шников. Часть 1

Reading time6 min
Views31K


При первом знакомстве с Objective C он произвёл на меня впечатление уродливого и нелогичного языка. На тот момент я уже имел достаточно сильную базу в C/C++ и ассемблере x86, а так же был знаком с другими высокоуровневыми языками. В документации писалось, что Objective C это расширение языка C. Но, как бы я ни старался, мне всё же не удавалось применить свой опыт в разработке приложений для iOS.

Сегодня он всё так же кажется мне уродливым. Но однажды окунувшись в глубины Objective-C Runtime я влюбился в него. Изучение Objective-C Runtime позволило мне найти те тонкие ниточки, которые связывают Objective C с его «отцом» — великолепным и непревзойдённым языком C. Это тот самый случай, когда любовь превращает недостатки в достоинства.

Если вам интересно взглянуть на Objective C не просто как на набор операторов и базовых фреймворков, а понять его низкоуровневое устройство, прошу под кат.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity