• Почему Sphinx при поиске ищет не по запросу, а по его на части?

    opium
    @opium
    Просто люблю качественно работать
    Потому что вы включили искать минимум по двум буквам, посмотрите в моем профиле на Хабре статью про поиск сфинкса там подробно это разъяснено
    Ответ написан
  • Какой сервис анализа конкурентов(интернет-магазинов) лучше?

    compibox
    @compibox
    Full-Stack Developers
    Ответ написан
    Комментировать
  • Как реализовать switch case в python?

    sim3x
    @sim3x
    if you in settings.keys():
        settings[you].put(argument)
    else:
        pass
    Ответ написан
    Комментировать
  • Как вывести полный список найденых данных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) читать доку
    2) понимать как делается выборка из базы
    3) понимать что возвращается в $result
    4) перестать использовать устаревшие функции
    5) Не пихать в запрос строчки из $_REQUEST без проверки
    5.1) в идеале использовать для запросов подготовленные выражения
    6) найти инструкцию по созданию сайтов написанную позже 1999 года.
    Ответ написан
    Комментировать
  • Есть ли планировщик задач для клиента?

    Rupaka
    @Rupaka
    Изучаю html уже 7 лет
    Вариант простой +- это Trello
    Вариант подороже но получше это Planfix

    Трелло можна интегрировать с телеграмом достаточно просто, и заказчик сможет и нотификации получать.
    Ответ написан
    2 комментария
  • На сколько VueJS сегодня востребован на рынке труда?

    Тоже задался этим вопросом, и сделал анализ вакансий front-end разработчиков в Московских компаниях, где в требованиях упоминали Angular, React и Vue. Вот что получилось:
    Angular - 33;
    React - 25;
    Vue - 2.
    Востребованность очевидна, но многие писали так: "Опыт работы с Angular, либо другим фреймворком". Такие ответы я тоже включал в вышеприведенную статистику, и плюсик отдавал именно Angular, т.к. он конкретно был написан, хотя думаю это не совсем правильно.
    Многие пишут, что смотреть нужно именно на задачи выполняемые фреймворком, а не на его популярность. Может оно, конечно, и правильно, но для новичка это важно, т.к. если фреймворк популярен, то куда не плюнь, везде и всюду есть уже ответы по реализации той или иной задачи, что не скажешь о новой технологии. Хотя, может, оно и к лучшему, т.к. придется думать больше своей головой, чем заниматься копипастом и при этом ничего не понимать. Как, например, куча недоспециалистов, которых породил WordPress своей легкостью и кучей готовых решений (ничего не имею против этого движка, но вот к "специалистам", коим считает себя каждый второй школьник научившийся устанавливать плагины, есть огромная прямо таки ненависть - учитесь думать своей головой!!!).
    Так, если брать в расчет Angular и React, то по ним куча туториалов: видео, статьи, книги и т.д. Vue таким количеством пока что похвастаться не может (это будет и не правильно, если сравнивать по такому критерию, т.к. Vue появился сравнительно недавно), но зато у него просто замечательная документация, которая на русский язык переводится даже быстрее, чем на английский (Vue просто китайский проект), для многих, не знающих английский (а нужно бы знать), это будет большим плюсом.

    Что касается Vue, то его комьюнити очень быстро растет с каждым днем. Также существующие статьи, сравнивающие его с другими фреймворками, отдают предпочтение именно ему. Причем там пишут не только люди, для которых Vue стал первым фреймворком (звучит пошловато, ну да ладно), но те, кто уже работал с другими, вроде Angular и React.
    Отдают предпочтение из-за того, что он довольно легок в использовании (это для новичков), а также быстрее и т.д. (для более продвинутых). Отсюда, возможно, опасность перехода всех JQuery приверженцев, а в следствии полный интернет говно-решений, которые начнут копировать люди не хотящие думать своей головой, а затем и ненависть к самому фреймворку из-за испорченной репутации. Это, конечно, не должно стать проблемой при выборе, но посчитал нужным, что все таки указать нужно. Хотя, опять таки, это просто моё мнение, и не факт, что оно правильное.
    По использованию - встречается в вакансиях он хоть и не так часто, но все же появляется, а это уже о чем-то говорит. Тем более если учесть факт, что появился он сравнительно недавно.
    Также Vue включили в Laravel, а это уже серьезная заявка. Также встречал ответы, что gitlab также использует Vue.

    Вот такой большой ответ, почти как статья, который выражает мое мнение. Надеюсь, что хоть чем-то помог, если не запутал еще больше))
    Ответ написан
    1 комментарий
  • Можете те ли подсказать пару идей для разработки и в будущем для диплома?

    Какую тему диплома на ... выбрать?
    Идешь к бизнесу -- говоришь, что хочешь работать бесплатно и делать все что ему нужно
    Если не нашел бизнеса -- идешь к преподу, он находит тебе задачу или бизнес у которого есть задачи
    Если нет -- идешь в гугл и берешь любую задачу

    https://www.reddit.com/r/AppIdeas/

    sim3x (c)
    Ответ написан
    Комментировать
  • Django. Как защитить форму от множественной отправки?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    class FloodSafeMixin(object):
        def __init__(self, *args, **kwargs):
            request = kwargs.pop('request', None)
            if request:
                self._user = request.user.username if request.user.is_authenticated() else None
                self._ip = get_ip(request)
                self._period = OrderedDict()
                self._period['days'] = kwargs.pop('days', None)
                self._period['hours'] = kwargs.pop('hours', None)
                self._period['minutes'] = kwargs.pop('minutes', None)
                self._period['seconds'] = kwargs.pop('seconds', None)
                self._period['milliseconds'] = kwargs.pop('milliseconds', None)
                if not any(self._period.values()):
                    self._period = {'minutes': 1}
                else:
                    self._period = OrderedDict([(k, v) for k, v in self._period.items() if v])
            else:
                self._ip = None
            super(FloodSafeMixin, self).__init__(*args, **kwargs)
    
    
        def clean(self):
            cleaned_data = super(FloodSafeMixin, self).clean()
            sender_id = hashlib.md5((self._user if self._user else self._ip).encode('utf-8')).hexdigest()
            if sender_id:
                class_name = self.__class__.__name__
                cache_name = 'last-submit.{0}.{1}'.format(class_name, sender_id)
    
                now = datetime.now()
                last_submit = cache.get(cache_name, now - timedelta(days=1))
                if (now - last_submit) < timedelta(**self._period):
                    cache.set(cache_name, now)
                    period = ' '.join([u'{0} {1}'.format(v, _p('genitive', k)) for k, v in self._period.items()])
                    raise forms.ValidationError(_('Form submitted less than %(period)s ago'), code='flood',
                        params={'period': period})
                else:
                    if not self.errors:
                        cache.set(cache_name, now)
            return cleaned_data
    
    
    class FeedbackForm(FloodSafeMixin, forms.Form):
        ...
    
    
    class SomeFormHandlerView(FormView):
        def get_form_kwargs(self):
            kwargs = super(GenericFormHandlerView, self).get_form_kwargs()
            kwargs['request'] = self.request
            kwargs['minutes'] = 2
            return kwargs
        ...
    Ответ написан
    Комментировать
  • Что лучше триггер или процедура? И почему не запихнуть бы всю логику в процедуры?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Что лучше триггер или процедура?
    В процедуру не передаются таблицы inserted и deleted, они требуют явного вызова. А в триггерах запрещены некоторые операции.
    И почему не запихнуть бы всю логику в процедуры?
    Можно, некоторые так и делают: проще поддерживать (DBA никакого отношения к программированию процедур не имеет — администратор); в общем случае, процедуры лучше кэшируются и пр.
    Ответ написан
    2 комментария
  • Лучший способ представления образовательного материала или "почему научные статьи такие нудные"?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Проблема в том, что серьезная наука обычно сложна и нудна. На Хабр могут выложить перевранный, порезанный, упрощенный вариант изложения, от которого у нормальных ученых будет только кислое выражение лица.

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

    Дальше, читайте Докинза, у него остальные подробности.
    Ответ написан
    Комментировать
  • Как помешать декомпилировать клиентскую программу?

    @nirvimel
    Смотря какая цель преследуется:
    1. Не дать воспользоваться вашим кодом для создания другого аналогичного продукта.
    2. Скрыть какую-то маленькую "изюминку", которую можно использовать для читерства, если раскопать ее в коде.

    Первое - вполне реально. Стоимость доработки вашего кода без исходников будет намного превышать стоимость создания аналогичного продукта с нуля.
    Второе - нереально в принципе. Не стоит тратить время на это. Потребность в скрытии "изюминок" возникает обычно вследствие ошибочных архитектурных решений (например, проверка на клиенте того, что по-нормальному должно проверяться на сервере) или ошибочных бизнес-моделей.
    Ответ написан
    Комментировать
  • Доступная отказоустойчивая СХД возможно ли?

    athacker
    @athacker
    Ну, сами подумайте, что бы вы ответили человеку, который заявляет: хочу промышленную СХД с обвязкой (коммутаторы) и дисками собрать на коленке, бюджет на всё в миллион рублей (~17000$).

    Тут уж, дорогой друг, либо коленки, либо промышленная СХД (особенно учитывая хотелки в виде тиринга, дедупликации, снапшотов и прочего).

    1) SATA-диски под большой нагрузкой будут грешить silent errors (т.е. искажениями данных, которые никто не заметит, пока не будет поздно (например, при ребилде массива). Поэтому софт должен будет уметь эти ошибки выявлять в оффлайне (как scrub в ZFS или background device scanner у ScaleIO).

    2) Цены на "деревянные" (что бы это не означало) СХД в интернетах таки есть. Например, тут: stss.ru/products.html

    3) Если собираетесь покупать ScaleIO, то там адекватных денег не ждите. Запрашивали несколько месяцев назад цены -- 44k$ за 50 Тб СЫРОЙ ёмкости. Когда соберёте массив на 4-х нодах, получите меньше 20 Тб реальной ёмкости. ScaleIO можно юзать и за так, но про поддержку забудьте. Если у вас реально суровый прод, то без поддержки -- это искать прилючения на свои нижне-задне-спинные мышцы.

    4) Дедупликация-то вам нахрена? Учитывая массив данных, который вы собираетесь там хранить (документы/фотки/видео), профит от дедупликации будет чуть меньше, чем никакого, а вот нагрузка на память и потенциальные глюки будут ого-го.
    Ответ написан
    7 комментариев
  • Почему в DJANGO проекте мне нужно создавать копию папки static, для того чтобы картинки отображались?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Такова логика организации проекта в Django. Вполне разумная, надо заметить. Каждый app должен содержать в себе свою статику. И на этапе разработки отображается статика как раз из app'ов. В продакшене же командой collectstatic статика из каждого отдельного app'а копируется в STATIC_ROOT и раздаётся боевым сервером оттуда.
    Ответ написан
  • Как подобрать целевую аудиторию?

    @Akellacom
    CTO
    Они живут вконтакте и инстаграме
    Ответ написан
    Комментировать
  • Как правильно построить проект на Django?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Есть проект

    программисты только начали учить Django

    Проект провален
    Ответ написан
    5 комментариев
  • Как заставить 2 и более серверов "работать" на один сайт?

    opium
    @opium
    Просто люблю качественно работать
    это называется масштабирование
    первый шаг обычно перенос базы на отдельный сервер, потом клонирование веб серверов на другие, затем база делиться на мастер и слейвы, в мастер пишется со слейвов читается, ну а дальше надо софт переписывать под кластерную архитектуру
    Ответ написан
    Комментировать
  • Есть ли сервисы универсальных оповещений по разным (email, sms, whatsapp) каналам?

    @GrimJack
    Подключаете сервисы (смс и тд) рассылок к сайту и даете юзерам выбор канала рассылки
    Вотсапа нет и в ближайшее время не придвидится
    Без гемороя доступны: вк/телеграм/смс/почта/вайбер/скайп/фейсбук
    Ответ написан
    Комментировать