28 июля 2006

Сортировка по столбцу

Подсмотрел на mail.ru и немного додумал такую идею: как обозначить столбец, по которому отсортирована таблица. На mail.ru это выглядит так:

Фича в том, чтобы у активного столбца выделить нижнюю границу. На скриншоте сортировка сделана по столбцу "Дата". Щёлкаешь по столбцу "Автор" - подкрашивается именно он, и данные сортируются тоже по нему.

Моё дополнение состоит в том, что если данные в столбце сортируются по убыванию, то подкрашивать нижнюю границу, а если по возрастанию - верхнюю. Намного удобнее на мой взгляд, чем добавление символов типа ↑ или ↓.

26 июля 2006

Мобильное мошенничество

Мы с женой обнаружили уязвимость в UMC. Но обо всём по порядку.

Недавно по телевизору показывали передачу про такую мошенническую схему:
  1. злоумышленник регает в скажем UMC спецномер, звонок на который стоит 20 грн в минуту;
  2. затем он же ходит по улице и просит встречных дать ему их мобильник "на минутку позвонить маме";
  3. звонит на свой спецномер и переводит т.о. деньги со счёта жертвы на свой.

Я сегодня обнаружил пропажу 5 гривен со счёта. Деньги не военные, просто это были последние 5 грн на нём :] И вспомнил - вчера приходила SMS "Перезвони мне на [номер такой-то]". Это у UMC есть такой SOS-сервис - звонишь на специальный номер, и человеку приходит сообщение, что мол такой-то сидит без копейки и ждёт твоего звонка.

Так вот кто-то похоже зарегал себе спецномер со стоимостью входящих 5 грн в минуту, и каждый день рассылает всем подряд сообщения, чтобы перезвонивали. Лохи, как видно, находятся :]

Способ защиты: убрать префикс "+3" и попробовать перезвонить. Если номер не заменится на чьё-нибудь имя из вашей адресной книги ("авторизованные лица"), значит, это кто-то левый - сбрасываем и радуемся.

Мечты сбываются

Вчера осилил сальто назад в море с пирса! Да здравствует целеустремлённость!!

25 июля 2006

А я думал, это фото


Дали посмотреть сайт одного севастопольского дизайнера: я думал, это фотки, а оказалось - 3D...

23 июля 2006

Нетипичный формат

Надеюсь, мне когда-нибудь тоже надо будет делать публичное открытие своей фирмы. Также надеюсь, меня хватит на такое открытие. Уж больно всё ярко и продуманно...

22 июля 2006

Навыки бизнесмена

Сегодня посмотрел "назад" - на студенческие годы - и подумал, какие же навыки стоило развивать в то время более усиленно:
  • учиться делать всё самому (в крайнем случае - устраивать партнёрство, деля большую работу на части), но ни в коем случае не списывать. В противном случае, во многих ситуациях наступает паника, когда списать негде, а импровизировать не научился;
  • больше общаться со старшекурсниками. Старшие, более опытные коллеги часто знают простые ответы на твои сложные вопросы. Научиться заинтересовывать их своей скромной персоной - дорогого стоит;
  • уметь переключаться с работы на отдых, и что более важно, обратно :]
  • и самое главное - сдавать побольше лабороторок. И чем злее препод, тем лучше. Это бесценный навык торговли! Многие, очень многие проблемы решаются таким путём в реальной жизни.

Ну а кто не успел в учении, теперь осваивает всё это в бою :]

19 июля 2006

JavaScript: массив объектов - и побыстрее!

Задача стояла так: нагенеривать массив объектов из PHP для JavaScript, чтобы ниже по тексту неизменно закешированный JS-движок эти изменчивые данные использовал. Сначала задача решилась в лоб:
<script>
var arr_locations = new Array;

<?
if(not_empty_array($arr_areas))
{
$i=0;
foreach($arr_areas as $area)
{
echo "arr_locations[".$i."] = new Object;";
echo "arr_locations[".$i."]['lat'] = ".$area["lat"].";";
echo "arr_locations[".$i."]['lng'] = ".$area["lng"].";";
echo "arr_locations[".$i."]['rad'] =
".$area["radius"].";";
$i++;
}
}
?>
</script>



Т.е. на выходе имели следующее:
<script>
var arr_locations = new Array;

arr_locations[0] = new Object;
arr_locations[0]['lat'] = 1.14;
arr_locations[0]['lng'] = 2.1415;
arr_locations[0]['rad'] = 3.141592;

arr_locations[1] = new Object;
arr_locations[1]['lat'] = 4.14;
arr_locations[1]['lng'] = 5.1415;
arr_locations[1]['rad'] = 6.141592;

</script>


Потом снова руки зачесались что-то здесь заоптимизировать.
Основная мысль, которая не давала покоя - зачем явно
указывать последовательно увеличивающийся индекс $i.

И я вспомнил. Массивы в JavaScript можно определять так:
var arr = [1, 2345, 666, 765];

А объекты - так:
var obj = {name: 'vasya', age: 25, sex: male};

Получилась более красивая каша:
<script>
var arr_locations = [
<?
if(not_empty_array($arr_areas))
{
$lines=array();
foreach($arr_areas as $area)
$lines[] = sprintf(
"\n{lat:%f,lng:%f,rad:%f}",
$area["lat"],
$area["lng"],
$area["radius"]);
echo implode(",", $lines);
}
?>
];
</script>


А теперь всё выглядит так (надо полагать, меньше весит = быстрее грузится, особенно при больших объёмах данных):
<script>

var arr_locations=[

{lat:1.14,lng:2.1415,rad:3.141592},
{lat:4.14,lng:5.1415,rad:6.141592}
];
</script>


Есть ещё над чем поработать - имена полей объекта всё время повторяются... Но это уже в другой раз.

18 июля 2006

Как стать миллионером к 30 годам

В продолжение темы "Планы 2006" (врезка справа внизу, у счётчика). Сегодня прикидывал, как стать миллионером по достижении 30 лет. Сейчас мне 24, у меня 5 полных лет в запасе до 30-летия.

Как я для себя сделал вывод, увеличивать свой ежегодный доход в 2-5 раз вполне реально, если поставить такую задачу, а не просто "хотеть больше".

Далее. Проснуться и осознать себя миллионером (вариант: "Найти чемоданчик с деньгами без последствий") - скучно и нереально. Можно засидеться в "старых девах" в финансовом отношении. Поэтому будем двигаться поэтапно: увеличивать свою ЗП планомерно в 2-5 раз.

Допустим, реальное повышение будет в 2.5 раза (так в реалиях у меня пока и получается, если ставить себе планку х5).

Через 5 лет - 1 000 000.
Через 4 года должно быть 400 000
Через 3 года - 160 000
Через 2 года - 64 000
Через год - 25 600.

$25 600, что я округлил до $30 000, как раз и обозначены в моих планах на этот год. Правда, там заявлено пятикратное увеличение, а не в 2.5 раза, как получилось по нашим расчётам. Значит, в этом году придётся повысить эффективность, и так или иначе научиться зарабатывать больше.

На закуску статья по теме - Как стать избранным в мире больших денег

Приколы форумов

Ищу форумный движок для проекта, читаю обзоры, а попадаются сплошь приколы:

  • Сравните:
    1. icitrus.net: форум, автором которого является молодой французский программист
    2. fog.daviveno.org: Разработанный молодым французским лицеистом, этот форум...
    Тенденция, однако!
  • Код сопровождается комментариями на французском языке, поэтому конфигурационные файлы легко поддаются изменению
  • Проблема заключается в том, что необходимо хотя бы немного разбираться в языке шаблонов, чтобы изменить дизайн скинов. К счастью, это возможно.

К счастью, это возможно. Ура!

17 июля 2006

Шаблоны ещё проще

Я как-то уже рассказывал, как я оставил свой модный снобизм в отношении использования шаблонных решений, если это позволяет быстро реализовать идею. В продолжение темы использования шаблонов сайтов, я сделал вывод, что статичные и готовые для скачивания в формате "HTML + экскиз + шрифты" шаблоны очень не удобны в использовании:
  • их авторы как правило далеки от стандартов: CSS 2, XHTML 1.0 Strict - не тот случай;
  • нарезка картинок сделана на глаз и как-то не логично (куски дизайна налеплены как попало), т.о. что-то поменять = всё перенарезать;
  • весь контент надо править и форматировать вручную, в html-виде.

Пришла мне в голову такая идея: воспользоваться готовыми решениями Google Page Creator. Т.е. заходим, создаём тестовую страничку, потом выбираем для неё layout (например, "сверху шапка, слева столбец под меню, посередине контент") и шаблон ("розовые рюшечки II"). После этого в визуальном редакторе вбиваем основные элементы, потом сохраняем результаты и 3.14здим хтмл-код себе.


Это даёт следующие конкурентные преимущества:

  1. Вы вольны выбирать внешний вид страницы и расположение элементов.
  2. Можно заранее вбить все данные и посмотреть что как получится. В визуальном редакторе.
  3. Гугл уже проследил за кроссброузерностью итд.
  4. Весь сайт под это заточен, так что, я думаю, проблем с копирайтами нет, и не обязательно после этого давать внизу ссылку на super-templates.com.

Сайтостроение XXI века

Сегодня размышлял, как получше сделать один свой проект, о котором читатели моего блога узнают первыми :] , и пришёл к интересному выводу: если раньше веб-девелоперы для ускорения создания своей системы использовали готовые куски кода и шаблоны (счётчики, гостевые книги, формы, валидаторы, и всё в таком духе), то теперь всё чаще начинают использоваться готовые сервисы:

  • поиск по сайту - всего лишь форма на Google или Яndex;
  • новостная лента - любой бесплатный блог-сервис (Blogger, WordPress, ЖЖ) и выложенные через RSS заголовки оного;
  • форум - ссылка на Google Groups или что-то вроде;
  • сбор данных форм - wufoo;
  • хранение фотографий (да и для файлов можно что-то найти) - Flickr;
  • создание целого сайта, даже с гаджетами - Google Page Creator;
  • представление большинства гео- или карто-графической информации - Google Maps.
Уф... Получается, за вами - только создание контента. Хотя, как оказалось, даже тут можно облегчить страдания - теперь есть копирайтеры: специально обученные люди, которые (за деньги) будут наполнять ваш сайт текстами определённой тематики.

Теперь осталось только одно: идея проекта. Чую, скоро сделают генератор веб-проектов: задаёшь тему и основные моменты, а получаешь готовую работающую систему с на глазах появляющимся контентом. Красота...

15 июля 2006

Журналы для скорочтеца

Читал сегодня свежий номер "Компьютерного обозрения" и заметил, что узкие новостные колонки как нельзя лучше подходят для обучения скоростному чтению:

  • ширина колонки достаточна для захвата всей строки одним взглядом даже для начинающего чтеца;
  • новый способ чтения всегда приводит к небольшой потере смысла прочитанного текста на первых порах, поэтому новостная лента идеально подходит для таких тренировок: понял прочитанное - хорошо, не понял - не страшно.

Тем не менее, любители чтения с экрана по прежнему могут использовать мою старую идею - использовать свой RSS-агрегатор и регулировать нужную ширину колонки.

13 июля 2006

Потенциал и деньги

Интересно наблюдать за своими мыслями... Недавно я размышлял на тему материального успеха - когда бъёшься, бъёшься... и добиваешься. Что происходит с человеком, когда у него становится много денег. Даже не с абстрактным человеком, а со мной лично.

И вот к каким выводам я пришёл:
  1. Первое, на чём я себе поймал - такой милый самообман, что когда у меня станет много денег и я смогу купить всё, что хочу, то автоматом решатся все мои мелкие проблемы типа лени, прощаний с кроватью заполдень, отсутствие усидчивости и концентрации, и тому подобное. Нет, сами собой они не решатся, решил я.
  2. Дальше я вспомнил старую идею, которая гласит, что деньги сами по себе не хороши и не плохи, потому что деньги - это чистая энергия. Как мышцы - с ними ты можешь быть сильным хулиганом, а можешь быть сильным миротворцем. Получается, что когда у меня будет много денег - у меня будет много энергии, мой потенциал увеличится. И если я уже сейчас страдаю от того, что мой потенциал недореализован, то дальше это будет ещё мучительней.
  3. И последнее. Вывод, к которому я пришёл - реализовывать свой потенциал уже сейчас. "Держи мерзавку в черном теле". Воспитать себя сейчас, чтобы потом не было мучительно больно, во-первых. И во-вторых - на осёдланном таланте будет проще доехать туда, куда я стремлюсь.
Значит, завтра подъём по плану, в 8 утра, и на пробежечку. На море.

12 июля 2006

И снова об авто-генерации PHP-кода

Как-то я уже вопрошал, как же использовать тот факт, что интерпретируемые языки, к которым относится и PHP, могут сами себя генерировать. Т.е. скрипт взял, создал файл, наполнил кодом меж <? и ?>, а потом взял и подключил его. Опа!

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

В общем, что-то начинает вырисовываться.

1=1

Часто встречал, как в SQL-запросе в WHERE-клаузе пишут вот такую заглушку:

...
WHERE 1=1

А в мануле по MySQL-экзамену, который я сейчас читаю, чаще всего пишут так
...
WHERE 1

Помня о том, что MySQL умеет преобразовывать типы данных как ему надо, я подумал, что эти выражения не совсем эквивалентны, что может сказаться даже на скорости их выполнения.

Тогда я пустил отдельно два этих запроса:
SELECT BENCHMARK(1000000000, 1)
SELECT BENCHMARK(1000000000, 1=1)

Первый отработал за 19.19 сек, второй - 56.90

Потом я пошёл дальше и написал хранимку:
CREATE FUNCTION query_table(s INT) RETURNS INT
BEGIN
SELECT COUNT(*) INTO s FROM `translit2` WHERE 1;
RETURN s;
END

Эта функция отработала за 17 секунд (кол-во тестов пришлось уменьшить, чтобы не тормозило. Кстати, хорошая кликуха - Тормозило)
SELECT BENCHMARK(1000000, query_table(1) )

После внесения в код функции 1=1, она стала отрабатывать миллион пусков бенчмарком за 20 секунд.

Вот такие приколы. Ах, сколько ещё оптимизировать можно!

Как я чуть было землю не купил

Хочу я давно купить кусочек земли у моря, скажем, на Фиоленте (это такой дачный приморский район в Севастополе). На мой взгляд, со временем народ будет перебираться жить из центров на окраины, как это делают в Европе и уже начинают делать в Москве.

Ну и вот нашла моя благоверная кусочек 4.5 сотки с трёх-этажным недостроенным домиком за $7 500. Для сравнения: сотка земли там стоит примерно $1 000. В домик уже вложено нехило (3 этажа из инкерманского камня, а каждый стоит гривны 2-3). В общем, выгодно.

Дали мы задаток $100 и, поскольку дело было в субботу, стали ждать понедельника, чтобы взять кредит в банке. Получаю я нормально, так что с расчётами проблем не было бы, дали бы кредит.

Но это оказалось неразрешимой проблемой :[
  1. Жилищные кредиты на этот вариант не распространяются - покупаемый объект должен быть именно жилым. А дача - ну она и есть дача.
  2. Некоторые банки ("Аваль", "Петрокоммерц") дают кредиты на покупку земли, но земля должна быть приватизирована, т.е. должен быть госакт на неё. Наш кусок был неприватизирован, т.е. по сути принадлежал дачному кооперативу, который, как сказали в банке, мог оспорить наше право на эту землю после совершения сделки, потому-то банк денег и не дал.
  3. Вариант "быстренько приватизировать эту землю, а потом уже нам продать" не катил, потому что процесс это небыстрый (несколько месяцев), а продавец сразу поставил ограничение по времени.

Так что задаток мы подарили. Правда, продавец (парень военный) пообещал, что если успеет продать в те сроки, в которые он рассчитывал, то вернёт задаток, что не может не радовать.

Вот такой аграрный жопыт.

10 июля 2006

Office In Ukraine

Америкосная контора набирает народ в свой ещё не открытый офис в Украине. Дерзайте, парни!

Яndex в Германии

Если Яndex будет открывать своё представительство в Германии, рекомендую назвать его Йа-йандекс.

Бесплатный PHP-сертификат

Внимание тщеславных мальчиков и девочков! Хотите такой сертификат?
Тогда вперёд!

Сам тест оставляет желать лучшего: нет ограничения по времени, вопросы лёгкие и поддаются копипасту. Зато бесплатно, и бумажечка красивая :]

07 июля 2006

Ментальные карты

Записывать свои идеи рекомендуют с использованием ментальных карт. Для этого я раньше использовал бесплатный FreeMind, но он на Яве и потому мне не нравится, а вот тут вам предлагают подписаться на бесплатную раздачу новой проги этой категории.

Просто прикольный дед

Есть приём! Смотрим
Видео совсем небольшое

Дешёвые кредиты

В свежей газете объявлений вижу такое: "кредит на 30 лет под 14.5%". Простой подсчёт показывает, что покупая квартиру за $50,000, вы переплатите $170,000 (а люди постоянно ноют, что денег нет), т.е. всего 441% (30 лет * 14.5%).

Вижу только один реальный выход - разрулить землю и построить дом.

06 июля 2006

Е-бизнес

Читал как-то книгу советского министра, инженера по образованию, съездившего в США и отметившего такую черту их экономики, как (не помню, как одним словом) получение дохода даже с отходов производства. Например, он пишет, как был на американской птицефабрике, чьи хозяева поведали, что мясо продают в магазины, пух и перья - на подушки, и так далее, только вот вонь не придумали пока, куда бы продать. Пока у нас до этого далеко, но я стал задумываться :]

Вот тут планчик нарисовался:

  1. дописать быстренько свой веб-проект;
  2. до конца июля написать под него гаджет для Google Desktop (конкурс идёт, я об этом писал). Получить за это футболку от Гугла, строчку в резюме и фичу на сайт;
  3. написать статью "Как я писал гаджет для Google Desktop" и получить за это денюжку;
  4. на том же сайте обновить раздел "О нас пишут в СМИ" :]

Везде бы так...

Китайцы придумали классную идею

Идея такая. Многие продавцы дают скидку оптовым покупателям. Так вот китайцы через специальные сайты договориваются о встрече у их ЦУМа и толпой идут покупать товары. Как флешмоб, только с выгодой.

Давно об этом думал, но реально ли это у нас?

05 июля 2006

UMC взялась за клиентов


Наблюдаю положительные сдвиги в работе UMС:
  1. контрактным абоникам дышать стало легче. Я вот перехожу на тариф "Мережа Лёгкий" - 5 грн в месяц абонплаты, зато 30 бесплатных минут разговоров ежемесячно. Раньше такое удовольствие стоило 30 грн/месяц (хотя этот тариф всё ещё предлагается).
  2. перейти на другой тариф можно одним звонком в сервисный центр, общаясь с милой девушкой-оператором. Раньше поход в местное представительство с паспортом был обязательным.
  3. и что меня совсем прибило - где-то через час после перехода звонят мне с неизвестного номера. Поднимаю трубку, а мне автоответчик женским голосом гласит: "Вы сменили тарифный пакет. Оцените работу обслуживавшего вас оператора. Нажмите клавишу от 2 до 5". Я поставил 4. "Спасибо. Надобраничь."
Осталось до полного счастья сделать бесплатным номер, по которому сообщают, сколько у тебя осталось бесплатных минут, и убрать плату "за зъеднання", что есть полный дибилизм и стяжательство.

А в целом направление интересное.

04 июля 2006

лента новостей по-быстрому

Чтобы быстро прикрутить ленту новостей на сайт, я придумал такую схему:

  • создаём блог пишем в него новости;
  • с помощью специального класса преобразуем RSS-фид блога в массив сообщений;
  • выводим массив на странице своего сайта.

Весь процесс (без дизайна) занял 10 минут.

Один из плюсов и побочных эффектов - пользователи имеют встроенную возможность комментировать новости.

Странная девушка в троллейбусе

"Смотри! Смотри!" - таращились бабушки на полупьяную выпускницу кафедры АВТ...

03 июля 2006

Ещё один способ не делать бизнес

Я узнал из источников, близких к достоверным, что, оказывается, покупать/продавать плохо лежащую землю и помогать другим гражданам Украины реализовывать своё право на кусок земли с выгодой для себя в нашей стране считается махинацией и уголовно наказуемо (либо надо организовывать агенство недвижимости и получать право на работу с землёй). Так что идеи Кийосаки со его рассказами про свои аграрные спекуляции в наших реалиях пока применимы мало.