И тема была поднята очень интересная и доклад отлично прочитан. И очень плохо, что из-за нехватки времени всё было сделано в сжатом формате и на спех.
2. photofile.ru
Интересный и познавательный опыт highload-проекта. Очень интересно слушать такие вещи - хотя бы из-за того, что такую инфу не отыщешь ни в книгах ни в инете. Ну и доклад был прочитан просто отменно.
3. Sphinx.
> Sphinx - база данных, нацеленная в основном на полнотекстовый
Sphinx это не БД это движок таблиц MySQL. Очень важный доклад, хотя бы в силу того что Sphinx неоднократно упоминался и в предыдущих докладах. Ну и конечно респект докладчику за легкий, юморной стиль - так даже материал усваивается как-то лучше :)
Из того что не понравилось выделю прежде всего выступление молодого человека из Юмисофта. Казалось бы такая прикольная и продвинутая у них CMS и такой слабый доклад. Неужели некого было послать на конференцию?
> Сейчас понимаю, что лучше бы это были экземпляры php-класса sfConfig.
Конфиг Пропела нужен для кодогенерации классов. Конфиг приложения это совсем другая вещь. Пропел это точно такой же Симфони-плагин как и все остальные. Разница лишь в том что он установлен в фреймворке по умолчанию, что кстати спорно. Чисто навскидку Doctrine мне больше понравился, хоть и говорят что он тормозной.
Да, Symfoclipse. Ты напомнил мне его название. Автокомплит кстати при работе с Пропелом очень хорошо помогает. А что касается ЯМЛа... Ну во первых, не нужно перечитывать все исходники, достаточно только самих ЯМЛ-файлов. Во-вторых. Неужели так уж много параметров хранится в конфиге?
The good news is that if you don't want to use YAML files, you can still do what the configuration files do by hand, in PHP or via another format (XML, INI, and so on).
И ещё. В Zend Studio For Eclipse 6.0 есть плагин для Symfony. Он в частности предоставляет неплохой редактор yml-файлов - анализирует на ошибки, подсвечивает табы и т.д.
Про Symfony можно сказать что это пожалуй лучший на сегодняшний день фреймворк на PHP. Тех недостатков что написано про ZF у него нет, а Cake и CodeIgniter вообще не конкуренты этим двум.
Очень нервная работа. Приходится угадывать что именно за фигня происходит на том конце провода. Например:
- у меня цифры не ннабираются!
- а ты Num Lock включи
Хотелось бы для начала взглянуть на эти самые проекты и поподробней узнать что за девелопер. Вообще говоря сомневаюсь что в России есть продвинутые специалисты по части данного фреймворка. По крайней мере сейчас.
> Коля — мужик, у него уже есть семья (летом ему будет 23 года) :)
Use condoms :).
Кстати насчет 1С это да - если нужны именно деньги вполне можно идти туда. А так, если есть интерес именно в плане программирования - не вижу проблем в принципе. 1 год опыта - это уже не про начинающего программиста. Это скажем так адекватный, посредственный программист. Не думаю что тут должны быть проблемы с поиском работы. Если конечно знать себе цену и не пытаться из кожи ввон получить з/п которой ты реально не заслуживаешь.
> угу, метод дрэг энд дроп, кнопочки, формочки рисовали... все свойства компонента Memo и прочих надо было на зубок помнить.
У нас был экзамен по WinAPI и к счастью наш препод требовал знать наизусть только основные идеи типа что такое оконная процедура, петля событий, HWND, HDC и т. д. Конечно, это правильный подход, мало кому понравилось бы учить все или даже хотя бы несколько WinAPI -функций с кучей параметров которые они принимают.
Мне кажется строгое математическое решение должно выглядеть примерно так.
У нас фактически есть множество натуральных чисел от 1 до n, где n - кол-во придворных. Более того, это множество представляет из себя последовательность, т. к. каждый придворный следит за каждым. Будем понимать что А "следит за" B означает что в этой последовательности число B следует за А. Тогда получим, что наша последовательность имеет вид:
1, x1, 2, x2, .... n, m
Дело в том что исходя из условия, последний придворный (номер n) должен следить за первым, т. е. находиться на предпоследнем месте. Ну а послдений элемент последовательности обозначим как m - про него мы пока что ничего не знаем. Зато, исходя из условия задачи можем переписать последовательность вот так:
1, m+1, 2, m+2, ... n, m
Наша последовательность состоит из двух последовательностей (точней сказать подпоследовательностей):
1, 2, ....
m+1, m+2, ...
Теперь неплохо было бы выяснить в какой из двух псоледовательностей находится число n. Оно не может находится в первой последовательности, т. к. в этом случае получим что вся последовательность выглядит примерно так:
1, m+1, 2, m+2, ... m+n-1, n, m.
В этом случае m+n-1 никак не может быть равен m-1, хотя исходя из условия задачи - должен.
Вывод: элемент с номером n должен находиться во второй подпоследователньости. А последним элементом первой последловательности яляется тот, что стоит перед n. Обозначим его как k:
1, m+1, 2, m+2, ... k, n, m.
Но тогда получается что n = m + k:
1, m+1, 2, m+2, ... k, m + k, m
И ОБЩЕЕ ЧИСЛО ТАКИХ ЭЛЕМЕНТОВ РАВНО 2K+1 ЧТО И ЕСТЬ ДОКАЗАТЕЛЬСТВО!
Большая часть ответов это не более чем рассмотрение частных случаев. Что никак не может считаться решением. Если я знаю что верен один из двух ответов (чет-нечет), то понятно что можно взять три - убедиться что условие выполняется и дать ответ. Тут особо и заморачиваться не надо.
Но по-хорошему необходимо доказать две вещи:
1) при всех четных условие не выполняется
2) при всех четных - выполняется
Программист - это человек который работает с информацией, а не непосредственно с железом, как сисадмин например. К сожалению люди привыкли мыслить материальными понятиями, к коим понятие информации не относится.
1. Доклад про Sedna DB.
И тема была поднята очень интересная и доклад отлично прочитан. И очень плохо, что из-за нехватки времени всё было сделано в сжатом формате и на спех.
2. photofile.ru
Интересный и познавательный опыт highload-проекта. Очень интересно слушать такие вещи - хотя бы из-за того, что такую инфу не отыщешь ни в книгах ни в инете. Ну и доклад был прочитан просто отменно.
3. Sphinx.
> Sphinx - база данных, нацеленная в основном на полнотекстовый
Sphinx это не БД это движок таблиц MySQL. Очень важный доклад, хотя бы в силу того что Sphinx неоднократно упоминался и в предыдущих докладах. Ну и конечно респект докладчику за легкий, юморной стиль - так даже материал усваивается как-то лучше :)
Из того что не понравилось выделю прежде всего выступление молодого человека из Юмисофта. Казалось бы такая прикольная и продвинутая у них CMS и такой слабый доклад. Неужели некого было послать на конференцию?
http://propel.phpdb.org/trac/wiki/Users/…
> Сейчас понимаю, что лучше бы это были экземпляры php-класса sfConfig.
Конфиг Пропела нужен для кодогенерации классов. Конфиг приложения это совсем другая вещь. Пропел это точно такой же Симфони-плагин как и все остальные. Разница лишь в том что он установлен в фреймворке по умолчанию, что кстати спорно. Чисто навскидку Doctrine мне больше понравился, хоть и говорят что он тормозной.
The good news is that if you don't want to use YAML files, you can still do what the configuration files do by hand, in PHP or via another format (XML, INI, and so on).
И ещё. В Zend Studio For Eclipse 6.0 есть плагин для Symfony. Он в частности предоставляет неплохой редактор yml-файлов - анализирует на ошибки, подсвечивает табы и т.д.
- у меня цифры не ннабираются!
- а ты Num Lock включи
Use condoms :).
Кстати насчет 1С это да - если нужны именно деньги вполне можно идти туда. А так, если есть интерес именно в плане программирования - не вижу проблем в принципе. 1 год опыта - это уже не про начинающего программиста. Это скажем так адекватный, посредственный программист. Не думаю что тут должны быть проблемы с поиском работы. Если конечно знать себе цену и не пытаться из кожи ввон получить з/п которой ты реально не заслуживаешь.
У нас был экзамен по WinAPI и к счастью наш препод требовал знать наизусть только основные идеи типа что такое оконная процедура, петля событий, HWND, HDC и т. д. Конечно, это правильный подход, мало кому понравилось бы учить все или даже хотя бы несколько WinAPI -функций с кучей параметров которые они принимают.
У нас фактически есть множество натуральных чисел от 1 до n, где n - кол-во придворных. Более того, это множество представляет из себя последовательность, т. к. каждый придворный следит за каждым. Будем понимать что А "следит за" B означает что в этой последовательности число B следует за А. Тогда получим, что наша последовательность имеет вид:
1, x1, 2, x2, .... n, m
Дело в том что исходя из условия, последний придворный (номер n) должен следить за первым, т. е. находиться на предпоследнем месте. Ну а послдений элемент последовательности обозначим как m - про него мы пока что ничего не знаем. Зато, исходя из условия задачи можем переписать последовательность вот так:
1, m+1, 2, m+2, ... n, m
Наша последовательность состоит из двух последовательностей (точней сказать подпоследовательностей):
1, 2, ....
m+1, m+2, ...
Теперь неплохо было бы выяснить в какой из двух псоледовательностей находится число n. Оно не может находится в первой последовательности, т. к. в этом случае получим что вся последовательность выглядит примерно так:
1, m+1, 2, m+2, ... m+n-1, n, m.
В этом случае m+n-1 никак не может быть равен m-1, хотя исходя из условия задачи - должен.
Вывод: элемент с номером n должен находиться во второй подпоследователньости. А последним элементом первой последловательности яляется тот, что стоит перед n. Обозначим его как k:
1, m+1, 2, m+2, ... k, n, m.
Но тогда получается что n = m + k:
1, m+1, 2, m+2, ... k, m + k, m
И ОБЩЕЕ ЧИСЛО ТАКИХ ЭЛЕМЕНТОВ РАВНО 2K+1 ЧТО И ЕСТЬ ДОКАЗАТЕЛЬСТВО!
Но по-хорошему необходимо доказать две вещи:
1) при всех четных условие не выполняется
2) при всех четных - выполняется
http://www.picamatic.com/show/2008/05/01/03/197721_201x181.GIF
http://www.picamatic.com/show/2008/05/01/03/197722_201x181.GIF
http://www.picamatic.com/show/2008/05/01/03/197725_201x181.GIF
http://www.picamatic.com/show/2008/05/01/03/197729_201x181.GIF
*-*-*-*-*
/ \
* *
\ /
*-*-*-*-*
Направление слежки - по часовой стрелке. Нумеруем произвольный как №1 и....
Для четного (2n) кол-ва получаем что
*-2-*-4-*
/ \
1 ....
\ /
2n-*-*-*-*
Для любого n последний (его номер 2n) будет следить за первым, что не есть хорошо.
Добавляем ещё одного:
*-2-*-4-*-6
/ \
1 ....
\ \
(2n)-(2n+1)-(2n-1)-*-*
Теперь всё сходится.
Я при свосем не понимаю почему на сайте Propel'а все примеры в XML