Pull to refresh
52
0
Андрей Кравчук @prefrontalCortex

Software Engineer

Send message

«Процедурное рисование» в ComfyUI

Reading time7 min
Views75K

Кто интересуется темой рисующих нейросетей знают, что сейчас самый продвинутый и часто используемый интерфейс для Stable Diffusion (далее SD) это Automatic1111. Он позволяет использовать, вероятно, все существующие возможности SD на сегодня. Множество расширений, регулярные обновления и поддержка сообщества делают его мощным и удобным инструментом для генерации изображений. Но есть и альтернативные решения, одно из которых я сегодня рассмотрю.

Статья подойдет как тем кто уже пользуется Automatic1111, так и тем кто только планирует более глубоко погрузиться в мир "процедурного рисования".

Читать далее

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

Reading time23 min
Views75K

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →

Что самое трудное в разработке программного обеспечения?

Reading time13 min
Views8.9K

Фил Карлтон как-то сказал: «В информатике есть только два сложных вопроса: инвалидация кэша и присвоение имен».

Первое — это вполне реальная проблема; второе — проблема определения реальности.

Неверный алгоритм кэширования ставит под угрозу целостность системы. Неадекватные имена могут поставить под угрозу само существование системы.

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

Читать далее

Суперэллипс — фигура, которую многие видят каждый день, но не догадываются об этом

Level of difficultyEasy
Reading time3 min
Views22K

Оглянитесь вокруг. Какие фигуры вы видите? Скорее всего, большинство фигур имеет либо прямые (острые, тупые) углы либо эллипсоидные (не всегда идеально круглые) границы. Однако, существуют и гибриды. Суперэллипсы — это семейство кривых, которые лежат где‑то между эллипсами и прямоугольниками.

Читать далее

Про собеседования

Reading time2 min
Views39K

Хотите знать как проходят собеседования при приеме на работу в АйТи? В то самое АйТи в которое многие мечтают войти. Повествование будет аллегорическое, на примере столяров краснодеревщиков.

Читать далее

Стохастический язык программирования на основе алгоритмов Маркова

Reading time13 min
Views28K

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →

Java для сисадминов

Reading time17 min
Views15K

Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.

Статья не претендует на полноту или полную непогрешимость. Во-первых, нельзя объять необъятное. Во-вторых, все меняется и проверенные истины могут перестать быть истинами в новых версиях. В сети существует множество статей об  устройствах Java, однако в этой статье в блоге ЛАНИТ я стремился сделать выжимку основных моментов, необходимых для администраторов Java-приложений. Для более глубокого погружения в тот или иной вопрос потребуется обратиться к другим источникам.

Читать далее

Видеоигры не наносят вреда когнитивным способностям детей — независимо от продолжительности и жанра игры

Reading time4 min
Views8.9K

Ещё одно доказательство, что если вы или ваши дети заседают за играми — это ещё не значит, что всё пропало. Может, так даже получится стать умнее!

Новые результаты исследований бросают вызов тем опасениям, которые родители слышали в течение десятилетий, ещё со времен Atari и Dendy. Мол, что дети, которые часами играют в видеоигры или выбирают игры определенных жанров, проявят нездоровые отклонения в своих когнитивных способностях. Вы наверняка слышали или читали что‑то такое:

«Если часами играть в стрелялки, то только жестокость будет на уме!»

«Видеоигры подавляют гиппокамп и вызывают депрессию».

«Компьютерные игры ведут к деградации лобных долей».

Эти и другие заголовки можно увидеть по всему интернету — и в английском, и в русском сегменте. Обеспокоенные родители во многих странах вообще пытаются запретить видеоигры.

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

Читать далее

Пожалуйста, остановите игрострой

Level of difficultyEasy
Reading time8 min
Views66K

Я играл в компьютерные игры с 1995 года. И хотя в детстве я не раз засиживался за Civilization или TTD, я не могу считать себя заядлым геймером. За последние десять лет большую часть редкого игрового времени я потратил на Factorio. Более того, я закончил несколько франшиз, чисто для галочки.

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

Читать далее

Восход разработчикономики

Reading time10 min
Views63K
От переводчика
Почитывая несколько лет назад журнал "Форбс", я наткнулся на статью, которую нашёл крайне интересной. Ну, знаете как бывает — читаешь, читаешь, и на каждом абзаце воскликаешь: «О! Це ж про меня!». Не мог поверить, что я один такой, и никто не сподобится уж если не перевести, то хотя бы сослаться на неё в русскоязычной прессе. Однако за четыре года этого так и не произошло. Ну что ж, «хочешь сделать что-то правильно — сделай это сам», посему предоставляю вниманию почтенной публики первую половину статьи. (Стараюсь переводить художественно, поэтому работа двигается небыстро; размер оригинала — больше 30 килобайт, и, «земную жизнь пройдя до половины», я понял, что держаться нету больше сил.)

P.S. Так и не смог разобраться, как поставить в заголовке тег «перевод».

Восход разработчикономики


Статья Венкатеша Рао опубликована в декабре 2011 года в журнале «Форбс».

В эволюционной биологии существует теория, согласно которой взаимный альтруизм и сотрудничество возникли как решение проблемы хранения еды. Если вам, раннему гоминиду, посчастливилось завалить крупного мамонта, у вас не было ни малейшего шанса умять его целиком до того, как он протухнет. Тогда вы делились едой: лучшим вложением для избыточного капитала было вложение в желудок вашего приятеля. В этом случае вы могли потребовать возврата вклада в тот раз, когда мамонта завалит уже этот самый приятель.
Читать дальше →

Математика самонаводящихся ракет из аниме

Reading time4 min
Views19K

Я создал прототип ракетной атаки! Для этого понадобилась хитрая математика, о которой будет рассказано в этой статье.

Мы поговорим о кубических кривых Безье, шуме Перлина и rotation minimizing frames.
Читать дальше →

Делай нейминг как сеньор

Reading time13 min
Views124K

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

Как получается, что код становится мало понятным даже для его авторов? Почему нейминг так важен? Как придумывать названия, не применяя целые теории нейминга? Как лёгким процессом организовать работу с неймингом в команде? На все эти вопросы мы ответим в статье.

Читать далее

Жуткий сценарий использования ChatGPT

Reading time2 min
Views140K

Вчера у меня в ленте на фейсбуке (жаль что в закрытом посте) проявился еще один аспект ChatGPT, жуть которого я не вполне осознавал. Представьте, что ваш менеджер присылает вам емейл: "я вот тут сгенерил с помощью ChatGPT код на языке описания аппаратуры SystemVerilog, который реализует мою идею, ты его поправь немного и в продакшн, а то нас сроки поджимают".

Почему это жутко? Потому что в обсуждаемом посте ChatGPT сгенерил так называемый несинтезируемый код. Это означает: код вроде и есть, и после массажирования даже будет компилироваться в симуляторе, но вот чип из него сделать нельзя. Никак, вообще никак. Для решения этой задачи нужно написать совсем другой код, у которого не будет ни одной строчки общего с тем, что прислал менеджер.

То есть менеджер думает, что вместе с ChatGPT сделал за вас 90% работы, а на самом деле.

Читать далее

Созданы ли люди для конфликтов?

Reading time10 min
Views33K

Военный танец племени Оббо

Если вы жили на планете последний год, наверное, вас тянет сходу сказать «да». Эволюция. Выживание сильнейших! Даже неандертальцев на планете мы не оставили, потому что они были слишком непохожими на нас.


А самые начитанные из нас могут вспомнить, как об этом отлично рассказывает знаменитая книга «Повелитель мух», выигравшая Нобелевскую премию и все возможные награды. Она была написана в 1954 году, вскоре после Второй мировой. О том, как на острове случайно оказываются шесть обычных благовоспитанных мальчиков, и, лишившись надзора со стороны общества, постепенно начинают бороться друг с другом за ресурсы и власть, в конце концов скатываясь до своих примитивных, животных инстинктов. Книга напоминает нам, как легко мы можем превратиться в дикарей, и насколько он на самом деле тонкий, этот налёт цивилизации.


Культовый роман изображает людей эгоистичными по своей природе и склонными к конфликтам. Выглядит очень правдоподобно: действительно, чем бы ещё стали заниматься мальчики одни на необитаемом острове? Но дело в том, что есть единственный достоверно известный случай, когда это реально произошло, и история пошла в совершенно другом направлении.

Читать дальше →

Сделайте это и бегать будет легче, чем ходить. Упражнение для тренировки летящего бега, получите удовольствие от бега

Reading time2 min
Views76K

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

Серия моих предыдущих статей о здоровье и его компьютерном анализе и просто о ЗОЖ и фитнесе-физкультуре:

Бег в 2023 г. С пятки или с носка? Измеряем ударные нагрузки. Android и акселерометр
https://habr.com/ru/post/714698/

Как быстро бег уничтожает колени. Опрос любителей и мнение профессионалов
https://habr.com/ru/post/709182/

Программист с гаджетами в тренажерном зале
https://habr.com/ru/post/648421/

Читать далее

Наблюдения программиста в возрасте

Reading time3 min
Views70K
В колледже люди говорили мне, что я начну карьеру с написания кода, но в конечном счете приду к тому, что буду просить других писать код под свои идеи. В честь того, что это предсказание оказалось полностью неверным, вот некоторые произвольные соображения от сорокалетнего программиста, который размышляет над ходом своей карьеры.
Читать дальше →

«Это их работа, они за нее деньги получают»

Reading time11 min
Views12K
image

«Я единственный маркетинг менеджер в компании. Меня наняли, чтобы я поддерживала сайт и страницу в фейсбук. Для меня, неопытного специалиста, эта работа была идеальной. Я быстро вошла в ритм, разобралась с техническими нюансами, работа шла. У меня было время, чтобы продолжать учебу и развитие. Все новые фишки, которые я узнавала, я пыталась применить в работе. Я полностью переделала макеты писем, изменила дизайн страницы в фейсбук, начала делать регулярные интересные посты. За полгода количество подписчиков увеличилось вдвое (притом, что страница велась до меня 3 года).

Но самым большим своим достижением я считаю мою инициативу, которая привела в компанию 6 новых контрактов. Я написала статью с нашим самым крупным заказчиком и более 50 пользователей сделали ее репост.

И вот я, крайне довольна собой, инициирую встречу с руководством и делаю им презентацию по итогам моей работы… показываю цифры… показываю динамику…. Уже в течении презентации я обратила внимание, что директор часто отвлекается и часто смотрит в телефон. На предпоследнем слайде директор меня перебивает и говорит, что наша встреча уже сильно затянулась и ему нужно уезжать. И сухо заканчивает (параллельно надевая куртку): „Спасибо Аня, интересный отчет“.
Я многого и не ожидала от этой встречи, но чтобы так…. Я проработала еще 3 месяца и перешла в другую компанию на позицию старшего SMM-специалиста. Когда я увольнялась, я увидела ноль эмоций на лице директора. Я хоть и не директор, но мне кажется, что такое вальяжное отношение к сотрудникам, которые приносят пользу, нельзя допускать даже директору»



«Смысл стараться?»


Читать дальше →

Эмуляция видеоигр нейросетью

Reading time12 min
Views20K
Я создал играбельный верхний мир Pokémon. Он очень похож на обычную видеоигру, можете попробовать сыграть в него в браузере здесь:


Хотя он похож на видеоигру, я не писал код игры. На самом деле это нейросеть, подражающая видеоигре.
Читать дальше →

Золотое правило системного администрирования

Reading time8 min
Views21K
image

Я занимался разработкой систем последние 12 лет своей жизни. У меня в руках побывало всё. Я видел системы, работающие на COM портах, для передачи данных между терминалами. У меня есть сертификат NEC, подтверждающий тот факт, что я могу программировать их зубодробительные системы, созданные инопланетянами. Я поднимал с колен уложенные облачные фермы и переписывал код на VB6. Мне удалось повидать хорошо отлаженные системы и запутанный ужас, который никак не поддавался дебагу.

В этой статье я расскажу о нескольких основных правилах работы с любой системой. Эти правила не привязаны к определённой системе. Они работают как для монолита, написанного на C# в 2005 году, так и для свежесобранного кластера на кубере.

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

Правило 3-х часов: Сколько нужно работать в день

Reading time3 min
Views63K

Размытое зрение, стук по клавиатуре и одно глобальное правило продуктивности.

Я был там. Слишком долго работаю над проектом. Я начинаю ошибаться. Я теряю детали. Ошибки продолжают появляться, а качество падает.

Делаю что-нибудь творческое в течение нескольких часов, и это утомительно.

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

Великие умы всех времен имеют нечто общее:

Читать далее

Information

Rating
10,087-th
Location
Подгорица, Подгорица, Черногория
Works in
Date of birth
Registered
Activity

Specialization

Software Developer, Fullstack Developer
Senior
From 5,000 €
Lisp
Clojure
Unix
Linux
Docker