Задать вопрос
  • Как можно заменить инструкцию jquery $(element).html() функцией на чистом javascript?

    @lega
    youmightnotneedjquery.com - Код на jQuery и аналоги для JS
    Ответ написан
    Комментировать
  • Как сделать открытие/закрытие блока при нажатии?

    @lega
    Вот тоже самое что и у Pavel Demyanenko только без js! и jQuery (но с Angular Light).
    Там все просто:
    al-click="tab='b'" - при клике присвоить tab='b'
    al-show="tab=='b'" - отобразить блок если tab == 'b'

    Вам нужно попробовать какой-нибудь MV* фреймворк, с ними проще делать сложные приложения.
    Ответ написан
    Комментировать
  • Насколько широко сейчас можно применять рендер на клиенте?

    @lega
    Разделяйте проекты на сайты и веб-приложения (с последним думаю все понятно - одна страница, все в ней).
    Но смущает, что поисковики не будут ничего видеть. Да и юзеру вроде как не комфортно, открыл страничку а там ничего, пока скрипты не отработали.
    Считаю что с поисковиками проблем особо нет (phntomjs/prerenderio), а вот скорость загрузки - это существенно, поэтому я считаю что основной контент должен прилетать сразу с сервера, чтобы пользователь уже мог читать, а доп. функционал, всякие формы, кнопки, др. плюшки уже через клиентские фреймворки. Например VK, большая часть прилетает сразу, а остальное - поиск, подгрузка уже через js (хотя подгружаемые посты ренедрились на сервере).
    Ответ написан
    Комментировать
  • Почему mithril, vue, virtual-dom быстрее react?

    @lega
    Тесты замеряют разные действия, где-то добавление, где-то изменения, одни фреймворки быстрее в одном, другие в другом, отсюда и разные результаты.
    Ещё сами тесты вызывают сомнения, например в первом тесте у Angular.js приделан setTimeout что-бы не делать перерисовку на каждой итерации + при этом сам тест запускается не асинхронно - это "читерство".
    А при выполнении теста с React у меня браузер дергается (видимо из-за особого контента который выводится) - это бъёт по производительности, - возможно это было нарочно сделано. Так же каждый последующий тест работает в поле где есть "мусор" от всех предыдущих тестов - это тоже может снижать цифры.

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

    PS: Если вас не затруднит, не могли бы вы сюда добавить mithril или vue для сравнения.

    Дополнил про React
    Я особо не копал React, у меня такие мысли - они реализовали виртуальным DOM который максимально эффективно превращает один кусок документа в другой, проблема в том что на практике это не нужно - в других фреймворках делают просто сокрытие одного куска и показ другого куска - и это работает быстрее, чем перестройка DOM. Так же я слышал заявления, что React работает быстрее за счет того что они не делают чтения из DOM - видимо они сравнивают с jQuery (и vanilla js), т.к. в других MV* фреймворках, чтения из DOM делаются не часто (или только на стадии инициализации).
    Ответ написан
    Комментировать
  • Как обрабатывать формы при использовании Django + Angular?

    @lega
    Я предпочитаю обрабатывать "формы" через Anguar и отправлять через ajax, - таким образом не нужно перегружать (заново строить на сервере) всю страницу, что-бы только сообщить пользователю что пароль не верный или ещё какую-то ошибку.
    Ответ написан
    Комментировать
  • А в чем минусы node.js?

    @lega
    Как выше сказали - большой проект разрабатывать на node.js не желательно из-за сложности (сравните 2 псевдо-примера), - будете иметь больше проблем, потратите в разы больше времени.

    В большинстве случаев асинхронность нужна для 0-5% от проекта, поэтому не нужно из-за этих 5%, остальные 95% делать асинхронными.
    Асинхронность нужна не везде.
    Ответ написан
    Комментировать
  • Как с помощью Python прочитать файл и вывести самую первую строчку полностью?

    @lega
    >>> next(open('file'))
    'first line\n'
    Ответ написан
    Комментировать
  • NodeJS MongoDB поиск между датами. Как? Где?

    @lega
    1) У Вас в search.period_start и search.period_end всегда текущая дата_время "new Date().toISOString()", поэтому ничего и не "ищет" ("new Date().toISOString(req.query.period_start);" - так не работает).
    Проще с клиента тогда присылать преобразованные даты (.toISOString) и на сервере подставлять как есть.
    2) В базе даты лучше хранить в Date-формате, а не в текстовом.
    Ответ написан
    1 комментарий
  • Хранение данных: обычный объект или ключ как значение?

    @lega
    Обычно удобнее что-б ключи были фиксированные - не нужно гадать/перебирать, что-б получить значение.
    Проблема может возникнуть если вы в будущем добавите ещё по стране в каждый элемент или т.п.
    Памяти это (почти) не сэкономит. Проблем с хранением не возникнет.

    Если расширять не планируется и хорошо подходит под текущие запросы, то никаких проблем.
    Ответ написан
    Комментировать
  • Где и как хранить данные рекомендательного сервиса?

    @lega
    Если VPS в разных датацентрах, то какие последствия?

    Должно работать нормально, я в одном проекте сделал ноду на домашнем компе с динамическим ип (через OpenVPN) для бекапов, работало стабильно.
    Ответ написан
    Комментировать
  • Как корректно обработать получаемую строку в список на python?

    @lega
    >>> re.findall(r'\d+', data)
    ['1', '2', '3', '44', '22']
    Ответ написан
    Комментировать
  • 1C или web - какое направление выбрать?

    @lega
    Просто хотелось бы иметь возможность стабильно иметь средний уровень доходов
    И работать до пенсии?

    Мне больше нравится когда люди становятся "свободными", работают по несколько часов в день и им этого хватает, "человек не для рабства был рожден" (c), на сколько я знаю путь 1С к этому не ведет.
    PS: сам занимался 1С около 10 лет.

    Сейчас у вас много энергии и сил, но любая работа "заедает" человека. Через 5-10 лет вы вполне можете ненавидеть 1С (как многие другие разработчики), попробуйте представить себя через 5-10 лет, смотрите в будущее а не на завтра. Вполне возможно у вас изменятся цели и ценности, "Искать работу за пределами РФ я не собираюсь" - не надо так категорично, нужно рассматривать разные возможности (ценности могут изменится).

    Плюсы 1С описали в соседних комментариях, давайте посмотрим на возможности web-разработчика:
    - "Море" интересных технологий.
    - Можно попасть в стартап который взлетит (имея долю в нем).
    - Можно создать свой проект с пассивным доходом.
    - Можно быть свободным фрилансером (жить на островах с удаленной работой)
    - Работать в красивых компаниях типа Яндекса, посмотрите на стиль работы тех программистов и их офисы.
    ... (по некоторым пунктам шанс не высок, но с 1С он гораздо ниже)

    На счет зарплаты, профессиональные фрилансеры могут иметь 30-50$ (и более) в час, таким образом вы можете прикинуть доход, так же представьте если $ вырастет до 100руб...

    Вообщем, по вам видно что вы настроились идти в 1С и большого смысла описывать плюсы web нет, поэтому совет наверно будет такой: работать с 1С, но не забывать про веб, изучать и пробовать, возможно в один момент вас перетянет на светлую сторону :)
    Ответ написан
    Комментировать
  • И снова: Как найти ошибку в коде Python?

    @lega
    Функция вычисляется достаточно долго...
    Для ускорения вычисления необходимо сохранять уже вычисленные значения функции при известных аргументах.
    А в коде ф-ия вызывается дважды:
    print(f(a))
    d[a]=f(a)
    Ответ написан
  • Как из коллекции MongoDB получить определенное количество случайных документов?

    @lega
    В cookbook есть вариант с добавлением поля random: cookbook.mongodb.org/patterns/random-attribute
    Ответ написан
    Комментировать
  • Как реализовать новостную ленту на node.js?

    @lega
    Например можно так, структура новости и пользователя:
    news = {
      content: '',
      when: <datetime>,
      author_id: <objectid>
    }
    user = {
      name: '',
      friends: [<objectid>, <objectid>]
    }

    Индекс: db.news.ensureIndex({ when: -1, author_id: 1}) // when идет первым т.к. author_id будет участвовать в мульти-запросе
    Выборка: db.news.find({ author_id:{ $in:user.friends }}).sort({ when: -1 })
    Ответ написан
  • Как получить _id mongodb + mongoose ?

    @lega
    Судя по картинке у вас там массив, попробуйте req.session.user[0]._id
    Ответ написан
  • Как в монго добавить коллекции из бэкапа к существующим?

    @lega
    Не очень хороший вариант, но можно попробовать сделать так:
    1) Сделать mongodump активной БД
    2) Восстановить бекап в "пустую БД"
    3) Сделать уникальный индекс по title
    4) Сделать mongorestore активной БД в эту базу
    Ответ написан
    Комментировать
  • Как организовать быстрый поиск по 3 млрд документов?

    @lega
    Грубо говоря, это список ключевых запросов пользователей ПС, из которых нужно выбрать те, в которые входит, например, слово "скачать".
    Если список ключевых слов не большой то можно сделать индексированный массив в документах и туда помещать эти ключевые слова (или их идентификаторы).
    В противном случае использовать sphinx/elasticsearch. Можно так же использовать text index из mongoDB, но он мне показался через чур прожорливым.

    попробовал сделать выборку через Matches
    При этом происходит перебор и проверка всех документов, поэтому это так долго.
    Ответ написан
    Комментировать
  • Что эффективнее для небольшого приложения: C++ или Python?

    @lega
    Поддержу Сергей Протько, скорости питона хватает в 98% случаев, остальные 2% добиваются на Си, Го и пр. Таким образом сохраняется скорость разработки и производительность.
    Ответ написан