Обновить
176.58

Ненормальное программирование *

Извращения с кодом

Сначала показывать
Период
Уровень сложности

Сказ о том, как РП репликацию на Марии из зеркал состряпал…

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели992


Нежданно ни гадано, затеяли значит высшие "итишные" силы включить новые заморские очереди Кафка в уже выполненный на 4/3 проект и слава богу, что только для внешних взаимодействий и передачи всякой информации туды-сюды. Главный архитектор дал благословение и понеслось, да не туда, так как нести то некому это невиданное заморское чудо. Что делать, в обозримые сроки не впихнуть и перед боярами чин и обязательства не сдержать. Посидел РП, погоревал, да сдул пыль со знаний древних и ранее опробованных и тут понеслось.

Читать далее

KatWalk C2: ч2, подслушаем, подсмотрим и разнюхаем или как общаться с незнакомым железом на незнакомом языке

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели1.6K

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

Однако, получение данных требует постоянно висящего приложения (на C#), и надо понять что же конкретно оно делает.

Давайте разберёмся как общаться с железом и избавимся от балласта!.. Переписав на Kotlin. Почему Kotlin? Потому что я на нем никогда еще не писал.

Погружаемся

Строительные кирпичики в языках программирования

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7K


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


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


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

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

Один день из будущего

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели5.7K

Он проснулся от звонка будильника на часах. Взгляд на часы одним глазом, отключение будильника и погружение обратно в сон. Ему всегда не хватало совсем чуть-чуть, чтобы выспаться. Так же, как вечером еще чуть-чуть, чтобы досмотреть очередную серию бесконечного сериала.

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

Заварив чашку ароматного Турецкого чая и разжарив пару яиц на сале, он удобно расположился за кухонным столом. Снял часы, поставил на зарядку, затем открыл ноутбук и увидел список новостей из различных источников. Лента была единой и собрана из новостей RSS, сообщений банков, писем из налоговой, а также сообщения от Виктора: “Серёга, срочно посмотри — пока не удалили” и ссылка на страницу с видео. Сообщение было отправлено уже ночью, вероятность, что видео уже удалено, была очевидной.

Сергей ткнул на сообщение, оно открылось на весь экран. Удивительно, но видео проигрывалось даже без загрузки. В ролике был очередной обзор о проблемах на Новой Марсианкой Колонии. И хоть новость с видео действительно уже удалили со всех серверов федерации, видео было доступным. Разгадка была простой, он был одним из немногих, кто своевременно осознал ценность данных. Одним из первых, кто смог отказаться от вендорских экосистем и подходов изоляции данных. Данные должны быть свободны! Разработка этой концепции заняла долгое время, а ещё больше — разработка первого сервиса и доведения концепции до ума. Сейчас, когда эта концепция уже работала, это помогало ему постоянно.

Читать далее

FizzBuzz for Senior

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели11K

Алоха всем.

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

А как быть интервьюерам? Какую задачу дать кандидату? Как понять сигналы, что кандидат «шарит»?

Я наткнулся на интересную статью по интервью на Senior инженера C++. Там у парня спрашивают базовую задачу FizzBuzz.

В этой статье мы рассмотрим бенчмарки различных решений на Java, начиная от простых вариантов и заканчивая многопоточными реализациями. Давайте разбираться вместе!

Читать далее как "Senior" решает FizzBuzz

Нарастающий итог в таблицах Google одной формулой

Время на прочтение2 мин
Охват и читатели9K

Бывает требуется в таблицах вывести нарастающий итог по какому-то столбцу значений.

Я по шагам расскажу как это сделать всего одной формулой в одной ячейке. Кто хочет сразу готовую формулу - можно прокрутить вниз.

Читать далее

Зачем кодить, если можно не кодить? Часть 2: Google Sheets и Notion

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6K

Всем привет, и с вами снова Данил Губанов — backend-разработчик в Точке. В этом материале я расскажу об инструментах, с которыми можно быстро сделать лендинг с формами, создать таблицу и даже разработать приложение для психологической помощи (и всё это без кода). Речь пойдет про Notion и Google Sheets. Поехали!

Поехали

Почему анимированная погода – это код из конфигуратора или История одного грустного пакета

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели2K

«Чёрт, где искать эти ваши бесплатные и безвозмездные ресурсы для коммерческого и личного пользования в своих богоподобных разработках?» — именно так, неудачно и нетерпеливо воспользовавшись поиском, я решил создать анимацию с помощью кода, дабы украсить личный проект — приложение погоды Weather Today.

Как был создан пакет по анимации погодных условий и зачем понадобился конфигуратор ⤦

Читайте далее

Пошаговая отладка, inline-методы, JVM

Время на прочтение6 мин
Охват и читатели4K


В Java, как известно, inline-методов нет. Но такое понятие существует в других языках, исполняющихся на JVM. Например, в Scala или Kotlin. Во время компиляции вызов такого метода заменяется на его тело, как если бы разработчик написал этот код вручную.

Прекрасный инструмент для добавления синтаксического сахара и создания проблемно-ориентированных языков (DSL) малой ценой, но как это всё отлаживать?

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

Кастомный аллокатор для закрытого 3rd

Время на прочтение2 мин
Охват и читатели2K

Существует ряд ситуаций, когда это имеет смысл. От полного контроля памяти, до вынужденной необходимости. К примеру, одна из возможных ситуаций:
1. Мы используем alignment аллокаторы.
2. Мы перегружаем какой-то класс и данные от нашей 3rd зависимости.
3. 3rd зависимость не использует alignment аллокаторы.

Читать далее

Релиз языка программирования NewLang 0.2

Время на прочтение5 мин
Охват и читатели8.6K

image


NewLang — это язык программирования высокого уровня в котором можно сочетать стандартные алгоритмические конструкции с декларативным программированием и тензорными вычислениями для задач машинного обучения.


Основной особенностью языка является простой, логичный и не противоречивый синтаксис, который основан не на использовании зарезервированных ключевых слов, а на строгой системе грамматических правил с использованием знаков препинания (в список которых входят и операторы языка).


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

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

Виртуальный город-государство и презентация новой платформы — как пройдет новый The Standoff Moscow 2021

Время на прочтение2 мин
Охват и читатели1.7K

В ноябре белые хакеры и специалисты по информационной безопасности соберутся на крупнейшей в мире открытой кибербитве The Standoff Moscow. Мы обновились и готовим для вас тренировки на киберполигоне, открытые киберучения, технические доклады от молодых профессионалов и погружение в вопросы инвестиций в кибербез. На такое количество нововведений потребовалось больше времени, чем планировалось, но уже 15 и 16 ноября специалисты по ИБ попытаются взломать броню компаний из различных отраслей, включая Positive Technologies. А еще мы покажем новую онлайн-платформу Standoff365 для проведения киберучений в режиме 24/7/365.

Подробности

Как ломать банкоматы: ARP spoofing, CVE, обход киоска

Время на прочтение6 мин
Охват и читатели11K

На прошедшем 20 и 21 мая 2021 г. Positive Hack Days в зоне Payment Village был конкурс, участники которого могли посоревноваться в хакерском мастерстве, в частности во взломе банкоматов. Организаторы подготовили три виртуальных машины банкоматов с разным уровнем сложности заданий. На протяжении двух дней участники пытались взломать банкоматы, но всего несколько человек смогли приблизиться к заложенным нами сценариям.

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

Читать далее

Ближайшие события

Генерация Excel-файлов как zip-архива

Время на прочтение5 мин
Охват и читатели8K
Как известно, файл Excel — это просто набор XML-файлов, определяемых форматом Office Open XML и упакованных в zip-архив, и потому для генерации нового файла помимо специализированных библиотек можно воспользоваться библиотеками для XML и zlib. Как обойтись без внешних зависимостей — под катом.
Читать дальше →

Плагины для системы анализа DRAKVUF. Как обнаруживать вредоносные техники с помощью rpcmon

Время на прочтение11 мин
Охват и читатели2.4K

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

Не так давно мы опубликовали статью, посвященную плагину exploitmon для системы динамического анализа вредоносных файлов DRAKVUF. Главным героем нашего сегодняшнего материала стал еще один плагин в этой системе — rpcmon.

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

Читать подробнее

Лаконичный итератор для декларативного синтаксиса

Время на прочтение7 мин
Охват и читатели2.7K


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

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

Ну и судя по моим наблюдениям Хабр — ума палата, буду рад любым комментариям и предложениям, которые помогут протестировать или улучшить предлагаемое решение.
Читать дальше →

Интуиция Искусственного Интеллекта — миф или реальность?

Время на прочтение3 мин
Охват и читатели3.5K
Одно из самых известных, наиболее интересное и совсем не изученное свойство человеческого разума с давних пор привлекавшее исследователей это интуиция.

Со времен древности философы и математики пытались хоть как как то понять и определить смысл этого могучего нашего свойства.

Еще Платон разделял и выделял нелогическое познание,

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

Гегель указывал на непосредственное знание, и даже Фейербах упомянул о чувственности познания!

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

NetBox как Voice и UC Source of Truth

Время на прочтение9 мин
Охват и читатели7K

Привет Хабр! Доводилось ли вам испытывать трудности с документацией на корпоративные Voice и Unified Communications инфраструктуры?


  • Что это за номер? Откуда он приходит?
  • Этот SIP-транк еще актуален?
  • В каком из этих Excel-файлов нужная мне информация?
  • Есть у нас свободный городской номер для новой услуги?
  • Телефонные_номера_новый_072019(3).xlsx?!

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

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

[Анонс] Code Challenge — недельное соревнование для настоящих разработчиков

Время на прочтение2 мин
Охват и читатели2.2K

image


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


Когда: 6-12 июля
Где: онлайн

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

Баланс в принятии решений. Развилка «рандом-опыт»

Время на прочтение7 мин
Охват и читатели2K
image

Чтобы написать настоящую жизнь не нужно ничего, кроме того, чтобы победить самого себя полностью и целиком. Я продолжаю ее создавать и в последствии напишу большущую статью на эту тему, но, ё-мое, какая же это вещь в себе и как сложно 7 раз отмерить, один отрезать, чтобы потом отмерять еще 77 раз и в итоге не отрезать. Мерять, еще раз мерять! — вот девиз того, кто хочет создать что-то по-настоящему необычное. Кодить куда легче, чем думать. А думать, — это вообще больно и непривычно.
Читать дальше →

Вклад авторов