Задать вопрос
  • Как скомпилировать sqlite3.so для линукс?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Вопрос читается примерно как "как поменять колесо у машины". Дистрибов линуха - зиллион и у многих - свои уникальные способы. Разумеется есть способ универсальный - скачать исходники и собрать, но пакетные дистрибы например довольно нервно относятся к софту, установленному "через голову".
    Ответ написан
    1 комментарий
  • Почему не меняются записи в базе данных репозитория GitHub?

    deepblack
    @deepblack
    Справку не читай - и так сойдёт!
    Ответ написан
    Комментировать
  • Стоит ли поступать в учебные заведения/курсы?

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

    Vamp
    @Vamp
    Можно "перемотать" ResultSet и повторно прочитать из него данные:
    try (ResultSet rs = statement.executeQuery(query)) {
        while (rs.next()) {
            System.out.println("User: " + rs.getString("login"));
        }
        rs.beforeFirst(); // <-- перематываем
        while (rs.next()) {
            System.out.println("Hello, " + rs.getString("login"));
        }
    }


    Но это не сработает, если драйвер создал ResultSet типа TYPE_FORWARD_ONLY или реализация ResultSet не поддерживает перемотку в принципе. В этом случае придётся прочитать весь результат полностью в промежуточное хранилище и дальше работать уже с ним:
    class User {
        private final String login;
        private final String name;
        private final String email;
    
        public User(ResultSet rs) throws SQLException {
            login = rs.getString("login");
            name = rs.getString("name");
            email = rs.getString("email");
        }
    
        public String getLogin() {
            return login;
        }
        public String getName() {
            return name;
        }
        public String getEmail() {
            return email;
        }
    }

    List<User> users = new ArrayList<>();
    try (ResultSet rs = statement.executeQuery(query)) {
        while (rs.next()) {
            users.add(new User(rs));
        }
    }
    for (User u : users) {
        System.out.println("Hello, " + u.getLogin());
    }

    Вариант с использованием отдельного класса для хранения результатов используется повсеместно и имеет своё собственное название - DTO (Data Transfer Object).
    Ответ написан
    Комментировать
  • Как прибавить +1 к значению в sqlite?

    Vindicar
    @Vindicar
    RTFM!
    > Сама ошибка - star = cursor.fetchone()[0]
    > TypeError: 'NoneType' object is not subscriptable

    not subscriptable означает что ты пытаешься взять индекс у объекта, который это не поддерживает. В твоем случае объект типа NoneType - т.е. None.
    Иными словами, cursor.fetchone() вернул None, и конечно у None нельзя взять индекс.
    Почему fetchone() вернул None? Потому что запрос SELECT не нашёл ни одной строки с подходящим значением photo!

    Как это решить?
    Вставить в таблицу строку с photo, а если не получится (так как такое photo уже есть), то обновить. Есть два способа.
    1. Кодом. Проверить, что вернул fetchone(). Если None, то делаем INSERT. Если не None, то UPDATE.
    2. Средствами БД, что обычно называется UPDATE/INSERT, или коротко UPSERT. Для sqlite это потребует примерно такого запроса:
    INSERT INTO stars (photo, star) VALUES (ид фото, 1) ON CONFLICT (photo) DO UPDATE SET star = star + 1

    Требование: столбец photo должен быть первичным ключом или хотя бы иметь уникальный индекс, иначе запрос просто будет добавлять дубликат строки.

    ВАЖНО
    f'SELECT star FROM stars WHERE photo = "{photo}"' - никогда так не делайте! Особенно если входные данные получены от пользователя. Это хороший способ заполучить SQL-инъекцию.
    Используйте placeholders, по порядку:
    cursor.execute('SELECT star FROM stars WHERE photo = ?', (photo, ) )
    или по именам
    cursor.execute('SELECT star FROM stars WHERE photo = :photo', {'photo' : photo} )
    И удобнее и безопаснее.
    Ответ написан
    7 комментариев
  • Куда делся миллионный вопрос Хабра?

    DevMan
    @DevMan
    в силу определенных причин чётных номеров тут вообще нет.
    поэтому или 999999 или 1000001.
    Ответ написан
    3 комментария
  • Как сделать персональное голосовое приветствие на Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Примерно так:
    var userPrompts = Map.of("SERGEY", new SimplePrompt("SERGEY.wav"),
                             "ANDREW", new SimplePrompt("ANDREW.wav"));
    
    var block = userPrompts.get("SERGEY");


    Сюда бы еще наполнение мапы из бд прикрутить...
    Ответ написан
    Комментировать
  • Прыгаю с языка на язык, с одной сферы в другую, как сфокусироваться на одном языке?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Чтобы бросить курить надо просто перестать засовывать сигареты в рот и поджигать их. Тут тот же принцип
    Ответ написан
    Комментировать
  • Что нужно и на каком уровне знать в математике чтобы читать Дональда Кнута?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Хотелось бы овладеть той математической базой чтобы +- свободно ориентироваться в книге и понимать ее, чтобы знания откладывались а не просто страницы переворачивались.

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

    @cicatrix
    было бы большой ошибкой думать
    Если честно, думаю, что искусство программирования читают только, чтобы выпендриться. Практически же, никаких особых навыков книга не даёт. Да, как академический труд можно почитать, иногда даже интересно, горизонты расширяет, в целом. Но вот как программисту лично мне эта книга абсолютно ничего не дала.
    Ответ написан
    9 комментариев
  • Как прервать порочный круг опыта?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Крупные конторы в которых практикуется миграция. Найм сотрудника стоит конторе 3-6 месячных зарплат. Обучение обычно 20% в неделю если конечно нет горящего проекта. То есть через пол года вы дорастёте до нового скила просто читая курсы по пятницам. Это выгодней конторе чем привлекать готового специалиста.
    Ответ написан
    Комментировать
  • Как прервать порочный круг опыта?

    @nApoBo3
    Опыт стоит денег.
    Для получения опыта вам необходимо согласиться на вакансию с понижением в сферу где этот опыт есть.
    Ответ написан
    Комментировать
  • Почему нужно гуглить на английском?

    profesor08
    @profesor08
    1. Просто на английском инфы больше, несоизмеримо больше.
    2. Шанс того, что кто-то в мире столкнулся с искомой проблемой гораздо выше, чем кто-то из русского сегмента.
    3. Искать то-же проще, вбил ключевые слова и связи между ними и все, не надо перебирать несколько вариаций вопроса разными словами.
    4. Документация практически всегда есть на английском, изредка есть недоделанный и кривой перевод на другие языки.
    5. Да и функции, в основном на английском.

    русский то знаешь лучше, а значит на русском ты больше поймешь, чем на английском.

    Заблуждение. Чтоб что-то найти, надо знать что ищешь. К языку это мало имеет отношения.
    Ответ написан
    2 комментария
  • С чего начять новичку в СИ?

    includedlibrary
    @includedlibrary
    Си можно начать изучать с книги "Язык программирования Си" Кернигана и Ритчи. Или с "Head First C" (я начинал с неё). Потом можно почитать про новые фичи стандарта c11.
    Если вы хотите низкоуровневым программированием заниматься, то для начала нужно прочитать "Архитектура Компьютера" Таненбаума. Ещё есть очень хорошая книга "Цифровая схемотехника и архитектура компьютера" от Сары и Дэвида Харрис.
    Потом читать спецификации на железки, под которые вы хотите писать код.
    Ответ написан
    1 комментарий
  • Зачем нужна функция?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Ничто не мешает использовать и то и другое.
    А вопрос раскрывается прочтением хотя бы первых глав практической любой обучающей книги по основам программирования.
    Ответ написан
    Комментировать
  • Как лучше реализовать архитектуру счётчика заказов на BackEnd?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Зачем это делать по расписанию если можно сделать событийную систему с помощью брокера сообщений. Можно взять для старта RabbitMQ. А если есть уверенность в себе то лучше Kafka чтобы можно было возвращаться во времени
    Ответ написан
  • Django в веб разработке, зачем он нужен?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Я не могу понять какое место он имеет в веб разработке

    Django - это один из многих инструментов для создания веб-сайтов.
    Впрочем как и любые другие инструменты - он занимает свою нишу.

    зачем он нужен?

    Нужен, как ни странно, - для разработки веб-сайтов.

    Что именно непонятно-то?
    Ответ написан
    4 комментария
  • Фреймворки в веб-разработке?

    DevMan
    @DevMan
    а зачем столько производителей авто, а не одна Тойота?
    а зачем столько производителей молока?
    а зачем столько производителей туалетной бумаги?

    да потому что одним нравится одно, другим - другое.
    а один продукт на рынке - стагнация. доказано в разных отраслях, и не однократно.

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

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Нет договора - нет работы. Для начала ему придется доказать тот факт, что деньги были заплачены за работу, а не просто подарены тебе. Он же тебе их на карточку перевел? На личную карточку? То есть просто подарил :) (потому-то этим так активно пользуются мошенники :) )
    А ты в знак благодарности решил ему сайт сделать.
    У вас не возникло взаимных обязательств (ну, с точки зрения закона). В чем он тебя будет обвинять? Он сам их перевел тебе.
    Единственное, в чем он может обвинить - незаконная предпринимательская деятельность и уход от налогов. Я не знаю, как там с самозанятыми в этом отношении, возможно за это можно ухватиться, но ему правда от этого ничего не будет - максимум чего он добьется - с тебя налоги вычтут за "заработанную" сумму.
    Ответ написан
    3 комментария
  • Как вести себя в ситуации, когда клиент хочет написать заявление в полицию?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Кидалово чистой воды. А вот заблокировали зря. Разблокируйте и сообщите что он не доплатил вам 43000 рублей. И вы подаёте на него в суд. На основании посменной договоренности о работах. Кроме того запишите телефонный разговор на диктофон , видимо будет разговор на повышенных тонах, после этого пишите заявление в собр о вымогательстве. Они это любят.
    Ответ написан
    8 комментариев