понедельник, 26 июня 2017 г.

Как загрузить данные из файла в табличку Oracle

Допустим, входной файлик выглядит так — test.csv:

HID_PARTY;HID_EXTERNAL
11;22
15;39
...

Как загрузить эти данные в Oracle?

1. Через WBImport в Workhbench


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

WbImport -file=test.csv
         -type=text
         -table=TMP$HID
         -encoding="UTF-8"
         -mode=insert
         -header=true
         -decode=false
         -delimiter=';'
         -fileColumns=hid_party, hid_external
         -quoteCharEscaping=none
;

Если бы в файле были колонки с датами, добавились бы еще параметры:

         -dateFormat=yyyy-MM-dd
         -timestampFormat=yyyy-MM-dd HH:mm:ss

Когда создаем новый скрипт, то все, что меняет — это

  • файл, откуда грузить;
  • таблицу, куда грузить;
  • ее колонки (простое перечисление).

2. Import Data в SQL Developer

четверг, 22 июня 2017 г.

Панбагон. Стек-трейс во всю страницу при загрузке файла

Хочу халатик заказать. Нагуглила сайт http://moihalat.ru/.
Там, в целом, симпатичные эмблемы, но не зря же кнопочка «загрузить», верно?


Вдруг это не только для полотенец, но и для халатов?

Нажимаю «загрузить», заполняю все поля (телефон, емейл, аттач), сохраняю и... Ой



Тут очень хочется поерничать на тему php Smile :)
Но на любом языке можно написать необработанное исключение так, чтобы у тебя аж код пользователю показывался!

Давайте оформим баг по шаблону:

Как обрезать видео (утилита)

Скриншот из видео
Утилита — ffmpeg.
Гуглим ее и скачиваем.

Далее работаем в консоли:

ffmpeg -i input.avi  -ss 0 -t 800 test.avi result.avi

Где:
-ss 0 - это стартовая секунда видео
-t - это количество секунд, через которое видео закончится (необязательный параметр, если не указать, будет до конца видео)
test.avi — путь к исходному файлу (если вызывать консоль там же, где и файл, то весь путь не надо, только название)
result.avi — путь к итоговому файлу (если хотим положить обработанный файлик рядышком). Если не указать, перезатрется исходный файл! Форматы файлов обязательно должны совпадать!

Пример — мы ездили в крытый Пандпарк, записали видео прыжка с 8 метров. Записывать видео коллега стал слишком рано и первые 29 секунд ничего не происходит.  Пока инструктор объясняет что да как, пока я переживаю и боюсь прыгать... На видео просто скукота, не видно же страданий! Так что мне надо было вырезать первые 29 секунд.

Захожу в командной строке в папку и ввожу команду:

ffmpeg -i 8_meter.mp4  -ss 29  8_meter_result.mp4

И вот результат! Никаких 29 секунд ничего-не-делания =)))

Тестировщикам может пригодиться, если делаете видео для разработчиков. Ну и вообще полезная штука! Smile :)

Склейка видео:

ffmpeg -i "concat:00000.MTS|00001.MTS|00002.MTS|00003.MTS" -c copy output.MTS

понедельник, 19 июня 2017 г.

Мнемоники от моих студентов

На моем курсе «Школа для начинающих тестировщиков» есть творческое задание — придумать свою мнемонику по тестированию! Разумеется, оно необязательное 

Но у ребят такие классные мысли возникают, что я просто не могу ими не делиться! Вот, например, очень важная для тестировщика мнемоника:

АГУ

А — анализируй,
Г — границы проверяй,
У — уточняющие вопросы задавай.



В этом посте буду собирать все мнемоники ребят в одном месте. Наслаждайтесь! 
Записывать буду в формате «Имя автора — перечисление его мнемоник», чтобы потом не гадать «у кого там было про зонтик?»:

Мнемоники от Наили: Еж, Агу и Зонтик

На моем новом курсе «Школа для начинающих тестировщиков» есть творческое задание — придумать свою мнемонику по тестированию! Разумеется, оно необязательное 

Хочу показать вам очередной шедерв — от Наили.

1. АГУ

А — анализируй,
Г — границы проверяй,
У — уточняющие вопросы задавай.

Анализируй, проверяй, вопросы задавай!














2. Ёж

Ё — ё
Ж — жизненно важно проверить.














пятница, 16 июня 2017 г.

Задачка по SQL. Найти объединенные данные

У нас можно объединять несколько карточек в одну. Вот, например, были карточки id = 1 и id = 2, которые потом объединились в id = 11.

слияние.jpg

Как это выглядит в базе данных:

1. В таблице самих карточек есть колонка Merged_status, принимает значения:
  • 0 — не объединялась никогда и не результат объединения;
  • 1 — объединена (id = 1 и id = 2)
  • 2 — результат объединения (id = 11)

id_party
Merged_status
1
1
2
1
11
2

2. Есть отдельная табличка MERGED, в которой указано, кто, в кого и когда был объединен.
  • id_party — идентификатор исходной записи, которая была объединена;
  • id_final — идентификатор результата объединения;
  • created — дата объединения;
  • cancelled — дата разъединения (не будем вникать в технические детали, просто такое может быть и тогда она будет непустой).

Для нашего случая:

id_party
id_final
created
cancelled
1
11
15.06.2017

2
11
15.06.2017



Задачка

Где-то в другой системе решили сопоставить свои идентификаторы и наши. Нашли случаи, когда клиент вроде как один в системах A, B, C, но у нас он не объединен. Выгрузили, получился csv файлик такого содержания

четверг, 15 июня 2017 г.

Контент-маркетинг. Артем Сенаторов


Ссылка на OZON, Альпину.

Эту книгу я купила на конференции Russian Content Marketing 2016. Хотелось почитать что-то «для совсем новичков» на эту тему, мне посоветовали эту книжку.

Что я могу сказать? Книга очень легко читается. Прочитала буквально за несколько присестов. Это безусловно плюс. А еще автор — создатель популярного сообщества «Литорг» и автор других кижек-хитов про соцсети (как вести бизнес в ВК и Инстраграмме, по книге на соцсеть). Несмотря на наличие других книг, к нему подходили люди и говорили: «Ну ок, мы поняли, что нам это нужно. А как это делать?». Так и появилась книга про контект-маркетинг.

Для тех, кто хочет просто узнать, ху из ху, отличная книга! Автор рассказывает о том, как создавать материал. Какой это должен быть материал. Как часто что-то постить и какие рубрики делать. В какую соц сеть лучше выйти и почему (в каждой своя аудитория). И "больше" — не значит лучше. Если прийти в 10 соцсетей, то в итоге будет унылось, в одну запостил и везде копипаста. Лучше прийти в парочку, но качественно.

А еще очень важно — чтобы за это отвечал отдельный человек. А то ведь часто как бывает? Уже есть человек, которому навязывают новую работу, отвечать за соцсети. Но и свою работу изволь выполнять! Так оно не работает, потому что развитие социальных медиа требует времени и сил.