Решение на базе Docker, которое позволит создать на локальном компьютере универсальную среду разработки на PHP за 30 - 40 минут. Несколько версий PHP — 7.3 и 7.1 с набором наиболее востребованных расширений. Готовый к работе монитор процессов Supervisor. Предварительно сконфигурированный веб-сервер Nginx. Базы данных: MySQL 5.7, MySQL 8, PostgreSQL, MongoDB 4.2, Redis. Настройка основных параметров окружения через файл .env. Возможность модификации сервисов через docker-compose.yml.
Web developer
С чего начинается Elasticsearch
Elasticsearch, вероятно, самая популярная поисковая система на данный момент с развитым сообществом, поддержкой и горой информации в сети. Однако эта информация поступает непоследовательно и дробно.
Самое первое и главное заблуждение — "нужен поиск, так бери эластик!". Но в действительности, если вам нужен шустрый поиск для небольшого или даже вполне себе крупного проекта, вам стоит разобраться в теме поподробней и вы откажетесь от использования именно этой системы.
Почему валидации email регуляркой недостаточно. Проверка MX-записей с примерами на PHP и Ruby
Да, проверять регуляркой действительно нужно. Но ведь наши продукты работают в Сети. Так почему бы не использовать её настоящую мощь?
Golden canon grid: страшилка для фронтендеров
Большая часть людей, так или иначе причастных к верстке сайтов, проходят через… Назовем это “путь бутстрапа”. Это такая философская позиция, когда у тебя есть 12 колонок и ничего больше. Ты берешь элементы, кладешь их в определенные колонки и все у тебя хорошо. Можно выключить мозг, погрузиться в нирвану и руки будут сами расставлять элементы. Красота… Но тут появляется современный дизайнер, который рисует что-то, что ну совсем не сходится с этой замечательной концепцией. Колонок явно больше, они все разной ширины, да еще и по высоте что-то нужно выравнивать. Жуть. А встречается такое все чаще, особенно если сделать шаг в сторону от магазинов или админок. Сегодня мы поговорим о том, что же это за чудо такое там используется и как его можно готовить в современном CSS. Кода будет совсем немного, в основном – размышления и картинки.
О чем молчит EXPLAIN, и как его разговорить
Традиционный набор причин:
- неэффективный алгоритм
когда вы решили сделать JOIN нескольких CTE по паре десятков тысяч записей - неактуальная статистика
если фактическое распределение данных в таблице уже сильно отличается от собранной ANALYZE'ом в последний раз - «затык» по ресурсам
и уже не хватает выделенных вычислительных мощностей CPU, постоянно прокачиваются гигабайты памяти или диск не успевает за всеми «хотелками» БД - блокировки от конкурирующих процессов
И если блокировки достаточно сложны в поимке и анализе, то для всего остального нам достаточно плана запроса, который можно получить с помощью оператора EXPLAIN (лучше, конечно, сразу EXPLAIN (ANALYZE, BUFFERS) ...) или модуля auto_explain.
Но, как сказано в той же документации,
«Понимание плана — это искусство, и чтобы овладеть им, нужен определённый опыт, …»Но можно обойтись и без него, если воспользоваться подходящим инструментом!
Организация маршрутов в Laravel
Если вы ни разу не правили файл RouteServiceProvider, добро пожаловать под кат.
Поймут даже дети: простое объяснение async/await и промисов в JavaScript
Каждый, кто считает себя JavaScript-разработчиком, в какой-то момент должен был столкнуться с callback-функциями, промисами или, с недавних пор, с синтаксисом async/await. Если вы пробыли в игре достаточно долго, вы, вероятно, застали времена, когда вложенные callback-функции были единственным способом достижения асинхронности в JavaScript.
Когда я начал изучать и писать на JavaScript, уже существовало миллиард руководств и туториалов, объясняющих, как добиться асинхронности в JavaScript. Тем не менее, многие из них просто объясняли, как преобразовать callback-функции в промисы или промисы в async/await. Для многих этого, вероятно, более чем достаточно, чтобы они «поладили» с ними и начали использовать их в своем коде.
Однако если вы, как я, действительно хотите понять асинхронное программирование (а не только синтаксис JavaScript!), то, возможно, вы согласитесь со мной, что существует нехватка материалов, объясняющих асинхронное программирование фактически с нуля.
Laravel: объясняем основные понятия. Часть первая: «Теория»
В данной статье мы познакомимся с теоретическими основами Laravel — c самим фреймворком, c его историей, и с основными понятиями и концепциями, которые в нем используются. Данная статья предназначена для новичков, которые уже освоили основы PHP, попробовали написать свой первый сайт, например, с небольшой системой CMS, однако еще не пробовали работать с PHP-фреймворками, и не поняли основные плюсы, которые они предлагают.Итак, Laravel — это относительно новый веб фреймворк (первый выпуск произошел в 2011 году). Laravel взял лучшее из другого бэкэнд-фреймворка, такого как Rails, однако сейчас уже Laravel сильно обогнал его по распространенности. На момент написания данной статьи последняя версия — 6.
Telegram. Безлимитный сетевой диск. Бесплатный
Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.
TgCloud:
- Виртуальная файловая система с открытым исходным г****кодом.
- На локальном диске — только метаданные: имена, размер, структура папок и т.д.
- Данные хранятся в Telegram и загружаются только при работе с файлом
- Размер и тип файлов не ограничен, можно использовать с любой ОС
Подробности реализации и ссылка на репозиторий под катом.
Бесплатный VPN сервис Wireguard на AWS
Для чего?
С ростом цензурирования интернета авторитарными режимами, блокируются все большее количество полезных интернет ресурсов и сайтов. В том числе с технической информацией.
Таким образом, становится невозможно полноценно пользоваться интернетом и нарушается фундаментальное право на свободу слова, закрепленное во Всеобщей декларации прав человека.
Статья 19
Каждый человек имеет право на свободу убеждений и на свободное выражение их; это право включает свободу беспрепятственно придерживаться своих убеждений и свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ
В данном руководстве мы за 6 этапов развернем свой собственный бесплатный* VPN сервис на базе технологии Wireguard, в облачной инфраструктуре Amazon Web Services (AWS), с помощью бесплатного аккаунта (на 12 месяцев), на инстансе (виртуальной машине) под управлением Ubuntu Server 18.04 LTS.
Я старался сделать это пошаговое руководство как можно более дружественным к людям, далеким от ИТ. Единственное что требуется — это усидчивость в повторении описанных ниже шагов.
IDE нормального человека или почему мы выбрали Monaco
Памятка от редактора
В прошлой статье мы рассказали про релиз панели управления Voximplant, не забыв упомянуть обновленную IDE. Сегодня мы посвящаем этому инструменту отдельный лонгрид – наша коллега Geloosa заботливо описала как процесс выбора технологии, так и имплементацию с вкладками, автокомплитом и кастомными стилями. Садитесь удобнее, отложите остальные дела и заходите в подкат, где любопытных ждут кишки Monaco – не поскользнитесь, их там много :) Приятного чтения.
GraphQL и Golang
Готовим полнотекстовый поиск в Postgres. Часть 2
В прошлой статье мы оптимизировали поиск в PostgreSQL стандартными средствами. В этой статье мы продолжим оптимизацию с помощью индекса RUM и проанализируем его плюсы и минусы в сравнении с GIN.
Готовим полнотекстовый поиск в Postgres. Часть 1
UPD. Часть 2
Эта статья — первая из небольшой серии статей о том, как оптимально настроить полнотекстовый поиск в PostgreSQL. Мне пришлось недавно решать подобную задачу на работе — и я был очень удивлен отсутствию хоть сколько-нибудь вменяемых материалов по этому поводу. Мой опыт борьбы под катом.
Будьте осторожны, — Байкал-Т1! Или история одного проекта с попыткой применения «импортозамещения»
Итак, все по порядку…
Когда использовать var, let и const в Javascript [перевод статьи Tyler’а McGinnis]
В этой статье вы узнаете 2 новых способа для создания переменных в Javascript (ES6), let и const. На протяжении этой статьи мы рассмотрим разницу между var, let и const, а также смежные темы такие как: “область видимости функции против блочной области видимости“, “поднятие” переменных и иммутабельность.
Оптимизация сайта для GooglePage Speed (учтены все особенности после его обновления) Часть 1
В первую очередь стоит упомянуть, что вот в этой статье, на мой взгляд, всё очень грамотно и доступно расписано.
Я же от себя добавлю больше практических советов, а так же будет интересно послушать вашу точку зрения и увидеть ваши наработки.
Готовый клиентский модуль Google Pay
Ссылка на модуль. В коде есть нужная документация и комментарии. Здесь дам некоторые пояснения.
CraSSh: ломаем все современные браузеры вычислениями в CSS
Не хочу читать эту техническую болтовню. Просто повали уже мой браузер.
Что такое CraSSh
CraSSh — это кроссбраузерная чисто декларативная DoS-атака, основанная на плохой обработке вложенных CSS-функций
var()
и calc()
в современных браузерах.CraSSh действует во всех основных браузерах на десктопах и мобильных устройствах:
- На движке WebKit/Blink — Chrome, Opera, Safari, даже Samsung Internet на смарт-телевизорах и холодильниках.
- Android WebView, iOS UIWebView также затронуты, то есть можно обвалить любое приложение со встроенным браузером.
- На движке Gecko — Firefox и его форки, такие как Tor Browser.
- Servo не запустился ни на одной из моих машин, поэтому я его не протестировал.
- На движке EdgeHTML — Edge в Windows, WebView в приложениях UWP (их вообще кто-нибудь использует?)
Браузер IE не затронут, поскольку он не поддерживает функции, на которых основана атака, но у его пользователей немало своих проблем (вероятно, этот браузер можно порушить другими способами — прим. пер.).
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность