Некоторое время назад с коллегой обсуждали вопрос профилирования программ на Python. Он сказал, что использует gprof2dot для пост‑обработки данных cProfile, в ответ я высказал мысль, о том, что было бы хорошо использовать более современные средства профилирования. И задумался, а можно ли какие‑то из существующих инструментов приспособить для работы с данными в формате pstat
, но которые более удобные и дают больше возможностей для анализа.
User
Как реализовать быструю реентерабельную блокировку на Python и почему она работает
В стандартной библиотеке языка Python имеется базовый примитив синхронизации — реентерабельная блокировка. Она позволяет одному и тому же потоку, несколько раз захватить блокировку. Стандартная реализация может использовать для блокировки мьютекс или семафор, и их захват всегда приводит к вызову функции из ядра ОС, в зависимости от ОС и/или нижележащей системной библиотеки, может быть небыстрой операцией.
Используя GIL (Global Interpreter Lock — Глобальная блокировка интерпретатора) и особенности реализации Threading.Lock.release можно создать более быстрый вариант.
Qt-шные прокси-модели и их друзья
Разрабатывая приложения на Qt или PyQt/PySide2 вы рано или поздно столкнетесь с необходимостью создания собственной реализации QAbstractItemModel и/или QAbstractProxyModel. Я хочу рассказать про одну конкретную проблему, с которой я столкнулся, разрабатывая прокси-модель с возможностью группировки объектов дерева.
Как сократить трудозатраты на ведение трудозатрат: расширяем функциональность ManicTime
Учет трудозатрат, на мой взгляд, тема такая же многогранная, как и деликатная. В зависимости от вашей позиции или, как это сейчас принято говорить, роли, к ней можно относиться по-разному. Если кратко, то я – за учет трудозатрат. И, тем более, за автоматизированный учет. Далее попробую объяснить, почему я так считаю и каким инструментом для этого пользовался более 7 лет.
Почему snowkit
Если вы еще не читали анонс snowkit — я бы советовал вам прочитать сначала его (перевод).
Честолюбивые замыслы
Да, это реальная причина создания snowkit и библиотек. Я верю в то, что Haxe обладает прекрасным потенциалом, который уже сейчас проявляется в поразительном росте популярности, прекрасном качестве, библиотеках, инструментах, фреймворках, играх и сообществе. Haxe Foundation продолжает двигаться в правильном направлении, прикладывает огромные усилия для того, чтобы сделать компилятор и поддержку платформ лучше и лучше, занимается улучшением сайта и документации. Этим занимаются прекрасные люди и вы может к ним присоединиться и помочь.
snowkit является продолжением работы в этом направлении и, я надеюсь, станет примером высококачественной, поддерживаемой сообществом инфраструктуры для Haxe, которой мы и новые участники сообщества будут пользоваться в будущем. Создавая snowkit я хочу показать Haxe во всей его красе.
Анонс snowkit
Самой главной библиотекой является игровой движок luxe, который позволяет создавать игры, используя один и тот же код для Mac, Windows, Linux, Android, iOS и WebGL.
На мой взгляд, Haxe — это мощный инструмент, который играет важную роль в кроссплатформенной разработке. Я хочу приложить свои усилия к развитию инфраструктуры Haxe лучшим способом который знаю — делай, а не говори.
Создание нативной библиотеки расширений для OpenFL, часть третья
Предисловие
Это перевод заключительной, третьей части цикла статей о создании нативных библиотек расширения для OpenFL. Во второй части рассказавалось как создать библиотеку расширений для iOS. В данной части, будет рассказано о создании библиотеки расширений для платформы Android, на языке Java и, как будет видно далее, для Android сделать это несколько проще, чем для iOS.
Java, Haxe и все, все, все!
Для своей следующей игры, я придумал показывать справку в виде встроенной HTML страницы и нашел следующий проект: NMEWebview. Этот проект хорошо демонстрирует, как мы можем использовать код на Java в нашем приложении на haxe.
Пришло время проверить взаимодействие с кодом на Java.
Создание нативной библиотеки расширений для OpenFL, часть вторая
Предисловие
Это продолжение перевода серии статей о создании расширений для OpenFL от Laurent Bédubourg. В первой части мы создали простое расширение и скомпилировали его для нативных платформ (Linux/Windows, Android, iOS). В этой части мы добавим в наше приложение на iOS возможность отправлять твиты.
Что мы узнаем:
- как структурировать исходный код нашего расширения для различных платформ
- как связать код на haxe и функции из нашего расширения
- как линковаться с iOS фреймворками (с фреймворком Twitter, в частности)
Создание нативной библиотеки расширений для OpenFL (Haxe)
Предисловие
Если вы задумались о создании мобильных приложений, но не знаете с чего начать, у вас есть достаточно времени на эксперименты и изучение нового, то позвольте порекомендовать вам в качестве инструмента выбрать язык программирования 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