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

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

Отправить сообщение

Хранение загружаемых пользователями файлов

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

В самом начале своей карьеры я имел честь в одно лицо разрабатывать проект, предназначенный для массового пользователя. Надо сказать, что почти все основополагающие принципы того, как провалить проект, были соблюдены, однако, он до сих пор жив. Проект был предназначен для принудительного использования определенной категорией работников бюджетной сферы. Технического задания, аналитики, дизайн-документов, макетов в Фигме, лавандового смузи, и прочих этих ваших модных слов, без которых N лет назад строили БАМ и Траннсиб не было от слова совсем. Зато, были процессы “в бумаге”, которые требовалось оцифровать. Поэтому то, что можно было принять за ТЗ, выглядело как “Эти (работники) заполняют вот это (бумаги) потом несут тем (проверяющим) а дальше все это хранится, сделай чтобы они с компьютера могли загрузить и отправить, у нас тут целый этаж бумагами занят, пожар начнется - всему хана”. Используя весь свой багаж знаний и опыта в построении высоконагруженных систем (на этом месте я отошел от написания статьи сначала проржаться а потом поплакать), я приступил к реализации.

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

Создание библиотек и публикация в npm

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

Занимаясь веб-разработкой в it-компании Intelsy на аутсорс- и аутстафф-проектах, я постоянно подключаю и использую библиотеки. Решил собрать воедино всю накопленную информацию по этой теме и поделиться с теми, кому это может быть нужно: с опытными или начинающими разработчиками, с целыми командами - для облегчения работы и ее усовершенствования.

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

Docker + Laravel + RoadRunner = ❤

Время на прочтение8 мин
Количество просмотров30K

picture


Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.


Всё, что будет написано ниже, является субъективным опытом, который (как и всегда) не претендует на право считаться единственно верным решением, но некоторые подходы и решения, возможно, тебе покажутся интересными и полезными.


В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии10

Работаем с jQuery Templates

Время на прочтение20 мин
Количество просмотров138K

Введение


Плагин jQuery Templates – это «движок шаблонов», работающий на стороне клиента как расширение jQuery.

Этот плагин помогает показать в браузере данные, которые находятся в объектах и массивах JavaScript, избавляя вас от рутинных операций по созданию HTML-кода, экранированию специальных символов и т.п. Кроме того, он обладает очень интересными возможностями – например, позволяет обновлять созданный с его помощью HTML-код при изменении исходных данных.

Разумеется, jQuery Templates – не единственный и не первый «движок шаблонов», но у него есть большое преимущество перед альтернативными вариантами – поддержка со стороны jQuery Team. Это позволяет нам не бояться того, что этот плагин окажется заброшенным, и различные проблемы, возникающие при выходе новых версий браузеров, придется решать своими силами.

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

Читать дальше →
Всего голосов 201: ↑197 и ↓4+193
Комментарии67

Гравитационная система отопления частного дома. Естественная тяга в инженерных сетях высотных зданий

Время на прочтение19 мин
Количество просмотров23K

Гравитационная тяга в системе отопления и естественная тяга в вентиляции зданий

Гравитационная или естественная тяга- это явление, которое своими проявлениями нас окружает постоянно.

Именно ему мы обязаны сквознякам из окон зимой и быстрому таянью льда на водоёмах весной.

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

В данной статье мы разберём гравитационную тягу только в ограниченных объёмах рукотворных объектов, а именно: трубы систем водяного отопления и системы вентиляции высотных зданий.

 

Гравитационная тяга в трубах водяного отопления.

Гравитационная тяга в трубах отопления в чистом виде используется на пользу человека в безнасосных системах водяного отопления небольших сельских домов.

Ранее я слегка касался этой темы в статье про попутные и тупиковые системы отопления (см. статью по сылке).

https://habr.com/ru/articles/770464/

Теперь же стоит разобрать вопрос подробнее.

В гравитационной системе отопления циркуляция воды в замкнутом  контуре из труб и радиаторов обусловлена постоянно присутствующей разницей плотности воды в горячих и холодных участках труб. (см.рис.1)

 

Читать далее
Всего голосов 41: ↑40 и ↓1+39
Комментарии109

Какие проблемы возникают при разработке мобильных центров принятия решений

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

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

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

Как мы обезличиваем ПДн, сохраняя их смысл и качество. Чтобы тестовый стенд был полезным, будто там данные с прода

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

Год назад мы выпустили «Маскировщик» — промышленный софт, который обезличивает персональные данные, сохраняя их качество и смысл. То есть гендерный баланс; социально‑демографическую структуру; родственные связи; страну и оператора в телефоне; валидность паспортов, ИНН, СНИЛС. В общем, «Маскировщик» делает так, чтобы вы тестировали продукты и обучали ML‑модели будто бы на «живых» ПД.

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

Разобраться в алгоритмах маскирования
Всего голосов 14: ↑14 и ↓0+14
Комментарии7

Как мы поднимаем dev-стэнд(ы) и гоняем полноценные тесты api на каждый коммит

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

Мы в API отказались от большого количества unit-тестов в пользу большого количества интеграционных/системных, чтобы тестировать меньшим количеством кода большее количество функций, а также наблюдать за взаимодействием разных частей системы.

На самом деле мы просто решили писать тесты не на отдельные классы/методы, а на интерфейс api, которым пользуются клиенты - на сервисы этого API. Тестируя их, мы убиваем двух зайцев: проверяем логику работы сервисов api + форматирование результата.

А такое тестирование сопряжено с несколькими проблемами.

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии8

Разница между векторными и растровыми картами

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

При визуализации геопространственных данных часто используется картографическая подложка в виде Яндекс/Google/OSM/etc, которая в основном бывает двух видов - векторная или растровая. Однако, когда дело доходит до интеграции карт в свое приложение, то не всегда очевидно какой тип больше подойдет.

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

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

Свой NPM репозитарий Verdaccio + GitLab + Docker

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

Требовалось кешировать используемые в разных проектах NPM пакеты (+ хранить свои пакеты) на отдельном сервере.

Было решено делать это с помощью репозитария Verdaccio (по нему есть достаточно хорошая офф. дока), крутится это все должно в Docker, а разворачиваться на отдельном сервере через GitLab CI/CD.

Т.к. реализация данной схемы заняла у меня некоторое время (Хотелось бы и по меньше), решил написать короткий туториал по этой теме, с описание нюансов, которые для меня казались не очевидными.

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

Браузерные Push-уведомления на Javascript и PHP

Время на прочтение5 мин
Количество просмотров18K

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

В данной статье не будут "размусолены" принципы работы и тонкости Push уведомлений, только код

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

9 советов по повышению производительности Vue

Время на прочтение8 мин
Количество просмотров34K
В этой статье собрано девять советов о том как повысить производительность вашего приложения на Vue, увеличить скорость отображения и уменьшить размер бандла.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии19

Свершилось! Процедурные макросы в Rust 1.15

Время на прочтение5 мин
Количество просмотров16K

Ребята, свершилось! После долгих шести недель ожидания наконец вышла версия Rust 1.15 с блекджеком и процедурными макросами.


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


А что же это дает простым смертным? Практически бесплатную [де]сериализацию, удобный интерфейс к БД, интуитивный веб фреймворк, выводимые конструкторы и много чего еще.


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


curl https://sh.rustup.rs -sSf | sh

Впрочем, обо всем по порядку.

Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии28

Способы организации CSS-кода

Время на прочтение8 мин
Количество просмотров203K
Разработчик Бен Фрейн (Ben Frain) однажды заметил: «Писать CSS-код легко. Масшабировать и поддерживать его — нет».

К счастью, на просторах интернета можно найти множество решений этой проблемы. В данной статье рассмотрены основные киты структуры CSS-кода, а также интересные рыбы/млекопитающие поменьше.

Статья служит лишь памяткой или кратким справочником — для подробного ознакомления с методологиями настоятельно рекомендуется изучать оригинальную документацию.

Итак, начнем.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии61

ES6 по-человечески

Время на прочтение11 мин
Количество просмотров581K

От переводчика:
Предлагаю вашему вниманию перевод краткого (действительно краткого) руководства по ES6. В нём можно ознакомиться с основными понятиями стандарта.
Оригинальный текст в некоторых случаях был дополнен или заменён на более подходящий источник. Например, часть определения ключевого слова const является переводом документации с MDN.
Чтобы лучше разобраться в некоторых концепциях (для выполнения качественного перевода) использовалось описание стандарта на сайте MDN, руководство "You Don't Know JS: ES6 & Beyond" и учебник Ильи Кантора.


Перевод выложил на Гитхаб: https://github.com/etnolover/ES6-for-humans-translation. В случае нахождения ошибок пишите, исправлю.
Ссылка на оригинальный текст: https://github.com/metagrover/ES6-for-humans


Update 22.07.2016: добавил опрос про const


Содержание



Читать дальше →
Всего голосов 62: ↑60 и ↓2+58
Комментарии87

Как мы ABC анализ для ритейла делали, или «без пол-литра не разберешься»

Время на прочтение11 мин
Количество просмотров54K
Пословицы сами по себе не появляются… Иногда в такие дебри аналитики залезаешь, что поневоле рука к шкафчику с горячительными тянется (да ладно, мы знаем он есть в каждом офисе).



Но будем говорить немного о другом.

В ритейле, логистике, управлении складом и запасами есть такая вещь как АВС анализ. О нем уже написано немало теоретических публикаций. И вроде бы все относительно просто и понятно, но так ли это на самом деле?

Когда категорийный менеджер или маркетолог торговой сети вплотную подходит к проведению АВС анализа у него неизбежно возникает целый ворох вопросов, колебаний и сомнений. Именно с ними мы и будем работать в данной статье!

Пройдемся по алгоритму действий при АВС-анализе в продуктовых торговых сетях, исключениях из правил, которые обязательно нужно учитывать, покажем пример проведения анализа по товарной группе Алкогольных напитков (да-да, именно те пол-литра).
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии1

Умный кроп на основе энтропии

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



Но машины все еще не люди, и далеко не всегда будет вырезана нужная область. Старые способы типа вырезать миниатюру 100х100 из левого верхнего угла или из центра отходят на второй план, и на арену выходит смарт-кроп.
Читать дальше →
Всего голосов 47: ↑30 и ↓17+13
Комментарии17

Как определить дубликаты картинок с помощью PHP

Время на прочтение4 мин
Количество просмотров45K
В любом проекте человеческий фактор никто не отменял, и если пользователи самостоятельно грузят картинки на сайт – появления дубликатов не избежать. Когда доходит до тысяч файлов, глазами всего не пересмотреть, а повторяющиеся картинки мало того, что никому не нужны, так еще и занимают место, тратят ресурс и в конце концов тормозят работу.



Потому рано или поздно встает вопрос автоматизации процесса поиска повторов, и тут мы рассмотрим основные, а также попробуем в деле.
Читать дальше →
Всего голосов 45: ↑37 и ↓8+29
Комментарии24

50+ лучших дополнений к Bootstrap

Время на прочтение5 мин
Количество просмотров202K


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

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Всего голосов 123: ↑111 и ↓12+99
Комментарии25

Три особенности JavaScript, о которых полезно знать каждому Java/C-разработчику

Время на прочтение9 мин
Количество просмотров49K


Иногда JavaScript может вводить разработчика в заблуждение, а иногда — доводить до белого каления из-за своей неполной консистентности. Есть в JavaScript некоторые вещи, которые только запутывают и сбивают с толку. Самые известные из них оператор with, неявные глобальные переменные и странное поведение при операции сравнения.

Пожалуй, вокруг JavaScript разгоралось больше всего споров в истории программирования. Помимо его недостатков (отчасти рассмотренных в новых спецификациях ECMAScript), большинство программистов недовольны следующими моментами:

  • DOM, который многие ошибочно считают эквивалентом самого языка JavaScript, обладает очень неудачным API.
  • Когда переходишь на JavaScript с языков С и Java, то попадаешь в ловушку синтаксиса, который устроен не так, как в императивных языках. Это очень часто приводит к багам и сильно раздражает.

В результате JavaScript обрёл довольно плохую репутацию, которой он, в общем-то, не заслуживает. И чаще всего это связано с тем, что многие разработчики переносят на JavaScript свой опыт работы на Java или С/С++. Здесь разобраны три наиболее трудных случая, демонстрирующих разницу в подходах между Java и JavaScript.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии36
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность