Обновить
1350.79

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Pygest #7. Релизы, статьи, интересные проекты из мира Python [28 марта 2017 — 10 апреля 2017]

Время на прочтение2 мин
Охват и читатели8.8K
image Всем привет! Это уже седьмой выпуск дайджеста на Хабрахабр о новостях из мира Python. В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся глубокого обучения, объектно-ориентированного программирования, алгоритмов и структур данных, хороших практик при написании Python-кода и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
Перейти к дайджесту

Как уместить все приложения в 16 Гб ОЗУ на macOS

Время на прочтение3 мин
Охват и читатели19K
Заголовок может вам показаться странным, если вы не используете macOS, но если вы пользуетесь продуктами экосистемы Apple (особенно ноутбуками или iMac Retina 4K), то в процессе работы можете столкнуться с неприятной проблемой: все необходимые для работы инструменты никак не хотят помещаться в 16 Гб оперативной памяти, и система начинает периодически «тормозить» и использовать большое количество сжатой памяти и свопа.

В интернете есть много тривиальных статей, как можно уменьшить потребление памяти на macOS из серии «выключите ненужные программы, установите The Great Suspender для Google Chrome» и т.д. Если вы перепробовали эти советы и всё равно страдаете от недостатка памяти, то я бы хотел поделиться опытом, как лично я решаю эти проблемы.
Читать дальше →

НДС и фрилансеры, работающие с Upwork

Время на прочтение4 мин
Охват и читатели41K
Статья изложенная ниже — рассматривает лишь один из аспектов касающихся уплаты налогов при работе с Upwork. В данный момент существует более полное руководство — Легальный вывод средств с Upwork в РФ.



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

Прореагировав на шквал возмущений, на неопределенный срок Upwork вернулся к старому документообороту. Напряженное ожидание, когда же Upwork прекратит работу со старыми договорами закончилось неожиданно — 3 июля 2016 года были внесены изменения в Налоговый кодекс, вступившие в силу с 1 января 2017 года. Отныне закону до лампочки, какие договора используются — НДС теперь надо платить всем. Подробнее проблема описана в статье Налоговый cуслик — 2.

Развернувшиеся на тостере дебаты о том, как ко всему этому относиться, еще продолжаются. Но выпущенное 3 дня назад Эльбой обновление, в том что платить НДС все-таки надо (хотя бы с точки зрения закона) убедило почти всех.

image
Читать дальше →

WebRTC, Safari

Время на прочтение8 мин
Охват и читатели11K

В апреле прошлого года по сети прокатился пресс-релиз о том, что Apple выкатывает поддержку WebRTC в браузерах Safari для Mac OS и iOS. С момента выхода пресс-релиза скоро пройдет ровно год, как Apple продолжает выкатывать WebRTC для Safari. Ждем.


Однако ждут не все. Кому-то требуется реал-тайм видео в Safari прямо сейчас и в этой статье мы расскажем как обходиться без WebRTC в браузере iOS Safari и Mac OS Safari и чем можно его заменить.
Читать дальше →

Проблема использования CompletableFuture в нескольких потоках и её решение

Время на прочтение4 мин
Охват и читатели23K
imageВ Java 8 появился новый класс CompletableFuture, который позволяет удобно писать асинхронный код.
При использовании CompletableFuture из нескольких потоков я столкнулся с его неочевидным поведением, а именно с тем, что callbacks на нём могут выполнятся совсем не в тех потоках, как ожидалось. Об этом и о том, как мне удалось решить проблему — я и расскажу в этой статье.

Мною разрабатывался асинхронный, неблокирующийся однопоточный клиент к серверу, который использовал потоконебезопасные структуры данных. Тесты проходили без проблем, но benchmarks иногда падали c ConcurrentModificationException на внутренних структурах однопоточного клиента.
Читать дальше →

Применение IMS QTI в электронных курсах в формате ePUB

Время на прочтение13 мин
Охват и читатели7.9K

Суть проблемы


В системах электронного обучения (СЭО), используемых в образовательных учреждениях, часто требуется помимо подключения электронного курса к СЭО, также импортировать его отдельные компоненты для формирования единых банков образовательных ресурсов. Такие банки используются в образовательном процессе, в том числе для создания междисциплинарных спецкурсов, итоговых тестирований по всему периоду обучения. Как правило, это в первую очередь тестовые задания, изображения, мультимедийные компоненты. Некоторые элементы контента, в частности тестовые задания, созданные без использования машиночитаемых форматов (CSV, JSON, XML, XLS), не поддаются эффективному автоматизированному импорту в СЭО. Особенно это касается HTML/CSS/JavaScript, применяемых в контейнере для электронных курсов и публикаций ePUB. Для решения этой задачи автором предлагается использовать описания тестов и отдельных тестовых вопросов в составе курса в машиночитаемом формате XML в соответствии со спецификацией IMS Question and Test Interoperability v.2.2 (IMS QTI).


Пару слов о ePUB v.3


ePUB версии 3, разработан ассоциацией IDPF и является стандартом для обмена и дистрибуции электронных публикаций. ePUB получил широкое распространение среди издателей электронных учебников и курсов. Формат поддерживается на большинстве мобильных платформ, и лег в основу ряда других подобных форматов, например, ibooks компании Apple.


Рисунок 1. Структура EPUB-контейнера
image

Читать дальше →

За закрытой дверью фронтенда ЕФС

Время на прочтение6 мин
Охват и читатели29K
В этой статье мы расскажем о библиотеке компонентов Единой фронтальной системы (ЕФС)  и как в целом устроен фронтенд платформы.


Читать дальше →

Плагинная система на ASP.NET. Развитие идеи

Время на прочтение6 мин
Охват и читатели4.3K

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

На написание продолжения меня подтолкнули многочисленные вопросы, которые я получаю от читателей. Продолжение под катом.
Читать дальше →

Митап ThinkPHP #14 в Харькове. Вместе 5 лет

Время на прочтение1 мин
Охват и читатели3.7K
Отмечаем 5-летний юбилей ThinkPHP вместе на четырнадцатой встрече нашего комьюнити! Пять лет интересных встреч, насыщенных докладов, оживленных кофе-брейков и уютных пятничных вечеров — и ThinkPHP #14 продолжает эту традицию. Вас ждут крутые спикеры, актуальные темы мира PHP, вкусные кофе-брейки и многое другое.


Читать дальше →

9-я встреча MSK.NET Community

Время на прочтение2 мин
Охват и читатели3.7K
image

Всем привет, MSK.NET говорит. В марте мы встречались на площадке Digital October и обсуждали Internet of Things. Встреча как всегда прошла в тёплой и дружественной атмосфере. Теперь мы знаем как и с чем едят IoT. Очень приятно было видеть множество новых лиц.

Но хватит уже отдыхать, пора браться за работу!
Читать дальше →

Вокруг шум. Чат-бот: пустой хайп или новая эра?

Время на прочтение9 мин
Охват и читатели19K
Мы продолжаем серию интервью с докладчиками конференции DUMP.

Хайп вокруг чат-ботов не стихает. Почему про них все говорят? Сложно ли их программировать? Как на них заработать? Есть ли шанс, что чат-боты заменят мобильные приложения? А людей? На наши вопросы ответили основатель проекта ConfBot Алексей Могильников и технический директор JetStyle, на счету которых десяток разработанных чат-ботов, Алексей Спиридонов.


Читать дальше →

Intel Media SDK стал open source проектом

Время на прочтение1 мин
Охват и читатели9.9K
imageВ блоге Intel мы уже неоднократно рассказывали о Intel Media SDK — полезном наборе библиотек для аппаратно-ускоренного кодирования, декодирования и обработки видео данных. Сейчас, можно сказать, SDK стал для кого-то еще полезнее, ведь исходный код его базовой части открыли под лицензией MIT и выложили на GitHub. Пользуясь случаем, приведем краткое описание этого продукта.
Читать дальше →

Ближайшие события

Программисты жизни

Время на прочтение3 мин
Охват и читатели12K

Скетч-шоу «Нереальная история»

С самого нашего первого крика при рождении и до последнего вздоха в конце жизни нас программируют. Родители, друзья, учителя и даже врачи. Нас окружают правила и законы, алгоритмы и различные руководства. Я хочу выделить один комментарий к моей последней публикации от пользователя Zoomerman:
Программист — человек, создающий программы.
Программист выстраивает цепочку событий, используя доступное множество ресурсов.
Программы бывают компьютерные, музыкальные, поведенческие, обучающие и т.д.
Программа начинает создаваться в тот момент, когда человек определяет начальную и конечную точки процесса.
И если менеджер говорит «у меня есть товар, хочу его поменять на деньги» — он превращается в программиста и строит алгоритм этого процесса.
Для меня программист — это не каста и не профессия. Программист — это состояние ума.
Читать дальше →

Мета-инструмент разработки: FutoIn CID

Время на прочтение8 мин
Охват и читатели4.2K

use cases


Сейчас мало кого удивишь инструментами управления зависимостями проекта вроде npm, composer, bundler, pip, maven, cargo и других. Их общий недостаток — невозможность управлять непосредственно средой выполнения. Такая задача решается через nvm, php-build, rvm, virtualenv, sdkman, rustup и прочие глобальные "манагеры" версий runtime, обычно написанные под Bash/Zsh.


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


Далее разброд и шатание настегает Continuous Integration & Delivery, где ручные танцы с бубном установки инструментов и активирования конкретных версий совершенно не приветствуются, а в идеале требуется в принципе максимально абстрагироваться от используемых технологий и довести процесс до примитивных нейтральных команд: подготовить к релизу, затегить, скачать, подготовить, построить, упаковать, выложить, проверить, одобрить(подписать), выкатить.


Тут сам собой напрашивается инструмент, унифицировано работающий поверх уже существующих технологий,
который из себя и представляет FutoIn CID — FutoIn Continuous Integration & Delivery tool.

Читать дальше →

Дайджест AI Cup. Пять стратегий Code Wizards 2016

Время на прочтение18 мин
Охват и читатели12K

image


В декабре завершился Russian AI Cup 2016 — организованный нами ежегодный чемпионат по программированию искусственного интеллекта. Чемпионат для наглядности, понятности и простоты проводится в игровом формате.


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

Жизнь без SDL. Зима 2017

Время на прочтение8 мин
Охват и читатели6.4K


Введение, дисклеймер или зачем эта статья


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

Первая попытка формирования проблемы была представлена на финальном этапе M*CTF в Конгресс-центре МТУСИ. В день лекций был представлен к вниманию доклад «Жизнь без SDL. Осень-2016», затрагивающий подробный разбор DOM XSS на WIX.COM и Cryptsetup Initrd root Shell в современных дистрибутивах. Последний случай мы рассмотрели на недавнем вебинаре.

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

Библиотека Google Benchmark

Время на прочтение5 мин
Охват и читатели25K


Не так давно я писал о C++ библиотеках для микробенчмаркинга. Я рассказал о трех библиотеках: Nonius, Hayai и Celero. Но в действительности я хотел поговорить о четвертой. Мой Windows тогда не поддерживал Google Benchmark library, так что я не мог ее протестировать. К счастью, из комментариев к прошлому посту я узнал, что теперь библиотека доступна в Visual Studio!

Давайте посмотрим, как можно ее использовать.
Читать дальше →

Скоро лето — пора подавать заявки в летнюю школу (интернатуру) Intel

Время на прочтение2 мин
Охват и читатели7.3K


Как повелось издавна, в начале апреля мы приглашаем вас принять участие в традиционной летней школе программистов Intel 0х7E1, которая состоится в июле-августе 2017 года. Вы молоды, занимаетесь программированием и интересуетесь такими темами, как оптимизация производительности, обработка видео и графики, машинное зрение? Вас привлекает возможность поработать в компании крутых профессионалов? Вам хочется решать интересные живые задачи и видеть результат своего труда? А, может, вам просто нечем заняться этим летом? Тогда вам однозначно под кат.
Читать дальше →

Практический опыт использования настоящего HotSwap

Время на прочтение2 мин
Охват и читатели31K
Когда мы программируем, отлаживаем код, ищем пресловутый «баг», зачастую возникает ситуация, когда приходится перезапускать сервер приложений, чтобы увидеть наши изменения. Это приводит к тому, что нам приходится выходить из «потока», разрушать наш хрупкий песочный замок нейронных связей. Отвлекаться от текущей задачи и ждать-ждать-ждать, когда на сервере приложений будут доступны наши изменения. Порой это так утомительно… Как было бы здорово, сделать «горячую» замену измененных классов и сразу увидеть результат.

image
Читать дальше →

Вклад авторов