Общее·количество·просмотров·страницы

среда, 29 декабря 2010 г.

У меня Рождественские каникулы.

В России всё наоборот - в мире они начинаются с Рождества, а у нас заканчиваются.
Отсюда и традиция праздновать Старый Новый Год.
И вообще я с сегодняшнего дня отдыхаю. Самое приятное, что все дела завершены и можно расслабиться по полной. Однако закупки к НГ не дают это сделать.
Да, и мне подогнали засахаренный дуриан, килограмма 4 был по скромным оценкам.
Теперь эта штука ждёт уничтожения по НГ. Вот думаю, когда его выложить. Когда все напьются и будет пофигу или после. До нельзя по любому - НГ будет испорчен)))
После тоже стрёмно - с алкоголем эту штуку есть нельзя - очень тяжело после этого.
Заплавлен в штук 6 целлофановых обёрток ))) У меня у знакомого в Бангкоке 300 баксов в качестве штрафа в отеле раз взяли. Оно и понятно, 3 дуриана могут легко скинуть 3 звезды с любого отеля)))

пятница, 24 декабря 2010 г.

Рождество приближается

Нашёл чудесную угрозу => перевожу на русский)))
Это работало на старом форуме. Санта не остановится у админа пока эта проблема не решена.
Всех кто празднует в этот день - с наступающим Рождеством.

вторник, 21 декабря 2010 г.

Джими Уэйлс заколебал реально.

Готов послать 5о баксов за программу вырезания его слёзного баннера из страниц википедий.

А вот и он, Новый Год на носу.

Запланировано в Новом Году.
1. Переезжаю на новый хостинг.
2. Делаю новый большой коммерческий сайт.
3. Летим кататься на лыжах(не делал этого несколько лет, наверняка опозорюсь)

Коньяк и шампанское для проводов старого уже закуплены. Десерт типа конфет тоже.
Незавершённые дела года:

Закончить разводку кабелей дома.
Успокоить Joe, стимулировать Andrew.

Год был для меня прекрасный, завершил кучу дел, которые мешали двигаться вперёд.
Завёл себе новых друзей. Особенно хороша фламандская пара, биофиличны до экстрима, не жадные до альтруизма. Пригласил в гости.

Кстати, нашёл легенду о происхождении восточного календаря. Про меня легенда не врёт!)))

«Однажды Будда пригласил к себе всех животных, которые только захотят прийти. Пришли далеко не все звери: время стояло холодное, а чтобы попасть к Будде, нужно было переплыть широкую реку. Каждому из пришедших в порядке живой очереди Будда подарил по одному году правления. Первой пришла Крыса — ей достался первый год двенадцатилетнего цикла. Она была вознаграждена за оперативность и умение пользоваться обстоятельствами. Буйвол оказался в очереди вторым, чуть-чуть от него отстал Тигр, которому достался третий год.

Болельщики, увлеченные соревнованием между Буйволом и Тигром (они с тех пор и в жизни соревнуются друг с другом), как следует, не рассмотрели, кто пришел четвертым — Кот, Заяц или Кролик. За давностью лет истину установить невозможно, и у разных восточных народов так и осталось разночтение относительно хозяина четвертого года. Пятым был Дракон, шестой оказалась Змея, седьмой — Лошадь. Тут по реке прошла полоска тумана, и опять не ясно, кто был восьмым — Коза, Овца или, может быть Баран. Девятой в очереди была Обезьяна, которая не хотела рисковать и внимательно наблюдала за пловцами. Убедившись в безопасности, она вошла в воду. Десятым прибежал Петух (а может быть и Курица). Он задержался, потому что долго и обстоятельно рассказывал своей многочисленной семье, как она должна жить в его отсутствие. Одиннадцатой прибежала Собака. С утра у нее была масса хозяйственных дел, и едва управившись с ними, она разгоряченная бросилась в воду. Говорят, потом долго кашляла.

Последним появился Кабан (или Свинья). Он не очень спешил: не честолюбив, не привередлив, в жизни обычно подбирает все, что остается после пронырливых. Ему Будда подарил последний год, но самый спокойный и отличающийся изобилием и спокойствием. Так была вознаграждена прекрасная черта характера — способность удерживаться от соблазна тянуть одеяло на себя».

воскресенье, 19 декабря 2010 г.

ASP.NET vs. PHP. Флейм с самим собой(ужос). Часть 1.

PHP против ASP.NET. Чистая производительность в "голом" приложении.

1.Вызовы функций MySQL из PHP в Linux незначительно быстрее, чем к MS SQL Server в Windows (SELECT).


2.Единственное, где PHP берёт верх - это работа с аттрибутами и копирование файлов.
Первое понятно, так как Reflection здорово тормозит работу приложения.

3.Но существенное преимущество в копировании проявляется только в Линуксе.

4.ASP.NET (C#) - использование объектов, вызовы библиотек... несравнимо быстрее, чем эквиваленты в PHP.

Однако, есть ложка дёгтя - если использовать тот же MySQL в ASP.NET, то он будет работать гораздо медленнее чем MS SQL Server. Я сделаю тесты в будущем и расскажу что и как быстро работает.

суббота, 18 декабря 2010 г.

Подключи Qwerty и пролети!

Немало занимался маркетингом в своё время, собственно и сейчас мой род занятий на 70% маркетинг и не могу пройти мимо какой-нибудь глупости в области IT-маркетинга.

Центральный Телеграф предоставляет услуги интернета в Москве и отдельных городах Московской области. Это небольшой провайдер, рыночная доля которого в Москве составляет по разным оценкам 5-6%.

Ничто не доставило мне таких приятных минут как отслеживать недавние изыски маркетинга Центрального Телеграфа в разрезе конкурсов. И ведь нельзя упрекнуть людей из маркетинга ЦТ в отсутствии хороших идей, хотя и спущены эти идеи им сверху.
Я вздохнул в своё время свободно, когда тот конкурс-лохотрон-2008 с освоением скудных средств на форуме поддержки Qwerty наконец закончился, но как оказалось рано.
Эпопея продолжилась в этом году с робкой попытки провести конкурс к Дню Победы.
Конкурс по факту провалился, но было списано на благотворительность, так как предлог был достойный.

Это бессмысленное дело продолжилось когда так называемые "администраторы форума" встретились с маркетингом и драконьи зубы дали всходы, правда не совсем так как хотелось вышеназванным товарищам, оно и к лучшему, так как в прошлом они были замечены лишь в освоении средств провайдера. Скандал с липовыми конкурсами на форуме ещё помнят в Телеграфе.

Но суть моей записи не в этом, а в хронологии глупости.
Итак, летом 2010 года был проведён конкурс фоторабот с призами типа недорогой фоторамки и ниже. Конкурс в целом удался. Из всего контингента клиентов Кверти в нём приняли участие около 40 человек, большей частью пришедших с форума поддержки этого провайдера.
Собственно и это количество было таковым только благодаря бессмысленной активности некоторых администраторов форума. Реально, пользователей приславших фотоработы должно было быть не более 30ти.

У адекватных людей подобная вялость должна была вызвать настороженность, но не у тамошних "одминистраторов". Раскручивая эту показуху они сослужили поистине медвежью услугу руководству провайдера, было десять раз сказано, что конкурсы надо прекращать в любом виде, но зомбоадмины невосприимчивы ни к чему разумному. Ими правит правит только магия вуду и запах шальных денег которые они в прошлом осваивали.
Идея следующих конкурсов которые последовали за этим активно продвигалась ещё мною.
К сожалению в то время конкурсы курировал человек который был неспособен вообще не на что, кроме попыток дефибрилляции того, что не работало. И как это часто бывает с некомпетентными людьми что именно должно было скрываться и как всё должно было было делаться они не знали. Нельзя сделать технологичное изделия без знания технологии и наличия способностей.
Итак сверху было спущено 3 конкурса:
- на лучший видеоролик - приз автомобиль
- лучшая фотография на тему «QWERTY – лучший провайдер»
Приз - домашний кинотеатр
- «Лучший слоган для QWERTY»:
Приз - цифровой фотоаппарат.
Когда я впервые узнал об этом, то даже был в небольшом восторге, но эйфория быстро прошла так как практически с самого начала из организации стало понятным, что конкурсы скорее всего провалятся.

Не было почти никакой поддержки акции, а то немногое, что было на форуме и по линкам было сделано неумело. Первоначальные тексты постов с описанием постоянно ухудшались, внешнее освещение акции было сделано отвратительно, а вернее никак. Я злорадствую и перечислять и раскрывать все многочисленные проблемы не буду. Денег за это я не получаю, поэтому пропустим мелочи.

Было очевидно, что любые работы последуют только в конце, даже при условии правильной организации (чего и в помине не было), как это бывает со всеми конкурсами где есть приличные призы.

Нервы маркетинга Центрального Телеграфа не выдержали и людей, которые прислали работы на конкурс роликов просто кинули, а конкурс переквалифицировали в "Подключи друга к QWERTY - выиграй автомобиль".

Шедевров там не было, но пара работ, заслуживающих поощрения всё же была. Это "кидалово" провайдера было обыграно настолько неуклюже на форуме, что даже меня, привычного ко всему, слегка затошнило.

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

воскресенье, 5 декабря 2010 г.

Система контроля доступа сайта

Как это реализовать грамотно?
Я столкнулся с ситуацией, когда существующее приложение использовало матрицу доступа в виде представления, то есть делалась выборка по всем пользователям и по всем объектам. Нетрудно представить, что это работает только тогда когда количество объектов и особенно пользователей невелико, так как количество строк в представлении = пользователи*объекты. При условии индексирования представления это работало быстро в MSSQL Server, но не работало быстро в некоторых других базах данных. По мере роста числа пользователей приложение работало всё медленнее.
Первым шагом было использование хранимых процедур или функций, в зависимости от базы данных, возвращающих одну строку с id объекта и полями типа доступа. Типов доступа на самом деле немного, поэтому нет смысла разделять строку на отдельные значения.
Итак, мы имеем для объекта поле Flags int. Типы доступа хранятся там. Это изначальное ограничение - на самом деле поле должно быть типа bigint, чтобы увеличить количество флагов. Этого значения должно хватить, если не хватает, в логике приложения есть проблемы. Правда, увеличение количества полей снижает скорость выборки, но не критично.

Запись флагов:
Flags = Flags | 2 (OR)
Проверка установки флага:
(Flags & 2) = 2 (AND)
Снятие флага:
Flags = Flags ^ 2 (XOR)
Мы можем использовать степени двойки если вы делаете всё в программном коде.

Следующий этап - как контролировать доступ.
Я выбрал избыточность данных, так как это - наиболее быстрый доступ, но можно и полагаться на кэширование хранимой процедуры. При избыточности важно контролировать логику приложения, чтобы данные изменялись синхронно.
Итак я выбираю все строки для данного пользователя из имеющегося представления(индексировано), которое в дальнейшем было конвертировано
в хранимую процедуру, и записываем их в таблицу связанную с активными в данный момент пользователями. Итого имеем записи в таблице для одного пользователя и всех объектов.
Выигрыш:
50000 пользователей и 200 объектов - 1000000 записей
50 пользователей онлайн и 200 объектов - 10000.
Нетрудно представить как повышается скорость выборки (и радуется провайдер хостинга).
Особенно при том , что эта таблица соединена JOINами при разных выборках.
Прелесть такого подходя и в том, что мы можем кэшировать в этой таблице недавние данные и это придаёт гибкость приложению.

Итак:
1. В хранимой процедуре контролируем доступ. Если в таблице доступа присутствуют записи для пользователя, используем их, если нет, делаем выборку.
2. Периодически чистим таблицу активных пользователей по времени последней активности и удаляем также из таблицы доступа
id пользователя удалённые из первой таблицы.

пятница, 3 декабря 2010 г.

ASP.NET и другие базы данных.

Политика Microsoft в отношении других баз данных просто хамская. Они работают в разы медленнее вне зависимости от потраченных нервов разработчиков.
Их LINQ работает быстро только с MS SQL Server. Причём идиотизм в том, что они навязывают этим пэйджинг и запросы на уровне приложения. Как итог - приложения с большим количеством возвращаемых строк тормознутые и сильно прожорливые даже для MSSQL Server, но коварство в том, что другие базы данных просто нереально тормозят при сложных запросах.
Но я сделал ход конём - пейджинг на уровне базы данных и общее количество строк возвращаемых за раз. Теперь приложения где это воплощено работают при возврате запросов всего раза в 2 медленнее - это доли секунды, но всё равно понемногу здесь и там - получаем быстрое приложение. Смотрю на идиотов лепящих код на LINQ и EF. Я их подбадриваю иногда - я заинтересован в медленных приложениях конкурентов :).
Простота - хуже воровства, убеждаюсь каждый раз.

четверг, 2 декабря 2010 г.

Что есть сайт?

Думаю в конце этой недели сделают код для интеграция и я смогу начать заполнять портал первичным контентом. Интересный проект намечается, ни разу не делал ничего подобного. В определённой мере для меня - это вызов.
Концепция форум - чат - магазин + статьи и альбомы не нова, но придумал нечто оригинальное и ненавязчивое для побуждений оставить денежку.
Сама концепция интересна.

Лобовое кодирование бессмысленно.

Всегда есть проблема логической интеграции блоков.
Проблема в том, что уровне кода физическая интеграция вызывает медленно работающее приложение. Поэтому недостаточно уметь писать код, нужно ещё быть и психологом.
Забавно, что для создания сайтов требуются разные умения.

Сайт подобен автомобилю.

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