1.83K subscribers
3.29K photos
130 videos
15 files
3.57K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#prog #python #c #abnormalprogramming #article

Writing a C compiler in 500 lines of Python

С небольшим нюансом: компиляция в WASM и, понятное дело, только весьма небольшого подмножества C. Ну и для достижения ограничения на количество строк компилятор однопроходной.
👍3💩1
Я, как типичный Овен, не верю в гороскопы
🥰6👍3🤮3🤡3😁1
Forwarded from Ты в тренде или уходи
This media is not supported in your browser
VIEW IN TELEGRAM
Лол, в российских кинотеатрах блюрят сцену, где Райана Гослинга во время танца целуют в щёку два других актёра и называют это версией «без ЛГБТ».

¯\_(ツ)_/¯
😁22🤡5👍2
Блог*
send dunes
Send Nurgles
❤‍🔥5
Челлендж старых игр: попробуй не умереть.

Челлендж новых игр: попробуй не умереть со скуки.
😁17😐3👍1🫡1
Фальшивая нота протеста
🔥3😁1
Forwarded from shitposting 3.0 [+ dragons]
😁13👍5
Тяжело смотреть на губы, которые не можешь поцеловать, и на скидки на игры, которые всё равно не можешь купить
😢13
#prog #rust #article

Semver violations are common, better tooling is the answer

Самая мякотка:

Across more than 14000 releases of the top 1000 most downloaded crates, on average:

* Around 1 in 31 releases had at least one semver violation – we found one or more violations in 464 releases (3.22%).
* More than 1 in 6 crates violated semver at least once – 172 crates (17.2%) had at least one release with a semver violation!

И это даже при том, что весьма большое количество запланированных проверок в cargo-semver-checks ещё не реализованы. Вот вам и довод в пользу использования подобного инструмента.
👍6💩21😁1
#prog #rust #python #performancetrap #article

Rust-Python FFI

Или о некоторых возможных проблемах при интеропе Rust и Python, включая проблемы производительности и проблемы с эргономикой.
Зумеры переизобрели исполняемые файлы

Source
😁19
#prog #rust #article (надо ли хештег для постов на тему образования?)

Teaching Rust in 5 days

Опыт автора по преподаванию Rust в университете.

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

Автор честно признаётся, что писал курс не с нуля, а взял за основу Comprehensive Rust от команды разработчиков Android. Курс, тем не менее, подвергся сильным модификациям — главным образом, избавлению от Android-специфичных частей.

Каждый день состоял из двух половинок с перерывом между ними, в каждой половинке были теоретическая и практическая части. Для практической части автор использовал форк Rustlings, модифицированный под содержимое и порядок материала в плане курса. Одним из интересных нововведений автора была интеграция Rustlings с собственным сетевым приложением для отображения сводки индивидуальных прогрессов каждого из учеников. По словам автора:

> The mix of Rustlings and collective-score [вышеупомянутого приложения автора] was a gamification that was very positively received! It was also a good way to monitor student's progress without watching over their shoulders.

За 5 дней автору с учениками удалось покрыть множество тем. Ученики сами были удивлены тому, как много они успели изучить за столь короткое время:

> We were not able to finish all 90 exercises, but the majority of students finished about 2/3 of them.

Автор предлагает практические советы на тему того, на какие именно темы нужно упор для людей с опытом программирования в других языках, а также предлагает объяснять нужду в borrow checker путём демонстрации того, к чему может привести сосуществование мутабельной и иммутабельной ссылки на один и тот же объект. В статье автор иллюстрирует это примерами на Python с модификацией списка в процессе итерации по нему:

l = [1, 2, 3]

# бесконечный цикл
for item in l:
print(item)
l.append(item)

l = [1, 1, 2, 3]
for item in l:
if item == 1:
l.remove(item)

l == [1, 2, 3] # True

Также автор предлагает аналогию с ковриком для объяснения принципов, которые энфорсит borrow checker. Если коротко: на коврике могут стоять люди, переместить коврик, пока на нём стоит человек, нельзя, если человек всего один (мутабельная ссылка), то он может сойти с коврика, чтобы перенести его в другое место (и далее распространение на прочие концепции Rust). Автор указывает, что ученики нашли эту аналогию полезной. Он также признаёт, что у неё, как и у любой аналогии, есть ограничения, но она полезна для выработки интуиции в первом приближении.

В заключении автор заявляет, что трудности с изучением Rust связаны не только и не столько со сложностью языка как такового:

> I used to agree with the statement that Rust is complicated because some tend to say that.

But now, after giving the 5-day Rust course at my university, I believe that it is a problem of having more learning resources AND willing to go out of the comfort zone to learn completely new concepts like ownership and borrowing.

After the course, students are not Rust experts. But they will not panic on the first borrowing or lifetime compiler error they encounter.

<...>

Rust is neither easy nor complicated, it is a language that requires you to learn new concepts and read a book or take a course before being able to start hacking.

Rust already has excellent resources for learning on your own. We have the
official Rust book (available for free) and Rustlings as leading examples. But we need more resources and initiatives in organizations that teach programming (like universities).
👍9🔥1🍌1
Forwarded from Generative Anton
Лучшие практики open-source

`lodash` just declared issue bankruptcy and closed every issue and open PR.
😁16🤯5👍3🤡3🔥1💯1
Forwarded from shitposting 3.0 [+ dragons]
18🥰3