- 1
- 2
"Эффективный C. Профессиональное программирование" Роберт Сикорд.
Фуфел или новая "белая книга" ?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
"Эффективный C. Профессиональное программирование" Роберт Сикорд.
Фуфел или новая "белая книга" ?
0
-module(pqueue).
-export([ in/3
, out/1
, new/0
, close/1
]).
-type prio() :: non_neg_integer().
-record(priority_queue,
{ tab :: ets:tid()
}).
-define(size, {size, size}).
-define(seqno(PRIO), {seqno, PRIO}).
-opaque t() :: #priority_queue{}.
-export_type([ prio/0
, t/0
]).
-spec new() -> t().
new() ->
Tab = ets:new(pqueue_tab, [ordered_set]),
ets:insert(Tab, {?size, 0}),
#priority_queue{tab = Tab}.
-spec close(t()) -> ok.
close(#priority_queue{tab = Tab}) ->
true = ets:delete(Tab),
ok.
-spec in(term(), prio(), t()) -> ok.
in(Val, Prio, #priority_queue{tab = Tab}) when Prio >= 0 ->
Key = {get_next_seqno(Tab, Prio), Prio},
true = ets:insert_new(Tab, {Key, Val}),
ets:update_counter(Tab, ?size, {2, 1}, {?size, 0}),
ok.
-spec out(t()) -> {value, term()} | empty.
out(#priority_queue{tab = Tab}) ->
case ets:first(Tab) of
Key = {SeqNo, _Prio} when is_integer(SeqNo) ->
Val = ets:lookup_element(Tab, Key, 2),
ets:update_counter(Tab, ?size, {2, -1}),
ets:delete(Tab, Key),
{value, Val};
_ ->
empty
end.
%% This function generates keys that go in sequence for each
%% individual priority level, but interleave for different priority
%% levels. Keys with lower priority are more sparse, so they are
%% consumed less often in the total sequence
get_next_seqno(Tab, Prio) ->
Delta = Prio + 1,
Key = ?seqno(Prio),
ets:update_counter(Tab, Key, {2, Delta}, {Key, 0}).
Творение безумца или гения.
0
for (auto& key : interruptController.hardwareInterrupts | std::views::keys)
{
memory[key * 2 ] = 0xFF;
memory[key * 2 + 1] = 0xFF;
}
охуенно.
+1
%% This function is needed as a hack to guide dialyzer into inferring
%% the correct types.
-spec id(A) -> A.
id(A) ->
A.
%% Где-то в header'е....
-define(deftarget(RECIPE), {RECIPE, fun my_module:id/1}).
%% A horrible, horrible hack to make Dialyzer infer right type of the promise return value
-define(want(TARGET),
(fun() ->
case TARGET of
{_, ___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer} ->
___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer(my_module:want(TARGET))
end
end)()).
Пути статический типизации в Erlang неисповедимы.
+1
// Update is called once per frame
void Update () {
if (!isWin && !isFail && !isPaused)
{
if (timeForUnhit > 0) //Для состояния восстановления игрока
{
timeForUnhit -= Time.deltaTime;
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = hitPlayer;
}
else if (timeForInvc > 0)
//Для состояния непобедимости игрока
{
timeForInvc -= Time.deltaTime;
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = invcPlayer;
}
else
{
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = player;
LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[0], 0);
if (invc)
{
MusicManager.Instance.gameObject.GetComponent<AudioSource>().clip = MusicManager.Instance.music[1];
MusicManager.Instance.gameObject.GetComponent<AudioSource>().Play();
}
invc = false;
}
}
i = LevelGenerate.Instance.playerY;
j = LevelGenerate.Instance.playerX;
if (!isWin && !isFail) //Если уровень не завершен
{
collideEnemy(); //Обнаружение столкновения с врагом
collectItem(); //Обнаружения столкновения с собираемым предметом
genNthOrdColls(2); //Генерация предметов n-ого порядка после сбора предметов (n-1)-ого
genNthOrdColls(3);
genNthOrdColls(4);
if (colls[0] == 0 && colls[1] == 0 && colls[2] == 0 && colls[3] == 0 && LevelGenerate.Instance.resLoaded) isWin = true; //Если все предметы собраны, то уровень завершен с прохождением
}
if (isWin && animationSet == 0) //Меняем спрайт игрока при завершении уровня
{
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = winPlayer;
LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[1], 0);
animationSet++;
delayTime = 1.5f;
MusicManager.Instance.gameObject.GetComponent<AudioSource>().mute = true;
SoundManager.Instance.gameObject.GetComponent<AudioSource>().clip = SoundManager.Instance.sounds[0];
SoundManager.Instance.gameObject.GetComponent<AudioSource>().Play();
}
if (isWin && delayTime <= 0)
{
//path = Application.dataPath + "\\Levels\\SaveData1";
/*if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
}
else if (Application.platform == RuntimePlatform.Android)
path = Application.persistentDataPath;
path = Path.Combine(path, "SaveData1");
fs = new FileStream(path, FileMode.Open);
bw = new BinaryWriter(fs);*/
levelNum = (byte)(Convert.ToByte(LevelGenerate.Instance.levelFile.Substring(5)) - 1);
levelNum++;
if (PlayerPrefs.GetInt("maxLevel") == levelNum)
{
PlayerPrefs.SetInt("maxLevel", (int)levelNum);
PlayerPrefs.Save();
}
PlayerPrefs.SetInt("level", (int)levelNum);
/*bw.Write(levelNum);
bw.Write("Level" + (levelNum+1).ToString());
bw.Close();
fs.Close();*/
SceneManager.LoadScene("Win");
} else if (delayTime > 0)
{
delayTime -= Time.deltaTime;
}
if (isFail && delayTime <= 0)
{
//path = Application.dataPath + "\\Levels\\SaveData1";
/*if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
```
}
else if (Application.platform == RuntimePlatform.Android)
path = Application.persistentDataPath;
path = Path.Combine(path, "SaveData1");
fs = new FileStream(path, FileMode.Open);
bw = new BinaryWriter(fs);
fs.Seek(1, SeekOrigin.Begin);
bw.Write(LevelGenerate.Instance.levelFil e);
bw.Close();
fs.Close();*/
PlayerPrefs.SetString("levelFile", LevelGenerate.Instance.levelFile);
PlayerPrefs.Save();
SceneManager.LoadScene("Fail");
} else if (delayTime > 0)
{
delayTime -= Time.deltaTime;
}
}
```
Самый страшный метод из EventManager-а (модуль который отвечал за все события в игре - коллизию с врагом, таймаут непобедимости и пр.).
+1
?check_trace(
begin
%% Inject some orderings to make sure the replicant
%% receives transactions in all states.
%%
%% 1. Commit some transactions before the replicant start:
?force_ordering(#{?snk_kind := trans_gen_counter_update, value := 5}, #{?snk_kind := state_change, to := disconnected}),
%% 2. Make sure the rest of transactions are produced after the agent starts:
?force_ordering(#{?snk_kind := subscribe_realtime_stream}, #{?snk_kind := trans_gen_counter_update, value := 10}),
%% 3. Make sure transactions are sent during TLOG replay:
?force_ordering(#{?snk_kind := state_change, to := bootstrap}, #{?snk_kind := trans_gen_counter_update, value := 15}),
%% 4. Make sure some transactions are produced while in normal mode
?force_ordering(#{?snk_kind := state_change, to := normal}, #{?snk_kind := trans_gen_counter_update, value := 25}),
...
Какой тест )))
0
def filter_goods(items, date_registered_from=0, date_registered_to=99999999999, from_finished_entries=0, to_finished_entries=99999, views_from=0, views_to=999999, activeGoodsFrom=0, activeGoodsTo=999999, delete_no_delivery=False, delete_comapnies=False, delete_duplicates=False, published_later_then=0):
ids = []
q = Queue()
for i in items:
if i[0]['date_created'] >= published_later_then:
if i[1]['date_registered'] >= date_registered_from:
if i[1]['date_registered'] <= date_registered_to:
if i[1]['prods_sold_cnt'] >= from_finished_entries:
if i[1]['prods_sold_cnt'] <= to_finished_entries:
if i[0]['views'] >= views_from:
if i[0]['views'] <= views_to:
if i[1]['prods_active_cnt'] >= activeGoodsFrom:
if i[1]['prods_active_cnt'] <= activeGoodsTo:
if delete_no_delivery:
if i[0]['delivery_enabled'] or delete_no_delivery == False:
if not (delete_comapnies and i[1]['type'] == 'person'):
if delete_comapnies == False:
if delete_duplicates:
if i[0]['owner']['id'] not in ids:
ids.append(i[0]['owner']['id'])
q.put(i[0]['id'])
else:
q.put(i[0]['id'])
return q
Стояла задача написать самый длинный if? Человек не знает про and? Этого мы никогда не узнаем.
0
format PE64 GUI 5.0
include 'win64a.inc'
entry $
xor rdi,rdi
push rdi
push rdi
push rdi;$400000
push rdi
push rdi
mov rax,CW_USEDEFAULT
push rax
push rax
push rax
push rax
push rdi
push rdi
push rdi
push rdi
mov r9,WS_VISIBLE+WS_OVERLAPPEDWINDOW
mov r8,_title
mov rdx,_class
mov rcx,rdi
call [CreateWindowEx]
mov r8,WindowProc
mov rdx,-4
mov rcx,rax
call [SetWindowLongPtrA]
mov qword[_title],rax
pop rdi
mov rsi,rsp
xor rbx,rbx
mov bl,40
@@:sub rsp,rbx
xor r9,r9
xor r8,r8
xor rdx,rdx
mov rcx,rsi
call [GetMessage]
mov rcx,rsi
call [DispatchMessage]
add rsp,rbx
jmp @b
WindowProc:
push r9
cmp rdx,WM_CLOSE
je app_close
defwndproc:
push rdi
push rdi
push rdi
push rdi
mov r9,r8
mov r8,rdx
mov rdx,rcx
mov rcx,qword[_title]
call [CallWindowProc]
pop rdi
pop rdi
pop rdi
pop rdi
pop rdi
ret
app_close:
call [exit]
_title db '1KBytex64',0
_class db '#32770',0
data import
library\
user32,'USER32.DLL',\
msvcrt,'msvcrt.dll'
include 'api\user32.inc'
import msvcrt,\
exit,'_exit'
end data
Ничего интересного, просто извращённый 1KBytex64
0
&НаСервереБезКонтекста
Функция ПроверкаНаРукожопость1()
ГруппаЮзеровРСЧ = Справочники.ГруппыПользователей.НайтиПоНаименованию("Отдел расчёта сотрудников");
ЮзерыРСЧ = ГруппаЮзеровРСЧ.Состав.ВыгрузитьКолонку("Пользователь");
ТекущийЮзер = Пользователи.ТекущийПользователь();
//Если ТекущийЮзер = ЮзерыРСЧ.Найти(ТекущийЮзер) Тогда
НайденныеЮзеры = ЮзерыРСЧ.Найти(ТекущийЮзер);
Если (НайденныеЮзеры) <> Неопределено Тогда
Возврат ИСТИНА;
Иначе
Возврат ЛОЖЬ;
КонецЕсли
КонецФункции
&НаКлиенте
Процедура ПриОткрытииПосле(Отказ)
//ПроверкаНаРукожопость(ЭтотОбъект);
//Если РольДоступна("Расчетчик") Тогда
// Объект.Дата.Доступность = ЛОЖЬ;
//КонецЕсли;
Если ПроверкаНаРукожопость1() Тогда
ЭтотОбъект.Элементы.Дата.Доступность = ЛОЖЬ;
ЭтотОбъект.Элементы.Номер.Доступность = ЛОЖЬ;
ЭтотОбъект.Элементы.НомерПриказа.Доступность = ЛОЖЬ;
КонецЕсли;
КонецПроцедуры
Шобы не рукоблудили шелудивые бухгалтерши
+1
$DI_WName = Array('ѕн','¬т','—р','„т','ѕт','—б','¬с');
$DI_MName = Array('январь','‘евраль','ћарт','јпрель','ћай','»юнь','»юль','јвгуст','—ент¤брь','ќкт¤брь','Ќо¤брь','ƒекабрь');
$today = TodayDate();
$today = explode(".",$today);
$today = $today[2]*10000+$today[1]*100+$today[0];
$DI_Date = TodayDate();
if (isset($_GET["p0"])) $DI_Date = $_GET["p0"];
$DI_Date = explode(".",$DI_Date);
$DI_YY = $DI_Date[2];
$DI_LYY = $DI_YY;
$DI_NYY = $DI_YY;
$DI_MM = $DI_Date[1]-1;
$DI_LMM = $DI_MM-1;
if ($DI_LMM<0) $DI_LMM = 11;
$DI_NMM = $DI_MM+1;
if ($DI_NMM>11) $DI_NMM = 0;
if ($DI_MM==0) $DI_LYY = $DI_YY-1;
if ($DI_MM==11) $DI_NYY = $DI_YY+1;
$DI_DD = $DI_Date[0];
$lastM = $DI_MM-2;
$yy = $DI_YY;
if ($lastM<1) {
$lastM = 12+$lastM;
$yy = $yy - 1;
}
$lastM = $DI_DD.".".$lastM.".".$yy;
$nextM = $DI_MM+4;
$yy = $DI_YY;
if ($nextM>12) {
$nextM = $nextM-12;
$yy = $yy + 1;
}
$nextM = $DI_DD.".".$nextM.".".$yy;
$lastY = $DI_DD.".".($DI_MM+1).".".($DI_YY-1);
$nextY = $DI_DD.".".($DI_MM+1).".".($DI_YY+1);