• Нейронные сети с нуля. Обзор курсов и статей на русском языке, бесплатно и без регистрации

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

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

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


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

      • Перевод
      • 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
      Читать дальше →
    • Самый полный русскоязычный перевод Гарвардского курса по программированию CS50 2015, бесплатно на YouTube

      В этой статье я хочу немного рассказать о самом лучшем в мире курсе по программированию.

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

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

      image
      Читать дальше →
    • Виртуальный мир Intel. Часть 2: SMP

        В предыдущей статье(ссылка) я рассказал о базовой концепции гипервизора, основанного на технологии аппаратной виртуализации Intel. Теперь же я предлагаю расширить возможности гипервизора добавив поддержку многопроцессорной архитектуры (SMP), а также рассмотреть пример того, как гипервизор может вносить изменения в работу гостевой ОС.

        Все дальнейшие действия будут проводится на PC со следующей конфигурацией:

        CPU: Intel Core i7 5820K
        Motherboard: Asus X99-PRO
        Ram: 16GB
        Гостевая ОС: Windows 7 x32 с отключенным PAE
        Читать дальше →
        • +19
        • 3,4k
        • 4
      • Виртуальный мир Intel. Практика

        В данной статье я хочу рассмотреть практические аспекты создания простого гипервизора на основе технологии аппаратной виртуализации Intel VMX.

        Аппаратная виртуализация достаточно узкоспециализированная область системного программирования и не имеет большого комьюнити, в России уж точно. Я надеюсь, что материал статьи поможет тем, кто захочет открыть для себя аппаратную виртуализацию и те возможности которые она предоставляет. Как было сказано в начале, я хочу рассмотреть именно практический аспект без погружения в теорию, поэтому предполагается что читатель знаком с архитектурой x86-64 и имеет хотя бы общее представление о механизмах VMX. Исходники к статье.

        Начнем с постановки задач для гипервизора:
        Читать дальше →
        • +29
        • 5,5k
        • 1
      • Нестыдные вопросы про жизненный цикл



          Каждый разработчик сталкивался с вопросами про жизненный цикл Activity: что такое bind-сервис, как сохранить состояние интерфейса при повороте экрана и чем Fragment отличается от Activity.
          У нас в FunCorp накопился список вопросов на похожие темы, но с определёнными нюансами. Некоторыми из них я и хочу с вами поделиться.

          Читать дальше →
          • +26
          • 8,7k
          • 8
        • Безопасность авиаперелётов

            Это сделала птица:



            Даже коллеги из Туту часто интересуются, насколько безопасно летать, не говоря уж о пассажирах. На эту тему есть очень много слухов, поэтому давайте их разберём.

            Основные вещи:

            — Аварийная посадка в неровную кустарниковую степь часто безопаснее посадки на воду.
            — Парашюты как системное явление снизят безопасность пассажиров.
            — 30 лет — нормальный срок жизни самолёта. 20 лет — самолёт ещё молод.
            — При отказе двигателя на взлёте есть ситуации, когда надо продолжать взлёт.
            — Отказ всех двигателей не означает катастрофу при определённой скорости.
            — В меру жёсткий удар при посадке безопаснее, чем «kiss landing»,
            — Для чего каждый полёт стюардессы проводят инструктаж.

            Каждый из этих пунктов может быть потенциальной причиной споров. Ниже — моё субъективное мнение как действующего пилота российской авиации (семь лет).
            Читать дальше →
          • Жизнь и смерть митохондрий

              Митохондрии – маленькие труженики или большие начальники?

              Если вы думаете, что самая важная для нас история совместной жизни начинается во время свадьбы, то это совсем не так. Самая важная история совместной жизни каждого человека началась более миллиарда лет назад, когда наши далекие одноклеточные предки вынуждены были подписать «брачный контракт» с теми, кого мы сейчас называем митохондрии (см. теория симбиогенеза).

              Митохондрии имеют две мембраны (внутреннюю и внешнюю) и собственный наследственный материал в виде ДНК (рис.1). На внутренней мембране митохондрий находится система окислительного фосфорилирования, работа которой обеспечивает окисление энергетических субстратов с образованием АТФ.


              Рис. 1. Схематическое строение митохондрии

              В брачном контракте клетки и митохондрии нет пункта «в болезни и здравии», — и хорошо. Если митохондрия становится старой, клетка может ее убить в процессе митофагии, а митохондрии, в свою очередь, регулируют процесс апоптоза у недееспособных и старых клеток. Если процесс обоюдного контроля качества нарушается, запускаются механизмы старения. Нарушаются механизмы апоптоза, увеличивается количество свободных радикалов, не контролируемых митохондрией. Это вызывает системное воспаление, повреждение ДНК клетки. Таким образом, есть сильная взаимосвязь между МХ дисфункцией, возраст-зависимыми заболеваниями, старением организма и метаболическими дисфункциями [1]. Метаболическая дисфункция – неизменный всадник апокалипсиса старения.
              Читать дальше →
            • Краткое введение в Клеточную биологию



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

              Ни для кого не секрет, что почти все живое в этом мире состоит из клеток, будь то мы с вами, любимый кот, водоросли, или бактерии помогающие переваривать все то, чем современный человек загружает свой желудок. Однако большинство людей почти ничего не знает о том, как устроены клетки и как они работают. Многие из вас могут возразить, что их работа не связанна с биологией и эти знания им не нужны, и это ваше право. Однако в большинстве насущных проблем биологическое знание может нам помочь (например понять абсурдность рекламы большинства омолаживающих кремов, важности антибиотиков и их правильного приема, всю абсурдность споров на тему ГМО и т.д.).
              Читать дальше →
            • Представляем Spring Data JDBC

              • Перевод

              В предстоящий релиз Spring Data под кодовым именем Lovelace мы собираемся включить новый модуль: Spring Data JDBC.


              Идея Spring Data JDBC заключается в том, чтобы предоставить доступ к реляционным базам данных без использования всей сложности JPA.

              Читать дальше →
            • LOLWUT: произведение искусства в команде БД

              • Перевод
              Автор — Сальваторе Санфилиппо aka antirez, один из основных разработчиков БД Redis, сотрудник Redis Labs. Статья опубликована 12 сентября 2018 года

              Последние несколько дней оказались весьма напряжёнными. Одним из аргументов в споре о замене или не замене слов, используемых в коде репликации Redis, было следующее: стоит ли делать работу, которая не даёт никакого технологического результата? [Речь о замене терминов «хозяин/раб» при репликации — прим. пер.]

              В процессе чистки исходников Redis от определённого слова, где это возможно, я подумал, что мне нравится писать код даже без измеримых технологических эффектов. Замена слов — слишком рутинная работа, она просто раздражает, даже если по ходу встречаются достойные технологические проблемы. Но есть другой вид кода с особым качеством, которое я бы назвал “hack value”. Он может не решать никакой проблемы, но всё равно это достойная задача. Здесь несколько причин. Иногда процесс написания кода полезен сам по себе. Иногда для решения не самой важной проблемы используются технически продвинутые идеи. А иногда код пишется просто из эстетических соображений.
              Читать дальше →
              • +10
              • 2,8k
              • 1
            • Как защитить своего ребенка от мусора на YouTube и сделать кастомный плеер с белым списком каналов

                Можно долго спорить на тему, стоит ли давать маленьким детям доступ к планшетам и смартфонам. Кто-то говорит что это вредно для глаз или для психики, кто-то — что родителям надо бы самим играть и читать с детьми, а не пытаться отгородится от них гаджетами. Что характерно, чаще всего такое говорят люди, у которых своих детей нет. И которые не знают, какое это блаженство — когда чадо замолкает хотя бы на полчаса, перестает крушить все вокруг, спокойненько лежит на диване и смотрит мультики. Есть и еще один аргумент — дети чутко все повторяют за родителями, если родители непрерывно сидят уткнувшись в телефон, то очень сложно объяснить детям, почему родителям можно, а им — нет.



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


                К сожалению, я очень быстро уяснил, что детский ютуб — это просто АДОВЫЙ ТРЕШ. Про это даже на Хабре уже был перевод статьи. Детские каналы — это какие-то бездонные клоаки, наполненные вырвиглазными видео типа "разворачиваем сто киндер-сюрпризов", "дурацкие стишки с убогой 3д графикой под крикливую музыку" и "гоняем машинки в Beam NG под дурацкие комментарии". По какой-то причине все это является очень привлекательным для маленьких детей, которые бросаются кликать на такие видео как только увидят их в рекомендованных. А YouTube не позволяет управлять рекомендациями. Даже дав своему сыну планшет с включенными "нормальными" мультиками, я уже через пару минут наблюдаю, как он за два клика по рекомендациям опять находит эти чертовы шоколадные яйца и снова начинает в них залипать.


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

                Читать дальше →
              • Embox начинает восхождение на Эльбрус

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

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

                  Приступим.
                  Читать дальше →
                • I. Дезадаптации. II. СДВГ или ленивый придурок?

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

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


                    Ответ — нет! Вы не ленивый придурок, если задаете себе такой вопрос. Вы “счастливый” обладатель одного или нескольких сразу дезадаптивных механизмов, реализованных вашим мозгом, в результате чего блокируются некоторые поведенческие выходы.
                    Читать дальше →
                  • Журнал «Новости Космонавтики» прекращает своё существование


                      Российский журнал и форум «Новости космонавтики» — эпоха, явление, бренд популяризации российской космонавтики и её истории, исчезнет в ближайшее время. В отличии от предыдущего случая в 2015 году, в этот раз нефинансовые причины. Новому руководству Роскосмоса не нужен такой журнал.
                      Читать дальше →
                    • Язвы и грабли CSV и Excel: проблемы и решения

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

                        История этого формата насчитывает не менее 30 лет. Но даже сейчас, в эпоху повального использования XML, для выгрузки и загрузки больших объемов данных по-прежнему используют CSV. И, несмотря на то, что сам формат довольно неплохо описан в RFC, каждый его понимает по-своему.

                        В этой статье я попробую обобщить существующие знания об этом формате, указать на типичные ошибки, а также проиллюстрировать описанные проблемы на примере кривой реализации импорта-экспорта в Microsoft Office 2007. Также покажу, как обходить эти проблемы (в т.ч. автоматическое преобразование типов Excel-ом в DATETIME и NUMBER) при открытии .csv.

                        Читать дальше →
                      • [DotNetBook] Span: новый тип данных .NET

                        • Tutorial

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


                        Как язык, так и платформа существуют уже много лет: и все это время существовало множество средств для работы с неуправляемым кодом. Так почему же сейчас выходит очередной API для работы с неуправляемым кодом если по сути он существовал уже много-много лет? Для того чтобы ответить на этот вопрос достаточно понять чего не хватало нам раньше.


                        Разработчики платформы и раньше пытались нам помочь скрасить будни разработки с использованием неуправляемых ресурсов: это и автоматические врапперы для импортируемых методов. И маршаллинг, который в большинстве случаев работатет автоматически. Это также инструкция stackallloc, о которой говорится в главе про стек потока. Однако, как по мне если ранние разработчики с использованием языка C# приходили из мира C++ (как сделал это и я), то сейчас они приходят из более высокоуровневых языков (я, например, знаю разработчика, который пришел из JavaScript). А что это означает? Это означает что люди со все большим подозрением начинают относиться к неуправляемым ресурсам и конструкциям, близким по духу к C/C++ и уж тем более — к языку Ассемблера.


                        Статья хоть и большая, но является вводной в тему Span<T> и Memory<T>

                        Примечание


                        Глава, опубликованная на Хабре не обновляется и возможно, уже несколько устарела. А потому, прошу обратиться за более свежим текстом к оригиналу:


                        Читать дальше →
                      • Вся правда о linux epoll

                          Ну или почти вся...



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


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


                          Anyone can wield an axe, but it takes a true warrior to make it sing melees melody.

                          Я предполагаю, что читатель знаком с epoll, по крайней мере прочел страницу man. О epoll, poll, select написано достаточно много, чтобы каждый кто разрабатывал под Linux, хоть раз о нем слышал.

                          Читать дальше →
                        • AI, практический курс. Предобработка и дополнение данных с изображениями

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

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

                          Рассмотрим некоторые возможные методы трансформации при предобработке и их реализацию через Keras.

                          Читать дальше →
                        • Открытый урок «Многопоточность в Java. Базовые примитивы синхронизации»

                            Всем привет!

                            Делимся с вами очередным открытым вебинаром, который проводили в рамках нашего курса «Разработчик Java». На уроке преподаватель курса Сергей Петрелевич разбирал основные проблемы разработки многопоточных программ, средства работы с потоками в JVM.


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