Для реализации одной из своих давних задумок решил воспользоваться Google App Engine (если кто не знает, то пару месяцев назад он начал поддерживать java). Изучая документацию по использованию механизма сохранения данных, наткнулся на несколько очень неприятных ограничений на запросы к хранилищу:
* Inequality Filters Are Allowed On One Property Only * Properties In Inequality Filters Must Be Sorted Before Other Sort Orders * Datastore interface does not support the != and IN filter operators
Каждое из этих ограничений уже само по себе довольно сильно ограничивает возможности использования, но первое для моих задач особенно критично. Предполагается, что у меня в БД будут миллионы точек, которые задаются долготой и широтой, и чтобы можно было с ними нормально работать, из БД необходимо получить только те точки, которые попадают в заданную прямоугольную область. То есть необходима проверка на попадание в заданный интервал как по широте, так и по долготе, и учитывая объёмы данных, выполнение двух отдельных запросов с последующим нахождением пересечения - не вариант (особенно если к этом ещё добавить ограничение в 1000 записей на размере результата одного запроса).
Понятно, что выход из этой ситуации - каким-то образом объединить два поля в одно, но так, чтобы можно было осуществлять проверку на попадание в заданный диапазон. Поломав голову час и уже почти смирившись с тем, что так мне и не удастся опробовать GoogleAppEngine, решил всё-таки погуглить на тему. Оказалось, что как обычно, всё уже придумано (хотя и не так давно) до нас :)
Geohash Этот алгоритм позволяет из координат точки получить хэш-строку. Причём полученные хэши будут обладать свойством упорядоченности, и хэш точки внутри прямоугольника будет находится между хэшами углов этого прямоугольника. Ура! :)
PS: У алгоритма есть особые точки - это пересечения экватора или нулевого меридиана. Как он будет себя вести на на них, я пока не понял, но в крайнем случае, их можно будет обрабатывать отдельно.Настроение:  geeky
|
Четыре скутера, четыре часа, шестьдесят км и море удовольствия ;))
 Настроение:  bouncy
|
Что-то не везёт мне с продукцией оракла.
Помнится, когда-то давно, чтобы поставить клиента для восьмёрки, надо было из дистрибутива удалить(!!!) один джарник, так как там была какая-то старая либа, и из-за неё инсталляция падала. Удивителен был даже не сам факт кривого дистрибутива, а того, что для корректной работы джарник надо было удалить, а не обновить.
Поставил недавно на ноут серверную часть десятки (10.2.0.1.0, если быть точным) и наткнулся на новые грабли, опишу их тут - вдруг кому-нибудь пригодится:
1. Сразу после установки пытаюсь залогиниться в OEM под sys'ом - говорит, что пароль неверный. А я абсолютно точно уверен, что пароль для всех системных аккаунтов указал один и тот же. Снёс оракл, переставил заново, обратив внимание и перепроверив указываемый пароль для sys'а. Тот же результат - и OEM, и SQLPlus говорят, что пароль неверный. После гугления выяснил, что во время инсталляции инициализационный скрипты иногда (в моём случае - всегда:))) выполняются с ошибкой, и заданный пароль не проставляется. А для смены пароля можно зайти под админом (при локальном входе пароль, оказывается, не требуется - точнее, требуется, но его можно будет ввести любой) и самому задать пароль: sqlplus sys/ as sysdba alter user sys identified by asdf; Кстати, на пароль 12345 sqlplus ругался, как на синтаксическую ошибку - не сразу понял, что ему просто почему-то не нравятся цифры, но буквенный пароль съел нормально.
2. После обхода предыдущих граблей всё заработало... до первого выключения ноута :) Взял с собой ноут, чтобы попрогать где-нибудь в кафе (обнаружил для себя, что в кафе кпд кодинга увеличивается, так как нет соблазнов, типа, посмотреть кино или полазить по инету). Придя в кафе, обнаружил, что оракл поднимается лишь частично. То есть я всё ещё могу зайти в него локально под админом, но обычный вход через тот же sqlplus не работает (то есть, явно, какие-то проблемы с листнером), и OEM тоже не работает. Просмотр сервисов показал, что сервис ОЕМ (OracleDBConsoleorcl) не запущен, и попытка запустить его вручную ни к чему не приводит - падает, зараза, с невероятно информативной ошибкой 2:) В журнале ничего нет, а логи самого ОЕМ как-то сходу не нашёл (кстати, и когда нашёл, то ничего толкового там не увидел). Пришёл домой, включил ноут - ни листнер, ни ОЕМ опять не запустились. НО после ручного запуска всё заработало. Сразу зародилось подозрение, что всё это как-то связано с тем, что дома ноут автоматически подрубается к вайфаю, где получает айпишник (поэтому и автоматический запус сервисов не прошёл, так как на тот момент ещё не был получен айпишник), а в кафе я вайфай отрубал. Погуглив, выяснил, что так и есть - этот дурацкий ОЕМ запускается только в той же среде, в которой был установлен (то есть если поставили, когда не было сети, то и запустится он, когда нет сети, а если была сеть, то нужно сначала к ней подключиться(с тем же айпишником и именем), и после запустится ОЕМ). Решение с ОЕМ нашёл на http://forums.oracle.com/forums/thread.jspa?threadID=309223&start=0&tstart=0 :
the solution is simple. In the directory ORACLE_HOME\oc4j\j2ee there is a directory OC4J_DBConsole_localhost_orcl or OC4J_DBConsole_HOSTNAME_orcl. make a copy (or set a link) from the directory and rename it to the specified name. So you have two directory OC4J_DBConsole_localhost_orcl OC4J_DBConsole_HOSTNAME_orcl Then it will works fine
Проблему с листнером пока ещё не решил, но подозреваю, что по аналогии добавление второго листнера с адресом 127.0.0.1 должно её решить.
0. Ну, и так, на всякий случай: При инсталляции на русской винде Оракл по умолчанию ставит язык (nls_lang) равным RUSSIAN_CIS.CL8MSWIN1251 - это всё хорошо пока не начинаешь работать из консоли, которая, конечно же, виндовую кодировку выводит крякозябрами. Поэтому имеет смысл поменять этот параметр на AMERICAN_AMERICA.CL8MSWIN1251 - кодировка в базе останется виндовой, а вот сообщения будут на "родном" английском.
PS: Сегодня вывесили предварительный результаты Бегущего Города 2009 - оказывается, что если бы мы бежали не вне зачёта (то есть если бы у нас было два шлема на команду, а не один%)), то мы бы заняли 4е место:) Причём отрыв от третьего места составляет всего пять минут, которые мы вполне могли сэкономить на промежуточных финишных КП, на одном из которых, кстати, спасали карту от пролитого на неё кефира;)) Отрыв от второго места составляет полчаса - в принципе, и на полчаса время тоже можно было бы улучшить, если бежать чуть быстрее, но тогда бы пришлось ещё и напрягаться%))), а так мы ехали с вполне комфортной скоростью:) В общем, с учётом, что роллер-сезон только начался, всё прошло здорово :)
|
|
Больше никаких "немножко поиграю в Героев перед сном" %)))
Даже удалил, на всякий случай ;)
PS:
Зато я выиграл :) |
Посмотрел вчера кино.
Как-то сложно выразить какое-то однозначное мнение по поводу этого фильма. С одной стороны, снято красиво, смысл происходящего, правда, становится ясен уже на середине фильма, но интерес (и надежда) не оставляет до самого конца. С другой стороны, я всегда к подобному относился (и отношусь) крайне негативно, но опять же в данном случае, похоже, это был единственный путь. И этот конфликт моих принципов с тем, что проиходит на экране, сломал мне моск:( Ну, и грустняво... слишком. В общем, как фильм, думаю, стоит того, чтобы быть хотя бы раз просмотренным, но в целом, вызывает и оставляет после себя такие эмоции, которые мне не нравятся, и потому подобные фильмы я лично не люблю.
После просмотра срочно потребовался заряд бодрости и энергии. Свет дают тут - очень рекомендую:))
PS: Специально постарался написать так, чтобы, кто смотрел, те поняли, но при этом минимизировать количество спойлеров.
|
| » Спамеры-шайтаны :) |
Мне уже в который раз приходит спам с приглашением на семинар "Посoбиe пo вpeменнoй нeтpудocпоcобности" - откуда они узнали, демоны? :)))
24 Фев, 2009 @ 15:22
|
| » А за что? А ни за что - просто так :) |
Вместо того, чтобы лечь спать пораньше (или хотя бы сделать то, что сделать нужно), решил, на ночь глядя, реализовать свою давнюю задумку - автоматизировать (или хотя бы посмотреть, как это вообще правильно делается) Code Review.
Для этого: 1. Посмотрел в инете существующие тулзы. Особенно заинтересовали Code Collaborator и Atlassian Crucible. 2. Из выбранных приложений только у второго есть интеграция с IDEA, что автоматом уменьшило круг потенциальных продуктов до одного. 3. Нашёл и поставил Crucible 1.5.4 4. Сразу после установки выяснилась забавная вещь - приложение, вроде бы, серверное, но устанавливаться и запускаться под виндой как сервис не умеет. 5. Полчаса гугления и последующей возни с конфигами позволили установить Crucible как сервис с помощью Java Service Wrapper (классная штука, кстати) 6. Ещё полчаса возни с настройками самого Crucible привели к пониманию того, что с новым форматом (1.5) svn-хранилища работать он не умеет (точнее, если верить производителю, то по http:// всё должно работать, но это не айс - очень хотелось file://). Причём даже подключение и настройка нативного клиента проблему не решило. 7. Снова гугление, которое показывает, что Crucible для подключения к SVN использует SVNKit. А у них как раз недавно вышла новая версия, которая работает с новым форматом хранилища. 8. Скачал и заменил старые джарники новыми (причём обязательно сохранив имена старых, так как они, похоже, где-то используются явно), и заменил в конфигах новое имя стартового класса. 9. Перезапустил Crucible - работает :) Одно только не радует - он до сих пор индексирует первую ревизию, а их там - 2000 :(
Пока не особо понятно, что это даёт, но вдруг кому-нибудь пригодится инструкция по установке :)
5 Ноя, 2008 @ 02:04
|
| » Детство |
Блиииин, сейчас вспомнил название радио-передачи, которая когда-то давно (лет 15 назад) шла на Радио-Рокс по ночам - называлась она Back to the Universe.
Нашёл, включил запись и понял, что я всё ещё помню. Помню голос ведущего. Помню, как потихоньку утаскивал из маминой комнаты магнитофон, как ночью еле слышно его включал и ждал выхода передачи. Остальная музыка на этом радио мне не особо нравилось, но я терпел - я ждал передачу, свою передачу. Иногда, правда, я засыпал (она начиналась около 12, кажется, а я ложился в 9) - тогда утром было обидно (тем более, что шла она не каждый день). Но чаще всё же дожидался. И потом лежал, слушая неизвестную мне музыку, странные звуки, которые вызывали ещё более странные мысли. Было что-то волшебное в том, чтобы вот так вот лежать в темноте и представлять огромную Вселенную (бесконечность представить было очень трудно, поэтому проще было представлять её просто огромной) и себя - мааааааленькую её частичку, которая, несмотря на свою незначительность, пытается её познать. Или же не Вселенную - Океан. Он был тоже огромным, как Вселенная, а ещё там, в глубине, не было света - зато были красивые кораллы и необычные светящиеся существа. А я всё плыл и плыл, пытаясь узнать, что же там - ещё дальше во Вселенной, ещё глубже в Океане, за пределами всего...
22 Окт, 2008 @ 02:42
|
| » На заре |
Когда я последний раз встречал рассвет? Не в офисе или дома за компом, а там - снаружи. Давно это было...
12 Окт, 2008 @ 04:41
|
| » А настроение улучшилось :) |
Улыбайтесь чаще. Возможно, это и не сделает мир светлее или лучше, но если вдруг кому-то даже на самый маленький миг станет чуточку теплее, то уже всё не зря.
12 Окт, 2008 @ 04:13
|
| » Глупые вопросы |
1. Интересно, а зачем организуют мальчишники? Судя по фильмам, это, типа, последний раз отпраздновать "свободу" в кругу друзей. Но ведь если так, то таким образом подчёркивается негативный аспект свадьбы, а, по-моему, после свадьбы в отношениях с друзьями ничего измениться не должно. И потом, что же это такое можно сделать на мальчишнике, чего нельзя будет сделать после свадьбы?
2. Зачем покупать другие соки, когда есть Фруто-Няня? :) Она ведь такая вкусная, и при этом там ни то что искуственных добавок, там даже сахара не добавляется - только соки и пюре.
3 Окт, 2008 @ 00:27
|
| » Держи ритм |
- Эй, братишка, это чо ваще было? Она ж ничего не тащила и могла сама открыть ворота. - Это называется Учтивость. - Да ты на какого-то придурка похож. - Вы так полагаете? - Ну, ещё бы. Когда придурки так себя ведут, с ними никто не связывается. Поверь мне - я через это прошёл. - А мне это и не нужно. * открывает дверь женщинам * - Видели, они мне все улыбались. - Но тебе-то чо с этого? - Мне ничего за это не нужно.
- Так, ну хорошо, Рамус, будешь танцевать с Кейтлин. - Я чо, такой клёвый, что у меня получится с кем угодно?
- Ну что, потанцуем? - Лучше не стоит. Ты что, не видела, что сейчас случилось? Меня чудовищем зовут. Просто какой из меня танцор? - Чудовище, а тебе нравится танцевать? - Да, вроде бы. - Значит, у тебя всё получится.
- Так, давайте-ка, пройдитесь. - Нет-нет-нет, Лорет. Ведёт мужчина, женщина должна следовать. - То есть если он будет вести, то, значит, он, типа, босс? - Нет, это не так. Понимаешь, мужчина начинает движение, а уже женщина выбирает, как за ним следовать.
- Я заметил. - Что? - Чего ты улыбаешься? - Да ты что, иди ты.
После основания Пьером Дюлейном танцевальных классов они появились в 120 школах Нью-Йорка, в которых задействовано 42 инструктора, и их посещает более 12000 учеников. Основано на настоящей истории жизни Пьера Дюлейна.
30 Сент, 2008 @ 15:29
|
| » Давно меня тут не было :) |
Только что посмотрел "Секретные материалы: Хочу верить". Честно говоря, хотел написать отзыв про другой фильм, который мне очень-очень-очень понравился, но про него напишу потом отдельно:)
В общем, вопреки всеобщему опусканию Секретных материалов лично мне фильм понравился. Я не ждал от него какого-то экшена - материалы никогда так и не позиционировались. Как и не ждал особой мистики и навороченного сюжета - всё-таки первые сезоны сериала остаются недостижимыми вершинами. Спрашивается, если я всего этого не ждал, то что же мне понравилось? :) Прежде всего, атмосфера - она, действительно, заставляет вспомнить сериал, ожидание выхода новых серий, переживание за героев. Немалую роль в создании атмосферы, кстати, сыграл саунтрек - думаю даже скачать его себе. Во-вторых, тот призыв, который проходит через весь фильм, и как герои стараются ему следовать - "Не сдавайся" - действительно, вспоминаешь о всех делах в жизни, которые по той или иной причине не довёл до конца, то есть просто сдался. И не просто вспоминаешь, а понимаешь, что вообще-то достаточно просто перестать лениться и всё ещё можно довести до конца :)
А ещё, как это ни странно, фильм заставил задуматься, а когда же это я последний раз гулял по лесу - оказывается, давно. И вдруг очень-очень сильно захотелось побродить по осеннему лесу. Так, чтобы не было слышно машин, чтобы на земле была куча листвы и можно было идти по ней, не поднимая ног, и чтобы от этого листья летели во все стороны. Очень захотелось сходить в какой-нибудь большой парк, а лучше - куда-нибудь в подмосковный лес (каждый раз, когда приходится ехать в подмосковье на электричке, радуюсь, какие всё-таки красивые леса в средней полосе). Может, как-нибудь, пока нед дождей, соберёмся, а? :)
PS: А ещё поставил себе хром и сейчас ради эксперимента пишу с него - чувствую, надолго меня не хватит:)
Из плюсов: + действительно, клёвый минималистичный интерфейс + очень быстро стартует - ни ослик, ни огнелис с ним, конечно, не сравнятся + действительно, чувствуется разница в скорости отображения страниц, особенно аяксовых + изолированность вкладок (даже можно во встроенном диспетчере задач посмотреть распределение памяти по вкладкам и закрыть любые из них) + есть неплохой дом-инспектор Из минусов: - нет интеграции с гугл-тулбаром. Это вообще для меня загадка - как можно было выпустить свой браузер, и не интегрировать его со своими же сервисами. Я настолько привык к гуглозакладкам, что отсутствие их в браузере автоматически ставит крест на его использовании. - нет поддержки java - точнее, она есть, но для этого нужно танцевать с бубном:) - каждый раз при закрытии вкладки хром на несколько секунд подвисает (причём в это время хвалённый диспетчер тоже фиг вызовешь:)) - аналогично при скроллинге некоторых страниц, на которых есть видео, проигрываемое на флеше - конечно, дом-инспектор неплох, но с фаербагом его не сравнить, а без этого, имхо, браузер нельзя позиционировать как браузер для разработчиков - отсутствие плагинов - я понимаю, что браузер новый, но насколько я понял из инета, апи для плагинов попросту нет - отсутствие тем - есть некие хаки с подменой dll'ек, но это нельзя назвать поддержкой тем - встроенная поддержка проверки орфографии просто убивает - пользоваться этой фигней (по-другому это никак не назвать) абсолютно невозможно (при этом в меню нет опции для её отключения)
Итого, браузер вселяет надежду на то, что дальше будет круче, но сейчас он ещё, имхо, слишком сырой, и гугл, явно, выпустил его вынужденно.
21 Сент, 2008 @ 15:50
|
| » Теперь я Четвертьвек :) |
Что-то вдруг подумалось, что если рассчитывать степень успешности прожитого года как количество поздравлений, полученных на ДР, то это год, пожалуй, был одним из самых успешных :)
Конечно, с одной стороны, это можно списать на широкое распространение социальных сетей, но с другой стороны, не так уж и много, где я зарегистрирован (на всяких одноклассниках с их убогим дизайном принципиально не регистрируюсь), да и бОльшая часть поздравлений прозвучала (или просветила) из телефона:))
Миниитоги года: Первый раз покатался на кайте (и на море, и на снегу). Первый раз покатался на вейкборде (даже успел словить передний кант, когда пересекал волновой след от катера:))) Первый раз прыгнул со здания на верёвке (роупджампинг). Теперь бы ещё с моста прыгнуть:) Первый раз съездил до Геленджика и обратно на машине. Давно хотелось (правда, за рулём был не я, но я тоже чуть-чуть поучаствовал в придаче автомобилю движения:)). Первый раз на скорости вылез наружу поезда (алкоголь, он, знаете, передаётся даже виртуально%)). Первый раз побывал в Минске Первый раз побывал в Абзаково. Первый раз сделал там на борде тройной кувырок с тройным ударом головой после чего купил себе первый бордический шлем ;)) Первый раз побывал на Эльбрусе, покатался по целине и даже немного пофрирайдил. Стал ведущим разработчиком, а затем - менеджером проектов. Получил сертификат Оракл разработчика.
Надеюсь, количество первых разов в следующем году только увеличится ;)
PS: Сижу за компом, жую конфетки:) Давно мне уже не дарили конфет. А тут - целый пакет разных, шоколадных:) Доволен, как хомяк :) Сразу видно, что подарили молодые родители, у которых маленький ребёнок, и которые знают, чем балуют детей %))
19 Авг, 2008 @ 17:30
|
| » магический треугольник Инфобизнеса |
Если столько хороших людей написали, что это интересно, то наверное, это так и есть. Сегодня вечером будет скайпкаст от parabellum07 про "магический треугольник Инфобизнеса"
2 Авг, 2007 @ 14:02
|
| » До чего дошёл прогресс;) |
После занятий забыл у Вовчика свои вещи, а вместе с ними и ключи от квартиры, так сижу тут с роликами, рюкзаком и пакетом продуктов на лестничной площадке%( А пакет, кстати, плавно уменьшается - уже не стало поллитра молока, поллитра йогурта и батончика шоколадки%)) Ещё бы выпить литр сока, тогда всё остальное поместится в рюкзак И можно будет ехать кататься;) Н самое прикольное - что наша вайфайная сетка ловится даже тут, на пол лестничного пролёта выше квартиры, так что сижу на окне и, как белый человек, юзаю инет со скоростью 4мб/с %)) Можно скачать с инета фильм, залить на комп, конвертировать и залить обратно на кпк%))
22 Май, 2007 @ 00:27
|
| » Бант удачи и стринги счастья %))) |
Гамерам-наркоманам посвящается :о)
20 Май, 2007 @ 02:47
|
| » Отчёт :) |
Давно уже в ЖЖ ничего не постил - сейчас буду компенсировать :)
1) Мой вчерашний маршрут на роликах: (пиар яндекс-карт:)))
2) Мой сегодняшний маршрут: 22км, 2.5 часа, 2.5 литра, один локоть и один лейкопластырь:)))
на самом деле, на дорогу ушло чуть меньше двух часов, а ещё полчаса я бродил по случайно обнаруженному парку (именно бродил, так как там повсюду брущатка, будь она неладна;)))
( небольшая экскурсия по парку:) )
20 Май, 2007 @ 02:18
|
| » 5 Апреля - А вы уже пометили этот день у себя в календаре? :) |
http://roller.ru/content/2007/article-2257.html
Помнится, на ночной нас было порядка двух сотен (чуть поменьше) - это было клёво:) Здесь же ожидается гораздо большое количество народа %)
28 Мар, 2007 @ 13:09
|
|