Как стать автором
Обновить
6.7
Рейтинг

Кодобред

Код, за который должно быть стыдно

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Упрощаем создание мелодий C# Console.Beep. Нотная запись по-человечески, PC Speaker синтезатор

.NET *Кодобред C# *GitHub Звук
Из песочницы

У Вас никогда не возникало желание добавить в код сладенькую засушенную изюминку в виде олдскульных бип-мелодий? Или играть музыку щёлкая клавиши на своём ПК с этим самым "ламповым" звучанием PC Speaker? Вот и у меня возникло.

Есть решение: Console.Beep воспроизводит звуки через PC Speaker (в связи с отсутствием системного драйвера начиная с Win 7 кзвук перенаправляется на звуковое устройство по умолчанию, по собственным наблюдениям на семёрке работает отвратно, зато на десятке вполне приемлемо, но возможно дело не только в операционной системе). Стоит уточнить что поддержка перегрузки Console.Beep(Int32, Int32) заявлена только для систем семейства MS Windows.

Для пауз нет ничего проще чем Thread.Sleep.

Всё что нам нужно - это using System и using System.Threading.

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

Читать далее
Всего голосов 17: ↑14 и ↓3 +11
Просмотры 3K
Комментарии 18

Новости

Предложение по электронным голосованиям

Кодобред

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

Читать далее
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 3.9K
Комментарии 79

Автоматически генерируем стикеры для Телеграма из фото плакатов в интернет-магазине

Python *Типографика *Кодобред Data Mining *Алгоритмы *

Всем привет!

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

Давайте автоматизируем
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 3.9K
Комментарии 3

Почему инженеры уровня Senior ненавидят интервью с тестовым кодингом

Кодобред *nix *IT-стандарты *Интервью IT-компании
Перевод

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

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

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

Наконец, наступает день интервью и ваш кандидат появляется в школе. Вы замечаете, что она немного нервничает, что странно, потому что она опытный кандидат и её резюме безупречно. Вы решаете не думать об этом и проводите её в один из ваших классов, чтобы начать собеседование. “Мне бы хотелось, чтобы вы преподали мне урок по теории чисел”. В этот момент её лицо помрачнело. Дело в том, что она не преподавала в 8-м классе вот уже более чем 10 лет. Но вы об этом не были осведомлены. Как профессионал, она пошла к доске и начала урок. Она рассказывает о множителях чисел и о том, как определить делится ли число на 2, 5 и 10. Но видно, как её трудно. Вы просите её рассказать о GСF и LCM, но она просит уточнить, что означают эти аббревиатуры. Вы расцениваете это как дурной знак и объясняете, что имели в виду “наибольший общий делитель” и “наименьшее общее кратное”. В этот момент вы замечаете, что её уверенность в себе поколебалась и чувствуете раздражение в её голосе.

Читать далее
Всего голосов 21: ↑12 и ↓9 +3
Просмотры 7.8K
Комментарии 20

Локализация своих скриптов на BASH, часть 2

Кодобред Системное программирование *Разработка под Linux *Лайфхаки для гиков
Tutorial

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 2.8K
Комментарии 0

Локализация своих скриптов на BASH

Кодобред Системное программирование *Разработка под Linux *Лайфхаки для гиков

Создание меню на BASH — задача сама по себе не сложная: "case тебе в руки и echo в спину". Решая её в очередной раз, мне захотелось добавить возможность отображать текст на других языках. Осталось решить, как сделать сам процесс локализации меню более удобным. Если оно большое, то решение "в лоб" превратит его в громоздкую копипасту. Здесь я хотел бы поделиться тем, как решил эту проблему для себя. Надеюсь, для кого то это будет небезынтересным.



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


Примечание:

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


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


Реализация будет состоять из:


  • буквенного кода языка
  • массива слов
  • преобразователя косвенных ссылок для обращения к массиву
  • обращения к элементам массива
  • создания меню

Теперь рассмотрим подробнее

Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 3.2K
Комментарии 9

Проектирование процессорного устройства «Койяанискаци» шаг за шагом

Кодобред Киберпанк Процессоры Логические игры Электроника для начинающих
Tutorial
В отличии от аналогичных материалов по проектированию процессора с применением справочного материала книги «Код» Чарльза Петцольда и придерживанием некоторых правил, здесь будет изложена позиция проектировщика лишь на собственном опыте. Основной акцент будет направлен на построение автомата программного управления с машинным кодом, который представляется не сухим набором нулей или единиц, но читаем аббревиатурами двухсимвольных слов шестнадцатеричной системы счисления. Здесь машинный код будет придерживаться парадигмы псевдокода, который довольно легко понимаем подготовленным разработчиком и легко исполняем на уровне железа малой ТТЛ-номенклатурой данным целевым проектируемым процессорным устройством.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.8K
Комментарии 3

Сказка про декораторы в Python

Python *Кодобред
Из песочницы

image


Simple is better than complex.

Материал для тех, кто уже слышал про декораторы, но не понимает зачем они нужны и как их использовать в своих проектах.

Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 5K
Комментарии 25

Ищете бесплатные альтернативы cPanel? Держите сразу 7

Блог компании AlexHost Разработка веб-сайтов *Habr Кодобред Разработка под Linux *
image

Приветствую вас, уважаемые читатели и почитатели Хабра!

В этой статье я расскажу вам о 7 популярных альтернативах cPanel. Вы узнаете:

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

Эту статью я начал готовить неделю назад. Вчера и позавчера она даже мне снилась. Я часто вижу вещие сны, и именно потому вы сейчас читаете эти строки (вот сказал сейчас что-то умное, но до конца не понял, что именно).

Говоря о cPanel, стоит отметить, что ее преимущества всё ещё превышают недостатки. К последним относится её платная основа. Как говорится, не заплатишь – не попользуешься. Смотрим тарифы… от 15 баксов в месяц! Хм. Многие даже за сервер в месяц платят меньше.
Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 6.3K
Комментарии 24

Пайплайны и частичное применения функций, зачем это в Python

Ненормальное программирование *Python *Кодобред Функциональное программирование *


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

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

Играючи BASH'им дома

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

image
Читать дальше →
Всего голосов 55: ↑55 и ↓0 +55
Просмотры 9.4K
Комментарии 8

Койяанискаци: Процессорное устройство «акына»

Кодобред Киберпанк Процессоры Логические игры Электроника для начинающих
Из песочницы

Структурная схема «Koyaanisqatsi-CPU»

Структура Койяанискаци
SVG-Файл (актуальная версия)

Лирика

Античные времена знакомы каждому не только бессмертными произведениями от пера Гомера, но и таблицей умножения Пифагора, геометрией Евклида и винтом Архимеда под знаком Пи, которыми человечество научилось пользоваться в полной мере лишь относительно недавно. Если в античности искусством было не только уметь писать стихи и прозу, но и проектировать катапульты или стенобитные орудия, то сейчас существуют жёсткие рамки и разделения, когда вывести очередную самодостаточную красивую и полезную формулу является искусством лишь как формальная игра слов. Математика правит современным миром безраздельно, цинично переплетаясь с миром искусства, нагло вторгаясь хитрейшими вычислениями во все сферы нашего досуга, отдыха и быта, диктуя свои правила и законы, под давлением которых выцветают и пёстрые краски знаменитых шедевров, переходя в ядовитые оттенки полнометражек.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 3K
Комментарии 4

Перестановки. 9-й класс. Задача на четность

Кодобред Математика *
image

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

Но начну издалека. На днях попалась на глаза задачка для средней школы со следующей формулировкой: «Несколько последовательных натуральных чисел выписали в строку в таком порядке, что сумма каждых трёх подряд идущих чисел делится нацело на самое левое число этой тройки. Какое максимальное количество чисел могло быть выписано, если последнее число строки нечётно?»
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 3.6K
Комментарии 36

Альтернативная форма тернарного оператора Python

Ненормальное программирование *Python *Кодобред
Дисклеймер: описанный в статье прием не рекомендуется к приенению. Он описан лишь для демонстрации интересной возможности языка Python


Недавно я открыл для себя альтернативу стандартной конструкции "expression_on_true if predicate else expression_on_false", которую я не встречал в справочниках:

(expression_on_false, expression_on_true)[predicate]

image

Как это работает


  1. В круглых скобках объявляется кортеж из двух элементов.
  2. В квадратных скобках вычисляется значение предиката.
  3. Происходит обращение к кортежу по индексу 1 (если значение предиката True) или 0 (если значение предиката False)
Читать дальше →
Всего голосов 36: ↑27 и ↓9 +18
Просмотры 10K
Комментарии 23

Назад к истокам: рулим компьютером прямо из MBR

Ненормальное программирование *Assembler *Кодобред Системное программирование *Процессоры
🔥 Технотекст 2020
Tutorial

Разворачивал в очередной раз Linux-образ на USB-drive (почему-то им оказался Manjaro, но это совсем другая история), и в голову пробрались странные мысли: BIOS увидел флешку, а дальше-то что? Ну да, там MBR, скорее всего GRUB и… А раз в MBR затесался чей-то кастомный код, значит и простой человек из Адыгеи может запрограммировать что-нибудь на «большом» компьютере, но вне операционной системы.


А так как делать такие штуки на языках высокого уровня слишком жирно, а ассемблеров мы не знаем, будем шпарить прямо на опкодах для 8086.


Читать дальше →
Всего голосов 102: ↑102 и ↓0 +102
Просмотры 22K
Комментарии 77

Тихая разведка. Метод выявления потенциальных уязвимостей WEB

Кодобред
Из песочницы

Примечание


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

Введение


Как вы уже знаете, существует множество сайтов-посредников, которые работают с компаниями для повышения эффективности программы Bug Bounty, в том числе:

  • hackerone.com
  • bugcrowd.com
  • intigriti.com
  • yeswehack.com
  • openbugbounty.org
  • synack.com (privat)

Как это работает ?


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

Что нам нужно для этого?


VPS, желательно Debian (могут использоваться и другие) + хорошее интернет-соединение ( я беру у alexhost.com, VPS 1.5 GB RAM, 1 Core, 10GB SSD всего за 11 евро в год. )

  • sublist3r
  • httprobe
  • webscreenshot
  • header response
  • relative-url-extractor
  • jsfiles extractor
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 5.3K
Комментарии 1

Ёлочка в командной строке

Блог компании Cloud4Y Системное администрирование *Кодобред *nix *
Скоро Новый Год, думать о серьёзной работе уже не хочется.

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

В некоторых дистрибутивах она уже «украшена»:



В других – она серая и неприметная:



А мы можем сделать, например, вот так:



Конечно, на вкус и цвет все фломастеры разные. Если подобная раскраска кажется вам аляповатой и неуместной, то знайте, что данная точка зрения имеет полное право на жизнь. А если вам тоже хочется добавить немного новогоднего настроения, читайте далее небольшую новогоднюю статью от Cloud4Y.
Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 7K
Комментарии 12

Как я разрабатываю и тестирую API со своим «велосипедом» PieceofScript

PHP *Кодобред API *Тестирование веб-сервисов *
PieceofScript — простой язык для написания сценариев автоматического тестирования HTTP JSON API.

PieceofScript позволяет:

  • описывать методы API в формате YAML, с названием метода на почти естественном языке, что удобно для чтения тестов
  • достаточно гибко описывать модели в формате YAML и генерировать по ним рандомные данные
  • писать сложные сценарии вызовов API на легкочитаемом языке с несложным синтаксисом
  • получать результаты тестирования в форматах JUnit и HTML

Я написал этот «велосипед» потому что меня вгонял в уныние интерфейс SoapUI. Хотелось просто и понятно описывать тесты в текстовом редакторе без специального GUI. Кроме того, git плохо переваривает огромный xml-файл, который выдает SoapUI, поэтому тесты на конкретную задачу сложно положить в той же ветке, где сделана сама задача. Интерфейс Postman куда приятнее, но при разработке много времени уходит на составление/изменение там запросов и повторение их в нужной последовательности. Это хотелось автоматизировать. Я изучил еще и другие инструменты тестирования, у каждого был "фатальный недостаток", поэтому в припадке NIH-синдрома я открыл IDE.

Вот что из этого вышло.


Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 4K
Комментарии 0

Как я узнал, что моя виза не готова, сообщением в Slack

Блог компании New Professions Lab Python *Кодобред Открытые данные *DIY или Сделай сам
Tutorial

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



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

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

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