Рубрика «ненормальное программирование» - 89

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

FizzBuzz

Когда я подавал заявку на вступление в Hacker School, я столкнулся со следующей задачкой:

Напишите программу, которая выводит числа от 1 до 100 (включительно). Если число делится на 3, выведите Fizz вместо числа. Если оно делится на 5, выведите Buzz. Если оно делится как на 3, так и 5, выведите FizzBuzz. Вы можете использовать любой язык программирования.

(С тех пор сотрудники Hacker School слегка изменили задачку, скорее всего, для того, чтобы затруднить её решение с помощью интернет-поисковиков. Я намеренно не включил сюда изменённое условие, чтобы минимизировать эффект моего поста на гуглобельность.)

Задачка довольно проста и не требует обдумывания, поэтому хорошо подходит как пример для разых языков и стилей программирования словно Hello, World или задача на поиск чисел Фибоначчи.
Читать полностью »

Два сканера, осциллограф, электрогитара: компьютерная музыка Bit 52s

Раньше, да и сейчас, достаточно популярным направлением для любителей гаджетов, программирования и музыки одновременно было собрать группу какой-либо техники для исполнения какую-либо мелодию. Я помню видео, где группа флоппи-дисководов и сканер исполняли имперский марш из «Звездных» войн. Другое видео показывало исполнение рок-мелодий еще одной группой механизмов и устройств.

Ну, а вот и новое поступление: музыкальная композиция (вернее, «клип») от Bit-52's, так называется этот «музыкальный коллектив», состоящий из осциллографа, электрогитары с механизмом для извлечения из нее звуков, барабанной установки, чего-то вроде синтезатора, двух сканеров и прочего железа.

Читать полностью »

LUA в nginx: лапшакод в стиле inline php
Не стоит воспринимать данный пост всерьез. Несмотря на то, что это работает, в текущем виде данное решение является исключительно забавным концептом и не более того. Так же пост ни в коей мере не является усмешкой над php, который является одним из основных моих рабочих инструментов.

Думаю, что все разработчики на PHP (включая меня) так или иначе проходили через период, когда код представляет из себя жуткую смесь html и php, напиханных в одном файле. И речь не о шаблонах, а вообще о всей логике в лапше/спагетти-коде.
И в качестве концепта я решил к первому апреля набросать реализацию чего-то подобного, но на lua под nginx. Прямо как на картинке.
Читать полностью »

Внесу и свой вклад в тренд темного программирования.
Многим из вас знакома дилемма: использовать ли DI в своем проекте или нет.
Поводы перехода на DI:

  • создание развитой системы авто-тестов
  • повторное использование кода в различном окружении, в том числе в различных проектах
  • использование 3rd-party библиотек, построенных на DI
  • изучение DI

Доводы не использовать DI:

  • усложнение понимания кода (поначалу)
  • необходимость конфигурирования контекста
  • изучение DI

Допустим, у нас есть большой рабочий проект, принято решение: переводить на DI. Разработчики чувствуют свой потенциал, уровень мидихлориан в крови зашкаливает.
Перевод legacy проекта на Dependency Injection. Путь Ситха
Путь тебя ждет тернистый и долгий, мой юный падаван.

Если проект большой и в нем много разработчиков, одним коммитом вряд ли удастся сделать такой рефакторинг. Поэтому мы используем несколько плохих практик, упростив переход, а затем от них избавимся.
Читать полностью »

В предыдущей статье я рассказал, как написать простой сервер для передачи одного файла по протоколам http и https. Прошло немного времени и я решил сделать из этого кода универсальную библиотеку для быстрого создания серверов.

Полный код библиотеки можно посмотреть на гитхабе, а если в двух словах, то я добавил немного «египетских скобок», новомодных лямбда-функций и шаблонов. На сегодняшний день результатом стала кроссплатформенная библиотека для создания асинхронных серверов, состоящая из 5 файлов с общим размером 22.5 килобайт. Версия библиотеки для Линукс состоит из одного файла размером 18 килобайт (517 строк кода).

В этой статье я коротко расскажу как работает библиотека и покажу, как с ее помощью написать полностью работоспособный веб-сервер для статических сайтов.
Читать полностью »

Больше стихов в коде — Code Poetry Slam 1.1

27 февраля в Стэнфорде состоялся второй по счету конкурс поэтов, пишущих стихи на различных языках программирования — Code Poetry Slam 1.1. В отличии от стихотворений, упоминавшихся в прошлой заметке, конкурс не зацикливается на стихах в общепринятом смысле этого слова, во главу угла ставится само выступление автора, то, как он преподносит свою историю.
Читать полностью »

CubeStormer 3 собирает «Кубик Рубика» за 3 секунды

Если быть точным, то за 3,253 секунды. Само собой никто из людей не способен похвастаться таким результатом. Более-менее схожий рекорд принадлежит предшественнику CubeStormer 3 — соответственно, CubeStormer 2, который собрал «кубик» всего за 5,35 секунды. Кстати, перед этим рекорд принадлежал таки человеку, голландсу Мэтсу Вальку, который решил эту задачу всего за 5,5 секунды. Честно говоря, не знаю, сколько для этого нужно тренироваться — за 5,5 секунд я разве что пару граней поверну, более-менее осмысленно :)

Для пущей зрелищности попытка поставить мировой рекорд была предпринята роботом CubeStormer 3 на фестивале The Big Bang Fair в Бирмингеме, 15 марта.

Читать полностью »

Заметка. Об отставании информационного прогресса от технологическогоСказка ложь, да в ней намек!
Заметка. Об отставании информационного прогресса от технологическогоДобрым молодцам урок.
Заметка. Об отставании информационного прогресса от технологическогоА.С. Пушкин

Вопрос в чём: могут ли информационные технологии опережать технику? А какие информационные технологии вообще могут существовать? И которые из них — целесообразные? Это не статья, а всего лишь очерк широкого образа, смысл которого — попытка настроить читателя на некий критический режим оценки современных ИТ, в общем, изобилуя жирными шрифтами, статья фактически не о чём и тем более не о коммерции:)
Читать полностью »

Вольный перевод статьи Зеда Шоу (Zed A. Shaw) “Programming, Motherfucker!” (http://oppugn.us/posts/1300784321.html) под влиянием стилистики сайта http://fucking-great-advice.ru

Сегодня я расскажу вам об уникальной методологии разработки ПО. Уверяю вас, она произведёт настоящую революцию в нашей индустрии. Почему? Да потому что она разительно отличается от тех теорий, которыми вас досыта накормили заумные книжки и дурацкие статьи в интернетах. Существующие методологии заставляют вас запоминать сотни баззвордов, высчитывать какие-то непонятные метрики или даже (о ужас!) предлагают пустить работу на самотёк и сделать вашу команду самоорганизующейся.

Наша методология гораздо проще и эффективнее. Она предлагает вам сконцентрироваться всего на одной, но очень важной вещи (чтобы случайно не забыть, на какой именно, мы даже вынесли эту вещь в название методологии). Итак, встречайте: инновационная методология разработки под названием…
Пиши код блять!
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js