- 1
.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
.
Как попасть в гугол по рекомендации Романа Кашицына?
j123123 31.12.2018 17:14 # +2
https://govnokod.ru/25229#comment447145
crestoblyad 31.12.2018 21:40 # 0
HoBoroDHuu_xyu 31.12.2018 17:32 # 0
j123123 31.12.2018 17:41 # +1
guest8 31.12.2018 18:26 # −999
crestoblyad 31.12.2018 21:41 # 0
j123123 31.12.2018 22:01 # +3
У гугла есть софтерные патенты, а я против софтерных патентов (для меня это выглядит как патент на вычисление числа Пи)
Например, такой патент: https://patents.google.com/patent/US8606778
Techniques are disclosed that locate implicitly defined semantic structures in a document, such as, for example, implicitly defined lists in an HTML document. The semantic structures can be used in the calculation of distance values between terms in the documents. The distance values may be used, for example, in the generation of ranking scores that indicate a relevance level of the document to a search query.
Если вкратце, это какая-то херня для ранжирования страниц на основе расстояний между каким-то говном, распознавать какое-то говно какими-то эвристиками. Как такое вообще можно патентовать? Это достаточно очевидно, что можно каким-то сложным способом анализировать документ. Блядь, пойдите еще алгоритм сортировки пузырьком запатентуйте, дебилы блядь.
А еще гугл это копирасты, а копирастов я тоже не люблю. Мне не нравится что гугл собирает персональные данные и на их основе втюхивает свою говнорекламу. И мне не нравится их говнореклама. А ведь всё так хорошо начиналось: https://i.imgur.com/K7bIPLF.jpg
В общем "don't be evil" уже явно не про гугл. Нахер его
j123123 31.12.2018 22:08 # +2
bormand 31.12.2018 22:58 # +1
Емнип, у майков есть патент на "способ создания коротких имён из длинных" (да, та самая хуита с тильдой и циферками).
nemyx 31.12.2018 23:12 # 0
1024-- 01.01.2019 14:32 # 0
bormand 01.01.2019 14:34 # 0
Линукс, правда, тонко обошёл этот патент. Но это совсем другая история.
j123123 01.01.2019 14:37 # 0
bormand 01.01.2019 14:48 # 0
Но есть, к примеру, патент на устройство barrel shifter'а из джвух половинок, который выглядит примерно как (x << n) | (x >> (32-n)).
1024-- 01.01.2019 14:53 # 0
bormand 01.01.2019 14:54 # 0
j123123 01.01.2019 14:57 # +1
bormand 01.01.2019 14:59 # 0
Насчёт мувов - х.з., но какой-нибудь патент на "вычислительную машинау с регистрами" всяко есть.
j123123 01.01.2019 14:55 # 0
https://lj.rossia.org/users/sadkov/241882.html?nc=36
j123123 11.02.2019 11:02 # +1
https://patents.google.com/patent/US6007232
> Calculating the average of two integer numbers rounded towards zero in a single instruction cycle
Который кстати вчера истек: 2019-02-10 Application status is Expired - Lifetime
bormand 11.02.2019 11:04 # 0
j123123 11.02.2019 11:05 # 0
https://stackoverflow.com/a/3816473
j123123 11.02.2019 11:18 # 0
bormand 11.02.2019 11:27 # +1
З.Ы. А нет, походу сможешь. Мутная хуйня эти патенты...
j123123 24.02.2019 15:57 # 0
return a+(b-a)/2;
j123123 24.02.2019 16:53 # 0
https://wandbox.org/permlink/nj7BuNLZ2Mq0XRxr
j123123 24.02.2019 17:33 # 0
https://wandbox.org/permlink/F4dkwZtTQBSKE4CG
gost 24.02.2019 17:38 # 0
https://www.youtube.com/watch?v=lUV9W9ndorw
j123123 24.02.2019 18:05 # 0
Computing the (integer) midpoint of two integer values via
(a+b)/2
can cause overflow for signed or unsigned integers as well as for floating-point values. Java’s binary search implementation had this integer overflow bug for nearly a decade, and Mozilla had the same issue in its JavaScript implementation.
The standard alternative
a+(b-a)/2
works for unsigned integers (even if b<a).
Красным цветом отмечено то место, где написана хуйня.
j123123 24.02.2019 18:14 # 0
Можно для SMT решателя переписать на теорию http://smtlib.cs.uiowa.edu/theories-FixedSizeBitVectors.shtml но я тупо замутил поверх целочисленной арифметики.
j123123 01.01.2019 14:59 # 0
bormand 01.01.2019 15:02 # 0
roman-kashitsyn 31.12.2018 23:05 # +1
bootcamp_dropout 31.12.2018 23:47 # 0
Спрашивается, а что для тебя недостаточно очевидно?
j123123 01.01.2019 00:02 # 0
bootcamp_dropout 01.01.2019 00:08 # 0
j123123 01.01.2019 00:31 # 0
bootcamp_dropout 01.01.2019 00:45 # 0
j123123 01.01.2019 03:04 # 0
bootcamp_dropout 01.01.2019 14:04 # 0
И никаких дурацких мыслей о патентах, гуглах, говне всяком мне в голову не приходит.
j123123 01.01.2019 14:23 # +4
Намного круче разрабатывать прошивки на Си и асме. Драйвера писать. Изучать какие-нибудь функциональные языки программирования, попытаться разобраться во всех этих теориях категорий. Обдумать как можно было бы оптимизировать (эвристиками!) сложные, NP-полные задачи. Попробовать создать какой-нибудь новый эффективный алгоритм сортировки. Почитать про теорию компиляции, всякие там проекции Футамуры, суперкомпиляцию, мемоизацию, метапрограммирования, переписывания термов, формальных методах доказательства в программировании, автоматическое доказательство теорем... Блядь, в программировании вообще настолько дохуя интересных областей, в которых можно углубиться и задрачивать, что и жизни не хватит, но нет, не хочу, хочу жрать говно и писать поебень на жабаскриптиках к говнобраузерам. И это программисты?
1024-- 01.01.2019 15:05 # +1
Один баг - и какая-нибудь питушня закирпичилась или сгорела, несите другую.
Один баг - и отладка printfом не поможет, т.к. printf и libc частично перетёрты.
Неделю думаешь над тем, что где-то в программе какая-то питушня в очень редком случае выходит за границу массива и из чана выливается расплавленный металл куда-нибудь на голову пятому бригадиру за месяц.
То ли дело JavaScript. Полноценный ЯВУ. Есть исключения, отладка printfом принципиально не может сломаться, много встроенных фич по сравнению с сишкой. Конкатенация строк через банальный плюс, строки внутри после оптимизации становятся мутабельными, если надо. Не надо пердолиться с памятью, можно на практике применять функциональный подход, а не дрочить на недостижимый Haskell, копаясь в сишном говне. Есть трансляторы, транспайлеры, eval - можно на одном и том же языке писать исходный код, его компилятор. За счёт Function.prototype.toString можно прикрутить хоть риалтайм формальное доказательство. ЯВУшность позволяет писать код быстрее. Интересующиеся конпеляцией могут посылать пулл-реквесты в код движков JS. Как я говорил, там работы ещё много, пока не создан умный оптимизатор.
И стоило бросать этот волшебный мир абстракций и свободы ради чистки байтов вилкой, где даже printf можно сломать?!
j123123 01.01.2019 15:44 # +1
Есть прерывания. Поделил на 0 - прыгаешь на обработчик
> отладка printfом принципиально не может сломаться
Принципиально может сломаться, если у тебя в интерпретаторе JS баг, от которого портится память самого интерпретатора.
> Конкатенация строк через банальный плюс
Можно придумать такой процессор, в котором будет особая инструкция для конкатенации строк, и можно в нем такую инструкцию назвать "+"
> Не надо пердолиться с памятью
А потом мне приходится набирать killall firefox оттого, что кто-то с памятью не пердолился.
> Есть трансляторы, транспайлеры
У меня вот есть компилятор языка Си - он код на Си переводит в код на ассемблере. Это тоже транспайлер, так что не надо тут. К тому же оптимизирующий. А под JS есть оптимизирующие транспайлеры?
> eval - можно на одном и том же языке писать исходный код, его компилятор
Можно на ассемблере в rwx сегмент позаписывать байтиков, сбросить кеш и туда перейти
> И стоило бросать этот волшебный мир абстракций и свободы ради чистки байтов вилкой, где даже printf можно сломать?!
Напиши на своем волшебном JS что-нибудь под контроллер 8-битный, в котором 8 Кбайт флеша и 1 Кбайт оперативки
bormand 01.01.2019 15:50 # 0
Что-то дохуя для восьмибитки...
З.Ы. А где сейчас восьмибитки реально юзают помимо ёлочных гирлянд? В каких-нибудь резиновых хуях с интеллектуальной вибрацией?
j123123 01.01.2019 16:14 # 0
Ну вообще есть конечно и более дохлые, но JS даже в такие лимиты не уложится. В ATmega 16 например столько https://ww1.microchip.com/downloads/en/devicedoc/doc2466.pdf :
– 16 Kbytes of In-System Self-programmable Flash program memory
– 512 Bytes EEPROM
– 1 Kbyte Internal SRAM
1024-- 01.01.2019 16:04 # 0
А это уже питушки на C++ внутри браузера накукарекали. Движок JS вычищает вилкой лишнюю память. Если вдруг удалось написать код с утечкой памяти (для C++ это легко, для JS - нетривиально и неслучайно), перезагрузка вкладки всё, что JS засрал, исправит.
> Можно придумать такой процессор, в котором будет особая инструкция для конкатенации строк
Можно сразу нормальный язык вместо C/C++ придумать.
Всё равно, чтобы этот процессорный + работал как надо, нужно будет встроить в процессор GC или запускать одноразовые программы в стиле PHP. Прелесть + не в том, что это символ в один байт, а в том, что можно писать return a+b, f(a+b) и прочее и не думать над тем, где лежит a, b и a+b.
> А под JS есть оптимизирующие транспайлеры?
Вероятно, там же, где и конкатенация в процессоре - всегда можно написать.
> Напиши на своем волшебном JS что-нибудь под контроллер 8-битный, в котором 8 Кбайт флеша и 1 Кбайт оперативки
А зачем? Давайте я лучше напишу под компьютер 32-битный, в котором свободно 500МБ диска и 100МБ оперативки. Моя программа будет больше уметь, легче писаться, легче читаться, легче модифицироваться. Заказчик сможет сам её потом подправить, если не дурак. Или её легко перепишут под новые технологии, а меня добрым словом вспомнят.
Зачем себя ограничивать и тратить время на пердолинг с контроллером, когда можно выбрать удобное решение и тратить время на решение задачи заказчика?
bormand 01.01.2019 16:07 # +1
Чтобы в цене железки конкурировать же... Ёлочную гирлянду по цене терабайтного SSD у тебя никто не купит.
1024-- 01.01.2019 16:13 # 0
guest8 01.01.2019 16:19 # −999
cKpunToBou_neTyx 01.01.2019 16:50 # +1
Именно, что смузиёбы работают на массовый рынок. Кто угодно может прийти и заказать сайт, который будет открываться у кого угодно. Массовый рынок.
С какой вероятностью низкопитушки вроде j123123 будут писать код для гирлянд по 200 рублей, которые я куплю в магазине? Сразу скажу: с нулевой. Гирлянды уже запрограммировали китайцы.
j123123 и его собратья пилят штучные микроконтроллеры для крупных заводов. Им достаточно одного покупателя, чтобы за вырученные деньги жить лет пять, а потом за те же деньги тому же покупателю переписать под новый микроконтроллер. Потому, что больше никто не знает, что там внутри делается и как это переписать за меньшую сумму.
HoBoroDHuu_xyu 01.01.2019 15:56 # 0
Вот она, веселуха!
М-М-МЕТААААААААЛ!!!
bormand 01.01.2019 16:00 # +2
https://youtu.be/vifaZYpThaY?t=60
1024-- 01.01.2019 16:09 # 0
bootcamp_dropout 01.01.2019 16:02 # 0
Javascript при этом пошел гораздо дальше - он есть на сервере, на десктопе, на мобайле, даже в embedded и data science. Конечно сейчас большинство из поделок смехотворно, но темпы развития колоссальны, и скоро мы это исправим.
Javascript сейчас на всех платформах, он является встроенным языком, например, в Qt и сам является целью компиляции других языков - абсолютно справедливо можно заявлять что Js - это С нашего времени.
Разумеется, он не остановится ни в развитии, ни в расширении - и рано или поздно, но JS всех поимеет.
1024-- 01.01.2019 16:16 # +1
bootcamp_dropout 01.01.2019 16:20 # 0
Страшно представить, как будет выглядеть Javascript++.
3oJloTou_neTyx 01.01.2019 16:21 # 0
bootcamp_dropout 01.01.2019 16:27 # 0
cKpunToBou_neTyx 01.01.2019 16:51 # 0
j123123 01.01.2019 16:28 # +2
Чтобы JS поимел область, которую занимает Си (на микроконтроллерах например) тебе надо каким-то образом законы физики поменять, или открыть какие-то новые законы физики чтоб через них можно было каким-то образом быстро интерпретировать жабаскриптовое говно, или создать какую-то параллельную реальность с другими законами физики, или блядь я не знаю даже, придумать ИИ который бы умел код на JS переписывать (компилировать) в Си (но если ты такой ИИ изобретешь, то нахера вообще писать на JS, можно человеческим языком такому ИИ всё пояснить)
bootcamp_dropout 01.01.2019 16:32 # −1
Байтоебы, ей-богу.
j123123 01.01.2019 16:34 # +1
> справедливо можно заявлять что Js - это С нашего времени.
> Разумеется, он не остановится ни в развитии, ни в расширении - и рано или поздно, но JS всех поимеет.
Ну да, ну да. "C" нашего времени.
bootcamp_dropout 01.01.2019 16:39 # −2
>Javascript сейчас на всех платформах, он является встроенным языком, например, в Qt и сам является целью компиляции других языков - абсолютно справедливо можно заявлять что Js - это С нашего времени.
Контекст заявления про C нашего времени приведен, и он именно про распространенность.
j123123 01.01.2019 17:15 # +1
"на всех платформах" - очевидная херня. На дохлых 8-битных контроллерах его нет.
> и рано или поздно, но JS всех поимеет.
Очевидная херня. На контроллерах не поимеет
bootcamp_dropout 01.01.2019 17:24 # 0
А на 32-битных контроллерах есть, например IskraJS.
>Очевидная херня. На контроллерах не поимеет
Поимеет-поимеет.
Я упоминал что значимое - скорость развития. А нерелевантные и устаревшие платформы останутся артефактами прошлого.
j123123 01.01.2019 17:29 # 0
Микроконтроллеры у него нерелевантными станут, охуеть просто. Не неси херни
bormand 01.01.2019 17:30 # 0
Он имеет в виду восьмибитное говно.
j123123 01.01.2019 17:38 # 0
bootcamp_dropout 01.01.2019 17:36 # 0
>Intel's top-end Core i7 processor is being used in Costa Coffee's latest coffee machines...
Вон какое железо в кофеварки ставят уже. Так что станут, можешь быть уверен.
Хотя bormand прав и я имел в виду 8-битные контроллеры.
j123123 01.01.2019 18:32 # 0
HoBorogHuu_nemyx 01.01.2019 18:54 # 0
bormand 01.01.2019 18:55 # +2
> кофеварки
Они им воду кипятят для кофе?
guest8 02.01.2019 00:30 # −999
rHujlb 02.01.2019 00:58 # −102
bormand 01.01.2019 16:33 # +1
Дык оно есть. Причём с отладкой из браузера.
j123123 01.01.2019 16:35 # 0
bormand 01.01.2019 16:39 # 0
Ну да, туда въебали целый 32-битный ARM на 72МГц и 48КБ оперативки. Который стоит... дешевле твоей 16й атмеги, лол.
j123123 01.01.2019 16:42 # +1
bormand 01.01.2019 16:47 # 0
Если бы не ардуинщики - восьмибитная эпоха закончилась бы, имхо.
bormand 01.01.2019 16:59 # 0
Угу. Вот недавно приехали китайские платки на STM'ке. Стоит столько же как эта ваша ардуина, по дизайну такая же. Но няшные 32 бита, ядро быстрее, памяти больше в 10 раз и настоящее USB есть, без этих ваших оверпрайснутых "шилдов".
j123123 01.01.2019 14:27 # 0
Крафтовое? А смузями запиваете?
bootcamp_dropout 01.01.2019 16:05 # 0
bormand 01.01.2019 00:57 # +1
Но потом всё это перевернулось с ног на голову и превратилось в какой-то пиздец...
bormand 01.01.2019 01:11 # 0
6A9lHuCT 01.01.2019 01:12 # −102
AKKOPDEOH 01.01.2019 01:15 # +2
6A9lHuCT 01.01.2019 01:20 # −102
qpjll-oc 24.02.2019 21:49 # −102
MoJloDou_nemyx 24.02.2019 21:52 # −1
Rooster 24.02.2019 22:42 # 0
3oJIoTou_xyu 25.02.2019 12:51 # 0
1024-- 01.01.2019 14:50 # +1
Здесь как с NP-задачами. Ты долго пердолишься, получаешь решение. А потом набигает толпа халявщиков, быстро проверяет, что решение верно, говорит, что оно очевидно, и уносит к себе.
Вот, например, фича с перетаскиванием иконок на иконки для перемещения содержимого в папки, мусора в корзину, распечатываемого - в принтер и т.п. Простая и привычная фича, ничего сложного. Но если бы её не было, как скоро мы бы до неё додумались?
bormand 01.01.2019 14:57 # 0
А есть очевидная хуйня, которую все подряд случайно переизобретают.
guest8 11.02.2019 15:30 # −999
Kakou-mo_nemyx 11.02.2019 15:34 # +1
Я ещё считаю, что законодательная власть должна жить на донаты.
gueest8 11.02.2019 15:35 # 0
про власть согласен. Пришел ты на выборы, проголосовал з партию, значит лично у тебя в пользу этой партии раз в месяц снимают деньги
guest8 31.12.2018 20:11 # −999
roman-kashitsyn 31.12.2018 21:48 # +2
crestoblyad 01.01.2019 00:51 # 0
crestoblyad 31.12.2018 21:35 # +1
6A9lHuCT 01.01.2019 00:58 # −104
3oJloTou_neTyx 01.01.2019 17:11 # 0
bormand 01.01.2019 17:31 # +4
Т.е. что-то в духе -y - (!(x | ~y) << 1), проверь.
3oJloTou_neTyx 01.01.2019 17:53 # 0
cKpunToBou_neTyx 01.01.2019 17:32 # +2
3oJloTou_neTyx 01.01.2019 17:55 # 0
cKpunToBou_neTyx 01.01.2019 18:02 # +1
> За тренарник пшена не получишь.
Боже мой, меняем на математически эквивалетное, переносим минус для красоты, упрощаем:
HoBorogHuu_nemyx 01.01.2019 18:14 # +3
3oJloTou_neTyx 01.01.2019 18:26 # 0
3oJloTou_neTyx 01.01.2019 19:02 # 0
3oJloTou_neTyx 01.01.2019 18:26 # 0
Действительно, я, вилимо, что то перепутал. Но в нём спрятано ветвление.
> -y*(x*(x+y)+y)
тоже годно, лови пшена.
gost 01.01.2019 17:33 # +2
1024-- 02.01.2019 17:34 # 0
* Работает ли автоматически запрос после прохождения модерации, или Борманд его постоянно вводит - на ваше усмотрение.
* Платят ли Борманду за каждый запрос или за месяц - на ваше усмотрение.
* Ограничен ли Борманд во времени, ругает ли его босс за промедления - на ваше усмотрение.
Как можно взломать такую систему? Как можно защищаться от взлома?
Из простого в голову приходит только:
* Посылать со своей учётки некоторое количество хороших запросов, а затем - один плохой, надеясь на то, что вошёл в доверие. Помочь может анонимизация запросов.
* Посылать цепочку похожих запросов от хорошего до плохого, ссылаясь на уточнение критериев и оптимизацию, надеясь на то, что Борманд задолбается читать почти одинаковый хороший запрос и пропустит плохой. Здесь можно перемешивать запросы и обрабатывать, скажем, раз в день или месяц.
* Попытаться посылать запросы, которые чуть-чуть отличаются от нехороших, но при ручном переписывании можно сделать роковую ошибку. Ограничить количество рассматриваемых запросов в день?
* DoS. Чтобы запросы честных пользователей тонули на фоне запросов атакующих. Нанять несколько доверенных людей?
* Послать Борманду кругленькую сумму на спиртное, подождать и ввести плохой запрос. Поставить на компе детектор алкоголя?
bormand 02.01.2019 17:41 # 0
Создать в БД бесправную учетку для олимпиадников (только select из разрешенных таблиц).
HoBorogHuu_nemyx 02.01.2019 17:54 # 0
Что можно сделать, чтобы олимпиадник не смог посмотреть все записи?
1024-- 02.01.2019 18:00 # 0
Разумеется, тут может быть вариант, когда придумывается столько метрик, сколько нужно, чтобы косвенным образом скачать БД (аналогично тому, как аноним выплёвывает по кусочку безобидную информацию о своей жизни, из которой потом складывается полный пазл). Это уже серьёзный вопрос и, возможно, хороший пример долгой, но эффективной атаки.
HoBorogHuu_nemyx 02.01.2019 18:07 # +1
1024-- 02.01.2019 18:14 # 0
bormand 02.01.2019 18:01 # 0
И запрос в духе "у скольки юзеров пароль начинается на букву а" - плохой?
1024-- 02.01.2019 18:07 # 0
> запрос в духе "у скольки юзеров пароль начинается на букву а" - плохой?
Кстати, зависит от контекста. Если он только один, то ответ заметно не повредит, это даже меньше бита. Если таковых много - можно вычислить пароли.
Кстати, вымышленный Борманд может как китайский GPS возвращать искажённую информацию, хотя тогда придётся отслеживать связи (как в тесте на случайные числа), чтобы отвечать консистентно, либо просто внаглую врать, чтобы неконсистентность осталась, но пароли и личные данные не выдавались.
bormand 02.01.2019 18:14 # 0
Сегодня бит, завтра бит, через миллион запросов вся база утекла...
Можно, конечно, запрещать запросы, которые совместно с результатами всех предыдущих позволят выудить какие-то данные. Но это сложно и рано или поздно начнет отшибать любые запросы, которых еще не было.
3oJloTou_neTyx 02.01.2019 20:05 # 0
3oJloTou_neTyx 02.01.2019 20:04 # 0
я об этом уже давно догадывался... признавайтесь, кто его придумал.
HoBorogHuu_nemyx 02.01.2019 21:32 # 0