• Ftdi2232 OpenOCD SWD программатор под Windows 10

    Потребовалось запрограммировать чип nrf52832. Была использована плата на основе Ftdi2232 c ali. В заметке набор действий необходимый для работы OpenOCD с данной связкой программатор-микроконтроллер на windows 10.

    Читать далее
  • История о том, как мы криптовалютной бирже помогли

    Не переводами едиными «живет» наша команда. Локализация сайтов и приложений — это, пожалуй, любимое направление работы. Нею мы готовы заниматься круглосуточно. Даже без перерыва на чай с печеньками.  

    Ведь, локализация — это все-в-одном: и перевод, и адаптация, и удовольствие от процесса, и удовлетворение от результата, когда видишь готовое приложение в App Store и Play Маркете. 

    А недавно нам повезло вдвойне — обратилась известная криптовалютная биржа, имеющая собственную монету и обменник, с запросом на локализацию приложения на 14 языков. Четырнадцать, Карл!  

    Конечно, с такой задачей невозможно справиться своими силами. Поэтому разработчики приняли единственно верное решение — обратиться к профессиональным локализаторам. 

    Расскажем, как все прошло. 

    Читать далее
  • Allure отчет для 2 браузеров

    Allure отчет для 2 браузеров

    Столкнулся с проблемой, что Allure не поддерживает мульти браузерный отчет из коробки.
    Первым делом пошел гуглить. На форумах не нашел решения.
    Тогда появилась мысль как это могло бы работать.
    Способ нашел не самый изящный, но простой и рабочий.
    Кратко какие инструменты и фреймворки у меня были. Java, Maven, Selenium, Jinut 4. В качестве CI/CD инструмента Teamcity.

    Первым делом нужно добавить в помник следующий код

    Читать далее
  • Обход блокировки Opera VPN на Ubuntu

    Многие уже могли столкнуться с тем, что в Opera пропала возможность использовать встроенный VPN. Пользователи довольно быстро нашли способ обойти эту блокировку. К сожалению, я нашёл беглым поиском инструкции только для Windows. Возможно, пользователи линуксов такой мелочью не заморачиваются, но мне понадобилось какое-то время, чтобы адаптировать решение(надо сказать, что в конечном счёте всё оказалось совсем несложно). Так что делюсь теперь здесь для тех, кому будет лень тратить время.

    Читать далее
  • Как продвигать товары с помощью геймификации? Проверка гипотез продвижения на сайте

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

    Читать далее
  • Как создать гиперкрутой аккаунт GitHub?

    • Перевод

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

    Готовы ли вы отправиться в путешествие с далёкими горизонтами?

    Перевод в чрезвычайно свободной форме.

    Готовьтесь: тут слишком много соблазнительного!

    А что тут?
  • Уходим от VPN к SSH-туннелям. RDP через SSH на Mikrotik

    Появилась задача сделать удаленный доступ клиентам к их RDP серверу и упростить доступ до одного клика.

    Скрипты с VPNами не подошли по причине зоопарка домашних компьютеров клиента от Windows XP до Windows 10.

    ОК, делаем на SSH-туннелях и защищаем их RSA-ключом.

    Первое, что надо сделать админу, это скачать и установить Putty (если вдруг еще не установлен).

    Приступаем к выпуску ключей через PuTTYgen.

    Читать далее
  • Алгоритм быстрого поиска

    В этой статье я хочу представить мой алгоритм оптимизации суммирования ряда чисел в массиве (на примере контейнера map). 

    Итак, дано задание

    Есть некая электронная книга, которую одновременно читает неограниченное количество читателей. Нужно сделать так, чтобы любой читатель в любой момент мог проверить, сколько еще читателей читают ту же страницу, что и он. Предложена наивное решение хранить в map<int,int> в качестве ключа номера страниц, в качестве значения- количество прочитавших их пользователей. Конечно, при таком подходе программа медленно работает с большими тестами потому, что количество итераций по контейнеру map равняется числу прочитанных пользователем страниц. То есть, если пользователь прочел 1000 страниц из 1000 возможных, то в цикле нужно будет сделать 1000 итераций, и это сильно замедляет программу.  

    Чтобы уменьшить время работы программы, нужно упростить алгоритм подсчета пользователей. В этом алгоритме я отдельно считаю, сколько пользователей прочли столько же полных сотен страниц, как и искомый читатель, и затем уже постранично суммирую всех, кто прочел столько же страниц из той сотни, на которой сейчас находится читатель. Такой алгоритм позволяет вместо 999 итераций (если пользователь читает 999-ю страницу) сделать всего 108 (9 итераций сотням и 99 по единичным страницам). 

     Это вкратце, теперь перейдем к подробному описанию и для начала приведу код.

    больше информации
  • Решил как-то абапер питон выучить. Часть 1

    Так случилось, что довольно давно я работаю со "страшно дорогой 1С-кой немецкого происхождения"(с) по имени SAP, которая написана на ABAP.

    Поэтому, можно сказать, что по долгу службы, для меня это основной язык.

    Но как-то решил я выучить какой-нибудь еще язык для своих рутинных консовских задач (сверок/сводок и т.д.).

    Выбор пал на Python...

    Читать далее
  • Проект webcar64

    Здравствуйте, представляю проект webcar64.

    Для чего и почему, нужен казалось бы ещё и локализованная сборка php, apache, python, perl, ruby, mariadb, postgresql, openssl? Не всегда стандартный вариант устраивает, когда нужен специализированный исследовательский полигон, своя локализованная ИТ лаборатория для Ubuntu 20.04 LTS x86-64...

    Уж очень не хочется бороться с зависимостями deb пакетов в Ubuntu систему устанавливая всё в /usr/bin, /usr/local, а если нужно быстро подключить или смонтировать с внешнего диска, то тогда локализованный /opt/webcar64 вариант весьма удобен, а также если хочется использовать две системы стандартный вариант и локализованный /opt/webcar64 в Ubuntu 20.04 LTS.

    Коротко о проекте, проект разрабатывался с тем, что бы уйти от зависимости lampp решений и как его альтернатива.

    Что установлено php 7.4.20 как текущий стабильный релиз, perl 5.32.1, apache 2.4.48 , python 3.9.5, ruby 3.0.1, postgresql 13.3, mariadb 10.4.19, sqlite 3.35.5, miniSQL - 4.3, openssl 1.1.1k и др. необходимые программы для поддержки зависимостей данных программ. Специально для любителей математики добавлена специализированная программа maxima 5.45.0, подробнее о программе https://maxima.sourceforge.io/ и https://maxima.sourceforge.io/docs/manual/maxima.pdf

    Если интересно, то проект можно скачать отсюда: https://cloud.mail.ru/public/ap4T/GHHt3TfeH и sha512 https://cloud.mail.ru/public/vNXn/Sf1HwnW3d .

    Итак, скачали, распаковываем в директорию /opt, и командой sudo chown -R yourlogin:yourgroup ./webcar64 настраиваем права доступа.

    Читать далее
  • Выбирайте правильный gsm-модуль для шлагбаума

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

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

    Путём не долгих раздумий решили остановиться на относительно простом способе модернизации ограждающего устройства, а именно доукомплектования его GSM-модуль. На рынке оказалось огромное количество производителй разной ценовой категории от 3500 до 15000 рублей. Решили смотреть золотую середину и... промахнулись :(

    Выбрали модуль компании Нависет Домовой IP на DIN-рейке, который на тот момент заявлял самое большое количество подключаемых номеров и возможность управления с помощью мобильного приложения, а также заявлялось что это единственное устройство которое соответствует требованиям Правительства РФ о системе Безопасный город. Однако забегая вперёд - скразу же раскрою тайну: Распоряжение Правительства действительно есть (выпущено ещё причем 3 декабря 2014г. За номером 2446-р), а системы "Безопасный город" и требований к ней нет до сих пор. Это чистой воды - маркетинг.

    Если с первой частью - всё худо бедно заработало сразу из коробки, за исключением того, что объем памяти у контроллера очень скудный, и к тому же перераспределить её невозможно: например, если вы как мы захотите вместо 15.000 маркетинговых номеров (не представляю себе массовые объекты с таким количеством абонентов - таких заводов в стране остались единицы, а даже в самых больших офисных зданиях и многоквартирных домах нет столько автомобилистов) увеличить поле для ввода имени абонента, то сделать это не сможете, все таблицы захардокены и естественно нельзя говорить о возможнсти добавить такие поля как фамилия или номер закрепленного машиноместа и вам придется придумывать имена в стиле Vasya15 и Masha8.

    Читать далее
  • Android-разработчик: почему все ринулись изучать мобильную разработку и что на самом деле ждет новобранца

    Количество мобильных устройств растет, люди все больше проводят времени с гаджетами. На данный момент у 66% населения планеты есть телефон, 89% из них — смартфоны. Такое положение вызвало серьезный спрос на специалистов в сфере мобильной разработки.

    Senior Mobile Developer отвечает, стоит ли идти в эту сферу, кому она подходит, что нужно на старте и какие подводные камни могут ожидать новичка.

    Читать далее →
  • Настольные игры в XXI веке

    В современном обществе настольные игры это уже некоторая редкость.

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

    Читать далее
  • Поработать в Крым: пальмы, девушки и макбук

    Спасибо пандемии, удаленки стало гораздо больше. И вот уже второй сезон подряд я уезжаю жить и работать в Крым. Хочу рассказать об этом опыте как с точки зрения разработчика так и простого обывателя.

    Плюсы:

    1. Тепло, солнце, море, горы, фрукты. 

    2. На выходных всегда есть куда поехать. Прямо как в Москве, только тут природа красивее.3. Если у вас нет пары, то в сезон сюда приезжают много девушек, которым хочется оторваться. Минус в том, что днем вы работаете, и затусить можно лишь вечерком.

    Читать далее
  • МанагерМент

    Это моя первая статья, в которой я хотел бы немного рассказать про дебри позиции Менеджер проекта (PM (манагер), PO, порой Product M. но лучше так не делать, тимлид). Сейчас эта позиция начинает размываться в линейке других профессиональных позиций. Почти каждая позиция сейчас может совместить в себе роль PM. Правильно это делать или нет это другой вопрос, он скорее больше про ресурсы, мое мнение, что лучше этого не делать, ниже объясню почему. Ну не будем тут много философствовать, поехали.

    Читать далее
  • Биткоин – финансовая пирамида нашего времени

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

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

    Ну, скажите, кому в здравом уме придет создать партию, ратующую за использование людьми денег!  «Люди! Купите за свои деньги нужные товары! Продайте свои товары за деньги! Копите деньги, тратьте деньги, пользуйтесь деньгами!!!» А на первых порах жизни криптотехнологий это выглядело именно так.

    Если вспомнить курс политэкономии, что у денег кроме курса, покупательной способности есть еще другие характеристики – одна из важнейших, сама собой разумеющаяся для стандартных денег, имеющих широкое распространение, на той или иной территории, это доверие граждан к данной валюте.  Для денег страны, где они имеют хождение – доверие максимально.

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

    Сделаем попытку разобраться в чем же суть добычи «цифрового золота». Не будем распыляться на все виды существующих сегодня криптовалют – достаточно рассмотреть самый популярную из них – биткоин.

    Читать далее
  • Как разозлить разработчика?

    • Перевод

    Спойлер: разозлить разработчика очень просто. Точнее, разработчика может взбесить буквально все. И чем более "религиозны" взгляды разработчика в отношении определенных сущностей и событий, тем проще это сделать. Я считаю, что нет более токсичного сообщества, чем сообщество разработчиков, программистов и инженеров.

    Даже если мы заведем разговор хотя бы о том как правильно назвать профессию, споров и агрессии не избежать. Кем является каждый из нас? Жалким разработчиком, пишущей обезьяной, уважаемым программистом или высокомерным инженером - сколько людей, столько и мнений. Но, например, некоторые инженеры приходят в неистовое бешенство, когда кто-то то ли по незнанию, то ли специально называет их "разработчиками".

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

    Читать далее
  • Интерпретация Python. Выполнение условного кода

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

    Условные выражения реализуются с помощью так называемого if утверждения. Утверждение if позволяет определить строку кода или блок кода, который выполняется только при выполнении определенного условия.

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

    Утверждение if в Python читается почти так же, как и в английском языке. Вы вводите ключевое слово if и после определяете то, что мы называем “condition” (условие). Condition - это просто утверждение, которое оценивается как истинное (true) или ложное (false).

    Если условие оценивается как true, то будет выполнен весь код, находящийся под if. Если условие оценивается как false, то код будет искать дополнительный (необязательный) элемент else. И если он его найдет, то запустит код, находящийся под ним.

    Читать далее
  • Установка ОС без IP-KVM из Rescue

    Упершись по ограничениям в облаке было принято решение о переезде на выделенный сервер. Всеми "любимое" ограничение по территории размещению быстро ограничило выбор до провайдера Se-el и линейку серверов Chipcore.

    Но тут появилась незадача, в новой линейке убрали или не добавили установку Centos 7, который активно используется, в нашем случае для bitrix окружения. Пообщавшись в тех. поддержкой в форме на сайте, я решил, что проблема решена и стал ждать окончательного решения переезда выделенный сервер.

    Читать далее