• Как сделать несколько типов пользователей в Django 1.7?

    @Singularity
    Да. Еще BoolField или https://docs.djangoproject.com/en/1.7/ref/forms/fi...

    В джанге должна быть обезатально только одна модель для пользователя. Все прибито гвоздями-плохая архитектура.

    Eсли у них силько разные поля в модели то прийдеться сделать два ModelForm и их использовать.
    Ответ написан
    Комментировать
  • Книги по php с описанием работы с PDO и SQLite на русском языке?

    bboytiwst
    @bboytiwst
    PDO это не будущее, PDO это настоящее, а то и прошлое т.к сейчас большинство используют ORM (которые реализованы поверх PDO)
    По PDO можно вот эту серию посмотреть https://www.youtube.com/watch?v=QtCdk459NFg
    PDO + SQLite https://www.youtube.com/watch?v=3hJC09uNTxE
    Ответ написан
    Комментировать
  • Yii2 или Laravel?

    hrhr99
    @hrhr99
    Отведал и Yii и Laravel

    На мой взгляд Laravel проще, так как очень похож на Codeigniter.

    Но в Yii очень много из коробки. Gii, CRUD.

    И вот сейчас делаю проект на laravel и очень лениво ручками писать то, что в Yii генерируется за пару минут.
    Ответ написан
    2 комментария
  • Yii2 или Laravel?

    SamDark
    @SamDark
    Yii2 core team
    Пробуйте оба и выбирайте самостоятельно. Я могу аргументированно уговорить выбрать любой из этих двух фреймворков, но вы так и будете мучаться «а не ошибся ли я» пока не попробуете оба.
    Ответ написан
    2 комментария
  • Как в админке организовать сохранение видео из youtube?

    @mr_ko
    Javascript, Node.js. React.js, Vue.js, Wordpress
    Если пользователь который заполняет поля в состоянии выделить хэш, то можно и так.
    Но для чайников проще скопировать весь урл, а хеш я через регулярку выделяю.
    Ответ написан
    Комментировать
  • Как выполнить запрос в базу на ajax?

    @bromzh
    Drugs-driven development
    Задержку по времени в синхронном коде вставлять нельзя. будет тормозить всё приложение (оно же однопоточное). Делай задержку в асинхронном режиме. Тебе надо написать функцию, которая будет выполнять запрос и проверять, заполнилась ли переменная нужным значением. Если да - то возвращай его, если нет - делай задержку и повторяй. ПХП я не знаю (и как там работать с корутинами тоже). Ты сам почитай, например, вот это. Я приведу пример, как это можно сделать на питоне с пояснениями, на ПХП сам перепиши. Итак:
    import asyncio  # модуль, который позволяет работать в асинхронном режиме
    import random
    
    # "сообщаем", что функция получения данных будет исполняться как сопрограмма
    @asyncio.coroutine
    def fetch_data():
        data = 0
        # Для примера, будем запрашивать данные, пока не выпадет 6-ка.
        # в реале, вместо получения рандома, ты должен делать запрос к БД
        while not data == 6: 
            print(data)
            data = random.randint(0, 10)  # вот тут делай запрос к БД и заполняй твою переменную
            yield from asyncio.sleep(3.0)  # асинхронная задержка, она не будет блокировать приложение
        return data  # когда вышли из цикла, в переменной data будет только нужная инфа
    
    # эта функция тоже будет исполняться как сопрограмма. без этого декоратора невозможно получать асинхронно данные через yield from
    @asyncio.coroutine
    def test():
        # получаем данные асинхронно
        # переменная data заполнится только тогда, когда в функции fetch_data выпадет 6,
        # она выйдет из цикла и вернёт значение
        data = yield from fetch_data()
        print('Bingo!', data)
        loop.stop()  # когда получили данные, останавливаем асинхронный цикл
        # ты не должен останавливать, чтобы каждый раз не запускать цикл при получении данных
        # ты должен просто вернуть данные клиенту    
        
    if __name__ == '__main__':
        loop = asyncio.get_event_loop()  # создаём цикл
        asyncio.async(test())  # асинхронно запускаем функцию
        # тебе это надо делать при каждом запросе на какой-то УРЛ
        # По-сути, в обработчике УРЛ ты должен просто вызывать функцию test, 
        # а она уже отошлёт данные клиенту
        loop.run_forever()  # запускаем бесконечный асинхронный цикл
        loop.close()  
        # если он завершится (у меня он завершается, когда получена 6-ка), надо закрыть цикл


    Ну или вариант попроще, на клиенте создай функцию, которая будет отправлять AJAX-запрос к серверу и ставь таймер в 3 секунды. Когда вернётся непустое значение, тормози таймер.
    Ответ написан
    Комментировать
  • Как выполнить запрос в базу на ajax?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Самый простой пример. jquery я думаю уже есть.
    function ajaxQuery () {
        // Загрузка
        $("div#loading").html('Загрузка...');
        // ajax
        $.post('/my_url/', {keyword: 'value'}, function (data) {
            // если есть результат от запроса
            if (data) {
                // если нашли что искали, что то делаем
                // убираем - Загрузка...
                $("div#loading").html('');
            }  
        });
    }
    // Вызываем нашу функцию каждые 3 сек
    setInterval( ajaxQuery, 3000)


    api.jquery.com/jquery.ajax
    api.jquery.com/ajaxcomplete
    Ответ написан
    Комментировать
  • Какой смысл в использовании шаблонизаторов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Шаблонизатор шаблонизатору рознь. Но в целом следует выделить общие задачи. которые должны решать за вас шаблонизаторы. С blade не работал и не вижу смысла есть есть twig.

    Безопасность. Это пожалуй можно поднять на верх. Типичная картина в шаблонах на php - <?= $someUserInput; ?>. Частенько это можно встретить в выводе инпутов, при формировании ошибок поиска (мол "по запросу $userInput ничего не найдено. То есть вставляем в инпут подключение наших js скриптиков, если это форма поиска - делимся с "другом" и забираем его сессию. Ну или еще какие забавные штуки можно делать. А ведь все очень просто решается. Ставим какую-то функцию, которая по умолчанию будет фильтровать XSS инъекции при выводе, и не будет этого делать только если мы попросим. Если писать просто на php - появляются отвратные функции, которые можно просто забыть вызвать. А с шаблонизаторами мы пишем красивые {{ someUserInput }} и можем спать спокойно.

    Помогают соблюдать принцип DRY. Современные средства шаблонизации (twig например), предоставляют вам возможность разделять шаблоны на блоки, переиспользовать их несколько раз, выделять макросы, наследовать шаблоны... словом все что угодно. лишь бы вы могли реюзать куски html а не копипастить их.

    Ограничивают полет фантазии разработчика. Далеко не новость что разработчики ленивые засранцы. Особенно молодые. Если им в шаблоне внезапно понадобились какие-то данные из БД, или данные связанные с запросом, большинство не будет париться и зафигачит нужный код прямо в темплейте. Так же некоторые грешат тем что часть бизнес логики размазывают по шаблонам. Так же встречал проекты отданные на суппорт, где чуваки в шаблонах разбирали через xpath ответы от сторонней апишки (которая использовалась вместо базы данных. То есть это дело было размазано по всему проекту). Рефакторинг в случае изменения апишки будет болью.

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

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

    Так как за все эти приятные вещи мы по сути ничего не платим (шаблонизатор должен компилировать все это в нативный php так что оверхэда просто не будет), почему бы не пользоваться?
    Ответ написан
    1 комментарий
  • Как передать id элемента через переменную jquery?

    Tesby
    @Tesby
    $("div#"+theActiveId).hide();
    Ответ написан
    Комментировать
  • Как в rails создать запись, если зависящая от неё запись ещё не сохранена и нет id?

    AMar4enko
    @AMar4enko
    Вы можете создать эти картинки без указания владельца, вернуть их ID в качестве результата ajax-запроса и сохранить эти ID в форме. При сохранении поста смотрите, какие ID картинок у вас вместе с формой пришли и им после сохранения поста проставляете ID владельца.
    Ответ написан
    1 комментарий
  • Что нужно знать помимо javascript для фриланса (в частности на oDesk)?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Из своего опыта работы на одеске скажу, что более всего ценится умение решать задачи в поставленный срок и в соответствии с пожеланиями заказчика. Это дает рейтинг и постоянных клиентов.
    При общении точно указывайте количество времени, которое займет работа. Крайне не рекомендую ввязываться в проекты, которые кажутся сомнительными при первом прочтении.
    Рекомендую работать с клиентами из развитых стран (США, Канада, Великобритания, Германия). Вариант с трекером времени самый лучший. Fixed price немного хуже.
    И учите английский.
    Ответ написан
    Комментировать
  • Как быть дальше с обучением веб-разработке?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Учите JS.
    Он применяется и в серверных и в клиентских технологиях.
    js/jquery (web), node.js(server), node-webkit (stand-alone app), Unity3D (game-dev)
    Ответ написан
    3 комментария
  • Как быть дальше с обучением веб-разработке?

    FanKiLL
    @FanKiLL
    Если вам понравился ASP.NET MVC то вам понравится и Ruby on Rails ибо ASP.NET MVC много фич слизали с рельсов, миграции, структуру, хелпер методы в шаблонах Razor - вообщем очень похоже.
    И это не скрывали сами разработчики, что ориентировались на рельсы. Вроде Scott Guthrie или Scott Hanselman об этом рассказывали в одном из скринкастов/докладов.

    Я к сожалению перестал следить за asp.net mvc после версии 3, сейчас там 5 версия наверно много нового и интересного.

    Если у вас уже есть опыт C# и вы можете писать на ASP.NET MVC, зачем куда то уходить?
    У вас там куча классных фич в ASP.NET MVC. ASP.NET WEB API например, чудесный linq, очень сильный Entity Framework.

    Единственный минус всего этого проприетарность Microsoft, но stackoverflow.com как то живёт с этим и довольно успешно.

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

    В веб всё уныло, формочка, занёс в базу, вывел с базы в другом месте.
    Ответ написан
    2 комментария
  • В чем отличия C++ и C# ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Тут все пишут про отличия. Рискну написать про сходства.

    Во-первых, о чём бы ни писала Елена и Си++ и C# - оба языки общего назначения. Даже больше, оказывается - C# ни разу не заточён под объёмную библиотеку (или фреймворк) .NET, однако с ним намного, много проще. Но если таки учитывать .NET, то для Си++ есть Boost и Qt, так что здесь скорее паритет - библиотек для обоих хватает.
    Во-вторых, сложность разработки на Си++ часто преувеличена. Разве только дисциплины надо поболее - выстрелить в ногу здесь попроще. Однако при этом Си++ будет чутка более гибкий и без танцев с бубнами unmanaged код не запустить на C#. Если внезапно потребуется.
    В-третьих, оба языка, раз они общего назначения, таки мультипарадигмальные. То есть они реализуют большинство практик. И хотя Си++ развивается довольно медленно, сейчас Си++ резко догнал C# в плане нереализованных фич (здесь как минимум лямбды). Ну и метапрограммирования у Си++ поболее будет (наглая ложь).
    В-четвёртых, оба языка кроссплатформеные. Впрочем, C# будет более кроссплатформенный, чем Си++. Разве только тот же Qt резко стёр границы, но это не значит почти ничего - C# компилируется в тот же самый CIL для всех платформ, Си++ - в совершенно разный код для разных платформ (i386, amd64, ARM Cortex-AXX).
    Наконец, в пятых, синтаксис у них действительно очень похож. Оба языка принадлежат к семейству Алгол-подобных, так что и брейсы, и остальные скобки здесь имеют примерно одно предназначение.

    Различия, которые казалось бы делают языки совершенно разными, таки не столь принципиальны на том уровне абстракции, на котором был задан вопрос. А различия действительно колоссальны: C# - managed код, что означает, что скомпилированный код будет исполнятся не на прямую в CPU, а на специальной виртуальной машине. Это съедает производительность, но сильно облегчает перенос кода. Ну и потом, C# - полупроприетарный ответ Java (что интересно, так как получается, что C# - более свободный, чем Java), которая была создана как замена сложному и небезопасному C++ в том числе.

    В общем, как человек, который начал давно с C#, продолжив C++ и по пути изучив Python, Java, D и другую ООП-чушь могу с уверенностью сказать, что разницы в общем-то и нет... То есть придётся немного проникнуться в чуть другую философию и выяснить, какие проблемы более новый язык пытался решить. Но если подходить к этому, как подошёл lookid, то это скорее не как изучать языки одной языковой группы, а как изучать один и тот же язык в разное время или в разных сферах.

    Почему так? Потому что ООП... Оно как бы ООП, ничего сверхъестесственного ни один язык не предлагает, это не Haskell, и тем более не Brainfuck. Так что принципиально общие вещи в них будут. То подмножество, что реализует машину Тьюринга - у них общие. Сами посмотрите: циклы, ветвления, передача аргументов, арифметика... С небольшими правками всё совершенно одинаковое. Да, Дмитрий совершенно прав, traits на C# не повторишь, ибо та аналогия будет уже не traits, однако... Это уже [programming_language] related, то есть это попытка совладать с особенностями.

    Немного пруфов: лично я ходящий пруф. Зная C++ и C# и немного Java я просто начал программировать на Python. При том, что Python даже алголоподобным не принадлежит. А всё потому, что логика одна и та же, хотя различий между Python и C(++|#) намного, много больше. Но не читая почти никаких туториалов, пройдясь галопом по европам с документацией сейчас я знаю python достаточно для серьёзного проекта.

    UPD. По поводу метапрограммирования... Таки рантайм рефлекшн шарпа тащит. И хотя ни макросов, ни шаблонов, ничего. Но изменять код на лету - это уже очень круто. По дефолту плюсы так не умеют, и хотя шаблоны с макросами тащат, сильно, очень сильно тащат и вытаскивают его, Си++, со дна, надо признать - рефлешн у шарпа будет поинтереснее. Извиняюсь за дезу.
    Ответ написан
    6 комментариев
  • Как быть дальше с обучением веб-разработке?

    Freika
    @Freika
    Senior Ruby on Rails developer
    За 7 месяцев практически с нуля выучил достаточно, чтобы взяли джуниором в одну из самых крутых rails-компаний в России. Максимум - год на это дело, одним словом. Чтобы попробовать языки и решить, какой больше нравится, почитайте об инфраструктуре php, js, ruby и python, о комьюнити каждого из них, пройдите хотя бы по половине курса для каждого языка на codecademy.com. Впечатление сложится о каждом языке. Обратите внимание, как у них с подключением библиотек, опенсорсом, за какой язык больше платят и на каком больше вакансий(если что, это пхп, но платят за него меньше всех). Выпишите в столбик результаты и найдите среднее арифметическое изо всех этих пунктов, которое в достаточной мере удовлетворит ваши ожидания. Затем принимайтесь за активное изучение. Начните писать что-то, что решает вашу задачу, начиная с каталога ваших книг с учетом прочитанных и перечитанных и заканчивая собственной системой учета финансов.
    Ответ написан
    7 комментариев
  • Есть ли какие-то требования к паролю по закону о персональных данных?

    Не смотря на то что в самом законе 152-ФЗ об этом и правда нет таких требований, сам закон существует не один, и как уже написал @OLS, есть Приказы №21 (для защиты ПДн) и №17 (для ГИС), где указываются общие меры защиты защиты без конкретики.
    В феврале 2014 ФСТЭК выпустил методичку "Меры защиты информации в государственных информационных системах" fstec.ru/tekhnicheskaya-zashchita-informatsii/doku... , где расписывает как он видит выполнение каждой из мер. (Т.к. меры в 21 и 17 приказе практически идентичны, то данную методичку можно использовать и для защиты ПДн)
    Таким образом для минимального четвертого уровня защищенности ПДн, "в случае использования в ИС механизмов аутентификации на основе пароля (иной последовательности символов, используемой для аутентификации) или применения пароля в качестве одного из факторов многофакторной аутентификации, его характеристики должны быть следующими:
    • длина пароля не менее 6 символов
    • алфавит пароля не менее 30 символов
    • максимальное количество неуспешных попыток аутентификации (ввода неправильного пароля) до блокировки от 3 до 10 попыток
    • блокировка программно-технического средства или учетной записи пользователя в случае достижения установленного максимального количества неуспешных попыток аутентификации от 3 до 15 минут
    • смена паролей не более чем через 180 дней"(с)
    Ответ написан
    1 комментарий
  • В чем отличия C++ и C# ?

    Nidora
    @Nidora
    Бонус 200 руб всем новым клиентам! VDS - 149 руб
    C# — объектно-ориентированный язык программирования с автоматическим управлением памятью, предназначенный для программирования на платформе .NET.

    C++ — кросс-платформенный язык программирования общего назначения, совместимый в большинстве случаев с C.

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

    Советую начать с C# на примерах.
    Ответ написан
    Комментировать
  • В каком случае мобильное приложение будет работать приложение быстрее. Быстрее подгрудаться товары в приложение?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    из базы данных с сервера (REST API) + кеш на девайсе + инвалидация кэша. Заодно прокачаетесь.
    Ответ написан
    1 комментарий