Блог*
#prog #csharp #suckassstory C# — пример того, как не надо делать язык программирования. C# очень странно относится к затенению переменных. Обычно он это запрещает. Вот такой код, например, не компилируется: string x = "Hi"; if (true) { string x = "Bye";…
#prog #csharp #suckassstory
Блин, спасибо, очень полезно.
Для сравнения, #java:
using System;
using System.Collections.Generic;
var arr = new int[] {1, 2, 3};
Console.WriteLine(arr); // System.Int32[]
var list = new List<int>{1, 2, 3};
Console.WriteLine(list); // System.Collections.Generic.List`1[System.Int32]
Блин, спасибо, очень полезно.
Для сравнения, #java:
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
class Main {
public static void main() {
var arr = new int[] {1, 2, 3};
System.out.println(arr); // [I@251a69d7
System.out.println(Arrays.toString(arr)); // [1, 2, 3]
var list = new ArrayList<>(List.of(1, 2, 3));
System.out.println(list); // [1, 2, 3]
}
}
😁5🍌5
Блог*
#prog #csharp #suckassstory using System; using System.Collections.Generic; var arr = new int[] {1, 2, 3}; Console.WriteLine(arr); // System.Int32[] var list = new List<int>{1, 2, 3}; Console.WriteLine(list); // System.Collections.Generic.List`1[System.Int32]…
Справедливости ради, в C# всё же можно добиться желаемого через
Но выглядит как-то слишком многословно для такой базовой операции. Даже в Java для этого сделали отдельный метод, пусть и на util-классе
Console.WriteLine($"[{string.Join(", ", arr)}]"); // [1, 2, 3]Но выглядит как-то слишком многословно для такой базовой операции. Даже в Java для этого сделали отдельный метод, пусть и на util-классе
👍3
Forwarded from AlexTCH
You can now connect your JetBrains IDE to LinkedIn and showcase your real tool usage rather than relying solely on self-reported skills.
This is so disgusting...
1. Like, being proficient in IDE usage is the most important skill for a developer now? What, the code is now being written by an LLM "agent", and the "programmer" needs only to know what buttons to click in an IDE to close a ticket in Jira?
2. If I say I know my way around an IDE, I cannot be trusted? I need to prove it now?
3. Surveillance and automatic time tracking. "I'm loving it!"
Great job, folks. Thank you so much.
❤11🌚6🤯3😢2
#prog #rust #rustreleasenotes
(в силу непонятных причин я почему-то полностью пропустил этот релиз, который был аж 28 мая)
Вышла версия Rust 1.96.0! Как всегда, тут только избранные части, а всё целиком в детальных заметках о релизе.
▪️До стабильной версии дошли
▪️Стабилизировали макросы
Пример сообщения об ошибке:
⬇️
Как и другие
Как вы могли заметить, в коде есть явные импорты этого макроса. К сожалению, в прелюдию их не добавили, поскольку уже есть широко используемый сторонний крейт с этими макросами, и такое добавление создало бы конфликты имён в большом количестве кода.
▪️Теперь можно итерироваться по диапазонам из беззнаковых `NonZero` чисел.
▪️Определение "valid to read/write" для сырых указателей теперь явно исключает null. Некоторые функции, тем не менее, всё ещё позволяют пользоваться null-указателями для доступов нулевого размера, но теперь это исключения из общего правила.
(согласно CAD97 — члену команды операционной семантики — такое поведение было и раньше, просто теперь оно задокументировано)
▪️Манифесты для cargo теперь поддерживают назначение флагов для rustdoc в зависимости от cfg-предикатов.
▪️rustdoc теперь не вырезает <p>-теги из сообщений о устаревании (deprecation).
▪️rustdoc теперь разделяет функции на типе в боковой панели на ассоциированные функции (которые нельзя вызвать через точку) и методы. Полезно, но терминология, на мой взгляд, неудачная: методы тоже являются ассоциированными функциями.
▪️
▪️Приватные типы в RPITIT ("return position impl trait impl trait") теперь являются ошибкой компиляции.
(в силу непонятных причин я почему-то полностью пропустил этот релиз, который был аж 28 мая)
Вышла версия Rust 1.96.0! Как всегда, тут только избранные части, а всё целиком в детальных заметках о релизе.
▪️До стабильной версии дошли
Range, RangeFrom и RangeInclusive из core::range. В отличие от существующих типов диапазонов, эти типы реализуют IntoIterator, но не Iterator. Это позволяет им быть Copy и иметь публичные поля без подводных камней, присущих неявно копируемым итераторам. Как вы могли заметить, в этот список не входят RangeTo и RangeFull, но они и так не могли быть итераторами и потому реализовывали Copy. В следующей edition планируют переключить синтаксис диапазонов на создание этих новых типов. До этого переключение между типами облегчено за счёт реализаций From между новыми и старыми типами.▪️Стабилизировали макросы
assert_matches! и debug_assert_matches!, которые проверяют не на равенство, а на соответствие паттерну (и потому могут дать более внятное сообщение об ошибке, чем assert_eq!. Пример из блога:use core::assert_matches;
/// [Random Number](https://xkcd.com/221/)
fn get_random_number() -> u32 {
// chosen by a fair dice roll.
// guaranteed to be random.
4
}
fn main() {
assert_matches!(get_random_number(), 1..=6);
}
Пример сообщения об ошибке:
use core::assert_matches;
fn main() {
let x = ('a', None::<i32>);
assert_matches!(x, ('a' | 'b' | 'c', Some(42)));
}
⬇️
thread 'main' (31) panicked at src/main.rs:5:5:
assertion `left matches right` failed
left: ('a', None)
right: ('a' | 'b' | 'c', Some(42))
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Как и другие
assert*-макросы, туда можно добавить аргументы для дополнительного форматирования при панике.Как вы могли заметить, в коде есть явные импорты этого макроса. К сожалению, в прелюдию их не добавили, поскольку уже есть широко используемый сторонний крейт с этими макросами, и такое добавление создало бы конфликты имён в большом количестве кода.
▪️Теперь можно итерироваться по диапазонам из беззнаковых `NonZero` чисел.
▪️Определение "valid to read/write" для сырых указателей теперь явно исключает null. Некоторые функции, тем не менее, всё ещё позволяют пользоваться null-указателями для доступов нулевого размера, но теперь это исключения из общего правила.
(согласно CAD97 — члену команды операционной семантики — такое поведение было и раньше, просто теперь оно задокументировано)
▪️Манифесты для cargo теперь поддерживают назначение флагов для rustdoc в зависимости от cfg-предикатов.
▪️rustdoc теперь не вырезает <p>-теги из сообщений о устаревании (deprecation).
▪️rustdoc теперь разделяет функции на типе в боковой панели на ассоциированные функции (которые нельзя вызвать через точку) и методы. Полезно, но терминология, на мой взгляд, неудачная: методы тоже являются ассоциированными функциями.
▪️
repr(Int) меняет представление enum-ов, делая явный дискриминант всегда существующим... По крайне мере, в теории. Оказалось, что ранее для ненаселённого типа включались оптимизации раскладки, которые меняли размер таких типов в ноль, вопреки тому, что обещала документация. Теперь это пофиксили.▪️Приватные типы в RPITIT ("return position impl trait impl trait") теперь являются ошибкой компиляции.
blog.rust-lang.org
Announcing Rust 1.96.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
❤5👍2
Forwarded from Технологический Болт Генона
Очень иронично получилось
4:19
Российские зеркала пакетов и DevOps-платформы: что уже работает и как это использовать в условиях блокировок
https://habr.com/ru/articles/1052330/
4:20
4:19
Российские зеркала пакетов и DevOps-платформы: что уже работает и как это использовать в условиях блокировок
https://habr.com/ru/articles/1052330/
4:20
🤣12😁4😭2
Forwarded from ReadMe.txt (Ilya Klishin)
Лев Толстой: рисовать голых девок и жарить котлеты — тоже искусство
В 1882 году Толстой пишет письмо Николаю Александровичу Александрову, издателю и редактору «Художественного журнала». Александров попросил его изложить взгляды на искусство для журнала, а в ответ Толстой развернул целый пламенный манифест:
[1] «Нана» — только что вышедший тогда (1880) скандальный роман Золя о парижской куртизанке, который бесил Толстого как пример коммерческой поделки в угоду, дескать, похоти буржуазии
[2] Трепак — быстрый русский народный танец, который часто танцевали пьяный мужики у кабаков (фан фэкт — музыка, под которую все бегают в начале фильма «Один дома» это чуть искаженный трепак Чайковского)
[3] Клауны (авторское написание) — намеренная фонетическая калька (с английского), сохраненная в ПСС Толстого. Несмотря на то, что форма «клоун» была нормативной в русском языке уже с 1850-х годов, Толстой пишет так.
[4] Тициановская голая женщина — обобщенная отсылка к картинам Тициана, прежде всего, к «Венере Урбинской» (1538).
[5] Похабный стереоскоп — популярный в XIX веке оптический прибор для 3D-эффекта при просмотре двух совмещенных фотокарточек. Эротическая стереофотография была массовым жанром. Для Толстого это технологический предел деградации визуальной культуры.
Подписывайтесь на Бусти и Патреон, если хотите поддержать канал. Для патронов есть закрый чат со мной
В 1882 году Толстой пишет письмо Николаю Александровичу Александрову, издателю и редактору «Художественного журнала». Александров попросил его изложить взгляды на искусство для журнала, а в ответ Толстой развернул целый пламенный манифест:
— Все, что ни делают праздные люди для удовлетворения праздной похоти людей, всё это безразлично называется искусством. Написать «Явление Христа народу» — искусство, и написать голых девок — тоже искусство. Написать «Илиаду» и «Нана» [1] — тоже искусство. Написать образ — искусство, и играть трепака [2] — искусство, и клауны [3] — искусство, и верхом ездить — искусство, и котлеты сделать, и волосы завивать, и платья шить — всё искусство. И совершенно прав цирюльник, называя себя художником. И ни один мудрец немец эстетик не покажет мне черту разделения между Рафаэлем и Тициановской голой женщиной [4], и между Тициановской голой женщиной и похабным стереоскопом [5]. В теории что-то очень возвышенное, но туманное называется искусством, но определения нет.
[1] «Нана» — только что вышедший тогда (1880) скандальный роман Золя о парижской куртизанке, который бесил Толстого как пример коммерческой поделки в угоду, дескать, похоти буржуазии
[2] Трепак — быстрый русский народный танец, который часто танцевали пьяный мужики у кабаков (фан фэкт — музыка, под которую все бегают в начале фильма «Один дома» это чуть искаженный трепак Чайковского)
[3] Клауны (авторское написание) — намеренная фонетическая калька (с английского), сохраненная в ПСС Толстого. Несмотря на то, что форма «клоун» была нормативной в русском языке уже с 1850-х годов, Толстой пишет так.
[4] Тициановская голая женщина — обобщенная отсылка к картинам Тициана, прежде всего, к «Венере Урбинской» (1538).
[5] Похабный стереоскоп — популярный в XIX веке оптический прибор для 3D-эффекта при просмотре двух совмещенных фотокарточек. Эротическая стереофотография была массовым жанром. Для Толстого это технологический предел деградации визуальной культуры.
Подписывайтесь на Бусти и Патреон, если хотите поддержать канал. Для патронов есть закрый чат со мной
❤4
Forwarded from ReadMe.txt (Ilya Klishin)
— Аристотель, «Политика», книга V, 1313b–1314a:
«Обычное для тирана дело — устранять людей, чем-либо выдающихся, и убирать с дороги людей свободомыслящих. <...> Тиран стремится к тому, чтобы ничего из того, о чем подданные говорят или что делают, не оставалось скрытым от него; чтобы повсюду были соглядатаи. <...> Тиран склонен также вести войны, чтобы подданные не имели свободного времени и постоянно нуждались в предводителе. <...> Все это можно свести к трем целям: вселить малодушие, поселить взаимное недоверие и лишить людей способности к политическому действию».
Telegram
Медиазона
У сотрудников Института философии РАН прошли обыски по делу о переводах Аристотеля, одна из сотрудниц находится под домашним арестом
Об этом сообщили несколько провластных телеграм-каналов. Одним из первых об обысках писал канал Александра Дугина AGDChan…
Об этом сообщили несколько провластных телеграм-каналов. Одним из первых об обысках писал канал Александра Дугина AGDChan…
🌚5👍4
Блог*
#prog #article Building the Rust compiler with GCC О том, как (частично) забустрапить rustc через rustc_codegen_gcc и почему это далеко не простая задача. (от того же человека, который пилит кодген rustc под .NET)
#prog #rust... #c? #amazingopensource точно
FractalFir — который пилит кодген Rust под .NET — выложил crustc: компилятор Rust, транспилированный в 46 миллионов строк кода на C.
Обсуждение на r/rust
Обсуждение на hacker news
FractalFir — который пилит кодген Rust под .NET — выложил crustc: компилятор Rust, транспилированный в 46 миллионов строк кода на C.
Обсуждение на r/rust
Обсуждение на hacker news
❤7
#prog #python #suckassstory
(thanks @bapho_bush)
Правда, почему фикс только для операции сравнения, а не также и
(thanks @bapho_bush)
Правда, почему фикс только для операции сравнения, а не также и
| — непонятно🤯3