Как стать автором
Обновить
1
@Vjatcheslav3345read⁠-⁠only

Пользователь

Отправить сообщение

Текстуры кода

Время на прочтение3 мин
Количество просмотров13K

Нет, это не опечатка. В этой заметке речь пойдет не о структурах, а именно о текстурах программного кода.
Читать дальше →
Всего голосов 38: ↑25 и ↓13+12
Комментарии14

Пишем DSL в Koltin

Время на прочтение5 мин
Количество просмотров18K

Небольшое вступление


Всем привет! Частенько зависаю на Medium и нахожу уйму полезных статей от зарубежных разработчиков. В один из таких дней искал для себя что-нибудь по DSL в Kotlin и наткнулся на серию статей о том, что такое DSL в Kotlin и как с этим работать. До прочтения я имел поверхностное понятие о DSL, так как совсем изредка сталкивался ними. Во время чтения статьи мне понравилась простота описания и подачи примеров от автора так, что по окончанию прочтения я решил перевести эту пару статей для вас. Разумеется, с одобрения автора :) Ну что ж, начнём.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии6

Автоматный практикум — 2. Пример «Переправа», математические преобразования ТЗ при ОА

Время на прочтение14 мин
Количество просмотров6.8K
Велосипед изобрести — не речку переплыть. Задача «Переправа» поднималась дважды за пару месяцев, но я хочу отметить вот это решение, поскольку именно оно иллюстрирует удачный предметный взгляд, и даёт модель удачного ОА, которую остаётся только логически развить, что в итоге даст более совершенное решение, чем при иных взглядах на проблему.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии0

Программирование на телефоне используя эмулятор терминала Termux

Время на прочтение2 мин
Количество просмотров148K
Приветствую читателей! В этой статье я расскажу о том, как можно, имея android телефон, писать программы. Говорю сразу — root права не нужны.

Что нам понадобится?


Первое, что нам понадобится — андроид телефон со установленным на него приложением Termux (есть в Google Play). Для полноценной работы с терминалом, нам нужно достаточно памяти. У меня с десятками установленных пакетов приложение занимает 1.5 ГБ памяти.
Так же, для комфортного кодинга желательно, чтобы телефон был с поддержкой OTG, и у вас была клавиатура с подключением по USB, чтобы писать код на клавиатуре (куда удобнее). Если уж нет этого, то качаем клавиатуру Hacker's Keyboard. В ней есть клавиша Ctrl, что нам важно.

Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии35

Виртуальная пентест лаборатория

Время на прочтение4 мин
Количество просмотров10K

Постановка проблемы



Некоторое время назад я решил актуализировать свои знания в пентесте (pentest).

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

Практическая часть должна быть в виде пентест лаборатории с блэк-джеком и непотребствами из нескольких машин с различными уязвимостями.
It all began with this white rabbit...
Всего голосов 6: ↑6 и ↓0+6
Комментарии8

Тестирование LLVM

Время на прочтение9 мин
Количество просмотров8.1K
Продолжение. Начало здесь.

Введение


Когда программа достигает определённого размера, можно гарантировать, что она слабо специфицирована и не может быть полностью понята одним человеком. Это подтверждается по много раз в день людьми, которые слабо осведомлены о работе друг друга. Программа имеет множество зависимостей, включая компилятор, операционную систему, библиотеки, каждая из которых содержит свои собственные баги, и всё это обновляется время от времени. Более того, ПО обычно должно работать на нескольких разных платформах, каждая из которых имеет свои особенности. Принимая во внимание большое количество возможностей для неверного поведения, почему вообще мы можем ожидать, что наша большая программа будет работать так, как ожидается? Одна из самых главных вещей, это тестирование. Таким образом, мы можем убедиться, что ПО работает так, как нужно в любой важной для нас конфигурации и платформе, и когда оно не работает, найдутся умные люди, которые смогут отследить и устранить проблему.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

Разбираемся, что же там нового открыли в задаче о ферзях

Время на прочтение6 мин
Количество просмотров71K

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


image
Сможете поставить ещё шесть? А найти все решения?
(картинка из статьи)


Далее, к сожалению, произошла какая-то совершенно невразумительная история из цепочки вот таких вот превращений:



Стоит отметить, что пять наугад открытых ссылок на русском ещё меньше проясняли картину происходящего.


Я тут подумал — надо бы кому-то эту странную цепочку прервать и нормальным языком изложить суть событий.


О чём пойдёт речь:


Читать дальше →
Всего голосов 84: ↑84 и ↓0+84
Комментарии47

Путеводитель по исходникам LLVM

Время на прочтение6 мин
Количество просмотров8K
В моём углубленном курсе компиляторов прошлой осенью мы провели некоторое время, изучая дерево исходников LLVM. Миллион строк кода на C++ выглядят пугающе, но я нахожу это интересным упражнением, и, по крайней мере, некоторые студенты с этим согласны, и я подумал, что я попытаюсь написать что-то подобное. Мы будем использовать LLVM 3.9, но предыдущие (и, возможно, будущие) релизы не сильно отличаются.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Небольшое расхождение

Время на прочтение9 мин
Количество просмотров23K


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

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

positions of 394 raindrops on a tabletop


Повторю вопрос: выглядит ли этот паттерн как результат случайного процесса?
Читать дальше →
Всего голосов 72: ↑71 и ↓1+70
Комментарии27

Автоматный практикум — 1. Пример «Дисплей», разработка ОА и УА

Время на прочтение28 мин
Количество просмотров6.4K
Тесты в предыдущей статье убедительно показали высокую эффективность «автоматной» реализации примера «Дисплей» по сравнению с условно названной «неавтоматной» версией. Вкратце итог: обе реализации автоматные, но разница в эффективности многократна и глубинная причина видится в том, что вариант А1 («автоматный») изначально проектировался как автомат, а вариант А2 («неавтоматный») нет. Не столько автоматная реализация, сколько автоматное проектирование является основой высокой эффективности. Для простых алгоритмов автоматные реализации получаются сами собой. Есть смысл говорить о том, что автоматное программирование, это не столько реализация программы в виде конечного автомата, сколько автоматное проектирование, фундаментом которого является конструктивная декомпозиция. Я несколько раз касался темы автоматного проектирования и конструктивной декомпозиции, но чтобы раскрыть эту тему нужны практические примеры. В этой и следующих нескольких статьях я проведу практикум, покажу процесс автоматного проектирования, пытаясь по возможности приводить ход рассуждений присущих автоматному проектированию.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии24

Сервисы для проверки навыков тестирования на проникновение

Время на прочтение3 мин
Количество просмотров88K


В прошлом топике я опубликовал обзор дистрибутива PentestBox со ссылками и описанием входящих в него утилит. Надеюсь вам хватило времени ознакомиться с ними и изучить функционал. Сегодня я предлагаю вам несколько сервисов для тестирования своих навыков на практике. Это специализированные сервисы, абсолютно легальные и позволяющие всем желающим проверить свои знания и умения.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии3

Английский для начинающих: тексты и книги, чтобы прокачать навыки чтения

Время на прочтение2 мин
Количество просмотров29K

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

Книги


PageTurners
Ценность:

  • адаптированные мини-книги;
  • озвучка;
  • разбивка по уровням и темам.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Концепция шизофрении умирает

Время на прочтение6 мин
Количество просмотров73K
image

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

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

Частью проблемы оказалась сама концепция шизофрении.

Доказательства того, что шизофрения – это отдельная болезнь, оказались серьёзно подорваны. Точно так же, как у нас теперь есть концепция расстройств аутистического спектра, утверждают, что психоз (с ним обычно связывают тревожные галлюцинации, бред и путаные мысли) тоже существует в рамках континуума и проявляется в разных количествах. Шизофрения – нижний край спектра этого континуума ощущений.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии152

Свидание с ʻOumuamua. Впервые открыт межзвёздный объект в Солнечной Системе

Время на прочтение5 мин
Количество просмотров24K
19 октября 2017 года при анализе данных телескопа Pan-STARRS произошло долгожданное открытие — первый межзвёздный объект в Солнечной Системе. Поиску межзвёздных малых тел (комет и астероидов) были посвящены целые десятилетия, множество статей, где рассчитывались верхние пределы на их количество в единице объёма Галактики. И вот — наконец.

image
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии105

Прием сверхдлинных радиоволн в домашних условиях

Время на прочтение3 мин
Количество просмотров53K
Сверхдлинные радиоволны — это целый мир, наполненный множеством сигналов — сфериками и свистами, генерируемыми молниями, возможно, за тысячи километров от места приема, привычными «точками» и «тире» морзянки, сигналами точного времени и цифровой передачи данных:

image

Сверхдлинные волны (СДВ) (ранее применялся термин «ультрадлинные волны» (УДВ)) — сигналы с частотой менее 30 кГц (по отечественной классификации). За рубежом для этого диапазона часто используются аббревиатуры VLF (very low frequency) и ELF (extremely low frequency), причем в разных источниках конкретные полосы частот для этих диапазонов различаются.

Немножко истории
Первый мощный СДВ-передатчик был введен в эксплуатацию в 1943 году в Германии, а «пользователями» были безбашенные (вряд ли в той войне был еще один род войск с таким процентным уровнем потерь) ребята из подводного флота Кригсмарине. Вот так выглядела СДВ-антенна на крыше рубки U-Boot:

image


Порог вхождения в этот мир совсем невысокий — требуется антенна, усилитель и ноутбук с соответствующим программным обеспечением. Далее я расскажу о своей немудреной снасти для приема на СДВ.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии109

Незадача коммивояжера и красный октябрь

Время на прочтение14 мин
Количество просмотров16K

Главнокоммивояжер Аристарх стоял у окна и с лёгкой грустью во взгляде провожал стаю улетающих на юг комаров. Осень. Конец сезона. Пора дубинки, полюбившиеся жителям города Н в качестве средства самозащиты от кровососов и предмета статуса (известно, некусаный горожанин — милее надкушенного), забирать из оружейных лавок и завозить на их место рогатины от снежных троллей.


image

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


Лето жаркое выдалось, потому сезон затянулся — мысль поселилась в голове Аристарха — годовой ритм миграции крылатых определенно укладывался в какие-то предопределённые природой рамки. А что если между продажами и погодой есть эта, как её, корреляция?


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

Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии20

Альманах пакетных менеджеров Linux

Время на прочтение4 мин
Количество просмотров50K

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


Управление пакетами

Далее следует джентльменский набор необходимых для повседневной рутины команд основных Linux дистрибутивов: установить, обновить и удалить пакет, накатить обновления, проверить зависимости, установить принадлежность файла пакету и пр.

Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии44

Моделирование планеты маргариток

Время на прочтение10 мин
Количество просмотров13K

Моделирование планеты маргариток


  1. Лирика
  2. Описание интерфейса
  3. Декомпозиция
  4. Модель
  5. Логика

1. Лирика


Давным-давно, не помню где, я узнал об одном удивительном эксперименте, начало описания было такое: Представьте себе планету, примерно такую, как Земля, которая вращается вокруг звезды примерно такой, как Солнце. На планете есть жизнь, но не очень разнообразная — всего два вида маргариток — черные и белые. Представили? Какой заход! Автор красавчик, почти Экзюпери.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии16

Астрономия за компьютером

Время на прочтение4 мин
Количество просмотров34K
Вот и начался новый учебный год. Ученики и студенты хлынули в двери научных заведений. А учителя и преподаватели приготовились их встречать. Но вот, уже прошли первые дни, радость (я ведь не ошибаюсь?) встречи немного поутихла и наступили обыкновенные будни. Преподаватели с одной стороны, студенты и ученики с другой. Цепочкой, которая их объединяет, есть изучаемый предмет, личностный характер как представителей одной, так и другой стороны, их харизматичность, коммуникационные качества и так далее. И если характер, и иные качественные особенности индивидуума разные в зависимости от человека, то предмет служит чем-то обобщающим. И интересно, качественно преподнеся его ученику (студенту), учитель (преподаватель) устанавливает прочную связь с аудиторией. С другой стороны аудитория интересности «кушает» с удовольствием.
Соответственно захотелось остановиться на преподавании интересной и древнейшей науки – астрономии. Вернее, даже не на преподавании, как о таком, а о его разнообразии. А как можно разнообразить преподавание в ХХІ веке? Ну конечно – используя программное обеспечение и современные гаджеты.
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии26

Отличие DAX и MDX

Время на прочтение3 мин
Количество просмотров13K
Меня часто спрашивают об основных отличиях DAX и MDX или в целом о различии табличной и многомерной модели.

С точки зрения выражения или языка запросов, одно из наиболее важных различий лежит во внутренней основе обоих подходов.

В кубе, для адресации ячейки в пространстве, у нас есть понятие кортежа. Ось в кортеже устанавливает координаты. Если у нас есть единственный кортеж, то результат — содержание соответствующей ячейки в кубе. Поскольку у атрибутов куба есть элемент All, который служит значением по умолчанию (в большинстве случаев), если атрибут не был включен в кортеж, то мы выполняем агрегацию также, как если бы он там был. Например, следующий кортеж возвращает (агрегированный) объем продаж за 2013 год

(Date.Calendar.[Calendar Year].&[2013], Measures.[Internet Sales Amount])
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность