• Почему опытные разработчики пишут тупой код и как распознать новичка за километр

    Предлагаю читателям «Хабрахабра» перевод публикации «Why Senior Devs Write Dumb Code and How to Spot a Junior From A Mile Away» за авторством Scott Shipp.


    Одна из моих любимых цитат на все времена — Брайана Гетца (Brian Goetz), умнейшего чувака из мира Java, одного из авторов «Java Concurrency in Practice», кроме всего прочего. Цитата взята из интервью, опубликованного на сайте Oracle под заголовком «Пишите тупой код» («Write Dumb Code»). Гетца спросили, как писать хорошо работающий код.
    Вот что он ответил
  • 50 цитат о программировании всех времён

    • Перевод
    Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

    50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
    — Rick Cook

    49. Lisp — это не язык, а строительный материал.
    — Alan Kay

    48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
    — Edward V Berard
    Читать дальше →
  • Почтовый сервер на Linux

    • Перевод
    Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

    Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.



    Начнём с SMTP-сервера на Linux
    Читать дальше →
  • Thunderbird и Kontact вместо MS Outlook

    • Tutorial

    Когда вы работаете в крупной компании, где на рабочих станциях в основном стоит ОС Windows, а вы один из немногих пользователей Linux, то вы тратите определенную долю ваших усилий на преодоление сопротивления недружественной ИТ среды. С годами некоторые проблемы остаются в прошлом, но новые появляются. Так например почти исчезли как класс сайты заточенные только под IE. Все меньше страшных .docx, .xlsx файлов приходит по почте. Куда-то исчезли обязательные для всех чудо-юдо программы, которые написаны только для Windows. Теперь почти все можно открывать и редактировать из веб браузера. Изменилось многое, но не все.


    Угадай картинку и получи бейсболку в подарок приз знатока почты. В 2000-м это был почтовик года по версии PC Magazine, и я сам пользовался им пару лет. Только по-честному, без поиска картинок.




    Кстати о почте, что с ней? В тех организациях, где используется Exchange Server, постоянно приходят события на календарь и как-то неудобно оправдываться тем, что твой почтовик с не взаимодействует календарем, а Outlook-ом ты не пользуешься, так как его нет на Linux. Как правильно настроить почту, чтобы все работало на Exchange Server: почта, календарь, адресная книга, работа с папками? Статью об этом пишу я эту.

    Читать дальше →
  • Python-пакеты и их использование


      Всем добрый день!


      На Хабре уже поднималась тема организации работы с внешними пакетами с использованием подмодулей или деревьев в Git. Это показалось хорошим решением, но на деле вылилось в неудобства и запутанность. Тогда я решил перенести всё на python-пакеты. Чем и поделюсь сейчас на примере Django приложения.


      Читать дальше →
    • Невидимые друзья вашего github-репозитория

      • Tutorial
      image
      Github это незаменимый инструмент, прочно вошедший в жизнь практически каждого разработчика.

      Хотя многие из нас используют его постоянно, не все знают, что существует большое количество сторонних (и бесплатных) сервисов и инструментов, которые тесно интегрированы с github и расширяют его функциональность.

      В данной статье мы уделим внимание, в основном, инструментам, работающим в инфраструктуре npm. Полный список сервисов, интегрирующихся с github, можно посмотреть на странице github integrations directory.

      Сегодня в выпуске:




      Читать дальше →
    • Сказ о том как я свой REST фреймворк с веб-сокетами писал

        Эта статья посвящена очередному REST фреймворку (для Python 3), особенностью которого является использование веб-сокетов для обмена данными между клиентом и сервером. О том откуда пришла идея, с чем мне пришлось столкнулся при написании своей первой библиотеки для Python и что из этого в итоге получилось, я расскажу далее.


        Для тех, кому интересна эта статья — пожалуйста, заходите под кат.
        Читать дальше →
      • Внедрение DMARC для защиты корпоративного домена от спуфинга

        • Tutorial
        A Thief on the Run by Manweri
        A Thief on the Run by Manweri

        Привет, Хабр! В этом посте мы снова поговорим о проблеме подделки отправителя (или так называемом спуфинге). В последнее время такие случаи очень участились: подделывается все: письма со счетами за ЖКХ, из налоговой инспекции, банков и так далее. Решить эту проблему помогает настройка строгой DMARC-политики. Мы как почтовая служба проверяем все приходящие к нам письма на DMARC начиная с февраля 2013 года. Мы были первым в рунете почтовым сервисом, поддержавшим стандарты DMARC. Однако чтобы минимизировать число поддельных писем, этого, к сожалению, недостаточно. Главное, чтобы строгий DMARC был поддержан на стороне отправителя. Вот почему мы не устаем качать эту тему, ведем активную разъяснительную работу и всячески призываем всех включать у себя строгий DMARC.

        Позитивные сдвиги уже есть: с каждым месяцем мы видим прирост числа корпоративных отправителей, прописавших DMARC, на десятки процентов. Однако безусловно, еще есть над чем работать. Практика показывает, что IT-культура находится на очень разном уровне. Кто-то слышал краем уха про DMARC, но пока не собирается его внедрять. Есть и такие, для кого факт, что в транспортных протоколах электронной почты отсутствует какая-либо проверка и защита адреса отправителя, до сих пор является настоящим откровением. Кроме того, поддержка DMARC — задача непростая. Только на первый взгляд кажется, что достаточно опубликовать запись в DNS, и не требуется никакого дополнительного софта или технических средств (подробнее в нашей статье DMARC: защитите вашу рассылку от подделок). На практике в крупной компании с многочисленными потоками электронной почты и развесистой структурой почтовых доменов все гораздо сложнее. И есть моменты, которые следует предусмотреть и продумать заранее. Именно для таких сложных случаев мы написали эту статью, постаравшись собрать в ней все нюансы.
        Читать дальше →
      • Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева

          Всем привет!

          Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.



          В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
          • Точки зрения на систему, или Почему мы слепнем при проектировании
          • Адресация ключевых рисков, или Гордыня убивает
          • Учитываем контекст, или Как не долбиться в закрытую дверь

          Краткое содержание и видеозапись
        • Заблуждения программистов относительно времени

          • Перевод
          За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

          На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
          Читать дальше →
        • Аквапоника своими руками с применением микроконтроллера

          • Tutorial
          image

          Всем привет. Как-то на просторах Интернета мне попался интересный американский проект. Суть проекта в том, что можно выращивать различные агрокультуры, используя не почву, а, так сказать, симбиоз рыб с растениями. Получается замкнутый цикл. Вы кормите и выращиваете рыб, их продукты жизнедеятельности, растворённые в воде, являются питательной средой для растений. А эти растения, получая питательные вещества для роста из воды, очищают её. Весь процесс повторяется по кругу. Данный метод называется «аквапоника».
          Читать дальше →
        • Эра фаблетов: Проектирование для крупных экранов

          • Перевод


          «С тех самых пор, как Samsung создала свою линию Galaxy Note, тем самым открыв рынок «больших телефонов», подобные девайсы называются фаблетами. Такое название они получили в силу своего размера, который находится где-то между размерами традиционного телефона и небольшого планшета»

          За последнее время я успел прочитать много статей о том, что новая серия iPhone 6 заставит нас всех изменить подход к проектированию пользовательского интерфейса для мобильных телефонов. Возможно, это справедливо для тех дизайнеров, которые до сих пор фокусируются только на iOS и делают вид, что остальной мир не существует.
          Читать дальше →
        • Эти незаменимые регистрационные карточки

            image

            Продолжается цикл постов, посвященных старинной офисной технике.
            В прошлых постах я рассказывал о русских счетах и приспособлениях для копирования, в настоящем посте предлагаю вниманию хабравчан иллюстрированный обзор о регистрационных карточках.
            Пост длинный из-за множества картинок.
            Читать дальше →
          • История рождения, развития и смерти Flight Simulator

              subLOGIC Flight Simulator

              Flight Simulator — это самая долгая и успешная серия из всех когда-либо созданных симуляторов. В истории её развития интересно то, как код и принципы, заложенные в конце 70-ых, оставались неизменными десятилетиями.

              В 1975-ом году Брюс Артвик получил степень бакалавра естественных наук как инженер-электрик в Иллинойском университете. Не стоит думать, однако, что ему была далека кибернетика: изначально, в 1973 году он выбрал проектирование ЭВМ как свою специальность, и лишь позже сменил направление учебы на электротехнику, поскольку считал, что в эти ранние годы развития компьютерной техники людям будет понятней такая ученая степень. В 1975-1976 гг. параллельно с работой в группе, разрабатывавшей для Digital Computer Lab графические терминалы, где Брюс мог общаться с Кеном Томпсоном, создателем оригинального UNIX, и работать с одной из первых UNIX-машин — PDP-11, Артвик находил время для летных уроков ради написания диссертации, темой которой стала многослойная динамическая компьютерная графика полета. Артвик рассмотрел модель полета воздушного судна, показываемую на экране вычислительной машины, что фактически означало рождение всей серии.
              Читать дальше →
            • fheroes2 — Open Source движок Heroes of Might and Magic II


                free heroes2 — свободная версия движка Heroes of Might and Magic II. Написан с использованием SDL русским (вроде бы) программистом. Существуют порты на Windows, Linux, WM, WinCE, Dingoo a320, Cowon V5… ну почти везде. Все кто хочет узнать больше — под кат
                Читать дальше →
              • Игры для веб-камеры

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

                  image

                  В своем топике я расскажу что значит «игра для веб-камеры» и с чем ее едят.
                  __________________________

                  Обновлено

                  Читать дальше →
                • Мобильник на кока-коле

                    Инженеры из Лондона создали телефон, способный работать на Кока-коле, либо любой другой холодной жидкости, содержащей сахар. В качестве примера исследователи продемонстрировали мобильник Nokia, работающий на всем известной коричневой газировке.

                    Дайци Женг, один из разработчиков новинки, говорит, что их телефон может работать в 3-4 раза дольше, чем точно такая же модель на литий-ионном аккумуляторе. Новый телефон полностью экологичен и выигрывает у своих собратьев ещё и тем, что время его зарядки составляет несколько секунд — именно столько времени нужно, чтобы залить новую порцию сладкой воды в специальный контейнер позади телефона.
                    Читать дальше →
                  • Еще десять маленьких программ, с которыми уютно

                      Всем привет.
                      В этом посте я опишу несколько маленьких и удобных windows-программ, к тому же абсолютно бесплатных. Предыдущий пост вызвал бурную дискуссию, в результате которой, как водится, родилась истина :)
                      Итак, этот пост — дань благодарному хабрасообществу — в комментариях по крупицам собрались полезные программки, о которых, возможно, мы бы никогда и не услышали. Заранее извинюсь перед людьми, которые предлагали свои программы, не вошедшие в этот обзор — в каментах было много утилит, так или иначе дублирующих функции друг друга, и опробовать их все, сравнить и разложить по полочкам — задача для википедии. :)
                      Ну что ж, от слов к делу.

                      01) Сворачиваем окно в заголовок и не только — куча возможностей в обмен на 90 килобайт
                      02) Сворачиваем окно в трей правым кликом по «крестику»
                      03) Создаем виртуальные рабочие столы — теперь с помощью бесплатной программы
                      04) Двигаем кнопки окон на панели задач как табы в браузере
                      05) Клейкие листочки на рабочем столе — когда не хочется заносить в ToDo
                      06) Мини-консоль для быстрого запуска программ по алиасам
                      07) Мгновенный поиск по компьютеру — программа-индексатор жесткого диска
                      08) Копируем текст откуда угодно, даже из рисунков
                      09) создаем хранилище заметок с вложениями посредством быстрой и бесплатной программы
                      10) управляем буфером обмена — теперь можно запомнить больше!

                      Поподробней...
                    • Математика для тестировщиков

                      • Tutorial
                      Доклад Никиты Налютина на конференции SQA Days – 13, 26-27 апреля 2013 г. Санкт-Петербург, Россия

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



                      Читать дальше →
                      • +20
                      • 37k
                      • 6
                    • Автоматизация складских процессов интернет-магазина: опыт Аудиомании — Часть 2



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

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

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