• Насчет троллей

      В последнее время вижу бессмысленные, грубые, и даже провакационные комментарии от разных людей, как правило, у которых карма в глубокой жопе минусе.

      При этом, для чего они пишут — это их проблемы. Но иногда они мусорят очень активно, и это мешает читать комментарии. Хорошо, что есть фича скрывающихся комментариев, но и она не всегда спасает.

      Есть идея — а почему бы не оставить всех этих троллей здесь, а Суперхабр пускать людей (когда его наконец-то отладят) с кармой, скажем, выше -10?

    • Умный дом

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

        Вспомнилась картинка в тему
      • Балмер едет в Москву

          Однаждый Стив Балмер просматривал список ближайших конференций и увидел слово «Москва». Он соединился с секретаршей:
          — Мэри, а что у меня за поездка в Москву? Там ведь правят медведи?
          — Да, господин Балмер.
          — Хм, — призадумался Балмер, потом добавил — Хорошо, приготовь мне кофе, — и отключился.

          Когда Мэри принесла кофе, Стив задумчивым взглядом пытался проникнуть за горизонт. Где-то там, вдалеке, где софт стоимостью в десятки тысяч долларов щедрая русская душа оценивает в пятак, ему вскоре предстоит побывать и встретиться с ними лицом к лицу.

          см. альтернативный финал DileSoft
        • Притча о двух волках

            Когда-то давно старый индеец открыл своему внуку одну жизненную истину.
            В каждом человеке идет борьба, очень похожая на борьбу двух волков. Один волк представляет зло — зависть, ревность, сожаление, эгоизм, амбиции, ложь… Другой волк представляет добро — мир, любовь, надежду, истину, доброту, верность…

            Маленький индеец, тронутый до глубины души словами деда, на несколько мгновений задумался, а потом спросил: — А какой волк в конце побеждает?

            Старый индеец едва заметно улыбнулся и ответил:
            — Всегда побеждает тот волк, которого ты кормишь.
          • Духовные ценности

              Когда-то давным-давно на Земле был остров, на котором жили все духовные ценности.
              Но однажды они заметили, как остров начал уходить под воду. Все ценности сели на свои корабли и уплыли.

              На острове осталась лишь Любовь. Она ждала до последнего, но когда ждать уже стало нечего, она тоже захотела уплыть с острова. Тогда она позвала Богатство и попросилась к нему на корабль, но Богатство ответило:
              – На моем корабле много драгоценностей и золота, для тебя здесь нет места.

              Когда мимо проплывал корабль Грусти она попросилась к ней, но та ей ответила:
              – Извини, Любовь, я настолько грустная, что мне надо всегда оставаться в одиночестве.
              Читать дальше →
            • Основы мастерства

                Боритесь со сложностью


                Как известно, мозг человека может одновременно рассматривать 7±2 элемента. Поэтому очень важно стремиться к снижению сложности ПО. Вот некоторые конкретные рекомендации:
                • Разделите систему на подсистемы на уровне архитектуры, чтобы концентрироваться в каждый конкретный момент времени на меньшей части системы.
                • Тщательно определяйте интерфейсы классов, чтобы можно было игнорировать
                  внутреннее устройство классов.
                • Поддерживайте абстракцию, формируемую интерфейсом класса, чтобы не
                  запоминать ненужных деталей.
                • Избегайте глобальных данных, потому что их использование значительно увеличивает процент кода, который нужно удерживать в уме в любой момент
                  времени.
                • Избегайте глубоких иерархий наследования, потому что они предъявляют
                  высокие требования к интеллекту.

                Читать дальше →
              • Личность программиста

                  «Чтобы стать экспертом в практической или научной области, нужны огромный труд и долгое время. Если человек добросовестно трудится каждый час рабочего дня, когда-нибудь он проснется одним из самых компетенткых специалистов своего поколения.»
                  Ульям Джеймс


                  Мы с вами много говорим о том, как нужно строить архитектуру ПО, как следует выбирать имена для переменных, каким образом лучше документировать код и почему, и т.д.

                  Но ведь программы пишут люди, такие же, как мы с вами. Одни становятся выдающимися программистами и достигают больших успехов, другие же забрасывают профессию. Перефразируя классика, можно сказать: «покажи мне свой код, и я скажу, кто ты». Исследования показывают, что лучшие программисты создают программы в 10 раз быстрее, чем их менее квалифицированные коллеги. Время, уходящее на отладку кода, а также объем и быстродействие итоговой программы, уровень ошибок и число обнаруженных ошибок также различаются примерно в 10 раз.

                  В этой статье попытаемся ответить на вопрос, какими же качествами должен обладать человек для того, чтобы писать совершенный код.
                  Читать дальше →
                • Бессонная ночь

                    Сегодня я в гостях у незнакомки.

                    Начинаю исследовать ее тело. Сначала робко, но постепенно волнение уходит, и я действую все увереннее и напористее. Я ощущаю, как начинаю чувствовать ее. Она постанывает все чаще и чаще.

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

                    Уже близко… и вот, свершилось! Она страстно и продолжительно стонет. И вдруг замолкает. В этой блаженной тишине, нам не нужно слов, мы и так понимаем друг друга.

                    Я исправил в ней баг, и закрываю профайлер. Уже светает. Можно заснуть.
                  • Задача о придворных.

                      Король не доверяет своим придворным. Он составил полный список всех придворных и приказал каждому из них следить за кем-нибудь одним из остальных. При этом, первый придворный из списка следит за тем, кто следит за вторым. Второй следит за тем, кто следит за третьим, и так далее. Предпоследний следит за тем, кто следит за последним. Последний следит за тем, кто следит за первым.

                      Вопрос: четное или нечетное число придворных у короля?
                    • Комментировать или не комментировать?

                        «Ясно, что на некотором уровне комментарии должны быть полезны. Думать иначе означало бы полагать, что понятность программы не зависит от того, сколько информации о ней уже известно читающему программу человеку. Б. Шейл.»
                        Действующие лица:
                        ФРАСИМАХ Неопытный пурист теории, который верит всему, что читает.
                        КАЛЛИКЛ Закаленный в боях представитель старой школы — «настоящий»
                        программист.
                        ГЛАВКОН Молодой, самоуверенный, энергичный программист.
                        ИСМЕНА Опытная разработчица, уставшая от громких обещаний и просто
                        желающая найти несколько работающих методик.
                        СОКРАТ Мудрый опытный программист.

                        Мизансцена:
                        Завершение ежедневного собрания группы
                        — Желает ли кто-то обсудить еще что-нибудь, прежде чем мы вернемся к работе? — спрашивает Сократ.
                        — Я хочу предложить стандарт комментирования для наших проектов, — говорит расимах. — Некоторые наши программисты почти не комментируют свой код, а всем известно, что код без комментариев нечитаем.
                        — Ты, должно быть, еще менее опытен, чем я думал, — отвечает Калликл. — Комментарии — это академическая панацея, и любому, кто писал реальные программы, известно, что комментарии затрудняют чтение кода, а не облегчают. Естественный язык менее точен, чем Java или Visual Basic, и страдает от избыточности, тогда как операторы языков программирования лаконичны и попадают в самое яблочко. Если кто-то не может написать ясный код, разве ему удастся написать ясные комментарии? Кроме того, комментарии устаревают при изменениях кода.
                        Доверяя устаревшим комментариям, ты сам себе роешь яму.
                        Читать дальше →
                      • Конструирование ПО, метафоры, предварительные требования


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

                          Почему именно абзацы из книги, а не своими словами? Потому что во многих случаях сказать лучше очень сложно. И потом, чистые тезисы читать скучно — надоедает на второй странице.
                          Если топик понравится — готов стараться описать в статьях всю книгу, с каждым разом все уменьшая объем и увеличивая плотность информации.

                          Конструирование ПО


                          Что такое конструирование ПО?


                          Разработка ПО — непростой процесс, который может включать множество компонентов. Вот какие составляющие разработки ПО определили ученые за последние 25 лет:
                          — определение проблемы;
                          — выработка требований;
                          — создание плана конструирования;
                          — разработка архитектуры ПО, или высокоуровневое проектирование;
                          — детальное проектирование;
                          — кодирование и отладка;
                          — блочное тестирование;
                          — интеграционное тестирование;
                          — интеграция;
                          — тестирование системы;
                          — корректирующее сопровождение.

                          Иногда конструирование называют «кодированием» или «программированием».
                          «Кодирование» кажется мне в данном случае не лучшим термином, так как он
                          подразумевает механическую трансляцию разработанного плана в команды языка программирования, тогда как конструирование вовсе не механический процесс и часто связано с творчеством и анализом. Смысл слов «программирование» и «конструирование» кажется мне похожим, и я буду использовать их как равноправные.
                          Читать дальше →
                        • Анонс блога

                            Создал блог после опроса, готовлю статьи-конспекты «Совершенного кода» Макконнелла.

                            В блоге приветствуются любые статьи, которые так или иначе связаны с тематикой, затрагиваемой в книге.

                            Присоединяйтесь, читайте, пишите!