Месть

Прежде чем начинать мстить выкопай две могилы....
(С) Конфуций

Шоу японских барабанщиков

Был вчера на шоу японских барабанщиков, молодцы ребята отыграли по полной! получил массу удовольствия

Начало разработки приложения photo.i.ua для Android

Начал потихоньку разбираться с андроидом, пока вот...


Ограничение на число cookies в броузерах и счетчики

Вчера решили интересный баг.
Проявлялся он следующим образом -  в мозиле при просмотре к примеру фоток на photo.i.ua, после 20-40 фотки  слетала сессия.
Как оказалась причина в ограничении числа cookies на домен (20-40 в зависимости от браузера), и того что код счетчика для проверки работы cookies  пользователя ставил тестовую куку без указания path=/, что приводило к установке куки на каждую страницу с фотографией и при набирании 20-40 таких кук  - броузер чистил самую старую из кук (под самую старую часто попадала кука сессии)

PS: Данный баг был обнаружен в коде счетчика I.UA, Bigmir.net (I.UA поправили)

Влияет ли вращение Земли на продолжительность полета самолета?

  • 03.09.10, 19:22
безусловно влияет. Земля - это неинерциальная (вращающаяся) система отсчета. в курсе общей физики вводится вектор угловой скорости w (омега), который направлен из северного полюса земли вверх и численно равен w = [2*pi/(24*60*60)] = 73 (мкрад/с) (микрорадиан в секунду). Это означает, что Земля вращается  против часовой стрелки если смотреть прямо на северный полюс (читай на на вектор w сверху), совершая один полный оборот (2*pi радиан (180
градусов)) за сутки (24*60*60 секунд). в неинерциальной системе отсчета, т.е. на Земле, действуют особые силы. одна из них сила Кориолиса.  сила Кориолиса действует на все тела, движущиеся с ненулевой скоростью в  неинерциальной системе отсчета и определяется формулой Fк=2m[v*w], где [] - векторное произведение векторов скорости и угловой скорости. эта сила направлена по правилу правого винта, примененному к векторам v и w  (свойство векторного произведения) и перпендикулярна обоим векторам. С ней связаны такие явления как вода, закручивающаяся в воронку, неравномерный износ ж/д рельсов при движении по ним поездов только с севера на юг или наоборот только с юга на север, неравномерное размывание берегов рек, которые имеют такие же направления. танцор, который раскручивается с распростертыми руками, а затем прижимает руки к туловищу и ускоряет свое вращение также использует силу Кориолиса. попробуйте, крутясь на карусели перебраться с ее края на центр или  наоборот. вас будет сносить в бок. ну или раскрутиться на этом тренажере для беременных (тарелка такая напольная) с руками  расправленными, а затем руки прижать. вы почувствуете на себе все ту же силу Кориолиса. в общем говоря, при движении с севера на юг или с юга на север, тела "сносит" вправо, так как земля под ними вращается. что касается движения с запада на восток и с востока на запад. при движении с запада на восток тела становятся легче, а при движении с  востока на запад тяжелее. для пассажирского самолета ТУ-154М с массой 80
т и, летящего с крейсерской скоростью 850 км/ч = 236 м/с, получаем Fк =  2*80000*0.000073*236 = 2.8 кН, что равносильно 280 кг. То есть самолет,  летящий из Москвы во Владивосток становится на 280 кг легче, а самолет
летящий обратным рейсом  - на 280 кг тяжелее. соответственно, вес  самолетов различается больше, чем на полтонны. при длительном перелете,   разница во времени будет очевидна. самолет, летящий с востока на запад тратит больше тяги на создание подъемной силы, чем самолет, летящий обратным рейсом. если мощность двигателей при этом одна и та же, то  самолет летящий из Москвы, летит быстрее самолета, летящего из Владивостока.

PS: Взято от сюда http://otvety.google.ru/otvety/thread?tid=551fd60fb013cb21

Ужасное гарантийное обслуживание Фотомаг - HTC

Хочу поделиться своим горе опытом приобретения товара в интернет магазине fotomag.com.ua
В августе прошлого года купил коммуникатор HTC, в середине мая этого года у аппарата сдох сенсор (т.е. экран перестал реагировать на нажатия).
Я по наивности послушался фотомаг и повез телефон в официальный сервисный центр HTC (надо было везти сразу в магазин).
После 3-х недель ожидания детали, СЦ вернул мне телефон с бумажкой о невозможности ремонта в определенные законодательством сроки (14 дней).
С бумажкой от СЦ и телефоном я поехал в магазин фотомага, и уже сдал его в фотомаг, после этого перезваниваю в фотомаг и получаю убивающий на месте ответ "телефон поменять не можем - он не имеет товарного вида, поэтому мы его отправляем снова в ремонт" (условия гарантии не нарушены, о чем есть заключение СЦ)
Проходит еще 2 недели и я уже через горячую линию HTC узнаю что телефон лежит в сервисе со статусом "ожидание детали", также на горячей линии HTC получаю заверения что в моей проблеме разберутся...

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

22.07.2010 Забрал телефон с ремонта в итоге больше 2-х месяцев ремонта... ж(((

PS: Вот такой вот сервис HTC и фотомага
PS2: Несите товар не в СЦ, а в магазин (это ваше право по закону)
PS3: Это был мой последний HTC и последняя покупка в фотомаге.

Камбоджа - Тайланд - 2006

Репост моего старого отчета....
Вот только немного оправился после приезда...
Отчёт писал во время поездки, так сказать по горячим впечатлениям.


[ Читать дальше ]

Проверка наличия ключа и вставка в hash_map

  • 23.03.09, 19:32
  • с++
Часто бывает нужно проверить есть ли некий ключ в hash_map и в случае его отсутствия - вставить его с некоторым значением.

Это наиболее эффективно делать  следующим образом:

std::pair<TKeyHash::iterator, bool> res = _keys.insert(TKeyHash::value_type(key, curTime.Unix()));
if (res.second) // если значение положительное - ключа небыло и он вставился
{
 // делаем что-то со значением...
}
else // ключ уже был и итератор смотрящий на значение помещен в res.first
{
 // делаем что-то со значением...
}

hash_map.insert vs []

Часто в коде можно увидеть использование конструкции

typedef hash_map<Word32, class SomeClass> TSomeHashMap;
TSomeHashMap shm;
shm[10] = SomeClass(val1, val2);


Более оптимальный, в большинстве случаев, следующий код:
shm.insert(TSomeHashMap::value_type(10, SomeClass(val1, val2)));

Лишние затраты в первом случае получаются из-за того что оператор [] это фактически:
(*((shm.insert(TSomeHashMap::value_type(10, SomeClass()))).first)).second = SomeClass(val1, val2);

Т.е. Фактически вначале вызывается пустой конструктор, затем вызывается конструктор создания класса SomeClass с нужными значениями, затем вызывается конструктор копирования и заполняется пустой объект.

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