Социальные сети Рунета
Среда, 8 мая 2024

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво...

[Из песочницы] Мой путь начинающего разработчика игр Доброго времени суток, уважаемые пользователи! Хочу поделиться с Вами своей маленькой историей создания своей маленькой игры. Ну, начнем с того, что я — школьник. На носу у меня ЕГЭ, надо бы к нему готовиться, а меня все тянет и тянет в эту какую-то заблудшую степь. Но меня...

3 недели с Galaxy S10: плюсы и минусы Вот и пришло время менять телефон и мой выбор пал на Samsung Galaxy S10. Для тех, кто поглядывает на флагман от Samsung, добро пожаловать под кат, расскажу что с ним так, а что не очень. Читать дальше →

[Из песочницы] Новый язык программирования Mash На протяжении нескольких лет я пробовал свои силы в разработке своего языка программирования. Мне хотелось создать на мой взгляд максимально простой, функциональный и удобный язык. В этой статье я хочу осветить основные этапы своей работы и для начала описать созданный конц...

[Из песочницы] Видеонаблюдение на orange pi zero — дешево и совсем не сердито Недавно поставил себе задачу реализовать видеонаблюдение со следующими характеристиками: Минимальное энергопотребление Минимальный размер устройства, которое будет принимать видео с камеры (или нескольких камер). С таким небольшим размером, чтобы можно было его, к примеру,...

Merkle Tree: ржавое и быстрое Всем привет! Недавно открыл для себя язык Rust. О своих первых впечатлениях поделился в предыдущей статье. Теперь решил копнуть немного глубже, для этого необходимо что-то посерьёзнее списка. Выбор мой пал на дерево Меркла. В этой статье я хочу: рассказать про эту структур...

[Перевод] Создаем базовую сцену в A-Frame От автора перевода: в предыдущей статье мы обсудили базовые концепции A-Frame. Чтобы продолжить цикл, я хотел создать урок, который бы иллюстрировал основные возможности A-Frame, но понял, что лучше сделать перевод статьи с официального сайта, которая, по-моему мнению напи...

Как снижение ставки эквайринга повлияет на нас (держателей карт) — 2 В связи с тем, что мой предыдущий пост Как снижение ставки эквайринга повлияет на нас (держателей карт) сильно заминусовали, мне бы хотелось пояснить мою мысль чуть более развернуто. Для начала я не работаю в банке, поэтому не защищаю их точку зрения. За моими плечами имее...

[Из песочницы] Опыт создания игры для Android в одиночку с нуля и как ее зафичерили на Google Play Привет! Меня зовут Ибрагим, я — начинающий инди-разработчик. У меня всегда было желание заняться программированием, но меня отпугивала сложность и неопределенность выбора (что именно изучать и делать). И лишь 2 года назад я все-таки преодолел этот психологический барьер, смо...

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

OS1: примитивное ядро на Rust для x86. Часть 2. VGA, GDT, IDT Первая часть Первая статья еще не успела остыть, а я решил не держать вас в интриге и написать продолжение. Итак, в предыдущей статье мы поговорили о линковке, загрузке файла ядра и первичной инициализации. Я дал несколько полезных ссылок, рассказал, как размещается загружен...

Пишем свой язык программирования, часть 3: Архитектура транслятора. Разбор языковых структур и математических выражений Введение Приветствую вас, заинтересованные читающие разработчики на не важно каких языках, на которых я ориентирую эти статьи и чьи поддержку и мнения я ценю. Для начала, по устоявшимся традициям, я приведу ссылки на предыдущие статьи: Часть 1: пишем языковую ВМ Часть 2:...

[Из песочницы] Мой подход к реализации делегатов в C++: вызов функции с неизвестными параметрами во время выполнения Предыстория Мне нравится язык C++. Я бы даже сказал, что это мой любимый язык. Кроме того, для своих разработок я использую технологии .NET, и многие идеи в нём, по моему мнению, просто восхитительны. Однажды мне пришла в голову идея – как реализовать некоторые средства рефл...

bear_hug: игры в ASCII-арте на Python3.6+ Для своих игр в ASCII-арте я написал библиотеку bear_hug с очередью событий, коллекцией виджетов, поддержкой ECS и прочими полезными мелочами. В этой статье мы посмотрим, как с её помощью сделать минимальную работающую игру. Читать дальше →

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

[Из песочницы] Создание Google пользователей из PowerShell через API Привет! В этой статье будет описана реализация взаимодействия PowerShell с Google API для проведения манипуляций с пользователями G Suite. В организации мы используем несколько внутренних и облачных сервисов. По большей части авторизация в них сводится к Google или Active ...

Мольберт для программиста микроконтроллеров Доброго времени суток. В этой небольшой статье я хочу рассказать о том, как мне пришла в голову идея изготовить большую макетную доску и о том, как я эту идею реализовал. Началось всё… Да в общем, неважно. Суть идеи такова: сделать очень большую макетную доску на основе маке...

[Из песочницы] Рождение одного проекта или как написать свою CMS Приветствую вас, уважаемые Хабравчане. Я очень долго шел к тому чтобы написать статью здесь о себе и своем проекте. В этой статье я хотел бы рассказать Вам мою историю зарождения идеи проекта. А также написать свою историю развития взглядов на разработку ПО в целом. Возможно...

[Перевод] Как сделать ваш HTML отзывчивым, добавив одну строку кода на CSS Привет, Хабр! представляю вашему вниманию перевод статьи «How to make your HTML responsive by adding a single line of CSS» автора Per Harald Borgen. В этой статье я научу вас, как использовать CSS Grid для создания крутой сетки изображений, которая изменяет количество сто...

Рекомендательная система для Directum Club. Часть первая, коллаборативная Каждый день пользователи по всему миру получают большое количество различных рассылок — только через сервис MailChimp ежедневно рассылают миллиард писем. Из них открывают 20.81%. Ежемесячно пользователи наших сайтов получают рассылки с отобранными редактором материалами. Эти...

[Из песочницы] Под капотом у React. Пишем свою реализацию с нуля 


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

Концепция очков дополненной реальности. Моя идеальная AR гарнитура, которая возможна Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Недавно мне пришла в голову идея интересная концепция AR очков, которые могут быть нужны пользователю. Многие недооценивают некоторые аспекты с точки зрения удобства использования и пользовательс...

[Перевод] Технический долг как тетрис Выигрыш невозможен. Вы только решаете, насколько быстро проиграть Какой следующий ход? Многим нравится тетрис, мне тоже. Помню, как сыграл в первый раз на Nintendo Game Boy моего друга. Возможно, у вас в голове тоже застряла та мелодия. Тетрис не только одна из лучших иг...

Реализация целого типа в CPython На Хабре уже были статьи о подробностях реализации менеджера памяти CPython, Pandas, я написал статью про реализацию словаря. Казалось бы, что можно написать про обычный целочисленный тип? Однако тут не всё так просто и целочисленный тип не такой уж и очевидный. Если вам и...

Полезные сочетания клавиш для работы с текстом в macOS Продолжаем изучать возможности операционной системы macOS. В этом материале мы расскажем о простых комбинациях клавиш, при помощи которых можно значительно упростить работу с текстом. Навигация, редактирование и выделение — для всего этого больше не придётся использов...

[Из песочницы] Программируем проходной выключатель. MicroPython на esp8266 (sonoff) с OTA. Часть 1 Всем привет. В процессе ремонта возникла задача сделать проходной выключатель. Конечно же захотелось сделать самым простым и удобным способом, добавив базовые функции управления с телефона. Я выбрал наиболее простую и удобную технологию для этого (конечно, на свой взгляд) —...

[Из песочницы] Разработка игры и защита диплома или «Как я убил двух зайцев первым блином» Дипломный проект О создании игр и получении высшего образования обычно говорят как о вещах несовместимых, часто вполне справедливо. Многие известные инди-разработчики бросали универы. Я же расскажу о противоположном опыте. О своём довольно необычном проекте и о том, как удал...

Субъективное видение идеального языка программирования Дальнейший текст — моя точка зрения. Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а прос...

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

[Из песочницы] Пишем VLC плагин для изучения английского В данной статье я расскажу о том, как написать плагин на языке C для медиаплеера VLC. Я написал свой плагин для упрощения просмотра сериалов и фильмов на английском языке. Идея создания этого плагина описывается в разделах Идея и Поиск решения. Технические детали реализаци...

[Из песочницы] GameBoy на C# Когда я только начинал программировать, думаю, как и многим, мне хотелось делать игры. Но передо мной стояло множество архитектурных вопросов, которые я не знал как решить, про двойную буферизацию я даже не слышал, а получить результат хотелось как можно скорее. Поэтому неда...

[Из песочницы] За что, Битрикс? Или сказочный мир 1С Однажды, в понедельник, мне пришла в голову мысль — "а покопаюсь ка я в новом ядре" (новым относительно, но об этом позже). Мысль не появилась на ровном месте, а предпосылками для нее стали: тестовое задание, от одной из крупных студий матушки-России (в котором фигурировала...

ResNet50. Своя реализация Всем привет. Библиотека нейросети описана в моей прошлой статье. Здесь решил показать как можно использовать обученную сеть из TF (Tensorflow) в своем решении, и стоит ли. Под катом сравнение с оригинальной реализацией TF, демо приложение для распознавания картинок, ну и… в...

Новая жизнь старых игр: максимально опенсорсный каталог source-портов (Java + PHP) Недавно мне пришла в голову возродить свой старый каталог source-портов и графических модификаций для старых игр. Новая версия должна была стать максимально опенсорсной и открытой, чтобы любой пользователь мог править как содержание сайта, так и его код, а мне бы оставалось ...

[Из песочницы] Дифференциальная геометрия кривых. Часть 1 Предисловие Привет всем читателям. Просто решил написать статью о дифференциальной геометрии кривых. На мой взгляд, тема из «непрерывной» математики будет большинству читателей Хабра полезна, по крайней мере ближайший час =), учитывая что это IT ресурс, а IT это где то ближ...

[Перевод] Как написать смарт-контракт на Python в сети Ontology. Часть 1: Blockchain & Block API Это первая часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology при помощи инструмента разработки смарт-контрактов SmartX. В этой статье мы начнём знакомство с API смарт-контракта Ontology. API смарт-контракта Ontology разделен н...

[Из песочницы] Инструмент для сравнения CSS фреймворков Привет, я Александр. Активно изучаю и занимаюсь веб разработкой уже около года. Все началось с удаления клиента любимой игры и поиска ментора. Совершенствуясь в веб-разработке создал проект CSS Comparator. Сама суть проекта заключается в сравнении CSS фреймворков по размерам...

[Из песочницы] Что спрашивают на собеседовании у джуна, или как я искала свою вторую работу в ИТ Я работаю в сфере IT чуть более 1 года как Test Automation Engineer. Мое базовое образование никак не способствовало этому, поскольку в моем дипломе написано “Логистик-Экономист”. Тернистный путь в IT я начала с бесплатных курсов при одной крупной компании в моем городе, по...

Немного о лексическом анализе Давным-давно, когда небо было голубым, трава зеленее и по Земле бродили динозавры… Нет, забудьте про динозавров. Ну, в общем, когда-то тогда пришла в голову мысль отвлечься от стандартного web-программирования и заняться чем-то более безумным. Можно было, конечно, чем угод...

[Перевод] composer и автодополнение командной строки Так как я все больше и больше добавляю свои скрипты в файлы composer.json, было бы полезно иметь автозаполнение для команды composer в bash. Мой вопрос в Твиттере не дал немедленного решения, и, поскольку я уже делал нечто подобное для Phing, я закатал рукава и написал своё ...

Реакция на холодные письма Меня немного расстроила статья «Оцениваем рекрутёров по холодным письмам». Как по мне, вся проблема высосана из пальца, и все очень похоже на то, что уже описал автор: Иди-ка ты на !@# со своей «токсичностью» Я напишу максимально противоположное большинству мнение, чем ско...

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

Как нейронная сеть SincNet выделяет значимые частоты в звуке через Back Propagation Недавно вышла одна очень интересная статья "Speaker Recognition from raw waveform with SincNet", в которой была описана end-to-end архитектура нейронной сети для распознавания говорящего по голосу. Ключевая особенность этой архитектуры — специальные одномерные сверточные сло...

[Перевод] Inception bar: новый метод фишинга Доброго времени суток, Хабр! На просторах Интернета мне попалась статья на английском «The inception bar: a new phishing method» автора Jim Fisher. В ней описывается занимательный способ фишинга, механизм которого заключён в использовании экранного пространства строки отобра...

Л – логика Однажды мне в голову пришла идея новой игры-головоломки с очень простой, но, в то же время, интересной механикой: игроку дается набор из 5–7 картинок – нужно определить логическую цепочку, по которой эти картинки можно выстроить в ряд, и, собственно, выделить их по порядку. ...

[Из песочницы] Как написать легко описываемый код Привет, Хабр! Часто ли у вас было, что вы или ваши коллеги не могли описать свой собственный код парочкой фраз? Предлагаю вашему вниманию перевод статьи "How to write easily describable code" автора Cedd Burge, в которой он делится советом, как избежать таких ситуа...

[Из песочницы] Python + Pyside2 или просто «Калькулятор» Привет, Хабр! Меня зовут Саша. Я Junior разработчик. Работаю тестировщиком ПО. В основном я пишу тесты при помощи Python+Selenium, но Python стал настолько интересен, что мне захотелось углубиться в него и выучить как можно больше фреймворков! Я захотел написать десктопное ...

Делаем мессенджер*, который работает даже в лифте *на самом деле мы напишем только прототип протокола. Возможно, вы встречались с подобной ситуацией – сидите в любимом мессенджере, переписываетесь с друзьями, заходите в лифт/тоннель/вагон, и интернет вроде ещё ловит, но отправить ничего не получается? Или иногда ваш прова...

QVD-файлы — что внутри, часть 2 В первой статье о структуре QVD файла я описал общую структуру и достаточно подробно остановился на метаданных. В этой статье я опишу формат хранения информации о колонках, поделюсь своим опытом трактовки этих данных. Итак (вспоминаем) QVD файл соответствует реляционной табл...

[Перевод] Go += управление версиями пакетов Статья написана в феврале 2018 года В Go необходимо добавить версионирование пакетов. Точнее, нужно добавить концепцию версионирования в рабочий словарь разработчиков Go и в инструменты, чтобы все употребляли одинаковые номера версий при упоминании, какую именно программу...

Метапрограммирование в JavaScript и TypeScript Пролог Хочу представить на Ваш суд ряд мини статеек, в которых будут описаны приемы и основы метапрограммирования. В основном я буду писать об использовании тех или иных техник в JavaScript либо в TypeScript Эта первая (и надеюсь не последняя) статья из серии. Так что же так...

[Из песочницы] Domain Driven Design: Value Objects и Entity Framework Core на практике На Хабре и не только написано приличное количество статей про Domain Driven Design — как в общем про архитектуру, так и с примерами на .Net. Но при этом зачастую слабо упоминается такая важнейшая часть этой архитектуры, как Value Objects. В этой статье я постараюсь раскрыт...

EFORTH для МК-161: Структуры данных Эта статья — окончание цикла статей про eForth на программируемом калькуляторе. Начало здесь: habr.com/ru/post/452398 Команды входного языка «Электроники МК-161» занимают только половину файла eForth0.mkl. Вторую половину занимают таблицы, разработать которые был не меньший...

40 миллионов HTTP запросов/мин на голом Си Введение I/O реактор (однопоточный цикл событий) — это паттерн для написания высоконагруженного ПО, используемый во многих популярных решениях: Node.js Tor Transmission Chromium Memcached ... В данной статье мы рассмотрим подноготную I/O реактора и принцип его работы, нап...

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

[Перевод] Обучение с подкреплением на языке Python Привет, коллеги! В последней публикации уходящего года мы хотели упомянуть о Reinforcement Learning — теме, книгу на которую мы уже переводим. Посудите сами: нашлась элементарная статья с Medium, в которой изложен контекст проблемы, описан простейший алгоритм с реализаци...

[Из песочницы] Небольшой бэкдор на Flask или как управлять компьютером в локальной сети Привет, Хабр! Недавно я посмотрел скачанную версию стрима по программированию «Как создать свое веб-приложение на Flask». И решил закрепить свои знания в каком-нибудь проекте. Долго не знал, что написать и мне пришла идея: «А почему бы не сделать мини-бэкдор на Flask?». В ...

[Из песочницы] Пишем простой NTP клиент Здравствуйте, хабраюзеры. Сегодня я хочу рассказать о том, как написать свой простенький NTP клиент. В основном, разговор зайдет о структуре пакета и способе обработки ответа с NTP сервера. Код будет написан на питоне, потому что, как мне кажется, лучшего языка для подобных ...

[Перевод] Генератор подземелий на основе узлов графа В этом посте я опишу алгоритм процедурной генерации уровней двухмерного подземелья с заранее заданной структурой. В первой части будет представлено общее описание, а во второй — реализация алгоритма. Введение Алгоритм был написан как часть работы на получение степени бакал...

Универсальный способ настройки внешнего вида WinForms приложения (на примере FAQ.Net) Введение После размещения первой статьи о своем приложении FAQ.Net (программа заметок под Windows), появились первые пользователи, для которых хочется дальше развивать свою программу для заметок. Чтобы повысить интерес у пользователей, возникла идея повысить его привлекател...

[Из песочницы] Что делать, если хочется собирать деньги на ремонт «Провала», а под рукой только Wikipedia Мечта любого пиарщика и маркетолога — разместить статью о своей компании на Википедии, ведь это и авторитетность, и высокая поисковая выдача, а значит и больше внимания со стороны потенциальных клиентов. Но написать статью на Википедии – это только половина дела, нужно ещ...

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

[Из песочницы] FusionPBX и ACL Моя статья — не полноценное описание продукта, а только небольшое уточнение хорошей публикации «FusionPBX, или снова-здорово, FreeSWITCH». Мне кажется в ней не очень хорошо раскрыта тема ACL в FusionPBX. Попробую заполнить этот пробел, исходя из собственного опыта работы с F...

Пишем свой язык программирования, часть 1: пишем языковую ВМ Введение Доброго времени суток всем хабрачитателям! Итак, пожалуй стоит сказать, что целью моей работы, на основе которой будет написан ряд статеек было пройти весь путь создания полнофункционального ЯП самому с 0 и затем поделиться своими знаниями, наработками и опытом с и...

Управление семисегментным дисплеем с помощью ПЛИС Привет, Хабр! Хочу внести свою посильную лепту в продвижение ПЛИС. В этой статье я постараюсь объяснить, как на языке VHDL описать устройство, управляющее семисегментным дисплеем. Но перед тем как начать, хочу кратко рассказать о том как я пришел к ПЛИС и почему я выбрал язы...

Четырёхтактный двигатель Отто 1.91 Четырёхтактный двигатель Отто Анимация представит работу типа двигателя, который наиболее часто используется в автомобилях. Интерактивные 3D Mozaik Наши полностью интерактивные сцены можно вращать, увеличивать или рассматривать под заранее заданным углом. Предуст...

[Из песочницы] Почему самоуничтожающиеся фотографии/видео в Telegram не безопасны Совсем недавно я увидел статью, где говорилось о внедрении самоуничтожающихся сообщений в мессенджере WhatsApp. Она будет иметь схожую с Telegram функциональность, но если в мессенджере Дурова удаление распространяется как на обычные сообщения (секретные чаты), также их мо...

С новым годом, с новым MQTT/UDP Привет. Как я уже писал недавно (Первая краткая статья о MQTT/UDP), MQTT/UDP — протокол на базе MQTT, но: Ходит поверх UDP broadcast (не нужен брокер, почти не нужна конфигурация) До неприличия простой в реализации (10 строк на си + UDP/IP стек — и вы отправляете данные с...

ARA: алгоритм для нахождения максимального числа точек на прямой линии Недавно мне попалась классическая задачка для собеседований: поиск максимального числа точек, стоящих на прямой линии (на плоскости, координаты целочисленные). В голову сразу пришла идея полного перебора, которая имеет очевидную сложность по времени в O(n^2), но мне показало...

[Перевод] Создание игры для Game Boy Несколько недель назад я решила поработать над игрой для Game Boy, создание которой доставило мне большое удовольствие. Её рабочее название «Aqua and Ashes». Игра имеет открытые исходники и выложена на https://github.com/InvisibleUp/AquaAndAshes. Как мне пришла в голову эт...

[Перевод] Эволюция разработчиков: каких игр нам ждать в будущем В своей предыдущей статье я представил общий обзор видеоигровой экосистемы. Теперь я бы хотел рассмотреть по отдельности каждую категорию игр, описать их свойства, смысл их инноваций в функциональности и особенностях, а также рассказать о лучших стартапах в каждой из катего...

[Перевод] Мой однострочный клиент Dropbox под Linux Хочу рассказать о своей попытке создать простой однострочный клиент Dropbox под Linux, используя только бесплатные компоненты с открытым исходным кодом, в том числе rclone, entr и systemd. Контекст Недавно проприетарный клиент Dropbox под Linux отказался от поддержки всех ф...

И ещё о сортировках И ещё о сортировках Рискну опять поднять эту тему. Начну со ссылки на статью Михаила Опанасенко (oms7), очень впечатляющую по объёмам проделанной работы, а также по количеству приведёных ссылок. Свой материал начал готовить, не зная об этой публикации, что впоследствии, посл...

[Из песочницы] Рендеринг 3D графики с помощью OpenGL Введение Рендеринг 3D графики — непростое занятие, но крайне интересное и захватывающее. Эта статья для тех, кто только начинает знакомство с OpenGL или для тех кому интересно, как работают графические конвейеры, и что они из себя представляют. В этой статье не будет точных ...

[Из песочницы] Использование SQLite в Unity (Unity + SQLite) Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для н...

Как в Arduino создавать программы для Windows Однажды мне в голову пришла бредовая идея свести 500 лазерных указок в одно место. Я потратил много времени и сделал это. Получилось зрелищно и бесполезно, но мне понравилось. Полгода назад мне пришла другая бредовая идея. На этот раз совсем не зрелищная, но гораздо полезн...

3. Дизайн сети предприятия на коммутаторах Extreme Добрый день, друзья! Сегодня я продолжу цикл, посвященный коммутаторам Extreme статьей по проектированию сети Enterprise. В статье я постараюсь по возможности кратко: описать модульный подход к проектированию сети Etnterprise рассмотреть виды построения одного из важне...

[recovery mode] Создание игр и видео на YouTube. Мой эксперимент взаимодействия и доход от этого Привет всем, кто ещё не спит Возможно ты меня не помнишь, но где-то год назад я писал статью на Хабре, как я использовал свой Ютуб канал с 8К подписчиками и бюджет в 0 рублей, чтобы получить продажи моей с ПК игры. Не скажу, что эксперимент вышел удачный, но некий результат...

[Перевод] Лямбды: от C++11 до C++20. Часть 2 Привет, хабровчане. В связи со стартом набора в новую группу по курсу «Разработчик C++», делимся с вами переводом второй части статьи «Лямбды: от C++11 до C++20». Первую часть можно прочитать тут. В первой части серии мы рассмотрели лямбды с точки зрения C++03, C++11 и C+...

[Перевод] Переносим 30 000 строк кода с Flow на TypeScript Недавно мы перенесли 30 тысяч строк кода JavaScript нашей системы MemSQL Studio с Flow на TypeScript. В этой статье я расскажу, почему мы портировали кодовую базу, как это происходило и что получилось. Дисклеймер: моя цель — вовсе не критика Flow. Я восхищаюсь проектом и ду...

Перепрограммируем кассу и печатаем на ней Киану Ривза. Часть 2. ПО для ПК В предыдущей статье я кратко описал свою прошивку для ККТ ШТРИХ-ФР-К, которая позволяет управлять термоголовкой, движками и соответственно выводить на печать все что угодно. В этой части я покажу как написать софт, который будет общаться с кассой и форматировать картинку для...

[Перевод] Вышел Windows Terminal Preview 0.7 Представляем новый релиз Windows Terminal preview! Это выпуск v0.7. Как и всегда вы можете скачать Terminal из Microsoft Store или со страницы релиза на GitHub. А вот и новинки: Обновления Windows Terminal Панели (panes) Теперь вы можете разделить окно терминала на нескольк...

[Из песочницы] Неканоничный ламповый усилитель Всем доброго времени суток! Как-то, холодным тоскливым вечером, почитывал я статью про высококачественный усилитель класса D c Aliexpress. И пришла мне в голову мысль рассказать про свою DIY-поделку. А вот теперь дошли и руки. Ниже приведен ворклог об изготовлении очередно...

Балансировка нагрузки в Openstack В крупных облачных системах особенно остро стоит вопрос автоматической балансировки или выравнивания нагрузки на вычислительные ресурсы. Озаботились данным вопросом и в Тиониксе (разработчик и оператор облачных услуг, входим в группу компаний Ростелекома). И, поскольку наш...

Базовая поддержка USB4 уже добавлена в ядро Linux Появление интерфейса USB4 в серийных устройствах ожидается лишь через год, но работы над подготовкой ведутся уже сейчас. Как сообщает источник, Intel добавила в Linux первоначальную поддержку нового стандарта. Компания выпустила первые 22 патча, обеспечивающие базовую ...

23 жеста для трекпада Mac, которые делают жизнь проще Есть много вещей, за которые стоило бы поблагодарить Apple. Некоторые из них являются полноценными продуктами — например, iPhone или iPad, а некоторые – это лишь технологии или функции. В число последних можно смело записать многочисленные жесты, с помощью которых мож...

[Из песочницы] System.Console, Mono и NCurses Всем привет, в своей работе (а ранее и в учебе) я часто использую C# и этот язык стал мне, что называется, привычным. Решив немного потренироваться в программировании, я написал консольный текстовый редактор для Linux. Вкратце опишу полученный опыт. В Mono класс System.C...

[recovery mode] 10 нестандартных способов навредить SEO при смене CMS (+1 бонусный) В этой статье расскажу о тех проблемах, которые возникают, когда сайт меняет движок, а контроль SEO-специалиста при этом отсутствует. Материал будет полезен тем, кто самостоятельно продвигает свой сайт, а для коллег может стать лишним поводом освежить в голове знания (а може...

Карьера программиста. Глава 3. Университет Продолжение рассказа «Карьера программиста». Закончив вечернюю школу, пришла пора поступать в университет. В нашем городе был один университет технической направленности. В нем же, был один факультет «Математики и Информатики», на котором была одна кафедра «Компьютерных сис...

[Из песочницы] Легкое создание отчетов на C/C++ Если вы разрабатываете на C/C++ какое-либо ПО для операторов (администраторов) больниц, магазинов, сервисов проката гироскутеров, ремонта сотовых телефонов, то наверняка сталкивались с задачей создания отчетов, чтобы печатать их на принтере, ну или хотя бы в PDF. Существует ...

Разработка Unix подобной OS — Оболочка. Заключение (9) Пришло время написать первую отдельную программу для нашего ядра — оболочку. Она будет храниться отдельным .elf файлом и запускаться init процессом при старте ядра. Это последняя статья из цикла по разработке своей операционной системы. Читать дальше →

QEMU.js: теперь по-серьёзному и с WASM Когда-то давно я смеха ради решил доказать обратимость процесса и научиться генерировать JavaScript (а точнее, Asm.js) из машинного кода. Для эксперимента был выбран QEMU, некоторое время спустя была написана статья на Хабр. В комментариях мне посоветовали переделать проект ...

[Из песочницы] Процесс компиляции программ на C++ Цель данной статьи: В данной статье я хочу рассказать о том, как происходит компиляция программ, написанных на языке C++, и описать каждый этап компиляции. Я не преследую цель рассказать обо всем подробно в деталях, а только дать общее видение. Также данная статья — это необ...

[Из песочницы] Как в 4 раза увеличить время работы устройств с автономным питанием История о том, как мы оптимизировали схему питания автономных датчиков сбора, обработки и передачи информации. Добились снижения себестоимости электроники, веса датчика и незначительно увеличили его габаритные размеры. В статье описана эволюция схемы питания автономных датч...

Учебные проекты на Godot — Pong (часть 1) Создание и настройка сцены игрового процесса Приветствую вас, хабровчане! Как и обещал в конце прошлой статьи, я обратил свой взгляд на игровой движок. Правда мне больше приглянулся Godot. Почему? Тема для отдельной статьи размышления, а я не умею долго думать и, тем более, размышлять. Несмотря на то, что Pong имеетс...

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

Как Microsoft Excel работает с высотами рядов Иногда мне бывает скучно и я, вооружившись отладчиком, начинаю копаться в разных программах. В этот раз мой выбор пал на Excel и было желание разобраться как он оперирует высотами рядов, в чём хранит, как считает высоту диапазона ячеек и т.д. Разбирал я Excel 2010 (excel.exe...

Патентные тролли начинают и выигрывают: как я остался без игры "Балда ® – игра, знакомая всем со школьной скамьи". Очень часто описание этой словесной игры начинается с избитой фразы. Однако, такое клише хорошо отражает суть: игра Балда ® широко известна еще с тех времен, когда в школах вместо стульев были лавки. У самой игры Балда ® б...

HBO, cпасибо что напомнил… «Чернобыльская аптечка» беларуского фармацевта Думаю не стоит лишний раз говорить о нашумевшем сериале Чернобыль и эффективности такого «сериального» воздействия на массы. Особенно на массы, проживающие на территориях, показанных в фильме. Выход каждой новой серии сопровождается всплеском публикаций в FB. В каждой из кот...

[Из песочницы] Почему вам стоит выкинуть MVP из своих проектов Всем привет! Сегодня я бы хотел поговорить об архитектуре Android-приложений. На самом деле я не очень люблю доклады и статьи на данную тему, но недавно ко мне пришло осознание, с которым я бы хотел поделиться. Читать дальше →

[Перевод] Создание системы боёв в RPG Боевые системы наших игр Rimelands: Hammer of Thor и Trulon: The Shadow Engine были высоко оценены игроками. Несмотря на то, что это два сильно отличающихся взгляда на систему боя в RPG, они имеют много общего в дизайне механик и иллюстрируют мою личную философию дизайна. В...

Как я создавал Recycle! VR В предыдущей статье мы попробовали создать базовую сцену в A-Frame, чтобы опробовать основные концепции фреймворка на практике. В этой статье я хотел бы поделится своим опытом создания игры на A-Frame — Recycle! VR. Репозиторий проекта доступен по следующей ссылке. Перера...

[Перевод] 10.3 секунды на хеш: майнинг на бортовом управляющем компьютере КА Аполлон Нам удалось восстановить Бортовой управляющий компьютер КА Аполлон. И теперь, когда у нас на руках имеется единственный в мире работающий экземпляр, мне пришла в голову идея написать для него код. Хотя мысль о добыче биткоинов с помощью компьютера из далеких 60-х казалась бе...

[Перевод] Краткий и бодрый обзор архитектуры компиляторов Большинство компиляторов имеют следующую архитектуру: В данной статье я собираюсь детально препарировать эту архитектуру, элемент за элементом. Можно сказать, что эта статья — дополнение к огромному количеству существующих ресурсов на тему компиляторов. Она является а...

[Из песочницы] Разброс цен на проектирование и дизайн онлайн-сервиса от 100 тыс до 5 млн руб. Причины Эта статья для тех, кто хочет свой запустить it-стартап и понять сколько денег и времени нужно на MVP (минимальную версии), чтобы протестировать идею или сделать рабочий прототип для презентации инвесторам. После прочтения данной статьи: Вам не нужно будет отправлять 10-2...

[Из песочницы] Оптимизация сайта для GooglePage Speed (учтены все особенности после его обновления) Эта статья будет интересна, кто столкнулся с разного рода проблемами после обновления Google PageSpeed и претензиям со стороны заказчиков или начальника, почему упал бал или возникло такое количество замечаний. А так же тем, кто производит оптимизацию сайтов. В первую очеред...

[Из песочницы] Философия деления на… или исповедь сумасшедшего Вступление Сразу следует указать что в данной статье не будет глубокой математики. Будет лишь рассуждение на указанную в заголовке тему. Всё далее описанное лишь мнение автора. Не более того. Почти. Особенность математики Математика, как наука, окончательно углубилась в с...

Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 2 (Реализация API на стороне 1С) 1. Выбор способа обмена. Описание API. 2. Реализация API на стороне 1С. 3. Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 3(BroadcastReceiver. Получаем данные) Пособий как создать HTTP-сервис в интернете предостаточно. Поэтому сразу опишу реализац...

Моя система домашней автоматики. Создание образа операционной системы Вводная часть Установка системы на Raspberry Pi 2,3 Я опишу самый простой, на мой взгляд, способ для начинающих. Всё действие будет происходить в Ubuntu 18.04 для справки по командам служит команда «man» + нужная команда. man ls Или нужная команда с ключём --help ls --help...

[Из песочницы] Пишем «Hello, world!» приложение для web на Haskell (Spock) Мне стало скучно писать на Python, захотелось чего-нибудь необычного. Решил попробовать Haskell. Языка я не знаю, однако просто писать консольные учебные программы, типа вычисления факториала, не хотелось. После изучения довольно большого числа постов про Haskell и его приме...

[Из песочницы] Анализ эмоциональной окраски отзывов с Кинопоиска Вступление Обработка естественного языка (NLP) является популярной и важной областью машинного обучения. В данном хабре я опишу свой первый проект, связанный с анализом эмоциональной окраски кино отзывов, написанный на Python. Задача сентиментного анализа является довольно р...

[Из песочницы] Из гуманитария в разработчики в цифрах и красках Привет, Хабр! Давненько читаю тебя, но все никак не доходили руки написать что-нибудь свое. Как обычно – дом, работа, личные дела, туда сюда – и вот ты снова отложил написание статьи до лучших времен. Недавно кое-что изменилось и я расскажу вам, что же сподвигло меня описать...

[Из песочницы] JavaScript: Создание простого MEVN-приложения О чем статья Цель этой статьи — показать, как можно создать базовое MEVN-приложение. Акроним MEVN означает — MongoDB + Express.js + Vue.js + Node.js. В качестве примера будет написано одностраничное приложение, которое содержит форму, состоящую из нескольких текстовых полей....

[Из песочницы] Выбор между XML и SQL для накатывания скриптов LiquiBase на примере Java/Spring/H2 В процессе работы над очередным проектом в команде возникли споры по поводу использования формата XML или SQL в Liquibase. Естественно про Liquibase уже написано много статей, но как всегда хочется добавить свои наблюдения. В статье будет представлен маленький туториал по со...

[Из песочницы] Знакомство с простейшей нейронной сетью и ее пошаговая реализация Как-то раз я наткнулся на книгу под названием «Создай свою нейросеть», автор которой -Тарик Рашид и после прочтения остался доволен, в отличие от многих других методичек по нейронным сетям, которые по-своему, несомненно, хороши, в этой книге все подавалось простым языком c д...

[Из песочницы] Расширения VSCode, которые облегчат разработку на JavaScript и Vue На сегодняшний день существует достаточное количество средств для разработки с поддержкой языка JavaScript и основанных на нем фреймворков. Вопрос выбора конкретного инструмента стоит вне этой статьи, тут же я постараюсь описать свой пользовательский опыт работы с Visual Stu...

[Из песочницы] Мой опыт подготовки к экзамену JIRA Administrator ACP-100 Приветствую! В апреле 2018 успешно сдал экзамен по JIRA ACP-100, в октябре 2018 сдал экзамен по confluence ACP-200. Решил написать пост о том, как я готовился к экзамену JIRA ACP-100, дать советы для тех кому эта тема может быть интересна. Я опишу процесс своей подготовки к...

[Перевод] От идеи к производству — Разработка IoT проекта Сегодня мы пошагово разберем взлеты и падения разработки IoT. Только примеры из настоящей жизни, никаких теоретических "наверное" и много опыта. А еще ссылки на связанные статьи как бонус. Читать дальше →

[Перевод] Современная игра для NES, написанная на Lisp-подобном языке What Remains — это повествовательная игра-адвенчура для 8-битной видеоигровой консоли NES, выпущенная в марте 2019 года как бесплатный ROM, запускаемый в эмуляторе. Она создавалась небольшой командой Iodine Dynamics на протяжении двух лет с перерывами. В настоящий момент игр...

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

Software Defined Radio — как это работает? Часть 9 Привет Хабр. В предыдущей части было рассмотрено декодирование сигналов RDS для FM-радиостанций, и идея следующей статьи возникла сама собой — нужно сделать свой собственный FM-трансмиттер. Вариантов будет два — простой, и более сложный, с RDS. Как и в предыдущих случая...

[Из песочницы] Windows service. Поиск системных ошибок и отображение их в WinForm C# В этой статье мы разберем как с нуля создать приложение, которое будет работать со службами windows и отображать системные ошибки в WinForm (C#). План этой статьи: Создание службы Event Viewer Код службы Проверка работы службы(Запуск службы вручную) Отображение WinForm ...

Изучение английского: a geeky way Доброй глубокой ночи, незаметно для меня перешедшей в утро. Пишу под влиянием того поста, тоже написанного под влиянием. Да, вторично и уже начинает надоедать, но удержаться просто не могу. Хочу описать свой личный, немного нетривиальный, вовсе не претендующий на способ и м...

Дубай Молл в смартфоне, или как добавить поэтажный план здания в своё приложение В прошлой статье статье я рассказал, как сделать мобильное приложение с картой. В продолжении серии «на коленке» поделюсь с вами инструментами для реализации поэтажных планов. Исходная постановка задачи в упрощённом виде: хочется иметь возможность визуализировать схему эт...

[Из песочницы] Пишем бот для рыбалки в игре Albion Online на языке Python Всем привет, я являюсь счастливым пользователем операционной системы GNU/Linux.И как многим известно, игрушек идущих на линукс без дополнительных танцев с бубном намного меньше чем в «Винде». И еще меньше игр в жанре MMORPG. Однако, где-то пол года или год назад я узнал ...

Serverless Telegram бот в Яндекс.облаке, или 4.6 копейки за 1000 сообщений "Whenever you receive a webhook update, you have two options" Из Telegram Bot Api Faq Привет, Хабр! Долгое время концепция serverless (а если говорить точнее — её реализация в виде сервиса AWS Lambda) была для меня относительно понятной, но очень абстрактной идеей. Она ча...

Антирейтинг 2018 Эта статья написана по аналогии со статьей «Как не надо писать на Хабр: Антирейтинг 2017». Статьи взяты за 2018 год, точнее, начиная с индекса 345000. Кроме отрицательных значений рейтинга, есть список по абсолютному количеству минусов (видимо, самые обсуждаемые темы, в бо...

Капсула времени: HP iPaq h1940 «из коробки». На что годится КПК из 2000-х В прошлые выходные я купил на своей гранадской барахолке очередной гаджет. Им стал КПК HP iPaq h1940. Выбор пал именно на этот девайс, потому что КПК продавали в коробке со всеми документами и даже диском с дополнительным ПО. Обошелся наладонник в 10 евро, как и ноутбук, ...

Деливерим фичи быстрее. Опыт Android-разработки в Badoo Всем привет! Меня зовут Анатолий Варивончик. Я работаю в Badoo уже больше года, а мой общий стаж Android-разработки — более пяти лет. В своей практике я и мои коллеги часто сталкиваемся с необходимостью тестировать идеи максимально быстро и просто. Мы не хотим тратить много...

На пути к физическим принципам биологической эволюции. Окончание + полный текст перевода Сокращенный перевод статьи М. Кацнельсона, Ю. Вольфа и Е. Кунина Towards physical principles of biological evolution Mikhail I. Katsnelson, Yuri I. Wolf, Eugene V. Koonin Оригинал статьи (Две предыдущие части уже были опубликованы: начало и продолжение ) Возможна ли конвер...

[Из песочницы] React. Lazy loading Доброго времени суток. Занимаюсь разработкой проекта на React и Redux. Хочу в этой статье описать архитектуру своего проекта. Итак, начнем. Файловая структура: Для подключения редьюсеров создаем класс singleton reducerRegister: ./reducerRegister.js class ReducerRegistry...

Spring Data JPA В статье опишу использование Spring Data. Spring Data — дополнительный удобный механизм для взаимодействия с сущностями базы данных, организации их в репозитории, извлечение данных, изменение, в каких то случаях для этого будет достаточно объявить интерфейс и метод в нем, ...

[Перевод] Революция или эволюция Page Object Model? Всем привет! Меня зовут Артём Соковец. Хочу поделиться переводом своей статьи об Atlas: реинкарнации фреймворка HTML Elements, где представлен совершенно иной подход работы с Page Object. Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы зн...

Реализация паттерна Page Object на Python + pytest Когда я начинал изучать автоматизацию тестирования, не мог понять — “что такое Page Object и как его реализовать на Python + pytest?”. Штудируя интернет, нашел реализацию на других языках и фреймворках: обучающие статьи, которые были непонятны для меня. Поэтому решил написат...

Свой Telegram бот для отслеживания uptime своих серверов на python и docker 1. Делаем телеграм бота Для начала нужно написать бота, который будет пинговать нужные ip и посылать сообщение, когда нужный сервис пропадает из сети, а потом появляется Читать дальше →

[Перевод] Представлен Polaris для поддержания кластеров Kubernetes в здоровом состоянии Прим. перев.: Оригинал этого текста написал Rob Scott — ведущий SRE-инженер компании ReactiveOps, которая и стоит за разработкой анонсируемого проекта. Нам очень близка идея централизованной валидации того, что деплоится в Kubernetes, поэтому мы с интересом следим за подобны...

Читай старьё Всю свою сознательную жизнь я любил историю. Интерес к другим предметам приходил и уходил, а к истории оставался всегда. Я люблю документальные и художественные фильмы про историю, легкие книги «про те времена», очерки об известных людях и событиях, научные труды, историю ин...

[Из песочницы] Трансформация кода в Android Вместо вступления Всё началось с того, что мне захотелось изучить тонкости настройки Gradle, понять его возможности в Android разработке (да и вообще). Начал с жизненного цикла и книги, постепенно писал простые таски, попробовал создать свой первый Gradle плагин (в buildSrc)...

Огромный открытый датасет русской речи версия 1.0 В начале этого года по ряду причин мы загорелись идеей создать самый большой открытый датасет русской речи. Подробнее о нашей мотивации и о том, как всё начиналось, можно прочитать в этой статье — Огромный открытый датасет русской речи. С тех пор наш проект прошел через ряд...

Пишем свой язык программирования, часть 2: промежуточное представление программ Введение Приветствую всех, кто заглянул почитать мою очередную статью. Повторюсь, я описываю создание языка языка программирования, на основе проведенной ранее работы, результаты которой описал в этом посте. В первой части (линк: habr.com/post/435202) я описал этапы прое...

[Перевод] HTTP/3: от корней до кончиков Протокол прикладного уровня HTTP лежит в основе интернета. Он начал свою жизнь в 1991 году как HTTP/0.9, а к 1999 году превратился в HTTP/1.1, который был стандартизирован Инженерным советом Интернета (IETF). HTTP/1.1 долго всех удовлетворял, но растущие потребности Сети п...

[recovery mode] Вышел Embarcadero RAD Studio 10.3.2 или то что мертво… умерло Привет, Хабр! Присаживайтесь поудобней, заварите себе чайку, ибо я пишу немного затянуто и через правое ухо. Итак, Вы готовы? Отлично, тогда приступаем. ВНИМАНИЕ! Информация, описанная ниже, написана исключительно в исследовательских целях и не предназначена для использовани...

Полная жизнь на Svelte У Радислава Гандапаса есть отличная книга Полная Ж. В ней говорится о том, как оценить направления своей жизни, и как разработать план развития. Мне захотелось создать инструмент, который будет в моем смартфоне и поможет составить мой радар. Читать дальше →

[recovery mode] Релокация в Мюнхен. Путь Scalors разработчика к работе мечты в Amazon Юрий Дзюбан, разработчик программного обеспечения, более девяти лет назад переехал работать в Польшу, а после этого релоцировался в Германию по предложению от Scalors. Сейчас он уже около полугода занимает должность Java Middle программиста в компании Amazon, в Мюнхене. —...

[Из песочницы] fform: React & JSONSchema — максимальная гибкость Flexibile form (fform) — построитель форм с минимальной избыточностью кода, при этом максимально гибкий и расширяемый. Используемый стэк технологий: React (v16), Redux (опционально), JSONSchema, TypeScript. Основная идея — максиально возможное повторное использование схем, ...

Подготовка к захвату мира, закрываю гештальты Спрашивается, о чём мой проект? А я сам не знаю. Планы меняются. Идей много. Но есть общий базовый функционал. Вот я пока про это. Уже 5 месяцев. После весеннего обострения, в приступе одиночества, хочу поделиться некоторыми наработками. Читать дальше →

[Из песочницы] 10 лет в IT с диагнозом шизофрения, советы по выживанию Мой диагноз параноидная шизофрения. Заболел я через год после окончания университета. Вот уже 10 лет я работаю в IT, сейчас моя должность — старший инженер-программист. Хочу рассказать, с какими проблемами может столкнуться человек с серьезным психическим заболеванием при по...

[Перевод] Процедурные дороги в Houdini и Unity Для моей постапокалиптической игры Frameshift мне нужно было заполнить очень большой открытый мир разнообразными городами. В нашей команде всего 3 человека, поэтому я, разумеется, воспользовался процедурной мощью Houdini! Раньше, когда не знал о Houdini, я писал на C# соб...

Наследование в C++: beginner, intermediate, advanced В этой статье наследование описано на трех уровнях: beginner, intermediate и advanced. Expert нет. И ни слова про SOLID. Честно. Beginner Что такое наследование? Наследование является одним из основополагающих принципов ООП. В соответствии с ним, класс может использовать пер...

[Перевод] Генерация подземелий в Diablo 1 Diablo 1 — это классический roguelike 1996 года в жанре hack and slash. Это была одна из первых успешных попыток познакомить широкие массы с roguelike, которые до этого имели нишевую графику в виде ASCII-арта. Игра породила несколько сиквелов и множество имитаций. Она извес...

[Из песочницы] Геймификация продукта. История Ratatype Геймификация — это использование игровых механик в неигровых ситуациях и продуктах. Элементы игры все плотнее входят в нашу повседневную жизнь. Например, мы можем делать покупки в каком-то одном супермаркете только потому, что нам надо собрать коллекцию героев из «Звездных в...

Байки про иностранных заказчиков и их особенности работы в России после закона о ПДн Коллеги из Европы попросили включить эти статьи в договор на предоставление облачных услуг. Когда вступил в силу закон о хранении персональных данных в России, к нам в облако начали массово стучать иностранные заказчики, у которых было здесь локальное подразделение. Это кр...

[Из песочницы] Автоматика для дома своими руками Моя статья будет полезна тем, кто только задумывается над подобного рода системой, поможет определиться делать ли самому и ориентирована в основном на энтузиастов-колхозников. Изначально пишу “автоматика” а не умный дом, потому что на данном этапе умных функций в моей систем...

Redux — пересмотр логики reducer'a и actions На днях ковыряясь в множестве файлов redux'a, где по логике файлы вынесены в reducers, actions, константы типов actions. Bсе это оказалось весьма не простая задача держа все эти типы файлов у себя в голове и прослеживать логику. И… эврика, появилась идея упрощения написания...

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

[Перевод] io_submit: альтернатива epoll, о которой вы никогда не слышали Недавно внимание автора привлекла статья на LWN о новом интерфейсе ядра для опроса (polling). В ней обсуждается новый механизм опроса в Linux AIO API (интерфейс для асинхронной работы с файлами), который добавили в ядро версии 4.18. Идея довольно интересная: автор патча пр...

Обзор GeForce NOW. Делаем простенький MacBook игровым С начала октября в России официально заработал сервис для облачного гейминга GeForce Now. Он позволяет запускать современные игры на любом компьютере в FullHD разрешении с 60 FPS. Мы решили проверить на деле, получится ли у нас поиграть на самом базовом MacBook 12 2015 Early...

Как отключить / включить поворот экрана на iPhone В этом материале мы расскажем как управлять (отключать или включать) поворот экрана в различных версиях  iPhone при удерживании смартфона в альбомной ориентации и по каким причинам данная функция может не работать. Сразу стоит отметить, что в первую очередь поддержка поворот...

[Из песочницы] Создание минимального Docker-контейнера для Go-приложений Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications». Время чтения: 6 минут Существует множество, как официальных, так и поддерживаемых сообществом контейнеров для разл...

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

[Перевод] Типы для HTTP-API, написанных на Python: опыт Instagram Сегодня мы публикуем второй материал из цикла, посвящённого использованию Python в Instagram. В прошлый раз речь шла проверке типов серверного кода Instagram. Сервер представляет собой монолит, написанный на Python. Он состоит из нескольких миллионов строк кода и имеет неско...

[Из песочницы] Решение заданий WorldSkills модуля Network в компетенции «СиСА». Часть 1 — Базовая настройка Движение WorldSkills направлено на получение участниками преимущественно практических навыков, востребованных на современном рынке труда. Компетенция «Сетевое и системное администрирование» состоит из трех модулей: Network, Windows, Linux. Задания меняются от чемпионата к че...

Retentioneering: как мы open-source инструменты для продуктовой аналитики на Python и Pandas написали Привет, Хабр. Эта статья посвящена итогам четырехлетней разработки набора методов и инструментов обработки траекторий движения пользователей в приложении или на сайте. Автор разработки — Максим Годзи, который стоит во главе команды создателей продукта, он же — автор статьи. ...

AERODISK Engine: Катастрофоустойчивость. Часть 1 Привет, читатели хабра! Темой этой статьи будет реализация средств катастрофоустойчивости в системах хранения AERODISK Engine. Изначально мы хотели написать в одной статье про оба средства: репликацию и метрокластер, но, к сожалению, статья получилась слишком большой, поэто...

[Из песочницы] Hunt the Wumpus или опыт написания классической игры для Android Слышали ли вы когда-нибудь про Вампуса? Независимо от ответа — добро пожаловать в его владения! В этой статье я хочу поведать вам свою историю создания игры под Android. В зависимости от компетенции читателя передаваемые мною опыт, мысли и решения будут более или менее по...

Исправляем паттерн проектирования — Singleton в PHP Недавно я писал о том, как сломать паттерн проектирования — Singleton в PHP. После написания статьи я искал новый вариант реализации паттерна: есть ли способ создать Singleton в PHP, не давая возможности создавать новые экзепляры класса с помощью Closure::bind()? Читать даль...

Подключение энкодера к экранам OLED 0.96' (SSD1306) и OLED 1.3' - SH1106 в прошивках MARLIN Добрый день всем! Получаю достаточно много вопросов в личную почту по подключению энкодеров и экранов OLED 0.96'  (SSD1306) и OLED 1.3' - (SH1106) в прошивках MARLIN, поэтому решил написать эту маленькую статью по подключению данных экранов, энкодера и карты памяти. Экр...

[recovery mode] Как я свою онлайн игру создавал. Часть 1: Работа с сетью Привет всем! У меня недавно был отпуск, и появилось время спокойно попрограммировать свои домашние проекты. Захотел я, значит, свою простенькую онлайн игру сделать на Rust. Точнее, простенькую 2D стрелялку. Решил сначала сделать сетевую часть, а там уже видно будет, что да...

[Перевод] Что каждому разработчику следует знать с самого начала Как разработчик, вы услышите много сумасшедших, невероятных теорий о значении «строк кода». Не верьте ни одной. Строки кода — нелепая метрика. В очень редких случаях она что-то говорит, обычно — ничего. Использование строк кода для принятия решений похоже на оценку качества ...

[Перевод] Взгляд на ЭКГ от Apple Watch человека, которому это жизненно важно Первые впечатления об отслеживании сердечного ритма, недавно появившегося в Apple Watch Когда Apple представила четвёртую версию своих «умных» часов, главным маркетинговым преимуществом стало то, что мы обычно не связываем с часами или любыми другими «умными» устройствами. ...

Быстрее и точнее: гибридная система разнотипных кубитов Некоторые идеи ярко зарождаются и быстро умирают ввиду сложности, дороговизны или даже ненужности реализации. Акулы-убийцы с лазерными установками на голове — звучит очень круто, очень сложно и невероятно нелепо. Однако некоторые идеи в своей реализации обещают если не «зо...

AI supremacy: Leela Chess. Или про то, как полностью открытая нейросеть победила Честно говоря, я очень разочарован хабром. Почему никто не осветил такую вещь, как победа нейросетевого подхода с полностью открытым кодом, а? И полностью открытыми нейросетевыми данными? Действительно, ну вот DeepMind Technologies описали как они обучали шахматный ИИ, иг...

Google добавит в Android 10 функцию, которая будет спасать жизни Функция определения падений может спасти вашу жизнь Фотосъёмка и технологии слежения за здоровьем – вот два тренда, на которых сегодня выезжают производители мобильной электроники. Но, поскольку измерение пульса и снятие показаний ЭКГ смартфонам совершенно не подходят, на ры...

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

Возможности nanoCAD СПДС Стройплощадка в проектах строительства и реконструкции в стесненных условиях Предлагаем вашему вниманию статью «Возможности nanoCAD СПДС Стройплощадка в проектах строительства и реконструкции в стесненных условиях». В статье описан практический пример использования программы nanoCAD СПДС Стройплощадка в проекте устройства подземного перехода через пр...

Универсальный пул У нас есть ArrayPool для переиспользования массивов. Работает это так: взяли массив определенной длинны что то с ним поделали и положили обратно. Нужно это для больших объектов которые по логике программы долго не должны храниться. В предыдущей статье описана эта проблема. ...

Ускоряем PHP-коннекторы для Tarantool с помощью Async, Swoole и Parallel В экосистеме PHP на данный момент существует два коннектора для работы с сервером Tarantool ― это официальное расширение PECL tarantool/tarantool-php, написанное на С, и tarantool-php/client, написанный на PHP. Я являюсь автором последнего. В этой статье я хотел бы подели...

Каким был ваш первый Android-смартфон? Уже на этой неделе многие производители представят интересные смартфоны и кто-то из читателей наверняка захочет обновить свой гаджет. На фоне этого нам интересно узнать, каким был ваш первый Android-аппарат. Чтобы подтолкнуть вас на дискуссию, немного расскажу о своём опыт...

Иллюзия иммутабельности и доверие как основа командной разработки Вообще я C++ программист. Ну так получилось. Подавляющее большинство коммерческого кода, который я написал за свою карьеру, — это именно C++. Мне не очень нравится такой сильный перекос моего личного опыта в сторону одного языка, и я стараюсь не упускать возможности написать...

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

В мрачной аркаде Rest in Pieces появились русский язык и бустеры В прошлом месяце на мобильных вышла необычная аркада Rest in Pieces. В ней вы управляете фарфоровыми фигурками, пытаясь спасти несчастные души, заточенные во снах. Недавно для игры вышло обновление, которое добавило русский язык и ввело механику усилений. С их помощью персо...

Памятка начинающему разработчику компьютерных игр Данная статья ориентирована на школьников, студентов, и тех, кто постарше, кто никогда не пробовал, но очень хочет начать писать компьютерные игры. Кто в детстве не играл в компьютерные игры, и не хотел написать свою игру, которая будет лучше, чем GTA или Crysis? И я хотел,...

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

[Из песочницы] Как я свой первый ИИ писал Привет, Хабр. История моя берёт начало в январе 2019 года. Мы с моей тимой геймдевелоперов решили взяться за самый большой проект в нашей истории- 2Д платформер. Нет, мы не делали до этого какие-нибудь FlappyBird'ы или змейки, но объём работы в этом проекте просто сносил на...

Настраиваем Finder под себя Несмотря на внешнюю простоту интерфейса Finder, файловый менеджер имеет массу скрытых возможностей. С помощью простых действий, можно сделать работу с проводником гораздо продуктивнее. Можно довольно точно настроить параметры Finder под себя: включая панель инструментов, за...

Запуск SAP GUI из браузера Эту статью я сначала написал в свой блог, чтобы потом опять не искать и не вспоминать, но поскольку блог никто не читает, то этой информацией захотелось поделиться со всеми, вдруг кому пригодиться. Во время работы над идеей сервиса по сбросу пароля в системах SAP R/3 возник...

[Из песочницы] Уведомления о входах на сервер (SSH/TERMINAL) дешево и сердито Приветствую сообщество. Это первая публикация, далеко не профи-администратора, но просто захотелось поделиться короткой и простой наработкой, которая может оказаться полезной для такого же новичка как я сам. Сложилось так, что потребовалось контролировать около 30 VDS-ок на...

[recovery mode] Бинарные деревья поиска Прелюдия Эта статья посвящена бинарным деревьям поиска. Недавно делал статью про сжатие данных методом Хаффмана. Там я не очень обращал внимание на бинарные деревья, ибо методы поиска, вставки, удаления не были актуальны. Теперь решил написать статью именно про деревья. Пожа...

Восхождение на Эльбрус — Разведка боем. Техническая Часть 1. Регистры, стеки и другие технические детали Как и обещали, продолжаем рассказывать про освоение процессоров Эльбрус. Данная статья является технической. Информация, приведенная в статье, не является официальной документацией, ведь получена она при исследовании Эльбруса во многом как черного ящика. Но будет безусловно ...

Работа с API КОМПАС-3D → Урок 15 → Составные строки на основе параграфа В уроке 12 мы познакомились с составными строками и рассмотрели недокументированный способ их создания. В уроке 13 были представлены параграфы. Сегодня мы рассмотрим, как их использовать для создания составных строк. Для начала возьмем строки, включающие в свой состав отклон...

Архитектура хранилищ данных: традиционная и облачная Привет, Хабр! На тему архитектуры хранилищ данных написано немало, но так лаконично и емко как в статье, на которую я случайно натолкнулся, еще не встречал. Предлагаю и вам познакомиться с данной статьей в моем переводе. Комментарии и дополнения только приветствуются! (И...

Авторы Anthem о работе над полётами: «Они могли поломать игру» Французское издание JeuxVideo взяло интервью у нескольких руководителей разработки Anthem. Они поделились своим опытом работы над механикой полётов. По словам авторов, создание сбалансированного вертикального геймплея потребовало много усилий и преодоления огромного...

[Из песочницы] Справочник начинающего подкастера Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться запо...

Умные алгоритмы обработки строк в ClickHouse В ClickHouse постоянно возникают задачи, связанные с обработкой строк. Например, поиск, вычисление свойств UTF-8 строк или что-то более экзотическое, будь то поиск типа учёта регистра или поиск по сжатым данным. Всё началось с того, что руководитель разработки ClickHouse Лёш...

[Перевод] Мой первый день с Haiku: она неожиданно хороша TL:DR; Новичок попробовал Haiku в первый раз и решил, что она потрясная. Особенно по сравнению с рабочими окружениями, доступными на Linux Я уже делился своими идеями (а также разочарованиями) по поводу #LinuxUsability (part 1, part 2, part 3, part 4, part 5, part 6). В это...

Microsoft добавляет тени для всплывающих окон Edge (Chromium) в Windows 10 В рамках программы Fluent Design Microsoft добавила тонкую тень для многих меню и основных частей Windows 10. Microsoft также планирует реализовать эффект тени в Chromium также для меню, созданных с помощью элементов управления HTML-формы.Согласно новому обязательству, Micro...

[Из песочницы] 10 понятий для дизайнера в 2019-м Среда работы UI/UX дизайнеров стремительно расширяется и растет: появляется уйма новых продуктов и инструментов для разработки интерфейсов, крутых возможностей благодаря развитию гибких языков программирования и, конечно же, в дизайнерскую экосферу внедряется множество новых...

Как настроить Linux для входа в домен с использованием алгоритмов ГОСТ Введение Протокол Kerberos 5 сейчас активно используется для аутентификации. Особенностью данного протокола является то, что он осуществляет аутентификацию, базируясь на трех китах: Симметричное шифрование Хеширование ЭЦП Третья доверенная сторона Начиная с пятой версии п...

[Из песочницы] Рецензия на перевод «Если софт создаётся на общественные деньги, код должен быть открыт» Прочитал статью-перевод «Если софт создаётся на общественные деньги, код должен быть открыт» которая вызвала двоякое чувство. С одной стороны идея кажется правильной, но в статье описано несколько принципиальных проблем, которые вольно или невольно оказывают читателям медвеж...

[Из песочницы] Как я создавал «WildMAN» — пародию на множество 8-битных игр и недавно ее портировал на Android Я думаю каждого фаната приставочных игр интересовала тема создания игр и была мечта создать свою игру, в студенческие годы я увлёкся программированием. Читать дальше →

[Перевод] Собственная реализация библиотеки ECS На этой неделе я начал работать над своим движком для игры Vagabond и приступил к реализации шаблона entity-component-system. В этой статье я хочу рассказать о своей реализации, которая свободно доступна на GitHub. Но вместо простого комментирования кода я хочу объяснить, ...

Дозиметр для Серёжи. Часть III. Народный радиометр Самой частой претензией в комментариях к прошлой моей статье была претензия в «радиофобии». Хотя я в принципе не понимаю, какой деструктивный общественный посыл может нести это «заболевание» (в отличие от той же вакционофобии или какой-нибудь аблютофобии). Наоборот, чем боль...

Как взять сетевую инфраструктуру под свой контроль. Глава четвертая. Автоматизация. Темплейты Эта статья является шестой в цикле статей «Как взять сетевую инфраструктуру под свой контроль». Содержание всех статей цикла и ссылки можно найти здесь. Оставив несколько тем позади, я решил все же начать новую главу. К безопасности вернусь чуть позже. Здесь я хочу обсудит...

NVIDIA пополняет список мониторов, совместимых с G-Sync На CES 2019 в начале этого года, NVIDIA пообещала выпустить патч, который позволит игровым мониторам FreeSync использовать технологию отображения G-Sync с защитой от разрывов. Недавно компания расширила свой список G-Sync-совместимых мониторов семью новыми моделями. Это мони...

[Из песочницы] Только не говорите, что вы таким не были или мой взгляд на обучение Всем привет. Я хотел бы рассказать свое мнение по поводу современного обучения программированию. В статье речь пойдет про PHP, немного про фреймворки и немного про велосипеды. Но я думаю, что к любому языку программирования это применимо. Начнем. Помните свой первый код на P...

Разработка Unix подобной OS — Драйверы символьных устройств (8) В предыдущей статье мы ввели многозадачность. Сегодня пришло время рассмотреть тему драйверов символьных устройств. Конкретно сегодня мы напишем драйвер терминала, механизм отложенной обработки прерываний, рассмотрим тему обработчиков верхних и нижних половин прерываний. ...

Как запустить Google Assistant на Galaxy Watch Несмотря на ребрендинг, который Google провела с Android Wear, переименовав ее в Wear OS, платформа так и осталась не слишком привлекательной для пользователей. Как показала практика, уж если люди и выбирают смарт-часы для работы в паре с Android-смартфоном, то чаще всего и...

Приятное и полезное в преподавании Всем привет! Год назад я написал статью про то, как я организовывал университетский курс по обработке сигналов. Судя по отзывам, в статье много интересных идей, но она большая и тяжелочитаемая. И я давно хотел разбить её на более маленькие и написать их понятнее. Но писать о...

Погружаемся в opensource-экосистему Android Disclaimer о том, что пост не призывает к радикальным формам фанатизмаКаждый выбирает свой "уровень погружения". Вам не обязательно следовать каждому пункту из этого поста. Моя цель — показать, насколько хорошо развита экосистема на данный момент и чего вы можете и не можете...

[Перевод] Аппликативные регулярные выражения, как свободный альтернативный функтор Предлагаю вашему вниманию перевод замечательной свежей статьи Джастина Ле. В своём блоге in Code этот автор достаточно легким языком рассказывает о математической сути красивых и изящных функциональных решений для практических задач. В этой статье подробно разбирается приме...

[Перевод] 20 вещей, которые мне хотелось бы знать, прежде чем стать веб-разработчиком В самом начале своей карьеры я не знал многих важных вещей, которые для начинающего разработчика являются крайне полезными. Оглянувшись назад, я могу сказать, что многие мои ожидания не оправдались, они и близко не соответствовали реальности. В этой статье я расскажу о 20...

Автоматизация Для Самых Маленьких. Часть Вторая. Дизайн сети В первых двух статьях я поднял вопрос автоматизации и набросал её фреймворк, во второй сделал отступление в виртуализацию сети, как первый подход к автоматизации настройки сервисов. А теперь пришло время нарисовать схему физической сети. Если вы не на короткой ноге с устрой...

Резюме того парня Друзья, нам с вами несказанно повезло. Тот парень еще не уехал, и я выпросил у него резюме. Не потому, что хочу взять его на работу — не тот я человек. Просто мне кажется, оно стоит того, чтобы быть опубликованным. Хотя бы потому, что в нем 22k букв. Вы еще где-нибудь такой ...

[Из песочницы] Сравнение: Svelte и React На сайте React'a есть туториал, в котором описывается разработка игры Tic Tac Toe. Я решил повторить разработку этой игры на Svelte. Статья охватывает только первую половину туториала, до реализации истории ходов. Для целей ознакомления с фреймворком этого вполне достаточно....

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

Создание системы формальной верификации с нуля. Часть 1: символьная виртуальная машина на PHP и Python Формальная верификация — это проверка одной программы либо алгоритма с помощью другой. Это один из самых мощных методов, который позволяет найти в программе все уязвимости либо же доказать, что их нет. Более подробное описание формальной верификации можно увидеть на пример...

Python из C В прошлом году появилась необходимость дополнить старый проект написанный на C функционалом на python3. Не смотря на то, что есть статьи на эту тему я помучился и в том году и сейчас когда писал программы для статьи. Поэтому приведу свои примеры по тому как работать с pytho...

[Перевод] Восемь малоизвестных опций Bash Некоторые опции Bash хорошо известны и часто используются. Например, многие в начале скрипта пишут set -o xtrace для отладки, set -o errexit для выхода по ошибке или set -o errunset для выхода, если вызванная переменная не установлена. Но есть много других опций. Иногда ...

[Перевод] Краткий курс по управлению удаленными командами Всем привет! Я уже давненько не писал и подзабыл, как это делается, но хочу поделиться информацией, которая многим может пригодиться. Ведь ко мне постоянно пристают с вопросами, вроде: ● «Стоит ли работать удаленно?» ● «Как вы организовали удаленную работу для своей команды?...

Импортозамещение на практике. Часть 1. Варианты Введение В связи с тем, что близится 2020 год и «час хэ», когда нужно будет отчитаться об исполнении приказа Минкомсвязи о переходе на отечественное ПО (в рамках импортозамещения), да не простое, а из реестра Минкомсвязи, мне прилетела задача о разработке плана, собственно...

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

Кто изобрёл матрёшку? Между тем на свет эта игрушка появилась относительно недавно, на рубеже XIX—XX вв.еков. Существует множество версий происхождения матрешки. Согласно большинству из них ее прототипом стала фигурка одного из семи японских богов удачи — бога учености и мудрости Фукурумы (иногда...

[Перевод] Для чего пригодится дефолтная реализация интерфейсов? В моем последнем посте я обещал рассказать о некоторых случаях, в которых, я думаю, имеет смысл рассмотреть использование дефолтной реализации в интерфейсах. Эта фича, конечно, не отменяет множество уже существующих соглашений по написанию кода, но я обнаружил, что в некотор...

[Из песочницы] Заканчивая 4 год обучения на программиста, я понимаю, что до программиста мне далеко Статья в первую очередь направленна на молодых людей, которые еще только думают выбрать профессию. Предисловие В уже, как нам кажется, далеком 2015 я окончил школу и начал раздумывать о том, кем же я хочу стать в этой жизни. (хороший вопрос, я все еще ищу на него ответ) Жи...

[Перевод] Записки фрилансера: разработка первого React Native-приложения Автор материала, перевод которого мы публикуем, недавно выпустил своё первое мобильное приложение, написанное на React Native. Так случилось, что это приложение стало и его первым проектом, который он создал как программист-фрилансер. Здесь он расскажет о том, с чем ему приш...

Обеспечение безопасности в беспроводных протоколах на примере LoRaWAN Привет, Хабр. Мне хотелось бы в очередной раз поговорить о том, как обеспечивается базовый (читай: минимально необходимый) уровень безопасности данных в беспроводных сетях, используемых в IoT-устройствах, на примере LoRaWAN. Почему именно LoRaWAN? Во-первых, потому, что эт...

Сжатие указателей в Java В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которая контролируется опцией UseCompressedOops и включена по-умолчанию для 64 битных систем начиная с Java SE 6u23. Читать дальше →

Семейный бюджет в Telegram Статья посвящена обзору Telegram-бота @budgetmoneybot для ведения семейного бюджета. Прежде чем начать обзор, я бы хотел написать несколько строк о том, как мы с супругой пришли к ведению бюджета в Telegram. Надо сказать, что необходимость ведения бюджета мы начали осознава...

[Из песочницы] Назад в будущее с WebAssembly Привет, Хабр! Представляю вашему вниманию перевод статьи «Back To The Future With WebAssembly» автора Attila Vágó. Данный пост является переводом статьи, в которой рассказывается о свойствах WebAssemly и Emscripten. Оригинал статьи на английском языке. Автор статьи Аттила ...

[Перевод] Физика игрового торнадо: как реализована аэродинамика в Just Cause 4 (трафик) Жак Кернер — старший инженер-разработчик ПО в Avalanche Studios. Как будто раньше игра была недостаточно безумной Введение Серия игр Just Cause и Avalanche Studios известны своей технологией открытого мира, обеспечивающего разнообразный и увлекательный игровой процесс. В ...

Google Drive как хранилище для веб-приложения Предисловие Мое веб-приложение хранит данные в localStorage. Это было удобно, пока не захотелось, чтобы пользователь, заходя на сайт с разных устройств, видел одно и то же. То есть, понадобилось удаленное хранилище. Но приложение «хостится» на GitHub Pages и не имеет сервер...

Univention Corporate Server (UCS) — установка простого и удобного LDAP сервера с web-панелью и его связка с Nextcloud Рано или поздно на любом маленьком или среднем предприятии возникает задача по созданию единого центра авторизации пользователей в многочисленных сервисах и порталах компании. Среди кандидатов на такой центр авторизации сразу приходит в голову Microsoft Active Directory ил...

Scala + MXNet = Микросервис с нейронкой в проде В интернете есть огромное количество руководств и примеров, на основе которых вы, дорогие читатели, сможете «без особого труда» и с «минимальными» временными затратами написать код, способный на фото отличать кошечек от собачек. И зачем тогда тратить время на эту статью? О...

[Из песочницы] Быстрая интеграция с 1С: Предприятие В данной статье я расскажу о наиболее простом, на мой взгляд, способе интеграции сторонних приложений с конфигурациями 1С. Статья будет интересна в первую очередь разработчикам, пишущим на .Net Core, PHP и Python. Способов интеграции с 1С известно много, этому даже посвящен...

[Из песочницы] О реализации известного жанра на платформе Minecraft Целью данной статьи является помощь начинающим игровым проектам с нестандартной тематикой избежать базовых ошибок в реализации. Данная статья рассказывает о личном опыте ведения игрового стартапа в рамках Minecraft. Как всё начиналось Мои интересы во многом не совпадали с и...

[Перевод] Офис — это театр, в котором мы актёры TL;DR. Многие стремятся к «тихому успеху» — делать работу, которая «говорит сама за себя». К сожалению, это неправильный ход в современном театре труда. Зачастую верно обратное — для офисного информационного сотрудника представление работы и есть работа. Да, внутренняя полит...

Death Hall — хардкорный и брутальный платформер для iOS Death Hall– платформер, который не только является хардкорным, но и выглядит максимально брутально, обходя в этом плане даже легендарный Super Meat Boy. Он выполнен в вертикальной ориентации с управлением, построенным на трех кнопках: движениях влево или вправо и прыжках. ...

[Из песочницы] Своя временная почта: телеграм бот Часто с новыми инструментами и возможностями появляется желание поэкспериментировать и реализовать что-то не совсем обычное, чего раньше ещё никогда не делал. Идея создать свой сервис временной почты в виде телеграм бота показалась мне достаточно интересной. Читать дальше &r...

Своя видео-платформа или чем занять много вычислительных ресурсов. Part 1 На фото — первый летающий четырёхколёсный велосипед. Источник. Сегодня, благодаря доступности нужных сервисов, размещение видео в сети не является сложной задачей. Однако материалов по внутреннему устройству подобных систем не так уж и много, особенно в русскоязычном сегмен...

[Из песочницы] Рефакторинга много не бывает Привет, Хабр! Представляю вашему вниманию перевод статьи "Refactoring — oops, I’ve been doing it backwards" автора Джастина Фуллера (Justin Fuller). Я очень завишу от рефакторинга, и не боюсь признать это, но есть только одна проблема: я всегда делал это задом на...

[Из песочницы] Разработка многозадачной микроядерной ОС — Планировщик После того, как вы прочитали базовые шаги по написанию Hello World ядра из цикла имеющихся на Хабре статей, самое время приступить к серьезной разработке самых базовых инструментов: аллокатора кучи и планировщика. Честно говоря я долго думал стоит ли начинать писать статьи ...

[Перевод] Интервью с одним из создателей Untitled Goose Game Похоже, сегодня все стали крякать чуть больше обычного, ведь недавно вышла потрясающая игра Untitled Goose Game студии House House, в которой игрок управляет вредным гусём, терроризирующим ничего не подозревающих жителей небольшого городка. Программист игры Нико Диссельдор...

[Перевод] Reflective Shadow Maps: Часть 2 ― Реализация Привет, Хабр! В данной статье представлена простая реализация Reflective Shadow Maps (алгоритм описан в предыдущей статье). Далее я объясню, как я это сделал и какие подводные камни были. Также будут рассмотрены некоторые возможные оптимизации. Рисунок 1: Слева направо: бе...

Конечные React Компоненты Чем мне нравится экосистема React, так это тем, что за многими решениями сидит ИДЕЯ. Различные авторы пишут различные статьи в поддержку существующего порядка и обьясняют почему все "правильно", так что всем понятно — партия держит правильный курс. Через некоторые время ИДЕЯ...

[Из песочницы] Sourcery для автоматического конвертирования в структуры объектов Realm В интернете, да и даже на Хабре, есть куча статей о том, как работать с Realm. Эта база данных достаточно удобная и требует минимальных усилий для написания кода, если ей уметь пользоваться. В этой статье будет описан метод работы, к которому пришел я. Читать дальше →

Как добавить индекс на нагруженной системе 24/7 без простоя? Друзья, в конце января у нас стартует новый курс под названием «MS SQL Server разработчик». В преддверии его запуска мы попросили преподавателя курса, Кристину Кучерову, подготовить авторскую статью. Эта статья будет вам полезна, если у вас есть очень популярная таблица на ...

[Из песочницы] ClusterJ — работаем с MySQL NDB Cluster из Java Привет, Хабр! В этой статье я хочу рассмотреть такую библиотеку для Java, как ClusterJ, которая позволяет очень просто работать с движком MySQL NDBCLUSTER из Java кода, которая представляет собой высокоуровневое API, схожее по концепции с JPA и Hibernate. В рамках статьи со...

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

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

Рейтинги, топы, обзоры — все врут? Привет, Хабр! Сегодня мы с вами поговорим о рейтингах, топах, обзорах и разного рода отзовиках, на которые ориентируются наши с вами клиенты, выбирая программное обеспечение. Мне бы в жизни не пришло в голову затеять это мини-расследование о рейтингах CRM, если бы не жёсткая...

Пластик закончился, а модель еще не распечатана. Привет всем.  Я столкнулся с такой "проблемой", когда модель еще не распечатана, а пластик уже заканчивается. Так как я еще плохо освоил азы 3D печати, и своими неумелыми действиями, очень жалко испортить модель, которая уже распечатана на 75% пришла в мою шальную голов...

Как внести в память Touch ID не 5, а 10 отпечатков пальцев Официальная позиция Apple состоит в том, что Face ID примерно в 20 раз надежнее Touch ID. Некоторым это утверждение кажется спорным, учитывая, что защиту Face ID обходят не только 3D-маски, но и близнецы, и даже дети, которым пришло в голову попытаться разблокировать iPhone...

[Из песочницы] Как я боролся с Shared Element Transition и написал свою первую opensource библиотeку Нет повести печальнее на свете, чем повесть о ViewPager’e и SET’e Хочется предупредить, что автор ‒ новичок андроид, поэтому статья содержит столько технических неточностей, что вас, скорее, нужно предупредить о том, что в статье могут встретиться технически достоверные...

Создание плагина для Clang Static Analyzer для поиска целочисленных переполнений Автор статьи: 0x64rem Вступление Полтора года назад у меня появилась идея реализовать свой фазер в рамках дипломной работы в университете. Я начала изучать материалы про графы потока управления, графы потока данных, символьное исполнение и т.д. Далее шёл поиск тулз, проба р...

[Из песочницы] Базовые знания в безопасности сайтов Привет, Хабр! Безопасность — дело серьезное. И зачастую проблемы в этой области всплывают неожиданно и несут крайне неприятные последствия. Поэтому знания в этой теме крайне важны для каждого веб разработчика. Оговорюсь сразу — я далеко не профи, но стремлюсь к этому. Поэт...

[recovery mode] Почему не нужно тратить свое время на создание нишевых тематических сайтов К настоящему моменту я владею несколькими тематическими порталами, которые успешно загибаются. И в этой статье я расскажу о том, как я их сделал, сколько получил, и почему им приходит конец, и я не могу ничего с этим сделать. Буду рассказывать на примере сайта по мужской...

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

ССоздание фигурки ведьмы. Часть первая Мне нравиться как люди собирают и красят "гаражные наборы(garage kit)" или в простонародье "гаражки".Всегда хотелось попробовать сделать свою собственную. И вот наконец решился.Один бы я не справился, поэтому попросил помощи у профессионального художника по миниатюре и класс...

Комфортный DevOpsSec: Nemesida WAF Free для NGINX с API и личным кабинетом Nemesida WAF Free — бесплатная версия Nemesida WAF, обеспечивающая базовую защиту веб-приложения от атак класса OWASP на основе сигнатурного анализа. Nemesida WAF Free имеет собственную базу сигнатур, выявляет атаки на веб-приложения при минимальном количестве ложных сраба...

3D игра на three.js, nw.js Я решил выпустить новую версию своей старой браузерной игры, которая на протяжении пары лет пользовалась успехом в качестве приложения в социальных сетях. На этот раз я задался целью оформить ее также и в виде приложения под Windows (7-8-10) и разместить в различных магазина...

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

[Из песочницы] Байесовская сеть, валюты и мировой кризис Эта статья про модель на основе Байесовской сети, которая описывает котировки мировых валют. Я покажу на основе простой метрики, что паттерн поведения котировок мировых валют за последние два года (с начала 2018 по конец 2019) совпадает с тем, который наблюдался в течении ...

[Из песочницы] Руководство по выбору ЧПУ станка для выжигания Если Вы только изучаете возможности пирографии и не имеете опыта в этой области, выбор ЧПУ станка для выжигания может поставить Вас в тупик в плане выбора ЧПУ выжигателя. Для выжигания подходят два варианта ЧПУ — это лазерный станок и нихромовый пиропринтер. Лазерные мы ...

Бесплатный VPN сервис Wireguard на AWS Для чего? С ростом цензурирования интернета авторитарными режимами, блокируются все большее количество полезных интернет ресурсов и сайтов. В том числе с технической информацией. Таким образом, становиться невозможно полноценно пользоваться интернетом и нарушается фундамента...

[Из песочницы] Attention для чайников и реализация в Keras О статьях по искусственному интеллекту на русском языке Не смотря на то что механизм Attention описан в англоязычной литературе, в русскоязычном секторе достойного описание данной технологии я до сих пор не встречал. На нашем языке есть много статей по Искусственному Интелл...

[Перевод] Деревья квадрантов и распознавание коллизий Эта неделя была короткой, в понедельник и вторник я продолжал работать над системой 2D-освещения. Остальное время я потратил на реализацию деревьев квадрантов (quadtree). В этой статье я поделюсь своей реализацией и мыслями, возникшими в процессе её проектирования. Во-пер...

Способ организации коллективного изучения теории в ходе семестра Всем привет! Год назад я написал статью про то, как я организовывал университетский курс по обработке сигналов. Судя по отзывам, в статье много интересных идей, но она большая и тяжелочитаемая. И я давно хотел разбить её на более маленькие и написать их понятнее. Но писать о...

[Перевод] 20 лет RollerCoaster Tycoon: интервью с создателем игры 31 марта 1999 года была выпущена игра RollerCoaster Tycoon, полностью созданная одним человеком и написанная на языке ассемблера x86. В честь юбилея игры мы публикуем перевод интервью с автором, записанное в 2016 году. Сегодня мало кто помнит имя шотландского программиста ...

[Из песочницы] Как с нуля написать приложение? С чего начать новичку? Flutter / Программирование Пол года назад я сама искала такую статью и теперь я очень хочу посоветовать себе в прошлом с чего можно начать. 1. Выбрать тему приложения Не нужно долгих мук выбора, просто начните делать то, что вам пригодилось бы. Лучше что-то простое. Нужно понимать, что мы пока не стр...

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

[Из песочницы] Необходимые материалы для старта разработки обучающего VR проекта В статье подробно расскажем в каком формате заказчик должен предоставить информацию исполнителю, для разработки VR проекта и какие материалы необходимо предоставить, для четкого описания проекта своей идеи. Задача заказчика заключается в донесении информации исполнителю, для...

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

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

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

Игры, которые заставляют посмотреть на мобильные развлечения по-новому  Мобильные игры правят игровой индустрией, принося ей десятки миллиардов долларов каждый год. Но причина доминирования не в оригинальных проектах, а в ориентации на массовую аудиторию. Взрослый человек, не знакомый с играми, не захочет разбираться с GTA, Civilization, XCOM ил...

Плагины томов для хранилищ в Kubernetes: от Flexvolume к CSI Во времена, когда Kubernetes был ещё v1.0.0, существовали плагины для томов (volume plugins). Нужны они были для подключения к Kubernetes систем для хранения персистентных (постоянных) данных контейнеров. Количество их было невелико, а в числе первых — такие провайдеры хра...

[Перевод] Как я выиграл 3 из 4 золотых медалей на Computing Olympiad Я готовился к Финалу чемпионата мира Google HashCode 2017. Это крупнейший конкурс с алгоритмическими задачами, организованный Google. Я начал изучать C ++ с нуля в девятом классе. Я ничего не знал о программировании, алгоритмах и структурах данных. В какой-то момент я на...

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

PVS-Studio для Java В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальнейшие планы. И, конечно, в статье будут приведены первые испытания анализат...

Приложение для iOS и Android на Kotlin + Flutter UI Вступление Всем привет. Какое-то время назад, я решил делать свой проект для Android и iOS одновременно. Естественно, встал вопрос о выборе технологий. Пару недель присматривался к популярным стекам и выбрал Kotlin/Native. Поскольку я являюсь Android-разработчиком, то с Ko...

Строительные блоки распределенных приложений. Первое приближение В прошлой статье мы разобрали теоретические основы реактивной архитектуры. Пришло время поговорить о потоках данных, путях реализации реактивных Erlang/Elixir систем и шаблонах обмена сообщениями в них: Request-response Request-Chunked Response Response with Request Publis...

Хватит спорить про функциональное программирование и ООП Пост содержит некоторое количество стёба, минздрав убедительно просит неподготовленного читателя воздержаться от прочтения. Статьи на тему «ФП лучше» или «ООП лучше» напоминают дебаты, что же лучше для обеда, вилка или ложка. Традиционно джуны начинали с ложки, но кто-то оче...

Как реализовать язык программирования на JavaScript. Часть 1: Парсер Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно мн...

Триллион маленьких шинглов Источник изображения:www.nikonsmallworld.com Антиплагиат – это специализированный поисковик, о чем уже писали ранее. А любому поисковику, как ни крути, чтобы работать быстро, нужен свой индекс, который учитывает все особенности области поиска. В своей первой статье на Хабре...

[Из песочницы] Подводные камни разработки Google Play Instant Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь Android-разработкой в PROFI.RU. Недавно я написал приложение с мгновенным запуском для наших клиентов. Если вы ещё не знакомы с технологией, приглашаю вас сначала посетить Android Developers. С презентации Instant Apps (G...

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

[Перевод] Жизнь действия GitHub Action Мне показалось, будет прикольно запилить пост под названием «Жизнь действия GitHub Action». На вводном обучении в Google тебя проводят через «Жизнь запроса», и у меня это был один из самых любимых элементов. Поэтому я использую аналогичный подход для GitHub Action. Для тех, ...

Моя первая виртуальная машина: как не накосячить Итак, вот перед вами свеженькая организация в vCloud Director, и вам только предстоит создать свою первую виртуальную машину. Сегодня расскажу, какие настройки выбирать при создании виртуальной машины, чтобы она работала и не просила есть. Поехали! Источник: drive2.ru Чита...

[Из песочницы] Установка OpenCV + CUDA на Windows Введение В данной статье речь пойдет о сборке и установке OpenCV 4 из исходных файлов с дополнительными модулями CUDA 10 на ОС Windows. Я постарался включить сюда все тонкости и нюансы, с которыми можно столкнуться в ходе установки, и про которые не написано в официальном м...

Система жестов в Android Q снова изменится — кнопка «Назад» может исчезнуть навсегда В Android 9 Google представила жесты. Они присутствовали в системе и раньше, но только с приходом версии Pie даже навигация по ОС стала опираться на них. Пользователи тут же начали говорить, что сама идея скопирована у Apple, но при этом реализация не дотягивает, из-за чего ...

[Из песочницы] Создание простой кликер-игры с нуля В последние несколько лет набирают большую популярность игры такого жанра, как «кликеры». Мне самому очень интересно играть в них, но не менее интересно создавать игру — кликер самому. Благодаря такому движку как Unity, создать свой шедевр не составит труда даже простому нов...

Kali Linux NetHunter на Android: зачем и как установить Здравствуй, мой любознательный друг! Наверняка тебя посещали мысли о том, как хакать все вокруг, не привлекая лишнего внимания санитаров службы безопасности и окружающих, быть похожим на героев фильмов, взламывающих системы просто с мобильного устройства, или как прокачать с...

Как выбрать СХД, не выстрелив себе в ногу Введение Пришла пора покупать СХД. Какую взять, кого слушать? Вендор А рассказывает про вендора B, а еще есть интегратор C, который рассказывает обратное и советует вендора D. В такой ситуации и у опытного архитектора по системам хранения голова пойдет кругом, особенно со в...

Линейная регрессия и методы её восстановления Источник: xkcd Линейная регрессия является одним из базовых алгоритмов для многих областей, связанных с анализом данных. Причина этому очевидна. Это очень простой и понятный алгоритм, что способствует его широкому применению уже многие десятки, если не сотни, лет. Идея зак...

[Из песочницы] Антипаттерны в React или вредные советы новичкам Привет, Хабр. Ровно год прошел с момента, как я начал изучать React. За это время я успел выпустить несколько небольших мобильных приложений, написанных на React Native, и поучаствовать в разработке web-приложения с использованием ReactJS. Подводя итог и оглядываясь назад н...

Мелкая питонячая радость #4: Radon — качество кода, измеренное в числах Инженеры очень любят измерения и числа. Поэтому нет ничего удивительного в том, что они пытаются измерять в численном виде такую нетривиальную штуку, как качество кода. Метрик для оценки текстов программ придумали немало — от банального количества строк кода в проекте до н...

Как мы слили финал IT-Планеты по программированию Не мы плохие, а багов много. Разработка искусственного интеллекта для игры “Хоккей” за ~7 часов. Изначально статья планировалась о стратегиях участников, о том, что они успели сделать за конкурсное время и рады ли проделанной работой, но, опросив финалистов восемь, стало яс...

Анонс Cooler Master MM710: самая лёгкая геймерская мышь с первоклассным сенсором Cooler Master представил самую лёгкую в своём ассортименте мышь MM710 весом всего 53 грамма. Её легкий вес обеспечивает более быстрые движения и позволяет вам наслаждаться любимыми играми еще дольше с минимальной усталостью. Подробнее об этом читайте на THG.ru.

Google может продолжить эксперимент с модульным ... Когда-то в 2012 году Google загорелась идеей создать модульный смартфон. Сама компания назвала свою разработку Project Ara и приступила к созданию мобильника, состоящего из сменных компонентов. По задумке на свет должна была родиться мечта гика — устройство, которому м...

[Перевод] Как реализовать язык программирования на JavaScript. Часть 3: CPS-интерпретатор Здравствуйте! Представляю вам третью часть моего перевода руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достат...

[Перевод] Как я пишу конспекты по математике на LaTeX в Vim Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу оп...

Разработка монолитной Unix подобной OS — Библиотека С В предыдущей статье мы научились запускать Hello World ядро и написали пару функций для работы со строками. Теперь пришло время расширить библиотеку С чтобы можно было реализовать kprintf и другие необходимые функции. Поехали! Читать дальше →

[Из песочницы] Оптимизация скриптов с Webpack SplitChunksPlugin В этой статье я бы хотел поделиться своим опытом по разбиению бандлов для многостраничного сайта с помощью Webpack 4. Cначала создадим для каждой страницы свою точку входа. Рассмотрим на примере 4 страниц: const path = require("path"); const PATHS = { src: path...

[Перевод] Мой первый взлом: сайт, позволяющий задавать любой пользовательский пароль Недавно я нашёл интересную уязвимость, позволяющую установить любому пользователю конкретного сайта любой пароль. Круто, да? Это было забавно, и я подумал, что можно написать интересную статью. На неё вы и наткнулись. Примечание: автор переведённой статьи не специалист ...

Мы два года развивали свою систему мониторинга. Кликай, чтобы… Всем привет! Я уже рассказывал в этом блоге об организации модульной системы мониторинга для микросервичной архитектуры и о переходе с Graphite+Whisper на Graphite+ClickHouse для хранения метрик в условиях высоких нагрузок. После чего мой коллега Сергей Носков писал о самом ...

Не «Маркусом» единым: обзор компьютерного кресла Hbada 140WM Я точно не знаю, но подозреваю, что сидя в жизни провожу гораздо больше времени, чем лёжа. По крайней мере, понятие «не выспался» мне знакомо куда ближе, чем «не насиделся» — как, полагаю, и многим на Хабре. В общем, я давно пришёл к выводу, что рабочее кресло айтишнику след...

[Перевод] 12 возможностей ES10 в 12 простых примерах Перед вами перевод статьи из блога Carlos Caballero на сайте Medium.com. Автор расскажет нам о функциях, которые появились в версии ES10 2019 года. ES10 — это версия ECMAScript, актуальная для 2019 года. Она содержит не так много нововведений, как версия ES6, выпущенная в...

Часть 4. Карьера программиста. Junior. Заход во фриланс Продолжение рассказа «Карьера программиста». Смеркалось. И прямо, и косвенно. Я с большим усердием искал работу программистом, но не было никаких вариантов. В моем городе было 2-3 объявления на 1С-разработчика плюс, редкий случай, когда требовались преподаватели курсов прог...

Обзор игровой мышки Viper V551 RGB А вы знали, что компания Patriot, знакомая отечественному пользователю по оперативной памяти, занимается производством игровой периферии? У нее есть даже свое название — Viper Gaming. Ассортимент решений постепенно пополняется новыми продуктами, в модельном ряду есть устрой...

[Перевод] Создаем бота для несложной отчетности при помощи Python и Google BigQuery Есть ли у вас задачи, которые повторяются изо дня в день, из недели в неделю? Например, написание отчетов. Вы запрашиваете данные, проводите анализ, визуализируете (делаете графики, диаграммы), а затем отправляете начальнику. Но что, если все это автоматизировать? В это...

Адаптация программ для ZX Spectrum к TR-DOS современными средствами. Часть 1 В отличие от современных компьютеров, на спектрумах понятия файловой системы не было как такового. Это значит, что загрузка с каждого типа носителя требовала отдельной реализации и в большинстве случаев программу нельзя было просто так скопировать с кассеты на дискету. В слу...

[Перевод] Советы по созданию нестандартных рабочих процессов в GitLab CI Прим. перев.: Оригинальную статью написал Miłosz Smółka — один из основателей небольшой польской компании Three Dots Labs, специализирующейся на «продвинутых backend-решениях». Автор опирается на свой опыт активной эксплуатации GitLab CI и делится накопленными советами для д...

[Из песочницы] Как выбрать широкополосный модем для беспилотного летательного аппарата (БЛА) или робототехники Задача передачи большого объема данных с борта беспилотного летательного аппарата (БЛА) или наземной робототехники не редкость в современных приложениях. В данной статье рассматриваются критерии выбора широкополосных модемов и сопутствующие проблемы. Статья написана для разр...

Экономика радости. Наставничество как частный случай. Закон трёх процентов Знаю, что написав этот пост, не стану Паисием Святогорцем. Однако, я надеюсь, найдётся хотя бы один читатель, который, возможно, поймет какой это кайф – быть педагогом (ментором) в IT. И наша страна станет чуточку лучше. И этот читатель (который поймет) станет чуточку счастл...

Обзор Re-Legion. Стильный киберпанк Я давно следил за игрой Re-Legion и надеялся, что разработчикам удастся реализовать тот мир киберпанка, о котором все мечтают. И после релиза стало понятно, что у них все получилось — манящий мир будущего с новыми порядками и совершенно другими правилами жизни вызывает лишь ...

[Перевод] Приключения с домашним Kubernetes-кластером Прим. перев.: Автор статьи — Marshall Brekka — занимает позицию директора по проектированию систем в компании Fair.com, предлагающей своё приложение для лизинга автомобилей. В свободное же от работы время он любит применять свой обширный опыт для решения «домашних» задач, ко...

Puppeteer c ES6 в ноде и браузере, или почему Zora это лучший тест-фреймворк в своей нише Все хорошо, пока вам нужно прогнать JS исходники через бабели-шмабели для создания бандла, но начинается сущий ад, когда вы захотите написать тесты для вашего сайта или бибилиотеки. Проблема в том, что все тест-фреймворки используют специфичные функции из ноды или/и написаны...

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

Глина → Кирпич → Печь В данной статье я хочу описать свой опыт по работе с глиной, изготовление из неё кирпичей (в формате 1:6) и создание уменьшенной модели типовой отопительной печи ПТО-2300 Читать дальше →

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

[Из песочницы] Агрегатор событий для Unity3d (Event Aggregator) Идея написать свой расширенный агрегатор событий для Unity3d назрела давно. Прочитав несколько статей на эту тему, я понял что нет достаточно «правильного» (в рамках Unity3d) и нужного для меня агрегатора, все решения урезаны и не обладают нужным функционалом.  Необходимый ...

Tic Tac Toe, часть 2 Продолжение статьи Tic Tac Toe, часть 1, в которой мы начали разработку этой игры на Svelte. В этой части мы доделаем игру до конца. Добавим команды Undo/Redo, произвольный доступ к любому шагу игры, попеременные ходы с противником, вывод статуса игры, определение победителя...

[Из песочницы] Принцип работы протокола VRRP FHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом. Этот IP адрес буд...

Первая в мире клавиатура-тачпад: революция на рынке? Недавно разработчики из Минска презентовали новый интересный продукт, который появится в магазинах осенью 2019 года. На вид это самая обыкновенная клавиатура, каких сотни и тысячи. Но как только вы прикасаетесь к ее клавишам, оказывается, что поверхность клавиш — сенсорная. ...

Слёрм и МегаСлёрм в Москве в конце мая В конце мая Southbridge проводит в Москве очередную серию интенсивов по Kubernetes. Слёрм-4 предназначен тем, кто только знакомится с Kubernetes. Каждый участник создаст собственный кластер и развернет в нем приложение. Даты: 27-29 мая. Очное и онлайн-участие. Цена единая, ...

Розыгрыш павербанка Canyon CNS-CPBP20 на 20 000 мАч Пришло время нового конкурса на Root Nation! Сегодня мы разыграем отличный приз, который нужен практически всем - павербанк большой емкости Canyon CNS-CPBP20 на 20000 мАч. Присоединяйтесь! Читать наш обзор Canyon CNS-CPBP20: Обзор пауэрбанка Canyon CNS-CPBP20 на 20 000 мАч ...

Цены на разработку онлайн-сервисов у фрилансеров и студий. Эта статья для тех, кто хочет свой запустить it-стартап и понять сколько денег и времени нужно на MVP (минимальную версии), чтобы протестировать идею или сделать рабочий прототип для презентации инвесторам.

Help Desk за 3 часа. Автоматизация несложных бизнес-процессов в PowerApps, Flow и Teams Всем привет! Мой коллега написал статью по опыту использования различных инструментов О365 для автоматизации небольших бизнес-процессов. Мы взяли за основу кейс по автоматизации HelpDesk на технологиях PowerApps, MS Flow и MS Teams. Подробности под катом. Надеюсь, статья бу...

Постмортем с GGJ-2019: как набить шишек, но всё-таки сделать игру GGJ-2019 — это проходящий ежегодно, в последние выходные января, глобальный гейм джем. Отличается от других широкой поддержкой (спонсоры, все дела), большим количеством участников, а также тем, что он проходит исключительно в оффлайне. Далее весь опыт, полученный мной на мер...

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

[Перевод] PEG парсеры Несколько лет назад меня кто-то спросил имеет ли смысл превести Python на PEG-парсер (или на грамматику PEG; я не помню точно кто и когда это было). Тогда я немного посмотрел на него, но так и не пришёл к какому-либо выводу, а потому и отбросил эту тему. Недавно я узнал боль...

Как стать разработчиком игр, если ты риелтор Добрый день, Хабр. Два года и несколько месяцев назад, я написал здесь своей первый и единственный пост, как, не имея никакого опыта разработки игр, я создал свое первое android-приложение. Пусть и потратил на это весь свой тогдашний отпуск. Хотя игрой это было и сложно наз...

[Из песочницы] 40 лучших инструментов и ресурсов Laravel Привет, Хабр! Представляю вашему вниманию подборку, которая является переводом оригинальной статьи с моего блога. Если есть идеи что добавить в подборку — буду рад пообщаться в комментах. Наслаждайтесь! Читать дальше →

Все владельцы OnePlus 7 и OnePlus 7 Pro уже могут опробовать Android 10 В течение последних нескольких месяцев некоторые пользователи OnePlus 7 и OnePlus 7 Pro принимали участие в закрытом бета-тестирование операционной системы Android 10. А вчера после того, как Google объявила о выпуске финальной версии Android 10, разработчики оболочки O...

[Из песочницы] Создание сторис для Instagram из PHP Вступление В последнее время люди более охотно смотрят в социальных сетяx видео, нежели просматривают фотографии. Сторис в инстаграм набирает в 3-4 раза больше просмотров, чем просто выложенная фотография. Ну и конечно же, не перестаём забывать, что социальные сети это не т...

Обзор Forged of Blood. Редкий представитель жанра Пришло время окунуться в виртуальный мир стратегии и посмотреть, насколько хорошо вы справляетесь с тактикой, дипломатией и боевыми хитростями. Кому-то эта игра точно понравится и принесет удовлетворение, а кто-то будет вынужден выйти и удалить игру навсегда. Выбор только за...

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

Создание моментальных игр на Unity в Google Play Instant Привет! Перевели статью от Google с пошаговой инструкцией создания Instant Game в Google Play для игр на Unity. Google анонсировал сервис Google Play Instant в марте 2018-го; с тех пор гейм-девелоперы могут создавать игры с мгновенным погружением. Существует несколько спо...

[Перевод] Автоматизация библиотек на Typescript Хочу сразу оговориться: эта статья не дает готового к использованию рецепта. Это скорее моя история путешествия в мир Typescript и NodeJS, а также результаты моих экспериментов. Тем не менее, в конце статьи будет ссылка на GitLab репозиторий, который вы можете посмотреть, и ...

Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 4 (OnKeyUp. Сканер ШК с эмуляцией клавиатуры) 1. Выбор способа обмена. Описание API. 2. Реализация API на стороне 1С. 3. BroadcastReceiver. Получаем данные 4. OnKeyUp. Сканер ШК с эмуляцией клавиатуры Эта статья должна была стать самой короткой. Но дьявол в деталях. Вот несколько фактов. Факт 1. Если у нас на форме...

Почему роды в древности проходили намного легче? Австралопитек Люси жила 3,5 миллиона лет назад и относилась к виду Australopithecus afarensis Рождение ребенка — очень радостный и одновременно крайне болезненный процесс для матерей, который может длиться десятки часов. Некоторые женщины сравнивают боль при родах с переламы...

Google добавит в систему управления Android Q новый жест Разработчики Google намерены доработать систему управления интерфейсом операционной системы в Android Q. Об этом сообщает ресурс XDA со ссылкой на изменения, отраженные в предварительной версии предстоящего обновления. Единственным, но важным нововведением системы управлени...

GMB добавил новые функции для компаний, обслуживающих клиентов на определённой территории Google Мой бизнес запустил новые функции для тех компаний, которые обслуживают клиентов в рамках определённой территории. «Мы недавно добавили несколько обновлений в Google Мой бизнес, так что теперь вы сможете делиться информацией о своей территории обслуживания и компании ...

Часть 5/2 корп. 1: Перекрёсток проспекта RocketChip и скользкой дорожки инструментации В предыдущих четырёх частях велась подготовка к экспериментам с RISC-V ядром RocketChip, а именно, портирование этого ядра на «нестандартную» для него плату с ПЛИС фирмы Altera (теперь уже Intel). Наконец, в прошлой части на этой плате получилось запустить Linux. Знаете, что...

Чек-лист: что нужно было делать до того, как запускать микросервисы в prod Эта статья содержит краткую выжимку из моего собственного опыта и опыта моих коллег, с которыми мне днями и ночами доводилось разгребать инциденты. И многих инцидентов не возникло бы никогда, если бы всеми любимые микросервисы были написаны хотя бы немного аккуратнее. К сож...

Розыгрыш умного фитнес-браслета Honor Band 5 Пришло время нового конкурса на Root Nation! Сегодня мы разыграем отличный приз для любителей здорового образа жизни, фитнеса и спортивных тренировок - новейший фитнес-браслет Honor Band 5. Присоединяйтесь! Читать наш обзор Honor Band 5: Обзор Honor Band 5 — достойный фитне...

[Перевод] Как реализовать чистую архитектуру на Android? Что вы найдёте в этой статье? В 2016 году я начал изучать Java, а в начале 2017 года — Android. С самого начала я уже знал, что существует понятие архитектуры приложений, но не знал, как это применить в своём коде. Я находил много разных гайдов, но понятнее от этого мне не ...

[Из песочницы] Headless CMS. Почему я пишу свою Всем привет! Написать эту публикацию меня побудила вот эта недавняя статья (вчера увидел). Пересказывать основные признаки Headless/content-first/api-first и т.п. CMS я не буду, материала полно и наверняка уже многие знакомы с этим трендом. А хочу я рассказать почему и ка...

[Перевод] Тестирование многопоточного и асинхронного кода Привет! На неделе встала задача написать интеграционный тест для Spring Boot приложения, использующего асинхронное взаимодействие с внешними системами. Освежил много материала про отладку многопоточного кода. Привлекла внимание статья «Testing Multi-Threaded and Asynchronous...

Реальные сроки изучения слепой печати при низкой мотивации В статье я опишу свой сугубо субъективный пример того, сколько времени занимает обучение методу комфортной слепой печати. Это с учётом того, что мне данный навык не был критически важен, но иметь его давно хотелось. Читать дальше →

Gears POP! — шестеренки в Clash Royale В прошлом году, неожиданно для всех, нынешний разработчик серии Gears of War — компания The Coalition — объявил о своем намерении перенести игру на мобильные устройства. О полноценном порте речь не шла. Разработчики задумали создать именно мобильную игру. Причем ...

[Из песочницы] Константные указатели на указатели на указа… Введение Недавно ко мне подошли с вопросом, «что это и как этим пользоваться?», показав следующий код: extern "C" { void byteMaskDowngrade(byte***const byteMask, const byte *const *const && source) { // какой-то код. } // некоторые фукции. } Эт...

Диздок-десятистраничник — шаблон по книге Скота Роджерса с примером на игру от Pixonic В данной статье я приведу пример составления дизайн-документа для разработки игры в формате десятистраничника. В начале будет приведён общий шаблон документа, предлагаемый Скотом Роджерсом в его книге «Level up. The guid to great video game design» [1]. Затем будет выложен...

[Из песочницы] Умная лампа Привет, Хабр! Предлагаю вашему вниманию перевод статьи «DIY Smart Lamp» автора Maciej Matuszewski. Пошаговое руководство по переходу от придуманной идеи к работающему продукту. Ожидание против реальности Вы когда-нибудь задавали себе следующие вопросы? Может ли горяч...

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

[Перевод] Разработка белков в облаке с помощью Python и Transcriptic или Как создать любой белок за $360 Что, если у вас идея для классного, полезного белка, и вы хотите получить его в реальности? Например, хотите создать вакцину против H. pylori (как словенская команда на iGEM 2008), создав гибридный белок, который сочетает фрагменты флагеллина E. coli, стимулирующие иммунный ...

Метод дублирования. 11 примеров из конструкции ДВС Дублирование (от французского doubler удваивать) в системе это вид резервирования, имеющего минимальную избыточность. Статья эволюция развития автомобильных двигателей с начала 90-х годов вызвала интерес, и сильное обсуждение преобразований в двигателестроении. Эта стать...

Почему Google меняет стандартный интерфейс URL в браузере В сентябре прошлого года разработчики Chrome выдвинули радикальное предложение: изменить отображение URL в браузере. В некоторых изданиях сразу появились статьи с паническими заголовками «Google хочет убить URL» Теоретически, Google выгодно, чтобы пользователи заходили на в...

[Из песочницы] «Статья про минет»: ученые обработали 109 часов орального секса, чтобы разработать ИИ, который сосет член Привет, Хабр! Представляю вашему вниманию перевод статьи Саманты Коул (Samantha Cole) c motherboard.vice.com. Анонимные специалисты по машинному обучению написали «статью про минет», чтобы сделать эту машинку для отсоса более реалистичной. Autoblow AI, секс-игрушка для поль...

Самая «дешёвая» электронная проходная в России управляемая со смартфона Не так давно я писал пост про самый «дешёвый» турникет в России на данный момент. На всякий случай напомню, что это турникет-трипод «RusGate» T3-NO-SF v.1 за 31 990 рублей, вот самая подробная статья про этот турникет из всех, что были написаны про турникеты. Но история ...

Что я узнал, протестировав 200 000 строк инфраструктурного кода Подход IaC (Infrastructure as Code) состоит не только из кода, который хранится в репозитории, но еще людей и процессов, которые этот код окружают. Можно ли переиспользовать подходы из разработки ПО в управление и описание инфраструктуры? Будет не лишним держать в голове эт...

[Из песочницы] Удалённая работа у здорового (?) работодателя В 2019 году удаленная работа в ИТ уже давно никого не удивляет — она ​​воспринимается как один из доступных способов организации команды. Почитать об этом можно в восторженных отзывах работников, слегка хвастливых рассказах работодателей, скучных аналитических статьях рекрут...

Небольшой, стилизованный сундучок Всем добрый день.Стояла недавно задача - сделать небольшую шкатулку\сундучок. На просторах интернета быстро нашел желаемое направление в плане внешнего вида. Выбор пал на сундук из игры World of Warcraft. Но глаз не радовал общий вид сундука, слишком полигональный, потому мо...

На мобильных вышла jRPG SaGa Scarlet Grace: Ambitions за 1790 рублей (это со скидкой) На E3 2019 в этом году компания Square Enix удивила многих, анонсировав локализации сразу для нескольких игр во франшизе SaGa. Romancing SaGa 3 уже недавно вышла на iOS и Android, одновременно с остальными платформами, а теперь пришла очередь ремейка эксклюзива PS Vita SaGa ...

[Перевод] Wolfenstein 3D: трассировка лучей с помощью WebGL1 После появления прошлым летом графических карт Nvidia RTX трассировка лучей (ray tracing) снова обрела былую популярность. За последние несколько месяцев мою ленту в Twitter заполнил бесконечный поток сравнений графики со включенным и отключенным RTX. Полюбовавшись на тако...

[Перевод] Создание приложения для Slack с использованием функций 8base Slack — отличное приложение для внутреннего общения между командами. Одна из особенностей, что мы можем легко его расширить, создавая и интегрируя чат-ботов и слэш команды чата, позволяющие пользователям взаимодействовать с внешними сервисами. Отличным ботом Slack, весьма ...

Proof of Concept: целесообразность внутреннего ML проекта Недавно в уютном чатике дата сатанистов подняли вопрос, как правильно "продавать" внутренние проекты по машинному обучению. Оказалось, что многие из нас весьма брезгливо относятся к экономическому обоснованию своей деятельности. Меж тем, чтобы провести минимальную оценку рен...

История взлома классической игры на Dendy или Contra со спрэдганом в начале Раз уж прошлая моя статья, к моему большому удивлению, вас заинтересовала. Я решил дополнить её результат, хакнутую версию игры "Contra (J) [T+Rus_Chronix]", небольшим функционалом, заодно показав "code injection" на NES. В этот раз я сделаю так, чтоб игроки начинали игру с ...

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

Семь простых шагов, чтобы стать студентом Computer Science Center 1. Выберите программу обучения. CS центр предлагает очные вечерние курсы студентам и молодым специалистам в Санкт-Петербурге или Новосибирске. Учёба длится два или три года — по выбору студента. Направления: Computer Science, Data Science и Software Engineering. Для жителей ...

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

[Перевод] Создание игры «Крестики-нолики» при помощи TypeScript, React и Mocha Представляем вам перевод статьи Josh Kuttler, опубликованной на blog.bitsrc.io. Узнайте, как создать приложение «Крестики-нолики», используя React и TypeScript. Простая игра в крестики-нолики создана по модульному принципу и загружена на сайт Bit. Вы можете изменять компо...

[Из песочницы] Распознавание дат, написанных естественным языком, средствами Python3 Мы в компании создаем сервис, который извлекает юридические факты из переписки клиента и заказчика. Сервис вырос из одной простой идеи — мои постоянные клиенты из решили упросить работу менеджерам и создать “генератор договоров”. Первую задачу — подтягивать в договор реквизи...

Функциональное программирование с точки зрения EcmaScript. Композиция, каррирование, частичное применение Привет, Хабр! Сегодня мы продолжим наши изыскания на тему функционального программирования в разрезе EcmaScript, на спецификации которого основан JavaScript. В предыдущей статье мы разобрали основные понятия: чистые функции, лямбды, концепцию имутабельности. Сегодня поговор...

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

CSS переменные и цветовая тема для сайта в несколько строк Один из способов использовать CSS переменные уже сегодня Создадим сайт который динамически поддерживает светлую, тёмную и цветовые темы. Интерактивное демо Создаём базовый цвет который будет меняться. Привязываем его к data-theme на html. html[data-theme='green'] { --...

Реверс-инжиниринг бинарного формата на примере файлов Korg SNG. Часть 2 В прошлой статье я описал ход рассуждений при разборе неизвестного двоичного формата данных. Используя Hex-редактор Synalaze It!, я показал как можно разобрать заголовок двоичного файла и выделить основные блоки данных. Так как в случае формата SNG эти блоки образуют иерар...

[Из песочницы] Как зеленый джуниор свой hot-reloader писал Предыстория Пару строк обо мне для общего понимания уровня автора и решаемой проблемы. Меня зовут Евгений и я веб-разработчик зеленый junior frontend developer. Еще какой-то год назад я работал в совершенно другой сфере и только в теории задумывался о смене профессии, но при...

Сколько зарабатывают выпускники разных российских ВУЗов Сколько зарабатывают выпускники разных российских ВУЗов Мы на «Моем круге» в последнее время прорабатываем профиль образования наших пользователей, так как считаем, что образование — как высшее, так и дополнительное — важнейшая составляющая современной карьеры в ИТ. Недавн...

[Перевод] Thinking with Portals: создаём порталы в Unreal Engine 4 В этой статье я расскажу, как создавать порталы в Unreal Engine 4. Я не нашёл никаких источников, подробно описывающих такую систему (наблюдение сквозь порталы и проход через них), поэтому решил написать собственную. Что такое портал? Давайте начнём с примеров и объяснения...

VDI: Дешево и сердито Добрый день уважаемы Хабровчане, друзья и знакомые. В качестве предисловия хочу рассказать о реализации одного интересного проекта или как сейчас модно выражаться, одного интересного кейса касаемо развертывания VDI инфраструктуры. Казалось, статей по VDI много, тут есть и ...

Копирайт настиг и хореографию: на создателей Fortnite подали в суд из-за танцевальных па игровых персонажей Актер Альфонсо Рибейро исполняет танец The Carlton в ТВ-шоу Fortnite — игра, которая за короткое время получила огромное количество поклонников. Каждый месяц создатели добавляют различные возможности и фишки, которые позволяют удерживать членов сообщества, одновременно при...

Конкурс сайтов и приложений «Рейтинг Рунета-2019» объявил о начале приема заявок 4 марта стартовал прием заявок на всероссийский конкурс сайтов и мобильных приложений «Рейтинг Рунета-2019». Цель конкурса — предоставление возможности разработчикам заявить о себе среди  клиентской и профессиональной аудитории. Для того, чтобы подать свою работу на кон...

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

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

Искусственный интеллект на примере простой игры. Часть 2 В этот раз выбрана игра «Змейка». Создана библиотека для нейросети на языке Go. Найден принцип обучения, зависимый от «глубины» памяти. Написан сервер для игры между разработчиками. Читать дальше →

3-х минутный таймер для чистки зубов по времени Всю жизнь боюсь стоматологов. Хожу лечить зубы почти каждый год. После очередных вопросов: «Знаете ли Вы как правильно чистить зубы? Чистите ли Вы зубы 2-3 минуты?», родилась идея сделать устройство, которое бы следило за временем чистки зубов. Идея крепла и вылилась в та...

Определяем породу собаки: полный цикл разработки, от нейросети на Питоне до приложения на Google Play Прогресс в области нейросетей вообще и распознавания образов в частности, привел к тому, что может показаться, будто создание нейросетевого приложения для работы с изображениями — это рутинная задача. В некотором смысле, так и есть — если вам пришла в голову идея, связанныя ...

Выпущена мышка в стиле геймпада NES 8BitDo Компания 8BitDo представила свой новый продукт— беспроводную компьютерную мышку, работающую на 2,4 ГГц, под названием N30, которая выполнена в стиле геймпада от легендарной консоли NES (появившейся в далеком 1985 году). Дизайн устройства был разработан индустриал...

[Перевод] Ещё 9 проектов для оттачивания Front-End мастерства Введение Независимо от того, являетесь ли вы новичком в программировании или уже опытным разработчиком, в этой отрасли изучение новых концепций и языков/фреймворков является обязательно чтобы успевать за трендами. Возьмем, к примеру, React — код которого, Facebook открыл ...

Kubiki: The Game 1.0 Расслабляйся и тренируй мозг в игре Kubiki: The Game Просто, весело и приятно для всех взрослых и детей. Если тебе нравятся головоломки, ты ни за что не пропустишь эту замечательную игру. Главная цель — собрать синий и красный кристалл.  Синий кристалл может подобрат...

Мрачная аркада о судьбе беззащитных фарфоровых фигурок Rest in Pieces выйдет 7 марта Аркада Rest in Pieces не кажется чем-то невероятно крутым и обязательным к ознакомлению. Но своим визуальным стилем она не может не привлечь тех, кому нравится напряженная и мрачная атмосфера. Недавно мы рассказывали о том, что автор только ищет бета-тестеров, а уже сейчас ...

Замена Action URL & URI в SIP-телефонах или управление via websockets? SIP-телефоны. Компьютеры с трубкой. По идее с ними очень многое можно что делать, а их используют только для звонков :-) Недавно был на конференции АстерКонф, и там вендоры рассказывали о своих телефонах, не будем никого выделять, все хороши, где-то лучше, где-то дешевле, п...

Изучая Dependency Injection Несмотря на то, что паттерну уже более десятка лет и есть немало статей (и переводов), тем не менее споров, комментариев, вопросов и разных реализаций становится все больше и больше. ПредысторияВ 2004 Мартин Фаулер написал известную статью “Inversion of Control Containers ...

RTOS или не RTOS вот в чем вопрос На написание данной статьи меня побудила длинная ветка комментариев (дискуссией это я назвать, к сожалению, не могу) к моей недавней статье “Многообразный мир embedded systems и место Embox в нем”. Меня в нескольких местах упрекнули в том, что я путаю RTOS и Embedded OS, чт...

Mastermind группы для предпринимателей вместо конференций и тренингов: мой опыт Раз иду по переулку, вдруг ко мне подходят двое Говорят — А ну, отдай своё сердце! Лучше убегу, спасу себя сам, Я не ищу себе на жопу приключений по ночам. (Гражданская Оборона / А. Машнин) Для профессионального и личного развития, необходимо живое общение с коллегами. ...

[Перевод] Пишем на Go простой балансировщик Балансировщики нагрузки играют в веб-архитектуре ключевую роль. Они позволяют распределять нагрузку по нескольким бэкендам, тем самым улучшая масштабируемость. А поскольку у нас сконфигурировано несколько бэкендов, сервис становится высокодоступным, потому что в случае сбоя...

[Из песочницы] ShIoTiny: малая автоматизация, интернет вещей или «за полгода до отпуска» Основные тезисы или о чем эта статья Так как интересы людей разные, а времени у людей мало, то кратко о содержании статьи. Статья эта представляет собой обзор проекта контроллера с минимальной ценой и возможностью визуального программирования посредством WEB-браузера. Пос...

Свободная Рисовалка — песочница крафт по клеточкам 1.0 Вам нравится рисовать рисунки по клеточкам? Вы рисовали рисунки по клеточкам в тетради? Тогда это замечательно приложение по клеточкам именно для Вас! В интернете есть множество картинок по клеточкам. Смотрите или создавайте свои собственные образы рисунков по клеточкам, по ...

[Из песочницы] Работа с Jira API при помощи Python Всем привет. Появилась мысль автоматизировать выгрузку отчетов из Jira. Так как любимым инструментом был Python, выбор пал на модуль от JIra позволяющий работать с их API. Кому интересно прошу по кат. Читать дальше →

Как я напечатал решетку радиатора Как то раз я сидел на работе и мне пришла в голову идея сделать на 3D принтере решетку радиатора себе на машину. Вот тут то всё и началось...Подробнее...

Лучшее Казино Вулкан Одним из самых масштабных и прибыльных онлайн казино в сети Рунет считается игровой портал Вулкан. Данный сайт работает относительно недавно, но сразу обрел большую популярность, возможно это связано с тем, что бренд Вулкан уже давно известен гемблерам своей качественной и ...

Регулировка скорости отрыва на Photon 1 Многие люди сталкивались с большой скоростью отрыва слоя на первой серии Фотон. Регулировка изменением G кода возможна и известна многим. Все было нормально до того момента, как пользователи обновились до версии  бета 17 прошивки фотона. Я понимаю, что кто-то уже догада...

[Из песочницы] Система управления движением корабля «Союз-ТМ» В своих хабах я хочу рассказывать вам о управлении пилотируемыми космическими кораблями. В основном о корабле «Союз» и «Space Shuttle». За 15 лет изучения этих кораблей у меня собралось достаточное количество информации о них, а так же знаний которыми я хочу поделится с вами...

Can I haz? Ударим программированием на типах по дженерикам Привет, Хабр. В прошлый раз мы описали Has-паттерн, обрисовали проблемы, которые он решает, и написали несколько конкретных инстансов: instance HasDbConfig AppConfig where getDbConfig = dbConfig instance HasWebServerConfig AppConfig where getWebServerConfig = webServerCo...

[Перевод] Монорепозитории: пожалуйста не надо От переводчика: Привет, Хабр! Да, это очередная статья о преимуществах и недостатках монорепозиториев. Собирался написать свою статью о том, как мы используем монорепозиторий, как мы переходили с maven на bazel и что из этого получилось. Но пока собирался с мыслями, вышла от...

Autodesk Maya: полезные базовые функции для работы с 3Д моделями Недавно я столкнулся лицом к лицу с таким зверем как Autodesk Maya. За плечами у меня не было опыта в работе с 3Д моделированием и пришлось в экстренном порядке прокачиваться, начиная с основ, а также ознакомится с функциональностью данного ПО, чтобы проверить работу плагина...

Исповедь docker хейтера Я должен признаться. Я ненавижу docker. Всей своей душой. Это самая ужасная софтина, которую я видел за последние 10 лет. С одной стороны, я очень уважаю одноименную компанию. Ребята из Docker Inc. реально популяризировали контейнеризацию. Теперь о ней не знает только ленивы...

Недостаточно знать, что такое Mutex, Semaphore и async/awat. Надо знать всё, начиная с квантов Совсем скоро, 29-30 ноября в Санкт-Петербурге и 06-07 декабря — в Москве мы запустим шестой семинар по .NET. На этот раз — по теме многопоточки и конкурентности. Мы уже писали об этом пару раз на Хабре, но сегодня есть отдельный повод для этого: на семинаре настоящий эксклюз...

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

Стали известны технические характеристики и цена объектива Panasonic Leica DG Vario-Summilux 10-25mm f/1.7 В начале марта компания Panasonic показала на выставке CP+ объектив Leica DG Vario-Summilux 10-25mm f/1.7 системы Micro Four Thirds, разработку которого японский производитель анонсировал в сентябре прошлого года. Новинка постепенно приближается к покупателям — ма...

[Из песочницы] Помощь и просьба о ней. Статья про информационную безопасность для рядовых пользователей Я предлагаю вам некоторые шаги по повышению безопасности и приватности в интернет сети (и не только) для рядовых пользователей. Обоснование почему это необходимо – в начале статьи. Для тех кто всё знает и недоумевает почему этот текст находится здесь — просьба прочитать пунк...

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б...

На GOG бесплатно раздают Deluxe-издание двухмерного хоррора Distraint На цифровой площадке GOG идёт ограниченная по времени бесплатная раздача психологического двухмерного хоррора Distraint: Deluxe Edition для ПК. Distraint выполнена в стиле тёмного и мрачного романа-ужастика, но не без чёрного юмора. Прохождение игры занимает около...

Huawei Cloud: в PVS-Studio сегодня облачно В нынешний век каждый уже слышал об облачных сервисах. Многие компании освоили этот сегмент рынка и создали свои облачные сервисы самых различных направлений. Наша команда также в последнее время интересуется этими сервисами с точки зрения интеграции с ними анализатора кода...

[Из песочницы] IT рекрутинг. В поисках баланса процесс/результат 1. Стратегическое виденье Особенностью и ценностью продуктовой компании, основной ее миссией и задачей, является удовлетворенность клиентов, их вовлеченность, и лояльность к бренду. Естественно, через производимый компанией продукт. Таким образом, глобальную цель компании мо...

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

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

[Перевод] Я самый большой скупердяй в инди-разработке игр Скриншот из Queen's Wish. Учтите, что я использую игровой арт, который мне нравится. Это необходимо, потому что потом придётся смотреть на него годами, и я не хочу сойти с ума. Неделю назад я опубликовал в блоге пост «Почему все мои игры выглядят так отстойно» (оригинал). ...

Как быстро очистить смартфон от ненужных контактов Сегодня это сложно представить, но раньше (а если быть точным, то в начале 2000-х) память записной книжки большинства телефонов ограничивалась 150-200 контактами. Со временем количество ячеек памяти росло, пока и вовсе это ограничение не было снято. И сегодня на наших сматр...

Опыт использования BDD в тестировании CUBA Platform Около семи лет назад Dan North в своей статье описал практическое применение BDD подхода, который позволяет сделать процесс разработки более понятным и управляемым путем налаживания внутренних коммуникаций. Индустрия с каждым днем проявляет всё больший интерес к этой методол...

«Манифест начинающих программистов из смежных специальностей» или как я дошел до жизни такой Сегодняшняя моя статья — это мысли вслух от человека, который встал на путь программирования почти случайно (хотя и закономерно). Да, я понимаю, что мой опыт — это только мой опыт, однако он, мне кажется, хорошо попадает в общую тенденцию. Более того, опыт, описанный ниже, б...

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

[Перевод] Предварительная загрузка в PHP 7.4 Перевод данной статьи подготовлен специально для студентов курса «Backend разработчик на PHP». В PHP 7.4 добавлена предварительная загрузка — возможность, которая позволяет значительно повысить производительность кода. О предзагрузке в двух словах. Для предварительной...

[Из песочницы] GridmiAPI — простая и гибкая библиотека Android для работы с REST&RPC Здравствуйте, хабровчане! Когда занимаешься разработкой сетевых приложений под платформу Android, понимаешь, что одно и другое приложение похоже друг на друга. С этой мыслью у большинства разработчиков инициализируется и другая мысль — «Почему бы мне не использовать какие-л...

[Из песочницы] Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис Для кого Выбор способа обмена. Описание API. Реализация API на стороне 1С. Android. Cтруктура приложения. BroadcastReceiver. Получаем данные ШК на примере АТОЛ Smart.Lite. Реализуем обмен и хранение данных. Используем Retrofit 2, Room, Coroutines. Пользовательский интерфейс...

Основы движков JavaScript: общие формы и Inline кэширование. Часть 1 Привет, друзья. В конце апреля мы запускаем новый курс «Безопасность информационных систем». И уже сейчас хотим поделиться с вами переводом статьи, которая непременно будет очень полезной для курса. В статье описаны ключевые основы, они являются общими для всех движков Jav...

Лучшие Android-игры, поддерживающие Bluetooth-геймпады Играть при помощи геймпада гораздо удобнее На Android имеется огромное количество самых разнообразных игр. А с началом работы сервиса Google Play Pass каждому пользователю за куда меньшую плату станет доступно просто невероятное количество самых разных проектов. Однако сложн...

Picaso Designer X. Перипетии со счастливым концом. Приветствую. Год я был счастливым обладателем Геркулеса 2017. За это время с ним не было ни одного косяка или малейшей проблемы.      Отличный принтер. Смело могу порекомендовать. (вентиляторы только поменять, чтобы не вспоминать детство в далёком авиационном ...

[Из песочницы] Эффективное создание компонентов с помощью styled system Для стилизации react компонентов наша команда использует styled-components. О styled-components уже есть статьи на Хабре, поэтому подробно останавливаться на этом не будем. Знакомство с Styled components Лучше, быстрее, мощнее: styled-components v4 Написав много компоне...

Размышления про идеальный корпус Здравствуйте. На написание этой статьи меня побудил наметившийся апгрейд домашней системы и недавняя статья Настольный. Металлический. Бесшумный. Твой?. Что-бы найти приемлемый вариант мне пришлось перелопатить кучу моделей корпусов и сейчас я хочу поделиться своей болью с в...

Что в черном ящике. Обзор методов тестирования биллинга Проверка платных сервисов — один из ключевых инженерных вопросов в тестировании Badoo. Наше приложение интегрировано с 70 платёжными провайдерами в 250 странах мира, и баг хотя бы в одном из них может привести к непредсказуемым последствиям.  В этой статье я расскажу о мето...

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

Как добавить проверки в NoVerify, не написав ни строчки Go-кода В статическом анализаторе NoVerify появилась киллер-фича: декларативный способ описания инспекций, который не требует программирования на Go и компиляции кода. Чтобы вас заинтриговать, покажу описание простой, но полезной инспекции: /** @warning duplicated sub-expressions in...

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

Большой брат следит за… собой или карта с историей перемещений в HomeAssistant Вступление. Для своей домашней автоматизации я уже давно использую HomeAssistant. Однажды товарищ у меня спросил, мол, почему у HomeAssistant есть возможность указывать только текущее положение трекера на карте, но нельзя отобразить весь маршрут следования? С тех пор данная ...

Redmi Note 8 Pro и Honor 9X Pro сравнили в играх Как мы уже сообщали, Redmi Note 8 Pro стал первым в мире смартфоном, который получил сетевой сертификат TUV Rheinland. Последний гарантирует стабильное постоянное подключение к Сети с минимальной задержкой даже в сложных условиях. Это было создано для того, чтобы польз...

ZENLIX 3.5 — спустя 2 год Начав разработку системы заявок, с 2013 года, история которой описана в предыдущих публикациях: Как мы написали helpdesk Как мы написали helpdesk (часть 2) Как мы написали helpdesk (часть 3) мы остановили выпуск новых версий в 2017 году. Это не значит, что мы переста...

Data and Models Version control in Computer Vision meetup Сообщество ML-REPA приглашает на открытый митап по вопросам воспроизводимости и управлению экспериментами в computer vision, который пройдет 15 августа в офисе Райффайзенбанк в Нагатино. На митапе будем разбираться с особенностями обеспечения воспроизводимости эксперименто...

pudge встраиваемая база данных в 500 строк на golang pudge — встраиваемая key/value база данных, написанная на стандартной библиотеке Go. Остановлюсь на принципиальных отличиях от существующих решений. Stateless pudge.Set("../test/test", "Hello", "World") Пудж автоматически создаст базу данных test, включая вложенные дире...

[Из песочницы] Решение проблемы с переключением по alt+shift в Linux, в приложениях на Electron Здравствуйте, коллеги! Хочу поделиться поделиться своим решением проблемы, которая указана в заголовке. Написанием статьи вдохновился от коллеги brnovk, который не поленился и предложил частичное (для меня) решение проблемы. Я сделал свой «костыль», который помог мне. Делюс...

Выбираем чехол для OnePlus 6 Буквально недавно компания OnePlus показала свой новый смартфон под названием OnePlus 6, который сразу понравился пользователям. У него отличная начинка для своей стоимости, качественная камера, шикарный дисплей и масса дополнительных преимуществ, которые многим важны. И, ко...

Как быстро попробовать CQRS/ES в Laravel или пишем банк на PHP Недавно в подкасте "Цинковый прод" мы с товарищами обсуждали паттерн CQRS/ES и некоторые особенности её реализации в Elixir. Т.к. я в работе использую Laravel, грех было не покопаться в интернетах и не найти как же можно потягать этот подход в экосистеме данного фреймворка....

От «Цветорасширителя для ZX-Spectrum» до ZX-Poly "Цветорасширитель для ZX-Spectrum" — так называлась статья, опубликованная в эхе fido7.zx.spectrum 3 августа 1997 года. Статья описывала идею решения одной из главных проблем платформы ZX-Spectrum — конфликта атрибутов (attribute clash). Публикация вызвала в то время определ...

[Перевод] Инициализация в С++ действительно безумна. Лучше начинать с Си Недавно мне напомнили, почему я считаю плохой идеей давать новичкам C++. Это плохая идея, потому что в C++ реальный бардак — хотя и красивый, но извращённый, трагический и удивительный бардак. Несмотря на нынешнее состояние сообщества, эта статья не направлена против совреме...

JMeter — швейцарский нож тестировщика (Часть 2) Сегодня расскажу, как мы с помощью JMeter’а наладили процесс кэширования продуктовых страниц, проверили работу мобильного приложения без самого приложения и создали 2000 юзеров в системе без доступа к базе данных. Кто не в курсе, что здесь происходит, читайте первую часть ...

[Из песочницы] Три Больших Лжи о JavaScript Привет, Хабр! Представляю вашему вниманию мой перевод статьи "The Three Big Lies About JavaScript" автора Richard Kenneth. Данная статья была написана в мае 2016 года, однако ее актуальность, на мой взгляд, не исчезла. Я начинающий программист, поэтому возможны оши...

HDMI-LVDS. Разработка на TSUMV59 от MStar Доброго времени суток, Хабр! В продолжение прошлой статьи на тему DisplayPort-LVDS, решил написать о своей новой разработке контроллера HDMI-LVDS на чипе TSUMV59 от MStar. Контроллер имеет много интересного на борту, например, аналоговый выход звука, ИК порт, кнопки управ...

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 1) Приветствую! Товарищи реверсеры, ромхакеры: в основном эта статья будет посвящена вам. В ней я расскажу вам, как написать свой плагин-отладчик для IDA Pro. Да, уже была первая попытка начать рассказ, но, с тех пор много воды утекло, многие принципы пересмотрены. В общем, по...

Бобро поржаловать, или Что нужно знать о бизнесе в Италии Наша компания «ЛАНИТ-ТЕРКОМ» занимается разработкой наукоемкого программного обеспечения — с далекого 1991 года мы активно работаем на иностранных рынках:  в странах Европы и США. В 2015 году мы решили, что логичным шагом вперед для развития бизнеса будет открытие офиса где-...

[Из песочницы] CYOD? COPE? BYOD? Наблюдаю за своим двухлетним сыном и диву даюсь, на сколько лихо он обращается с планшетами и телефонами. Невольно вспоминается известная шутка: «- Мой ребенок в три года может сам включить компьютер и выбрать для себя мультик! — А что делала ты в три года? — Я ела песок…...

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

[Перевод] Один гигантский шаг для машины, играющей в шахматы Невероятный успех AlphaZero, алгоритма с глубинным обучением, провозглашает новую эру мышления, которая может оказаться недолгой для человека В начале декабря исследователи из компании DeepMind, занимающейся искусственным интеллектом и принадлежащей Alphabet Inc., родитель...

В разработке — каждый сам за себя. Но иногда это приводит в тупик Я чёртовы сутки просидел над таской. Нужно было спроектировать самостоятельный модуль, а людям с тяжелой формой перфекционизма нельзя давать задачи на проектирование. У меня была неделя — целая бесконечность, которой мне не хватило. Снова и снова я перебирал в голове вар...

Как развлечь себя с помощью vk api В какой-то момент моей жизни я понял, что для счастья мне нужно создать 10 страниц-копий самого себя во Вконтакте и добавиться одновременно всеми в друзья к людям из френдлиста моей основной страницы. Для подробностей реализации идеи — прошу под кат. Читать дальше →

[Перевод] Оптимизация поиска в ширину: как обработать граф с 10 миллиардами состояний Пару месяцев назад мне наконец пришлось признать, что я недостаточно умён, чтобы пройти некоторые уровни головоломки Snakebird. Единственным способом вернуть себе часть самоуважения было написание солвера. Так я мог бы притвориться, что создать программу для решения головол...

Для Mutant Year Zero: Road To Eden анонсировали дополнение Seed of Evil Студия The Bearded Ladies объявила о скором выходе нового сюжетного дополнения для своей пошаговой постапокалиптической ролевой игры Mutant Year Zero: Road To Eden. События будущего DLC продолжают сюжет после окончания основной истории. Создатели добавят новые...

Ненормативная схемотехника: семисегментный индикатор на ATtiny13 Мы простых путей не ищем. Предыдущая, она же первая моя публикация вызвала резонанс среди пользователей Хабра. Решил не останавливаться. Продолжаем выжимать невозможное из ATtiny13. Сразу же предупреждаю, описанные решения снова нестандартны, и у кого-то могут вызвать нег...

ИИ Microsoft написал картину по композиции группы «Альянс» «На заре» Microsoft представила картину, написанную искусственным интеллектом по мотивам песни группы «Альянс» «На заре». В основе алгоритма лежат принципы синергии музыки и живописи, описанные великим абстракционистом Василием Кандинским. Идея проекта заключалась ...

[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п...

Как создать UI kit, который продается. Этапы разработки коммерческой дизайн-системы Сегодня у любого дизайнера есть возможность заработать на собственном дизайн-продукте. Иконки, иллюстрации, шаблоны сайтов и приложений можно превратить в цифровой продукт и продавать по всему миру. Кому-то ваша поделка поможет ускорить работу и человек за нее заплатит. Др...

[Из песочницы] Имплементация кэша на Verilog В данной статье разбор простейшей реализации RAM на языке Verilog. Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog. Здесь вы можете найти обучающие материалы. Читать дальше →

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

Розыгрыш смартфона Huawei P smart Z с необрезанным экраном и выдвижной камерой Пришло время нового конкурса на Root Nation! Сегодня мы разыграем бомбезный приз - смартфон Huawei P smart Z с необрезанным экраном и выдвижной камерой. Да еще и обворожительного изумрудного цвета. Присоединяйтесь!Читать наш обзор Huawei P smart Z:Обзор Huawei P smart Z с не...

Одайджест: интересное для дизайнеров за неделю Это мини-дайджест всякой дизайнерской годноты за прошлую неделю, примерно десятая часть свежего, сто пятьдесят третьего выпуска моей рассылки «Дизайнерский дайджест». Это мой пробный шар в таком формате на «Хабре», напишите в комментариях, стоит ли продолжать. Читать дальш...

WhatsApp появятся функция исчезающие сообщения Разработчики популярного мессенджера WhatsApp собираются добавить в своё фирменное приложение новую функцию. Это функция позволит пользователям отправлять сообщения, которое автоматический удаляются за определенное время. Сперва такую возможность добавят в групповые чаты,...

Ностальгия по Half Life — создаем приставку для радиостанции для получения голоса и звука окончания в стиле комбайнов Когда-то давным-давно, когда деревья были большие, был такой шутер Half-Life, продолжение которого ждут до сих пор — это уже притча во языцах. Были там такие противники как Combines (Combine Soldiers) — измененные захватчиками люди. Во время игры можно было слышать их пер...

Терраформируй это: обзор Terragenesis В App Store/Google Play можно найти самые разные игры, поэтому я не сильно удивился, когда в одном из профильных чатов меня спросили, знаю ли я игру о терраформировании небесных тел. Посмотрев ее, решил написать небольшой обзор, потому что игра, на мой взгляд, хоть и не без ...

На перекрёстке астрономии и истории «Техника и наука», 1982, № 7 Более полувека назад почетный академик, известный революционер-народоволец Н. Морозов написал удивительную книгу, имевшую первоначальное название «История человечества в естественнонаучном освещении». В этой книге он изложил свою обширную теор...

Человеческое сознание. Перенести нельзя скопировать? Предыдущая статья на эту тему вызвала к жизни бурное обсуждение в количестве более четырехсот комментариев, среди которых, как водится, не было ни одного умного (шутка). В принципе, это и неудивительно. Такая же ситуация обстоит, например, с лингвистикой. Как говаривал ген...

Ещё раз об ImmutableList в Java В своей предыдущей статье "Рукоблудие вокруг ImmutableList в Java" я предложил вариант решения поднятой в статье "Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо" проблемы отсутствия в Java неизменяемых списков. Решение тогда было проработано только на уров...

С днем рождения: Тетрису, самой популярной головоломке в мире исполняется 35 лет Первоначально тетрис был нарисован и разработан российским программистом Алексеем Леонидовичем Пажитновым. Его название происходит от слов «tetromino», который представляет собой геометрическую форму, состоящую из четырех квадратов и «теннис», по сообщениям, любимого вида сп...

Болен-здоров Часть 1. До болезни 2008 год. Мне 26 лет. Я основатель небольшой успешной организации, которая стремительно набирает обороты. Женат. Сыну 2 года. Мой образ жизни по отношению к семейным ценностям, если не вдаваться в подробности, ужасен. В течение года наблюдаю перепады про...

Поиск похожих изображений, разбор одного алгоритма Пришлось мне недавно решать задачку по оптимизации поиска дубликатов изображений. Существующее решение работает на довольно известной библиотеке, написанной на Python, — Image Match, основанной на работе «AN IMAGE SIGNATURE FOR ANY KIND OF IMAGE» за авторством H. Chi Wong...

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

Пишем простой модуль Magisk для Android Введение Одним вечером я устал менять TTL после перезагрузки устройства и подумал как можно было бы делать это автоматически. Android же Linux и на нем должен быть аналог systemd или он сам. В процессе исследований мой взор пал на Magisk. На удивление разработать модуль для ...

[Перевод] Создание пиксельной туманности при помощи шума и Median Cut Я хотел, чтобы в моей игре The Last Boundary была туманность. Они потрясающе выглядят и космос без них не космос, а просто разбросанные по фону белые пиксели. Но так как игру я делаю в стиле «пиксель-арт», то мне нужно было как-то заставить мою библиотеку шума генерировать п...

Обход блокировок РКН используя DNSTap и BGP Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены. В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Реви...

Предварительный набросок программы для расчета стоимости печати Тут у меня уже слегка оформилась часть программы, отвечающая за сам расчет стоимости заказа. О начале этой программы можно почитать тут - https://3dtoday.ru/blogs/andybig/predlozheniya-po-programme-dlya-ucheta-kommercheskoy-3d-pechatiКоротко о принципе составления задания дл...

[Перевод] Пишем свой сетевой слой на Swift: протокол-ориентированный подход Сейчас практически 100% приложений используют работу с сетью, поэтому вопрос организации и использования сетевого слоя встает перед каждым. Есть два основных подхода к решению этой проблемы, это либо использование сторонних библиотек, либо собственная реализация сетевого с...

Решение заданий WorldSkills модуля Network в компетенции «СиСА». Часть 2 — Базовая настройка Продолжаем разбор заданий модуля Network чемпионата WorldSkills в компетенции «Сетевое и системное администрирование». В статье будут рассмотрены следующие задания: На ВСЕХ устройствах создайте виртуальные интерфейсы, подынтерфейсы и интерфейсы типа петля. Назначьте IP-ад...

Microsoft, похоже, попрощалась с мечтой об универсальных приложениях UWP, в Microsoft Store появятся полноценные Win32 игры У Microsoft была мечта о своей операционной системе, которая включала бы универсальные приложения Windows. Такие приложения можно было бы распространять на компьютеры, смартфоны, планшеты и даже консоли Xbox. Идея заключалась в том, чтобы разработчики могли написать одно при...

Ультракомпактный набор шахматных фигур Я сделал этот набор по мотивам шахмат Lanier Graham (на фото ниже), а он сам, в свою очередь, вдохновлялся минималистичными шахматами Йозефа Хартвига, где форма фигур связана с геометрией хода. Но, в отличие от этих проектов, здесь шахматные фигуры помещаются одна внутри дру...

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

[Перевод] Как написать смарт-контракт на Python в сети Ontology. Часть 2: Storage API Это вторая часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology. В предыдущей статье мы познакомились с Blockchain & Block API смарт-контракта Ontology. Сегодня мы обсудим, как использовать второй модуль— Storage API. Storage API...

[Из песочницы] OS1: примитивное ядро на Rust для x86 Я решил написать статью, а если получится — то и серию статей, чтобы поделиться своим опытом самостоятельного исследования как устройства Bare Bone x86, так и организации операционных систем. На данный момент мою поделку нельзя назвать даже операционной системой — это неболь...

«Русский Уголь» развивает рационализаторское движение Компания «Русский Уголь» (относится к ПФГ «САФМАР» М.Гуцериева) успешно развивает рационализаторство на всех своих угледобывающих предприятиях. За минувший гол реализация соответствующих идей отметилась экономическим эффектом в размере более 7 миллионов рублей. Эти идеи были...

Вокруг света с электронной книгой: обзор ONYX BOOX James Cook 2 «Сделайте хотя бы раз то, что, по словам окружающих, вам не по плечу. После этого вы уже никогда не будете обращать внимание на их правила и ограничения.»  Джеймс Кук, английский военный моряк, картограф и первооткрыватель К выбору электронной книги каждый подходит по-сво...

Человек как IoT устройство. Программирование биороботов Приветствую! Хотел бы обсудить, наверное, одну из самых важных тем. А давайте представим ближайшее будущее, где воплощены наиболее правдоподобные заголовки статей и миссий стартапов о чипировании, достижений искусственного интеллекта, например таких как машинное зрение, ис...

Как я подружил PlayStation 2 и PlayStation Portable (спойлер — объединил в один эмулятор) Привет читателям. В прошлом году я опубликовал свой хобби-проект Красный Омега PS2 эмулятор. Идея была в адаптации управления оригинального эмулятора PCSX2 для игр на Surface Pro через Touch Screen. Оригинальный код PCSX2 эмулятора был переписан в форме модуля DLL, загружае...

Методика D.I.Y. проекта. Часть вводная Данная статья написана радиолюбителем, имеющим опыт руководства проектами по разработке и постановке на производство сложной радиоэлектронной аппаратуры. Цель данной статьи: помочь энтузиастам в организации их проектной деятельности, а также обозначить различия в подходах ...

Айсиошечка от Цукерберга — кратко и по делу о Libra Объявленный 17 июня 2019 года проект Libra уже наделал шума в прессе и даже большой политике, но все виденные мной статьи пестрят лозунгами и предсказаниями мрачного будущего, опуская технические детали. В этой статье я кратко изложу что же Facebook собственно обещает, как р...

Введение в Spring, или что делать, если по всему проекту @Autowired и @Component, а вы не понимаете, что это Приветствую тебя, Хабр! Эта статья будет полезна тем, кто уже начал изучать Java и даже успел добиться некоторых успехов в понимании Java Core, и вот услышал слово Spring. И, возможно, даже не один раз: знание Spring Framework, как минимум, фигурирует в описаниях множества ...

Угадай меня, если сможешь: прогнозирование рейтинга фильма до его выхода Недавно мне на глаза попался датасет на Kaggle с данными о 45 тысячах фильмов с Full MovieLens Dataset. Данные содержали не только информацию об актерах, съемочной команде, сюжете и т.п., но и оценки, выставленные фильмам пользователями ресурса (26 миллионов оценок от 270 ты...

Разбираем возможности конвертирования HTML в PDF браузером Google Chrome Недавно в одном стартапе я решал задачу генерации билетов в формате PDF. На тот момент уже был готов сайт с устоявшимся стеком технологий, поэтому я искал подход, который бы не потребовал использования дополнительных инструментов. В итоге я предложил сперва создавать билеты...

Отображение и оптимизация вывода на терминал в вебе Не так давно я столкнулся с довольно простой и одновременно интересной задачей: реализация read-only терминала в веб приложении. Интереса задаче придавали три важных аспекта: поддержка основных ANSI Escape sequences поддержка минимум 50 000 строк данных отображение данных п...

[Из песочницы] Разработка и сборка фото-светильника В ходе подготовки к очередному семейному празднику — годовищны родителей решил воплотить в жизнь одну замечательную идею — создание уникального фотосветильника с помощью 3D технологий. Идея пришла не мне, буду честен, увидел реализацию у моего интернет товарища — Николая ...

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

[Перевод] О [[trivial_abi]] в Clang-е Наконец-то я написал пост про [[trivial_abi]]! Это новая фирменная фича в транке Clang-а, новая по состоянию на февраль 2018. Это вендорское расширение языка C++, это не стандартный C++, она не поддерживается транком GCC, и нет активных предложений WG21 включить её в станда...

Звёздный путь Появившийся в начале 20 го века стиль арт-деко вернул почти угасший интерес публики к кабинетной скульптуре. Выполненные в этом стиле выразительные и яркие работы интересны и сейчас. Я давно хотел сделать что-то подобное. Почувствовав достаточную уверенность во владении инст...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)