Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

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

Время на прочтение7 мин
Количество просмотров26K

Введение


В данной статье рассматривается процесс написания программ при помощи 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 минимальным количеством кода и затраченного времени.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии9

Обратная совместимость в iOS SDK

Время на прочтение5 мин
Количество просмотров5.3K

Apple никогда официально не заявляла о несовместимостях между разными версиями своих OS. И всё же каждый крупный релиз они что-то меняют в ядре операционки — фиксят баги и привносят новые. И иногда именно фикс багов, с которыми все привыкли жить, добавляет новых трудностей – в iOS 3 ты не задумываясь добавлял 20 пикселей там, где iOS 4 добавляет их сама, и в итоге твоя модальная вьюшка уезжает на 20 лишних пикселей вверх.

Но это не самая страшная разновидность несовместимостей – их можно продебажить, пофиксить и выпустить новый билд. Также легко устраняется, например, ставшее уже традиционным изменение стандартного контрола для проигрывания видео – в каждой новой iOS Apple что-то добавляет, модифицирует, причём полностью забивая на старый интерфейс без всяких там deprecated за пару версий до выпиливания – так, например, в iOS 3 он был обычной вьюшкой от UIView, а в iOS 4 стал резко вью-контроллером, а старая MPMoviePlayerView исчезла.

Но это тоже подвластно дебагеру, на форумах можно за 10 секунд найти готовый гибридный код фикса такой, что код будет работать везде.

Но относительно новая iOS 5 принесла ещё больше неожиданностей. Об этом свидетельствует хотя бы тот факт, что в последних релизах популярных айфон-приложений обязательно присутствует строчка “Fixed iOS 5 issues” – средний пользователь айпада находит примерно по 10 апдейтов приложений каждый день. Ниже я расскажу о неочевидной проблеме обратной совместимости iOS 4 и iOS 5, с которой мне пришлось столкнуться на своей шкуре и сполна хлебнуть горя.
Читать дальше →
Всего голосов 56: ↑43 и ↓13+30
Комментарии63

Pocket Lists. Чеклисты для iPhone

Время на прочтение3 мин
Количество просмотров2.9K


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

Однако, попробовав несколько десятков чеклист-приложений из App Store, я понял, что загромождать App Store еще одним приложением-упражнением бессмысленно и глупо. Почти все приложения, которые я пробовал, было мучительно тяжело использовать. Очень много халтуры и нелепых поделок. Такое ощущение, что все они сделаны в качестве упражнения. Стоящие приложения можно пересчитать по пальцам.

Итак, я решил, что не нужно делать небольшое приложение, а нужно поменять приоритеты и выпустить настолько хорошее приложение, насколько смогу. Чтобы когда-нибудь стать App of the Week и побороться за разные награды вплоть до Apple Design Award. Задача поставлена понятно, но ее выполнение — выбор нужного функционала, дизайн, стремление к перфекционизму — оказалось мучительным.

Пусть и не за два месяца, как хотелось изначально, а за десять, так получилось приложение для организации дел Pocket Lists, и я хотел бы представить его хабрасообществу.



Немного о приложении и об опыте разработки...
Всего голосов 50: ↑33 и ↓17+16
Комментарии43

Кроссбраузерный поиск в select list

Время на прочтение2 мин
Количество просмотров32K
Ниже пойдёт речь о методе поиска по выпадающему списку (select).

Для этого требуется поле ввода текста и собственно сам выпадающий список:
<input class="type-search" type="text" />
<select size="10" id="list">
    <option value="val">Text</option>
    ...
    <option value="val*n">Text</option>
</select>

Чтобы результат поиска был нагляднее для пользователя, стоит задать тегу select атрибут size со значением 10.

Добавим к этому немного css:
input, select {
    width: 300px;
    margin: 10px auto;
    display: block;
}

При вводе данных в поле input всё, что не совпадает со строкой поиска, будем скрывать, оставляя в списке только нужные результаты.
Читать дальше →
Всего голосов 46: ↑30 и ↓16+14
Комментарии28

Материалы конференции «ZeroNights» 0x01

Время на прочтение3 мин
Количество просмотров2.4K


Этот пост призван собрать все материалы (приоритетно презентации) конференции «ZeroNights» проходившей 25 ноября в г. Санкт-Петербурге, до их «официальной» публикации на сайте конференции (кому невтерпёж, а может и поможет организаторам). Полезно тем, кто не был, и тем, кто хочет еще раз пересмотреть/перечитать материалы.

— все презентации в upd 2 ---


Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии15

ListView в Android: Кастомизация списков

Время на прочтение15 мин
Количество просмотров218K
Продолжение статьи о ListView в Android, в котором мы рассмотрим более сложные примеры его использования, такие, как иконки на элементах списка и добавление чекбоксов к этим элементам. Так же мы рассмотрим возможности по оптимизации кода.
Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Комментарии16

ListView в Android: Простое использование

Время на прочтение4 мин
Количество просмотров72K
Блуждал в Интернете в поисках достойного мануала. Нашел, по моему мнению, достойный, но, как водится в кругах программирования под Android он, конечно же, на английском. Вот и решил привнести свой вклад в распространение мануалов в этой среде на русском. Буду его изучать и, попутно, переводить сюда.
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии7

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

Время на прочтение6 мин
Количество просмотров12K

Предисловие


Всем привет. Не так давно я написал статью о создании загрузчика изображений на флеше. Там я упомянул, что загрузчик можно реализовать и с помощью html5 File API. Несколько вечеров и — ура — я это сделал. Настало время рассказать, какие приемы я использовал, в каких браузерах это работает, и стоит ли этим вообще пользоваться.
Напомню вкратце требования: необходимо реализовать загрузчик изображений, поддерживающий пакетную загрузку, создание миниатюр(и загрузку их на сервер), и приемлемый интерфейс.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии39

Создаём аппаратный генератор случайных чисел

Время на прочтение12 мин
Количество просмотров59K
Я хочу представить вашему вниманию программно-аппаратный вариант получения случайных чисел. Забегая вперёд, скажу, что данный вариант не единственный, и этот пост открывает мою небольшую серию статей о получении, генерации и изучении случайных чисел, или точнее сказать просто случайностей.



Читать дальше →
Всего голосов 162: ↑159 и ↓3+156
Комментарии104

Алгоритм сортировки Timsort

Время на прочтение6 мин
Количество просмотров153K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы.
Читать дальше →
Всего голосов 292: ↑285 и ↓7+278
Комментарии63

Реалистичные тени при помощи CSS3 без использования изображений

Время на прочтение7 мин
Количество просмотров143K
Привет, Хабр!

Хочу поделиться замечательным мастер-классом по созданию реалистичных теней для блоков на чистом CSS, найденном на просторах рунета по адресу http://mainview.ru/css/realistichnye-teni-pri-pomoshhi-css3-bez-ispolzovaniya-izobrazhenij. Естественно, для того, чтобы примеры работали как надо, необходим браузер с поддержкой CSS3.

image

Читать дальше →
Всего голосов 263: ↑253 и ↓10+243
Комментарии58

31 метод эффективного программирования под Android

Время на прочтение5 мин
Количество просмотров24K
Данная статья является переводом очень хорошего топика с форума Stack Overflow. Так как английский язык не является для меня родным, то какие-либо непонятные мне места я просто пропускал, что бы не разгневать тех, кто его действительно знает. Статья содержит список советов и рекомендаций для начинающих разработчиков под Android.

Читать дальше →
Всего голосов 145: ↑130 и ↓15+115
Комментарии65

Chop Slider 2 — лучший jQuery-слайдер

Время на прочтение5 мин
Количество просмотров54K

Добрый день. Несколько дней назад появилась необходимость использовать слайд-шоу на своём сайте, но оно должно было быть нестандартным, чтоб привлекало внимание пользователей. Искал в течение дня и ничего нормального не мог найти, были более менее подходящие «слайдеры», но душа хотела клубнички. После того как я облазил весь рунет, переключился на «забугорных» друзей и… удача! Забегая наперёд хочу сказать: этот обзор сделан потому, что в рунете нет никакого упоминания про это слайд-шоу, отсюда и логика.
Читать дальше →
Всего голосов 89: ↑68 и ↓21+47
Комментарии49

WebService c поддержкой gzip на C

Время на прочтение5 мин
Количество просмотров5.1K
В посте речь пойдет о моем опыте встраивания XML-RPC интерфейса в утилиту, написанную на C. Интерфейс должен предоставлять доступ к статитстике и результатам работы утилиты. Одно из требований к интерфейсу — поддержка ответов в формате gzip, в целях экономии трафика. Мне очень хотелось обойтись малой кровью и вот что из этого получилось.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии15

Math Rocks! От идеи до результата

Время на прочтение3 мин
Количество просмотров915
В этой статье хочу немного рассказать о своем первом серьезном проекте для Windows Phone 7 под названием Math Rocks!.

image

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

Из главных возможностей приложения хочу отметить:
  • собственно, возможность решения математических задач;
  • отображение графиков;
  • возможность сохранять результаты путем отправки условий задачи и результатов на электронный адрес;
  • поддержка русского и английского языков.

Идея


Те, кто хоть немного следил за моими публикациями (в том числе и на хабре), могли заметить, что о проекте с реализациями математических методах я уже писал. Причем первые публикации были посвящены Windows Forms, WPF и Silverlight версиям программного обеспечения. Не лишнем будет напомнить, что проект лежит в open source уже несколько лет. Поэтому после выхода Windows Phone решение о портировании библиотеки на новую платформу было очевидным.

Читать дальше →
Всего голосов 70: ↑62 и ↓8+54
Комментарии26

Intercepter-NG 0.9

Время на прочтение1 мин
Количество просмотров5.5K
Intercepter-NG: многофункциональный снифер паролей и переписки.

В новой версии сильно переработан интерфейс, максимально автоматизирован процесс проведения сетевых атак и внесено множество изменений в код.

Нововведения:
1. NAT интегрирован в Intercepter.

2. Функция 'Smart Scan', автоматически определяющая:
a. действующий шлюз в сети
b. Stealth IP для MiTM атак
c. операционную систему найденных хостов (по значению TTL)
После сканирования значения шлюза и stealth ip прописываются в соответствующих полях NAT'а.

3. Raw Mode переделан под стиль Wireshark.
Доступна функция «Follow TCP Stream» для анализа отдельно взятой TCP сессии, кроме этого можно отображать только пакеты с данными, скрывая «служебный» tcp трафик.

При отключении спуфинга, любую атаку можно провести в среде WiFi.

Краткий обзор можно посмотреть здесь

Если вдруг что-то не работает, есть мини FAQ на сайте, а так же README в архиве с программой, с описанием функций и возможных проблем. Если решение не найдено, пишем на intercepter.mail@gmail.com или на форум.

http://sniff.su
Всего голосов 71: ↑51 и ↓20+31
Комментарии18

Тултипы на CSS3 и HTML5

Время на прочтение2 мин
Количество просмотров71K
В связи с тем, что на Хабрахабре не нашёл я описания данного простого и в то же время удобного способа создания простых «тултипов» — всплывающих подсказок, я решил о нём написать.
В данном методе не будет использоваться JS, мы довольствуемся лишь CSS3 и HTML5.



Читать дальше →
Всего голосов 111: ↑108 и ↓3+105
Комментарии46

Пишем гаджет Windows Sidebar с нуля

Время на прочтение7 мин
Количество просмотров61K
Недавно мне понадобилось создать гаджет для Windows Sidebar. Навыков в этом у меня не было, поэтому, немного погуглив и почитав документацию, приступаем.

Сразу покажу то, что получилось в итоге


Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии26

Опыт использования GPU для финансового моделирования

Время на прочтение5 мин
Количество просмотров8.2K
В этой статье я вкратце описываю свой опыт оптимизации одной задачи перебора, начиная от однопроцессорного алгоритма к многопроцессорному и к версии на OpenCL.



Читать дальше →
Всего голосов 103: ↑97 и ↓6+91
Комментарии39

Интересный прогресс-бар

Время на прочтение5 мин
Количество просмотров39K
В данном обзоре я хочу показать как можно расширить возможности компонента Progressbar плагина jQuery UI. Для начала поставим перед собой задачи, которые мы и будем решать:
  • прогресс-бар должен быть динамическим, т.е. «бежать вперед» (заполняться) с течением времени
  • возможность задавать параметры «бега» бара
  • удобство визуального использования. К примеру отображение текущего процента заполнения прогресс-бара

Остановимся подробнее на параметрах «бега». Бар можно параметризовать различными образами: задавая время запуска, шаг и период; время финиша, шаг и период; время старта, время финиша и шаг. Я остановился на последнем, т.е. для инициализации нашего прогресс-бара достаточно указать время старта, время финиша и шаг.
Читать дальше →
Всего голосов 63: ↑49 и ↓14+35
Комментарии56

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность