- 1
IT Оффтоп #215
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #215
#185: https://govnokod.ru/28794 https://govnokod.xyz/_28794
#186: https://govnokod.ru/28815 https://govnokod.xyz/_28815
#187: https://govnokod.ru/28833 https://govnokod.xyz/_28833
#188: https://govnokod.ru/28837 https://govnokod.xyz/_28837
#189: https://govnokod.ru/28840 https://govnokod.xyz/_28840
#190: https://govnokod.ru/28875 https://govnokod.xyz/_28875
#191: https://govnokod.ru/28878 https://govnokod.xyz/_28878
#192: https://govnokod.ru/28886 https://govnokod.xyz/_28886
#193: https://govnokod.ru/28911 https://govnokod.xyz/_28911
#194: https://govnokod.ru/28914 https://govnokod.xyz/_28914
#195: https://govnokod.ru/28917 https://govnokod.xyz/_28917
#196: https://govnokod.ru/28925 https://govnokod.xyz/_28925
#197: https://govnokod.ru/28935 https://govnokod.xyz/_28935
#198: https://govnokod.ru/28938 https://govnokod.xyz/_28938
#199: https://govnokod.ru/28942 https://govnokod.xyz/_28942
#200: https://govnokod.ru/28945 https://govnokod.xyz/_28945
#201: https://govnokod.ru/28948 https://govnokod.xyz/_28948
#202: https://govnokod.ru/28951 https://govnokod.xyz/_28951
#203: https://govnokod.ru/28954 https://govnokod.xyz/_28954
#204: https://govnokod.ru/28971 https://govnokod.xyz/_28971
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
#206: https://govnokod.ru/28991 https://govnokod.xyz/_28991
#207: https://govnokod.ru/29002 https://govnokod.xyz/_29002
#208: https://govnokod.ru/29060 https://govnokod.xyz/_29060
#209: https://govnokod.ru/29070 https://govnokod.xyz/_29070
#210: https://govnokod.ru/29079 https://govnokod.xyz/_29079
#211: https://govnokod.ru/29092 https://govnokod.xyz/_29092
#212: https://govnokod.ru/29093 https://govnokod.xyz/_29093
#213: https://govnokod.ru/29104 https://govnokod.xyz/_29104
#214: https://govnokod.ru/29114 https://govnokod.xyz/_29114
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
Roll
Эта вся файлопомойка с микрокодом оказывается внешние данные для огромных свичей где case HURRDURR: fopen("ibmat.bin"); memcpyto(oxF000);
Как на IBM AT запустить сетап?
ёбаные emoji
Token Chunking: 33x faster than the slowest alternative
сука вы там серьёзно что ли
это буквально мы НЕ являемся одним из десяти нижних банков
буквально: хуярьте документацию в одном большом functions.php, авось прокатит
A: If you booted without loading a memory manager, you can reboot using
Int19 option much faster than if you did a cold or warm reboot. This is
useful especially if you booted in safe mode in order to change the
startup files.
Во времена ЧССР директором уже национализированного заведения некоторое время был человек по фамилии Паливец. Он тоже попал в тюрьму, но за хозяйственное, а не политическое преступление.
Где?
https://x.com/noize_mc/status/1916141616496091557
У неё четыре границы: Азербайджан, Грузия, Иран, Турция.
Первая и последняя пр понятным причинам кабеля не пропускают, остаются Грузия и Иран.
В Грузии кабель шёл через маленькое горное село, какие-то пастухи его разъебали в поисках железа на металлолом, и Интернет в Армении кончился.
Второй кабель они пустили через газопровод в Иран, и теперь, хотя бы, у них два "аплинка"
S-StepRegistry what are you doing...
никогда не было, и вот опять
https://i.postimg.cc/PqKDyFF4/image.png
https://vk.com/wall-72495085_1485464
s-a--m -> Сэм -> Сёма
стабильная история с паролями)
кстати, думаю, что Сём тоже было несколько (как конярд, гологубов, стерторов и т.п.)
там были какие-то треды, которым совсем пизда настала?
Это ж было больше десяти лет назад...
https://pbs.twimg.com/media/GpjZy5lWMAAap_Z?format=jpg&name=900x900
ОСЕДЛАЛ СКОТОКАТ!!!
ОТТОЛКНУЛСЯ КУЛЬТЯПКОЙ!!!
И УМЧАЛСЯ В ЗАКАТ!!!
И НЕ ДУМАЕТ ГНИДА!!!
ЧТО ПОЕЗДКОЙ СВОЕЙ!!!
В АД ОН МОЖЕТ ОТПРАВИТ!!!¹
СОТНИ РУССКИХ ЛЮДЕЙ!!!
¹ первый пошёл
И НЕ ДУМАЕТ ПАДАЛЬ О ЛЮДЯХ НИХУЯ!!!
ЧТО НА СКОРОСТИ ДИКОЙ ЧЕЛОВЕКА СОБЬЕТ!!!
А ТОТ БЕДНЫЙ ОТ ТРАВМ ТОГО ГЛЯДЬ И ПОМРЁТ!!!
ВОТ НА ВСТРЕЧУ ПРОФЕССОР ПЕДАЛИ КРУТИТ!!!
А ПОДОНОЧЕК С ВЕЙПОМ НАВСТРЕЧУ ЛЕТИТ!!!
СТОЛКНОВЕНИЕ! ЗАМЕРТВО ПРОФЕССОР УПАЛ!!!
А НИЧТОЖЕСТВО С ВЕЙПОМ ВСТАЛ И ДАЛЬШЕ ПОМЧАЛ!!!
А МАМАША С КОЛЯСКОЙ ПО АЛЛЕЕ ИДЕТ!!!
СЗАДИ НА ДИКОЙ СКОРОСТИ МЧИТ ИДИОТ!!!
И В МАМАШУ ВЬЕБАЛСЯ КУСОЧЕК ГОВНА!!!
И СЫНОЧЕК В КОЛЯСКЕ ТЕПЕРЬ СИРОТА!!!
ТЫ ЕБУЧИЙ ПОДОНОК МЕНЯ ТЫ ДОВЕЛ!!!
ТЫ ПОЛУЧИШЬ ПО ПОЛНОЙ МАЛОЛЕТНИЙ КОЗЕЛ!!!
РАСЧЕХЛЮ-КА Я ТУЛКУ ДА ЗАРЯЖУ КАРТЕЧЬ!!!
ЧТОБЫ С ВЫСТРЕЛА ДУБЛЕМ ТЫ НА ЗЕМЛЮ МОГ ЛЕЧЬ!!!
ПОДКАТИСЬ-КА ПОБЛИЖЕ ПОДОНОК ТУПОЙ!!!
СОВЕРШУ Я ВЕНДЕТТУ НАД ЕБАНЫМ ТОБОЙ!!!
ПРОСТРЕЛЮ ТЕБЕ ЖОПУ КАРТЕЧЬЮ НАСКВОЗЬ!!!
ЧТОБЫ ХУЙ ТВОЙ И ЯЙЦА БОЛТАЛИСЯ ВРОЗЬ!!!
В других анимация на минуту, и только потом начинает выводиться ебучий текст.
Скриптобляди, а вы не охуели?
Во вторыз это JavaScript.
Для чего существует Frontend -- JavaScript?
Frontend -- JavaScript существует для издевательства над людьми.
Некоторые сумасшедшие пытаются Frontend -- JavaScript улучшить.
В результате улучшений издевательства становятся изощренными.
для затравки: тип int там обозначается как <value>|0
В йажаскрипте можно было любое значение привести к целому питуху с помощью |0, этим готовым хаком и воспользовались в asm.js.
Там всё так сделано, лишь бы синтаксис не менять. Можно было, конечно, сделать как в ECMAScript 4, но они не ищут лёгких путей.
Заодно для портирования с asm.js в vanilla js вообще делать ничего не надо.
сука, я этот тикет и через тридцать лет вспомню, а он и закрыт не будет
ты читал коммент? Это очень смешнро
Пакистанский плакат на границе с Индией
Суть в том, что на островитянском паджитов тоже называют «паки».
Недавно тамилов обсуждали.
https://pbs.twimg.com/media/Gpj2nE_XAAA9mKf?format=jpg&name=900x900
https://x.com/visegrad24/status/1916171354241368159
#гологуб
https://pbs.twimg.com/media/GpIvaAVWoAAP6FK?format=jpg&name=900x900
https://www.bee-link.com/products/beelink-sei14-ultra5-125h и вообще подобные устройства?
У меня есть пара таких, но они у меня специально чтобы смотреть, что может выкинуть хуевое железо. Сотню евро на минибокс не так жалко, а вот шесть сотен в случае проблем уже наверное печально потерять. Если ищется не PC для работы, а домашнйи сервер, то Intel N100 очень хороший вариант; медиа я пока на нём не гонял, но он реально копеечный.
а что ты имеешь в виду под "хуёвым железом"?
Но в принципе я видел и отзывы "перестало запускаться через месяц", скорее всего и про нюки такое можно легко найти, но с учетом количества единиц техники там вряд ли пропорция в пользу алиэкспресса.
интересно, как это ревью прошло?
джава наконец-то догнала го
Какое ревью для инкубатора?
Screen Savers are deprecated in the Windows 10 Anniversary Update and beyond.
Он с Сатьёй Наделлой цвета одного.
в них ебли анжеллу дэвис
По ссылке сам источник для пашкотолерантных, каким-то хуем нельзя отредактировать
«ИИ». Permits - это, конечно же, семафор.
попытки сказать ему, что здесь race condition (подразумевается, что напихавший в очередь пошлет сигнал разбудить любого слушателя, который может быть произведен раньше LockSupport.park();) приводили к - конечно же - идентичной конструкции из разу в раз.
-Поздравляю, сэр
член?
Не только испоганил стандартную комстроку, но ещё и срёт ГИГАНТСКИМ баннером на 5 строк.
В винде надо срать говном, причем у иных тул явно есть ключ "не срать"
примеры:
sh -- молчок
cmd --
```
Microsoft Windows [Version 10.0.19045.5737]
(c) Microsoft Corporation. All rights reserved.
```
cp -- молчок
xcopy --
``
file copied
```
rsync -- почти молчок
robocopy -- БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
Open one of the LinkedIn support links below and send your request, even if you're not signed in:
https://www.linkedin.com/help/linkedin/ask/uuset
https://www.linkedin.com/help/linkedin/ask/uumt
You can also reach out to their support team via other social media:
https://twitter.com/LinkedInHelp
https://www.facebook.com/LinkedIn/
Источник:
https://support.linkedhelper.com/hc/en-us/articles/360016896859-How-to-contact-LinkedIn-support-directly
Ну попробуй перейти по этим ссылкам. Они ведут на форму логина.
С завтрашнего дня сайт govnokod более не поддерживается.
Просьба перейти на иные способы связи.
Всего наилучшего!
https://github.com/keepassxreboot/keepassxc-browser/blob/develop/keepassxc-browser/common/sites.js
Раз в неделю верстку сайта будут менять, и ты будешь заменять в своем коде седьмой таг на восьмой.
Плохие программисты попадают в такой вот ад
Что сделал Евлампий?
Ничего, потому что он не знает, как починить UB. Так и падает приложение переодически. Ну и что?
Винда тоже виснет, и идея виснет, а ими все пользуются.
Как говорил Живков: у быка яйца трясутся, да не отваливаются.
https://x.com/jakegallen_/status/1910437715671474512
Unfortunately, this lead to $100k+ in purchased digital assets being lost, including my pfp.
hypersooooqaaaa
она умственно отсталая
А с куклой раз
А с куклой два
(с)
Это (да ещё с 19 параметрами):
Или это:
javascript king / javascript queen: 0.799802303314209
python king / python queen: 0.8088272213935852
php king / php queen: 0.8436080813407898
c++ king / c++ queen: 0.8362885117530823
ну а победитель, конечно же
rust king / rust queen: 0.8510037660598755
RJ-45 выглядит по-другому, у штекера ключ, не позволяющий его вставить в эзернетовское гнездо.
https://upload.wikimedia.org/wikipedia/commons/d/d8/8P8C_vs_RJ45_female_connectors.png
https://upload.wikimedia.org/wikipedia/commons/b/b0/RJ45_female_connector.jpg
Напомнило шутку: Николай Валуев втыкает любой штекер вслепую.
До речи: бывает и 40 Гб уже. Но там будет скорее всего не 8P8C, а SFP. QSFP точнее. Это трансивер.
Соединяются они толстой оптикой (на короткие расстояия), тонкой оптикой (на длинные) или медью (чтобы из одного сервера в другой в той же стойке ходить или между двумя свичами).
Но там конечно много своей ебли:
1. Трансиверы с двух сторон долдны быть одинаеовые, или совместимые. Перепрошивка трансивера -- вполне обычная вещь.
2. Если медные перекидышы продаются вместе с проводом, то оптика продается отдельно, и трансивер должен поддерживать не только другой трансивер, но и соответствующую длину волны, и расстояние. К примеру, трансивер циско на 1310 нанометров длины волны на расстояние 80км на 40Гб стоит 2500 евро. Один.
3. нужно включать джамбо фрейм видимо.
Само собой, такой хуйней соединяют два свича, а в низх уже втыкают кучу серверов или два гипервизора с кучей виртуалок (И то врядли, какая там скорость PCI-E?)
Представляете, вот этот дом можно соединить с москвой скоростным интернетом!
По 4 гигабита в каждое окошко
https://i.postimg.cc/BbMpzWPb/image.png
https://www.reddit.com/r/homelab/comments/1b6ksxl/40gbe_mellanox_cards_in_2024_whats_the_c atch
Естественно, надёжный вендор интел стоит 300-600 (я не кликал объявления, я не знаю, это внизу поюзанные/восстановленные, или же вверху охуевшая наценка), но тоже можно купить для серваке в гараже, если сильно фанатеешь.
https://www.broadcom.com/products/ethernet-connectivity/network-adapters/p2100g
На стековерфлоу задаются правильным вопросом а как блядь утилизовать это всё, там реально DMA это ещё только необходимый минимум, чтобы что-то близкое к этим скоростям увидеть.
https://en.wikipedia.org/wiki/Remote_direct_memory_access
>RDMA over Converged Ethernet (RoCE)
все же понимают, что правильное название тут RCE?
Впрочем, RDMA надо рассматрвиать как часть ОДНОЙ машины и одной security domain
100 гигабит малость трудно даже локально читать
(блядь говнокод это наверное единственный сайт в мире где пиздят о таких вещах)
Рекомендую мыш на КОМ порт. С шариком. На коврике.
https://unionrayo.com/en/zuckerberg-facebook-meta-ftc/
Ну ничего, снова занесёт Донни ещё чуть-чуть, и всё станет хорошо
Кто сходу скажет, чем HP-16C отличался от HP-15C?
https://en.m.wikipedia.org/wiki/HP-15C
https://en.m.wikipedia.org/wiki/HP-16C
Ладно, скажу: HP-16C был битоёбским. У него вместо синусов, косинусов и логарифмов были побитовые сдвиги, включая циклические, и прочее битоёбство.
Позже, конечно, появились калькуляторы, в которых ма-те-ма-ти-ку и битоёбство совместили.
пиздец
Never use anything other than cpumask_t to represent bitmap of CPUs.
я тут подумал - у нас же уже есть процы на 500 ядер, какой же там long long long long long
>500 ядер, какой же там long long long long long
там массив
вангую,что в момент компиляции ядра можно задать значение, но по-умолчанию оно досатточно большое
вот и ответ на твой вопрос
ПОДОЖДИТЕ!!!
Если у меня более 512 ядер то я должен ПЕРЕСОБИРАТЬ ЯДРО КАК ПЕРДОЛИК?????
Тоже гаражная реальность за тридцатку уже через какие-нибудь десять лет, т.е. всё ещё та же версия дебиана
давай играть в игру: найди мне максимальное число ядер в xeon (ark в помощь) и материнку под них (supermicro, например, там на сайте есть)
хинт: на одной материнке может быть много сокетов (собссно нума
amd 192 (384) https://www.amd.com/en/products/processors/server/epyc/9005-series/amd-epyc-9965.html
арм тоже 192 (192): https://amperecomputing.com/products/processors
но ведь это же совсем другая история, которую можно разъебывать как захочется - в скором будущем 512: https://amperecomputing.com/blogs/introducing-ampereone-aurora
Иметь 512 процессоров имеет смысл только если ты их всех используешь.
если у тебя три однопточные программы работают, то реально может быть лучше собрать ядро с 32, и уж точно не собирать его с 4096 "просто так"
К счастью, собирать не оюязательно: этот параметр можно передать ядру из загрузчика, и тогда можно просто перезагрузить прыщ с нужным количеством процов (лишние онпросто не запустит)
Бригадир у нас один,
Соберёмся всей бригадой
И пизды ему дадим!
Встретил бабу нагишом.
Баба, хау ду ю ду?
А покажи свою пизду!
Меня ёбнули доской!
Ах, ты ж мать твою етить,
Нельзя по улице пройтить!
Потому что всё равно.
Смотрите, что нам кубернетис-эра в ядро привезла: https://isovalent.com/blog/post/cilium-netkit-a-new-container-networking-paradigm-for-the-ai-era/
Теперь прыщи просто буквально отказываются от сетевого стека в ядре, и пишут все на eBPF.
То-есть ядро это как-бы такая виртуальная машина для запуска eBPF.
Вы не выебывайтесь ребята, за пускайте свои поды прямо модулем ядра, может?
PS: Кроме шуток. Есть ощущение, что для некотороых задач ядро вообще не нужно. Можно собрать бинарь, который слинкуется с закрузчиком (UEFI же) и сразу запустит всё, что нужно.
И пишите там СИ или Расте без STDLIB прямо под голое железо. Зачем вам какой-то там IP стек, сетевые карты, netfilter, netlink, вы всёравно этим не пользуетесь
что находится?
По счастью для нас, какому-нить 600-му селерону оно не очень мешало, если не нагружать.
PS: ну вот дух эпохи хорошо передает: https://i.postimg.cc/hvyzCm8H/image.png , только там конечно не ATX, а AT, так что это условно говоря 75-й пень
Незнакомая девица
Чаклунка Гир, ни дать ни взять!..
А замочек клавиатуры? А индикатор частоты процессора? А 5"25 видишь?
Какой 75, это 386
Мамкины компьтерщики думают, что оставить в корпусе кучу дырок, или воткнуть вентилятор в случайное место это типа заебись. Но на самом деле автор думал, а мамкин сборщик -- нет.
Впорос со звездочкой: вентилятор надо ставить на вдув или на выдув?
Надо подумать, на что же ставить дополнительный вентилятор...
Зависит от положения. Сверху, сзади - на выдув. Спереди и снизу - на вдув. Перед и зад чуть менее важны чем флоу снизу вверх, потому что горячий воздух и так лезет наверх, вертикальные кулеры будут выполнять больше полезной работы.
Принудительную вентиляцию ставят так, чтобы она работала не против естественной, иначе будут лишние затраты энергии.
Горячий воздух поднимается => снизу вдув, сверху выдув.
Так вот там всегда корпуса закрывали на такой маленький замочек сзади (там на корпусе ушко было спецом).
Потому что разумеется планку памяти унесут. Процессор не тронут (это сразу заметят) а планку спиздят
HW accelerated video encoding: up to 8K@25fps (currently not supported in software)
HW accelerated video decoding: up to 8K@50fps (currently not supported in software)
HW accelerated AI NPU with ~20 TOPS (currently not supported in software)
1 PCI Express Gen 3 x4 via a PCIe x16 slot
1 USB Type-C (USB2 only) connector for debug UART/JTAG support through FT4232H
— Не видал я их.
— Как же ты их не видал,— говорит другой,— когда сам же на них шапки
надевал?
— А вот,— говорит один,— шапки на них надевал, а их не видал.
— Да возможно ли это? — говорит другой с длинными усами.
— Да,— говорит первый,— возможно,— и улыбается синим ртом.
Фууууу! Начальник, крестоьблядь обосралась! Иди под струю мойся
Крестоблядей купают в общей лоханке.
что за unlead cool 3d?
Это ты про говносмайлик шоль?
Reason: Blocked country: Russia
The connection was denied because this country is blocked in the Geolocation settings.
Please contact your administrator for assistance.
WatchGuard Technologies, Inc.
двадцатилетней давности
>fax
какой WEB 1.0 :))
У меня до сих пор вопросы, как это проходит ревью. При чём им ведь даже пулреквест нормально не отправишь, там надо через великую лицензионную стену перелезать, плюс искать Человека Из Комитета, который за тебя поручится, что твое удаление лишних пустых строк не сломает опенждк.
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template
и у меня ничего не отваливается, а эти значит шаблончиками-хуенчиками пользуются да?
Я начинаю догадываться, почему Никлаус Вирт был против сложных ЯП.
https://cs14.pikabu.ru/post_img/big/2021/07/09/0/1625778484163985494.jpg
Всё бы хорошо, только есть два нюанса
- На каждый value отдельная лямбда. Вы там ебанулись? Вы хоть прикидываете как эти стектрейсы выглядеть будут?
- А нахуя он мне нужен, если у меня и так () -> { ... } что угодно захватит?
Annuntio vobis gaudium magnum: habemus Papam!!
Я читал дюму-гюгу про их мучения, пока не проголосуют им не дают мальчиков.
https://pbs.twimg.com/media/GnJaCIZXUAAmBxp?format=jpg&name=900x900
рустеры опять унижают жавку
а тут джависты даже без рустеров сами справились
(и слюна потекла)
https://superuser.com/questions/48231/how-do-i-make-a-batch-file-wait-sleep-for-some-seconds
1. какая-то стремная тула с диска с ресурс китом
2. ping трик (сука почему так смешно)
3. TIMEOUT. еее!! А теперь зацените, сколько он хуйни высирает в stdout.
Мне виндовые тулы напоминают меч из этого фильма
https://www.youtube.com/watch?v=6u8wBfDtZkE
Input redirection is not supported, exiting the process immediately
какой багор ))
"Input redirection is not supported, exiting the process immediately"
ps: бродком хуйни не посоветует
https://knowledge.broadcom.com/external/article/29524/the-timeout-command-in-batch-script-job.html
не, не пинг так пинг. А чтобы монитор не качался, я под него книжку подложил
на, сам попробуй
причем блядь нахуя ему инпут то?
Там же светло-серым по черному написано как вызывать надо, если ты не тупая макака.
Я какие-то детали видел на жидхабе, но там замешаны какой-то мне неизвестный jupiter notebook, черезжопаскрипный visual studio code и ссылка на IBM, которую я бы прочитал, но сраные IBM не дают и требуют пароль. Так что вероятно, проблема только у обезьян.
Редиект может быть важен, если ты запускаешь это программно
Допустим, редирект унаследовался от родителя. Странно это, но ладно.
Я напердолил
Значит баговое и работает только интерактивно. Я бы ещё почитал, что IBM под замком пишут, а так назад к choice и ping
на самом деле похуй, конечно: я напишу тулу на условно Говне, соберу ее под все платформы, и мне станет везде одинаково
Почему не поможет то? Оно обсирается, только если этот ватник запускать или ещё более специфические случаи у макак, которые жалуются и не умеют дать неподзамочную ссылку
Чтобы не обмазываться говном пинг заверни в аккуратный ватник
вошёл Толстой и снял пальто,
калоши снял и сапоги
и крикнул: Ванька, помоги!
Тогда Иван схватил топор
и трах Толстого по башке.
Толстой упал. Какой позор!
И вся литература русская в ночном горшке.
А средствами bat + сись-темными тулами никак, похоже.
А ещё есть WSH.
в w2k не было комплишена по табу (надо было явно включать в реестре) а теперь появился
Чувак, XP вышел в 2001-м году. У людей 2001-го года рождения уже дети.
Почему в шелах и батах есть только сет, а в расте только let, а в VB есть и сет, и лет? потому что VB мощнее?
У меня есть тест, который нужно запускать на прыще, гейосе и спермосе, и сэмулировать зависание внешнего процесса на время. Как сделать его универсально?
Ну взять борн шел, который на любом позиксе есть (тут недавно был тредик как его найти) и cmd.exe который на любой сперме в `%ComSpec%` обязан быть и на них нагавнять.
но похуй тащемто, я уже свинью гвинейскую внешней тулой сделал
Единственный плюс cmd - быстро стартует.
У меня есть код, который запускает внешний процесс.
Мне нужно егоп ротестировать.
Как взять внешний процесс?
Петухи бывают на всех видах ОС: гейос, мастдаи от win10 до core версии 2025 сервера на CI, прыщи от убунты на десктопах, до алпайна в докере на CI.
Некоторые петухи пишут только для линукс, а потом корчат ебальце: дааа? у тебя не рабоооотает? А ядумал тут лииинука у всех... убунта...
Хуюнта, блядь, опять башизма принес.
Я таких называют прыщешовинистами, и на них ссу.
Потому я делаю универсально. Но я сделал уже без шелла, спасибо, что волновался
> Некоторые петухи пишут только для линукс,
Ну это в принципе их дело. Пусть тогда не плачут что другие пишут только под винду даже на "мультиплатформенных" языках.
Напомнило, как у чувака регулярно зависал сервер, и он вместо того, чтобы искать источник проблемы, сделал перезагрузку по крону.
Проблема архитектурная. JS основан на горбатом метельщике, а он то ли придёт с метлой, то ли нет. JS надо менять на язык с явным освобождением. На эту проблему наслаивается архитектура самого браузера, которая с момента внедрения DOM копирует архитектуру JS.
GC можно ругать за многие вещи, но утечки памяти — это не одна из них.
> JS надо менять на язык с явным освобождением.
В этой видео-лекции я расскажу как управлять памятью в веб-питухе с помощью умных ссылок. Есть сильные ссылки <strong><href ...></strong>, и есть слабые — <small><href ...></small>.
Утечку памяти можно и в языках с GC организовать. Задача "освободить память когда она не будет использоваться" сводима к проблеме останова т.е. неразрешима (даже в динамике). Да и не все GC умеют обнаруживать т.н. циклические ссылки
Но ты прав в том, что утечь памятью можно и с GC
Проблема останова стоит только перед статическим анализом. GC работает в рантайме, и на код программы он вообще не смотрит, только на root sets и кучу, поэтому ему все теоремы Райса побоку.
> Да и не все GC умеют обнаруживать т.н. циклические ссылки
Только GC основанные на reference counting. Которые, к слову, тоже являются GC ^___~ Так что растишки, пишущие в коде ``Arc'' используют GC, аскиллябры.
Ситуация, когда программа аллоцирует кусок памяти, не использует его, но при этом держит на неё указатель — это не утечка памяти, а простой говнокод. В задачи GC решение этой проблемы не входит.
[[citation needed]]
Когда человек пишет под RC, он вынужден каждый раз задумываться о ссылочной структуре, и отвечать на вопросы:
1. Кто владеет объектом?
2. Кто имеет на него слабую ссылку?
3. Не получается-ли тут цикл?
4. Когда объект будет уничтожен?
Иногда компилятор пытается тебе помочь (как в Расте). Иногда нет, но в любом случае ты тратишь какое-то время на представление дерева ссылок в своей программе.
В языках с GC ты об этом не задумываешься.
Кто владеет объектом?
Объектом владеет GC. Я могу нафигачить на него любое количество ссылок из любых мест, там GC как-то разберется.
Потому ситуаций "огромных деревьев, зацепившихся за случайно захваченную кложай переменную" там случается больше.
Но у меня нет научных пруфов, к сожалению: только наблюдения.
Ты лучше приведи реальный пример, как один и тот же говнокодер с одним и тем же уровнем анскилла может проебать больше памяти с GC, чем с Rc.
Он может, разупеется, взять Rc, и положить петуха в кучу, и передать на него ссылку, однако это потребует достаточного количества приседаний, чтобы петух заметил, что происхоидт что-то не то.
> а не дедукция
Я же сразу предупредил: у меня нет исследований: только кокое количество говнокодеров перед глазами
Eхал RefCell через RefCell, видит RefCell в RefCell mutable borrow, сунул RefCell mutable borrow в RefCell, RefCell в panic бряк. Т.е. кроме тривиальных ситуаций, растоговно использует GC, только текущий циклическими ссылками и падающий. #memorysafety
define "тривиальных ситуаций".
Ты приводишь прмиеры ебланского паттерна, когда проверку хуиты переносят в рантайм.
Такие кейсы, действительно, бывают, но нет никаких пруфов, что они случаются в любой "нетривильной ситуации".
Вот у меня в джавке долгоживующий петух получил ссылку на коротокоживущего петуха.
Короткоживущему петуху уже на небе прогулы ставят,а он живет себе, и живет, потому что его долгий петух держит.
И вот вопрос: я могу сказать, что петух тут утёк (leak)?
Если на некий объект есть ссылка из долгоживущего объекта, то этот объект уже не короткоживущий, а долгоживущий. Ваш кэп.
Короче, ты счиатешь, что слово "утечка" (leak) можно использовать только тогда, когда есть некоторый ресурс, который занимает ресурсы (ха-ха) а ручки для управления этим ресурсом нет?
Если же ты сделал
и bar больше нигде не использовал — это не утечка, а обычный говнокод.
Если ты ожидаешь, что GC какой-то магией девочек-волшебниц узнает твои сёмантические ожидания по поводу ``короткоживучести'' объекта, то твои ожидания — твои проблемы. GC — это тупой алгоритм на графе.
В таком случае и крестовики с умными указателями -- тоже
Кстати, а ручная работа с динамикой malloc/free new/dfelete счтается?
Динамическая память имеет смысл только в окружении, где работает более одной программы.
Даже в DOS есть резиденты, не говоря уже о многозадачных ОС.
Так вот если твоя программа одна на железке (у j1234 так бывает) то смысла в динамической памяти нет.
Ты реально можешь всю память считать сразу выделенной
А еще страница MMU и страница DRAM это совсем разные вещи.
Представь что у тебя где-то выделилась память и как-то используется, а потом вызывается функция, которая зависает в том случае, если Великая теорема Ферма верна(т.е. в цикле перебирает все допустимые вореанты знавений переменных a b c n для условия pow(a, n)+pow(b, n) == pow(c, n) для натурального n > 2 и целых ненулевых a, b, c используя длинную арифметику, и если вдруг равенство выполняется, функция делает return, а иначе она вечно перебирает), а потом идет некий код, который эту память опять использует. В идеальном случае, чтобы наиболее оптимально освободить память в рантайме, GC должен доказать Великую теорему Ферма и перед вызовом соотв. функции он тогда может освободить вообще всю память и потом тупо зависнуть в попытке опровергнуть эту теорему. Т.к. GC такими доказательствами заниматься не может в общем случае, задача освобождения памяти в моменты когда можно математически доказать что она нафиг не нужна - невозможна. Ни в статике, ни в динамике
Это не задача GC. GC ничего не знает про код твоей программы, что она делает и что она будет делать. GC знает только про стек и глобалки. Рантайм языка вызывает GC в рантайме, когда твой код аллоцирует память, например.
Всяческие попытки понять, что такой-то код не достижим — это задача оптимизатора. Если оптимизатор может доказать великую теорему Ферма, то он сможет сгенерить код, где вызов функции, использующий некие переменные выкидывается, и где переменные, в которых хранится ссылка на эту память, выходят из скопа раньше. Если оптимизатор такой умный, то GC всё оптимально соберёт.
> Всяческие попытки понять, что такой-то код не достижим — это задача оптимизатора.
Это понятно. Хотя задача доказательства зависаемости чего-либо необязательно должна решаться именно оптимизатором. Теоретически эту задачу можно и на GC взгромоздить. Например, если GC в рантайме видит, что какая-то там функция очень долго исполняется, он может позвать некий "ИИ", чтобы он через Coq попробовал доказать, что эта функция зависает. Никакой оптимизации при этом не происходит. Если "ИИ" смог в рантайме доказать, что функция при таких-то входных данных зависла, GC вправе освободить всю память, которая никак не задействуется этой зависшей функцией. Если же в GC нет таких продвинутых ИИ-фич, мы получаем утечку.
Когда петух резолвит адрес выгруженной на диск страницы, случается СТРАНИЦА ВИНА, страница загружается.
Довольно трудно сделать это в ГЦ не объединяя ГЦ с менеджером той самой вртуальной памячти
В микроконтроллерах бывает так, что никакого пейджинга тупо нет т.к. MMU нет. Хотя есть конечно контроллеры с MMU. Хотя пейджинг можно конечно накостылить и без MMU
Можно использовать https://man7.org/linux/man-pages/man2/madvise.2.html
Удачного тебе дебага, чувак
Вообще-то говоря, вполне себе. В GC очень легко случайно зацепить огромную кучу говна (захватив лямбдой ссылочку на что-то невинное) и навечно оставить в памяти 10 гигов.
То они ссылки-хуилки в какие-попало обхекты суют, то при каждом вызове одинаковые константные (сёмантически) объекты плодят и тоже это говно везде распихивают.
Очистка внешних ресурсов происходит вручную.
Поскольку ты любишь реальные примеры, то их у меня есть:
https://book.pythontips.com/en/latest/context_managers.html
https://learn.microsoft.com/en-us/dotnet/api/system.idisposable?view=net-9.0
https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html
https://plugins.jetbrains.com/docs/intellij/disposers.html
еще нужно?
(Для внешних ресурсов юзается ARC, т.к. они с точки зрения BEAM не могут содержать ссылок на другие термы, и значит цикл из них сделать нельзя.)
> python
> java
> oracle
> jetbrains
У меня ничего этого нет.
а, ок. А на них могут содержать ссылки оьбъекты в куче?
>У меня ничего этого нет.
там дотнет еще был
Да.
когда GC сожрет мой объект в куче?
Но этого же может никогда и не случиться, если памяти хватает.
А как мне явно освоьбодить ресурс?
Когда в куче (вернее в кучаХ, у каждого процесса своя кучка) не останется ссылок на ресурс. При копировании терма (к примеру при посылке сообщения в другой процесс) BEAM инкрементит RC, GC его декрементит. Когда RC становится 0, он дёргает деструктор.
> Но этого же может никогда и не случиться, если памяти хватает.
GC в Erlang привязан к reduction counter, а не к объёму свободной памяти. Ещё часто после завершения некой таски процесс можно отправить в hybernate, это сопровождается GC.
> А как мне явно освоьбодить ресурс?
Делаешь в NIF'е функцию close (или подобную), которая явно его освобождает, в остальных NIF'ах делаешь проверку, что ресурс валиден. Тогда, даже если есть висящие ссылки на ресурс, попытки сделать с ними что-то будут кидать исключение или возвращать .
А вот если есть ссылка из кучи -- начинаются нюансы.
>GC в Erlang привязан к reduction counter, а не к объёму свободной памяти.
А у вас в BEAM тоже GC может выполниться никогда, как в JVM?
>Тогда, даже если есть висящие ссылки на ресурс, попытки сделать с ними что-то будут кидать исключение или возвращать
Похоже на WeakRef (который есть примерно во всех языках), который там при удалении объекта автоматичесеи зануляется.
В теории может, на практике такого практически не бывает. Если процесс что-то делает, то редукции инкрементятся и GC рано или поздно происходит. Если процесс спит, его обычно гибернейтят, от его кучи тогда остаётся ровно один терм, который передали в ф-цию hybernate.
> Похоже на WeakRef (который есть примерно во всех языках), который там при удалении объекта автоматичесеи зануляется.
Нет, я говорил про другой механизм. "close" — это функция которую ты вызываешь явно, и она инвалидирует все ссылки. Впрочем, как напишешь.
А деструкторы/финалайзеры там есьт?
> это функция которую ты вызываешь явно
ну у нас тоже можно закрыть файл, и получить потом исключение.
В дажвке есть смешной багор: заммапленный файл размапливается только в финалайзере (то-есть никогда).
В какой-то момент количество замапаленых файлов становится слишком велико, и больше их не открыть.
Явно размапить файл можно рефлексией какйо-то, в зависимым от версии джвы способом.
Именно потому из всех мейнстримных говен я за расьт
В Erlang нет ООПараши, там нет никаких методов и никаких деструкторов. "Деструкторы" есть только у NIF resources, т.е. в сишном коде для FFI.
> В дажвке есть смешной багор: заммапленный файл размапливается только в финалайзере (то-есть никогда).
В Haskell lazy IO имеет такой же багор. Поэтому lazy IO не нужно.
> Именно потому из всех мейнстримных говен я за расьт
Весь багор формальной верификации, без каких-либо её бенефитов. Маркетологам Rust, конечно, респект.
потому сейчас каждые две недели выходит статья: "мы переписали FOO с какого-то скриптоговна на раст, и оказалось, что оно в десять тысяч раз быстрее"?
Вся питонопараша, например: https://docs.astral.sh/
А секрет простой: если FOO переписать с какого-то скриптоговна на то же самое скриптоговно, то FOO, скорее всего, будет срать в три унитаза в сорок тысяч раз быстрей. Потому что при переписывании ты уже знаешь что делать, а что не делать (т.е. много думать не надо, можно кодить), а обратной совместимости со старым тормозным говном нет.
Там вполне себе скриптоговно сосет.
В питоне любая чушня представляется как PyObject, и там даже JIT кажется нет.
В расте у тебя всё таки всё явно лежит на стеке (если ты не заказал обратного) и вообще довольно сильно оптимиизируется в момент компиляции.
Кроме явных объебов вроде лишних проверок индексов массивов, бОльшая часть кода на расте относительно неплохо оптимизируется, а так как у в отлчие от плюсов ты не можешь ничего "случайно" скопировать (все копирование делается явно, кроме сранх примитивов типа байта) то и вовсе хорошо.
Другой вопрос, что есть ситуации, когда надо сосать: селф референскинг структура, например
ах да, чуть не забыл: как там с GIL?
Читал публикации разработчиков Мордокниги. Они изобрели «Hiphop» — компилятор «PHP» в няшную. Думали этим ускорить движок. Результаты их расстроили. Да, быстрее, но на чуть-чуть. Они упёрлись в тормоза, которые принесла динамическая типизация: при каждой операции нужно проверять тип значения, лежащий в переменной, из-за этого дальнейшее исполнение ветвится.
Реально ускориться получилось, только переписав критические части на няшную со статической типизацией.
В скриптоговне нет настоящей статическо типизации, там бывают только «хинты типов», а переголова из-за проверок типов остаётся. При статической типизации проверка типов во время компиляции, а не выполнения.
Если в программе на Object Pascal все переменные сделать типа Variant, то работать будет чуть быстрее скриптушни или так же медленно, ибо все проверки из компайлтайма перенесутся в рантайм.
Можно еще попробовать реализовать вывод типов. Т.е. некую функцию на динамически-типизированом говноязыке можно попытаться специализировать под все типы, которые туда могут теоретически быть переданы. Это можно делать как статически (в компилтайме), так и в рантайме (JIT).
кальнее пхп только джаваскрипт
а кальнее джаваскрипта только пхп
такой вот парадокс кала
прожуй-ка его!
Для червя быть червём не зашквар, а быть пидором — зашквар.
Для пидора быть пидором не зашквар, а быть червём — зашквар.
Вопрос: что является зашкваром для червя-пидора?
Гомофобия. Боязинь пидоров.
Арахногомофобия. Боязнь пауков-пидоров.
Клаустрафобия. Боязнь закрытых пространств.
Арахногомоклаустрофобия. Боязнь оказаться в закрытом пространстве с пауками-пидорами.
лучше не стало
> кроме разве что говна
Это в go-то нормальная?
Функция может вернуть результат, а может кинуть исключение. И это никак статически не выражается
1. Приводит ли обработка ошибок к большиму denial of service, чем минимально возможно.
2. Надёжно ли она защищает от state corruption в целом.
В целом, у тебя должна быть некая "платформа", под которую работают некие "клиенты".
Клиент должен дохнуть целиком из за ошибки (потому что его стейт уже нарушен), а платформа должна уметь его аккуратно выгрузить.
примеры: операционка, и падающие в кору приложения.
веб-сервер, и 500-е ошибки конкретного запроса
Far manager, и его плагины.
ну видимо твои акторы, которые тоже могут сдохнуть не сломав всю систему.
Причем это всё фрактально: ты можешь быть "платформой" для своих "клиентов", и при этом сам быть чьим-то "клиентом".
Но чтобы такую систему построить, нужно чтобы функции явно декларировали ошибку.
А когад у тебя никак нельяз узнать что функция мжет вернуть ошибку -- вот тогда ЖОПА
Вот у нас есть Платформа, под которую мы шлёпаем наши формочки.
Если в формочке NPE или AOOBE, то Платформа должна нашу формочку выгрузить, и сделать следующее:
1. Послать сообщение программисту: Дорогой программист, ты еблан. У тебя тут NPE, поправь.
2. Показать сообщение пользователю: К сожалению,наш программист -- еблан. Ему уже сообщили что он уже уволен, вот issue, пожалуйсьта попробуйте снова.
Иногда же бывает ошибка "нет прав за запуск файла".
Тогда мы должны пользователю сказать: Дорогой пользователь, ты еблан. Сделай чмод, пожалуйста.
Или ошибка "нет соединения с интернетом" из той же области.
Поскольку в коко нет обработки ошибок, то ошибка про запуск файла успешно долетит до платформы,и будет считаться ошибкой программиста. Что неверно.
программист психанет, и сделает
и вот уже все ошибки (включая NPE) станут ошибками пользователя.
Что тоже хуево.
Вот эта каша растет из отсутствия внятной обработки ошибок в Коко (а так же в C# и иже с ними)
Я понимаю, что заебывает писать if на каждый чих, но она есть.
В котлине и C# нет никакой.
Просто никак нельзя понять, из какой функции какая ошибка может вылететь.
Понимаешь, бывает дом из говна и палочек, а бывает вообще никакого дома нету.
Число ротоёбов в языках без GC в среднем по больнице чуть меньше.
Даже в яблочных учебниках обычно пишут про strong weak dance (это яблоки так называют разрыв циклических ссылок), и прочие способы "подумать про память".
В жабамире же, наприер, петух может давадцать лет работать энтерпрайз XML девелопером, и ниухя вообще не думать о памяти.
Они же контролируют интертрепатор (или контролировали пока не выгнали Эйха за половую ориентацию), в любой момент могут дёрнуть ручку и смыть.
Само собой. У меня раньше был такой плагин для хрома, а потом он замалварился, хром его снёс и я остался без открытых вкладок.
>JS надо менять на язык с явным освобождением.
Гагага, а ну дай мне пример такого языка в прикладном программировании. Сколько будет тогда стоить веб разраб?
В Хроме и в поделках на основе Хромиума жор оперативки замаскирован автовыгрузкой вкладок. Это иногда вызывает проблемы, если запрос страницы неидемпотентный. Иногда это хорошо, иногда плохо.
Есть альтернативные сборки и на основе Хромиума, и на Gecko с вырезанной телеметрией, но проблем раздутости кода это не решает.
Количество пользователей IE на Trident сейчас ничтожно.
Основная проблема сейчас — раздутые веб-странички с тонной JS, которые без JS даже простой текст показать не могут. Реакты-хуякты и прочие фахверки фреймворки.
Така хуйня, малята.
Прыщебляди, почему вы до сих пор юзаете строковые языки скриптинга?
>Прыщебляди
/0
я сижу на седьмом помершеле, если что. Там завезли проперти CommandLine, которое я, сука, через нативный API вытаскивать только умею. Серьезно, в винде неет API для этого крмое как через PEB. Ну вот в 7.5.1 PS есть
Нихуя не понял. Распиши нормально.
Сём, найди мне command line процесса через powershell. Любого.
А помершелл стартует долго. Кстати, хуле винда не запускает помершелл файл по двойному щелчку??
А for нормально работает. В смысле нормально для батника, разумеется, чтобы извлечь строки 41, 42 и 43 надо изъёбываться с exit /b.
Скоро тебя заменит гпт. и поделом
Никто не знает, все только гыгыкать могут?
https://pbs.twimg.com/media/Gpdfug-XMAEwDYM?format=jpg&name=900x900
https://www.instagram.com/p/DB035vssZ04/
https://xmpp.org/extensions/xep-0239.html#examples
ня?
https://i.postimg.cc/W1C6VLMK/image.png
Кто-то понял в чем смысл?
Для реальных примеров, которые я проверил, x == round(x). В «Питоне» выручают длинные целые из коробки и алгоритм сравнения. В других ЯП так не получается из-за ограниченной разрядности целых или из-за дурного алгоритма сравнения целых с плавающими.
Арифметику в «Питоне» сделали хорошо.
Как видим, в целых и в плавающих считает по-разному (121932631356500531347203169112635269 против 121932631356500516977587114318233600 из-за урезанной мантиссы), но в обоих случаях x == round(x).
Реальность: обезьяны чинят 6.9999999999999999999999999999999999999
Я просто потек.
Если ваш сайт выглядит иначе, то идите нахуй, так я вот считаю.
https://x.com/GlobalNews_24/status/1915805442376417658
https://x.com/Strongcomic3_3/status/1906618676536635871
так и знал што спиздят
У меня был nm на слаке каежся, я его через nmtui крутил.
Всё, что ты пишешь, это вполне логично. NM привязывает конфиги к мак-адресам, а потом меняет их на cloned.
попробуй почитать: https://networkmanager.dev/docs/api/latest/NetworkManager.conf.html
Почему у тебя сбрасывается мак? Может быть тебе надо в `/etc/udev/rules.d/` заглянуть?
Ubuntu Core’s default Netplan configuration defers networking to networkd.
When Network Manager is installed (snap install network-manager), a new Netplan configuration replaces networkd with network-manager, taking control of all networking devices.
-------
Боже мой какую ебаторию нахуярили.
Где блядь мое детство золотое, когда ты в текстовом файле писал IP адрес, и скрипт в rc вызывал его через `ifconfig` ?
Так было в слаке, дебиане (ну там чуть сложнее -- через if-up) и во всех бздях.
Какой нахуй networkd? Что вы несете блядь?
Сука винда со своим реестром скоро проще станет
Netplan в убунте, тут феодора
> Всё, что ты пишешь, это вполне логично
Кроме того, что матчинг правила и само правило задаются в одной секции
> Почему у тебя сбрасывается мак?
Играюсь с домашней лабой, в т.ч. с той бордой за десять долларов. Судя по всему, мака либо просто не существует, либо ядро не готово к тому охуенскому железу, которое выкупили у сёмы.
ну блядь, не я это говно писал.
Я серьезно не понимаю нахуя так сложно сделали.
Лучше на помойке не нашлось? :D
Скоро-ли ждать интересные рассуждения о некоторых свойствах ламп?
блядь оверклокинг микрокалькулятора
Хна
сука ну это просто про нас же
https://govnokod.ru/29132
https://govnokod.xyz/_29132/
зиг хайль
мы построим лоу левел рай
Скриптогниль фрай
А фронтендероских унтерменьшей я буду лично в печку пихать. За каждое ебаное всплывающее окошко. За каждый сраный мегабайт памяти, который они у меня отжали своими вонючими SPA
Most of the time, it is more appropriate to write to stderr rather than stdout, and whether or not the message is successfully written to the stream is irrelevant. For this common case, there is a simpler API:
почему вы такие токсичные?
Что б вам, сукам, всю жизнь бизнес логику на шаблонах Apache Velocity писать, и в MySQL хранить
ахахаха
https://issues.apache.org/jira/browse/VELOCITY-944
ФУ СУКА ПОШЕЛ НАХУЙ СО СВВОИМ ПАРСЕРОМ
Хуй-ня же написана. В реальности срут преимущественно в stdout, а не в stderr, туда изредка.
спасибо я не голодный
Сладкая парочка развелась
На общественных началах
Если только захотите
Будет личный рабинзон
Обнаружил у себя кучу прог с диким сочетанием разрешений "доступ к приблизительному местоположению только в активном режиме" и "доступ к точному местоположению только в фоновом режиме". Часть прог определенно не шпионят и даже в фоне не работают.
Опять сделали хуйню, как с предупреждением о куках на сайте. Вместо закрытия дыр открыли новую дыру: теперь у половины программ в манифесте запрос на определение местоположения.
Владельцы «Гугла» — бляди ёбаные. Чтобы они все сдохли от собачьего триппера!
– Вот дом, где жил убитый купец. Здесь поселился теперь его брат, – сказал Мустафа.
«Его-то мне и надо!» – подумал Ахмед. Он дал Мустафе динар, и Мустафа ушел, кланяясь и благодаря.
Все дома в этом городе были обнесены высокими стенами, так что на улицу выходили только ворота. Запомнить незнакомый дом было нелегко. «Надо отметить этот дом, чтобы потом узнать его», – решил Ахмед.
Он вытащил из кармана кусок мела и поставил на воротах дома крестик.
А потом пошел обратно.
«Теперь я запомню этот дом и приведу к нему завтра моих товарищей…
Быть мне помощником атамана!» – радовался он. Только что Ахмед успел уйти, как из дома вышла служанка Али-Бабы по имени Марджана, девушка умная и храбрая. Она собралась идти на рынок за хлебом и мясом к обеду. Закрывая калитку, она обернулась и вдруг увидела на воротах крестик, нарисованный мелом.
«Кто это вздумал пачкать наши ворота? – подумала она. – Наверное, уличные мальчишки… Нет, крест слишком высоко. Его нарисовал взрослый человек, и этот человек задумал против нас злое дело. Он хочет запомнить наш дом, чтобы нас убить или ограбить. Надо мне сбить его с толку». Марджана вернулась домой, вынесла кусок мела, поставила кресты на всех соседних домах и ушла по своим делам.
К чему это я? Какой смысл в манифесте, если у всех программ будут выставлены все разрешения?
..и спросил: Ахмэд ETO TI?
орнул ))
in soviet Russia...
Схуя вы вообще взяли, что каждый объет можно сериализовать в строку? А в картинку -- можно? А в песню? Почему нету метода `asSound`?
Нахуя у вас у каждого объекта есть метод `wait`? Схуя вдруг любой объект в мире можно использовать как монитор? А как FTP клиент -- можно? Почему у объекта нет метода `sendFileToFtpServer`?
Вы понимаете, что вы все ебанутые там?