Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaSript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.
Рубрика «Программирование» - 261
Асинхронное программирование (полный курс)
2019-05-22 в 16:29, admin, рубрики: actor model, Async.js, async/await, callback, composition, coroutine, deferred, Events, future, generators, javascript, node.js, observable, promise, rx, rxjs, thenable, асинхронное программирование, асинхронность, модель акторов, Программирование, Разработка веб-сайтов, Учебный процесс в ITJavaScript-движки: как они работают? От стека вызовов до промисов — (почти) всё, что вам нужно знать
2019-05-22 в 13:14, admin, рубрики: javascript, JS, node.js, nodejs, Блог компании Mail.Ru Group, браузеры, никто не читает теги, ПрограммированиеВы когда-нибудь задумывались, как браузеры читают и исполняют JavaScript-код? Это выглядит таинственно, но в этом посте вы можете получить представление, что же происходит под капотом.
Начнём наше путешествие в язык с экскурсии в удивительный мир JavaScript-движков.
Читать полностью »
Знакомство с Python для камрадов, переросших «язык A vs. язык B» и другие предрассудки
2019-05-21 в 15:01, admin, рубрики: python, ПрограммированиеДля всех хабравчан, у которых возникло ощущение дежавю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ быстрее Python", "Rust ещё быстрее C++", "Python не нужен" и т.д. Удивительно, что не вспомнили Ruby!
Как сказал Бьярн Страуструп,
«Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует».
Добро пожаловать под кат всем, кто хотел бы познакомиться с Python, не опускаясь при этом до грязных ругательств!
nanoFOX — простое RISC-V совместимое ядро
2019-05-21 в 14:19, admin, рубрики: digital design, fpga, risc-v, SystemVerilog, verification, ПрограммированиеНебольшое вступление:
Идея написания собственного ядра появилась после прохождения школы-семинара по цифровой схемотехнике в городе Томске. На данном мероприятии проводилось знакомство с текущими языками описания аппаратуры (Verilog HDL и VHDL), а также с небольшим процессорным ядром schoolMIPS. Для понимания устройства ядер было принято решение изобрести собственный велосипед, следуя по пути развития schoolMIPS, но взяв за основу другую систему команд. Вследствие роста популярности RISC-V и открытости его системы команд (MIPS на момент начала написания ядра не имел открытую систему команд) для осуществления разработки будущего ядра был выбран набор инструкций RISC-V, а именно RV32I. RV32I имеет небольшой набор базовых инструкций (37 без учёта специальных) и при желании его можно расширить, например, добавив инструкции целочисленного умножения и деления (RV32M) или поддержку сокращённых инструкций (compressed instructions) (RV32C). Также данный проект задумывался как образовательный, поэтому было решено по максимуму увеличить наглядность работы ядра для эффективной демонстрации его работы.
По аналогии с schoolMIPS были реализованы следующие версии ядра:
- Однотактная версия (00_simple_risc_v_cpu).
- Однотактная версия с поддержкой инструкций lw/sw (load word/store word) (01_simple_risc_v_cpu_lwsw).
- Конвейерная версия (5-ти стадийный конвейер) (02_pipe_risc_v_cpu).
На текущий момент описывается следующая версия ядра (03_pipe_risc_v_cpu_fc) с полным набором команд RV32I (без учёта некоторых специальных).
QA: Хакатоны
2019-05-21 в 5:24, admin, рубрики: Блог компании Open Data Science, интервью, машинное обучение, Программирование, хакатон, Хакатоны
Заключительная часть трилогии о хакатонах. В первой части я рассказал о мотивации к участию в таких мероприятиях. Вторая часть была посвящена ошибкам организаторов и их результатам. Заключительная часть ответит на вопросы, которые не поместились в первые две части.
Читать полностью »
Управление командой программистов: как и чем их правильно мотивировать? Часть первая
2019-05-20 в 8:25, admin, рубрики: hr-процесс, Блог компании Parallels, Карьера в IT-индустрии, мотивация программистов, Программирование, управление персоналом, Читальный залЭпиграф:
Муж, глядя на чумазых детей, говорит жене: ну, что, этих отмоем или новых нарожаем?
Под катом рассуждения нашего тимлида, а также директора по развитию продукта RAS — Игоря Марната об особенностях мотивации программистов.
Секрет успеха в создании классных программных продуктов известен — возьмите команду крутых программистов, дайте команде классную идею и не мешайте команде работать. Крутые разработчики — ребята редкие и востребованные. Некоторые рекрутеры даже говорят, что у них создаётся такое впечатление, что родить крутого программиста проще, чем нанять его с рынка. Помимо трудностей с наймом, как таковым, опыт каждого конкретного разработчика, его знания о существующем продукте и истории его разработки зачастую незаменимы или восполняются тяжело и долго. Поэтому если вам повезло, и вас уже есть крутая команда программистов, важно работать над их мотивацией. Нанять, обучить новых разработчиков, сделать из них команду — почти также трудно и долго, как родить и вырастить детей.
Читать полностью »
Адаптация программ для ZX Spectrum к TR-DOS современными средствами. Часть 2
2019-05-19 в 21:47, admin, рубрики: retrocomputers, Z80, zx spectrum, Программирование, реверс-инжиниринг, сжатие изображений, старое железо, Форматы данныхВ первой части статьи мы разобрали загрузчик оригинальной версии и выяснили, куда загружается код игры и как он запускается. Теперь нужно перенести файлы на диск.
Обычно это делается простым копированием файлов, но есть одна проблема. Дело в том, что оригинальный файл содержит картинку и код игры целым куском и, следовательно, затирает собой область бейсика и системных переменных, которые находятся сразу за экранной областью. Такой файл можно загрузить с ленты, но нельзя загрузить с дискеты. TR-DOS резервирует область определённую памяти под свои нужды, и если загрузить туда данные, в процессе загрузки всё сломается.
Software Defined Radio — как это работает? Часть 3
2019-05-18 в 21:01, admin, рубрики: dsp, NOAA, python, radio, SDR, wxtoimg, гаджеты, Научно-популярное, Программирование, Разработка систем связи, Электроника для начинающихВо второй части были рассмотрены практические аспекты использования SDR. В этой части мы разберемся, как принять данные метеоспутника NOAA с помощью Python и недорогого (30$) приемника RTL-SDR. Рассмотренный код будет работать везде — на Windows, OSX, Linux и даже на Raspberry Pi.
Кому интересно, продолжение под катом.
Читать полностью »
Про ООП
2019-05-18 в 20:25, admin, рубрики: Анализ и проектирование систем, ооп, Программирование, Совершенный код, функциональное программирование
Чем больше читаю про ООП, тем больше возникает ощущение, что ООП понимают не только лишь все. Очередная статья этому пример.
Тут можно долго расписывать нелепость аргументаций в приведенной выше статье. Но в целом, всю статью можно перечеркнуть буквально следующим.
Оптимизация сборки мусора в высоконагруженном .NET сервисе
2019-05-17 в 19:07, admin, рубрики: .net, ASP, C#, высокая производительность, ПрограммированиеЕжедневно в сервисе Pyrus работают десятки тысяч сотрудников из нескольких тысяч организаций по всему миру. Отзывчивость сервиса (скорость обработки запросов) мы считаем важным конкурентным преимуществом, так как она напрямую влияет на впечатление пользователей. Ключевой метрикой для нас является «процент медленных запросов». Изучая ее поведение, мы заметили, что раз в минуту на серверах приложений возникают паузы длиной около 1000 мс. В эти промежутки сервер не отвечает и возникает очередь из нескольких десятков запросов. О поиске причин и устранении узких мест, вызванных сборкой мусора в приложении, пойдет речь в этой статье.