Теги ‘python’

Язык программирования Python / Офисный муз.проигрыватель с элементами демократии своими руками

Нет комментариев »

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

Признаюсь, это крайне не удобно, изначально это выливалось в фразы по офису, типа: «Поставь, пожалуйста, эту песенку!», «Убавь громкость», «Выключи ..» и т.д. Поэтому для локальных нужд написали небольшой плагин к музыкальному плееру который позволяет всем управлять музыкой со своих компов. Решил выложить, потому как наверняка найдутся люди которым он понадобится.





В качестве музыкального плейера выбран AIMP, к нему был написан плугин на Delphi, задача которого управлять плейером, получая команды по простейшему протоколу. Сам клиент написан на Python (и работал на win32-2.5), фактически он эмулирует окошка любимого в детстве Winamp, да по дизайну там беда, можете мне об этом не напоминать.

Что я могу сказать — удобно. Уже пользуемся больше года нареканий и скандалов из-за музыки не возникает.



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



Итак, что надо для установки:



на клиента:



После распаковки, нужно изменить файлы stg.py где прописан ip-адрес хоста с AIMPом, и порт соединения.


Язык программирования Python / Простой скрипт для рассылки СМС

Нет комментариев »

Я продолжаю изучать Питон. Язык красивый, меня радует что когда мой коллега — непрограммист, садится за мой код он его может прочитать и понять. Встала задача сделать СМС оповещение клиентов (ну о просрочке, новых услугах итд). Мы купили GSM модем Teleofis. Для работы с ним пошукали проги, не особо нашли, а уж бесплатного и тем более. Пришлось открыть мануалы и написать простенькую прогу под Винду, которая открывает COM порт, на котором сидит модем и пишет в него AT команды.



Сам скрипт требует pySerial для работы под виндоус.



Чтобы запустить скрипт, надо воткнуть в комп модем, установить дрова, открыть файлик sms_sender.py и отредактировать там строку 90:


a = Sender(('79086470807',),u"Признанный критикой всего мира величайшим эпическим произведением новой европейской литературы, «Война и мир» поражает уже с чисто технической точки зрения размерами своего беллетристического полотна. Только в живописи можно найти некоторую параллель в огромных картинах Паоло Веронезе в венецианском Дворце дожей, где тоже сотни лиц выписаны с удивительною отчётливостью и индивидуальным выражением[источник не указан 91 день].",1,115200,2)



* This source code was highlighted with Source Code Highlighter.



Первый параметр — кортеж адресатов, второй — текст сообщения. Третий — номер порта. Остальные нам не нужны — это скорость и таймаут ожидания ответа.

А потом сделать из Командной строки вызов команды

python sms_sender.py



Вы увидите:

more PDU to go…

more PDU to go…





Это скрипт рассылает части вашего сообщения адресатам. Вот и все.

Сам скрипт доступен по ссылке. Ограничений на его использование никаких, он сильно простой и маленький чтобы как-то ограничивать его использование.


Язык программирования Python / Сравнение эффективности способов запуска веб-приложений на языке Python

Нет комментариев »

Последнее время в области веб-разработок стал набирать популярность язык программирования Python. Однако, массовому распространение Python мешает проблема эффективного запуска приложений на этом языке. Пока, в большинстве случаев, это удел выделенных или виртуальных серверов. Модульные языки в отличии от монолитного в базовой функциональности php на каждый запрос подгружают как минимум runtime-библиотеку, а как максимум — ещё несколько десятков запрашиваемых пользователем модулей. Поэтому классический подход наподобие mod_php для Python и Perl не очень уместен, а держать приложение постоянно в памяти было дороговато. Но время движется, техника стала мощнее и дешевле, и уже достаточно давно можно спокойно говорить о постоянно запущенных процессах с приложением в рамках массового хостинга.


О чём тут



Время от времени, в сети появляются различные предложения как запустить приложение на Python. Например, недавно хостинг Джино уникально поправил mod_python и предложил хостинг именно с его помощью. Следом за ним, некий хостинг Locum вообще отринул mod_python с его безопасностью (создаётся впечатление, что суть самобытная безопасность — это единственная проблема АйТи на пути к нирване) и провёл победоносное тестирование modwsgi против fastcgi. Комьюнити же, судя по проведённому мною поиску, разрывается между mod_python и FastCGI. Причём, FastCGI обычно имеется ввиду тот, что идёт в поставке Django — flup. Являясь популярным хостингом Python-приложений хостингом Python-приложений, мы не смогли пройти мимо и решили внести свою лепту в эту священную войну.


Язык программирования Python / Boo — питонообразный .NET язык

Нет комментариев »

Приветствую уважаемые Хабрапользователи, хочется мне рассказать Вам об “ещё одном языке программирования” носящим названием Boo. Язык этот к удивлению малоизвестный, но при этом является очень мощным и удобным, и что самое главное, показывает прекрасный пример заимствования хороших идей в новом и интересном контексте, а именно реализацию синтаксически очень близкого к Python языка в качестве компонента .NET инфраструктуры.


Язык программирования Python / Использование метаклассов в Python

Нет комментариев »

Некоторые средства метапрограммирования не так часто используются в ежедневной

работе, как обычные в ООП классы или те же декораторы. Для понимания же целей

введения подобных средств в язык требуются конкретные примеры промышленного

применения, некоторые из которых и приведены ниже.



Язык программирования Python / Сортировка миллиона 32-битных int’ов в 2 мегабайтах памяти на Питоне

Нет комментариев »

Мой перевод статьи Гвидо ван Россума:



Меня тут в шутку спросили: смогу ли я отсортировать миллион 32-битных int’ов в 2 мегабайтах памяти на Питоне. Во время размышления, мне пришло в голову задействовать механизм ввода-вывода с использованием буферной памяти.



Вообще, это именно шуточный вопрос — одни только данные займут 4 мегабайта, при условии бинарного представления! Правда, можно пойти на хитрость — взять файл, содержащий миллион 32-битных int’ов. Как же отсортировать их, используя минимальное количество памяти? Это должна быть какая-то разновидность сортировки слиянием, в которой небольшие куски данных сортируются и записываются во временный файл, после чего происходит слияние временных файлов для получения окончательного результата.



Вот мое решение:


Web-разработка / Проект Gestalt – пишите на Ruby, Python и XAML прямо в HTML на стороне клиента

Нет комментариев »

imageGestalt – это open source фреймворк, который позволит вам включить в обыкновенный html-код страницы коды на Ruby или Pyhton и даже XAML-разметку. И все это будет работать на стороне клиента! Если вы хотите написать клиентский код подобный следующему,

<script language=«python»> или <script language=«ruby»>

то Gestalt сделан специально для вас. Быстрый старт и простейшую демонстрацию можно посмотреть по адресу http://www.visitmix.com/labs/gestalt/getstarted/.



* внимание, исполняющая среда запускается не мгновенно, при самой первой загрузке стоит подождать пару секунд и все заработает



Язык программирования Python / Заметки о метапрограммировании в Python

Нет комментариев »

По мере накопления опыта программирования на одном языке, все мы нарабатываем стандартные для себя приемы программирования. Чем выше наш опыт, тем больше количество, более разносторонни методы их работы. При переходе на другой язык, мы стараемся их воспроизвести. Иногда, такое бывает что часть из них неактуальна или неэффективна. Большую часть времени от изучения языка отнимают новые несвойственные прежним нам, приемы. Я хотел бы отметить некоторые особенности Python, которые для меня были не очевидны поначалу освоения.


Язык программирования Python / Пишем апплет для GNOME на Python

Нет комментариев »

Публикую данный пост по просьбе уважаемого VladX , у которого возникло временное недопонимание с кармой.



Апплет — это маленькое приложение, встраиваемое непосредственно в панель GNOME. Обычно апплет выполняет какой-то опеределенный узкий функционал (изменение громкости, монтирование устройств), что выгодно отличает его от громоздкого оконного приложения. На самом деле знающему Python кодеру не составит труда написать собственный апплет, но и для незнающих есть выход: большое количество полезных (и не очень) апплетов лежит на сайте gnomefiles.org, помимо этого, на официальном сайте есть примеры написания апплетов на C.


Язык программирования Python / Реализация небольшого асинхронного сервера

Нет комментариев »

Целью публикации данного топика является представление аудитории Хабрахабра кода небольшого асинхронного сервера, написанного на Питоне с использованием практически «голых» сокетов.



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