• Nmap. Начало использования

      image
      Вы когда-нибудь интересовались откуда атакующий знает какие порты открыты в системе? Или как узнать, какие приложения запущены на сервере, не спрашивая об этом администратора? Вы можете сделать все это и даже больше вместе с небольшим инструментом под названием Nmap.

      Читать дальше →
    • Курс MIT «Безопасность компьютерных систем». Лекция 21: «Отслеживание данных», часть 2

      • Перевод
      • Tutorial

      Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


      Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

      Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
      Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
      Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
      Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
      Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
      Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
      Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
      Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
      Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
      Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
      Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
      Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
      Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
      Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
      Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
      Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
      Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
      Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
      Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3
      Лекция 20: «Безопасность мобильных телефонов» Часть 1 / Часть 2 / Часть 3
      Лекция 21: «Отслеживание данных» Часть 1 / Часть 2 / Часть 3
      Читать дальше →
      • +13
      • 2,9k
      • 1
    • Material Design: Shape – советы по улучшению GUI приложения Android (и не только) с помощью изменения форм элементов

      • Перевод


      От переводчика


      Здравствуйте. Этот перевод я делаю потому как сам недавно начал разбираться с Shape в Android, решил пошарить по material.io, и нашел там этот сборник советов по использованию. Мне он показался интересным, полезным, и познавательным, поэтому я решил поделиться им с российским сегментом разработчиков мобильных приложений.

      Мне кажется что эта тема достаточно важная, ведь использование разных форм для элементов интерфейса делает приложение интереснее, и может быть даже серьезнее.

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

      Надеюсь что вы сможете извлечь пользу из прочитанного, и возможно улучшить качество своих приложений.
      Читать дальше →
      • +14
      • 9,1k
      • 1
    • Как уйти на пенсию до 40 лет с миллионом долларов на счету в банке

      • Перевод

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




      Карл Дженсен испытал то, что он называет «пробуждением», примерно в 2012-м году.

      Он работал программистом в пригороде Денвера, писал код для медицинского оборудования. Работа была напряжённой: ему приходилось документировать каждый шаг для Управления по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA), а ошибка в коде могла навредить или даже убить пациента.

      Дженсен зарабатывал порядка $110 000 в год, у него был определённый соцпакет, но, казалось, что всё это не окупает стресса. Он не мог расслабиться с семьёй после работы; бывало, что целые дни он проводил, обнимаясь с унитазом. Он похудел на 5 кг.

      После одного особенно брутального рабочего дня, Дженсен погуглил вопрос «как мне рано уйти на пенсию?», и глаза его открылись. Он посовещался с женой и составил план: в следующие пять лет они экономили значительную часть доходов, серьёзно урезали расходы, пока не собрали порядка $1,2 млн.

      Во вторник 10 марта 2017 года Дженсен позвонил своему боссу и предупредил об увольнении после 15 лет работы в компании. Однако он не увольнялся, а уходил на пенсию. Ему было 43.
      Читать дальше →
    • Как управлять командой и собой: 15 книг для менеджера проекта

        image

        Преподаватели курса Project management in IT — менеджеры из «МегаФона», OneTwoTrip, Redmadrobot составили список книг на лето, которые пригодятся каждому проджекту. Узнайте, зачем современному менеджеру древний военный трактат, что общего между котами и разработчиками и где ошибались CEO General Motors и Zappos.
        Читать дальше →
        • +13
        • 14,9k
        • 7
      • Два раза в одну реку или (Не)много о профессиональном выгорании

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

          — Саш, очевидно, работа не приносит тебе удовольствия, — Слава проговаривал бесспорные вещи. Четвертую неделю вместо работы я мчался на очередной детский турнир по футболу. Когда у тебя трое детей, можно 120% своего времени занять их увлечениями. — У меня есть к тебе предложение. Давай отправим тебя в отпуск на год? Я за это время закрою собой бизнес. Доходы, по-прежнему, пополам. Потом ты вернешься с новыми силами, и, может быть, я на год в отпуск схожу.

          Честно говоря, я недолго думал над этим предложением. От работы реально подташнивало, и перспектива на год избавиться от этого источника тошноты манила как никогда раньше. Мы ударили по рукам.
          Читать дальше →
        • Domain-Driven Design: стратегическое проектирование. Часть 1



            Здравствуйте, хабрапользователи! В этой статье речь пойдет о предметно-ориентированном проектировании программного обеспечения с использованием, в первую очередь, стратегических шаблонов. Вторую часть – про тактическое проектирование – читайте здесь.

            Данный подход использовал Вон Вернон в своей книге «Реализация методов предметно-ориентированного проектирования». Цель написания этой книги: дать возможность разработчикам совершить полет на самолете DDD (в детстве автор зачастую путешествовал со своей семьей на небольших самолетах). Вид с высоты дает более широкое представление о проблемах моделирования, не давая застрять в различных технических деталях. Наблюдая ландшафт DDD таким способом, можно осознать преимущества как стратегического, так и технического проектирования. Подробнее – под катом!
            Читать дальше →
          • Договоры — это как отладка

              7.2. Как форс-мажор указана забастовка в отрасли и регионе, это лучше вычеркнуть, т.к. неясно, в какой отрасли и в каком регионе.

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

              Каждый наш договор страхует юрист-отладчик, который как брекпоинтами размечает точки рисков. Сейчас покажу пару примеров того, что он видит и чувствует.
              Читать дальше →
            • Библиотека для совершения покупок внутри приложений (Android In-App Billing v.3)


                Checkout («касса», «кассовый аппарат») — это библиотека для совершения покупок внутри приложений на базе Android In-App Billing v.3. Основная цель — уменьшить время разработчика, затрачиваемое на внедрение платежей в Андроид приложения. Проект был вдохновлён библиотекой Volley, и проектировался для того, чтобы быть максимально простым в использовании, быстрым и гибким.
                Читать дальше →
              • Как сделать хороший ролик для App Store и Google Play

                • Tutorial


                Видео — это мощное средство для продвижения вашего приложения, и с выходом iOS 11 его роль становится ещё важнее. Мы в Alconost сформулировали рекомендации, которых следует придерживаться при создании видео для iOS App Store и Google Play Store. Между двумя указанными сторами есть важные отличия, о которых вам следует знать, чтобы увеличить отдачу от использования видео. Мы расскажем, как сделать ролик для страницы приложения в App Store с учётом всех новшеств iOS 11 и чем отличаются ролики для Google Play.
                Читать дальше →
              • Легкая работа со списками — RendererRecyclerViewAdapter (часть 2)

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

                  Сегодня мы разберем:

                  • как можно упростить поддержку DiffUtil в этой реализации;
                  • как добавить поддержку вложенных RecyclerView.

                  Если прошлая статья тебе пришлась по душе, думаю, понравится и эта.
                  Читать дальше →
                • Создание шейдеров

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

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


                  Сцена из Minecraft, до и после добавления нескольких шейдеров.

                  Задача этого туториала


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

                  • Перевод
                  Взаимодействие человека с компьютером во многом опирается на графические элементы интерфейса, и цвет играет в этом процессе не последнюю роль. Как однажды сказал Pierre Bonnard: «Цвет не просто делает дизайн приятным для глаз, но и подкрепляет его».

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


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

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

                  — Что, даже на том нечитаемом эзотерическом языке, где есть всего пара команд, которые едва-едва симулируют машину Тьюринга?
                  — Да, этот язык называется brainfuck. Я знаю brainfuck.

                  И это был не трюк — мы проверили. Я называл известный мне язык программирования, он тратил пару минут в Интернете на то, чтобы освежить свои знания по нему — и был способен писать на этом языке работающие алгоритмы. Я никак не мог понять этого. Ему, как и мне, было тогда около 18 лет — как он мог в этом возрасте знать все эти языки?

                  image
                  Интерпретатор brainfuck, написанный на brainfuck

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

                  Сегодня я советую своим студентам «постараться изучить все языки программирования». Подумайте сами — ведь эта идея лучше, чем все вот эти «В этом году я выучу Go! Ой, нет, теперь говорят что в моде Rust — выучу лучше Rust! Или Swift ...». Просто выучите все — не ошибётесь. А эта статья, возможно, вам в этом немного поможет.
                  Читать дальше →
                • Где поучиться робототехнике онлайн?

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

                      Чтобы сходу понимать материалы об инфраструктуре открытых ключей, сетевой безопасности и HTTPS, нужно знать основы криптографической теории. Один из самых быстрых способов изучить их — посмотреть или прочитать лекцию Владимира ivlad Иванова. Владимир — известный специалист по сетям и системам их защиты. Он долгое время работал в Яндексе, был одним из руководителей нашего департамента эксплуатации.


                      Мы впервые публикуем эту лекцию вместе с расшифровкой. Начнём с первой части. Под катом вы найдёте текст и часть слайдов.

                      Читать дальше →
                    • Реактивные приложения с паттерном RxPM. Прощайте​ MVP и MVVM

                        Уже продолжительное время я размышляю над паттерном RxPM и даже успешно применяю его в «продакшене». Я планировал сначала выступить с этой темой на Mobius, но программный комитет отказал, поэтому публикую статью сейчас, чтобы поделиться с Android-сообществом своим видением нового паттерна.


                        Все знакомы с MVP и MVVM, но мало кто знает, что MVVM является логическим развитием паттерна Presentation Model. Ведь единственное отличие MVVM от PM – это автоматическое связывание данных (databinding).


                        В этой статье речь пойдет о паттерне Presentation Model с реактивной реализацией биндинга. Некоторые ошибочно называют его RxMVVM, но корректно будет называть его RxPM, потому что это модификация шаблона Presentation Model.


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



                        Читать дальше →
                      • Лекции Технотрека. Проектирование СУБД (осень 2016)

                          image


                          Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка SQL с учетом особенностей объектно-реляционной базы данных PostgreSQL. Программа предусматривает комплексный подход к изучению стандартизованного языка SQL на платформе PostgreSQL, включая некоторые минимальные возможности администрирования пользователей, ролей, схем, базовых таблиц и других объектов базы данных. Мы рассмотрим основы работы с базой данных PostgreSQL и некоторые особенности SQL применительно к ней. Более подробно — под катом.

                          Читать дальше →
                          • +37
                          • 26,2k
                          • 8
                        • Легкая работа со списками — RendererRecyclerViewAdapter

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

                          Поначалу я как обычно выносил все лишнее из адаптеров в презентеры, фрагменты и другие классы. В итоге я пришел к мнению, почему бы не:

                          1. «обезопасить» свои адаптеры от внесения туда лишней логики;
                          2. переиспользовать биндинги ячеек;
                          3. добиться какой-то универсальности для работы с несколькими типами ячеек.

                          Если Вам знакомы такие проблемы, то добро пожаловать под кат.
                          Читать дальше →
                        • 25 Android-библиотек, которыми определенно стоит воспользоваться в начале 2017 года

                          • Перевод
                          Вот список 25 Android-библиотек, релиз которых состоялся в январе-феврале 2017 года. Все они достойны внимания, место в списке не определяется значимостью. Приступим!


                          Читать дальше →
                          • +23
                          • 42,4k
                          • 9