Как стать автором
Обновить

Как стать автором

Talkvio — не капибара и не старый пикабу. Модуль серверной индексации для поисковиков для Nginx. Альтернатива Next.js

Уровень сложности Средний
Время на прочтение 9 мин

Читая такие статьи как про Капибару, мне хочется упомянуть один свой старый/новый проект, в изначальном виде я затеял как проект реставрации старого форума сети Минска (uruchie.org) из далеких 2006-2012 годов, который хранился у меня в замороженном виде последние 10 лет. Не так давно я решил его расконсервировать и заняться реставрацией в свободное время, того, фактически, что осталось еще со времен локальных сетей. 

Я сразу отбросил почти все что было, это старый движок vBulletin - на тот момент крайне перспективный и развивающийся движок форума на PHP, и убрав почти все, оставив только базу данных из 250 000 сообщений и 5000 пользователей начал реализовывать новые концепции которые хотелось видеть. Если кому-то интересно то, кстати, одна из причин гибели такого старого и долгого проекта был именно vBulletin и безопасность.

Ссылка на рабочую версия нового ресурса: https://talkvio.com (заходим, регистрируемся, пишем, предлагаем идеи)

За основу взял что душе угодно для таких целей:

Backend: NodeJS + MySQL + Redis + Manticore (у меня с ним был крайне приятный опыт на других своих старых проектах) + Bash + отдельные модули на Python + Nginx

UI: React

Дальше в статье будет рассказываться как в проекте организован серверный рендеринг исключительно для поисковиков, и как вы можете повторить опыт для своего JS проекта не выполнял почти никаких модификаций проекта на основе пакета Puppeteer + Nginx.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 6

Xdebug в качестве интерактивной оболочки (REPL) в Phpstorm — чем заменить Python/JS консоль для Php

Время на прочтение 4 мин

Перешли с Python на Php, а привычной интерактивной оболочки из PyCharm нет? Пользуетесь JS-консолью в инструментах разработчика браузера, а для Php такого нет? Не беда, ведь в качестве интерактивной оболочки можно использовать консоль Xdebug! И мало того, что она интегрирована с Phpstorm, и там работает автодополнение кода прямо из проекта, так тут еще есть такие фичи, которых и вовсе нету ни в Python Console , ни в подобных REPL-интеграциях других языков программирования. Более того, подготовить нужную конфигурацию для запуска можно менее чем за минуту.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Софт-скиллы. Мой опыт в зарубежных компаниях

Уровень сложности Простой
Время на прочтение 3 мин

Когда я училась в универе, программисты ещё считались людьми закрытыми, необщительными, странными. И я очень старалась этому образу соответствовать. Но после моего переезда оказалось, что ситуация начала меняться, и даже самому матерому сисадмину неплохо бы овладеть культурой общения. Опишу несколько уроков, которые преподавались лично мне управляющими и менеджерами, за что им огромное спасибо!

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Комментарии 1

OpenAPI/Swagger для начинающих

Уровень сложности Простой
Время на прочтение 7 мин

Эта статья в основном для аналитиков, которые впервые сталкиваются с необходимостью описания запросов в Swagger, но может быть полезна всем, кто хочет разобраться или ищет подсказку.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

Фильтруем логи санитайзеров и valgrind на примере приложения с Qt

Уровень сложности Простой
Время на прочтение 9 мин

Периодически встречающаяся проблемами кода на С и C++ являются утечки памяти и неопределенное поведение. Даже если вы используете умные указатели, то от ошибок в библиотеках сторонних разработчиков вы не застрахованы. Для поиска ошибок в коде существуют специальные инструменты: санитайзеры и valgrind. Однако, не вся информация об ошибках имеет для нас ценность, рассмотрим методы её фильтрации.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1

Scala 3 Metaprogramming: реализация списка с известным на этапе компиляции размером

Уровень сложности Средний
Время на прочтение 13 мин

А что, если бы операции List[A].head и List[A].tail в Scala были бы безопасными на этапе компиляции?

В один ноябрьский вечер я задался этим вопросом, и, обладая нулевыми знаниями по метапрограммированию, принялся реализовывать список SList[A, N] с известным на этапе компиляции размером. Даже for-comprehension в итоге получилось реализовать!

Как это получилось сделать и какими средствами языка? Если рассказывать подробно - долгая история.

Хочу обрести мета-силу!
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 4

Написание модуля Modbus RTU Master для VPD-130-H2 в HMI Works

Уровень сложности Средний
Время на прочтение 4 мин

Мне поставили задачу связать панель VPD-130-H2 с 2 частотными преобразователями DC1-344D1NN-A20N. На панели и частотнике встроен интерфейс RS485, поэтому для управления я буду использовать протокол Modbus. В данном случае частотники будут выступать в роли Slave-устройств с адресами 11 и 22, а панель в качестве Master-устройства.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Способы нивелирования ошибочных действий пользователей в ИС

Уровень сложности Средний
Время на прочтение 12 мин

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

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

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 3

Как я за месяц написал интерпретируемый язык программирования на Python

Уровень сложности Простой
Время на прочтение 7 мин

Привет, Хабр! В этой статье я хотел бы поделиться опытом создания своего языка программирования.

Предыстория

Мне 14. Обучаясь на втором году Яндекс Лицея, нужно было написать несколько проектов. Первым из них стал проект на PyQT5. Я долго думал над идеей и вспомнил, что летом я хотел создать свой язык, но у меня этого не получилось (Тогда я не понимал как работает парсер и абстрактное синтаксическое дерево, поэтому забросил). И вот, мне пришла идея - сделать свой язык программирования и написать для него IDLE (т.к. тема проекта все таки QT). Ещё полгода назад я изучал асинхронность и многопоточность, поэтому именно одну из этих идей я хотел воплотить в своём языке. В данной статье я хотел рассказать устройство интерпретируемых языков и как их создать.

Читать далее
Всего голосов 35: ↑29 и ↓6 +23
Комментарии 36

Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье

Уровень сложности Простой
Время на прочтение 7 мин

Меня зовут Станислав Герасимов, 31 год, я разработчик. Хочу рассказать свою жизненную историю и о том, как я, преодолевая трудности и преграды, шел и иду к своим мечтам — стать профессиональным разработчиком, поправить здоровье и найти друзей.

Читать далее
Всего голосов 46: ↑43 и ↓3 +40
Комментарии 13

Кастомное пассивное охлаждение ПК (часть 1)

Уровень сложности Средний
Время на прочтение 5 мин

Думаю почти каждому нравится сборка ПК (сам процесс), а также в последнее время многие как хобби (в IT) начинают увлекаться ручной работой по дереву, металлу и т.д. 

Вот и я решил выбрать чем заняться, при этом мой старый ПК пришло время обновлять, но захотелось чего то особенного, и я решил сделать пассивное охлаждение для довольно мощного ПК (Слишком понравилось использовать бесшумные макбуки на ARM чипах).

Вначале вообще была идея сделать пассивное водяное охлаждение из обычной батареи (радиатора отопления).

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 43

Установка и настройка Hysteria

Уровень сложности Простой
Время на прочтение 10 мин

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

Дошли у меня руки и до вкратце описанного в статье «Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все» протокола Hysteria, который уже добрался до второй версии. И для него я не нашёл цельной русскоязычной инструкции, что вызвало желание собрать воедино информацию, когда я разобрался с основными вопросами установки, настройки сервера и клиентов для использования этого протокола в деле обхода блокировок.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 11

Под покровом невидимого: искусство тестирования на проникновение

Уровень сложности Простой
Время на прочтение 5 мин

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

Тестирование на проникновение — это процесс активного поиска уязвимостей в компьютерных системах и сетях. Через проведение специализированных атак и обнаружение слабых мест, эксперты по тестированию на проникновение имитируют действия злоумышленников с целью выявить возможности незаконного доступа к данным или инфраструктуре организации. Эта методика является неотъемлемой частью работы по обеспечению безопасности информационных систем и помогает предотвратить потенциальные угрозы со стороны хакеров или злоумышленников.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 0

Оптимизация запроса и запрос оптимизации

Уровень сложности Средний
Время на прочтение 3 мин

Как не грабить память, не пытать диск, не мучать кластер. Или делать все это всего одним запросом на Impala к Hadoop.

Среди задач аналитиков данных, в рамках которых необходимо иметь дело с большими объемами однотипных данных, выделяются задачи построения витрин данных, автоматизации процессов сбора и обработки данных. Многие аналитики используют различные реляционные базы данных, в таблицах которых хранятся огромные объемы информации, агрегация и доступ к которым может занимать долгое время, поэтому правильное составление и оптимизация запросов к этим таблицам становится критически необходимым фактором для работы аналитиков, инженеров данных и data scientist.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 9

Что мешает работать в команде?

Уровень сложности Простой
Время на прочтение 6 мин

Почему трудно начать работать в командной работе?

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

Читать далее
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 2

Wi-Fi робот на Ардуино узнает лица людей

Уровень сложности Простой
Время на прочтение 3 мин

Уважаемые коллеги по цеху, представляю вашему вниманию один из моих хобби проектов: простой робот на Arduino с камерой, управляемый с персонального компьютера (или ноутбука) с любой точки мира с помощью программного обеспечения собственной разработки Arduino Robot Control (ARC). Робот умеет распознавать лица!!!

Читать далее
Всего голосов 15: ↑8 и ↓7 +1
Комментарии 22

Простая архитектура с использованием MVVM и делегатов в Android. Оптимальное решение для малых проектов

Уровень сложности Простой
Время на прочтение 17 мин

В этой статье мы рассмотрим, как создать простую архитектуру Android, используя паттерн MVVM (Model-View-ViewModel) и делегаты для эффективного управления состоянием.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Что эффективнее — усложнять модель или увеличивать количество данных?

Уровень сложности Простой
Время на прочтение 8 мин

Статья "Необоснованная эффективность данных", написанная сотрудниками Google в 2009 году, говорит нам: "Простые модели с множеством данных превосходят сложные модели с меньшим количеством данных". Этот принцип заложен в основу подхода, ориентированного на данные (Data-driven) - приоритет отдаётся информации, содержащейся в данных, в то время как модель выступает в роли инструмента. Важную ценность несут именно сами данные, которые позволяют извлекать информацию для принятия точных и эффективных решений. Если данных недостаточно, в них отсутствуют чёткие закономерности или они недостаточно разнообразны, то потенциал машинного обучения ограничивается. Но как определить, что объём данных достаточен? Где лежат границы между большим и маленьким объёмом данных? Этот вопрос мы сейчас попробуем поисследовать.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 9

Проектируйте правильно

Уровень сложности Сложный
Время на прочтение 11 мин

Проект это сложная история. Обычно это относительно сложное и длительное мероприятие, создать программный продукт и провести его через стадию активной разработки до первой реальной коммерческой эксплуатации. Лично я видел как этот путь, в среднем, занимал от 2 до 5 лет на проекте с большой командой разработчиков.

Фишка в том, что нужно обеспечить качество продукта. Нас за этим (как разработчиков) и нанимают на работу, чтобы мы правильно писали программные продукты и прикладывали усилия чтобы эффективно двигать продукт вперед. Но на выходе, причем иногда еще до реального большого релиза, продукт может обрасти таким количеством технического долга, что скорость разработки очень сильно падает, и кодовая база приобретает характеристики которые свойственны кодовым базам которые сложно поддерживать и развивать. И парадокс в том что все при этом действительно стараются сделать хороший программный продукт. То есть, как говорится, хотели как лучше, а получилось как всегда.

Под катом наблюдения и личные выводы почему это происходит.

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 3

Как некоторые хостеры и регистраторы доменных имён «помогают» бороться с мошенниками. Личный опыт

Время на прочтение 8 мин

Началось всё с того, что в начале апреля при попытке снять квартиру наткнулся на фишингового мошенника и решил его заблокировать.

В итоге всё это вылилось в более чем полугодовое наблюдение, и блокировку более 200 доменов.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 16