- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
//"вирус" в стиле кулхацкеров
#include <stdlib.h>
int main() {
int i = 1;
while( i == 1) {
system("start calc");
}
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
//"вирус" в стиле кулхацкеров
#include <stdlib.h>
int main() {
int i = 1;
while( i == 1) {
system("start calc");
}
return 0;
}
+1
var v: List[Int?] = List@{1, 2, none, 4};
//Chained - List@{1, 4, 16}
v->filter(fn(x) => x != none)->map[Int](fn(x) => x*x)
//Piped none filter - List@{1, 4, 16}
v |> filter(fn(x) => x != none) |> map[Int](fn(x) => x*x)
//Piped with noneable filter - List@{1, 4, 16}
v |??> map[Int](fn(x) => x*x)
//Piped with none to result - List@{1, 4, none, 16}
v |?> map[Int](fn(x) => x*x)
// 5.15 Merge
entity Baz {
field f: Int;
field g: Int;
field k: Bool
}
var t = @[ 1, 2, 3 ];
t<+(@[5]) //@[1, 2, 3, 5]
t<+(@[3, 5]) //@[1, 2, 3, 3, 5]
var r = @{ f=1, g=2, k=true };
r<+(@{g=5}) //@{f=1, g=5, k=true}
r<+(@{g=3, k=false}) //@{f=1, g=3, k=false}
r<+(@{g=5, h=0) //@{f=1, g=5, k=true, h=0}
var e = Baz@{ f=1, g=2, k=true };
e<+(@{g=5}) //@{f=1, g=5, k=true}
e<+(@{g=3, k=false}) //@{f=1, g=3, k=false}
e<+(@{g=5, h=0) //error field not defined
«Буквально несколько дней назад компания Microsoft представила публике новый язык программирования. Языку дали название Bosque. Главная миссия дизайна языка — чтобы он был прост и понятен как для человека, так и для компьютера»
А вот кому новый, простой и понятный язык? Содержание спецсимволов всего на 54% превосходит таковое у «C++»!
h/448814
https://github.com/Microsoft/BosqueLanguage/blob/master/docs/language/overview.md
+2
https://habr.com/ru/article/448466/
*/
А последние пару лет набирает популярность boost.hana. Это boost.fusion,
но с constexpr'ом и лямбдами. Автор hana, Луис Дионе (Louis Dionne),
используя на полную мощь все возможности новых стандартов, в некотором
смысле очеловечил метапрограммирование. С помощью hana всяческие
манипуляции с типами, их кортежами, отображениями, а также компайл- и
рантайм-работа с ними обрели практически человеческое лицо и читаемый
вид. Ну, с поправкой на синтаксис C++, разумеется. Вот, например, как выглядит
универсальный сериализатор структур, написанный с помощью hana:
*/
// 1. Give introspection capabilities to 'Person'
struct Person {
BOOST_HANA_DEFINE_STRUCT(Person,
(std::string, name),
(int, age)
);
};
// 2. Write a generic serializer (bear with std::ostream for the example)
auto serialize = [](std::ostream& os, auto const& object) {
hana::for_each(hana::members(object), [&](auto member) {
os << member << std::endl;
});
};
// 3. Use it
Person john{"John", 30};
serialize(std::cout, john);
/*
Ну да, структуры приходится описывать особым образом. А кому сейчас легко?
И тут хочется также отметить библиотеку tinyrefl за авторством Manu Sánchez
(Мануэля Санчеса). Довольно неплохая попытка принести в мир C++-разработки
статическую рефлексию без расширения компилятора. Для своей работы библиотека
требует стороннюю утилиту (cppast), но зато предоставляет довольно удобный доступ
к информации о структурах, которую можно использовать в процессе разработки
программы. Преимущество этой библиотеки (по сравнению с другими) в том, что для
работы с ней не надо использовать «птичий язык», а элементы структур (как и сами
структуры) можно произвольным образом атрибутировать прямо в исходном коде:
*/
struct [[serializable]] Person {
std::string name;
int age;
};
template<typename Class>
auto serialize(std::ostream& os, Class&& object) -> std::enable_if_t<
tinyrefl::has_metadata<std::decay_t<Class>>() &&
tinyrefl::has_attribute<std::decay_t<Class>>("interesting"),
std::ostream&>
{
tinyrefl::visit_member_variables(object, [&os](const auto& /* name */, const auto& var) {
os << var << std::endl;
});
return equal;
}
/*
Таких примеров можно привести ещё много (или найти на гитхабе или гитлабе).
Объединяет все эти библиотеки и инструменты одна особенность: значительно
облегчая жизнь своим пользователям, они имеют такую реализацию, что остаётся
лишь предполагать, какое количество страданий испытали их разработчики. Достаточно
заглянуть в реализацию, увидеть забор из ifdef'ов и угловых скобок — и всё понятно.
Нередко эти реализации делаются на грани возможностей компиляторов. workaround'ы
банальных ошибок (или особенностей реализации языка конкретной версии конкретного
компилятора с конкретными флагами) здорово раздувают их код. Желание поддерживать
несколько стандартов сразу заставляет придумывать зубодробильные конструкции.
Безусловно, простая попытка реализовать что-нибудь подобное здорово поднимает уровень
владения языком (иногда — и самооценку). Но в какой-то момент, после многочасовой возни
с очередной ошибкой, или непроходящим тестом, или крэшем компилятора руки опускаются,
хочется плюнуть и бросить, ибо силы бороться иссякают.
*/
Именно поэтому я за гомоиконность
0
https://habr.com/ru/post/448810/
Уж слишком анскильно )))
Не удивлюсь, если сам Юра - автор статьи.
0
Переменная loffset 0 loffset!
Переменные местные жители здесь местные! Выбрано 100 (несколько) ячеек
: локальный, (смещение -)
отложить rp @ loffset @ swap -
откладывать буквально откладывать +;
: бизнес, (смещение -)
местный, отложи рп! ;
: (local DOES> @ local, отложить @;
: f> r r> rp @ 1 float - dup rp! е! > г;
: (flocal DOES> @ local, отложить f @;
: нечего делать ;
: ralign r>
START rp @ [1 плавает 1-] Буквально и
WHILE ['ничего не делать> тело] ALiteral> r
REPEAT> r;
: <local (- sys1)
текущие @ @ loffset @ местные жители @
больше 0 = ЕСЛИ отложено до ТО; мгновенный
: местный: (-)
откладывать> последние новости здесь местные жители @ дп!
ячейка loffset +! Создать loffset @, немедленный (локальный
вот местные жители! дп! lastcfa! прошлой! ; мгновенный
: flocal: (-)
Последние новости здесь местные жители @ дп!
START loffset @ 0 1 плавает падение FM / мод, пока
0 отложено Буквально откладывай> 1 ячейку + клетки! повторение
отложить f> r Создать loffset @, немедленный (flocal
вот местные жители! дп! lastcfa! прошлой! ; мгновенный
: local> (sys1 - sys2); мгновенный
: локальный (sys2 -)
местные жители! dup delocal
Loffset! ток @! ; мгновенный
: TO> in @ 'dup @ [' (local> cell body +] ALiteral =
IF> body @ local, отложить! падение
ELSE dup @ ['(flocal> cell body +] ALiteral =
IF> body @ local, отложить ф! падение
В противном случае, смотрите> в! отложить на потом; мгновенный
: DO 2 ячейки loffset +! отложить DO; немедленное ограничение
:? DO 2 ячейки loffset +! отложить? ДЕЛАТЬ; немедленное ограничение
: Для 2 ячеек loffset +! выделить для; немедленное ограничение
: LOOP -2 ячейки loffset +! Задержка LOOP; немедленное ограничение
: + LOOP -2 ячейки loffset +! отложить + LOOP; немедленное ограничение
: СЛЕДУЮЩИЙ -2 loffset + клетки! отложите СЛЕДУЮЩУЮ; немедленное ограничение
:> R 1 клетки loffset +! отложить в сторону> R; немедленное ограничение
: R> -1 ячейки loffset +! отложить R>; немедленное ограничение
Местные жители высокого уровня 19aug93py
: {отложить <местное -1
НАЧАЛО> в @ name dup c @ 1 = swap 1+ c @ '| = и к
drop> in @> r
НАЧНИТЕ dup 0 <0 = WHILE> в! отложить местное: REPEAT drop
d> в! отложить местное>; немедленное ограничение
: F {отложить <местный -1
НАЧАЛО> в @ name dup c @ 1 = swap 1+ c @ '| = и к
drop> in @> r
НАЧНИТЕ dup 0 <0 = WHILE> в! Отложить Flocal: REPEAT DROP
d> в! отложить местное>; немедленное ограничение
'местный; псевдоним} немедленное ограничение
\ ANS Locals 19aug93py
Создайте 5 локальных ячеек, выберите их
: (местный) (адрес)
местный @ 0 =
Если вы отложите в сторону <local local on
3 локальных ячейки + 2! местная ячейка + 2! ЗАТЕМ
dup IF linestart @> r исходная строка #> r загрузочный файл @> r
blk @> r> tib @> r #tib @ dup> r> in @> r
> Тиб +! dup #tib! > Tib @ Swap Move
> выкл blk выкл loadfile выкл -1 linestart!
отложить местное:
d> в! r> #tib! > Тиб! r> blk!
r> загрузочный файл! r> Loadline! r> linestart!
ELSE 2-капельные локальные клетки + 2 @ локальные 3 клетки + 2 @
отложить местный>
2 локальных ячейки + 2! местная ячейка +! ЗАТЕМ;
:? местный;
местный @
IF с местными ячейками + @ с местными 2 ячейками + 2 @
отложить местное; местный от ТОГО;
:; ?местный; отложить; ; немедленное ограничение
:> Местный; откладывать делает>; мгновенный
: EXIT inlocal @ IF 0 delocal, TO откладывает EXIT; мгновенный
: местные жители |
НАЧАТЬ имя dup c @ 1 = больше 1+ c @ '| = и 0 = WHILE
читать (локально) REPEAT 0 (локально); немедленное ограничение
0
void converting(char *in, char *out, node *PTR, char (checking_stack)(node), void (push)(node *topPTR, char value), int (pop)(node *fix), int (isOper)(char c), int (precedence_intro)(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2)), int(intro_precedence_power)(int res_1, int res_2)) {
int k = 0, j = 0, d = 0;
push(PTR, '(');
for (k = 0; checking_stack((node)PTR) != 0; k++) {
if (isdigit(in[k])) {
out[j++] = in[k];
}
if (in[k] == '(') {
push(PTR, in[k]);
}
if (isOper(in[k]) == 1) {
while (precedence_intro((*PTR)->alpha, in[k], intro_precedence_power) != -1) {
out[j++] = pop(PTR);
}
push(PTR, in[k]);
}
if (in[k] == ')') {
d = pop(PTR);
for (; d != '('; d = pop(PTR)) {
out[j++] = d;
}
}
}
}
int precedence(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2)) {
char collection[] = "+1-1*2/2^3";
char buf_1 = (char)strcspn( collection , &data_1) + 1;
char buf_2 = (char)strcspn(collection, &data_2) + 1;
return intro_precedence_power(atoi(&collection[buf_1]), atoi(&collection[buf_2]));
}
int precedence_power(int res_1, int res_2) {
if (res_1 < res_2) {
return -1;
}
else if (res_1 == res_2) {
return 0;
}
else if (res_1 > res_2) {
return 1;
}
return 0;
}
Якобы вычисляет обратною польскою нотацию номер два
0
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define MAX 300
struct stack {
char alpha;
struct stack *nxtPTR;
};
typedef struct stack Stack;
typedef Stack *node;
void message(void);
char out_print(char word[]);
int precedence_power(int res_1, int res_2);
int pop(node *topPtr);
void push_stack(node *topPTR, char value);
int pop(node *topPTR);
char check_stack(node data);
int isOperator(char c);
int precedence(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2));
void converting(char *in, char *out, node *PTR, char (checking_stack)(node), void (push)(node *topPTR, char value), int (pop)(node *fix), int (isOper)(char c), int (precedence_intro)(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2)), int(intro_precedence_power)(int res_1, int res_2));
void please_enter(void );
int main(void) {
char infix[MAX];
char postfix[MAX];
node topPTR = NULL;
fgets(infix, sizeof(infix), stdin);
int m = strlen(infix);
infix[m] = ')';
memset(postfix, 0, MAX);
converting( infix, postfix, &topPTR, check_stack, push_stack, pop, isOperator, precedence, precedence_power);
out_print(postfix);
puts(" ");
return 0;
}
char out_print(char word[]) {
if( word[0] != '\0' ){
printf( "%c " , word[0] ) ;
return out_print(word + 1 ) ;
}
}
void push_stack(node *topPTR, char value) {
node newPTR = malloc(sizeof(Stack));
if (newPTR != NULL) {
newPTR->alpha = value;
newPTR->nxtPTR = *topPTR;
*topPTR = newPTR;
}
else {
puts("error");
}
}
int pop(node *fix) {
int value = (*fix)->alpha;
node temp = *fix;
*fix = (*fix)->nxtPTR;
free(temp);
return value;
}
char check_stack(node data) {
return data->alpha;
}
int isOperator(char c) {
return c == '/' || c == '*' || c == '-' || c == '+' || c == '^' ;
}
вычисляет обратною польскою нотацию номер раз
−1
<?php $connection = mysqli_connect ('localhost','root','','userlistdb');
// Проверка, если это общий клиент
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
// Значение $ ip в этот момент будет выглядеть примерно так: "192.0.34.166"
$ip = ip2long($ip);
// Теперь $ ip будет выглядеть примерно так: 1073732954
$sql = "INSERT INTO user(ip) VALUES('$ip')";
$dbQuery = mysql_query($sql,$dbLink);
$stmt = $dbh->prepare("INSERT INTO usertbl(ip) VALUES(ip)");
$stmt->bindParam(1, $ip);
$stmt->execute();
?>
выдаёт ошибку:
Примечание : Не определено переменная: DBLink в C: \ XAMPP \ HTDOCS \ офсетные \ testip.php на линии 21
Внимание : mysql_query () ожидает параметр 2 , чтобы быть ресурсом, приведены в нуль C: \ XAMPP \ HTDOCS \ кормили \ testip.php на строка 21
Примечание : неопределенная переменная: dbh в C: \ xampp \ htdocs \ fed \ testip.php в строке 25
Фатальная ошибка : вызов функции-члена prepare () для null в C: \ xampp \ htdocs \ fed \ testip.php на линии 25
$dbQuery = mysql_query($sql,$dbLink);
$stmt = $dbh->prepare("INSERT INTO usertbl(ip) VALUES(ip)");
Кто знает как записать IP из формы и сохранить в базу даных MySQL
−1
<?php $connection = mysqli_connect ('localhost','root','','userlistdb');
$per_page = 25;
$page = 1;
if (isset($_GET['page']))
{
$page = (int) $_GET['page'];
}
$total_cout_q = mysqli_query($connection, "SELECT COUNT(id_com) AS `total_count` FROM `comment`")
$total_count = mysqli_fetch_assoc($total_cout_q);
$total_count = $total_count['total_count'];
$total_pages = ceil ($total_count/ $per_pages);
if($page <= 1 || $page > $total_pages)
{
$page = 1;
}
$offset = ($per_page * $page)- $per_page;
$coments = mysqli_query($connection, "SELECT * `total_count` FROM `comment` ORDER BY `id_com` DESC LIMIT $offset, $per_page");
$coments_exist = true;
if(mysqli_nu,_rows($coments) <= 0 ){
echo 'Нет коментариев';
$coments_exist = false;
}
while( $result = mysqli_fetch_assoc($coments){
}
$row = mysqli_query($connection, "SELECT * FROM `comment` ORDER BY `id_com` DESC LIMIT 25");
?>
<table>
<tr>
<th><a href="?orderBy=username">username:</a>
</th>
<th> <a href="?orderBy=email">email:</a>
</th>
<th> <a href="?orderBy=recorded_date"> Date:</a>
</th>
<th> <a href="?orderBy=comment">Added Date:</a>
</th>
</tr>
<?php
while($row = mysql_fetch_array($result)){
?>
<tr>
<th><?php echo $result['username']; ?> </th>
<th><?php echo $result['email']; ?> </th>
<th><?php echo $result['Date']; ?> </th>
<th><?php echo $result['comment']; ?> </th>
</tr>
</table>
<?php //Страницы
if ( $coments_exist = true)
{
echo '<div class="paginator">';
if($page > 1)
{
echo '<a href= "/Guestbook.php?page='.($page - 1).'">« предыдущий </a>';
} if($page < $total_pages)
{
echo '<a href= "/Guestbook.php?page='.($page + 1).'"> Cледующая &eaquo; </a>';
}
echo '</div>';
}
$orderBy = array('username', 'email', 'recorded_date', 'comment');
$order = 'username';
if (isset($_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) {
$order = $_GET['orderBy'];
}
$query = 'SELECT * FROM `comment` ORDER BY '.$order;
}
mysqli_close();
?>
Привет, тут в коде сортировка и переход по страницыам, сортировка в строки с таблицы HTML, вызываемые из MySQL, при нажиматие на username едёт сортировка по алфавиту, а затем нажимать на email или Date и сортировать по дате, но выдаёт ошыбки...
0
fuse_blown() ->
whereis(?marker_process) =/= undefined.
Q: Какой механизм IPC в Erlang самый быстрый и безопасный?
Отвечает Снаут, основатель Стиля Вечно Ждущего Процесса: process registry.