Стандартный трюк по оборачиванию лестницы условий, по-моему даже свое название имеет. В Adobe SDK все примеры так обернуты, мы решили по стилю не выделяться.
Этот код я честно слямзил не помню где много лет назад, ну и обрезал по максимуму под свои нужды.
В демоне — очень даже помогает, тут и деманглинг и прочее, и 3rd party код показывает с именами и номерами строк. cmdFile содержит список нужных мне команд, в общем случае там bt + quit.
А вообще я насчитал 31 игру, в которые я успел плотно поиграть и пройти. Многие — не по одному разу. Из них вот эти — есть и сейчас и я них периодически отрываюсь
Blood — в dosemu
Doom — dengine.net, обновленные текстуры взяты там же
Duke — Eduke32
Quake I — darkplaces
JK StarWars — Wine (не только Dark Force но и с Кайлом Катарном и Джереком)
UFO — dosemu
Wolfenstein — Linux port
Как замена шаред-хостингу или простой vds-ке с LAMP унутре — облако подходит плохо, это общеизвестный факт. Но почему-то клиенты облачных «сервисов» хотят именно этого — даже амазон прогнулся со своими микроинстансами.
Облака тем ценны, что сервисы предоставляют, вообще-то. Которые серьезно экономят и время и деньги. Вот те которыми пользуюсь лично я в своих проектах, на примере амазона
еще бы цена за терабайт с EC2 была погуманнее — вообще было бы замечательно.
Или рэкспейсовских загонов поменьше — а то намедни увидел «у вас диск больше 80 гигов, я на горячую клон поднять не могу, слишком большой». А образ — создает, минут сорок шкрябало. Пришлось подымать из образа и потом синхронизировать, тьфу. Два часа коту под хвост.
Намедни искал себе смартфон без так бесящего меня тачскрина, с нормальной клавиатурой, влезающий в карман трусов. Пришлось купить нокию E72 — альтернативой был только RIM.
Что называется — сам в шоке, да.
Жутко подбешивает тот факт, что в полностью удовлетворяющей меня железке нет привычного андроида, зато архаичный симбиан в наличии.
Окаменел — в хорошем смысле, ибо выдерживает массу издевательств, даже особо изощренные. Ванильным ведром вот к примеру — выдерживает, по крайней мере еще лет пять назад — выдерживал.
В отличие от пи федоры, которая такого не прощает. Или новеля — суси. Они оба — с рождения перепатчены так, что от ванили там мало что остается. Конечно, там патчей много полезных и нужных, но попробуй их отдели от тонны трехстрочников, которые регулярно пролетают исключительно в LKML. ;-)
Вот кстати Линус тут открытым текстом над работой еще ведра 2.3 (ух, давно было!) заявлял — ванильное ведро оно для мейнтейнеров, на продакшен не ставьте. Ставьте с патчами Алана и К.
Ну, я-то еще в 90х наигрался с компиляциями и патчами, уже старый стал и ленивый ;-)
Кстати в любом случае я ваниллу не рекомендую, берите пачсет вашего дистрибутивного вендора. А то преценденты отвала юзерланда после переезда на ваниллу — они таки бывают не только в федорином горе. Если это не дебиан конечно, этому мамонту все едино, окаменел еще до рождения.
Если без хардкора — то работает из коробки, и апдейты ведер не приводят к необходимости шаманить. И новеай отключать в конфигах не надо, к слову.
Вот пару раз прилетал корявый апдейт libNVCtrl — да, это было неприятно. То месяцами живешь в s2disk, перезагружаясь только при апдейтах ядра и иксов, а тут — нате вам с кисточкой, перезагрузите. Перезагрузил — после того как из очередного засыпания монитор так и не проснулся, да.
(смотрит с ужасом) вы эту новую версию из ванильных сырцов собираете что-ли? 8-)
а насчет фуль-скрина — да, у некоторых казуальных игрушек есть такое. Не умеют xrandr очевидно. Приходится их в окошко указывать. Но тут не факт что это нвидия виновата — она-то честно expose всю нужную траву.
Вот если в конфиге это стандартное поведение запретить — то да, это содом выходит, но тут уж — у всех подряд крышу сносит.
а зачем эти ужимки и прыжки? Копируешь из knowledge base 2 строчки, и все.
sudo zypper addrepo ...
sudo zypper install ...
и проприетарная нвидия со своим драйвером уже на месте. Апдейты и прочее — в комплекте.
С двухмониторной конфигурацией тоже отлично — прицепил 2й монитор, запустил nvidia-settings, выбрал — что он физически справа от предыдущего, TwinView. Более того — у обоих мониторов совершенно разные разрешения — 1280*1024 и 1980*1200 соответственно.
KDE тут же разобралось что их два, прекрасно перекидывает мышкой окошки с одного на другой, максимизирует тоже не на два экрана сразу. Я даже ящик не перезагружал. Что с моим xrandr не так? OpenGL, Composite/Damage, Render — все на месте. Вайновые игры — в наличии.
А если еще про мак вспомним и его NSString / CFStringRef? Или всяких там плагинов под кроссплатформенный пакет?
Бывает, что конертация строк, путей, и прочего — pain in ass еще тот.
Вот к примеру частенько приходится тягать с собой гору всяких platform dependent traits в виде UTF16Char, UTF8Char и прочих, и в нужных местах переконвертировать системозависимым способом между std::[w]string, UTF{16|8}Char*, char*, wchar_t* и пр.
Оно конечно не так чтобы сложно, по надцатому-то разу, но ведь еще и изобретать приходится вот такое
public class MyKewlInputStream(const std::wstring&)
defined by system-specific implementation
что изрядно доставляет.
И не сказать чтобы такое счастье пишется один раз в пятилетку — большие старые пакеты предоставляют свои строки, свои стримы, свои конвертеры, и пр. и пр., которые как-то надо оборачивать. И из этих оберток — еще и системоспецифичные хэндлы, форки и дескрипторы торчат, как иголки из подушечки для булавок.
К примеру — адобовые PMString / WideString, PMStream.
Оборачивать приходится просто для того, чтобы не писать каждый раз нечто вроде такого
WideString wsFileName(fileName.c_str());
PMString pmFileName = PMString(wsFileName);
IDFile idFileName;
FileUtils::PMStringToIDFile(pmFileName, idFileName);
InterfacePtr<IPMStream> stream(StreamUtil::CreateFileStreamWriteLazy(
idFileName, kOpenOut | kOpenTrunc));
// Наконец-то у нас что-то system specific InDesign API и можно с этим работать
или такого (крестится)
#ifdef WINDOWS
// клятый фотошоп нам подсунул под виндой UTF16Char*
uint16* result = fSpec->mReference;
numUtf16 = (uint32)wcslen((const wchar_t*)result);
// для остроты ощущений это все еще в Java сунем
jstring filePath = env->NewString(result, numUtf16);
...
#else
// а под маком Fork aka FSIORefNum, добро пожаловать в отладчик
CFStringRef path = FSRefToCFString(&fSpec->mReference);
uint32 numUtf16 = (uint32)CFStringGetLength(path);
UniChar* result = nil;
if(numUtf16 > 0) {
result = new UniChar[numUtf16+1];
CFRange rangeToCopy;
rangeToCopy.location = 0;
rangeToCopy.length = numUtf16;
CFStringGetCharacters(path, rangeToCopy, result);
// для остроты ощущений это все еще в Java сунем
jstring filePath = env->NewString(result, numUtf16);
...
}
CFRelease(path);
#endif
Или вспомним мозилловые nsString / nsCString и конертации туда-сюда, NS_CStringToUTF16 и NS_LITERAL, NS_UTF16ToCString и прочие. А их же SOA и do_GetService()?
Я в свое время провел блиц-опрос — что вам бы хотелось хранить в облаке с домашнего компьютера, кроме рабочих файлов?
И на первое место вышли даже не фотографии, но — именно домашние медиа-коллекции. И аргумент убойный — если медиабиблиотеку собирал десять лет подряд, то она имеет большую субьективную ценность.
Выборка была нерепрезентативная — опрашивал я друзей и знакомых, подавляющим большинством там были айтишники.
Насколько я помню, ГЭС уже и так построены в большинстве пригодных мест, так что ресурс уже использован.
По солнечным батареям — в солнечных местах можно из них крыши делать, а вырабатываемую ими энергию — в электросеть подавать. Как раз дадут резерв по мощности, потребление днем выше. В Германии так делали, но излишки стало некудпа девать, емнип.
В упоминаемые 90е годы рисовать приходилось массу всего, начиная от тулбаров и заканчивая своими деревьями и таблицами. Занимало это уйму времени и в силу тормознутости тогдашнего железа еще и обвешивалось кучей хаков — эти события всегда считаем, а эти слишком старые, а тут вообще рыбу заворачиваем.
А уж развлечения на тему локализации — вообще превращались в нечто из области эзотерики. «Вот этот набор контролов есть только во французской версии», ага. И при поддержке 20ти языков — число формочек достигало невероятных цифр. И это — в Delphi, тогдашнем RAD нумер один.
Это сейчас хорошо — UTF рулит, а в 90е нарисовать на формочке одновременно японский и китайский было возможно только в том случае, если мы написали свой отдельный edit box с блэкджеком, полностью саморисованный.
Сравните с нынешней ситуацией — картинки подложить в случае если клиент некрофил ;-)
Я в свое время вообще шифрование прозрачное делал на уровне драйвера ФС пофайлово, чтобы незашифрованное до драйвера диска не долетало. И бонусом — эту шифрованную папку в дропбокс скармливал, только дропбокс запускал от другого пользователя, чтобы на лету не расшифровывало ;-)
В результате — сам сижу паном, работаю, а все кто не я — тем шифрованный контент.
Увы — при таком подходе замучился подпорки ставить, потому как размеры файла с точностью до байта выдержать надо было. Вот так в папочку кинешь зип, зайдешь — а тебе в ответ «corrupted end-of-central signature».
Впрочем, еще можно встретить вот такое
В MS DDK встречается в примерах.
Вообще, в деле запуска Java, для мака разницы немного, основных отличий — вот они
и вот это
Где функция
Этот код я честно слямзил не помню где много лет назад, ну и обрезал по максимуму под свои нужды.
В демоне — очень даже помогает, тут и деманглинг и прочее, и 3rd party код показывает с именами и номерами строк. cmdFile содержит список нужных мне команд, в общем случае там bt + quit.
Главное — strip не увлекаться ;-)
— Spien!!!
;-)
А вообще я насчитал 31 игру, в которые я успел плотно поиграть и пройти. Многие — не по одному разу. Из них вот эти — есть и сейчас и я них периодически отрываюсь
Blood — в dosemu
Doom — dengine.net, обновленные текстуры взяты там же
Duke — Eduke32
Quake I — darkplaces
JK StarWars — Wine (не только Dark Force но и с Кайлом Катарном и Джереком)
UFO — dosemu
Wolfenstein — Linux port
это не считая тетриса и вторых героев в телефоне.
Облака тем ценны, что сервисы предоставляют, вообще-то. Которые серьезно экономят и время и деньги. Вот те которыми пользуюсь лично я в своих проектах, на примере амазона
— Cloudfront
— S3
— RDS (лицензионный оракел в комплекте)
— Beanstalk
— EC2
— Cloudwatch
— LBS
— SNS
еще бы цена за терабайт с EC2 была погуманнее — вообще было бы замечательно.
Или рэкспейсовских загонов поменьше — а то намедни увидел «у вас диск больше 80 гигов, я на горячую клон поднять не могу, слишком большой». А образ — создает, минут сорок шкрябало. Пришлось подымать из образа и потом синхронизировать, тьфу. Два часа коту под хвост.
— И что это было, Бэрримор?
— Темза, сэр!
;-)
Что называется — сам в шоке, да.
Жутко подбешивает тот факт, что в полностью удовлетворяющей меня железке нет привычного андроида, зато архаичный симбиан в наличии.
Эх, нокиЯ…
В отличие от
пифедоры, которая такого не прощает. Или новеля — суси. Они оба — с рождения перепатчены так, что от ванили там мало что остается. Конечно, там патчей много полезных и нужных, но попробуй их отдели от тонны трехстрочников, которые регулярно пролетают исключительно в LKML. ;-)Вот кстати Линус тут открытым текстом над работой еще ведра 2.3 (ух, давно было!) заявлял — ванильное ведро оно для мейнтейнеров, на продакшен не ставьте. Ставьте с патчами Алана и К.
Кстати в любом случае я ваниллу не рекомендую, берите пачсет вашего дистрибутивного вендора. А то преценденты отвала юзерланда после переезда на ваниллу — они таки бывают не только в федорином горе. Если это не дебиан конечно, этому мамонту все едино, окаменел еще до рождения.
Если без хардкора — то работает из коробки, и апдейты ведер не приводят к необходимости шаманить. И новеай отключать в конфигах не надо, к слову.
Вот пару раз прилетал корявый апдейт libNVCtrl — да, это было неприятно. То месяцами живешь в s2disk, перезагружаясь только при апдейтах ядра и иксов, а тут — нате вам с кисточкой, перезагрузите. Перезагрузил — после того как из очередного засыпания монитор так и не проснулся, да.
а насчет фуль-скрина — да, у некоторых казуальных игрушек есть такое. Не умеют xrandr очевидно. Приходится их в окошко указывать. Но тут не факт что это нвидия виновата — она-то честно expose всю нужную траву.
Вот если в конфиге это стандартное поведение запретить — то да, это содом выходит, но тут уж — у всех подряд крышу сносит.
а зачем эти ужимки и прыжки? Копируешь из knowledge base 2 строчки, и все.
и проприетарная нвидия со своим драйвером уже на месте. Апдейты и прочее — в комплекте.
С двухмониторной конфигурацией тоже отлично — прицепил 2й монитор, запустил nvidia-settings, выбрал — что он физически справа от предыдущего, TwinView. Более того — у обоих мониторов совершенно разные разрешения — 1280*1024 и 1980*1200 соответственно.
KDE тут же разобралось что их два, прекрасно перекидывает мышкой окошки с одного на другой, максимизирует тоже не на два экрана сразу. Я даже ящик не перезагружал. Что с моим xrandr не так? OpenGL, Composite/Damage, Render — все на месте. Вайновые игры — в наличии.
Про «нормальный фреймбуфер» — это что?
Бывает, что конертация строк, путей, и прочего — pain in ass еще тот.
Вот к примеру частенько приходится тягать с собой гору всяких platform dependent traits в виде UTF16Char, UTF8Char и прочих, и в нужных местах переконвертировать системозависимым способом между std::[w]string, UTF{16|8}Char*, char*, wchar_t* и пр.
Оно конечно не так чтобы сложно, по надцатому-то разу, но ведь еще и изобретать приходится вот такое
что изрядно доставляет.
И не сказать чтобы такое счастье пишется один раз в пятилетку — большие старые пакеты предоставляют свои строки, свои стримы, свои конвертеры, и пр. и пр., которые как-то надо оборачивать. И из этих оберток — еще и системоспецифичные хэндлы, форки и дескрипторы торчат, как иголки из подушечки для булавок.
К примеру — адобовые PMString / WideString, PMStream.
Оборачивать приходится просто для того, чтобы не писать каждый раз нечто вроде такого
или такого (крестится)
Или вспомним мозилловые nsString / nsCString и конертации туда-сюда, NS_CStringToUTF16 и NS_LITERAL, NS_UTF16ToCString и прочие. А их же SOA и do_GetService()?
(обратите внимание — в 10-строчнике мы видим 3 разных ns*String и const char* до кучи)
Как только склеиваем ежа с ужом — тут и начинаются три метра колючей проволоки.
Не Qt единым, что называется ;-)
И на первое место вышли даже не фотографии, но — именно домашние медиа-коллекции. И аргумент убойный — если медиабиблиотеку собирал десять лет подряд, то она имеет большую субьективную ценность.
Выборка была нерепрезентативная — опрашивал я друзей и знакомых, подавляющим большинством там были айтишники.
Но тем не менее.
Хэши файлов сравниваются по идее до шифрования а не после. Вуаловцы себе не враги — хранить кучу раз одно и то же.
Результат — несмотря на супермощное шифрование, компания точно знает, что ты залил в облако нелицензионный контент.
(переходит к обычному состоянию)
По солнечным батареям — в солнечных местах можно из них крыши делать, а вырабатываемую ими энергию — в электросеть подавать. Как раз дадут резерв по мощности, потребление днем выше. В Германии так делали, но излишки стало некудпа девать, емнип.
В упоминаемые 90е годы рисовать приходилось массу всего, начиная от тулбаров и заканчивая своими деревьями и таблицами. Занимало это уйму времени и в силу тормознутости тогдашнего железа еще и обвешивалось кучей хаков — эти события всегда считаем, а эти слишком старые, а тут вообще рыбу заворачиваем.
А уж развлечения на тему локализации — вообще превращались в нечто из области эзотерики. «Вот этот набор контролов есть только во французской версии», ага. И при поддержке 20ти языков — число формочек достигало невероятных цифр. И это — в Delphi, тогдашнем RAD нумер один.
Это сейчас хорошо — UTF рулит, а в 90е нарисовать на формочке одновременно японский и китайский было возможно только в том случае, если мы написали свой отдельный edit box с блэкджеком, полностью саморисованный.
Сравните с нынешней ситуацией — картинки подложить в случае если клиент некрофил ;-)
А вот если их будет 50%, то акций «еще надцать гигабайт бесплатно тем кто сказал три раза ку» станет поменьше.
В результате — сам сижу паном, работаю, а все кто не я — тем шифрованный контент.
Увы — при таком подходе замучился подпорки ставить, потому как размеры файла с точностью до байта выдержать надо было. Вот так в папочку кинешь зип, зайдешь — а тебе в ответ «corrupted end-of-central signature».
Так что хорошую идею отложил в долгий ящик.