Wednesday, May 16, 2012

Tools

join.me - Instant screen sharing
Mikogo - is a desktop sharing tool full of features to assist you in conducting the perfect online meeting or web conference.
MySQL Workbench -  is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, and much more. MySQL Workbench is available on Windows, Linux and Mac OS.
http://doc.jsfiddle.net/ - is a playground for web developers, a tool which may be used in many ways.
Charles - is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).
http://linoit.com - task board
Fiddler - is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.
WinSCP - is an open source free SFTP client, SCP client, FTPS client and FTP client for Windows. Its main function is file transfer between a local and a remote computer. Beyond this, WinSCP offers scripting and basic file manager functionality.
http://www.debianhelp.co.uk/apacheab.htm - ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving.
Putty - is a Free Telnet/SSH Client
Kitty -  is a fork from version 0.62 of PuTTY

Thursday, May 10, 2012

Switch to tab: Python + Selenium webdriver

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

driver.find_element_by_link_text("link_will_be_opened_in_a_new_tab").click()
driver.current_window_handle
currentHandle = set(driver.window_handles)
currentHandle.remove(driver.current_window_handle) 
driver.switch_to_window(currentHandle.pop())

CLI network utilities

CLI utility to reverse DNS look-up
C:\>nslookup google.com
C:\>nslookup 74.125.232.199
C:\>ping -a 74.125.232.199 
C:\>ipconfig /flushdns
C:\>tracert google.com
C:\>netsh -help
C:\>netsh interface ip show configThis or C:\>netsh int ip show config
C:\>netsh int ip reset C:\tcplog.txt
C:\>netstat
C:\>pathping google.com #Ping and Tracert

The traceroute utility checks how many "hops" (transfers through other computers on a network) it takes for your computer to contact another computer. You can use traceroute if you know the other computer's IP address, web site address, or name
$traceroute on Linux tracert on Windows

Monday, October 10, 2011

Flex and AIR testing with FlexMonkey

FlexMonkey - это инструмент для тестировния Flex и AIR  приложений, который распространяется по свободной лицензции,  и будет полезен как разработчикам, так и тестировщикам. Проект влючает в себя консоль (Air-based), позволяющую быстро создавать и запускать функуциональные тесты, с возможностью записывать, проигрывать и проверять состояние приложения в любой момент времени. FlexMonkey также позволяет генерировать тесты, созданные при помощи консоли, в виде скриптов FlexUnit/ActionScript, которые можно использовать для разработки автоматизированных тестов. Таким образом FlexMonkey  позволяет разработчикам выполнять юнит-тесты, имея возможность проверить логику приложения, и тестировщикам - функциональное тестирование, при помощи соответсвующих инструментов.

Wednesday, September 21, 2011

Selenium 2.0 (Webdriver) How To with Java + Eclipse



Так как Selenium сейчас очень активно развивается, перед началом работы, необходимо скачать последнию версию с официального сайта. Для работы с Selenium 2.0 (WebDriver) нет необходимости в его отельном запуске как это было ранее. Создавая новый проект, в Eclipse в свойствах проекта нужно добавить путь к jar-файлу.



Для проверки присутствия элементов на веб-странице в Selenium RC (1.0) есть метод selenium.isElementPresent(). Для WebDriver аналогично можно использовать метод findElement(), который генерирует исключение NoSuchElementException, если элемент отсутсвтует на странице:

public static boolean isElementPresent(WebDriver driver, By by) { 
  try { 
    driver.findElement(by); 
    return true;  // Success! 
  } catch (NoSuchElementException ignored) { 
    return false; 
  } 

}


//Example 1:
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class Example  {
    public static void main(String[] args) {
        // Create a new instance of the html unit driver
        // Notice that the remainder of the code relies on the interface, 
        // not the implementation.
        WebDriver driver = new HtmlUnitDriver();

        // And now use this to visit Google
        driver.get("http://www.google.com");

        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));

        // Enter something to search for
        element.sendKeys("Cheese!");

        // Now submit the form. WebDriver will find the form for us from the element
        element.submit();

        // Check the title of the page
        System.out.println("Page title is: " + driver.getTitle());
    }
}


//Example 2:

package org.openqa.selenium.example;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class GoogleSuggest {
    public static void main(String[] args) throws Exception {
        // The Firefox driver supports javascript 
        WebDriver driver = new FirefoxDriver();
        
        // Go to the Google Suggest home page
        driver.get("http://www.google.com/webhp?complete=1&hl=en");
        
        // Enter the query string "Cheese"
        WebElement query = driver.findElement(By.name("q"));
        query.sendKeys("Cheese");

        // Sleep until the div we want is visible or 5 seconds is over
        long end = System.currentTimeMillis() + 5000;
        while (System.currentTimeMillis() < end) {
            WebElement resultsDiv = driver.findElement(By.className("gac_m"));

            // If results have been returned, the results are displayed in a drop down.
            if (resultsDiv.isDisplayed()) {
              break;
            }
        }

        // And now list the suggestions
        List<WebElement> allSuggestions = driver.findElements(By.xpath("//td[@class='gac_c']"));
        
        for (WebElement suggestion : allSuggestions) {
            System.out.println(suggestion.getText());
        }
     }
}

Source: http://code.google.com

Top Ten Programming Books


  1. Code Complete («Совершенный код»), второе издание. Steve McConnell 
  2. The Pragmatic Programmer: From Journeyman to Master («Программист-прагматик: от подмастерья к мастеру»), второе издание. Andrew Hunt, David Thomas (Эндрю Хант и Дэвид Томас)
  3. Structure and Interpretation of Computer Programs («Структура и интерпретация компьютерных программ»), второе издание. Harold Abelson, Gerald J Sussman, Julie Sussman (Гарольд Абельсон, Джеральд Суссман и Джули Суссман)
  4. The C Programming Language («Язык программирования Си»), второе издание. Brian W Kernighan и Dennis M Ritchie (Брайн Керниган и Деннис Ритчи)
  5. Introduction to Algorithms («Введение в алгоритмы»). Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest и Clifford Stein (Томас Кормэн, Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн)
  6. Refactoring: Improving the Design of Existing Code («Рефакторинг: улучшение существующего кода»). Martin Fowler, Kent Beck, John Brant и William Opdyke (Мартин Фаулер, Кент Бек, Джон Брант и Вильям Опдайк)
  7. Design Patterns: Elements of Reusable Object-Oriented Software («Шаблоны проектирования: Элементы повторно используемого объектно-ориентированного программного обеспечения»). Erich Gamma, Richard Helm, Ralph Johnson и John Vlissides (Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес (также известные как " Банда четырех ")
  8. The Mythical Man-Month: Essays on Software Engineering («Мифический человеко-месяц, или Как создаются программные системы»). Frederick P. Brooks (Фредерик П. Брукс)
  9. Art of Computer Programming, Volume 1: Fundamental Algorithms («Искусство программирования, том 1: основные алгоритмы»), третье издание. Donald E. Knuth (Дональд Кнут)
  10. Compilers: Principles, Techniques, and Tools («Компиляторы: принципы, технологии и инструменты»), 2-е издание. Alfred V. Aho, Monica S. Lam, Ravi Sethi и Jeffrey D. Ullman (Альфред В. Ахо , Моника С. Лам , Рави Сети и Джеффри Д. Ульман)

Wednesday, August 3, 2011

Photo editing tools

Hugin - panorama photo stitcher
Gimp - raster image editor
RawTherapee - RAW photo editor
Picasa - image organizer, viewer and editor
PTGui - panorama photo stitcher