GDG DevFest Voronezh: віртуальні кошенята, бесіди з колонкою і Mannequin Challenge

Воронезьке спільнота Google Developer Group, якому в листопаді виповнилося сім років, в п'ятий раз зібралися на конференції GDG DevFest Voronezh. Конференція тривала два дні: перший присвятили доповідей і виступів, другий — «залізному» воркшопу.
Спочатку давайте подивимося коротке відео, як все пройшло.


Читати далі →

Стильний код на Python, або вчимося використовувати Flake8


Автор: Анатолій Соловей, developer

Мова програмування Python дуже затребуваний на сучасному ринку, він розвивається з дня на день, і навколо нього склалося активне співтовариство. Щоб уникнути конфліктів між розробниками-питонистами, творці мови написали угоду PEP 8, описує правила оформлення коду, проте навіть там зазначено, що:
Many projects have their own coding style guidelines. In the event of any conflicts, such project-specific guides take precedence for that project.
В результаті додавання нових правил кількість вимог до оформлення коду збільшилася настільки, що утримати їх в голові стало дуже важко. При цьому звернення до гайдів може займати багато часу і відволікати від процесу розробки.

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

Коли кожен апдейт проходить суворий код рев'ю, що включає в себе перевірку стилів, подібні помилки можуть дуже сильно сповільнювати процес розробки. А якщо помилки в підсумку не помітять навіть в процесі рев'ю, в системі контролю версій проекту дуже скоро з'явиться купа нечитаемого і незрозумілого коду.

На допомогу в цьому випадку приходять линтеры — інструменти, контролюючі оформлення коду у проекті. Саме вони допомагають підтримувати чистоту і, в нашому випадку, запобігати створення комітів, які можуть містити помилки. Я для контролю якості використовую Flake8 і зараз постараюся пояснити, чому вибрав саме його, і розповім, як його налаштувати, щоб отримати максимальний результат. Зацікавилися? Ласкаво просимо під кат.


Читати далі →

SQL: пара прийомів в SELECT-запиті


Автор: Юрій Циганенко, Senior QA

Тестування нових функцій часто проводять на даних, взятих з вже функціонуючої системи. У цьому випадку тестувальникам іноді доводиться будувати запити для хитрих випадків. Наприклад, потрібно протестувати нову функціональність інтернет-магазину, причому грають роль інтервали між покупками. Нам доступні дані з працюючої версії можна завантажити їх на тестовий стенд і перевірити роботу нової версії продукту. (NB!: звичайно, маючи справу з «живими» даними, потрібно виключити з них приватну інформацію і забезпечити можливість логіна цікавлять нас користувачам).

Для вибору цікавих нам користувальницьких акаунтів потрібно зіставити максимальні інтервали між покупками в різних користувачів.

Від тестувальника потрібно побудувати SQL-запит, видає N користувачів, у яких інтервали між датами замовлень будуть найбільшими.

Аналогічні завдання і їх розбір — під катом.

Читати далі →

Використання ES6 генераторів на прикладі koa.js


Автор: Олександр Трищенко, Senior Front-end Developer, DataArt

Зміст
• Ітератори. Генератори.
• Використання генераторів (Redux, Koa)
• Навіщо нам використовувати koa.js
• Майбутнє. Async Await і koa.js 2.x


Генератори — нова специфікація, нова можливість, яку ми можемо використовувати в ECMAScript 6. Статтю я почну з розповіді про итераторах, без яких зрозуміти генератори не вийде, розповім безпосередньо про специфікацію і про те, що таке генератори взагалі, про їх використання в реальних кейсах. Розглянемо два приклади: React + Redux як фронтненд-випадок і koa.js як бекенду. Потім детальніше зупинюся на koa.js, майбутньому JavaScript, асинхронних і функціях koa.js 2.
Читати далі →

DataArt і GDG запрошують на РИФ-Воронеж 2016



Якщо ви працюєте в IT і живете в Воронежі, то вже знаєте, що таке РИФ-Воронеж. Російський інтернет-форум — два дні, коли тисячі однодумців збираються обговорити найактуальніші проблеми, поділитися досвідом і розповісти про свої проекти.Google Developer Group VRN і компанія DataArt, які щороку влаштовують найбільші у Воронежі IT-конференції (GDG DevFest, IT NonStop та інші), запрошують на РИФ 16 і 17 вересня.

Якщо приїхати в Воронеж не вийде, а брати участь хочеться, дивіться онлайн-трансляцію на сайті конференції. Але, якщо можливість відвідати форум наживо все ж є, приходьте обов'язково. Адже досвід РИФ — не тільки знання, які ви отримаєте від експертів, але й море нових знайомств та спілкування з однодумцями.

Читати далі →

Ігор Илюнин: «Замовник попросив зібрати команду, якій не знайшов у Кремнієвій долині»



«Інтернет речей» — напрям, на якому розвиток йде з неймовірною швидкістю, де навіть стратегічні плани доводиться переглядати чи не щороку. Про те, чим живе передній край ІТ, як змінилися підходи до найму і навчання інженерів, які перспективи це відкриває для молодих фахівців, розповів Ігор Илюнин, лідер IoT-практики DataArt.

В. І.: Близько півтора років тому ми зрозуміли, що в області IoT починає дути вітер трохи в іншу сторону. Раніше клієнтів цікавили підключення пристроїв, знання конкретних протоколів обміну даними між ними, різні типи підключення до мережі, побудова інфраструктури на рівні пристроїв. Але в цей момент до нас прийшли відразу кілька замовників – досить великих компаній, причому одним з них був виробник комп'ютерної техніки. Ця компанія збиралася будувати власний IoT-cloud, який би обслуговував всіх їх клієнтів, хотіла забезпечити переміщення даних, самостійно їх обробляти, дозволивши самим клієнтам робити кастомізацію. Тобто створити платформу на всі випадки життя. При цьому вони озвучили список сучасних технологій, якими повинні володіти інженери постачальника, і на той момент у всій компанії ми знайшли лише пару людей, які хоча б частково задовольняли цим вимогам. Треба сказати, що і сам замовник казав: «нам потрібна команда у 3-4 людини, які будуть працювати над нашим проектом — у Кремнієвій долині ми таких не знайшли». Ми побачили у цьому відмінну можливість — тоді з'явився концепт внутрішньої Big Data академії.
Читати далі →

Хобі-проекти: lets-meet.ru — куди підемо в п'ятницю


Автор: Артем Трубачов

Ідея створення програми народилася, коли ми з колегами в черговий раз збиралися піти в бар, але ніяк не могли домовитися про дату. Всі ми люди дорослі, і вільного часу у нас, звичайно, мало. lets-meet.ru створений якраз щоб визначити, коли всім буде зручніше зібратися.

У двох словах, це працює так: ви створюєте зустріч і вказуєте варіанти дати, часу і місця. Також можна додати додаткові питання.
Читати далі →

Автоматизація мобільних додатків на базі Appium


Автор: Антон Сирота (QA, Automation)

У цій статті, заснованої на лекції, яку я нещодавно читав, ми розглянемо фреймворк Appium. Це вступний матеріал, призначений для розуміння, як в принципі відбувається автоматизація мобільних додатків, що для цього потрібно з чого, власне, починати роботу і з якими труднощами доведеться зіткнутися.

Автоматизація мобільних додатків — відносно нове явище, але попит на неї постійно зростає. Дещо-які труднощі є і з Appium, хоча в цілому процес автоматизації з його використанням вже налагоджений.

Зміст
 Оточення для мобільного автоматизації
 Пошук і робота з елементами
 Робота з драйвером
 Робота з контекстами
 Емулятор або реальний пристрій?
 Можливі проблеми/труднощі
 Процес мобільного автоматизації
 Хмарні сервіси
Читати далі →

Хобі-проекти: chip-in.me — хто, кому і скільки



Мене звуть Олександр Кашеверов (@kashesandr), я займаюсь веб-розробкою в DataArt з 2011 року. Люблю веб, гру «любоеслово точка JS», спонтанні вилазки з друзями на природу. І з цими вилазками часто виникала одна і та ж проблема: коли скидалися на їжу для 14 – 15 осіб, було складно зрозуміти, хто і кому скільки грошей потім повинен…

Практикуючись в новій для себе технології, я заодно написав невелику утиліту, завдання якої — спрощувати життя в таких випадках. Так з'явився крихітний сайтchip-in.me. Все гранично просто: вписуємо людей, їх внесок в загальну купівлю (тільки з рівними частками!), натискаємо кнопку і отримуємо результат — хто, кому і скільки повинен віддати грошей, з іменами і сумами. Результатом можна поділитися з друзями.

Читати далі →