• Мутационное тестирование

      Юнит тесты помогают нам удостовериться, что код работает так, как мы этого хотим. Одной из метрик тестов является процент покрытия строк кода (Line Code Coverage).


      Но насколько корректен данный показатель? Имеет ли он практический смысл и можем ли мы ему доверять? Ведь если мы удалим все assert строки из тестов, или просто заменим их на assertSame(1, 1), то по-прежнему будем иметь 100% Code Coverage, при этом тесты ровным счетом не будут тестировать ничего.


      Насколько вы уверены в своих тестах? Покрывают ли они все ветки выполнения ваших функций? Тестируют ли они вообще хоть что-нибудь?


      Ответ на этот вопрос даёт мутационное тестирование.

      Читать дальше →
    • Почему скруглённые углы проще для восприятия

      • Translation
      В наши дни дизайнеры так часто используют скруглённые углы, что их уже можно считать индустриальным стандартом, а не модным трендом. Они встречаются не только в программах, но даже в дизайне аппаратных устройств. Что же делает их такими популярными?

      Все видят эстетическую красоту скруглённых углов, но не каждый способен объяснить, откуда возникает эта красота. Ответ находится буквально в наших глазах.
      Читать дальше →
    • Запасаемся на зиму

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

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

        Читать дальше →
      • HomePlug, в интернет по… электропроводке?

          back.jpg - Picamatic - upload your images
          Не так давно на Хабре писали про технологию Power over Ethernet. Есть и обратное явление — объединение компьютеров в локальную сеть через обычную электропроводку. Эта технология называется HomePlug
          Читать дальше →
        • Вышел выпуск №4


            Добрый день, читатель!

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

            Кроме того, объем выпуска вырос еще и из-за того, что несколько авторов постарались и перевели интересные статьи. Таких переведенных статей в этом выпуске 4 штуки, почти половина.

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

            В этом выпуске темой номера стала типографика, как основная тема статьи автора despoth под названием «Готовим макет для клиента». В статье автор рассуждает и приводит массу примеров по вопросам связанных со шрифтами и их сглаживанием.

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

            Лучшего автора и статью мы выбрали самостоятельно. Им и становится despoth со своей статьей «Готовим макет для клиента». Поздравляем! И спасибо за отличный материал.

            Читать дальше →
          • 5 Гбит/сек — USB 3.0

              17 ноября будет представлена финальная версия спецификации нового высокоскоростного стандарта передачи данных SuperSpeed USB (USB 3.0). Как сообщает CNet, произойдет это на конференции SuperSpeed USB Developers Conference, которая пройдет в Сан-Хосе (Калифорния).

              Согласно спецификации скорость передачи данных по USB 3.0 будет превышать показатели всем знакомого USB 2.0 примерно в 10 раз, т.е. достигнет 5 Гбит/с.

              Несмотря на то, что размер разъёма USB 3.0 несколько отличается от разъёмов USB 2.0, совместимость с предыдущей версией интерфейса все равно будет сохранена.

              Спецификацию USB 3.0 поддержали такие крупные компании, как Hewlett-Packard, Intel, NEC, NXP Semiconductors, Microsoft и другие. Серийные продукты с поддержкой USB 3.0 должны появиться в продаже уже в 2009 году.
            • Его нет и не надо.

                Здравствуйте, дорогие читатели.

                Сегодня я хочу поделиться с вами своими собственными рассуждениями об искусственном интеллекте.

                Введение


                Не смотря на достижения человечества в области построения различных информационных систем, искусственный интеллект остается не просто недоступной технологией, а технологией «загоризонтной», поскольку нет даже более-менее четкого понимания, каким путем идти, какой объем ресурсов потребуется и какими возможностями будет обладать конечная система.

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

                Меньше распространены мнения о депрессиях и суицидах искусственного интеллекта по причине бессмысленности существования.

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

                А мы рассмотрим проблемы, связанные с искусственным интеллектом более приземленно и рационально.

                Читать дальше →
              • Еженедельный подкаст от Umputun (US, Чикаго) #197

                  — Поздно, но здесь
                  — Любопытные переходы вокруг
                  — Три впечатления гостьи
                  — Продолжение вечной борьбы сил разума
                  — Как важно иметь правильное начальство
                  — Проценты опять подвели
                  — Новый сериал и странное развлечение
                  — Комментарии о культурах вождения
                  — 2 достойные минуты
                  — Как все начиналось

                  * Запись производилась в шумной обстановке
                  ** CA Y Est, Edith Pijpers

                  Подписка на подкасты
                  прослушан 279 раз
                • P=NP? Важнейшая нерешенная задача теоретической информатики

                    Эта задача была сформулирована в 1971 году и до сих пор остается нерешенной. За доказательство утверждения P=NP или за доказательство его опровержения Математическим институтом Клэя назначена премия в 1 миллион долларов США. Если все-таки окажется, что P=NP, то это даст возможность быстро и эффективно решать множество трудноразрешимых на данный момент задач.

                    Так в чем же все-таки суть проблемы?

                    Читать дальше →
                  • Кладезь электронных книг и журналов на английском языке — Netbks

                      Здравствуйте!

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

                      Читать дальше →
                    • What's all this fuss about Erlang?

                      • Translation
                      by Joe Armstrong

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

                      Предположим, что Intel правы, что их проект Keifer выстрелит. Если это случится, то 32-х ядерные процессоры появятся на рынке не позже 2009-2010.

                      Ничего удивительного здесь нет. Sun уже продает восьмиядерные Niagara с 4-мя «hyperthreads» на каждом ядре, что эквивалентно 32-ум ядрам.

                      Это разработка, которая осчастливит программистов на Erlang. Они 20 лет ждали этого события, и теперь настало время расплаты.

                      Хорошие новости для Erlang-программистов:

                      На N-ядерном процессоре ваша программа будет работать в N раз быстрее.

                      Читать дальше →
                    • Десять советов как написать (чуть) менее ужасное резюме

                      • Translation

                      «Цель: получить работу в IBM»
                      — пишет какой-то идиот-соискатель в Amazon.com.




                      ВНИМАНИЕ: это мое собственное, *персональное*, мнение, не Google, не Amazon или кого-либо еще. Я думаю вы обнаружите, что большинство рекрутеров, оценивающих анкеты в технических компаниях — особенно в технических компаниях, которые производят собственное программное обеспечение сами, такие как Yahoo!, Ebay, Amazon.com, Microsoft или Google — в целом, согласятся со многим из перечисленного. Но опытные рекрутеры расходятся во мнениях касательно многих мелких деталей, и, в конце-концов, это всего лишь мое собственное мнение. Эти советы не гарантируют получения Вами сколь-нибудь лучших результатов. Возможно, у вас будет другой опыт. Не используйте эти советы в ванной или стоя в луже. Не стучите по стеклу, это раздражает советы. Советы не кормить! И т.д.

                      Читать дальше →
                    • (Э/И)ммиграция в Германию, часть 1

                        Ввиду того, что мой предыдущий пост об изучении информатики в Германии стал популярным и в комментариях было задано множество вопросов о том, какие существуют возможности работы за границей, в частности, в Германии, я постараюсь в серии постов немного осветить этот вопрос. В контексте данных постов я рассматриваю эммиграцию не как переезд с получением разрешение не постоянное проживание (ПМЖ), хотя это может быть конечной целью, а возможность переезда с получением хотя бы временного (ограниченного определенным сроков, и, возможно, работодателем) разрешения на пребывание (ВНЖ).

                        Итак, рассмотрим сначала какие вообще существуют возможности получения ВНЖ в Германии.
                        Читать дальше →
                      • О микроконтроллерах

                          Около 55% проданных в мире процессоров приходится на 8ми битные микроконтроллеры. Более 4 млрд. 8ми битных микроконтроллеров продано в 2006. Они установлены в микроволновках, стиральных машинах, музыкальных центрах… При этом они являются однокристальными компьютерами, со своим процессором, памятью, портами ввода-вывода. В статье я постараюсь кратко объяснить что это за звери и как их приручают.
                          Читать дальше →
                        • Коты и счастье

                            Хочу поделиться моей любимой притчей.



                            Однажды старый кот, повстречал молодого котёнка. Котёнок бегал по кругу и пытался поймать свой хвост.
                            Старый кот стоял и смотрел, а молодой котёнок всё крутился, падал, вставал и опять гонялся за хвостом.
                            — Почему ты гоняешься за своим хвостом? — спросил старый кот.
                            Читать дальше →
                          • Ну очень простая идея, которая повышает эффективность тестирования в разы

                              Как обычно строят процесс тестирования непросветлённые тест-менеджеры?

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

                              Релиз.

                              Не работает основной функционал.

                              Почему такое возможно?

                              1. Заведение всех подряд ошибок мешает разработке. Разработчики тратят своё время на исправление минорных ошибок и вносят новые, зачастую более серьёзные.

                              2. Потраченное на мелочи время не дало возможности проверить более серьёзные пользовательские сценарии и найти более критичные дефекты.

                              3. Обратная связь по статусу сборки предоставлялась разработчикам с запозданием: вместо критичных дефектов непрерывно сыпались миноры.

                              4. Проектный паттерн «дохлая рыба» сыграл своё дело: все участники команды прекрасно понимали, что протестировать всё нельзя, и это не могло не сказаться на качестве работы. А реалистичных целей им никто не поставил…

                              Что просветлённые тест-менеджеры делают по-другому?

                              Что они поменяют в первую очередь?
                              Читать дальше →
                            • Использование Dummynet для эмуляции узкого канала под Windows

                                Иногда нужно протестировать работу клиентского приложения в сетевых условиях, приближенных к боевым. Что при разработке, что при выборе софта. Как правило, сервер рядом, а нужно оттестировать и на таком канале, и на таком. Как ни странно, удобного средства управления трафиком (traffic shaping) под Windows мне долго не удавалось найти. Из поисков запомнилось: кто-то советовал для тестовых целей купить модем. Можно поставить роутером машину на Linux и на ней рулить трафиком, но мне такой подход кажется слегка чрезмерным.
                                Оказывается, не меньше года в проекте Dummynet есть бинарники для Windows, которые позволяют легко и непринужденно управлять, как минимум, полосой канала (bandwidth) и задержкой (latency).
                                Читать дальше →
                              • Типы багов: этимология и энтомология

                                Какие бывают баги


                                1. Немного этимологии и энтомологии
                                Давайте посмотрим попристальней на такое знакомое и (до боли?) родное слово БАГ. Происходит оно от английского слова Bug, означающего «насекомое». Есть еще много сторонних значений, в частности английское выражение «to go bugs» — сойти с ума, что легко кореллируется со вполне русским «тараканы в голове завелись». Также вспоминаются и «жучки на линии» (тоже, кстати, по-английски – bugs). И опять мы пришли к насекомым.
                                Читать дальше →
                              • О том как хаос претворить в порядок, делать это каждый день, и не тратить на это время

                                  Обращаюсь к тебе, коллективный хабраразум, вот с каким вопросом. Имеет ли право на жизнь моя идея, или место ей в чулане с другими «велосипедами»?

                                  А идея вот о чем.
                                  Я менеджер проекта веб-студии. И ежедневно в процессе обработки у меня находится не меньше десятка задач. От мелких оперативных до более серьезных и длительных. На грамотное ранжирование чаще всего нет ни времени, ни желания. Как следствие, хаос.
                                  То же самое происходит с исполнителями. Исполнителю назначены несколько задач, и его чаще всего не интересует, на какие сроки они назначены. Он может начать делать задачу, срочность которой небольшая, просто потому что не увидел ее сроки. Или получить задачу заранее, но к моменту ее актуальности про нее забыть. Определение последовательности выполнения задач, напоминание и контроль ложится на плечи менеджера, у которого и без того задач хватает.
                                  В итоге все сводится к тому, что ежедневно приходится составлять детальный план действий не только для себя, но и для каждого исполнителя. А ведь это время, усилия. И хочется как-то эту рутинную задачу оптимизировать.
                                  И вот собственно идея: создать систему, которая автоматически создает и актуализирует последовательный список задач, исходя из данных проектных графиков.


                                  Читать дальше →
                                • Шаблоны ЕСКД и ГОСТ 7.32 для Lyx 1.6.x

                                    Уже более полугода я пользуюсь текстовым процессором Lyx. Встроенных шаблонов с лихвой хватало, чтобы писать конспекты лекций, готовиться к семинарам и делать несложные отчеты к лабораторным работам. Но в прошлом семестре пришлось делать два курсовых проекта в соответствии с требования ЕСКД. Я начал работу в Lyx, но без специальных шаблонов документов, мои отчеты в редакторе выглядели так:

                                    Читать дальше →