Pull to refresh
27
0
Михаил Матвеев @xtremespb

Пользователь

Send message

Heretic: full stack фреймворк на основе Marko.js

Level of difficultyMedium
Reading time7 min
Views3.5K

В последнее время вышло так, что я по неведомой причине стал часто заниматься популяризацией Marko.js, декларативного и реактивного языка разметки, который разрабатывается eBay. С одной стороны, это связано с тем, что Marko незаслуженно часто обходят стороной, хотя он позволяет делать из коробки многое из того, что не получится сделать на мейнстримовых фреймворках. С другой стороны, это действительно классно, когда можно использовать обычный HTML, при необходимости расширяя его синтаксисом Marko (вроде условных операторов и циклов). Одним словом, если вы еще не видели, что это такое - посмотрите, возможно, вам это очень понравится.

Когда у меня возникла необходимость разработать несколько внутрикорпоративных ресурсов, которые облегчали бы повседневную менеджерскую работу, я решил взять за основу некоторые свои разработки, в том числе компоненты, написанные на Marko, и максимально переиспользовать их. Так на свет появился Heretic - фреймворк, основанный на Marko.js, Node.js, Fastify, Bulma, MongoDB и других продуктах. Он позволяет за минимальные сроки разворачивать сайты, панели управления, различные сервисы и (теоретически) вообще все, что угодно :-)

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments1

Heretic: простое решение для создания простых сайтов

Reading time5 min
Views6.9K

Давайте признаем: современный Web стал очень сложным. Веб-дизайнеры все меньше думают о пользователях с узким каналом, которые вынуждены ждать, пока загрузится очередная огромная картинка. Иногда нам просто нужен старый добрый веб-сайт, без каких-либо дополнений, таких, как постоянное подключение к базе данных, панели администратора с WYSIWYG редактором и т. д.

Да, существует несколько способов создать веб-сайт, который будет представлять собой набор статических HTML-файлов. Но этот подход имеет массу недостатков: каждая страница загружается индивидуально, а наша задача определенно не состоит в том, чтобы возвращаться в 2000-е (хотя ностальгия может быть прекрасной, что уж там).

SPA (Single-Page Application, или одностраничное приложение) — хорошее решение, которое не требует перезагрузки каждой страницы, когда содержимое нуждается в обновлении. Но проблема в том, что эти веб-сайты полностью генерируются на стороне клиента, в браузере; не каждая поисковая система сможет их проиндексировать. В подобных ситуациях хорошим решением является рендеринг страницы на стороне сервера (Server-Side Rendering, или SSR), после этого — «переключение» в режим SPA (регидрация). Когда пользователь захочет перейти на другую страницу, с сервера будет загружен небольшой фрагмент данных, и необходимости перезагружать полностью страницу не будет.

Идея состоит в том, чтобы создать такой шаблон (boilerplate), чтобы каждый веб-мастер (или любой человек, обладающий базовыми навыками верстки на HTML и CSS) мог создать веб-сайт, который будет достаточно быстрым и удобным в обслуживании. Здесь в игру вступает Heretic.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments8

Создание Single Page Application на Marko.js — ZSPA Boilerplate

Reading time10 min
Views3K

В данной статье вы познакомитесь с Marko.js актуальной на данный момент пятой версии. Пару лет назад на Хабре уже была отличная статья (за авторством apapacy) о том, как работает этот замечательный реактивный фреймворк, разработанный где-то в недрах eBay.

В своем комментарии (а это был далекий 2020 год) я предложил написать на Хабр статью, посвященную моему опыту работы с Marko, и вот - как с тем самым котом - время наконец пришло :-)

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments2

Zoia: легкая реактивная CMS для быстрой разработки сайтов

Reading time4 min
Views10K
В данной статье я бы хотел рассказать о разрабатываемой мной системе управления контентом Zoia, написанной на Javascript. Это мой side-project, не связанный с основной работой, который я разрабатываю и развиваю в свободное время. Есть мнение, что каждый веб-разработчик должен рано или поздно написать свою собственную CMS, а кто-то даже и не одну :-)

TL;DR: demo.zoiajs.org, панель администратора (логин: admin, пароль: password), Github, лицензия MIT
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments22

Радиоконструктор: FM радио на базе Atmega328-P и RDA5807M

Reading time5 min
Views47K
Добрый день, уважаемые хабражители!

Меня зовут Михаил Матвеев, и я хотел бы представить Вашему вниманию проект современного «радиоконструктора», основанного на МК Atmega328 и чипе RDA5807M.

Предыстория


Я думаю, многие из вас не только слышали, но и непосредственно сталкивались с такой платформой, как Arduino. И как показывает моя личная статистика, очень немногие заходят дальше, чем поморгать светодиодами. Когда я познакомился с Arduino в первый раз, меня останавливало то, что не было идей, как именно я бы мог использовать все возможности того же UNO на «полную катушку». Хватило только на сборку простенького робота на двух колёсах и сигнализации. Вместе с тем, хотелось сделать что-то более основательное.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments51

Лимитирование исходящих сообщений на сервере с postfix и postfwd

Reading time6 min
Views14K
На сервере, где находятся сайты различных пользователей, чаще всего предусмотрена возможность отправки сообщений через локальный почтовый сервер. В случае взлома одного из сайтов существует возможность рассылки спам-сообщений, что может привести к серьезным последствиям, таким, как занесение IP-адреса почтового сервера в листы блокировки.

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

Проблема не является абсолютно тривиальной, и задачей данной статьи является демонстрация готового решения, которое может применяться в продакшене.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments13

iDOS — Эмулятор DosBox для iPad и iPhone

Reading time2 min
Views30K
Безвозвратно канул в Лету чистый DOS'а, воспеваемый в песнях, а вместе с ним и целая эпоха. При всех своих многочисленных недостатках DOS имел одно большое достоинство — целую армию пользователей, и, разумеется, уйму всевозможных игрушек, приложений, утилит.
Иногда очень хочется вернуться в прошлое и вспомнить, как оно было. И для этого вовсе не обязательно истязать свой компьютер — можно воспользоваться эмулятором или виртуалкой. Но что, если хочется поиграть в старые-добрые Gobliins или Wolfenstein в дороге?
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments7

Жалоба российскому провайдеру от MediaSentry

Reading time3 min
Views1.1K
В Санкт-Петербурге существует большое количество провайдеров, которых конкуренция заставляет повышать на тарифных планах скорость, либо снижать абонентскую плату. Тем не менее, большинство из них предлагают «недобезлимитку» — при достижении определенного порога входящего трафика обрезается скорость. Мне повезло, и провайдер в моем доме за сравнительно небольшую абонентку дает честные симметричные 25 Мбит со статическим внешним IP. На такой канал было просто невозможно не поставить хороший сервер с торрентокачалкой.
Читать дальше →
Total votes 11: ↑6 and ↓5+1
Comments23

Перенос сервера из России в Германию

Reading time3 min
Views815
Так уж получилось, что в течении примерно трех лет я размещаю свой сервер в Инфобоксе — по соотношению «цена/качество» этот провайдер находится на достаточно высоком уровне в России. По крайней мере, раньше там можно было установить свой сервер в корпусе типа «Tower» за 2500 руб/мес, сейчас — за 3000 руб/мес.
Но все-таки, 3000 рублей за размещение своего сервера — это несколько дорого, учитывая, что сервер нужно покупать и обслуживать самостоятельно. После того, как Инфобокс поднял цены с 2500 до 3000 рублей в месяц, это стало особенно очевидно и вынудило заняться поиском альтернатив.
На Хабре обнаружилась хорошая статья, посвященная аренде серверов за пределами РФ, и оценив возможные варианты, я остановился на компании serverloft, где и был арендован сервер в славном городе Франкфурте.
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments40

Развитие гуманитарной библиотеки E-Lingvo

Reading time1 min
Views492
Не так давно я обновил софт и дизайн гуманитарной он-лайн библиотеки E-Lingvo.net.
Но развитие сайта не стоит на месте, и с момента последнего поста появилось несколько полезных фишек.
Читать дальше →
Total votes 5: ↑3 and ↓2+1
Comments1

Гуманитарная он-лайн библиотека E-Lingvo.net

Reading time1 min
Views641
История началась много лет назад, когда автор этого топика обучался на филолога в РГПУ им. Герцена, который в Санкт-Петербурге.
Филфак Герцена, как, впрочем, и любой филфак — это заведение (до сих пор) консервативное, с опаской смотрящее на любые технические штуки.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments3

Software RAID: Degraded Array в Linux

Reading time1 min
Views1.6K
Добрый день, уважаемые хабраюзеры.
На одной из машин возникла следующая ситуация — вышел из строя жесткий диск.
Поскольку сервер собирался достаточно давно, винты там стояли по 80 Гб (2 штуки), и я решил заменить их на 500 Гб, поскольку разницы в стоимости почти нет, а пользы будет больше :)
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments7

Опыт ремонта коммуникатора в «Евросети»-«Про-Сервисе»

Reading time3 min
Views622
Эта печальная история поведает о том, как ремонтировался коммуникатор в компании «Про-Сервис» (дочерняя компания «Евросети»).

По большому счету, слухи о том, что этот сервисный центр осуществляет ремонт долго и не слишком качественно, давно бродят по Сети; но у автора данной статьи получилось проверить это на практике.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments27

Сборка компьютера шаг за шагом

Reading time4 min
Views9.1K
Сборка компьютера — задача достаточно тривиальная, тем не менее, достаточно многим она кажется «особой уличной магией». Экономия при самостоятельной сборке компьютера из отдельных комплектующих составляет от 500 до нескольких тысяч рублей — согласитесь, при всей своей относительной незначительности данная сумма позволяет выпить отличного пива минимум пару кружек. Соответственно, данная статья будет интересна прежде всего мужской части населения нашего сайта и правильным девушкам с руками-откуда-надо.

UPDATE! Господа, данная статья должна внести некоторую ясность о процессе сборки ПК для новичков. Поэтому в ней все написано простыми словами, с большим количеством картинок, и с ориентированием на современные интерфейсы и стандарты. Пожалуйста, оценивайте статью объективно, и не минусуйте за то, что я не описал процесс смазывания жестких дисков термопастой. Спасибо :)
Читать дальше →
Total votes 63: ↑32 and ↓31+1
Comments77

Обход ограничений прокси-сервера в офисе

Reading time4 min
Views32K
Итак, я думаю, что всем более чем знакома проблема закрытых сайтов и прочих неприятностей, гнусно подстерегающая простых офисных работников.
Первый аспект — это, собственно, «закрытые» сайты, т.е. те, на которые запрещен доступ. В результате, несчастный планктон офисный работник не может открыть нужный ему адрес.
Второй — тотальный контроль со стороны Большого Брата, соответственно, возможность перехватывать любые передаваемые данные (например, пароль от почты) и следить за тем, чем сотрудник на работе занимается.

UPDATE. Речь, разумеется, идет не только о сайтах, но и о всевозможных IM'ах (много где закрывают аську, джаббер и т.д.). Что касается того, что «на работе работать надо» — безусловно, это факт. Но лично меня раздражает возможность любого человека отследить места моего пребывания в Сети, даже теоретическую.

UPDATE 2. Господа, я не понимаю вашего негативного отношения к данному топику. Если минусуют суровые офисные админы по причине того, что с данными методами обхода защиты сложно бороться, прокомментируйте, пожалуйста.

Что же делать? Без паники, существуют аж целых два работающих решения!
Читать дальше →
Total votes 39: ↑28 and ↓11+17
Comments33

Установка и настройка связки rtorrent+wtorrent в Debian

Reading time5 min
Views1.8K
На хабрахабре уже неоднократно осбуждалась проблема создания домашнего сервера. Соответственно, воспользовавшись поиском, Вы сможете без проблем найти несколько хороших статей по этой теме. Там Вы, в частности, узнаете, зачем это все нужно.
Но, к сожалению, ни одна из представленных в Интернете статей не раскрывает полностью проблему установки связки rtorrent+wtorrent в системе Debian (либо Ubuntu, что практически то же самое). Основная сложность состоит в нескольких очевидных и не очень «подводных камнях»:

— Debian содержит некоторые пакеты с устаревшими версиями библиотек, несовместимыми с последней версией rtorrent/libtorrent;
— существующие мануалы и howto содержат информацию лишь о том, как установить данную связку на сервер lighttpd, что не всегда удобно (например, у меня на домашнем сервере есть пара сайтов, которые лучше запускать под Apache);
— ни одно руководство не учитывает все тонкости установки.

Учитывая эти обстоятельства и было написано данное руководство в стиле «copy-paste», которое, надеюсь, поможет Вам в нелегком деле приручения rtorrent/wtorrent.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments31

Домашний файлообменник на Perl

Reading time2 min
Views2K
История, собственно говоря, начинается не far far away, а совсем недавно.
У моих друзей на работе закрыт доступ на все, что только можно, особенно на половину сайтов и FTP. Этот нелицеприятный факт не позволяет быстро, удобно и эффективно обмениваться нам файлами, в результате чего все отправлялось по почте. А задача в данном случае предельно проста — «выложить» в общий доступ какие-нибудь программки, документы или фотки.
Дома имеется в наличии относительно старенький ноутбук HP NX6125 и канал 10 Мб/с, что, в принципе, достаточно быстро для того, чтобы сделать из этого бекап- и файл-сервер.
Процесс установки Debian и настройки всего описывать я не буду, так как хабралюди не раз писали по этому поводу отличные статьи. А расскажу лучше о том, как я решил непосредственно саму проблему загрузки файлов.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments4

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity