Кодобред
Код, за который должно быть стыдно
Сказка про декораторы в Python
Simple is better than complex.
Материал для тех, кто уже слышал про декораторы, но не понимает зачем они нужны и как их использовать в своих проектах.
Ищете бесплатные альтернативы cPanel? Держите сразу 7
Приветствую вас, уважаемые читатели и почитатели Хабра!
В этой статье я расскажу вам о 7 популярных альтернативах cPanel. Вы узнаете:
- Почему бесплатные панели управления web-сервером нередко оказываются лучше, чем платные аналоги
- Какие возможности готовы предложить Вам бесплатные панели прямо здесь и сейчас
- Какие из этих программ смогут совершить настоящий прорыв уже в ближайшем будущем.
Эту статью я начал готовить неделю назад. Вчера и позавчера она даже мне снилась. Я часто вижу вещие сны, и именно потому вы сейчас читаете эти строки (вот сказал сейчас что-то умное, но до конца не понял, что именно).
Говоря о cPanel, стоит отметить, что ее преимущества всё ещё превышают недостатки. К последним относится её платная основа. Как говорится, не заплатишь – не попользуешься. Смотрим тарифы… от 15 баксов в месяц! Хм. Многие даже за сервер в месяц платят меньше.
Пайплайны и частичное применения функций, зачем это в Python
Одно из главных достоинств Python — его выразительность. Функциональные средства языка позволяют лаконично описывать преобразования над данными. На мой взгляд в Python не хватает некоторых инструментов, которые помогли бы удобнее описывать преобразования данных и дополнить функциональную составляющую языка, в частности "пайплайны функций" и их частичное применение. Поэтому в этом посте я лью воду о возможности и необходимости данных средств с экспериментами по их реализации. Пришёл во многом за критикой. Приятного чтения!
Истории
Красные глаза
Привет, представляю вашему вниманию небольшой туториал по оформлению приглашения командной строки с эффектом красных глаз.
Играючи BASH'им дома
Койяанискаци: Процессорное устройство «акына»
Структурная схема «Koyaanisqatsi-CPU»
SVG-Файл (актуальная версия)
Лирика
Античные времена знакомы каждому не только бессмертными произведениями от пера Гомера, но и таблицей умножения Пифагора, геометрией Евклида и винтом Архимеда под знаком Пи, которыми человечество научилось пользоваться в полной мере лишь относительно недавно. Если в античности искусством было не только уметь писать стихи и прозу, но и проектировать катапульты или стенобитные орудия, то сейчас существуют жёсткие рамки и разделения, когда вывести очередную самодостаточную красивую и полезную формулу является искусством лишь как формальная игра слов. Математика правит современным миром безраздельно, цинично переплетаясь с миром искусства, нагло вторгаясь хитрейшими вычислениями во все сферы нашего досуга, отдыха и быта, диктуя свои правила и законы, под давлением которых выцветают и пёстрые краски знаменитых шедевров, переходя в ядовитые оттенки полнометражек.Перестановки. 9-й класс. Задача на четность
Май выдался холодным, отопление отключили, а вычислительные (и обогревательные) мощности какие-никакие, а простаивают. Так почему бы не загрузить их чем-нибудь
Но начну издалека. На днях попалась на глаза задачка для средней школы со следующей формулировкой: «Несколько последовательных натуральных чисел выписали в строку в таком порядке, что сумма каждых трёх подряд идущих чисел делится нацело на самое левое число этой тройки. Какое максимальное количество чисел могло быть выписано, если последнее число строки нечётно?»
Альтернативная форма тернарного оператора Python
Недавно я открыл для себя альтернативу стандартной конструкции "expression_on_true if predicate else expression_on_false", которую я не встречал в справочниках:
(expression_on_false, expression_on_true)[predicate]
Как это работает
- В круглых скобках объявляется кортеж из двух элементов.
- В квадратных скобках вычисляется значение предиката.
- Происходит обращение к кортежу по индексу 1 (если значение предиката True) или 0 (если значение предиката False)
Назад к истокам: рулим компьютером прямо из MBR
Разворачивал в очередной раз Linux-образ на USB-drive (почему-то им оказался Manjaro, но это совсем другая история), и в голову пробрались странные мысли: BIOS увидел флешку, а дальше-то что? Ну да, там MBR, скорее всего GRUB и… А раз в MBR затесался чей-то кастомный код, значит и простой человек из Адыгеи может запрограммировать что-нибудь на «большом» компьютере, но вне операционной системы.
А так как делать такие штуки на языках высокого уровня слишком жирно, а ассемблеров мы не знаем, будем шпарить прямо на опкодах для 8086.
Тихая разведка. Метод выявления потенциальных уязвимостей 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
Ёлочка в командной строке
Все стараются что-нибудь украсить к празднику: дом, офис, рабочее место… Давайте и мы что-нибудь украсим! Например, приглашение командной строки. В какой-то мере командная строка – тоже рабочее место.
В некоторых дистрибутивах она уже «украшена»:
В других – она серая и неприметная:
А мы можем сделать, например, вот так:
Конечно, на вкус и цвет все фломастеры разные. Если подобная раскраска кажется вам аляповатой и неуместной, то знайте, что данная точка зрения имеет полное право на жизнь. А если вам тоже хочется добавить немного новогоднего настроения, читайте далее небольшую новогоднюю статью от Cloud4Y.
Как я разрабатываю и тестирую API со своим «велосипедом» PieceofScript
PieceofScript позволяет:
- описывать методы API в формате YAML, с названием метода на почти естественном языке, что удобно для чтения тестов
- достаточно гибко описывать модели в формате YAML и генерировать по ним рандомные данные
- писать сложные сценарии вызовов API на легкочитаемом языке с несложным синтаксисом
- получать результаты тестирования в форматах JUnit и HTML
Я написал этот «велосипед» потому что меня вгонял в уныние интерфейс SoapUI. Хотелось просто и понятно описывать тесты в текстовом редакторе без специального GUI. Кроме того, git плохо переваривает огромный xml-файл, который выдает SoapUI, поэтому тесты на конкретную задачу сложно положить в той же ветке, где сделана сама задача. Интерфейс Postman куда приятнее, но при разработке много времени уходит на составление/изменение там запросов и повторение их в нужной последовательности. Это хотелось автоматизировать. Я изучил еще и другие инструменты тестирования, у каждого был "фатальный недостаток", поэтому в припадке NIH-синдрома я открыл IDE.
Вот что из этого вышло.
Ближайшие события
Как я узнал, что моя виза не готова, сообщением в Slack
Пост актуальный для майских праздников. 6 недель назад я подал документы, чтобы получить визу в Ирландию. Вылет запланирован на 30 апреля. Существует сайт посольства, на котором публикуются списки решений по визам. Они это делают по понедельникам и четвергам. И вот я сижу в воскресенье, 28 апреля, по моей визе решения еще нет. И дальнейшие мои действия в понедельник зависят от того, будет ли мое заявление в новом отчете или нет. Если нет, то надо будет ехать в посольство и разбираться. Если есть, то дергать визовый центр. Сидеть и обновлять страничку целый день в понедельник казалось унылым времяпрепровождением, поэтому я написал скрипт на Python.
Disclaimer. Я не программист, но умею программировать. Это значит, что я не могу написать изящный и эффективный код, но я могу заставить эту шарманку делать то, что мне от нее нужно.
SlowPochta — мессенджер негарантированной доставки сообщений с неопределенным временем пересылки
Проблема избыточной скорости работы
Несмотря на статьи о том, что всё плохо и не оптимизировано, наверное вы могли заметить, что всё вокруг стало как-то быстро, даже слишком. Куда делись те душевные деньки, когда между загрузками страниц мы могли позволить себе заварить чашечку чая? Скоро во время очередного приступа прокрастинации не получится оправдаться тем, что что-то компилируется или рендерится! Все станет очень быстрым.
О проблеме избыточной скорости работы приложений, а конкретно мессенджеров и пойдет речь в текущей статье.
Как написать вредное API
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Всем привет!
Я работаю тимлидом команды Integration Development в сервисе онлайн-бронирования отелей Ostrovok.ru и сегодня хотел бы поделиться своим опытом работы с различными API.
Как разработчик системы, работающей с внешними поставщиками, я часто встречаюсь с различными API – чаще всего это SOAP/REST или что-то на них похожее. Однако от работы со многими из них остается впечатление, что их писали, не руководствуясь ни техническими правилами, ни здравым смыслом – как будто бы по книге “Вредные советы” Григория Остера. В данной статье я постараюсь описать такие случаи в стиле “вредных советов” и рассмотрю примеры, связанные с XML. Комментарии и обсуждение приветствуются.
Концепции программирования в Scratch
Многим знаком Scratch – детская среда программирования, обучение в которой обычно сводится к созданию творческих проектов по принципу «от простого к сложному». При этом «классический подход» к изучению программирования (переменные → ветвления → циклы → функции → структуры → объекты → …) в Scratch затруднителен.
Однако изменение последовательности изучения понятий (назовем их концепциями) структурного, объектно- и событийно-ориентированного программирования, их сокрытие за яркими спрайтами и интерактивной анимацией, не означает, что на концепциях не следует делать акцент. Особенно, если целью ставится не столько развитие творческих способностей, сколько обучение программированию.
Кастомизируем select на чистом css
Open source: кодоюмор, кодотрюки, НЕ кодобред
Ковыряясь в разнообразном СПО, я периодически нахожу всякие интересные штуки: иногда это просто смешной комментарий, иногда — нечто остроумное в более широком смысле. Подобные подборки периодически появляются и в «глобальном Интернете», и на Хабре — есть, скажем, широко известный вопрос на StackOverflow про комментарии в коде, а здесь недавно публиковалась подборка забавных названий юрлиц и топонимов. Попробую и я структурировать и выложить то, что постепенно у меня копилось. Под катом вас ждут цитаты из QEMU, ядра Linux, и не только.
Портабелизация IDA
Совсем небольшое сообщение.
По ряду личных причин я люблю таскать свой инструментарий на флешке или внешнем жёстком диске. Одним из инструментов является IDA 6.8.
После работы с системами я не люблю, когда остаются какие-то хвосты в реестре или в виде файлов. И к сожалению, IDA и её модули (в частности, BinnDiff) этим грешны.
Ну и возникло желание получить полностью портабельный комплекс.
Вклад авторов
vaniacer 423.6velon 319.0Andrey2008 252.0kesn 228.0tagir_valeev 213.0nmivan 177.0KukarekusUltra 136.0iBear 114.0MichaelSkirda 102.0dmlogv 102.0