- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
Public Function DescendingSort(ByRef Data As Variant) As Variant
Dim i As Long
For i = LBound(Data) To UBound(Data) - 1
Dim j As Long
For j = i + 1 To UBound(Data)
If Data(i) < Data(j) Then
Dim Temp As Variant
Temp = Data(j)
Data(j) = Data(i)
Data(i) = Temp
End If
Next
Next
DescendingSort = Data
End Function
Вот все спрашивают, зачем на собеседованиях требуют сортировки писать — так вот для этого! Вдруг вам придётся писать на «VBA»?
> Как в VBA правильно создавать одномерный массив. ArrayList
https://habr.com/ru/post/712000/
ISO 23.01.2023 09:50 # +1
HoBorogHuu_nemyx 23.01.2023 10:11 # 0
guest6 24.01.2023 11:57 # +2
В VBA у такие объекты представляет приложение (word, excel, outlook, sharepoint и прочий microsoft project с accessом)
В VBA@WSH скриптхост
В VBA@ASP еще и IIS
В VBA@IE IE
Плюс можно использовать внешние COM объекты. Обычно их регистрируют в системе (regsvr32, HKCR ну ты понел) и юзают. Но можно наверное .ocx или там .dll рядошком положить.
VB это классический Glue язык без какого-либо фреймворка, чисто чтобы дергать готовые внешние компоненты (как php)
Desktop 24.01.2023 14:18 # 0
DypHuu_niBEHb 24.01.2023 14:20 # 0
Desktop 24.01.2023 14:26 # 0
руби??
джаваскрипт??
они просто добавили все (которые знали) языки, которые можно заэмбеддить?
guest6 24.01.2023 14:32 # +1
Вообще эту концепцию сформулировал Ойстерхаут для своего TCL
Программисты пирдоляца с серьезными языками и делают компоненты.
Хаусвайвз берут компоненты и лепят из них прилажухи драг ын дропом натягивая компоненты на формочку или пися код тип типа
Но потом конечно долбодятлы стали писать высоконагруженное говно на ПХП и вся идеология превратилась в мутное говно (как это обычно бывает в мире айти)
Desktop 24.01.2023 14:34 # 0
любой язык может служить для того, чтобы между собой "склеивать" что-то, вопрос в удобстве
но в широком смысле это получается любая скриптушня в принципе
guest6 24.01.2023 14:37 # 0
Любая скриптушня есть глу ленгвич, да
HoBorogHuu_nemyx 24.01.2023 14:47 # +1
Ruby, Python, Perl, PHP, JS — это уже ни рыба, ни мясо. Они компилируемые, хотя и компилируются в байткод для VM, а не в нативный. От Java и C# их отличает отсутствие статической типизации.
HoBorogHuu_nemyx 24.01.2023 14:58 # 0
guest6 24.01.2023 15:34 # 0
ну с другой стороны csh же есть
Desktop 24.01.2023 15:48 # 0
– а в чём наркоманство? я таким пользуюсь
guest6 24.01.2023 15:53 # 0
Desktop 24.01.2023 16:03 # 0
но думаю, что просто cd и grep
напиши команды, я попозже проверю
guest6 24.01.2023 16:23 # 0
awk
ну или вот так наверное полегче будет
Desktop 24.01.2023 16:25 # 0
а, nologin же
но всё равно стрём)
HoBorogHuu_nemyx 24.01.2023 17:30 # 0
А ещё есть Temple OS для совсем поехавших...
3.14159265 24.01.2023 17:57 # 0
Медленных как лалка.
Карго-культ. «яже как баш».
Desktop 24.01.2023 17:59 # 0
guest6 24.01.2023 18:03 # +1
3.14159265 24.01.2023 18:11 # −1
Точно! Получается целя йажа-говно-троица.
3.14159265 24.01.2023 17:49 # 0
awk, sed?
awk в большей степени конечно.
Его конь-цепты позднейшие скриптухи разворовали.
Desktop 24.01.2023 17:59 # 0
guest6 24.01.2023 18:07 # 0
guest6 24.01.2023 18:03 # 0
Desktop 24.01.2023 14:35 # 0
– так может просто она была говно изначально?
я не думаю, что питон дизайнился гнидой чисто как язык для того, чтобы сишечку попердолить через ffi
вот applescript в принципе удачный пример, но это по сути дела dsl
guest6 24.01.2023 14:39 # +1
lua наверное более лучший пример, и пхп тот же
HoBorogHuu_nemyx 24.01.2023 14:51 # 0
Сейчас во все официальные сборки пхп вшили кучу нативных модулей, которые раньше были внешними. Его уже сложно назвать языком совсем без фреймворка. Например, поддержка кукис и сессий сейчас из коробки.
HoBorogHuu_nemyx 24.01.2023 14:42 # 0
IBM продвигал Rexx как замену коммандкому. Но потом, когда Windows стала несравнимо популярнее OS/2, про Rexx все забыли.
guest6 24.01.2023 14:50 # +1
WSH это видимо тоже клей. Виндоадмины начала нулеыых любили еще какую хуйню для автоматихации винды, но я забыл. на бейсик была похожа чуток
ps: вот!
https://www.autoitscript.com/site/
Desktop 24.01.2023 14:52 # +1
только в автоите вроде можно было в гуе натеребонькать действия и течь
это такой аналог автоматора, который на маке из коробки
guest6 24.01.2023 18:10 # +1
Собссно, я объектную модель документа так и изучал в какой-то момент: теребонькаешь гуёк, а в это время VBA записывает твои действия и генерит божэественный код
Да, AI писал за меня код когда это езще не было мейнстримом
3.14159265 24.01.2023 18:15 # 0
Дико плюсую.
Охренительная была конь-цепция как для того времени.
Для браузеров гораздо позже придумали selenium IDE.
guest6 24.01.2023 18:24 # 0
Я просто тянул кнопочки во фронтпейдже, и тек (а проф дизайнеры делали тоже самое в дримвивире)
А теперь?
блячтоэто?
Реально человечество в обратную сторону развивается, скоро будут на асемблере писать на листочке
Desktop 24.01.2023 18:33 # 0
только вот каждый фреймворк использует свой шаблонизатор, придётся редактор под каждый допиливать
o6AMa_4MO 24.01.2023 19:21 # 0
o6AMa_4MO 24.01.2023 15:18 # +1
Change my mind.
HoBorogHuu_nemyx 24.01.2023 14:39 # +1
Desktop 24.01.2023 14:44 # 0
guest6 24.01.2023 14:46 # +1
шеллы впринципе глю
Desktop 24.01.2023 14:50 # 0
HoBorogHuu_nemyx 24.01.2023 14:57 # +1
В отличие от C# и VB.Net, он может работать в интерактивном режиме, что позволяет макетировать на ходу, не разрабатывая приложение целиком.
guest6 24.01.2023 18:16 # 0
Довольно заебись на самом деле же
Desktop 24.01.2023 18:18 # 0
в отличие от голого bash, zsh etc
guest6 24.01.2023 18:32 # 0
формально конечно expr не часть ш (у гнусни он отдельный, хотя в бизибоксе конечно встроен) но есть на любом позиксе
А еще есть ``bc(1)``
А еще есть божественный ``dc(1)`` с обратной польской нотацией и не требующий даже терминала (его реально можно на печтном телетайпе юзать). Все эти тупые срачи про скобочки про которые недавно опять обсасывали ему не страшны
Desktop 24.01.2023 18:35 # 0
– не знал про такое, но умеет он, судя по ман, целое нихуя? как в степень возвести, например? зато можно по регулярке сравнить, слава свитеру!
3.14159265 24.01.2023 18:47 # 0
Desktop 24.01.2023 18:48 # 0
уж лучше bc конечно тогда взять
но вообще, когда есть пистон или пс, зачем ногти грызть вообще
3.14159265 24.01.2023 18:49 # 0
Лучше bc не брать.
Desktop 24.01.2023 18:49 # 0
3.14159265 24.01.2023 18:54 # +2
BC САМ НЕ ПОСЧИТАЕТ
ЗАЧЕМ МНЕ НУЖЕН PERL, У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ ЕБАТЬСЯ С НИМ
ЛУЧШЕ ЕЩЕ РАЗ НАПИСАТЬ USER-DEFINE FUNCTION
Я ПИШУ USER-DEFINE FUNCTIONS ПО 3 РАЗА В ДЕНЬ
КАЖДАЯ ФУНКЦИЯ ЗАНИМАЕТ ДВАДЦАДЬ МИНУТ
Я ЖИВУ АКТИВНОЙ И ПОЛНОЦЕННОЙ ЖИЗНЬЮ
Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ПИШУ USER-DEFINE FUNCTIONS
Я СВОБОДНЫЙ ОТ ЗАДРОТСТВО ЧЕЛОВЕК
В BC ВСЕ ПРОСТО И ПОНЯТНО
ОШИБКА Runtime warning (func=(main), adr=11): non-zero scale in exponent
ЭТО ЖЕ ОЧЕВИДНО КАК ЕЕ РЕШИТЬ
https://govnokod.ru/27121#comment602977
guest6 24.01.2023 19:14 # 0
бесе не умеет в нецелую степень, значит его лучше не брать
а если мне не надо в нецелую степень можно брать бесе?
guest6 24.01.2023 18:49 # 0
Бери готовую утилиту, и теки
o6AMa_4MO 24.01.2023 19:10 # 0
Пердолики устроили кашу из названий.
o6AMa_4MO 24.01.2023 19:05 # +1
> This is free software
> Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017
3.14159265 24.01.2023 19:15 # 0
guest6 24.01.2023 19:18 # 0
а вот то что ты вот со скобочками понаписал это башизм небось, и в обычном sh может и не взлететь
3.14159265 24.01.2023 19:21 # 0
guest6 24.01.2023 19:27 # 0
А в больших прыщах /usr/bin/time соооовсем не то выдает, что надо.
Подобный отсос в свое время случился с командой mail
https://heirloom.sourceforge.net/mailx_history.html
After installation, Berkeley Mail was found as /usr/ucb/Mail, but Unix mail was still available as /bin/mail.
Берклевцы серанули в вечность своим csh, но его кое-как победили, а мейл -- нет
o6AMa_4MO 24.01.2023 19:25 # 0
3.14159265 24.01.2023 18:48 # +1
Какой анскилл )))
DypHuu_niBEHb 24.01.2023 19:22 # 0
guest6 24.01.2023 19:23 # 0
башизм не пройдет
Desktop 24.01.2023 19:29 # +1
guest6 24.01.2023 19:34 # 0
и в dash не работает
а это был шел по умолчанию для дебиана и вроде даже убунты года так до 2006-го (хотя я не помню чото там было с убунтой тажа)
o6AMa_4MO 24.01.2023 18:30 # 0
guest6 08.06.2024 16:47 # 0
пидора ответ
Soul_re@ver 23.01.2023 10:20 # +1
ISO 23.01.2023 22:24 # +2
Человек открывает для себя дивный мир программирования за пределами стдлибы «VBA», где даже сортировку писать вручную не надо.
Как узнает про «компараторы» — вообще охренеет!
3.14159265 24.01.2023 06:26 # 0
Только две опции
Option Compare Text
Option Compare Binary
Там можно было колобки через AddressOf делать для шiнарi.
А вот как вызвать самому функцию по такому адресу, я не помню.
ISO 24.01.2023 09:25 # 0
Думаю, что «IComparator» можно похожим способом прикрутить.
guest6 24.01.2023 11:49 # 0
Fike 23.01.2023 11:22 # 0
господи блядь
они реально добавили эту инстаграмную хуиту
JloJle4Ka 23.01.2023 12:14 # +1
Fike 23.01.2023 12:24 # +1
TAPAC 23.01.2023 14:24 # 0
-1 действительно ли это енобходимо?
guest6 23.01.2023 22:27 # 0
В 2023 году
Не знать про квиксорт
ISO 23.01.2023 22:30 # +1
Если человеку приходится для каждой задачи заново писать сортировку — неудивительно, что он выбрал «пузырёк».
guest6 23.01.2023 22:52 # +1
В VBA наверняка есть готовый ActiveX компонент:) Автор в своем 1999-м году может взять диск с MSDN, и почитать
ISO 23.01.2023 22:56 # 0
>>> To sort an array in VBA, you need to write a code where you can match the first element of the array with the next one and inter-change them if the first one needs to come before. You need a FOR LOOP (For Next) for this and the UCASE function.
Какой багор )))
И вся первая страница «Гугла» в таком.
guest6 23.01.2023 23:13 # 0
HoBorogHuu_nemyx 23.01.2023 23:17 # 0
Первая ссылка:
https://learn.microsoft.com/ru-RU/sql/ado/reference/ado-api/sort-property
guest6 23.01.2023 23:19 # 0
ps:
https://www.vbforums.com/showthread.php?231925-VB-Quick-Sort-algorithm-(very-fast-sorting-algorithm)
guest6 23.01.2023 23:19 # 0
подумаешь
Desktop 23.01.2023 23:27 # 0
https://learn.microsoft.com/en-us/office/vba/api/excel.range.sort
guest6 23.01.2023 23:29 # 0
Desktop 23.01.2023 23:30 # 0
субд тебе не нравится, эксель тебе не подходит
а для чего ещё может быть нужен vba?
guest6 23.01.2023 23:37 # 0
Начиная с Office 2003 под него можно писать на Vb.NET. Там есть доступ ко всему фреймворку, включая класс List и его метод Sort
Зачем VBA?
https://learn.microsoft.com/en-us/archive/msdn-magazine/2003/september/visual-studio-net-and-microsoft-office-business-solutions
Desktop 23.01.2023 23:41 # 0
Вот буквально пару месяцев назад при программировании правда на VBScript в SCADA использовал ArrayList. Вообще, если поковыряться в MS COM интерфейсах, можно найти ещё несколько коллекций или структур данных, типа очереди (Queue), которые можно в VBScript задействовать через COM. Главное, чтобы имелся тривиальный конструктор, в нетривиальные COM не умеет передавать параметры.
guest6 23.01.2023 23:47 # 0
И конечно хранить в них можно только тривиальные строки и числа, а документ Word туда не запихнуть)
Вот какой
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/dictionary-object
guest6 23.01.2023 23:24 # 0
ActiveSheet.UsedRange.Columns(1).RemoveD uplicates Columns:=1, Header:=xlYes и далее Sort
3.14159265 24.01.2023 06:18 # 0
А зачем?
Просто ставишь ListBox1.Sorted=True и оно само всё сортирует!
guest6 24.01.2023 20:48 # 0
guest6 24.01.2023 20:52 # +1
ListBox1.Sorted := True;
guest6 23.01.2023 23:44 # +1
https://habr.com/ru/post/711222/
У человека неиллюзорно на дворе конец 90-х. Причем там одновременно и VBA под Excel, и мне 15 лет, и я только что узнал, что "x" и "y" удобнее объединить в запись Point
3.14159265 24.01.2023 06:10 # 0
Мммм.
Сейчас даже живого дельфятника вероятнее встретить.
guest6 24.01.2023 06:13 # +1
но я не советую тебе его встречать
Soul_re@ver 24.01.2023 13:07 # +1
JloJle4Ka 24.01.2023 13:33 # 0
3.14159265 24.01.2023 17:40 # 0
guest6 24.01.2023 22:57 # +1
3.14159265 24.01.2023 06:15 # 0
guest6 24.01.2023 06:22 # 0
В коко, C#, и прочих ломбоках с грувями хотябы не нужно вручную писать одинаковый код
3.14159265 24.01.2023 06:35 # 0
Ну он же там валидации e-maila добавил.
Хотя на мой вкус данные должны валидироваться ещё до попадания в структуру.
guest6 24.01.2023 11:50 # 0
тащемто даже в йажа есть похожее для бинов, а в рельсах всяких и подавно
Desktop 24.01.2023 12:57 # 0
3.14159265 24.01.2023 17:39 # 0
Мне тоже синтаксис йажа-аннотации напомнил.
Впрочем с метушней это везде можно сделать.
Но тут важно иметь автодесрализацию этих структов, и чтобы она умела в такую валидацию.
Без декларативности я бы просто сделал.
И в конструкторе бы валидировал
guest6 24.01.2023 18:07 # 0
3.14159265 24.01.2023 18:21 # 0
Лишпер-гомоиконщик осилит кастомный валидатор, а вот жовист без внешней монстролибы на десятки мегабат — вряд ли.
ISO 24.01.2023 19:59 # 0
3.14159265 24.01.2023 21:10 # 0
ISO 24.01.2023 21:14 # 0
Для желающих особой декларативщины есть «Annotated» — штука, которая позволяет к объявлению типа прикрепить произвольные данные, а потом их вытащить.
Я так делал декларативное описание небинарных структур, см. https://govnokod.ru/28540#comment803502 — получилось угрёбищненько, но довольно наглядно, работает и поддерживает типизацию (=> у меня есть нормальные подсказки в IDE). Работает в проде.
3.14159265 24.01.2023 21:17 # 0
А можно реальный пример валидатора данных?
ISO 24.01.2023 21:21 # +1
Вложенность пугает, но это плата за примитивизм.
3.14159265 24.01.2023 21:24 # 0
А в какую версию питуха такое подвезли?
> Вложенность пугает, но это плата за примитивизм.
Не знаю. Меня даже сложные конструкции на питоне не пугают особо.
А вот Rust такой синтаксис что тошнит сразу, даже если что-то "простое" в пару строк.
ISO 24.01.2023 21:27 # +1
А так питонья собачка — очень примитивная вещь: она берёт то, что справа от неё, и применяет к тому, что снизу от неё, а результат — помещает на место того, что было ниже. Поэтому никто не запрещает сделать, например, вот так:
Fike 24.01.2023 21:32 # +1
Я недавно на этом подорвался и сгорел к чертям блядь я уже зверь нахуй
guest6 24.01.2023 21:27 # 0
https://peps.python.org/pep-0318/
Будем честны: до 2003-го года питон не был ни популярным, ни особо удобным
> Rust такой синтаксис что тошнит сразу, даже если что-то "простое" в пару строк.
В рустне ты можешь написать свой макрос и он примет на вход AST и как-то его трансформанёт. Именно так реализованы всякие автореализации сериализации, логирования (привет, аоп) и пр. Но синтаксис и правда всратый
Desktop 24.01.2023 21:27 # 0
https://docs.racket-lang.org/guide/contract-boundaries.html
guest6 24.01.2023 21:29 # 0
ISO 24.01.2023 21:32 # 0
guest6 24.01.2023 21:38 # +1
Смысл контрактов кмк в стат их проверке.
Desktop 24.01.2023 21:52 # 0
guest6 24.01.2023 22:00 # 0
Обычно это называется статическим анализом
Desktop 24.01.2023 22:05 # 0
как ты это можешь сделать без входных данных, которые могут прийти хоть от пользователя, хоть от сети, хоть от аллаха?
это всё-таки не кок
зато ты можешь написать контракт не только на входящие значения, но и на результирующее
guest6 24.01.2023 22:16 # 0
Я хочу выразить например такое:
Функция "foo" возвращает положительные числа если её аргумент тоже положителен.
Я пишу
вот тьакое хочу
Desktop 24.01.2023 22:27 # 0
впрочем, typed racket свои проверки выполняет до основного запуска (это называется phase 0 или что-то в этом роде), так что в теории наверное всё возможно
guest6 24.01.2023 22:32 # 0
* lint: c
* Critic: Perl
* Rubocop: Ruby
* flake8, pylint, mypy: python
* eslint, tsc: TypeScript
guest6 24.01.2023 22:37 # 0
https://invisible-island.net/personal/lint-tools.html
When I began programming, there were no static (or dynamic) analyzers, no profilers, no debuggers. There was only a compiler (initially in two parts: a precompiler and a compiler). In lieu of a debugger, the IBM 1620 conveniently responded to use of an uninitialized variable by going into an infinite loop. There were no compiler warnings (only errors). This was in fortran, of course.
Desktop 24.01.2023 22:50 # 0
только к формальной проверке корректности это не имеет особого отношения. и в чистом рэкете я её не вижу
пример контракта, который сработает в рантайме
https://docs.racket-lang.org/guide/contracts-general-functions.html#%28part._contracts-arrow-d%29
Fike 24.01.2023 22:51 # −1
guest6 24.01.2023 22:55 # 0
Сначала прочитал как "это реализуется на в библиотеке а в оперативной памяти"
Fike 24.01.2023 23:04 # −1
guest6 24.01.2023 23:12 # 0
Меня заебали, грубо говоря, ПХП
Desktop 24.01.2023 23:17 # 0
o6AMa_4MO 28.01.2023 18:45 # 0
o6AMa_4MO 24.01.2023 23:14 # −1
guest6 24.01.2023 22:24 # 0
o6AMa_4MO 24.01.2023 22:29 # 0
HoBorogHuu_nemyx 24.01.2023 22:45 # 0
А какие багры ты знаешь?
Fike 24.01.2023 21:33 # 0
3.14159265 24.01.2023 21:33 # 0
В питоне это называют декораторами.
Придёт джавух и расскажет что это аннотации и АОП.
Придёт Снаут и объяснит что-то про high order functions на хаскельном сленге.
Но до полноценной Ады и coqmpile-time proof мало кто дорос.
Fike 24.01.2023 21:38 # 0
Декораторы - это именно выполняющийся кусок кода, который в теории может что угодно натворить
3.14159265 24.01.2023 21:43 # 0
Впрочем лобок тоже ведь из этой хуйни творит чудеса кодгена.
Fike 24.01.2023 21:44 # 0
guest6 24.01.2023 21:49 # +1
Джавист: Вот я джавист, в начале каждого метода я пишу лог
Тролль: Но почему не взять AOP?
Джависит: АОП ГАВНО НЕ НУЖНО АПО АОП ТОЛЬКО ВСЕ ПОРТИТ ПОТОМ КОД НЕ ПОНЯТЬ111111111
****
Питонист: Я питонист, я использую декораторы
Джавист: Да, прикольная штука, мне нравится
CBuHOKYP 28.01.2023 21:53 # 0
guest6 24.01.2023 21:15 # 0
* декораторы
* декоратор @property из коробки
* всякие модельки в Django и SQLAlchemy тоже довольно декларативные
Fike 24.01.2023 21:36 # 0
Естественно, 99% использования - это проверить что там юзер прислал в жсоне или параметрах запроса
Естественно, все опечатки тупо идут нахуй и не десериализуются в поля (= юзер даже не знает, что он что-то неправильно передал)
Естественно любой ошибочно указанный тип приводит не к сообщению об проваленной валидации, а к эксепшену со стектрейсом без внятной информации о том, а что собственно пошло не так
Скриптушня с диктами и всякими JSON-схемами куда лучше подготовлена к реальному миру и применению, чем вот это всё
guest6 24.01.2023 21:40 # 0
Потом пришли смузихлёбы-калоеды и теперь у нас
Fike 24.01.2023 21:43 # 0
В принципе, это решается подпихиванием валидации схемы до десериализации, только кто ж их писать будет, и вообще у нас тут всё стат типизированные, мы же не динамические лошки, у меня язык сам по себе схема =))))))) )) )) ) )
guest6 24.01.2023 21:51 # 0
Fike 24.01.2023 22:52 # 0
Fike 24.01.2023 07:52 # 0
В ячейку. В одну ячейку. И вообще, зачем в одну, если логично в две?
guest6 24.01.2023 11:51 # 0
Рекорды были в поскале
guest6 24.01.2023 19:19 # 0
https://twitter.com/allofmewants/status/1617491182271201280
Fike 24.01.2023 21:39 # 0
Desktop 24.01.2023 22:08 # 0
– бля
guest6 24.01.2023 22:14 # +1
кротовуха
фу как можно работать в эдалт сфере будучи квиром? Это нечестно как минимум
Desktop 24.01.2023 22:15 # 0
DypHuu_niBEHb 24.01.2023 22:17 # 0
Fike 24.01.2023 22:58 # +1
guest6 24.01.2023 23:03 # +1
guest6 24.01.2023 22:18 # +1
-------
Вообще, подросткам иногда правда кажется что их какие-то переживания там про еблю охуенно важны всему миру потому что они неебаца оригинальные и сложные, в моем детстве тоже так было. Но не было твиттера. И квиров.
Fike 24.01.2023 22:53 # 0
охуенно
охуенно
охуенно
и ничего ведь в голове не щёлкает
секс-рабы миграции
вспоминается та гениальная статья с хабра "меня перевезли в другую страну и выкинули на мороз"
Fike 24.01.2023 23:18 # 0
ну слушай, вообще-то это AI-complete задача
Fike 24.01.2023 23:23 # +1
а я бы наверное прекратил хрюкать, да только как?
...только спустя пару абзацев приходит понимание, что "мы" - это она про себя. это она так взяла кальку с they/them и перенесла на себя.
Desktop 24.01.2023 23:29 # +1
fixed
guest6 24.01.2023 23:33 # +1
Квир-Ленин
Такой молодой
И юный квиртябрь впереди (и в заде тоже)
guest6 24.01.2023 23:34 # 0
придя домой я весь вечер я рыдала от осознания что а)горизонтальность и общность о которой я так мечтала вылетели в трубу
Desktop 24.01.2023 23:36 # +1
guest6 24.01.2023 23:41 # 0
Desktop 24.01.2023 23:41 # 0
guest6 24.01.2023 23:44 # 0
ну то есть нет конечно спал
но просто спал вобще без секса
ну то есть что считать за секс
Fike 24.01.2023 23:42 # 0
что же произошло у этих?
1) две квир-коммуны не ладят
2) месяц готовили выпуск подкаста, потом разругались каким он должен быть
3) пошла нахуй (семь раз!!!)
4) всё остальное ещё менее примечательно
https://twitter.com/ed_mechanics/status/1617705848670912513
Fike 24.01.2023 23:49 # 0
https://twitter.com/MikeYagupian/status/1617979531977195520
guest6 24.01.2023 23:53 # +1
ISO 25.01.2023 09:38 # 0
Да, вот это самый лютый пиздец, конечно.
ISO 25.01.2023 09:34 # 0
> + сказал что за непрошенное мнение посылают нахуй и послал нахуй
Бля, тут аж взвизгнул.
JloJle4Ka 24.01.2023 08:19 # 0
guest6 24.01.2023 11:49 # +2
Ну дедов метод это байт плюс энды конечно
Desktop 24.01.2023 12:58 # 0
JloJle4Ka 24.01.2023 13:34 # 0
Desktop 24.01.2023 13:38 # 0
JloJle4Ka 24.01.2023 13:41 # 0
Desktop 24.01.2023 14:02 # 0
guest6 24.01.2023 14:11 # 0
Desktop 24.01.2023 12:58 # 0
JloJle4Ka 24.01.2023 13:34 # 0
Desktop 24.01.2023 13:38 # 0
JloJle4Ka 24.01.2023 13:40 # 0
Desktop 24.01.2023 14:02 # 0
ЧТО ЗА ГОВНО ТЫ НАПИСАЛ ДА ПОШËЛ ТЫ НАХУЙ
:-)
HE_OTBE4Au_YE6KY 24.01.2023 14:19 # 0
guest6 24.01.2023 14:26 # +1
если бы фергана...
guest6 24.01.2023 14:28 # 0
А как еще можно сделать?
Desktop 24.01.2023 14:49 # 0
а где должен счётчик храниться?
типа есть структура со счётчиком и указателем на void, где типа объект?
guest6 24.01.2023 16:03 # 0
ну либо можно их рядом хранить, но без обобщенного программирования получится очень грязно, так что лучше бы не
guest6 24.01.2023 16:14 # 0
В Сишке наверное можно через незакрытый массив как-то наебенить но нужно выравнивание и пр
Desktop 24.01.2023 16:18 # 0
я как-то делал по-ротоёбски, когда счётчики по разным структурам рядом с данными лежали, чтобы void* не кастовать :-D
guest6 24.01.2023 16:25 # 0
а можно кстати амкароёбить
guest6 24.01.2023 16:32 # 0
Всё, теперь в си управление памятью автоматическое, и код стал безопаснее. Продам макрос MK любому разработчику критических важных приложений
Desktop 24.01.2023 16:35 # 0
guest6 24.01.2023 16:37 # +1
Desktop 24.01.2023 16:38 # 0
Desktop 24.01.2023 16:42 # 0
а то каждый питух сможет счётчик попердолить
guest6 24.01.2023 16:54 # 0
либо делать непрозрачный тип: алиас для void*, и обратно всегда кастить
ps: но на самом деле конечно не нужно этого ничего делать, а нужно брать Rust или C++
Desktop 24.01.2023 23:39 # +1
guest6 24.01.2023 23:49 # 0
3.14159265 24.01.2023 23:51 # +1
Свифт гораздо менее отвратный и у яблок есть поддержка.
guest6 24.01.2023 23:55 # 0
Что будет если я хочу передать структуру из двух полей по 4 байта каждый в какую-то функцию?
* куча + Ref Count
* escape analysis при компиляции и передача через RAX
* всем похуй
guest6 25.01.2023 01:51 # 0
Desktop 25.01.2023 02:00 # 0
Работать с указателями можно, но по поводу тонкостей надо курить доку, я редко таким пользовался
guest6 25.01.2023 02:12 # 0
то есть у вас есть разница между структурой и классом, как в C#?
Desktop 25.01.2023 02:15 # 0
Но структуры копируются, классы по ссылке
Desktop 25.01.2023 02:29 # 0
Desktop 25.01.2023 15:10 # 0
с другой стороны, а зачем в шарпе разделение на value type? коллекции всё равно по ссылке передаются, а кмк это было бы главным бенефитом
guest6 25.01.2023 15:31 # 0
Я не знаю зачем, предполагаю:
* семантика value types: ты всегда явно копируешь что-то и сравниваешь по всем полям (а не по указателю). Это бывает удобно когда ты знаешь, что callee не засрёт переданное значение и что нет нужды вручную реализовывать Equals
* все таки массив структур будет занимать меньше памяти и меньше нагружать GC. Нет нужны пирдолица с представлением структур или наборов флагов интом (как иногда делают в высоконагруженных кусках яжы)
* ну на мелочевку типа передачи Point тоже не тратится время GC
Мы все вкурсе, что недолго живущие объекты в GC это семечки, но курочка по зёрнышку клюет, а весь двор в дерьме.
Есть конечно всякое лукавство типа если функция принимает интерфейс, то структура боксится (динамический полиморфизм же) то в целом можно много кода написать не тронув GC
Кстати, массивы в сишке тоже не копируются. В крестах копируется std::array и всякие STL коллекции
Desktop 25.01.2023 15:38 # 0
– поясните мысль
guest6 25.01.2023 16:07 # +1
https://curryncode.com/2016/09/28/coding-for-performance-struct-vs-class/
Заголовок объекта в куче занимает 16 байт (на x64): Указатель на RTTI для таблицы методов и вероятно для рефлексии, и какое-то недокументированное говно в котором вероятно хранится хеш (который первый раз выводится из адреса памяти, но потом сохраняется видимо на случай передвижения объекта) и лок (в CLR каждый объект может быть локом для синхронизованных мтеодов как и в JVM)
Не велика беда для одного питуха, но если у тебя есть структура из двух интовых полей, то она занимает 8 байт. А класс занимает 24, плюс сам указатель 8 байт, то есть памяти нужно больше ровно в 4 раза.
Когда у тебя массив из двадцати миллионов таких структур то разница уже есть.
Кроме того, структуры уложены в массив последовательно, и отлично работает префетчер и кеш. А у классов там лежат указатели по которым надо куда-то идти, и в каких-то случаях reference locality может объебаться
Desktop 25.01.2023 16:15 # 0
и, возможно, перекрывает оверхед на 100500 копирований (особенно, если там memcpy лол)
guest6 25.01.2023 16:51 # 0
Desktop 25.01.2023 17:24 # 0
или ты про ref?
в свифте кстати так не сработает, там тоже есть out параметр, только вот под капотом, насколько знаю, будет уже два копирования
guest6 25.01.2023 17:37 # 0
Если ты пишешь свой фреймворк то выбор между структурой и классом должен зависеть от семнатики, а не от перформанса, кмк.
Точно так же как Goвнари выбирают между указателем и копированием thisа в методе.
Desktop 25.01.2023 17:41 # 0
просто в тех же крестах ты делаешь этот выбор по месту использования, а в свифте при декларации. угадай, что гибче?
guest6 25.01.2023 18:05 # 0
К примеру, запретив копирование ты можешь сделать хуйню, которую никогда нельзя передать по значению. А если еще и мув запретить, то будет и вовсе недвижмый класс, который "где родился -- там и пригодился". Такой копролит чтобы за пределы стекфрейма функции вынести, можно только положить в кучу, и работать по указателю: вот и будет почти reference type
Но в целом ситуация конечно намного более гибкая (всё по значению, кроме сишных массивов), и это хорошо.
В дотнете забоксить структуру достаточно легко, типа
(уверен, такой класс уже где-то есть) а вот класс в value type уже не превратить.
В расте, кстати, по умолчанию ничего не копируется, но и куча не трогается: всё мувается только (если ты явно не реализовал трейт для копирования или явно не вызвал клон) а в Go и вовсе решение принимает escape analysis в момент компиляции
TAPAC 25.01.2023 18:09 # 0
Чалишься? По какой статье?
Fike 25.01.2023 18:20 # 0
С чего бы она здесь забоксится? Вот с интерфейсами действительно может быть проблема, where T : Interface может боксить структуры
guest6 25.01.2023 18:31 # 0
Box это референс тайп
Fike 25.01.2023 18:38 # 0
2. с самой структурой-то ничего не произойдет
guest6 25.01.2023 18:41 # 0
Речь шла о том, что создавая структуру я вынуждаю работать с ней по значению (hence, копировать). Однако я могу передать ее по референсу используя ключевое слово "ref", а могу обернуть её в такой вот нехитрый класс, тем самым забоксив её и всегда передавая ее по указателю
Desktop 24.01.2023 23:55 # 0
guest6 24.01.2023 23:55 # 0
https://govnokod.xyz/_28567/#comment-844582
3.14159265 24.01.2023 23:59 # 0
Где там С++, guest6?!
guest6 25.01.2023 00:29 # 0
3.14159265 25.01.2023 00:32 # 0
Так уже таскали и много раз обсуждали на ГК этого франкенштейна.
https://govnokod.ru/12337#comment165170
Просто не пойму что такого особенного.
Ну уродец-выкрест, жертва инцеста от спаривания близкородственных языков.
3.14159265 24.01.2023 23:45 # +1
На самом деле конечно не нужно этого ничего брать, а нужно писать на Си.
Просто соблюдать паттерн.
guest6 24.01.2023 23:48 # +1
3.14159265 25.01.2023 00:10 # 0
Условно g_object_ref() / g_object_unref()
Просто эти умные рефкаунты имеют смысл только в многопоточной среде.
Сишка никогда не была нацелена на многопоточность.
Буквально вчера писал об этом:
https://govnokod.ru/28528#comment805893
guest6 25.01.2023 03:30 # 0
guest6 24.01.2023 16:41 # +1
ВРАГ НЕ ПРОЙДЕТ
HoBorogHuu_nemyx 24.01.2023 17:35 # 0
На хузе сейчас эту кнопку лучше не трогать, потому что она распидорашивает текст. Пиши порциями коротких комментариев, как в Твитторе, если боишься потерять несохранённый текст.
Soul_re@ver 25.01.2023 00:39 # +3
3.14159265 25.01.2023 00:42 # +2
До сих пор иногда так делаю, когда пишу длинный комментарий.
HoBorogHuu_nemyx 25.01.2023 00:49 # 0
guest6 25.01.2023 00:50 # +1
GoldED
Desktop 25.01.2023 00:55 # 0
веб штука опасная
ISO 25.01.2023 08:54 # 0
3.14159265 24.01.2023 17:46 # +2
guest6 24.01.2023 19:23 # +1
https://i.postimg.cc/KzrJk4mf/image.png
o6AMa_4MO 24.01.2023 19:34 # +2
guest6 24.01.2023 19:43 # +1
https://pbs.twimg.com/media/FnQCS3QX0AAMdGG?format=jpg&name=medium
o6AMa_4MO 24.01.2023 22:51 # 0
guest6 24.01.2023 23:01 # 0
HoBorogHuu_nemyx 25.01.2023 14:44 # 0
Desktop 25.01.2023 12:15 # 0
HoBorogHuu_nemyx 25.01.2023 13:55 # 0
NAMER
JUICE
COZEK
CAPTEK
guest6 24.01.2023 23:00 # 0
https://plugins.jetbrains.com/plugin/15865-anime-memes
Desktop 24.01.2023 23:02 # 0
можно только картинки поменять
Desktop 24.01.2023 23:14 # 0
интересны два момента:
1.
Voodoo2 - чистый 3D акселератор, идет в PCI slot подключается
кабель монитора и идет loop кабель на AGP ATI карту
2. в 2000-ом году уже был SLI
guest6 24.01.2023 23:29 # 0
https://en.wikipedia.org/wiki/3dfx_Interactive#Voodoo_Graphics_PCI
И это не совсем SLI, это паравозик.
> The mechanical relays emitted an audible "clicking" sound when they engaged and disengaged
"барышня, соедините меня с 3Д картой"
Desktop 24.01.2023 23:33 # 0
inkanus_gray 26.01.2023 01:50 # 0
3.14159265 24.01.2023 23:32 # +1
> в 2000-ом году уже был SLI
Ничего удивительного, это ж 3dfx и придумала.
А уже потом nVidia выкупила их с потрохами.
guest6 24.01.2023 23:36 # 0
Да, палишься. Была такая файка у Стертора.
Desktop 24.01.2023 23:38 # 0
а voodoodal16
guest6 24.01.2023 23:42 # 0
guest6 24.01.2023 23:39 # +1
В моем детстве все знали что 3Д ускоритель вуду от здфкс с API Glide это круто. Ни у кого не было, но все знали.
Desktop 24.01.2023 23:40 # 0
guest6 24.01.2023 23:45 # +1
Это всё конечно работало если купить у метро книжечку с секретными кодами: зад-зад-вниз вперед-A+B
Desktop 24.01.2023 23:47 # 0
– забавно, что именно эта игра привела к появлению возрастных рейтингов в гейдеве
guest6 24.01.2023 23:51 # 0
o6AMa_4MO 24.01.2023 23:34 # 0
Desktop 24.01.2023 23:35 # 0
у меня оно с другим ассоциируется
guest6 25.01.2023 15:35 # 0
из восьми залуп
три покорошено
четыре так брошено
o6AMa_4MO 25.01.2023 00:00 # 0
guest6 25.01.2023 03:23 # 0
No hidden control flow (нету видимо деструкторов/Drop штоле???)
No hidden allocations (нету динамический каллекций???)
First-class support for no standard library (мояж ты луа)
A Package Manager and Build System for Existing Projects (мимими, но в 2023 хвастаться таким всё равно что хвастаться что ты умеешь вытирать жопу бумагой а не пальцем)
Simplicity (все так говорят, ага. После питона я уже никому не верю)
что зиговал??
Soul_re@ver 25.01.2023 10:20 # 0
Desktop 25.01.2023 12:16 # 0
https://govnokod.ru/27159#comment601997
guest6 25.01.2023 15:39 # 0
Вероятно у кого-то первым сексуальным переживанием детства была мастурбация на M&M's