Сложность компьютерных игр

Случайно нахлынула ностальгия по играм ZX Spectrum (именно с Pentagon 128 начинались мои первые погружения в виртуальные миры). В очередной раз установив эмулятор на ПК (кстати, рекомендую Spectraculator, как, на мой взгляд, лучший под Windows эмулятор ZX Spectrum) и загрузив несколько игр, которыми увлекался в детстве-юности в очередной раз поразился их хардкорности. Пройти их вот так просто, как проходят сейчас большинство игр просто невозможно, а некоторые пройти может реально только тот, кто посвятит этому долгие часы издевательства над клавиатурой или джойстиком.

0 + 0 -

Запуск SAP GUI из браузера

Во время работы над идеей сервиса по сбросу пароля в системах SAP R/3 возник вопрос — а как запустить SAP GUI с нужными параметрами из браузера? Поскольку в этой идее подразумевалось использование веб-сервиса, сначала отрабатывающего по запросу SOAP из SAP GUI и отправляющего письмо со ссылкой на веб-страницу со скриптом сброса пароля на начальный, а потом уже отображение пользователю сообщения об успешном сбросе пароля и отображение этого самого начального пароля, то хотелось, чтобы на этой странице была еще и ссылка на запуск SAP GUI. Причем, чтобы эта ссылка открывала нужную систему, да еще, желательно, сразу с заполненными полями логина и пароля: пользователю оставалось бы только дважды заполнить продуктивный пароль.

Запуск SAP Logon — для нашей цели был не интересен, а при запуске sapgui.exe невозможно было указать мандант и имя пользователя, зато можно было запустить систему не определенную в SAP Logon. С другой стороны, запуск SAP GUI с произвольными параметрами сервера был не особенно актуален: уж если мы решаем задачу сброса пароля пользователя, то скорее всего у него в SAP Logon уже есть нужная строка, с нужными ему настройками и не надо лезть со своими. Зато заданным требованиям удовлетворяла технология SAP GUI Shortcut и собственно программа sapshcut.exe, которая давала возможность запускать SAP GUI с использованием определенного «ярлыка».

 

0 + 0 -

Удаление «большого» манданта в SAP R/3 4.0

Давным-давно, в одной очень далекой Галактике… Тьфу, это что-то не то… Несколько лет назад, когда я еще был администратором базы данных Oracle и «сапёром» (администратором SAP R/3) мне понадобилось удалить один из мандантов в системе, в связи с тем, что этот мандант мигрировал на другой сервер и данные уже были не нужны, но место на дисковом массиве занимали. Проблема была ровно одна — данные в манданте занимали почти терабайт из 1.2 Тб общего размера всей БД. Остальная обвязка была следующая: Oracle 8.1.7, дисковый массив на полтора терабайта, и нет свободного места на других массивах.

Поскольку удаляемый мандант большой, то стандартный способ предлагаемый SAP не удачен — он реально пытается удалить данные в таблицах, что гарантирует не только его ОЧЕНЬ медленную работу но и забивание табличного пространства PSAPROLL, где хранятся сегменты отката (сделать его размером 100-200 гигабайт — не лучшая идея в нашем случае).

В итоге, после размышлений подумалось мне, что для данного случая больше подходит метод не удаления большей части данных, а выборки оставшихся данных и пересоздания таблицы со вставкой их обратно (CREATE TABLE NOLOGGING AS SELECT). Самое главное, что с помощью отказа от генерации redo-данных с помощью опции NOLOGGING можно сильно ускорить процесс. Единственное ограничение — данный метод не подходит для таблиц имеющих поля типа LONG, но, к счастью, их немного и они не такие огромные.

0 + 0 -

MySQL: Восстановление базы данных InnoDB из файлов .ibd

Дважды с проектом Hattrick Portal попадал в ситуацию «потери» файлов собственной базы MySQL (mysql) — СУБД переставало работать и рапортовало о том, что в первом случае таблицы innodb_index_statsinnodb_table_statsslave_master_info потеряны, а во втором, что таблицы servers и plugin. Объединяет эти два случая одно — эти таблицы на движке InnoDB. Если раньше все таблицы системной БД mysql были на движке MyISAM, то постепенно MySQL переводит все в InnoDB. С чем связаны были проблемы выяснить не удалось, но нужно было срочно восстанавливать работу СУБД. Быстрое гугление показало один простой вариант — прибиваем все файлы данных, запускаем СУБД с пустыми каталогами данных (она создает их по умолчанию), затем восстанавливаем всё из бэкапа. Но восстановить из бэкапа 10 Гб данных — это долгий процесс. И причем ещё — нужные данные-то у меня все на месте и не пострадали!

0 + 0 -

MySQL: Бэкап базы данных и его сжатие

Продолжу описывать конкретные ситуации, с которыми доводилось сталкиваться при работе с MySQL, и эта статья про резервирование БД на сервере под управлением Windows для проекта Hattrick Portal. Не буду подробно останавливаться на всех существующих инструментах резервирования MySQL, просто вкратце обозначу мои причины выбора утилиты mysqldump:

  • я использую движок MySQL InnoDB (а значит mysqlhotcopy не подходит);
  • она бесплатна и входит в поставку СУБД («горячее» снятие снэпшотов для InnoDB я не видел в бесплатном варианте, да и нужно оно в основном для быстрого переноса данных);
  • я снимаю бэкап всей БД (для отдельных таблиц есть операторы SELECT INTO OUTFILE и LOAD DATA INFILE);
  • может работать при работающей СУБД;
  • отставание бэкапа на день для меня не принципиально (т.е. инкрементные бэкапы не требуются);
  • даёт вполне понятный и разбираемый текстовый файл, который может пригодиться не только для восстановления БД.
0 + 0 -

MySQL: InnoDB и дефрагментация табличных пространств

Хочу сделать несколько заметок по MySQL, чтобы сохранить для себя информацию, а заодно ей поделиться со всеми. Информации в интернете по этим темам, конечно, полно, пусть будет ещё.

Я надеюсь, что все кто использует MySQL как реляционную СУБД для больших и нагруженных баз данных использует движок InnoDB. MyISAM я бы не стал для этого использовать, всё-таки скорость обновлений (из-за блокировки таблицы вместо строки) и отсутствие транзакций не подразумевает использование этого движка для чего-то кроме мелких проектов. Единственный плюс, из-за которого для системы электронного документооборота «Визирь» я использовал базу данных на движке MyISAM — это полнотекстовый поиск, в InnoDB он штатно не был предусмотрен.

Для перевода таблиц на движок InnoDB можно выполнить команду (но перед этим лучше прочитать статью целиком):

ALTER TABLE tablename​ ENGINE = InnoDB;
0 + 0 -

Статья на Хабр про СЭД «Визирь»

Написал на Хабр статью про свою систему электронного документооборота «Визирь» в честь 10-летнего юбилея завершения разработки системы (она, конечно, допиливалась и в 2010 году, но в основном только обвес — инструкции, инсталляционные скрипты и т.п.). Посвящена эта статья не сколько рассказу о самой системе и её возможностям (для этого есть сайт vizier.su), а, в основном, истории создания и объяснению причин, почему система получилась такой, какой она получилась.

  

0 + 0 -

Установка Internet Explorer 10 на Windows 7 SP1 без интернета

Случилось мне как-то устанавливать Internet Explorer 10 на компьютер без доступа к интернету. Зачем на компьютере без интернета IE10 спросите вы? Вообще-то я устанавливал Visual Studio 2013 Express и вдруг узнал, что без IE10 оно устанавливаться даже не собирается. Зачем именно Internet Explorer этой версии Visual Studio мне, например, тоже не совсем понятно…

Ну IE10 так IE10 подумал я, доставая дистрибутив и запуская его, думая что Windows 7 SP1 64-битный полностью удовлетворяет требованиям. Но не тут-то было. Попытавшись что-то закачать из интернета установщик прервался, заявив что перед установкой требуется обновить Internet Explorer:

 

1 + 0 -

Что такое API CHPP и с чем его едят

Как написано в разделе «О CHPP» на сайте www.hattrick.org:

CHPP («Certified Hattrick Product Provider») — сеть для программистов в сообществе Hattrick.

Что же это такое? В принципе, эта информация вполне открытая, узнать что это и зачем можно в разделе CHPP приложения — там есть такие разделы как: Что такое CHPP? и Как это работает. Если вкратце, то можно сказать так: поскольку команда разработчиков Hattrick не имеет возможности реализовывать любые пожелания пользователей по созданию дополнительных инструментов, помогающих им в этой игре, но заинтересована в том, чтобы такие инструменты существовали (понятно почему), то разработчикам предоставляется некое API, с помощью которого они могут получать данные из системы Hattrick и на основе этого реализовывать свои приложения. Получение данных, используя это API, реализовано отправкой запроса с параметрами на специальный веб-адрес CHPP Hattrick’а и получением в ответ xml-файла, содержащего нужную информацию.

CHPP 

1 + 0 -

Opera?

Давным-давно, когда версия Opera была еще 9-ой, я написал что-то типа статьи, в которой подчеркивал преимущества этого браузера (ну и его «особенности» тоже описывал). Ссылка сейчас такая: Тысяча и одна фича браузера Opera.

В начале 2013 года, а именно 13 февраля читаю на Habrahabr.ru статью 300 миллионов пользователей и переход на WebKit. Ну а основной посыл звучал так:

… все наши новые продукты будут использовать движок WebKit для рендеринга и V8 для обработки jаvascript. Они будут основаны на опенсорсном браузере Chromium и его компонентах. Конечно же, браузер — это гораздо больше, чем просто движок, поэтому все эти перемены для обычных пользователей произойдут где-то далеко под капотом. Такие пользователи заметят только улучшившуюся совместимость с сайтами, особенно мобильными, большинство из которых были как следует протестированы только в браузерах на WebKit…

0 + 1 -

Тест облака Microsoft Windows Azure для своих проектов

Как-то раз получив от Microsoft очередную рассылку WebsiteSpark по теме Windows Azure я решил проверить – подходит ли мне это “облако” как хостинг какого-нибудь моего приложения (демонстрационной версии системы документооборота “Визирь” и сайта “Портал Hattrick”). Целью было собственно выяснить – на что я смогу рассчитывать и сколько это стоит. Желательно же было вписаться в какую-нибудь минимальную сумму (например, shared-хостинг http://hattrickportal.pro обходился ровно в 120 руб. за месяц при неограниченном трафике, времени процессора и размере базы до 1 Gb).

0 + 0 -

История создания одного CHPP-приложения для Hattrick.org…

Всё началось с того, что я откликнулся на призыв тренера старшей сборной России (Spirit_of_Gold) о помощи в доработке трекера игроков сборных онлайнового футбольного менеджера Hattrick.org. С этой помощью особо не получилось – трекер уже писался на PHP, а я уже года с 2005 на нем ничего серьезного не делал и давно уже специализируюсь на ASP.NET. Тогда Spirit_of_Gold предложил писать что-нибудь другое, например, сайт со статистикой сборных – сначала России, а в будущем и всех остальных стран. Мне эта идея тоже показалась интересной (давно хотел попробовать что же за зверь такой — CHPP) и работа началась. Был конец февраля 2012 года.

 

0 + 1 -

Windows + бесплатные программы для программиста

Продолжаю начатую тему. В этот раз я рассмотрю вопрос о том, как выкручиваться программисту при условии работы в Windows и нежелания покупать софт домой для разработки программ. Поскольку я занимаюсь в основном разработкой Windows-приложений и Web-приложений, то в основном речь пойдет о них.
0 + 1 -

Windows + бесплатные программы для дома

Уже не первый месяц сижу на домашнем компьютере укомплектованным «честным» софтом: лицензионным, бесплатным или вообще opensource… «Несвободный» софт это в основном игры + кое-какие программы доставшиеся с оборудованием. В принципе всего хватает для обычного использования — игры, фильмы, музыка, фото. Ниже написано что и для чего использую...
0 + 0 -