Задать вопрос
  • Где и как хранить много ГБ изображений для сайта?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Ну, бесплатный сыр только в мышеловке, как говорится. Если у вас хороший проект с наметками на большое будущее то рекомендую сразу нацелиться на такие хранилища как Object Storage:
    • AWS S3
    • Azure Blob Storage
    • GCP Cloud Storage
    • Yandex Object Storage

    Со временем можно будет настроить различные Lifecycle Policy и перемещать изображения между Hot, Warm и Cold Storage с разной ценовой политикой;

    Кроме того стоит задуматься о CDN (если еще не используется). В них также можно сегодня использовать EDGE технологии с автоматическим ресайзом, наложением водных знаков и других фильтров
    Ответ написан
    3 комментария
  • Как изменить данные в уже существующей записи в БД?

    @msnyastar Автор вопроса
    Разобраться помог Сергей Горностаев, решение выглядит так:

    class UserSettingsViews(LoginRequiredMixin, View):
    
        """Отображение и наверное изменение пользовательских настроек оповещения """
    
        def post(self, request, pk):
    
            settings_exist = get_object_or_404(ObjectsOfSurveillance, user_id=pk)
    
            if request.method == 'POST':
                
                settings_form = ChangeSettingsForm(request.POST, instance=settings_exist)
    
                if settings_form.is_valid():
    
                    settings_form.save()
                    messages.success(request, 'Настройки успешно обновлены!')
    
            return render(request, 'main/user_settings_pg.html', {'settings_form': settings_form})
    
        def get(self, request):
    
            settings_exist = get_object_or_404(ObjectsOfSurveillance, user_id=request.user.id)
            settings_form = ChangeSettingsForm(instance=settings_exist)
    
            return render(request, 'main/user_settings_pg.html', {'settings_form': settings_form})
    Ответ написан
    1 комментарий
  • Куда идти, что делать, какой язык выбрать?

    php666
    @php666
    PHP-макака
    Мечтаю создать свой собственный проект
    Забудь, ты опоздал лет на 20, время одиночных проектов ушло в историю. Сейчас любые проекты делаются командами, у которых есть инвесторы и четкий бизнес-план.

    Когда я был студентом, в начале 2000-х, в интернете были веб-сайты, которые делали люди-одиночки и эти сайты были весьма популярны, это был восход одиночных проектов на хтмл4 и пхп4. Сейчас добиться с такими же трудозатратами хотя бы доли той аудитории нереально.

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

    Есть идея по создании социальной сети

    1. ты ее не сделаешь в одиночку
    2. если сделаешь, то не скоро и очень криво
    3. она не нужна никому, людей уже тошнит от соцсетей

    можете посоветовать, что делать
    перестать рассматривать эту сферу с инфантильной позиции, что ты какой-то уникальный человек, который сейчас выучится, придёт в профессию и перевернет мир, а работа твоя будет пестрить яркими красками.
    Нет.
    Реалии работы разработчика другие.
    Совсем.
    Тебя ожидает трекер с задачами, какой-нибудь проект с кучей кода (дай бог, что бы не древний как авно мамонта), в котором ты будешь копаться, пока не сломаешь мозги.
    И так несколько лет.
    Ответ написан
    Комментировать
  • Как работает websocket на низком уровне?

    Ответ на этот и многие другие вопросы в RFC 6455
    https://tools.ietf.org/html/rfc6455
    Ответ написан
    Комментировать
  • Что такое SOLID и как его можно использовать в веб-разработке?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если чтоб и ребенок понял - то это такие правила, придуманные взрослыми дядями, если ты им будешь следовать то твой код будет хорошим, ты сможешь создать более сложную систему, меньше наговнякать и соседские пацаны, смотря как их мелкие проекты, вчера бывшие такими клевыми, вдруг превращаются в хаос и обитель зла, будут завидовать, смотря на то как ты лихо продолжаешь ваять свой проект все таким же красивым, и все девчонки захотят с тобой дружить.

    Посмотреть детальнее, что за правила и как их выполнять можно в таком большом количестве мест в интернете что перепечатывание сюда будет порицаемо в любом приличном обществе.

    Один момент - не все принципы одинаково полезны и применимы в веб-разработке, но знать и понимать их все в любом случае на пользу.
    Ответ написан
    4 комментария
  • Вакансии C Junior developer?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    вообще такое бывает в 2020 году?

    Бывает летняя практика/internship, рекомендую начать с этого.
    Ответ написан
    Комментировать
  • Ошибка inconsistent use of tabs and spaces in indentation?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    - преобразовать имеющиеся табы в пробелы
    - не использовать табы при написании кода в дальнейшем
    - почитать про pep8
    Ответ написан
    3 комментария
  • Для чего нужен полиморфизм?

    bingo347
    @bingo347
    Crazy on performance...
    Полиморфизм бывает разный:
    Полиморфизм подтипов - этот тип как раз таки и подразумевают в контексте ООП. Суть в том, что сущность некоторого класса так же может представляться базовым классом или интерфейсом. Это позволяет переиспользовать код, отдавая в один и тот же метод/функцию сущности с разными классами, но с общим интерфейсом.
    Параметрический полиморфизм - используется уже не только в ООП, но и в других парадигмах. Опять таки полиморфная функция принимает аргумент разных типов, при этом сам тип так же передается как параметр функции, а следовательно функция может оперировать составными типами на основе переданного. Или например возвращать результат того же или производного типа, сохраняя тем самым тип для вызывающего кода. Чаще всего представлено дженериками, но могут быть и другие формы (например template в C++). Как правило не имеет смысла в языках с динамической типизацией. А еще часто сопровождается контрактами на получаемый тип (например типами высшего порядка или типажами), что позволяет с одной стороны ограничить возможные типы, а с другой - воспользоваться характеристиками типа обусловленными контрактом.
    ad-hoc полиморфизм - способность функции предоставить разную реализацию в зависимости от запрашиваемой сигнатуры. Чаще всего выражено перегрузкой функций/методов. Как правило не реализуем средствами языка с динамической типизацией, хотя может быть реализован в рантайме (например в js функция всегда принимает произвольное количество аргументов и может проанализировать их в рантайме с помощью arguments).

    В общем случае полиморфизм нужен для переиспользования кода. Соблюдения практик SOLID и DRY не возможно без полиморфизма. Например в языке Go отсутствие полиморфизма в любом виде приводит к загрязнению кодовой базы и большому количеству копипасты.

    И еще, из моего ответа, может сложится мнение, что полиморфизм не применим к языкам с динамической типизацией, например к Python. На самом деле это не так, в ЯП с динамической типизацией полиморфизм наоборот возведен в абсолют.

    UPD: Примеры:
    правда я не шибко хорошо знаю конкретно Python, поэтому абстрактно напишу псевдокод:

    Полиморфизм подтипов, как уже говорил, это про ООП. Допустим у меня задача реализовать класс, который читает бинарные данные, проверяет, что они валидный utf-8 и выдает прочитанное как строку. Откуда он читает их? Да мне все равно, это не относятся к моей задаче. Конкретную реализацию я приму в аргументах, а уж откуда она будет читать, из файла или из сети - мне все равно. Главное чтоб эта реализация умела читать байты.
    // ok мне нужно что-то, что умеет читать байты, опишу это интерфейсом
    interface IByteReader {
      readBytes(): BytesIterator;
    }
    
    // и мой метод:
    readAsString(reader: IByteReader): string {
      var iterator: BytesIterator = reader.readBytes();
      // ну и тут как то с ним работаю, трансформируя байты в строку
    }
    теперь вызывающий код может передать в мой метод инстанс любого класса, реализующего мой интерфейс, и мне теперь не нужно дублировать логику чтения строки для файла и для сети.
    Еще один яркий пример тут - функция len() в Python, которая принимает любой тип реализующий одноименный магический метод.

    Параметрический полиморфизм, это про дженерики. Напишем 2 функции, обе будут принимать на вход массив, одна из них будет возвращать начальный элемент, а другая конечный. Но массивы бывают для элементов разных типов. Без параметрического полиморфизма, нам бы пришлось писать реализацию для каждого нужного типа, но благодаря ему мы можем это сделать в обобщенном виде:
    // T - это параметр типа
    fitst<T>(arr: [T]): Option<T> {
      if(arr.has(0)) return Some(arr[0]);
      else return None;
    }
    
    // давайте предположим, что некоторые виды массивов у нас могут быть бесконечными
    // тогда нам понадобится контракт, что можно передавать массивы только с известным размером
    last<T>(arr: [T]): Option<T>
      where [T]: WithKnownSize
    {
      var length: size = get_length(arr);
      if(length == 0) return None;
      else return arr[length - 1];
    }


    ad-hoc полиморфизм, это про перегрузку функций, пусть мы хотим функцию print которая умеет печатать числа и строки:
    print(value: string) {
      stdout.write(value);
    }
    print(value: int) {
      stdout.write(value.to_string());
    }
    Ответ написан
  • Перспектива рынка веб разработки с появлением Webflow?

    DevMan
    @DevMan
    перспективы цветут и пахнут: сейчас практически всё мигрирует в веб.

    но задающие подобные вопросы люди обычно стоят где-то в сторонке.
    Ответ написан
    Комментировать
  • Как реализовать иерархию категорий в урле django?

    @Realmixer
    Full stack Python (Django) web-developer
    URLs:
    path('<path:categories>/', viewsCategoryDetailView.as_view(), name='category')

    Views:
    def get(self, request, *args, **kwargs):
        categories = kwargs.get('categories').strip('/')  # 'cat/subcat/sub-subcat'
        categories = categories.split('/') # ['cat', 'subcat', 'sub-subcat']
        ...
    Ответ написан
    Комментировать
  • Как сделать так что бы написанный мной калькулятор на Java в Idea запускался на андроид устроистве?

    CellycoMobiles
    @CellycoMobiles
    indi developer @CellycoMobiles
    Как портировать ваше JavaFX приложение на Android и iOs читайте здесь.
    Активное комьюнити. Очень быстро отвечают на вопросы.

    Можно еще в web. Но это другой ответ.
    Ответ написан
    4 комментария
  • Знает ли кто то где найти разраба или готовое решение для WhatsApp/Telegram clone под Android?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Jabber разверните
    Ответ написан
    Комментировать
  • Какое направление выбрать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Ищете вакансии в вашем городе.
    Питон или С++ разработчик.
    Ходите на интервью.
    Если устроитесь за первые десять интервью, значит действительно неплохо знаете.
    Продвигаете английский.
    Ответ написан
    Комментировать
  • Как привязать прогресс бар к проверки файлов на диске os.walk()?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Ну вот объясните, или это тут надо отдельным вопросом задавать?
    Почему я нашел готовое разжеванное решение прямо по формулировке вашего вопроса в гугле в виде ссылки на отличную подробную статью?
    https://habr.com/ru/post/81532/
    Почему я нашел, а вы нет?
    Ответ написан
    Комментировать
  • За что забанили пользователя sprashivatel?

    pragmatik
    @pragmatik Куратор тега Тостер
    Как и вы, указанный пользователь является владельцем, еще как минимум 3 других аккаунтов, которые (как и ваши) были заблокированы за систематические нарушения правил данного Сервиса, включая самые грубые: оскорбления в адрес пользователей и сотрудников службы поддержки.
    Вот уж, воистину, "рыбак рыбака". Ваше поведение и характер нарушений настолько сходятся, что я бы заподозрил в вашем аккаунте его очередного альта.
    К сожалению, ваше требование разбанить указанного пользователя не подлежит удовлетворению.
    Ответ написан
    Комментировать
  • Почему нельзя поставить минус в статье?

    Boomburum
    @Boomburum Куратор тега Хабр
    Местный
    Судя по всему, кармы достаточно — поставить минус так и не получилось? Если нет, то попробуйте перезагрузить страницу, возможно, скрипты не прогрузились. Если не получается — напишите обращение в форму обратной связи с описанием окружения, возможно, какой-то баг.
    Ответ написан
    1 комментарий
  • Какая разница между базой в csv и sql?

    2ord
    @2ord
    Вставка/удаление невозможны без перезаписи файла CSV целиком.
    Ответ написан
    Комментировать
  • Какая разница между базой в csv и sql?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    csv - формат файла, sql - язык запросов. Как их можно сравнивать? При желании можно и к csv-файлу написать sql-запрос.

    Но если говорить о хранении данных, то база (не обязательно даже реляционная, кстати) всё-таки оптимизирована под постоянную работу с ними, включая вставку/изменение/удаление/быстрый поиск, а csv - для статичных малоизменяемых файлов и больше как формат для переноса данных.
    Ответ написан
    Комментировать
  • Поиск работы. Какова роль образования?

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