Pull to refresh
20
0
Влад @werdender

Пользователь

Send message

Сам себе DevOps: как разобраться с доступами в Yandex Cloud

Reading time16 min
Views7.6K

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

Но что делать, если тот самый человек, которому нужно всё настроить — это вы сами? Для этого разберёмся с базовыми особенностями ресурсной модели в Yandex Cloud.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments7

Ересь

Reading time8 min
Views56K
image

Одна из самых удивительных вещей, свидетелем которых я был в своей жизни, — это возрождение концепции “ереси”.

В своей превосходной биографии Ньютона Ричард Уэстфолл пишет о моменте, когда Ньютона избрали членом Тринити-колледжа:

«Получив поддержку, Ньютон мог полностью посвятить себя тому, что он выбрал. Чтобы остаться, ему нужно было только избежать трех непростительных грехов: преступлений, ереси и брака.»


В первый раз, когда я прочитал это в 1990-х годах, это звучало забавно средневеково. “Не вляпаться в ересь”. Но когда я перечитал этот текст 20 лет спустя, фраза прозвучала как описание современной ситуации на рабочих местах.

Количество мнений, за которые вас могут уволить, постоянно растет. Те, кто увольняет, не используют слово «ересь» как обоснование, но структурно они эквивалентны. В структурном отношении ересь имеет две отличительные особенности: (1) она имеет приоритет над вопросом об истинности или ложности и (2) она перевешивает все остальное, что сделал говорящий.

Например, когда кто-то называет утверждение «%%%-истским», он также неявно говорит, что это конец обсуждения. Сказав это, они не продолжают выяснять, верно это утверждение или нет. Использование таких меток является разговорным эквивалентом сигнализации об исключении. Это одна из причин, по которой они используются: чтобы закончить обсуждение.

Если вы обнаружите, что разговариваете с кем-то, кто часто использует эти ярлыки, возможно, стоит прямо спросить его, верят ли они, что детей выплескивают вместе с водой. Может ли утверждение быть %%%-истским для какого-либо значения %%%, а также истинным? Если ответ да, то они признаются в запрете правды. Это достаточно очевидно, и я думаю, что большинство ответит «нет». Но если они ответят «нет», легко показать, что они ошибаются и что на практике такие ярлыки применяются к утверждениям независимо от их истинности или ложности.
Читать дальше →
Total votes 206: ↑186 and ↓20+166
Comments325

Обнаружение препятствий на OpenCV

Reading time3 min
Views9.6K

Моя первая статья на Хабре, не судите строго, надеюсь содержание будет как минимум интересно, а если окажется кому-то полезным - буду просто счастлив!

Не так давно, ко мне в руки попала модель радиоуправляемого катера с мощным бесколлекторным двигателем. Быстро наигравшись с ним, как и в далеком детстве, полез смотреть как устроена игрушка изнутри. Все оказалось настолько просто, что даже мне, не особо разбирающемуся в радиоэлектронике, все было понятно. Первое, что пришло в голову, подключить к сервоприводу и блоку управления двигателем, микрокомпьютер Raspberry Pi. Пусть катер получит зачатки интеллекта и самостоятельно отправится в плавание!

На удивление, с этим тоже не возникло проблем, катер уверенно ориентировался по GPS, ворочал рулем и уверенно проходил контрольные точки. Видеообзор по результатам можно посмотреть в ролике.

По-сути, я столкнулся только с одной проблемой: водоросли и прочий мусор. Для решения этой задачи было решено установить камеру и оснастить катер компьютерным зрением. Было бы здорово, чтобы он не только плавал по координатам, но и уворачивался от препятствий. Многие видели, как библиотеки компьютерного зрения определяют и классифицируют объекты. Но для этого нужны значительные по объему базы данных классификаторов и немалая производительность. А что если мы заранее не знаем какие нам попадутся препятствия? Что если на пути будет просто мусор произвольной формы, цвета и размера? Вот эту задачу мне бы очень хотелось решить!

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments71

Как пробить потолок в английском

Reading time4 min
Views35K

"Учу английский со школы, знаю правила грамматики, словарный запас далеко не на уровне cat/fish/bird. Почему я все равно зависаю на пару минут, чтобы составить предложение, да и не понимаю толком все эти фильмы и книги в оригинале? Где мой свободный английский после стольких лет обучения?"

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments18

Точное определение региона по GPS координатам

Reading time4 min
Views20K
При разработке одного приложения возникла проблема разграничения доступа для регионов.

Встала проблема определения принадлежности объекта к какому-либо региону России по его GPS координатам

Первое, что мы начали использовать — это API Google,
после того как прописали алиасы к возвращаемым строкам и оплаты доступа (чтобы убрать лимит на запросы) все заработало.
И все было нормально пока гугл не сменил выдачу, например было раньше: Moskovskaya oblast', стало Moscow oblast'
Тут то и было решено не надеяться на гугл, а определять регион своими силами.


как мы решили эту задачу
Total votes 15: ↑10 and ↓5+5
Comments25

Нейронная сеть Хопфилда на пальцах

Reading time7 min
Views81K

Статья посвящена введению в нейронные сети и примеру их реализации. В первой части дано небольшое теоретическое введение в нейронные сети на примере нейронной сети Хопфилда. Показано, как осуществляется обучение сети и как описывается ее динамика. Во второй части показано, как можно реализовать алгоритмы, описанные в первой части при помощи языка С++. Разработанная программа наглядно показывает способность нейронной сети очищать от шума ключевой образ. В конце статьи есть ссылка на исходный код проекта.


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments22

Различные опыты с приемом и передачей радиосигналов в ПЛИС

Reading time3 min
Views17K

Поскольку сегодня, 7-го мая, мы отмечаем День Радио, то позвольте представить вашему вниманию серию проектов для FPGA плат, которые были выполнены мной в разное время, но так или иначе связаны с радио. На этом видео выше есть демонстрация маленького чуда — сеанс радиосвязи на столе. Две одинаковые платы с ПЛИС служат одна передатчиком, а другая радиоприемником.
Далее расскажу, как я это сделал.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments6

Все уроки по ардуино

Reading time5 min
Views280K
Однажды появилась необходимость собрать все уроки, обучающие материалы (tutorials) с habrahabr и geektimes в одном месте и немного их систематизировать. В этом сборнике обучаек представлены более 100 статей на тему ардуино с пометкой «tutorial», либо содержащие несложные для новичков проекты на ардуино, а также немного видеоуроков по смежным темам. Статьи разделены на 10 тематик по сферам применения собранных устройств. Также хочется напомнить, что весь обучающий материал, опубликованный на habrahabr и geektimes является интерактивным: в любой момент можно задать вопрос автору в комментариях к статье. Как правило авторы на них отвечают. Этот сборник будет дополняться новыми обучайками (tutorials) по мере их публикации.

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments25

Построение Android приложений шаг за шагом, часть вторая

Reading time11 min
Views56K


В первой части статьи мы разработали приложение для работы с github, состоящее из двух экранов, разделенное по слоям с применением паттерна MVP. Мы использовали RxJava для упрощения взаимодействия с сервером и две модели данных для разных слоев. Во второй части мы внедрим Dagger 2, напишем unit тесты, посмотрим на MockWebServer, JaCoCo и Robolectric.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments0

Все способы вертикального выравнивания в CSS

Reading time6 min
Views775K
image

Я думаю, многие из вас, кому приходилось заниматься версткой, сталкивались с необходимостью выравнивать элементы по вертикали и знают, какие сложности возникают при выравнивании элемента по центру.

Да, для вертикального выравнивания в CSS есть специальное свойство vertical-align с множеством значений. Однако на практике оно работает совсем не так, как ожидается. Давайте попробуем в этом разобраться.

Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments20

Основы Linux от основателя Gentoo. Часть 2 (4/5): Обработка текста и перенаправления

Reading time6 min
Views35K
В этом отрывке вы узнаете про множество интересных и полезных команд по работе с текстовыми данными в Linux. Также даны основы работы с потоками ввода-вывода в bash.



Навигация по основам Linux от основателя Gentoo:

Часть I
  1. BASH: основы навигации (вступление)
  2. Управление файлами и директориями
  3. Ссылки, а также удаление файлов и директорий
  4. Glob-подстановки (итоги и ссылки)

Часть II
  1. Регулярные выражения (вступление)
  2. Назначения папок, поиск файлов
  3. Управление процессами
  4. Обработка текста и перенаправления
  5. Модули ядра (итоги и ссылки)


Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments32

Исследуем результат работы php-транслятора

Reading time17 min
Views25K
Здравствуйте. Думаю, что большинство веб-программистов знает, как работает php-интерпретатор.

Для тех, кто не знает:
Вначале, написанный нами код разбирается лексическим анализатором. Далее, полученные лексемы, передаются в синтаксический анализатор. Если синтаксический анализатор дал добро, то лексемы передаются транслятору, а он, в свою очередь, генерирует так называемые opcodes (operation codes). И только после этого, в дело вступает виртуальная машина PHP (та самая Zend Engine) которая и выполняет наш алгоритм из получившихся opcodes. Opcodes так же называют эдаким php-шным ассемблером.
Данная статья расскажет вам о том, какие opcodes и в каких случаях генерируются. Конечно, рассказать про все opcodes в рамках одной статьи не получится, но в данной статье будет рассмотрен конкретный пример и на его основе мы попытаемся разобраться что к чему у этих opcodes. На мой взгляд, самое главное, что вы узнаете прочитав статью, это то, как на самом деле происходит выполнение ваших исходных текстов и, возможно, это поможет вам в лучшем понимании языка php.

Советую вам налить себе чашечку капучино или просто зеленого чая, т.к. под катом листинги opcodes и php-кода…
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments15

Лекции Технопарка. 2 семестр. Базы данных

Reading time4 min
Views86K


Очередной пост в рамках нашей постоянной рубрики «Лекции Технопарка». В этот раз предлагаем вашему вниманию лекции, посвящённые базам данных. Цель курса — получение студентами знаний в области проектирования реляционных баз данных, эффективной работы с базами данных, оптимизации запросов и схем данных, изучение особенностей использования баз данных в проектах с высокой нагрузкой и/или использующих большие массивы данных, noSQL и его применение для решения прикладных задач в WWW.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments0

Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

Reading time3 min
Views73K


И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments5

Власть над демонами или автозапуск в Linux

Reading time5 min
Views353K
Для реализации автозапуска в Linux написано уже немало и на разных языках, но приходится искать, потому постарался свести большую часть тут. Здесь не рассказывается полностью весь процесс с нуля, но предоставлено достаточно информации и ссылок, чтобы сделать атоматический запуск программ в Linux реальностью.
Читать дальше →
Total votes 36: ↑27 and ↓9+18
Comments13

Пример простейшего cgi сервера

Reading time7 min
Views40K
Думаю многие знают, как работает CGI взаимодействие между клиентом и сервером: клиент получает от сервера и отдает серверу данные через стандартные stdin и stdout. Многие наверное даже сами писали CGI клиентов, ведь по сути — любой скрипт для веб-сервера это и есть CGI-клиент.
А многие ли задавались вопросом, как именно происходит эта «магия»? Каким образом стандартные функции для ввода/вывода вместо экрана взаимодействуют с сервером?

Результаты поиска ответа в сети меня не удовлетворили и я решил сам написать простейший CGI сервер, который сможет:
  • Запускать дочерний процес — CGI скрипт
  • Передавать скрипту переменные окружения и переменные командной строки
  • Принимать от скрипта ответ
  • Завершаться, когда завершится процесс клиента

Кроме этого, мне хотелось, чтобы клиент и сервер компилировались как в Windows, так и в Linux.
Подробности
Total votes 23: ↑16 and ↓7+9
Comments2

Если вы решили перейти с PHP на Python, то к чему следует подготовиться

Reading time14 min
Views190K
Думали ли вы когда-нибудь о том, что однажды слишком быстро втянулись в веб-программирование на PHP? И вот уже прошло много лет, у вас хороший опыт, и вы не думаете ни о каких других способах „делать“ веб, кроме как на PHP. Может быть, у вас возникают сомнения в правильности выбора, однако непонятно, как найти способ быстро его проверить. А хочется примеров, хочется знать, как изменятся конкретные аспекты деятельности.

Сегодня я попробую ответить на вопрос: «А что если вместо PHP писать на Python?».

Сам я долгое время задавался этим вопросом. Я писал на PHP 11 лет и даже являюсь сертифицированным специалистом. Я научился его «готовить» так, чтобы он работал в точности, как мне надо. И когда я в очередной раз читал на Хабре перевод статьи о том, как всё в PHP плохо, я просто недоумевал. Однако подвернулся случай пересесть на Ruby, а потом и на Python. На последнем я и остановился, и теперь попробую рассказать вам PHP-шникам, как нам питонистам живётся.


Python с точки зрения PHP-программиста...
Total votes 122: ↑116 and ↓6+110
Comments205

Android UI thread

Reading time4 min
Views69K
Большая часть кода Android приложения работает в контексте компонент, таких как Activity, Service, ContentProvider или BroadcastReceiver. Рассмотрим, как в системе Android организованно взаимодействие этих компонент с потоками.
Читать дальше →
Total votes 36: ↑30 and ↓6+24
Comments16

Основы верстки для нативных андроид приложений

Reading time9 min
Views149K
В этом посте будут рассмотрены вопросы верстки при создании нативных приложений для android. Той верстки, которая описывается в xml файлах из директории res/layout/ Итак начнем:
Существует пять стандартных типов верстки:
  • AbsoluteLayout
  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • TableLayout

Дальше
Total votes 59: ↑45 and ↓14+31
Comments26

Information

Rating
Does not participate
Location
Абакан, Хакасия, Россия
Date of birth
Registered
Activity