Search
Write a publication
Pull to refresh
4
0
Send message
Мы на Хабр Карьере проанализировали более 13 000 зарплат IT-специалистов во втором полугодии 2021 года, рассказываем, что получилось.
Медианная зарплата среди всех IT-специалистов сейчас 140 000 ₽. В Москве средний заработок айтишников самый высокий — 175 000 ₽, в Петербурге платят уже немного меньше — 150 000 ₽, в остальных регионах ребята получают 115 000 ₽. Уровень зарплат в этот период вырос на 17% по сравнению с первым полугодием 2021 года. В основном на это повлиял рост зарплат в регионах.
Хочу узнать подробности!

DIY зарядка для Tesla. Как устроен J1772? Делаем свой wallconnector с куртизанками

Reading time5 min
Views30K

Может ли автомобиль загореться от плохого зарядного устройства? Зарядное устройство переменного тока для электромобилей с протоколом J1772 по сути своей не зарядное устройство. Я решил сделать свой Wallconnector с бюджетом до 10.000 руб. и разобраться как все работает. Опыты с электричеством опасны! Не повторяйте это дома, или повторяйте....решать Вам!

Сделай свою зарядку сам, тыжпрограммист

Читать далее

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

Reading time10 min
Views20K


На Тостере часто спрашивают о том, как сделать интерактивную схему дома, план его внутреннего устройства, возможность выбора этажей или квартир с выводом информации о них, вывод информации о деталях того или иного товара при наведении мыши на них на фотографии и.т.д. Речь там идет не о трехмерной модели, а именно о картинке с возможностью подсветить те или иные детали. Все эти задачи похожие и решаются достаточно просто, но тем не менее вопросы продолжают появляться, так что сегодня мы рассмотрим, как подобные вещи делаются при помощи SVG, графического редактора и щепотки javascript.

Нарастающий итог в SQL

Reading time10 min
Views153K
Нарастающий (накопительный) итог долго считался одним из вызовов SQL. Что удивительно, даже после появления оконных функций он продолжает быть пугалом (во всяком случае, для новичков). Сегодня мы рассмотрим механику 10 самых интересных решений этой задачи – от оконных функций до весьма специфических хаков.
Читать дальше →

Простые эксперименты с микроконтроллером STM32F103 («Голубая таблетка»)

Reading time4 min
Views82K


Многие приобрели «голубую таблетку» на попробовать. Но из-за сложности программирования данная вещь оказалась где то на полке, до лучших времен.

Будем считать, что «лучшие времена» — наступили.
Читать дальше →

Конечный автомат (он же машина состояний) на чистом С

Reading time5 min
Views133K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

Собственно через регулярные выражения я к ним и пришёл.
Читать дальше →

Создаем конвейер потоковой обработки данных. Часть 1

Reading time5 min
Views7.6K
Всем привет. Друзья, делимся с вами переводом статьи, подготовленным специально для студентов курса «Data Engineer». Поехали!



Apache Beam и DataFlow для конвейеров реального времени


Сегодняшний пост основан на задаче, которой я недавно занимался на работе. Я был действительно рад, воплотить её и описать проделанную работу в формате блогпоста, поскольку это дало мне возможность позаниматься дата-инжинирингом, а также сделать что-то, что было бы весьма полезным для моей команды. Не так давно я обнаружил, что в наших системах хранится достаточно большой объем пользовательского лога, связанных с одним из наших продуктов для работы с данными. Оказалось, что никто не использовал эти данные, поэтому я сразу заинтересовался тем, что мы могли бы узнать, если бы начали регулярно анализировать их. Однако на пути было несколько проблем. Первая проблема заключалась в том, что данные хранились во многих различных текстовых файлах, которые не были доступны для мгновенного анализа. Вторая проблема заключалась в том, что они были сохранены в закрытой системе, поэтому я не мог использовать ни один из моих любимых инструментов для анализа данных.
Читать дальше →

А вот вы говорите Ceph… а так ли он хорош?

Reading time19 min
Views43K


Я люблю Ceph. Я работаю с ним уже 4 года (0.80.x — 12.2.6, 12.2.5). Порой я так увлечен им, что провожу вечера и ночи в его компании, а не со своей девушкой.
 Я сталкивался с различными проблемами в этом продукте, а с некоторыми продолжаю жить и по сей день. Порой я радовался легким решениям, а иногда мечтал о встрече с разработчиками, чтобы выразить свое негодование. Но Ceph по-прежнему используется в нашем проекте и не исключено, что будет использоваться в новых задачах, по крайней мере мной. В этом рассказе я поделюсь нашим опытом эксплуатации Ceph, в некотором роде выскажусь на тему того, что мне не нравится в этом решении и может быть помогу тем, кто только присматривается к нему. К написанию этой статьи меня подтолкнули события, которые начались примерно год назад, когда в наш проект завезли Dell EMC ScaleIO, ныне известный как Dell EMC VxFlex OS.


Это ни в коем случае не реклама Dell EMC или их продукта! Лично я не очень хорошо отношусь к большим корпорациям, и черным ящикам вроде VxFlex OS. Но как известно, всë в мире относительно и на примере VxFlex OS очень удобно показать каков Ceph с точки зрения эксплуатации, и я попробую это сделать.

Читать дальше →

Сeph — от «на коленке» до «production» часть 2

Reading time8 min
Views11K

(первая часть тут: https://habr.com/ru/post/456446/)


CEPH


Введение


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

Читать дальше →

Сeph — от «на коленке» до «production»

Reading time22 min
Views23K

Выбор CEPH. Часть 1


У нас было пять стоек, десять оптических свичей, настроенный BGP, пару десятков SSD и куча SAS дисков всех цветов и размеров, а ещё proxmox и желание засунуть всю статику в собственное S3 хранилище. Не то чтобы это всё было нужно для виртуализации, но раз начал использовать opensource — то иди в своём увлечении до конца. Единственное, что меня беспокоило — это BGP. В мире нет никого более беспомощного, безответственного и безнравственного, чем внутренняя маршртутизация по BGP. И я знал, что довольно скоро мы в это окунёмся.



Задача стояла банальная — имелся CEPH, работал не очень хорошо. Надо было сделать "хорошо".
Доставшийся мне кластер был разнородным, настроенным на скорую руку и практически не тюнингованным. Он состоял из двух групп разных нод, с одной общей сеткой выполняющей роль как cluster так и public network. Ноды были набиты четырьмя типами дисков — два типа SSD, собранными в два отдельных placement rule и два типа HDD разного размера, собранными в третью группу. Проблема с разными размерами была решена разными весами OSD.


Саму настройку разделили на две части — тюнинг операционной системы и тюнинг самого CEPH и его настроек.

Читать дальше →

Назад к микросервисам вместе с Istio. Часть 1

Reading time13 min
Views169K


Прим. перев.: Service mesh'и определённо стали актуальным решением в современной инфраструктуре для приложений, следующих микросервисной архитектуре. Хотя Istio может быть на слуху у многих DevOps-инженеров, это довольно новый продукт, который, будучи комплексным в смысле предоставляемых возможностей, может потребовать значительного времени для знакомства. Немецкий инженер Rinor Maloku, отвечающий за облачные вычисления для крупных клиентов в телекоммуникационной компании Orange Networks, написал замечательный цикл материалов, что позволяют достаточно быстро и глубоко погрузиться в Istio. Начинает же он свой рассказ с того, что вообще умеет Istio и как на это можно быстро посмотреть собственными глазами.

Istio — Open Source-проект, разработанный при сотрудничестве команд из Google, IBM и Lyft. Он решает сложности, возникающие в приложениях, основанных на микросервисах, например, такие как:
Читать дальше →

Jenkins для Android сборки, с помощью Docker

Reading time14 min
Views15K
Всем привет!

Я работаю андроид разработчиком, и не так давно мы столкнулись с некоторыми рутинными задачами на своем проекте, которые хотелось бы автоматизировать. Например у нас 5 разных flavor, для каждого из которых требуется загружать свой билд на fabric, иногда для разных тасок по несколько раз в день. Да эту задачу можно сделать и с помощью gradle таски, но хотелось бы не запускать этот процесс на машине разработчика, а делать это как-то централизовано. Или например автоматически заливать билд в google play в бету. Ну и просто хотелось поковырять CI систему. Что из этого получилось, и как мы это настраивали, зачем там Docker, далее в статье.


Читать дальше →

Пишем Android-приложение на ассемблере

Reading time5 min
Views24K
image

Эта рассказ о нестандартном подходе к разработке Android-приложений. Одно дело — установка Android Studio и написание «Hello, World» на Java или Kotlin. Но я покажу, как эту же задачу можно выполнить иначе.
Читать дальше →

Погружаемся в opensource-экосистему Android

Reading time10 min
Views69K
Disclaimer о том, что пост не призывает к радикальным формам фанатизма

Каждый выбирает свой "уровень погружения". Вам не обязательно следовать каждому пункту из этого поста. Моя цель — показать, насколько хорошо развита экосистема на данный момент и чего вы можете и не можете от неё получить. Делайте выводы самостоятельно. Хотите — меняйте прошивку полностью и переходите на microg. Хотите — просто поставьте на свой телефон f-droid прямо рядом с gplay. Хотите — не делайте ничего.


Давайте поговорим об экосистеме приложений свободных приложений с открытым исходным кодом на Android. Попробуем установить MicroG — свободную реализацию сервисов Google на Android. Посмотрим, как и зачем со всем этим жить.


Несколько причин, почему стоит об этом задуматься


Google Play далеко "не торт"


Далеко ходить не нужно, в соседних постах можно найти множество примеров того, как разработчиков выгоняют из Google Play по тем или иным причинам, заставляя общаться с ботами без возможности реальной аппеляции. Некоторые типы приложений теперь принципиально невозможно распространять (например, блокировщики рекламы, да и в принципе приложения обхода любых ограничений).


Мне, как параноику, не нравится, что у стороннего лица появляется практически полный доступ к моему устройству. Google способен как минимум удалить с моего телефона любое приложение в любой момент и собрать с него произвольные данные. Более того, google play service — это огромное (стандартная поставка — 600Мб, минимальная — 95Мб) количество постоянно обновляющегося кода, часть которая работает с системными привилегиями. Для сравнения, дистрибутив MicroG может весить всего 4Мб.

Читать дальше →

С облаков на землю: как создать production-grade Kubernetes в любых условиях

Reading time15 min
Views6.4K
Всем добра! Ну вот и подошло время для очередного нашего курса по Девопсу. Наверное, это один из самых стабильных и эталонных курсов, но при этом и самый разнообразный по обучающимся, так как ни одна группа ещё не была похожа на другую: то в одной разработчики почти полностью, то в следующей инженеры, то админы и так далее. А так же это значит, что пришла пора интересных и полезных материалов, а так же онлайн-встреч.

image
Читать дальше →

О создании бюджетных стереоизображений на пальцах (стереограмма, анаглиф, стереоскоп)

Reading time8 min
Views27K
Пришли очередные выходные, надо написать пару десятков строк кода и нарисовать картинку, да лучше не одну. Итак, на прошлых и позапрошлых выходных я показал, как делать трассировку лучей и даже взрывать всякое. Это многих удивляет, но комьпютерная графика — очень простая вещь, пары сотен строк голого C++ вполне хватает на создание интересных картинок.

Тема сегдоняшнего разговора — бинокулярное зрение, причём сегодня даже до ста строк кода не дотянем. Умея рендерить трёхмерные сцены, было бы глупо пройти мимо стерепар, сегодня будем рисовать примерно вот такое:


Читать дальше →

Как я начал бояться и разлюбил Windows 10

Reading time4 min
Views177K


Lego выпустила специальные тапочки, чтобы избавить пользователей от боли. А что сделал ты, Microsoft?


На обновлении Windows 10 (сейчас у меня сборка 1803) каждый раз замирает сердце — что поломается на этот раз. Дабы поделиться болью и лечением, я собрал самые частые обращения от людей за последние пару месяцев. В копилке: прекращение доступа на серверы, сбой работы приложений и откровенно странные глюки.

И да начнется рефлексия

Opensource контроллер умного дома на базе Arduino Mega 2560 с поддержкой MQTT, DMX-512, 1-Wire, Modbus и Openhab

Reading time12 min
Views43K
Сегодня я решился вынести на суд общественности проект, работу над которым вел на протяжении последней пары лет: «LightHub». То, что получилось в итоге, можно назвать, пожалуй, самым дешевым решением для создания Умного дома, которое, тем не менее, умеет:

  • Управлять освещением и силовыми устройствами(Реле, диммеры DMX-512 и Modbus RTU)
  • Управлять теплыми полами (в качестве термодатчиков используются полтора десятка дешевых DS18B20, разведенных по квартире)
  • Управлять задвижками вентиляции/кондиционера
  • Управлять самодельной системой приточной вентиляции.
  • Многое такого, о чем я изначально не задумывался, просто в силу того, что контроллер получился абсолютно открытым, гибко конфигурируемым, и прекрасно дополняющим Опенсорсные решения Openhab+Mosquitto+NodeRed

На вход контроллера подключаются обычные выключатели, кнопки, контактные датчики, датчики протечки и пр. которые могут управлять как локальными нагрузками так и устройствами, подключенными к другим таким же контроллерам или ко всему, что понимает протокол MQTT. У меня, например, подключен геркон, установленный в коробке входной двери. Когда закрываю замок на три оборота — выключаются свет, теплые полы, бойлеры, AV ресивер. Когда возвращаюсь — состояние этих приборов восстанавливается как было до ухода.

На выход — например, такие вот релейные модули, DMX, Modbus переферия.

Контроллеры конфигурируются при помощи JSON файлов, которые при старте контроллера загружаются по http (далее, конфиг можно сохранить в NVRAM через Serial CLI). Ну и, конечно, все это управляется системой Openhab 2, через штатное мобильное приложение.
Задачи «малой автоматизации» решены как при помощи штатных openhab rules (не очень удобных), так и при помощи NodeRed. (По поводу NodeRed вот статья, которая прекрасно описывает пример автоматизации.)

Исходники, вместе с примерами конфигов, выложены на GIThub, описание понемногу выкладываю на сайте проекта. Соответственно, более полная история под катом.
Читать дальше →

О Тульпах

Reading time7 min
Views65K

image


Примечание переводчика: я втянулся в тему тульп со старой статьи на хабре и уже лет пять продолжаю изучать этот забавный феномен. Далее представлен перевод статьи одного из членов сообщества на тему идей, как множественность личностей работает в мозгу. Я постарался добавить сопроводительный контекст, но советую прочитать статью по ссылке выше для общего понимания идеи. Как всегда, спасибо pfactum за граммар-нацизм и редактирование.


Тульпы. Сообщество со странными идеями и целями, объединённое мистической терминологией. Десятки людей, практикующих форсинг, гипноз, изменяющих своё сознание, медитирующих, пытающихся справиться со своими заболеваниями. Все они собрались вместе из-за общей цели: создать то, что Википедия называет «воображаемым другом». Но что такое тульпы на самом деле?

Читать дальше →

Как заварить чай по MQTT или доступная умная розетка с контролем температуры и тока

Reading time19 min
Views46K

Зачем?


Даже в этом хабе наблюдается повышение интереса к IoT, по моему субъективному мнению это глобальная тенденция, выходящая далеко за рамки этого сайта. А значит стоит вставить и свои 5 копеек в развитие направления, тем более что давно крутилась мысль сделать узел для умного дома, который смог бы контролировать потребление любого прибора питающегося от сети 220В и давал возможность программировать логику управления в зависимости от параметров потребления, температуры, фазы луны и т.д. Существуют готовые решения, но часто в них что-то не устраивает, да и готовое это не наш метод если можно попробовать построить свой уникальный велосипед.



Параметры будущего велосипеда:

— Дешевое устройство из общедоступных компонентов.
— Контроль тока в цепи потребителя.
— Управление устройством по протоколу MQTT.
— Контроль температуры устройства.
— Два выносных датчика для контроля температуры потребителя.
— Индикация состояния на экране устройства.
— Аварийное отключения потребителя если температура или ток превысили задаваемые значения.

Information

Rating
Does not participate
Registered
Activity