1. Python / Говнокод #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'[email protected]'

    Запостил: gost, 29 Февраля 2020

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

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

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


                DOT — это же шаблон. Какая макака )))
                Ответить
                • >xml
                  а в json есть?
                  Ответить
                  • Пока нет. Но можно заключить 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/?read=9617480

                Кстати, оцените дизайн. Это же портал в прошлый век.
                Ответить
                • вангую бекенд на перле
                  Ответить
                  • перленд
                    Ответить
                  • https://zlo.rt.mipt.cc/?authors

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

                    https://zlo.rt.mipt.cc/?uinfo=[)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                : [email protected]
                         ***************************************************************************/


                        У них там ещё СУБД собственная. Никакого 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'а искать, что это и с чем его едят, и через какое-то время понял, что хожу по кругу по одним и тем же ссылкам.
                            Ответить
                            • Это было за долго до SQLite, такая ки-валуе база данных файловая
                              https://en.wikipedia.org/wiki/Berkeley_DB
                              Ответить
                              • Не, это я понял, но на сайте Оракла хер чо нормально найдёшь или почитаешь. Заходишь куда-то, а там текст шириной в экран БЛЯТЬ в духе 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 для пользователя"
                                                    Ответить
                                                  • ахахаа, я охуенное нашел!

                                                    https://youtu.be/KW0Lu_HMX8s?t=983

                                                    Это, кстати, к вопросу о "22-х летних студентах"
                                                    Ответить
                                                    • вообще советую посмотреть передачу целиком
                                                      там есть и про 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)
                                      Тем более что классами там не пахнет.
                                      Ответить
                                      • > char *fname

                                        Фублядь, фунахуй... const'ов тогда ещё не было?
                                        Ответить
                                        • слушай, ну в 2001-м году не было еще утфа везде, и констов не было кажется, и вообще

                                          или ты про сам факт такой работы со строкой?
                                          Ответить
                                          • Не, консты уже сто лет были. Принимать неконстантный укококозатель на char — просто пиздец какое тупое говно.
                                            Ответить
                                            • да, ты прав
                                              IS C++98,C++03.
                                              http://alenacpp.blogspot.com/2005/09/const-2.html
                                              Ответить
                                              • какой 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;
                                                }
                                                Ответить
                                                • Где тут C++, гость?
                                                  Ответить
                                                  • файл называется 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 тут нигде не ограничивается...
                                                  Ответить
                • Там же рядом просто АГОНЬ

                  https://zlo.rt.mipt.cc/?read=9617457
                  Ответить
                  • толсто же
                    Ответить
                    • Я когда поступал в вуз, подавал документы куда мне надо, и ещё в один парашатский вуз (на всякий случай). Так вот там возле приёмной комиссии сидел примерно такой же мужик, отговаривающий и «рекомендующий» пройти отсюда, ты всё равно не осилишь конкуренцию, тут «английский» и прочие навыки нужны. А проходил я с 1 места в рейтинге.
                      Ответить
                      • Тут английский, компьютеры, математика всякая, все равно не разберешься. Поступай лучше к нам в техникум на массовика-затейника!
                        Ответить
                  • > Акультурного человека тут сбивает с толку эклектичность собеседника, который пишет на Вы, уважительно приветствует и так же прощается. Он может быть хорошо одетым, он может быть уважаемым отцом пятерых детей или вождем пролетариата. Но стоит задеть значимую для него проблему, его интересы, ценности, чсв, его веру или идеологию, как животное начало становится доминантным. Тут ваш собеседник сам не заметит того, как вас оскорбит и унизит, как изнасилует женщину или устроит геноцид целого народа.
                    Ответить
            • По этому я за ПХП на перфокартах
              Ответить
    • подписал тебе адрес, проверь
      Ответить
    • Какой анскилл )))
      Отправил тебе письмо, проверь.
      Ответить
      • https://i.imgur.com/u1YjFrb.png
        Какой багор )))
        «SpamAssasin» ругается, что у меня rDNS на IP нет.
        Ответить
        • какой анскиилл со стороны клаудного флёра.
          Ответить
          • «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 (самый медленный способ, лол)
                                  Ответить
                    • > Подозреваю, что продержатся они недолго, но за такую цену пох (не на год брал жи).

                      по цене тот же хетцнер, чего бы и не продержаться
                      Ответить
        • Именно поэтому я против «пердолинга».
          Ответить
    • бугор
      https://github.com/gco/xee/blob/master/XeePhotoshopLoader.m#L108
      Ответить
      • // 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.


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

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

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

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

                      Строка "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
                      Ответить
                      • * Конфиг sendmail.
                        Ответить
                        • Программа на TeX'е:
                          https://govnokod.ru/19877
                          Ответить
                          • 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>
                          [email protected] $* <@>               $: @ $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$* < $+ :; > $*        [email protected] $2 :; <@>                    catch <list:;>
                          R$* < $* ; >               $1 < $2 >                    bogus bracketed semi

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

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

                        Ньюлайны, которых ты нахерачил больше десятка - непечатные


                        Ответить
                        • ##########
                          # ☺  *   #
                          # #  #   #
                          # #    ☻ #
                          ##########

                          Уровень для какой-то игры.
                          Ответить
                          • ☺️
                            Ответить
                          • Собакобан.
                            Ответить
                          • Лол, я такую хуйню на паскале писал в 14 лт: там рожица (первый символ кодовых страниц ibm) ездил посреди боксов, и чото собирал.
                            Кажется, все это писали
                            Ответить
                            • Сёма не писал. Ибо на этом не заработать.
                              Ответить
                              • много тебе платят за занние паскаля? сколько ты на нем уже заработал? есть реальный пример, когда эта игрушка тебе пригодлилась в работе?

                                пас-каль учат только в раш-ке
                                Ответить
                      • Формат текстового файла должен быть интуитивно понятным и читаться людьми. Файлы "+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.
                          Ответить
                          • Мне кажется, что там должно быть «art», а не «arth».
                            Ответить
                            • 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 [email protected] 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/
                                Ответить
                  • Бнопню любой фар прозрачно раскодирует, даже не заметишь.
                    Ответить
                • Царь - ватник?
                  https://promoprime.ru/catalog/fleshka-zakaz-modding/237/
                  Ответить
                • >Если надо, чтобы важный файл читался, его требуется сохранить в 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 байт, то от симлинка толку не будет.
                                  Ответить
                                  • А нафига свн хранит все версии локально? Я думал там только копия последнее версии, а остальное на серваке...
                                    Ответить
                                    • > нафига свн хранит все версии локально
                                      Анскильные отбросы.

                                      https://stackoverflow.com/questions/22714362/is-it-safe-to-delete-the-contents-of-svn-pristine

                                      google: pristine copies

                                      >http://subversion.tigris.org/issues/show_bug.cgi?id=4071
                                      Ахахаха
                                      Ответить
                                      • > if you have .svn folder in repository, someone accidentially commited it

                                        Какая случайность )))

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

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

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

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

                                    Нажми на кнопку –—
                                    Получишь результат,
                                    И твоя мечта осуществится.
                                    Нажми на кнопку!
                                    Ну что же ты не рад?
                                    Тебе больше не к чему стремиться.
                                    Ответить
                                  • Да нахуя? Мусор от временных веток будет убран еще в первом поколении, на уровне object'ов. В паки он почти не попадает если не злоупотреблять gc. В итоге этот aggressive на практике нихуя не удаляет. Ну десяток-другой файлов, которые и не мешали.
                                    Ответить
                                    • в основном ради --depth, хотя если честно, то я не проводил исследований: может быть прироста и никакого, но в ночь субботы я все равно сплю бухой
                                      Ответить
                                      • > depth

                                        А историю только в вебморде смотреть?
                                        Ответить
                                        • ты имеешь вииду, что дельты будут такие пиздецовые с большим 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 потом именно для каждого нужного тебе бранча?
                                              Ответить
                                              • git pull origin ветка
                                                Ответить
                                                • я трекаю одновременно порядка пяти веток (мастер, стабльную, пару бранчей коллеги, свои бранчи итд)

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

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

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

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

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

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

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

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

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

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