В связи с появлением проблемы 6-го дня (см. предыдущий пост) вытащить период (данные за определенный промежуток вермени с шагом например в день), у которого есть дата начала и дата конца, средствами php становится невозможно, поэтому пришлось выдумывать хитрую, но 100% рабочую схему в Oracle.
Начальная ситуация: статистика, есть таблица с периодами (periods) и таблица со статистическими данными, которые расположены по датам (несколько записей за день), но не всегда за все даты есть данные или требуется отобразить период, который еще не закончился, но показать нужно от начала до конца с нулями за даты, которые еще не прошли.
select d.dt, sum(<здесь все что нужно выбрать из таблицы статистики>)
from
(
SELECT (TRUNC(( select databegin from periods where period_id= '<идентификатор периода>' ), 'DD') + ROWNUM -1) as dt
FROM all_objects WHERE ROWNUM <= ( select trunc(dataend) - trunc(databegin) from periods where period_id= '<идентификатор периода>' ) + 1
) d
left join
( <таблица или несколько статистики> ) e
on d.dt=trunc(e.date)
group by d.dt
С началом октября появилась проблема 6-го дня в php (наблюдается на php-4.4.8 win32 и 4.x на linux, на других платформах эксперименты не проводились). Ее можно назвать реинкарнацией проблемы 2000 года.
Суть проблемы заключается в косяке в php-шных функциях работы со временем, результатом которой является неверное исчисление времени для октября 2008. Сентябрь, ноябрь и декабрь (дальше не проверялось) без проблем.
Более подробно видно из примера:
Отсидка дома из-за болезни хороший повод поиграться с техникой да поэкспериментировать с чем-нибудь...
Как говорится "голь на выдумки хитра", а именно от того что болеть скучно купил себе Asus EEEPC 1000H, очень доволен но сейчас не об этом. Естественно хочется сразу на него дать инет и естественно без проводов. Покупать роутер жаба душит да и в магазин скататься пока нет возможности, поэтому все будем строить своими руками, благо в доме есть 2 компа и у второго есть беспроводная сетевуха.
Ставим задачу.
Имеется 2 компа в одной подсети: основной 192.168.19.112 с виндой и обычной сетевухой, и экспериментальный 192.168.19.25 с Fedora Core 7, обычной (eth0) и беспроводной (ath0) сетевухой. Упомянул про основной тк на него тож надо будет ходить. А также зачинщик всех экспериментов - новенький EEE PC. В подсети 192.168.19 имеется интернет посредством vpn-соедиения со шлюзом провайдера 192.168.19.2.
Что нужно: дать интернет и доступ к основному компу по беспроводной сети для EEE PC.
Решение.
Изначально пошел не правильным путем тк стоило бы сначала дать интернет на экспериментальный комп а потом морочиться со всем остальным.
Для решения на понадобится: поднять беспроводную сеть, организовать в ней раздачу адресов (dhcp-сервер кончено не обязательно, но это правильно), дать в беспроводную сеть инет, научиться ходить к основному компу.
Сначала поднимаем беспроводную сеть. Для этого ставим madwifi в виде rpm для нашей ОС. Было бы конечно проще через yum при наличии на машине интернета.
Ставим dhcpd тоже из rpm. Кстати dhcpd требует еще и openldap-servers которого на диске у меня не оказалось.
C этого бессмертного творения начиналась моя веселая институтская жизнь... Все аудитория в течении всей лекции маленькими группами по 3-5 человек периодически взрывалась от смеха, вызывая недоумение у препода... А было это еще аж 1999!
Секpетаpши за компом
Заигpались вечеpком.
Каб мне быть женой Админа,-
Говоpит одна фемина,-
Я б сидела в Интеpнете
Кpyглый год, как на диете.
- Каб мне выйти за Админа,-
Говоpит дpyга фемина,-
Я б yзнала все пассвоpды
и запомнила их твеpдо,
- Кабы вышла за Админа,-
Тpетья молвила фемина,-
Я б емy за все дела
Пpогpаммиста pодила.
Только вымолвить yспела,
Двеpь коpяво заскpипела -
Поедая мандаpин,
В двеpь вломился Сисадмин,
Во все вpемя pазговоpа
Он таился хyже воpа.
- Hy, здоpово, ламеpица,-
Говоpит,-давай жениться!
И pоди пpогpаммаpя
Мне к исходy сентябpя.
Остальным хочy сказать:
С солитеpом завязать!
Поезжайте вслед за мной
И гиpлой моей кpyтой.
Раскатили вы гyбень -
Интеpнет, пассвоpды - лень
Бyдь одна из вас ткачиха,
А дpyгая - поваpиха
Их оставил Сисадмин -
И за пивом в магазин.