Задать вопрос
  • Почему не получается увеличить client_max_body_size в nginx для увеличения размера загружаемых файлов?

    @BorisKorobkov
    Web developer
    А почему вы решили, что дело в nginx? Возможно, он то как раз пропускает большие файлы, а кто-то другой (Apache, PHP, Python и пр. - в зависимости от того, что и как у вас настроено) блокирует.
    Читайте /var/log/nginx/*
    Ответ написан
    3 комментария
  • Почему не получается увеличить client_max_body_size в nginx для увеличения размера загружаемых файлов?

    castomi
    @castomi
    Серверный администратор - tickets.settin.ru
    Во первых не нужно это писать в каждом локейшене отдельно, с чего ты взял что это ограничение является проблемой?
    Достаточно прописать его один раз в http
    Что Вам пишет в логе nginx? Что пишет в логе доступа, а что пишет в логе ошибок?
    https://djbook.ru/rel1.4/topics/http/file-uploads.html
    Вот тут почитайте о том где хранится файл в процессе загрузки и последите за ним. Проверьте права на темп папку, может пользователю джанго просто не хватает прав записать файл туда.
    Проверьте достаточно ли свободного места.
    Ответ написан
    1 комментарий
  • Как вылечить сервер, который считает, что все место на диске закончилось, так как df -h показывает 100% занятого места на /, но df -ih показывает 27%?

    @Erelecano
    Админю сервера, починяю примуса.
    Для начала сделайте
    sudo tune2fs -m0.1 /dev/vda1
    И получите еще свободного места
    Потом уже разбирайтесь.
    Ответ написан
    5 комментариев
  • Как вылечить сервер, который считает, что все место на диске закончилось, так как df -h показывает 100% занятого места на /, но df -ih показывает 27%?

    @Fixid Куратор тега Linux
    Покажите du -sh /var/*
    Есть ощущение что место держит какой то удаленный файл. Попробуйте остановить и запустить (именно stop/start) nginx, apache и mysql.
    Ответ написан
    6 комментариев
  • Как вылечить сервер, который считает, что все место на диске закончилось, так как df -h показывает 100% занятого места на /, но df -ih показывает 27%?

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

    Сначала
    mount -o bind / /any/non-system/folder

    А потом уже анализируете /any/non-system/folder
    Ответ написан
    5 комментариев
  • Как подключить форму отправки email?

    Необходимо у формы указать обработчик и метод передачи данных, выше в вашем коде, обработчик - файл email.php в корневом каталоге сайта:
    <form id="contact-form" action="/email.php" metod="post">

    Данные отправлять используя ajax, делаю проверку на заполненность полей, для этого необходимы библиотека jquery и сам файл скрипта, например script.js лежащий в папке js в корне сайта
    Подключаем их в head:
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="/js/script.js"></script>

    Ниже сам скрипт script.js:

    $(document).ready(function(){
        $('#contact-form').submit(function(){
                var subject = $(this).find("#subject :selected").text();
                var name = $(this).find("#name").val();
                var email = $(this).find("#email").val();
                var message = $(this).find("#message").val();
    
                if(!!name && !!email && !!message){
                    $.ajax({
                        type: "POST",
                        url: "/email.php",
                        data: {"subject": subject, "name": name,"email": email, "message": message},
                        cache: false,
                        success: function(){
                            /* действия при успешной отправке */
                        }
                    })
                }
            return false;
        });
    });

    И последнее сам обработчик email.php, который отправляет письма, в последней строке указывается адрес получателя и заголовок письма:
    <? header("Content-type: text/html; charset=utf-8");
    
    	$text = "<b>subject</b>: ".$_POST['subject']."<br>";
    	$text .= "<b>name</b>: ".$_POST['name']."<br>" ;
    	$text .= "<b>email</b>: ".$_POST['email']."<br>";
    	$text .= "<b>message</b>: ".$_POST['message']."<br>";
    	$headers .= "MIME-Version: 1.0\r\n";
    	$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    	mail('mail@mail.ru', 'Заголовок письма', $text, $headers);
    
    ?>
    Ответ написан
    3 комментария
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • На upwork не нужны разработчики только под Android?

    @dearname
    С одной стороны это очень хорошо, так как вы еще студент. Большие деньги они, как правило, убивают инициативу в молодом возрасте, как мне кажется. Есть личный опыт, когда люди в 20 лет вдруг сразу начинали получать много(притом за не самую сложную работу) и считали, что все уже, не надо в других областях себя пробовать или интересоваться ими, в результате через год-два они полностью выбивались из рынка за слишком узкие взгляды. Так что не расстраиваетесь, зарплата у вас действительно очень маленькая, чтобы вы понимали я бывает сделаю два сайта простеньких на CMS за неделю где-то тратя на них по 3-4 час в день и за каждый могу получить от 4-5 тыс.руб. Хотя я такой же студент, как и Вы.
    Ответ написан
    1 комментарий
  • На upwork не нужны разработчики только под Android?

    opium
    @opium
    Просто люблю качественно работать
    Валить стоит
    Оркестров почти не бывает и скорее это разыскивается либо группа, либо два фрилансера.
    Ответ написан
    1 комментарий
  • На upwork не нужны разработчики только под Android?

    @Alexey_Kutepov
    Разработчик программного обеспечения
    если уже 7 месяц получаю такие гроши (оффициально не оформлен). В компании только я работаю с мобайлом - это не нормально в крайней степени и не законно. Я бы уже давно свалил
    Ответ написан
    6 комментариев
  • Как всё успевать и не быть роботом?

    @johannnn
    Чуть программирую)
    1 - Не нужно работать по 8 часов для денег. Тут вопрос в том, какой вы профессионал в своем деле. Оплачивается на рынке Ваша стоимость. Если допустим Вася профессионал то он работает 2 часа и получает 20 000, хочет, работает 8 часов в день и получает 80000, а вот Пете надо работать по 10 часов в день, чтобы заработать 80000. так что Оплата зависит от Вашей стоимости. Станьте профессионалами своего дела.

    2- Спать - да, обязательно 8 часов, но каждый день в одно и то же время, и главное обеспечить ранний подъем - в 6 утра. Тогда времени будет достаточно много, чтобы выполнить любую работу.

    3- Полезная еда. Скажу так - готовить можно 1 раз на 1-2 дня. Разбивая потом на порции в контейнеры, далее просто микроволновка - 3 мин и обед, ужин и т.д. готовы. Для примера, я 3,5 года прожил в Доминикане, где из рациона был рис макароны, курица и говядина. Готовка занимает час и все. а свежие фрукты и овощи дома должны быть всегда.

    4- Спорт - Купите домой штангу и 2 гантели, разборные. И занимайтесь в перерывах - Кстати которые Реально необходимо делать в работе - Сидеть и писать код 8 часов не реально. Точнее реально - но это сильная нагрузка для глаз. Обязательно нужно прогуливаться по парку. Ибо работая год в таком режиме можете потом работать на оплату лекарств для глаз) ну в лучшем случае Носить очки) (Я говорю о фанатеющем сидении за ПК реально не отходя от него.) Есть еще одни вариант - запишитесь в зал где есть бассейн. И ходите 1 раз в 3-4 дня.

    5- Самообразование - читайте перед сном, слушайте аудиокниги в дороге. Допустим пошли в магазин, слушайте книгу. Сейчас можно найти все что хотите.

    6 - этот пункт на самом деле прост. Как описал в первом пункте, становясь профессионалом, Вы сможете больше зарабатывать ИЛИ уменьшать время работы.И тогда Для хобби будет не 1-2 часа, а 3-4. И так далее. И если хобби действительно хорошее, и будет приносить Вам радость в первую очередь, то и в других сферах Вам будет комфортнее. Если уделять хобби много времени - то Вы станете в этом профессионалом. и люди захотят платить Вам т.к. Вы знаете больше их, с Вами будут советоваться и т.д. И чем больше этим заниматься, тем больше денег будет это приносить, и тогда придет момент, когда доход от хобби будет небольшим, но достаточным, чтобы прожить. И тогда надо решиться полностью этому посвятиться, и отказаться от прежней работы.

    Для начала пробуйте так - Делайте выходные от работы (субботу и воскресенье) и посвящайте хобби полностью. Так будет работа продуктивнее.
    Ведь что такое отдых - это смена Вида деятельности.
    Ответ написан
    Комментировать
  • Что посоветуете изучить для лучшего стиля письменного изложения?

    Читать больше книг. А также книги по риторике. Вот краткое мое изложение одной из таких книг, без воды:

    Риторика
    1. Читать вслух короткие газет¬ные статьи и сразу же пересказать их содержание собственными словами.
    2. Выговаривать медленно каждое слово (вдох ч/з нос), читать больше слов на 1 дыхании.
    2.1. Гимнастика — произносите зву¬косочетания «лалелилолу», «татетитоту. Читать в словах буквы о и а и т.д. (без тверд.)
    3. Разрабатывать разъяснения какого-нибудь предмета, слова определения. Например: Глобус - это вращающий- полый шар, раскрашенный в разные цвета; с помощью градусов широты дает представление о земной поверхности.
    4.Пересказывать рассказы. 5. Конспект статей (ключевые слова), воспроизведение его собственными словами (перефразируя). • Сокращаем статью (сжато вплоть до 1 пред¬ложения!).•Расширяем статью, добавляя собственное мнение.
    6 Доклад. В качестве упражнения для деловых сообщений выбра¬на тема, для которой основным материалом служат ста-тистические данные. Мы заимствовали эти сведения из ежегодника ООН, по данным которого годовой прирост населения в период 1958—1963 гг. в различных регионах мира составлял:
    Центральная Америка 2, 9% Южная Америка 2, 8% Европа 0,9%
    ФРГ 1,3%
    Азия 2, 3% Океания 2,2% США 1,7%
    Африка 2,0% СССР 1,7%
    Задание. Подготовьте на основе данных доклад: «Мировой демографический взрыв в 60-е годы.»1. Сначала выполнить см. доклад. 2. Разработать конспект ключевых слов и изложить сообщение. 3. После этого прочтите, пожалуйста, последу-ющие строки и проверьте, есть ли в них рекомендации, способные привести к улучшению сообщения. Надо убе¬дительно показать слушателям значение и различные ас¬пекты увеличения народонаселения. Некоторые выводы из приведенных цифровых данных:• Маленькое открытие: наибольший процент приро¬ста населения не в Азии и Африке, а в Централь¬ной и Южной Америке. • Правда, последствия прироста наиболее сказыва¬ются в многонаселенной Азии.• Латинская Америка, Азия, Африка далеко оторва¬лись от Европы, там приросте 3 раза больше.• Сверхдержавы США и СССР находятся на одном уровне.• В настоящее время прирост в Европе, в ФРГ превышает средний уровень.Общий вывод: преобладающий рост цветного населе¬ния.
    Европа вскоре окажется «на грани». Проблемы: регу¬лирование рождаемости, дефицит продуктов питания,индустриализация, новые могущественные факторы вли¬яния на прирост населения. (Здесь я показал лишь неко-торые. Теперь попытаемся извлечь информацию, проана¬лизировав структуру населения, причины различного прироста и т. д., чтобы основательнее развить комплекс проблем темы «Прирост населения». Но удовлетворимся представленным материалом, ведь мы ни в коей мере не стремимся отразить сегодняшнюю ситуацию, наша за¬дача — дать полезный материал для упражнений.).
    7. Эффективнее заучивать в течение 2 дней по часу в день, чем в тече¬ние 2 часов в один день, потому что во время пе-рерыва между занятиями подсознание продолжает закрепление материала в памяти.
    8. Юмор и шутки особенно необходимы, когда трудные места речи уже позади.
    9. Введение и главная часть доклада должны дать ответ на сле¬дующие четыре вопроса: Введение: 1. Почему я говорю?
    Главная часть: 1. Каково существующее положение («Что было, что есть?») 2. Что должно быть вместо этого? 3. Как можно изменить существующее положение? Заключение: содержит побуждение к действию: идти путем, о котором узнал оратор, и таким об¬разом изменить существующее поло¬жение.Заключение содержит обзор, кульминацию, окончание.

    Риторическое средство Воздействие Пример
    1. Пример, подробность, сравнение Все абстрактное представлять наглядно с помощью метких сравнений и примеров, а также образов и включаемых в речь коротких рассказов. Сообщение о том, что огромная Южная Африка Конго
    имеет всего 1,1 млн. жителей, наглядно с помощью
    сравнения: «Конго в десяток раз больше Западной Герма¬нии, и число жителей составляет всего 1/4 запад¬ногерманского населения»
    Английский политик Эттли срав¬нил выборы на Востоке со «скачками, в которых участвует только одна лошадь. Победитель установлен заранее».
    3. Образ (метафора), образный ряд Образность министр забил в свои ворота, Закон об обеспечении государственного бюджета был костылем, который помог преодолеть трудности только одного года
    4. Рассказ (narratio)
    5. Повтор
    Повторение - способ убеждения, с ярко выраженной эмоцией. если мы не победим, победить мы должны, мы победим непременно! «я бросил упрек оппоненту один раз, я уп¬рекнул его во второй раз. «Суть госу-дарства не в правительстве, суть государства и не в оп¬позиции. Сутью государства являются правительство и оппозиция».
    6. Разъяснение Я попросил господина Мейера поискать деловые бумаги; нет, я его не только попросил: я ему настоятельно рекомендовал, я от него потребовал принести наконец деловые бумаги
    Ответ написан
    5 комментариев
  • Как реализовать поддержку различных разрешений экранов для Android игры в Unity3d?

    shkilevk
    @shkilevk Автор вопроса
    Собственно в самом вопросе и отразил ответ. Плюс с этим становится понятнее
    Ответ написан
    Комментировать
  • FATAL EXCEPTION внутри onCreateOptionsMenu() на строке inflater.inflate()?

    @bimeg
    Эта строчка порождает рекурсию.

    getActivity().supportInvalidateOptionsMenu();
    Ответ написан
    Комментировать
  • Каковы основные принципы регистрации и авторизации через социальные сети OAuth2?

    hbuser
    @hbuser Автор вопроса
    Отвечу сам себе.
    Здесь есть полезная конкретная информация о технической реализации.

    А если вкратце, то...

    Для авторизации, регистрации используется все та же таблица 'users'. Вместе с обычной регистрацией и авторизацией, когда при регистрации (в самом простом виде) в таблицу 'users' добавляются email, password и login пользователя, а при авторизации проверяется соответствие введенных login'а и password'а существующим в базе данных, аналогичным образом используется и регистрация/авторизация через социальные сети. Только в данном случае источником данных о пользователе для его регистрации является не непосредственный пользователь, который вводит данные в форму, а соц. сеть. Регистрация в данном случае достаточно прозрачная, т.е. не видна пользователю. Схема примерно следующая (без особенностей работы Oauth-протокола):


    1) Пользователь выбирает вход через соц. сеть.
    2) Происходит обращение к странице авторизации в этой соц. сети, если человек еще не авторизовывался там. После ввода данных, а если он ранее авторизовывался, происходит запрос на разрешение использования его данных.
    3) Если человек отказывается, то на этом конец. Если дает согласие, то выполняется перенаправление на указанную в настройках Oauth страницу сайта.
    4) У каждого пользователя в соц. сетях есть свой уникальный идентификатор, который можно запрашивать. Для своей таблицы 'users' нужно добавить пару дополнительных полей (например, вот такие): auth_via (enum('native, 'vk', 'mailru', '...')) - для обозначения типа регистрации пользователя, и social_id - здесь будет храниться уникальный идентификатор в соц. сети. Если нужно хранить какие-то специфические данные этого пользователя из соц. сетей, то можно создать доп. поля для этих данных.
    5) После того, как пользователь дал разрешение на использование его данных, необходимо запросить нужные данные от соц. сети, в т.ч. и идентификатор пользователя в соц. сети. Вот здесь и начинается невидимый процесс регистрации. Нужно проверить есть ли в БД пользователь с таким social_id, если нет, то вставляем social_id, данные пользователя из соц. сети, по необходимости, в БД. Все, пользователь зарегистрирован.
    Если же данные о пользователе есть, то необходимо запросить актуальные данные из соц. сети, сравнить их с теми, что в базе и если они изменились, то обновить их и в своей базе данных, если нет, то просто переходим к следующему шагу.
    6) Создается сессия с данными пользователя.

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

    ca4a4b263fd1424085988c9deaeb6d5b.png

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

    'AND WHERE `auth_via`="native"'

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

    Как видно, для каждого пользователя в таблице создается внутренний (внутрисайтовый, если так можно выразиться) первичный, автоинкрементный ключ. Соответственно, нет разницы для логики сайта между пользователем, зарегистрированным через соц. сеть и через сайт. Если говорить об интернет-магазине, то, для привязки заказов к пользователю, можно использовать единый, внутренний идентификатор ID.
    Ответ написан
    3 комментария