- 1
Продолжаем форс Перла
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Продолжаем форс Перла
Нечто запредельно пиздатое в перле — это книга Ларри, написанная с охуенным чувством юмора и предельно чистым и умным языком, как будто сам стиль книги и то, с каким Ларри мы через этот текст знакомимся — является одним из образцов применения философии перла на практике. Роман Кашицин, царствие ему небесное, ценил; есть ещё среди нас ценители?
0
Илья Перекопский, вице-президент мессенджера «Телеграм», будет на встрече премьера Михаила Мишустина с представителями IT-индустрии в Иннополисе, Казань
Замруководителя фракции "Справедливая Россия" Федот Тумусов планирует организовать в Госдуме круглый стол с онлайн-участием основателя Telegram Павла Дурова
ДА НЕ ПЕРЕДАВАЛ Я КЛЮЧИ
https://roem.ru/08-07-2020/282610/tlg-to-russia-with-love/
https://ria.ru/20200710/1574142863.html
0
Global Request Parameters
Name Required? Description
ClientIp Yes An IP address of the server from which our system receives API calls (only IPv4 can be used).
Зашел почитать API namecheap. Какая защита от перехвата данных аутентификации злоумышлеником )))
https://www.namecheap.com/support/api/global-parameters/
+1
```rust
impl actix_web::FromRequest for Token {
type Error = ApiError;
type Future = Pin<Box<dyn Future<Output = Result<Self, Self::Error>>>>;
type Config = ();
fn from_request(req: &actix_web::HttpRequest, _: &mut actix_web::dev::Payload) -> Self::Future {
match req.extensions().get::<Option<Self>>().map(Clone::clone) {
Some(Some(v)) => Box::pin(async { Ok(v) }),
None | Some(None) => {
let header = req.headers().get("Authorization").map(Clone::clone);
Box::pin(
web::Data::<Pool>::extract(req)
.map_err(ApiError::from)
.and_then(move |pool| {
async move {
let header = header.ok_or(ApiError::authorization_required())?;
let auth = header.to_str()?;
let uuid = Uuid::parse_str(auth)
.map_err(|_| ApiError::authorization_bad_token())?;
let (_, token) = Self::find(&uuid, pool.get_conn().await?).await?;
let token = token.ok_or(ApiError::authorization_bad_token())?;
Ok(token)
}
})
.boxed_local()
)
}
}
}
}
Было принято решение создать Authorization middleware, который при каждом запросе авторизировал пользователя, если есть нужный хидер. В связи с тем, что некоторые роуты достают модель через ручной экстрактор, пришлось дописать эту хуйню (Второе условие никогда не будет выполнена вообще судя по всему).
−2
Беглый клиент (рассказ старого брадобрея).
Странная таки оказия приключилась со мной.
В полдевятого я, как обычно, пришел в свою цирюльню и принял первого клиента - пожилого китайца, с косичками за спиной и на подбородке.
-Пожалуйте, господин, - я усадил его в кресло, гладко выбрил, поправил косичку и пошел за одеколоном.
Когда я принес пульверизатор то увидел, что кресло опустело; хитрый китаец воспользовался моим отсутствием и вероломно
ускользнул.
-Ай, мерзавец, а платить?..
Я кое-как выскочил - сил нет в старых ногах, но скоро догнал беглеца (он не очень-то и спешил), поравнялся с ним и тронул за рукав.
Китаец остановился и спокойно обернулся. На лице у него была широкая улыбка. Я потребовал платы.
Тогда китаец перестал улыбаться и взвизгнул на ломаном немецком языке: "не нарушай дистанцию!", - и поднял руки.
Тут же заверещал свисток... Ко мне подошел полицай и велел отойти от китайца.
Пришлось мне уйти ни с чем... Ненавижу узкоглазых!..
Мда. Пиздец, что уж тут скажешь.
0
#lang racket
(require racket/syntax)
(define-syntax (_total stx)
(syntax-case stx ()
[(_total item price amount)
(let ([make-id
(lambda (template . ids)
(let ([str (apply format template (map syntax->datum ids))])
(datum->syntax stx (string->symbol str))))])
(with-syntax ([total-item-price (make-id "~a-price" #'item)]
)
#'(begin
(total-item-price price amount)
)))]
)
)
(define-syntax-rule (total item price amount)
(cond [(eq? item 'apple) (_total apple price amount)]
[(eq? item 'grape) (_total grape price amount)]
[else (_total general price amount)]
)
)
(define (apple-price price amount)
(* price (- amount (/ amount 2)))
)
(define (grape-price price amount)
(* price (if (> amount 1) (/ (* amount 4) 5) amount))
)
(define (general-price price amount)
(* amount price)
)
(define apples '(apple 10 4))
(define grapes '(grape 20 3))
(define other '(peach 30 1))
(foldl (λ (lst result)
(+ result (total (car lst) (cadr lst) (caddr lst)))
)
0
(list apples grapes other)
)
Когда у тебя есть macroмолоток, всё остальное кажется гвоздями.
0
https://www.facebook.com/FBE/videos/258830962097696/UzpfSTExNzQ4ODY0MjI6ODAzNDE1NzEwMDYyMjcw/
+1
namespace Test;
/**
* MyTest (test/mytest.zep)
*/
class MyTest
{
public function someMethod()
{
/* Variables must be declared */
var myArray;
int i = 0, length;
/* Create an array */
let myArray = ["hello", 0, 100.25, false, null];
/* Count the array into a 'int' variable */
let length = count(myArray);
/* Print value types */
while i < length {
echo typeof myArray[i], "\n";
let i++;
}
return myArray;
}
}
Язык программирования «Зефир».
https://docs.zephir-lang.com/0.12/en/introduction
0
https://sun1-93.userapi.com/SSu8G4XtIyohtocFhPi9jy7aPkBla7N_ZPnNdw/z5IDchObVcA.jpg
Тушенка из русни
+1
http://lhohq.info/
http://www.lhohq.info/lhohq_android.html
http://octagon.lhohq.info/exploit-nomophobia.html
http://phonograph.lhohq.info/
Безумбреции / шизофреции с легким оттенком конардио
Давненько не появлялось хорошего соперника DBУNOГUM