Задать вопрос
  • Как можно использовать Foreign Key?

    Очевидный пример:
    Допустим у тебя есть таблица с домашними животными и таблица с хозяевами домашних животных.

    Чтобы указать у животного, кто его владелец - ты заводишь колонку "идентификатор владельца".

    И вот чтобы гарантировать, что эта колонка всегда содержит реально существующий идентификатор, и что, например, никто не удалит владельца, к которому привязаны какие-то животные - ты можешь завести foreign key.

    В случае попытки удалить запись о владельце, на которого кто-то ещё ссылается, или при попытке указать несуществующий ИД - СУБД выдаст ошибку, что было нарушено ограничение.
    Ответ написан
    4 комментария
  • Если удалить ветку, то что происходит с дочерними ветками?

    egor_nullptr
    @egor_nullptr
    Ветка - это указатель на коммит. Удаляя ветку, вы удаляете указатель, если на этот коммит больше нет указателей, то он "потеряется" (найти его можно будет только через git reflog).
    Ответ написан
    Комментировать
  • Какой язык программирования выбрать для изучения основ работы с алгоритмами и структурами данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Алгоритмы и структуры данных тесно связаны с зубо-дробительными бенчмарками. Как-то отсортировать терабайтный текстовый файл или найти два одинаковых числа в файле из чисел тоже большого размера.
    Иногда такие задачи задают на собеседованиях Google и Microsoft.

    И если вы будете изучать эти алгоритмы на js, то вы не сможете продемонстрировать эффективность этих
    алгоритмов. Python машина - просто медленная. У нее конечно есть надстройки например над векторной
    алгеброй которые позволяют быстро считать рутину вроде циклов над векторами. Но является ли это
    программированием Python - чорт его знает. Как по мне - нет. Тут - другая экспертиза нужна.

    В структурах данных важно также оценивать память "на глазок".

    В этом смысла кодер С++ имеет много преимуществ т.к. он видит и понимает как распределяется память
    в узле бинарного дерева например (два указателя по 64 бита + какой-то размер для ключа который тоже
    можно посчитать). Какой аллокатор брать? Встроенный в язык new или нужно делать собственный.
    Такой расчет важен для оценки например - применима ли структура данных вообще?
    Какой толк от дерева если оно не влезет в оперативную память? А падение памяти в swap - тут-же замедляет
    алгоритм в разы.

    JS и Python не предоставляют тонкого контроля над памятью. У них своя модель построенная для комфорта
    самого процесса разработки а вовсе не для струткуры данных.
    Ответ написан
    Комментировать
  • Что лучше, по одной или несколько записей при INSERT?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Имеется система логов, которая довольно часто вызывается, при пиковых значениях достигает до 30-40 записей в секунду. Использую engine ARCHIVE, сервер MariaDB, подключение по unix сокету.

    Имеет ли смысл собирать кучу данных допустим 50 записей и потом одним запросом добавлять 50 записей.

    Смотри. Писание логов в Марию - это как по мне лишнее. Оверинжинеринг. В наше время логи собирают logstash-ем и пишут в Кибану. Там для каждого формата есть свой парсер. Для Ninx, Apache e.t.c.

    Если тебе прям сильно-сильно надо писать логи в реляционную систему (очевидно что-то джойнить с логами) - то пиши максимально большой пачкой. Хоть 1000 штук. Сколько позволяет размер фрейма в этом unix socket. (Кстати какой он там?) А чорт его знает. Но.... если ты записал 999 записей а последняя еще не пришла, а тебе срочно нужно глядеть в базу - тогда делай периодически сброс по времени. Например через 3 секунды от начала пачки ты будешь делать insert независимо от того сколько строк накопил.

    Вот так.
    Ответ написан
    Комментировать
  • Строка из БД как условие сравнения в if?

    v3shin
    @v3shin
    Веб-шаман
    Можно как-то так, в зависимости от вашего кода и нужд:
    if ($row['compareSign'] === '<=') {
        return $a <= $b;
    } elseif ($row['compareSign'] === '>') {
        return $a > $b;
    }
    Ответ написан
    Комментировать
  • Как понять/выучить ООП Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Python - это хороший старт для карьеры, но плохой для ООП.
    Ответ написан
    9 комментариев
  • Какая БД позволяет использовать структуру множественной связи (дерево связано с деревьями)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри графовые бд: Neo4j (например).
    Покрывает все твои потребности.
    Ответ написан
    2 комментария
  • Какую выбрать бд для телеграм бота на пайтоне?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нашел информацию, что sqlite не поддерживает многопоточность.

    Это не проблема для твоего приложения. Обеспечивай синхронизацию на уровне python и работай короткими
    операциями (OLTP). insert/update по одной строчке.

    А мультипоточность можно заказывать для долгоиграющих процессов. В боте таковых нету. Не должно быть вообще. Никогда не должно быть.
    Ответ написан
    Комментировать
  • Вопрос по развитию IT?

    Adamos
    @Adamos
    Пара учебников по Java, пара - по С++, один по азам веба. Ну, тут самому надо решить, за что браться - все три "в одну телегу впрячь не можно".
    Дальше, пара книг по алгоритмам. Вряд ли стоит их грызть до возможности применить - то есть до изучения хотя бы одного языка программирования (HTML и CSS - языки разметки).
    Мартин и Бек - после законченных самостоятельных проектов. Они хорошо объяснят вам, как уверенному в себе программисту, почему вы зря так уверены в себе.
    Практическое руководство по Git стоит взять, когда сможете поднять голову от кода и задуматься о том, как содержать его в порядке.
    Остальное можете использовать как подставку под горячее.
    Ответ написан
    3 комментария
  • Английский язык сильно помогает для роста в сфере IT и Программирования?

    1. Без английского тебе в принципе не доступны вакансии не в россии.
    2. Без английского тебе для изучения будут доступны только книги на русском, а на него переводят не все книги + это сразу отставание минимум на год, от момента издания книги на английском.
    3. Без английского тебе по сути не доступна вся документация, ибо её редко пишут на русском.
    4. Практически весь софт имеет интерфейс только на английском

    Для понимания технической литературы нужен Pre-intermediate, который можно легко достичь через практику, даже без целенаправленного изучения.
    Всё-таки техническая литература - это не художественная, тут нет всяких сложных речевых оборотов и словарный запас огромный не нужен, да и авторы часто не являются native speaker-ами.
    + Встроенный переводчик никто не отменял (но он не для всех описанных ситуаций применим)
    Ответ написан
    Комментировать
  • Возможно ли учить два языка программирования одновременно?

    @dmshar
    В вашем конкретном случае - не стоит. Почему? Потому что вы спрашиваете. Такое впечатление - что торгуетесь "Вот выучу два языка, а какую конфетку я за это получу?"
    А тот кому это действительно интересно - тот не спрашивает окружающих, а берет и учит. Потому что делает это не ради "конфетки", а что-бы реально набраться ума-разума.
    Ответ написан
    1 комментарий
  • Как сохранить нули при переводе в шестнадцатиричную форму?

    Adamos
    @Adamos
    Какой-то жопорук писал инструкцию, конечно.
    Очевидно, что раз в одну строку валится все подряд, то длины частей этой строки должны быть регламентированы, иначе не поймешь, где закончилось одно и началось другое.
    Вам не нужно "сохранять нули". Вам нужно нарастить полученную НЕХ-строку нулями спереди до 12 символов, если она короче.

    P.S. Кстати, там дальше написано, что можно с этим шаманством вообще не возиться и просто передать данные отдельными полями.
    Ответ написан
    6 комментариев
  • Каково реальное актуальное ограничение по скорости интернета со стороны провайдера/серверов?

    @d-stream
    Готовые решения - не подаю, но...
    Категории кабеля не имеют понятности актуальности. Каждая из них имеет свой диапазон применимости. В диапазонах до 1Гбит/с - категория 5e - сверхдостаточна и оптимальна. Аналогия: фапать на кабель AWG-0000 для зарядки сотового телефона)

    Домашние провайдеры не предоставляют услуг гарантированного канала - поэтому и тарифы "10Мбит" и "1гигабит" и "100500гигабит" звучат так только в рекламном булшите... в договорах звучит как "..скоростью [от нуля] до xx Гбит/с [до порта провайдера]" и в переводе на человекопонятный язык это выглядит как:
    - даже скорость 0 (ноль) гигабит/с в таких тарифах юридически допустима и нормальна
    - это скорость от квартиры до ближайшего коммутатора, не более...

    Так что в принципе всё это скорее развод для лошков)

    Классика жанра:
    абоненты домового провайдера подключены гигабитом до ближайшего коммутатора, который... подключен оптикой к оптическому коммутатору ядра... тоже гигабитом... А ядро имеет пару-тройку 10 гигабитных аплинков до IX

    Дальше можно прикинуть что будет когда 48 жителей одного подъезда вдруг зарядят например закачку торрентов))

    Ну и да: более-менее нормальные сайты и ресурсы обязательно шейпят отдаваемый в одни руки поток... как правило не очень быстрый
    Ответ написан
    4 комментария
  • Как завершить запущенную утилиту в bash скрипте?

    paran0id
    @paran0id
    Умный, но ленивый
    Вам не нужно эмулировать нажатие клавиш. Ctrl-C посылает процессу сигнал SIGINT. Вам нужно послать сигнал запущенному процессу, для этого нужно знать его PID. PID можно получить из pid-файла, если та консольная утилита его создает, либо через переменную $! (yourcommand & echo $!), либо грепнув по процессам (см. pgrep). Рассмотрите также сигналы SIGTERM и SIGKILL.
    Ответ написан
    Комментировать
  • Какой БД выбрать для ERP-систему, SQL или NoSQL?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    NoSQL а рекомендуют многие, говорят бистре чем SQL

    Производительность можно оценить только в конкретном сценарии использования, который будет уникален для каждого проекта. Заявления про скорость без контекста нужно оценивать как пустословие и хайпожорство.

    сейчас проект работает на Postgresql

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зависит от того, как устроен вирус. То есть как его автор задумал, так он и работает. Например, если вирус заражает только то, что открыл пользователь, то можно просто ничего не открывать. Но откуда тебе знать, как работает данный конкретный вирус? В теории вирус может сам открывать всё то же, что можешь открывать ты (тем более без пароля), и делать те же действия, что и ты, не спрашивая разрешения и не дожидаясь сигнала.

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

    Реально же более опытный не может точно знать, твои ли действия привели к заражению или чьи-то другие. Ты был не осторожен, но был ли причиной - это узнать очень сложно, разве что по времени создания файлов как-то пытаться установить, но всё равно это неточно и сложно.

    Кроме того, когда ищут причину чего-либо, ищут главную причину. Когда ищут виноватого, ищут главного виноватого. Кто, например, виноват в том, что стакан разбит: тот, кто его задел, или тот, кто его поставил на край стола? Однозначного ответа нет. Скажем так, зависит от того, насколько близко был стакан к краю стола и от многих других факторов, и всё равно вердикт выносится на глазок. Также и здесь, вину вполне можно свалить на того, кто не ставит пароли на свои папки, не использует антивирус, фаерволл и т.п.

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

    Так вот все вышеописанное работает хорошо но до того момента как наш комп не уйдет в спящий режим, и тогда , примерно через 30 сек вебсокет соединения разрывается

    По вполне понятной причине:
    Вебсокет работает поверх TCP. Когда в рамках TCP-соединения не передаются никакие сообщения - оно разрывается, причём вроде аж на уровне провайдера.

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

    toxa82
    @toxa82
    Вы разницу между одинарными и двойными кавычками в php знаете?
    $q = mysql_query('SELECT * FROM `keys_constructor` WHERE `number` = "$login" AND `password` = "$password"');

    Тут одинарные кавычки, значит переменные $login и $password не подставляются а используются как литералы, поэтому ничего не находит.
    Ответ написан
    Комментировать
  • Почему cron не выполняет задания?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Сделайте
    /sbin/shutdown -r now >>/tmp/log.log 2>&1
    Ответ написан
    5 комментариев
  • Насколько большую роль в IT-карьере играют связи?

    Нет связей - тебе придется трудно.

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