• Курс по C++ в CS центре, первая часть

      Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.

      Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.

      Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель CS центра и совместной магистратуры ИТМО и JetBrains «Разработка программного обеспечения / Software Engineering», технический директор Simlabs.

      Первая часть курса нужна, чтобы нарастить базу по С++: к концу семестра студенты с большой вероятностью получат достаточно навыков программирования на этом языке для решения своих задач. Пока без move semantics, sfinae, но для начала этого, скорее всего, будет достаточно.

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

      Приятного просмотра!
      Смотреть видео
      • +20
      • 14k
      • 5
    • Курс по C++ в CS центре, вторая часть

        Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.

        Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.

        Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель CS центра и совместной магистратуры ИТМО и JetBrains «Разработка программного обеспечения / Software Engineering», технический директор Simlabs.

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

        Раскусим новые возможности языка и стандартной библиотеки: move семантику, bind/function, enable_if/if constexpr, сoroutines и другие. Посмотрим на некоторые характерные задачи: многопоточное программирование, использование библиотек в Windows и Linux и другие.

        Приятного просмотра!
        Смотреть видео
      • 15 малоизвестных команд Linux

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

        Мой диагноз параноидная шизофрения. Заболел я через год после окончания университета. Вот уже 10 лет я работаю в IT, сейчас моя должность — старший инженер-программист. Хочу рассказать, с какими проблемами может столкнуться человек с серьезным психическим заболеванием при построении карьеры.

        Это практическая статья. В ней я почти не буду касаться моих симптомов и описывать свой опыт. Таких статей и без меня не мало, и на хабре они тоже есть. Есть целое издательство, которое специализируется на книгах о шизофреническом опыте.
        Читать дальше →
      • Подготовлены правила изоляции Рунета



          До вступления в силу закона об изоляции Рунета осталось четыре месяца. Роскомнадзор заблаговременно выложил для обсуждения конкретный порядок этой процедуры. Проект приказа называется «Об утверждении правил маршрутизации сообщений электросвязи в случае осуществления централизованного управления сетью связи общего пользования».

          Если выразить двухстраничный документ одним предложением, то в случае приказа об изоляции всем (операторам и владельцам точек обмена) запрещено пускать российский трафик за границу. Исключение только для Калининградской области и посольств РФ. И только для маршрутизации их трафика на территорию «материковой РФ».
          Читать дальше →
        • В Совете Федерации предложили штрафовать за использование иностранных сетей спутниковой связи

            На фоне новостей о запусках спутников Starlink и других передовых систем спутниковой связи, 11 июня 2019 в Совет Федерации РФ внесен законопроект о внесении изменений в КоАП РФ.

            image
            Читать дальше →
          • Анализ сишного Hello World

            • Translation
            Hello World — одна из первых программ, которые мы пишем на любом языке программирования.

            Для C hello world выглядит просто и коротко:

            #include <stdio.h>
            
            void main() {
              printf("Hello World!\n");
            }

            Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».
            Читать дальше →
          • Telegram. Безлимитный сетевой диск. Бесплатный

              Привет, Хабр.

              Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

              TgCloud:


              • Виртуальная файловая система с открытым исходным г****кодом.
              • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
              • Данные хранятся в Telegram и загружаются только при работе с файлом
              • Размер и тип файлов не ограничен, можно использовать с любой ОС

              Подробности реализации и ссылка на репозиторий под катом.
              Читать дальше →
            • Ключ на старт: лучшие программные и аппаратные средства для компьютерной криминалистики



                Вот так раньше выглядела одна из визиток Игоря Михайлова, специалиста Лаборатории компьютерной криминалистики Group-IB. На ней — аппаратные ключи программ, которыми пользовался эксперт при проведении криминалистических экспертиз. Стоимость только этих программных продуктов превышает 2 миллиона рублей, а ведь есть еще бесплатное программное обеспечение и другие коммерческие продукты. Какой инструментарий выбрать для работы? Специально для читателей «Хабра» Игорь Михайлов решил рассказать о лучших программных и аппаратных средствах для компьютерной криминалистики.
                Читать дальше →
              • Малый бизнес: автоматизировать или нет?

                  На одной улице в соседних домах живут две женщины. Они не знакомы друг с другом, но их объединяет одна приятная вещь: обе готовят торты. Обе начали пытаться готовить на заказ в 2007 году. Одна имеет свой бизнес, не успевает раздавать заказы, открыла курсы и ищет себе постоянный цех, хотя её пирожные вкусные, но довольно стандартные, — как в среднем кафе. Вторая готовит что-то нереально вкусное и домашнее, но при этом совершила всего 4 продажи за 12 лет и в итоге готовит только для родных. Дело не в возрасте, совести и наездах СЭС. Дело в том, что первая справилась с тотальной автоматизацией производства и сбыта, а вторая — нет. Это стало решающим фактором. Правда, простой бытовой пример? А масштабировать его можно на любой размер: от рекламного агентства «на троих» до супер корпорации. Неужели автоматизация настолько решает? Давайте обсудим.

                  P.S.: для хардкорных читателей альтернативное вступление под катом :-)


                  Да ну нет. Да ну что вы. Да ни в жизнь!
                  Читать дальше →
                • Ответы на ваши вопросы про то, зачем нужно издательство для выпуска книги



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

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

                    Поэтому добро пожаловать в пост «что вы не знали про российский книжный рынок». И да, там есть пара странных вещей.
                    Читать дальше →
                  • Осторожно доктор



                      Это ответ на неожиданную статью на Хабре психиатра с тридцатипятилетним стажем Александра Геннадьевича Данилина, также довольно известного youtube влогера. До его статьи на Хабре я не обращал на его творчество внимания, как выяснилось, зря.

                      Но сначала короткое предисловие.

                      Для меня психиатрия болезненная и личная история. К сожалению, это очень специфичная область медицины, в которой эзотерика и мракобесие очень успешно сопротивляются научному знанию. Дело в том, что доказательной медицине вообще чуть более тридцати лет. И медицинское сообщество только сейчас с кровавой рвотой исторгает из себя всякую гомеопатию. В психиатрии же ввиду объективных факторов процесс идет тяжелее всего. Эта область все еще является заповедником для шарлатанов, невежд, идиотов и фриков от науки со своими особыми трактовками и истинами, почерпнутыми из “философских размышлений”. Революция в нейронауках, в частности, в психологии и психиатрии происходит прямо сейчас. Увы, не для всех.
                      К не слишком компетентным, но придерживающимся стандартных программ и методик лечения психиатрам, я отношусь довольно холодно. Тем не менее, они делают то, чему их научили. Как правило, это позволяет им вывести пациента из острого психотического состояния. Ну, а дальше у него по крайней мере будет шанс. Возможно, в будущем разработают лучшие методики, будут лучше лечить. Но вот фрики, выковыривающие свои антинаучные гипотезы из известного места и применяющие их при лечении тяжелых пациентов, вызывают во мне острое нестерпимое желание жечь, жечь, жечь в драконьем пламени. Я слишком хорошо знаю, к чему приводит их невежество.

                      Я был в этом аду, я в нем горел.
                      Читать дальше →
                    • Алексей Савватеев и теория игр: «Какова вероятность, что в ближайшие пять лет будет скинута атомная бомба?»

                        image

                        Расшифровка видеозаписи лекции.

                        Теория игр — дисциплина, которая прочно зависла между математикой и социальными науками. Одним канатом к математике, другим канатом — к социальным наукам, прочно прикреплена.

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

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

                        Некоторые сюжеты спорные. Модели могут быть разные, можете не соглашаться с моей моделью.

                        • Теория игр в Талмуде.
                        • Теория игр в русской классике.
                        • Телеигра или задача о парковочных местах.
                        • Люксембург в Евросоюзе.
                        • Синдзо Абэ и Северная Корея
                        • Парадокс Брайеса в Метрогородке (Москва)
                        • Два парадокса Дональда Трампа
                        • Рациональное безумие (снова Северная Корея)

                        (В конце поста — опрос про бомбу.)
                        Читать дальше →
                      • Почему на собеседованиях так часто спрашивают про связные списки

                        • Translation
                        Примечание переводчика: оригинальная статья опубликована в серии твитов

                        Вероятно, вы уже читали кучу объяснений, почему обработка связных списков — плохой вопрос для собеседования. Я же в первую очередь хочу объяснить, откуда он вообще взялся. Всем пристегнуться, погружаемся в теорию игр ИСТОРИЮ!

                        Хотя индустрия программного обеспечения процветала в 80-е годы, но действительно взлетела в 90-е. В это десятилетие число работников отрасли в США утроилось и превысило миллион человек. Со взрывным ростом пришла необходимость нанимать массу сотрудников и оценивать их.

                        Что нужно оценить? Ну, в первую очередь, знание языков. Согласно TIOBE, в 1986−2006 годы самым популярным языком в мире был C, далее следовал C++. К 2006 году Java вышла на первое место, но C остался рядом.

                        C работал близко к железу без лишних абстракций. Пустой словарь Python расходует аж 288 байт, то есть 5% всего объёма памяти первого поколения Apple II. Абстракции слишком дороги, слишком много накладных расходов. Если вам нужна сложная структура данных, вы должны построить её самостоятельно с помощью массивов, структур и указателей.
                        Читать дальше →
                      • 10 типов структур данных, которые нужно знать + видео и упражнения

                        Екатерина Малахова, редактор-фрилансер, специально для блога Нетологии адаптировала статью Beau Carnes об основных типах структур данных.

                        «Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс, создатель Linux.

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

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

                        • Translation
                        image

                        Часть 1. Линейные структуры


                        Массив


                        Когда вам нужен один объект, вы создаёте один объект. Когда нужно несколько объектов, тогда есть несколько вариантов на выбор. Я видел, как многие новички в коде пишут что-то типа такого:

                        // Таблица рекордов
                        int score1 = 0;
                        int score2 = 0;
                        int score3 = 0;
                        int score4 = 0;
                        int score5 = 0;

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

                        // Таблица рекордов
                        const int NUM_HIGH_SCORES = 5;
                        int highScore[NUM_HIGH_SCORES] = {0};

                        Будет создан буфер из 5 элементов, вот такой:



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

                        • Translation
                        image

                        Интерфейс CS-Playground-React

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

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

                        Зайдите на CS-Playground-React, простую браузерную JavaScript-песочницу для изучения и практикования алгоритмов и структур данных.

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



                          Привет! Я хотел сказать, что вчера вышла третья наша книга, и тоже очень помогли посты с Хабра (а частично и вошли). История такая: на протяжении примерно 5 лет к нам подходили люди, которые не умели в проектное мышление, не понимали разные вопросы бизнеса и задавали одни и те же вопросы.

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

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

                          Тогда начали отвечать на вопросы. Что характерно, это были одни и те же вопросы и требовали одних и тех же ответов. Два года назад появилось моральное право рассказать про то, что мы уже повидали на этом пути. Полгода назад книга была дописана. Вчера она наконец-то вышла.

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



                            Привет!

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

                            Соответственно, на процентов 80% этой инфраструктуры постоянно идут мелкие, скажем так, бытовые социнжиниринговые атаки. От невинных и даже местами наивных до чертовски изобретательных. Изобретательных в социальном плане.
                            Читать дальше →
                          • Художественные детские книги про социнжиниринг



                              Привет! Я три года назад читал в детском лагере лекцию про социнжиниринг, троллил детей и немного бесил вожатых. В итоге испытуемые спросили, что почитать. Мой дежурный ответ про две книги Митника и две книги Чалдини, вроде, убедителен, но только для примерно восьмиклассника и старше. Если младше — то надо сильно чесать голову.

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