- 1
Веб Программирование - это такая хуйня.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
Веб Программирование - это такая хуйня.
+3
Решил я значит от нехуй делать нарисовать свой пиксельный шрифт
(кому интересно - вот промежуточный результат https://i.imgur.com/2vIJoio.png)
и решил посмотреть, какие там вообще бывают под GNU/Linux редакторы для
шрифтов, и какие вообще шрифты бывают
Так вот, нашел я вот такую хрень http://mensis.sourceforge.net/overview.html
Вижу, что там какой-то ассемблер http://mensis.sourceforge.net/ttfcv-all.png или
байткод ебаный. Погуглил по этим говноинструкциям со скриншота:
Оказывается в TTF шрифтах есть встроенный тьюринг-полный ЯП, используемый
для всяких там подсказок, типа "куда дорисовать пиксель вот при таком-то условии"
и прочая подобная херота
А еще в шиндошс (до Windows 10) этот шрифтоговнобайткод интерпретировался в
пространстве ядра (ну тупыыые..) и разумеется таким образом удалось винду хакнуть
https://security.stackexchange.com/a/91395 (разве могло быть иначе?)
про шрифтоговнобайткод можно почитать например тут
https://docs.microsoft.com/en-us/typography/opentype/spec/tt_instructions
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#instructions
На кой вообще хер делать тьюринг-полный язык для отрисовки глифов? Ну и раз вы его уже
делаете, то заебошьте там что-нибудь на основе LLVM байткода, чтоб JIT, или вообще все глифы
сразу компилировать в натив, или даже (чего мелочиться) под GPU. Типа мы хотим
нарисовать какую-то букву с размером 10 - вызываем функцию
drawA(10, bufptr, x, y); - рисуется десятого размера буква в буфер. И никаких непонятных
говнобайткодов. Четко и дерзко!
+1
if($form_action=="register") {
if($coo_coo=="tootoo") {
if($myusername) {
if($mypassword) {
if($mypassword==$myrepeat) {
$uLength = strlen($myusername);
$pLength = strlen($mypassword);
if($uLength >= 3 && $uLength <= 30) {
$return_error = "";
} else {
$return_error = "Username must be between 3 and 30 characters.";
}
if($pLength >= 3 && $pLength <= 30) {
$return_error = "";
} else {
$return_error = "Password must be between 3 and 30 characters.";
}
if($return_error == "") {
if($db_found) {
$mypassword = md5($mypassword);
$SQL = "SELECT * FROM users WHERE username='$myusername'";
$result = mysql_query($SQL);
$num_rows = mysql_num_rows($result);
if($num_rows==1) {
$return_error = "Username already taken.";
} else {
if(!mysql_query("INSERT INTO users (id,date,ip,username,password) VALUES ('','$date','$ip','$myusername','$mypassword')")){
$return_error = "System error.";
} else {
$return_error = "Logged in.";
$_SESSION['user_session'] = $myusername;
header ("Location: index.php");
}
}
}
}
} else {
$return_error = "Passwords did not match";
}
} else {
$return_error = "No password was entered.";
}
} else {
$return_error = "No username was entered.";
}
} else {
$return_error = "Registrations are disabled.";
}
}
"Сам кусок регистрации"
Ошибка начинается с первой строки...
−3
Надобно бы реализовать здесь такое же подтверждение аккаунта, как во влажном "Google Adsense" - путём отправки
бумажного письма по физическому адресу пользователя - дабы местный шизофреник не вёл диалоги сам с собою.
+1
public int GetWorkOrder(...)
{
var wait = 0;
const int stepWait = 30;
var marker1 = false;
do
{
if (marker1 == true) wait = wait + stepWait;
...
do
{
marker1 = false;
...
if (ChoosenWO.Count == 0)
{
if (counter == postalAreas.Count)
{
marker1 = true;
break;
}
...
counter = counter + 1;
}
else
{
...
}
} while (ChoosenWO.Count == 0);
} while (wait < ((endDayTime.Hour - DateTime.UtcNow.Hour) * 60 + (endDayTime.Minute - DateTime.UtcNow.Minute)));
return -1;
}
Очень важный алгоритм, работающий на продакшене... Разработанный менеджером и написанный аналитиком...
−2
https://habr.com/post/412603/
Оператор []=
Короткий оператор добавления нового элемента в массив. Он работает так, вы ожидаете, добавляя элемент на правой части в левую частью массива.
Штоблядь???
0
...
F = fun(S) ->
ets:give_away(Table, NewOwner),
S
end,
sys:replace_state(OldOwner, F)
...
Паттерн steal
0
var lol = (timeout) => setTimeout(lol, setTimeout(console.log, timeout, 'kek'), timeout);
lol();
0
https://imgur.com/a/UoyMX
Планирую вести себя как прикрелейтед, какие подводные?
Давайте обсудим в ИТТ треде git, работу с ним, почему каждый раз всё превращается в пикрелейтед и как этого избежать.
А лоу-левелщики, кстати юзают? Есть вообще тенденция, что веб-макаки используют сабж чаще крестобогов, или наоборот?
Отдельно предлагаю обсудить алгоритм, по которому gitk рисует историю коммитов. Никак не могу придумать, что ж там за алгоритм, коммити не отсортированы жестко по даже, а если слишком долго в какой-то ветке нет коммитов, то она прерывается стрелочкой, а потом продолжается выше, но трудно сказать, по каким правилам. Причем схожие утилиты рисуют историю по-разному. В код ещё не смотрел.
З.Ы. Капча 2k16
−4
https://news.mail.ru/society/31667144/?frommail=1
Как думаете, соски, могут ли семь поездов по шесть вагонов каждый стоить четыре миллиарда рублей? Или это какая-то наёбка?