Как стать автором
Обновить
1.1

Кодобред

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

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

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

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

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

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

image


Simple is better than complex.

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

Читать дальше →
Всего голосов 9: ↑7 и ↓2+8
Комментарии25

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

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

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

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

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

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

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

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

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


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

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

Истории

Красные глаза

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


Привет, представляю вашему вниманию небольшой туториал по оформлению приглашения командной строки с эффектом красных глаз.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+36
Комментарии33

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

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

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

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

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

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

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

Лирика

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

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

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

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

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

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

Время на прочтение1 мин
Количество просмотров13K
Дисклеймер: описанный в статье прием не рекомендуется к приенению. Он описан лишь для демонстрации интересной возможности языка 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)
Читать дальше →
Всего голосов 28: ↑19 и ↓9+18
Комментарии23

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

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

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


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


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

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

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

Примечание


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

Введение


Как вы уже знаете, существует множество сайтов-посредников, которые работают с компаниями для повышения эффективности программы 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
Читать дальше →
Всего голосов 8: ↑7 и ↓1+10
Комментарии1

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

Время на прочтение4 мин
Количество просмотров9K
Скоро Новый Год, думать о серьёзной работе уже не хочется.

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

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



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



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



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

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

Время на прочтение24 мин
Количество просмотров5.8K
PieceofScript — простой язык для написания сценариев автоматического тестирования HTTP JSON API.

PieceofScript позволяет:

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

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

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


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

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

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

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

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



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

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

SlowPochta — мессенджер негарантированной доставки сообщений с неопределенным временем пересылки

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


Проблема избыточной скорости работы


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

О проблеме избыточной скорости работы приложений, а конкретно мессенджеров и пойдет речь в текущей статье.
Читать дальше →
Всего голосов 89: ↑85 и ↓4+81
Комментарии41

Как написать вредное API

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

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


Всем привет!


Я работаю тимлидом команды Integration Development в сервисе онлайн-бронирования отелей Ostrovok.ru и сегодня хотел бы поделиться своим опытом работы с различными API.



Как разработчик системы, работающей с внешними поставщиками, я часто встречаюсь с различными API – чаще всего это SOAP/REST или что-то на них похожее. Однако от работы со многими из них остается впечатление, что их писали, не руководствуясь ни техническими правилами, ни здравым смыслом – как будто бы по книге “Вредные советы” Григория Остера. В данной статье я постараюсь описать такие случаи в стиле “вредных советов” и рассмотрю примеры, связанные с XML. Комментарии и обсуждение приветствуются.

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

Концепции программирования в Scratch

Время на прочтение3 мин
Количество просмотров13K
Арифметическая операция в Scratch между числом и строкой


Многим знаком Scratch – детская среда программирования, обучение в которой обычно сводится к созданию творческих проектов по принципу «от простого к сложному». При этом «классический подход» к изучению программирования (переменные → ветвления → циклы → функции → структуры → объекты → …) в Scratch затруднителен.

Однако изменение последовательности изучения понятий (назовем их концепциями) структурного, объектно- и событийно-ориентированного программирования, их сокрытие за яркими спрайтами и интерактивной анимацией, не означает, что на концепциях не следует делать акцент. Особенно, если целью ставится не столько развитие творческих способностей, сколько обучение программированию.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии9

Кастомизируем select на чистом css

Время на прочтение4 мин
Количество просмотров97K
Как-то вечером я убивал время, читая статьи в интернете, и наткнулся на вот этот хабропост пользователя Cyapa, где расписано, как кастомизировать select на чистом css. В процессе просмотра данного решения нашел несколько весьма неудобных моментов, которые постарался исправить в своем решении этой задачи. Итак, приступим.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии12

Open source: кодоюмор, кодотрюки, НЕ кодобред

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

Старый GLib vs новый Clang


Ковыряясь в разнообразном СПО, я периодически нахожу всякие интересные штуки: иногда это просто смешной комментарий, иногда — нечто остроумное в более широком смысле. Подобные подборки периодически появляются и в «глобальном Интернете», и на Хабре — есть, скажем, широко известный вопрос на StackOverflow про комментарии в коде, а здесь недавно публиковалась подборка забавных названий юрлиц и топонимов. Попробую и я структурировать и выложить то, что постепенно у меня копилось. Под катом вас ждут цитаты из QEMU, ядра Linux, и не только.

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

Портабелизация IDA

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


Совсем небольшое сообщение.

По ряду личных причин я люблю таскать свой инструментарий на флешке или внешнем жёстком диске. Одним из инструментов является IDA 6.8.

После работы с системами я не люблю, когда остаются какие-то хвосты в реестре или в виде файлов. И к сожалению, IDA и её модули (в частности, BinnDiff) этим грешны.

Ну и возникло желание получить полностью портабельный комплекс.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии17