Рубрика «КодоБред» - 7

Давным-давно, когда трава была зеленее, а деревья выше, жил-был тролль, по имени Xenocephal. Жил он, в принципе, во многих местах, но мне повезло встретить его на одном форуме, где я, в то время, набирался ума-разума. Я уже не вспомню топика, в котором протекала беседа, но суть ее сводилась к тому, что Xenocephal пытался убедить всех окружающих, что Lisp (с его макросами) — всему голова, а C++, с его шаблонами, жалкое подобие левой руки. Также утверждалось, что наметапрограммировать в нем что-то сложнее набившего оскомину факториала не представляется возможным.
Читать полностью »

Бытует мнение, что только 10% программистов способны написать двоичный поиск. Это мнение мы испытывать не будем, но что насчёт квадратного уравнения?
Квадратное уравнение? Да раз плюнуть!
Поставим задачу конкретнее: решение квадратного уравнения вида ax2+bx+c=0 с целочисленными коэффициентами. На вход подаются три целых числа в рамках int (коэффициенты a, b и c). Программа должна всегда выдавать результат.
Казалось бы, плёвое дело: пять минут и готово! И вот спустя те самые пять минут имеем на выходе следующий код:Читать полностью »

Доброе время суток, Хабраобщество.

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

Если кому-то надо будет нарисовать юзербар, то он откроет GIMP (или любой другой графический редактор) и нарисует в нем несколько слоев со штрихами/градиентами и отблесками. А что если надо создать сразу много юзербаров? К примеру, генерировать новую картинку при смене трека на интернет-радио? В этой статье я поделюсь небольшой методикой как это можно сделать. Сразу скажу, что вся графика у нас будет процедурной и руками не нужно ничего рисовать.Читать полностью »

Пару дней назад мои хорошие знакомые из магазина http://www.sakura-shop.ru/ попросили меня посмотреть, почему при оформлении заказа не подсчитывается стоимость отправлений через почту России.

У меня тоже есть несколько магазинов. И на одном из них http://sumki.natropinkah.ru использовался похожий метод расчета. Проверив его работу, я был неприятно удивлен: алгоритм выдавал ошибку.

Пришлось лечить.
Читать полностью »

Читаем с экрана красиво

Лирика

Желаю доброго дня уважаемому Хабра-сообществу.

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

Пришли будни, серые, монотонные, скрасить их немного может лишь тот факт, что сегодня пятница. Первая пятница тяжелой недели первого месяца осени.

Видимо ностальгия ударила по мне, а может хроническая лень на секунду отпустила, но загорелся я идеей улучшить качество чтения различной литературы с монитора. Конечно каждый скажет – да кто сейчас читает-то с экрана? Вон устройств каких только не понавыпускали, пользуйся да ни о чем не волнуйся. Однако есть моменты, когда почитать хочется именно сию секунду, а качество оформления текста удручает.
Читать полностью »

Всем доброго хабрадня!
SSH и FTP через Dropbox
Сегодня я расскажу вам, уважаемые читатели, об одной бредовой идее, пришедшей в мою голову и даже воплощённой в жизнь.

Для начала немного предыстории. Недавно возникла очень острая необходимость в ssh доступе на некоторый unix-based компьютер, дабы выполнить там svn diff > mypatch.diff и перекинуть результат по ftp. Но оказалось, что целевая машина по некоторым причинам не хочет пинговаться! Причём, по словам админов, и не предвидится пинг к ней, хотя выход в интернет она имеет. И я решил, что неплохо бы пробросить ssh через что-то стороннее. В голову сразу начали лезть VPN, reverse ssh, туннели и прочее. Но для большинства решений нужна дополнительная машина и/или дополнительный софт, либо это требует перенастройки самой сети (что для меня совсем не вариант — сеть-то не моя). Я уже готов был отчаяться и гуглить упорнее, но тут в мою не совсем здоровую голову пришла мысль: а что если заюзать дропбокс?
Читать полностью »

Есть такой редкий малоизвестный язык программирования tcl. В википедии он расписан хорошо, но при написании программы возникнут вопросы.
Цзяньшицзы — это такая китайская(судя по названию) игра, переводится как «выбирание камней», интересна сама по себе: есть две кучки камней с любым количеством камней, играют двое. Каждый игрок может взять любое число камней из любой кучи, а также равное количество сразу из обоих. Побеждает тот, кто возьмет последний камень. Более подробное описание тут. Игра на сохранение баланса: с одной стороны, нужно чтобы числа в кучах различались, с другой, чтобы различие было не слишком большим. Начнем с того, что игра имеет выигрышную стратегию, происхождение которой мы рассматривать не будем. Возьмем лишь краткое описание. Существуют сочетания размеров куч, при которых игрок, который будет делать следующий ход, проигрывает.
Цзяньшицзы и tcl

Цзяньшицзы и tcl

Квадратные скобки обозначают взятие целой части. Нет, первая формула — это не числа Фибоначчи, хотя коэффициент тот же, но тут арифметическая прогрессия, а не геометрическая. Сразу заметим, что разница между числами пары составляет n.

Ранее на хабре были Реверси на TCL в 64 строки и Пятнашки на TCL в 10 строк, в которых был компактный и красивый код, здесь вы такого не увидите. Также он, возможно, далек от правил хорошего тона. Вобщем, если вам что-то покажется говнокодом, скорее всего так оно и есть. С другой стороны, это даже хорошо, потому что будет что улучшать в дальнейшем. Отчасти из-за того, что язык для меня новый, отчасти чтобы было удобнее делать пояснения. Также отсутствуют необязательные проверки.
Далее будут идти куски программы. Она далеко не оптимальна, но показывает особенности языка и работает.
Читать полностью »


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