Pull to refresh
23
11.4
Sergey Miryanov @zzzzzzerg

User

Send message

Что не так с cProfile в Python

Level of difficultyMedium
Reading time7 min
Views2K

Некоторое время назад с коллегой обсуждали вопрос профилирования программ на Python. Он сказал, что использует gprof2dot для пост‑обработки данных cProfile, в ответ я высказал мысль, о том, что было бы хорошо использовать более современные средства профилирования. И задумался, а можно ли какие‑то из существующих инструментов приспособить для работы с данными в формате pstat, но которые более удобные и дают больше возможностей для анализа.

Читать далее

Как реализовать быструю реентерабельную блокировку на Python и почему она работает

Level of difficultyHard
Reading time10 min
Views4.8K

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

Используя GIL (Global Interpreter Lock — Глобальная блокировка интерпретатора) и особенности реализации Threading.Lock.release можно создать более быстрый вариант.

Давайте попробуем разобраться

Qt-шные прокси-модели и их друзья

Level of difficultyHard
Reading time4 min
Views1.4K

Разрабатывая приложения на Qt или PyQt/PySide2 вы рано или поздно столкнетесь с необходимостью создания собственной реализации QAbstractItemModel и/или QAbstractProxyModel. Я хочу рассказать про одну конкретную проблему, с которой я столкнулся, разрабатывая прокси-модель с возможностью группировки объектов дерева.

Читать далее

Как сократить трудозатраты на ведение трудозатрат: расширяем функциональность ManicTime

Reading time13 min
Views2.6K

Учет трудозатрат, на мой взгляд, тема такая же многогранная, как и деликатная. В зависимости от вашей позиции или, как это сейчас принято говорить, роли, к ней можно относиться по-разному. Если кратко, то я – за учет трудозатрат. И, тем более, за автоматизированный учет. Далее попробую объяснить, почему я так считаю и каким инструментом для этого пользовался более 7 лет.

Читать далее

Почему snowkit

Reading time4 min
Views4.7K
Сейчас я хочу кратко рассказать почему и как появился коллектив snowkit и соответствующие библиотеки.
Если вы еще не читали анонс snowkit — я бы советовал вам прочитать сначала его (перевод).

Честолюбивые замыслы


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

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

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

Анонс snowkit

Reading time4 min
Views7.5K
Прошедшие полтора года или около того свое свободное время я провел собирая набор библиотек для Haxe и сообщества вокруг него.
Самой главной библиотекой является игровой движок luxe, который позволяет создавать игры, используя один и тот же код для Mac, Windows, Linux, Android, iOS и WebGL.

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

image

Дальше - больше!

Создание нативной библиотеки расширений для OpenFL, часть третья

Reading time3 min
Views3K

Предисловие


Это перевод заключительной, третьей части цикла статей о создании нативных библиотек расширения для OpenFL. Во второй части рассказавалось как создать библиотеку расширений для iOS. В данной части, будет рассказано о создании библиотеки расширений для платформы Android, на языке Java и, как будет видно далее, для Android сделать это несколько проще, чем для iOS.

Java, Haxe и все, все, все!


Для своей следующей игры, я придумал показывать справку в виде встроенной HTML страницы и нашел следующий проект: NMEWebview. Этот проект хорошо демонстрирует, как мы можем использовать код на Java в нашем приложении на haxe.

Пришло время проверить взаимодействие с кодом на Java.
Читать дальше →

Создание нативной библиотеки расширений для OpenFL, часть вторая

Reading time4 min
Views3.7K

Предисловие


Это продолжение перевода серии статей о создании расширений для OpenFL от Laurent Bédubourg. В первой части мы создали простое расширение и скомпилировали его для нативных платформ (Linux/Windows, Android, iOS). В этой части мы добавим в наше приложение на iOS возможность отправлять твиты.

Что мы узнаем:
  • как структурировать исходный код нашего расширения для различных платформ
  • как связать код на haxe и функции из нашего расширения
  • как линковаться с iOS фреймворками (с фреймворком Twitter, в частности)

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

Создание нативной библиотеки расширений для OpenFL (Haxe)

Reading time3 min
Views6K

Предисловие


Если вы задумались о создании мобильных приложений, но не знаете с чего начать, у вас есть достаточно времени на эксперименты и изучение нового, то позвольте порекомендовать вам в качестве инструмента выбрать язык программирования haxe. Возможно, вы о нем уже слышали и возможно, слышали о нем, как о некоторой замене для Flash'a. Это не совсем так, и можно даже сказать совсем не так.

Да, стандартная библиотека haxe имеет подмножество классов и функций, организационно похожих на стандартную библиотеку actionscript 3. Но это не мешает создавать приложения для нативных платформ, таких как Linux, Windows, Android, Mac, iOS.

При создании приложений для нативных платформ возможностей стандартной библиотеки не хватает и приходится искать сторонние библиотеки или разрабатывать свои. Я пошел по второму пути и для текущего проекта (небольшой игры, похожей на TripleTown по механике) разработал библиотеку для работы с Flurry, Localytics, GooglePlay Game Services и некоторыми другими сервисами.

В представленом ниже переводе, описывается с чего начать, если вы хотите создать библиотеку расширений для haxe и фреймворка OpenFL (бывший NME), в частности. Автор оригинальной статьи Laurent Bédubourg.

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

Information

Rating
525-th
Registered
Activity