Pull to refresh
8
0
Алексей @izac

Программист

Send message

Мозг + VPS за 30 рублей =?

Reading time10 min
Views39K
Как приятно, когда все необходимые мелочи под рукой: хорошо пишущая ручка и блокнот, заточенный карандаш, удобная мышка, пара лишних проводов и т.д. Эти незаметные штуки не обращают на себя внимания, но добавляют жизни комфорта. Такая же история с различными мобильными и десктопными приложениями: для длинных скриншотов, для уменьшения размера картинки, для подсчёта личных финансов, словари, переводчики, конверторы и т.д. А есть ли у вас такой VPS — который стоит недорого, всегда под рукой и приносит много пользы? Нет, не тот который у вас в компании, а свой, «карманный». Мы подумали, что без небольшого VPS в 2019 году как-то грустно, прямо как без привычной авторучки на лекции. А чего грустить? Лето же. Ну как лето. Лето айтишника: сидеть дома, пилить любимые проекты безо всякого сожаления. В общем, подумали и сделали.


Коммунизм наступил, товарищи
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments174

Перестаньте использовать DateTime

Reading time4 min
Views27K
Специально для студентов курса «Backend разработчик на PHP» подготовили перевод интересной статьи о сайд-эффекте популярного инструмента.





Работа с датами и временем в PHP порой раздражает, поскольку приводит к неожиданным багам в коде:

$startedAt = new DateTime('2019-06-30 10:00:00');

$finishedAt = $startedAt->add(new DateInterval('PT3M')); 

var_dump($startedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 
var_dump($finishedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 

Обе функции $startdate и $finishdate спешат на три минуты, потому как такие методы, как add (), sub() или modify() также изменяют объект DateTime, для которого они вызываются, прежде чем вернуть его. В приведенном выше примере, конечно же, показано нежелательное поведение.

Мы можем исправить эту ошибку, скопировав объект, на который происходит ссылка, прежде чем взаимодействовать с ним, например:
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments13

Предварительная загрузка в PHP 7.4

Reading time5 min
Views14K
Перевод данной статьи подготовлен специально для студентов курса «Backend разработчик на PHP».



В PHP 7.4 добавлена предварительная загрузка — возможность, которая позволяет значительно повысить производительность кода.

О предзагрузке в двух словах.

  • Для предварительной загрузки файлов вам потребуется написать отдельный PHP-скрипт.
  • Этот скрипт выполняется однократно при запуске сервера.
  • Все предварительно загруженные файлы доступны в памяти для всех запросов.
  • Изменения, внесенные в исходный файл, не подействуют, пока вы не перезапустите сервер.

Поговорим о новой возможности подробнее.

Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments15

Новый билд Nemesida WAF Free для NGINX

Reading time3 min
Views5.6K

В прошлом году мы выпустили Nemesida WAF Free — динамический модуль для NGINX, блокирующий атаки на веб-приложения. В отличие от коммерческой версии, основанной на работе машинного обучения, бесплатная версия анализирует запросы только сигнатурным методом.

Особенности релиза Nemesida WAF 4.0.129


До текущего релиза динамический модуль Nemesida WAF поддерживал только Nginx Stable 1.12, 1.14 и 1.16. В новом релизе добавлена поддержка Nginx Mainline, начиная с 1.17, и Nginx Plus, начиная с 1.15.10 (R18).

Зачем делать еще один WAF?

Читать дальше →
Total votes 27: ↑19 and ↓8+11
Comments2

Lazydocker — GUI для Docker прямо в терминале

Reading time3 min
Views33K


Два года назад мы уже делали обзор GUI-интерфейсов для работы с Docker, однако мир любителей подобных решений не стоит на месте. На днях до версии 0.2 обновился, а вместе с тем и получил широкую огласку, молодой проект lazydocker, позиционирующий себя как «более ленивый путь управлять всем в Docker». Утилита стремительно набирает популярность — ещё вчера количество его GitHub stars не достигало 3000, а уже сегодня перевалило за 4000.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments16

Всё, что нужно для начала работы с Vue.js

Reading time13 min
Views98K
Скорее всего, вы, читая эти строки, уже слышали о JavaScript-фреймворке, который называется Vue. Если вы собирались его опробовать, но не очень хорошо представляли себе то, с чего вам стоит начать, значит — этот материал написан специально для вас. Его автор говорит, что хочет рассказать о том, почему ему очень нравится Vue. Кроме того, он собирается представить всем желающим 4 способа написания первого приложения на Vue.



В конце этого материала, вы найдете ссылки на целый курс по Vue.js.
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments31

Скачиваем аудио вконтакте через клиентский js или расширение файлов .m3u8

Reading time11 min
Views21K

Как все начиналось...


Как всегда, зависая вконтакте, я решил скачать пару новых аудиозаписей на комп. Но меня ждало разочарование: аудиозаписи возвращались в каком-то странном формате: m3u8. Этот формат даже vlc media pleyer не воспроизводил, и я стал думать, что делать…
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments20

Смотрим торенты на смарт ТВ без смс и регистрации

Reading time3 min
Views139K
Доброго времени суток, Хабр.

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

Сразу оговорюсь, я ни в коем случае не призываю Вас использовать пиратский контент. Пиратство это зло. Всегда покупайте лицензионный контент.

Ну, а для тех кто хочет посмотреть торрент, не защищенный авторским правом, на своём смарт телевизоре, не дожидаясь скачивания, ниже интересный способ.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments38

Раф Костер: «Community Cookbook»

Reading time5 min
Views2.6K
Полезный материал для модератеров Пикабу, Хабра, урбанистов, чиновников, колонистов на Марсе/Луне и всем тем, кто планирует править этим (или еще каким) миром. Слово Рафу Костеру, легенде геймдева, Ultima Online, Star Wars Galaxies, геймификации, автору книги «A Theory of Fun».

image

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

В первую очередь важно общение. Если у вашей гильдии еще нет веб-страницы, электронной доски объявлений, рассылки новостей или списка рассылки по электронной почте, вы упускаете из виду наиболее важный фактор построения связей в сообществе. Очень хорошая тактика — выбрать человека, который всегда первым рассказывает о последних сплетнях и назначить его ответственным за ведение электронной рассылки. Большим преимуществом электронной рассылки или списка рассылки является то, что они не пассивны — они ищут члена сообщества и привлекают его.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments0

Как быстро попробовать CQRS/ES в Laravel или пишем банк на PHP

Reading time5 min
Views21K


Недавно в подкасте "Цинковый прод" мы с товарищами обсуждали паттерн CQRS/ES и некоторые особенности её реализации в Elixir. Т.к. я в работе использую Laravel, грех было не покопаться в интернетах и не найти как же можно потягать этот подход в экосистеме данного фреймворка.


Всех приглашаю под кат, постарался максимально тезисно описать тему.

Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments13

Тестирование микрокомпьютеров для IoT

Reading time3 min
Views21K
Для начала рассмотрим термин «интернет вещей». В википедии увидим следующее определение:
Интернет вещей (англ. Internet of Things, IoT) — концепция вычислительной сети физических предметов («вещей»), оснащённых встроенными технологиями для взаимодействия друг с другом или с внешней средой, рассматривающая организацию таких сетей как явление, способное перестроить экономические и общественные процессы, исключающее из части действий и операций необходимость участия человека.

Гейты


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

С ролью гейтов хорошо справляются микрокомпьютеры, которые мне хотелось бы рассмотреть подробнее. Для рассмотрения я выбрал несколько микрокомпьютеров примерно одного ценового диапазона и протестировал их.

Микрокомпьютеры


ASUS Tinker Board




Микрокомпьютер от известной всеми компании ASUS, плата с открытыми спецификациями и с размерами Raspberry Pi (о которой мы поговорим дальше). Поддерживает воспроизведение 4K/30fps.
CPU: Rockchip RK3288 (4x Cortex-A17 @ 1.8GHz)
GPU: Mali-T760
Оперативная память: 2 GB LPDDR3 RAM
Интерфейсы: GbE, WiFi, Bluetooth 4.0, 4xUSB 2.0 плюс microSD, micro-USB, HDMI, MIPI-CSI, MIPI-DSI, 40-pin разъем
Читать дальше →
Total votes 47: ↑32 and ↓15+17
Comments57

Управление Raspberry через websockets

Reading time4 min
Views14K
Raspberry Pi снискали огромную популярность по всему миру. Однако многие из любителей-разработчиков сталкиваются с проблемой доступа к устройству из интернета. Как правило приходится колдовать с DDNS или докупать статический IP адрес. Оба варианта предполагают настройка роутера, что не для всех и не всегда доступно. Кроме того – откртытие прямого доступа к устройству из интрента несет в себе определнные риски безопасности.

Крайне распространенным способом решения этой проблемы является использование промежуточного сервера, через который сервер и клиент подключаются друг к другую.
Схема крайне широко используется в различных пакетах удаленного доступа: VNCViewer, AmmyyAdmin и т.д.

Вариант 1-DDNS

image

Вариант 2 – статический IP адрес

image

Вариант 3 – использование промежуточного сервера

image

Эту схему подключения можно реализовать через протокол MQTT over Websockets, но мне было инетесно реализовать что-то значительно более простое, JSON-ориентированое, расширяемое, без ограничений протокола на размер сообщения и с более очевидной моделью безопасности.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments8

Учимся общаться между микросервисами на Node.js через RabbitMQ

Reading time5 min
Views34K

Это продолжение статьи «Пишем первый микросервис на Node.js с общением через RabbitMQ», которая была неплохо принята пользователями хабра.


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

Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments3

Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина

Reading time8 min
Views95K

Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и т.д. Здесь все только о том, каким должен быть Чистый Код.


Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments49

NoSQL базы данных: понимаем суть

Reading time9 min
Views569K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Total votes 137: ↑133 and ↓4+129
Comments75

Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 1. Инструментарий

Reading time26 min
Views40K
image

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


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


Во-вторых, вы можете использовать их для создания сообщества, при этом прилагая усилия там, где они наиболее необходимы.


  • Четкая миссия – заявленная причина существования группы.
  • Свободное участие – насколько легко люди могут присоединиться к группе.
  • Прозрачность – насколько открыто и публично принимаются решения.
  • Бесплатные участники – как много можно платить людям за участие.
  • Свобода работы с материалами (ремиксабельность) – насколько свободно участники могут использовать работу друг друга.
  • Четкость протокола – насколько хорошо прописаны правила.
  • Компетентность власти – насколько хорошо следят за соблюдением правил.
  • Нон-трайбализм – насколько далеко распространяются права группы над своими участниками.
  • Самоорганизация – насколько свободно могут участники определять свои задачи.
  • Толерантность – как группа разбирается с конфликтами.
  • Измеримый успех – как хорошо группа может отслеживать свой прогресс.
  • Высокое награждение – как группа вознаграждает своих участников.
  • Децентрализация – насколько широко распределены участники группы.
  • Свободная рабочая среда – насколько легко создавать новые проекты.
  • Стандартная структура – насколько общая структура стабильна и предсказуема.
  • Плавность обучения – насколько легко начать и продолжить учиться.
  • Позитивность – насколько группа движима позитивными целями.
  • Чувство юмора – насколько серьезно группа себя воспринимает.
  • Минимализм – сколько лишней работы делает группа.
  • Разумное финансирование – как группа борется за выживание в экономическом плане.

Спасибо Сергею Даньшину за помощь с переводом.

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments8

Муки выбора корпоративного мессенджера: бесплатно, свой сервер, не iChat

Reading time7 min
Views190K

Всем привет, меня зовут Дмитрий, я работаю разработчиком в небольшой софтверной компании в России уже 5 лет. Я бы хотел рассказать про то, как «исторически сложилось» с чатом в нашей компании, поделиться своими муками выбора достойного наследника и найденными решениями.

Начало


Когда я в первый день пришёл на работу, мне показали моё рабочее место, дали компьютер, зарегистрировали в Жире и Гитлабе, и показали главное средство общения сотрудников между собой — iChat. Можно подумать, это что-то про Apple, но всё было немного ужасней.
Total votes 53: ↑48 and ↓5+43
Comments264

Как мы экономим полмиллиона рублей в месяц с помощью Slack

Reading time4 min
Views24K


Школа Skyeng активно растет, у нас работает множество народу. Одних разработчиков уже больше 70 человек, причем лишь единицы из них сидят в офисе — большинство разбросано по стране и миру. В таких условиях правильно выстроенные коммуникации играют огромную роль, и сегодня мы расскажем про главный инструмент, который нам позволяет поддерживать рабочий процесс в тонусе.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments27

Рюкзак для гика: несколько вариантов от Madrobots

Reading time8 min
Views67K


Гики чаще всего носят любимые гаджеты с собой. Обычно речь идет о ноутбуке, планшете, смартфоне, фотоаппарате и различных мелочах. Часть из них необходима в ежедневной работе, а часть носят просто потому, что хочется (почему нет?). В целом, универсальным средством работы и развлечений сейчас является как раз лэптоп, благо подключиться к сети можно практически в любом месте. Поэтому, именно его чаще всего берут с собой на учебу, работу, коворкинг, кафе или даже на дружескую встречу.

Носить с собой все в сумке — не лучший вариант, поэтому большинство гиков склоняются к рюкзакам. И вот здесь начинаются муки выбора. Помимо того, что рюкзак для техники должен быть защищен от погодных условий, защищать устройства от ударов, он еще должен быть удобен для долгосрочного передвижения по городу или вне населенного пункта. Плюс есть еще много критериев, каждый из которых сугубо индивидуален. Сегодня рассказываем о рюкзаках, которые оптимизированы для удобного ношения гаджетов и отвечают дополнительным требования гиков.
Total votes 33: ↑28 and ↓5+23
Comments85
1
23 ...

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity