Тестирование — это очень важный процесс во время разработки приложений. В случае Android, тестирование приложения следует производить на большом количестве устройств, в связи с тем, что многие из них имеют значительные различия по характеристикам (разрешение экрана, версия Android и т.д.). Процесс тестирования приложения вручную на большом количестве устройств может быть трудоемок, утомителен и подвержен ошибкам. Более эффективный и надежный подход состоит в автоматизации тестирования пользовательского интерфейса. С помощью UIAutomator можно разработать тест-скрипт, который будет работать на множестве Android устройств
с одинаковой точностью и воспроизводимостью.
Читать полностью »
Архив за 17 декабря 2013 - 6
Автоматизация тестирования Android приложений с помощью UIAutomator
2013-12-17 в 9:29, admin, рубрики: Без рубрики
Котаны, я этим постом Вас как бы просто предупредить хочу. Вот пишите вы, например, приложение. Допустим, клиент для социальной сети. Пишите год. Пишите два. Радуетесь растущему количеству пользователей, например. Может быть даже, грешным делом, монетизируете потихоньку. А потом в один прекрасный день обнаруживаете в своем почтовом ящике письмо от некоего removals@google.com
Читать полностью »
Строим OpenVPN мост под Mac OSX
2013-12-17 в 9:10, admin, рубрики: apple, bridge, mac os, mac os x, openvpn, osx, vpn, метки: bridge, mac os, openvpn, osx, vpnОднажды у меня появилась необходимость иметь доступ к локальной сети из удаленного места. Для выполнения данной задачи на iMac был поставлен OSX server в котором был настроен удаленный доступ VPN. Все работало вполне сносно кроме mDNS(Bonjour). Как оказалось данная реализация VPN не поддерживает мультикаст. А он был жизненно необходим из за наличия некоторых специальных приложений которые работают только в локальной сети.
После непродолжительного поиска нашлось несколько решений данной проблемы. Одно из них бесплатное предполагало установку программы «Network Beacon» и прописывания в ней руками путей к службам «Bonjour». Другое решение было платным и предполагало установку специального приложения «ShareTool» которое во первых может строить собственные SSH туннели и во вторых передавать по туннелю информацию о службах на стороне сервера.
Минусов у этого решения два. Первый это то что надо покупать лицензию на каждую машину. Ну и второй заключается в том что это решение все равно костыль. А мне хотелось все сделать как можно чище.
Решением оказалась постройка VPN моста на базе OpenVPN с виртуальным адаптером «tap».
Но как это сделать? В сети я нашел много разных инструкций по настройке подобной конфигурации но ни одного варианта постройки моста под OSX.
И тут я вспомнил как настраивал мост для расширения беспроводной сети и решил сделать все похожим образом.
Читать полностью »
Экспоненциальный алгоритм сильно замедляет Windows XP
2013-12-17 в 8:38, admin, рубрики: microsoft, windows, windows update, Windows XP, системное программирование, метки: windows update, Windows XP Разработчик отдела Windows Update Даг Нил (Doug Neal) объяснил, почему в последнее время многие пользователи Windows XP испытывают проблемы с производительностью после установки свежих обновлений.
Как показало изучение логов с «заторможенных» машин, проблема заключается в неэффективном методе, которым модуль Windows Update Agent обрабатывает длинные списки предшествующих апдейтов. Время обработки списков возрастает экспоненциально с каждым новым апдейтом. Другими словами, обработка нового обновления занимает вдвое больше времени, чем предыдущего.
За историю Windows XP было выпущено огромное количество патчей, так что при обработке списка из 40+ старых апдейтов процесс svchost.exe начинает потреблять много ресурсов CPU, и это заметно отражается на общей производительности системы.
Читать полностью »
Юрий Мильнер выходит из Y Combinator VC Program (YC VC). В рамках программы, существующей с конца прошлого года, Мильнер, Andreessen Horowitz, General Catalyst и Maverick Capital скидывались по $20K, чтобы в сумме дать каждому выбранному Y Combinator стартапу по $80K.
YC VC была призвана заменить другую программу Y Combinator — Start Fund, в рамках которой Мильнер и SV Angel давали стартапам по $150К.
Реорганизуя Start Fund, говорилось, что $150К — это слишком много.
ShareJS или как сделать свой Google Wave c OT и NodeJS
2013-12-17 в 8:02, admin, рубрики: derby.js, Derbyjs, node.js, nodejs, Веб-разработка, метки: derbyjs, nodejs
После двух лет работы над OT (техника разрешения конфликтов при совместном доступе к данным) для Google Wave, Джозефу(Joseph Gentle) пришла в голову идея, что для тех, кто захочет сделать аналогичный продукт, потребуется ни чуть не меньше времени. Чтобы как-то помочь этим людям и поделиться знаниями была написана библиотека ShareJS, представляющая собой реализацию OT на основе NodeJS. Также есть C-реализация.
Видеозвонки через браузер — как заставить технологию работать на свою компанию
2013-12-17 в 8:00, admin, рубрики: Блог компании 1С-Битрикс, Веб-разработка, системное администрированиеНу очень интересно было разобраться, как совершать видеозвонки через браузер внутри компании и насколько это полезно. Тем более, что skype — «прослушивается» и пересылаемые пароли парсятся роботами…
Вроде есть Google+ Hangouts и им нередко пользуются — но это все таки не WebRTC и проприетарная облачная технология. Кто знает — не просматривают ли наше совещание по бизнес-планированию коллеги из другой компании-конкурента с блокнотами и неподдельными улыбками на сияющих лицах?
В общем, согласитесь, тема своих, приватных надежных видеопереговоров внутри компании — актуальна как никогда. Многим это нужно, но как организовать-то? У нас — получилось. Это можно сделать достаточно просто, если знать как :-) (изучив десяток RFC, стандартов w3c и их реализаций и докопавшись до причин).
Ниже я постараюсь провести по основным технологическим рискам реализации, на которые пришлось наступить нам и придется наступить скорее всего и вам — а на закуску: краткая технологическая выжимка и бизнесовый TODO, без взрывающих мозг ненужных деталей.
Читать полностью »
Детализированный мониторинг запросов к Apache при помощи Python и Munin
2013-12-17 в 7:59, admin, рубрики: Apache, daemon, linux, logging, monitoring, munin, python, веб-аналитика, системное администрирование, метки: apache, daemon, linux, logging, monitoring, munin, pythonОдним из заданий во время моей недавней стажировки в ТомТоме было улучшение средств мониторинга веб-серверов компании. Конкретнее, необходимо было написать несколько плагинов к Munin, которые выводили бы подробную статистику запросов к нашим API из логов доступа Apache. Задача эта изначально может показаться примитивной — всего-то и нужно, что распарсить файл лога и вывести результаты в понимаемом Munin формате. Однако, для создания действительно надежной и удобной утилиты с гибкими возможностями настройки мне пришлось немало повозиться. Чтобы эта работа не пропала зря, я разместил код на Гитхабе под названием elfstats. В этой статье я расскажу о том, какие задачи способна решать данная утилита, чтобы заинтересовавшиеся сетевые инженеры смогли применить её в своих окружениях.
Вкратце, перед началом работы с elfstats необходимо описать обрабатываемые веб-сервером запросы при помощи регулярных выражений. После этого программа будет регулярно парсить логи доступа и генерировать файл отчета, содержащий количество запросов и распределение времени отклика для каждого из описанных шаблонов. Далее, этот отчет будет обрабатываться при помощи Munin и выводиться в виде соответствующих графиков. Таким образом, установив и настроив elfstats, вы сможете легко отслеживать изменения в работе ваших приложений и поведении пользователей на уровне веб-сервера.
Читать полностью »
Частный космос — Per aspera ad astra
2013-12-17 в 7:55, admin, рубрики: Blue Origin, Excalibur Almaz, Inspiration Mars, mars one, spacex, космонавтика, космос, метки: Blue Origin, Excalibur Almaz, Inspiration Mars, mars one, spacex, космосЕще несколько лет назад перспективы частного космоса были весьма туманны. В этом нет ничего удивительного — разработки, связанные с запуском космических аппаратов дороги, а малейшие ошибки приводят к катастрофическим последствиям. Именно поэтому долгие годы — с самой зари космических полетов, и до недавнего времени — космос оставался доступен лишь правительствам ведущих мировых держав. Но все меняется. На рынок приходят новые игроки, индустрия становится чуть более открытой и коммерческой, чуть менее бюрократизированной и старомодной.
Простой интерпретатор с нуля на Python (перевод) #1
2013-12-17 в 7:37, admin, рубрики: python, интерпретатор, Питон, с нуля, метки: python, интерпретатор, Питон, с нуляВещь, которая привлекла меня изучать компьютерную науку была компилятором. Я думал, что это все магичя, как они могут читать даже мой плохо написанный код и компилировать его. Когда я прошел курс компиляторов, я стал находить этот процесс очень простым и понятным.
В этом цикле статей я попытаюсь захватить часть этой простоты путем написания простого интерпретатора для обычного императивного языка IMP (IMperative Language). Интерпретатор будет написан на Питоне, потому что это простой и широко известный язык. Также, питон-код похож на псевдокод, и даже если вы не знаете его [питон], у вас получится понять код. Парсинг будет выполнен с помощью простого набора комбинаторов, написанных с нуля (подробнее расскажу в следующей части). Никаких дополнительных библиотек не будет использовано, кроме sys (для I/O), re (регулярные выражения в лексере) и unittest (для проверки работоспособности нашей поделки).
Читать полностью »