• Можно ли использовать текстовые предложения как идентификатор в базе?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Можно ли использовать текстовые предложения как идентификатор в базе?
    Удалять запись/строку/документ не по ID, а по значению одного из полей (Вы же это спрашиваете?) - вполне себе можно и иногда даже нужно. Другой вопрос, что ID - это уникальная запись, однозначно идентифицирующая некоторую строку/запись/документ, как в MongoDB, так и в SQL-базах. Иначе говоря, при удалении по ID Вы однозначно удаляете конкретную запись, в случае же удаления по какому-то иному параметру, данный параметр может совпадать с другой записью/документом, и далеко не факт, что Вы удалите то, что хотели.

    В Mongo есть длинные _id из случайных символов с автоматической генерацией, но я не хочу их использовать для этих целей
    Вы главное саму логику генерации и положения ID не трогайте, она ещё не однократно может пригодится в будущем, а удалять записи/документы, при желании, можете по любому из удобных для Вас полей. Можете например, добавлять к документу собственное поле с именем "id", вписывать туда что Вам угодно/удобно, и идентифицировать и удалять документы по этому полю.
    Ответ написан
    3 комментария
  • Можно ли поверить в заявление, что на на VDS с 4Гб ОЗУ крутится 20 сайтов Bitrix с посещаемостью по 1-2К в сутки каждый?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Можно ли поверить в заявление, что на на VDS с 4Гб ОЗУ крутится 20 сайтов Bitrix с посещаемостью по 1-2К в сутки каждый?
    При всей моей не любви к этой системе и любви к VDS (особенно полноценным VDS на KVM или других "полноценных" гипервизорах, особенно к тем что на SSD, а в идеале - с полноценным внешним SSD), и фактической необходимостью сталкиваться в т.ч. и с этой CMS довольно не редко (не по своей воле)...

    Давайте считать математически. 1-2к в сутки, среднеарифметическая будет 1.5к/сутки. Далее, 20 сайтов умножаем на 1.5к - это будет 30к в сутки. Как Вы понимаете, нагрузку на систему создаёт не сам кол-во битриксов, а сам битрикс как таковой. То есть, формально это 1 сайт с 30к посещений в сутки. Делим 30к на 24 часа в сутках, получается 1.25к посещений в час или 21 посещение в минуту, что в свою очередь предполагает отдачу страницы не более чем за 3 секунды (пусть даже за 2 секунда на страницу, с учётом всяких погрешностей). Что для Битрикса - более чем реально.

    Предполагается, что на сервере размещены не статические лендинги, а полноценные сайты использующие БД
    Откровенно говоря, я не помню сайтов на Битриксе, не использующих БД вообще.

    интегрированные со сторонними средами типа 1С (обмен номенклатурой, заказами) и т.п.
    Это не самая ресурсоёмкая часть в общей системе, к тому же, обмен данными обычно происходит "от случая к случаю", а не "постоянно".

    Плюс сервер можно "заоптимизировать" очень неплохо, например использовать Nginx вместо Apache'а, использовать PHP7.x вместо PHP5.x (который примерно вдвое быстрее и с недавних пор стал поддерживаться битриксом), плюс кэширование самого битрикса или, на крайний случай вообще использовать Varnish, которому в большей степени всё равно, что у Вас там на на бекенде, и даже если бекенд генерирует страницу по 30сек., Varnish будет "выплёвывать" её прямо из оперативки за считанные доли секунды. Ну и т.д.

    Иначе говоря, при должном умении, можно запустить не только 20, но и 50 и 200 сайтов на битрикс, на сервере подобного "масштаба". Препятствовать тому могут лишь некоторые тонкости (некоторые специфические требования к таким сайтам, при которых иногда и для 1-го сайта ресурсов будет маловато), но, ни одного из таких специфических требований - Вы не указали.
    Ответ написан
    8 комментариев
  • Как изменить текст checkbox который отправляется на почту?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    При включённом отправляет "on" как изменить этот текст?
    <input type="checbox" value="Текст который отправляется на почту" name="checkbox_name" />


    При выключеном пустота - как добавить текст?
    <input type="hidden" name="checkbox_name" value="Текст при выключенном" />
    <input type="checbox" value="Текст который отправляется на почту, при включенном" name="checkbox_name" />
    Ответ написан
  • Стоит ли начинать разработку сайта сразу с API?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    например можно не трогая фронтенд сменить фреймворк или даже язык.
    В большинстве случаев, можно сменить фреймворк не трогая фронтэнд. Например, если Ваш фреймворк использует шаблонизатор "Twig". В некоторых случаях, так же можно сменить язык, подвергая шаблоны минимальной модификации, которую можно провести через "Найти/Заменить". Но, я бы на Вашем месте не сильно обольщался на эту "возможность".

    Ну например выбрать 10 новостей в нужном формате
    делаем GET запрос
    Обычно делают POST-запрос, и не в формате адресной строки (GET-параметров), а отправляется так же, запрос в формате JSON. Обратите внимание на ключевое слово "обычно", т.е. не всегда.

    Применяется такой подход к проектированию?
    Это скорее подход к разработке, уровня "клиент-сервер", и/или REST API.

    И может есть готовые решения о которых можно почитать.
    Не совсем понятно, какое именно готовое решение Вы хотите получить. HTTP-клиенты и обработка JSON-данных, встроена во многие языки, или реализована в виде готовых библиотек.

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

    Насколько я понимаю, Вы хотите обернуть РСУБД (SQL-БД), работающую через (unix-)сокет, в более примитивные API, выдающие ответы в формате JSON? А чем Вас ответ в формате "SQL result resource" не устроил? :) При использовании РСУБД (и не только) Вы так же можете сменить и шаблонизатор, и фреймворк и язык и всё остальное, а необходимый функционал написать на уровне самой БД, в виде хранимых функций/процедур, без дополнительных, ненужных цепочек передачи данных.
    Ответ написан
    4 комментария
  • Как предотвратить перенос каждого слова на новую строку у абсолютно спозиционированного элемента?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Я думаю, что вот так. Других способов "с ходу" в голову не приходит.

    P.S. Как видите, в первом случае блок занимает столько, сколько его контент. Во втором случае - не более 160px.
    Ответ написан
    Комментировать
  • Как сделать Hardware monitor с локальных машин на сайт?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Алгоритм примерно следующий:
    1. Пишите программу, которая будет получать текущие данные о состоянии железа, интересующие Вас (язык и прочие параметры - исключительно на Ваш вкус, от Java и C# до Ассемблера)
    2. На веб сервере:
    а) Создаёте небольшое приложение, которое будет получать и сохранять полученные данные в БД или другое хранилище. Как вариант, - это приложение может реализовывать некоторые API
    б) Открываете прямой доступ к БД или другому хранилищу на сервере, куда программ(а, ы) из п.1 будут сохранять необходимые данные (P.S. Вариант из пункта "а" выглядит лучше)
    3. Получаете данные из хранилища и отображаете их на сайте.

    P.S. Тонкости реализации зависят от Ваших конкретных задач и требований.
    Ответ написан
  • Автоматическое обновление в Sublime Text 3 + BS работает только при сохранении документа, как сделать так чтобы стало как в Live Preview "на лету"?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Browser Sync работает только при сохранении документа, как сделать чтобы стало как в LiveReload обновление «на лету»?
    Вы не совсем корректно ставите вопрос. BrowserSync работает не при "сохранении" документа, а при его физическом изменении, на диске, с которого (диска) он этот документ и читает. Соответственно, что бы BrowserSync отображал изменение после "любого нажатия клавиши", нужно, что бы каждое изменение вызывало сохранение документа. Как это сделать и возможно ли это сделать вообще, в каждом конкретном случае - зависит от редактора, которым Вы пользуетесь, думаю, что ответ на этот вопрос (как автоматически сохранять каждое изменение в редакторе) Вы с лёгкостью найдёте в его документации или в виде какого-то плагина для оного (если конечно, Ваш редактор их поддерживает).

    P.S. Не понимаю, какую проблему составляет нажатие CTRL+S и зачем Вам смотреть на документ в неконсистентном состоянии, но... не буду спрашивать :)

    P.P.S.
    как это реализовано в Brackets LiveReload
    Подозреваю, что "LiveReload" про который в данном случае идёт речь - является частью самого Brackets'а, что позволяет ему считывать текущее содержимое файла, а так же отслеживать события "документ был изменен" минуя жесткий диск.
    Ответ написан
  • Как излечить сайт от вируса?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Стал смотреть что изменилось, файлы темы такие же, сравнил базу - такая же, зато много новых непонятных файлов в файлах вордпресса, измененный htaccess который редиректит на внешние ресурсы
    Я бы для этого порекомендовал воспользоваться GIT'ом или другой VCS, сможете отследить изменения "до буквы".

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

    смена базы и темы ничего не меняет
    А должно, смена темы, как минимум - должна менять тему.

    Взял другой хостинг , залил исходный вариант сайта туда - прошло несколько дней и он целый и невредимый. неужели дело в хостинге?
    Возможно в хостинге, возможно в том, что кто-то хранит пароли от FTP не надёжно. Возможно в том, что взломали соседний сайт, а у Вас где-то стоят права "777" что позволяет заливать файлы Вам на аккаунт или... (1000 других причин).

    Просто опасаюсь как бы вирус снова не проявил себя на новом хостинге.
    При использовании популярных CMS, в частности Wordpress, слово "вирус" будет Вас приследовать почти круглосуточно. Что примечательно, около 15% случаев последнего массового взлома WP были произведены через баг в плагине, который должен быть предотвращать взломы, повышать безопасность и т.д.

    Как обезопасить этот сайт от вируса,
    варианты:
    1. Не использовать популярные CMS или как минимум - не устанавливать на них сторонние плагины, не прошедшие тестов на безопасность (а это примерно 99% плагинов практически любой CMS)
    2. Не использовать дешевые непроверенные хостинги, а ещё лучше - обзавестись личным VPS
    3. Делать бекапы, ежедневно как минимум (или после каждого изменения на сайте)
    4. Подключить сайтовый антивирус (с этим вопросом - в поддержку хостера)

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

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Вопрос , как в браузере открыть адрес modules/news/1.php из корня web/index.php?
    Если при входе на сайт, по адресу "/" (т.е. "главная страница") отображается файл web/index.php, а нам нужно открыть уровнем выше папку moules/news/ и с нее открыть файл 1.php - то логически адрес бы выглядел примерно так: "/../modules/news/1.php". Но, только если в настройках веб-сервера такой доступ разрешен и допустим (что вряд ли). Иначе говоря, наиболее вероятный ответ на Ваш вопрос - "никак".

    Если Вы имеете доступ к конфигурации веб-сервера - можете попробовать сделать для этой страницы "специальный" адрес, или на отдельный URL вынести всю папку "modules/news".
    Ответ написан
    Комментировать
  • Как сделать методом php - отображение текста из файла txt?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Можно это сделать без MySQL ?
    Если у Вас маленький объём данных, <200-500Мб, в общей сложности и нет необходимости в некоторых возможностях "толстой" БД, такой как MySQL - можете взять SQlite3, его поддержка встроена в PHP с версии 5.3+ (кажется).

    Как это делается - берёте любую программу, например, SQlite maestro, создаёте БД (файл). Добавляете данные в БД (базу данных), пишите SQL-запрос, что-то вроде... SELECT * FROM table1 WHERE city = 'Москва'; и... пользуетесь.

    Если Вы более точно конкретизируете вопрос - получите более точный на него ответ :)
    Ответ написан
    Комментировать
  • Как исправить некорректное отображение блока в мобильных?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Наверное как-то так:
    47ee564130ef4646974aa3a2f48c5964.png
    Ответ написан
    Комментировать
  • Можете посоветовать фреймворк и плагины (PHP или др.)?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Можете посоветовать фреймворк и плагины (PHP или др.)?

    PHP
    1. Фреймворк - Laravel, Symfony - два лидера бекенд-разработки на ПХП в данный момент, в мире
    2. Плагины, тысячи плагинов (пакетов) для Ваших PHP-приложений, найти можно что угодно, от редакторов DOCX и пр. подобных форматов, до WebSocket-серверов
    3. Обязательно ознакомиться с тем, что такое Composer и как его использовать

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

    P.S. CMS рекомендовать не буду, по морально-этическим и религиозным причинам.
    Ответ написан
    7 комментариев
  • Простой бесплатный VPS с минимумом ресурсов?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Где можно найти бесплатный VPS для таких целей?
    1.На амазоне
    2. Обзавестись виртуальной машиной, у себя на компьютере
    3. Где-то ещё

    т.е не о каких высоких нагрузок речи не идет
    VPS/VDS берут не только и не столько из-за высоких нагрузок, сколько из-за возможности настроить всё как удобно Вам, а так же практически полной изоляции от других клиентов, возможности конфигурировать ПО по своему усмотрению и т.д.

    P.S. А лучше постарайтесь выделить сумму в 50-100 руб./мес., если оно Вам реально нужно и выберите какой-нибудь дешевый VPS, из списка, например тут.
    Ответ написан
    Комментировать
  • Denwer. Как опубликовать несколько сайтов в локальной сети?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как сделать что бы можно было открывать их из сети по имени?

    Добавить в файл C:\Windows\System32\drivers\etc\hosts соотв. записи, на всех компьютерах в локальной сети, с которых нужно эти сайты открывать или зарегистрировать эти домены и привязать их к нужному IP
    Ответ написан
    5 комментариев
  • Почему при соединение с базами данных phpmyadmin выдает такую фигню?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Почему при соединение с базами данных phpmyadmin выдает такую фигню?


    Возможно, по тому, что вот эта функция:
    $result = mysqli_query($connection, 'SELECT * FROM `articles_categorie`');
    требует первым параметром "mysqli_connect()", а не "mysql_connect()" как у Вас?
    Ответ написан
    Комментировать
  • Где разместить конфиги для виртуальных хостов в nginx?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    так понял это была старая конфигурация при которой файлы из /etc/nginx/sites-available/ инклудились в nginx.conf
    Это не "старая конфигурация", а (как уже озвучил оратор выше) - дефолтные настройки, для дистрибутивов происходных от Debian (в т.ч. Ubuntu и масса других). Конфигурация ориентирована на хостинг-провайдеров, что бы можно было удобно "отключать" сайт, а не "полностью удалять" его (или его конфиг).

    Где хранить конфиги - где Вам удобно, никакого практического занчения это не имеет, но исторически/традиционно конфиги располагаются в /etc, а конфиги отдельного приложения в /etc/имя_приложения, дальнейшее их размещение - дело вкуса/опыта/здравого смысла/личных предпочтений. Лично меня, полностью устраивает вариант размещения конфигов (это тот вариант, который Вам часто встречается) принятый в Debian.

    На счёт того, инклюдить ли конфиг каждого сайта в основной конфиг - абсолютно дело вкуса, если у Вас 1.5 сайта, то смысла особо заморачиваться нет и можно всё в основной конфиг вписать, если у Вас дюжина сайтов с разнами настройками - думаю, стоит вынести их настройки в отдельные файлы. А если у Вас сотня сайтов, и некоторые из них периодически надо отключать (за неуплату например) - debian-вариант конфигурации (описанный ранее) выглядит вполне привлекательно.
    Ответ написан
    Комментировать
  • Как правильно работать с ветками в Webstorm?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    1. Как объяснить это вебшторму? Что теперь нужно, во-первых, обновить все файлы из новой ветки и во-вторых, что изменения тоже надо пушить в новую ветку.

    Есть два способа:
    1. Влить в нужную ветку (которую обновляем) ветку (из которой берём файлы для обновления
    2. Взять все файлы из нужно ветки (скопировать их куда-то), переключиться на ветку которую нужно обновить, перезаписать в ней все файлы (ранее скопированные)

    2. Как при этом время от времени забирать изменения из ветки first? И потом обратно возвращаться в свою?
    Время от времени вливать в нужную ветку - ветку first.

    3. И как ничего нигде не испортить?
    Не использовать "force" и прочие подобные варианты "насилия". В таком случае, "испортить" что-то будет довольно проблематично.

    P.S. Про слияние ветвей в интернете довольно много информации, по этому ссылки не привожу.
    Ответ написан
  • Почему не видит файлы в другой директории или формат не тот?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Подозреваю, что проблема с правами и Nginx'у запрещено читать файл index.php. А если эту страницу должен выводить не Nginx, а PHP-интерпретатор - возможно, права доступа не позволяют прочитать эту страницу ему.

    Попробуйте заменить "index.php" на "index.html" или на "index.nginx-debain.html", с больше вероятностью это должно помочь.

    P.S. Для мониторинга ошибок, в *nix-программах, и в Nginx в частности, есть такие штуки как "error log" и "access log".
    Ответ написан
    4 комментария
  • 14 гигов кэша это вообще нормально?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    И быть может подскажите как его автоматически чистить, потому что это жесть)))
    Думаю, это должно Вам помочь.

    Это вообще нормально?
    В большей сложности - да. Это гораздо лучше, чем случаи, когда памяти дофига, а используется 3%.

    Кэш не чистил вообще никогда)
    Вообще, за этим должно ядро следить, в первую очередь, а уже потом администратор.

    И быть может подскажите как его автоматически чистить
    Добавить задачу в Cron.

    Но вообще, насколько я помню (могу конечно и ошибаться) это цифра показывает кэш страниц, т.е. кэш дисковой системы. Иначе говоря, кусок жесткого диска загруженный в оперативку. Что в свою очередь делается для снижения нагрузки на дисковую систему. Подозреваю, что у Вас на сервере неплохая нагрузка на I/O (т.е. диски, аки HDD/SDD). Я бы Вам рекомендовал мониторить нагрузку на диски после чистки кэша и внимательно изучить график увеличения нагрузки на диск после чистки кэша, исходя из этих данных можно будет понять, как часто это надо делать и надо ли делать вообще.

    3 дня парил мозг с mysql, как оказалось он падал из-за нехватки оперативной памяти
    MySQL хоть и далека от идеала, но на моей памяти, именно из-за "нехватки оперативной памяти", по моему, не падала ни разу. У базы есть довольно конкретные ограничения (у подавляющего большинства параметров), на размер оперативки который она может использовать, и я не редко наблюдал такую картину, когда на сервере 16Гб памяти, а база упирается в 1.5Гб, "скрипит", тормозит, но оперативку не использует, хотя свободной памяти ещё больше половины. Скорее всего, MySQL падала не из-за "нехватки памяти", а из-за некорректных настроек, касающихся памяти.
    Ответ написан
    2 комментария
  • Элементы в модальном окне теряют резкость?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Скорее всего, с какими-то стилями, которые по умолчанию присваиваются элементам этого окна, так как, как минимум, наклонное начертание шрифта для всех элементов, что приведена на картинке - не есть стандартное.

    P.S. Похоже на Ваш случай?
    Ответ написан
    Комментировать