Tuesday, August 30, 2011

Drop tables in Oracle

Just ran into the situation where I needed to drop all the tables in my test Oracle Database for my user. Of course, one of the ways would be to drop the user all together. But if for whatever reason you don't want to do that (you want to keep your procedures, packages, sequences, triggers, etc. etc.) you can just drop the tables. Run the following command:
select 'drop table '||table_name||' cascade constraints;' from user_tables;
and then execute the results of the query.
EASY!!!!

Monday, August 22, 2011

My First Attempt @ HDR!

Camera: Canon Rebel T1i
Lens: Sigma DG f/2.8-4.0
ISO: 800
f-Stop: 3.5
Exposure Bracketing: -2EV / optimal / +2EV

Friday, August 19, 2011

Добро Пожаловать в 80-ые!!!!

Самый разгар лета: шальной ветер поднимает с опостылевших тротуаров родного города удушливую пыль, тысячи машин изрыгают бензиновую гарь в пространство, а беспощадное солнце плавит остатки мозгов. Сомнений нет — пора в отпуск. Но куда?
   В деревню к бабушке? С палатками в лес? Авиарейсом на Бермуды?
   Скучно. Старо. Дорого.
   Стоп! А как насчет отпуска на солнечном побережье Vice City? Кристально чистая вода, лучшие ночные бары и стриптиз-клубы, стильные спортивные тачки, байки, вертолеты... и непередаваемая атмосфера 80-х: шикарные женщины, большие деньги, бешеный драйв погонь и перестрелок — плюс музыка на любой вкус все двадцать четыре часа в сутки.
   Все, что требуется от вас — это купить двухдисковый "билет" GTA: Vice City и, открыв бутылку холодного пива, приготовиться к незабываемому приключению.
   Теория перманентной революции
   Классики марксизма-ленинизма утверждали, что окончательная победа коммунизма возможна только в результате перманентной пролетарской революции во всем мире. Сомневаюсь, что ребята из Rockstar Games штудировали в детстве труды Маркса и Энгельса, но революция, имя которой — Grand Theft Auto, явно переросла масштабы единичного явления в игровой индустрии. Судите сами: год назад со стапелей Rockstar Games сходит GTA 3, и практически сразу же братская контора Illusion Softworks, вдохновленная успехом коллег, устраивает свой переворот под названием Mafia: The City of Lost Heaven. Но события на этом не заканчиваются, напротив — оба разработчика, не успев прочистить уши от бурных, несмолкающих аплодисментов, тут же принимаются за продолжения — Mafia 2 и GTA: Vice City. Случайность? Нет — закономерность! И вот томительные месяцы ожидания позади: Vice City отправляется в свободное плавание — сначала на приставках, а теперь и на PC.
   "Подумаешь, очередной аддон", — скажете вы. И будете не правы. Как полномочный представитель народного комиссариата по виртуальным извращениям, со всей ответственностью заявляю: GTA: Vice City — это самое настоящее продолжение революционной борьбы с ванильной политкорректностью, ханжеством, лицемерием, скукой и банальной человеческой глупостью.
- Поездки по ночному городу - зрелище неописуемой красоты: огни витрин, слепящий свет фар встречных автомобилей и отсветы неоновых вывесок на кузовах машин.
Но, чу! Я уже отчетливо слышу хамский вопрос: "А где доказательства?!" Будут и доказательства, товарищи — дайте только маузер из кобуры достать, а еще лучше — базуку.
   Итак, граждане геймеры, есть ли среди вас желающие оспорить главные достоинства GTA 3, а именно — потрясающую свободу действий, превосходный набор разнообразных миссий, непередаваемый азарт погонь, замечательный саундтрек и немеренные дозы черного юмора? Или, может быть, кто-то рискнет возвести поклеп на ее сюжетные достоинства и потрясающую кинематографичность?   
   Â Vice City не только старательно растиражированы удачные находки предыдущей части, но и щедро добавлены новые игровые элементы, которые мы подробно рассмотрим чуть ниже. Самых нетерпеливых спешу заверить — разработчики сдержали абсолютно все свои обещания. Да, город стал в два раза больше. Да, в игре теперь действительно сто двадцать различных транспортных средств (зануды могут пересчитать самостоятельно). Да, в нашем распоряжении появились мотоциклы, вертолеты и нормальные самолеты, а не куцекрылый Dodo, по летным качествам сравнимый разве что с топором. Расширился пешеходный "зоопарк", миссий стало в несколько раз больше, деньгам придумано достойное применение (они теперь в основном тратятся на покупку недвижимости), арсенал увеличен, графика подрихтована, музыки стало еще больше, а видеовставки грузятся с винчестера буквально одна за одной. Но и это далеко не все.
   Начнем с самого нежданного сюрприза, а именно — с сюжета, который в новом GTA вполне готов потягаться на равных с почти что кинематографичной "Мафией".
   На свободу — с чистой совестью
   Итак, товарищи автоугонщики, киллеры, наркодилеры и тунеядцы... Теперь у вас есть имя — Томми Версетти. Судьба ваша — трагична, но предсказуема: за плечами 15 лет в колонии строгого режима. И за что? А ни за что — весь срок пришлось отмотать за главных боссов некой Семьи: сицилийские доны, как известно, на тюремных нарах париться не привыкли. И вот долгожданное освобождение — которое приходится аккурат на середину безумных 80-х: Рональд Рейган, Миша Горбачев, расцвет колумбийской наркомафии, торжество коррупции, хэви-метал и прочие радости жизни. Однако после долгой отсидки определенно нечем заняться.
   Варианты с покупкой собственного ранчо, государственной службой и учебой в Гарварде отпадают сами собой: на трапе самолета нас уже встречают старые "друзья". И деловое предложение уже тут как тут: за хорошее вознаграждение проследить за проведением "скромной" сделки между двумя наркоторговцами. Ну разве можно отказаться от такой заманчивой работенки? И всего-то делов — приехать с ребятами на стрелку, постоять две минуты и тут же в город — тратить деньги на виски и женщин. Но с бесплатным сыром случаются обломы даже в играх: какие-то мрачные парни в масках и со штурмовыми винтовками наперевес уже ждут нас в засаде — и в самый ответственный момент, перестреляв всех, как куропаток, исчезают в каменных джунглях большого города, умыкнув чемодан баксов и чемодан кокса. Наш босс — Санни — настойчиво (с истеричными нотками в голосе) требует вернуть товар и деньги обратно.
   Разумеется, в первую очередь вам нужна информация — кто стоит за этой подставой? Не менее очевидно и то, что такую информацию могут дать только собратья по ремеслу, то есть — местные бандиты.
- Одно из достоинств мотоцикла - компактность: протиснуться на узкой дороге между двумя автомобилями не составляет никакого труда.
Ну и уж совсем кристально ясно, что никто информацией за "просто так" делиться не будет. Вот и придется, засучив рукава, подряжаться на работу к местным мафиози: то танк им угони, то прикрытие обеспечь, то заставь замолчать какого-нибудь болтуна. Насовсем.
   Одним словом, сюжет практически с самого начала игры стремительно начинает ветвиться, как молодое деревце, посаженное в плодородную почву. Через несколько часов игры, выполняя очередную миссию, начинаешь потихоньку забывать, из-за чего, собственно, разгорелся весь сыр-бор.
   Кто-то возразит: наркотики, чемоданы с деньгами, мафия... как старо и банально! Определенная доля истины в этом, безусловно, есть. Но, скажем откровенно, сюжеты других игр и кинофильмов также не блещут особой оригинальностью. Главное значение играет не сюжет, а его реализация. И с этим у Vice City полный порядок: старые криминальные мотивы в игре покрашены новыми красками и буквально блестят на жарком солнышке курортного города.
   А вы бывали на Гаити?
   Как известно, прообразом города в Grand Theft Auto 3 был Нью-Йорк — далеко не самое лучшее место для отдыха и развлечений. Разработчики справедливо решили, что есть места и повеселее, и посимпатичнее "большого яблока", и поэтому прообразом для Vice City стал Майями.
   Элитные пляжи и роскошные виллы, праздношатающиеся туристы и аппетитные девушки в бикини, небоскребы с вертолетными площадками в деловой части города и дорогие авто... Ну и непременные атрибуты любого современного мегаполиса — аэропорты, свалки, трущобы и многое, многое другое. Пожалуй, большее разнообразие придумать уже невозможно. Разумеется, весь Майями на игровые диски не влез, поэтому в игре смоделированы две основных зоны — курортная (с пляжами, барами, гольф-клубом, отелями и коттеджами) и деловая (с небоскребами, спальными районами, доками и аэропортом).
   Первое, на что обращаешь внимание в Vice City — это основательность (я бы даже сказал — монументальность) моделирования окружающей среды. Не забыты даже несущественные на первый взгляд детали, на которых, тем не менее, базируется такая важная вещь, как достоверность происходящего. Пожалуйста — конкретные примеры.
   — Выйдя на пляж и забравшись по колено в океан, можно увидеть плавающих неподалеку от берега морских черепах.
   — В толще воды в бухтах отчетливо видны подводные скалы, которые в некоторых местах покрыты водорослями.
   — Многие здания — это не просто параллелепипеды с натянутыми сверху текстурами: внутри есть помещения, в которые можно зайти. Интерьер домов реализован ничуть не хуже, чем в играх, в которых преобладают закрытые локации.
   — Моделированию растительности уделено не меньшее внимание, чем строениям. К сожалению, деревья, кустарники и цветочные клумбы — всего лишь спрайты, но это явно вынужденная жертва, сознательно принесенная на алтарь производительности.
   Одним словом, в реальность Vice City хочется поверить сразу — атмосфера большого курортного города передана просто блестяще. Этому способствует и основательно обработанный оптимизационным напильником графический движок. Что интересно, при возросших вдвое размерах виртуального города ориентироваться в нем не стало сложнее. Буквально за два-три часа игрового времени можно без проблем освоиться с географией курортной зоны и, запомнив расположение брони и аптечек, безбоязненно давить пешеходов, в случае опасности быстренько удирая в ближайший Pay'n'Spray.
   Кстати, о пешеходах. Как уже было упомянуто выше, разновидностей педестриан стало значительно больше: держу пари, в первые минуты вы будете просто бродить по городу, рассматривая женскую часть населения, которая в Vice City предпочитает ходить (или кататься на роликах) в бикини.
- Это не выпендреж - это кратчайший путь к личному небоскребу с вертолетной площадкой. В Vice City можно срезать дорогу не только на земле, но и в воздухе.
Жители города порадуют вас не только численностью и разнообразием видов, но и более разносторонним и осмысленным поведением. Если вы будете не только рассекать на грузовиках по тротуарам, но хотя бы изредка решаться на пешие прогулки, то наверняка станете невольными свидетелями (а точнее — слушателями) женских сплетен или "чиста мужских базаров".
   Автомобиль — не роскошь
   Автомобили — это плоть и кровь GTA. Именно на этих четырехколесных жестяных коробках держится то, что в рецензиях принято называть "игровой атмосферой". В Vice City выбор автомобилей просто огромен — каждый сможет подобрать себе тачку по вкусу: стремительные спорткары, классические авто, незамысловатые "семейные" седаны, грузовики, автобусы — в общем, полный ассортимент.
   Многие автомобили перекочевали в Vice City из предыдущей части практически без изменений ("Сталлион", "Идахо"), некоторые машины подверглись косметическому редизайну (например, популярные среди гонщиков "Инфернусы", "Читы" и "Баньши"). Однако в Vice City есть теперь штуки и покруче автомобилей... Речь идет о мотоциклах, которые вопреки моим ожиданиям оказались не просто оригинальным дополнением к стандартному набору транспортных средств, а прямо-таки предметом первой необходимости для каждого уличного бандита.   
   Байк, если им управляет опытный водитель, вещь просто незаменимая: лучшие модели мотоциклов не уступают в скорости самым быстрым спортивным машинам. А по маневренности мотоциклы и мопеды с легкостью обставляют вообще все без исключения транспортные средства в игре. Для выполнения акробатических прыжков лучше ничего не найдешь — даже на попсовом мопеде "Санчес" можно улететь с трамплина так далеко, что никакому "Инфернусу" и не снилось.
   Хороши байки и для ухода от погони, главное — ни во что не врезаться. Но даже в случае внезапного столкновения всегда можно быстренько подняться, снова вскочить в седло и проворно газануть с места, оставив неповоротливых копов далеко позади. Еще один немаловажный момент: в городе полным-полно мест, где не пройдет ни одна машина, зато свободно проскочит мотоцикл.
   А теперь — самое главное: при езде на мотоцикле можно стрелять из Узи прямо по курсу, а не вправо-влево из окна, как в машине. Вы только представьте, какие это открывает горизонты перед любителями дорожного геноцида! Теперь пристроиться в хвост идущей впереди машине и поджечь ее длинной прицельной очередью не составляет практически никакого труда.
   Но не спешите ставить на автомобилях в Vice City жирный крест — и для них находится работа. К примеру, группу из трех человек на разборки при всем желании на мотоцикле не повезешь.
   Ну и, конечно же, нельзя не упомянуть о долгожданных вертолетах. Вертолеты присутствуют (есть даже целый набор миссий, предназначенных для летчиков), причем в нескольких разновидностях. Правда, пилотирование геликоптера — вовсе не такое простое дело, как могло показаться на первый взгляд. В первую очередь трудности связаны с тем, что по непонятной причине управление перекосом винта вправо-влево вынесено на раскладку WASD под левую руку, а перекосом винта вперед-назад надо управлять с цифрового блока клавиатуры, то есть — правой рукой. На первых порах — путаница страшная, но со временем привыкаешь.
   Город в огне
   Честно говоря, я не ждал от Vice City каких-либо сюрпризов в плане геймплея. Казалось бы: разработчики еще в предыдущей части исчерпали весь ассортимент возможных миссий и бонусных заданий. К своему величайшему удивлению, я оказался не прав. Разумеется, от проверенных временем "заданий" отказываться было бы по меньшей мере глупо: угоны, заказная мокруха, гонки на всех видах транспорта — в общем, все это и многое другое присутствует в игре в старом виде.
   Но есть и оригинальные находки. Чтобы не портить вам удовольствие, приведу только один пример миссии: при помощи радиоуправляемых самолетиков с бомбами нужно разбомбить три моторных лодки. Причем лодки активно маневрируют, а их "пассажиры" не менее активно отстреливаются из автоматического оружия. Хотите почувствовать себя торпедоносцем времен Великой Отечественной? Милости просим!
   Спешу успокоить консервативно настроенную часть поклонников игры: секретные пакеты есть и в Vice City, но за их сбор теперь выдают не только оружие, но и транспорт: танк, вертолет Sea Sparrow, который может садиться на воду, и некий аналог боевого геликоптера "Апач".
- Лучшая машина смерти в Vice City - "Хантер" - вооружен скорострельной пушкой и НУРСами. Однако для полета в мир иной ему достаточно на полном ходу врезаться в небоскреб.
Ради таких бонусов не грех и порыскать по городу — ищите и обрящете. К традиционном подработкам в такси, скорой помощи и полиции добавился еще один способ честного заработка — развоз пиццы.
   Кстати, не спешите смеяться: не исключено, что в погоне за золотым тельцом придется и пиццу развозить — деньги тут зарабатываются с большим трудом, а тратятся в мгновение ока. Шутка ли: Colt Commando стоит $4000, а снайперская винтовка с лазерным прицелом — аж $6000 (это при средних доходах за миссию в одну-две тысячи). Надо признать, что пересмотр финансовой системы привнес в игру некоторую осмысленность и добавил азарта. Раньше денег не просто было много — их и тратить было толком не на что. Теперь же финансов не только катастрофически не хватает, они — жизненно необходимы для продолжения игры. Тут мы подходим к самому революционному нововведению в Vice City — покупке недвижимости.   
   На первый взгляд ничего примечательного в покупке собственных домов нет: ну добавится еще одно место для сохранения игры и дополнительный гараж для хранения машин. Но оказывается (сюрприз!), покупать можно не только жилые дома, но и фирмы, которые стоят десятки тысяч долларов. И каждая такая покупка открывает новые миссии и непосредственно влияет на дальнейшее развитие сюжетной линии. При определенном усердии с вашей стороны купленное предприятие может не только дать доступ к дополнительным миссиям, но и стать источником стабильного дохода.
   Кто сказал "wow"?
   Самая первая часть GTA в визуальном плане, честно говоря, выглядела не очень. На тот момент уже вовсю выпускались игры с вполне достойной графикой. Но это не помешало ей завоевать огромную армию поклонников. И причина популярности кроется не только в ураганном геймплее, но и в великолепном звуковом и — особенно — музыкальном сопровождении.
   Дальнейшие серии продолжали последовательно развивать эту приятную традицию. В Vice City, десяток FM-радиостанций и девять часов превосходной музыки всех музыкальных направлений, популярных в 80-е: от попсы и хард-н-хэви до растаманских напевов и забойного трэша. Причем в треках без труда угадываются реальные группы, послужившие прототипами для создания плейлиста игровых радиостанций: Metallica, Judas Priest, Napalm Death.
   На этом сюрпризы не заканчиваются: в эфире Vice City периодически звучат реальные хиты 80-х. Некоторые названия за давностью лет уже и не вспомнить (я достоверно опознал лишь Майкла Джексона с песней Fever), но слуховая извилина безошибочно отфильтровывает некогда знакомую музыку. Ностальгия, радость узнавания и полная иллюзия путешествия не только в пространстве, но и во времени. В GTA 3 я разбавил игровой плейлист своей любимой музыкой уже на второй день игры. В Vice City необходимость в дополнительной музыке вряд ли возникнет — здесь уже есть все, что нужно.
   Звук также хорош: EAX используется на полную катушку. Про озвучку персонажей игры, в том числе — главного героя, я скромно умолчу. Это лингвистическое великолепие надо слышать собственными ушами.
   Графический движок также был оптимизирован и оснащен дополнительными возможностями: в игру щедро добавлены отражающие поверхности, и теперь при желании можно рассмотреть свое отражение на отполированном до блеска капоте дорогого лимузина. Вода переделана с нуля и выглядит... впрочем, посмотрите лучше на скриншоты (на нашем компакте) — они скажут гораздо больше любых слов. Но, пожалуй, наибольшая работа была проделана по улучшению динамического освещения, перерисовке текстур и доработке спецэффектов — благодаря этому виртуальный мир GTA заиграл новыми красками и выглядит просто потрясающе. Попробуйте-ка встретить рассвет, стоя на крыше небоскреба, или на полной скорости промчаться по главной улице ночного города — и вы поймете, о чем я.
   Однако не все так гладко.
- Низковато пошел Sentinel XL... Видно, к дождю.
Модели людей по-прежнему страдают от недостатка полигонов, а спрайтовая растительность вблизи выглядит страшновато. С другой стороны, размер виртуального мира накладывает определенные ограничения, с которыми приходится мириться: совершенно очевидно, что более сложные модели пешеходов и нормально реализованную растительность не потянет даже трехгигагерцовый Pentium 4 ñ гигабайтом памяти и самой быстрой видеокартой. Остается только восхищаться мастерством программистов Rockstar, которые сумели создать движок, бодренько отрисовывающий картинку даже на не самых мощных машинах, — и с нетерпением ждать снижения цен на GeForce FX.
   * * *
   Rockstar Games в очередной раз сделали практически невозможное. Буквально из ничего создали самый настоящий хит с непередаваемой игровой атмосферой и разнообразным, захватывающим геймплеем. Все достоинства предыдущей части в полном составе перекочевали в Vice City, были "подсмотрены" и внедрены лучшие находки "Мафии", плюс — целый набор свежих идей собственного приготовления.
   Планка для GTA-подобных проектов (пора бы уже придумать отдельное название для этого специфического жанра) теперь поднята еще выше. Теперь нам только остается ждать ответного удара в лице Mafia 2.
   P.S. Внимательный читатель может удивиться: как же так — на весь обзор практически ни одного упоминания о жестокости, мясе, сотнях расстрелянных и поджаренных в автомобильных пробках. Не переживайте — все это никуда не исчезло. Но при здешних красотах, честное слово, как-то не до этого. Встанешь, бывало, еще до зари, прогреешь двигатели личного вертолета, взлетишь на крышу самого высокого небоскреба, дашь пару предупредительных очередей вниз — в скопление крошечных машин и маленьких людишек-муравьев... И давай — направо и налево из гранатомета улицы и тротуары обрабатывать! Солнце встает, птички поют, ветер ласково треплет волосы на голове, где-то вдалеке завывают полицейские сирены... И как-то сразу тепло и радостно на сердце становится. Одно слово — романтика!

Maven is an awesome tool. Here is a simple pom.xml that will build a executable .jar file. Couple things to notice:
  • Source Directory is set to src, this way when jar is generated, Maven won't look for /java folder (which is the default source directory)
  • Specify the entry point to application in the manifest tag of assembly plugin
  • This will produce two jars: one with just your source code, second one with all dependencies bundled inside
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>your.project.id</groupId>
    <artifactId>ProjectName</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.rpc</groupId>
            <artifactId>jaxrpc-impl</artifactId>
            <version>1.1.3_01</version>
        </dependency>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc-api</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
    </dependencies>
    <build>
        <sourceDirectory>
            src
        </sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>path.to.your.main.class</mainClass>

                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net Repository for Maven</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
    </repositories>
</project>
To run the compiled code from the command line use:
$ java -jar ProjectName-1.0.0.jar [parameter1] ... [parameterN]

Wednesday, August 10, 2011

Авторы Gears of War отвернулись от PC из-за пиратства



В интервью журналу Edge президент компании Epic Games Майк Кэпс ответил на вопрос, давно мучающий многих игроков: почему студия отвернулась от PC. Причина оказалась вполне предсказуема – пиратство. 
Создатели технологии Unreal Engine и многих великолепных игр, включая серию Gears of War, не питают личной неприязни к PC как платформе. Но и работать себе в убыток они не хотят. "Все из-за того, что деньги – на консолях. Мы любим PC, но мы видели, как пиратство погубило многих отличных независимых разработчиков. Из-за пиратства мы были вынуждены полностью изменить бизнес-модель", – посетовал Кэпс. 
При этом компьютерный рынок президент Epic хоронить не торопится, но предложенное им видение будущего едва ли понравится "хардкорным" игрокам. "Возможно, Facebook спасет PC, но там невозможно сделать Gears of War", – подвел итог Кэпс.


Думаю, что решаюшим фактом не выпускать PC-версии для Epic стало не пиратство, а как раз тот факт что консоли заняли лидируюшую позицию как ведушие платформы для геймеров. Играть на "железе" в наше время просто не практично. Да, некоторые игры выглядят просто обалденно на персоналках (на таких уровнях, до которых теперешнему поколению консолей далеко). Но в тоже время это не секрет, что для этого нужно "железо" с очень наворочеными внутренностями, которые стоят не мало денег. Лично я перестал интересоваться КП-эшными играми уже года 3-4. Выбор игра для тойже Xbox 360 настолько превосходит выбор игр для персоналок, что те игры которые не появляются на консолях, приходят и уходят без шума. Поэтому вполне понятно что Epic не хочет тратить ресурсы на порт игры, который по большей части не окупится.

Tuesday, August 9, 2011

Easy way to deal with Oracle SYS_REFCURSOR in Java

If you have an Oracle stored procedure defined: 

create or replace
PROCEDURE STOREDPROCEDUREA(
  OUT_CURSOR OUT SYS_REFCURSOR) AS 
BEGIN
  OPEN OUT_CURSOR FOR
    select ... from ...;
END STOREDPROCEDUREA;
then you can use the following Java code to retrieve the results of the cursor:
ResultSet results;
Connection connection = null;
List<Object> columns;
try {
    logger.debug("Getting database connection...");
    connection = DBManager.getDatabaseConnection();
    logger.debug("Preparing call...");
    CallableStatement statement = connection.prepareCall("call STOREDPROCEDUREA(?)");
    logger.debug("Executing query...");
    statement.execute();
    logger.debug("Retrieving results...");
    results = (ResultSet) statement.getObject(1);
    ResultSetMetaData metaData = results.getMetaData();
    int columnCount = metaData.getColumnCount();
    while (results.next()) {
        columns = new ArrayList<Object>();
for (int i = 0; i < columnCount; i++) {
    columns.add(results.getObject(i + 1));
}
// do stuff to columns here...
    }
    logger.debug("Closing...");
    results.close();
    statement.close();
}
catch (Exception exception) {
    logger.debug("Exception caught:");
    exception.printStackTrace();
}
finally {
    if (connection != null) {
        try {
    logger.debug("Closing connection...");
    connection.close();
} catch (SQLException e) {
    logger.debug("DB exception caught:");
    e.printStackTrace();
}
    }
}

Simple, right? I though so...


На самый-самый первый взгляд GTA 4 кажется некоторым шагом назад — вместо целого штата с несколькими крупными городами и пригородами, как в San Andreas, нас опять ждет один-единственный Либерти-Сити. Но опасения эти напрасны. Достаточно поиграть совсем немного, чтоб понять: четвертая часть шагнула как раз вперед, причем значительно. И дело даже не в новом движке, а в удивительно похорошевшем геймплее. Вроде бы и занимаемся все тем же самым — в роли Нико Белича, сербского эмигранта, мы изучаем громадный Либерти-Сити, выполняем миссии не совсем линейного сюжета, находим всякие дополнительные занятия, просто болтаемся, коротая время. Однако в GTA 4 все это сделано с каким-то ранее невиданным вниманием к деталям — разработчики удивляют нас каждой мелочью, каждой приятной идеей.
КАК ВСЕ НАЧИНАЛОСЬ?
Серия GTA на самом деле делится на два совершенно разных этапа. Первые две части — 2D-скроллеры, с автомобилями, стрельбой и достаточно простой целью заработать грабежом как можно больше денег за определенное время. GTA 3 и дополнения (Vice City, San Andreas, Liberty City Stories — каждое фактически тянуло на полноценное продолжение) стали одними из лучших игр со «свободным» геймплеем. В роли главного героя мы оказывались в огромном городе (а в случае с San Andreas — целом штате), где могли делать практически все, что угодно: слоняться по улицам, угонять машины, выполнять сюжетные и дополнительные миссии. Причем разнообразие заданий просто поражало: и гонки, и перестрелки, и слежка, и многое другое. Здесь же — и неплохой трехмерный движок. Здесь же — потрясающее разнообразие всего и вся, не позволявшее игре надоесть до самого последнего момента.
Отдельной статьей в «новой» GTA проходил сюжет. Герой каждой части — обитатель криминального «дна» нашего мира. Соответственно, в игре не было никакого героизма, никакой высокой морали — герою приходилось идти по головам своих противников (а порой и некоторых «друзей»), сталкиваться с подлостью, предательством и самому отвечать той же монетой. Наркотики, проституция, грязная лексика, межнациональная рознь — за эти и многие другие вещи GTA раз за разом получала максимально строгие возрастные рейтинги и оказывалась в центре громких скандалов. Хотя на самом деле разработчики серии, студия Rockstar, просто показывали всем нам изнанку того мира, в котором все мы живем, — не очень опрятную, сотканную из ошметков нелепой «бандитской романтики», насмешек над обыденными проблемами и стереотипами и огромного количества правды. Заканчивая рассказ о сюжете, стоит обязательно отметить еще одну фирменную черту — роскошную подачу. Великолепно прописанные персонажи, качественная режиссура роликов, действительно неожиданные повороты — во всем этом Rockstar взяла высочайшую планку качества, доступную только лучшим представителям игровой индустрии.
От GTA 4 публика ждала в первую очередь технологического рывка. Игра разрабатывалась для консолей нового поколения и наконец-то могла позволить себе то, в чем так отчаянно нуждалась: современный графический движок, выдающий нестыдную картинку. Это, разумеется, свершилось (см. соответствующий пункт ниже по течению). Но произошло еще одно приятное событие — неожиданный рывок в качестве геймплея, подходе к его разработке. С этим дела обстояли хорошо и в предыдущих частях серии, но GTA 4 все равно смогла их превзойти.
О ЧЕМ ЭТО?
В зарубежной прессе про сюжет GTA 4 наверняка пишут — «традиционен для серии». В России так поступить нельзя. Дело в том, что, как только после вступительной заставки гражданка Глюк’oza начинает кричать из колонок цвои «айн-цвай-драй», понимаешь — четвертая часть сериала про нас, русских.
Главный герой — Нико Белич — родом из Сербии. Он приезжает в Либерти-Сити и селится у своего брата Романа, в Хоув-бич, русском районе этого города. Реальные аналоги первого и второго — это Нью-Йорк и Брайтон-бич, причем стоит отметить то, насколько удачно их воссоздали в игре. В городе, пусть и в несколько пародийном виде, встречаются многие главные достопримечательности Нью-Йорка. Чувствуется и атмосфера — от района к району она меняется, вместо деловых «пиджаков» на улице появляются праздно шатающиеся темнокожие или небритые мужики, отменно матерящиеся на русском. При этом окружение стало заметно живее — персонажи не просто отыгрывают роль декораций, а всеми силами пытаются создать впечатление, что здесь кипит настоящая жизнь.
Но вернемся к сюжету. Роман — неудачник по жизни, весельчак и балагур — как раз vlez v dolgi и почти сразу же после начала игры у него voznikayut problemi. Нико, ветерану одной из постсоветских локальных войн, приходится вступаться за брата. Ну а дальше пошло-поехало  — миссия за миссией нас засасывает в криминальный водоворот Либерти-Сити.
Сделано все это, как всегда, прекрасно. Каждый персонаж, встречающийся нам на пути, — уникален, непохож на других и способен преподнести немало сюрпризов. Ролики, благодаря новому движку, стали потрясающе похожи на фильм — причем фильм с очень неплохими актерами и отличной режиссурой.



КАК ИГРАЕТСЯ?
В целом концепция осталась прежней: по огромному городу можно перемещаться так, как вздумается, при этом на карте всегда призывно маячит несколько символов, указывающих на сюжетных персонажей, готовых дать миссию. Заданий огромное количество, но, по ощущениям, они стали несколько однообразнее и проще — хотя при всем этом Rockstar так и не отказались от не самой интересной идеи, когда при переигрывании миссии нам порой приходится исколесить половину города сначала до человека, дающего ее, а потом оттуда катить к месту выполнения.
Некоторая однотипность миссий компенсируется кучей самых разных вещей. Во-первых, это сюжет — он затягивает настолько, что до финального ролика можно домчать, выполняя вообще одну и ту же миссию. Во-вторых, в Rockstar все-таки не разучились делать из некоторых заданий шедевры — помимо обычных погонь, перестрелок и гонок, есть, например, миссия, в которой нам, чтобы понять, кого из во-о-он тех ниггеров мы должны убить, нужно аккуратно сделать фото на мобильник, отправить его заказчику и получить указания. Активно используются и современные технологии: угнав полицейскую машину, можно получить доступ к базе данных копов и наковырять там много чего интересного, а с помощью интернета мы, например, завязываем знакомство с юношей не совсем традиционной ориентации, убить которого нас просят в очередном задании. Таких миссий в GTA 4 — всего несколько процентов от всего количества, но впечатления они оставляют незабываемыми.
Интересная идея Rockstar — то, что отношения с персонажами напрямую зависят от действий игрока. У Нико есть мобильник, с помощью которого можно позвонить любому из знакомых и куда-нибудь его пригласить: перекусить, сыграть в бильярд или, например, посмотреть представление в кабаре. Да и сами товарищи не забывают о нас и регулярно звонят со встречными предложениями, причем зачастую не в самый удачный момент. Чем чаще мы с кем-то общаемся, тем лучше он к нам относится. У девушек вспыхивают пылкие чувства, ну а суровые мужчины запросто могут помочь с выполнением очередной миссии. Единственный недостаток такой системы — если стараться дружить со всеми подряд, то на выполнение основного сюжета времени не остается. Приходится делать выбор в пользу пары наиболее полезных на данный момент людей.
В итоге однообразность заданий просто перестаешь замечать — главное, не мчаться сломя голову по сюжету, а получать удовольствие от всех возможностей игры. Вечером, после очередной кровавой бани, ты вызваниваешь свою подружку, отправляешься с ней в ночной клуб, где надираешься вдрызг. Обратная дорога — увлекательная борьба с машиной. Награда за поездку — скрипящая кровать и стоны в духе «о-о-о, ты лучший, Нико!». Наутро — завтрак с растаманом Джейкобом (он сильно помог в одной из недавних миссий, не стоит забывать такое), а затем визит в интернет-кафе, долгие поиски подходящих кандидатур на сайте знакомств (старая подружка надоела) и несколько минут, чтоб ответить на письмо мамы из далекой Сербии. Потом поездка в оружейный магазин — пополнить арсенал. Потом — визит к очередному знакомому за сюжетной миссией… который прерывается через два квартала, когда Нико замечает на обочине старого знакомого, торгующего на улице.
Во всем этом и заключается главная перемена GTA 4 — перед нами действительно игра про жизнь в городе. Сюжет и соответствующие миссии здесь — всего лишь один из элементов этой жизни. Самый, наверное, важный, но далеко не единственный.
Еще одно достаточно важное усовершенствование GTA 4 — это боевая система. По последней моде в игровых перестрелках активно используются укрытия. Нико может прятаться за углами, приседать за невысокими барьерами, вести огонь как выглядывая из-за них, так и вообще наугад. Важную роль в перестрелках играет физика, но это уже тема следующей главы.
КАК ВЫГЛЯДИТ И ЗВУЧИТ?
Технологически GTA 4, как ни странно, стала заметно реалистичнее. Во время перестрелок пули запросто могут разнести какое-нибудь хрупкое укрытие или, например, насквозь прошить деревянную дверь. Трупы ведут себя очень образцово — красиво падают и принимают естественные позы. «Дотянулась» физика и до управления автомобилями — они стали не такими «картонным», как в предыдущих частях. Причем это не значит, что в GTA 4 водить сложнее — скорее интереснее.
Картинка, как ни странно, у кого-то может даже вызвать разочарование. Когда Rockstar пообещала GTA 4 на абсолютно новом движке, то многие стали ждать от нее откровения — чего-то поражающего воображение и открывающего новые горизонты. На самом же деле, даже современных технологий не хватает на то, чтобы воспроизвести во всех красотах целый город — поэтому пришлось пойти на некоторые упрощения, и картинка GTA 4 выглядит заметно скучнее, чем у какого-нибудь высокотехнологичного шутера.
С музыкой традиционно все прекрасно. Отличный подбор треков для целой кучи радиостанций, хорошие актеры озвучки — что еще надо?
ИГРА ГОДА?
Загадывать не будем, но GTA 4 — явно один из претендентов на это звание. Слишком уж долго — четыре года — мы ждали продолжения очередной серии. И оно не разочаровывает ни на секунду — Rockstar действительно сделали очень многое, создав практически идеальный симулятор бандитской жизни в большом городе.