- 1
Бомбёж по поводу Telegram
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−6
Бомбёж по поводу Telegram
Вот что бы там не говорили про право на тайну переписку, а у него есть важное ограничение, о котором все забыли: если человек подозревается в преступлении, то государство имеет полное моральное и юридическое право читать его переписку. А вот Пашка Дуров об этом не знает, либо знает, но намеренно это игнорирует, а потом тысячи глупых хомячков бросают из окон самолётики и обвиняют РКН. Я вот полностью поддерживаю международное уголовное преследование Пашки за пособничество терроризму.
+3
http://www.ssw.uni-linz.ac.at/Research/Papers/Wuerthinger07/Wuerthinger07.pdf
Как известно, в языках C и C++ есть проблема с buffer overflow, в то время как в языке Java такой проблемы нет (баги в реализации самой JVM не рассматриваем). В языке Java, как и в многих других подобных языках для анскиллябр заедушных, не могущих в сырые указатели, сделали проверки границ массива. В говноязыке C++ впрочем тоже есть какая-то такая питушня, например std::vector::at выполняет роверку выхода индекса за границы диапазона вектора. Только вот в язык JVM давно уже внедряют такую хреноту, как array bounds check elimination, т.е. убирание проверок, когда на этапе компиляции можно доказать, что такие проверки не нужны.
В какой версии C++ сделают чтоб std::vector::at тоже вот так могло автозаменяться на небезопасный аналог если компилятор доказал что там эти проверки не нужны?
0
if (cond1)
{
do_shit1();
}
else if (cond2)
{
do_shit2();
}
else if (cond3)
{
do_shit3();
}
else if (cond4)
{
do_shit4();
}
Вот например есть такая вот типичная хуита, предположим что я знаю, что среди этих cond1 cond2 ... только один может быть true, остальные условия всегда будет ложными.
И в этой сраной цепочке из if - else if можно перемещать if блоки без изменения логики. НО в языке Си (да и в C++ я уверен тоже) нет способа сказать компилятору что-то вроде "только одно из условий true, так что ты, сраный компилятор, можешь переделывать эту хуиту, и даже убрать else, если процессор в таком случае (при if(cond1) {do_shit1();}; if(cond2) {do_shit2();}; ... ) будет эту ссанину быстрее обрабатывать".
Какие-нибудь языки программирования такую оптимизацию вообще умеют?
0
$(document).ready(function() {
console.log("Ready");
var
block_1 = document.getElementsByClassName('block_1')[0],
block_2 = document.getElementsByClassName('block_2')[0],
block_3 = document.getElementsByClassName('block_3')[0],
block_4 = document.getElementsByClassName('block_4')[0],
open_1 = document.getElementsByClassName('open-1')[0],
open_2 = document.getElementsByClassName('open-2')[0],
open_3 = document.getElementsByClassName('open-3')[0],
open_4 = document.getElementsByClassName('open-4')[0];
open_1.onclick = function(){
block_1.style.display = "block";
block_2.style.display = "none";
block_3.style.display = "none";
block_4.style.display = "none";
};
open_2.onclick = function() {
block_2.style.display = "block";
block_1.style.display = "none";
block_3.style.display = "none";
block_4.style.display = "none";
};
open_3.onclick = function() {
block_2.style.display = "none";
block_1.style.display = "none";
block_3.style.display = "block";
block_4.style.display = "none";
};
open_4.onclick = function() {
block_2.style.display = "none";
block_1.style.display = "none";
block_3.style.display = "none";
block_4.style.display = "block";
};
});
0
private static bool IsOnlyServiceWindowsFile(string directory)
{
string[] ignoredFiles = { "Thumbs.db", "Desktop.ini" };
var files = Directory.GetFiles(directory);
foreach (var file in files)
{
var filename = Path.GetFileName(file);
foreach (var ignored in ignoredFiles)
{
if (string.Equals(filename, ignored, StringComparison.OrdinalIgnoreCase))
{
goto NEXT;
}
}
return false;
NEXT: ;
}
return true;
}
Пришёл в C# из Java, где есть замечательная фича под названием Label.
В C# для вложенных циклов оказался лишь GOTO.
Метод проверяет наличие в каталоге только сервисных файлов винды.
+1
#include <stdio.h>
int main()
{
for (int x; scanf("%d", &x);) {
#define x x += x
x & (x-1);
printf("%d\n", x);
}
return 0;
}
https://ideone.com/SxgTL0
-3 -28
-2 -20
-1 -12
0 -4
1 4
2 12
3 20
Ничо нипанятна...
+1
x & (x-1);
Написавший это утверждает, что меняется содержимое памяти, но как происходят эти мистические изменения он объяснить не может.
0
<!DOCTYPE html>
<html>
<head>
<title>Change login</title>
</head>
<body>
<form method="POST">
<p>Input your new e-mail</p>
<input type="text" name="email" type="e-mail" placeholder="[email protected]"><br><br>
<button>Sumbit</button>
</form>
<?php
session_start();
if(isset($_POST['email'])) {
require_once 'connection.php';
//подключение БД
$link = mysqli_connect($host,$user,$password,$database)
or die("Error with connection to DB".mysqli_error($link));
//записываем в переменную для удобства
$email = $_POST['email'];
if($email != '') {
$select = "SELECT mail from users";
$query = "UPDATE users SET mail = '$email' WHERE username = '{$_SESSION['username']}'"
or die("Update error!".mysqli_error($link));
//записать все логины,для проверки одинаковых данных
$check = mysqli_query($link,$select);
//количество записей в запросе на выбор
$rows = mysqli_num_rows($check);
$bool = true;
for($i = 0; $i < $rows; $i++) {
//извлекаем отдельную строку
$row = mysqli_fetch_row($check);
//перебор по ячейкам текущей строки
for($j = 0; $j < 1; $j++) {
//если такой пользователь уже есть,то выводим ошибку и завершаем цикл
if($email == $row[$j]) {
echo "e-mail is already exist";
$bool = false;
break;
}
}
}
//если такого пользователя нет,то заносим запись в БД
if($bool) {
$result = mysqli_query($link,$query) or die("Ошибка " . mysqli_error($link));
if($result) {
echo "e-mail changed";
mail($email,"Смена адреса","Вы успешно сменили e-mail адрес!");
}
}
//закрываем подключение
mysqli_close($link);
}
}
?>
</body>
</html>
Собственно говоря смена адреса электронной почты на PHP,как бы исправить этот говнокод,чтобы он выглядел чуточку элегантней?
+4
var net = require("net");
Array.from({ length: 1000 }, (x, i) => i).map(id => makeClient(id));
function makeClient(id) {
var client = net.createConnection({ host: "46.101.246.194", port: 80 }, () =>
console.log(`[${id}] connected`)
);
client.on("end", () => console.log(`[${id}] disconnect`));
return client;
}
govnokod dudos script
+2
/**
* Вхождения слова "питушня" в говнокодах по языкам
*/
{
"C++": 124,
"PHP": 56,
"Куча": 54,
"C": 41,
"JavaScript": 39,
"C#": 25,
"Python": 11,
"Java": 10,
"Pascal": 8,
"SQL": 7,
"VisualBasic": 2,
"Swift": 2,
"ActionScript": 1,
"Assembler": 1,
"Perl": 1,
"Haskell": 1,
"Ruby": 1,
"1C": 0,
"Lua": 0,
"Objective C": 0,
"bash": 0
}