Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDownЧитать полностью »
Рубрика «велосипедостроение»
MarkedText — маркдаун здорового человека
2021-01-08 в 8:58, admin, рубрики: html, markdown, usability, велосипедостроение, Проектирование и рефакторинг, Семантика, Совершенный код, языки разметкиФрактальная шизофрения
2020-08-29 в 21:00, admin, рубрики: javascript, TypeScript, архитектура приложений, велосипедостроение, ненормальное программирование, шизофрения
Нет, я не болен. По крайней мере так говорит голос в моей голове. Я наркоман. Вот уже более 15 лет я сижу на игле. Употребляю много, жёстко, до оборочного состояния. Докатился до того, что в последнее время не стесняюсь ни друзей, ни жены, ни детей… Двоих детей! Не люблю бадяженый, люблю чистый, без примесей. За годы перепробовал многое, но в последнее время остановился в поисках. Забавно осознавать, что от одного и того же получаешь одновременно и боль, и радость. Мне бы в лечебку, я даже хочу, я даже знаю в какую. Знаете такие, где продолжаешь употреблять, но под присмотром?
Типобезопасная работа с массивами PHP
2019-11-16 в 14:14, admin, рубрики: PDO, php, велосипедостроениеВсем привет, расскажу о собственном велосипеде для удобной работы с массивами в PHP.
Type hinting
В PHP7 появились подсказки типов (type hinting), что позволило IDE проводить более качественный статический анализ кода, качество нашего кода улучшилось (или правильно говорит "стало более лучше"? ).
Конечно и раньше можно было для IDE написать подсказку в коментах к коду, но теперь типы стали частью кода и теперь их стало возможным рефакторить и не бояться того что ты что то где то забудешь (рефакторить конечно в смысле переименовывать классы и интерфейсы).
Кроме того, что стало возможным указывать выходной тип, появилась возможность указывать тип входного аргумента.
Но кроме приятных возможностей type hinting накладывает и обязанности, то есть типы переменных действительно должны быть такими как указано в сигнатуре метода.
Если не проверять типы, то можно получить ошибки в методах и конструкторах (особенно радуют ошибки в конструкторах).
Писать проверки вручную утомительно, я решил это дело автоматизировать, но не через проверку, а через приведение к нужному типу.
Читать полностью »
Длинная история путеводителя — как я 5 лет писал сервис для умных пешеходных маршрутов
2019-10-16 в 16:15, admin, рубрики: OpenStreetMap, OSM, osrm, велосипедостроение, Геоинформационные сервисы, картографические сервисы, Программирование, разработка мобильных приложений, Санкт-ПетербургУ многих есть один или несколько своих домашних проектов. Это бывают небольшие утилиты, экспериментальные штуки, пробы новых технологий, “убийцы” фейсбуков и много что ещё. Заметно реже такими проектами занимаются долгое время.
В статье я поделюсь своим опытом и расскажу как в течении 5 лет эпизодически занимался разработкой умного путеводителя по Санкт-Петербургу, как мне удавалось не забросить это дело, как менялось отношение к проекту и что в итоге вышло.
Мониторинг ИБП. Часть вторая – автоматизируем аналитику
2019-08-09 в 14:34, admin, рубрики: network ups tools, open source, php, web-сервер, автоматизация, велосипедостроение, ИБП, Программирование, системное администрирование, Энергия и элементы питанияНекоторое время назад я наваял систему для оценки жизнеспособности офисных UPS. Оценка основана на долгосрочном мониторинге. По результатам использования систему допилил и узнал много интересного, о чём и расскажу – добро пожаловать под кат.
Читать полностью »
Как я писал свой мониторинг
2019-05-25 в 14:50, admin, рубрики: велосипедостроение, Клиентская оптимизация, мониторинг сайта, мониторинг сервераРешил поделиться своей историей. Может даже кому пригодится подобное бюджетное решение всем известной проблемы.
Когда я был молод и горяч и не знал, куда девать свою энергию, я решил немного пофрилансить. Мне удалось быстро набить рейтинг и я нашёл пару постоянных клиентов, которые попросили поддерживать их сервера на постоянной основе.
Читать полностью »
Прикуривать вредно, или как сохранить заряд автомобильного аккумулятора
2019-04-05 в 18:36, admin, рубрики: DIY, велосипедостроение, микроконтроллеры, программирование микроконтроллеров, электроника, Электроника для начинающих, Энергия и элементы питанияПродолжаю начатый цикл статей, посвященных велосипедостроению в области управления низковольтными силовыми цепями. В этот раз расскажу об устройстве, предотвращающем глубокий разряд автомобильного аккумулятора разными второстепенными потребителями.
Одно из возможных последствий неконтролируемого разряда.
Читать полностью »
Распределённый чат на Node.JS и Redis
2019-02-16 в 15:55, admin, рубрики: distributed systems, node.js, nodejs beginner, велосипедостроение, нуб учит нубов, Системы обмена сообщениями, чат
Небольшой вопрос/ответ:
Для кого это? Людям, которые мало или вообще не сталкивались с распределенными системами, и которым интересно увидеть как они могут строится, какие существуют паттерны и решения.
Зачем это? Самому стало интересно что и как. Черпал информацию с разных источников, решил выложить в концентрированном виде, ибо в свое время сам хотел бы увидеть подобную работу. По сути это текстовое изложение моих личных метаний и раздумий. Также, наверняка будет много исправлений в комментариях от знающих людей, отчасти это и есть целью написания всего этого именно в виде статьи.
Постановка задачи
Как сделать чат? Это должно быть тривиальной задачей, наверное каждый второй бекендер пилил свой собственный, так же как игровые разработчики делают свои тетрисы/змейки и т. п. Я взялся за такой, но чтоб было интереснее он должен быть готов к захвату мира, чтоб мог выдерживать сотниллиарды активных пользователей и вообще был неимоверно крут. Из этого исходит ясная потребность в распределенной архитектуре, потому что вместить все воображаемое количество клиентов на одной машине — пока нереально с нынешними мощностями. Заместо того чтоб просто сидеть и ждать на появление квантовых компьютеров я решительно взялся за изучение темы распределенных систем.
Стоит отметить что быстрый отклик очень важен, пресловутый realtime, ведь это же чат! а не доставка почты голубями.
%рандомная шутка про почту россии%
Использовать будем Node.JS, он идеален для прототипирования. Для сокетов возьмем Socket.IO. Писать на TypeScript.
И так, что вообще мы хотим:
- Чтоб пользователи могли слать друг-другу сообщения
- Знать кто онлайн/оффлайн
Как мы это хотим:
Bonsai: фамильный вики-движок
2019-02-11 в 6:15, admin, рубрики: .net, C#, Анализ и проектирование систем, велосипедостроение, вики, генеалогия, Разработка веб-сайтов, фамильное древо, хранение данныхЛирическое вступление
Как-то вечером, наводя порядок в стенном шкафу, я наткнулся на большую картонную коробку. Она пережила два переезда и не открывалась уже столько лет, что я напрочь забыл, что именно в ней хранилось. Оказалось, там лежали фотографии — в альбомах, в конвертах из фотоателье, а часть просто так.
Многие фотографии были сделаны более семидесяти лет назад. На одной был дедушка — в студенческие годы, еще молодой и статный, в абсолютно ломовейших очках. «Надо же, мой дед носил хипстерские шмотки еще до того, как это стало мейнстримом», подумал я, и невольно улыбнулся. Его я узнал сразу, но дальше пошли фотографии людей, о которых я ничего не помню. В чертах лица можно смутно угадать родство — и все.
Когда мне было пятнадцать, бабушка неоднократно показывала эти карточки и рассказывала о тех, кто на них изображен. К сожалению, ценность подобных историй понимаешь только тогда, когда рассказывать их становится некому. На тот момент мне было абсолютно неинтересно по десятому разу слушать какие-то замшелые байки про довоенные годы, я отмахивался от них и пропускал мимо ушей. Теперь же, внезапно в полной мере осознав, что часть семейной истории безвозвратно утеряна, я загорелся идеей систематизировать и сохранить то, что осталось.
Идеальным решением для хранения семейных данных мне представлялся гибрид вики-движка и фотоальбома. Готовых подходящих решений не оказалось, поэтому пришлось написать собственный. Он называется Bonsai и доступен с открытым кодом по лицензии MIT. Дальше будет история о том, как он устроен и как им пользоваться, а также история его разработки и немного ДРАМЫ.Читать полностью »