Не… не могу согласиться по поводу настроек яркости-контрастности. Будучи человеком, занимающимся фотографией и имеющим необходимость в калибрации :)
Наверное, самое главное правило, которое я ещё давно усвоил — на мониторах не экономить.
А вообще считал, что от современных плоских мониторов глаза болеть не должны. Ан нет. Есть люди, у которых это вызывает дискомфорт.
У меня же — трубчатый. Который «ещё торт» :)
Был случай, на одном моём любимом сайте, на форуме стоял этот самый попандер — в рожу время от времени лез флеш-баннер. Я написал некое воззвание к администрации о том, что подобное — есть неуважение к пользователю. А пользователи там давно тусят (я, к примеру лет 10). И что? Убрали!
Но что удивительно: нашёлся один хомячок, который начал защищать администрацию и типа говорил мне, чтобы я их не поучал. Но администрация мудро решила, что за контексткой — будущее :)
Проблема из пальца не высосана, я об этом внятно написал в посте.
Так на всякий случай:
А вы когда-нить читали ядро Линукса. Ну любопытства ради хотя б?
Ну или исходники понравившейся библиотеки дабы почерпнуть, так сказать?
Там всё сильно отличается от того, как учили. Полно сюрпризов. Да и приличный код получается не сразу. После пересмотра и вылизывания его.
Видимо, пост придётся проапдейтить, а то тут меня съедят.
Я понимаю, что рекурсия — это из такой розовой математической мечты ;) Я и не призываю её использовать повсюду. Особенно на С. Тут выше уже сказали, что она хорошо годится для обхода деревьев и синтаксического анализа.
На С я когда-то давно писал. И уже практически забыл его, потому как задач под него совсем не было.
Данный пост — просто небольшое исследование, идея, если хотите. Я не декларировал его как 100% продакшн. Это ПРИМЕР.
Я прекрасно знаю, почему функции получают указатели на буферы. Здесь просто прорабатывался вопрос о том, что будет, если _есть некие данные, кои надо разместить в памяти, но пока размер их не известен_. Просто как часть проблемы.
«Восхительный подход к обработке ошибок выделения памяти» — для скорости и краткости чтобы не городить огород в коде.
«Прекрасный идентификатор mas» — не придирайтесь к буквам, уважаемый. Я прекрасно знаю, что массив по английски — array. И много других страшных слов также мне известны.
В вашем комментарии — сплошной выпендрёж. Этот пост НЕ О ПРОГРАММИРОВАНИИ НА С.
И, боюсь, что рабочего кода в этой жизни вы гораздо меньше меня написали.
И на всякий случай, раз вы такой понятливый. Я не призываю повсеместно использовать рекурсию.
На счёт сложности — я тему постепенно развиваю. В коде, где считается от 0 до N основная идея и изложена. Статику применил, чтобы не усложнять код. Конечно, это всё можно переписать, используя параметры по умолчанию.
Я понимаю. Это просто как пример. Маленькое исследование, можно так сказать.
Недаром некоторые языки оптимизируют хвостовую рекурсию, разворачивая её в обычный цикл.
Я в состоянии написать и итеративный вариант.
Выделяет динамическую память по причине неизвестности того, сколько её нужно выделить.
Скорее всего тут имеет место просто несчастный случай.
«Засоряет стек» — это свойство любой рекурсии.
Это самое «мутабельное состояние» в хороших языках делают с помощью необязательных параметров.
На счёт ясности — да надо малость перекомпоновать блоки. Ну и ещё комментарии делают код не очень читаемым. Сам думал, как лучше — после откомментировать или в самом коде. Решил что лучше в коде. Теперь уже не знаю ;)
А последнее — ну раз с указателями начал мутить, так придерживаюсь одного стиля :)
if ($this->ws) {
$this->ws->routes = array(
'myRoute' => array($this,'openSession') // route
);
}
Едва не наделала у меня в голове перелом мозга. Причина в том, что автор функционала задумал это вот в таком виде: $this->ws->routes['myRoute'] = array($this,'openSession'); Это и есть в коробочном примере. Если приложение оставить так как у вас, то ни одно аналогичное приложение более работать не будет.
Наверное, самое главное правило, которое я ещё давно усвоил — на мониторах не экономить.
А вообще считал, что от современных плоских мониторов глаза болеть не должны. Ан нет. Есть люди, у которых это вызывает дискомфорт.
У меня же — трубчатый. Который «ещё торт» :)
Но что удивительно: нашёлся один хомячок, который начал защищать администрацию и типа говорил мне, чтобы я их не поучал. Но администрация мудро решила, что за контексткой — будущее :)
А где бы вы её использовать рекомендовали?
Так на всякий случай:
А вы когда-нить читали ядро Линукса. Ну любопытства ради хотя б?
Ну или исходники понравившейся библиотеки дабы почерпнуть, так сказать?
Там всё сильно отличается от того, как учили. Полно сюрпризов. Да и приличный код получается не сразу. После пересмотра и вылизывания его.
Видимо, пост придётся проапдейтить, а то тут меня съедят.
Данный пост — просто небольшое исследование, идея, если хотите. Я не декларировал его как 100% продакшн. Это ПРИМЕР.
Я прекрасно знаю, почему функции получают указатели на буферы. Здесь просто прорабатывался вопрос о том, что будет, если _есть некие данные, кои надо разместить в памяти, но пока размер их не известен_. Просто как часть проблемы.
«Восхительный подход к обработке ошибок выделения памяти» — для скорости и краткости чтобы не городить огород в коде.
«Прекрасный идентификатор mas» — не придирайтесь к буквам, уважаемый. Я прекрасно знаю, что массив по английски — array. И много других страшных слов также мне известны.
В вашем комментарии — сплошной выпендрёж. Этот пост НЕ О ПРОГРАММИРОВАНИИ НА С.
И, боюсь, что рабочего кода в этой жизни вы гораздо меньше меня написали.
И на всякий случай, раз вы такой понятливый. Я не призываю повсеместно использовать рекурсию.
Недаром некоторые языки оптимизируют хвостовую рекурсию, разворачивая её в обычный цикл.
Я в состоянии написать и итеративный вариант.
Скорее всего тут имеет место просто несчастный случай.
«Засоряет стек» — это свойство любой рекурсии.
Это самое «мутабельное состояние» в хороших языках делают с помощью необязательных параметров.
На счёт ясности — да надо малость перекомпоновать блоки. Ну и ещё комментарии делают код не очень читаемым. Сам думал, как лучше — после откомментировать или в самом коде. Решил что лучше в коде. Теперь уже не знаю ;)
А последнее — ну раз с указателями начал мутить, так придерживаюсь одного стиля :)
$this->ws->routes = array(
'myRoute' => array($this,'openSession') // route
);
}
Едва не наделала у меня в голове перелом мозга. Причина в том, что автор функционала задумал это вот в таком виде: $this->ws->routes['myRoute'] = array($this,'openSession'); Это и есть в коробочном примере. Если приложение оставить так как у вас, то ни одно аналогичное приложение более работать не будет.
Вот эта строчка в коде