Задать вопрос
  • Как мне применить список из функции в другой функции?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    А в чем, собственно, проблема? Передайте это значение в функцию в качестве аргумента, или вон вы глобальной переменной уже пользуетесь, можете и тут наговнокодить так же.
    Вы не объясняете что конкретно у вас не получается. В чем вопрос? Предоставляете довольно объемный код, который, судя по вопросу, написали не вы и чего хотите? Чтобы вам краткий, но исчерпывающий курс по программированию с нуля тут изложили? На какой-то другой ответ в вопросе просто недостаточно информации.

    А бесплатных курсов и репетиторов тут нет.
    Ответ написан
    2 комментария
  • Разработка web-сервисов – LAMP (Python/Django) vs. MEAN (Node.js)? Или что-то другое?

    sim3x
    @sim3x
    Средний разработчик использует 3 ЯП в день
    На каждом ЯП 3+ технологии

    Нельзя стать высокооплачиваемым разрабом изучив только технологию X на ЯП Y
    Нельзя стать разрабом изучив только область знания Z

    Так что учите все, что видите и пробуйте, то что нравится
    Ответ написан
  • Разработка web-сервисов – LAMP (Python/Django) vs. MEAN (Node.js)? Или что-то другое?

    Привет

    1) Для начала тебе нужно определиться с тем, что ты хочешь делать по итогу. Т.е. если запустить какой-то свой проект, то php/python. Если тут нужен асинхрон или научиться асинхрону, то node.js. Если хочешь работать устроиться куда-то в банк, то Java/C#. Т.е. выбирай инструмент под задачу, а не задачу для инструмента.

    2) Python - универсальный язык, который может делать многое. Вопрос, что не всегда это можно сделать эффективно. В общем, если нужен асинхрон и много соединений то бери node.js, если нужно другое - то бери Python.

    3) Не понимаю разницы между обычными сайтами и веб-сервисами. Вопрос сложности реализации - основа то везде одинаковая. Будешь делать сервисы, будешь уметь делать обычные веб-сайты.

    4) Если для личного развития, то можно. Если для работы, то нет. Скорее всего ты будешь работать либо на php, либо на python, либо на node.js - и там уже сможешь детально рассматривать все нюансы и стек. Учить все сразу - не учить ничего.

    5) Судя по тому, что ты описал в требованиях, Java тебе не подходит. Тут либо должна быть цель устроиться в какую-то большую компанию под сложный проект, либо должно быть четкое понимание того,что ты будешь делать, и почему ты хочешь взять именно Java.

    Вопрос: Ты чем заниматься хочешь в итоге? Что-то для себя пилить, работать на фрилансе или пойти в какую-то контору (стартап или гиганта типа Яндекса, Меил.ру?)
    Ответ написан
    8 комментариев
  • Разработка web-сервисов – LAMP (Python/Django) vs. MEAN (Node.js)? Или что-то другое?

    alexsurfer
    @alexsurfer
    Программист Python, Django, PostgreSQL, Golang.
    Если ты учишься и хочешь навыки развить, что бы в будущем тебя кормило программирование, тогда мой совет такой. Начинай изучать python и javascript. Реальность такова, что без js не напишешь фронт, а python имеет множество библиотек под все задачи. Py очень понятный язык, js не очень понятный.

    Есть проект PonyORM + PonyJS + ReactJS https://www.youtube.com/watch?v=6AWL4iSfZXU
    За такими технологиями будущее, python на бэкенде и react на фронте.
    Ответ написан
    3 комментария
  • Разработка web-сервисов – LAMP (Python/Django) vs. MEAN (Node.js)? Или что-то другое?

    un1t
    @un1t
    Выбор ЯП и стека вещь сугубо субьективная. Параметров слишком много, чтобы можно было объективно сравнить.
    Все перечисленные технологии популярны и в ближайшиее 5 лет будут востребованы. Выбирай то что нравится.

    В пользу Node: всё идет к тому, что js станет стандартом как на фронте, так и на сервере. Через 5 лет серверную часть не на js будут писать только ленивые ретрограды.

    Ну-ну. Или стухнет как руби.

    Приложения получаются быстрее python и др. в 10-15 раз, выдерживают большие нагрузки,

    У JS нет превосходства в производительности над Python. Скорее наоборот. Но в целом я бы не рассматривал производительность как фактор выбора, т.к. в первом приближеннии она одинакова.

    нет задач, которые нельзя было бы реализовать в рамках MEAN-стека.

    Можно так и про ассемблер сказать, но это не делает его удобным для веб разработки.

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

    Некоторые косяки действительно будут исправлены. С монгой все поигрались и забыли, вернулись к реляционным БД. Express.js это наколенная поделка, которую можно написать за один вечер. Там по сути кроме роутинга ничего нет. Может быть черзе 5 лет на ноде появятся какие-то полноценные фреймворки типа Джанги, Рельсов или Симфони, но на сегодняшний день их нет. Angular это вообще фронтенд, его можно с любым бакендом использовать.

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

    6365584b90cc8202037868.jpeg
    Ответ написан
    Комментировать
  • Почему современные языки отказываются от ООП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Они не отказываются. Скорее происходит отказ от "парадигмы" разработки. Языки стали мульти-парадигменные. Посмотрите на С++20 или Scala. Их невозможно положить в коробочку ООП или ФП. В них есть почти полный набор фич и оттуда и отсюда. И с каждым годом число фич растет и граница размывается. Нашим потомкам будет вообще непонятно где идет раздел.

    По поводу golang. Это язык ограниченной разработки. Его создавали специально чтобы порог вхождения был низкий. Фактически делали лайтовый С++ которому можно обучить школьника за 14 дней. Но с перформансом выше чем у Питона. Поэтому выражать какие-то сложные конструкции на типах там скорее всего не получится. У golang есть свой манифест. Я забыл как он называется и где он. Вобщем там довольно четко обоснованно почему такие принципы и почему такая идеология.
    Ответ написан
    1 комментарий
  • В чем можно хранить около триллиона значений key=>value?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте прикинем объем который понадобится. Что такое триллион?
    Это 12 нулей. Или 1 000 000 000 000 элементов. Какая у нас data-row?
    8 + 64 символов типа ASCII (байт подходит чтоб покрыть все символы).
    Итого 72 байта на строку. Там можно еще поужимать биты в байтах но только
    сложность повышает а большой пользы для дела не дает. Пускай будет ASCII == 1 байт.

    Вобщем такой расчет

    72000000000000 байтов на весь сегмент данных когда таблица загружена.
    Или 65 терабайт. А сколько магнитных блинов надо прикупить? Возьмем популярный магнитный
    Western Digital Purple 10TB 7200rpm 256MB WD102PURZ 3.5" SATA III при цене 290$
    Порядка 7 штук надо. Вобщем готовте котлету денег 290$ * 7 = 2030$

    По поводу DBMS. Да key-value здесь подходит. Можно начинать с LevelDb или RocksDb но у них
    расход дисковой памяти на 1 строчку может быть больше чем я посчитал. Я ведь считал эконом-эконом
    вариант в виде бинарного типизированного файла где все записи строго по 72 байта. Сколько именно
    захватит РоксДб или ЛевлДб - чорт его знает. Вряд-ли документация об этом что-то говорит.
    Но берите 1% датасета. Загружайте
    и аппроксимируйте сколько выйдет после полной прогрузкуи. Это - надежный способ оценки.
    Ответ написан
    12 комментариев
  • Зачем надо закрывать курсор при работе с БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что курсор может потреблять ресурсы. Например вы захотели взять первые 10 строк из 10000000 выборки но предварительно отсортировали. Выбрали 10 строк и не сделали финализирующие протокольные действия в Python. База данных будет удерживать в памяти алгоритмы и структуры данных для снапшота результата этого запроса до тех пор пока не придет явный CLOSE с вашей стороны либо интеллекуальный драйвер который еще и обладает логикой уборки мусора сам не догадается что Statement уже вышел из scope вашего использования и может быть удалён GC.

    Я был свидетелем ситуации когда крупное ent-приложение Java/Oracle переполняло память из-за неверной обработки Exception и плодила много незакрытых курсоров в БД. Java от этого не сильно страдала (GC всё убирал) но страдал Oracle. Потому что уборка происходила слишком поздно. Пофиксилось тогда переписыванием с try на try-with-resources.

    Поэтому если вы неряшливо обращаетесь с курсорами (явными и неявными (обычный select к примеру может прождать неявный курсор)) то не ваше приложение а база данных почувствует себя плохо. Как быстро и какие ошибки вы будете получать - зависит от настроек вашей БД.
    Ответ написан
    Комментировать
  • На что опираться при выборе изучения RN и Flutter?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    кол-во вакансий у RN в раза 2-3 выше

    Это.
    Ответ написан
    Комментировать
  • Как спарсить текущую погоду в зависимости от месторасположения юзера?

    1. Зачем парсить, если существует куча сервисов с API?
    2. По geoip или как-нибудь ещё узнаешь локацию пользователя, и сопоставляешь со страницами на сайте.
    Например если пользователь в Алматы, то парсишь https://www.gismeteo.kz/weather-almaty-5205/
    А если в Астане, то парсишь https://www.gismeteo.kz/weather-astana-5164/
    Ответ написан
    Комментировать
  • Как реализовать зачет урока в реляционной базе данных?

    Все уровни выше users_on_lessons называются денормализацией - хранить эти данные необязательно, их можно вычислить из других по цепочке связей.
    "Правильно" в данном случае не существует, вы выбираете на каждом конкретном проекте между скоростью и консистентностью. Храните денормализованные данные? Тогда придётся обеспечивать их связность, чтобы не оказалось, что в users_on_lessons пользователь привязан к одному топику, а в users_on_topics к другому. Храните только "жёсткие" данные? Тогда будьте готовы считать нужное.

    Я в данном случае не вижу необходимости в денормализации в том виде, в котором вы её реализовали. Курсов относительно немного (а пользователь всегда работает только с одним из них в момент времени), в каждом курсе относительно немного глав, в главе немного топиков, в топике немного уроков. Посчитать по уроку где там пользователь в этом дереве совсем не сложно прямо на клиенте, а ведь ещё у нас есть возможность кешировать данные.
    Ответ написан
    2 комментария
  • Как массив объектов собрать в один объект, объединив одноимённые свойства в массивы?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Получаем все возможные ключи; под каждый создаём пустой массив; при обработке объекта из исходного массива бежим по массиву ключей, добавляем в соответствующий массив значение из объекта или дефолтное - в зависимости от наличия ключа в объекте:

    function groupValues(arr, defaultValue = null) {
      const keys = [...new Set(arr.flatMap(Object.keys))];
      return arr.reduce((acc, n) => {
        keys.forEach(k => acc[k].push(Object.hasOwn(n, k) ? n[k] : defaultValue));
        return acc;
      }, Object.fromEntries(keys.map(k => [ k, [] ])));
    }
    
    
    const result = groupValues(arr);

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

    const groupValues = (arr, defaultValue = null) =>
      arr.reduce((acc, n, i, a) => (
        Object.keys(n).forEach(k =>
          (acc[k] ??= Array(a.length).fill(defaultValue))[i] = n[k]
        ),
        acc
      ), {});
    Ответ написан
    Комментировать
  • Имеет ли значение уникальность шаблона для сайта при продвижении в поисковых системах?

    opium
    @opium
    Просто люблю качественно работать
    Имеет но в плане ранжирования не входит даже в первую двадцатку, если все первые 20 фактов ранжирования сделаны на 5 то можно и шаблон уникальный
    Ответ написан
    1 комментарий
  • Cобрать правильно массив из сортирующего списка?

    Stalker_RED
    @Stalker_RED
    const items = document.querySelectorAll('.item');
    const sorted = [... items].map(item => item.dataset.id);
    console.log(sorted);
    Ответ написан
  • Какую базу данных использовать для такого проекта?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ну, на основной вопрос уже ответили, а я освещу отдельную проблему, которая очень часто волнует умы юных падаванов.

    когда лучше реляционную и нереляционную использовать?

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

    Как только осознаёшь этот простой факт, то всё сразу становится на место:
    Если нужна база данных, то и использовать надо базу данных. Реляционную. Какую именно - в вашем случае не принципиально.

    Если вдруг проект пройдет стадию "неясные идеи", и выльется во что-то практическое, и даже появится какая-то нагрузка, то можно будет начать думать про использование одного или нескольких подсобных хранилищ в дополнение к базе данных.
    Ответ написан
    2 комментария
  • Где украли деньги?

    Использовал для этого телеграмм-бота от одного сервиса.

    Вообще это уже сильно пахнет скамом, так что я бы уже тут задумался.

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

    Сильное заявление, которое невозможно проверить.

    симка для аккаунта телеграмма куплена с рук (уже была верифицирована);

    Очень опасное занятие. Если симка для аккаунта создана в рамках корпоративного тарифа - "организация" имеет очень много контроля над ней. (Не буду утверждать, что доступно даже чтение смс, тк не знаком с возможностями)

    с использованием программы AmneziaVPN

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

    Вообще я ставлю на следующие варианты:
    1. Кто-то просто взял в руки твой телефон (или куда там у тебя ещё телеграм установлен)
    2. Владелец симки смог увидеть твои входящие смс и при этом знал заранее твой пароль от телеграма, либо смог его подобрать, либо смог сменить пароль, имея доступ к твоей резервной почте.
    3. Кто-то смог получить удалённый доступ к устройству, где установлен твой телеграм и ты залогинен.

    Проверь историю входов в аккаунт и активные сессии. Проверь, что ты знаешь обо всех активных сессиях и никто посторонний не имеет доступа к ним (это не какой-нибудь публично доступный компьютер, например)
    Ответ написан
    3 комментария
  • Как выбрать открытый проект на Python для поддержки?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вливайтесь в сам проект по развитию Python-а. Там же много работы: Перевод, документация, библиотеки, CPython и др. Да. Сразу будет жесть как тяжело, но зато потом, потом будет такая визитная карточка, что достаточно быстро будете находить новую работу.
    Ответ написан
    2 комментария
  • Как выбрать открытый проект на Python для поддержки?

    @bromzh
    Drugs-driven development
    1) Выбираешь проект (для начала небольшой), которым пользуешься сам.
    2) Смотришь список issues
    3) Выбираешь ту, которую сможешь сделать сам (для начала лучше поправить небольшую багу)
    4) Форкаешь проект
    5) Реализуешь issue
    6) Гоняешь тесты
    7) Если всё ок, делаешь пулл-реквест автору
    8) Повторить

    Ну и главное, надо следовать общему стилю всего проекта и про pep-8 помнить.
    Ответ написан
    Комментировать
  • Как дополнительно оптимизировать загрузку изображений?

    @VegasChickiChicki
    Можете посмотреть в сторону тега picture. Для разных разрешений можно использовать разные форматы, не придется для 1080p монитора грузить 4к фотки. Так же почитайте о современных форматах изображений, их так же в теге picture можно указать(возможно придется сервер учить перегонять фотки в разные форматы, не знаю от куда вы их берете и есть ли такая возможность).
    Ответ написан
    Комментировать