Тот, кто не готов внедрять новые решения, достаточно скептично относится к такой формулировке как Low Cost Engineering, считая, что создание прототипа – это огромные затраты. Опытные же инженеры все чаще используют данную концепцию как один из инструментов бережливого производства.
Новости
10 способов поменять местами два значения в JavaScript
Да, вы все правильно поняли! Существует больше, чем один, способ поменять значения местами в JavaScript
Подсчет количества пар товаров в продуктовых чеках с помощью трех инструментов: Python, Spark, SQL
Добрый день, уважаемые читатели! Не открою для большинства секрета, если скажу, что большая часть задач в материалах к учебным курсам сформулирована шаблонно. Какие-то вопросы в принципе могут представлять интерес, но очень оторваны от реальных потребностей бизнеса. Какие-то моменты выдернуты из книг, поэтому лучше знакомиться с ними, читая первоисточник. Но есть кейсы, которые на первый взгляд хоть и кажутся простыми и стереотипными, но, если присмотреться к ним более пристально, могут дать пищу для размышления. Вот на одной из таких полезных задач мне хотелось бы заострить внимание в данной заметке. Формулируется вопрос следующим образом: «Необходимо определить количество пар товаров в продуктовых чеках. Вывести 10 самых частых сочетаний». Пример, чек 1 содержит товар 1, товар 2, товар 3, а чек 2 - товар 1, товар 2, товар 5. Следовательно, комбинация «товар 1, товар 2» встречается 2 раза, «товар 1 , товар 3» один раз и т.д.
В исходнике решать данный кейс предлагалось силами Python. Но реальная жизнь может потребовать от аналитика данных умения выполнять данное упражнение как с помощью SQL, так и Spark. Следовательно, рассмотрим три подхода, оставив за скобками разговора четвертый вариант – расчеты на платформах BI.
На Восток
Раз уж я застрял в китайской командировке давайте я вам расскажу немного о Китае и китайцах. Тем более, что в ближайшие годы нам, по всей видимости, придется все больше с сотрудничать. Налаживать с ними отношения непросто, но можно. Сложность в том, что мы очень привыкли к западной культуре. А Восток –абсолютно другой. Выделю три ключевых принципа, которые помогают мне понимать их мышление и логику. Первое - это огромная плотность населения, на юго-востоке Китая она раз в 100 выше чем в России. И этот момент определяет многое в сознании китайцев. Нам гораздо проще общаться с амерами и европейцами не в силу языкового или религиозного сходства, а именно потому что плотности населения примерно одинаковы. Второе - Запад индивидуалистичен, а Восток – коллективен. И третье – Запад вербален, а Восток – невербален. Слова здесь дешевы и могут ничего не значить, а вот дружба (если сложится) ценится выше. У китайцев своеобразное понятие о чести (несколько отличающиеся от нашего), но придерживаются они его свято. Я еще по “развеселым 90м” усвоил – людям с Востока можно доверять. Они не прощают предательства, но если ты им верен –пойдут за тебя в огонь и воду. Итак, по пунктам
Язык.
Очень сложный. Принципы построения абсолютно другие. Иероглифы – это скорее некие символы и образы, а не просто буквы. И этими символами китайцы как-то оперириуют. Дополнительная сложность в том, что смысл зависит от тональности. Одни и те же слова могут иметь совершенно разное значение, в зависимости от того, как они произнесены. Для того чтобы выучить китайский может и двух лет не хватить. Это не английский, который я за пару месяцев выучил. Тут я за долгое время выучил штук 20 иероглифов, а для того чтобы хоть как то общаться надо примерно 500. Всего же их около 5000. Не сказать, чтоб я сильно в этом отношении напрягался, и напрасно. По-английски в Китае не говорит почти никто. Радостное исключение – девчонки на ны Reception в отеле. Поэтому многие вопросы (заказ еды, составление маршрутов) решаются через них. :) C остальными приходится общаться на пальцах (мальчик жестами обьяснил что его зовут Хуан :)). Или через переводчик на телефоне. Он позволяет хотя бы читать и писать. Но вот местные диалекты, ему часто не под силу. Так что на изучение китайского надо налечь – занятие крышесносящее но увлекательное :) Тем более, что в ближайшие несколько лет знание языка даст огромные преимущества.
О судьбе отечественного оборудования для сетей 5G. Часть V Точка бифуркации
И снова здравствуйте!
Первая часть. Обзор Рынка
Вторая часть. Внешние и внутренние противоречия
Третья часть. Основные действующие лица
Четвертая часть. Что есть базовая станция 4G/5G
Не думал я, что, когда начну свой скромный анализ ситуации с импортозамещением оборудования для сетей 5G, события будут развиваться так быстро: начало «специальной военной операции», введение «адских» санкций, звучащие предсказания еще более тектонических мировых изменений. Кроме того, вскрылись во всей красе фундаментальные риски российской экономической политики в области микроэлектроники (и не только), обозначенные нами в прошлом материале.
После первого шока от происходящего сейчас давайте взглянем на то, что было сделано со стороны государства и участников рынка на ниве создания отечественных базовых станций 4G/5G и каковы дальнейшие (если они есть) перспективы, учитывая новые ограничения.
Как обычно - буду рад конструктивной критике, обратной связи и дискуссии. Особенно интересно мнение людей, которые возможно заняты в компаниях, обозначенных в статье, без вас будет сложно дать всесторонний анализ ситуации. На базе Ваших предложений – сможем «углУбить и расшИрить» материал по мере поступшения предложений и комментариев!
Как я оклад 2х хотел
Много знаешь - меньше возможностей устроиться на работу и финансового повышения. Поделюсь личным опытом собеседований, анализом рынка, перспективах.
Firefox OS снова в строю. Ну, почти — встречаем Capyloon, новую инкарнацию операционной системы от Mozilla
Вчера в сети появилась новость о выходе экспериментальной версии операционной системы, которая называется Capyloon. Она базируется на web-технологиях и идеях давно уже закрытого проекта Firefox OS, B2G (Boot to Gecko). Человеком, который решил попробовать все снова, стал Фабрис Дезре (Fabrice Desré). И это вовсе не случайно, поскольку Дезре был главой команды разработчиков Firefox OS до момента завершения неудавшегося опыта Mozilla. Кроме того, он еще и главный архитектор компании KaiOS Technologies, компании, которая продолжает работу над KaiOS, операционной системой, которую можно назвать форком Firefox OS. О подробностях — под катом.
Будущее музыки за объемным звуком — обсуждаем мнения
Музыкальное сообщество давно экспериментирует с пространственным звучанием. Рассказываем, как обстоят дела в этой нише, и кто что думает на этот счет.
Что такое Netcat? Bind Shell и Reverse Shell в действии
Друзья, всех приветствую!
В этой статье мы поговорим о том, что такое Netcat и с помощью него реализуем Bind и Reverse Shell соответственно.
Netcat
Netcat, впервые выпущенный в 1995 году (!), является одним из "оригинальных" инструментов тестирования на проникновение в сеть. Netcat настолько универсален, что вполне оправдывает авторское название "швейцарский армейский нож" хакера. Самое четкое определение Netcat дают сами разработчики: "простая утилита, которая считывает и записывает данные через сетевые соединения, используя протоколы TCP или UDP".
Подключение к порту TCP/UDP
Как следует из описания, Netcat может работать как в режиме клиента, так и в режиме сервера. Для начала давайте рассмотрим клиентский режим. Мы можем использовать клиентский режим для подключения к любому порту TCP/UDP, что позволяет нам: Проверить, открыт или закрыт порт или подключиться к сетевой службе.
Давайте начнем с использования Netcat (nc), чтобы проверить, открыт ли порт 80 на тестируемой машине (в качестве тестируемой машины мы будем использовать основную машину на которой установлена ВМ !!!).
Мы введем несколько аргументов: опцию -n, чтобы отключить DNS и поиск номеров портов по /etc/services; -v для вывода информации о процессе работы; IP-адрес назначения; и номер порта назначения:
P.S. Чтобы узнать IP-адрес основной машины выполните команду ipconfig в командной строке если у вас основная машина Windows, и ifconfig если у вас Linux или MacOS.
Разница между двумя строками
Простой скрипт для получения различий между строк на
python
, это полезно при создании тестов.
Существует стандартная библиотека difflib
для этих целей, но я написал для неё более читаемый аналог.
Стандартный вариант
Баг в ядре Linux и как правильно жаловаться
Я работаю системным программистом в компании КриптоПро. Нередко мои задачи связаны с ошибками, которые лежат на самом нижнем уровне современных операционных систем, под которые мы пишем ПО. Я хочу поведать тебе, Хабр, об одной из таких ошибок и о том, как я жаловался на неё разработчикам.
Я отвечаю за поддержку одной из наших библиотек с C-интерфейсом, написанной на C и C++. Мой коллега из другого отдела сообщил, что его нагрузочный тест нашей библиотеки на C# в Linux выдаёт ошибку в хитром сценарии: нужно иметь два процесса по пять потоков, делающих некоторые идентичные вызовы. Если процесс один, а потоков много, то проблема не проявляется. Если процессов два, но в каждом по одному потоку, то проблема не проявляется. Путём просмотра исходников нагрузочного теста и логов работы библиотеки удалось перенести проблему в маленький юнит-тест на C++ с использованием нашего API.
Извлечение истории воспроизведения из медиабиблиотеки проигрывателя Winamp
Экономическая модель для ММО
Некоторые соображения о том, как концептуально может быть устроена идеализированная экономика обмена в ммо-игре.
Лебединая песня: не уходи молча
Все хотят повышения зарплаты. Как правило – себе. Это совершенно нормально – своя рубашка ближе к телу. Бывает, что один добивается повышения себе, а прицепом достаётся и остальным. Однако, как вы, наверное, знаете, так случается не очень часто – счастливчика обязательно попросят никому ничего не рассказывать.
Собственно, это одна из причин жуткой нелюбви начальников к индивидуальным договорённостям по зарплате. Тот же Артемий Лебедев давно говорил, что запретил сотрудникам рассказывать друг другу, кто сколько получает – обязательно кто-нибудь придёт и скажет «а чё он больше получает?».
Вторая причина ещё банальнее: для начальника повышение зарплаты одному человеку – довольно жуткий геморрой (если он не собственник, разумеется). Чем больше компания и ниже начальник, тем процесс сложнее. Проситель-сотрудник автоматом превращает в просителя самого начальника. Тот должен идти и просить чуть ли не для себя. В ответ, с высокой вероятностью, начальник получит лекцию о собственной некомпетентности, неумении «строить команду» и использовать нематериальные методы мотивации. Вон Коля, начальник соседнего отдела, молодец – просто купил три настолки, и никто больше не ноет.
Теперь давайте зайдём с другой стороны и посмотрим на реальную статистику не индивидуальных, а массовых улучшений условий труда – и зарплаты, и всего прочего. Когда, почему, в какой момент они чаще всего случаются? Не будем рассматривать сказки о великих гигантах, которые просто индексируют зарплату на уровень инфляции. Посмотрим на что-нибудь более приземлённое.
Эволюция DevOps
15 лет назад DevOps начинался в попытке “подружить” разработку и эксплутацию — через культуру, обмен знаниями и совместную работу. Затем быстро развернулся в сторону ускорения поставки изменений из разработки в продакшн (активность Lean Value Stream Mapping), продолжился в понимание того, что программисты создают не просто код в репозитории (и даже не протестированный код в репозитории), а работающее приложение в продакшне (практики Observability и SRE). И последние несколько лет DevOps перешел к рассмотрению взаимодействия команд на масштабе (фреймворк Team Topologies).
Что при этом менее заметно, так это происходящая одновременно с этим эволюция корпоративной архитектуры:
Разбираем алгоритмы компьютерной графики. Часть 5 – Анимация «Shade Bobs»
Алгоритм, который рассмотрим сегодня, не имеет нормального названия. Иногда его называют "Shade Bobs", а вообще это один из многочисленных алгоритмов генерации "плазмы". Когда что-то на экране видоизменяется и переливается.
Из множества алгоритмов "плазм", представленный экземпляр самый элементарный.
Основы работы отечественных МК 1986ВЕ1Т с болгарскими отладчиками OLIMEX ARM-USB-OCD-H. Часть 2 — RAM & Interruptions
Изначально вторая главазадумывалась только, как шпаргалка по работе из оперативной памяти, но делать и разбираться в этом не очень трудно. Основная "запара" может настигнуть несведущего именно при работе с прерываниями. Собсна, решено объединить.
Как создать telegram бот на C# быстро?
Как создать telegram bot на C# быстро?
В этой статье мы рассмотрим заготовку для создания telegram бота на C#. В связи с последними обновлениями TelegramBotAPI, большая часть удачных с моей точки зрения публикаций на эту тему несколько устарело. Потому предлагаю разобраться в этой теме.
Материализованные представления и ReplacingMergeTree в ClickHouse
В этой статье будут описаны подводные камни, на которые я натыкался при использовании одновременно материализованных представлений и движка ReplacingMergeTree
в ClickHouse (далее CH). Для опытных пользователей CH эта информация возможно будет уже не новой, но надеюсь, что смогу сэкономить много времени тем, кто недавно начал свое знакомство или только готовится начать.
Это первая часть, в которой опишу основные термины: что такое материализованные представления и ReplacingMergeTree, как работают и какие есть особенности.
Нейросетевой подход к моделированию транзакций расчетного счета
Естественным источником информации в банке о покупках клиента являются карточные транзакции – любые операции, проводимые по дебетовым или кредитным картам. При этом денежные операции клиента не ограничиваются транзакциями, проводимыми с помощью карт. Оплата ЖКХ, оплата образования, крупные покупки и другие денежные переводы – это примеры транзакций, которые никак не привязаны к карте клиента, но при этом они ассоциируются с другой банковской сущностью – расчетным счетом.
Про то, как мы в Альфа-Банке применяем карточные транзакции в моделировании, мы уже рассказывали в этом посте. Логичным развитием идеи использования карточной транзакционной истории клиента является использование данных, которые содержатся в клиентской истории транзакций расчетного счета.