• DDoS великий и ужасный

      Знаете ли Вы, что по данным исследований, проведённых Arbor Networks, Verisign Inc. и некоторыми другими компаниями:

      • ежедневно наблюдается порядка 2000 DDoS атак;
      • атака, способная «положить» небольшую компанию на неделю, стоит всего $150;
      • около 2/3 участников исследований (63%) страдали хотя бы раз от DDoS в течение года;
      • помимо прямых убытков и потери лояльности пользователей, атаки также влияют на продуктивность работы персонала;
      • 11% респондентов были под атакой шесть и более раз за год;
      • среди тех, кто за последние 12 месяцев был под атакой, 46% лежали более 5 часов, а 23% — более 12 часов;
      • примерно треть всех случаев даунтайма у респондентов вызваны DDoS атаками.

      Каким бывает DDoS, можно ли с ним бороться и как можно предостеречься? Об этом я вкратце поведаю в данной статье.

      Читать дальше →
    • Рендеринг 3D-иллюстраций для IKEA



        Глядя на иллюстрации в каталоге IKEA, сложно поверить, что 75% фотографий продуктов и 35% интерьеров — это чистая компьютерная графика. В остальных интерьерах фотография используется только частично. Собственно, настоящих снимков там вообще почти не осталось.
        Читать дальше →
      • Котфускация исполняемого .net кода

          (пятница)

          Обычно развернутое приложение в файловой системе выглядит как-то так:



          Совершенно незащищенное от инструментов типа рефлектора или IlSpy, но что если оно станет таким:



          По крайней мере легкий ступор хакеру-неофиту обеспечен. Приятно смотрится, и антивирусы не заинтересуются.
          Порефлексировать
        • Путешествие по Стеку. Часть 1



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

            IT-интерфейсы часто растут из физических. Например, вот аппаратные чекбоксы:



            Вообще, лучший же пример правильного инженерного интерфейса – это гранёный стакан.

            Почему? Очень просто. С одной стороны, он дружелюбен к советским роботам: круглая верхняя полоса позволяет автоматической мойке нащупать его ещё с 40-х годов. С другой стороны, он прощает человеческие ошибки: ребра останавливают скатывание стакана со стола при падении. Плюс он просто красивый.

            Сейчас покажу ещё несколько интерфейсов, которые облегчают жизнь. Общий смысл – попробовать понять, как думал разработчик, чтобы сделать что-то удобнее.
            Читать дальше →
          • Понимание собственного кода

              Перевод статьи Эли Бендерски — Understanding your own code.

              Недавно я столкнулся с утверждением, которое меня сильно озадачило. Один программист с гордостью заявил, что не может понять ни малейшего куска кода, написанного им неделю назад. Я честно попытался понять, откуда исходит эта гордость, но так и не смог. Он гордился тем, что пишет столько кода каждый день? Это кто же готов платить ему за то, что он просто пишет код?
              Читать дальше →
            • 10 самых распространённых ошибок при программировании на JavaScript

              • Translation


              Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

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

              Моя трёхлетняя дочка София в последнее время частенько упоминает «ноль», например, в таком контексте:
              — Соня, вот ты вроде сначала не послушалась, а затем послушалась, что же получается?..
              — Ну… ноль!

              Т.е. ощущение отрицательных чисел и нейтральности нуля уже имеет, о как. Скоро поинтересуется: почему же это на ноль делить нельзя?
              И вот решил я простыми словами записать всё, что я ещё помню про деление на ноль и всё такое.
              Читать дальше →
            • Почему программистам не удается заработать: многомерность и нескончаемое бремя Haskell

              • Translation
              Обсуждение начну с весьма печального твита Криса Аллена (Chris Allen, @bitemyapp):
              «Мне немного грустно от того, что некоторые организации твердят мантру „Вы сможете использовать haskell“, чтобы заполучить толковых инженеров подешевке».
              Untyped is unsane ( @bitemyapp) 3 июня 2014 г.

              Для тех, кто не знает: Haskell — продуктивный и мощный язык, позволяющий программистам, по крайней мере талантливым, быстро писать правильный код. По сравнению с разработкой на Java скорость возрастает в 2–5 раз при сопоставимой производительности и меньшем количестве ошибок. Крис совершенно верно заметил, что разработчик, использующий Haskell, чаще всего не получает достойного вознаграждения. Если вы твердо решили использовать функциональное программирование, то будете зарабатывать меньше коллег, которые разгребают базы кода C++ в банках, накопленные за 30 лет. Как-то это все неправильно. Почему к программистам, применяющим более мощные инструменты, применяются экономические санкции? В отличие от управленцев, ставящих во главу угла выгоду, программисты действительно хотят сделать свою работу как можно лучше. Почему же вместо «пряника» за благие намерения они получают «кнут»?
              Читать дальше →
            • Как заставить работать старую версию «Скайпа»

                2 августа, прямо во время звонка родителям, «Скайп» выбросил меня и отказался принимать пароль со словами «Skype больше не поддерживает работу своего программного обеспечения в твоей системе». На самом деле, конечно, дело не в версии системы, а в версии самого «Скайпа»: у меня стояла 4.2 (под «Виндоус»). Вариант обновления до более поздних версий я даже не рассматривал. Погоревав с неделю, я всё-таки начал искать способы решения проблемы и, к большому своему удивлению, нашёл.

                Итак, процедура запуска «старой» версии «Скайпа» такова (повторюсь, рецепт для «Виндоус»).
                Читать дальше →
              • Классы в Swift [Часть 1]

                • Translation
                • Tutorial
                Недавно Apple представила общественности достаточно важное изменение в разработке iOS приложений, анонсировав новый язык программирования Swift. В настоящее время, количество материалов на русском, посвящённых этому языку, ограничено. Также Swift — язык объектно-ориентированный, и классы в нём — основа основ. Поэтому я решил перевести эту статью.


                Читать дальше →
              • Программа и материалы курса «Multicore programming in Java»

                • Tutorial
                Добрый день.
                Меня зовут Головач Иван, я буду уже второй раз вести спецкурс-вебинар «Multicore programming in Java». В этой статье предлагаю на рассмотрение программу курса и наиболее полезные ссылки по вопросам многопоточности в Java.

                Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

                Кратко о курсе: стартует 1 сентября, ведется в режиме вебинаров дважды в неделю (понедельник + четверг) в 19.00-22.00 (по московскому времени), состоит из 16 лекций по 2.5 часа (=40 лекционных часов), рассчитан на Java Middle.

                1. Модуль #1: Между hardware и New JMM
                1.1 Программа модуля
                1.2 Литература к модулю
                2. Модуль #2: java.util.concurrent
                2.1 Программа модуля
                2.2 Литература к модулю
                3. Модуль #3: Fork/Join Framework + Parallel Streams
                3.1 Программа модуля
                3.2 Литература к модулю
                4. Модуль #4: “Неклассические архитектуры”
                4.1 Программа модуля
                4.2 Литература к модулю
                Читать дальше →
                • +17
                • 31.4k
                • 1
              • iOS vs WPF — сложное против мелкомягкого

                Друзья, ничего умнее этого заголовка не придумал, так что небольшая предыстория.
                Как и все программисты, я не мог не услышать про новый язык Swift, на который тут же посыпались разнообразные «хелловорлды»-обучалки. Однако, простые с виду приложения создаются (на мой WPF-ный взгляд) как-то уж слишком сложно даже после введения «упрощённого» языка. Это действительно необходимая сложность или их можно создавать как-то попроще? Наткнулся на вот такой пример iOS-приложения (что-то вроде браузера приложений в аппсторе) и решил создать его полный аналог на «родном» WPF'е. Цель — сравнить сложность разработки и возможно кто-то поделится более простым методом для iOS (если он есть). Обилия скринов не будет, зато кода — … да и его, в общем-то, кот наплакал. Итак,
                окунуться в магию WPF
              • О высшем образовании

                  У каждого человека есть определенный кругозор. Когда этот кругозор сужается до бесконечности малого, то он обращается в точку. Тогда человек и говорит, что это есть его точка зрения.

                  Давид Гилберт



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



                  Надеюсь этот пост послужит ликбезом всем веб-дизайнерам, верстальщикам, и проджект-менеджерам. Если вы хороший верстальщик, вас однозначно раздражают растровые изображения. Вы ненавидите растр, и всё, что имеет заметные глазу пиксели. Если это не так, добро пожаловать под кат.
                  Читать дальше →
                • Коробочные CMS для интернет-магазина: обзор популярных движков

                    Недавно я всерьёз задумался об открытии своего онлайн магазина. Будучи по натуре человеком достаточно последовательным и взвешенным, я решил не вестись на красочную рекламу, а самостоятельно осуществить ознакомление со всеми широко используемыми вариантами систем управления контентом...
                    Читать дальше →
                  • Какой язык программирования больше всего любят в Яндексе? И всегда ли любовь взаимна

                      Сегодня мы хотим продолжить серию постов, в которых задаём разработчикам из Яндекса и пользователям Хабра самые острые для любого программиста вопросы. Сегодня это вопрос о том, какой язык программирования для вас любимый.

                      В любой компании, где есть разработчики, периодически возникают споры о том, ужасен Perl или прекрасен, обязательно ли знать функциональные языки или нет, насколько мотивирован выбор C++, с какого языка программирования нужно начинать учиться и т.п.

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



                      Многие из тех, с кем я говорила, знакомы вам по постам в блоге Яндекса на Хабре: anatolix, kappa, bobuk, yafinder, styskin. Несмотря на то, что многие участники нашего опроса стали руководителями, они продолжают писать код. Под катом можно прочитать подробные ответы, не полностью попавшие в видео, и рассказать, что вы думаете по теме.
                      Читать дальше →
                    • Инди игры это как игры только инди



                        Инди разработчик должен быть безумным. Безумие очень полезно — оно подталкивает на риски, усиливает мотивацию и, как морфий, уменьшает болезненные ощущения от неудач.
                        Читать дальше →
                      • SASM – IDE для ассемблера

                        Здравствуйте, уважаемые хабравчане!

                        Данным постом хочу представить сообществу проект, который время от времени писался мной последний год: SASM (SimpleASM) — IDE для разработки программ на языке ассемблера x86 и x86-64.

                        image

                        SASM — простая кроссплатформенная (доступна на Windows и Linux) среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком. Программа работает «из коробки» и хорошо подойдет для начинающих изучение языка ассемблера. Основана на Qt. Распространяется по свободной лицензии GNU GPL v3.0.

                        Исходники лежат в репозитории на GitHub.
                        Бинарники можно скачать на сайте программы.

                        Под катом Вы найдете немножко истории и более подробное описание возможностей.
                        Читать дальше →