- 1
IT Оффтоп #42
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #42
#8: (vanished) https://govnokod.xyz/_24815
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328
#11: (vanished) https://govnokod.xyz/_25436
#12: (vanished) https://govnokod.xyz/_25471
#13: (vanished) https://govnokod.xyz/_25590
#14: https://govnokod.ru/25684 https://govnokod.xyz/_25684
#15: https://govnokod.ru/25694 https://govnokod.xyz/_25694
#16: https://govnokod.ru/25725 https://govnokod.xyz/_25725
#17: https://govnokod.ru/25731 https://govnokod.xyz/_25731
#18: https://govnokod.ru/25762 https://govnokod.xyz/_25762
#19: https://govnokod.ru/25767 https://govnokod.xyz/_25767
#20: https://govnokod.ru/25776 https://govnokod.xyz/_25776
#21: https://govnokod.ru/25798 https://govnokod.xyz/_25798
#22: https://govnokod.ru/25811 https://govnokod.xyz/_25811
#23: https://govnokod.ru/25863 https://govnokod.xyz/_25863
#24: https://govnokod.ru/25941 https://govnokod.xyz/_25941
#25: https://govnokod.ru/26026 https://govnokod.xyz/_26026
#26: https://govnokod.ru/26050 https://govnokod.xyz/_26050
#27: https://govnokod.ru/26340 https://govnokod.xyz/_26340
#28: https://govnokod.ru/26372 https://govnokod.xyz/_26372
#29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
#30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
#31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
#32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
#33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
#34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
#35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
#36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
Зачем? Зачем?
Зачем? Зачем? Есть и есть, кому он мешает?
> Если бы они тупо выпилили этот драйвер, то звучало бы не так страшно...
Рут — это такой мужик, который по определению имеет полный доступ к системе. Поэтому даже без /dev/mem он спокойно может прочитать любую память любого процесса (через какие-нибудь костыли, от дебаггера и до загрузки своего модуля в ядро). Так что выпиливание /dev/mem на «конфиденциальности», о которой кукарекают адепты анальных зондов, не скажется никак.
> а не сосать хуй, как это делает админ в винде
Вот-вот. В той же десятке даже местный аналог рута — NT AUTHORITY\SYSTEM — попросту не может даже выключить (!) ёбанный встроенный антивирус, не то что удалить. И это пиздец как хуёво.
Видимо, прыщи двигаются в том же направлении.
Это не правильный вопрос.
Правильный вопрос "зачем он нужен?.
Если не за чем нужен -- надо удалить.
Юзерспейс не должен иметь доступа к железу.
> он спокойно может прочитать любую память
Может, однако чем меньше у тебя сюрфейс для атаки -- тем лучше.
>ёбанный встроенный антивирус,
Отключил его через локальную групповую политику, проверь. С ним у меня компиляция жабьего говна с миллионом файлов занимает вечность.
>Видимо, прыщи двигаются в том же направлении.
В плане усложнения -- безусловно, но конкретно /dev/mem кажется что и правда не нужен.
Это вопрос, который надо задавать тогда, когда предлагается что-то впилить. Когда речь идёт о выпиливании чего-то существующего и работающего — нужно спрашивать именно о том, кому оно мешает и почему.
> Юзерспейс не должен иметь доступа к железу.
Рут — царь и бог, рут — должен.
> Отключил его через локальную групповую политику, проверь.
Выключал его через локальную групповую политику раз десять. И примерно столько же — через реестр. Ему похуй, проверь: https://i.imgur.com/dcuS93z.png.
> В плане усложнения -- безусловно
Не в плане усложнения, а в плане того, что владелец компьютера плавно превращается из владельца в пользователя.
Это пока. Такие «инициативы» заканчиваются исключительно анальным огораживанием.
> Во-вторых мешает именно тем, что увеличивает область атаки.
Какой области атаки? Если атакующий получил доступ к руту, то всё, единственное адекватное действие — переустановка системы.
И да, все эти разговоры про безопасность, ради которой владельца ПК надо урезать в правах — просто демагогия.
Вот, например, полюбуйся, как тот же «Intel» обеспечивает безопасность: https://software.intel.com/en-us/sgx. Сколько красивых слов и картинок, а суть одна: на твоём ПК работает код, к которому ты никак не можешь получить никакой доступ. Даже под администратором, даже из режима ядра (!). Догадайся с трёх раз, кому это на самом деле нужно и зачем?
И все вот эти вот «Lockdown» — это, в сущности, то же самое: попытка отобрать у владельца ПК полный доступ к его системе. Да, пока это можно отключить. Только вот что будет дальше — весьма очевидно: сначала сделают отключение крайне пердольным (например, только если у тебя есть одобренный и подписанный лично Линусом ключ), а уже потом — ради безопасности просто уберут у пользователя (уже пользователя) какую-либо возможность влиять на ПК. Здравствуй, венда.
> Приведи пример, когда это нужно.
Это нужно по причине того, что «GNU/Linux» (и всяческие «FreeBSD» вместе с ним) — свободная и открытая система. Чтобы она и дальше оставалась такой — владелец ПК должен иметь полный доступ к своей системе.
> Что мешает владельцу отключить ненужную опцию?
То, что через N месяцев/лет/версий эту опцию просто уберут. Лягушку варят на медленном огне.
> УМВР
А у тебя какая редакция? У меня «Pro».
Кстати, я хотел поюзать эту технологию. А там надо регаться на интеле и заполнять анкету о своей конторе.
Т.е. все ещё хуже - я не могу свой собственный код в этих анклавах запустить.
Может да, может нет. У меня недостаточно фактов для такого вывода.
>Какой области атаки?
https://lwn.net/Articles/330488/
>попытка отобрать у владельца ПК полный доступ к его системе.
Напомни, как рут в линуксе из юзерспейса может удалить конкретную страницу из памяти?
А как может запретить шедулеру давать кванты какому-то процессу?
Ничего рут не может в линуксе: анально огороженная система.
>через N месяцев/лет/версий эту опцию просто уберут.
В прыщах-то?
We do not break userspace же. Может, и никогда не уберут.
>А у тебя какая редакция? У меня «Pro».
Ты часом не в домене?
Покажи Rsop.
Это питушня, а не область атаки. Я уже выше писал: если атакующий получил доступ к root'у, то всё, единственное адекватное действие — полная переустановка системы.
> Напомни, как рут в линуксе из юзерспейса может удалить конкретную страницу из памяти?
Загрузить соответствующий модуль ядра и удалить всё, что нужно.
Напоминаю, что и эту возможность у рута отбирают посредством «Lockdown»-патчей.
> из юзерспейса
А зачем? Важна принципиальная возможность это сделать, используя учётную запись root.
> В прыщах-то?
Да. Всё идёт именно к этому.
> Покажи Rsop.
https://i.imgur.com/9ngkNZ8.png. Хуйня какая-то магическая.
То, что и эту возможность отбирают у рута.
> Даже в Windows можно отключить првоерку подписей драйверов
При этом с каждой версией это становится всё сложнее и пердольнее. Следующий шаг — полный запрет для несертифицированных пердоликов.
> То-есть отсуствтие принципиальной возможности повлиять на шедулер их под рута тебя не смущает? Почему?
В смысле — отсутствие? Заходишь в консоль от рута, загружаешь свой модуль ядра — и готово.
> иначе как разрабатывать драйвер??
Очень просто: обратись в «Microsoft»/к Линусу, получи специально одобренный ключ и разрабатывай с его помощью. Оплату и специальные курсы добавить по вкусу.
И это вовсе не мои фантазии. Выше я приводил ссылку на «SGX»: там уже так сделано, хочешь разрабатывать под эту технологию — пиши в «Штеуд».
> почему ты думаешь, что это уберут в Linux?
Потому что «GNU/Linux» в этом отношении повторяет путь «Windows», а это крайне хуёвый путь.
> MpEngine
Нет, там только какая-то левая питушня (скрин из локальных политик, офк): https://i.imgur.com/yx8rvvM.png.
PS: спокойной ночи.
Разрабатывать надо было на эмуляторе.
Потом, вроде, разрешили.
- ???
Я в который раз повторяю: пока опционально.
> Если убрать /dev/mem вовсе, то будет тоже само
Ладно, так уж и быть, убирай. Но только вместе с lockdown-патчами.
> Я не понимаю как можно что-то так закрыть в Linux, чтоб даже админ с физ доступом к компу не мог убрать
Запустить в SGX-анклавах, например. Тогда ты можешь хоть чипы памяти выпаивать — всё равно не сможешь узнать ни какой код там выполняется, ни с какими данными он работает.
Технологии анального порабощения развиваются.
> Linux -- опенсурс, его физически нельзя заркыть (иначе придется пол ядра выкинуть). Если туда введут такое ограничение, то что помешает мне форкнуться и выпилить этот код?
Наивные мечты. Посмотри на «Android» (тот же «GNU/Linux», между прочим!), большинство телефонов с которым перестают получать обновления ОС от производителя через полгода-год после выхода… и всё: никаким другим образом поменять ОС (на форкнутую, например), ты не можешь.
А ведь на ПК уже всё готово к точно такому же анальному огораживанию. Осталось только тихонько убрать переключатель «UEFI SecureBoot» — и вуаля, все пользователи (новых) ПК запускают только те ОС, которые одобрены лично Наделлой/Линусом/Арвиндом Кришной. И заметь: производители/авторы этого дерьма тоже кукарекают про «secure».
> Я не понимаю, почему у нас с тобой разгные ГП.
Они из версии в версию меняются, у меня до обновления тоже другой был. Сейчас у меня «10.0.18363».
> И это вовсе не мои фантазии. Выше я приводил ссылку на «SGX»: там уже так сделано, хочешь разрабатывать под эту технологию — пиши в «Штеуд».
Какая мерзкая питушня. Лишь добавляет пердолинга и гарантирует защиту только от ленивых и бедных хакеров, у которых не хватает финансов на взнос.
Слава свободному софту, что на него можно будет перейти. Хотя, что там с браузерами? Вроде бы гайки закручивают даже с открытыми исходниками. А чтобы откручивать обратно, форковальщикам надо пердолиться.
>Не будь подписей -- любой стертор мог бы написать говно на дельфи не ища хакеров в даркнете, но это не важно.
Разумеется, с подписями стертор ну никак не может написать говно на дельфи.
> замки не имеют никакого отношения к безопасности, и ими можно не пользоваться.
Интересный факт: любой замок «потребительского» класса (т.е. все дверные, гаражные, навесные и прочие) опытный домушник может вскрыть за несколько минут (в лучшем случае, обычный ширпотреб вскрывается за единицы-десятки секунд). Так что да: дверные замки — это иллюзия безопасности. Защищают они только от мелкой шпаны и не в ту дверь зашедших соседей.
И это никак не поможет юзеру, у которого все файлы оказались зашифрованными благодаря очередному хитрому червю-шифровальщику с сертификатом. Если что, авторы успешных (то есть самых опасных) шифровальщиков поднимают сотни тысяч долларов и могут себе позволить потратить несколько тысяч на валидную подпись, которая, благодаря хуёвым решениям антивирусов, существенно поднимет процент заражения.
Вообще, вся эта питушня просто повторяет путь HTTPS. Валидная подпись у файла (как и валидный HTTPS-сертификат раньше, EV-сертификат — сейчас) означает только то, что он создан той компанией, которая указана в подписи, и неавторизованные третьи лица его не модифицировали (случаи спиздинга корневого сертификата можно не рассматривать, хотя, конечно, вероятность есть всегда). Он не означает ни то, что файл безопасен, ни даже то, что его кто-то проверял.
> Серьезный домушник и хакер из АНБ заинтересуются тобой только если ты очень большая шишка.
При чём тут АНБ? У АНБ есть доступ к «Intel ME» («PSP» у красных; советую ознакомиться с этими «милыми» технологиями, кстати), им эти сертификаты совершенно не нужны. А серьёзный домушник — это вовсе не спецагент в чёрном костюме, это просто любой уголовник с опытом в пару-другую лет.
Нет. Но от того, что подписи подаются как нечто, улучшающее абстрактную «безопасность» (хотя улучшают они только integrity, если уж на то пошло), однозначно становится хуже. См. пример с антивирусами.
С HTTPS — аналогично. Впрочем, «Let's Encrypt» постепенно исправляет ситуацию.
> Домушник не полезет ко мне просто так: они работают по наводке, и только если знают, что доа у меня слитки золота.
Зачем ему слитки? Хватит и твоего компа с телевизором, если они новые, конечно.
Кстати, я совсем недавно уже приводил реальный пример спизженной БД магазина «Wildberries» с адресами, почтами и телефонами — отличная штука для домушников, подойдёт как список более-менее состоятельных людей.
> Также и тут: от стерторов подпись вполне защищает
Нет. Подпись не защищает, подпись доказывает целостность файла: то, что от его автора он дошёл до тебя неизменным. Всё.
> От крутых вирусов она не защитит
Каких крутых? Посмотри расценки в статье, такие деньги себе может позволить любой кулхацкер, разославший письма «я взломал вашу вебкамеру, перешлите мне 1 BTC чтобы я не отправил их вашему начальству/коллегам/друзьям».
Microsoft программы не подписывает, только дрова. Стертор вполне спокойно может купить себе серт у любого CA и подписывать всё, что захочет. И даже через пару недель после того как его спалят и отзовут серт, его проги всё ещё будут работать пока CRL не дойдёт. OSCP, насколько я помню, для софта не юзают - слишком долго ждать при старте проги.
> не запустится
Разве? По-моему просто покажет предупреждение, на которое всем похуй.
Суть тут в том, что бинари ты подписываешь сам. И никто кроме тебя в этом процессе не участвует и не видит что ты там подписал. Т.е. если это что-то более таргетированное, чем рассылка всему инету, то малварь спокойно может месяцы прожить без отзыва серта.
Заметь, что даже на подписанные бинари UAC ругается и переспрашивает, а доверяешь ли ты этому самому Рулону Обоеву.
З.Ы. Я на компе родителей вообще запретил запуск скачанных файлов. Работает на 100%, я даже сам потом полчаса тупил почему дистриб не запускается.
> антивир
Ну это да, там список отзывов через час после анализа прилетит. Но это и без подписей бы произошло, т.е. они тут пользы не приносят.
Информировать общественность о том, что «подписанный файл» не означает «безопасный». Реально полезное применение подписи — это ручная проверка того, что прога Рогокопытер v1.0 реально была выпущена компанией ООО «Рога&Копыта» (а степень доверия этой компании пользователь определяет сам).
> Я серьезно сомневаюсь, что опытный домушник полезет куда-то за такие деньги.
А чтобы взломать ширпотребный замок, который обычно и ставят в обычные двери, не нужно быть таким уж опытным. Гопника с отмычкой из гвоздя вполне хватит (см. ссылку выше).
Но да, в больших городах средний класс может жить спокойно.
> Хватит-ли это недели хакиру чтоб насобирать на феррари? Я не знаю
Нашумевшему «ВаннаКраю» хватило четыре дня, чтобы насобирать битков на 130к долларов: https://en.wikipedia.org/wiki/WannaCry_ransomware_attack. По нынешнему курсу, кстати, это уже 390 тысяч долларов.
При этом насколько я знаю, у Вани валидной подписи не было.
А так, 0day + валидная подпись, которой доверяют антивирусы — идеальный сценарий для локального компьютерного апокалипсиса.
Потому что мнение о том, что «подписанный файл» == «безопасный файл» слишком распространено.
> Чтобы сделать 0day надо быть очень крутым хаккером, нет?
Нет. Его можно как купить (это большие бабосы, но потенциальная выгода больше), так и вовремя подсуетиться и спиздить — как было с нашумевшими архивами «АНБ», например. В последнем случае это будет скорее 1day, но всё же.
Потому что мнение о том, что «подписанный файл» == «безопасный файл» слишком распространено.
> Чтобы сделать 0day надо быть очень крутым хаккером, нет?
Нет. Его можно как купить (это большие бабосы, но потенциальная выгода больше), так и вовремя подсуетиться и спиздить — как было с нашумевшими архивами «АНБ», например. В последнем случае это будет скорее 1day, но всё же.
UPD: но мы немного отошли от темы. Рядовому пользователю, антивирус которого пропустит свеженький троян просто потому, что он был подписан свеженькой подписью, абсолютно похуй, написан этот троян вторым Моррисом или же Ашотом&co.
Так что неверное представление о подписи как о каком-то гаранте безопасности на самом деле снижает безопасность.
Хорошо что биты и баты не стачиваются и не деформируются.
http://www.lockwiki.com/index.php/Raking
Замок в клеточку.
Я говорил о сувальдных, лично несколько раз учавствовал в проццессе подбора ключиков, после небольшого подпила скважины, чтобы любой ключ пролезал, буквально 5-й - 10-й уже подходил. (я тогда жил в импровизированной коммуналке с соседями-уебанами меняющими замки)
Надо всё собрать в один файл, тогда компилироваться будет быстрее:
;#x043b;же н сто& ;#x044f;т ь на дес& ;#x043a;т о&#x043
f;ах или нет?&am p;#x0444;
Догадываюсь, что как о чём-то хорошем (ведь пердолики, которые считают, что ОС должна быть элитной, и пользователь должен знать системных питузовов по номерам, уже вымерли), поскольку всё это говорит о том, что в ОС повысилась юзабилити, потянулись новые пользователи, а значит больше смысла вкладываться в неё, писать и поддерживать качественный софт - в итоге система станет ещё более надёжной и удобной.
Носители той самой "женской" логики, которую принято ругать.
С одной стороны, линукс у них для элиты, с другой - "а чо все на винде-то сидят?"
С одной стороны, "у нас всё просто, все возможности", с другой - "не, ну попердолиться и настроить под себя, конечно, надо!"
А людям-то нужен не выбор из тысячи разных способов (990 из которых - кривые) сделать какую-то питушню, а хорошо продизайненный один работающий из коробки нормальный способ.
Получается автомобиль без ремней безопасности, в котором пассажир свободно подпрыгивает на каждой кочке. Установка ремней и амортизаторов и выбор ровной дороги же считается нарушением исконного права человека свободно летать по салону и иметь свободный доступ к потолку для набития шишек.
Из телефонов без Джобса сделали лопаты, связь телефона и ноутбука просрали. Где-то говорили, что даже устройства одного и того же времени выпуска нельзя соединить без переходников и пердолинга.
Ноутбуки вовсе слили. Когда-то давно у них были нетормозящие ноутбуки с хорошим дизайном. На порты не скупились. Сейчас осталось только тормозящее говно с двумя портами, в один из которых надо ставить зарядку! Vaio SX12 при тех же размерах смотрит на макпитухи как на говно.
https://www.bloomberg.com/news/articles/2020-04-23/apple-aims-to-sell-macs-with-its-own-chips-starting-in-2021
У них теперь загорелая кришна всем заправляет, которая за пределами ажуры своей сраной знать ничего не знает.
Ты не ешь его.
С Сатьёй Наделлой
Он цвета одного.
> кто так считает? клоуны с лора?
Некоторые петушки-пользователи, которые громче кричат. Это больше собирательный образ.
Да всем насрать!
Не блогодорите.
–— Ты кто? —– спросил он, зевая после каждого слова. - Животное?.. Растение?.. Минерал?..
Не успела Алиса и рта раскрыть, как Единорог закричал:
—– Это сказочное чудище –— вот это кто!
–— Что ж, угости нас пирогом, Чудище, —– сказал Лев и улегся на траву, положив подбородок на лапы.
И, взглянув на Короля и Единорога, прибавил:
–— Да сядьте вы! Только смотрите мне —– пирог делить по-честному!
...
Алиса сидела на берегу ручейка, поставив большое блюдо себе на колени, и прилежно водила ножом.
–— Ничего не понимаю! —– сказала она Льву (она уже почти привыкла к тому, что ее зовут Чудищем). –— Я уже отрезала несколько кусков, а они опять срастаются!
—– Ты не умеешь обращаться с Зазеркальными пирогами, –— заметил Единорог. —– Сначала раздай всем пирога, а потом разрежь его!
Конечно, это было бессмысленно, но Алиса послушно встала, обнесла всех пирогом, и он тут же разделился на три части.
—– А теперь разрежь его, –— сказал Лев, когда Алиса села на свое место с пустым блюдом в руках.
–— Это нечестно! —– закричал Единорог (Алиса в растерянности смотрела на пустое блюдо, держа в руке нож.). –— Чудище дало Льву кусок вдвое больше моего!
—– Зато себе оно ничего не взяло, –— сказал Лев. —– Ты любишь сливовый пирог, Чудище?
Или это кобенации (тире, соединяшка, тире), и так можно специально на ГК хоть на 2к символов сделать тире?
А зачем туда взяли символы сто лет как мёртвых языков (ну это ещё как-то можно объяснить) и ёбанные картинки с двумя чёрными родителями-геями с тремя сыновьями-трансгендерами-азиатами?
> Или это кобенации (тире, соединяшка, тире)
Не-а, всё натуральное, «three-em dash» — U+2E3B.
> — –
Чувак, ты крэйзи.
Получается какбы тире указующее.
б
Ответить.ш
Льюис - Пьюис - Пиюис - Пи - 3.1415926535...
Интересно, не знал.
Хотя, я наверно активно пользовался только хойстингом функций.
Кстати, а почему такого нет в сишке. Ну хотя бы на этапе компиляции. Как какой-нибудь хак для препроцессора. Препрепроцессор.
Можно. Более того, пока не изобрели лямбды (т. е. до версии 5.3) это был единственный способ передачи коллбека.
Можно даже так:
https://govnokod.ru/26539#comment537768
https://govnokod.xyz/_26539/#comment-520448
https://govnokod.xyz/_26539/#comment-520452
А где искать? В текущем модуле? В модулях, с которыми нужно слинковать программу? И что искать: просто объявление функции или её реализацию?
Мне кажется, в модулях, с которыми нужно слинковать программу.
> что искать: просто объявление функции или её реализацию?
Наверно реализацию.
Хотя, объявление и/или нахождение в текущем модуле/файле были бы тоже полезны в определённых ситуациях.
https://dlang.org/spec/traits.html
Если в C/C++ нужно делать forward declarations, а в питоне дождаться конца файла, чтобы начать устанавливать все игры вызывать все функции, то в JS ты просто пишешь функции и их вызываешь не пердолясь с порядком определения.
Единственное, очень жалко, что переменные не поднимаются. Но это уже не недостаток языка, а ограничение императивной парадигмы. Если определения функций - декларативная питушня, то определения переменных - сугубо императивная, и менять её порядок - рисковать сломать программу.
...Ну то есть переменные как бы поднимаются, но это не вызывает никакого вау-эффекта. Это само собой разумеещееся. Такое поведение ожидаемо. Scope переменной в JS - либо функция, либо глобальное пространство. Глупо было бы ожидать, что переменная не будет действовать в рамках своего скоупа. Если в каком-то языке это не так, то начинаются проблемы. Например, в C/C++ можно объявить переменную, а потом окажется, что она в половине своего скоупа не действует. Потом ещё придётся переносить переменные и расставлять фигурные скобки, если появляется switch/goto. Как оказывается - только потому, что в этих языках не сделали банальный hoisting.
hoisting - это очень показательный пример хорошего дизайна. Можно писать на языке много лет и только потом узнать, что эта фича там была, а потом скучать по ней в других языках и удивляться, как вообще может в них отсутствовать такая простая, логичная и полезная возможность.
Зачем? Нормальные люди питонисты код пишут в main(), которая может быть расположена где угодно. И да, изнутри функций можно вызывать любые другие функции, не пердолясь с порядком их определения.
> очень жалко, что переменные не поднимаются
Это щщастье. Читать код, в котором сущности используются до своего объявления — это полный пиздец и игра в угадайку. В сочетании с тем фактом, что 99% программистов не умеют правильно называть переменные — это пиздец в квадрате.
> Например, в C/C++ можно объявить переменную, а потом окажется, что она в половине своего скоупа не действует.
И это правильно, потому что объявление переменной может иметь побочные эффекты. Вот было бы весело, если бы какой-нибудь std::lock_guard (охуенная вещь, кстати) неявно телепортировал блокировку к началу блока.
Недавно обсудили. Инициализация какой-нибудь питушни.
Да и просто скриптушня, когда тебе важно удобство, а не порядок.
> Читать код, в котором сущности используются до своего объявления — это полный пиздец и игра в угадайку.
Не завидую питонистам. У них чтение любого кода с переменными - полный пиздец и игра в угадайку :)
> это пиздец в квадрате
Ну тут просто уже в любом случае нужен какой-то инструмент, который скажет, что за переменная вообще используется.
а. Я заглянул в код потому, что по стеку вызовов мне указали на это место. Я не приземляюсь в начале каждой функции, я именно что попадаю куда-то в середину. Я смотрю на вызов функции, и мне нужно обшарить весь скоуп, все скоупы выше и ещё заинклюженное посмотреть. И тут, в общем-то, не сильно помогает, что в C/C++ надо искать только сверху. Это сужает область поиска примерно в 2 раза по площади и в 1 раз - по количеству файлов и функций, которые надо просмотреть.
Нужен какой-то инструмент. Как минимум, подсветка переменной.
б. Я смотрю на переменную и не понимаю, что у неё есть брат-близнец. В коде может появиться фишинговая переменная.
И тут уже хойстинг не так важен.
> неявно телепортировал блокировку к началу блока.
Кокококая кококонструкция )))
Кстати, с деструкторами такая питушня работает, и все привыкли уже! Потому, что деструкторы навязали, и никого не спрашивали.
Напомню, что в JS хойстинг переменных не делает императушни. Инициализация происходит внизу. Думаю, C++ бы справился с этим. Какая-нибудь преинициализация ака конструктор по умолчанию плюс постинициализация в строке с определением...
А срать в глобальный скоуп почём зря — плохо.
> У них чтение любого кода с переменными - полный пиздец и игра в угадайку :)
У них хотя бы статотипизацию завезли.
Ну хотя да: если статической типизации нет (как в «JS», например), то и место объявления не важно: всё равно нихуя непонятно :)
> И тут, в общем-то, не сильно помогает
> сужает область поиска примерно в 2 раза по площади
Ну ты уж определись: «не сильно» или «в два раза».
> Кстати, с деструкторами такая питушня работает, и все привыкли уже!
Нет, это совершенно другая питушня. У деструкторов есть строгий и понятный цикл: «инициализировали переменную -> использовали переменную -> уничтожили переменную». И это происходит строго последовательно, сверху вниз.
> Какая-нибудь преинициализация ака конструктор по умолчанию плюс постинициализация в строке с определением...
Тебе с такими идеями в Комитет надо. А вообще — это питушня хотя бы потому, что далеко не для всех типов есть коньструктор по-умолчанию. См. std::lock_guard, например.
И, кстати, нахуя такое неадекватное поведение вообще нужно?
А может быть и не глобальный, а "псевдоглобальный". Это может быть скоуп модуля или какой-нибудь тематической вечеринки внутри замыкания, в которой генерируется инстанс параметризованного модулеподобного питуха.
> Ну ты уж определись: «не сильно» или «в два раза».
Я так и говорю: не сильно - в два раза.
Что важно, количество файлов и функций для прыжка остаются теми же.
Вообще, сильно в два раза можно только уменьшить время перебора паролей, если начать с середины.
> совершенно другая питушня
Да та же самая, разве что аргументы деструктора хранятся в самом объекте, поэтому их не надо передавать явно. А так - симметричные операции. И захотеть их выполнить программист может в любое время.
Если кто-то задаёт вопрос "а что мне делать, если я хочу создать объект позже начала фигурной скобки", то должен быть и вопрос "а что мне делать, если я хочу сломать объект до конца фигуной скобки".
> У деструкторов есть строгий и понятный цикл: «инициализировали переменную ->
Чтобы сломать что-нибудь ненужное, надо построить что-нибудь ненужное. Неплохо. Но это больше походит вообще на весь цикл работы с объектом.
Вот, к сожалению, я не знаю, как создаётся стековый фрейм - там сразу отматывают под все локальные переменные, либо же делают пуш на каждом шаге, когда в коде появилось определение переменной. Но вариант "сразу создать фрейм, а расстояния от верхушки вкомпилить в код" выглядит как более быстрый, а значит хойстить полезно для пирфоманса.
В принципе да, тот же хойстинг. И в переменных до момента инициализации лежит undefined, как и в js. Разве что undefined в крестах настоящий.
как же работает
if (petuz) {
int i = 32;
}
?
именно по этому я за с89: там нужно было ВНАЧАЛЕ функции декларировать. Помнишь же борландсишечку третью?
А вообще я поскаль, там такой проблемы нету by design
и порвет стек даже при mokaka==0, и Мокака будет не понимать: да как же так-то?
А компилятор может же доказать, что mokaka никогда не true, и тогда вообще ничего не выделять?
Или там подсчет стека в более ранний проход?
Ну и не забывай, что "переменные" на этой фазе уже мало связаны с переменными в твоём исходнике...
На выходах из логического скоупа, само собой. На физическом там тупо add rsp, N в конце функции.
Поскаль осквернён стертором. Поэтому я против (и не только поэтому).
> не для всех есть коньструктор по-умолчанию
Ну вот есть же placement питушня. Сначала берут кусок памяти (можно сказать, что произошло выделение плюс вызов настолько ничего не делающего конструктора, что даже поля никак не инициализируются), потом на этом куске памяти вызывают конструктор. И всё работает. Можно так реализовать. Можно явно просить разделить инициализацию на создание пустого объекта и завершение конструктора. Кстати, автор класса может сказать, что протокол не позволяет вызывать методы частично инициализированных объектов (аналогичго с тем, как он может поступить при вызове build в каком-нибудь частично использовам билдере).
> И, кстати, нахуя такое неадекватное поведение вообще нужно?
Почему неадекватное? Наоборот, логичное
* переменная действует во всём скоупе
* конструктор и деструктор симметричны
* нет какой-то питушни со switch, goto, ошибками использования переменной
В чём фишка крестового RAII - скоуп переменной в точности совпадает с её готовностью к работе. Т.е. либо переменную можно юзать либо её тупо не существует.
А у нас в Джаве решили, что это будет слишком удобно (и скучно) и завезли Closeable.
А в Intellij еще и завезли Disposable. Теперь там так
Ухахаха, всё таки джава это говно по сравнению с плюсами
Языки с gc неплохо решили проблему с управление памятью. Но для других ресурсов такая схема не работает.
В итоге ехал close через close. Ну кроме совсем тривиальных случаев, когда объект в одном скопе живёт.
Кресты - говно ебаное, конечно. Но после них все эти ваши close() выглядят как закат солнца вручную.
Мантра "просто не думайте про память, она сама очистится" -- НЕ работает для серьезных проектов.
В том же Intellij огромное количество WeakReference расставлено именно для того, чтобы некоторые вещи очищать.
То-есть программист все равно должен понимать и зависимости, и где слабую ссылку воткнуть (как в языках с референс каунтингом), но вот только расчитывать на десктрутор он не может.
А еще GC может запуститься в неподходящий момент, и поставить раком систему на пару секунд.
Ну и close/dispose, это конечно пиздец. Ворст фром зе бос волдс
До её настоящей инициализации нельзя:
* Прочитать переменную: это UB, а если без страшных слов — ты получишь просто мусор, который к работе программы никак не относится;
* Вызывать у переменной методы: они используют поля объекта, в которых в данный момент находится мусор. Если не используют — объяви их как static и не загружай себе мозг;
* В общем случае, переменной нельзя даже присвоить (!) какое-либо значение, потому что operator=() тоже может дёргать поля с мусором.
В итоге, переменную до её инициализации можно только… Инициализировать. Удивительно!
А ведь есть ещё такая интересная штука, как затенение («shadowing») переменных. Реальный пример:
https://ideone.com/W0VS6Q
А теперь представь, что объявление переменной x где-то в 100500 строках внизу сразу же затенит все x наверху. Это же какой эпичный подарок читающим код!
И если тебе вдруг в существующем коде понадобится затенить какую-то переменную, у тебя будет два выхода:
* Пройтись по всему скоупу и везде проставить «::x» (не сработает, если ты затеняешь член класса… но это само по себе не очень правильно, в принципе);
* Обернуть переменную в новый скоуп:
Очень удобно.
Лучше так не писать, всё-таки.
Ну это мелкие детали :) Главное - что принцип работает. В JS, заметьте, тоже питушня и undefined.
> А теперь представь, что объявление переменной x где-то в 100500 строках внизу сразу же затенит все x наверху. Это же какой эпичный подарок читающим код!
Какой багор выходит. Интересно.
Не знал о такой питушне. Видел только в каком-то языке, что нельзя в одном скоупе делать две переменных с одинаковым именем.
Хорошо, не стоит хойстить переменные без особых причин.
Поднятие функций, впрочем, на первый взгляд подобных багров не несёт (а для взаимно-рекурсивных функций вообще очень удобно). Конкретно в крестах есть тонкие моменты, вроде такого:
— сигнатура f2() зависит от f1(), поэтому просто поднять все объявления на один «уровень» не получится.
Но кресты — сами по себе адово переусложнённое, хрупкое и шатающееся говно, в них любую буль-мень сложную фичу впилить безболезненно не получится, обязательно что-нибудь развалится.
https://habr.com/ru/company/ruvds/blog/499014/
Это?
Школоло научилось делать скришноты.
Но дифф в командной строке весьма уныл, особенно если чужой код читаешь. Иногда надо больше контекста вокруг изменений, иногда удобнее side by side. В консольке запаришься это переключать. Хорошие диффтулы изменения внутри строк ещё показывают. И подсветка синтаксиса не помешает.
Ну и трёхсторонний мёрж без гуйни весьма неприятен.
Про гуй в целом согласен.
Вот как надо
Inellij: https://resources.jetbrains.com/help/img/idea/2020.1/annotations_show_diff.png
P4merge (perforce):
https://www.topbestalternatives.com/wp-content/uploads/2016/05/P4Merge.jpg
WinDiff, лол:
https://cdn.lo4d.com/t/screenshot/500/windiff.png
А так так, если мне память не изменяет, очень многое сделать нажатием пары клавиш. Типа (условно, я нихуя не помню, конечно) жмакаешь b вверх/вниз m, получаешь мердж.
Речь даже не про качество переводов и качество самих товаров.
Приложение и сайт работает через жопу, оплата через три пизды (какую-то «алибабу»), которая постоянно отваливается.
Сначала подумал опечатка
Плати наличными в магазе. Не сообщай никогда саетам инфромацию о себе.[/rms]
У нас же высок навар от китайской электроники теж же телефонов сяоми, хуявея, оппо и так далее. Текстиль типа одежды, которая стоит там копейки.
Например, «Румиком» представляется официальным магазином «Сяоми», хотя это брехня. Они торгуют леваком, который по номерам серий предназначен для Китая, с кустарно русифицированной прошивкой. В официальных сервис-центрах «Сяоми» их аппараты не берут, зато в торговых центрах есть сеть подпольных мастерских.
Я бы и не узнал об этом, но мои знакомые на это попались. В «левой» мастерской их аппараты бесплатно отремонтировали. Был 2019-й год.
«Левые» мастерские с ремонта получают деньги от «левого» магазина. У них договора с определёнными магазинами.
Если ты купил в «левом» магазине, то обращаешься в «левую» мастерскую, адрес которой спрашиваешь у продавца. В «левой» мастерской у входа висит список магазинов, товар из которых они чинят. При обращении нужно предъявить чек из магазина.
Если ты купил в официальном магазине (список официальных дилеров есть на сайте производителя), то ты обращаешься в официальную мастерскую (список официальных мастерских есть на том же сайте). Чек тоже требуется, но у официальных мастерских есть общая база данных, в которую вносятся все сведения о ремонтах и о продлении гарантии.
О. Вот нормальная русня от guest8, а не какая-то рус-shy-ня.
А почему? Будет и работа, и люди, с кем можно поговорить.
Если инвалид или ЛГБТ, будет посложнее. Хотя, ситуация улучшается. По крайней мере, на улице около дверей появляются кнопки. Несколько лет назад их не было.
Но если инвалид или ЛГБТ, в IT вполне можно спокойно работать. В ИТ больше ум ценится.
Ну раз ничего не мешает, кроме этого, то вполне можно чуть больше узнать о стране, от предрассудков избавиться и переехать. Можно будет с зарплаты купить новенький саундбар, который будет работать из коробки.
// исправил
Или если не чистить - может, сделать на них фильтр как на русню? Ну то есть если есть в комментарии /&[#x0-9a-z]+;/i, то он идёт нафиг.
Как зачем? Нам тут приходит параша из каких-то амперсандов и прочих кобенаций, которую можно либо пытаться декодировать скриптом, либо сразу заблокировать guest8. В эту парашу ещё ГК вставляет пробелы для разрежения.
Результат теста: Я заебался - сам тестируй.
// исправил
* По сути, проблемой будут только политические выкрики, которые всех быстро задолбают, не важно, в какой среде он окажется.
Кстати, у tut.by был ролик про депрессию. Лечилась одна девушка. Думала, что вылечится и больше лечиться не придёт, но врачи сказали, что она живёт в Беларуси, и потому точно снова придёт. В РБ гораздо меньше солнечного света, чем в некоторых тёплых странах.
У структуру БРСМ уваходзяць Беларуская рэспубліканская піянерская арганізацыя (БРПА) і сілавая структура Моладзевы атрад аховы правапарадку (МААП).
kokotek или kurok на межсловянском это петушок.
huj/хуј [xuj]
kolbasa/колбаса [kɔɫbasa]
kurec/курец [kurɛt͡s]
penis/пенис [pɛnis]
И хуйня
zajebancija/зајебанција [zajɛbant͡sija]
Видимо про пердолинг во время учёбы и/или самообразования, когда чел ещё вообще к работе непригоден.
З.Ы. Помнится мне чел скидывал тест на знания 1С. Я его прошёл на отлично, при этом я вообще ни разу не открывал 1С и не знал как оно выглядит. После этого я и разочаровался во всех этих сертификатах бумажках для оклеивания туалета.
Давайте форсить.
1. 1C - язык, сделанный для людей
2. для программирования нужны не знания по пердолингу с языком, а здравый смысл
Типа такого?
https://habr.com/ru/post/498820/
>>> Еще немного каверзных вопросов по .NET и C#
Приходишь такой на собеседовение, рассказываешь про паттерны, либы, алгоритмы, а потом тебя спрашивают, существуют ли (ещё) сайты dotnetfiddle.net и csharppad.com. Пиздец нахуй.
А какой ответ правильный?
В конфиге демона, который ходит на говносайты для аутентификации на них. Кроме него этот ключ, очевидно, никому знать не надо.
Ну вот представь сервис как у иньо. Ты можешь отдать свой пароль иньо и он будет отправлять за тебя сообщения на ГК. Паролей много и они меняются, поэтому для них нужна база. А в базе плейнтекстом их хранить не хочется - бекапы и т.п., да и спиздить могут.
Ояебу. Вопрос же так звучал: "каким образом лучше всего хранить пароли в базе данных".
Заметь, там не спрашивали как лучше всего аутентифицировать юзера, вопрос был именно про хранение пароля. И вариант про AES там есть. Хеши для этого явно непригодны, а плейнтекст и DES (ещё и без тройки!) будут совсем говном.
>>>
e
В наше время MD5 больше не следует использовать.
Кстати, можно использовать и keyed hash алгоритмы: HMACSHA1 или MACTripleDES
https://static.1c.ru/prof/images/mobile1.jpg
или там восстанавливают средствами ms-sql?
пасукаль (Pascal), скуаль (SQL) или ещё что?
А теперь давайте забаним гостя
КОНЕЧНЫЙ ПОКУПАТЕЛЬ ПОКУПАЕТ В РОЗНИЧНОМ МАГАЗИНЕ! В РОЗНИЧНОМ МАГАЗИНЕ ЕМУ СРАЗУ С ХОДУ МОГУТ СКАЗАТЬ ЧТО ГАРАНТИЯ НА ХУЯВЕЙ 1 ГОД НО БЛЯДЬ ОНА В МСК! НО ТАК КАК МЫ НЕ ЯВЛЯЕМСЯ ТОРГОВЫМ ПРЕДСТАВИТЕЛЕМ НО ВЫ МОЖЕТЕ КУПИТЬ У НАС НАШУ ГАРАНТИЮ ОТ МАГАЗИНА НА ПОЧИТНКУ И ВОЗВРАТ! так промышляют даже крупные фирмы, например DNS не являясь официальным То фирмы X в цену продукта может заложить свою гарантию. В случае если у человек возвращает не рабочую технику - в днс чинят её и продают как уценку, уже с гарантией кроме тех дефектов которые они сами и исправили.
Тут по ссылкам и экопитушки, для которых это забота о мире, и бабки, которых интересует икра, и просто бойцовский клуб пенсионеров.
Вообще неясно, кто из них ходит на помойки из-за нужды, кто - ради адреналина (кулачные бои), кто жкопитушок, а кто - чисто потому, что халява.
У пожилых частенько в головах начинает играть не то совок с дефицитом, не то ещё что. Бабка может отложить в шкаф хорошую вещь, которую ей подарили вместо старого говна. Либо экономить воду пуще самого зашуганного европейца, если поставили счётчик, а за квартиру платят дети/внуки, копить старое говно "вдруг пригодится", жить на три копейки, что каждый месяц от пенсии остаётся достаточно, чтобы "скопить для внуков/на похороны", питаться с помоек при живых детях/внуках.
Пенсионеры могут жить в квартире с хорошим ремонтом, обставленной топовой мебелью/техникой, но жрать хрен знает что. Нет, не потому, что как молодые семьи, откладывали на ремонт в счёт еды. А потому, что обстановку им насильно впихнули благодарные потомки, а еду они сами покупали.
> сумочку
А USB хаб в комплекте, или отдельно ещё за 299 баксов?
З.Ы. Бля, зарядка тоже что ли не в комплекте? Неделю поработал и пиздуй в магазин за зарядкой?
Х.з., мне мышки за 4к хватает. Что там в этой мышке такого крутого кроме бренда? Сенсор хоть годный?
Вообще забавно, что к технике эппла очень мало адекватных аксессуаров. Попробуй, например, найти док-станцию, которая смогла бы сравниться по функциональности с таковой от хуёвого пакарда. При том, что они все ещё и 3rd party.
Поди неудобный обмылок с кнопками в жопе, как и на старых маковских моноблоках?
Ты про это: https://www.groovypost.com/wp-content/uploads/2017/09/apple-mighty-mouse-feature.jpg? Это их старая мыщь. Она и называлась немного по-другому.
А мэджик это вот эта хуедрень: https://duckduckgo.com/?q=magic+mouse. Такое впечатление, что кусок витражного стекла в руке держишь, настолько удобно.
https://en.wikipedia.org/wiki/Apple_USB_Mouse
Джобс вернулся в 1997, а мышку эту начали продавать в 1998.
Если бы Стиви захотел, переделали бы ему дизайн в считанные недели. А так её ещё целых два года поставляли, если верить вике.
Телефон без кнопок.
Похоже, кнопки трахнули Джобса в сраку в его детстве.
Да и вообще пиздец. Похоже, второе пришествие жопса эппл тоже пережила только чудом!
Сейчас уже неловко вспоминать, что компания Эппл своим нынешними успехами обязана какому-то сраному мп3-плееру, как будто это несчастная шанхайская шарага.
Там ещё пишут про некоего Пола Мерсера, который участвовал в разработке Ньютона, потом съебал из эппла и основал свою контору, которая позже сделала прошивку для первых айподов.
> не влазил карман итд
- не то что ойпад же
Я думаю, Жобсу просто было проще работать с людьми и технологиями из NeXT, а, лучше они были или хуже, его как сука художника волновало мало.
Жобс, Be Inc, Pixo, Энди Рубин. Санта-Барбара какая-то.
А ты сам-то видел вживую классическую макось? А я-то вот нет, например
Какой скилл )))
Хотя вон пистон есть в официальной репе.
Но рэкета нету и видимо не будет из-за отсутствия нормального C FFI из коробки. Кстати:
"The BeOS and Haiku API is designed for C++ and object oriented programming. It allows contained objects, making it a lot easier to manage things. It is not an API problem if all other languages can only bind with very primitive languages like C. It is as you were demanding that we provide our API in x86 assembly, because that’s the only real common thing between all things that run on your CPU."
https://discuss.haiku-os.org/t/investigating-porting-obs-studio-to-haiku/9001
Правильно, это проблема не API, а крестов.
Насколько нужно быть ёбнутым, чтобы пытаться делать API поверх ABI крестов? Они там совсем крышей поехали? Оно же ломается даже от смены минорной версии конпелятора!
Не знаю. Судя по https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads — да, путём установки охулиона CRT.
Кстати, с VS2015 «Microsoft» это окончательно заебало, и они объявили бинарную совместимость всех последующих CRT: https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=vs-2019 (для статических либ и /GL не сумели, к сожалению). Посмотрим, сумеют ли они продержаться достаточно долго…
Гуглить это несложно.
Всё правильно: нечего загрязнять экосистему пердоликами-нищебродами. «Apple» — для серьёзных людей, и программы под него писать должны только успешные профессионалы.
Тебе ещё небось надо будет иметь установленную СУБД, не говоря уже про зоопарк браузеров, каждый из которых будет жрать как не в себя, если у тебя там какая-то хитрожопая связка пистон+спа на эякуляре
> если я хочу писать под ябло, я должен сначала купить железо, и наверняка боль-мень хорошее: небось на маке 2010-го года XCode станет раком
- та дело ж не в железе, у тебя на мак 2010-го года вряд ли станет последняя макось, на которую станет последний икскод, чтобы писать под самые последние iOS.
У одного знакомого прикол был: он не мог ничего сделать на новом айфоне жены, потому что у него был старый бук, на котором были старая ось и старый тунец, который этот новый айфон с новой осью на хую вертел)) Но щас с этим вроде полегче.
Хотя после ушек с активной шумодавкой на колонки уже сложно будет пересесть...
Или это очень гипотетический вариант?
Фу, блядь, фу, нахуй. У меня даже совсем слабая запотелость рук/мышки вызывает ярость. Перевожу на протирание рук целую кучу салфеток каждый день :(.
Купи игровое полотенце.
Плюс (деанон, травля) мы с ним в некотором роде земляки.
ЧЕЛОВЕЧЕСТВУ!!!
http://mskgazeta.ru/obshchestvo/moskvichi-ne-znayut--gde-pryatat-sya-ot-stroitel-nogo-shuma--.html
Пишешь в комитет по строительному надзору, тебе приходит ответ, что застройщик нарушает такие-то правила и по таким-то статьям будет оштрафован. В действительности ничего не меняется: стройка работает в прежнем режиме.
// исправил
Чтобы песни/музыку/радио слушать? Не сидеть же в своём собственном доме как угнетённый опенпейсохолоп в наушниках. Это жарко и неудобно.
Мне кажется, что вордпрессовским троянам плевать на операционную систему. Они в некоторой степени кроссплатформенны.
В каждом из вариантов есть своя прелесть, свои незабываемые впечатления.
Ненавижу и create-react-app, и one-line dependencies. Прямо праздник какой-то
Добро пожаловать в «NodeJS»! Присаживайтесь (npm install to-sit; npm install chair), выпейте (npm install to-drink) чаю (npm install tea)!
https://www.npmjs.com/package/is-positive
https://www.npmjs.com/package/@rojo2/is-empty-string/v/1.0.4
https://www.npmjs.com/package/is-undefined
Какой пиздец я обнаружил.
Мне вот интересно стало -0.0 — это negative или нет?
https://github.com/kevva/is-negative
https://www.npmjs.com/package/negative-zero
https://www.npmjs.com/package/is-fourty-two
Check if a number is 42
404
БЛЯТЬ, И КАК МНЕ ТЕПЕРЬ ДВОЙКУ ПРОВЕРИТЬ??!?!
>Интересно, забанят?
friendly community жеж. Но стоит попробовать )))
Чтобы засрать их говнорепу бесполезными однотипными говномодулями.
А в целом можно любой говномодуль взять. Они же все однострочные.
Нет, серьёзно, я уже в истерике просто.
Ебать, штоэто?
>this.window
c особой поддержкой браузеров
Оказывается в js вместе с байтоёбством завезли endianess проблемы.
Теперь и в ecma-скрипте можно писать программы непортируемые на другие рахитектуры.
УРА!!!
>new Uint8Array(new Float32Array([ x ]).buffer)[3]
Вопрос, сломается ли это говно на big endian.
implementation dependent, иными словами UB, теперь и в js.
http://www.ecma-international.org/ecma-262/6.0/#sec-getvaluefrombuffer
Если у кого-то под рукой есть MIPS или ARM переключенный в big-endian интересно бы проверить.
>new Uint8Array(new Float32Array([ x ]).buffer)[3] === 0x80;
Но я думаю, что здесь написано непортабельное little-endian говнище.
Принесли в скриптушню битоёбство, а стандартную либу обновить забыли. Бывает.
Поскольку тривиальная проверка обламывается
0.0===-0.0 //true
Интересно, кому в реальном проекте нужны проверки на -0?
Генерировать и загружать завтра буду, сейчас спать хочу.
Кстати, есть у кого идеи, какой ещё жаваскриптный бойлерплейт можно добавить?
ого, серьезно к делу подошел
А сервис леер есть?
А если найду?
>есть у кого идеи, какой ещё жаваскриптный бойлерплейт можно добавить?
Хотелось бы ещё иметь такие модуля
is-lesser
is-lesser-or-equal
is-greater
is-greater-or-equal
is-below
is-above
Ещё хотелось бы иметь возможность выбрать из массива каждый третий, каждый четвёртый элемент, итд.
По аналогии с
https://www.npmjs.com/package/even
Над ними уже откровенно издеваются.
#26620
https://www.npmjs.com/package/is-is-odd
noop2
No operation as a module™. The long awaited successor to noop. Noop2 does even less than its predecessor, and is 100% tested to guarantee nothing happens.
no-op
Weekly Downloads: 2,733
noop2
Weekly Downloads: 65,587
Пиздец нахуй блять.
И что самое смешное — «function noop() {}» короче, чем «var noop = require('noop2');».
noop = ()=>{}
Или даже так:
А вдруг завтра математику поменяют.
Ваш >0 соснёт, придётся по коду лазить, переписывать.
В то время как npm-бог просто обновит пакет isPositive.
npm install on-flash
Бля, что это за ад? Даже в ёбанных крестах это выглядит читаемее:
https://ideone.com/FGBPCh
А насчёт отмычек - сделай свои. Разрешаю из ленолиума. Там же все просто! Я в tes обливион мастерски щелкал максимальные замки.
наказываются штрафом в размере до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до восемнадцати месяцев, либо ограничением свободы на срок до четырех лет, либо принудительными работами на срок до четырех лет с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет или без такового, либо лишением свободы на срок до четырех лет с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет или без такового.
Короче, отмычки лучше самому сделать, и хранить в.
То есть я могу посадить пажарников/мчсников зато что они используют специализированные механическим ножами и ебучим и болкарками когда вскрывают дверь или дверь машины?
Собственно почему за веб-камеру тебе ничего не будет (она большая и заметная) а вот на ручку с камерой легко присесть.
Вообще поидеи ты должен огласить о том что ты снимаешь. И видеокамеры же не всегда видно они же тоже не гласно ведут съёмку. Это тебе не Корея где 10 указателей на камере с камерой внутри камера, звучит как порно, но это так. Там все сделали чтобы было гласно.
Пиздец! Пиздец!
На удивление годный нахрюк на «Unix-way» в общем и «GNU/Linux» в частности. Неожиданно.
Именно поэтому я за «PHP».
https://varlamov.ru/3257871.html
https://www.amur.info/news/2019/01/09/148351
Это же петикс.
https://govnokod.ru/26604
https://govnokod.xyz/_26604