Saturday, October 29, 2011

ScriptCoverage

Гугл открыл код нового расширения для своего браузера показывающего какой код вызывался, правда в необычной манере. На главной странице проекта нет ссылки на загрузку дополнения и инструкции как установить, сразу идет ссылка на загрузку кода. Но в вики проекта есть описание как его запустить и в коде есть скрипт с примечательным названием build.py. Краткая инструкция как его запустить:

  • Грузим исходник:
    $ git clone https://code.google.com/p/script-cover/
    Cloning into script-cover...
    remote: Counting objects: 47, done.
    remote: Finding sources: 100% (47/47), done.
    remote: Total 47 (delta 12)
    Unpacking objects: 100% (47/47), done.
    
  • Запускаем сборку, подгружаются не достающее исходники(используется closure compiler), и все собирается:
    $ cd script-cover/
    $  python build.py 
    Running command: svn checkout http://closure-library.googlecode.com/svn/trunk/ closure-library
    Running command: java -jar SoyToJsSrcCompiler.jar --shouldProvideRequireSoyNamespaces --outputPathFormat build_gen/src/coverage_report.soy.js src/coverage_report.soy
    Running command: java -jar SoyToJsSrcCompiler.jar --shouldProvideRequireSoyNamespaces --outputPathFormat build_gen/src/popup.soy.js src/popup.soy
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/content_compiled.js --compiler_jar=compiler.jar --input=src/scriptLoader.js --input=src/instrumentation.js --input=src/startTool.js
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/background_compiled.js --compiler_jar=compiler.jar --input=src/showCoverageHelper.js --input=src/background.js
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/inject_compiled.js --compiler_jar=compiler.jar --input=src/backgroundInteraction.js
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/popup_compiled.js --compiler_jar=compiler.jar --input=src/popup.js --input=src/background.js
    
  • В хроме выбираем Tools->Extensions(или chrome://extensions/) , включаем Developer Mode и выбираем загрузку не упакованных расширений и выбираем папочку build.
  • После этого расширения появляется в toolbar-е и мы немного ждем результатов анализа - и радуемся:-)
  • И выключаем его после теста чтобы не занимался не нужным анализом.

ADSL все еще не opensource

​Как много изменилось с предыдущего поста на эту тему. К этому модему уже научились припаивать второй USB порт, вторую антенн, COM и WAN порт. Жаль только что ADSL все нет, хотя частично есть спецификации и есть часть не GPL исходного кода c прошивок других устройств(об этом можно почитать на форуме OpenWrt).

Monday, October 24, 2011

Графики на html таблицах

Маленький js код для показа графиков как html таблиц(чтобы выглядело как обычная картинка). Реализация рисования на canvas не столь интересна - так она работает не во всех броузерах - а так любой браузер может показать график с выключенной погрузкой картинок и возможно даже так мы экономим для простых картинок трафик:-)

Инструкция по установке Selenium на Windows

  • Скачать с http://seleniumhq.org/download/ Selenium Server и запустить 'java -jar selenium-server-standalone-2.8.0.jar' и запустить, должно написать что-то вида:
    18.10.2011 12:00:46 org.openqa.grid.selenium.GridLauncher main
    INFO: Launching a standalone server
    12:00:46.970 INFO - Java: Sun Microsystems Inc. 20.1-b02
    12:00:46.980 INFO - OS: Windows XP 5.1 x86
    12:00:47.020 INFO - v2.8.0, with Core v2.8.0. Built from revision 14056
    12:00:47.440 INFO - RemoteWebDriver instances should connect to: http://127.0.0.
    1:4444/wd/hub
    12:00:47.440 INFO - Version Jetty/5.1.x
    12:00:47.450 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
    /driver]
    12:00:47.450 INFO - Started HttpContext[/selenium-server,/selenium-server]
    12:00:47.450 INFO - Started HttpContext[/,/]
    12:00:47.571 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@110b05
    3
    12:00:47.581 INFO - Started HttpContext[/wd,/wd]
    12:00:47.631 INFO - Started SocketListener on 0.0.0.0:4444
    12:00:47.631 INFO - Started org.openqa.jetty.jetty.Server@1027b4d
    
  • Установить python http://www.python.org/download/ Python 2.7.2 Windows Installer
  • Установить PIP. Нужно запустить http://python-distribute.org/distribute_setup.py затем https://raw.github.com/pypa/pip/master/contrib/get-pip.py . И запустить  
    C:\Python27>python.exe get-pip.py
    Downloading/unpacking pip
      Downloading pip-1.0.2.tar.gz (105Kb): 105Kb downloaded
      Running setup.py egg_info for package pip
    
        warning: no files found matching '*.html' under directory 'docs'
        warning: no previously-included files matching '*.txt' found under directory
     'docs\_build'
        no previously-included directories found matching 'docs\_build\_sources'
    Installing collected packages: pip
      Running setup.py install for pip
    
        warning: no files found matching '*.html' under directory 'docs'
        warning: no previously-included files matching '*.txt' found under directory
     'docs\_build'
        no previously-included directories found matching 'docs\_build\_sources'
        Installing pip-script.py script to C:\Python27\Scripts
        Installing pip.exe script to C:\Python27\Scripts
        Installing pip-2.7-script.py script to C:\Python27\Scripts
        Installing pip-2.7.exe script to C:\Python27\Scripts
    Successfully installed pip
    Cleaning up...
    
  • Установить Selenium:
    C:\Python27>Scripts\pip.exe install -U selenium
    Downloading/unpacking selenium
      Downloading selenium-2.8.1.tar.gz (2.9Mb): 2.9Mb downloaded
      Running setup.py egg_info for package selenium
    
    Downloading/unpacking rdflib==3.1.0 (from selenium)
      Downloading rdflib-3.1.0.tar.gz (249Kb): 249Kb downloaded
      Running setup.py egg_info for package rdflib
    
    Installing collected packages: selenium, rdflib
      Running setup.py install for selenium
    
      Running setup.py install for rdflib
    
    Successfully installed selenium rdflib
    Cleaning up...
    
  • Проверить работоспособность скрипта http://pypi.python.org/pypi/selenium#example
  • Соединение между сервером тестирования (jar апплет) и скриптом тестирования(python) идет по обычному http так что запуск браузера можно проверить и без скриптов.

Thursday, October 13, 2011

yac2011

Интересные доклады (http://yac2011.yandex.ru/archive2011/video1/):

  1. http://video.yandex.ru/users/ya-events/view/375/#hq Зачем обычному программисту знать языки, на которых почти никто не пишет. Алексей Воинов, Яндекс
  2. http://video.yandex.ru/users/ya-events/view/377/#hq Разработка приложений для Android на С++. Юрий Береза, Shturmann
  3. http://video.yandex.ua/users/ya-events/view/380/#hq Beyond HTML5. Charles McCathieNevile, Opera Software

Sunday, October 2, 2011

Создание карты для RMaps


Лучший вариант для создания карты это Mobile Atlas Creator. Все достаточно интуитивно и просто выбираешь откуда брать карту(Map Source: OpenStreetMap OsmaRender) и в какой формат сохранять(Atlas Setting:RMaps). На карте справа выбираем область нужную нам. В ZoomLevels - выбираем нужные увеличения для области, в Аtlas Content - нажимаем Add Selection. И нажимаем кнопочку CreateAtlas. Эта последовательность действительна для версии  1.8. В 1.9 - вас спросят о типе результирующего файла сразу при запуске.

 Есть еще SAS.Планета - в ней много опций и карт - но очень не интуитивный интерфейс создание офлайн версий. Первая проще и умет именно то что нужно.