Всем привет!
После вчерашнего поста о замене штатного ls другими штатными (или не очень) утилитами, я просто не мог пройти мимо комментов, особенно учитывая то что пост взлетел на вершины хит-парадов и за сутки его прочитало 18k, с хвостиком человек. Хабровчане подарили миру много новых способов избавиться от ls. Я их все (но это не точно) проверил, некоторые «причесал», что бы они соответствовали условиям задачи, и хочу поделиться с вами. Наслаждайтесь!Читать полностью »
Рубрика «ненормальное программирование» - 26
Нетипичный «ls» — Habr Edition
2019-09-12 в 7:55, admin, рубрики: awk, bash, grep, ls, sed, zsh, ненормальное программирование, ОболочкиНетипичный «ls» или как развлекаются линуксоиды
2019-09-11 в 4:34, admin, рубрики: bash, coreutils, findutils, perl, python, ненормальное программирование, ОболочкиОднажды в телеграм чат питерского сообщества линуксоидов SPbLUG я кинул забавную задачку:
Выведите список файлов в домашней директории максимально возможным количеством способов, без использования ls или его алиасов(1 способ — 1 балл)
Такое-же задание, чуть позже, прилетело в ещё один чат и вот что из этого получилось:Читать полностью »
История и альтернативы платформы .NET
2019-09-09 в 19:26, admin, рубрики: .net, C#, history, Блог компании Семинары Станислава Сидристого, ненормальное программирование, ПрограммированиеНедавно мне повезло пообщаться с Крисом Бэйконом, который написал DotNetAnywhere (альтернативный вариант .NET Runtime), и я остроумно заметил:
… ты, наверное, один из тех немногих, кто создал собственную среду выполнения .NET, и это круто!
если исключить тех, кто на зарплате, т.е. инженеров Microsoft/Mono/Xamarin, их очень немного.
Это — перевод статьи Matt Warren (A History of .NET Runtimes). Дабы не делать повторную публикацию, оставлю as is
Запускаем “десктопное” ПО на микроконтроллере
2019-09-06 в 9:14, admin, рубрики: embox, mcu, opencv, qt, stm32, stm32f7discovery, techtrain, Блог компании Embox, конференции, микроконтроллеры, ненормальное программирование, программирование микроконтроллеров, системное администрирование
Embox принимал участие в IT фестивале TechTrain. Мы как и в первый раз привезли железки и вживую показали наши достижения. О некоторых мы уже писали на хабре, но мало ли кто не поверил :). Были показаны VoIP телефон, Qt и OpenCV, все на базе STM32F7-Discovery. Кроме стенда мы сделали три доклада. Идеи первого про открытый проект я уже описывал на хабре. В данной статье хочу рассказать идеи еще одного нашего доклада, который назывался “Запускаем “десктопное” ПО на микроконтроллерах”. Ну и пользуясь случаем, немного расскажу про свои ощущения о фестивале.Читать полностью »
Политкорректность проникает в Россию через книги про проектирование чипов на SystemVerilog для не-начинающих
2019-09-03 в 5:32, admin, рубрики: fpga, SystemVerilog, Verilog, vhdl, vlsi, Анализ и проектирование систем, высокая производительность, интервью, методологии разработки, ненормальное программирование, параллельное программирование, проектирование микросхем, триггер, учебная литература, формальная верификация, цифровая электроника, языки описания аппаратурыНаконец-то в России вышел учебник по SystemVerilog уровнем выше чем для начинающих. Учебник описывает технологии и приемы, которые спрашивают на интервью в NVidia, Intel, AMD, Apple и другие электронные компании: использование concurrent assertions и functional coverage, что сейчас требуют не только от инженеров по верификации, но и от дизайнеров микросхем; алгоритм работы симулятора с дельта-циклами; вменяемое объяснение static timing analysis; схемы коммуникации аппаратных блоков через аппаратные очереди; реализацию этих коммуникаций с помощью конечных автоматов с трактами данных и т.д.
В главе про последнее российского читателя может озадачить упоминание «политкорректной системы». Что бы это значило? Это вероятно намек на казус, который произошел в округе Лос-Анжелес в 2003 году. Чиновники Лос-Анджелеса попросили производителей, поставщиков и подрядчиков прекратить использование терминов «master/slave» («хозяин» и «раб») в отношении компьютерного оборудования, так как одному из работников округа эти термины напомнили про рабовладельческое прошлое.
Сейчас авторы технической литературы избегают терминов master/slave. В современной Америке работают и афро-американские инженеры (например София Мвокани из Камеруна — на фото слева), и использование старых терминов выглядит архаично, как выглядели бы например термины «пан/холоп» в украинской технической литературе вместо принятых «провідний/ведений» (рус. «ведущий/ведомый»).
Это не первый раз, когда в российском электронном образовании появляется тема борьбы афро-американцев за гражданские права. Например Татьяна Волкова, известный специалист по образованию в электронике, носит маечку с эмблемой «Черных Пантер», калифорнийского движения, которое в свое время сочло мирный протест недостаточным, и занялось вооруженным протестом.
Полное изображение эмблемы под кожанкой Татьяны Александровны — под катом, но в основном я буду рассказывать про дельта-циклы и конечные автоматы:
Читать полностью »
Unsafe.AsSpan: Span<T> как замена указателям?
2019-08-26 в 20:23, admin, рубрики: .net, C#, MSIL, reflection, ненормальное программирование
C#
— невероятно гибкий язык. На нем можно писать не только бэкэнд или десктопные приложения. Я использую C#
для работы, в том числе, и с научными данными, которые накладывают определенные требования на инструменты, доступные в языке. Хотя netcore
захватывает повестку дня (учитывая, что после netstandard2.0
большинство фич как языков, так и рантайма, не бэк-портируются в netframework
), я продолжаю работать и с легаси-проектами.
В этой статье я рассматриваю одно неочевидное (но, наверное, желаемое?) применение Span<T>
и отличие реализации Span<T>
в netframework
и netcore
из-за особенностей clr
.
Ассемблерные вставки… в C#?
2019-08-25 в 12:19, admin, рубрики: .net, C#, ассемблер, ассемблерные вставки, ненормальное программированиеИтак, эта история началась с совпадения трёх факторов. Я:
- в основном писал на C#;
- лишь примерно представлял, как он устроен и работает;
- заинтересовался ассемблером.
Эта, на первый взгляд, невинная смесь породила странную идею: а можно ли как-то совместить эти языки? Добавить в C# возможность делать ассемблерные вставки, примерно как в C++.
Если вам интересно, к каким последствиям это привело, — добро пожаловать под кат.
На спор: прочитав до конца, вы поймёте, как и почему именно так работает GC
2019-08-19 в 20:13, admin, рубрики: .net, C#, clrium, DotNetBook, gc, Блог компании Семинары Станислава Сидристого, ненормальное программирование, ПрограммированиеСкажу сразу: я никогда не жду развёрнутого ответа на этот вопрос на собесах. Это глупо и в моем случае — эгоистично. Однако, на мой взгляд, помимо общего интереса к платформе, знать, как он работает очень полезно, т.к. это снимает целый ряд вопросов. Например, исключает вариант, когда разработчик считает, что Dispose
вызывается автоматически и вызывать его самому не надо. Или же если разработчик более опытен, помогает ему автоматически, на уровне мышечной памяти писать код, приводящий к наименьшему количеству проблем.
Другой вопрос, что мне субъективно не очень нравится, как объясняется его работа. Потому, предлагаю альтернативный подход, описанный в моей книге, .NET Platform Architecture.
Если мы с вами будем досконально разбираться, почему были выбраны именно эти два алгоритма управления памятью: Sweep и Compact, нам для этого придётся рассматривать десятки алгоритмов управления памятью, которые существуют в мире: начиная обычными словарями, заканчивая очень сложными lock-free структурами. Вместо этого, оставив голову мыслям о полезном, мы просто обоснуем выбор и тем самым поймём, почему выбор был сделан именно таким. Мы более не смотрим в рекламный буклет ракеты-носителя: у нас на руках полный набор документации.
Спор взаимовыгоден: если будет не понятно, я подправлю не ясные моменты в книге, маленькой частью которой является данный текст.
Как развернуть односвязный список на собеседовании
2019-08-16 в 13:13, admin, рубрики: idris, ненормальное программирование, Программирование, функциональное программирование, я у мамы петросянПривет.
Я тут на днях сходил на собеседование в одну серьёзную фирму, и там мне предложили перевернуть односвязный список. К сожалению, эта задача заняла весь первый раунд собеседования, а по окончанию интервьювер сказал, что все остальные сегодня заболели, и поэтому я могу идти домой. Тем не менее, весь процесс решения этой задачи, включая пару вариантов алгоритма и последующее их обсуждение, а также рассуждения о том, что вообще такое переворачивание списка, под катом.
Хакер жалуется на полицию: его автомобиль с номерным знаком NULL получил штрафов более чем на $12 000
2019-08-14 в 14:20, admin, рубрики: null, ненормальное программирование, обработка изображений, распознавание символов, Тестирование IT-систем, Тестирование веб-сервисов, штрафные квитанции
Её дочь зовут Помогите! Меня заставляют подделывать паспорта
Специалист по безопасности под ником Droogie решил, что на его новом автомобильном номере должно быть написано NULL. В основном ради шутки, но был и скрытый смысл. Он надеялся, что благодаря такому хаку сможет избежать штрафов за превышение скорости (по понятной причине). Вышло совсем наоборот, о чём исследователь рассказал на хакерской конференции DEF CON 2019 в своём выступлении 11 августа.
Читать полностью »