- 1
IT Оффтоп #153
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #153
#123: https://govnokod.ru/27729 https://govnokod.xyz/_27729
#124: https://govnokod.ru/27730 https://govnokod.xyz/_27730
#125: https://govnokod.ru/27732 https://govnokod.xyz/_27732
#126: https://govnokod.ru/27733 https://govnokod.xyz/_27733
#127: https://govnokod.ru/27737 https://govnokod.xyz/_27737
#128: https://govnokod.ru/27742 https://govnokod.xyz/_27742
#129: https://govnokod.ru/27747 https://govnokod.xyz/_27747
#130: https://govnokod.ru/27755 https://govnokod.xyz/_27755
#131: https://govnokod.ru/27766 https://govnokod.xyz/_27766
#132: https://govnokod.ru/27790 https://govnokod.xyz/_27790
#133: https://govnokod.ru/27828 https://govnokod.xyz/_27828
#134: https://govnokod.ru/27834 https://govnokod.xyz/_27834
#135: https://govnokod.ru/27839 https://govnokod.xyz/_27839
#136: https://govnokod.ru/27845 https://govnokod.xyz/_27845
#137: https://govnokod.ru/27857 https://govnokod.xyz/_27857
#138: https://govnokod.ru/27867 https://govnokod.xyz/_27867
#139: https://govnokod.ru/27887 https://govnokod.xyz/_27887
#140: https://govnokod.ru/27900 https://govnokod.xyz/_27900
#141: https://govnokod.ru/27914 https://govnokod.xyz/_27914
#142: https://govnokod.ru/27942 https://govnokod.xyz/_27942
#143: https://govnokod.ru/27960 https://govnokod.xyz/_27960
#144: https://govnokod.ru/27972 https://govnokod.xyz/_27972
#145: https://govnokod.ru/27996 https://govnokod.xyz/_27996
#146: https://govnokod.ru/28008 https://govnokod.xyz/_28008
#147: https://govnokod.ru/28049 https://govnokod.xyz/_28049
#148: https://govnokod.ru/28087 https://govnokod.xyz/_28087
#149: https://govnokod.ru/28136 https://govnokod.xyz/_28136
#150: https://govnokod.ru/28157 https://govnokod.xyz/_28157
#151: https://govnokod.ru/28209 https://govnokod.xyz/_28209
#152: https://govnokod.ru/28217 https://govnokod.xyz/_28217
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://vorec.space/ (глоссарий Говнокода)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
Мне необходимо воткнуть ее в незараженный компьютер и скинуть оттуда файл.
Какую ОС можно использовать, чтобы воткнуть ее и не заразить компьютер?
*NIX, Windows не подойдут. Kolibri тоже, т.к.
http://wiki.kolibrios.org/wiki/Shell/ru
Все команды похожи на никсовые, а значит BadUSB может выполниться успешно, имитируя клавиатуру.
Что посоветуете?
например hid и mass storage
или самотык и принтер
а хаб это хаб: через него подключаются другие устройства и он сам устройство тоже
надо вызвать броманда, он в спеке USB хорошо рубил, и даже пояснял мне за companion controllers, когда мне надо было устройство на хабе выключать
Ну было когда-то чуть-чуть прикладнухи -- ведро, сайтики и т.п. От пыхи и жабы не зарекаются.
Мне вот за новый ангуляр вообще не хочется браться по этой причине.
Angular2 это примерно как Qt: там всё есть, и местами весьма даже годное, но всё свое. У него действительно сложноватая рахитектура, а под копотом rxjs, webpack, eslint, TS и karma, которые тоже не очень просты. Зато на выходе совсем другой экспириенс.
Не знаю как Angular, но TS тебе точно нужно попроловать
Звучит как очередная порнуха на порнхабе.
А вообще, нафига он мне? Я серьёзные проекты под веб не пилю, а для простенькой скриптушни типизация только мешает.
>под веб не пилю
не зарекайся
Я не говорю, что это прям всегда хорошо, но свои плюсы есть: не надо по частям собирать там
– кнопка "сделать пиздато"?
> кучу либов с собой несет и их обновляет
– и лефтпад обновляет?))
> не надо по частям собирать там
– ты грезишь каким-то энтерпрайзом
Ангуляр2 всё делает сам.
Если ты совсем не шариш, то лучше взять ангуляр2: Он не позволит тебе сделать откровенной хуйни
Но если ты гуру фронта, то лучше собрать всё самому, потому что если у тебя задачи ЧУТЬ ЧУТЬ отличаюися от ангуляровых, то ты заебешься всё переделывать. Получица каша из топора.
Ничего не получится, нужен хаб с per-port powers witching, а они очень редкие. Я, например, на авито брал царапанный для экспериментов.
Короче, мне надо было расширить ioctl интерфейс драйвера контроллера одной хорошей ос, чтобы с юзерспейса отключать устройство.
См пождробнее
https://govnokod.xyz/_24386/#comment-374071
У этих ganged powers witching, ни разу не встречал per port.
> одной хорошей ос
Как не изъебывайся, всё равно прыщи.
/sys/bus/usb/devices/ -> кудато-туды
Жопа-сручка какая-то. Есть же приятная libusb как раз для всего этого.
/sys/ просто для шелла удобный
в обещм в той ОС нельзя было суспендить порт (а в прыщах можно было)
Моими стараньями стало и там можно, но потом оказалось, что это никому не надо
все мы космонавты
Это устройство, которое притворяется клавиатурой / другим устройством ввода.
Оно может вызвать консоль и набрать пару команд от текущего юзера.
Так, как HID подключается и устанавливается автоматически в большинстве систем, большинство систем уязвимы. Антивирусами определить невозможно, потому что внешне ничем не отличается от обычной клавиатуры.
Кстати, если бы и существовали мистические флешки для взлома Петногона, то решение простое:
Я проебал свой packet tracer, надо бы скачать, а то из живых сисек у меня тока 800е и какой-то древний каталистический свиЩ, да и те далеко
> 800е
Понятие очень растяжимое,может быть 801 и может быть 891
У меня есть прошловековая 802 кажется, там есть ком порт, я туда роботикс курьер вткал, и делал дайлап и дайлин, и тек.
Собссно, это первый раз был, когда я до сиськи дорвался двацать лет нозад.
Вторая -- 857w кажется. Я ее подюключал по ADSLю к Ростелекому (тогда у нас назывался Авангард).
Ради настройки этой шляпы я и разбирался как ADSL устроен: всякие ADSL2, ADSL+ и пр, поверх ATM с его PVC, поверх encapusaltion level, эмулящий ethernet, а поверх (уже в моем случае) PPPoE, а дальше уже Интрент (хотя PPP можно вроде и поверх ATM сразу запустить).
Пирдоль была адская, пришлось книжку про ATM читать.
Потом такая же пирдоль была с обратной стороны, где dot11, потому что я тогда wifi еще слабо понимал.
Это был еще G с скоростью 45 (а нетто реально 20 была).
Даже хотел статью нахабр написить, но забил
Собери на ней нечто подобное pierdole pihole.
> PPP можно вроде и поверх ATM
This. LANE не нужен.
И вообще надо было FastStep поставить и заполнить подстановки в шаблоне.
> dot11
Во всех W они по умолчанию не хотят чтобы ты бриджил wired и wireless, и очень правильно делают.
но это всё часть AAL5.
Блядь как это было давно всё, всё уже забыл
Ну смотря для чего: дома у меня бридж конечно, потому что зачем мне маршрутизацию между ноутом и десктопом делать? Чтобы мультикасты не ходили?
А гости в отдельном мосту конечно, без доступа к локалке
Как человек эпохи возрождения, спишь на втором этаже, а внизу держишь лавку branch office.
В немецком оно звучит как «man». Мартин Хайдеггер ввёл «феномен das Man», добавив к этому местоимению артикль, как к существительному. Гугли Хайдеггера, найдёшь этот феномен.
Я такого еще не проходил:) Я знаю только man/mannen и mens (в смысле человек)
По-немецки будет «man kann»/«man darf» и «man muß»/«man soll». Т. е. буквально «неопределённое лицо» может или должно.
Да, похоже, что ещё употребляют, когда англичане говорят «people»:
https://context.reverso.net/перевод/голландский-русский/men
> Telegram now has over 700 million active users.
Паше походу хуиту как пыне приносят в папочках. 10% населения планеты, включая бабушек, спиногрызов и сомалийских пиратов.
> To celebrate, we're launching Telegram Premium.
ебать у вас празднование конечно
> Premium: Doubled Limits
• Follow up to 1000 channels.
• Organize your chats into 20 folders, holding 200 chats each.
• Pin 10 chats in your main list.
• Reserve up to 20 public t.me links.
• Save 400 favorite GIFs and 10 favorite stickers.
• Write a longer bio for your profile and include links.
• Include longer captions for photos and videos.
Спасибо, очень полезно
Паша повторяет Пыню во всём.
Кто первым додумался прилепить этот ярлык Путину, уже трудно установить, но произошло это примерно в 2017-м.
https://cs8.pikabu.ru/post_img/2017/09/03/7/1504438092189013103.jpg
А вот кого звали Пыней до 2017-го года:
https://en.wikipedia.org/wiki/Peniel_Shin
Пруфлинк:
https://nitter.fdn.fr/search?q=пыня%20until%3A2017-01-01&f=live
1. Материал увидят даже те, у кого Твиттор заблокирован.
2. У Ниттера нет такого обилия жопоскриптов, он не тормозит в браузерах.
У Снаута стоит какое-то расширение для параноиков типа Noscript, поэтому ему ссылки на оригинальный Твиттор не нравятся.
Кстати, где он?
Подтверждаю.
> У Снаута стоит какое-то расширение для параноиков типа Noscript
#metoo
Да тут даже не паранойя, просто выполняется меньше ненужного говна.
Взять хотя бы ГК:
* google-anal
* twitter
* facebook
* reformal
Ни у кого не осталось?
https://govnokod.ru/27581#comment658023
(показать всё, что скрыто)
В «Ютуб» я уже много лет не заходил.
Смотрю через mpv или newpipe на телефоне (отдельное спасибо за хинт).
Нужно всего-лишь:
Реальный пример:
https://mha.fi/services/
Теперь можно забыть про их мерзкие bloat htmlи, age restriction, спойлеры и пирдолинг m3u8.
уэбмакаки переизобрели болванки с киношками
> This video isn't available anymore
какая обфускация )))
https://flightaware.com/resources/registration/N1993R
Кстати, через несколько месяцев истекает и будет доступно для регистрации.
Подборка всяких ProxiTok, Nitter, Bibliogram.
Сразу модное хипсторское словечко насторожило.
И правильно сделало, потому что у него там зачем-то медиум, которому хипстота ищет и не находит альтернативу из-за того, что там только 5 страниц на халяву. Причем автор жежешечки может это отключить, но публика настолько раковая, что никто этого не делает.
Прчем второй, сука, раз
В 2007-м году только начали появляться смартфоны, и молодежь хотела делиться с друзьями тем, что они кушали, и где сегодня побывали.
И хуяк -- Паша дал им ВК.
В 2015-м все жутко боялись, что ФСБ и ЦРУ увидят их приватные нюд-фотки, и вжух -- Паша дал им "безопасный" "телеграм".
Чел реально чует, чего хотят массы.
у них обычный сайт тогда не поддерживал rtc: чтобы про новые сообщения узнать, нужно было страницу обновить, какие смартфоны нахрен
https://www.rbc.ru/economics/22/06/2022/62b1c39f9a7947c1bf42981f
От себя добавлю, что криптозолотой рубль будут выпускать из золота высшей пробы на Брянском заводе лёгкой промышленности
какой Грин:)
Дальше эту подпись спиздили. Дальше что? Отозвать подпись и сжечь всестарые деньги? Подождать 5 минут, пока спиздивший подпись наэмитит 10000000000000 рублей, и один рубль начнет стоить четверть цента?
мне придется учить Го
Типа VCS у вас там нету?
Юрий Шатунов сдох.
Белые козы
Белые козы
Беззащитны рога
Что с вами сделали
Снег и морозы
Лишив вас молока
Юра срал в эфир еще в моем глубоком детстве песней про розы, потом ушел в закат лет на двадцать, и зачем-то снова всплыл, чтобы уже кончиться теперь окончательно
позвони вот этим питухам
https://www.partsdirect.ru/notebooks
я в Питере всегда у них закупался, там реально можно и матрицу купить, и даже контроллер какой нить
Жаль, что проебали. Хорошие были времена.
Только что нашёл питухов https://vnoutbuke.ru у которых есть на складе
А у парцдирект нету?
вдруг там дешевале
А лавочки и сейчас бывают, но редко, бывают крупные сетевые лавищи.
В Питере был рынок Юнона (у метро Автово, на проспекте Маршала Казакова). Там прошла часть моего детства, в блуждании между ларьками с видеокартами и винчестерами
обратите внимание на логотипы МТС и БИлайн
https://cs14.pikabu.ru/post_img/big/2021/10/07/8/1633609659183417184.jpg
https://wikiway.com/upload/resize_cache/iblock/eec/500_330_2/yarmarka-_yunona_.jpg
там на материнке беленькие это PCI, а черненькие это ISA
Квадратик это сокет 370.
какой это год?
А VLB (VESA local bus) помнишь?
DIMM (именно dual -- потому что ужде 64) вставлялись много проще.
FPM, EDO, BEDO и прочие сорта аснихронной памяти старались ускорить работу обычной оперативки засчет выдачи пачки данных без закрытия страницы (потому что скорее всего тебе захочется почитать еще дальше), но все это убил SDRAM, синхронизовавший читение памяти контроллером с тактами CPU.
Стало просто настолько лучше, что все стали развивать его (DDR SDRAM, DDR2 и пр).
VLB это была попытка вендоров видеокарт расширить ISA добавив туда прямой доступ к памяти (в ISA командовать шиной мог только процессор или специальный DMA петух, медленный очень). Все это убил PCI.
Кому-то надо покурить и успокоиться. Ничего же сложного в коннекторе нет. Прикладываешь вертикально и наклоняешь пока не защелкнется. Небось ключ не подходил у тебя.
а в димме погнуть пин нереально было
Впрочем, я вообще ловкий парень: Однажды я перебил кулером дорожку, идущую от dimm к северному мосту
Видео видео - видео говнидео
Самсунг - хуйсунг
Хуавей... А, это вы, Хуирлиц.
https://vecherka.spb.ru/?p=28103
ну нет
Девяткино еще, рыбацкое.. Хотя на тот момент конечно была только она наземная
Вместо того чтобы взять нормальный RAII, опять лепят на свой велик какие-то кривые, нерасширябельные костыли.
In contrast to the original example, understanding the lifetimes of the threads involved is easy: under all conditions, the lifetimes are confined to a lexical scope: body of the try-with-resources. Furthermore, this code gets a number of desirable properties for free:
Error handling with short-circuiting: If either findUser or fetchOrder fail, the other will be cancelled if it hasn't yet completed (this is managed by the cancellation policy implemented by ShutdownOnFailure; other policies are possible too).
Cancellation Propagation: If the thread running handle is interrupted before or during the call to join, both forks will be automatically cancelled when the scope is exited.
Clarity: The above code has a clear structure: set up the child subtasks, wait for them (either to complete or to be canceled), and then decide whether to succeed (and process the results of the child tasks, which are already finished) or fail (and the subtasks are already finished, so there's nothing more to clean up.)
Простейшая штука, для которой в крестах достаточно сделать struct с двумя полями, и деструктор по выходе из скопа все почистит вилочкой. Для решения этой задачи жавух громоздит громадные неудобные api.
https://openjdk.org/jeps/428
bpo-30038: This is a bug in the logic used to hand-off from the C-level signal handler to the Python-level signal handler: it turns out that the C-level signal handler pokes the main thread to wake it up before it sets the flag to tell it that there's a signal pending. So on Windows where the C-level handler runs in its own thread, then depending on how the kernel schedules things, sometimes the main thread gets woken up, checks for signals, sees that the flag is not set, goes back to sleep... and then the flag gets set, but it's already too late.
Чтобы в goвне высрать JSON, нужно описать структуру, высрать в неё, а потом позвать маршала Жукова. Пиздец, даже в крестах такого нету.
(ох, извините, это ж кресты: strm << "\t\t\"name\":" << pig.name << "\"" << std::endl)
А еще запрещает нежелание вручную делать квадратное колесо.
--А почему в вашем ЯП нету оператора умножения?
--А что мешает реализовать его вручную через сложение?
-- Потому что их достаточно для любых задач.
Стесняюсь спросить, это в Москве такое еще бывает?? Или это в твоем родном городе?
Блядь я в баксах в конверте последний раз что-то получил в 2004-м году, кажется
Разве что у него в конверте лям рублей в месяц приезжал?
Кстати, сколько платят годному синьору в маскве?
У нас годный синьор начинается от 6кк TC в год по моим предположениям. Хотя и наебать тоже могут.
Тогда все, кто еще получал баксы, охуели от того, что из 31 он стал 23.
https://ru.myfin.by/currency/cb-rf/usd/23-07-2007
Я бы не хотел получать серую ЗП. Я не смогу ни кредит взять, ни на иждивение когонито, даже загранник может оказаться трудно получить.
> 6кк TC в год
6 000 000 в год, сиречь где-то пол ляма в мес?
Загранник-то не особо и проблема. А вот с визой могут появиться сложности.
Да, визу безработному хую могут и не дать, это правда.
Самое смешное, что ебучая налоговая не дремлет. Если ты эти деньги положишь в банк, то их сразу нахуй заморозят, и потребуют пояснить, откуда они.
Так что если ты получаешь ЗП в конверте, то ты и живи тогда с наличкой.
Впринципе, я не отказался бы получать в конверте в рублях чтобы не платить налог. В течение одного года мог бы и побыть безработным
НХНК переодически работает поверх СХНК увеличивая количество абстракций. Все люди боятся трогать СХНК, а НХНК боятся трогать все, кроме его автора, но кажется автор тоже предпочитает без необходимости его не трогать.
Как следствие, спайка НХНК и СХНК обрастает кучей ифов, которые можно филигранно ввинтить для твоего конкретного случая, не сломав при этом остальные двадцать восемь, на которые всё ранво нет тестов
НХНК частично дублирует функционал СХНК, но реализует его не полностью, потому некоторые вещи можно сделать только по старому.
Теоретически существует фича флаг, переключающий систему со СХНК на НХНК, но его нужно проверять в каждом месте. В некоторых местах это не сделано, и иногда часть системы работает с НХНК, а часть со СХНК. Как следствие, в рантайме можно словить в лучшем случае ``ClassCastException``, а в худшем просто неконсистентность.
Что с этим делать?
1. Смириться, и забить.
2. Взять на себя роль Архитектура и Все Переписать
3. Ваш вариант
Или просто не надо брать луней на работу, а сразу надо брать тех, кто не пишет говна?
>А чем тогда тимлиды занимаются
в фаанге тимлид занимается организацией беклога в спринты и проектированием новых фич/ревью дизайн-документов
Собссно описываемый мною кал есть следствие слабого архитектора просто
Но я не уверен, что мой рот достаточно большой, чтобы пропихнуть туда этот арбуз
Тесты на CI занимают от двух до четырех часов, и 30% из них мигает. В среднем, каждый зеленый тест падает каждый пятый запуск.
Буратино пытается прогнать тесты на CI перед пушем (это называется safe push). Push пройдет только если все тесты будут зелеными.
Вопрос к математикам: сколько дней понадобится Буратине, чтобы запушить свой фикс из двух строчек?
------
Я реально хочу написать что-то типа Задачника по математике Григория Остера, но про программистов
Сервер www.openssl.org в настоящий момент для TLS1.2 поддерживает всего три шифра:
• TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) ECDH secp256r1 (eq. 3072 bits RSA) FS 256
• TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) ECDH secp256r1 (eq. 3072 bits RSA) FS 128
• TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA 256 (0xcca8) ECDH secp256r1 (eq. 3072 bits RSA) FS
cmake под Виндой использует SCHANNEL — микрософтовский фреймворк для криптушни. SCHANNEL во всех версиях Windows < 10 не поддерживает ни один из трёх вышеперечисленных шифров.
Можно ли заставить cmake под Виндой использовать openssl/gnutls вместо SCHANNEL или для этого его нужно перекомпилировать?
Осталось придумать, как заставить систему сборки использовать мингэвэшный cmake вместо вижуалсёвого.
Потом некоторые микрософтовские сайты перестали работать в IE11. Настоятельно требуют поставить новый Edge (который на Хромиуме).
В Visual Studio стали вкладывать Clang.
MS шаг за шагом отказывается от собственных инструментов в пользу прыщеговна.
Зачем? Зачем?
Тогда они взяли стратегию Embrace, extend, and extinguish. Это случилось в районе W2K, когда они как-бы начали дрейф в сторону стаднатов Интернета, расширяя их.
Но и эта стратегия обосралась, потому что оказалось, что можно и без винды прекрасно жить с айфоном, андроидом и прыщами на сервере.
Тогда им пришлось прогнуться под окружающий мир полностью, чтобы люди не съебались с их ОСи туда, где не важно макбук у тебя или убунта.
-
Винда, кстати, превращается в кашу-из-топора потихоньку. Скоро станет не понятно зачем иметь дырявое платное говно, которому нужно делать sfc /scannow, если тебе все равно ничего не нужно кроме Chrome, а Chrome у тебя и на прыщах есть, и бесплатно.
Это вот "у меня не работает Office 97, 1C 7.7 и любимая игрушка без винды" с каждым годом все менее актуально
Многие вещи на USB, а там классы устройств стандартные. Вендоры тоже все чаще поддерживают прыщи (кто вообще мог подумать о таком двадцать лет назад?), а дешевизна чипов позволяет избавляться от софтварных недожелезок (типа винмодемов) где софт был тока под одну ос.
Наконец, вендоры материнок могут более-ли-менее кросс-платформенно общаться с ОС благодаря ACPI (но все равно харкодят везде Windows2007 конечно)
Каноникал продает ноуты полностью оттестированные ими ими официально поддерживаемые, где все точно будет работать. А рэндомный самосбор может конечно и не завестись
На прыщах любой вайфай тащит за собой """firmware""".
Просто в винде фирмварь могут грузить драйверы, а в прыще драверы в ядре, а в ядре бинарного блоба быть не может, потому ставятся они отдельным пактеом.
Однако фирмварь не равно софтварный момед или говно на AMR/ACR (ебать я старый, правда?), потому что мне похуй что там внутри устройства происходит, главное чтобы оно поддерживало нужные мне интерфейсы
А static const char definitely_not_a_blob[] = { 0x66, 0x83, 0x00, ... }; ? Это же не программный код, исполняемый на машине, там архитектура известна заранее...
Тео Де-Раат, залогиньтесь:))
GPL кажется не позволяет никакой блоб, похуй где он выполняется, пусть даже это вооще PNG файл несвободный
> GPL кажется не позволяет никакой блоб, похуй где он выполняется, пусть даже это вооще PNG файл несвободный
Пусть докажут, что это блоб, а не исходный код на языке «BYTE_ASM».
А так эта часть занимается ровно тем же, что и софтмодемный драйвер.
гологуб, ну что ты говоришь?
Прошивка работает на процессоре девайса, а софтварный винмодем на твоем CPU
Так же софтовые модемы/звук, которые, конечно, попороще, но так же бесполезны без драйвера.
у прыща есть НЕТЛИНК интерфейс по имени nl80211 к картам, и вроде через него супликанты и пиздят.
Спрашиваете, почему WMI, а не gsv?
Да потому что в Get-Service нету Descirption. Сёма, твой PS соснул
Я когда-то пользовался sc чтобы включать/выключать сервисы и смотреть их зависимости, но с завозом PS прочно о нем забыл.
Дзякую, что напомнил.
Кстати, через sc можно еще и драйверы крутить (суть те же сервисы, або с другим тиком запуска) а через gsv -- нет
Ты точно хочешь, чтобы самосбор завёлся?
в bsd games всегда были отличные игры!
* number - convert Arabic numerals to English
* caesar - decrypt caesar cyphers
* primes - generate primes
чего еще желать?
Патейтохэд был в кедах вроде
Скучный геймплей какой-то. Можно ведь не просто генерить простые числа, а вывести число и пусть игрок угадывает простое оно или нет.
Кто быстрее всех найдет все простые числа от 1 до гугола, тот Эратосфен
недавно, к примеру, вышла одна индюшатина, так ей прямо в день релиза два или три обиженных пердолика насрали в отзывы, потому что она видите ли не работает под протоном
мне ещё в 2004-ом году на уши вешали байки про то, что тогдашний баттлфилд на лялихе бегает лучше, чем на винде
не, ситуация конечно стала во много раз лучше, но всё же консьюмерская ось богов куда-то не про игры. а, если бы не габен, то вообще бы не про игры была
* DDraw
* Особенности DirectX не портабельные
* Асобенности VisualC++
не?
> недавно
Я всё конечно понимаю...
но тут другой случай, это игра от одного из авторов fuckторио (но не программиста)
Мыло -- это говнопорты с соснолей.
я играю в игры на плойке, а потом смотрю записи этих игр на пк на ютубе и даже там они сука лучше выглядят, чем на этой ёбаной мыловарне
https://i.postimg.cc/vHxM5bsr/image.png
DDraw депрекейтнули чуть ли не в восьмом директе, году так в 2002-м
Волею судеб я дрочился в основном тока с ddraw
Затем они завезли Direct3D, и 2D стало поверх него
Затем они вывделели Direct2D.
У 3D и 2D чейны адинаковые и работает всё одинаково через те же GPU
Автор драйвера для видеоодаптера реализовывает 3D и GDI драйвер и течет вроде.
GDI для винформ всяких (ну и вообще не полноэкранной модели без геймзалупа, где ты отрисовываеш говно отвечая на события WM)
https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/may/windows-with-c-introducing-direct2d-1-1
всё как ты хотел
https://en.wikipedia.org/wiki/Swap_chain
Понятно тогда, я всегда считал это частью D3D
> два или три обиженных пердолика
То есть не работает ни у кого.
тебе сюда
https://github.com/Kitware/CMake/blob/ab1edff49268df77e1cdcf8074e24e64ef140370/Utilities/cmcurl/CMakeLists.txt#L14
пересобирабля
Да, надо попробовать пересобратьбля.
Ты реально ждешь там диффи-хельмана на эллиптических кривых?
Ты еще скоро начнешь обламываться с отсутствием там корневых сервтов, познакомишься с замечательной оснасткой "Certificates" и утилитой cerutil.
Винда это не прыщи, там много чего прибито гвоздем к ОС. У меня так IKE перестал работать, потому что какой-то RFC (про отказ от фрагментации пакетов вроде) в семерку не успели запихать
На прыще я бы просто стронгсван обновил, а тут сосать
Так же и с OpenSSL/SecureChannel
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) WEAK 256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) WEAK 128
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) WEAK 256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) WEAK 128
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c) Forward Secrecy 256
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) Forward Secrecy 128
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024) WEAK 256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023) WEAK 128
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a) WEAK 256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009) WEAK 128
Жирным выделил самые сильные шифры. Но некоторые сайты их не хотят.
это в семрке такое???
Если, конечно, все апдейты поставил.
Вообще у меня жопа горит от того, что криптоговна по сути три
* TLS
* SSH
* IPSec
И так в шифрах черт ногу сломит, а тут еще три сорта говна. Почему не сделать универсально?
В центре обновления Windows изменили подпись всех пакетов с sha1 на sha256. И у пакета, который добавляет поддержку sha256 в старые системы, тоже.
Теперь, если у тебя старая Винда без обновления, то пакет поддержки sha256 устанавливается нетривиальным способом.
А про другого уробороса (чтобы с сайта openssl.org что-нибудь скачать, нужно уже располагать софтом, поддерживающим самые современные шифры, скачанным в другом месте) ты уже прочитал.
нет?
Может, там где-нибудь
Надо читать MSDN, там про БИТС много
Я сним програмно не работал никада, только как пользователь, и видел, что она ест 100%, но как тока запускаешь другой процесс -- сдрискивает.
Там вроде в API можно приоритеты задвать, с других компов качать (бранч кеш) еще какое-то такое же говно
Короче, MS даже файл скачать не может без большого сложного фреймворка с кучей возможнгостей
...скачать Гигабайт... ну, теоретически можно...
* У тебя 1000 машин решила обновитьcя, а WSUSа у тебя нет
* Ты мелкий юрик, и у тебя 100 мегабитный канал (потому что 1 гигабитный стоит 251 000 рублей в месяц для юриков в твоем БЦ)
* Твой склад в жопе за вооон тем пригорком, и там единственный провайдер на всю тайгу, и стоит миллион
* Ты живешь в европке, и Интернет у тебя по ADSL
* У тебя вообще нету кабеля, и ты антенну выставил , и fresnel zone у тебя над елками. Или вообще интернет через сотовую сеть с оплатой за мегабайт.
А ещё бывает, что какой-нибудь компонент Windows поставил задачу BITS, а пока эта служба качала, на микрософтовских серверах в очередной раз структура URL поменялась, а редиректа со старых URL на новые нет, так что кругом 404.
ки!
ки! кирус же!
keyrus.com от Димы Гуртяка. Сейчас это оркостан, кстати
В 1989-м вышел KEYRUS.
В 1993-м вышел шестой DOS. В нём cp 866 уже была.
Когда появилась поддержка страницы 866 и русской раскладки в DOS из коробки, точно не знаю, но явно между 1986 и 1993.
В организациях, использовавших DOS, почему-то ставили KEYRUS и прочие нестандартные русификаторы (например, крошечный RK.COM) вплоть до начала нулевых, когда с DOS стали уходить. Почему, если встроенная поддержка страницы 866 и русской раскладки средствами MODE и KEYB уже была?
Во-вторых потому что загрузка MSного драйвера через config.sys отъедала половину conventional memory, а ее и так было совсем недохуя (всем хватит 640 ага)
>точно не знаю
ты не читал что ли эпическое
http://rdos401.org/
???
читать быстро!)
Да, у меня было 635 к для запуска программ.
Просто QEMM мало кто умел настраивать. Обычно используют его процедуру OPTIMIZE, а она косячит. И да, QEMM был пизженный, но кого это заботило...
Я выключал русификатор, и все работало
Позже я узнал, что ближе к нулевым появилась масса интересного бесплатного ПО, которое может заменить QEMM: какие-то программы умели шаманить с UMB, какие-то — с HMA. Появилась куча программ, шаманящих через временное переключение в защищённый режим. Например, драйвер мыши, умеющий в так называемый cloacking (да, звучит смешно). Или dpms.sys компании Stacker (DOS protected mode services; не путать с пауэр-менеджментом для дисплеев), который драйверам предоставлял API для размещения части данных или кода в памяти защищённого режима. Интересно, что cloacking и DPMS не конфликтовали с dos4gw, с Windows и с прочей питушнёй защищённого режима.
Я помню DPMI и VCPI тока, в основном конечно серьезный софт старался dos4gw делать
> Белоруссии
Ватно.
но текст не про то
Текст уровня баек, которые травят охотники, когда распили вторую. Начиная охуительной историей, как он перезвездился и отверг зарплату значительно лучше и заканчивая тем, что два старых хрыча работали над статьей, но всё равно непонятно, что за основная и какая альтернативная
https://cmake.org/cmake/help/latest/module/ExternalProject.html#external-project-definition
я так как-то и чувствоваол
собери курлы-курлы с опенссил теперь только
Да, через DOWNLOAD_COMMAND цепляется и работает.
https://stackoverflow.com/questions/35847655/when-should-i-quote-cmake-variables
Скрипт, написанный прыщеблядью, не знающей о точках с запятой, приходится переписывать, чтобы он работал под Виндой. Про «-E env» я читал; про функции поиска и замены в строке тоже. Всё равно это говно вылезает.
Ощущаю себя хуже пхпшника.
сразу перестанешь сравнивать го с пхп
а ты считаешь себя them/they?
да не пзиди
не бывает чистого кода не пхп. Стопудово у тебя там в одном файле были mysql_real_escape, таг "<B>" и CSS
не могло быть иначе просто
Чем это лучше?
Если честно, то я считаю обработку ошибок в Go гомосячей. Менее гомосячей чем исключения например, но более гомосячей, чем монады.
Но она хотябы есть
В коко ее под час и вовсе нету
> goмосячей
FTFY
> а в отдельных фреймворках .NET так и подавною
По крайней мере, когда определённый паттерн становится слишком популярен, шарпеи его поддержку на уровне языка встраивают.
https://docs.microsoft.com/en-us/dotnet/desktop/wpf/properties/how-to-register-an-attached-property?view=netdesktop-6.0
Хотя безусловно в .NET есть сахар вроде евентов и обычных пропертей. Это конечно дает джаве пососольдо все таки, ну и public вроде не нана писать каждый раз
Если джаву тут у нас Снаут кажется сказал, что там надо тридцать раз написать "@Override public static void final", то в го надо написать "err != nil"
<занудство>По идее не скомпилицо с таким набором мудификаторов.</занудство>
Надо анпсать "public static void" просто
Думаю все себя ощущают хуже пхпшников.
Просто не могут признаться в этом даже себе.
Что пирдолик-крестушок чувствует себя счастливым, часами ожидая пока скомпилируется метушня?
Или (типа)жопаскриптер, который пока настроит кучи своего говна?
Все мои друзья писали кто на С++, кто на Pascal, а я хотел писать на PHP, и думал: что со мной не так?
Я долго не мог сказать об этом родителям (отец у меня человек старой закалки, и точно бы не понял), потому я нашел группу анонимных ПХПников в интернете, и мне стало легче...
https://govnokod.ru/26776#comment557862
Но фотополимерник я купил ради того чтоб женские бюсты с сиськами печатать. FDM конечно тоже хорош, но очень мелкие детали ему уже физически не подсилам. Но он все так же будет лучше в плане печати технических деталей, так как и пластик гараздо по характеристикам лучше и быстрее.
Baby rooster ko ko ko ko ko ko
Baby rooster ko ko ko ko ko ko
ko ko ko!
Daddy rooster ko ko ko ko ko ko
Daddy rooster ko ko ko ko ko ko
Daddy rooster ko ko ko ko ko ko
ko ko ko!
Mammy chicken ko ko ko ko ko ko
Mammy chicken ko ko ko ko ko ko
Mammy chicken ko ko ko ko ko ko
ko ko ko!
Grandba chicken ko ko ko ko ko ko
Grandba chicken ko ko ko ko ko ko
Grandba chicken ko ko ko ko ko ko
ko ko ko!
Grandpa rooster ko ko ko ko ko ko
Grandpa rooster ko ko ko ko ko ko
Grandpa rooster ko ko ko ko ko ko
ko ko ko!
Let’s go eat ko ko ko ko ko ko
Let’s go eat ko ko ko ko ko ko
Let’s go eat ko ko ko ko ko ko
ko ko ko!
int однозначно value type, хранится на стеке в случае локальной пельменной, вот это все.
Тогда что тут происходит
На последней строчке a отправился в кучу, и я вернул на него поинтер? А если бы не вернул, он в кучу бы не попал?
Или я не должен об этом думать?
Массивы где хранятся? Реально ли на стеке создать массив на 4 гига? Или опять таки не надо про это думать?
Слайсы указывают на кусок массива, но если я делаю append, то они начинают на другой указывать, и underlaying array копируется?
Если я напишу
то создам анонимный массив на куче, и буду с ним работать только через слайс?
Или я снова не должен думать про массив тут, а должен видеть как-бы динамический массив (типа вектора) а что и как он там хранит -- пофиг?
Гобляди сначала насрали термины reference и value type, а потом от них открестились?
Блядь как все сложно, заберите меня обратно в няшную
Теперь я верю, что Го это ПХП 2022
Тут вопрос: нахуя развращать адреса ло-калок?
But the Go compiler is very Intelligent!. It will not allocate the memory on the stack to the local variable of the function. It will allocate this variable on the heap. In the below program, variable lv will have the memory allocated on the heap as Go compiler will perform escape analysis to escape the variable from the local scope.
Ахуеть, goворящая свинья.
https://www.geeksforgeeks.org/returning-pointer-from-a-function-in-go/
При том что они завезли new.
> Another way to get a pointer is to use the built-in new function:
> new takes a type as an argument, allocates enough memory to fit a value of that type and returns a pointer to it.
не важно. Важно, что в няшке и крестах это убе, а в говне --- ни?
>smart
ну как я и думал, я не должен про это думать, и рассматривать "&" как new в ЯЖА
А если локалка не покидает скоуп, тогда стековая питушня.
Но это ничем не лучше Йажи, где всё куча, но Hotspot умеет локалки оставлять на стеке.
https://wiki.openjdk.org/display/HotSpot/EscapeAnalysis
Doomаю механизм примерно одинаковый.
Ну и сделали бы уже как в ЯЖА, без этих ебаных & *.
Но хотели всех объебать. Чтобы сектанты могли заманивать: «йаже как Сишка».
То что по виду похоже на низкоуровневый язык, на деле оказывается унылым Govnom.
Указатели вроде есть, а арифметики нет.
А разницы между & и new выходит нет?
---
Напоминило историю из первой половины нудлевых, как в ObjC завезли лямбады (блоки кажется назывались) и там они по умолчаню создавались на стеке, и надо было их явно в кучу копировать. А потом не надо стало
Да хрен его знает, я же не говноед какой.
Они же говорят что компилер умный, сам где надо положит. Тогда какая разница?
https://stackoverflow.com/questions/9320862/why-would-i-make-or-new
Строго по Хармсу
Две дамы спят, а впрочем нет,
не спят они, а впрочем нет,
конечно спят
Q: Is there a difference between new() and "regular" allocation?
Ответ 1 (48 баллов): No. What they return is the same,
Ответ 2 (22 балла): Yes, there is a fundamental difference between the two code fragments.
https://stackoverflow.com/questions/13244947/is-there-a-difference-between-new-and-regular-allocation
---
Я бы конечно советовал сделать sfc /scannow
Всё-таки крестухов можно ругать за многое, но у них хотя бы Стандарт ™ есть.
https://go.dev/ref/spec
просто в это они не могут
Note that the zero value for a slice or map type is not the same as an initialized but empty value of the same type. Consequently, taking the address of an empty slice or map composite literal does not have the same effect as allocating a new slice or map value with new.
p1 := &[]int{} // p1 points to an initialized, empty slice with value []int{} and length 0
p2 := new([]int) // p2 points to an uninitialized slice with value nil and length 0
во втором случае мы сразу создаем указатель на nil.
Ну вот скажи мне, это типа просто и понятно? Куда проще, чем в сложной сишке, да?
Тут и сказать-то нечего, такой это неочевидный пиздец.
И говнюки-то сами сходу ответить не могут. Анскилябры, да.
Причём сёмантика и поведение new в крестах, в йаже, в йажасцрипте и в говне совершенно различны между собой, причём в каждом из них полно нюансов.
А в Сишке никаких new нет.
C# еще забыл:) Там можно вызвать new у value type, и он (в отличие от крестов) совсем не на куче создастся:)
Веселее всего в доклассовом JS: там new просто вызывало функцию, передвая туда неявно новый пустой объект по именем this, и кажется прописывая ей прототайп в эту функцию.
А еще new бывает методом класса в ЯИБУ и ObjC (там он далеает alloc + init)
По степени всратости всех конечно уделал Perl с его bless, который просто привязывал пакет к хешу, но там функцию, коея это делает, тоже частоназывали "new"
PS: ну и конечно напомню, что в JAVA и C# на самом деле "new" -- лишнее слово (да и в современном JS малость тоже).
Хорошо, что в питухоне и коко его нет
В C# и PHP new по поведению очень похоже на жову. А она была первой.
В крестах наверняка можно перегрузить new так, чтобы объект создавался не в куче.
> что в JAVA и C# на самом деле "new" -- лишнее слово (да и в современном JS малость тоже).
Ну а как создавать объекты? Рефлексией?
Вот в JS оно абсолютно лишнее. Объект из заданного прототипа можно сделать и через Object.create()
Они принимали имя программы или строку с которой нужно начинать выполнение.
Да, чисто визуально выглядит, как ОС над интерпретатором, но это не ОС, это сам интерпретатор.
Интерпретатор Бейсика разрабатывали с учётом того, что на машине могло не быть текстового редактора. Именно поэтому была команда LIST и номера строк. Если строка, передаваемая интерактивному режиму, начиналась с номера строки, интерпретатор добавлял или заменял строку с таким номером в программе.
NEW тупо обнуляла программу, а RUN запускала.
Кое-где можно было вызвать RUN с аргументом — с номером строки, на который сделать GOTO перед запуском.
В смысле? А разве где-то было нельзя??
А там был бейсик
У многих компов 80х (включая и классическеий ПиСи) в прошивке был бейсик
Потом у IBM PC из прошивки «Бейсик» удалили. Если же по старой памяти его вызвать (через INT 25H или как-то так, уже точно не помню), выведется строка «ROM Basic not found».
Бейсик был в прошивках бытовых компьютеров: БК-0010, Спектрума и т. п. У некоторых даже на клавиатуре были горячие клавиши для ввода команд Бейсика одним нажатием.
А вот у «Агата-7» был монитор без Бейсика. Его монитор позволял вводить только машинные коды. Как сейчас помню: C300G означало перейти по адресу C300 (hex), по которому в прошивке лежит подпрограмма загрузки с первого дисковода.
Давай, повергни всех в шок своим признанием.
В первых униксах для DEC-11 чуть-ли не единственным скриптовым языком был не какой-нибудь питон или awk, а именно бейсик.
Правда его больше как куркулятор юзали.
Впрочем сейчас питон так и используют.
Но конечно же это пристрастие к васику унаследовали от пэка на 8080.
угадай, где создаста юзер
>В крестах наверняка можно перегрузить new так, чтобы объект создавался не в куче.
В крестах есть placement new, ты можешь объект хоть в memory mapped файле создать, вот тока зачем?
>Ну а как создавать объекты? Рефлексией?
Убрать слово new, и все: как в питоне и котлине.
Почему не песать так
а еще лучше так
> var user = User();
Потому что это вызов функции, а не конструкция объекта
> а еще лучше так
> User user{};
потому что джава не умеет в инициализаторы, ты хочешь от неё слишком многого
Почему? Почему не может быть это созданием объекта?
Почему Котлин и Питон обошлись без ненужного слова "new"?
"new" имеет смысл только в С++. В остальных языках тупые обезъяны завезли ненужный хлам чтобы другие обезъяны потом его использовали.
Это как писать "foo->bar()" вместо "foo.bar" в пыхе.
сук, даже в С++ у референсов не надо эту хуйню писать
Это легаси. А вот шарпеи (уворовавшие Йажу) и пхпшники могли бы уже и подумать.
> Убрать слово new, и все: как в питоне и котлине.
> Почему не песать так
> var user = User();
Неоднозначность. Сразу непонятно функция это или конь-структор.
>а еще лучше так
>User user{};
Крестопидорство.
Да я ж не против "заменить". Речь о том что в JS его вообще безболезненно можно убрать.
Кстати, волшебная искра Сишки все-таки осталась в Йаже.
Так тоже можно
Но зачем?
А зачем это понимать? Почему я должен отличать вызов вонкструткора от вызрва фабричново метода например?
Альсо, в ЙАЖА обычно метолы камиль кейсовые же, это в шарпе они с большой буквы
Так например они не додумались (не захотели) вызывать лямбды как func().
На каждый интерфейс почему-то нужно писать func.call() / func.run() / func.execute() / func.accept(t) итд. По мне это уебанство, если мы заведомо знаем что у интерфейса один метод. Но решили вот так.
Лучше бы метод был User.new()
Та это же дельфячьи конструкторы же!
petuh = Petuh.new
> petuh = Petuh.new
Так в Дельфях тоже можно было опускать скобки.
«Вот и выросло поколение, не знающее Паскаля.»
Язык «Object Pascal» вполне годный. А то, что ламеры наформошлёпили говнософта с TForm1, так это не проблема языка, а его популярности. Сейчас то же самое с другими языками происходит.
В Паскакале, это Вирт придумал, чтобы скобки нужны были только когда есть аргументы. А позже какие-то дрочилы зачем-то учудили ставить пустые скобки в Functiya1Call()
... придумали first-class functions и понадобилось отличать функцию от её вызова.
> придумали first-class functions
Всегда были.
> отличать функцию от её вывоза
Оно само отличает. Разве что чисто визуально отличать от чего-то непонятно чего ещё. Хрень, короче.
В Бейсике (еще со времён Быстрого) M$ для этого предусмотрел ключевое слово Call.
В яибу принято передавать лямбды/блоки в разные функции, даже массивы они обходят передавая туда лямбду, которую нужно для каждого элемента вызвать.
А как передать туда метод?
Я не могу скзаать ``foo.bar``, потому что это вызов метода!
Для этого они пишут ``foo.method(:bar)``
https://docs.ruby-lang.org/en/2.4.0/Object.html#method-i-method
Зачем пердолиться с указявками, когда есть божественный процедурный тип?
Так точно! В них есть возможность произвольно выбирать название конструирующего метода.
> Ну вот скажи мне, это типа просто и понятно? Куда проще, чем в сложной сишке, да?
Не знаю. Может паскалистам зайдёт.
Для них это более-менее привычный синтаксис.
new (type) — аллоцирует место под тип. Но в отличие от говна по указателю будет мусор.
Dispose(p) — освобождает.
А инициализация идёт отдельной процедурой.
Но опять же, зачем говнюки засрали логическое И?
Go делает статический escape analysis прямо по AST в момент компиляции, и если запустить его с -l (отключив инлайнинг) и -m, то можно увидеть, как он работает.
А теперь давайте избавимся от хипа
Отсюда вывод: хороший Goвнюк должет это понимать, и смотреть на свои программы с помощью "-m", иначе случайно насрет в кучу.
Вот вам и простой язык...
Она создает питуха, и его и возвращает
Другая как-бы создает его как-бы в где-то (как-бы в куче) и далее мы оперируем указателем на петуха, а в конце его разыменовываем.
Но анализ говорит
.\main.go:13:12: new(DeKip) does not escape
И код получется одинаковый
Возможен и обратный случай (опять таки -- оба варианта идентчины)
Забавно, что перекладывание локальной переменной на кучу он назвал "moved to хип", а отказ от перекладывания из кучи обратно так и назвал "escapes to heap" (бо она там изначально и была).
Так что можно похоже думать так: Я все создаю как в сишке, просто потом приходит злой дядя, и прекладывает что-то из стека в кучу или обратно в тайне не от меня
Меня это тоже смутило. Я даже подвис на минуту.
Как new может совершать побег на кучу.
Из этого сообщения я понимаю, что goвно вообще срало на эти new.
Оно по возможности аллоцирует всё на стеке. А дальше как escape analisys решит.
Код -> AST -> Анализ -> Асемблер
Но мне говорят
.\main.go:8:12: new(DeKip) does not escape
и эффективно заменяют на
При этом если питух достаточно жирен, то ситуация обратная
.\main.go:8:12: new(DeKip) escapes to heap
И даже
.\main.go:8:2: moved to heap: kip (и меня не спросил)
Короче, пиши как хочешь, твои желания компилятору насраны
moved о том, что ты как-бы попросил на стек положить, а его мувнули в кучу
Но разницы нет. Наверное можно подобрать кейс, когда он объпебется, и например двинет в кучу то, что не надо, и затупит, и там можно будет руками оптимизнуть, но шансы редки
Вероятнее всего когда объект уже достаточно большой, но ещё влазит в стек.
> и там можно будет руками оптимизнуть
Не понял как. Он же игнорит все хинты.
В Турбо Паскале сделали так: вызывающий блок резервирует место в стеке под возвращаемый массив и передаёт в функцию последним аргументом (который на уровне языка не видно) указатель на это место, чтобы функция знала, куда класть результат. Недостаток: нужно заранее знать размер массива.
Тут вызываемый код перед передачей аргументов сделает sub sp, 3*sizeof(integer), потом передаст аргументы функции, потом запушит указатель на выделенный блок, и только потом сделает call.
В Go вот решили ничего заранее не аллоцировать и ничего лишнего не передавать, пусть аллоцирует функция и вернёт результат.
Какие ещё варианты? В стек внутри функции мы срать не можем, функция его должна вернуть в первозданном виде. Глобалки — не вариант.
Сишка не умеет вернуть массив per-se, но может вернуть структуру, которрая тоже в регистр не влазит.
И у нее сделано точно так же: вызывающая сторона создает место на стеке, и передает указатель в вызываемую функцию, дескать "срать ВОТ СЮДА".
В Go можно вернуть массив, а можно положить его в кучу, и вернуть указатель (ну как и в сишке).
тут все честно, вернули массив копированием.
А тут серанули его в кучу
Разумеется, получили
.\main.go:4:9: &[2]int{...} escapes to heap
Более идеоматичный способ
.\main.go:4:14: []int{...} escapes to heap
скобочки-инт это слайс, указатель на массив. Тут мы создаем где-то-в-куче массив, и возвращаем на него указатель
мы честно вернули массив. Но если size у нас 4096 * 4096, то стек может и порваться на нацистский крест, и тогда...
воу
Так что можно типа даже и о перформансе как-бы не думать, оно само все сделает
?
> Какие ещё варианты? В стек внутри функции мы срать не можем, функция его должна вернуть в первозданном виде.
Именно поэтому я за С++
https://godbolt.org/z/8E8q5h8vf
Массив побольше и тут С++ справился
https://godbolt.org/z/ffdEz66je
для мелкого array тупо пхнул его в регистр, для крупного -- вызывающая сторона подготовила место на стеке, а вызываемая туда пхнула массив
std:array приятная штука, лечит одну из травм няшной
А вот скажите, кроме Go и std::array где еще массив передается по значению? Сходу помню превращение перломассива в лист, но это не совсем то
D наверное тоже. Там массивы очень приятные.
> std:array приятная штука, лечит одну из травм няшной
С этим она стала ещё приятней. Теперь не надо ручками размеры высчитывать.
https://en.cppreference.com/w/cpp/container/array/deduction_guides
Сишка.
Видим что делает старый шланг на -O1
lea rdi, ... — это как раз передача (n+1)-м аргументом указателя на выделенный кусок.
Какое тупое говно )))
Ахаха, говнюки сами путаются. Как клоуны с РНР.RU, ей богу.
https://stackoverflow.com/a/9321658
Ну получается ГОндоны на ровном месте запарашили оператор логического И.
Ей богу, мне С++ проще понять было
Если ты слово «PLEASE» употребляешь редко или вообще не употребляешь, транслятор падает с ошибкой E079 «Программист недостаточно вежлив». Если же наоборот, частишь, то транслятор упадёт с ошибкой E099 «Программист слишком вежлив».
«Правильная» частота слова «PLEASE», не документирована. Её нужно подобрать при отладке.
Вне зависимости от качества твоего кода компилятор может упасть с сообщением «Случайная ошибка компилятора», которая при следующем запуске не воспроизведётся.
> компилятор может упасть с сообщением «Случайная ошибка компилятора», которая при следующем запуске не воспроизведётся.
Гейзенбаги и в обычных язычках нередкое явление. Особенно с тех пор как все начали угорать по многопоточности.
Если ты слово «YIELD» употребляешь редко или вообще не употребляешь, процесс виснет с ошибкой «Uninterruptible Sleep State». Если же наоборот, частишь, то процесс тормозит .
«Правильная» частота слова «YIELD», не документирована. Её нужно подобрать при отладке.
Вне зависимости от качества твоего кода в процессоре могут быть race condition и система может упасть со случайной ошибкой процессора, которая при следующем запуске не воспроизведётся.
“under a complex set of internal timing conditions and system events, software using the Intel TSX (Transactional Synchronization Extensions) instructions may result in unpredictable system behavior.”
Thread.sleep(0) зачастую эквивалентен Thread.yield()
методика для вас, вы будете в шоке, как все легко и просто. С
уважением, Дина. Ваша ссылка:
https://docs.google
«Начальник отдела креативного планирования». Все что нужно заполнить
типовое резюме. Менеджер по персоналу, Агата. Ваша ссылка:
https://docs.goo
зашибать деньгу больше. Мой метод заработка прост, и с ним справится
любой, просто следуйте инструкциям. С уважением, Марфа. Тут
подробности: https://do
До-до-до-до, издалека,
До-до-до-до, и долетела,
До-до-до-до, до цветка.
Ik wil beer alsjeblieft
(шутка распостраняется по лицензии BSD)
В немецом похоже: Bär — Bier. А вот Beerе будет означать ягоду (не наркома, а фрукт).
А если вспомнить, как эти три слова звучат и пишутся в английском, совсем запутаешься.
>ягоду
ну да, berry у англичан
Их было так много, и в каждой 999999 игр (на самом деле две)
Где-то были гонки, где-то галакшн, тесты разные, змейки, справа рисовались фрукты, а еще я видел брикгейм в виде дельфина, который что-то на китайском пищал
> на самом деле две
Четыре. На некоторых больше.
* появилсь модули
* появились генерики
Очень нехватает функциональщины: код длинная, скучная императивная портянка.
Бабла за него платят дохуя
https://www.octoparse.com/blog/15-highest-paying-programming-languages-in-2017
Пожалуй, стану Goвноедом. Один хуй мне в компании крестоблядствовать не дадут
С поебенью с памятью я уже смирился
На вкус примерно как смесь питона и пятой джавы, но с указателями
Хуже. В питоне и джаве хотя бы исключения были.
Но это конечно отборное говноедство (во всех смыслах), хвастаться наличием женериков в 2к22
15 March 2022
Go 1.18 is a massive release that includes new features, performance improvements, and our biggest change ever to the language. It isn’t a stretch to say that the design for parts of Go 1.18 started over a decade ago when we first released Go.
Generics
In Go 1.18, we’re introducing new support for generic code using parameterized types.
Разнорабочий без опыта на стройку вахтой
60 000 — 90 000
Приглашаем РАБОЧИХ СТРОИТЕЛЬНЫХ СПЕЦИАЛЬНОСТЕЙ на работу вахтовым методом на крупных промышленных стройках по всей территории РФ
Опыт работы не требуется, мы всему бесплатно научим
Прямой работодатель
УСЛОВИЯ:
• Белая заработная плата от 60 000 до 90 000 р./мес.;
• Повышение ставки со второй вахты.
• Срок вахты 60/80 смен. По желанию, вахту можно продлять.
• Оформление по ТК РФ с 1-го дня работы;
• Своевременные выплаты 2 раза в месяц, на карту банка;
• Карьерный рост
ПРЕДОСТАВЛЯЕМ:
• Проживание;
• Питание или суточные;
• Спецодежду и инструмент;
• Обучение и медицинскую комиссию;
ТРЕБОВАНИЯ:
• Желание работать и зарабатывать;
• Отсутствие противопоказаний по здоровью
ОБЯЗАННОСТИ:
• Соблюдение трудового распорядка
?
Я так-то не против (пошло оно в пизду это ваше ООП) но как-то это необычно
Ебать мой хуй.
Вышла Java 18. Последний раз я видел новость «Вышла Java 7».
На фоне этого уныния и родился Коко
А потом йажу купил Оракл, и всё заверте
... не ломать обратную совместимость.
> А потом йажу купил Оракл, и...
> The method covered in other answers that employs ((DirectBuffer) byteBuffer).cleaner().clean() doesn't work on JDK 9+ (even in reflective form) without displaying an An illegal reflective access operation has occurred warning.
> This will stop working altogether in some future JDK version.
https://govnokod.ru/28254#comment779032
именно по этому я за "Perl 5"
* без ГЦ
* со строгой статической структурной типизацией из коробки
* с нормальной модульной системой
* с пакетным медженером
* со строгим кодстайлом
* со встроенным тест фреймворком
* с API для профилировки и дебага
* с хорошим интеропом с си
* с хорошей поддержкой функционального программирования
* с иммутабельностью всего по умолчанию
* чтобы прикольная зверушка была на логотипе
?
Потому что нельзя
Потому что нельзя
Потому
что
нельзя
да ты накрепко охуел со своими запросами!
в кристале кстати вроде можно без гц писать
> со встроенным тест фреймворком
а вот это сразу нахуй, что я должен делать, если он хуевый и меня не устраивает?
убиться об стенку, например. Потому что я срал-ебал когда восемь разных фреймворков для любой задачи
симпатично, кстати
как руби, но стат типизацией
а как там реализовано осовбождление памяти и рисурсов?
Забавный пример ложного утверждения.
>после перла конечно
или правда попроболвать?
Так что попроболвать стоит.
Чтобы уже обсирать рустню на ГК со знанием дела. А не анскильными набросами, как это делал я.
Нужно поменять местами "семья" и "айти".
> JEP draft: Universal Generics (Preview)
> Unify the treatment of reference and primitive types in generic code by allowing Java type variables to range over both kinds of types. Produce new warnings to maintain the safety guarantees of generic code.
Неужели джава наконец-то решила родить нормальную платформу?
> Generic classes and methods will continue to be implemented via erasure, replacing type variables with their erased bounds in generated bytecode. Within generic APIs, primitive objects will therefore generally be operated on as references.
А нет, не решила.
> The new warnings will be highly visible, and they will need to be understood and appreciated—not ignored—for them to have their desired effect.
Good luck with that!
или будет автобоксинг как в C#
а ArrayList<Byte> Все равно будет антицарский
https://tinyurl.com/2p988s6c
емнип джит у тебя будет компилировать одну общую версию для ref-типов и по оьтдельной для каждого валью-тайпа, совсем как шаблоны
автобоксинг в 99% случаев бывает только когда ты валью-тайп к интерфейсу приводишь
JAWA работает на трёх миллиардах устройств. Разве могут миллиарды мух ошибаться?
C++ер говорит: хорошо, как мне сделать вектор интов?
А ему говорят: поставь стороннюю библиотеку
C++ер поставил, и говорит: а как мне передать массив по значению?
А ему говорят: а ты его передай по указателю, а на принимающей стороне скопируй
С++ер передал, и говорит: а как мне сделать указатель на const, чтобы мне на той стороне его не засрали?
А ему говорят: а ты сделай специальный интерфейс, и реализуй там нужные методы
С++ер говорит: а вот у меня тут структура из двух полей byte, как мне ее на стек положить, и везде копировать?
А ему говорят: ну ты сделай int, и маской из него вычленяй байты. Ну или сделай финальный класс, и надейся на JIT
С++ер говорит: ну ладно, бляди, а я вот файл открыл в конструкторе. Как мне его закрыть, когда объект удалится?
А ему говорят: а ты реализуй интерфейс Closable, оберни создание объекта в try, и..
Тут С++сер встал, и вышел из комнаты. А ему в догонку доносилось: "Кстати, если захочешь использовать mmapнутые файлы, то тебе понадобится рефлексия, причем в зависимости от версии JVM -- рааазнааая..."
Это уже всё детали говнореализации. Даже в крестопараше нет никаких гарантий с т.з. стандарта, что некоторое говно, объявленное как локальная переменная, будет у тебя всенепременно аллоцироваться в каком-то там стеке. Стандарт не оговаривает, что есть какой-то там стек вообще, т.е. локальные переменные у какого-то там говнокомпилятора теоретически вполне могут храниться в односвязном списке в куче и очищаться по выходу из скоупа
Глобальный, локальный и статический.
Именно поэтому я за «PHP».
.ЧИХ-ПЫХеры.
мы не херы , а чих-пыхеры
Пыхер в Харьков « Предлагаю работу « Форум - ПЫХА
Работу, которую раньше за месяц делал один пыхер с зп 50к в мес., сейчас полгода делает команда из пяти React/Redux разработчиков с зп 250к.
а React/Redux сначала качает свои пятнадцать мегабайт, затем три секунды пишет "starting", а затем хром выедает одно ядро на Tiger Lake i9
Ах да, еще пыхарь свой код тотал коммандером по FTP на сайт загружал, а фронт пять минут компилиркется
У нас на работе фронтовики переехали с «Webpack» на «Vite». Теперь фронт компилируется не десять минут, а всего три!
хм...
там еще надо знать специальный ключ для ноды, чтобы разщрешить ей нааллокейтить себе мнгого памяти
Программист из 1999-го года слетал в 2022й, возвращается, и грит:
у них 64 гига оперативки
чтобы компилировать
джаваскрипт
компилировать
джаваскрипт
64 гига
его потом в дурку забрали
"Хуавей в своих процессорах добавил новую инструкцию, через которую JIT PowerShellа хорошо работает"
Он говорит: а нахуя??
Как это, говорят, нахуя? Под него же все современные приложения написаны, под FacebookOS
> в своих процессорах
> Хуевей
Вот в этом месте смешно. У них своего только дырища в TSL и грамота из райкома.
У некоторых компов энергонезависимая память (SSD/HDD) меньше.
> всего по 64 гигабайта
В начале нулевых у суперкомпьютера Гидрометеоцентра, способного предсказывать погоду на всей планете, жёсткий диск был меньше, а оперативки и подавно меньше было.
А тут для компиляции...
Мечтаю, чтобы какой-нибудь катаклизм уничтожил компы и пришлось начинать с нуля, с табуляторов, программируемых перемычками...
Потому что у мусорки на вокзале валялась пожеванная жвачка с налипшими на нее волосами (JavaScript), а ее подобрали, и стали пытаться из нее сделать кольцо с сапфиром.
Трудно делать кольцо с сапфиром из старой жвачки, облепленной волосами. Требуется много энергии
Но когда обычная императивная рутина, конечная цель которой — вывести банальную HTML-страницу с текстом и картинкой, требует неимоверных ресурсов, мне это кажется саботажем и распилом.
неограниченные ресурсы (AWS) развращают неограниченно
-------------
вообще сама мысль написать компилятор на высокоуровневом ЯП без целых чисел зато с GC и запускать его через JIT на какой-то хуйне вырванной из браузера это пиздец
Про остальные сервисы сказать ничего не могу, я ими не пользуюсь, и полагаю, что толку в них не много
На джаве написаны
* IDE для джавы
* Профайлер для джавы
* Система сборки для джавы
мало??
Кстати, а стандарт говорит, что автоматическую меременную создать дешевле чем секрануть в дин память, или это тоже деталь?
Нет, думаю что он ничего такого не говорит. Ну и если у тебя локальный инициализированный массив, который НЕ ОБЪЯВЛЕН как const но по-факту никто и ничто его не меняет, так что можно было б сделать его const (и компилятор это может доказать), то компилятор его может тупо разместить сразу же в неизменяемой секции на этапе компиляции, без всяких стеков
больше разницы нет?
Пришел к тебе студент, и говорит: почему я должен автоматичесеую переменную делать, а не хранить данные в куче?
Что ты ему ответишь?
Стандарт крестов нихуя не описывает конкретики, через какое именно говно на низком уровне выделяется память для автоматических переменных, и через какое именно говно выделяются данные в куче.
А так оно и есть. Не вижу в этом проблемы.
Вот есть например такая хуйня https://en.wikipedia.org/wiki/Catapult_C которая крестопарашный код как-то умеет компилировать в FPGA. Сможешь ли ты дать четкий ответ, через какую такую сраку там будет выделяться автоматические переменные и через какую такую сраку там выделится некое говно на хипе?
И потому я за "go": там программист может где угодно что угодно размещать, а потом придет escaope analyses, и переебёт всё по своему
Это всё вранье. Оно красиво звучит для искусственных, тривиальных примеров, вроде «заполнили массив из 3.5 элементов» и тут же вернули.
Вот пример. У нас есть горячий цикл, в котором переменная не покидает стек, но есть ветка, где найдённое значение таки ложится в кучу.
К примеру это код поиска контрпримера к некоему математическому утверждению. Мы понимаем что 99.9% итераций не будут удачными.
С т.з. компилятора переменная покидает стек, но априорно он не знает покинет она его или нет. До тех пор пока не будет проверена текущая кобенация.
Что, "умный" компилятор будет делать? Туда-сюда в куче аллоцировать и освобождать? Ведь нельзя понять статическим анализом при компиляции что 99% аллокаций нужно на стеке и 1% на куче.
И что тогда говнюшюнок будет делать?
У меня в Си выделение на хипе это просто кусок памяти из-под malloc, в который тыкается указатель на некоторое говно и через него в него чего-то пишется. Где тут "объект"?
object:
region of data storage in the execution environment, the contents of which can represent values
что не так?
ООПное говнопонятие мутное не имеет к понятию object в няшной никакого отношения
> переменная это объект в той самой памяти, ну
Но ведь "выделенная через malloc память" это никакая не переменная. Адрес выделенной через malloc памяти может хранить некая переменная, а может и не хранить. В общем хуйня какая-то.
да.
>Но ведь "выделенная через malloc память" это никакая не переменная.
Почему? Это переменная, с которой ты работаешь по указателю.
Какие две переменные я сложил?
``(*a) + b``?
>Адрес выделенной через malloc памяти может хранить некая переменная, а может и не хранить.
Если никакая переменная не хранит адрес, то он утек. Считай, что переменной в коде больше нет, зато есть бага
А можно сюда определение, что такое переменная?
> Какие две переменные я сложил?
> ``(*a) + b``?
Ты сложил значение "b" и результат разыменования "a"
> Считай, что переменной в коде больше нет, зато есть бага
На самом-то деле далеко не факт. Я совершенно сознательно могу не освобождать память, например если я точно знаю, что моей программе нужно вот столько-то оперативки отожрать, она что-то там делает и потом завершается, то мне незачем что-то освобождать, это один хрен сделает операционная система.
Конкретизирую вопрос. Что такое переменная с т.з. стандарта, и является ли вернувшаяся после вызова malloc() хуйня (если это не NULL) этой самой переменной? Если является, то переменная это адрес в памяти? Переменная это та память сама по себе (диапазон валидных адресов, по которым можно записывать некую хуйню)? Переменная появляется тогда, когда выделенную через malloc() память каким-то образом используют (пишут-читают некую хуйню) или переменная "возникает" сразу же после успешного вызова malloc()?
Объект объяснён как «region of data storage in the execution environment, the contents of which can represent values», т.е. нихера не объяснён и нужен, чтобы потом говорить «вот эта хуйня создаёт новый объект с таким-то временем жизни». Если перерыть стандарт, можно вычленить все способы создать объект, но это нахуй не нужно.
В общем, хуйня, которую вернул malloc, является объектом, но не переменной (идентификатором).
Можно создать объект с автоматическим временем жизни с идентификатором (то, что обычно называют переменной) типа «указатель на хуйню», и записать туда адрес объекта, который вернул malloc.
А можно не страдать хуйнёй и сказать «создать указатель на выделенную память»
– всем же известно, что в конструкторах надо открывать файлы, ходить по сети и вообще делать какую-то весёлую недетерминированную работу
Автобоксинг это умение превращать примитив в референс тайп посредством заворачивания его в указатель
C# так тоже умеет.
Просто шарп умеет генерить по генерикам нормальные классы, а джава нет.
Потому List<int> внутри будет иметь массив интов, а не массив указателей на инты как ЙАЖА
>совсем как шаблоны
Верно. Но в шаблонах можно обосраца, и наинстанциировать себе 100500 0одинаковых наблонов , а в C# -- нет
https://govnokod.ru/28275
https://govnokod.xyz/_28275/
Как так может быть, что сумма System Idle Process и CPU Utilization в taskmgr чуть превышает 100%?
Отгадка очень простая, я ее уже знаю, и скажу, если не угадайете
Иканус?
> такой простой вопрос я бы не стал задавать
ОПРЕДЕЛИСЬ УЖЕ!
Вторая идея — переключатель задач сам по себе ЦП жрёт, но учитывается в Idle.
Возьмите Windows performance monitor, и почитайте description у "processor utilization" и "cpu usage"
хинт: турбо буст, c-states итд
я рассказывал, как у меня докер контейнер якобы отъел половину памяти?
а там на самом деле кто первый спровоцировал загрузку в буфер говна с диска -- тот как бы и вноват с точки зрения докера. Ты считал кучу файлов, все дескрипторы позакрывал, память всю освободили, а про тебя написано, что ты занял два гига
сделаешь flush буферам -- пройдет
Problems?
MS вообще корпорация добра. Любой сторонник ОпенСурс должен хотеть там работать
Я ПОЛ ЧАС АНЕ МОГУ ЗАПОСТИТЬ КОММЕНЬ
– сцук, да ты комик почище Джима Кэрри!
в одном треде убеждать, что рассылка документов в формате docx неизвестной версии офиса полезна и питательна
в соседнем сокрушаться, что наколеночный сайт-хобби не соответствует копроративным стандартам безопасности
Да, без архитектора одну строчку с регуляркой не добавить. Хотя с ней здесь было бы скучнее, наверное.
а потом биометрику
а потом приватный ключ на съёмном носителе и otp на токене
это чтоб страйко уж заебался на десять поколений вперёд
и всё это ради одного (sic!) постоянного пользователя, которому было впадло уважить самого себя и придумать хотя бы 23417 лол, а не 123
и это между прочим опытный инженер
А чому нет? Одно поле в базу да готовая либа, которая QR код по этому ключу показывает да циферки хеша сверяет. Если бы не QR, то там даже снуля работы на 5 минут.
считал ты qr код
и дальше что?
Работает даже если мобила в оффлайне.
З.Ы. Можно и без QR, но руками ключ не особо приятно вбивать.
у гуглевого и мокрощёлочного нужно логиниться под соответствующим аккаунтом
в маркете пишет, что вроде не надо
впрочем, ты и так
пока что пала не та колумбия, чтобы переживать
Таки телескопом уеббка
У меня ощущение, что я пришел в бар попиздеть про компы, а тут бегает ебанат, дрочит при всех, и малаьфей своей всех обмазывает
И все такие: "ну, не обращай внимание"
> И все такие: "ну, не обращай внимание"
Джанго не позволит тебе иметь пароль 123, а самопальный код на пыхе позволит.
В реальной жизни я бы конечно сделал нормальный пароль
А еще лучше аутентификацию по гуглу какому-нито, чтобы самому не пилить двухфакторку
Для совсем параноиков я бы настроил клиентские серты (у нас так было одно время на работе, причем серты c M$ CA сами накатывались по шаблону)
до 500 000 ₽
Требования
Back: Node.js, JS, TypeScript.
Front: Vue.js.
BD: SQL (mySQL, PostgreSQL).
DevOps: Nginx, Docker, Docker-compose, Kubernetes, CI, Linux, GitHub.
Testing: Unit, интеграционное тестирование.
пока что пала не та колумбия, чтобы переживать
Кстати, к вопросу о федерации здорового человека.
Тут я обосрался, на самом деле десятимильную, а 100 квадратных.
> в Боготе
Уже третий раз как читаю, как «в Болоте» которое хотел осушить Трамп
Грамотный чел, кстати. Меморилик в томкате нашел профайлером
https://vkuslo.ru/nabory_podarki
Кооумбарий
@
Узнал о полезной фиче
Не знаешь, как отключить.
и еcть https://plugins.jetbrains.com/plugin/164-ideavim
он делает тоже самое
у меня и на студии vsvim стоит: нахуй мне под каждую ИДЕ учить свои шорткаты?
Вим внутри IDE? Это не шутка? Какой багор )))
я чуть кружку с кофем не опрокинул ))))
[{
Именно поэтому я за «vim». Там и %
И так можно:
[ ] тоже удобны для навигации между разными блоками.
Ну в смысле годно.
Brave New World — да
1984 — да.
They Live — конечно.
451 — пока не везде, в рашке точно жгли.
Бразилия — отчасти.
Идиократия — однозначно.
Mad Max — ещё нет.
А вот Идиократия у нас самая натуральная. Вплоть до мелких деталей:
https://pbs.twimg.com/media/FUGHDW4XEAE8IVu.jpg
https://pbs.twimg.com/media/FUGHF6vXsAMa-pf.jpg
Интересно, это мы на каком этапе FuttBuckers или ButtRuckers?
полирнули, чтоб наверняка