- 1
var result = IsConnected && dataMax != "" ? true : !IsConnected && dataMin != "" ? true : false;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
var result = IsConnected && dataMax != "" ? true : !IsConnected && dataMin != "" ? true : false;
Обфускация условия говнокодом!
0
import json
a = {}
b = {}
for i in xrange(128): a[str(i)] = i
for i in a: b[i] = a[i]
print a == b
print json.dumps(a) == json.dumps(b)
Результат:
True
False
Почему не True True ?
0
https://github.com/moscow-technologies/blockchain-voting/tree/voting2020/elec2020/ballot
https://github.com/moscow-technologies/blockchain-voting/blob/voting2020/elec2020/ballot/public/js/forms/mgik/LeavingPageCheckerInit.js
https://github.com/moscow-technologies/blockchain-voting/blob/voting2020/elec2020/frontend-library-source/crypto-lib/src/util/numberFromLeBytes.js
Как и всё в этой стране, обнуление написано на PHP, jQuery и (да-да) местами Rust, а управляется supervisord, ибо для редактирования юнитов systemd нужно sudo, который не дали.
Какой блокчейн )))
+2
The count is coded into a one-octet number using the following
formula:
#define EXPBIAS 6
count = ((Int32)16 + (c & 15)) << ((c >> 4) + EXPBIAS);
The above formula is in C, where "Int32" is a type for a 32-bit
integer, and the variable "c" is the coded count, Octet 10.
Стандарт PHGP, набайтоёблено где не ждали. Казалось бы, в чем сложность отвести один октет на базу, а другой на сдвиг? Но сишнику проще даже не объяснить происходящее в стандарте, а просто кинуть код, типа, и так понятно же.
https://tools.ietf.org/html/rfc4880#page-12
+4
import random
def get_advice():
ADVICES_VERBS = [
'выключите',
'включите',
'перезагрузите',
'проверьте',
'переустановите',
'запустите',
'закройте',
]
ADVICES_NOUNS = [
['компьютер'],
['роутер'],
['программу'],
['средство', 'восстановления', 'Windows'],
['браузер'],
['сайт'],
['панель', 'управления'],
['антивирус'],
]
ADVICES_PREPS = [
['а', 'затем'],
['после', 'чего'],
['и'],
['а', 'если', 'это', 'не', 'сработает,', 'то'],
]
verbs = random.sample(ADVICES_VERBS, 2)
nouns = random.sample(ADVICES_NOUNS, 2)
prep = random.choice(ADVICES_PREPS)
return '{} {}{}{} {} {}.'.format(
verbs[0].capitalize(),
' '.join(nouns[0]),
(', ' if prep[0] != 'и' else ' '),
' '.join(prep),
verbs[1],
' '.join(nouns[1])
)
Универсальный ИИ-помощник для решения технических проблем, версия 0.0.1.
0
# https://www.opennet.ru/opennews/art.shtml?num=53248
# Гвидо ван Россум предложил включить в Python операторы для сопоставления с образцом
# Отмечается, что предложенные операторы позволят улучшить читаемость кода,
# упростят сопоставление произвольных Python-объектов и отладку, а также повысят
# надёжность кода благодаря возможности расширенной статической проверки типов.
def http_error(status):
match status:
case 400:
return "Bad request"
case 401|403|404:
return "Not allowed"
case 418:
return "I'm a teapot"
case _:
return "Something else"
# Например, возможна распаковка объектов, кортежей, списков и произвольных последовательностей
# для привязки переменных на основе имеющихся значений. Допускается определение вложенных
# шаблонов, использование в шаблоне дополнительных условий "if", применение масок ("[x, y, *rest]"),
# маппинга связок ключ/значение (например, {"bandwidth": b, "latency": l} для извлечения значений
# "bandwidth" и "latency" и словаря), извлечения подшаблонов (оператор ":="), использования именованных
# констант в шаблоне. В классах возможна настройка поведения при сопоставлении при помощи метода "__match__()".
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int
def whereis(point):
match point:
case Point(0, 0):
print("Origin")
case Point(0, y):
print(f"Y={y}")
case Point(x, 0):
print(f"X={x}")
case Point():
print("Somewhere else")
case _:
print("Not a point")
match point:
case Point(x, y) if x == y:
print(f"Y=X at {x}")
case Point(x, y):
print(f"Not on the diagonal")
RED, GREEN, BLUE = 0, 1, 2
match color:
case .RED:
print("I see red!")
case .GREEN:
print("Grass is green")
case .BLU
E:
print("I'm feeling the blues :(")
Какой прогресс)))
Ждем когда добавят цикл for как в сишке
0
# while 1 через for
shits = ['говно']
for shit in shits:
print('Говно')
shits.append('говно')
Прост while 1 через for
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/
0
def is_tuple(node: Node) -> bool:
match node:
case Node(children=[LParen(), RParen()]):
return True
case Node(children=[Leaf(value="("), Node(), Leaf(value=")")]):
return True
case _:
return False
https://www.python.org/dev/peps/pep-0622/
+1
// https://habr.com/ru/company/oleg-bunin/blog/493242/
// Алгоритмы быстрой обработки HTTP-строк
// .....
// Как устроен парсер? Мы, как nginx, определяем массив байт и по нему
// проверяем входные данные — это пролог функции. Здесь мы работаем
// только с короткими сроками, используем likely, потому что branch misprediction
// для коротких строк болезненнее, чем для длинных. Выносим этот код наверх.
// У нас есть ограничение в 4 из-за последней строчки — мы должны написать
// достаточно мощное условие. Если будем обрабатывать больше 4 байт, то условие
// будет тяжелее, а код медленнее.
static const unsigned char uri_a[] __attribute__((aligned(64))) = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
...
// Branch misprediction is more crucial for short strings
if (likely(len <= 4)) {
switch (len) {
case 0:
return 0;
case 4:
c3 = uri_a[s[3]];
// fall through to process other chars
case 3:
c2 = uri_a[s[2]];
case 2:
c1 = uri_a[s[1]];
case 1:
c0 = uri_a[s[0]];
}
return (c0 & c1) == 0 ? c0 : 2 + (c2 ? c2 + c3 : 0);
}
// Основная петля и большой хвост. В основном цикле обработки мы делим
// данные: если они достаточно длинные, обрабатываем по 128, 64, 32 или
// по 16 байт. Имеет смысл обрабатывать по 128: мы параллельно используем
// несколько каналов процессора (несколько pipeline) и суперскалярность процессора.
for ( ; unlikely(s + 128 <= end); s += 128) {
n = match_symbols_mask128_c(__C.URI_BM, s);
if (n < 128)
return s - (unsigned char *)str + n;
}
if (unlikely(s + 64 <= end)) {
n = match_symbols_mask64_c(__C.URI_BM, s);
if (n < 64)
return s - (unsigned char *)str + n;
s += 64;
}
if (unlikely(s + 32 <= end)) {
n = match_symbols_mask32_c(__C.URI_BM, s);
if (n < 32)
return s - (unsigned char *)str + n;
s += 32;
}
if (unlikely(s + 16 <= end)) {
n = match_symbols_mask16_c(__C.URI_BM128, s);
if (n < 16)
return s - (unsigned char *)str + n;
s += 16;
}
... пиздец. Там еще в той статье пишут, что CloudFlare через AVX2 какое-то говно оптимизируют в говнопаринге http запросов.
Поэтому я за бинарную сериализацию, без всей этой хуйни человекочитаемой