Анонимные стрелочные функции в JavaScript, согласно некоторым опросам — самая популярная фича ES-2015, что также подчеркнуто исчерпывающим числом туториалов в интернете. Они бесспорно очень полезны, но в этой небольшой статье мы рассмотрим примеры использования обделенных вниманием не менее замечательных выражений с именованными функциями — NFE.
Рубрика «ненормальное программирование» - 38
Красота НЕ-безымянных функций в JavaScript
2018-10-29 в 8:09, admin, рубрики: expressions, functions, IIFE, javascript, nfe, recursion, ненормальное программирование, функциональное программированиеЧто происходит за кулисами С#: основы работы со стеком
2018-10-29 в 7:33, admin, рубрики: .net, C#, compiling, inside, JIT-компилятор, memory, stack, structlayout, ненормальное программирование, оопПредлагаю посмотреть все то, что стоит за простыми строками инициализации объектов, вызова методов и передачи параметров. Ну и, разумеется, использование этих сведений на практике — вычитывание стека вызывающего метода.
Дисклеймер
Прежде, чем приступить к повествованию, настоятельно рекомендую ознакомиться с первым постом про StructLayout, т.к. там разобран пример, который будет использоваться в этой статье.
Весь код, кроющийся за высокоуровневым, представлен для режима отладки, именно он показывают концептуальную основу. JIT оптимизации — это отдельная и большая тема, которая здесь рассматриваться не будет.
Также хотелось бы предупредить, что данная статья не содержит материал, который стоит применять в реальных проектах.
Начинаем с теории
Любой код в конечном итоге становится набором машинных комманд. Наиболее понятно их представление в виде инструкций языка Ассемблера, прямо соответсвующих одной (или нескольким) машинным инструкциям.

Laplace Blur
2018-10-27 в 2:20, admin, рубрики: algorithm, bits, Blur, fast, gaussian, laplace, math, Алгоритмы, математика, ненормальное программирование, обработка изображений, ПрограммированиеМожно ли блюрить Лапласом вместо Гаусса, во сколько раз это быстрее, и стоит ли того потеря 1/32 точности.
Читать полностью »
Laplace Blur — Можно ли блюрить Лапласом вместо Гаусса, во сколько раз это быстрее, и стоит ли того потеря 1-32 точности
2018-10-27 в 2:20, admin, рубрики: algorithm, bits, Blur, fast, gaussian, laplace, math, Алгоритмы, математика, ненормальное программирование, обработка изображений, Программирование«Блюр» в простонародье — эффект размытия, в цифровой обработке изображений. Бывает очень эффектен и сам по себе, и как составляющее анимаций интерфейса, или более сложных производных эффектов (bloom/focusBlur/motionBlur). При всем этом честный блюр в лоб довольно медленен. И часто реализации встроенные в целевую платформу оставляют желать лучшего. То скорость печальна, то артефакты режут глаза. Ситуация рождает множество компромиссных реализаций, лучше или хуже подходящих для определенных условий. Оригинальная реализация с хорошим качеством достоверности и высочайшей скоростью, при этом нижайшей зависимостью от аппаратной части ждет вас под катом. Приятного аппетита!
Читать полностью »
Язык программирования Rockstar: когда код выглядит как текст рок-хита
2018-10-26 в 14:03, admin, рубрики: .net, dotnext, Dylan Beattie, rockstar, Блог компании JUG.ru Group, конференции, ненормальное программирование, эзотерические языкиСловосочетание «rockstar developer» заставляет некоторых морщиться: «вот же глупый рекрутерский баззворд, среди самих разработчиков никто так себя не называет». В России оно встречается не так часто, а вот в англоговорящих странах многим уже надоело. И особенно остро ощущает его засилье британский .NET-разработчик Дилан Битти: он фанат рок-музыки, поэтому хорошо видит, насколько это «rockstar» далеко от настоящих rockstars.
В итоге Дилан затеял язык программирования Rockstar, код на котором должен быть похож на рок/метал-тексты. Во-первых, если получится сделать такой проект заметным, то можно отнять у рекрутеров слова «rockstar developer», дав им новое значение. А во-вторых, интересно же попробовать скомпилировать тексты любимых песен! Ну и делать наклейки на ноутбук «certified rockstar developer» тоже весело.
Конечно, всё это звучит как шутка, и изначально ей и было, но теперь становится всё реальнее. Подробности — под катом.
Читать полностью »
Пишем загрузчик ПЛИС в LabVIEW
2018-10-25 в 11:59, admin, рубрики: dll, fpga, ftdi, LabVIEW, mpsse, national instruments, виртуальный прибор, загрузчик, ненормальное программирование, ПЛИС, Промышленное программирование, прототипирование
У большинства "нормальных" программистов, мягко говоря, неоднозначное отношение к технологии LabVIEW. Тут спорить можно долго и безрезультатно. Ситуацию усугубляет то, что в сети масса примеров программ на LabVIEW, но все они ориентированы на новичка и сводятся к "ой, смотрите как все просто, соединил крутилку с индикатором, кручу ручку, меняется циферка", или в лучшем случае на график в цикле выводится случайное число или синус, все это сопровождается зубодробительным интерфейсом в виде гигантских тумблеров, крутилок и стрелочных индикаторов. Лично меня такой подход сознательного упрощения раздражает. В небольшом цикле статей я постараюсь познакомить читателя с процессом разработки прикладного ПО на LabVIEW. Для того, чтобы не уделять много времени предметной области, воспользуемся подробно описанным алгоритмом загрузки файла конфигурации в ПЛИС через FTDI в режиме MPSSE (Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE). В этой статье я покажу как реализовать такой же загрузчик ПЛИС, но на языке LabVIEW.
СберТех ♥ Open Source, concurrency и надежные банковские операции — разбор решений задач с Joker 2018
2018-10-22 в 8:58, admin, рубрики: Apache Ignite, concurrency, java, jmm, joker, jokerconf, JUG, open source, Блог компании Сбербанк, задачи для программистов, задачки, занимательные задачи, Занимательные задачки, ненормальное программирование, ПрограммированиеВ эти выходные прошел Joker 2018, было интересно! Но не одними выступлениями была богата конференция. Все компании-спонсоры старались выделиться на фоне «конкурентов» и мы — не исключение.
Много интересного было на стенде Сбербанк-Технологий, но я хочу рассказать о том чем выделились именно мы. Наша команда, занимающаяся развитием Apache Ignite в СберТехе, подготовила задачи и провела розыгрыш среди тех, кто отважился их решить.
Под катом вас ожидают задачи, разбор решений и возможность обосновать собственный вариант решения в комментариях.

Написание собственной работоспособной ОС за полгода
2018-10-15 в 22:53, admin, рубрики: Brainfuck, C, dhcp, DNS, EHCI, hardware, IPv4, OSDev, SMP, tcp, udp, usb, ненормальное программирование, Процессоры, системное программирование, Совершенный кодПредыстория
Здравствуйте! Всех категорически приветствую, сегодня хотел бы рассказать Вам о своём опыте написание работоспособной ОС под архитектуру x86.
Как-то весенней ночью у меня родилась гениальная идея — попробовать себя в написании собственной ОС, которая может позволить запускать программы, работать с устройствами, да и в общем выжимать всю мощь из Intel'овской архитектуры в своих нуждах: к примеру, для своей фабрики или чего-либо иного. Моей целью было и есть написание такой ОС, которая могла бы позволить максимальную производительность для каких-то конкретных задач, не тратя процессорное время на всяческие излишества. В основном я преследую лишь спортивный интерес, получение опыта для себя в системном программировании и написания драйверов для устройств, которые используются повсеместно. Что из этого вышло — решать вам, сразу говорю, что не надо писать комментарии про создание собственного дистрибутива линукса, и преследовал интерес написать всё «From stratch» — с нуля, дабы хорошо погрузиться в тему ОСдева. Сразу хочу выразить огромную благодарность Бенджамину Лунту и форуму OSDev, так же как их Вики. Бен помог мне разобраться с EHCI, что несомненно внесло огромный вклад в мою ОС — USB устройства, они везде! Так же передо мной стояла задача создать собственную архитектуру, удобную мне, не исключая использование стандартов ELF-файлов.Читать полностью »
Такой исключительный Go
2018-10-08 в 13:43, admin, рубрики: exception handling, exceptions, Go, golang, iferr!=nilsucks, panic, ненормальное программирование, ПрограммированиеНедавно были опубликованы черновики дизайна новой обработки ошибок в Go 2. Очень радует, что язык не стоит на одном месте — он развивается и c каждым годом хорошеет как на дрожжах.
Только вот пока Go 2 лишь виднеется на горизонте, а ждать уж очень тягостно и грустно. Посему берем дело в свои руки. Немножко кодогенерации, чуть работы с ast, и легким движением руки паники превращаются, превращаются паники… в элегантные исключения!

Так ли хороши джуны?
2018-10-05 в 5:38, admin, рубрики: Карьера в IT-индустрии, логика, логические игры, ненормальное программированиеПреамбулка
Эта статья является анализом другой статьи: Если вы не нанимаете джунов, то не заслуживаете сеньоров
Стоит сразу оговориться, что я понятие не имею, что там и как в Netflix. Просто стало обидно за здравый смысл и логику, над которыми автор так похабно издевается на протяжении всей статьи.
Я оставил по возможности оригинальное оформление, а свои комментарии отметил отдельно.
Ну и желтый заголовок тоже оставил, немного видоизменив.
Поехали.