Змея / Говнокод #26459 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
import nacl
from nacl.signing import VerifyKey
from nacl.encoding import HexEncoder


v = VerifyKey('c328dd78deb171f38ed6a6d7ff6f55a2f84fa75f1aca4d544beec00c6c882dbe', encoder=HexEncoder)
v.verify('ed23a4dab9aea504c74df88818e665cacbc98a258214d48b0be5491b7fae47b1ded7bba07be43286c60fa5e570fa4d2be12afc5a307be0703a9303402873a60761646d696e4067636f64652e7370616365', encoder=HexEncoder)
# b'<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aacbcec7c3c4eacdc9c5cecf84d9dacbc9cf">[email protected]</a>'

Запостил: gost gost, (Updated )

Комментарии (200) RSS

      • Здравствуйте.
        Ничего не понимаю. Переведи на «PHP». Именно поэтому я за «PHP». В «PHP» ничего этого нет. Именно поэтому я за «PHP».
        Ответить
        • вы хоть человек интеллигентный а срать «PHP» я у себя не позволю я человек больной между прочим войну прошел а вы за своими перфокартами отсиживались

          да, я угорел по сорокину, извините
          Ответить
            • Скачать текст первого параграфа Сборника Основ в формате 《PDF》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《RTF》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《TXT》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《FB2》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《XPS》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《XML》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《MHT》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《WPS》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《ODT》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《DOC》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《DOCX》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《DOCM》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《DOT》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《DOTX》
              
              
              Скачать текст первого параграфа Сборника Основ в формате 《DOTM》


              DOT — это же шаблон. Какая макака )))
              Ответить
                • Пока нет. Но можно заключить TXT в кавычки.

                  «XML» может означать что угодно. Это может быть формат «Word 2003» (предшествующий формату «DOCX», который появился в «Word 2007»). Это может быть «DocBook». Это может быть «XHTML». Это может быть произвольный XML с XSL-файлом, транслирующим его в «HTML».

                  Кстати, есть же JSON-LD для представления RDF в виде JSON вместо XML. Интересно, пытался ли кто-нибудь по аналогии сериализовать ODF или DOCX в JSON.
                  Ответить
          • кстати, что помимо оригиналов будет на первой странице, если скормить гуглу "чайком да майком"? правильно, сбербанк

            https://imgur.com/qrWZKCa
            Ответить
                • https://zlo.rt.mipt.cc/?authors

                  https://zlo.rt.mipt.cc/?uinfo=www - автор С++-ного движка (wwwconf), все основные вопросы

                  https://zlo.rt.mipt.cc/?uinfo=%5B)emon - разработчик движка, все основные вопросы

                  ---

                  http://web.archive.org/web/20100330210552/2ka.mipt.ru/~www/


                  wwwconf board engine - C++-based Conference Support and discussion forum

                  Forum Example (powered by wwwconf): support forum
                  (Feb 3, 2003 - NEW !) New version (1.10 beta 20) is available from wwwconf110b20
                  See ChangeLog in distibutive for details.
                  Description: conference written in C++ is very quick, powerful and can support up to 20-30 times more users and connections than popular UBB (Ultimate Bulletin Board by InfoPOP) or WebBBS (AWSD). Written without using any standart database management system for the performance improve.
                  Instruction "How To Install" included in downloadable package. All documentation is available in English language
                  Platform: Linux/Unix, Win32.
                  Download:

                  Source code: tar.bz2 archive (Unix, COMPILE READY!) rar archive
                  Binaries for Linux 2.1.3 (Red Hat 6.2 +): tar.bz2 archive
                  Binaries for FreeBSD 4.2-RELEASE: tar.bz2 archive
                  Ответить
                  • >conference written in C++
                    ахиресь

                    работает и правда быстро, кстати
                    во много раз быстрее современной phpbb параши
                    Ответить
                    • >> Основные настройки функциональности находятся в basetypes.h. Там можно
                      настроить систему безопастности, параметры сообщений, параметры влияющие на
                      производительность, логи, Locale, и др.

                      Для изменения настроек нужно переконпелировать движок.

                      Q: Как отключить поддержку тем?
                      A: define TOPIC_SYSTEM_SUPPORT 0 должен Вам помочь (только не перепутайте
                       строки, в которых можно его менять ! Этот дифайн определен в 2 местах в
                       basetypes.h - один раз для компиляции bbsconv ( в сооотвествующих строках,
                       дано обьяснение и этот параметр там всегда 0), а второй раз именно для
                       основной части WWWConf.
                      Ответить
                      • Нормально. До сих пор хипстота так делает. Например, если ты хочешь добавить свои правила в один из популярных форматтеров кода для Свифта, то ты должен - сюрприз, сюрприз! - добавить их в Rules.swift и перекомпилировать утилиту. Ну, можешь потом ещё PR сделать, чтобы смузибоги их оценили.
                        Ответить
                        • хипстота, лил) бородатые админы так делали 20 лет назад: если хочешь включить файрвол во фрибзди -- перекомпилируй ядро с нужной опцией конфига
                          Ответить
                      • ну может надо только файл config.so перекомпилировать, а весь движок -- перелинковать
                        Ответить
                    • /***************************************************************************
                                      bbsconv.cpp  -  WebBBS to WWWConf database convertor
                                                   -------------------
                          begin                : Wed Oct 1 2001
                          copyright            : (C) 2001 by Alexander Bilichenko
                          email                : pricer@mail.ru
                       ***************************************************************************/


                      У них там ещё СУБД собственная. Никакого SQL, только прямые вызовы методов:
                      /* insert message "mes" with body "body" acording CFlags to board
                       * REMARKS: mes->Host should be IP address, not a DNS name,
                       * this function DOESN'T SET CURRENT DATE AND TIME
                       * returns 0 if successfull, otherwise error code returned
                       */
                      int DB_Base::DB_InsertMessage(struct SMessage *mes, DWORD root, WORD msize, char** body,
                      							  DWORD CFlags, char *passw)
                      Ответить
                      • > только прямые вызовы

                        Да это норм, но я бы всё-таки какое-нибудь БерклиДБ поюзал, всё лучше чем свой велосипед...
                        Ответить
                        • вот да. Даже на перле я юзал tie для связи хешей ни то с berkelydb, ни то со sleepycat
                          Ответить
                        • > БерклиДБ
                          - это пиздец, я начал на сайте whorecl'а искать, что это и с чем его едят, и через какое-то время понял, что хожу по кругу по одним и тем же ссылкам.
                          Ответить
                            • Не, это я понял, но на сайте Оракла хер чо нормально найдёшь или почитаешь. Заходишь куда-то, а там текст шириной в экран БЛЯТЬ в духе BDB is robust solution.

                              Какие-то крайности кругом: или хипстота, умеющая лишь 10 неработающих тулзей в день на гитхаб заливать, или корпоративные маразматики, которые уходят в магазин за хлебом в марте, а возвращаются в сентябре.
                              Ответить
                              • Это тест на старпёра. Если ты разобрался, как пользоваться «БерклиДБ», значит, ты старпёр.
                                Ответить
                                • Кстати, а почему это для старпёров?

                                  Вот тебе нужно сохранить небольшую (на 100 ключей примерно) мапу (хешу, дикту, итд).


                                  Что ты будешь делать? json это лишнее (тебе не нужна человекичитаемость, размер важнее), sqlite оверкил
                                  Ответить
                                  • Зато поддержка json сегодня есть из коробки практически у любого утюга, а bdb это как-никак дополнительная зависимость.
                                    Ответить
                                    • смотря где. В перле, скажем, и то и другое ставится как зависимость, причем у BDB есть приятный API привязки к хешам, а как там у JSON я не знаю.

                                      Зацени:
                                      #/usr/bin/perl -w
                                      use strict;
                                      use v5.22;
                                      
                                      use BerkeleyDB;
                                      my %db;
                                      tie %db, 'BerkeleyDB::Hash', -Filename => 'file.db', -Flags => DB_CREATE or die "Can't open";
                                      
                                      # работаем как с обычным хешем
                                      $db{'name'} = 'petoox';
                                      $db{'iq'} = 12;
                                      
                                      untie %db;
                                      Ответить
                                      • Вот перл это как раз и есть хороший тест на старпёра)
                                        Ответить
                                        • Да, Perl с BDB это такой двухтысячный год:)
                                          Ответить
                                            • С собачкой?

                                              Я, дедушка, и водку Довгань помню, и дважды изображенного на бутылке (!) Распутина, и любящего мамбу Колю, и бомбомбомбомбомера, и фирму Партия, что в не политики и вне конкуренции (и уже в не бизнеса), и даже очень простую рекламу фирмы Сэлдом, и загадочный Идигов Продукт, b да: вот мы и в хапре.
                                              Ответить
                                              • А помнишь это?

                                                «Купил компьютер, а программ для него нет? Покупайте „Ай-Би-Эм“. „Ай-Би-Эм“ –— это наверняка!»
                                                Ответить
                                                • Чото не помню:((
                                                  Зато я помню "с процессором Интел Пентиум!" и еще парочку местных типа "поищу товар в price.ru, лишних денег не потрачу"

                                                  И книжу "IBM PC для пользователя"
                                                  Ответить
                                                  • вообще советую посмотреть передачу целиком
                                                    там есть и про Pentium75Mhz, который фирма представила в уходящем 1994-м, и про всемирную сеть
                                                    Ответить
                                  • А почему «JSON» — лишнее? Место экономить на мапе из сотни ключей — бессмысленно, скорость доступа — загрузил в память и дёргаешь все ключи максимально быстро.
                                    Вот если бы 100к ключей было — тогда, конечно, нужно встроенку рассматривать.
                                    Ответить
                                    • Да, в общем, примитивную мапу можно и в ямле хранить, или вообще в ини.
                                      Ответить
                                    • Да, про сотню ты прав, и тем более, как оказалось, для сотни JSON может оказаться даже меньше.

                                      Ну ок, для 100K лучше дбд, тем более что вон в перле оно имеет хорошый api (см выше)
                                      Ответить
                      • >DWORD root
                        запахло виндой. Там же прыщи на сервере? Как же это? Девайны чтоли?
                        Ответить
                        • Прыщи не на сервере, а на коже.

                          Цитирую "basetypes.h":
                          typedef unsigned short WORD;
                          typedef unsigned long DWORD;


                          Они, кстати, попытались написать кроссплатформенную питушню, выше по коду #ifdef WIN32. Для «Винды» у них грёбаные костыли:
                          inline WCFILE* wcfopen(char *fname, char *mode)
                          {
                          	WCFILE *f = (WCFILE*)malloc(sizeof(WCFILE));
                          	char *mn = (char*)malloc(strlen(fname) + 20);
                          	if(!f || !mn)
                          		goto FAILED;
                          	
                          	f->f = fopen(fname, mode);
                          	if(f->f == NULL)
                          		goto FAILED;
                          	
                          	strcpy(mn, "Global\\");	// we use global namespace
                          	strcat(mn, fname);
                          	f->MutexHandle = ::CreateMutex(NULL, FALSE, mn);
                          	if(!f->MutexHandle) {
                          		fclose(f->f);
                          		goto FAILED;
                          	}
                          	free(mn);
                          	return f;
                          	
                          FAILED:
                          	if(f) free(f);
                          	if(mn) free(mn);
                          	return NULL;
                          }
                          
                          inline void wcfclose(WCFILE *f)
                          {
                          	fclose(f->f);
                          	::ReleaseMutex(f->MutexHandle);
                          	::CloseHandle(f->MutexHandle);
                          	free(f);
                          }
                          
                          inline void flock(WCFILE *a, int b)
                          {
                          	if(b == 1) {
                          		::WaitForSingleObject(a->MutexHandle, INFINITE);
                          	}
                          	else {
                          		::ReleaseMutex(a->MutexHandle);
                          	}
                          }
                          Ответить
                          • ахаха, эмулировать позикс посредством таких наивных костылей это лулз) флок из виндового мутекса!)

                            какой api с сервером? это модуль апача? тогда для винды там isapi для iis, или считается, что оно тоже работает на апаче? или это cgi?
                            Ответить
                            • Изо всех наборов нерусских буков, которые ты перечислил, в исходниках обнаруживается только «cgi».
                              Ответить
                            • Сишка — лучший шоблонизатор:
                              void PrintLoginForm()
                              {
                              	printf("<P><FORM METHOD=POST ACTION=\"%s?login=action\">", MY_CGI_URL);
                              	
                              	printf(DESIGN_BEGIN_LOGIN_OPEN);
                              
                              	printf("<TR><TH ALIGN=RIGHT>%s</TH><TD><INPUT TYPE=TEXT NAME=\"mname\" SIZE=20 MAXLENGTH=%d "
                              		"VALUE=\"%s\"></TD></TR><TR><TH ALIGN=RIGHT>%s</TH><TD><INPUT TYPE=PASSWORD NAME=\"mpswd\" SIZE=20 "
                              		"MAXLENGTH=30 VALUE=\"\"></TD></TR>", MESSAGEMAIN_login_loginname, AUTHOR_NAME_LENGTH - 1,
                              		SCookie[COOKIE_ELEMENT_NAME], MESSAGEMAIN_login_password);
                              	
                              	printf("<P><TR><TD COLSPAN=2 ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE=\"Enter\"><CENTER></TD></TR>" DESIGN_END_LOGIN_CLOSE "</FORM>");
                              
                              	printf(MESSAGEMAIN_login_lostpassw);
                              }
                              Ответить
                          • >::WaitForSingleObject
                            Вроде сишка как сишка, но мерзкие 2 точки спереди.
                            Зачем? Зачем?

                            >WaitForSingleObject
                            >ReleaseMutex
                            >flock
                            >wcfclose
                            При том что в регистрозависимом языке с функциями в нижнем регистре коллизия с WinApi практически невозможна.
                            Ответить
                            • так плюсы же

                              как они соотносяца с malloc я хз
                              Ответить
                              • > плюсы же
                                > strcpy
                                > strcat
                                > goto FAILED;
                                > free(mn);

                                Я о другом. :: необязательно, если уверен что не будет коллизий имён.
                                А откуда там взяться коллизии, если имена твоих функций нижнимрегистром, а всё ВинАпиСБольшойБуквы
                                Ответить
                                • черт его знает, зачем. Зачем он вообще начал плюсы? где там плюсы, кроме как в :: ?

                                  например вот тут
                                  "struct SMessage *mes"

                                  нужен бы референс, они даже в крестах в 2001-м году были
                                  нонет
                                  Ответить
                                • > :: не обязательно

                                  Их часто пишут чтобы показать что это именно сишная глобпльная хуйня, а не какой-нибудь метод класса.
                                  Ответить
                                  • Это понятно.

                                    Но смотрится странно в коньтексте остального сищного кода.

                                    >inline WCFILE* wcfopen(char *fname, char *mode)
                                    Тем более что классами там не пахнет.
                                    Ответить
                                      • слушай, ну в 2001-м году не было еще утфа везде, и констов не было кажется, и вообще

                                        или ты про сам факт такой работы со строкой?
                                        Ответить
                                        • Не, консты уже сто лет были. Принимать неконстантный укококозатель на char — просто пиздец какое тупое говно.
                                          Ответить
                                            • какой C++ :))
                                              /* function for concatenation string s to d
                                               * with converting smile-codes to images
                                               */
                                              void inline ParseSmiles_strcat(char *d, char *s)
                                              {
                                              	register char *dd = d + strlen(d);
                                              	register char *ss = s;
                                              	unsigned int i = 0;
                                              	while(*ss != 0) {
                                              		i = ParseToOpenSmileTag(ss);
                                              		if(i) {
                                              			char si = ss[i];
                                              			ss[i] = 0;
                                              			strcat(dd, ss);
                                              			dd +=strlen(ss);
                                              			ss[i] = si;
                                              			ss += i;
                                              		}
                                              		if(*ss == 0) break;
                                              		for(register unsigned int j = 0; j < BoardPicCount; j++) {
                                              			if(strlen(PicConvTable[j].tag) <= strlen(ss) && 
                                              				strncmp(ss, PicConvTable[j].tag, strlen(PicConvTable[j].tag)) == 0 ) {
                                              				strcat(dd, "<IMG BORDER=0 SRC=\"" BOARD_PIC_URL);
                                              				strcat(dd, PicConvTable[j].url);
                                              				strcat(dd, "\">");
                                              				dd += strlen(dd);
                                              				ss += strlen(PicConvTable[j].tag);
                                              				goto next_sym;
                                              			}
                                              		}
                                              		*dd = *ss;
                                              		dd++;
                                              		ss++;
                                              next_sym: ;
                                              	}
                                              	*dd = 0;
                                              }
                                              Ответить
                                                • файл называется boardtags.cpp

                                                  Автор демонстрирует гипертрофированное презрение к плюсам . К примеру, вместо const у него
                                                  #define BoardTagCount 16
                                                  #define BoardPicCount 14


                                                  Встречаются такие вот структуры
                                                  struct STagConvert {
                                                  	/* board tag */
                                                  	char *tag;
                                                  	/* corresponding opening and closing HTML tags */
                                                  	char *topentag;
                                                  	char typeopen;
                                                  	char *tclosetag;
                                                  	char typeclose;
                                                  	/* security level of tag
                                                  	* zero - is highest level
                                                  	*/
                                                  	BYTE security;
                                                  };


                                                  А про вот это я даже шутить не буду
                                                  ignore_tag:
                                                  			if((*s) != 0) {
                                                  				register char si;
                                                  				si = *(s + 1);
                                                  				*(s +1 ) = 0;
                                                  				strcat(st, s);
                                                  				*(s + 1) = si;
                                                  				s++;
                                                  			}
                                                  parse_next:
                                                  			if(tag1) {
                                                  				free(tag1);
                                                  				tag1 = NULL;
                                                  			}
                                                  			if(tag2) {
                                                  				free(tag2);
                                                  				tag2 = NULL;
                                                  			}
                                                  			if(res) {
                                                  				free(res);
                                                  				res = NULL;
                                                  			}
                                                  	}
                                                  Ответить
                                                  • Возможно, автор борды просто был тогда продвинутой студентотой. Там си с классами это обычное дело.
                                                    Ответить
                                                    • Да, скорее всего.

                                                      Студентов учат "c++", при этом конечно ничего (кроме cout <<) из ++ они не знают
                                                      Ответить
                                              • > strcat

                                                Привет от Шлемиэля. А, они dd двигают. Ну ок.

                                                А вот буфер может переполнить, длина d тут нигде не ограничивается...
                                                Ответить
                  • Я когда поступал в вуз, подавал документы куда мне надо, и ещё в один парашатский вуз (на всякий случай). Так вот там возле приёмной комиссии сидел примерно такой же мужик, отговаривающий и «рекомендующий» пройти отсюда, ты всё равно не осилишь конкуренцию, тут «английский» и прочие навыки нужны. А проходил я с 1 места в рейтинге.
                    Ответить
                    • Тут английский, компьютеры, математика всякая, все равно не разберешься. Поступай лучше к нам в техникум на массовика-затейника!
                      Ответить
                • > Акультурного человека тут сбивает с толку эклектичность собеседника, который пишет на Вы, уважительно приветствует и так же прощается. Он может быть хорошо одетым, он может быть уважаемым отцом пятерых детей или вождем пролетариата. Но стоит задеть значимую для него проблему, его интересы, ценности, чсв, его веру или идеологию, как животное начало становится доминантным. Тут ваш собеседник сам не заметит того, как вас оскорбит и унизит, как изнасилует женщину или устроит геноцид целого народа.
                  Ответить
  • Какой анскилл )))
    Отправил тебе письмо, проверь.
    Ответить
      • какой анскиилл со стороны клаудного флёра.
        Ответить
        • «Cloudflare» тут ни при чём, он почту не проксирует. Я на другом сервачке в LA почтового питуха настроил.
          Ответить
          • PTR-запись для айпишника кто предоставляет?

            P.S. Не дочитал сразу, что у тебя почтовый питух на другом сервере.
            Ответить
            • Провайдер предоставляет, в саппорт писать надо.
              Ответить
              • лол, у меня у всех облачных хостеров это можно сделать через веб интерфейс
                Ответить
          • аа, тогда пни своево облачново провайдера
            обычно все это позволяют

            кстати, ты не обязан принимать почту на свой сервер: яндекс и гугл имеют сервис "почта для домена". Или тебе нтересно именно пирдолица?

            зы: ETRN я бы отключил, кмк он нахуй не нужен в современном мире.
            Ответить
            • Да, пну.
              Причём я его уже пинал, потому что по-умолчанию у них исходящий трафик на 25-й порт заблокирован, а для разблокировки надо пояснить за свою почту. Какой багор )))

              > яндекс
              Говно, хотя вкусное (на джвух доменах я использую его).

              > гугл
              Платный, мне впска дешевле обходится.

              > Или тебе нтересно именно пирдолица?
              Ну и это в том числе, да.
              Ответить
              • А что у тебя за хостер? В хуизе он надежно спрятан, я только понял, что он стоит в датацетре https://www.inap.com/

                1. почему говно?
                2. разве платный?
                3. ну тогда удачи и 10/10 на mailtester.
                а как ты будешь забирать почту? имап, или вебморду прикрутишь? или процмейлом будешь форвардить на гугл?
                Ответить
                • Это «DesiVPS», индусы (реально индусы, из Индии которые!). «Акционный» план за три бакса (https://clients.desivps.com/cart.php?a=add&pid=25&currency=2, вроде не рефералка). Образовались в декабре прошлого года UPD: просто в прошлом году, панелька страшно лагает, но впска вроде как работает.
                  Наткнулся на них вчера (так что по надёжности ничего сказать не могу), решил проверить. Подозреваю, что продержатся они недолго, но за такую цену пох (не на год брал жи).

                  1. Потому что я в РФ живу.
                  2. Да, $5.4 минимальный план (на одного юзера). Несколько лет назад вроде был бесплатным, но потом лафа кончилась. Сейчас только триал на две недели.
                  3. Спасибо. Собственно, на MT у меня 8.9, единственная приёбка — -1.1 за «rDNS».
                  Я свой «Thunderbird» прикрутил. Собственно, через него я и всю остальную почту забираю.
                  Ответить
                  • 1. К товарищу майору не хочется?
                    2. Понятно, у меня данные устарели.
                    3. А какой у тебя селектор дкима? default чото нету

                    прикрутил к имапу? implicit tls, я надеюсь?
                    Ответить
                    • 1. Да. Предпочитаю, чтобы мои вореции читал господин майор из АНБ, потому что господину майору из АНБ на меня глубоко похуй. В отличие от товарища майора, которому надо план выполнять.
                      3. «main».

                      Да, всё по «TLS».
                      Ответить
                      • хуясе, у тебя ключ 2К, обычно у всех 1024 в dkim. Надо бы и мне проапгрейтится.
                        Ответить
                        • Подтверждаю, дефолтные 1024 мне моказались слишком маленькими.
                          По моему скромному опыту, кстати, апгрейдиться надо аккуратно: всякие там «Гуглы» на несколько часов (минимум, полагаю) кэшируют DNS записи, поэтому если начать слать письма сразу после смены — может выйти багор.
                          Ответить
                          • Есть еще подозрение, что некоторые почтовые питухи могут не мочь верифицировать такой ключ, и лопотнут тунца.

                            Кстати, на счет опендкима и постфикса: я когда настраивал, столкнулся с двумя стульями:
                            smtpd и cleanup (какой багор, кстати, что мильтры можно прикручивать к ним обоим) оба чрутнутые по умолчанию.

                            Я же хотел, чтобы опендким слушал unix socket, в который (по пермишену) может писать только член группы postfix.

                            Но из за чрута они не видели сокет за пределами своей писочницы. Нужно или сунуть сокет прямо туда, или отключить чрут.

                            Потом я пошел в рассылку постфикса, и там Венема велел дкиму слушать tcp порт, и не ебсти мозг.
                            Ответить
                            • Да не должны:
                              >>> Verifiers MUST be able to validate signatures with keys ranging from 512 bits to 2048 bits, and they MAY be able to validate signatures with larger keys.
                              https://tools.ietf.org/html/rfc6376

                              Я пока пердолился с этим зоопарком — чуть не ёбнулся. Такое чувство, что «классические» почтовые питухи сделаны по принципу «Перла», с его охулиардом разных способов сделать одно и то же (одна только коммутация чего стоит).
                              Ответить
                              • в целом так и есть

                                постфикс это еще щадящий вариант по сравнению с сами знаете чем, но даже у него есть три интерфейса: qmtp, smtp submission и и командная строка эмуляции sendmail (самый медленный способ, лол)
                                Ответить
                  • > Подозреваю, что продержатся они недолго, но за такую цену пох (не на год брал жи).

                    по цене тот же хетцнер, чего бы и не продержаться
                    Ответить
    • // If there are two different ways of doing something, PSD will do both, in different
      // places. It will then make up three more ways no sane human would think of, and do those
      // too. PSD makes inconsistency an art form.


      Им надо чтоб их ёбом крыли с утра до вечера тогда они мож немного одумаются. А вы всё чайком да майком. Хуйком им а не чайком надо.
      Ответить
    • Не думаю, что любой подобный монструозный формат может быть в принципе хорошим.
      Ответить
      • Любой формат с тридцатидвухлетней историей всегда говно
        Ответить
            • Какой багор )))

              Переносы строк можно и конвертировать при желании. Это легче, чем разобраться в куче вариаций двоичного формата.
              Ответить
          • да-да, и бинарный не говно. К сожалению, ни тот, ни другой не имеют семантики, и форматом не являются
            Ответить
              • какое слово тебе непонятно, джаваскриптер?
                Ответить
                • Слово "джаваскриптер". Остальные слова понятны, однако вместе они не собираются в предложение, которое имеет какой-то смысл.
                  Ответить
                  • Хорошо, попробую объяснить.

                    "Текстовый" файл это такой файл, который использует только печатные символы. Бинарный же может использовать любые.

                    Эти определения ничего не говорят нам о том, какие именно данные хранятся в этом файле, и как трактовать те байты, что в нем находятся.
                    Это знание я и назвал (может быть не совсем точно) семантикой.

                    Строка "E0Q0S0=0V1X1" может означать что угодно, и только посвященный знает, что это строка инициализации какого-то модема: для него семантика этой строки известна.

                    В данной дискуссии мы говорили про .psd, .doc и другие форматы файлов. Проблемы этих форматов вовсе не в том, что они бинарны, а в том, что семантика их нам неведома: мы не знаем, что означает вооот тот байт. И совершенно не важно будет этот байт иметь значение 102 (то-есть быть печатным) или 3 (то-есть не печатным).

                    Противопоставление .pdf и "текстового формата" неверно.

                    В конце концов можно его uuencode или Base64, и он станет текстовым. Но понимания это не прибавит.

                    Даже те форматы, которые изначально создавались как текстовые, всё равно порой не понять без специальной подготовки. Среди таких форматов:

                    * Исходные коды на языке J
                    * Записи в файле termcap:
                    ansi-mr|mem rel cup ansi:\
                    	:am:bs:xo:\
                    	:co#80:li#24:\
                    	:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cr=^M:do=^J:le=\E[D:\
                    	:nd=\E[C:sf=^J:up=\E[A:

                    * Некоторые логи Windows
                    AudMig: Migrated {a45c254e-df1c-4efd-8020-67d146a850e0},2 property at 1
                    AudMig: Migrated {9637b4b9-11ee-4c35-b43c-7b2452c993cc},1 property at 10
                    AudMig: Migrated {259abffc-50a7-47ce-af08-68c9a7d73366},12 property at 14
                    AudMig: Migrated {b3f8fa53-0004-438e-9003-51a46e139bfc},0 property at 20
                    Ответить
                        • troff тоже ничево
                          .Dd November 27, 2017
                          .Dt INTRO 6
                          .Os
                          .Sh NAME
                          .Nm intro
                          .Nd "introduction to games"
                          .Sh DESCRIPTION
                          This section contains information about the traditional BSD games.
                          The games
                          are located in
                          .Pa /usr/bin
                          if installed.
                          .Sh FILES
                          .Bl -tag -width /usr/bin -compact
                          .It Pa /usr/bin
                          location of games
                          Ответить
                      • всё так:)
                        # strip group: syntax (not inside angle brackets!) and trailing semicolon
                        R$*                     $: $1 <@>                       mark addresses
                        R$* < $* > $* <@>       $: $1 < $2 > $3                 unmark <addr>
                        R@ $* <@>               $: @ $1                         unmark @host:...
                        R$* [ IPv6 : $+ ] <@>   $: $1 [ IPv6 : $2 ]             unmark IPv6 addr
                        R$* :: $* <@>           $: $1 :: $2                     unmark node::addr
                        R:include: $* <@>       $: :include: $1                 unmark :include:...
                        R$* : $* [ $* ]         $: $1 : $2 [ $3 ] <@>           remark if leading colon
                        R$* : $* <@>            $: $2                           strip colon if marked
                        R$* <@>                 $: $1                           unmark
                        R$* ;                      $1                           strip trailing semi
                        R$* < $+ :; > $*        $@ $2 :; <@>                    catch <list:;>
                        R$* < $* ; >               $1 < $2 >                    bogus bracketed semi

                        Правда я в .cf редко лажу руками, а mc мой малюсенький, хотя и сильно перехуяченный.

                        Ничего, лет через восемь выйдет slackware 15, и я окончательно везде перейду на postfix
                        Ответить
                    • > который использует только печатные символы
                      И не содержит непечатных выражений.

                      Ньюлайны, которых ты нахерачил больше десятка - непечатные
                      Ответить
                    • Формат текстового файла должен быть интуитивно понятным и читаться людьми. Файлы "+eгтсар" - питушня, которая ничем не лучше программ из букв, которые подбирал какой-то хацкер (недавно упоминали на ГК).
                      Ответить
                      • define "интуитивно понятным"

                        /etc/passwd интуитивно понятен?
                        Ответить
                        • Ожидается, что среднестатистический человек из определённой группы поймёт, как устроен файл, если ему отдельно не сообщали, как он устроен.

                          Там хранятся имена и пароли через двоеточие? Скорее всего, это интуитивно понятный формат.
                          Ответить
                          • нет, пароли там уже 30 лет как не хранятся.
                            Обычно там хранится вот
                            _apt:x:104:65534::/nonexistent:/usr/sbin/nologin

                            всё ли тут понятно? текстовый ли файл?
                            Ответить
          • Запомни, маня, навсегда.

            Любой TXT используют только идиоты.

            TXT имеет смысл только для текста, читаемого человеком.

            Очевидно, что всё остальное - ненужно.
            Ответить
            • Царь, садись на флешку!

              Современная программа редко живёт пару-тройку десятков лет, чего нельзя сказать о людях.

              Если надо, чтобы важный файл читался, его требуется сохранить в TXT.
              Ответить
              • Главное, чтобы потом бНОПНЯ больно по жопе не ударила.
                Ответить
                • Бнопню потом восстановить всё же проще зная кодировку. А поди прочитай файл реестра от WinNT4, например
                  Ответить
                  • Если важному файлу пара-тройка десятков лет, то кодировка может относиться примерно к тому же разделу науки, что и египетские иероглифы.

                    Одна надежда, что, если он действительно важный, то его иногда пересохраняют на актуальных платформах, а не хранят бережно записанным на магнитную ленту в ящике в архиве на полке A14E117.
                    Ответить
                    • Ну текст на английском будет или в ASCII или в EBCDIC в любом случае. А вот что его могут хранить на магнитной ленте, которая осыпалась в 1991-м году -- это правда
                      Ответить
                      • И еще переводить на современный язык (даже английский). А то открываешь - а там какое-нибудь thou arth ye olde konungs hring.
                        Ответить
                          • 1. Thou needeth a wet-nurse
                            2. Yellowbellies-r-us
                            3. Bringest them oneth
                            4. Thou art a smite-meister
                            5. Black plague possesses thee

                            Note: The skill names apparently parody the badly-understood Early Modern English common in fantasy RPG. 1, 3 and 5 are grammatically non-standard; they should be Thou needest a wet-nurse, Bring(eth) them on (with -eth appearing in the plural imperative, but not the singular), and Black plague possesseth thee.
                            Ответить
                        • Вот да.
                          Недавно открыл один файл, а там
                          [quote]
                          Скве́рнꙋ всю̀ страстнꙋ́ю ѿри́нꙋвше,
                          досто́йный бж҃е́ственнагѡ ца́рствїѧ ра́зꙋмъ воспрїи́мемъ бл҃гомꙋ́дрственный
                          [/quote]
                          Ответить
                          • Ну в этой среде принято поддерживать очень старые форматы файлов, использовать ранние версии языков, а то при конвертации могут возникать разные глюки. В результате имеем кучу несовместимых и часто конфликтующих бранчей и форков. Но пользователей, которым сложно переучиваться, это привлекает, плюс грамотный пиар и, иногда, лоббирование на уровне государства.
                            Ответить
                            • Латынь и иврит, давным-давно вымершие, зачем-то подняли из архивов и продолжили развивать.
                              Ответить
                              • Латынью формально пользуется Ватикан, и её по-тихоньку всегда учили, и никогда не забывали, ну плюс некоторые романоязычные чуваки (хранцузы скажем) долго утверждали, что говорят на латыни.

                                А вот иврит и правда выкопали
                                Ответить
                      • С английским, по идее, вообще не должно быть особых проблем. А вот со всем, что не помещается в адские, вероятно будут.
                        Ответить
                        • ну, у русского например всего-то
                          CP866
                          CP1251
                          KOI8-R
                          Mac Cyrillic
                          ISO-8895-5

                          Можно просто все перепробовать
                          Ответить
                          • ISO-8859-5 в русском почти не использовалась (её, кажется, использовали в СФРЮ или типа того), зато на советских компах была ещё куча несовместимых кодировок. Гугли «ГОСТ основная» и «ГОСТ альтернативная»; альтернативная была похожа на CP866, но последние 16 символов могли быть разными (могли быть математические символы, могли быть украинские и белорусские буквы), а основная вообще не похожа на перечисленные.

                            Если уж вспомнил экзотическую ISO8859-5, то нужно ещё вспомнить адаптацию EBCDIC к кириллице и «болгарскую кодировку». Последнюю вынужденно использовали и в России, когда пользовались компами болгарского производства.

                            Есть ещё куча кодовых страниц, номеров которых я не вспомню, предназначенных для болгарского, македонского, сербскохорватского и для языков СССР. Они в основном отличаются от самой популярной кодовой страницы расположением символов с акцентами.

                            А ещё русский текст может быть в Unicode (UTF-8, UCS-2LE, UCS-2BE, UTF-16, UTF-32), в какой-то китайской и в какой-то японской кодировке, которые содержат набор символов, похожий на Unicode. Сверху всё это может быть завёрнуто в base64, в urlencode, в html entities...
                            Ответить
                            • Кстати, ISO-8859-5 очень хорошая.
                              В ней есть всё, что нужно этим вашим православным (кириллическим) славянам.

                              Украинцев обрадуют буквы Ѓ, Є, Ї и І
                              Беларусам подойдет Ў (а так же Ё, которая у них не опциональна в отличие от)
                              Упомянутым тобой жителям бывших СФРЮ понравятся Ђ, Ј, Ћ, Њ, Љ и Џ.

                              Жаль, что она не стала дефакто. Вместо нее наплодили национальных говнокодировок (koi8-u и пр)
                              Ответить
                              • ISO-8859-5 вошла в Unicode блоком.

                                Не стала дефакто для «DOS», потому что «Нортон Коммандеру» нужны были псевдографические символы для рисования рамок.

                                Не стала дефакто для «Windows», потому что она ISO, а в США, где выпускают «Windows», всё основано на ANSI. В CP1251, кстати, Ґ, Є, Ї, І и прочие упомянутые тобой символы есть, правда, расположены они хаотично, что усложняет алгоритмы «ПОДНЯТЬ» и «опустить».

                                a W lINUKSE UGORELI PO OTREZANI@ STAR[EGO BITA, POETOMU WYBRALI KOI8. i OPQTX VE DO RASPROSTRANENIQ GRAFI^ESKIH PROGRAMM NUVNY BYLI SIMWOLY RISOWANIQ RAMOK. kONSOLEBLQDI SOSNULI.
                                Ответить
                            • Вспомним ещё, что в «HTTP» для передачи доменного имени используется «Punycode», а для передачи остальной части адреса — urlencode (причём раньше в urlencode заворачивались КОИ8 или CP1251, а сейчас заворачивается UTF-8). Кака́я консистентность )))
                              Ответить
                            • Кстати, вот тебе правдивая история кодировки 866. Там есть еще интересное про украинский:)
                              http://rdos401.org/
                              Ответить
                • Бнопню любой фар прозрачно раскодирует, даже не заметишь.
                  Ответить
              • >Если надо, чтобы важный файл читался, его требуется сохранить в TXT.

                Как это ни странно Царь по факту прав.
                Например git же никто не ругает за хранение в бинарном виде.

                А хранил бы он как некоторые другие системы (SVN), все файлы в тестовом виде, да по файлу на версию. Ото бы ребятки вы узнали что такое пиздец.

                Мне несколько раз доставались легаси-репозитории в SVN.
                Один из них был на 100Гб.
                Больше суток клонился, выжрал почти всё место на диске. Тогда терабайтников не было.

                гуглим: How to decrease .svn folder size?

                https://stackoverflow.com/questions/21027326/reducing-the-size-of-the-svn-folder

                As far as I know svn holds copies of versioned files in .svn folders. It is a good idea for text files cause they can be reverted fast without server interaction. Correct me if I am wrong. But our repo contains many big binary files that I never touch at all (zip files with textures updated by artists). And because I've swithed to SSD not long ago this now really matters me. Is there any possibility not to store copies for files more than X Mb in size? It will save ~10Gb for me.
                Ответить
                • ну вообе биг байнари файлы в vcs хранить -- так себе идея

                  в текстовом файле часто меняется 10 строчек, и сам файл редко бывает больше тысячи строк

                  а в бинарнике размером в 10 метров может поменятся половина легко.
                  Ответить
                  • В каком-нибудь жопеге поменяешь один пиксель — весь файл распетушится.
                    Ответить
                • Важный файл надо хранить в txt, потому что svn говно, я правильно понял?
                  Ответить
                  • Важный файл надо хранить в txt, потому что у Пи был реп на 100 гигов в те времена, когда еще не было терабайтников
                    Ответить
                    • Та SVN-репа на 100 гигов, при конвертации в гит весила меньше 100 метров.
                      Ответить
                • Да ладно, свн хотя бы одну копию этих файлов хранит... Гит хранит все версии. И их потом оттуда хер выкорчуешь (если репу юзает не один человек, конечно).
                  Ответить
                  • Все это какие? Те, которые зачекаутили?

                    Или все из дерева коммитов?
                    Ответить
                    • Каждую версию каждого файла, репа автономная же, можно без сервака полноценно работать. Ну если ты не юзаешь частичное клонирование.

                      В этом и заключается основная жопа гита по сравнению с клиент-серверными СКВ. И её пытаются решить всякими ёбаными костылями в духе LFS и виртуальных файлух.
                      Ответить
                      • git использует зожатие и хранит бинарники.

                        SVN тупо хранит текст.

                        >Каждую версию каждого файла, репа автономная же
                        Вообще-то git хранит только диффы. А SVN держит на диске именно КАЖДУЮ ВЕРСИЮ КАЖДОГО ФАЙЛА.

                        > основная жопа гита по сравнению с клиент-серверными СКВ
                        git clone --depth=1
                        Ответить
                        • > git использует зожатие

                          Только в паках же, да и те же картинки очень хуёво жмутся и дельтятся. Разве нет?
                          Ответить
                          • >да и те же картинки очень хуёво жмутся и дельтятся
                            Так в гит картинку раз закомитил и она себе преспокойно хранится.

                            А в SVN оно разосрётся на сотни картинок, на каждую версию.

                            На винде без симлинков это было больно.

                            >Только в паках же
                            git gc
                            Ответить
                              • >у свн вообще дедупликация не работает?

                                Я же говорю: там есть симлинки.

                                Но у меня на винде они тогда не сработали.

                                Плюс если в файле поменян хотя бы 1 байт, то от симлинка толку не будет.
                                Ответить
                            • А блин, оказывается у гита не только паки пожаты. Сами object'ы тоже детектятся как zlib compressed data
                              Ответить
                            • > git gc

                              Спасибо, но нет. Разве что в планировщик на ночь. И не дай бог автоматический gc забыл отключить...
                              Ответить
                              • git gc каждую ночь

                                git gc --aggressive раз в неделю, в субботу
                                Ответить
                                • Каждую ночь ты сидишь у окна,
                                  Передвигая звёзды.
                                  Каждую ночь тебе не до сна,
                                  Всё это так серьёзно.

                                  Я помню, я знаю,
                                  Ветер в твоих руках
                                  Искусственным раем
                                  Бредил в твоих мечтах.

                                  Нажми на кнопку –—
                                  Получишь результат,
                                  И твоя мечта осуществится.
                                  Нажми на кнопку!
                                  Ну что же ты не рад?
                                  Тебе больше не к чему стремиться.
                                  Ответить
                                • Да нахуя? Мусор от временных веток будет убран еще в первом поколении, на уровне object'ов. В паки он почти не попадает если не злоупотреблять gc. В итоге этот aggressive на практике нихуя не удаляет. Ну десяток-другой файлов, которые и не мешали.
                                  Ответить
                                  • в основном ради --depth, хотя если честно, то я не проводил исследований: может быть прироста и никакого, но в ночь субботы я все равно сплю бухой
                                    Ответить
                                      • ты имеешь вииду, что дельты будут такие пиздецовые с большим depth, что история будет тупить?
                                        Ответить
                                          • --depth limits the maximum delta depth; making it too deep affects the performance on the unpacker side, because delta data needs to be applied that many times to get to the necessary object.

                                            The default value for --window is 10 and --depth is 50. The maximum depth is 4095.

                                            у агрессива она выше
                                            Ответить
                                            • А, ты про глубину дельт, я думал ты про depth который в клоне...
                                              Ответить
                                              • а, который схлопывает всё?

                                                Я так делал пару раз, когда хотел быстро получить последнюю версию на машине не занимая много места.
                                                Ответить
                                    • > прироста никакого

                                      Скорее всего так и есть. В повседневной работе ты меняешь сотню-другую файлов, по сравнению с гигабайтами окаменелой истории они погоды не делают. Поэтому gc особо нечего удалять и оптимировать...

                                      Поэтому я не вижу смысла в частых gc.
                                      Ответить
                                      • Так а я если я сделаю pull, мне приедет фичабранч коллеги с кучой говна, а потом коллега его грохнет, и у меня останутся его коммиты, которые гит удалит только при гц

                                        или нет?или гит умеет референс каунтинг?


                                        Я говорю конечно про обычный gc, про агрессивный (который там дельты старые трогает) он наверное нахуй не нужен
                                        Ответить
                                        • Дык не делай фетч на всё подряд. Зачем тебе эти 100500 веток, которые ты даже смотреть не будешь?
                                          Ответить
                                          • я просто делаю git pull, и теку
                                            гит, наскока я помню, фетчит в таком случае все бранче в ремоуте

                                            или я пижжу?

                                            А ты типа делаешь fetch и merge потом именно для каждого нужного тебе бранча?
                                            Ответить
                                              • я трекаю одновременно порядка пяти веток (мастер, стабльную, пару бранчей коллеги, свои бранчи итд)

                                                Впрочем, я могу указать их в refspec, может ты и прав
                                                Ответить
                                              • а
                                                подожди

                                                ты этой коммандой заказал сфечивание этой ветки и вмердживание в твою текущую.
                                                Ответить
                          • смотря какие картинки: думаю что svg можно зожать, а jpeg -- нет

                            нехуя хранить в вершен контроле джарники на 30 мегабайт я щитаю, и не будет проблем
                            Ответить
                            • Ну джарники и экзешники это лишнее, конечно.

                              Но что делать всяким дизайнерам с их исходниками картинок и макетов? Не хранить же на шаре.
                              Ответить
                      • ну уж не каждую версию: только дельты же
                        Ответить
                  • Это если симлинки есть.
                    >cвн хотя бы одну копию этих файлов хранит...

                    А на винде оно как-то криво было. При клонировании оно сохраняло копию каждого файла для каждой версии.
                    Ответить
            • Это зависит. Имхо, любому файлу лучше быть читаемым человеком. Человеки могут его править, делать диффы, хранить в VCS итд.

              Но иногда файлу важно иметь малый размер или быстро парситься. Тогда разумеется текстовый формат использовать нельзя.

              К сожалению, хипстота часто в это не может. Уссыкаюсь с чуваков, которые хранят стометровые джейсоны, в которых число "100500" занимает 6 байт, а null -- 4
              Ответить
              • Стартапу такое фиксить некогда, а кровавому энтерпрайзу незачем.

                Вот и получается, что настоящее кошерное программирование где-то посередине между стартапами и Ъ.
                Ответить
              • Вот я до сих пор не понимаю, нафига SVG сделали текстовым. Маловероятно, что их кто-то руками пишет и тем более читает.
                Ответить
                  • Да там же от XML только верхний слой, а сами векторы - жуткое зожатое символоёбство где даже пробелы экономят...
                    Ответить
                    • текстовый формат хорош тем, что легко проходит через семибитные сети. Вспомни SMTP
                      Ответить
                • Можно относительно просто цвет какой-нибудь питушни поменять, например.
                  Ну и царский инлайн, конечно же. У остальной питушни остаётся только Data-URL из приличных решений.
                  Ответить
                • Я писал SVG руками. На нём можно делать «дерьмотиваторы»: писать текст и вставлять растровую картинку ссылкой.
                  Ответить
    • Отличный паттерн!

      В мультфильме «Лето кота Леопольда» кот обратил машину Голдберга, чем сорвал планы мышей. В каком-то из выпусков КВН тоже показали машину Голдберга, которая может работать в двух направлениях, но я сходу не нагуглю.
      Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8