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

Ранее я уже писал о том как решал проблему представления скриптов в удобочитаемом виде в одном активационном проекте, в сфере традиционной телефонии. Напомню, что речь шла о передаче управляющих команд на АТС Alcatel S12 и M200 через Serial или TCP-соединение. Несмотря на всю «велосипедность» описанного подхода, он полностью себя оправдал. Уже первый просмотр сгенерированного скрипта, позволил обнаружить и исправить серьезные ошибки в логике активации, поиск которых непосредственно в таблицах AST-представления занял бы гораздо больше времени.

В настоящее время, проект перешел в фазу отладки активационной логики, предусматривающую гораздо более интенсивное изменение активационных скриптов. В таких условиях, наличие инструмента, позволяющего сформировать текстовое представление активационного скрипта, а также залить скрипт обратно в БД, после внесения изменений, позволит значительно увеличить продуктивность работы. Проблеме синтаксического разбора скрипта и загрузки его в AST-представление в БД и посвящена эта статья.
Читать полностью »

Добрый день хабр. В статье я расскажу, как используя синтаксис php, можно написать функцию, для вывода переданной ей строковой переменной, не использующую в своем теле символы «a-zA-Z0-9<>?»

Вообще на хабре уже проскальзывали ссылки на статьи об использовании undefined variable, так что ничего нового я скорее всего не открою.
Читать полностью »

С новым годом! или Демосцена на калькуляторе
Захотел я сделать всем подарок на новый год, а какой подарок может быть лучше демки?
Да не простой, а новогодней демки для графического калькулятора.
Читать полностью »

image

В один прекрасный день меня одолело странное желание — пользоваться всей мощью моего андроид-смартфона в консоли. Очень удобный способ для всяческих утилитарных задач. В консоли — это ключевой момент моего повествования.
Как таковая разработка под Android (если мы говорим про стандартный Android SDK, а не NDK) не подразумевает консольного программирования. Активити, сервисы, интенты — в общем, на эту тему написан не один десяток статей, а моя — о другом.
Читать полностью »

Однажды в своем блоге коллега разместил картинку:
image

Вспомнив про статью Задача о восьми Ферзях на Oracle SQL, решил попробовать решить ее аналогичным путем.
Читать полностью »

Я работаю программистом более 5 лет (web), и хотел бы поделиться методикой, которая экономит силы, время и помогает автоматизировать процесс проектирования.

Методика основана на объектно-ориентированном проектировании, но несколько необычна. Зато имеет очевидные плюсы:
— в идеале, программирование по CORE сводится к описанию задачи (код близок к бизнес-логике)
— чётко разделяет систему на слабосвязанные компоненты
— легко автоматизируема, позволяет генерировать осмысленный код

Почему методика называется CORE и как это расшифровывается? Отчасти потому, что у меня тяга к красивым названиям. По буквам:
Context — контекст вычислений (что инициировало вычисления)
Object — объект, который производит вычисления
Request — действие, которое нужно совершить, чтобы объект смог продолжить вычисления
Event — событие, которое происходит с объектом

Плюсы по сравнению со стандартными способами разработки:
— ускорение стадии проектирования за счёт формализованной схемы проектирования
— ускорение стадии разработки за счёт умной генерации кода
— автоматизация создания юнит-тестов
— неглючная реализация бизнес-логики практически любой сложности
— простая поддержка кода
— простота совместного владения кодом

Минусы стандартных способов по сравнению с CORE:
— часто нельзя окинуть одним взглядом всю часть системы
— нужно самому продумывать когда и в каком месте будут вызываться обработчики тех или иных действий. CORE разруливает вызовы автоматически.
— часто вводятся дополнительные уровни абстракции, не связанные с бизнес-логикой, чтобы реализовать её особенности. в CORE это не нужно.
— программист часто совершает кучу однообразных действий, которые легко можно автоматизировать
— юнит-тестирование внедрять тяжелее

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

Сотрудница instructables.com Аманда Гассей проделала впечатляющую работу по созданию технологии трёхмерной печати грампластинок. Практической пользы от этого пока немного, но подробная история её исследований и экспериментов, выложенная на instructables, читается, как увлекательный детектив. Разрешения лучших современных 3D-принтеров едва хватает, чтобы добиться качества звучания, сравнимого с первыми аудиозаписями XIX века, но тем интереснее задача.


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

В рамках исследований движений глаза Майк Хансен и Эрик Холк провели любопытный эксперимент. Используя айтрекер Tobii TX300 частотой 300 Гц, они сравнили поведение глаз опытного и начинающей программистов при чтении кода программы Python, вывод которой являлся вопросом поставленной задачи.

В результате съемки данных для «новичка» было получено следующее видео.

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

Некоторое время назад, мне довелось поучаствовать в крупном международном проекте в составе команды активации. Суть проекта сводилась к автоматизации выполнения ряда команд на оборудовании Cisco. Разработка активационных скриптов велась на JavaScript. Главная мысль, которую я вынес из этого проекта, заключалась в том, что разработка и отладка активационных скриптов на JavaScript крайне трудоемкое занятие. Интенсивная разработка велась в течение 1 года, а только наша группа активации включала в себя около 10 разработчиков (тестеров требовалось не меньше).

В июне этого года, уже местное руководство, осчастливило меня новым активационным проектом, в котором маршрутизаторы Cisco сменились на АТС Alcatel S12 и M200. Вторым отличием этого проекта было то, что всю активационную часть предстояло разработать мне одному, с нуля, в течение полугода.
Читать полностью »

Полиция города Милдура (штат Виктория, на юго-востоке Австралии) опубликовала официальное предупреждение для водителей, которые пользуются навигационными картами на устройствах Apple iOS6.

В последнее время зарегистрировано несколько случаев, когда транзитный автотранспорт сворачивает с трассы A20 не доезжая до города и теряется в национальном парке. Расследование показало, что причиной является картографическое приложение Apple iOS6, в котором город Милдура обозначен посреди национального парка Murray Sunset National Park, примерно в 70 км от его реального местоположения.

Полиция предупреждает об экстремальных условиях в парке: там нет источников питьевой воды, а температура в декабре-январе может достигать 46°C, что делает это место довольно опасным.
Читать полностью »


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