Pull to refresh
  • by relevance
  • by date
  • by rating

Социальные сети — прогресс или деградация общества?

Lumber room
Заглянем в недалекое прошлое… Пионерский галстук, затем комсомол. Партия сказала «надо», комсомол ответил «есть». И на Марсе будут яблони расти.
Многие из нас воспитаны советской научно-фантастической литературой, ну и частично зарубежной в том числе. Что в ней было? В ней были роботы.
Читать дальше →
Total votes 36: ↑26 and ↓10 +16
Views 1.1K
Comments 56

Немного логики…

Entertaining tasks
image

Задача #2 «Позитивные автоматы»



Для тех, кто не хочет читать:

Найти значение выражения: |x — |y||
X, Y — любые целые ( и отрицательные тоже )

Ограничение: нельзя пользоваться sub, dec… и любое другое вычитание, нельзя пользоваться регистрами флагов и бинарными операциями. (в частности сдвигами)
Все что у вас есть: je, cmp (нельзя смотреть флаги), jmp, inc, mov. (я же сказал, немного)

Для того, что бы лучше разобраться в задаче:

Есть такая замечательная штуковина, называется:
Машина с неограниченными регистрами (МНР)
Итак, зачем это? Лично для меня — расшевелить мозги.

Теперь попробуем в деле!

Читать дальше →
Total votes 20: ↑16 and ↓4 +12
Views 1.8K
Comments 41

Кассовый аппарат

Interfaces *
image

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

Читать дальше →
Total votes 91: ↑72 and ↓19 +53
Views 1.5K
Comments 121

Платежной системе Cyberplat место в корзине?

Lumber room
image

Обратите внимание на лозунг «стойте в очередях» и иконку корзины Windows.
При мне какие-то ребята в магазине тупо нажимая во все части экрана завалили основное приложение, попали в Windows.
То, что видно на фотографии, получено принт-скрином с небольшим редактированием + изображение на рабочем столе, а само приложение не запущено, панель задач скрыта :) Жалко, видео не снял, ну может, в другой раз.
( Updated: в комментах народ поделился видео по результатам поста, вот оно: )



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

К автоматам ОСМП, например, таких претензий уже нет.
Total votes 51: ↑30 and ↓21 +9
Views 355
Comments 34

Размышления по поводу Автоматизации Саяно-Шушенской ГЭС

Project management *
Процесс автоматизации и внедрения АСУ крайне необходим. Ведь вручную управлять сложными комплексами практически невозможно (взять хотя бы АЭС). Но только после крупных техногенных катастроф осознаются ошибки и просчеты при ведении проекта Автоматизации.
Сегодня появились сведения, что перевод управления Саяно-Шушенской ГЭС в автоматический режим с 2006 г. осуществляла организация НПФ «Ракурс».
Подробнее см. статьи:
1. АСУ ТП гидрогенератора Саяно-Шушенской ГЭС — 16.01.2007;
2. «Ракурс» автоматизирует Саяно-Шушенскую ГЭС — 11.04.2007;
3. «Ракурс» модернизировал АСУТП Шушенской ГЭС — 05.09.2007;
4. НПФ «Ракурс» внедрил «ПТК ЭГР» на Саяно-Шушенской ГЭС — 12.09.2007.
Конечно всех ситуаций просчитать не возможно, но мне так думается, что автоматизацией крупных Электростанций, в частности ядерных, занимались в СССР еще 30 лет назад и за это время можно было накопить достаточно опыта в этой области.
А на поверку оказалось, что установленная АСУ на Саяно-Шушенской ГЭС если не привела к аварии, то очевидно оказалась совершенно беспомощной в аварийной ситуации:(
При возникновении аварийной ситуации одна из главных функций АСУ ГЭС это своевременное перекрытие затворов и ликвидация доступа воды на роторы и в машинный зал!
Чего АСУ на Саяно-Шушенской ГЭС не выполнила и аварийно-ремонтные затворы на водоводах гидроагрегатов были закрыты вручную. И только через 1 час после начала аварии был прекращен доступ воды в машинный зал с верхнего бъефа — см.: «Авария на Саяно-Шушенской ГЭС (2009)»:(
Читать дальше →
Total votes 34: ↑17 and ↓17 0
Views 1.4K
Comments 51

Ресурсосберегающий шредер за 100 тысяч долларов

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

image

Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Views 213
Comments 9

Фоторепортаж с битвы на советских игровых автоматах

Old hardware
Роботы против нас! Так гласила афиша, около которой штабелями падали молодые и не очень люди. Еще бы, ностальгия, по игровым автоматам у рожденных в 70-80 годах, течет в крови… наверняка все помнят как родители выволакивали детей из залов с игровыми автоматами и мотивировали к учебе в школе, в обмен на 15-ти копеечные монетки. Теперь когда эти дяди и тети смогли заработать себе немножко своих монеток, сообщество GeekyRussians устроили им невероятный праздник и пустили поиграть на автоматах столько, сколько угодно! Битва проходила в Музее Советских Игровых автоматов www.15kop.ru. Смотрим и завидуем…
image
Читать дальше →
Total votes 147: ↑139 and ↓8 +131
Views 2.9K
Comments 71

Асинхронный конечный автомат: идеология и технология

Designing and refactoring *Algorithms *
Sandbox

Вступление


Хорошо, когда твои подчиненные никогда не болеют, не умирают, всегда присутствуют на работе и выполняют твои распоряжения без предварительных приготовлений: «Вызвали — встань». Таковы, например, веб-сервисы, соблюдающие модель REST (которая, если отбросить специальную HTTP-терминологию, сводится к тому, что интерфейс сервиса фактически является интерфейсом контейнера данных).

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

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

Описываемая ниже архитектура асинхронного конечного автомата решает ряд стандартных проблем, возникающих при «лобовой» интеграции подсистем с учетом их внутреннего состояния. Самая заметная из таких проблем — это недостаточная разнесенность (я бы даже сказал — недостаточная «гальваническая развязка») сущностей сигнала и перехода между состояниями, из-за чего автомат становится неустойчивым к DoS-атакам. Есть и другие, менее очевидные — например, «недостаточно атомарная» замена узла подсистемы или используемого ей ресурса.

Анатомия (объектная декомпозиция)


Модель конечного автомата включает следующие базовые сущности:
  1. Состояние — это режим функционирования управляемой системы, отличный от других по предоставляемым возможностям. Таким образом, снапшоты кешей и буферов, варианты циклов «от забора и до обеда» и другие акциденции управляемой системы в понятие «состояния» не входят. В норме состояний должны быть считанные единицы; если счет пошел на второй десяток — скорее всего, управляемую систему следует раздробить или иерархизировать.
  2. Условие — это логическое значение (true или false) на одном из «входов» системы. Суперпозиция состояний всех входов автомата однозначно определяет целевое состояние автомата. Таким образом, любой входной сигнал, значимый для состояния автомата, в конечном счете сводится к установке значения одного или нескольких условий.
  3. Реакция — это отклик автомата на отличие текущего состояния от целевого. Принципиально различных видов реакции мы насчитали два с половиной: прямой переход между состояниями, маршрут и стоп-маршрут («кирпич»). Прямой переход может быть и пустой операцией (NOP) — например, в случае, если изменение входов вызвано уведомлением о завершении асинхронной операции.
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 12K
Comments 2

Обработка приватных данных на публичных вычислительных сетях

Cryptography *Programming *Algorithms *Mathematics *
Вычислительные системы прошли путь от мэйнфрэймов к персональным компьютерам, и теперь совершают обратный путь — от персональных компьютеров к мэйнфрэймам.
Массово предлагаются услуги для всех желающих по выполнению вычислений на высокопроизводительных компьютерах, реализованных в виде облачных и других систем, от компаний предоставляющих подобные сервисы в публичных сетях.
Однако использование публичных вычислительных сетей несёт для их потребителей риски:
  • Утечки приватных данных в процессе их обработки на внешнем устройстве или в процессе передачи данных;
  • Возможность наличия искажений в получаемых результатах вычислений на внешнем устройстве или в процессе передачи данных. При этом, даже многократный повтор вычислений с одними и теми же исходными данными не позволит обнаружить наличие этих искажений если они носят системный, а не случайный характер.

Мы не будем рассматривать вопросы утечки приватных данных или искажений в результатах вызванных в процессе передачи данных, оставляя эту тему классической криптографии по обеспечению закрытого канала связи требуемой степени надёжности.
Рассмотрим вопрос, когда сам внешний вычислитель может подвержен компрометации, и на нём самом возможны и анализ приватных данных в процессе обработки, и искажение результатов вычислений, и постараемся решить задачу, которую сформулируем следующим образом:
  • Требуется обеспечить механизм обработки приватных данных на внешнем вычислительном устройстве, который, при сохранении возможностей использования типовых алгоритмов, позволил бы сделать невозможным (то есть достаточно сложным) выявление значений приватных данных, а также позволял бы выявлять и исправлять возможные искажения в результатах вычислений, вносимые случайно или системно.
  • Поскольку, несомненно, потребуется некоторая дополнительная обработка заданий и результатов, на стороне потребителя, то желательно, чтобы сложность(цена, время) такой обработки была значительно меньше сложности(цены, времени) решения основной задачи – иначе у потребителя нет смысла для проведения вычислений на внешних публичных сетях.
  • Также, несомненно, может возрасти общее количество вычислений, отдаваемых на внешний вычислитель, поскольку любое внесение избыточности в исходные данные, либо с целью исключения их однозначного определения, либо с целью контроля за их достоверностью, несомненно потребует обработки большего количества информации. Однако, поскольку внешние вычислительные мощности могут быть увеличены только за счёт большей оплаты со стороны потребителя, то разумное увеличение стоимости не должно являться решающим фактором при выборе алгоритма механизма защиты данных.

Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Views 7.8K
Comments 29

Мысль — материальна: Алан Тьюринг как «универсальный вычислитель»

Cryptography *Programming *Algorithms *Mathematics *
image
Источник: geektimes.ru

В первой половине XX века, когда были изобретены первые вычислительные машины. Однако наряду с физически осязаемыми машинами появлялись и машины-концепции. Одной из них была «машина Тьюринга» — абстрактное вычислительное устройство, придуманное в 1936 году Аланом Тьюрингом — учёным, которого считают одним из основоположников информатики.

Его кругозор распространялся от квантовой теории и принципа относительности до психологии и неврологии. А в качестве способа познания и передачи своих знаний Тьюринг использовал аппарат математики и логики. Он находил решения, казалось бы, нерешаемых задач, но был сильнее всего увлечен идеей «Универсальной машины», способной вычислить всё, что в принципе вычислимо.
Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Views 41K
Comments 11

Автоматоны: 200-летние роботы

Robotics History of IT
Сложно удивить кого-то роботом. Они уже среди нас — работают на заводах, спасают людей в чрезвычайных ситуациях, разоружают бомбы, водят автомобили. Иногда удовлетворяют иные человеческие потребности.

Но как это выглядело пару сотен лет назад? Или четыре сотни лет? Да, тогда тоже были некоторые подобия роботов, механические устройства, напоминающие человека или животное. Они играли на музыкальных инструментах, писали пером, танцевали, рычали и совершали иные действия, способные повергнуть в шок простого обывателя. Сегодня говорим о механических монахах, откладывающих яйца утках и программируемых пишущих мальчиках.

image
Total votes 25: ↑24 and ↓1 +23
Views 28K
Comments 16

Муравейник или крепость? Строю дом по цене квартиры. 3 часть. Электроснабжение

DIY Electronics for beginners
Часть 1. Строительство
Часть 2. Отопление
Часть 4. Комфорт дома и гаджеты.

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

Total votes 55: ↑48 and ↓7 +41
Views 28K
Comments 210

Долой циклы, или Неленивая композиция алгоритмов в C++

Programming *C++ *Functional Programming *
"Кто ни разу не ошибался в индексировании цикла, пусть первый бросит в деструкторе исключение."

— Древняя мудрость

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


В конце концов, это просто некрасиво.


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


Данная работа ставит своей целью пролить свет на отнюдь не новую, но пока что не слишком распространённую идею, которая вполне способна произвести очередной прорыв в области написания программ на языке C++.


Так как же писать красивый, понятный, эффективный код, а также иметь возможность параллелить большие вычисления лёгким движением пальцев по клавиатуре?

Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Views 15K
Comments 47

Использование автоматных моделей в клинических системах поддержки принятия решений

Popular science
Sandbox
Привет, Хабр! Я – аспирант Университета ИТМО и вхожу в научную группу, которая занимается использованием искусственного интеллекта в медицине. Этим занимаются многие, но у нас есть, в том числе, и своя фишка – использование автоматных моделей в медицине. Я хочу немного рассказать об этом.
Читать дальше →
Total votes 3: ↑2 and ↓1 +1
Views 870
Comments 1

Мелани Митчелл, когда-то учительница математики, сегодня обучает ИИ мыслить аналогиями

SkillFactory corporate blog Reading room Popular science Artificial Intelligence Interview
Translation

Мы уже писали об учителе, который повлиял на развитие языка Си, а сегодня рассказываем о когда-то учительнице математики Мелани Митчелл, десятилетиями она работала над цифровым мышлением и считает, что ИИ никогда по-настоящему не будет похож на наш интеллект, пока не научится проводить аналогии. К запуску флагманского курса по Data Science, где мы учим понимать данные, делимся интервью и краткой биографией профессора. Интересно, что к моменту начала стажировки Мелани Митчелл прошла всего несколько курсов Computer Science.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 2.7K
Comments 7