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

    @raiboon
    Просто хранить на жёстких дисках - неудобно и не сильно надёжно.
    Для кого разрабатывали ceph, minio, Gridfs, riakcs, etc?

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

    longclaps
    @longclaps
    Задача не имеет решения в заявленых ограничениях. Если чьи-то решения прокатывают - значит редакция мухлюет с тестовыми данными. Вот демка на этот счет. Можешь допилить её, выбросив лишнее и заменив randrange на hash(input()), и попробовать пропихнуть как решение.
    from numpy import zeros, uint32
    from random import randrange
    from sys import getsizeof
    
    
    N = 10 ** 6
    hashes = zeros(N, uint32)
    print(f'hashes занимает  {getsizeof(hashes)} байт')
    control = set()  # здесь считаем по-честному
    for i in range(N):
        # вместо строк я использую большие случайные числа
        r = randrange(0x4000000000000000)
        control.add(r)
        # сохраняем последние 4 байта r - больше не лезет
        hashes[i] = r & 0xffffffff
    hashes.sort()
    a, cnt = hashes[0], 1
    for b in hashes:
        if a != b:
            a = b
            cnt += 1
    print(f'control - целых {getsizeof(control)} байт (для строк длиной до 1к было бы больше)')
    print(f'{cnt:8} разных хэшей\n{len(control):8} разных чисел')

    Слишком короткий хэш (32 бита) на 10^6 строк порождает слишком много коллизий (смотри парадокс дней рождения). Нельзя впихнуть невпихуемое.

    UPDATE
    Roman Kitaev предложил использовать фильтр Блума, вот решение на этой идее. Оно несёт в себе недостатки фильтра Блума: работает медленно и ошибается; так же возможно, что мои упрощения убили фильтр, но авось прокатит.
    bitmap, cnt = bytearray(0x400000), 0
    for _ in range(int(input())):
        h, f = hash(input()), 0
        for _ in range(16):
            m = b'\x01\x02\x04\x08\x10\x20\x40\x80'[h & 7]
            h = ((h >> 4) ^ i) | ((h & 15) << 60)
            if not bitmap[h & 0x3fffff] & m:
                bitmap[h & 0x3fffff] |= m
                f = 1
        cnt += f
    print(cnt)
    Ответ написан
    6 комментариев
  • Как подсчитать число уникальных строк больше 1 млн. при вводе?

    @deliro
    N = int(input())
    s = set()
    for i in range(N):
        s.add(input())
    print(len(s))


    UPD
    Более оптимальный по памяти — сами строки не хранятся, хранятся только их хэши:

    N = int(input())
    s = set()
    for i in range(N):
        s.add(hash(input()))
    print(len(s))
    Ответ написан
    8 комментариев
  • Почему кто-то может отметить ответ решением?

    Moskus
    @Moskus
    В вопросе содержатся ошибки.
    Во-первых, нет никаких "лучших ответов". Есть просто "решения". (Ну ещё голосование "нравится".)
    Во-вторых, отметка решением не делается "от имени автора". Признание ответа решением независимо от автора. Признать решением может автор, куратор тега или другие пользователи, если достаточное их число проголосуют за этот ответ.

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

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

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

    Очень не хочется портить трудовую 2-мя месяцами работы.
    Трудовую вашу увидят только после того, как примут решение взять на работу. Соответственно, вы можете вообще в резюме не указывать, что где-то в это время работали. Это первое. Второе - если вы всё же будете бодаться и указывать эту компанию в резюме, то как только потенциальные работодатели позвонят на прошлое место работы и услышат про суд, ваша кандидатура из рассмотрения, скорее всего, выпадет.

    Словом, уходите по собственному и при поиске работы объясняйте такой короткий срок. В целом, это нормально - на то испытательный срок и существует, чтобы не только компания к вам присмотрелась, но и вы к компании. Единичная подобная история нормального кадровика не смутит.
    Ответ написан
    4 комментария
  • Как быть с этой ошибкой "has been blocked by CORS policy"?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    100500 раз уже тут и не только тут обсуждалось. Браузеры не позволяют через js обращаться с одного домена на другой без разрешения со стороны запрашиваемого домена (cors policy). Запрашивай через curl из php, раз его в тегах указал
    Ответ написан
    3 комментария
  • Где учиться iOS разработке?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Смотри, как делал бы это я.
    0. Приобрести маки/айфоны/айпады
    1. придумать проект
    2. Начать его делать
    Курсы - нахрен
    Ответ написан
    Комментировать
  • Какой фреймворк для каких задач?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Современные фреймворки вроде Angular/React/Vue созданы для решения одних и тех же задач. Использовать лучше тот, который больше нравится и который лучше знаете. При неумелом использовании все преимущества конкретного фреймворка меркнут, и на Vue, в таком случае, вы можете получить медленную скорость разработки, а на React неподдеживаемый код.
    Ответ написан
    Комментировать
  • Что можете сказать об IT Hub колледже?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    IMHO средненький инфобизнес, но раскручен на широкую ногу (ну понятно 30к с каждого студента, из которых видимо 90% на раскрутку и веселый сайтец).

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

    Вот зашел в программирование, читаю единственное, что хоть как-то похоже на программу, по пунктам:

    Профессиональные компетенции выпускника:
    * Работа с технологиями PHP, Java, Ruby, Python, Perl, Node JS

    Из этого технологией с натяжкой можно назвать NodeJS, потому что на самом деле это все языки программирования, а NodeJS это скорее платформа для выполнения JS (которого кстати в списке нет)

    * Подключение и использование фреймов

    Фреймов? Фреймы есть в сетевых пакетах. А Фреймворки - так их не подключают, на них пишут.

    * Back-end разработка, «серверная часть» в веб-приложении; настройка и создание баз данных

    Настройка и создание баз данных - это небось будет предустановленный Mysql (который ставится в пару кликов) и какая-нить create table
    Как можно работать с базой данных, не указывая что в программе изучения есть ХОТЯ бы базовый SQL?

    * Организация серверного окружения, администрирования баз данных и масштабирования приложений с учетом всех стандартов безопасности

    Учесть все стандарты безопасности не всегда могут крупные организации, которые уже 50 лет в IT. Тут явно будет какая-то чушь.

    * Создание функциональных API

    API это весьма простая вещь, как только ты в принципе научился писать бэкенд. Весь бэкенд из него и состоит. Но ведь он уже был во втором пункте. Тогда что тут?

    * Работа по Scrum и Kanban

    Это вообще можно не учить. Про это можно почитать, потому что это просто Agile разработка. Она в каждой конторе, в каждом проекте немного по-своему. Освоить то, что нужно разработчику можно за день, и в ходе работы разобраться. А знать как оно работает - надо скрам мастеру.

    * Работа с системами контроля версий (Git)

    Ну вот хоть что-то полезное. Но оно же осваивается за полчаса на официальном сайте - там и видяшки и учебник и туториал. https://git-scm.com/book/ru/v2

    Итого: Я не понимаю за что такие деньги, учитывая что реальной информации на сайте практически нет.
    Отзывы - везде только положительные и как одним копирайтером написаны.

    Понятно, что научиться в колледже чему-то можно, но если человек способен научиться, то он может это сделать и без колледжа, потратив деньги более эффективно.
    Ответ написан
    7 комментариев
  • Как можно ужать код Python (if)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    years = [year2013, year2014, year2015]
    for year in years:
        if year.value != 0:
            i += 1
        else:
            pass
    Ответ написан
    8 комментариев
  • Как изучать seo в 2019?

    Также, как и в 2018. Куча уже вопросов и ответов на эту тему, воспользуйтесь поиском.
    Ответ написан
    1 комментарий
  • Возможно ли устроиться на удалённую стажировку?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Сто тысяч раз этот вопрос уже был рассмотрен со всех сторон - сверху, снизу...

    Никто и никогда не берет джунов на удаленку
    Ответ написан
    Комментировать
  • В какой программе написать техзадание на API сервера?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Swagger наше все
    Ответ написан
    Комментировать
  • C помощью каких инструментов можно создать сайт любой сложности?

    @orbit070
    На вопрос невозможно дать однозначный ответ.
    Если сильно постараться, то на любом языке и стеке можно сделать почти все что взбредет в голову, это уже зависит от склонности человека к извращениям. Более адекватным подходом является подбор инструментов отталкиваясь от задач. Задачу вы не озвучили, поэтому посоветовать что-то по существу не видится возможным.
    Ответ написан
    4 комментария
  • Сколько стоит час веб-разработчика-фрилансера?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ставите среднюю по рынку на выбранное направление и ждёте заказов.
    Много - поднимаете ставку.
    Мало - опускаете ставку.
    Всё предельно просто!
    Ответ написан
    Комментировать
  • Сколько стоит час веб-разработчика-фрилансера?

    @deliro
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

    Кстати, к чему эта поучительная лапша? Я хотел сказать, что всеми этими модными словами можно пугать друзей и преподавателей, но в реальной жизни все алгоритмы уже реализованы, все типы данных уже подобраны оптимально. Знать их полезно для себя (чтобы мозг не атрофировался), но не для работы. Для работы тебе нужны такие навыки как:

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
    5 комментариев
  • Сколько стоит час веб-разработчика-фрилансера?

    Jump
    @Jump
    Системный администратор со стажем.
    Сколько стоит час веб-разработчика-фрилансера?
    Ровно столько за сколько он готов работать.
    Ответ написан
    Комментировать
  • Есть ли смысл переходить на другой стек?

    1) Уходить с удаленки, которую ты смог найти на опыт джуна - это прямо мега глупо. Надо хотя бы получить 9-12 месяцев работы, тогда тебя уже начнут рассматривать, как разраба.

    А пока HR-видит, что ты через месяц слился и думает: "Да ну его нахер, то ли он конфликтный, то ли он "мамкин айтишник, который хочет 100к со старта", то ли он рукожоп"

    т.е. этот опыт лучше вообще убрать из резюме. (ну это так намек)

    2) Удаленку без опыта реальной разработки на уровне Джуна - очень сложно найти. Будь ты хоть JS, хоть PHP, хоть Java разработчик. Тут дело не в стеки.

    3) В идеале, тебе надо получить строчку в трудовую, что работал программистом условно 9 месяцев (хоть на чем) - после этого, уже и удаленку можно будет найти проще, либо уже уезжать на офер в СПБ, Москву или другой город
    Ответ написан
    Комментировать
  • Как веб-разработчику взаимодействовать с заказчиком?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    О чем вы договаривались с заказчиком? Сделать дизайн? Вы его сделали? Покажите его заказчику, можете открыть доступ к локальному серверу из интернет - гайдов на эту тему полно. Заказчика устраивает - скидываете ему архивом шаблон/сайт и дальше его проблемы. Если вы изначально обсуждали, что вы будете заливать сайт на хостинг, то пишите ему и говорите, что-бы он зарегистрировал хостинг и дал вам логин/пароль. Если он этого не может сделать, то регистрируете хостинг на его данные и пускай он оплачивает, в крайнем случае пользуйтесь хостингами которые дают тестовый период. Никогда ничего со своего кармана не оплачивайте, если это не ваш персональный инструмент для работы.
    Ответ написан
    Комментировать