Search
Write a publication
Pull to refresh
15
0
Алексей Розман @alexyr

Python developer

Send message

Написание программы для простейшей синхронизации файлов по FTP для Android с помощью SL4A + Python

Reading time7 min
Views26K

Введение


В данной статье рассматривается процесс написания программ при помощи SL4A на примере программы для синхронизации файлов по протоколу FTP на языке Python в операционной системе Ubuntu. Показаны настройка операционной системы для разработки SL4A-приложений, написание самого приложения, распространение приложения с помощью баркодов и упаковка приложения в .apk-файл.

Немного слов о том, что такое SL4A и с чем его едят


Проект SL4A (Scripting Layer for Android), появившийся на свет благодаря Деймону Кохлеру (Damon Kohler) и предоставляемыми Google'ом 20% свободного рабочего времени, дает возможность программировать под платформу Android на различных интерпретируемых языках программирования (на данный момент это Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl и Shell).
На хабре уже писалось про SL4A. Например, здесь рассказывалось о том, как написать приложение на Python для проверки кармы на хабре, а здесь с помощью Lua создавался скрипт, отключающий коммуникации телефона на ночь.

SL4A хорошо подходит для обучения программированию, для написания прототипов программ, для решения задач автоматизации действий на платформе Android. Большие серьёзные программы на SL4A не пишутся, но для создания мини-программ он подходит хорошо. Проверить карму на хабре, отправить смс жене, чтобы попросить начать разогревать ужин за пару километров до дома; разбудить в электричке при приближении к нужной станции или даже управлять настоящей ракетой — все это может быть реализовано при помощи SL4A c минимальным количеством кода и затраченного времени.
Читать дальше →

Работаем с COM-портом из Java при помощи jSSC

Reading time4 min
Views81K
Уж много воды утекло с тех пор, как мы пользовались мышами на com-у, модемами, играли «по нему» в игры за неимением сети, перекидывали файлики и …, чего только мы с ним не делали.

Всё, на дворе 21 век, USB 3.0 подмял по себя всё и вся, com-ы вымерли и теперь «новорожденные» программисты смотрят на этот разъём с недоумением и укоризной. Но, умерли не все, кое-кто всё-таки остался… Эти бравые парни шлют байты по трём проводам и с со снисходительной улыбкой смотрят на «новорожденных». И о том, чем эти парни пользуются выполняя свою работу я и хочу поведать в этой небольшой статье. Речь в ней пойдёт о маленькой библиотечке по имени jSSC.
Читать дальше →

Список ресурсов для изучения Ассемблера

Reading time4 min
Views444K
Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

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

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Читать дальше →

Есть ли польза от кастомных ядер

Reading time4 min
Views43K
Многие слышали о различных оптимизированных и улучшенных ядрах, это — Zen Kernel и pf-kernel из известных мне. Кроме того, что они добавляют новые возможности (TuxOnIce, поддержка aufs), они могут улучшить производительность, благодаря улучшенному менеджеру задач (BFS) и планировщику (BFQ). В этом топике я хочу сравнить производительность pf-kernel со стандартными ядрами в Ubuntu и Arch Linux, а также описать процесс сборки и установки pf-kernel для Ubuntu. Тестировать Zen Kernel я не вижу особого смысла, т.к. во-первых, проект выглядит заброшенным, а во-вторых, набор патчей и там и там очень похожий.
Читать дальше →

На Box.net раздают по 50GB всем скачавшим приложение для iPhone/iPad

Reading time1 min
Views3.2K
Со вчерашнего дня на Box.net действует акция: для всех установивших приложение для iPhone/iPad размер хранилища увеличивается до 50 ГБ. Акция действует 50 дней, размер хранилища остается с вами навсегда. Ссылка на приложение Box.net.

На мой взгляд, Box.net пока уступает Dropbox'у из-за отсутствия бесплатного приложения для синхронизации файлов на ПК с облаком.

Микроэлектроника – мотивации псто

Reading time8 min
Views50K
image

Дисклаймер


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

ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery

Reading time5 min
Views396K
При изучении image любого незнакомого дела, особенно когда речь идет о микроконтроллерах, возникает вопрос — «С чего начать». Ведутся поиски статей по ключевым словам «Getting Started», неизбежно появляется дилема выбора среды разработки и программатора-отладчика. Чтобы помочь вам определиться с ответами на возникшие вопросы, я поделюсь своим опытом в освоении 32-битных контроллеров семейства STM32F от ST Microelectronics.

Выбор контроллера


Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.
Читать дальше →

Скрипт резервного копирования через rsync

Reading time3 min
Views28K
Возникла необходимость как-то и куда-то бэкапится. Причём чтобы процессоры не грузились и место не занималось, а бэкапы ротэйтились и удобно доставались. Раньше всегда пользовался fsbackup, но захотелось отказаться от архивирования. Для решения задачи была использована rsync и механизм жёстких ссылок (так называемых хардлинков) файловой системы.

Архитектура: есть отдельно стоящий сервер с большим винтом — на нём и работает скрипт. Есть много разных серверов с доступом по ssh, на которых в ~/.ssh/authorized_keys добавлен публичный ключ пользователя, под которым работает скрипт резервного копирования.
Читать дальше →

Командная строка на службе фотографа-линуксоида

Reading time4 min
Views4.6K
Здравствуйте, хабралюди!

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

Для Линукса, которым я пользуюсь практически 100% времени, есть много различных графических инструментов для работы с фото. Но иногда бывает, что нужной функции в используемой программе — нету.
Или она есть, но ты не смог её найти. Что же делать? Конечно же, использовать bash.

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

Пишем живые обои с часами

Reading time4 min
Views25K
ClockНедавно я решил разобраться, как делать живые обои для андроида, а разбираться лучше всего на хорошем примере — таком, который потом пригодится. Я всегда хотел удобные часы. Для андроида уже существует достаточное количество подобных обоев, но обычно они рисуют большие часы в каком-нибудь фиксированном углу экрана и перекрываются виджетами, которых у меня немало. Мне хотелось, чтобы часы были разбросаны по всему экрану, тогда вероятность увидеть их будет выше.
Как сделать такое читайте дальше

Перенос системы LINUX на другой винчестер с переразбивкой разделов

Reading time5 min
Views73K
Когда-то давным давно в далекой-далекой галактике мне понадобилось перенести мою систему linux с одного винчестера на другой, а пользоваться проприетарщиной ужас, как не хотелось. Погуглив и поискав с помощью других поисковиков я нашел для себя решение, которое линукс-админу может показаться смешным, а меня оно тогда здорово выручило.

В общем — вот оно. Бейте ногами, режьте на части. Встречайте!

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

Установка Ubuntu Desktop на LVM

Reading time6 min
Views39K
Классические разделы, на которые чаще всего разбивается жёсткий диск для установки системы и хранения данных, имею ряд существенных недостатков. Их размер очень сложно изменять, они находятся в строгой последовательности и просто взять кусочек от первого раздела и добавить к последнему не получится, если между ними есть ещё разделы. Поэтому очень часто при начальном разбиении винчестера пользователи ломают себе голову — сколько места выделить под тот или иной раздел. И почти всегда в процессе использования системы приходят к выводу, что они сделали не правильный выбор.

К счастью, решить большинство этих проблем в Linux может технология LVM. Она создаёт дополнительную абстракцию — логические тома, которые видны в системе, как обычные разделы, однако реально ими не являются. Эта технология очень полезна для серверов, однако и на домашних компьютерах она приходится очень к месту. Я больше не думаю, какого размера диск выделить под систему, чтобы какой-нибудь texlive не забил бы всё место, но и чтобы лишние 5 — 10 гигабайт не пропадали просто так. LVM имеет ряд существенных преимуществ, значительно упрощающих жизнь:
  • Логические тома LVM больше не привязаны к физическому местоположению. В рамках LVM вообще не существует такого понятия, как порядок логических томов.
  • Размер логических томов можно увеличивать прямо на лету, а у отмонтированных томов можно кроме того легко уменьшать размер, не выходя из системы.
  • При необходимости можно размазать логические тома по нескольким физическим жёстким дискам, таким образом увеличив доступное место. При этом система всё так же будет видеть только один логический том, хотя размер его будет превышать доступные размеры жёстких дисков. Можно провести и обратную операцию, удалив жёсткий диск из LVM, таким образом освободив его для другого использования.
  • LVM поддерживает механизм снапшотов — мгновенных копий файловой системы тома. Это может очень пригодиться для создания бекапов.
  • Есть ещё масса плюсов, о которых можно почитать в специализированных статьях про LVM.
Читать дальше →

Большая коллекция игр Ubuntu GamePack 11.04

Reading time5 min
Views12K
Представлена самая большая коллекция игр — Ubuntu GamePack 11.04

Комплект состоит из 6-и дисков (5-ть DVD дисков включают 156 самых популярных игр различного жанра. В качестве 6-го диска — Ubuntu Desktop 11.04).
Теперь нет необходимости исследовать интернет в поисках игр, а найдя игру задаваться вопросом как ее установить в Ubuntu Linux.

На дисках присутствуют краткие описания игр и иллюстрации фрагментов игр, а сама установка любой понравившейся игры — займет не более двух кликов мышкой.

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

Данные диски не являются модификацией Ubuntu Linux. Они содержат только игры, поэтому требуют предустановленную систему Ubuntu Desktop Linux 11.04 (или основанную на ней, такую как LinuxMint, SuperOS и д.р.).

Подробнее: ualinux.com/ubuntu-gamepack
Загрузить: ualinux.com/download
смотреть список игр

Установка Ubuntu на реальный жёсткий диск через VirtualBox

Reading time3 min
Views50K
По каким-то причинам может получиться так, что нужно установить Ubuntu на компьютер, на котором установлен Windows (в данном случае это был Windows Server 2003). Почему речь именно о Windows? Под Линуксом есть и другие способы решения, есть debootstrap и chroot, а на Windows возможных вариантов для такого манёвра остаётся меньше.

Но обычный метод установки (загрузиться с LiveCD/LiveUSB, произвести установку, настроить всё, перезагрузиться снова) не всегда подходит. Почему не всегда? Потому что может быть так, что доступ к компьютеру только удалённый (в данном случае это был RDP-сервер в Windows), а физический доступ только через другого человека, и редкий (раз в сутки). Да и потом сколько бы от него потребовалось действий, если делать обычным способом — вставить флэшку/диск, загрузиться, подождать, пока предложат попробовать использовать дистрибутив, выбрать этот вариант, потом настроить удалённый доступ (в Убунте даже SSH-сервер по умолчанию не установлен — никогда, кстати, не понимал почему, но факт), и только после этого идти по своим делам. А так единственное, что потребовалось от человека — это поменять порядок загрузки с жёстких дисков в BIOS.

Кстати, теоретически, можно попробовать обойтись даже без этого, если распаковать на диск C:\ в Windows grldr из пакета grub4dos, создать там же menu.lst (где с помощью chainloader загрузиться с другого жёсткого диска), и добавить в C:\Boot.ini пункт «C:\grldr=«GRUB»», после чего выбрать этот пункт по умолчанию. Тогда достаточно просто перезагрузить компьютер, и он перезагрузится в Ubuntu, где на тот момент уже будет SSH. Только нужно не забыть добавить параметр timeout в конфигурационный файл menu.lst — иначе загрузка не будет совершена автоматически (GRUB будет ждать, пока кто-нибудь нажмёт Enter).

Помимо удалённой установки есть ещё одно важное применение этого метода — представьте, что вам нужно сократить время, которое сервер не будет функционировать с точки зрения пользователя, к минимуму. И вы можете это сделать. От того, что вы ставите Ubuntu в виртуальной машине, работа сервера не нарушится, и вы сможете, перезагрузив виртуальную машину после установки, произвести все необходимые изменения, включая создание пользователей, установку и настройку SSH, возможно веб-сервера, почтового сервера, FTP и всего остального, что может понадобиться. А потом вы просто перезагружаете компьютер. И всё то, что работало на Windows, теперь работает на Ubuntu: полторы минуты, которые компьютер будет перезагружаться, совсем не так заметны, как несколько часов, в течение которых вы бы это всё постепенно настраивали и включали.

А теперь о самой установке

Фикс падения производительности при копировании/закачке файлов в Ubuntu

Reading time4 min
Views20K
Уже не помню, когда начились проблемы с производительностью при копировании файлов, но тогда я этому не придал большого значения так, как копировал файлы редко. Относительно недавно в моем распоряжении появилось высокоскоростное подключение к сети Интернет и теперь я часто копирую/качаю большие файлы и проблема падения производительности для меня стала очень актуальной.

Поверхностный гуглеж не дал результатов и я начал копать глубже, оказалось, что проблемы высокой нагрузки CPU есть у многих убунтоводов, если не у всех, а решение данной проблемы быстрым поиском не находится, поэтому я решил написать небольшой how-to по устранению высокой нагрузки на процессор при копировании файлов.
Читать дальше →

Выключение монитора горячей клавишей

Reading time3 min
Views19K


Жаль, что возможность обычным способом выключать монитор горячей клавишей сломалась в одной из предыдуших версиях Убунту. Простенький симпатичный скрипт может вернуть этот нужный функционал (предположительно обладателям ноутбуков) за несколько несложных телодвижений.
Читать дальше →

Парсим RSS LostFilm'a с помощью grep и передаем на закачку через wget

Reading time4 min
Views21K
RSS
Однажды мне надоело вручную просматривать LostFilm на наличие новых вышедших серий и я решил автоматизировать этот процесс. Дело в том, что многие BitTorrent клиенты имеют в своих настройках так называемые папки слежения (wach directory). Как только в этой папке появляется новый torrent файл BitTorrent клиент сразу же начинает его загрузку. Обычной практикой, к примеру, является создание такой папки и открытие к ней доступа на запись по FTP. Теперь, все что нам требуется, это автоматизировать скачивание torrent файла по выходу нового эпизода в указанную папку для их дальнейшей автоматической загрузки. Как сделать именно это я сейчас и покажу.
Читать дальше →

Кукушка на bash своими руками

Reading time4 min
Views25K
Привет, %username%.

Для организации моей работы удобно видеть или слышать уведомления о том, что прошел час, полчаса и т.д. Это нужно мне для ориентации во временном пространстве и правильного планирования своей работы.
Поскольку у меня стоит Ubuntu, то и статья будет про то, как сделать такие уведомления стандартными средствами Ubuntu.

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

Основы работы с Wine для начинающих

Reading time7 min
Views628K

Введение


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

Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.

Заблуждение заключается в том что люди думают что у них получиться запустить из
под Wine различный софт, к которому они привыкли и им удобно в нем работать.
Как не крути просто так ничего не бывает. Чтобы заработал наш любимый софт под
Wine нужно попотеть, перечитать кучу руководств и взвесить этот объём
информация. Конечно не совсем софтом придется «пыжиться», но готовым надо быть ко всему. Проект Wine развивается очень быстро, но до стабильной работы ему
очень далеко. Но думаю что в скором будущем весь основной софт, а также игры
будут работать на нем стабильно.

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

Учим bash-скрипты, пишем Sokoban

Reading time4 min
Views139K
Мне кажется, что на свете еще есть люди, которые хорошо знают несколько языков программирования, но при этом не пишут скриптов для bash, потому что скриптовый язык bash выглядит для них слишком странным. Чтобы доказать, что bash — это несложно, я написала игру Сокобан (или Грузчик, кому как нравится), и хочу рассказать, как она работает.
Краткая справка по bash, скриншот игры, исходный код и ссылка на файл - под катом
12 ...
10

Information

Rating
Does not participate
Location
Иерусалим, Иерусалим, Израиль
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
Senior
Python
C#
Docker
Git
Linux