Социальные сети Рунета
Вторник, 23 апреля 2024

Как общаются машины: протокол Modbus Протокол Modbus — самый распространенный промышленный протокол для M2M-взаимодействия. Является стандартом де-факто и поддерживается почти всеми производителями промышленного оборудования. Благодаря универсальности и открытости, стандарт позволяет интегрировать оборудовани...

Основы шаблонов С++: шаблоны функций Дисклаймер: статья была начата еще в феврале, но, по зависящим от меня причинам, закончена не была. Тема очень обширна, поэтому публикуется в урезаном виде. Что не поместилось, будет рассмотренно позже. Невозможно разбираться в современном С++, не зная, что такое шаблоны п...

[Из песочницы] ES6 Простым языком Шаблонные литералы Шаблонные литералы заключены в обратные кавычки (` `) вместо двойных или одинарных. Они могут содержать подстановки, обозначаемые знаком доллара и фигурными скобками (${выражение}). Пример: var name = "bill"; console.log(`Hello ${name}`); // He...

Архитектурный шаблон «Итератор» («Iterator») во вселенной «Swift» «Итератор» – один из шаблонов проектирования, которые программисты чаще всего не замечают, потому что его реализация, как правило, встроена непосредственно в стандартные средства языка программирования. Тем не менее, это тоже один из поведенческих шаблонов, описанных в книге...

[Перевод] Serverless CI/CD на AWS Было бы круто, если бы развертывание в формате копи-пейст осталось в прошлом, но, увы, дела обстоят иначе. Бывает, разработчикам предпочтительней именно такой метод поставки. Хоть сейчас пиши статью о том, почему это не есть гуд, но вы и без меня все знаете. С тенденцией к ...

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

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

Разработка чат-бота (laravel+botman) Welcome! Я, как junior full stack разработчик, при попытке написать бота с использованием laravel и botman’а столкнулся с многими проблемами. Во-первых, я плохо знаю английский, а на русском статей очень мало на эту тему, а те, что есть не помогли мне решить мои проблемы. В ...

NLP. Основы. Техники. Саморазвитие. Часть 2: NER Первую часть статьи об основах NLP можно прочитать здесь. А сегодня мы поговорим об одной из самых популярных задач NLP – извлечении именованных сущностей (Named-entity recognition, NER) – и разберем подробно архитектуры решений этой задачи. Читать дальше →

Опровергаем четыре стереотипа о языке программирования Rust Язык программирования Rust, созданный и поддерживаемый корпорацией Mozilla, позволяет обычным программистам писать одновременно и безопасные и быстрые системы: от калькуляторов до высоконагруженных серверов. За своё относительно короткое время существования данный язык уже ...

[Перевод] Почему вам следует использовать pathlib От переводчика: Привет, хабр! Представляю вашему вниманию перевод статьи Why you should be using pathlib и её продолжения, No really, pathlib is great. Много внимания нынче уделяется таким новым возможностям Python, как asyncio, оператору :=, и опциональной типизации. При э...

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

Что если купить MacBook Pro 2011 в 2019 году? Всем привет, это будет мой второй материал после возвращения, и я расскажу о личном опыте использования почти 9-ти летнего ноутбука от Apple в своей повседневной работе. При поиске материалов по этой теме перед покупкой я множество раз натыкался на статьи и видео на YouT...

Google App Script, Mikrotik, Telegram и VPNBook затеяли сыграть квартет Сегодня в программе: Куда еще можно применить Google Apps Script, если закончились нормальные идеи. Автоматизация работы с VPNBook через цепочку скриптов на разных языках, которые я не знаю. Недо-cURL от Mikrotik. Telegram через одно место, чтобы не оказаться в другом, самко...

[Из песочницы] Создаем свой компонент с микро-шаблонами Всем привет. Все кто так или иначе писал на фреймворке Angular сталкивался или работал с библиотекой Angular Material. Это очень хорошо написанная библиотека компонентов способная к гибкой стилизации, которая реализована через возможность создания различных тем вашего прилож...

NLP. Основы. Техники. Саморазвитие. Часть 1 Привет! Меня зовут Иван Смуров, и я возглавляю группу исследований в области NLP в компании ABBYY. О том, чем занимается наша группа, можно почитать здесь. Недавно я читал лекцию про Natural Language Processing (NLP) в Школе глубокого обучения – это кружок при Физтех-школе п...

[Перевод] Сверхпростое логгирование в Javascript — два декоратора, и готово Вам еще не надоело писать logger.info('ServiceName.methodName.') и logger.info('ServiceName.methodName -> done.') на каждый чих? Может вы, так же как и я, неоднократно задумывались о том, чтобы это дело автоматизировать? В данной статье рассказ пойдет о class-logger, как...

[Из песочницы] Гопники теперь и на зарубежных рынках или «Почему так сложно найти нормального программиста?» Вечная конкуренция Для многих из нас уже давно не секрет, что найти заказчика на проект краткосрочный или долгосрочный на ресурсах интернета — это очень непростая задача. В основном, потому что очень большая конкуренция: от тебя хотят максимум работы за минимум денег. И ког...

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

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

[Из песочницы] 10 принципов самодокументируемого кода Привет! Сегодня я хочу поделиться советами по написанию совершенного понятного кода, взятые из книги Питера Гудлифа «Ремесло программиста // Практика написания хорошего кода». Конечно, неплохо было бы прочитать эту занимательную книгу каждому кто пишет код, но для особо ле...

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

Поваренная книга разработчика: DDD-рецепты (4-я часть, Структуры) Введение Итак, мы уже определились с областью применения, методологией и архитектурой. Перейдем от теории к практике, к написанию кода. Хотелось бы начать с шаблонов проектирования, которые описывают бизнес логику — Service и Interactor. Но прежде чем приступить к ним, изучи...

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

[Перевод] Система частиц в Core Animation. Рождественская история Всем привет! Рождество давно прошло, но после него у нас осталась занимательная история о том, как при помощи нечасто используемой возможности Core Animation можно создать пользователям праздничное настроение. Делюсь переводом статьи моего лондонского коллеги Алексиса. Р...

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

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

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

Нормальные таблицы в Markdown Таблицы Markdown — это ад кромешный: В ячейках нельзя написать текст длиннее пары слов, а тем более список. Если диалект и позволяет пункт 1, это неудобно форматировать. Если ячейки не выровнены, таблицу невозможно читать. Нет поддержки однотипных таблиц и автоматики, врод...

10 мифов о бешенстве Всем привет. Чуть более года назад мне пришлось столкнуться с такой неприятной штукой, как подозрение на заражение бешенством. Прочитанная вчера статья о прививках для путешественников напомнила мне о том случае — в особенности отсутствием в ней упоминаний бешенства, хотя ...

«Теория Большого взрыва» и практика применения Python Вступление В последнее время активно изучаю язык программирования Python. Особенно меня заинтересовало использование Python в распознавании и классификации лиц. В статье я попробую применить распознавание лиц для сериала «Теория Большого взрыва». Читать дальше →

PyDERASN: как я написал ASN.1 библиотеку с slots and blobs ASN.1 это стандарт (ISO, ITU-T, ГОСТ) языка описывающего структурированную информацию, а также правил кодирования этой информации. Для меня как программиста это просто ещё один формат сериализации и представления данных, наравне с JSON, XML, XDR и другими. Он крайне распрост...

Использование API HTMS для работы с реляционно-сетевой базой данных Введение В статье «Реляционно-сетевая модель данных» была предложена новая концепция моделирования данных HTMS, являющаяся развитием канонической реляционной модели. В настоящем материале будет показано на примерах, как ее можно практически использовать с применением API лог...

[Перевод] Язык программирования Swift на Raspberry Pi Raspberry PI 3 Model B+ В этом мануале мы разберем основы использования Swift на Raspberry Pi. Raspberry Pi — небольшой и недорогой одноплатный компьютер, потенциал которого ограничен лишь его вычислительными ресурсами. Он хорошо известен техногикам и любителям DIY. Это о...

Как мы внедряли Agile-testing Привет! Меня зовут Алёна Исакова, я ведущий тестировщик в Авито, и я хочу рассказать вам про свой опыт введения Agile-тестирования в команду. Когда я читала доступные на русском языке статьи про Agile-тестирование и ATDD, у меня сложилось впечатление, что я «не модная», «не ...

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

Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах Из-за массового выпуска смартфонов без аудиоразъема 3.5 мм, беспроводные Bluetooth-наушники для многих стали основным способом прослушивания музыки и общения в режиме гарнитуры. Производители беспроводных устройств не всегда пишут подробные характеристики товара, а статьи ...

[Перевод] C# является языком низкого уровня? Я большой поклонник всего, что делает Фабьен Санглард, мне нравится его блог, и я прочитал обе его книги от корки до корки (о них рассказывали в недавнем подкасте Hansleminutes). Недавно Фабьен написал отличный пост, где расшифровал крошечный рейтрейсер, деобфусцировав код ...

[Из песочницы] Немного о порождающих шаблонах проектирования Тема шаблонов проектирования достаточно популярна. По ней снято много роликов и написано статей. Объединяет все эти материалы «анти-паттерн» Ненужная сложность (Accidental complexity). В результате примеры заумные, описание запутанное, как применять не понятно. Да и главная ...

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

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

Знакомство с Python для камрадов переросших «язык A vs. язык B» и другие предрассудки Для всех хабравчан, у которых возникло ощущение дежа-вю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ бы...

Определение кодировки текста в PHP вместо mb_detect_encoding Существует несколько кодировок символов кириллицы. При создании сайтов в Интернете обычно используют: utf-8 windows-1251 koi8-r Еще популярные кодировки: iso-8859-5 ibm866 mac-cyrillic Вероятно это не весь список, это те кодировки с которыми я часто сталкиваюсь. Иног...

[Перевод] Возможности современного JavaScript, о которых вы могли не знать Несмотря на то, что в последние семь лет я пишу на JavaScript почти каждый рабочий день, должен признаться, что уделяю мало внимания сообщениям о нововведениях от ES. Главные возможности вроде async/await и прокси — это одно, но ещё каждый год идёт поток мелких поэтапных и...

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

Рынок б/у серверов в России: все начиналось с Хабра Приветствую, username! Сегодня я расскажу тебе одну занимательную историю о нашем многострадальномгранном российском рынке. Я — один из сооснователей компании по продаже серверов б/у. И речь пойдёт о рынке B2B оборудования. Начну с ворчания: “Помню, как наш рынок под стол пе...

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

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

Установка Apache Cassandra на Windows Для локальной отладки сервиса мне понадобилось установить Apache Cassandra на Windows 10. Нормальный установщик был только у компании DataStax, но они прекратили его поддерживать. В данной статье я опишу, как установить Apache Cassandra на Windows в виде сервиса. Читать даль...

Строительные блоки распределенных приложений. Второе приближение Анонс Коллеги, в середине лета я планирую выпустить еще один цикл статей по проектированию систем массового обслуживания: “Эксперимент VTrade” — попытка написать фреймворк для торговых систем. В цикле будет разобрана теория и практика построения биржи, аукциона и магазина. В...

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

[Перевод] PowerShell в роли инструмента для пентеста: скрипты и примеры от Varonis Хакеры любят использовать PowerShell для запуска «fileless malware» — бестелесных вредоносных программ, которые не являются традиционными бинарными файлами с компилированным вредоносным кодом, и по этой причине подчас не могут быть обнаружены антивирусными решениями. Powe...

Хакеры в рамках законов РФ После публикации статьи о моих исследования в качестве Grey hat, в комментариях к статье и в чате Telegram (@router_os) люди стали писать, что я нарушил все законы и меня посадят. И как обещал, спустя несколько месяцев я пишу эту статью и даже не из камеры СИЗО :-) Более т...

Сериал «Марс»: Надуманные аварии и экология вместо космонавтики В комментариях к обзору сериала «Первые» меня попросили высказать мнение о сериале «Марс» National Geographic. В то время как раз ожидался выход второго сезона, так что я решил посмотреть его, а потом уже писать обзор. Последняя серия вышла 17 декабря. Если очень кратко, пер...

Виды контекста в JavaScript И снова здраствуйте! Мы уже писали о том, что в конце сентября в OTUS стартует новый поток курса «Fullstack разработчик JavaScript». В преддверии начала занятий продолжаем делиться с вами авторскими статьями, подготовленными специально для студентов курса. Сегодня разберем в...

«Черное зеркало» или реклама Picooc? Рекламные ролики. Нормальный человек переносит их в одном случае: когда ему срочно надо сделать перерыв в видео-марафоне. К сожалению, сарафанное радио и соцсети не всегда работают эффективно, так что компании вынуждены прибегать к видеорекламе до сих пор. Мы всегда старал...

[recovery mode] Сбалансированные показатели сайта. Часть 3: Контент В этой статье мы разберем еще один блок показателей сайта, который входит в нашу схему. Речь пойдет о контенте, я вынес его специально в отдельную статью, поскольку это один из самых важных и трудоемких в плане развития факторов продвижения. Читать дальше →

ReactiveX Redux Все, кто работает с Redux, рано или поздно сталкиваются с проблемой асинхронных действий. Но современное приложение разработать без них невозможно. Это и http-запросы к бэкенду, и всевозможные таймеры/задержки. Сами создатели Redux говорят однозначно — по умолчанию поддержив...

[Из песочницы] Программатор для EPROM на Arduino Понадобилось при изучении и ремонте компьютеров, которые старше меня, прошивать ПЗУшки. Тесты оперативной памяти и периферии проводить. Нормального программатора у меня на тот момент не было. Читать дальше →

6 занимательных системных багов при эксплуатации Kubernetes [и их решение] За годы эксплуатации Kubernetes в production у нас накопилось немало занимательных историй, как баги в различных системных компонентах приводили к неприятным и/или непонятным последствиям, влияющим на работу контейнеров и pod'ов. В этой статье мы сделали подборку некоторых...

[Из песочницы] Изучая go: пишем p2p мессенджер со сквозным шифрованием Yet another P2P Messenger Читать отзывы и документацию о языке не достаточно, чтобы научиться на нем писать более менее полезные приложения. Обязательно для закрепления нужно создать что-то интересное, чтобы наработки можно было бы использовать в других своих задачах. Стать...

[recovery mode] Poor man's monitoring или мониторим сервера из консоли Всех приветствую уважаемые читатели. В данной статье я расскажу Вам о моём «велосипеде», на котором я делаю мониторинг разных вещей не выходя из консоли. Столкнулся я как-то раз с ситуацией, когда расплодилось довольно много разных проектов и серверов, а настроить нормальны...

А это нормально вообще? Проблема нормы в психологии Понятие нормы – это одно из фундаментальных понятий в психологии. Любая коррекционная работа начинается с того, что мы решаем, что является нарушением (которое можно устранить или, во всяком случае, скомпенсировать), а что – конструктивной особенностью отдельно взятого индив...

[Из песочницы] Лучшие практики React и советы, которые каждый разработчик должен знать. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «React Best Practices & Tips Every React Developer Should Know Pt.1» автора Alex Devero. React — одна из самых популярных библиотек для построения интерактивных пользовательских интерфейсов. В этой статье я пока...

Как мы распилили спикерфон гидроабразивной резкой Если вы возьмёте свой сотовый телефон и переведёте его на громкую связь, а потом положите на середину стола, то нормального разговора не выйдет: • Хорошо будет слышно только того, кто в полуметре или меньше от микрофона. • Шумодав задавит часть тихих звуков речи дальних лю...

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

Поставлен рекорд по сборке кубика Рубика … ногами На Хабре регулярно публикуются новости о рекордах по сборке кубика Рубика. Последнее достижение принадлежит австралийцу Феликсу Земдегсу, который смог решить головоломку всего за 4,221 секунды. Так быстро собирать кубик могут лишь те люди, кто регулярно (и помногу) трениру...

Немного технической лирики о C++ Tools от JetBrains, и при чем тут единороги Начну не с моего типичного “Привет, Хабр! У нас тут очередной крутой релиз”, а с “Привет, меня зовут Настя, я ПММ в JetBrains и я отвечаю за наши инструменты для C++”. Или нет, попробую еще раз, вот так: “Привет, пишет вам C++ разработчик с 8-летним стажем, который 5 лет наз...

[Из песочницы] Элементарные шифры на понятном языке Привет, Хабр! Все мы довольно часто слышим такие слова и словосочетания, как «шифрование данных», «секретные шифры», «криптозащита», «шифрование», но далеко не все понимают, о чем конкретно идет речь. В этом посте разберемся, что из себя представляет шифрование и рассмотрим...

Как мы переложили управление инфраструктурой на Terraform — и начали жить У нас было 4 Amazon-аккаунта, 9 VPC и 30 мощнейших девелоперских окружений, стейджей, регрессий — всего более 1000 EC2 instance всех цветов и оттенков. Раз уж начал коллекционировать облачные решения для бизнеса, то надо идти в своем увлечении до конца и продумать как все э...

[Из песочницы] Что нужно для разработки игр и кем реально является разработчик игр Большинство людей (нормальных), которые планируют заниматься программированием (как хобби или основной профессией) обычно задаются вопросами: «Что такое программирование?», «Зачем мне нужно программирование?», «Какой язык я буду учить?», «Что я получу в итоге?». Таким был и...

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 1: Rust Технология Ontology Wasm снижает стоимость переноса смарт контрактов dApp со сложной бизнес- логикой на блокчейн, тем самым значительно обогащая dApp экосистему. В настоящее время Ontology Wasm одновременно поддерживает разработку как на языке Rust, так и на языке C++. Яз...

Бэкап для Linux не пишет писем Всем привет! Сегодня хочу поведать о том, как управлять Veeam Agent for Linux с помощью командной строки, и о том, какие возможности она открывает в умелых руках программиста. На написание статьи меня подтолкнул комментарий к предыдущей статье. Перефразирую удивление поль...

Вся мощь IntelliJ IDEA на примере одного языка (в картинках) Классическая модель разработки любых приложений подразумевает наличие хорошей документации по пользовательскому интерфейсу и API, а также, при необходимости, хорошего покрытия исходного кода комментариями. В этом случае, доработка системы начинается с изучения документации, ...

Умелец превратил Raspberry Pi в компьютерную мышь с монитором и клавиатурой Youtube-пользователь Electronic Grenade изготовил один из самых маленьких в мире персональных компьютеров (видео). Это не просто произведение искусства, а нормальная функционирующая система. Читать дальше →

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

[Перевод] Реализация шаблона проектирования Command в Unity Вы задавались когда-нибудь вопросом, как в играх наподобие Super Meat Boy реализована функция реплея? Один из способов её реализации — выполнять ввод точно так же, как это делал игрок, что, в свою очередь, означает, что ввод нужно как-то хранить. Для этого и многого другого...

[Из песочницы] Замена Punto Switcher, раскладки Бирмана с помощью скрипта на autohotkey В данной статье я не предлагаю полностью заменить Punto Switcher (Спасибо Сергею Москалёву за данную программу), а только в очень ограниченном функционале. Довольно давно пользуюсь программой Punto Switcher, но не в целях автопереключения, а как переключатель по левому и пра...

«Трэш с Avito»: Состояние подержанных LADA 4×4 за 25 000 рублей шокировало сеть В одном из автомобильных сообществ в соцсети «ВКонтакте» показали подержанные LADA 4×4 за 25 тыс. рублей. Увиденное шокировало комментаторов. За такие скромные деньги, естественно, приобрести себе нормальный автомобиль не представляется возможным. В 25 000 рублей один ...

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

Батареи электромобилей теперь можно зарядить всего за 10 минут В английском языке есть термин «range anxiety» — один из факторов, который до сих пор мешает наладить нормальные продажи электромобилей на аккумуляторном питании. Грубо говоря, это страх, что заряда батареи не хватит, чтобы доставить вас до места назначения. Этот страх оправ...

Bloomberg рассказал, что сотрудники Amazon слушают записи с Alexa — так делают все разработчики голосовых помощников Это нормальная практика среди разработчиков голосовых ассистентов, так как «человеческий» анализ аудиозаписей — один из основных способов обучить машину правильно понимать людей. ...

Подключение внешних драйверов TMC2208 с помощью платы cnc shield v3.0 к MKS SBASE v1.3 Итак, пишу в дневник, прежде всего для себя, чтобы не потерять информацию. Собрал я аппарат на базе MKS SBASE v1.3 с встроенными драйверами 8825, которые я уже и забыл насколько они шумные. Как положено, заказал с Китая недорогие платки для подключения внешних драйверов, &nb...

[Перевод] Расцвет и упадок Visual Basic Мне нужно сделать признание. До того, как я стал респектабельным разработчиком, работающим с такими современными языками, как C# и Java (и тем бурлящим хаосом, который известен нам под именем JavaScript), я был увлечённым фанатом невероятно популярного и неуклюжего Visual Ba...

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

Ломаем Micosoft Lunix на HackQuest 2019 Привет, Хабр! На HackQuest перед конференцией ZeroNight 2019 было одно занимательное задание. Я не сдал решение вовремя, но свою порцию острых ощущений получил. Я считаю, вам будет интересно узнать, что приготовили организаторы и команда r0.Crew для участников. Задание: ...

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

Бизнес на свои: мы написали книгу с тактикой прохождения этой игры Привет! Я хотел сказать, что вчера вышла третья наша книга, и тоже очень помогли посты с Хабра (а частично и вошли). История такая: на протяжении примерно 5 лет к нам подходили люди, которые не умели в проектное мышление, не понимали разные вопросы бизнеса и задавали одни ...

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

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

[Из песочницы] На пальцах: ассоциированные типы в Rust и в чём их отличие от аргументов типов Для чего в Rust есть ассоциированные типы (associated types), и в чём их отличие от аргументов типов (type arguments aka generics), ведь они так похожи? Разве недостаточно только последних, как во всех нормальных языках? У тех, кто только начинает изучать Rust, а особенно у ...

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

Перевод и интерпретация рекламы с английского языка на русский Реклама — двигатель торговли. И ее значение за последние 10 лет выросло просто астрономически. По сути никакой товар или услуга не может рассчитывать на нормальные продажи, если его активно не рекламируют. По данным агентства Dentsu Aegis Network, в 2019 году глобальный рын...

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

Взгляд со стороны EcmaScript на общую теорию ООП Привет, Хабр! До сего дня я занимался лишь переводами интересных, на мой взгляд, статей англоязычных авторов. И вот настала пора самому что-то написать. Для первой статьи я выбрал тему, которая, я уверен, будет полезна junior-разработчикам, стремящимся дорасти до «мидлов»,...

О ЦОДе начистоту: как мы решали проблему пыли в серверных помещениях дата-центра Привет, Хабр! Я Тарас Чирков, директор ЦОД Linxdatacenter в Санкт-Петербурге. И сегодня в нашем блоге я расскажу о том, какую роль в нормальной работе современного дата-центра играет поддержание чистоты в помещении, как правильно ее измерять, достигать и поддерживать на ну...

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

[Из песочницы] Что нужно знать перед переходом на Akka toolkit для реализации Event Sourcing и CQRS Здравствуйте, уважаемые читатели Хабра. Меня зовут Рустем и я главный разработчик в казахстанской ИТ-компании DAR. В этой статье я расскажу, что нужно знать перед тем, как переходить на шаблоны Event Sourcing и CQRS с помощью Akka toolkit. Примерно с 2015 года мы начали прое...

«Адекватную Украину задавили»: Поклонская назвала «ушлёпками» часть населения страны «К сожалению, не добили всех радикалов наши деды», — считает депутат Госдумы. Бывший прокурор Крыма, а ныне депутат «Единой России» Наталья Поклонская в одном из недавних интервью назвала «ушлёпками» часть населения страны. Поклонская добавила, что есть радикалы, банд...

Удалённое управление эмулятором Fceux с помощью Python В статье я опишу, как сделать эмулятор NES управляемым удалённо, и сервер для удалённой отправки команд на него. Зачем это нужно? Некоторые эмуляторы различных игровых консолей, в том числе и Fceux, позволяют писать и запускать пользовательские скрипты на Lua. Но Lua – пл...

Четвертый уровень мульти-вселенной Макса Тегмарка Почти 10 лет назад я прочитал статью Макса Тегмарка, гениального физика и философа, и нашел в ней ответы на многие вопросы, которые мучали меня всю жизнь. Статья потрясающая, месяца два я ходил под впечатлением от нее. К сожалению, это лонгрид, к тому же на английском. Поэт...

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

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

Kubernetes Operator на Python без фреймворков и SDK Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как: Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK. На Go написа...

[Перевод] Courier: мигрирование Dropbox на gRPC Примечание переводчика Большинство современных программных продуктов не являются монолитными, а состоят из множества частей, которые взаимодействуют друг с другом. При таком положении дел необходимо, чтобы общение взаимодействующих частей системы происходило на одном языке...

[Перевод] F#10: Списки Любое серьезное программирование на любом языке всегда будет включать списки. Таким образом, вам будет приятно узнать, что F# очень и очень хорошо поддерживает списки с помощью своего модуля List. Список в F# — это упорядоченная, неизменная серия элементов одного типа. Читат...

Пример разбора C++ кода с помощью libclang на Python На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию,...

[Из песочницы] Переделка колонок Radiotehnika S-30 Позвольте поделить старой историей о том, как я делал себе «нормальный» звук после переезда в Питер в далеком 2009 году. Итак, через некоторое время после переезда в новый город, я обнаружил возле дверей своего дома пару колонок S-30. По их внешнему виду было сразу заметно,...

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

Возможности языка Q и KDB+ на примере сервиса реального времени О том, что такое база KDB+, язык программирования Q, какие у них есть сильные и слабые стороны, можно прочитать в моей предыдущей статье и кратко во введении. В статье же мы реализуем на Q сервис, который будет обрабатывать входящий поток данных и высчитывать поминутно разли...

[Перевод] Пишем API для React компонентов, часть 6: создаем связь между компонентами Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов,...

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

Знакомство со статическим анализатором PVS-Studio для Java На протяжении многих лет команда PVS-Studio развивает одноименный статический анализатор. На данный момент анализатор представляет собой сложное программное решение и предоставляет возможность анализа таких языков программирования, как C, C++, C# и Java на платформах Windows...

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

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

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

[Перевод] Что такое Android Lint и как он помогает писать поддерживаемый код Когда разработчик не достаточно осторожен, дела могут пойти весьма плохо. Например, классические упущения разработчика — использование новой версии API, которая не поддерживает работу со старым кодом, выполнение действий, которые требуют специальных пользовательских разреше...

[Из песочницы] Использование оптики Minolta AF (Sony A-mount) на современных беззеркальных фотокамерах Sony Я написал эту статью, потому что не нашёл в сети адекватного обзора ситуации. Меня интересовала тема на протяжении нескольких лет, я много экспериментировал, накопил опыт и хочу им поделиться. Статья выражает мое личное мнение, вы можете быть с ним не согласны. Читать даль...

[Перевод] Пишем HTTP/1.1 & HTTP/2 клиент и сервер на Golang Golang — отличный язык программирования с широким спектром возможностей. В этой статье показано, как на Go можно написать клиент и сервер для протоколов HTTP/1.1 и HTTP/2. Читать дальше →

[Перевод] Собеседование: Swift. Вопросы и ответы Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в н...

Ядерные войны далекого прошлого? Раз уж написали статью про «а вдруг Земля не плоская», пожалуй расскажу еще про одну теорию заговора Мы живем в удивительное время и постоянно узнаем удивительные вещи. Что Земля плоская, что Нерон и Наполеон — один человек, что не только американцы не летали на Луну, а воо...

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

Архитектурный шаблон «Строитель» во вселенной «Swift» и «iOS»/«macOS» В этот раз я бы хотел немного поговорить о еще одном порождающем шаблоне проектирования из арсенала «Банды четырех» – «Строителе» («Builder»). Так вышло, что в ходе получения своего (пусть и не слишком обширного) опыта, я довольно часто видел, чтобы паттерн использовался в «...

[Перевод] Современные возможности C++, о которых надо знать всем программистам Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые вре...

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

[Перевод] Решение проблемы зазубренных линий в градиентах Одним из достаточно распространенных шаблонов проектирования дизайна, с которым вы, вероятно, сталкивались, являются блоки с угловым переходом градиентных цветов. Это выглядит примерно так, как показано на изображении ниже. Угловой градиент внутри прямоугольника Читать дал...

[Перевод] Тестирование инфраструктуры как код с помощью Pulumi. Часть 1 Добрый день, друзья. В преддверии старта нового потока по курсу «DevOps практики и инструменты» делимся с вами новым переводом. Поехали. Использование Pulumi и языков программирования общего назначения для инфраструктурного кода (Infrastructure as Code) дает много преимущ...

[Из песочницы] Почему шаблон политики приватности вам не подойдет? Копирование и генерирование политики приватности Копирование шаблонной политики приватности или использование генераторов (автоматическое составление) – весьма распространенная практика. Действительно, в некоторых случаях это может сэкономить время, если речь идет о копирова...

Что такое индекс массы тела и стоит ли его считать Простая и распространённая формула определит, нормальный ли у вас вес. Но это неточно.

[Из песочницы] Как сойти за хорошего программиста Привет, Хабр! Представляю вашему вниманию перевод статьи «How To Fake Being a Good Programmer» автора Stan Sootla. Программисты – это, своего рода, волшебники: слегка потрепанные персонажи-бедняки, которые умеют превращать кофе в строчки кода. Я не владею магией, я всего ...

[Из песочницы] Запуск 619 тысяч тетрисов на GLSL, их рендеринг и простой бот У меня была "идея" сделать максимальное число одновременно запущенных "Тетрисов" для одного шейдера (одной текстуры фреймбуфера). Далее небольшое описание как работает полученный код. Читать дальше →

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 2: С++ В этой статье мы разберем на двух примерах, как написать смарт контракт на языке C++, используя WASM на основе блокчейн сети Ontology. Сегодня, после нескольких месяцев стабильной работы в тестовом режиме, Ontology запустила WASM в основной сети, что позволяет безболезненн...

«ТехноТекст», эпизод II. Рассказываем, как живут и работают над статьями авторы Хабра Приглашаем к участию в конкурсе хабраавторов. Самое главное в Хабре — это его читатели, которые одновременно и авторы. Без них Хабра бы не существовало. Поэтому нам всегда интересно, как у них дела. Накануне второго «ТехноТекста» мы решили поговорить с победителями прошлого...

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

Подключаем последовательные интерфейсы по IP Последовательные интерфейсы RS-232/422/485 до сих пор очень популярны в промышленности: по ним подключаются диагностические порты, датчики, сканеры штрих-кодов и RFID меток и т.д. Однако последовательные интерфейсы имеют свои ограничения. Иногда возникает необходимость получ...

Сравнение методов прогнозирования конверсии цепочек рекламных каналов Самая суть цепочек рекламных каналов вызывает непреодолимое желание узнать, что вероятнее всего произойдет дальше в цепочке. Будет конверсия или нет? Но это похвальное стремление часто утыкается в проблему. Если пытаться удерживать количество ложно-положительных результатов...

The Power of Oracle SQL Прочитав сегодняшний топик «SQL. Занимательные задачки», я вспомнил, что давно хотел порекомендовать отличную книгу для продвинутого уровня Oracle SQL от нашего отличного специалиста по Oracle, Алекса Репринцева — «The Power of Oracle SQL». Мало того, что она сама по себе чр...

Бредогенератор: создаем тексты на любом языке с помощью нейронной сети Привет Хабр. Эта статья будет в немного «пятничном» формате, сегодня мы займемся NLP. Не тем NLP, про который продают книжки в подземных переходах, а тем, который Natural Language Processing — обработка естественных языков. В качестве примера такой обработки будет использов...

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

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

[Перевод] Юнит-тестирование шаблонов C++ и Mock Injection с помощью трейтов (Traits) Еще раз здравствуйте! До старта занятий в группе по курсу «Разработчик С++» остается меньше недели. В связи с этим мы продолжаем делиться полезным материалом переведенным специально для студентов данного курса. Юнит-тестирование вашего кода с шаблонами время от времени на...

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

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

[Перевод] Мир вирусов MS-DOS Этот пост является текстовой версией выступления, которое я провел на 35-м Chaos Computer Congress в конце 2018 года. И так я должен признать, что MS-DOS слегка возмущает меня, несмотря на то, что вредоносные программы MS-DOS всегда в некоторой степени очаровывали меня, ...

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

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

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

[Перевод] Что я узнал про оптимизацию в Python Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали! Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, те...

[Из песочницы] Почему мы пишем бизнес-логику на Lua Привет, Хабр. В этом посте мы хотим рассказать о том, как и почему мы в IPONWEB используем язык программирования с красивым названием Lua. Lua — скриптовый встраиваемый язык программирования со свободно распространяемым интерпретатором и открытыми исходными текстами на C. О...

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

Шифр ускорением: изучаем акселерометр Android-устройства на примере задания NeoQUEST-2019 Акселерометр — он же G-сенсор — является одним из самых распространенных датчиков на сегодня. Встретить его можно практически в каждом современном гаджете. Акселерометр выполняет довольно простую задачу — измеряет ускорение устройства. Давайте посмотрим, как он это делает ...

Изучение английского — непопулярное мнение Всем привет. Очередная статья от «курсов изучения английского» сподвигла меня написать свои заметки. Этой статьёй я надеюсь ответить на некоторые вопросы изучающих язык и отговорить от глупых советов «запомнить вот эти 10/15/20 слов/конструкций», которые подаются как некие ...

[Из песочницы] Что не так с нашим IT Когда я только начинал смотреть в сторону программирования, а это, примерно, 2012 год, мои попытки нагуглить, что же учить и с чего начать, сводились к ответам с тогда еще незнакомого мне, stackoverflow и, казавшегося чуть ли ни единственным ресурсом в it — Хабре. С тех по...

[recovery mode] Почему они мне не перезвонили-6, или будь внимателен, юзернейм Когда почти год назад я писал статью "Как экономить свое и чужое время на собеседованиях, или немножко о заблуждениях HR", я исходил из предположения о добропорядочности и заинтересованности двух сторон в длительном сотрудничестве (взаимный выигрыш, win-win, вот это все). П...

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

Универсальный DSL. Возможно ли это? Язык предметной области. Не перегружен конструкциями языка общего назначения. При этом позволяет всего несколькими строчками реализовать весьма сложную логику. Все это — DSL. Однако создание DSL требует от разработчика соответствующей квалификации. Регулярное использование...

Один день из поддержки пользователей PVS-Studio Мы рады любым тематическим общениям на тему качества кода. Нам пишут клиенты, студенты и любые другие пользователи со всех уголков интернета. Независимо от страны, часового пояса или языка. Языка разговорного, конечно. Среди языков программирования нам всё же интересен огра...

[Перевод] JavaScript — лучший язык программирования для начинающих. Так это или нет? JavaScript, несмотря на его многочисленные недостатки, возможно, является самым лучшим языком программирования для начинающих разработчиков, и лучшим языком, с которым могут повозиться дети. Шёл 2007 год. Отличное издательство технических книг O’Reilly Media обратилось ко ...

Концепты: упрощаем реализацию классов STD Utility Появляющиеся в C++20 концепты — давно и широко обсуждаемая тема. Несмотря на избыток материала, накопившегося за годы (в т.ч. выступления экспертов мирового уровня), среди прикладных программистов (не засыпающих ежедневно в обнимку со стандартом) все еще остается неразберих...

Из риелтора в разработчика игр 2. «Операция: Андроид» Добрый день, Хабр. Две моих предыдущих статьи (раз, два) вы приняли очень тепло и даже выдвинули в топ, поэтому и продолжение не заставило себя ждать. Всего-то полгода, не такой уж и большой срок. Для тех, кто не в курсе – меня зовут Тим, мне 30 лет, я риелтор и сейчас пыта...

«Миллион и не подходи»: Можно ли найти на «вторичке» «живую» Toyota Camry V55 — автоподборщик Эксперты заявили, что ни один продавец не скажет, что его машина плохая и это тоже касается японского премиального седана. Легендарная Toyota Camry в кузове V40 можно называть музейным экспонатом, так как она редко встречается на вторичном рынке в хорошем состоянии, потому ...

Простая игра на SFML Будем делать игру «пятнашки» на языке C++ с использованием библиотеки SFML. Пятнашки — это широко известная головоломка, которая выглядит следующим образом: На игровом поле размером 4х4 случайным образом расположены 15 плашек с номерами от 1 до 15 и одно свободное место. П...

[Перевод] Python становится самым популярным языком программирования в мире Еще летом на The economist вышла статья о том, что Python все активнее завоевывает рынок. Но завирусилась она только сейчас. Вероятно, так произошло из-за того, что она очень неоднозначная. Ведь несмотря на такой заголовок, автор заявляет, что Python, теоретически, может пов...

Adam-3600 — многофункциональный промышленный контроллер Контроллер Adam-3600 — универсальное устройство для дистанционного управления промышленными объектами, сбора данных, мониторинга и автоматизации процессов. Одновременно может выступать как устройство связи с объектом (УСО), устройство сбора и передачи данных (УСПД) и прогр...

И ещё один Steam Windows Client Local Privilege Escalation 0day В предыдущей серии Не так давно я опубликовал описание уязвимости для Steam. Я получил много отзывов от читателей. Valve не проронили ни слова, а HackerOne прислал огромное слезливое письмо и, в основном, молчал. В итоге меня забанили Valve на H1 — я не могу участвовать в и...

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

История одного «разработчика» или как новичку написать приложение для iOS Итак май 2018 года. Предпринято 7 попыток за 7 лет начать программировать что-то под iOS. И каждый раз одно и тоже: то Objective-C что-то страшное и не понятное, то нету идеи. И дальше Hello World, раз в год, вообщем дело не заходило… В этот раз новый Xcode и новый для ме...

Об админах, девопсах, бесконечной путанице и DevOps-трансформации внутри компании Что нужно для успеха IT-компании в 2019 году? Лекторы на конфах и митапах говорят много громких и не всегда понятных нормальным людям слов. Борьба за время деплоя, микросервисы, отказ от монолита, DevOps-трансформация и много-много чего ещё. Если отбросить словесную красот...

[Из песочницы] Краткое пособие для изучающих иностранный язык Доброго дня, уважаемое сообщество! К написанию этой статьи меня подтолкнула публикация уважаемого Mumlum Как выучить иностранный язык. Подумалось о том, что мой опыт может кому-то пригодиться. Для начала очень коротко о себе: мне 39 лет, 14 из которых я живу заграницей. В...

Язык программирования Ü. Введение, мотивация к созданию, цели Введение С 2016-го года (с перерывами) я разрабатываю собственный язык программирования. Название данного языка — «Ü». Почему Ü? Потому, что хотелось однобуквенного названия, а все буквы из набора A-Z уже заняты. Данная статья имеет задачу ознакомить публику с данным языко...

C++ Enterprise Edition. Возможно ли? C++ Enterprise Edition Что такое "enterprise edition" Удивительно, но за все время моей работы в IT, я ниразу не слышал, чтобы кто-то говорил "enterprise edition" относительно языка программирования, кроме как для Java. Но ведь приложения для корпоративного сегмента люди пи...

Работаем с USB Custom HID на Android В современных Android — приложениях для взаимодействия с другими устройствами чаще всего используются беспроводные протоколы передачи данных, как например Bluetooth. В годы, когда часть устройств имеют беспроводную зарядку, сложно представить себе связку Android устройства ...

Асинхронное программирование (полный курс) Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaSript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения раз...

Почти все настройки, необходимые для нормальной печати Cura 3.6. Часть 3 Я решил сменить формат на представление и описания различных "примочек" для улучшения качества или получения иного результата. Я считаю что ролик Дмитрия рассказывает о всём, что может понадобится на первых парах.Сегодня мы рассмотрим настройку Разглаживание.  Эта настр...

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

Loli — новый высокопроизводительный язык В этой статье мы поговорим о новом интерпретируемом языке Loli, рассмотрим синтаксис и сравним с языками C и Python. Читать дальше →

На какой диапазон эта антенна? Измеряем характеристики антенн — На какой диапазон эта антенна? — Не знаю, проверь. — КАААК?!?! Как определить, что за антенна у вас в руках, если на ней нет маркировки? Как понять, какая антенна лучше или хуже? Эта проблема меня мучила давно. В статье простым языком описывается методика измерения харак...

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

[Из песочницы] Celery taskcls: новый декоратор, новые возможности Привет, Хабр! Я расскажу тебе историю своего профессионального подгорания. Так вышло, что я терпеть не могу рутинных однообразных действий. У меня за плечами несколько проектов, использующих Celery. Каждый раз, когда задача становится сложнее вывода 2 + 2 = 5, шаблон решения...

Проектирование Электро-Механической Marble Machine v2.0 Я хочу рассказать о второй версии моей электро-механической Marble Machine и о процессе ее проектирования. Про первую спиральную машину я уже писал здесь на хабре. Времени с тех пор прошло не мало, и вот, в принципе, задуманное осуществлено: два подъемника и два спуска рабо...

С чего начать изучать веб-разработку в 2019 году или HTML Academy VS Codecademy VS FreeCodeCamp Привет, Хабр! Хочу поделиться своими мыслями о самых популярных площадках для изучения веб-разработки HTML Academy, Codecademy, FreeCodeCamp (мне бы хотелось прочитать подобную статью, когда я только начинала учиться веб-разработке самостоятельно). *Данный обзор является мо...

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

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

[Из песочницы] 5 наиболее распространенных проблем работодателей при подборе IT-специалистов с точки зрения рекрутера-аутсорсера Эта статья написана по материалам моего выступления на HR Meetup #5, проходившего 5 октября 2018 года в г. Ростове-на-Дону. О себе Меня зовут Игорь Шелудько. Я – предприниматель в сфере разработки и продаж программного обеспечения с 2000 года. У меня высшее техническое о...

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

[Из песочницы] Откуда растут ноги у Java Memory Model Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке. В многопоточной среде можно волей-неволей наблюдать и...

Global DevOps Bootcamp 2019 в Москве В предыдущие годы проведения Global DevOps Bootcamp ребята из MVP рассказывали о разработке современных приложений с использованием Continuous Delivery и других практик DevOps. В этом году, 15 июня, произойдет переход на следующий уровень изучения принципов DevOps, и концент...

VXinspect: контроль качества детали за 10 минут Сегодня мы разберем возможности VXinspect – программного продукта, предназначенного для контроля геометрии на основе 3D-сканирования. Он является дополнительным платным модулем, встроенным в ПО VXelements и обеспечивает полное взаимодействие со всеми технологиями компании ...

Применение смарт-аккаунтов Waves. Часть 1: от аукционов до бонусных программ Блокчейн часто ассоциируется лишь с криптовалютами, но области применения технологии DLT значительно шире. Одно из самых перспективных направлений для применения блокчейна – смарт-контракт, выполняющийся автоматически и не требующий доверия между сторонами, его заключившим...

[Из песочницы] Записка frontend-архитектора #1. Нельзя просто так взять и использовать Redux Дисклеймер Уважаемый читатель! Если вы не имеете понятия, что такое React и Redux, читать дальше не имеет смысла, дальше технический бред. Я серьезно, понимание к чему эта записка, требует работы с указанными библиотеками — несмотря на то, что я постараюсь писать понятно, эт...

Компилятор Ангуляр в 200 строчек кода Привет. Меня зовут Роман, и я не изобретатель велосипедов. Мне нравится фреймворк Angular и экосистема вокруг него, и я разрабатываю с его помощью свои веб-приложения. С моей точки зрения, основное преимущество Angular в долгосрочной перспективе базируется на разделении кода...

[Из песочницы] Пример реализации Continuous Integration с помощью BuildBot (Image by Computerizer from Pixabay) Привет! Меня зовут Евгений Черкин, я программист команды разработчиков в горнодобывающей компании Polymetal. Приступая к любому крупному проекту начинаешь задумываться: «Какой же софт лучше использовать для его обслуживания?». IT-пр...

[Перевод] Глючный код на Python: 10 самых распространенных ошибок, которые допускают разработчики О Python Python — это интерпретируемый, объектно-ориентированный язык программирования высокого уровня с динамической семантикой. Встроенные структуры данных высокого уровня в сочетании с динамической типизацией и динамическим связыванием делают его очень привлекательным для...

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

Полное интервью с деканом факультета Python в GeekBrains — как и для чего учить язык начинающим Вчера мы опубликовали первый выпуск в цикле «Кем работать в ИТ». Для него я поговорил с двумя бывшими студентами и деканом факультета Python в GeekBrains. Когда я «смонтировал» рассказы в одну историю, стало жалко, что многое осталось лежать в черновиках. Поэтому сегодня ...

Telegram-бот для изучения иностранных языков: от зубрежки слов к говорению Не так давно я писал уже о своем боте для изучения иностранных языков. Точнее — для расширения словарного запаса (aka зубрежки слов). В той же статье я написал, что изучение слов без контекста малопродуктивно и что лучше изучать тексты, чем просто пытаться вбить себе в голо...

Почти single sign on. Используем системную аутентификацию с сокетами UNIX Для подписчиковВ мире веб-приложений протоколы для SSO широко распространены и легко реализуемы. Ряд популярных приложений, к примеру консольный клиент PostgreSQL (psql), предоставляют такую возможность для локальных подключений через сокеты UNIX. В этой статье мы рассмотрим...

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

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

Будущего нет Не так давно я закончил и опубликовал в интернете роман «#Даша_на_Луне» — и если вы еще его не читали, то я предлагаю, перед чтением этого текста скачать его и прочитать. Твёрдая научная фантастика, ближнее будущее, космос, геополитика и всё такое — как вы любите! (Роман...

Если у Вас нет Питона, но есть Керас-модель и Джава Всем привет! В построении ML-моделей Python сегодня занимает лидирующее положение и пользуется широкой популярностью сообщества Data Science специалистов [1]. Также, как и большинство разработчиков, Python привлекает нас своей простотой и лаконичным синтаксисом. Мы использу...

[Перевод] Разбор: 23 популярные ошибки в письменном английском и как их избежать Даже если вы учите английский язык много лет, скорее всего время от времени совершаете ошибки при письме. Я нашел интересный пост с подборкой более чем двух десятков распространенных ошибок и советами о том, как их избежать. Представляю перевод этого полезного материала. Ч...

[Перевод] Монада «Reader» через async/await в C# В моей предыдущей статье я описал, как реализовать паттерн "Монада Maybe" с помощью операторов async / await. В этот раз я расскажу, как реализовать другой популярный шаблон проектирования "Монада Reader", используя те же приемы. Этот шаблон позволяет неявно передать некий ...

Парадокс Питона (The Python Paradox) В последнем выпуске подкаста "Цинковый прод" помимо всего прочего обсуждался так называемый парадокс Питона (The Python Paradox). Как ни странно, на Хабре нет практически ни одного упоминания об этом парадоксе. При том, что, несмотря на свою простоту, мысль очень интересная...

[Из песочницы] Первое, что нужно сделать запуская проект на Django Приветствую сообщество, встала передо мной задача написать социальную сеть. А коль скоро язык программирования, которым я более-менее владею — это Python, я выбрал фреймворк Django для реализации проекта. Чтобы не тратить время на написание HTML шаблонов и CSS стилей, эти фа...

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

[Из песочницы] Английский и айтишник: английскую сову на русский глобус? Люди с техническим складом ума во всем стремятся найти систему. При изучении английского, столь востребованного в IT, многие программисты сталкиваются с тем, что не могут понять, как устроен этот язык, его систему. “Кто виноват?” В чем же проблема? Казалось бы, программист...

Создание stateful навыка для Алисы на serverless функциях Яндекс.Облака и Питоне Начнём с новостей. Вчера Яндекс.Облако анонсировало запуск сервиса бессерверных вычислений Yandex Cloud Functions. Это значит: ты пишешь только код своего сервиса (например, веб-приложения или чатбота), а Облако само создаёт и обслуживает виртуальные машины, где он запускает...

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

[Из песочницы] Общее представление об архитектуре Clean Swift Привет, читатель! В этой статье я расскажу об архитектуре iOS приложений — Clean Swift. Мы рассмотрим основные теоретические моменты и разберем пример на практике. Читать дальше →

[Из песочницы] Топ 20 ошибок при работе с многопоточностью на С++ и способы избежать их Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Top 20 C++ multithreading mistakes and how to avoid them» автора Deb Haldar. Сцена из фильма «Петля времени (2012) Многопоточность— одна из наиболее сложных областей в программировании, особенно в C++. За годы разраб...

[Перевод] Опасности конструкторов Привет, Хабр! Представляю вашему вниманию перевод статьи "Perils of Constructors" автора Aleksey Kladov. Один из моих любимых постов из блогов о Rust — Things Rust Shipped Without авторства Graydon Hoare. Для меня отсутствие в языке любой фичи, способной выстрелить в ногу, о...

Как Amazon превратила работу на складе в игру Труд на складе – вещь крайне сложная и изнурительная. Особенно если от тебя требуют доставать минимум 300 товаров в час и проходить 18 км в день. Люди устраивают протесты, требуют повышения зарплаты хотя бы до $15 в час, обращаются в рабочие союзы и к сенаторам. Как в таки...

[Перевод] ValueTask<TResult> — почему, зачем и как? Предисловие к переводу В отличие от научных статей, статьи данного типа сложно переводить "близко к тексту", приходится проводить довольно сильную адаптацию. По этой причине приношу свои извинения, за некоторую вольность, с моей стороны, в обращении с текстом исходной статьи...

Разрабатываем утилиту на GraalVM Постановка задачи Периодически у меня возникает задача поделиться файлами по локальной сети, например, с коллегой по проекту. Решений для этого может быть очень много — Samba / FTP / scp. Можно просто залить файл в общедоступное публичное место типа Google Drive, приложить к...

Профессиональный лексический анализ на регулярных выражениях Синтаксический анализ текста всегда начинается с лексического анализа или tokenizing-а. Существует простой способ решить эту задачу практически для любого языка с помощью регулярных выражений. Еще одно применение старым добрым regexp-ам. Читать дальше →

Пишем под FPGA без HDL. Сравнение высокоуровневых средств разработки В последнее время производители FPGA и сторонние компании активно развивают методы разработки для FPGA, отличающиеся от привычных подходов использованием высокоуровневых средств разработки. Являясь FPGA-разработчиком, в качестве основного инструмента я использую язык описа...

[Перевод] 10 самых распространенных ошибок при работе с платформой Spring. Часть 1 Всем привет. Сегодня делимся первой частью статьи, перевод которой подготовлен специально для студентов курса «Разработчик на Spring Framework». Начнём! Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении...

Сколькими способами можно записать факториал на Scheme? Злые языки утверждают, что функциональные языки программирования — «языки для написания факториалов». Чаще всего так определяют язык Haskell, мы же начнем с того функционального языка, который сильно повлиял и на Haskell, и на подмножество средств для функционального програм...

[Из песочницы] Тестирование и экономика проекта В своей работе я постоянно использую unit-тесты. А вы? По моему опыту, большинство программистов – очень редко. Проводя собеседование с кандидатами на вакансии в моей команде, я всегда задаю вопрос: «Есть ли у вас опыт тестирования?». И чаще всего слышу в ответ: «Нет». А есл...

C++ Russia 2019. Небольшой отчет с места событий и анонс следующей конференции в Санкт-Петербурге Конференция C++ Russia — пока что самая суровая и одновременно ламповая конференция за последнее время. Она проходила в Конгресс-парке гостиницы «Украина» в Москве и собрала аудиторию более чем в шесть сотен человек. Как сказал один из товарищей на афтепати: «Я со школы пыта...

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

Английский vs. Эсперанто: за кем будущее? За последние 50 лет позиции английского языка на международной арене усилились до невиданного ранее уровня. На сегодня в мире примерно 378 миллионов людей говорят на английском в качестве родного и еще от 470 миллионов до 1 миллиарда указывают его как второй язык. Что приме...

Кармическое проклятье Хабра Непредвиденные последствия «Система кармы Хабра и ее влияние на пользователей» — это тема для курсовой как минимум Тема про карму на «Пикабу» Я мог бы начать эту статью с того, что я давно читаю Хабр, но это будет не совсем точным высказыванием. Правильный тезис звучал б...

[Из песочницы] Тестирование методом черного ящика Книга "A Practitioner's Guide to Software Test Design" Lee Copeland была опубликована в 2003 году. С тех пор она надежно закрепилась в списке книг, которые обязательно должен прочитать любой тестировщик. Её стоит прочитать в оригинале. Читается очень приятно: язык ...

«Меня не смущает, что весь интернет видит меня обнажённой» Если вам пишут обидные комментарии, вы не обязаны их читать. Если вас хотят изменить, вы можете остаться собой. Порноактриса рассказывает, как продолжать делать то, что хочется, даже если вас все осуждают.

Тред Ариадны: как перестать бояться и полюбить JSR-133. Доклад Яндекса Многоядерные процессоры — обыденность. Рано или поздно любому программисту-практику придется зайти в лабиринт многопоточного программирования и встретиться с населяющими его «чудовищами». Поговорим о том, с чего начать этот путь и какие инструменты и подходы помогут выйти по...

[Перевод] Удалённая разработка в VS Code: ваша жизнь никогда не будет прежней У нас в TestMace Visual Studio Code является одним из самых популярных инструментов. И тем более отрадно, что он развивается семимильными шагами. Вашему вниманию предлагается перевод статьи об еще одной вкусной фиче, которая доступна пока только в VS Code Insiders. Согласен,...

[Из песочницы] Friendly Open Space JS: Рендеринг на стороне клиента и создание враппера «Friendly Open Space» — очень молодой фреймворк, но бегать уже умеет :-) В данной статье по освоению «Friendly Open Space», мы освоим рендеринг шаблона в браузере и запуск приложения на локальной файловой БД. Ядро фреймворка поддерживает два типа сборки шаблона на клиенте: ...

[Из песочницы] Язык программирования, помещающийся на почтовой открытке Источник Ральф Джонсон, один из членов "Банды четырёх", однажды показал, как синтаксис языка Smalltalk-80 можно уместить на почтой открытке. Сейчас, спустя почти 30 лет после появления первой версии Smalltalk, самым быстроразвивающимся диалектом Smalltalk является...

IDE нормального человека или почему мы выбрали Monaco Памятка от редактора В прошлой статье мы рассказали про релиз панели управления Voximplant, не забыв упомянуть обновленную IDE. Сегодня мы посвящаем этому инструменту отдельный лонгрид – наша коллега Geloosa заботливо описала как процесс выбора технологии, так и имплементаци...

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

[Из песочницы] Как сделать поддержку PCRE2 для Apache 2.4 Хочу поделится своим опытом перевода Apache 2.4 на PCRE2, так как даже PHP 7 уже давно поддерживает библиотеку PCRE2, а open source Apache Software Foundation все еще нет. Конечно я сейчас наверно опережаю релиз Apache с поддержкой PCRE2, так как я использую исходники с гита...

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

Разговорный BERT — учим нейросеть языку соцсетей Одним из главных событий в области компьютерной лингвистики и машинного обучения в 2018 году был выпуск BERT от Google AI, который признан лучшим докладом года по мнению североамериканского отделения Ассоциации компьютерной лингвистики (NACL). В этой статье мы расскажем об э...

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

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

F#3: Форматирование текста При работе с любым языком вам, скорее всего, нужно будет отформатировать текст, и F# ничем не отличается. Поскольку F# является языком .NET, мы всегда можем использовать Console.WriteLine (..) и String.Format (..), где мы можем использовать любой из обычных форматеров, кото...

Nintendo Switch скоро могут превратить в планшет на Android Nintendo Switch довольно стремительно ворвалась на рынок, доказав всему миру, что нестандартные решения вполне могут приносить прибыль, став одной из самых быстропродаваемых консолей от японской компании. «Сердцем» игровой системы является чип Nvidia Tegra, а это ...

[Из песочницы] Дружим часы реального времени PCF8563 с Arduino по I2C Привет, Хабр. Довелось мне использовать RTC на микросхеме PCF 8563 по I2C.Так как нормальных функции для более удобной работы с Arduino я не нашел, пришлось работать напрямую через I2C. В Англоязычном интернете нашел толковый туториал с подробным описанием процесса. Данная с...

Сверточный слой: методы оптимизации основанные на матричном умножении Введение Данная статья является продолжением серии статей описывающей алгоритмы лежащие в основе Synet — фреймворка для запуска предварительно обученных нейронных сетей на CPU. Если смотреть на распределение процессорного времени, которое тратится на прямое распространение...

Как подключить галерею PhotoSwipe в WebView android Я не профессиональный разработчик, хотя и учился на программиста. Сейчас работаю системным администратором и планирую переходить в разработчики. Пишу для себя приложение, которое парсит один из популярных сайтов тематики IT и показывает статьи в нативном приложении android. ...

ARM Assembler Editor: Если гора не идет к Магомеду, Магомед идет к горе… Если кто не знает мне интересно программирование на ассемблере для микроконтроллеров STM32… И все бы хорошо, да только программировать особо негде… Те среды которые есть в настоящий момент заточены больше для языка Си и программирование в них на ассемблере не сильно отличае...

[Перевод] Реализация анимации в React Native Перевод статьи подготовлен специально для студентов курса «ReactJS/React Native-разработчик». Трудно себе представить мобильное приложение, в котором нет анимации. В вебе анимации обычно простые, если они есть вообще (максимум – одна страница сменяет другую). Анимации же...

Макаревич поставил под сомнения интеллектуальные способности населения Земли Будучи противником каких-либо запретов, лидер рок-группы «Машина времени» попросил ввести всего один запрет: запретить орать по телевизору. Это калечит психику людей, поэтому он считает, что 80 процентов населения земли — идиоты. «Надо это принять как данность», — доб...

Битва L2TP, RRAS vs SoftEther «Украденная с запада картинка для привлечения внимания» В прошлых наших статьях мы рассказали, как работать с VDS на Windows Server Core 2019 на нашем новом тарифе UltraLight за 99 рублей в месяц. Предлагаем еще один способ использования данного тарифа. На этот раз речь по...

ECMAScript Proposal: Array.prototype.{flat,flatMap} Нововведения в ECMAScript Здравствуйте читатели Хабр. Предлагаю вашему вниманию интересную штуку которая в скором времени появится в стандарте ECMAScript. Она уже доступна почти во всех браузерах и весь функционал. Это нововведение всего лишь сахар-обертка и ее можно решить...

Краеугольные камни уничтожения медленного кода в Wolfram Language: ускоряем код в десятки, сотни и тысячи раз Скачать файл с кодом и данные можно в оригинале поста в моем блоге Картинка к вебинару и посту взята не просто так: в определенном смысле символьное ядро Wolfram Language можно сравнить с Таносом — если бы его мощь была бы направлена в правильное русло, он мог бы стать самы...

[Перевод] Зачем нужны дженерики? Эта статья о том, что будет означать добавление дженериков в Go, и почему я считаю, что нам это следует сделать. Также я коснусь возможного изменения архитектуры языка ради добавления дженериков. Go вышел 10 ноября 2009-го. Меньше чем через сутки появился первый комментари...

Эксперимент — от парного программирования к программированию всей командой Очень хочу поделиться с вами переводом статьи про эксперимент с моб-программированием от одного из его создателей, Вуди Зила. Это когда вся команда сразу работает за одним компьютером. Как парное программирование, только групповое. Я бывший Java-разработчик и тимлид с 11-лет...

[Из песочницы] Анализ скроллинга страниц в Google Data Studio Добрый день, меня зовут Чакканбаев Ильхом я автор блога SeoPulses, хотел бы поделиться переводом и реализацией на практике статьи michaelhoweely.com. Для того чтобы создать полноценный и понятный отчет для блога или статейного сайта в Google Data Studio потребуется использов...

Тихо играют наушники? Чиним на примере Huawei FreeBuds Если ваши наушники вдруг стали работать тихо, скорее всего им можно вернуть нормальную громкость. Все просто: не понадобится даже инструмент.

Как я разрабатываю и тестирую API со своим «велосипедом» PieceofScript PieceofScript — простой язык для написания сценариев автоматического тестирования HTTP JSON API. PieceofScript позволяет: описывать методы API в формате YAML, с названием метода на почти естественном языке, что удобно для чтения тестов достаточно гибко описывать модели в...

[Перевод] Анализ сишного Hello World Hello World — одна из первых программ, которые мы пишем на любом языке программирования. Для C hello world выглядит просто и коротко: #include <stdio.h> void main() { printf("Hello World!\n"); } Поскольку программа такая короткая, должно быть элементарно объяснить,...

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

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

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

DeepPavlov для разработчиков: #2 настройка и деплоймент Всем привет! В первой статье из нашего цикла мы узнали, что такое DeepPavlov, какие модели библиотеки готовы к использованию без предварительного обучения и как запустить REST серверы с ними. Перед тем, как приступить к обучению моделей, мы расскажем о различных возможностях...

[Перевод] Наследование в JavaScript с точки зрения занудного ботаника: Фабрика Конструкторов Это история об одной очень специальной части JavaScript, самого используемого искусственного языка в мире в настоящее время (2019). В статье представлен своего рода философский взгляд на Наследование в JavaScript, и я смею лишь надеяться, что он основан на самом впечатляюще...

[Перевод] Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик» Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопрос...

[Перевод] Почему меня нервируют отказы современных SSD Сегодня один из SSD на одном из наших новых файловых серверов под Linux умер. Это не первая и, вероятно, не последняя смерть SSD, с которой мы столкнёмся, но, как почти всегда в таких случаях, я почувствовал, как шалят мои нервы – а всё из-за сочетания характера отказов SS...

Язык Bosque — новый язык программирования от Microsoft Буквально несколько дней назад компания Microsoft представила публике новый язык программирования. Языку дали название Bosque. Главная миссия дизайна языка — лучше быть богатым и здоровым, чем бедным и больным чтобы он был прост и понятен как для человека, так и для компьюте...

Пишем Android приложение для киноманов — Часть 1 (Прототипирование) Доброго времени суток, Хабр! Не секрет, что недавно компания Google утвердила в качестве приоритетного языка программирования ОС Android — Kotlin. В этой и последующих статьях будет рассказываться о создании приложения на этом языке. Читать дальше →

Функциональные практики и frontend: монады и функторы Всем привет! Меня зовут Дмитрий Руднев, я frontend-разработчик в компании БКС. Начинал я свой путь с верстки интерфейсов различной сложности и всегда уделял повышенное внимание именно интерфейсу: насколько пользователю будет комфортно с ним взаимодействовать, смог ли я донес...

Чего мне не хватает в Java после работы с Kotlin/Scala В последнее время я часто слышу о том, что Java стала устаревшим языком, на котором сложно строить большие поддерживаемые приложения. В целом, я не согласен с этой точкой зрения. На мой взгляд, язык все еще подходит для написания быстрых и хорошо организованных приложений. О...

«Тойота уже не та»: Владельцы Toyota Land Cruiser Prado жалуются на «облезлый» руль Так ли идеален новый «Прадо» 150 серии на деле? На популярном автомобильном форуме обладатель почти нового (куплен новым в 2018 году, пробег всего 15 тысяч км) внедорожника Toyota Land Cruiser Prado 150 в предтоповой комплектации пожаловался на то, что уже пришлось обратить...

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 2 Продолжаем разговор про 3Д шутер за выходные. Если что, то напоминаю, что это вторая половина: Часть первая: отрисовка стен Часть вторая: населяем наш мир + оконный интерфейс Как я и говорил, я всеми силами поддерживаю желание в студентах делать что-то своими руками. В ча...

[Перевод] Как мы изменили состояние «всегда на связи», чтобы предотвратить профессиональное выгорание Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты». Миссия Intercom заключается в том, чтобы сделать бизнес в интернете персонализированным. Но персонализировать продукт невозможно, когда он не работает как надо. Работоспособность к...

Как Сбербанк собирает согласие на обработку биометрии TL;DR: Сбербанк собирает согласие на сбор и обработку биометрических данных без нормального информирования своих клиентов об этом. Вступление Если говорить о биометрических данных, то пока самым интересным сектором для их применения в частном бизнесе является банкинг. Суть ...

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

Пишем telegram-бота на python с помощью библиотеки telebot часть 2 Всем привет! Это вторая часть статьи, в которой я посвящу время запросам и серверам telegram. Если кто-то еще не видел первую часть, то рекомендую её почитать. В третьей части скорее всего будет описана работа с базами данных. Ну и если у вас опять возникли вопросы, то пишит...

#Опрос: Главная проблема AirPods оказалась выдумкой? Самая распространенная проблема AirPods, заключающаяся в риске непроизвольной потери одного из наушников из-за неплотно прилегающей к ушной раковине, конструкции чрезмерно раздута. Это показал опрос, который AppleInsider.ru провел среди участников своего официального чата в...

Темы и стили в Android без магии. И как их готовить с SwitchCompat В предыдущей статье мы рассмотрели как использовать темы и стили на уровне кода, на примере кастомной view. В этой статье давайте разберем несколько способов стилизации стандартного ui элемента, а в частности SwitchCompat. Читать дальше →

[recovery mode] VueJs + MVC минимум кода максимум функциональности Добрый день. Я много лет использовал WPF. Паттерн MVVC наверное один из наиболее удобных архитектурных паттернов. Я предполагал что MVC почти то же самое. Когда я на новом месте работы я увидел использование MVC на практике, то был удивлен запутанностью и одновременно отсут...

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

[Из песочницы] Какой уровень востребованности PHP разработчиков на 1 квартал 2019 года? На рынке труда программисты PHP являются одними из наиболее востребованных специалистов. За последние 3 года их популярность среди работодателей выросла на более чем на 12%. PHP — самый распространенный язык программирования общего назначения с открытым исходным кодом, многи...

Источники вдохновения при разработке под UDB Ну что ж, мы уже знаем всё, что нужно для программирования UDB. Но одно дело – знать, и совсем другое – уметь. Поэтому сегодня мы обсудим, где и как можно черпать вдохновение для повышения собственного мастерства, где набираться опыта. Как видно из перевода документации, там...

[Из песочницы] О том, как из C# перешел в Elixir/Phoenix Как-то раз пришлось мне менять работу. До этого я работал только с языками типа Python, C++, C# и ещё парочкой подобных. А теперь пришлось начать работать с функциональным языком. Первые впечатления были «да что за фигня?». Однако у меня получилось достаточно быстро адаптиро...

Обработка исключений ASP.NET при помощи IRO.Mvc.MvcExceptionHandler Если вы являетесь c# бекенд разработчиком, наверняка рано или поздно появилась необходимость найти унифицированный способ обработки исключительных ситуаций. Хотя, даже если вы довольствуетесь кодом 500 в ответе, эта статья все равно поможет улучшить ваш способ, при этом не...

Python и FPGA. Тестирование В продолжение к первой статье, хочу на примере показать вариант работы с FPGA (ПЛИС) на python. В данной статье затрону подробнее аспект тестирования. Если фреймворк MyHDL позволяет людям, работающим на python, используя знакомый синтаксис и экосистему, заглянуть в мир FPGA,...

[recovery mode] ReactJS + MobX — опыт использования DI Мне кажется, настало время поделится подходом для написания ReactJS App, я не претендую на уникальность. Первый абзац можно пропустить. Я занимаюсь web разработкой уже давно, но последние четыре года я плотно сижу на ReactJS и меня все устраивает, в моей жизни был redux, но...

Фотоэкскурсия по коворкингу «Coworkidea» (Барселона) Мы c alinatestova — всегда на связи. Даже в поездках и в отпуске, которого у нас на практике и нет, но это нормально. Год с лишним назад [да-да, разобрал архив только сейчас] мы поехали в Барселону и не могли не заглянуть хотя бы в один коворкинг [в пред. сериях 1, 2, 3, 4]....

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

[Перевод] Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важенЭтот пост — перевод первой статьи ...

[Из песочницы] React Native — применение и критика Чаще всего при выборе этого языка ожидается, что разработка одного приложения под две платформы займёт в два раза меньше времени, чем разработка двух приложений. Но по итогу оказывается, что разработка занимает столько же, если не больше, из-за сложностей, скрытых под внешни...

Тяжёлое бремя времени. Доклад Яндекса о типичных ошибках в работе со временем В коде самых разных проектов нередко приходится оперировать временем — например, чтобы завязать логику работы приложения на текущее время у пользователя. Старший разработчик интерфейсов Виктор Хомяков описал типичные ошибки, которые встречались ему в проектах на языках Java,...

[Перевод] Сила дженериков в Swift. Часть 2 Добрый день, друзья. Специально для студентов курса «iOS Разработчик. Продвинутый курс» мы подготовили перевод второй части статьи «Сила дженериков в Swift». Связанные типы, условия where, сабскрипты и прочее… В статье «Сила дженериков в Swift. Часть 1» описывались gene...

Опыт перевода большого проекта с Flow на TypeScript JavaScript – это один из языков с динамической типизацией. Такие языки удобны для быстрой разработки приложений, но когда несколько команд берутся за разработку одного большого проекта, лучше с самого начала выбрать один из инструментов для проверки типов. Можно начать р...

[Из песочницы] Три относительно честных способа создания Flutter проекта Итак, с презентацией Google первой стабильной версии Flutter, которая случилась 4 декабря 2018 г. начался процесс изменения ландшафта на полях мобильного программирования. Появился новый игрок, способный изменить правила самой игры. Теперь из одной базы кода можно создават...

Пять перспективных языков программирования со светлым будущим (3 года спустя) В 2016-м году я опубликовал перевод статьи про 5 перспективных языков программирования, в которой прогнозировался их рост в ближайшие 2-3 года. Зачастую прогнозы так и остаются прогнозами, без последующего анализа. Но я решил, что это непорядок. И посколько 3 года уже проле...

[Из песочницы] Почему Swift может стать большим событием в глубинном обучении Здравствуй, Хабр! Представляю вашему вниманию перевод заинтересовавшей меня статьи «Why Swift May Be the Next Big Thing in Deep Learning» автора Max Pechyonkin, в которой автор рассуждает о языке на котором будет осуществляться глубокое обучение в ближайшие годы. Читать дал...

[recovery mode] Orange Pi 2G-IOT: карта минного поля Некоторое время назад мне предложили немного поработать с одноплатным ПК Orange Pi 2G-IOT (встроенный 2G и цена выглядят очень привлекательно). Прочитав пост об апельсиновом рае, я подумал, что без затруднений повторю этот путь, тем более, что с Linux я на «ты» (вернее, та...

Что мы знаем о микросервисах Привет! Меня зовут Вадим Мадисон, я руковожу разработкой System Platform Авито. О том, как мы в компании переходим с монолитной архитектуры на микросервисную, было сказано не раз. Пора поделиться тем, как мы преобразовали свою инфраструктуру, чтобы извлечь из микросервисов м...

[Перевод] Пишем чистый и масштабируемый JavaScript-код: 12 советов Язык JavaScript родом из раннего веба. Сначала на нём писали простые скрипты, которые «оживляли» страницы сайтов. Теперь же JS превратился в полноценный язык программирования, который можно использовать даже для разработки серверных проектов. Современные веб-приложения силь...

Как создать Python wrapper и не сойти с ума Недавно на Хабре прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrappe...

Как внедрить аналитику и не сломать приложение? Привет! Меня зовут Соснин Илья. Я работаю в Lamoda Android разработчиком. Крашу кнопочки, прогаю списочки и, к сожалению, пишу аналитику… Lamoda — это Data Driven Company, в которой все решения принимаются на основе поведения пользователей. Сначала мы наблюдаем и только пот...

Еще раз о точности LCD-принтера Добрый день, коллеги!Недавно уважаемы Apollone предложил метод оценки точности печати на LCD-принтере - http://3dtoday.ru/blogs/apollone/pixel-tolerance1/.Идея мне понравилась, но сама модель показалась немного не отвечающей моим требованиям, поэтому я сделал свою модель из ...

10 верстальщиков на 30 команд. Вы рехнулись? Всем привет! Меня зовут Костя, и я руковожу отделом верстки в компании Wrike. В нашем отделе сейчас работает 10 человек, и все эти ребята пришли в компанию в разное время, у них различный опыт и задачи в отдельных командах. При этом все сотрудники — прекрасные специалисты, к...

[Перевод] Как написать сопроводительное письмо при поиске работы в США: 7 советов На протяжение многих лет в США была распроcтранена практика требовать претендентов на различные вакансии не только резюме, но еще и сопроводительное письмо (cover letter). В последние годы важность этого аспекта начала снижаться – уже в 2016 году сопроводительные письма тр...

Уроки по SDL 2: Урок 5 — Текстуры Всем привет и добро пожаловать на пятый урок по SDL 2, в котором мы разберем текстуры, упростив работу компьютеру. Все уроки на английском языке вы можете найти здесь. Текстуры Читать дальше →

Обектно ориентированное програмирование в графических языках Объектно-ориентированное программирование (ООП) – концепция, которая призвана облегчить разработку сложных систем, за счет введения новых понятий, более приближенных к реальному миру, чем функциональные и процедурные языки программирования. Как пишет википедия, «Обычный чело...

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

[Перевод] Извлечение данных при машинном обучении Хотите узнать о трех методах получения данных для своего следующего проекта по ML? Тогда читайте перевод статьи Rebecca Vickery, опубликованной в блоге Towards Data Science на сайте Medium! Она будет интересна начинающим специалистам. Получение качественных данных — это пе...

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

[Из песочницы] Angular schematics, или как я писал свой шаблон для angular cli Здравствуйте, меня зовут Максим. Уже несколько лет я занимаюсь front-end разработкой. Мне часто приходится иметь дело с версткой различных html шаблонов. В своей повседневной работе я обычно пользуюсь сборщиком webpack c настроенным шаблонизатором pug, а также использую мето...

Ezblock Pi — программирование без программирования, в этот раз для фанатов Raspberry Pi Идея писать код, не пиша код (да-да, пиша — деепричастие настоящего времени от глагола писать, живите теперь с этим) не раз приходила в голову и умным людям, и просто лентяям. Мечта о графическом интерфейсе, в рамках которого можно кидать одни кубики на другие, рисовать взаи...

От ежедневных аварий к стабильности: Informatica 10 глазами админа ETL-компонента хранилища данных часто оказывается в тени самого хранилища и ей уделяется меньше внимания, чем главной базе данных или фронт-компоненте, BI, формировании отчётов. При этом с точки зрения механики наполнения хранилища данными, ETL играет ключевую роль и требу...

К вопросу о буферах (кольцевых) «Если затраты на разработку архитектуры кажутся Вам чрезмерными, подумайте, во сколько Вам может обойтись неправильная архитектура» — не могу точно вспомнить источник Когда то, «давным-давно, в одной далекой галактике», я приобрел замечательную книгу Чарльза Уэзерелла «Эт...

[Из песочницы] Генератор мемов на Ruby для привлечения интереса к языку По моему мнению язык Ruby перестал быть популярным как в 2012 — 2014 году и поэтому у меня возникло желание пока про язык совсем не забыли, попробовать его снова донести в массы, ведь Ruby по моему мнению самый удобный и практичный язык для веб разработки. Я с неделю назад ...

Победа на PHDays 9. Делимся лайфхаками в трёх частях. Часть 1 Всем привет! Меня зовут Виталий Малкин. Я руководитель отдела анализа защищённости компании «Информзащита» и по совместительству капитан команды True0xA3. Этой статьей мы начинаем цикл из 3-х материалов, посвящённых нашему выступлению на PHDays IX Standoff. В этой статье мы ...

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

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

Реализация сопоставления с образцом в Java Многие современные языки поддерживают сопоставление с образцом (pattern matching) на уровне языка. Java в данный момент не поддерживает pattern matching, но есть надежды что в будущем все может измениться. Сопоставление с образцом раскрывают перед разработчиком возможность п...

Пишем собственный CLI для React Если вы делаете Ctrl+C каждый раз при создании нового компонента в реакте, то эта статья точно для вас! У реакта нет своего CLI, и понятно почему. Не существует определенных правил, как именно должна выглядеть структура компонента, есть только общие рекомендации в документа...

Привет от программистов 80-х Современных программистов можно назвать баловнями. К их услугам — мощнейшие среды разработки, множество языков программирования. А всего 30 лет назад учёные и энтузиасты-одиночки писали программы даже на калькуляторах. Осторожно, под катом много фотографий! Читать дальше ...

[Перевод] Трагедия Common Lisp: почему популярные языки раздуваются в сложности Адаптировано из обсуждения 2015 года. Здесь Common Lisp служит лишь одним из многих наглядных примеров Будущее JavaScript? Я с 2007 года работаю в комитете по стандартам JavaScript (TC39). Мы ценим простоту языка, но со временем утратили бдительность. Сложность стала не...

Держатель катушки филамента из фанеры 15 мм Здравствуйте уважаемые друзья! Продолжаю доделывать свой фанероид. Когда печатал свои первые кубики, катушку вешал на что попало, хотелось запустить побыстрее принтер. И вот пришла идея сделать нормальный держатель для катушки. Чтобы вид держателя не отличался от принтера, р...

Язык программирования Zig Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на шину C++, D и Rust. Посмотрел — язык показался симп...

Продолжаем развлекаться Закончил делать модель, но Cura отказалась ее нарезать. Переделывал несколько раз и по итогу сделал нормальную модель.Всего сделано 3 версии : первая под магниты диаметром 5мм и высотой 3мм ; вторая под 15мм и 3мм и третья без отверстий для самостоятельной доработки, то есть...

[Перевод - recovery mode ] Как правильно обрабатывать ошибки: тишина — не всегда хорошо У меня никогда не было какого-то особого мнения относительно обработки ошибок. Если я начинала работать с существующим кодом, я продолжала выполнять задачу, над которой трудился автор исходника; если писала код с нуля — делала то, что казалось мне правильным. Но недавно...

Файл дескриптор в Linux с примерами Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место? Конечно же я ответил, что посмотрю, чем занято это место и если возможно, то почищу место. Тогда интервьюер спросил, а что если на ...

А вы все-все за меня мониторить будете? Ага Обычно Хабр используется как информационное решение — кто-то делится наработанной и структурированной информацией, а кто-то эту информацию впитывает (я хотел написать “потребляет”, но это слово маркетологи уже испоганили). Я же, на правах старожила, и учитывая легкую рассл...

[Перевод] Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest Английский язык часто воспринимается как нечто не столь сложное, как некоторые другие языки – взять тот же немецкий. Но на самом деле в нем есть достаточное количество трудностей и тонких моментов («Пишется Ливерпуль, а читается Манчестер» ). Один из них, вызывающий личн...

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

[Перевод] Руководство: типы эссе в английском языке и советы по их написанию Написание эссе – распространенное задание, с которым сталкиваются те, кто изучает английский. Часто эссе используются в качестве домашних заданий, части тестов, и, конечно, в качестве одного из испытаний при поступлении в учебные заведения. Я нашел интересный пост, в кот...

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

Chuwi MiniBook — современный нетбук с CPU Intel Core и ценой в 530 долларов Сегодня мы уже писали про один компактный ноутбук — One Mix 1S ​​Yoga. Теперь же обратим внимание на другую подобную модель под названием Chuwi MiniBook. Сейчас производитель запустил кампанию на Indiegogo, в рамках которой хочет собрать 26 000 долларо...

[Перевод] C# Regex в примерах Перевод статьи подготовлен специально для студентов курса «Разработчик С#». Класс Regex реализует регулярные выражения в C#. В этой статье вы узнаете, как использовать C# Regex для проверки различных пользовательских входных данных. Regex в C# реализует регулярные выра...

Обман нейронной сети для начинающих В рамках ежегодного контеста ZeroNights HackQuest 2018 участникам предлагалось попробовать силы в целом ряде нетривиальных заданий и конкурсов. Часть одного из них была связана с генерированием adversarial-примера для нейронной сети. В наших статьях мы уже уделяли внимание ...

Отказоустойчивый кластер PostgreSQL + Patroni. Опыт внедрения В статье я расскажу, как мы подошли к вопросу отказоустойчивости PostgreSQL, почему это стало для нас важно и что в итоге получилось. У нас высоконагруженный сервис: 2,5 млн пользователей по всему миру, 50К+ активных пользователей каждый день. Сервера находятся в Amazone в ...

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

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

Кое-что о пространстве имён Я программирую на PHP. И немножко на JS. Когда-то я программировал на Java, ещё раньше — на LotusScript. Попробовал на вкус python и dart. Basic, Fortran, Pascal, Prolog, VisualBasic, С++/С, perl — на всём этом я тоже изображал что-то исполняемое. Языки программирования меня...

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

«Живой Журнал» обновился: ввели систему категоризации контента с элементами ИИ Сегодня «Живой Журнал» сообщил о значительных обновлениях платформы. Одна из них — автоматическая категоризация контента. Разработчики описывают ее так: «Система категоризации контента — это система интеллектуального анализа текстов, построенная на базе статистическо-лингв...

Существует ли эффект Даннинга-Крюгера? Многие слышали об этом эффекте. По легенде, менее компетентные люди склонны завышать собственную самооценку, в то время как более компетентные люди скорее будут её занижать. Соответственно, принимаемые решения могут быть неадекватны обстоятельствам по причине когнитивного и...

Достраиваем в RESTinio четвертый этаж из C++ных шаблонов. Зачем и как? RESTinio — это относительно небольшой проект, представляющий из себя встраиваемый в C++приложения асинхронный HTTP-сервер. Его характерной особенностью является широкое, можно сказать, повсеместное применение C++ных шаблонов. Как в реализации, так и в публичном API. C++ные ш...

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

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

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

Мне нравятся картонные человечки Краткое содержание статьи — в конце текста. Леха – отличный парень. Хорошо работает, исполнительный, с идеями, перспективный. Сделали с ним пару отличных проектов. Но он бегает от уплаты алиментов на ребенка от первого брака. Прям приходит и просит, чтобы как-то скрыть его ...

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

Компас команды Привет! Меня зовут Маша, я Scrum Master в ivi. Работаю с командами биллинга и веб-разработки и помогаю ребятам организовывать рабочие процессы так, чтобы не только эффективно достигать целей, которые ставит бизнес, но и получать удовольствие от того, что ты делаешь. В своих ...

10 вещей, которые не купит ни один нормальный человек Наклейки на стекло, кепки с персонажем из «Улицы Сезам» и яйца для автомобильного глушителя.

[Перевод] JavaScript-движки: как они работают? От стека вызовов до промисов — (почти) всё, что вам нужно знать Вы когда-нибудь задумывались, как браузеры читают и исполняют JavaScript-код? Это выглядит таинственно, но в этом посте вы можете получить представление, что же происходит под капотом. Начнём наше путешествие в язык с экскурсии в удивительный мир JavaScript-движков. Читать...

Готовое решение markdown2pdf с исходным кодом для Linux Предисловие Markdown это прекрасный способ написать небольшую статью, а иногда и достаточно объемный текст, с несложным форматированием в виде курсива и толстого шрифта. Также Markdown неплох для написания статей с включением исходного кода. Но иногда хочется без потерь, тан...

FFI: пишем на Rust в PHP-программе В PHP 7.4 появится FFI, т.е. можно подключать библиотеки на языке C (или, например, Rust) напрямую, без необходимости писать целый extension и разбираться в его многочисленных нюансах. Давайте попробуем написать код на Rust, и используем его PHP-программе Читать дальше →

[Перевод] Использование JavaScript-модулей в продакшне: современное состояние дел. Часть 1 Два года назад я писал о методике, которую сейчас обычно называют паттерном module/nomodule. Её применение позволяет писать JavaScript-код, используя возможности ES2015+, а потом применять бандлеры и транспиляторы для создания двух версий кодовой базы. Одна из них содержит с...

[Перевод] Новый курс по Python от Microsoft [на английском] Вероятно, самое большое препятствие при изучении любого нового языка программирования — просто знать, с чего начать. Что важно? Что нужно знать, чтобы стать профи? Трудно исследовать документы, когда даже нет уверенности, что читаешь то, что нужно. Возможно, вы присматривае...

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

[Из песочницы] Первое рабочее место или как начать разработку API на Node.js Введение В данной статье хотел бы поделиться своими эмоциями и приобретенными навыками в разработке первого REST API на Node.js с использованием TypeScript, как говорится, с нуля. История достаточно банальная: «Закончил университет, получил диплом. Куда же пойти работать?» К...

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

Проекты Arduino DIY: роботизированный тир «Демоническая карусель» В предыдущей статье я рассказал о своей новой разработке – роботизированной игрушке «Демоническая карусель». Я существенно доработал эту модель, и хотя устройство находится пока в нерабочем состоянии (предстоит еще писать программу), мне всё же есть что показать и рассказа...

8 советов начинающим программистам или ретроспектива моей карьеры Ровно 15 лет назад, в этот самый день, своими дрожащими коленками я переступил порог офиса небольшого провинциального интернет-провайдера. Моя первая настоящая работа в качестве программиста. Знаний почти нет. Тонкий испуганный голосок откуда-то из желудка советует разверну...

Проклятое место, Мужик, Золушка, Отличник и Царь Слышали, наверное, анекдот про Автоваз и проклятое место? Пересказывать не буду, в интернете есть. Смысл его в том, что если место, т.е. компания, подобна Автовазу, то никакой менеджмент, какой бы он ни был национальности и образованности, ничего не исправит. Мне рассказыва...

[Из песочницы] С чего начать при подборе персонала впервые Я тимлид в небольшой команде разработчиков. Зимой 2018 года один из наших сильных разработчиков ушел в декрет. И я столкнулась с проблемой подбора персонала. Ранее опыта в проведении собеседований и поиске подходящего кандидата у меня не было. Все знания, которые меня были н...

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

Еще один вариант среды для разработки WordPress (docker, wp-cli) Есть официальные образы для развертывания WordPress и использования wp-cli. Но при их совместном использовании мне приходилось расшаривать всю папку WordPress и хотелось, чтобы было больше возможностей для кастомизации установки. Очень хотелось после запуска контейнера видет...

[Из песочницы] Поддельные DS18B20 waterproof: что делать? Доброго времени суток! В данной статье отражена проблема поддельных датчиков, ограничения существующих устройств, использующих эти датчики и решение данной проблемы. Источник: ali-trends.ru До меня о поддельных датчиках писалось еще и здесь. Характерные отличия поддельных...

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

[Перевод] Создание калькулятора чаевых на Kotlin: как это работает? Рассказываем, как создать простое приложение для расчета чаевых на языке Kotlin. Если точнее, то Kotlin 1.3.21, Android 4, Android Studio 3. Статья будет интересной, в первую очередь, для тех, кто начинает свой путь в разработке Android-приложений. Она позволяет понять, ч...

Город без пробок Глава первая. Искусство разумно применять светофоры «какая-нибудь картинка» Маленькое предисловие Каждый день, оказываясь рядом с перекрестком, мы наблюдаем одну и ту же картину, как на зеленый свет машины мчатся вперед, а на красный — они скапливаются перед светофором в д...

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

Как мигрировать к другому мобильному оператору и не обанкротиться (для владельцев iOS) Привет, Habr! Решил поделиться своим опытом, как яблочному рабу владельцу iPhone без проблем мигрировать от одного мобильного оператора к другому. Итак, все знают, что в России с 1 декабря 2013 года можно перейти от одного мобильного оператора к другому со всеми вытекающим...

Им было нечего скрывать Мы не первый год работаем на рынке информационной безопасности. Основные наши клиенты – правоохранительные органы разных стран, спецслужбы, а также отделы IT безопасности в крупных компаниях. Иногда наши клиенты делятся с нами интересными историями; о некоторых из них можно ...

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

VBA и Python для автоматизации Excel и MS Office Поводом для заметки послужила статья на Хабре, в которой автор описывал, как он решал на Python задачу сбора и анализа метаданных из файлов Excel. Эта заметка более подробно раскрывает всем известный тезис: Под конкретную задачу надо выбирать наиболее подходящий инструмент п...

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

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

Отчёты по состоянию СХД с помощью R. Параллельные вычисления, графики, xlsx, email и всё вот это В статье приведён код по формированию регулярных отчётов по состоянию дисков СХД EMC VNX с альтернативными подходами и историей создания. Старался писать код с максимально подробными комментариями и одним файлом. Только пароли свои подставить. Формат исходных данных также ук...

[Из песочницы] Как не надо писать шаблоны для bootstrap Мало кто сейчас пишет дизайн сайта с нуля — зачем, если есть куча замечательных CSS фреймворков? Наиболее популярен среди них bootstrap. Тем не менее, всем хочется, чтобы сайт выглядел уникально, не так как у других — поэтому поверх часто втыкают(в меру возможностей) бесплат...

[Перевод] Я ненавижу почти всё ПО Прим. переводчика: Недавно создатель NodeJS Райн Дал открывал конференцию HolyJS в питере. И я вспомнил, что у меня есть неопубликованный перевод с его блога и решил его опубликовать. Местами перевод довольно откровенный. Надеюсь, вам будет интересно. Дата выхода статьи — Ок...

[Перевод] Указатели в Python: в чём суть? Если вы когда-нибудь работали с такими низкоуровневыми языками, как С или С++, то наверняка слышали про указатели. Они позволяют сильно повышать эффективность разных кусков кода. Но также они могут запутывать новичков — и даже опытных разработчиков — и приводить к багам упр...

[recovery mode] Интеграция Опенкарт с учетными системами Опенкарт — один из самых распространенных интернет-магазинов. Во многих случаях возникает задача интеграции со складской учетной системой (чаще всего с 1С). Интеграция предполагает, как минимум, передачу заказов с ИМ в складскую систему для их обработки и отправки товаров п...

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

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

Обновление Microsoft нарушает функцию сканирования Защитника Windows Некоторые пользователи Windows 10 были обеспокоены после применения накопительного обновления от сентября 2019 года из-за критических ошибок, таких как нерабочее меню «Пуск» и сбои сетевого адаптера. Вслед за каталогом бедствий появляется еще одна ошибка, связанная с Windows...

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

Сoncurrent collections за 10 минут Photo by Robert V. Ruggiero Тема не новая. Но задавая вопрос “что такое concurrent collections и когда их использовать?” на собеседовании или code review, я почти всегда получаю ответ, состоящий из одного предложения: “они полностью защищают нас от race conditions” (что не...

Превращая FunC в FunCtional: как Serokell победили в Telegram Blockchain Competition Вы наверняка слышали о том, что Telegram собирается запустить блокчейн-платформу Ton. Но вы могли пропустить новость, что не так давно Telegram объявил конкурс на реализацию одного или нескольких смарт-контрактов для этой платформы. Команда Serokell с богатым опытом разрабо...

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

Двойной VPN в один клик. Как легко разделить IP-адрес точки входа и выхода TL;DR В статье описывается самый простой способ настроить VPN-сервер, у которого IP-адрес для подключения VPN-клиентов отличается от IP-адреса, с которого клиенты выходят в интернет. Используете VPN для защиты приватности в интернете и арендуете для этого свой личный сер...

[Из песочницы] От поиска идеи, до готового приложения Наверно многие задумывались над тем, как можно реализовать свои знания в готовом продукте. Кто-то больше, кто то меньше потратил на это времени. Хочу поделиться с сообществом своим опытом и видением, как это надо делать правильно, но не всегда получается. Читать дальше &rar...

[Из песочницы] Объектно-ориентированное программирование в Java и Python: сходства и отличия Привет, Хабр! Представляю вашему вниманию перевод статьи “Object-Oriented Programming in Python vs Java” автора Джона Финчера. Реализация объектно-ориентированного программирования (ООП) в языках Java и Python отличается. Принцип работы с объектами, типами переменных и прочи...

[recovery mode] Опровергаем мифы: реальные практики в Армении в сфере ИТ Добрый день, уважаемые читатели! Благодаря вашим отзывам на предыдущую статью по ИТ-отрасли Армении созрела идея создать еще одну публикацию, которая даст максимально развернутый ответ о реальной практике IT-специалистов в южно-кавказском государстве. В этой публикации я п...

Сапожник без сапог. Как студенты писали фишинговые письма Привет, Хабр! Я редактор этого блога, а ещё иногда преподаю вирусологию в университете. Я решил разнообразить учебный процесс и придумал несколько заданий для пятикурсников — таких, чтобы практика и актуальность, а не списывать код из 2003 года. Одно из заданий — придумать и...

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

Deep (Learning+Random) Forest и разбор статей Продолжаем рассказывать про конференцию по статистике и машинному обучению AISTATS 2019. В этом посте разберем статьи про глубокие модели из ансамблей деревьев, mix регуляризацию для сильно разреженных данных и эффективную по времени аппроксимацию кросс-валидации. Читать да...

[Перевод] ИИ в 2019 году: текущее положение вещей Этот перевод — часть статьи The Real-World AI issue. Общеизвестный факт — если вы станете повторять любое слово много раз, то в итоге оно потеряет всякое значение, превратится в фонетическое ничто. Это причина того, почему для многих из нас термин «искусственный интеллект...

[Перевод] Глупая причина, по которой не работает ваше хитрое приложение машинного зрения: ориентация в EXIF Я много писал о проектах компьютерного зрения и машинного обучения, таких как системы распознавания объектов и проекты распознавания лиц. У меня также есть опенсорсная библиотека распознавания лиц на Python, которая как-то вошла в топ-10 самых популярных библиотек машинного ...

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

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

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

Битва титанов. Google Pixel 4 против iPhone 11 Pro в первом тесте камер Смартфоны Google Pixel 4 и 4 XL представлены, и осталось дождаться их появления в продаже, чтобы оценить все особенности новинок и сравнить их с конкурентами. Но наши коллеги из The Verge уже успели провести одно небольшое тестирование. Они сравнили камеру Google 4 с iP...

Figma компонент и организация экземпляров на примере Userpic Качественная дизайн-система в Фигме всегда учитывает возможные состояния определенных компонентов. Если до появления Global Styles вариант был лишь один — всегда создавать новый компонент для каждого состояния (например текстовое поле может быть default, а может быть focus...

[Из песочницы] Как я делал действительно адаптивный слайдер (карусель) Доброго времени суток, уважаемые читатели и писатели! Сегодня я расскажу, как в проекте передо мной возникла задача по изготовлению адаптивного слайдера и что из этого получилось О статье и для кого она Данную статью я пишу не столько потому, что желаю получить отклик сообще...

Официальный сайт JetBrains теперь доступен на русском языке Как технологическая компания, мы в JetBrains стараемся поддерживать самые популярные языки и технологии программирования. А как международная компания, мы хотим, чтобы представители разных культур, говорящие на разных языках, могли легко получить информацию о продуктах JetBr...

[Перевод] Нужна небольшая клавиатура – сделайте её сами Если вам нужна клавиатура, вы можете её приобрести. Если вам нужна небольшая клавиатура, то тут всё сложнее. Кроме вариантов с переделкой клавиатуры от Blackberry или возни с крохотными тактильными переключателями, нормальных решений для получения небольших, тонких и специ...

Как правильно оптимизировать разделы каталога в интернет-магазине: пошаговая инструкция Категории, они же разделы каталога, порой играют ключевую роль в продвижении сайта. Сюда посетители заходят напрямую из поисковиков. От того, насколько правильно и корректно вы оптимизировали эти страницы, зависит практически 90% успеха продвижения. За годы работы мы в AlkoD...

Что ты такое, Event Loop? Или как устроен цикл событий в браузере Chrome Как думаете, что произойдет, если запустить в консоле браузера этот фрагмент кода? function foo() { setTimeout(foo, 0); } foo(); А этот? function foo() { Promise.resolve().then(foo); } foo(); Если вы также как и я, прочитали кучу статей про Event Loop, Main Thread,...

Игра в прятки с оптимизатором. Гейм овер, это CTE PostgreSQL 12 Эта статья — продолжение рассказа о новом в PostgreSQL 12. Мы уже разобрали SQL/JSON (патч JSONPath) в статье «Что заморозили на feature freeze 2019. Часть I. JSONPath», теперь очередь CTE. CTE CTE это Common Table Expression — общие табличные выражения, их еще называют к...

Вся правда о Windows 10 Знаете, я уже давно вынашивал эту тему для разговора относительно Windows 10. Microsoft пытается сделать так, чтобы Десятка понравилась всем, но есть адекватные люди, которые не ведутся на такого рода манипуляцию. К сожалению, с каждым годом количество сторонников Windows 10...

[Перевод] Использование Typescript с React – руководство для новичков Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript». Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием T...

Мадагаскар — остров контрастов Встретив на одном из информационных порталов видео с заголовком примерного содержания «Скорость доступа к интернету на Мадагаскаре выше нежели во Франции, Канаде и Великобритании», чего скрывать я был искренне удивлен. Стоит лишь напомнить что островное государство Мадагаска...

Модельно ориентированное проектирование. Электропривод с бесколлекторным двигателем постоянного тока В предыдущей статье про модельно ориентированное проектирование было показано, что не все методики одинаково полезны. И объясняется как делать правильно, что бы не было потом мучительно больно. Но в конце статье был поставлен вопрос, провокационный как Шарон Стоун на допросе...

[Перевод] Занимательная практика для разработчика Человек остается начинающим в течение 1000 дней. Он находит истину после 10000 дней практики. Это цитата Оямы Масутацу, которая довольно хорошо излагает суть статьи. Если вы хотите быть классным разработчиком — приложите усилия. В этом весь секрет. Проводите много часов за к...

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

Как зеленый джуниор в IT попал Зачем вообще эта статья, для кого и что дает читателю Для тех, кто не хочет читать много, краткий ответДля тех, кто только думает о смене профессии или уже в пути. Моя статья дает мотивации. После написания статей о bike (раз, два) меня много спрашивали о том, как я попал...

Идея о поиске людей в лесу Эта статья описание небольшой идеи возникшей после прочтения недавней статьи «Обыскать 314 км² за 10 часов — финальное сражение инженеров-поисковиков против леса» Сразу предупрежу, что у меня маловато опыта в радиотехнике, и совсем нет оного в поиске пропавших людей, так чт...

Криптографические токены PKCS#11. Графическая утилита «с функцией подписания и добавлением метки времени». Часть 1 В комментариях к статье «Использование механизмов криптографических токенов PKCS#11 в скриптовых языках» читатель kovserg написал: «С нетерпением ждём статью с функцией подписания документа и добавлением метки времени». Еще раньше другой участник хабра pas писал о том, что б...

Как конвертировать PDF в JPEG бесплатно на компьютере Windows и Mac Существует множество ситуаций, требующих конвертации документов в формате Portable Document Format (PDF) в JPG-изображения. Формат PDF отлично подходит для совмещения текста с графическими изображениями, однако для работы с PDF-документами, как правило, требуются дополнитель...

Математика в Gamedev по-простому. Кривые и дождь в Unity Всем привет! Меня зовут Гриша, и я основатель CGDevs. Продолжим говорить про математику что ли. Пожалуй, основное применение математики в геймдеве и компьютерной графики в целом – это VFX. Вот и поговорим про один такой эффект – дождь, а точнее про его основную часть, требую...

Что такое логическое программирование и зачем оно нам нужно У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал) Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас. Можно по-раз...

Обзор 14 headless cms 2019 Некоторое время назад в одной заметной на российском рынке публичной компании, в которой я работал, встал вопрос об использовании headless cms. Среди множества реализаций нужно было выбрать одну. Это рассказ о том, как я формировал критерии выбора, как анализировал cms-ки, и...

[Перевод] Зачем ЯОП? Зачем Racket? Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце...

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

[Из песочницы] Система контроля библиотеки на Flask-Potion, Часть 0: готовим всё, что понадобится Введение В своей работе я уже некоторое время использую Flask-Potion — фреймворк, основными достоинствами которого являются: весьма удобная интеграция с SQLAlchemy моделями, автогенерация crud-эндпоинтов, наличие клиента potion-client (весьма удобного, если пишешь API сервис...

Как взять сетевую инфраструктуру под свой контроль. Глава третья. Сетевая безопасность. Часть третья Эта статья является пятой в цикле статей «Как взять сетевую инфраструктуру под свой контроль». Содержание всех статей цикла и ссылки можно найти здесь. Эта часть будет посвящена Campus (Office) & Remote access VPN сегментам. Может показаться, что дизайн офисной сети...

Елена Самко о косплее и косплей на Мелисандру из Game of Thrones Здравствуйте! Сегодня я решил поделиться с вами одной очень занимательной статьёй "Мама, я хочу девушку — косплеера!", от известной и талантливой отечественной красавицы, умницы и просто косплей-модели Елены Самко. В статье досконально поясняется: как, где и чем дышит больши...

Цифровая лирика: мегаподборка песен и клипов о программировании и программистах Широко распространено мнение, что музыкальные способности и талант к программированию взаимосвязаны. Многие профессиональные музыканты питают склонность к точным наукам. Например, Борис Гребенщиков окончил факультет прикладной математики СПбГУ, а гитарист Radiohead Джонни Гр...

Corsair IronClaw RGB Wireless работает без шнура Буквально несколько минут назад мы выпустили новость о мышке от компании Corsair, которая нас сильно разочаровала своими параметрами и стоимостью. Однако, на этом все не заканчивается, ведь производитесь показал еще и мышку Corsair IronClaw RGB Wireless. Она стоит уже 80 дол...

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

Автоматизация контроля границ внутри компании Еще один кусочек учебника по бизнес-программированию. Процессы на границах лучше автоматизировать. Звучит банально, но такая рекомендация далеко не всегда выполняется. До сих пор достаточно распространены ситуации, когда переход процесса через границу осуществляется без испо...

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

[Из песочницы] Кросспостинг постов из Instagram в паблик VK на Python Предисловие Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не...

Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo. Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер. Недавно мы рассказывали о том, какими и...

О новых стандартах C++ Сегодня у меня довольно короткий пост. Я бы его и не писал, наверное, но на Хабре в комментах довольно часто можно встретить мнение, что плюсы становятся хуже, комитет делает непонятно что непонятно зачем, и вообще верните мне мой 2007-й. А тут такой наглядный пример вдруг п...

[Из песочницы] «Толстый и тонкий» или как я осваивал нейросети Часть 1 Введение «Нейросеть» – понятие, известное достаточно давно. В начале двухтысячных, во время учёбы в ВУЗе, я столкнулся с этой любопытной штуковиной. Прочитав научно-популярную литературу по этой теме, я сделал вывод, что это, как минимум, «забавно» и у меня возникла...

Reaktive — мультиплатформенная библиотека для реактивного Kotlin Многие сегодня любят реактивное программирование. В нём масса плюсов: и отсутствие так называемого "callback hell", и встроенный механизм обработки ошибок, и функциональный стиль программирования, который уменьшает вероятность багов. Значительно проще писать многопоточный ...

Как отказаться от ненужных рассылок с помощью одной кнопки. Опыт команды Яндекс.Почты Согласно нашим исследования, не менее 20% пользователей страдают от большого числа непрочитанных писем. Львиная доля этих писем — регулярные рассылки. Большая часть из них никогда не будет открыта и прочитана — они лежат мёртвым грузом и отвлекают от полезных писем. Для ре...

Зачем вам учить Go Источник картинки Go — относительно молодой, но популярный язык программирования. По данным опроса Stack Overflow, именно Golang получил третье место в рейтинге языков программирования, которые хотели бы освоить разработчики. В этой статье мы попробуем разобраться в причина...

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

Модульные промышленные мониторы Advantech FPM-7002 Суровые условия производства накладывают дополнительные требования ко всем периферийным устройствам, в том числе и к мониторам. Промышленные мониторы серии FPM-7002 предназначены для установки во встраиваемые системы с повышенными требованиями надежности, имеют модульную с...

Инструменты для запуска и разработки Java приложений, компиляция, выполнение на JVM Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года. Эта статья посвящена основам основ: в ней изложены базовые особенности языка, которые придутся кстати начинающим “д...

Собачий корм из мяса оказался опасен Поскольку дикие предки собак и кошек ели почти исключительно сырое мясо, владельцы их далеких потомков часто полагают, что их животные получат пользу от такой диеты, объясняет ведущий автор исследования микробиолог Магдалена Нюш-Индербинен (Magdalena Nüesch-Inderbinen). Одна...

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

Как мы полностью поменяли собеседования Меня зовут Саша, и я руковожу backend-разработкой в Tutu.ru. Сегодня я расскажу, почему и как мы полностью поменяли процесс собеседования кандидатов за прошедший 2018 год. Итак, диспозиция на начало года Мы быстро растем – нам нужно набирать новых сотрудников Сообщество ра...

Интервью с Виталием Брагилевским: «Мир, в котором все будут программировать на Haskell — это вряд ли хороший мир» Виталий Брагилевский (@_bravit) пока что еще преподает в ЮФУ курсы по Haskell и теории алгоритмов. Также, дает выездные курсы в других городах, является редактором и переводчиком множества книг о Haskell и функциональном программировании, состоит в комитетах Haskell 2020 и...

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

Пробуем сэкономить. Нагревательный стол 220В. Часть1. И так, вот стоит пред нами почти собранный принтер. Посчитаем примерно сколько ему надо энергии для работы.1. Электроника - 0,2А (беру самые распространённые ArduinoMega2560+RAMPS+4штА4988+80мм вентилятор)2.Шаговые двигатели 4шт 17HS4401. Измерения показали 1,4А при одноврем...

Arend – язык с зависимыми типами, основанный на HoTT (часть 1) В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend. Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноц...

Вредные советы: как правильно писать техническую документацию? Часть вторая Советы по грамотному написанию технической документации для пользователей. Часть 2 Продолжение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. Начало статьи можно почитать тут, а то...

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

Оптимизируем ассеты для WebGL правильно Так часто бывает, что техники оптимизации, хорошо работающие для обычной десктопной или мобильной графики, не всегда дают нужный эффект в случае WebGL. В этой статье я собрал (а точнее перевёл на русский язык и изложил в текстовом виде нашу презентацию с Verge3Day) те методы...

Самые редкие и самые дорогие языки программирования. Часть II Недавно для читателей Habr я провела небольшое исследование языков программирования, таких как Rust, Dart, Erlang, чтобы выяснить, насколько они являются редкими на российском рынке IT. В ответ на мое исследование посыпалось больше количество комментариев и вопросов касате...

[Из песочницы] Реализация горячей перезагрузки С++ кода в Linux * Ссылка на библиотеку в конце статьи. В самой статье изложены механизмы, реализованные в библиотеке, со средней детализацией. Реализация для macOS еще не закончена, но она мало чем отличается от реализации для Linux. Здесь в основном рассматривается реализация для Linux. Г...

Должны ли строки в Python быть итерируемы? И сотворил Гвидо строки по образу C, по образу массивов символов сотворил их. И увидел Гвидо, что это хорошо. Или нет? Представьте, что вы пишете совершенно идиоматичный код по обходу неких данных с вложенностью. Beautiful is better than ugly, simple is better than complex,...

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 1 В этой статье я разберу использование утилиты Liquibase в Spring Boot приложениях для версионирования структуры реляционной БД и миграции этой структуры с одной версии на другую. В первой части разберем базовый пример, а во второй поговорим об использовании liquibase-mave-pl...

Процессору Ryzen 9 3900X отключили SMT и проверили, как это скажется на производительности Линейка процессоров Ryzen 3000 сейчас насчитывает шесть моделей, одна из которых выйдет только в сентябре. Всех их объединяет одна особенность — поддержка SMT (аналог Hyper-Threading). Появятся ли позже модели без поддержки SMT, неясно, но специалисты ресурса Tec...

Как писать полиморфические программы c помощью Arrow Привет, Хабр! Меня зовут Артём Добровинский, я работаю в компании Finch. Предлагаю к прочтению статью одного из отцов библиотеки функционального программирования Arrow о том, как писать полиморфические программы. Часто люди, которые только начинают писать в функциональном...

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

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

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

Как строить, развертывать и тестировать Waves RIDE dApp Здравствуйте! В статье я покажу, как написать и запустить на ноде Waves обычный dApp. Рассмотрим необходимые инструменты, методы и пример разработки. Схема разработки dApps и обычных приложений почти не отличается: Пишем код Пишем автоматизированное тестирование Запуска...

Continuous delivery для вашей Kotlin Multiplatform библиотеки Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. В процессе работы мы столкнулись с тем, что в случае с Kotlin Multiplatform continuous integration и continuous del...

[] Парсер 2GIS в семь строчек кода, или почему важно контролировать лимиты запросов на сервер Наверное любому из тех, кто хоть как-то причастен к области анализа данных хотя-бы раз приходилось сталкиваться с поиском сторонних источников получения этих самых данных. Сегодня я хотел бы поделиться с Вами одним из самых неожиданных для меня мест, где эти данные лежат поч...

Решение задания с pwnable.kr 07 — input. Разбираемся с pwntools В данной статье разберем решение многоуровнего задания с помощью библиотеки pwntools. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о след...

[Из песочницы] Матрёшка Си. Слойная система языка программы Попробуем представить химию без Периодической системы Менделеева (1869). Сколько же элементов надо было держать в голове, причём в произвольном порядке… (Тогда — 60.) Для этого достаточно подумать об одном или нескольких сразу языках программирования. Те же чувства, тот же...

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

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

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

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

«Что за нищебродство, Тойота?»: Блогер рассказал, чем ему не нравится Toyota Land Cruiser Prado По мнению автора, если не хватает денег на нормальный «Ленд Крузер», в таком случае «Прадик» – подходящий вариант. Рассказать, чем ему не нравится Toyota Land Cruiser Prado, а в чем внедорожник вполне себе неплох, решил казахский блогер с канала Carwar ZZZ. Для обзора он вз...

Идиоматичное программирование GPU на Rust: Библиотека Emu Введение Emu — это высокоуровневый язык программирования видеокарт, способный встраиваться в обычный код на системном языке программирования Rust. В данной статье речь пойдёт о синтаксисе Emu, его особенностях, а также будут показаны несколько наглядных примеров его использ...

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

[Из песочницы] Логирование всех запросов к Базе данных в Asp.Net Boilerplate 4.3 .Net Core 2.1 Часто в проекте возникает непонятная ошибка для которой необходимо максимальное логирование всех запросов к Базе данных. Статья поможет тем, кто пишет (развертывает на сервере) один из своих первых проектов на Asp.Net Boilerplate. Читать дальше →

Новые подробности относительно Samsung Galaxy Fold 2: два экрана, два аккумулятора  После того как Samsung Galaxy W20 оказался всего лишь слегка измененной версией Galaxy Fold первого поколения, все начали с еще большим нетерпением ждать, чтобы узнать, каким же будет полноценный Galaxy Fold 2. Samsung уже показывала ролик с форм-фактором будущего устройств...

Колония. Эпилог СодержаниеГлава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Глава 7 Глава 8 Глава 9 Глава 10 Глава 11 Глава 12 Глава 13 Глава 14 Глава 15 Глава 16 Глава 17 Глава 18 Глава 19 Главы 20 и 21 Глава 22 Глава 23 Глава 24 Глава 25 Глава 26 Эпилог < — Вы здесь Сквозь пелену вязкого...

К чему приложить прикладного лингвиста? “Что за дело? Это многих славных путь.” Н.А. Некрасов Всем привет! Меня зовут Карина, и я “совместитель” — совмещаю учёбу в магистратуре и работу технического писателя в Veeam Software. О том, как у меня это вышло, я и хочу рассказать. Заодно кто-то узнает, как можно прийти...

Перечитывая Лу Гринзоу «Философия программирования Windows 95/NT» Небольшая рецензия по книге двадцатилетней выдержки была написана еще в 2016, публикую с микроправками. В оригинале исповедь автора называется «Дзен программирования в Windows 95» (Zen of Windows 95 Programming). Пусть вас не пугает цифра «95», ключевым сюжетом является име...

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

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

Встречайте обновление приложения AppleInsider.ru Не успела отгреметь презентация Apple, на которой нам показали самые совершенные в мире iPhone, как у нас уже готов для вас обновление нашего фирменного приложения AppleInsider.ru для iPhone и iPad. Те, кто им активно пользуются, скорее всего получат обновление автоматическ...

8. Check Point Getting Started R80.20. NAT Добро пожаловать на 8-й урок. Урок очень важный, т.к. по его завершению вы уже сможете настроить выход в интернет для ваших пользователей! Надо признать, что многие на этом настройку и заканчивают :) Но мы не из их числа! И у нас еще много интересного впереди. А теперь к т...

[Перевод] Асинхронное программирование – производительность async: понять расходы на async и await Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent. Асинхронное программирование долгое время было царством самых опытных р...

Почему Cisco не покупает Splunk или рассказ о том, как работает платформа Cisco для threat hunting Примерно раз в полгода какой-нибудь американский журналист публикует конспирологическую заметку о том, что Cisco вот-вот купит Splunk и зайдет в сегмент SIEM, так как это именно то, чего нам не хватает для окончательного завоевания мирового рынка ИБ (хотя мы и так уже были н...

Python стал «языком 2018 года» по версии экспертов TIOBE Эксперты TIOBE назвали Python языком программирования 2018 года. По словам специалистов, Python сегодня является неотъемлемой частью многих IT-сфер. Он лидирует по использованию в статистике и при создании систем искусственного интеллекта, скриптов и системных тестов, а такж...

Smart IdReader SDK — встраиваем распознавание в проекты на Python и PHP Мы, Smart Engines, продолжаем цикл статей про то, как встроить наши технологии распознавания (паспортов, банковских карт и других) в ваши приложения. Ранее мы уже писали про встраивание на iOS и Android, показывали, как встроить распознавание в Телеграм-бота, а сегодня мы ра...

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

[Перевод] Знакомство с Тестированием в Python. Ч. 3 Друзья, у нас для вас отличные новости. Во-первых на улице наконец-то светит солнышко, а это значит, что весна начинает полноправно вступать в свои права. Вторая новость более профильная — уже 20 марта стартует первое занятие в новом потоке по курсу «Разработчик Python», в с...

Лето почти закончилось. Не утекших данных почти не осталось Пока одни наслаждались летними отпусками, другие наслаждались уловом конфиденциальных данных. Cloud4Y подготовил краткий обзор нашумевших утечек данных за это лето. Читать дальше →

[Из песочницы] Изучение комбинаторных парсеров с Rust Привет, Хабр! Представляю вашему вниманию перевод статьи "Learning Parser Combinators With Rust". Эта статья учит основам комбинаторных парсеров людей, которые уже знакомы с Rust. Предполагается, что никаких других знаний не требуется, а всё, что не имеет прямого о...

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

[Перевод] .NET Core Workers как службы Windows В .NET Core 3.0 мы представляем новый тип шаблона приложения под названием Worker Service. Этот шаблон предназначен для того, чтобы дать вам отправную точку для написания долго-работающих сервисов в .NET Core. В этом пошаговом руководстве мы создадим worker и запустим его в ...

factory_trace gem поможет почистить ваши factories Если вы пишите тесты для вашего проекта и используете factory_bot для генерации тестовых данных, то представляю вам гем factory_trace, который поможет вам поддерживать ваши factories & traits в актуальном состоянии. Читать дальше →

Google Docs — любимый чат у школьников Как известно, текстовый редактор Google Docs допускает многопользовательскую работу, то есть несколько человек могут редактировать один документ. В том числе одновременно. Может быть кто-то не задумывался, но таким образом можно отправлять друг другу сообщения в реальном р...

[Перевод] Нейросети и философия языка Почему теории Витгенштейна остаются основой всего современного NLP Векторное представление слов — пожалуй, одна из самых красивых и романтичных идей в истории искусственного интеллекта. Философия языка — это раздел философии, исследующий связь между языком и реальностью и ...

Как ЛАНИТ оснастил инженерными и ИТ-системами дилинговый центр в Сбербанке В конце 2017 года группа компаний ЛАНИТ закончила один из самых интересных и ярких проектов в своей практике — Дилинговый центр Сбербанка в Москве. Из этой статьи вы узнаете, как именно «дочки» ЛАНИТ оборудовали новый дом для брокеров и уложились в рекордно короткие сроки. ...

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

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

Что нового в Swift 5? Привет, меня зовут Илья. Я — iOS разработчик в компании Tinkoff.ru. В этой статье я сделаю краткий обзор основных изменений в Swift 5. Данные изменения описаны в release notes. Для тех, кто еще не ознакомился, добро пожаловать под кат! Читать дальше →

[Из песочницы] Три неочевидных примера использования шаблонизаторов в backend-е С одной стороны, предмет действительно был квадратным. C другой стороны он был круглым. Но с третьей стороны, с которой должен быть треугольник, предмет вышел кривой и косой. — Алешенька идет на совещанку? — в дверь просунулась Леночкина заинтересованная физиономия. — Алеш...

Анализируем историю прослушивания в «Яндекс.Музыке» Вот уже почти год я пользуюсь сервисом Яндекс Музыка и меня все устраивает. Но есть в этом сервисе одна интересная страница — история. Она хранит все треки, которые были прослушаны, в хронологическом порядке. И мне, конечно, захотелось скачать ее и проанализировать, что я та...

[recovery mode] Делаем маршрутизатор и NAS на одном процессоре У меня появился «домашний сервер» на Linux всего через несколько лет, как мне купили компьютер. Сейчас, с того момента прошло уже более пятнадцати лет и большинство этого времени у меня был какой-то второй дополнительный компьютер дома. Однажды, когда пришла пора его обновля...

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

Компьютер для выживших в апокалипсисе из Raspberry Pi На Хабре не раз и не два публиковались DIY-статьи с описанием проектов, центральной частью которых был Raspberry Pi. «Малинка» в самом деле подходит для подобных целей практически идеально. Недавно появился еще один такой проект, который заслуживает внимания. Называется ...

Причины внедрить в процесс разработки статический анализатор кода PVS-Studio PVS-Studio – это инструмент для поиска ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках C, C++, C# или Java. PVS-Studio относится к классу инструментов статического тестирования защищённости приложений (Static Application Security Testing, S...

[Перевод] Что нового в Zabbix 4.4 Команда Zabbix с радостью сообщает о выходе Zabbix 4.4. Последняя версия поставляется с новым Zabbix агентом, написанным на языке Go, устанавливает стандарты для шаблонов Zabbix и предоставляет расширенные возможности визуализации. Давайте рассмотрим наиболее важные функц...

Проектная исповедь — 15 ноября, Москва, DI Telegraph Привет! Мы тут решили провести митап-ретроспективу, в которой может принять участие любой желающий (конечно, если заранее зарегистрируется). В чем смысл. Ретроспектива — это всегда хорошо. Это опыт. Особенно, если открыто рассказывать о факапах, о сложных решениях, о том...

Когда 'a' не равно 'а'. По следам одного взлома Пренеприятнейшая история случилась с одним моим знакомым. Но насколько она оказалась неприятной для Михаила настолько же занимательной для меня. Надо сказать, что приятель мой вполне себе UNIX-пользователь: может сам поставить систему, установить mysql, php и сделать простей...

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