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

Осваиваем Yii. Сбор требований

Итак, мы делаем сайт, для взаимодействия со сторонним сервисом. Как он будет работать?

Пользователь заходя на сайт, попадает на свой профиль. Оттуда он может настроить расписание, посмотреть статистику, принудительно включить или выключить нечто, посмотреть статус этого нечто (сейчас включено или выключено).

Менеджер, заходя на сайт, может добавлять/удалять пользователей. Возможно, даже скорее всего, функции менеджера будут расширятся.

Есть скрипты взаимодействия с внешним сервисом, который непосредственно включает или выключает наше нечто.

Необходимо, также, что бы работа с базой касательно включения/выключения происходила максимально через одну точку (чуть не написал - через одно место ))). То ли на уровне сайта, то ли на уровне внешней системы (пока делаем на уровне сайта)

Осваиваем Yii

Решил, пока выдалась свободная минутка, освоить для себя новый php-фреймворк Yii.
Почему именно Yii? Ну, во-первых, красивое название, особенно в русской транскрипции: "Уй" :)

Во-вторых, по словам разработчиков
Yii is a high-performance PHP framework best for developing Web 2.0 applications.

Что бы освоить что-то, нужно написать какое-то приложение.
Писать буду по методу прогрессивного джипега Иными словами - по быстрому набросать, потом допиливать.

Задача заключается в следующем.

Есть некий сервис, где пользователь может составить некое расписание работы чего-то, просмотреть статистику работы этого чего-то. А так же может принудительно включить или выключить это что-то.

Для простоты, статистику будем делать почасовую.

четверг, 9 сентября 2010 г.

php тренарный оператор

1) недавно узнал, что в php 5.3 появилась возможность делать так
$a = $b ?: $c;
Которое можно использовать вместо
$a = $b ? $b: $c;

2) Пусть
$a = true; $b = false;
Тогда
$c = $a : '1' ? $b ? '2' : '3';
В таком случае $c = 2; Если же мы хотим что б $c = 1 придется ставить скобки
$c = $a : '1' ? ($b ? '2' : '3');

понедельник, 6 сентября 2010 г.

Symfony framework - собственная валидация формы

http://www.pbtg.com/blogs/jim/2009/07/16/symfony-tutorials-using-sfvalidatorcallback

Попробую позже перевести основные моменты

пятница, 13 августа 2010 г.

Возобновление записей

Решил для структурирования знаний снова начать делать записи в блог. В идеале - каждый день. Но реально - как получится.)

пятница, 15 января 2010 г.

фишка работы с консолью mysql

если вы в консоле mysql введете "\P less -SX" без кавычек, то установите режим просмотре аналогичный просмотру файла c помощью команды less

понедельник, 30 ноября 2009 г.

пятница, 27 ноября 2009 г.

Подсказки

Часто на сайтах делают формы регистрации такого типа



которые клике на поля ввода - очищаются. Делается это приблизительно так
<input onblur="javascript: if(this.value=='') this.value='login'" onfocus="javascript:this.value=''" type="text" value="login" /> <input onblur="javascript: if(this.value=='') this.value='password'" onfocus="javascript:this.value=''" type="password" value="password" /> <input type="submit" value="Send" />


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


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

Кстати

Поиск по истории того, что мы вводили - в командной строке нажимаем ctrl+r и начинаем вводить то, что хотим найти

немного о трубе

О такой  штуке как pipe (пайпа, иногда в русском переводе - канал, конвеер ), знают многие. Тем не менее - не все. Это очень удобная штука переводящая выход одной программы на вход другой.

Допустим, нам нужно выбрать данные из sql  в текстовый файл. Пишем


$ echo "SELECT * FROM some_table limit 10" | mysql -h host -u user -p some_database > my_file.txt

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

четверг, 19 ноября 2009 г.

Как говорить правильно

А вы знаете, что правильно произносить название языка SQL. Обычно в рускоязычном сообществе говорят "ЭсКьюЭль". Однако на английском оно звучит как "Сиквэл".

Сбор статистики

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

Часто бывает так, особенно при выводе  статистики, что нужно вывести данные разбитые по дням, а внизу - агрегированные данные, часто - сумма данных по дням.

Обычно такая задача решается следующим образом: Делается запрос вида

SELECT date, sum(money) as day_earning FROM my_stats GROUP BY date

А потом вручную считаем сумму за все дни.

Однако в mysql есть возможность извлечь эти данные одним запросом:
SELECT date, sum(money) as day_earning FROM my_stats GROUP BY date WITH ROLLUP
В этом случае результат будет такой же как и у первого запроса и последняя строчка со значением NULL в поле date и суммой за все дни в поле day_earning.