/u/ - Университет

Имя
Email
Тема
Комментарий
Файл
Пaроль (Для удаления файлов.)

File: 1706276261584.png (2.94 MB, 2480x3508, Ferris.png)

 No.333

Местечко, где всегда можно рассказать чем Rust лучше C++; посмеяться над Java программистами и в целом поделиться недавно выученной тривией и задать ответы по направлениям связаных с языками, да и не только.

 No.342

Каков исторический контекст у крайне мутной темы с указателями? 640Кб хватит всем? Или есть иные преимущества, недоступные начинающим быдлокодерам?
мимокрокодил

 No.344

>>342
>крайне мутной темы с указателями
А что там мутного? Вроде там всё просто.

 No.345

>>344
Зачем делать указатель, если можно сделать ещё одну переменную?

 No.346

>>345
Во-первых, да, память экономится, допустим если выделишь большой кусок и потом его копировать туда-сюда долго и прожорливо. Я понимаю, что сейчас можно всегда сказать чтобы пользователь докупил себе памяти, но в случае с всякими микроконтроллерами экономить приходится чаще.
Во-вторых (и я думаю что это главная причина зачем оно сделано), аргументы в функцию передаются через с стек. А стек у нас равен
>ulimit -s
>8192
8 мегабайт в моём случае. Ну и опять же копировать из стека и обратно дело не быстрое.
В третьих, если тебе надо в функции изменить несколько аргументов, то без указателей не обойтись. Одно значение ты ещё можешь вернуть (опять же копирование через стек со всеми вытекающими), а вот больше уже придется запихивать в структуры.

 No.347

>>345
Очень странный вопрос! И не очень понятно, как это связано с количеством памяти.

Без указателей ты далеко не уйдешь? Как делиться памятью между несколькими потоками? Как писать большинство алгоритмов, построенных на указателях (листы, деревья и.. леса), как работать с массивами, как изменять аргументы функций, да как даже делиться самими функциями? А вот никак без указателей!

 No.348

>>342
Некоторые высокоуровневые языки вполне себе успешно скрывают указатели за слоем абстракций. Однако чем ниже мы опускаемся, тем это становится сложнее. Причина этому кроется, внезапно, в самом устройстве компьютеров: у тебя есть процессор (калькулятор на стероидах) и отдельно память (не важно какая). Для того, чтобы процессор мог считать любые данные из памяти, ему сперва нужно знать где они в ней находятся: том 1, страница 100500, пятое слово сверху. Вот подобное описание местоположения и есть указатель. И без них никак.

 No.353

File: 1707392253640.webp (572.98 KB, 2560x1440, wp5057322.webp)

С какого языка лучше всего начинать вкатываться в программирование в 2024? Ваше мнение?

 No.354

>>353
Сначала ассемблер (ARM64 под малину), затем сишечка (K&R), потом схема (SICP). Это ни разу не шутка, если что.

 No.357

>>353
В зависимости от твоих желаний.
Если начнешь с раста, то будешь выделяться среди миллиона серых обезьянок на джаваскрипте и питоне.
Но в то же время найти работу будет сложнее (если найдешь, то будет работа куда лучше).

 No.358

в чем прикол раста чем он лучше с++? первое сообщение на доброчане

 No.359

>>358
Ну если прям совсем вкратце:
1. Строгая типизация.
2. ADT + pattern matching.
3. Трекинг лайфтаймов.
4. Трекинг инвариантов.
5. Человеческий async.
6. Человеческий параллелизм.

 No.360

>>359
офигеть думал тут никого)
на 0 чане меня сразу послали, думаю учить Раст дл общего развития

 No.361

>>360
Если хоть немного знаешь C++, то советую изучать по https://amazon.com/dp/1492052590 можно спиратить с libgen

 No.362

File: 1707614929347.png (523.68 KB, 828x539, 2.png)

>>361
А что там такого есть, чего не получить из официального раст бука и чтения парочки открытых проектов?

Я бы советовал не заморачивать голову книгами о языках и почитать вот это:
https://bfnightly.bracketproductions.com/
https://rust-unofficial.github.io/too-many-lists/index.html
https://rust-unofficial.github.io/patterns/intro.html

 No.363

>>362
Мне официальный раст бук показался, честно говоря, довольно поверхностным: из него непонятно как трейты представлены в памяти, как сделать свой итератор, ни слова про async (да, я в курсе про недоделанный async book) и т.п. Полноценные книги обычно более системны, плюс из них часто можно понять мотивацию выбранных решений в дизайне языка. На самом деле, чем больше ресурсов, тем лучше: всегда можно пару минут полистать и понять нравится тебе подача и стиль изложения или нет.

 No.364

>>363
Думаю ты прав!

А я писал по своему опыту, потому что раньше "боялся" программировать и писать код; поэтому вместо этого я читал много книжек по языкам, операционным системам.. наверное я знаю практически каждый качественный блогпост по плюсам, расту, хаскелю и агде.

И практического опыта в итоге у меня почти не было, по сути многое пришлось переучивать с нуля. Поэтому я первую книжку и подсказал, ведь там придется самому код писать также.

 No.393

File: 1708872268580.jpg (94.27 KB, 573x892, luachan.jpg)

>>353
Зависит.
Lua - невероятно простой и эффективный, идеален для обучения. Питонисты завидуют, но быть на заработке в СНГ очень сложно, тк софта не делают почти, а язык не популярен.

Go - если хочешь получать деньги в бекэнде. Язык не плохой, опережает многие своей уникальностью и востребован, но с точки зрения дизайна нередко порицается - благо, на производительности и памяти (благодаря garbage collector) не сказывается.

Zig - язык будущего. Обожаем всеми кроме ржавых культистов, работу найти невозможно. Еще не дошел до 1.0, но уже опережает весь low-level по многим параметрам, будет востребован через 4 года когда всех программистов заменят неиросети. Bun сейчас лучший рантайм в вебе, так что это будущее может быть даже не за горами.

Вообще программирование скоро перейдет в разряд самодеятельности нежели оплачиваемой профессии, лавочка потихоньку закрывается. Но сейчас рост технологий экспоненциальный и мы достигаем пика, так что сказать точно очень сложно.

 No.395

File: 1708876452123.png (2.21 MB, 2018x1135, 35.png)

>>393
> опережает весь low-level по многим параметрам
По каким?

> кроме ржавых культистов

Во-первых, Rust хорош не только для низкоуровневого кода, во-вторых у Zig нет никакого ответа на безопасную работу с памятью, отсюда и неуважение. А как по мне, то пусть занимаются языком, может что-то интересное и выйдет.

> скоро перейдет в разряд самодеятельности нежели оплачиваемой профессии

Глупости, все эти модельки не думают, а стохастически подбирают ожидаемые ответы. На таком далеко не уедешь, только пузыри надуешь и, возможно, заработаешь.

А когда если они научатся в мышление, то любая инженерная работа "перейдет в разряд самодеятельности", поэтому и волноваться, что именно програмисты вдруг станут не нужными, нет смысла.

 No.397

File: 1708966139387.png (1.91 MB, 1649x2048, 1692287162534447.png)

>>395
>нет никакого ответа
Черно белый манямир, такой же как и картинка твоя, почитал бы хоть; у зига есть 4 build мода, которые можно друг с другом комбинировать в одном проекте: это build, ReleaseSafe(безопасность), ReleaseSmall(маленькость °-°) и ReleaseFast(скорость) под разные модули. Но суть не в этом.
Как ни крути, в low-level расту без unsafe не выкрутится и без него это нерабочий язык, а этот самый unsafe именно такой, как и предполагает имя - безопасность там не то что с алокаторами зига, она не может тягаться даже с плюсами 20+ годов (хотя синтаксис там напугал бы даже Ратлиффа). Безопасность зига осуществляется за счет отсуствием футганов и отстуствием скрытого "control flow", а не кастрированием и невменяемыми скоростями компиляции.
На высоком уровне раст же более менее себя прилично показывает, и если закрыть глаза на размеры бинарников, ужасное llwm-овское тульё и то какой кошмар он приносит мейнтейнерам в опенсорсе (не зря же в него микрософты амазоны и прочие сатанисты так много бабла вливали), очень даже неплохой. Только случаев выгорания от раста через чур ( http://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html , очень много ожидал от проекта но получилось как получилось)

 No.555

File: 1710722523067.jpg (127.52 KB, 1000x1333, 22.jpg)

В детстве любил играть в Месть Карапузкиков.
Сейчас решил попробовать написать открытый движок для них.
Особо опыта с программированием такого у меня нет (надо и научиться реверсинженирить уже существующий exe, и разобраться с архитектурой движков), поэтому посмотрим, как далеко получится зайти.

Когда будет какой-либо прогресс, буду отписываться тут.
И вам хорошего дня!

 No.556

>>555
Удачи, анон!

 No.690

Почитал тред, кокой-то тред бесполезных советов послушал. Язык это вкусовщина и вторичен, учите как комплюктеры и оси работают, тогда со всем остальным будет 0 проблем

 No.692

>>690
Ну а если по теме языков, имхо, Си - лучший вариант для низкоуровщины и даже прикладного пользовательского софта, но только если ты уверен в себе и понимаешь что делаешь. Всякие расты-с++-зиги-гошки избыточны и ведут к другим проблемам, о которых почему-то любят замалчивать противники указателей и ручного руления памятью

 No.697

>>692
Почему не сосемблер??? Зиг более низкоуровневый и там ручное управление памятью, просто без футганов, зайди на сайт почитай, 5 минут займёт.

 No.698

>>697
Почитал https://ziglang.org/ru/learn/why_zig_rust_d_cpp/ https://ziglang.org/ru/learn/overview/ и не нашёл каких-то прорывных преимуществ ради которых стоит всё бросить и учить зиг хайль.

>Zig соперничает с C

вообще смехотура

Преимущества его перед сравненными языками сомнительны и выглядят натянутыми - перечисленными "фичами" обладает Си уже 50 лет как:
* Без скрытых потоков управления
* Без скрытых выделений памяти
* Первоклассная поддержка отсутствия стандартной библиотеки
* Встроенный статический анализатор для обнаружения потенциальных утечек памяти (берешь что-то типо pvs/valgrind и прогоняешь)
Теперь к минусам:
* Синтаксис объективно сложнее Сишного
* 0 востребованности на рынке - будущее языка сомнительно
* Вся мишура с
>отсутсвием выделений в куче без прямого указания
рассыпается как только подключаешь любую стороннюю библиотеку

Просто нинужно. Как альтернатива может быть, но профитов переход на него я абсолютно не вижу, а вот траханье с неудобным синтаксисом предстоит постоянное.

>Почему не сосемблер

Ровно по тем же причинам что и выше. Переход с ассемблера на Си - качественный переход. В местах где без ассемблера не обойтись он не оправдан, в остальных - более чем. Переход с Си на Зиг? Нету причин чтобы это делать

 No.699

>>698
> * Без скрытых потоков управления
> * Без скрытых выделений памяти
Ясно, на C ты не писал.

 No.700

>>699
> * Без скрытых потоков управления
> * Без скрытых выделений памяти
Ясно, на Си ты не писал

 No.702

>>690
ИМХО оси конечно хорошо знать в общих чертах но для реального вката достаточно команд Линукс.

 No.703

File: 1712671358760.png (43.22 KB, 791x293, ClipboardImage.png)


 No.704

>>703
Таки я про С++ ничего в положительном ключе и не писал :3, к чему это?

 No.705


 No.706

>>353
Питон. Инфа сотка. Не обсуждается!

 No.932

>>393
>но быть на заработке в СНГ очень сложно
Как и где угодно тащем-та, как самодостаточная технология он редко используется, в основном эмбеддится в сишное говно.

 No.983

Растовички, что с мордочкой?

https://www.opennet.ru/opennews/art.shtml?num=61819

> Кроме того, можно отметить уход Уэдсона Алмейда Фильо (Wedson Almeida Filho) с поста сопровождающего проект Rust for Linux, занимающийся внедрением в ядро Linux средств для разработки на языке Rust. После ухода Уэдсона у проекта остались ещё два сопровождающих - Мигель Охеда (Miguel Ojeda), автор и основной разработчик проекта Rust-for-Linux, и Алекс Гейнор (Alex Gaynor), бывший директор организации Python Software Foundation, переключившийся на продвижение Rust. Ушедший сопровождающий, который подключился к проекту 4 года назад, является сотрудником компании Microsoft и автором экспериментального драйвера с реализацией ФС EXT2, написанного на языке Rust. Последнее время работа Алмейда была сосредоточена на создании средств для разработки файловых систем на языке Rust. В этом году Алмейда внёс в репозиторий Rust-for-Linux 17 коммитов (для сравнения Мигель Охеда добавил 53 коммита).


В качестве причины ухода упоминается нехватка сил и энтузиазма, которые когда-то были для реагирования на некоторые бредни нетехнического характера (nontechnical nonsense). По мнению Алмейда, разработчики вынуждены тратить много сил на споры по несущественным вопросам, сводящим на нет более важную глобальную цель. Алмейда продолжает верить, что будущее ядер за использованием языков, обеспечивающих безопасную работу с памятью, и если сообщество разработчиков Linux не поймёт это, то Linux будет вытеснен каким-то другим ядром, как в своё время произошло с Unix.

Сторонники проекта Rust-for-Linux столкнулись с необходимостью преодолевать сопротивление со стороны маститых старых разработчиков ядра, которые не видят необходимости в изучении нового языка. В своём письме об отставке Алмейда в качестве примера приводит ссылку на дискуссию, которая состоялась во время выступления Алмейда и Кента Оверстрита (Kent Overstreet) на конференции "Linux Storage, Filesystem, Memory-Management, and BPF Summit" и была посвящена использованию Rust для разработки файловых систем. Деятельность по внедрению Rust раскритиковал Тед Цо (Ted Ts'o), автор файловых систем ext2/ext3/ext4, который сравнил инициативу Rust-for-Linux c попыткой заставить всех принять религию Rust.

В ответ на намерение Алмейда создать обвязку над написанными на языке Си интерфейсами файловых систем для их использования в коде на языке Rust, Тед Цо указал на то, что подобная обвязка неминуемо приведёт к проблемам, так как любое изменение Си-интерфейсов и проведение рефакторинга потребует изменения обвязки для Rust и он не хочет брать на себя лишней ответственности за исправление возникающих проблем в коде на Rust и отслеживании состояния Rust-обвязки. Код на Си постоянно развивается и если его изменение нарушит работу обвязки для Rust, это приведёт к нарушению работы и всех завязанных на эту обвязку файловых систем.

Тед также считает, что в обозримом будущем обвязка для Rust останется второстепенной и возникновение проблем в биндингах будет головной болью только для разработчиков Rust-for-Linux, а не для сообщества разработчиков файловых систем в ядре. Указано, что не все разработчики собираются изучать Rust и поэтому после внесения влияющих на другой код изменений, они смогут обновить только зависящий код на Си, но не смогут исправить Rust-обвязки, так как не знают Rust. К дискуссии также присоединился Джеймс Боттомли (James Bottomley), сопровождающий подсистему SCSI, который сказал, что чем больше семантики кодируется в обвязках, тем они становятся более ломкими с точки зрения обеспечения синхронизации.

 No.986

>>690
Ты бы хоть литературу соответствующую скинул.

 No.1081

Когда я пишу на Си, Господь как бы приподнимает меня над землёй. Не так близко, чтобы поздороваться, но достаточно высоко, чтобы узнать вам, плюсовикам, цену. Вы, посмешища, выкидывающие по 10 исключений на каждой строке, ваши проекты сливаются в огромную ООП кашу, с тысячами абстракций, наследований и инкапсуляций. Человек без дисциплины кода есть низкая тварь, что даже утопая в реке, я не подам ему руку. Когда я пишу на Си, я слышу от Господа музыку жизни, а не
std::_Rb_tree_node<std::pair<const int, double> >*'
rtmap.cpp:20: initializing argument 1 of `std::_Rb_tree_iterator<_Val,_Ref,_Ptr>::_Rb_tree_iterator(std::_Rb_tree_node<_Val>*) [with _Val = std::pair<const int, double>, _Ref = std::pair<const int, double>&, _Ptr =
std::pair<const int, double>*]'
In member function `void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::insert_unique(_II,_II) [with _InputIterator = int, _Key = int, _Val = std::pair<const int, double>, _KeyOfValue = std::_Select1st<std::pair<const int, double> >, _Compare = std::less<int>, _Alloc = std::allocator<std::pair<const int, double> >]'

 No.1083

>>1081
Хаскель это, безусловно, высокий уровень абстракций. Но вот на нём как раз что-то похоже испытывал когда писал. Что-то на вроде того, словно не сам код пишешь, а он изливается каким-то потоком, проходящим через тело.

 No.1087

File: 1730547716542.jpg (287.97 KB, 1280x1280, photo_2024-10-30_04-42-56.jpg)

> Feds: Critical Software Must Drop C/C++ by 2026 or Face Risk[1]

Такие заявления на самом деле очень сильно влияют. После того, как NSA[2] парочку лет назад заявили, что необходимо использовать Rust в safety critical системах, много автомобильных компаний начали с плюсов и сишки на него переходить (и это не догадки, а буквально их прямые слова).


[1]: https://thenewstack.io/feds-critical-software-must-drop-c-c-by-2026-or-face-risk/
[2]: https://www.nsa.gov/Press-Room/Press-Releases-Statements/Press-Release-View/Article/3608324/us-and-international-partners-issue-recommendations-to-secure-software-products/

 No.1088

>>1087
Rust не пробовал. В принципе против него ничего не имею, пока им не пытаются заменить именно сишку, плюсом отталкивает религиозное сообщество, любящее не писать новый софт, а переписывать старый. Плюсы, наверное, этим можно заменить.
Ещё что мне кажется минусом это время компиляции и cargo. Раздуто, раздуто, раздуто…

 No.1089

File: 1730558756752.jpg (19.7 KB, 277x256, photo_2024-10-29_14-03-30.jpg)

>>1088
Не пытаются, а заменяют[1][2]. А вообще во всех safety critical системах, написанных на Си, используют формально-верифицированные компиляторы 90-ых годов с ограниченным функционалом и cвоими кастомными валгриндами. Оно все на столько от стандартной сишки отличается, что и одним языком это считать нельзя.

> религиозное сообщество, любящее не писать новый софт, а переписывать старый

Ложь и провокации. Полно и нового софта, полно и модернизированного (не просто переписанного!) старого. rg vs. grep

> время компиляции и cargo

Я на очень больших проектах не работал, и для меня это вообще проблемой не было.

А так в целом конечно есть в языке большие минусы, но обычно именно их никто нигде не обсуждает (кроме форумов самого языка), и вместо этого – обычная тягомотина с парочкой заученных всеми аргументов (включая скорость компиляции, религиозное коммьюнити и всякое другое).


[1]: https://community.osr.com/t/microsoft-discloses-rust-framework-for-windows-drivers/58335
[2]: https://lwn.net/Articles/991062/

 No.1090

>>1087
Ну я так и предполагал, по наличию настолько раздутой рекламной компании трансвеститного раста, что NSA жиды его будут силком проталкивать через законы чтобы в каждой твоей софтине был бекдор на уровне компилятора. Когда обнаружится спустя года скажут ОЙ-ВЕЙ, произошла чудовищная ошибка, и заменят его на другой. Как с Pegasus было, после изобретения детекта Касперским которого, их попросили найух с штатов в ускоренном порядке. Это объясняет добавление раста в ядро. Поступила команда от жидов Торвальдсу добавить сРаст? Будет сделано! Куда же делся языковой, концептуальный и разработческий шовинизм, мистер Торвальдс? Приказа не поступало?
>>1089
> Ложь и провокации. Полно и нового софта, полно и модернизированного (не просто переписанного!) старого.
Ни одним софтом на чистом срасте написанном не пользуюсь и даже не слышал о таких, которые бы пригодились погроммисту или обычному петровичу.

В целом, я рад что в сообществе меентейнеров линукса, над растовичками посмеиваются за их "инновационные идеи", о которых деды лет 20 назад ещё рассуждали. Ну и попуски от Торвальдса за панику в аллокаторе при невозможности выделить память, попуски за интерфейсы, попуски за религиозную дрочню на memory-safety, при полном непонимании прикладной области их софта со стороны дедов. Вот как пример https://youtu.be/WiPp9YEBV0Q?t=1529 .
Растовичок - инвазивный вид, который только и ждёт того, чтобы паразитировать на чужом успехе. Мемы про то, что разработчики на расте - трансвеститы, не просто стереотипы. Никаких претензий к ним бы не было, если бы они не лезли в чужие монастыри со своим уставом (прямо как трансы лезут в женские уборные). Причина распространения языка кроется не в его охуенности, а в лоббировании заинтересованными лицами, о чем в новостях пару постов назад сказано было. Видимо "убийцы Си" могут выживать только если обязать законадательно их использование, а не по причинам своей охуенности.

 No.1091

File: 1730683763587.jpg (27.85 KB, 600x600, 44.jpg)

>>1090
Как дурочка-то прорвало.

 No.1092

>>1090
Этот анон прав насчет NSA.
Даже сам C заложили в основы IT специально ради того, чтобы весь софт был дырявым. Заложили удачно, на заре массового распространения айтишки, и теперь все являются заложниками этой ситуации, а в выйгрыше те, кто способны собирать команды хацкеров и ломать инфраструктору конкурентов.

 No.1095

Подскажите гайды по оформлению резюме. Больше года уже не работаю, никуда не берут из-за СБ. Хочу переписать резюме, чтобы HR снова стали написывать и на отклики на HH реагировать. Хоть куда-нибудь бы взяли, да без тестового задания желательно.

 No.1097

File: 1731264889161.jpg (236.42 KB, 600x813, 1680700425446.jpg)

>>1095
А в чем проблема тестовое задание сделать?
Сделай свой собственный открытый проект и добавь его в свое резюме.

 No.1098

>>1097
Почему-то после тестового меня обычно отшивают, только время трачу и порчу себе настроение. Открытых проектов хватает на гитхабе, но это никому не интересно. Добавлять пет-проекты в список рабочих мест - оооочень странное решение.

 No.1099

File: 1731426221924.jpg (67.74 KB, 736x885, 1694163668990-2.jpg)

>>1098
Покажи тестовые задачи и их решения. Раз обычно происходит, то значит их хотя бы несколько у тебя быть должно.

 No.1132

File: 1733682373706.jpg (78.67 KB, 588x766, 15766038606290.jpg)

А делать сайтеки это программная инженерия?
Если да, то я с вами.

 No.1135

>>1098
Тестовые задания это практически всегда наживка на лоха. А если оно ещё и неоплачиваемое, то на все 100%. Из тысячи кандидатов всегда найдётся терпила, который на "двухчасовое" задание а по факту на пару дней за свой счёт угрохает неделю. Раз вместо резюме у тебя не пустой лист, то просто говори, что не будешь делать тестовое. Если откровенно на хуй при этом не слать, то кто-то нет-нет да и скажет "ок, приходи на собес".

 No.1137

File: 1733771549420.jpg (107.33 KB, 736x736, photo_2024-11-15_12-05-05.jpg)

>>1135
Давал людям тестовые задания. Очень хорошо помогают отбрасывать дураков без опыта (зато с какими CV!). И поэтому не согласен.

>>1132
Присоединяйся!

 No.1138

File: 1733773782842.jpg (66.54 KB, 400x433, 17217469128740.jpg)

>>1137
>Присоединяйся!
Оки.

Пишу сейчас что-то типа онлайн-радио. Есть 2.5 варианта реализации в голове как отдать музыку на страницу.
1.1 - Выгрузить все в публичную папку, где хранятся иконки и прочее и туда js бы обращался, подставляя в тег аудио нужные аттрибуты с адресом к файлу и типом майм.
1.2 - То же самое, но файлы будут не в папке, а на CDN (не знаю только не прилетит ли страйк за пиратские файлы. Самый нежелательный вариант).
2 - Организовать потоковую передачу файла. Самое сложное и непонятное.
Единственное что известно, так это что нужно будет заморочиться с многопоточностью, а то на одном потоке все зависнет.

Кто как видит реализацию?

На сервере будут крутиться Rails 8. В 7й версии, как слышал, завезли передачу по веб-сокетам. Это можно как-то использовать?

 No.1139

File: 1733775828297.jpg (385.97 KB, 1000x852, 1713809169409-0.jpg)

>>1138
Использовать уже существующие решения а-ля SHOUTcast?

Я сам таким никогда не занимался, но смотрел бы в эту сторону.

https://www.azuracast.com/docs/
https://www.tecmint.com/install-shoutcast-in-linux/

Чтобы в итоге получить что-то подобное на это радио.
https://lainchan.org/radio.html

При чем тут многопоточность не очень понимаю.

 No.1140

File: 1733776331573.gif (1.63 MB, 416x414, tumblr_nx9ct24rAL1t3uwllo1….gif)

>>1139
>Использовать уже существующие решения
Так это скучно. Хочется изобрести велосипед, используя максимум библиотеки или возможности фреймворка.
>При чем тут многопоточность не очень понимаю.
В другом тредике, правда, обсуждающего php, мне сказали, что много обращений решение с потоком не вывезет.

 No.1141

File: 1733776439838.png (47.77 KB, 684x554, ClipboardImage.png)

Нашел еще пример кода с потоковой загрузкой. Там все же используют потоки.

 No.1142

File: 1733777331592.jpg (74.24 KB, 564x414, 1725991938180-2.jpg)

>>1140
Даже если хочется самому что-то сделать, все равно попробуй начать с уже существующих решений. И уже понимая используемую архитектуру начинай велосипедить. При этом все правильно настроить может оказаться не так и просто и совсем не скучно.

 No.1143

File: 1733778219792.gif (398.68 KB, 500x281, 71608.gif)

>>1142
Логично, но цель не столько поднять радио, сколько разобраться со всем стеком. Радио - просто выдуманная задача из головы, чтобы поковырять все инструменты.
Это будет мое первое творение, по большому счету.

 No.1144

File: 1733778338985.jpg (9.12 KB, 427x118, images.jpg)

>>1143
Тем паче. Чтобы разобраться во всем, лучше с готовых решений и начинать.

 No.1169

>>1144
>>1143
Я сам, можно сказать, без опыта. Но на мой взгляд лучше обычно просто поглядеть как реализовано в открытых проекатах подобных, потом посмотреть как хочешь сделать.
Как сделаешь, то уже можно глянуть с готовыми вариантами что сравнить что сам накалякал и что люди пользуют. Апосля уже создавать новую финальную версию своими ручками.

Но это так. Рассуждения.

 No.1177

File: 1734963940833.jpg (60.64 KB, 484x738, 1725983058709-3.jpg)

>>1169
Это как говорить людям посмотреть на реализацию движка дума. И с этого начать делать что-то свое.

Так это не работает!

Надо как иметь опыт в изучаемой сфере, так и иметь опыт с программированием в целом.

Но в целом конечно ты прав, что смотреть на такие вещи императивно. Просто делать это надо подготовленным.

 No.1178

>>1177
>Надо как иметь опыт в изучаемой сфере, так и иметь опыт с программированием в целом.
Ну-с, я это подразумевал как само-собой разумеющееся.

 No.1211

Мне сегодня друг сказал, что все работы на Джаве и ДжСкрипте только, это правда? Я со срынком не знаком совсем. Не хочу так жить.

 No.1218

>>1211
Тебе наврунькали. Твой друг скорее всего веб-макака, изолированный в своём информационном вакууме

 No.1254

Есть знатоки?
Я вот тут подумал, обычно чтобы ускорить загрузку картинок в браузере хоть в текущие дни этот вопрос не особо релевантен обычно используют отображение миниатюр с последующем открытием полной картинки. Также использую разнообразные форматы изображений, которые уменьшают объём за счёт некоторого снижения качества.
А я тут подумал, сейчас же почти все сайты используют жабкаскрипт? Так почему бы просто не запилить такую библиотеку, которая будет хранить картинки на сервере в супер-архивированном пережатом формате, а уже в браузере на клиенте будет происходить силами его машины и браузера распаковка?
Или же всё же такое существует уже?

 No.1255

>>1254
По-моему, ты изобретаешь велосипед. Суть в том, что эти самые форматы изображений и есть супер-архивированные картинки, которые распаковываются браузером. Более того, эти форматы делаются с оптимизацией под картинки и результаты для изображений показывают обычно не хуже, чем архиваторы общего направления.

 No.1256

>>1255
Велосипед да, но не совсем.
Текущее представление картинки передаётся целостно и сразу же отображается пользователю, также как это бы хранилось на ПК и открывалось бы через любую смотрелку.
До того же что я предлагаю, работа будет иным образом. Представим утрировано и упрощённо. Например как сейчас картинка.jpg на сервере -> передача -> картинка.jpg у клиента в браузере. Моё же представление следующее картинка.zip на сервере -> передача -> картинка.zip принмается браузером клиента -> код выпоняет разархивацию на машине клинте -> картинка.png отображается у клиента в браузере. Имеется в вииду конечно же не zip буквально, но это для отображения смысла хранения сжатого файла на сервере.

 No.1257

>>1256
Ты не сожмешь картинки больше, чем они есть сжаты уже стандартными форматами.
Да и кеширование решает большинство проблем со скоростью (так еще в QUIC + HTTP/3 есть возможность предзагрузки изображений и контента в целом).

 No.1258

>>1257
Признаю, был глуп. Я не знал, что картинки архиватороами не пережимаются ещё более.

 No.1261

File: 1737297019376-0.png (1.5 KB, 400x400, 1.png)

File: 1737297019376-1.jpg (6.39 KB, 400x400, 1.jpg)

File: 1737297019376-2.webp (4.47 KB, 400x400, 1.webp)

File: 1737297019376-3.gif (651 B, 400x400, 1.gif)

>>1256
>>1258
Да, не пережимаются ещё больше. Ничего страшного, зато ты узнал что-то новое. Вот ещё на подумать. Сжатые картинки могут весить больше несжатых png, и даже иногда монохромное изображение будет больше оригинального. Вот посмотри на примере простой картинки серого цвета, размером 400 на 400. Оригинальный png, прикреплённый к посту весит 1,5 кб, jpg - 6,39 кб, что больше. Причина - слишком маленький размер картинки. Для больших пикч размер существенно снижается при использовании jpg или webp. В данном случае webp весит 4,47 Кб. Ну и монохромный bmp весит 20,3 кб. Наверное самым подходящим форматом для маленьких картинок можно считать не png, хотя и он хорошо справляется, а gif - 651 байт в данном случае. Почему gif по итогу весит меньше всех, предлагаю подумать самому.

 No.1262

>>1261
>Почему gif по итогу весит меньше всех, предлагаю подумать самому.
Глянул описания на вики, но пока не вдавался. Секрет в том что gif использует малую палитру цветов и не модифицирует градиентно пиксели цветов пытаясь сжать таким образом изображения?
Не знал, кстати, что jpeg такой изврат с цветопередачей делает. Надо будет ещё с jpeg-xl сравнить.

 No.1263

>>1262
У gif самый простой алгоритм сжатия - заливка цветом. А так как на фото только один цвет, то он просто все строки дублируется.

 No.1269

Сап /u/. Можешь посоветовать какой-нибудь супералгоритм позволяющий отличить последовательность истинно случайных чисел от псевдослучайной?Я просто решил запилить свою криптовалюту которая будет отличаться от других тем что ее можно будет майнить только на аппаратных ГСЧ.

 No.1276

>>1269
Нет никакого супералгоритма, есть много всяких наборов тестов. Например, тесты diehard, TestU01, SP800-22

 No.1277

>>1269
Все ГПСЧ имеют некий период, после которых они повторяются. Так что можно использовать https://ru.wikipedia.org/wiki/Нахождение_цикла

 No.1294

Вопрос по Microsoft Excel:
Есть таблица с колонкой значений в столбце «A».
Напротив них, в столбце «B», ряд ячеек содержит значения, а ряд — нет.
Нужно построить ещё одну колонку из значений из столбца «A», но только тех, ячейки в столбце «B» напротив которых не являются пустыми.
Можно ли это сделать через функции в ячейках, или нужно писать скрипт?

 No.1295

>>1294
Правильный вопрос это половина ответа или как-то так. Вроде всё как ты насал так и делать надо (под рукой только не локализованный офис, но думаю суть ясна)
IF(ISBLANK(B1);;A1)&"" если надо чтобы прям пустые ячейки были.%%

 No.1297

Сап, друзья. Хочу изучить сферу ИИ, но не знаю с чего начать. Может кто порекомендовать какой-нибудь материал к прочтению, просмотру? В математике шарю и опыт в программировании тоже имеется.

 No.1299

>>1295
Вопрос был в том, можно ли здесь обойтись без скрипта/макроса.
Я просто этим Экселем второй или третий раз в жизни пользуюсь.

 No.1300

>>1299
>Вопрос был в том, можно ли здесь обойтись без скрипта/макроса.
Можно, это стандартный функционал формул. Собственно, пишешь в ячейку C1
=IF(ISBLANK(B1);;A1)&""
или если русскоязычный
=ЕСЛИ(ЕПУСТО(B1);;A1)&""
и растягиваешь её вниз.
>Я просто этим Экселем второй или третий раз в жизни пользуюсь.
Я последний раз на школьной олимпиаде по информатике пользовался.

 No.1301

>>1300
Спасибо, завтра на работе попробую.
Для уточнения: список в столбце «C» должен быть без пропусков, то есть, короче исходного столбца «A».

 No.1303

File: 1739443158323.png (1.27 KB, 219x103, Excel.png)

То есть, по сути, мне нужно сделать такую вот вещь, как на картинке.
Сейчас ищу функцию, которая могла бы возвращать индекс строки, содержащей N-ное заданное/непустое значение из столбца 2.

 No.1304

>>1303
Сделай фильтр, там можно скрывать все строки с заданным значением, в том числе и пустым.

 No.1305

>>1304
Что такое в данном случае «фильтр»?
Для справки, я работаю с Excel 2003.

 No.1319

>>1305
P.S. В любом случае, я уже нашёл более простое решение. Спасибо за ответы.

 No.1350

>>1319
Так решение хоть какое напиши!

 No.1351

>>1350
Просто забить. Этот вопрос не стоит уже потраченного на него времени.

 No.1359

>>1351
Вот видишь, теперь следующий человвек, который будет искать решение потратит столько же времени в пустоту, а мог ему помочь!

 No.1361

>>1359
Этот пассаж, боюсь, просто не понял.

 No.1378

Раст - кусок говна немытого

 No.1388

File: 1741549348544.jpg (67.8 KB, 640x640, photo_2023-08-12_11-38-14.jpg)

Реверсинженирю один крупный проект.
Задачей поставил написать сервер одной очень старой мультиплеерной игры по коду клиента.
Разобраться с протоколом лобби сервера было не очень сложно, потому что он небольшой и простой. С логикой же самой игры начались проблемы. Ее много, она вездесуща, в голове сложно держать колстак и асинхронные колбеки буста, а если я отвлекусь на пару дней от проекта, то приходится вспоминать все практически с нуля. Подскажите, как этим умеющие люди занимаются?

Хочется куда-то скинуть все декомпилированные функции и классы, построить из них навигируемую (и возможно даже компилируемую!) структуру, да и при этом держать ее синхронизированной с IDA.

Тут еще ко мне другие люди присоединились работать, и как-то надо вместе это все правильно коллаборировать.

За любые советы буду благодарен.

 No.1405

>>1087
Как же хорошо, что самый перспективный язык XXI века пушит АНБ. Ну, то самое, которое все любят и уважают.

Вообще, интересно, как язык продвигается в первую очередь не за технические доводы (которые есть, но не те, которые транслируют из каждого утюга), не за ещё что-то типа лёгкой параллелизации и ленивых алгоритмов с автообработкой ошибок (в противном случае, мы бы уже давно писали на хаскеле с окамлом), а за то, что кто-то из растокоманды вступил с кем-то в политическую или сексуальную связь, грамотно где-то пропиарил по майклодексоновски, забашлял одному виндотроллю, чтобы с утра до ночи постил раст на опеннете, переписал легаси с другого языка, вклинился кулуарно-нечестными методами в чужую кодовую базу и так далее. И ведь он продвинется чисто благодаря этому.

И вот это всё очень хорошо характеризует всю индустрию программной инженерии.

 No.1406

>>1388
Удваиваю вопрос. Лично я не могу прочитать, правда, даже одну функцию на асме, да и сигнатуры не умею.

Как мне кажется, что-то такое, на правах брейншторма, можно решить следующим образом:
- к сигнатурам (или что там в иде есть) приделать какие-нибудь широкие аннотации кода. Т.е. пишешь длинные комментарии на каждую инструкцию, функцию и так далее. Заставить подгружать. Возможно, ида это умеет.
- поиграть в ГРАМОТНОЕ ПРОГРАММИРОВАНИЕ дедушки Вирта и начать писать спеку-книгу (емнип, в относительно легальном линуксреверсе так и делают, одна команда анонимных трусов пишет спеку, а вторая пишет код по спеке), по функции описывая код и оставляя в книжке гиперссылки, которые будут управлять тулкитом для реверсинга. Бонус такого подхода будет в разбиении на файлы и относительно лёгком превращении книги в целевой проект и оно, если поделить на файлы, будет работать с VCS.



[Назад][Наверх] Catalog [Post a Reply]
удалить пост [ ]