В который раз из стандартного бустера в одном из наших проектов, «Берсерк: Катаклизм» вытаскиваю промо-карту (ага, нечасто такое бывает). Кстати, это гораздо более быстрая игра, чем «Берсерк Онлайн» — возможно, стоит попробовать :-) Я, правда, играю ещё с тех пор, когда игра ещё не была выпущена в открытое альфа-тестирование, — так что догнать и перегнать меня практически невозможно. Но попытаться стоит! ;) Скриншот под катом, как водится.

Читать далее →

Очень понравился подход к поддержке софта одного из отечественных SEO-программистов. Я понятия не имею, кто этот человек или эти люди, скрывающиеся за названием «Sapient Tools», но однозначно им дикий респект от меня. В 2009 году я приобрёл любопытный мне на тот момент софт, программу Sapient Social Submitter. Вроде бы за 35 баксов, если память не врёт. Программа регистрирует учётные записи во всяких разных каталогах соц. закладок, а также добавляет в эти учётные записи нужные и полезные нам закладки.

Читать далее →

Пишу в первую очередь для себя, чтобы не забыть. Частенько при работе с большим объёмом статистических данных, глядя на лист, забываешь, что в каком столбце должно находиться. Хорошо, что мне такой функционал нужен нечасто, успеваю забыть :-). Итак, пример таблицы, которую неудобно просматривать без фиксации заголовка: Всё оттого, что к 100й строке она выглядит уже совершенно неприглядно. Например, посмотрите — совершенно непонятно, что находится в столбце E, например: Но если мы перейдём на ячейку A2, и выберем в меню «Окно → Фиксировать» таким образом:

Читать далее →

Как известно, если неприятность может произойти — она случается. Неприятностей в этом году у нас случилось порядочное количество, большинство из них — с нашим офисом. То водица, дающая кому-то жизнь, аккуратно капает на компьютер главбуха. Почти как когда-то 4 года назад, ещё на съёмной квартире. То после починки — начинает капать на телевизор. Глючат компьютеры (это обычно не проблема, чаще всего удаётся просто подойти к ним и они начинают работать, как положено).

Читать далее →

На редкость необычный сегодня выдался понедельник. Как правило, с неспанья я не могу похвастаться какой-то высокой производительностью труда, творческими успехами и т.п. — традиционно мой мозг работает в полную силу лишь когда я просыпаюсь ближе к обеду, опаздывая хотя бы на час — впрочем, таких знаменательных моментов давненько не было. Да и работоспособность страдает. Сегодня же, кажется, всё было с точностью до наоборот. У меня завершился один из этапов работы над проектом, всё работает и всё такое.

Читать далее →

Разговорились на днях с товарищем, посетовали друг другу на жизнь горькую. Он жаловался на свой почти что топовый Wi-Fi роутер D-LINK за 3500 рублей, который неплохо работал до тех пор, пока не завёлся новый и хороший интернет по витой паре, который впоследствие нужно было раздавать по Wi-Fi. У меня была в чём-то похожая ситуация: мой на тот момент топовый Wi-Fi роутер Asus RT-N16 на поверку, даже двум компьютерам раздавал интернет со скрипом, если в сети было 2 работающих торрент-клиента (не более 1000 активных соединений, а в документации обещают поддержку 30000).

Читать далее →

Производительность Grails Рано или поздно, любой программист слышит, что производительность инструмента, который он использует или инструмента, который он сделал — невысока. Будь то какой-нибудь синтетический бенчмарк, или сложные распределённые вычисления. Будь то работа с базой данных или с файлами. Все хотят максимальной производительности! Всегда! Немедленно! Как известно, часто максимальная производительность достигается путём жертв. Пожертвовать удобством, настраиваемостью, масштабируемостью, поддерживаемостью — то и другое, и третье и четвёртое — можно принести на алтарь производительности.

Читать далее →

Несмотря на то, что сейчас такие вещи, как последнее обновление записи, модно делать с помощью ORM, — в том случае, если вы можете быть платформенно-зависимы (всю жизнь с MySQL, или готовы переписать триггеры в случае перехода на другую БД вроде PostgreSQL), возможно, есть смысл воспользоваться триггерами. MySQL позволяет сделать один автообновляемый таймстамп, например таким образом: CREATE TABLE games (name VARCHAR(64), created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP); Либо на обновление: CREATE TABLE games (name VARCHAR(64), updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

Читать далее →

Иной раз казалось бы, вполне себе невинный и очень даже простой метод count() может стать серьёзной проблемой для производительности. Предположим, что у нас есть два доменных класса: Игрок и Предмет. Имеем реляцию: Игрок hasMany Предмет. Классы будут называться: Player, Item. Поле с коллекцией предметов — items. Коллекция предметов нужна нечасто, поэтому для её подгрузки используется lazy-loading. В случае, если нам необходимо просто подсчитать количество предметов, мы могли бы использовать такой код:

Читать далее →

Я слышал массу мнений, что «хакинтош это не мак вовсе», и честно говоря, до сих пор не могу понять этих людей. Хакинтош – это обычная MacOS X на обычном компьютере. Просто добавьте загрузчик операционки вместо EFI, и 3 драйвера. That’s all! Некоторым компьютерам может понадобиться и вовсе 1 драйвер. Некоторым, конечно, больше. Особенно если ваш компьютер на AMD. Мой первый и пока последний хакинтош потребовал уйму времени на настройку, а ещё немного времени потребовалось при major апгрейде с 10.

Читать далее →

У товарища на работе на ноутбуке Sony ни в какую не работают кнопки яркости. Возились и там и сям, большинство комбинаций кнопок работает (вроде кнопок, регулирующих и отключающих громкость звука), а вот яркость ни в какую. На ноутбук была установлена Windows 7 «с нуля», не имеет никакого отношения к предустановленной операционке от Sony. Первое, на что мы подумали — на то, что нужно установить какие-то хитрые драйверы от Sony, для управления яркостью экрана.

Читать далее →

Вообще пост был написан в первой декаде июня, но по некоторым причинам свет так и не увидел. Попал в черновики, а затем было дохуя работы и дорабатывать его времени не было. Сейчас я на него наткнулся и решил выложить в свет необработанным.  Два дня назад мой город прославился на все Интернеты. Некто побывал возле Перинатального Центра (ну, это новый саранский роддом с дорогим оборудованием и дорогими койкоместами) и обратил внимание на то, что машинка поливает зелёной жижей землю.

Читать далее →

В офисе у нас завёлся второй ипад. Ну, типа не второй по счёту, а ipad 2. Не, я не подался в стан яблочников — ипад нужен для тестирования всякой разной фигни, конечно. Второй ипад на исследуемом приложении (графика на HTML5 канвасе) показал «замечательную» производительность (я позориться и разглашать цифры не буду, понятное дело что по неоптимизированной альфа-версии о производительности не судят). Мой телефон прошлого года выпуска с устаревшим, казалось бы, одноядерным процессором, показал производительность почти в 9 раз большую.

Читать далее →

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

Читать далее →

Я уже писал, что считаю Groovy одним из самых перспективных языков программирования и даже приводил тому примеры. Но этот разговор не имеет ни начала ни конца, и интересные примеры всегда могут придумываться «по ходу дела». Так, например, подвернулся такой код на Groovy: string = 'hippopotamus' assert string - 'hippo' - 'mus' + 'to' == 'potato' Считаю, что это просто гениально :) Когда-то давным-давно, когда я ещё учился в школе и ничего толком программировать не умел, я ушёл с Basic к Pascal из-за более качественной работы со строками.

Читать далее →

Моё первое знакомство с Groovy было не вполне удачным. Так, обнаружилась достаточно невысокая производительность, тормоза при использовании статической типизации, и отсутствие масштабных плюсов по сравнению с Java. В тот момент единственное, что я был готов отдать на откуп Groovy, была отладочная консоль сервера. Например, у нас в сервере используется JavaScript от Mozilla (Rhino), ещё с тех пор, когда его не было в JRE. Однако позднее пришлось «допиливать» проект, написанный на Groovy с использованием фреймворка Grails, и тогда в этот язык я влюбился.

Читать далее →

Традиционно, уже много-много лет, ещё с 1999 года, кажется, для повседневных мелких задач по экстракции или обработке данных я использую Perl. Не сказать, что я за это время стал мега-супер-гуру, но могу написать такой скрипт, от прочтения которого у непосвящённого человека снесёт кукушечку. Именно благодаря Perl, не сносит кукушечку у меня, в общем-то Java’иста, когда я смотрю на чьи-то творения на JavaScript, или того хуже, на каких-нибудь Erlang или Scala. Perl вообще подходящий язык для того, чтобы тренировать кукушечку, я считаю.

Читать далее →

Как я уже писал в предыдущем посте, возникло у меня жгучее желание оформить доверенность на получение моих посылок девушкой. Мои часы работы совпадают с часами работы почты, совсем неудобно. А после последней жалобы в Роскомнадзор на почте на меня косо смотрят, — видимо, не очень нравится им, когда работать заставляют. В принципе, заверить доверенность у нотариуса — дешевле. Ну потратить один раз ≈150-200 рублей, и фиг с ним. На практике конечно и там есть минусы: очереди к нотариусу бывают километровые, да и вдруг ещё на почте доебутся.

Читать далее →

Этот текст был написан в прошлые субботу и воскресенье, состоит он из нескольких частей и будет обновляться. Корректировки от 01.08.2011 г.  Как известно, Почта России — временами весьма забавная организация. Для того, чтобы добиться её уверенной работы, нужно порой много трудиться. Хочется верить, что труды эти окажутся не напрасными, и послужат всему прогрессивному человечеству. Впрочем, бывают и нюансы. Например, после моей предыдущей жалобы в Роскомнадзор, на меня на почте почему-то обиделись и решили мне не звонить в случае, когда мне приходит посылка (раньше знали и звонили).

Читать далее →

Захотелось мне рассказать об одной покупке, которая была совершена в начале июля 2011 года. Предметом покупки был телефон, купить его в моём любимом Клове не было возможности, поэтому покупка была совершена через EBay. Впоследствии выяснилось, что продавец принципиально не готов пересылать товары на адреса посредников, таким образом мы расторгли сделку, поставили друг другу по 5 звёзд (решили вопросы быстро, без пыли и шума). Затем телефон был куплен у другого продавца. Но это так, преамбула.

Читать далее →

Полезное