пʼятниця, 4 грудня 2015 р.

How to install InternetExplorer WebDriver

1. download IEDriverServer.exe from http://selenium-release.storage.googleapis.com/index.html
     Take the last version appropriate to OS version and system type (34-bit or 64-bit)

четвер, 3 грудня 2015 р.

How to install Cisco vpn

1. download exe file
https://drive.google.com/open?id=0B82wCxQRWVScV3VJT0VZOFRkNm8
2. run exe file
3. enter  ip. Special grooup should appear
4. username and password

четвер, 26 листопада 2015 р.

Алгоритм бинарного поиска

int f(int[] array, int x) {
    int low = 0;
    int high = array.length - 1;
    while (low <= high) {
        int mid = (low + high) >>> 1;
        int midVal = array[mid];
        if (midVal < x)
            low = mid + 1;
        else if (midVal > x)
            high = mid - 1;
        else
            return mid;
    }
    return -(low + 1);
}

Аглоритм линейного поиска

int f(int[] array, int x) {
    for (int k = 0; k < array.length; k++) {
        if (array[k] == x) {
            return k;
        }
    }
    return -1;
}

Инвертирование одномерного массива

void f(int[] array) {
    for (int k = 0; k < array.length / 2; k++) {
        int tmp = array[k];
        array[k] = array[array.length - 1 - k];
        array[array.length - 1 - k] = tmp;
    }
}
Задача: Изменить порядок следования элементов массива на обратный, используя только одну вспомогательную переменную.

Алгоритм обмена елементами

void f(int[] array, int i, int j) {
    int tmp = array[i];
    array[i] = array[j];
    array[j] = tmp;
}

середа, 25 листопада 2015 р.

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

public class InsertionSorter {
    public static void sort(int[] arr) {
        for (int k = 1; k < arr.length; k++) {
            int newElement = arr[k];
            int location = k - 1;
            while (location >= 0 && arr[location] > newElement) {
                arr[location + 1] = arr[location];
                location--;
            }
            arr[location + 1] = newElement;
        }
    }
}
На кожному кроці алгоритму ми вибираємо один з елементів вхідних даних і вставляємо його на потрібну позицію у вже відсортованому списку до тих пір, доки набір вхідних даних не буде вичерпано. Метод вибору чергового елементу з початкового масиву довільний; може використовуватися практично будь-який алгоритм вибору. Зазвичай (і з метою отримання стійкого алгоритму сортування), елементи вставляються за порядком їх появи у вхідному масиві.

BubbleSorter

public class BubbleSorter {
    public static void sort(int[] arr) {
        for (int barrier = arr.length - 1; barrier >= 0; barrier--) {
            for (int index = 0; index < barrier; index++) {
                if (arr[index] > arr[index + 1]) {
                    int tmp = arr[index];
                    arr[index] = arr[index + 1];
                    arr[index + 1] = tmp;
                }
            }
        }
    }
}

четвер, 19 листопада 2015 р.

Boolean

Є три типи операцій:
1. Запереченя
2. Канкатенація AND
3. Обєднання OR

Заперечення а або б рівне запереченю а і запереченню в

середа, 18 листопада 2015 р.

Token Java

1. Ключові слова (keywords)
зарезервовані слова, які не можна використовувати для власних потреб при написанні коду.
В java 50 зарезервованих слів

2. Літерали (literal)
це те як ми ініціалізуємо змінні.
Integer literal:
- цифри 0-9 (12378345)
- нижнє підкреслення, щоб розділяти розряди (12_378_345)
- 16-ва система числення (0xBCEOE9 це шістнадцяткове представлення числа12378345)
- суфікси l L (12378345L)
- знак + -

Floating Point Literal:
- крапка-розподілювач (.) (12354.00)
- степінь десятки або експонента е Е (1.2378345е7f) - це означає, що число треба помножити на 10 в степені 7. f вкінці означає, що число типу флоат
- суфікси f F d D. Флоат і дабл

Boolean literal - true false

Characteral literal
- символи a-z | A-Z | 0-9 | а-я
- спеціальні символи
\b backspace
\t табуляція
\n перенос каретки
\f
\r
\'
\''

String literal

Null liteal - null. Ми можемо зарезервувати змінну зі значенням null


3. Розподілювачі (separators)
() {} [] ; , . ... @ ::

4. Operator
! унарний оператор. Це логічне заперечення
<> бінарний оператор
% залишок від ділення

Перегрузка операторів - в залежності від контексту операторам відповідають різні сутності
Наприклад,
"123" + "123" = "123123" канканація String
123+123=246 додавання int

5. Ідентифікатори
це будь-які комбінації Java-літер або чисел , крім ключових слів

Парадигма Java

1. Строготипізована
кожній змінній потрібно зазначати тип

2. Компільована
це оначає, що джава-файл ми не можемо запустити. Потрібно перетворити його в клас-файл і запустити цей клас-файл. Клас-файл є продуктом компіляції

3. Кросс-платформена
write once, run anywhere

4. Обєктно-орієнтована

понеділок, 16 листопада 2015 р.

Step by Step tutorial to create a REST/SOAP service/client using Apache CXF

http://blog.sortedset.com/step-by-step-web-services-with-tomcat-tomee-apache-cxf-eclipse/
http://www.asjava.com/web-services/web-services-hello-world-example-with-cxf/
https://www.youtube.com/watch?v=Vt97IU7xNJs
http://www.javacodegeeks.com/2013/06/developing-soap-web-service-using-apache-cxf.html
http://www.javatips.net/blog/2012/02/cxf-restful-tutorial
http://www.javatips.net/blog/2012/02/cxf-restful-client
http://www.javatips.net/blog/2012/04/expose-cxf-service-with-rest-and-soap
http://www.javatips.net/blog/2011/09/create-cxf-client
https://angelozerr.wordpress.com/2011/08/24/jaxwscxf_step2/#WSHelloServiceImpl
APACHE CXF RESTFUL WEB SERVICE EXAMPLE
http://www.simplecodestuffs.com/create-and-deploy-web-service-and-web-service-client-in-eclipse/
http://www.javacodegeeks.com/2013/06/developing-soap-web-service-using-apache-cxf.html
https://www.ibm.com/developerworks/ru/library/ws-soapvalid/
http://www.benchresources.net/apache-cxf-jax-rs-restful-web-service-integrating-with-spring-hibernate/
http://www.tutorialspoint.com/restful/restful_quick_guide.htm
https://mjtoolbox.wordpress.com/2014/03/30/building-restful-webserviceclient-using-wildfly-8-0-0-final-resteasy-and-maven-deployment/
http://www.dineshonjava.com/2013/06/restful-web-services-with-jersey-jax-rs.html#.VqpAxPl96Uk
http://blog.sortedset.com/step-by-step-web-services-with-tomcat-tomee-apache-cxf-eclipse/

How to deploy project in Tomcat

1. download Tomcat http://tomcat.apache.org/download-80.cgi
2. unzip
3. go to D:\Program\apache-tomcat-8.0.28-windows-x64\apache-tomcat-8.0.28\bin and click on startup.bat
Click on shutdown.bat if you want to close tomcat
4. go to browser and open localhost:8080
5. the page with message "If you're seeing this, you've successfully installed Tomcat. Congratulations!"
6. go to D:\Program\apache-tomcat-8.0.28-windows-x64\apache-tomcat-8.0.28\conf and open toncat-user.xml
7. edit file
 <role rolename="manager-gui"/>
 <user username="admin" password="admin" roles="manager-gui"/>
8. go to  localhost:8080 and click on "Manager App" button. Login by admin/admin
9. the page with projects should be opened
10. create in Eclipse project
11. click on File/Export/Web/War file
12. go to Tomcat and deploy war file


How to check what services are in run and kill proces in Windows using console.

1. c:\> cd c:\windows\system32
2. C:\WINDOWS\system32>netstat -o -n -a | findstr 8080

  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       4184

3. C:\WINDOWS\system32> taskkill /F /PID 4184

SUCCESS: Sent termination signal to the process with PID 4184.

понеділок, 2 листопада 2015 р.

SQL fundamentals

http://jtest.ru/bazyi-dannyix/
https://drive.google.com/open?id=0B82wCxQRWVScdjBVcVktV3NTVGc
https://drive.google.com/open?id=0B82wCxQRWVScMVlsZkhiR1pLS2c

Mobile testing links

1. https://drive.google.com/open?id=0B82wCxQRWVScSTZ6RE1ObTVwMlk
2. https://drive.google.com/open?id=0B82wCxQRWVScTXdjR3pFeUdZTUE
3. https://drive.google.com/open?id=0B82wCxQRWVScT2ZjVzQyV1BTSk0

Video from lynda.com about OOD

https://drive.google.com/open?id=0B82wCxQRWVScbUlPekRoZmxmTFk

Link for algorithm

1. https://dl.dropboxusercontent.com/u/829163/draft.pdf
2. Video lynda.com

The sample of automation strategy

1. When we can start to automate:
·         Stability of the product/application is ensured;
·         Interface to be tested has been identified;
·         Scope of automation has been defined;
·         Individual testcases to be automated have been identified;
·         The right tool has to be decided

Test Automation Patterns

https://testautomationpatterns.wikispaces.com/Test+Automation+Patterns

What is Database & SQL ?


Строим Web Testing Framework за 20 минут


SOAP vs REST


Virtual Private Network

VPN technology (Virtual Private Network) enables mobile and remote users to set up secure connections to the company main office network. The advantage of VPN access is that a user with the VPN connection to the company network can work in the same network environment as if the computer is directly connected to the local network on the work place. To create such connections, user just needs Internet access: dial-up, DSL, or cable; and there is no need to perform long-distance calls or rent data transfer channels. This guide describes the usage of SSL VPN (Secure Socket Layer VPN).

Git

Exception

Logging

Maven

Java. Explicit and Implicit Wait. Testing Ajax Applications

Junit and TestNG


Java: access


Links for MapReduce Haddop Cloudera Manager

1. MapReduce или подсчеты за пределами возможностей памяти и процессора
2. Hadoop configuration & performance tuning
3. Hadoop и хранение Больших данных: От «эксперимента» к продукту
4. Survey on Methodology & Examples of Mapper / Reducer /Combiner for Big data
5. Resource Allocation for Jobs and Applications
6. Hadoop Cluster Setup
7. Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce
8. Big Data от А до Я. Часть 2: Hadoop
9. Утилиты командной строки могут быть в 235-раз быстрее вашего Hadoop кластера
10.
13. 
15. Книжка Чак Л. "Hadoop в действии"
16. Video lynda.com

неділя, 1 листопада 2015 р.

Java: static

Статік можуть бути змінні, методи, класи

Використовується, коли:
1. не потрібно створювати екземпляр класа
2. деколи потрібно, щоб змінна була в єдиному екземплярі
3. деколи потрібно викликати метод ще до того як буде можливість створювати обєкти. Добре пояснюється на прикладі метода main. Він обявляється статичним для того, щоб він одразу виконувався після завантаження класа в память, ще до того як можна буде створювати обєкти

субота, 31 жовтня 2015 р.

Java: getter/setter

Метод чтения, геттер (англ. getter — получатель) — специальный метод, позволяющий получить данные, доступ к которым напрямую ограничен. Это один из методов объектно-ориентированного программирования, который помогает реализовать гибкий механизм инкапсуляции.

Устанавливающий метод, сеттер (англ. setter) или модифицирующий метод, мутатор (англ. mutator) — метод, используемый в объектно-ориентированном программировании для того, чтобы присвоить какое-либо значение инкапсулированному полю, например, обработав при этом недопустимые присваивания.

 class Foo {
     
     private int data;
     
     public void setData(int data) {
          this.data = data;
     }
     
     public int getData() {
          return data;
     }
 }

Why getter and setter methods are evil

Java: конструктори

Конструктори - це скоречений запис створення та ініціалізації обєкта

Без використання конструктора:
MyFile file = new MyFile();
file.initialize("c:\\data\\a.txt");
String text = file.readText();


З використанням конструктора:
MyFile file = new MyFile("c:\\data\\a.txt");
String text = file.readText();

Конструктор

вівторок, 27 жовтня 2015 р.

Отношения между классами (объектами): ассоциация, агрегация и композиция

Ассоциация 

 Ассоциация означает, что объекты двух классов могут ссылаться один на другой, иметь некоторую связь между друг другом. Например Менеджер может выписать Счет. Соответственно возникает ассоциация между Менеджером и Счетом. Еще пример – Преподаватель и Студент – т.е. какой-то Студент учится у какого-то Преподавателя. Ассоциация и есть описание связи между двумя объектами. Студент учится у Преподавателя. Идея достаточно простая – два объекта могут быть связаны между собой и это надо как-то описать.

вівторок, 8 вересня 2015 р.

Java: working with BigInteger

BigInteger x = new BigInteger("1685287499328328297814655639278583667919355849391453456921116729");
BigInteger y = new BigInteger("7114192848577754587969744626558571536728983167954552999895348492");
BigInteger z;
z = x.multiply(y);
System.out.println(z);

середа, 19 серпня 2015 р.

Java task: for

Используя цикл for вывести на экран прямоугольный треугольник из восьмёрок со сторонами 10 и 10.
Пример:
8
88
888
8888

понеділок, 17 серпня 2015 р.

Java: this

/* Реализовать метод setName
Реализовать метод setName, чтобы с его помощью можно было устанавливать значение переменной private String fullName равное значению локальной переменной String fullName.
*/

public class Cat {
    private String fullName;

    public void setName(String firstName, String lastName) {
        String fullName = firstName + " " + lastName;
        this.fullName = fullName;

        //напишите тут ваш код
    }
}

пʼятниця, 14 серпня 2015 р.

IT Comunity

1. http://www.programmr.com/zone/java
2. http://ladieslearningcode.com/program/girls-learning-code/

Best online courses

1. https://www.codecademy.com
2. http://academy.javacodegeeks.com/courses/standalone-courses/
3. https://www.khanacademy.org/
4. https://developers.google.com/university/
5. https://www.codeschool.com/
6. https://www.hackerrank.com
7. https://teamtreehouse.com/
8. http://www.open.edu/openlearn/science-maths-technology/computing-and-ict
    http://www.open.ac.uk/courses/find/computing-and-it
9. http://online.stanford.edu/courses
10. http://www.webmonkey.com/tutorials/
11. http://lifehacker.com/5744113/learn-to-code-the-full-beginners-guide
12. http://academicearth.org/computer-science/
13. https://www.udemy.com/courses/featured/
14. http://codepupil.com/
15. https://ru.hexlet.io/courses

Jave courses

1. WiBit.Net

Java: overloading and overriding

1. Overload – перегрузка метода - определение в классе или в классах – потомках методов с одинаковым наименованием но различной сигнатурой*. Фактически, такие методы – это совершенно разные методы с совпадающим наименованием.

 2. Override– переопределение метода в классах-потомках, при этом сигнатура* метода остается прежней, но, возможно, изменяется логика внутри метода.

Java: абстракция

1. Применительно к Java абстракция реализована посредством abstract class и interface

http://kostin.ws/java/java-abstract-and-interfaces.html

http://programm.ws/page.php?id=233

2. getter / setter
http://gooodjava.blogspot.com/2013/07/getters-and-setters.html

четвер, 6 серпня 2015 р.

Topology networking - Топологія мережі

Фізична топологія — спосіб фізичного з'єднання комп'ютерів за допомогою середовища передачі, наприклад, ділянками кабелю.
Логічна топологія визначає маршрути передачі даних в мережі. У багатьох випадках, фізична топологія однозначно визначає логічну топологію. Проте існують такі конфігурації, в яких логічна топологія відрізняється від фізичної. Наприклад, мережа з фізичною топологією «зірка» може мати логічну топологію «шина» — все залежить від того, яким чином влаштований мережевий концентратор.

пʼятниця, 31 липня 2015 р.

Networking

Комп'ю́терна мере́жа — система зв'язку між двома чи більше комп'ютерами. У ширшому розумінні комп'ютерна мережа — це система зв'язку через кабельне чи повітряне середовище, самі комп'ютери різного функціонального призначення і мережеве обладнання. Для передачі інформації можуть бути використані різні фізичні явища, як правило — різні види електричних сигналів чи електромагнітного випромінювання. Середовищами передавання у комп'ютерних мережах можуть бути телефонні кабелі, та спеціальні мережеві кабелі: коаксіальні кабелі, виті пари, волоконно-оптичні кабелі, радіохвилі, світлові сигнали.

четвер, 30 липня 2015 р.

OS, Compiler, Interpreter

Операці́йна систе́ма, скорочено ОС (англ. operating system, OS) — це базовий комплекс програмного забезпечення, що виконує управління апаратним забезпеченням комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.

Операційна система звичайно складається з ядра операційної системи та базового набору прикладного програмного забезпечення.

Ядро́ (англ. Kernel) — базова компонента операційної системи, що реалізує інтерфейс між прикладними процесами та обладнанням комп'ютера. Завантажується в оперативну пам'ять комп'ютера і безпосередньо взаємодіє з апаратурою, забезпечуючи керування апаратними засобами (при цьому використовуються драйвери (модулі ядра) підключеного в систему обладнання)
Операти́вна па́м'ять (RAM , англ. Random Access Memory, дослівно — пам'ять з довільним доступом, первинна пам'ять) — пам'ять ЕОМ, призначена для зберігання коду та даних програм під час їх виконання. У сучасних комп'ютерах оперативна пам'ять переважно представлена динамічною пам'яттю з довільним доступом DRAM.

operating system gives each program its own area of memory

После включения компьютера в его оперативной памяти нет операционной системы. Само по себе, без операционной системы, аппаратное обеспечение компьютера не может выполнять сложные действия, такие как, например, загрузку программы в память. Таким образом мы сталкиваемся с парадоксом, который кажется неразрешимым: для того, чтобы загрузить операционную систему в память, мы уже должны иметь операционную систему в памяти.
Решением данного парадокса является использование специальной компьютерной программы, называемой начальным загрузчиком, или BIOS (Basic Input/Output System). Эта программа не обладает всей функциональностью операционной системы, но её достаточно для того, чтобы загрузить другую программу, которая будет загружать операционную систему.

BIOS — это базовая система ввода-вывода. После того, как мы включаем ПК, BIOS в течение нескольких секунд выполняет проверку большинства компонентов системы. В этом обзоре хотел бы рассказать, что происходит на каждом ее этапе, а также про возможность ускорения работы компьютера: нужно или не нужно это делать.
Теоретические сведения. После включения компьютера, системный динамик издает короткий звуковой сигнал, после чего начинается загрузка ОС. Это происходит мгновенно. Однако не все знают о том, что происходит в течение этих нескольких секунд, когда издается этот звук.

Компілятор

Interpreter


Compiler does not run code , just translate code to machine code
Interpreter run code

Біт, байт, мегабайт... Двійкова система

Біт (англ. bit, переклад: шматочок) — мінімальна одиниця кількості інформації, яка дорівнює одному двійковому розряду, який може бути рівним одному з двох значень/станів (0 або 1), застосовуваних для представлення даних у двійковій системі числення.

CPU/RAM

CPU (Central Processing Unit) - центральный процессор компьютера (его мозги) , физически представляет собой большую интегральную схему (микросхему) , в которой функционально представлены различные узлы (не только собственно процессор) . В многопроцессорной системе функции центрального процессора распределены между несколькими процессорами, один из которых считается главным.

понеділок, 27 липня 2015 р.

Jenkins: Active Choices Plugin

how to create the dependences between parameters
https://wiki.jenkins-ci.org/display/JENKINS/Active+Choices+Plugin

Unix: how to replace, delete and add new string in file

1. delete all lines which have tag <module> in pom.xml
sed -i -e 's/<module>.*//' /home/pom.xml

2. paste a specific module in pom.xml
sed -i -e '/<modules>/a\<module>$MODULE</modules>' $WS/smokes

3. replace word "param" by new word "avro" inglobally in pom.xml file
sed -i -e 's/param/avro/' /home/pom.xml

четвер, 23 липня 2015 р.

Unix: how tocopy file from one host to another


ORIGINAL_HOSTS=($(eval echo $CLUSTER))
HOST=(${ORIGINAL_HOSTS[0]})

scp systest@$HOST:/home/systest/smokes/test-run.log $WS/logs

Unix: how to run single test

1. java should be installed
2. maven should be installed
3. edit pom.xml. Add value
<modules>
    <module>${param}</module>
<modules>
4. mvn clean install -Dparam=oozie

Unix: how to install java

sudo apt-get updatesudo apt-get install openjdk-7-jdk
Verification:   Java -version

Unix: how to install maven

cd /opt
sudo wget http://apache.cp.if.ua/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gzsudo tar -zxf apache-maven-3.2.5-bin.tar.gz
sudo ln -s /opt/apache-maven-3.2.5/bin/mvn /usr/bin/mvn
Verification:   mvn -v

четвер, 16 липня 2015 р.

Java: як зчитувати текст і цифри з клавіатури

BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String sAge = reader.readLine(); //читаем строку с клавиатуры
int nAge = Integer.parseInt(sAge); //преобразовываем строку в число.
String name = reader.readLine(); //читаем строку с клавиатуры
       
 System.out.println(name + " - моє імя " + sAge + " мій вік");

середа, 15 липня 2015 р.

Java: модифікатори доступу

1. public
до змінної, методу, класу позначеної модифікатором public можна звертатися з будь-якого місця програми
2. private
можна звертатися тільки в межах класу, в якому ця змінна чи метод обявленні
3. без модифікатора (package)
змінна чи метод будуть видні тільки в межах пакета

Java: обєкти

Чтобы создать какой-нибудь объект, нужно написать имя типа (класс) этого объекта и ключевое слово new перед ним.

Java: типи

1. примітивні типи - int; char
2. складні типи - утворюються з простих шляхом групування. Такі типи називаються класами. Коли ми створюємо новий клас, то це означає, що ми обявляємо новий складний тип, дані якого будуть або іншими складними типами або примітивними типами

Java: про память

Можна уявити собі Excel. Сторінка в Exсel складається з комірок, і в кожної комірки є її унікальний номер (A1, A2,…B1, B2). Знаючи номер комірки, завжди можна записати щось в неї або ж отримати значення, яке в ній зберігається. Память компютера подібна до цього. Програма і її дані під час роботи зберігаються в памяті. Вся память компютера представлена у вигляді маленьких комірок - байт. У кожної комірки є її унікальний номер - 0, 1, 2, 3, ... (нумерація починається з нуля). Знаючи номер комірки, ми можемо зберегти в неї певні дані. Або ж витягти з неї дані. В одних комірках зберігається код програми - набір команд для процесора, а в інших - дані цієї програми. Номер кожної комірки також називають її адресом. Коли в коді програми задається змінна, їй виділяється частинка ще не використаної памяті. Зазвичай це кілька байт

Java: змінні

Змінні - це такі штуки для зберігання даних. Будь-яких даних. Всі дані в Java зберігаються за допомогою змнних. Змінні нагадують коробку. Наприклад, ми написали на листку число 13 і поставили його в коробку. Тепер можна казати, що "коробка зберігаю число 13". Кожна змінна має три важливі властивості: тип, імя та значення

Java: how to get date of today

SimpleDateFormat date = new SimpleDateFormat("MM/dd/yyyy");

Calendar calendar = Calendar.getInstance();

int century = calendar.get(Calendar.YEAR);

вівторок, 14 липня 2015 р.

Bash command: how to add answer on the questions during installing package

sudo yum install sshpass -y -q

sshpass - package
-y - yes

Bash command: How to ping host untill ip address is responds

#!/bin/sh
wait_hostname_timeout=120 # in seconds

###### get the hostname and IPaddress of master
ORIGINAL_HOSTS=($(eval echo $CLUSTER))
HOST=(${ORIGINAL_HOSTS[0]})
echo "hostname master = $HOST"

while [  $COUNTER -lt 10 ]; do
            sleep 1; count=$((count+1))
            echo quit | telnet ${HOST} 22 2>/dev/null | grep Connected
            host_status=$?
         done

count=1; host_status=1
    ping -c1 ${HOST} > /dev/null 2>&1

until [ "$host_status" -eq 0 -o $count -gt $wait_hostname_timeout ];
      do
            sleep 1; count=$((count+1))
            echo quit | telnet ${HOST} 22 2>/dev/null | grep Connected
            host_status=$?
      done

masterIP=($(host $HOST |awk '{print $4}'))
echo "ip address master = $masterIP"

echo "This build slave is $HOSTNAME"

пʼятниця, 26 червня 2015 р.

Java task: Create array


  • Создайте массив из всех чётных чисел от 2 до 20 и выведите элементы массива на экран сначала в строку, отделяя один элемент от другого пробелом, а затем в столбик (отделяя один элемент от другого началом новой строки). Перед созданием массива подумайте, какого он будет размера.
    2 4 6 … 18 20
    2
    4
    6

    20

  • пʼятниця, 22 травня 2015 р.

    PerfMon for JMeter

    Prerequisites:

    1. JRE 1.6 or above

    2. JMeter 2.8 or above
    Steps:

    Installing Server Agent in Server machine:

    Step 1:  Download ServerAgent-2.2.1.zip from http://jmeter-plugins.org/downloads/all/
    Step 2:  UnZip the ServerAgent-2.2.1.zip in the Server machine(tomcat machine root directory).
    Step 3:  Run the startAgent.sh using sudo.
    Step 4:  We can run startAgent.sh with different arguments and settings. For Instance, running server agent using                           different tcp port instead of default port(4444) like below.
    sudo ./startAgent.sh --udp-port 0 --tcp-port 4560
    Step 5:  Now the Server agent instance is running in the server with tcp port 4444.

    понеділок, 18 травня 2015 р.

    Hadoop в порівнянні з SQL

    Итак, Hadoop - это каркас для обработки данных. Так чем же он лучше стандартных реляционных СУБД, являющихся рабочей лошадкой в современных приложениях для обработки данных? Одна из причин заключается в том, что SQL (структурированный язык запросов) по природе своей ориентирован на работу со структурированными данными. А многие приложения Hadoop имеют дело с неструктурированными данными, например текстовыми. С этой точки зрения, Hadoop предлагает более общую парадигму, чем SQL.

    субота, 9 травня 2015 р.

    CloudStack

    CloudStack —платформа компании Citrix — ключевой компонент портфеля «облачных» продуктов. Она позволяет клиентам легко создавать новые «облака», поддерживает полную изоляцию вычислительных, сетевых и дисковых ресурсов; автоматическое выделение и ограничение ресурсов; содержит инструмент для генерации отчетов и мониторинга в режиме реального времени; упрощает средства для управления инфраструктурой и выполнения ежедневных задач; предоставляет гибкие возможности масштабирования.

    Cloud computing

    Западное и отечественное IT сообщество последние 2-3 года будоражат многочисленные слухи и сплетни об идее Cloud Computing (в переводе на русский «Облачные Вычисления»), которая призвана решить все существующие проблемы и беды. Так что же представляют собой эти «Облачные Вычисления» и в чем их преимущества?

    пʼятниця, 8 травня 2015 р.

    Хостинг, хост

    Сервер (Оборудование)

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

    Порт

    Принципы работы интернет-протоколов TCP/IP по своей сути очень просты и сильно напоминают работу нашей советской почты.

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

    Jenkins

    Посмотрим на CI методом белого ящика. Нужно понимать, что система непрерывной интеграции состоит из множества подсистем. Во-первых, нам нужно система контроля версий (Git, HG и т.д.) из которой будут забираться исходники. Также нам нужен билд-скрипт, который компилирует код и нужны скрипты для развертывания базы данных. Помимо этого нам нужен сервис по запуску сборки, запуску тестов. В зависимости от желания, необходимости и возможностей инструментария можно прикрутить множество рюшечек, например, статический анализ кода, анализ покрытия кода тестами и другие. Таким образом, базовый процесс интеграции выглядит следующим образом: Триггер. Событие, при котором запускается сборка продукта. Таким событием может быть: изменения в коде (push), определенное время, нажатие на кнопку. После срабатывания триггера стартует сборка проекта из исходников. Развертывание базы данных. Развертывание приложения. Тесты. Авто-тесты не являются обязательными, но их выполнение крайне желательно. Это один из важных пунктов хороших практик CI. К тестам мы еще вернемся. Статус, отчеты, уведомления по результатам сборки. После прогона тестов получаем результат сборки, детальные отчеты по каждому из этапов интеграции

    Если на пальцах, то система CI – это некая программа, которая следит за вашим Source Control, и при появлении там изменений автоматически стягивает их, билдит, гоняет тесты (конечно, если их пишут) и возможно делает кое-что ещё.

    Предположим, что у нас есть 2 машины, на одной из них (Master) установлен и запущен Jenkins. Задача добавить вторую машину в Master.

    Доступ из мастера в слейв будет осуществляться по ssh, поэтому нам надо (хотя это совсем необязательно) сделать так, чтобы вход по ssh из мастера в слейв был без пароля, т.е. добавить ssh-ключ мастера в разрешенные ключи слейва. Если по какойто причине вы не хотите это делать, то при настройке Slave машины можно будет все параметры SSH указать.
    Ессно это все будет делаться для пользователя, под которым работает Jenkins, т.е. пользователя jenkins, который создан по умолчанию.

    Генерим ключ для мастера, если он еще не сгенерен:

    ?
    1
    2
    # su jenkins
    # ssh-keygen -b 2048 -t rsa

    Далее надо скопировать этот ключ (id_rsa.pub) на слейв в пользователя jenkins. Либо копипастом либо можно через ssh-copy-id либо как Вам удобно. Я копирую 2ым способом. Для этого нам надо задать пароль для пользователя jenkins на слейве, поскольку он создается без пароля и мы не сможем зайти на слейв ;)

    Ключ скопирован. Теперь надо сказать мастеру, что у него есть слейв. Делается это просто. Заходим в Manage Jenkins -> Manage Nodes, кликаем на New Node и выбираем Dumb Slave

    На следующей странице нужно заполнить следующие поля:
    • # of executors: 2 (число одновременных билдов)
    • Remote FS root: /var/lib/jenkins (в моем случае такой путь)
    • Labels: python27 natty
    • Usage: Leave this machine for tied jobs only
    • Launch method: Launch slave agents on Unix machines via SSH. 
    • Также конечно же необходимо заполнить поле Host field, вписав туда адрес Slave-машины.
     Если вы не настраивали на слейве доступ по ssh-ключу, то под этим полем есть кнопочка Advanced, там можно указать логин/пароль.

    Нажимаем OK и у нас в списке появляется новосозданный Slave. На разных системах оно себя по разному ведет. В мануале написано, что после этого надо кликнуть на новосозданную машину и нажать Launch. У меня оно просто без вопросов подключилось.

    Ну добавляйте сколько угодно компов...



    Взято тут
    тут

    середа, 6 травня 2015 р.

    Архитектура HDFS и типичный Hadoop кластер

    HDFS подобна другим традиционным файловым системам: файлы хранятся в виде блоков, существует маппинг между блоками и именами файлов, поддерживается древовидная структура, поддерживается модель доступа к файлам основанная на правах и т. п.

    Spark

    Когда исследователи университета Беркли начинали разрабатывать Spark, они держали в голове уже сложившуюся к тому времени картину мира больших данных – принцип параллельных вычислений на кластере компьютеров, способном к расширению в ширину, позволял работать с большими объемами информации, но жертвовал скоростью работы в пользу горизонтальной масштабируемости и способности к быстрому восстановлению после системных ошибок. Здесь стоит вспомнить о нашумевшей (и до сих пор популярной) технологии MapReduce, которая примерно до февраля этого года была основной движущей силой экосистемы Apache Hadoop. Действительно эффективная для пакетной обработки данных, эта модель, однако, обладает существенными недостатками.

    Cloudera

    Поставщики Hadoop: Apache, Cloudera, Hortonworks, MapR

    Cloudera. Ключевой продукт — CDH (Cloudera Distribution including Apache Hadoop) — связка наиболее популярных инструментов из инфраструктуры Hadoop под управлением Cloudera Manager. Менеджер берёт на себя ответсвенность за развёртывание кластера, установку всех компонентов и их дальнейший мониторинг. Кроме CDH компания развивает и другие свои продукты, например, Impala (об этом ниже). Отличительной чертой Cloudera также является стремление первыми предоставлять на рынке новые фичи, пусть даже и в ущерб стабильности. Ну и да, создатель Hadoop — Doug Cutting — работает в Cloudera.

    Hadoop

     Hadoop - a software framework for storing, processing and analyzing "big data".
    - is open source
    - is a large ecosystem: Hue, Solr, Flume

    вівторок, 5 травня 2015 р.

    MapReduce

    Это подход, алгоритм, ну или паттерн, тут уж как кто назовет, параллельной обработки больших объемов сырых данных, например результатов работы краулеров или логов веб запросов, вообще по статистике до 80% задач могут маппится на MapReduce, и именно MapReduce драйвит NoSQL. Существуют разные имплементации MapReduce. Достаточно известна и запатентована реализация этого алгоритма и подхода Google. Или как пример MySpace Qizmt — MySpace’s Open Source Mapreduce Framework, также используется в Hadoop, MongoDb и еще много разных примеров можно привести.

    Hadoop: Pig

    Pig - єто расширение Hadoop, призваное упростить програмирование за счет високоуровневого язика обработки данних.
    Pig состоит из двух основних компонентов:
    - язик обработки данних  Pig Latin
    - компилятор

    Oozie – диспетчер потоков работ для платформы Hadoop

    Большие данные в необработанном виде редко соответствуют требованиям Hadoop-разработчика к данным, соблюдение которых необходимо для успешного выполнения задач обработки данных. Обычно перед выполнением любых реальных заданий по обработке данных необходимо применять различные ETL-операции (extract/transform/load - извлечение/преобразование/загрузка) и операции предварительной обработки. Oozie— это инфраструктура, которая помогает автоматизировать этот процесс. Она представляет эту работу в виде воспроизводимых единиц или потоков работ, которые впоследствии можно многократно использовать без написания какого-либо нового кода или новых процедур. В статье описывается применение Oozie при создании различных типов потоков работ.

    More info is here

    понеділок, 4 травня 2015 р.

    JMeter Functions

    1. Referenced as ${__functionName(properties)}
        - Like variables, can use in JMeter properties
    2. Use Options > Function Helper Dialog
        - Choose a function
        - Enter parameter values
        - Click "Generate", then copy/paste function
    3. Helpful functions
        - ${__javaScript(expression to evaluate)}
        - ${__threadNum()}
        - ${__Random(min, max, varname)}
        -  ${__regexFunction(regEx, template, match, ...)}

    Was taken from here

    JMeter Variables

    1. Define global variables
        - Test Plan (root element)
        - Config Element > User Defined Variables
    2. Define virtual user variables
        - Pre processors > User Parameters
        - Config Element > CSV Data Set Config
    3. Reference as ${variableName}
        - Can be used in nearly any property
        - Scope determined by location in hierarchy

    Variables from a CSV file
    1. Create a CSV file with the data you want to use    
         - No label row; save in same folder as .jmx file
    2. Add "Config Element > CSV Data Set Config"
         - Add under the Thread Group that will use it
         - Set Filename = filename.csv
         - Set Variable names = username,password (e.g.)
     3. Set variables in HTTP Request "Send Params"
         - Name = username, Value = ${username}
         - Name = password, Value = ${password}
     4. Will read in data with each new thread, or with loops

    JMeter: parallel test execution

    1. To start, add 3 thread groups under Test Plan
    2. Add HTTP Request to each, with appropriate URLs
    3. Add Listener under Test Plan
    4. Move the 3 requests under one Thread Group
    5. Choose all 3, right click, choose "Insert Parent...". Choose Controller > Random Controller (Simple Controller, If Controller)