Pull to refresh
0
0
Максим Замковой @extazymax

Функциональный консультант

Send message

DIY-творчество с детства: прививаем любовь к самоделкам

Reading time4 min
Views12K


Дети очень быстро учатся — как хорошему, так и плохому. Ну а чем раньше начать обучение правильным вещам, тем быстрее ребенок станет разбираться в премудростях этого знания. Например — работе над самоделками, как электронными, так и вполне обычными, деревянными, пластиковыми, металлическими. Большинство современных детей погружены в свои телефоны и планшеты. Так почему бы не показать им иной способ занять себя, причем способ, который приносит реальный результат? DIY в этом плане — один из лучших вариантов, сегодня об этом и расскажем.

Total votes 20: ↑15 and ↓5+10
Comments12

10 лучших игр о хакинге, кодинге и вычислениях

Reading time11 min
Views97K

Как все знают из новостных лент, мы живём в постоянно эволюционирующей киберпанковской антиутопии. Люди подключают туалеты к Интернету! Если этот гибсоновский мир кажется вам слишком РЕАЛЬНЫМ, то вы можете поиграть в десять лучших видеоигр о взломе, программировании и вычислениях, чтобы сбежать в мета-антиутопию. Которая, я уверен, является намного лучшим местом.


10. TIS-100


[официальный сайт]

Да-а-а, приготовьтесь к тому, что ваш мозг начнёт болеть. TIS-100 — это игра студии Zachtronics, разработчика игр-головоломок, выпустившей Infinifactory и SpaceChem. В маркетинге она позиционируется как «игра о программировании на языке ассемблера, о которой вы не просили», и хотя я обычно игнорирую маркетинговые слоганы, здесь не могу не согласиться.

Игрок получает в своё распоряжение таинственный компьютер из 70-х, найденный в вещах покойного дядюшки. Когда-то он игрался с ним, пытаясь разобраться. Теперь это ваша задача. Если вкратце, то вам нужно получить числа, чтобы провести машину из точки A в точку B, выполнив на каждом уровне «цели» (например, сначала вывести положительное число, а затем отрицательное). Для этого у вас есть список команд, изложенных в смутном руководстве пользователя. Игра советует вам распечатать это руководство в бумажном виде. В нём есть сделанные дядей примечания и пометки маркером, дающие подсказки о сущности этой машины.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments41

Node.js и переход с PHP на JavaScript

Reading time9 min
Views61K
Больше десяти лет я был PHP-разработчиком, но недавно перешёл на JavaScript, используя его серверные и клиентские возможности. До этого я уже был знаком с JS. Сначала работал с jQuery, потом освоил Angular, и, наконец, начал пользоваться React.

Когда я начинал писать на PHP, я встраивал его в HTML-файлы. Получался не код, а полный бардак. Поэтому, для того, чтобы привести мои разработки в приличный вид, я начал пользоваться фреймворками, в частности, ZF1 и ZF2. Через некоторое время подход, при использовании которого начинают разработку с API, привёл к тому, что у меня оказался сервер, состоящий из сгенерированных REST API и из нескольких сотен строк моего собственного кода.



Так как лишь небольшая и не самая важная часть наших проектов была написана на PHP, возник вопрос о том, можем ли мы от него избавиться. И, если можем, чего нам это будет стоить, и что мы от этого получим. В этом материале я поделюсь опытом с теми, кто, как и я, хочет, понимая, что и зачем он делает, уйти из мира PHP и встать под знамёна JavaScript во всех его проявлениях.

Сегодня я расскажу, в основном, о своём путешествии с серверной стороны PHP на серверную сторону JS в виде Node.js. Здесь я не буду рассказывать о Webpack, React и о других клиентских технологиях JS.
Читать дальше →
Total votes 65: ↑52 and ↓13+39
Comments115

Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году

Reading time18 min
Views14K

Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году


КДПВ, ничего интересного


Хочу поделиться решениями одной проблемы, с которой мне пришлось столкнуться, плюс исследование данного вопроса в контексте Java 9.


дисклеймер

Писатель из меня ещё тот (пишу в первый раз), поэтому закидывание вкусными помидорами с указанием причин только приветствуется.
Сразу договоримся, что статья не годится в качестве руководства по:


  • Java 9
  • Elasticsearch
  • Maven

Если по последним именам информации в сети полно, то по первому… со временем появится, по крайней мере здесь есть необходимая информация.


Представим себе простую ситуацию: разворачиваем кластер Elasticsearch и загружаем в него данные. Мы пишем приложение, которое занимается поиском в этом кластере. Поскольку постоянно выходят новые версии Elasticsearch, мы привносим в кластер новые проблемы фичи с помощью rolling upgrade. Но вот незадача — в какой-то момент у нас сменился формат хранимых данных (например, чтобы максимально эффективно использовать какую-то из новых фич) и делать reindex нецелесообразно. Нам подойдёт такой вариант: ставим новый кластер на этих же машинах — первый кластер со старой схемой данных остаётся на месте только для поиска, а поступающие данные загружаем во второй с новой схемой. Тогда нашему поисковому компоненту потребуется держать на связи уже 2 кластера.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

Selenium и Node.js: пишем надёжные браузерные тесты

Reading time12 min
Views48K
Есть много хороших статей о том, как начать писать автоматизированные браузерные тесты, используя версию Selenium, предназначенную для Node.js.



В некоторых материалах говорится о том, как оборачивать тесты в Mocha или Jasmine, в некоторых всё автоматизируют с помощью npm, Grunt или Gulp. Во всех подобных публикациях можно найти сведения о том, как установить и настроить всё необходимое. Там же можно посмотреть простые примеры работающего кода. Всё это весьма полезно, так как, для новичка, собрать работающую среду тестирования, состоящую из множества компонентов, может оказаться не так уж и просто.

Однако, в том, что касается подводных камней Selenium, в том, что относится к разбору лучших практических приёмов разработки тестов, эти статьи обычно ожиданий не оправдывают.

Сегодня мы начнём с того, на чём обычно заканчиваются другие материалы по автоматизации браузерных тестов с помощью Selenium для Node.js. А именно, мы расскажем о том, как повысить надёжность тестов и «отвязать» их от непредсказуемых явлений, которыми полны браузеры и веб-приложения.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments21

Внешние скрипты с доступом к вашим кредиткам и личному кабинету

Reading time4 min
Views27K
image

Скажите, как бы вы отнеслись к тому, чтобы продавцы давали возможность собрать атрибуты ваших карточек, включая номер, фамилию и CVC, какому-то постороннему лицу еще в момент оплаты, а также, без пароля, пускали посмотреть, что вы делаете в личном кабинете какого-то сервиса, кому и сколько платите, например. Сколько у вас телефонов и как вы ими пользуетесь. Т.е. вы входите под паролем, подтверждаете право владения по SMS, зашли, а там народ толпится, кто зашел просто посмотреть. Бред? Тем не менее, так делают многие сервисы. Кем бы вы себя ощущали, если бы в комнате для вскрытия банковских ячеек обнаружили камеру наблюдения? Но, не будем снова о банках, давайте обо всем последовательно.
Total votes 43: ↑40 and ↓3+37
Comments89

UI тесты: Cucumber + Selenide

Reading time8 min
Views68K

Часть 1


Сегодня поговорим о создании UI smoke-теста для сайта с использованием фреймворков Cucumber и Selenide. Статья рассчитана на junior, который совсем ничего не знает про данные фреймворки. Опытный junior найдет во второй части интересные моменты, до которых я доходил пару месяцев.
Статья состоит из двух частей:


  • в первой описано создание нашего теста простейшим способом – чтобы запускалось и при этом никаких сложных вещей из фреймворков не использовалось. Только создадим описание фичи (.feature файл) и класс описания степов с использованием Selenide.
  • во второй части в тот же самый тест добавим всякие интересные штуки от Selenide, посмотрим, как создавать красивые отчеты, которые будут содержать текст фич (мн.ч от слова «фича»).

Фреймворки


Selenide – фреймворк (а точнее библиотека), обертывающий Selenium. Чем он отличается, прекрасно описано автором, Андреем Солнцевым. Главное отличие – Selenide позволяет сократить кучу строчек кода при написании UI тестов, что является одной из главных задач при создании тестов/написании кода, ибо Вы должны заботиться о том тестере, который придет после Вас и должен будет разбирать Ваше творение.


Cucumber – это фреймворк, реализующий подход BDD/TDD.


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments15

OPENTadpole: первое кибернетическое животное

Reading time20 min
Views23K
image

Здравствуйте, уважаемое сообщество GeekTimes! После своего длительного молчания, я хочу представить свой новый проект. OPENTadpole – приложение, состоящее из полноценного редактора нервной системы головастика лягушки и физической эмуляции тела головастика и внешней среды. Возможность с нуля создать, настроить и отредактировать коннектом животного и немедленно увидеть, как Ваше творение отражается в его поведении.


Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments34

Учим Arduino печатать телеграммы

Reading time10 min
Views44K

Небольшой проект на Arduino, который печатает приходящие вам на телефон уведомления: сообщения из разнообразных мессенджеров, новости из Твиттера и всё остальное. Такой «телеграфный аппарат» задумывался как интересная игрушка без серьёзного применения, но, как оказалось, получать сообщения в виде бумажных телеграмм крайне приятно. Под катом — описание работы аппарата и подробный туториал.
Читать дальше →
Total votes 86: ↑86 and ↓0+86
Comments61

Padding Oracle Attack: криптография по-прежнему пугает

Reading time6 min
Views14K

Эту уязвимость чинят уже пятнадцать лет


В хабрапереводе текста четырёхгодовалой давности «Padding Oracle Attack или почему криптография пугает» была подробно описана атака на режим шифрования CBC. В этом режиме каждый очередной блок открытого текста xor-ится с предыдущим блоком шифротекста: в результате каждый блок шифротекста зависит от каждого блока открытого текста, который был обработан к тому моменту.

Чтобы пропустить исходное сообщение (произвольной длины) через CBC-шифр, к нему дописывается MAC (хеш для проверки целостности, обычно 20-байтный SHA-1) и затем padding, чтобы дополнить открытый текст до целого числа блоков (обычно 16-байтных):


Padding («набивка») состоит из одинаковых байтов, на единицу меньших своей длины: (0) или (1,1) или (2,2,2) или т.п.
Таким образом, получатель шифротекста должен
  1. расшифровать все его блоки;
  2. прочитать последний байт последнего блока, чтобы определить длину набивки и, соответственно, позицию MAC в открытом тексте;
  3. проверить корректность набивки и MAC.

В 2002 г. французский криптограф Серж Воденэ обнаружил в CBC уязвимость к атакам типа «padding oracle»:
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments18

Мой опыт проведения курсов по Java для новых сотрудников

Reading time5 min
Views9.7K
Всем привет!

Сегодня практика ведения курсов перед трудоустройством достаточно распространена во многих компаниях, я и сам когда-то начинал свою карьеру с прохождения обучения, но мне всегда было интересно попробовать себя в качестве преподавателя. И этой весной я узнал, что в нашей компании весной-летом пройдут курсы по итогам которых команды пополнятся бойцами по ряду направлений: Android, Java, Javascript и QA. По предложению руководителя отдела, мне и моим коллегам выпала возможность провести курсы по направлению Java. О деталях этого увлекательного мероприятия я и хотел бы рассказать дорогому Хабру.

Читать дальше →
Total votes 20: ↑11 and ↓9+2
Comments17

Кремниевая долина: что изменилось за три года

Reading time4 min
Views30K
Кремниевая долина меняется гораздо быстрее наших представлений о ней. Весной 2014 года мы проходили стажировку в Кремниевой долине во время американского модуля программы Executive MBA Московской школы управления СКОЛКОВО. Мы посещали лекции в Стенфорде, встречались с предпринимателями и венчурными инвесторами, а также работали над собственными проектами. В августе 2017 года, вновь оказавшись в Калифорнии, мы все время задавались вопросами: что происходит в долине сегодня? Что изменилось за прошедшие три года (одно из ключевых изменений, рост числа единорогов — на первом рисунке)? Как эти изменения повлияют на всех нас в следующие три года?

image

Статья получилась большой, поэтому мы разделили ее на три части.
В первой части мы расскажем о развитии enablers и усилении их влияния на трансформацию отраслей. Во второй – о техшопах, общих качествах мобилизаторов и развитии новых компаний через партнерские бизнес-модели. В третьей – приведём яркий пример влияния новых компаний на отраслевые изменения и резюмируем выводы нашего исследования.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments13

Что будет, если запретят Google Global Cache — простым языком

Reading time3 min
Views96K

Сегодня появилась новость, о том, что youtube это плохо Роскомнадзор хочет запретить Google Global Cache. Для обычного пользователя это просто набор слов, который не как не трансформируется в проблемы с каким-то сервисом, которым он пользуется. В этом посте я постараюсь простым языком объяснить что будет, если это произойдет.

Последствия будут катастрофическими. Для всех.
Читать дальше →
Total votes 109: ↑97 and ↓12+85
Comments453

Полтора года работы с SAP hybris: полет нормальный. Самое важное, что вам надо знать о разработке на eCommerce-платформах

Reading time13 min
Views66K
Так получилось, что последние полтора года я плотно работаю с SAP hybris. В России к ecommerce-платформам наблюдается большой интерес, поэтому я решил данной статьей на основе своего опыта рассказать просто и доступно об этой теме.
Итак, самое важное о eCommerce-платформах и разработке под них
Total votes 4: ↑3 and ↓1+2
Comments1

Разработка прибыльной Android игры двумя школьниками

Reading time6 min
Views196K
В данной статье хочу рассказать вам об опыте разработки одной простенькой игры под Android, которая многократно окупилась еще на стадии разработки!

image

Читать дальше →
Total votes 147: ↑138 and ↓9+129
Comments145

Robo(Mini) sumo, что это и с чем его едят?

Reading time7 min
Views16K
Привет, Geektimes!

image

Вступление


Мы давно все знаем о том, что роботы это наше будущее. Существует очень много направлений робототехники. Военные разработки, социальные, развлекательные и просто рабочие роботы.
Но в этот раз я хочу поведать от лица команды Колледжа при МИРЭА о соревновательной составляющей, а в точности про роботов сумоистов.

Немного о нашей команде


Существуем мы с 2014 года. Победители и призеры большинства соревнований Робофинист, Робофест, Спартакиады МФТИ и более мелких турниров, а также являемся абсолютными чемпионами России на 2016-2017 год в номинации мини-сумо.

Кто такие вообще эти роботы сумоисты?


Изначально, когда мы только узнали о таких соревнованиях, сумоистов делали преимущественно из лего. Но это довольно плохая идея, об этом далее.
Полный текст под катом
Total votes 15: ↑15 and ↓0+15
Comments38
Рассказываем о том, как наша облачная платформа улучшила огромных человекоподобных роботов Avatarion, помогающих больным детям оставаться на связи с родными и близкими.
Читать далее
Total votes 17: ↑16 and ↓1+15
Comments0

Дизайн система по Волкову

Reading time4 min
Views14K
image

Приветствую Вас коллеги! В этой статье я бы хотел поделиться опытом создания дизайн-систем. Начитавшись разных умных книжек и насмотревшись полезных видео по этому вопросу, я решил применить знания на практике. После нескольких попыток я выделил для себя важные моменты. Которые опишу в данной статье. Мне очень интересно узнать, как решается вопрос дизайн систем у других практиков, поэтому жду море комментариев.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments18

Spring: ваш следующий Java микрофреймворк

Reading time6 min
Views56K

В этой статье мы поговорим о новой концепции в готовящемся к выходу Spring Framework 5 которая называется функциональный веб-фреймворк и посмотрим, как она может помочь при разработке легковесных приложений и микросервисов.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments42

Selenium для всех: как мы учим QA-инженеров работать с автотестами

Reading time9 min
Views81K


Привет, Хабр! Меня зовут Виталий Котов, я работаю в Badoo в отделе QA, занимаюсь автоматизацией тестирования, а иногда и автоматизацией автоматизации тестирования.


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

Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments42
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity