- 1
- 2
- 3
private static String getMargin(final int size) {
return " ".substring(0, 6 * size);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+5
private static String getMargin(final int size) {
return " ".substring(0, 6 * size);
}
Как создать пустую строку с заданной длиной...
0
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
int main(void)
{
uint32_t uint32max = UINT32_MAX;
int32_t int32_minus_one = -1;
printf("uint32_max = %" PRIu32 "\n", uint32max);
printf("int32_minus_one = %" PRIi32 "\n", int32_minus_one);
if (uint32max > int32_minus_one)
{
puts("uint32max > int32_minus_one");
}
else if (uint32max < int32_minus_one)
{
puts("uint32max < int32_minus_one");
}
else
{
puts("uint32max == int32_minus_one");
}
return EXIT_SUCCESS;
}
Почему в Си нет особого правила при сравнении signed и unsigned типов, ну типа если значение в signed типе отрицательно, то он полюбасу будет меньше любого unsigned значения? А то говно какое-то.
(нет, я понимаю почему так происходит, но все равно говно)
+2
namespace test
{
//public record P(double D);
class Program1
{
static void Main(string[] args)
{
//The differences between Double.Equals and Double==
Console.WriteLine(double.NaN.Equals(double.NaN)); //True
Console.WriteLine(double.NaN == double.NaN); // False
//The same is true for tuples!
Console.WriteLine((double.NaN, 1).Equals((double.NaN, 1))); // True
Console.WriteLine((double.NaN, 1) == (double.NaN, 1)); // False
//But records in C# 9 behave differently!
Console.WriteLine(new P(double.NaN).Equals(new P(double.NaN))); // True
Console.WriteLine(new P(double.NaN) == new P(double.NaN)); // True
}
}
}
https://twitter.com/STeplyakov/status/1333831742134779904
0
def neuro_anec():
group_id = '85443458'
random.seed()
_vk_session = vk_api.VkApi(token=config.service)
_vk = _vk_session.get_api()
max_num = _vk.wall.get(owner_id=-int(group_id), count=0)['count']
try:
anec_base = ''
while len(anec_base.split('\n')) < 1 or anec_base == '':
num = random.randint(1, max_num)
anec_base = '\n'.join(
_vk.wall.get(owner_id=-int(group_id), count=1, offset=num)['items'][0]['text'].split('\n')[:-1])
num = random.randint(1, max_num)
anec_booter = _vk.wall.get(owner_id=-int(group_id), count=1, offset=num)['items'][0]['text'].split('\n')[-1]
return anec_base + '\n' + anec_booter
except:
return 'А хуй тебе'
Представляю вашему вниманию: ней(гей)росеть, генерирующая анеки категории Б
0
$users = new Users();
$users->findBySql("SELECT * FROM `users`");
foreach($users as $user) {
echo $user['email'] . "<br>";
}
Task framework основан на MVC парадигме с удобством использования и минимум функционала для решения простых задач.
В отличие от стандартных решений вместо контроллера тут используется задача (task)
h/523828
+3
template <typename T>
void f() {
if constexpr (std::is_arithmetic_v<T>)
// ...
else
static_assert(false, "Must be arithmetic"); // ill-formed: invalid for every T
}
// The common workaround for such a catch-all statement is a type-dependent expression that is always false:
template<class T> struct dependent_false : std::false_type {};
template <typename T>
void f() {
if constexpr (std::is_arithmetic_v<T>)
// ...
else
static_assert(dependent_false<T>::value, "Must be arithmetic"); // ok
}
То есть «static_assert(false)» в шаблоне — это UB. Чтобы оно было не UB и можно было спокойно отключать ненужные специализации — надо городить ёбанный костыль. Пиздец. Почему стандартизаторы не могут просто взять и сделать что-то удобное? Что-то, для чего не требуется городить по десятку костылешаблонов, заставляющих его работать? Что-то без ёбанной явной специализации для bool? Почему любой высер крестокомитета обязательно должен быть максимально сложным, вербозным, неочевидным говном с кучей подводных камней и UB?
+2
Дали тестовое задание.
Написать хеш таблицу с открытой адресацией. Главное качество, а не скорость, сказали.
Реализовал на C++.
Самая тягомотина - это тестирование многопоточности.
Есть операции:
find, equalRange, operator [] - тот же equalRange, но возвращает все найденные вхождения, insert, remove, extend, size, capacity.
И вот надо каждую относительно другой проверять.
Только это выходит (9 - 1)^2 тестов. Помимо остальных, уже реализованных.
у меня проверка на значения только в операциях поиска относительно вставки, то бишь, нашелся ли в многопоточном исполнении элемент, или нет.
относительно удаления проверять - это муторно, потому что после удаления на той же позиции встает соседняя пара, и это случайно, проверено
экспериментально.
Сойдет ли просто проверять время блокировки (shared_lock, и lock_guard)
каждого параллельного текущему потоку относительно времени блокировки\старта\окончания блокировки текущего?
кроме связки (access - insert)?
Тем более, что операции записи\чтения проверяются в немногопоточном исполнении?
+1
Хочу, чтобы 3.14159265, 1024--, vistefan, kegdan, bormand вернулись в новогоднюю ночь.
0
static F1(jtdrr){PROLOG(0055);A df,dg,hs,*x,z;B b,ex,xop;C c,id;I fl,*hv,m;V*v;
RZ(w);
// If the input is a name, it must be from ".@'name' which turned into ".@(name+noun) - or in debug, but that's discarded
if(AT(w)&NAME){RZ(w=sfn(0,w));}
// If noun, return the value of the noun.
if(AT(w)&NOUN)R w; // no quotes needed
// Non-nouns and NMDOT names carry on
v=FAV(w); id=v->id; fl=v->flag;
I fndx=(id==CBDOT)&&!v->fgh[0]; A fs=v->fgh[fndx]; A gs=v->fgh[fndx^1]; // In verb for m b., if f is empty look to g for the left arg. It would be nice to be more general
hs=v->fgh[2]; if(id==CBOX)gs=0; // ignore gs field in BOX, there to simulate BOXATOP
if(fl&VXOPCALL)R drr(hs);
xop=1&&VXOP&fl; ex=id==CCOLON&&hs&&!xop;
b=id==CHOOK||id==CADVF; c=id==CFORK;
m=!!fs+(gs||ex);
if(!m)R spella(w);
if(evoke(w))R drr(sfne(w)); // turn nameref into string or verb; then take rep
if(fs)RZ(df=fl&VGERL?every(fxeach(fs),0L,jtdrr):drr(fs));
if(gs)RZ(dg=fl&VGERR?every(fxeach(gs),0L,jtdrr):drr(gs));
if(ex)RZ(dg=unparsem(num[0],w));
m+=!b&&!xop||hs&&xop;
GATV0(z,BOX,m,1); x=AAV(z);
RZ(x[0]=rifvs(df));
RZ(x[1]=rifvs(b||c||xop?dg:fl&VDDOP?(hv=AV(hs),link(sc(hv[0]),link(spellout(id),sc(hv[1])))):spellout(id)));
if(2<m)RZ(x[2]=rifvs(c||xop?drr(hs):dg));
EPILOG(z);
}
F1(jtdrep){A z=drr(w); R z&&AT(z)&BOX?z:ravel(box(z));}
F1(jtaro){A fs,gs,hs,s,*u,*x,y,z;B ex,xop;C id;I*hv,m;V*v;
RZ(w);
if(FUNC&AT(w)){
v=FAV(w); id=v->id;
I fndx=(id==CBDOT)&&!v->fgh[0]; fs=v->fgh[fndx]; gs=v->fgh[fndx^1]; // In verb for m b., if f is empty look to g for the left arg. It would be nice to be more general
hs=v->fgh[2]; if(id==CBOX)gs=0; // ignore gs field in BOX, there to simulate BOXATOP
if(VXOPCALL&v->flag)R aro(hs);
xop=1&&VXOP&v->flag;
ex=hs&&id==CCOLON&&!xop;
m=id==CFORK?3:!!fs+(ex||xop&&hs||!xop&&gs);
if(!m)R spella(w);
if(evoke(w)){RZ(w=sfne(w)); if(FUNC&AT(w))w=aro(w); R w;} // keep nameref as a string, UNLESS it is NMDOT, in which case use the (f.'d) verb value
}
GAT0(z,BOX,2,1); x=AAV(z);
if(NOUN&AT(w)){RZ(x[0]=rifvs(ravel(scc(CNOUN)))); if(AT(w)&NAME)RZ(w=sfn(0,w)); x[1]=INCORPNA(w); RETF(z);} // if name, must be ".@'name', format name as string
GATV0(y,BOX,m,1); u=AAV(y);
if(0<m)RZ(u[0]=rifvs(aro(fs)));
if(1<m)RZ(u[1]=rifvs(aro(ex?unparsem(num[0],w):xop?hs:gs)));
if(2<m)RZ(u[2]=rifvs(aro(hs)));
s=xop?aro(gs):VDDOP&v->flag?(hv=AV(hs),aro(foreign(sc(hv[0]),sc(hv[1])))):spellout(id);
RZ(x[0]=rifvs(s)); x[1]=INCORPNA(y);
R z;
}
F1(jtarep){R box(aro(w));}
// Create A for a string - name~, a primitive, or the boxed string
static DF1(jtfxchar){A y;C c,d,id,*s;I m,n;
n=AN(w);
ASSERT(1>=AR(w),EVRANK); // string must be an atom or list
ASSERT(n,EVLENGTH);
s=CAV(w); c=*(s+n-1);
DO(n, d=s[i]; ASSERT((C)(d-32)<(C)(127-32),EVSPELL);); // must be all ASCII
if(CA==ctype[(UC)*s]&&c!=CESC1&&c!=CESC2)R swap(w); // If name and not control word, treat as name~, create nameref
ASSERT(id=spellin(n,s),EVSPELL); // not name, must be control word or primitive. Also classify string
if(id!=CFCONS)y=ds(id); else{m=s[n-2]-'0'; y=FCONS(CSIGN!=*s?scib(m):2==n?ainf:scib(-m));} // define 0:, if it's that, using boolean for 0/1
ASSERT(y&&RHS&AT(y),EVDOMAIN); // make sure it's a noun/verb/adv/conj
if(!self || AT(y)
0
Есть ли какие-нибудь соревнования для PHP разработчиков?