Главная » Архив меток: Ненормальное программирование

Архив меток: Ненормальное программирование

Не создавайте собственный ЯП (DSL) для расширения функционала приложения

Под катом я покажу, почему худшим решением для этого будет изобретение собственного языка программирования и парсинг исходников, а также причем здесь мебель. Когда вы хотите дать пользователю возможность писать плагины для своего приложения, вы встаете перед выбором того, как предоставлять API. ЯП – это не основная функция приложения Есть некие базовые элементы: столешницы, подставки, тумбочки и т.п. Представим, что мы ...

Читать далее »

[Перевод] [The Old New Thing] Могу ли я использовать свой стек как угодно?

Иногда это определяется архитектурно, а иногда это просто принятое соглашение. В Windows стек растет от больших адресов к меньшим. А значения, расположенные глубже по стеку, соответственно, находятся по большим адресам. Значение указателя стека (регистр процессора), является указателем на значение в верхней части стека. Но что происходит с данными, которые расположены по адресам, меньшим, чем указатель стека? Соглашения для некоторых (но ...

Читать далее »

Нельзя так просто взять и написать SELECT, если вендор не разрешает… но мы таки напишем

TL;DR: GitHub://PastorGL/AQLSelectEx. Однажды, ещё не в студёную, но уже зимнюю пору, а конкретно пару месяцев назад, для проекта, над которым я работаю (нечто Geospatial на основе Big Data), потребовалось быстрое NoSQL / Key-Value хранилище. И очень желательно хранить таким образом, чтобы его можно было по ассоциированным с каждой строкой результата (это одна цифра) метаданным (а вот их довольно много) быстро ...

Читать далее »

Пятничный JS: квайн, который играет в крестики-нолики

Приветствую всех в своей традиционной рубрике, полной лавкрафтианского безумия. В общем, традиционная бессмысленная пузомерка программистов. В процессе написания одной из прошлых статей (не ищите, она была не особенно хороша) я задумался над тем, что квайн… Да, на всякий случай напомню: квайн — это программа, которая выводит свой собственный текст, причём делает это «честно» (не подсмотрев, допустим, этот текст в файле ...

Читать далее »

Трехмерный движок внутри запроса SQL

Несколько лет назад на форуме SQL.ru решили провести сравнение реализаций трассировщиков лучей на разных языках программирования. К сожалению, моя заявка не может участвовать т.к. она не выводит надпись «PIXAR», поэтому публикую ее здесь. Оказалось, что там нет даже функции SQRT. Для чистоты эксперимента я использовал SQLite без расширений. WITH RECURSIVE numbers AS (SELECT 0 AS n UNION ALL SELECT n+1 ...

Читать далее »

[Перевод] Изюминка Zircon: vDSO (virtual Dynamic Shared Object)

Zircon? Что это? Эта ОС основана на микроядре под названием Zircon, которое в свою очередь основано на LK (Little Kernel). В августе 2016 года, без каких-либо официальных объявлений со стороны Google, были обнаружены исходники новой операционной системы Fuchsia. Fuchsia is not Linux Примечания переводчика Тест под катом является компиляцией частичных переводов: официальной документации Zircon vDSO и статьи Admiring the Zircon ...

Читать далее »

Субъективное видение идеального языка программирования

Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Дальнейший текст — моя точка зрения. P. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а просто опишу общие подходы. У меня когда-то была идея создать свой язык программирования, но это оказалось довольно сложным процессом, который ...

Читать далее »

Собственный DHCP-сервер силами bash

Я люблю автоматизировать процесс и писать собственные велосипеды для изучения того или иного материала. Моей новой целью стал DHCP-сервер, который будет выдавать адрес в маленьких сетях, чтобы можно было производить первоначальную настройку оборудования.В данной статье я расскажу немного про протокол DHCP и некоторые тонкости из bash'а.Начнём с конца, чтобы было понятно, за что сражаемся.Демонстрация работы: Репозиторий со скриптом: firemoon777/bash-dhcp-server Необходимая ...

Читать далее »

Делаем мессенджер*, который работает даже в лифте

*на самом деле мы напишем только прототип протокола. Или иногда ваш провайдер связи неправильно конфигурирует сеть и 50% пакетов пропадает, и тоже ничего не работает. Возможно, вы встречались с подобной ситуацией – сидите в любимом мессенджере, переписываетесь с друзьями, заходите в лифт/тоннель/вагон, и интернет вроде ещё ловит, но отправить ничего не получается? Вы не одни. Возможно, вы думали в этот ...

Читать далее »

Делаем мессенджер*, который работает даже в лифте

*на самом деле мы напишем только прототип протокола. Или иногда ваш провайдер связи неправильно конфигурирует сеть и 50% пакетов пропадает, и тоже ничего не работает. Возможно, вы встречались с подобной ситуацией – сидите в любимом мессенджере, переписываетесь с друзьями, заходите в лифт/тоннель/вагон, и интернет вроде ещё ловит, но отправить ничего не получается? Вы не одни. Возможно, вы думали в этот ...

Читать далее »