• Как сжимать и конкатенировать js-файлы с помощью gulp?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Задача AMD/CommonJS (require.js и browserify соответственно) - разруливать зависимости а не динамически скрипты подгружать.

    Подключение скриптов - gulp-inject + main-bower-files
    Обработка скриптов - gulp-concat + gulp-uglify + gulp-sourcemaps (без сорсмэпов никуда)
    Обработка стилей - gulp-less (или scss тут как хотите) + gulp-autoprefixer + gulp-sourcemaps
    Таски которые обычно есть: build (подготовка к продакшену) и server (пребилдит приложение для разработки и запускает ватчеры).

    Есть масса статей с описанием разных подходов. Есть всякие бойлерплейты и сиды. Есть yoman в конце концов с кучей генераторов.
    Ответ написан
    4 комментария
  • Как изучить работу с временем?

    @Andy_U
    Посмотрите на модули pytz, tzlocal и еще на dateutil. Я ими воспользовался год назад для решения подобных проблем и мне их хватило.
    Ответ написан
    Комментировать
  • Как избавитсья от лишних запросов в Django?

    ur001
    @ur001
    Программист. Искатель. Сноб. Социальный ассоциатор
    Почти на всех больших проектах мне удавалось избегать использования .raw(), по этому я спросил вас, что там внутри. Почти наверняка есть обходные пути.

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

    object_list = list(MyModel.objects.raw(...))

    Для выполнения prefetch_related в raw запросах обычно используют prefetch_related_objects, хотя эта функция в Django не документирована:

    from django.db.models.query import prefetch_related_objects
    object_list = list(MyModel.objects.raw(...))
    prefetch_related_objects(raw_qs, ['fk_field', 'another_fk_field', ...])


    Для изучения когда и какие запросы выполняются удобно пользоваться консолью debugsqlshell из django debug toolbar (которую вы скорее всего используете).
    Ответ написан
    Комментировать
  • Как избавитсья от лишних запросов в Django?

    inlanger
    @inlanger
    Django программист
    Или сами прикрутите сами кеширование, или смиритесь. Для Django это нормально.
    Ответ написан
    Комментировать
  • Как организовать работу программистов в стартапе если ты не программист?

    viktorvsk
    @viktorvsk
    1) Ваше понимание общей архитектуры - отстой (ознакомьтесь хотя бы с терминами, что бы не писать такие вещи)
    2) Ваше понимание об инструментах реализации - отстой (проекты делаются не инструментами, а разработчиками. А разработчики порой знают одни инструменты и совершенно не знакомы с другими. И в то же время остаются гениальными)
    3) Ваше понимание управления проектами - отстой (управленческая деятельность вообще показательна в плане того, что без практики от теории толк только отрицательный)
    4) Ваше желание распараллелить процесс старо как мир и само по себе не работает (почитайте Мифический человеко-месяц)
    5) Ваше желание оставить все в тайне (даже от разработчиков? :) ) - отстой. С ним более-менее успешно справляется разве что майкрософт.
    6) Идеи сами по себе - отстой, ничего не стоящие.
    7) Ваше желание выучить программирование ради проекта - не работает.

    Что делать, если есть непреодолимое желание замутить проект исходя из личной идеи (продиктованной рынком или нет? ... неординарная мысль в наше время, неправда ли?):
    1) Заразить своей идеей технически грамотного человека, которому вы сможете доверять процентов, эдак, на 99. И доверить техническу сторону ему.
    2) Найти инвестора, который по счастливой случайности не заметит, что вы не знаете, как нужно работать, взять у него денег и нанять менеджера, который знает, что делать и кому сколько платить.

    P.S. Разработка ПО - настолько широкая тема, что за более чем 40 лет серьезного коммерческого применения даже самые базовые части процесса не могут быть формализованы и решены универсально.

    Нельзя сказать, что нужно делать. Можно сказать, какой путь вероятнее всего будет предпочтительнее в данном конкретном случае (задача + контекст + команда + ресурсы).
    Ответ написан
    Комментировать
  • Как написать свой транслятор одного языка в другой?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Не только у вас мечта отказаться от js. Свой транслятор явно не решение проблемы.
    Можете глянуть в сторону Dart. У него есть транслятор в js и, в будущем, гугл хочет сделать его универсальным языком для frontend'a и backend'a.
    Ответ написан
    5 комментариев
  • Django + fastcgi + nginx как заставить работать?

    @bromzh
    Drugs-driven development
    Зачем fastcgi? Это же не пхп, возьми нормальный питоновский веб-сервер. Вот, например, с подробной инструкцией.

    UPD. Вот бенчмарки.
    Ответ написан
    Комментировать
  • Что посоветуете для проверки форм?

    miraage
    @miraage
    Старый прогер
    Google дал им AngularJS, а они до сих пор пишут валидации на jQuery.
    Ответ написан
    1 комментарий
  • Как в jQuery назначить свое событие?

    mlnkv
    @mlnkv
    JavaScript Developer
    Вешайте события на объект window
    $(window).on("change_city", function() { /*   */ });
    
    $("some_element").on("click", function() { $(window).trigger("change_city") });
    // либо в другом нужном месте вызываете trigger
    $(window).trigger("change_city");


    Я так понимаю, вам это надо?
    Ответ написан
    3 комментария
  • В django есть querybuilder?

    abukin
    @abukin
    Программирую на Python
    Возможно стоит смотреть в сторону QuerySet базового класса.
    from django.db.models.query import QuerySet

    Как пример использования - группировка:
    query = Members.objects.all().query
    query.group_by = ['designation']
    results = QuerySet(query=query, model=Members)

    Все канечно зависит от конкретных задач. Опишите пример где ORM бы не хватило для построения функционала. В большинстве случаев можно обойтись им.
    Ну и всегда можно отнаследовать данный клас переписав несколько методов по своему усмотрению и использовать уже обновленный см. пример выше. Либо строить чистый SQL и использовать через cursor = connection.cursor() cursor.execute("SELECT foo FROM....") В этом нет ничего страшного. Так даже проще. Принцип KISS надо соблюдать. =)
    Ответ написан
    Комментировать
  • Почему создатели EcmaScript (Javascript) выбрали "use strict" для строгого режима?

    OlegTar
    @OlegTar Автор вопроса
    программист .NET, Javascript, Perl
    Я поразговаривал с Алленом Вирфс-Броком (Allen Wirfs-Brock), одним из создателеей EcmaScript 5.
    Спасибо за наводку @Rrooom

    Он ответил:
    The 'use' directive idea was in the air. Maybe came from Perl. The innovation was using s string literal to avoid syntax errors.


    Идея директивы 'use' витала в воздухе. Может быть она пришла из Перла. Инновацией было использование строкового литерала, чтобы избежать синтаксических ошибок.


    С другим создателем EcmaScript 5, Пратапом Лакшаманом (Pratap Lakshman) мне связаться не удалось.

    таким образом даже создатель EcmaScript 5 точно не знает, почему use)
    Ответ написан
    Комментировать
  • Как в питоне получить промежутки времени?

    @lega
    Можно изменить минуты, секунды через replace, либо создание нового datetime с нужными числами, а потом вычесть из now().
    Тут есть полезные примеры.
    Ответ написан
    Комментировать
  • Как вызвать функцию Python/Django как "триггер"?

    @bromzh
    Drugs-driven development
    Б-же, что за говнок*д.
    Почитай уже pep8, не плоди этот ужас форматирования дальше. Вдруг кому-то придётся поддерживать твоё творение?
    1) Лучше 4 символа, не 8.
    2) Ладно, имена функций можно в camelCase, но только если это нужно для совместимости. Ну допустим, что нужно. Но имена переменных? В первой функции - camelCase, в других случаях с_подчёркиванием. За что?
    3) Имена глобальных переменных лучше ПИСАТЬ_ЗАГЛАВНЫМИ. А ещё лучше вообще не использовать глобальные переменные, так как в локальной области они перекроются. Используй функции, люк. Или хотя бы классы с полями.
    4) Вместо
    def getTableName(type, realty_type):
    	if (type == "Rent" and realty_type == "Apartment"):
    		tableName = "maklers_rent_apartment"
    	if (type == "Rent" and realty_type == "House"):
    		tableName = "maklers_rent_house"
            return tableName

    Надо
    def getTableName(type, realty_type):
    	if (type == "Rent" and realty_type == "Apartment"):
    		rerurn "maklers_rent_apartment"
    	if (type == "Rent" and realty_type == "House"):
    		return = "maklers_rent_house"
            return None

    В моём варианте функция вернёт значение сразу, без создания доп. переменной и без выполнения заведомо ненужных веток (когда вариант найден). Мало того, что ты не используешь elif, что при определённых обстоятельствах принесёт тебе массу проблем, которые ты не ожидаешь, так ещё если в твоём варианте не выполнится ни одно условие, то будет ждать ещё один забавный сюрприз.
    UPD. И ещё, не рекомендуется использовать названия built-in функций и пакетов для имён переменных, методов и т.д. Например, в этой функции ты не сможешь использовать встроенную type, так как внутри функции она заменяется на локальную переменную. И прочитай про области видимости, на всякий случай.
    5) Вот эта строчка очень радует:
    soid = object.getAttribute("oid")
    myid = soid

    Зачем тут вторая переменная?
    Да и сама функция вызывается в цикле(!), при этом, в ней ты каждый раз теребишь парсер
    objects = doc.getElementsByTagName("object")

    Хотя этот код никак не меняется, и получить объекты надо строго 1 раз, а не дофига.
    UPD 2. Эта функция вообще очень странная. Ты сперва отдельно получаешь список объектов и отдельно их свойства. А потом ты ищешь эти id заново (да ещё и в цикле, ещё и каждый раз заново парсишь xml). Это полнейший идиотизм. Я не видел xml, но по логике, свойства объектов должны быть внутри объекта или как-то связаны с ним через id. Возьми нормальный парсер (а ещё лучше этот) и разбирай деревом. Ну и не стоит разделять объекты от свойств, а потом заново искать id.
    6) Зачем создавать переменную,
    sid = getId(i)

    если результат ты используешь только в одном месте?
    print ("ID: " + sid.encode('utf-8'))
    7) Забудь ты эти плюсы в строках
    print ("Деталі: " + sobject_details.encode('utf-8') + " " + sinfo.encode('utf-8'))

    Есть же удобное форматирование (когда надо что-то сложное):
    print("Детали: {0} {1}".format(sobject_details.encode('utf-8'), sinfo.encode('utf-8'))
    # или
    print("Детали: {details} {info}".format(details=sobject_details.encode('utf-8'), info=sinfo.encode('utf-8'))

    И быстрый join, когда простое форматирование:
    print(" ".join(("Детали:", sobject_details.encode('utf-8'), sinfo.encode('utf-8')))

    В общем, не пиши так больше, пожалуйста.
    8)
    propertys

    propertIEs же!

    Ну а по теме всё правильно сказали, ftp надо выкинуть и обрабатывать HTTP-запросы. Но, так как это невозможно, то:
    1) Просто запусти какой-нибудь крон и отслеживай изменения в файлах. При изменении запускай скрипт.
    2) Есть программы, которые запускаются как серверы, следят за изменением файлов в папке в реалтайме и могут отправлять всякие уведомления (в том числе и по TCP/HTTP). Можно настроить всё это на отправку HTTP-запроса на джангу. Но это создаст небольшой оверхед. Если всё на одном серваке (и фтп, и джанга), то первый вариант лучше.
    Ответ написан
    8 комментариев
  • Что нужно знать из математики Front-end разработчику?

    @maxyc_webber
    Web-программист
    алгебру и геометрию. немного статистики и матрицы
    Ответ написан
    Комментировать
  • Как хранить расписание в Postgresql?

    mpaytishev
    @mpaytishev
    Я для решения подобной задачи взял py-dateutil, он умеет разворавичать запись набора дат (повторяющихся событий) из формата iCalendar (RFC2445), например:

    DTSTART:19970902T090000
    RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5


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

    opium
    @opium
    Просто люблю качественно работать
    Просто нажать в хроме инспект элемент
    Ответ написан
    Комментировать
  • Создание лицензии для движка, что прочитать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я решил взяться за это дело нормально и подарить миру нормальную cms.

    Удачи. Получится как обычно.

    Не рассматривали схему, которую выбрали всякие gitlab, магенты и и т.д.? open-source + энтерпрайз редакции + суппорт.
    Ответ написан
    1 комментарий
  • Какие есть *DD? И какую-когда лучше использовать?

    iDoka
    @iDoka
    HW Design Engineer
    http://en.wikipedia.org/wiki/List_of_software_development_philosophies | grep driven
    Ответ написан
    2 комментария
  • Нужен наставник по веб-программированию, поможете?

    Kith_Debeetham
    @Kith_Debeetham
    Зануда
    либо спорт, либо программирование.
    Ответ написан
    4 комментария
  • Нужен наставник по веб-программированию, поможете?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Все спокойно относятся к тому, чтобы платить за курсы по английскому языку, или за репетитора по математике. Но как только дело доходит до веб, все уверены, что можно платить своей работой. Сходите и предложите учителю английского платить ему переводами, что он Вам ответит? Он скажет: «Нет, друг, я знаю, что проверять твои каракули буду дольше, чем если бы сделал перевод сам».
    Вам @Fesor уже накидал кучу информации, и в предыдущих вопросах тоже давали информацию, и вообще в сети этому посвящено многое, что Вы еще хотите? Ключевое тут — учитесь на реальной работе.
    Ответ написан
    5 комментариев