• Где можно потренировать навыки JavaScript OOP?

    deadbyelpy
    @deadbyelpy
    веб-шмеб
    Какой-то есть опыт с js?
    Если его нету. Начните с начал и т.п., иначе изучение чужого кода ничего не даст
    OOP в JS нет, в том понимании что вы предлагаете.
    Придется постигать дзен JS.

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

    Примеры хорошего кода: Design-Patterns-in-Javascript
    pdf.js

    Почитать:
    Масштабируемые JavaScript прило...
    Использование объектов для...

    Примеры заданий:
    клон Sticky Notes для винды
    Рисовалка на canvas
    Расширение для браузера, фильтрующее рекламу на странице без использования черных списков. Анализ содержания текста.
    "Умный собеседник" с распознаванием речи пользователя через google api
    Клиентский агрегатор новостей.
    Плеер в связке ВК + last.fm
    Шахматы на three.js
    Плагин/Модуль для фремворка (в процессе создания проектов, самому захочется добавить функционал)

    Может идеи вам и не понравятся.
    Есть другой вариант. Ищем интересный таск на freelansim.ru
    Делаем, в процессе получаем опыт. PROFIT.
    Ответ написан
    1 комментарий
  • PHP — Out of memory - хотя памяти выделили много, так почему?

    @fattan Автор вопроса
    программист
    Выяснилось вот что:
    Есть таблица. В таблице 70 000 записей. Общий объем таблицы = 7 Мб. Периодически происходит выборка всех этих записей, и запись их циклом через mysql_fetch_assoc() в массив. Out of memory происходит в основном во время работы этого цикла. Не справляется с записью такого объема данных в массив.

    Переписали код. Ошибки перестали валиться.
    Ответ написан
    Комментировать
  • MySQL и память

    @egorinsk
    Проверьте число макс. соединений и потоков (процессов на линуксе) MySQL. Сами понимаете, что каждый из требует память.

    Проверьте выставленные значения key_buffer_size (исп. MyISAM, один буфер на все потоки), thread_stack (стек нужен каждому потоку), net_buffer_length (свой у каждого потока), read_buffer_size (у каждог опотока свой), read_rnd_buffer_size, sort_buffer, pool_buffer_size, как вам выше написали.

    Вообще, MySQL довольно предсказуемая система и ест столько памяти, сколько ей скажут. Ссылочка dev.mysql.com/doc/refman/5.0/en/memory-use.html вам в помощь.

    Перестаньте пользоваться нехорошему вещами, вроде JOIN или fulltable row scan на больших таблицах. Они все тоже едят память, да еще как.
    Ответ написан
    Комментировать
  • Как преобразовать дату в нужный формат в php?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    $months = array( 1 => 'января', 'февраля', 'марта', 'апреля', 'мая',
        'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
    $date = DateTime::createFromFormat('Y-m-d H:i:s', '2018-09-12 19:00:23');
    echo $date->format('j ' . $months[$date->format( 'n' )] . ' Y');
    Ответ написан
    3 комментария
  • Как разместить 1 млн товаров?

    int03e
    @int03e
    В openCart и OsCommerce ф-ция поиска по товарам отрабатывает 8 минут

    А в остальном устраивает? Я не в курсе, но подозреваю, что можно туда прикрутить Solr или Sphinx, ситуация должна значительно улучшиться.
    Ответ написан
    1 комментарий
  • Как разместить 1 млн товаров?

    alekciy
    @alekciy
    Вёбных дел мастер
    Отпишусь пожалуй о своем опыте.

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

    Свое требует времени, но позволяет полностью контролировать движок и быть точно уверенным в нагрузках, которые он потянет. Кроме того гарантирует более выгодную схему модификации движка, т.е. супорт движка становиться проще как технически, так и финансово. А сапорт движка собственно и есть основная статья расхода для ПО. Что удалось получить на данный момент, так это каталог. Т.е. дерево категорий, карточки товара, админка для менеджеров (создать товар, добавить к товару атрибуты). Количество товаров не ограничено, количество и тип характеристик товаров так же не ограничено и ведется через админку (т.е. дополнительно кодить ни чего не нужно). Нагрузочные тесты показали, что при ~200 МБ ОЗУ под PHP движок держит 300 запросов/сек (при попадании в кэш страница генерится за 10-15 мс) долговременно (т.е. где-то до 25 миллионов хитов в сутки) и может держать пик в 1000 запрос, но не дольше 5 сек, потом начинаются валится 50-ые. Это при каталоге в 250 кпозиций по 10 характеристик на товар. В целом вся связка (веб сервер, субд, кэш) кушает 1-1,5 ГБ ОЗУ. При этом полная развязка данных и шаблонов, поэтому можно иметь сколько угодно вариантов верски, т.е. ни какой смеси из php+html нет.

    Поэтому в нашем случае напиливание своего показывает себя оправданной стратегией. Я вот не вижу, каким образом можно было бы получить подобные показатели на коробочных решениях, пусть даже и допиленных. Потому как пилить ядро коробочного продукта нет смыла, а без его запилки архитектуру не изменить. Ну и модифицировать свой продукт все же проще, чем супортить чужое + дописывать под него модули.

    Так что есть техническая подготовка, то есть смысл делать свое. В зависимости от опыта, общих требований я бы оценил данную работу месяца в три до года для одного разработчика на фултайме. Это до первого релиза. Ну а дальше стандартный супорт движка.
    Ответ написан
    Комментировать
  • Как безболезнено разряжать с себя статику?

    ngreduce
    @ngreduce
    Я заметил что в городе постоянно электризуюсь.
    И на свою печаль купил ноутбук с металлической пластиной вокруг клавиатуры.
    При разрядке слышится звук отключения устройства. А вы говорите дверь…
    Ответ написан
    Комментировать
  • Как бороться с ошибкой MySQL server has gone away?

    kotomyava
    @kotomyava
    Системный администратор
    Может не укладываетесь в wait_timeout?
    Посмотрите, сколько он у вас, и сравните со временем выполнения скрипта.

    Такая ошибка происходит при попытке записи данных в уже закрытое со стороны сервера соединение, или при падении процесса MySQL. Выше описан один из наиболее вероятных вариантов, но если не оно, то надо дальше смотреть лог MySQL, в первую очередь.
    Ответ написан
    1 комментарий
  • Какие минусы в использовании визуальных редакторов Elementor, PageBuilder и т.п?

    zorca
    @zorca Куратор тега WordPress
    Есть два подхода к разработке:
    • медленное протипирование, медленный дизайн, медленная верстка и медленная "натяжка" на WordPress.
    • Elementor позволяет сократить время прототипирования, верстки и всего остального, сведя эти все этапы в один

    Собрали все, удовлетворили нужды клиента - и тогда уже можно неторопясь и вдумчиво оптимизировать полученное, переделав верстку вручную. Это все равно получится быстрее, чем мучения с классическим методом.
    Пейджбилдеры плохо для оптимизации? Да, плохо.
    Пейджбилдеры быстро? Да, невероятно быстро.
    Каждый инструмент имеет свое назначение. Не факт что начальный вариант приложения взлетит и клиент будет готов платить за его оптимизацию. Поэтому иногда сайт так и остается на билдере. И ничего страшного в этом нет. Если же клиент захочет скорости, всегда можно переделать.
    Ответ написан
    Комментировать
  • Фокус на строке ввода в Firefox

    MTonly
    @MTonly
    Веб-разработчик с 2002 года
    Можно ещё нажать F6 (начиная с версии 12) или Ctrl+L.
    Ответ написан
    2 комментария
  • MySQL максимальный размер varchar - 255. При создании я указал длину 9000. И поместил туда текст такой длины. И он сохранился. Почему не обрезался?

    RomaZveR
    @RomaZveR
    CEO AlertMoney, PHP/Golang Developer
    В версиях до MySQL 5.0.3 varchar имел лимит от 0 до 255, после 5.0.3 от 0 до 65535
    Также учитывайте, что текст свыше 255 символов занимает L+2 байта.
    дока
    Ответ написан
    4 комментария
  • Что делать с сайтом, требующим отключить adblockplus?

    @Pautinaweb
    Ужас, какие же люди говнистые бывают! Заморачиваться как обмануть вебмастера, который дает ему необходимую информацию.
    Ответ написан
    Комментировать
  • PHP Fatal error: Maximum execution time of 30 seconds exceeded in Unknown on line 0

    Aco
    @Aco
    Заклинатель кода
    Могу предположить, что у вас скрипт впадает в рекурсию, залипает, апач начинает феерически форкаться что бы удовлетворить запросы, новые процессы так же залипают, система эпохально теряет ресуры (память и процессорное время), многое забивается в своп, остальные процессы становятся не дееспособными такие как ssh, ftp из-за отсутвия ресурсов. апач так же встает так как fork перестаёт работать. После некоторого времени скрипт убивается апач-форком по max_execution_time, ресурсы возвращается, солнце становится ярче, небо голубее, ssh быстрее. Как-то так. Итого: очень тяжелый скрипт детектед.
    Ответ написан
    5 комментариев
  • Можно ли сразу выбрать все товары и категории в мультимагазине Opencart?

    Weltmeister
    @Weltmeister Автор вопроса
    1. Покурив гугл, стало ясно: штатными средствами никак.
    2. Эту задачу можно решить в phpMyAdmin запросом к базе данных с перезаписью ID магазина.
    3. Или ещё проще: использовать готовый модуль Batch Editor.

    Возможно, кому-то пригодится.
    Ответ написан
    Комментировать
  • Что означают www, * и @ в имени типа А записи при установке DNS?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для домена example.org
    www A 144.76.217.162 - адрес хоста www.example.org
    * A 144.76.217.162 - адрес всех хостов домена example.org
    @ A 144.76.217.162 - адрес текущего корня (exapmle.org или установленного директивой $ORIGIN)
    Ответ написан
    Комментировать
  • Как распаковать составной архив tar gz?

    @nocfer
    Начинающий разработчик
    Сначала делаешь
    1. Скачиваете оба архива к себе.
    2. У первого архива (который с расширением .gz ) ставим расширение 001.
    3. У второго архива (который с расширением .1 ) — ставим расширение 002.
    4. И т.д. для всех частей архива

    Далее никакого 7-zip. Качаешь Total Commander. Открываешь
    Выделяешь все части архива, заходишь в меню "Файлы", там есть функция "Собрать файлы" (как-то так) .
    Собираешь архив. После этого выбираешь собранный архив и архиватором Total Commander разархивируешь.
    Ответ написан
    1 комментарий
  • Как ускорить Opencart при большом кол-ве товаров?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    17500 - это ничтожно малое количество записей.
    У Опенкарта основная проблема - говнокод на уровне обращений к базе данных. Много запросов в цикле и т.д.
    Решается обычно установкой MySQL на нормальную машину с хорошим объемом памяти и SSD, миграцией на InnoDB, анализом запросов и построением необходимых индексов. Кроме индексов необходимо отследить размеры буферов и т.д. В вашем случае объем памяти должен быть в районе от 8 GB RAM. Из решений рекомендую использовать не MySQL, а MariaDB или PerconaDB. Не используйте виртуальный (shared) хостинг.
    Еще поищите, есть хорошая утилита mysqltuner, она подсказывает оптимальные характеристики для СУБД.
    Включите лог медленных запросов и запросов неиспользующих индексы.
    Проанализируйте сетевой стек вашего соединения с MySQL, работа через сокет значительно ускоряет работу приложения. Некоторые горе-мастера выставляют адрес домена, который система переодически ресолвит и это увеличивает издержки на время соединения.
    При высокой посещаемости и некритичности актуальности данных используется подход с переписыванием слоя абстракции БД опенкарта с применением кеширования результатов в Memcached. Актуально для высокопосещаемых ресурсов с разного рода предзаказами или проверкой остатков непосредственно при добавлении заказа.
    Ответ написан
    4 комментария
  • Как настроить редирект на https в.htaccess?

    @Geograph
    https://www.reg.ru/support/hosting-i-servery/sajty...

    Вариант 1
    RewriteEngine On
    RewriteCond %{HTTPS} =off 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]


    Вариант 2
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]


    если оба первых варианта не помогли и возникает циклическая переадресация:

    Вариант 3
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Ответ написан
    8 комментариев
  • Online консультант на своем сервере

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    mibew.org/ru/ еще посмотрите, правда вот насчет просмотра историй чужих бесед менеджером не уверен.
    Ответ написан
    2 комментария
  • Как организовать защиту от парсинга сайта?

    metamorph
    @metamorph
    Первый: да. Еще и скриншоты параллельно снимать можно.
    Кстати, за динамические ссылки вас убьют сеошники.

    Второй:
    1. нет
    2. потенциальный бан/пессимизация
    3. не сработает, поскольку парсинг давно уже делается через огромный список прокси
    4. клоакинг в чистом виде, бан сразу

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