Задать вопрос
  • Почему в Linux микрофон шумит при громоксти 95+%?

    Кирилл Маслов, у Вас "штекер" микрофона какой? Jack 3.5, Jack 6.3, XLR или какой-то другой?
  • (Организационный вопрос) Какие есть инструменты и техники разработки API?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    А есть способы как с этим бороться?
    Навеяло... Из дневника начальника: сегодня попробовал метод "кнута и пряника", понравилось! Но, пряником бить не удобно, завтра попробую метод "кнута и кнута"...

    В нашей работе подобного плана нам хватало:
    а) Вики (прямо в репозитории с кодом)
    б) Версионирования
    в) Заранее определенного плана, что должно делать API (иными словами мы никогда не бросались делать то, что должно делать "непонятно что") :)))

    Назначьте ответственного за ведение соотв. документации, swagger'а или текстового файла как озвучил коллега выше.
  • Как лучше захостить много небольших сайтов?

    Finesse, я часто разворачиваю "Мини VPS" с помощью LXC/LXD, очень удобно, можно заранее подготовить (самому) виртуальные машины со всем софтом и пр. лабудой. Делать это можно в т.ч. в рамках одного облака/дедика/уже купленного VPS/etc, довольно удобно, с точки зрения управления всей этой экосистемой и "промежуточные" потери - минимальны. Единственное, с чем придётся немного повозиться - с настройкой сети и возможно настройкой дисковой системы, если нужно будет ограничить место для каждой машины.
  • JSON тип данные в MySQL, в чем минус?

    Илья, хорошо, в этом Вы правы, хотя у меня такой "номер" не работал, в какой-то из версий MySQL (в 5.7.19 работает), но, в любом случае, это позволяет индексировать только скалярные значения и только конечные значения (в том смысле, что такой индекс покрывает одно значение, без вложенных в него), то есть, функционал всё равно крайне ограниченный.

    Сознаюсь, что именно с этим я "промазал", хотя это было первое, что я самолично тестировал, сразу же как узнал о появлении JSON'а в MySQL и индекс работал в 100% случаев по самому виртуальному столбцу и никак не работал при обращении "напрямую". Текущий расклад дел, конечно несколько утешает, но, к сожалению, "неполноценность" подобного функционала, всё равно оставляет желать лучшего и не позволит мне сказать, что "JSON-столбцы индексируются"... Боюсь даже представить, до каких неимоверных масштабов и степени бесполезности разрастётся индекс, если я попытаюсь проиндексировать все столбцы, которые потенциально могут использоваться в каком-нибудь "крупном" (условно) проекте, особенно в купе с "особенностью" MySQL'а использовать в конечном итоге, всё равно лишь один из них в рамках одного запроса...
  • Как лучше захостить много небольших сайтов?

    Finesse, Вы можете подключить отдельное хранилище, насколько я помню у "Amazon"ов такая услуга есть, у некоторых других облачных-хостеров тоже (сейчас на вскидку не скажу, но найти, думаю проблем не составит).
  • JSON тип данные в MySQL, в чем минус?

    Илья,
    Это описание альтернативной реализации виртуального столбца, при чем тут JSON индексы?
    Именно про это я и говорю, это не "механизм индексирования JSON-столбцов", это скорее "случайное стечение обстоятельств", которое "прикостылили" для индексации данных из JSON-столбцов (точнее, части данных из этих столбцов).

    Давайте ещё раз уточним один момент. Пример:
    1. У нас есть некоторый столбец (JSON) с данными, его структура заранее неизвестна
    2. У нас есть некоторый механизм, производящий выборку (фильтрацию) данных по этому столбцу, например, как в этом запросе:
    SELECT * FROM features 
    WHERE feature->"$.properties.STREET" = 'MARKET'

    3. У нас есть некий механизм (на клиентской части), генерирующий запросы именно в таком формате, т.е. механизм работает конкретно с JSON-данными, генерируя SQL-запросы

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

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

    И такое поведение (невозможность индексировать конкретно JSON-данные [тут речь идёт конкретно о JSON-данных, а не о данных являющихся производными от них]) характерно конкретно для MySQL. В частности, говоря даже про "индексацию через виртуальный столбец", проиндексировать мы можем только скалярное значение, что тоже действительно конкретно для MySQL.
  • Как лучше захостить много небольших сайтов?

    Finesse, Как вариант:
    1. Amazon
    2. IHC
    3. Infobox (до 24 ядер процессора и 64Гб памяти)

    и т.д., их довольно много и в целом, расширять ресурсы можно практически до бесконечности. Если даже 24 ядра и 64Гб памяти Вам не хватит - можно поговорить с хостером, я думаю они без проблем смогут организовать для Вас индивидуальное предложение.
  • Как лучше захостить много небольших сайтов?

    Этот вариант нам не очень нравится, потому что рано или поздно придётся арендовать новый сервер, настроить его и постоянно поддерживать, а с ростом количества сайтов таких серверов будет всё больше и сложность обслуживания будет расти.
    Арендуйте облако, чисто гипотетически, его вычислительные ресурсы практически не имеют ограничений.
  • JSON тип данные в MySQL, в чем минус?

    Илья,
    А создание виртуального столбца на JSON столбец и создание соответствующего индекса, не является разве индексом по JSON столбцу? Забавно конечно.
    Нет, не является. Давайте приведу несколько примеров уровня "на пальцах"...

    Момент I:
    1. Мы создаём столбец, с какими-то данными, JSON/XML/что-то-там-ещё (не важно), пусть он называется column1
    2. Мы создаём второй столбец, который называется column2, вешаем на него индекс
    3. Мы создаём триггер (и/или хранимую процедуру), вешаем его на "ON INSERT/UPDATE", по этому триггеру вставляем агрегированное значение в column2, например на основании некоторых данных из column1.
    Вопрос - чем подобный механизм глобально отличается от процедуры "создание виртуального столбца"?

    Момент II: Если нам нужно индексировать некоторое значение, которое в свою очередь является массивом, например такой вариант: {value1: [1, 3, 9, 7, 42]} или того "хуже", значение является объектом... Какой индекс MySQL может нам предложить для подобного рода значений? Из того, что вижу я, наиболее вероятный индекс, это обычный B-tree, толку от использования которого в данном случае, примерно никакого, по крайней мере в условиях реалий MySQL известных мне.

    Тут можно было бы привести ещё несколько примеров/примечаний, но я думаю этих двух достаточно.

    Ну не совсем, если до этого приложение работало JSON данными "как есть" (либо с вьюхами, которые доставали поля из JSON средствами базы), то в коде приложения ничего не поменяется, т.к. "создаться" виртуальный столбец, который нигде никак не фигурирует, а индекс при этом будет работать).
    Не знаю, где именно вы имеете в виду "не фигурирует", у меня лично, этот столбец вполне себе фигурирует, точно так же как и любой другой столбец, в т.ч. в SELECT * FROM table1 . И индексируется именно "этот" столбец, а не столбец с JSON-данными, на основании которого он [может быть] построен. Более того, не зависимо от того, сколько и каких виртуальных столбцов я сделал и как их индексировал, при обращении напрямую к JSON-полю непосредственно, не затрагивая напрямую этот самый виртуальный столбец, я не вижу, что бы MySQL использовала индекс с виртуального столбца, подозреваю, что это не баг, а фича "так и задумано", что в целом, мне видится довольно очевидным, т.к. если бы MySQL могла индексировать непосредственно JSON-столбцы, никакие виртуальные столбцы были бы не нужны по определению.

    Более того, с учётом крайне интересной особенности MySQL, под названием "1 запрос = 1 индекс", то есть невозможности использовать более одного индекса в рамках одного запроса, подобная "индексация" JSON-столбцов выглядит крайне бесполезно, даже если бы MySQL умел их "нормально" индексировать.

    В остальном, соглашусь что у каждой БД свое назначение, но хоронить MySQL из-за того, что есть Mongo, которая лучше в плане работы с не реляционными данными, и поднимать еще одну БД, чтобы хранить 3-5 сущностей, как то не огонь.
    Никоим образом не пытался "похоронить" MySQL, я вообще считаю, что MongoDB, объективно годится для 1-5% проектов, а некоторые её "особенности", (назовём их так) лично мне - объективно не нравятся.

    Так что, даже на текущий момент, Mysql JSON-костыль я считаю вполне рабочий инструмент для 40-60% ситуаций, когда нужна работа с неструктурированными данными.
    Я считаю его вполне работоспособным в 99% ситуаций, когда речь идёт о его использовании с оглядкой на возможные последствия и понимание того, "как оно там работает", даже больше скажу, я крайне рад, что в MySQL появилась поддержка подобного рода данных и ещё больше буду рад, когда в нем работа с этими данными будет построена в полном соотв. с новыми стандартами, так как это повлечет расширение возможностей различных ORM (и им подобных) библиотек в самых разных ЯП и MySQL не станет "тормозом" для реализации такого функционала (который в свою очередь, с вероятностью 99% будет реализован в большинстве других БД, в т.ч. Oracle, PostgreSQL, MS SQL и т.д.) и мир станет чуточку лучше, а в некоторых фреймворках, таких как например Symfony (точнее, я говорю про Doctrine, который в свою очередь является частью Symfony), при попытке сохранить такой тип данных как "массив", он будет сохраняться не как сериализованный в строку объект, а как JSON-данные (например) и т.д.
  • Как сделать такой слайдер?

    Нужна возможность именно второго ряда, и чтобы эти два ряда одновременно листались.
    Мне кажется, если взять почти любой слайдер, и представлять 1 слайд как колонку из двух картинок/элементов/объектов - то проблема решиться сама собой. Примерно вот так: 5a1afcec6aed8550346806.png (красным обозначен каждый отдельный слайд).
  • JSON тип данные в MySQL, в чем минус?

    Илья,
    Как легко и непринужденно мы вдруг перескочили на Postgres, ну да ладно. Т.е. сначала вы заявляли, что индексы в MySQL нельзя построить по JSON полям, потом оказывается вы имели ввиду по всем свойствам JSON объекта, окей, выкрутились.
    Нет, никто не выкручивается, давайте говорить предметно. Конкретно по JSON-полю можно построить индекс в MySQL? Нет. Об этом написано в документации. Какие ещё вопросы с этим? Проиндексировать можно значение виртуального столбца, который в свою очередь не имеет никакого ни прямого отношения к JSON-столбцу, там могут быть в буквальном смысле любые данные и к JSON-столбцу это никак не относится. По этому, ещё разок: проиндексировать непосредственно JSON-столбец - нельзя, от слова совсем, т.е. никаким образом, ни таким как в MongoDB, ни таким как в PostgreSQL, ни каким-то ещё.

    Я их рассматриваю в разрере структуры хранения данных, и возможности альтернативы использованию Mongo (раз уж вы такой специалист, то может скажется в какой ситуации выгоднее будет монго чем mysql?).
    То есть по вашему, люди используют MogoDB только по тому, что там были именно данные в формате JSON? "Нереляционные" (назовем их так) типы данных, например, XML появились в MySQL с версии 5.1, появились примерно в 2007г. XML принципиально хуже JSON'а?

    Че-то странный вы персонаж, то значит спорите и доказываете, что можно создавать индексы для всех полей JSON объекта, а потом пишите что это на фиг не надо. Дак вы определитесь, надо или нет? Ведь если не надо, то какие претензии к MySQL? А если ответ "в каких то ситуациях нужно", дак в каких то ситуациях и нужно использовать не MySQL.
    Вы сейчас серьёзно? В MySQL, JSON-поля, это некоторый такой, костыль, который реально годиться для того, что бы хранить какую-то часть документа/записи/строки, которая имеет динамический формат (т.е. заранее неизвестные набор и/или схему данных). MongoDB - это БД которая изначально имеет совершенно другую архитектуру, в т.ч. Монга позволяет индексировать любую структуру документа (или его часть), при этом не изменяя саму структуру, этого документа, как это происходит в MySQL. То есть, если мы вдруг решили, что нам нужен индекс по какому-то новому полю (т.е. связке ключ-значение) - нам не нужно внезапно бежать и переписывать кусок приложения, который теперь будет использовать новое поле (виртуальный столбец, а именно это случиться в MySQL), мы просто строим новый индекс и на работу приложения это никак не влияет. В MySQL не имеет возможности делать ссылки из JSON-данных на другие данные, например так. Есть такая категория людей (разработчиков), которые считают, что если нужна поддержка данных с неопределенной схемой/структурой, то обязательно нужно использовать MongoDB, т.к. хранение "пары строчек" этих самых данных, в поле формата JSON или XML - их почему-то не устраивает (хотя такая возможность покрывает их реальные потребности на 101%). А вы видимо из противоположенной категории людей/разработчиков, которые считают, что "раз MySQL поддерживает JSON, значит, она может полностью заменить MongoDB". Есть масса отличий между MongoDB и MySQL, самых разных, в т.ч. преимуществ и недостатков как у одной БД, так и у другой. И есть ряд проектов, которые по определению будут работать лучше работать с одной БД или с другой, более того, есть ряд проектов которые используют обе этих БД. Вы хотите, что бы я тут лекцию с подробным ТЗ написал, на тему того, в каких случаях MogoDB может быть лучше? Если вы сами понимаете отличия между ними, то немного подумав, представить себе такие проекты - довольно не сложно, а если различия между ними для вас столь не очевидны, о чем мы вообще говорим?
  • JSON тип данные в MySQL, в чем минус?

    Илья,
    С монго вы судя по всему тоже не работали
    Давайте уже оперировать фактами, или чем-то близким к фактам, а не доводами, подкрепленными ничем. Тогда наш диалог будет куда более конструктивным.
  • JSON тип данные в MySQL, в чем минус?

    Илья,
    Как же сложно с вами общаться. Вы сами пробовали создавать индекс? Каким образом база построит вам индекс по всему JSON полю, которое в принципе может иметь любую структуру?!
    Например так, один из вариантов индексации JSON-данных. 3 строчки про GIN. Что нам MySQL предоставляет в качестве альтернативы GIN-индексам... дайте подумать... примерно, ничего?

    Документацию прочитайте повнимательней, там даже пример по созданию индекса (видимо дальше первого абзаца вы не пошли?)
    Прочитайте документацию по другим БД, и тогда вопрос "как можно индексировать JSON-поля?" отпадет сам собой.

    А теперь вопрос: какого хера, специалист такого уровня как вы, сидит, и несет такую херь?! Или вы слегка преувеличили свои регалии? Или вам просто повезло? Или несмотря на такие заслуги вы херовый специалист? Или вы просто специалист к конкретной области, а считаете себя эрудитом и знатоком во всех областях?
    Если немного подумать, то херь несёте именно Вы, достаточно взять одно только высказывание, про то, что "MongoDB можно заменить на MySQL без каких либо проблем". Вы берете во внимание исключительно какой-то удобный для подобного утверждения пример, забывая примерно обо всех индивидуальных особенностях этих двух БД. Таких как скорость обработки данных например, общую концепцию работы и так далее. Если бы базы так легко (как вы думаете) взаимозаменялись - достаточно было бы одной БД а MongoDB вероятнее всего, вообще не появилась и вряд ли бы она стала развиваться, а какие-то люди (исходя из вашей логики) - не понимающие прописной истины, которая заключается в том, что в MySQL тоже есть JSON (или возможность туда его добавить) - не стали бы вкладывать сотни тысяч $$$ в развитие MongoDB.

    В какой ситуации вам понадобиться создавать индексы по всем ключам JSON поля (или документа в случае с Mongo), если запросы по факту будут делаться по конкретным полям?
    Это ещё один момент, который показывает крайне не высокий уровень вашей квалификации, который вы так усердно пытаетесь приписать мне. Конкретными - поля (ключи) становятся исключительно в момент запроса, а сама по себе структура - может многократно и динамически меняться в режиме "от случая к случаю". Есть миллион вариантов, при которых нам может понадобиться поиск по динамически выбранному набору полей, который при этом будет "всеми полями" для одного отдельно взятого документа. И индексацию в этом случае, можно проводить так же - динамически, главное делать это с головой, а не бездумно индексировать всё подряд, понимая, для начала, что вообще из себя представляет индекс (физически) и чем нам "грозит" его построение.
  • Что лучше выбрать для обчения asp.net или php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Илья,
    Ну вы то видимо знаете раз такую пиздаболию развели.
    Пиздаболию тут разводите тут исключительно вы в данный момент, причем не стесняясь и оперируя абстрактными понятиями, без какой либо вообще конкретики. В частности, эпитетами вроде:
    На высоко-нагруженном сервисе, на net core себя очень неплохо чувствует.
    На каком-то неведомом сервисе, с какой-то "высокой" исключительно по вашему персональному мнению нагрузкой, как-то там себя чувствует... Очень серьёзный технический аргумент.

    Мы говорили про ASP.NET, не конкретно про MVC, а про ASP. Но видимо вы иначе диалог ведете.
    Мы говорили о том, что багов в Mono - больше чем в винде, а вы называете это "нормально". У вас довольно извращенные представления о "нормальности" чего либо, что-то на уровне "если едет, значит машина".

    То что вы никогда не работали с ASP под линуксом, а не пытались поднять более менее что-то серьезное на нем (а может просто не смогли?), это не значит что другие это не делают.
    Ваше утверждение уровня "как в воду дунул", про неких "других", которые "это делают" - никоим образом не подтверждает ровным счётом ничего, из той же примерно серии "если вы не видели летающих розовых слонов на взлётной полосе, аэродрома, это не значит, что они там не летают".
  • JSON тип данные в MySQL, в чем минус?

    Илья,
    MongoDB - это документо-ориентированная БД в которой документы представляют из себя JSON файлы. Т.к. MySQL поддерживает JSON поля, то по факту, в общем случае, можно документы (aka таблицы) Mongo, разместить в JSON полях MySQL.
    MySQL никак не может заменить монгу, хотя бы по той причине, что не может (об этом ниже) индексировать JSON-поля. По такому принципу "замены" о котором Вы говорите - можно БТР заменить тарктором, если к нему прикрутить пулемёт, сходства будут примерно аналогичные.

    Документация, видимо поиском лень пользоваться.
    Открываем документацию, и первой же строчкой читаем:
    As noted elsewhere, JSON columns cannot be indexed directly. To create an index that references such a column indirectly, you can define a generated column that extracts the information that should be indexed, then create an index on the generated column, as shown in this example
    Из первого предложения которой становится ясно, что:
    Как отмечалось ранее - JSON-колонки не могут быть проиндексированы напрямую
    что в свою очередь говорит по факту о том, что они не могут быть проиндексированы вообще. Проиндексировано может быть отдельное значение в виде виртуального столбца. Нужно объяснять, что "виртуальный столбец" и JSON-столбец - это не одно и то же?

    Дак собственно выяснять то и нечего, ваша основная претензия это то, что в MySQL не реализован стандарт. По такой логике использовать NoSQL технологии (или прочие), для которых нет стандартов - нельзя?
    Претензий у меня нет никаких, я просто констатирую факт, который гласит: MySQL и его производные - не поддерживают даже довольно старые стандарты SQL. По такой логике, что дальше делать - каждый для себя решает исключительно сам.

    Видимо все ваши работы остались на столе у преподавателей универа.
    Мои работы до сих пор радуют некоторых крупных заказчиков, как местных так и иностранных (включая международные компании), некоторые из которых входят в ТОП Форбс'а. Некоторых других не менее радуют ряд специалистов, подготовленных лично мной, в т.ч. специалистов международного уровня.

    А вы судя по всему интересный собеседник с диким ЧСВ
    А Вы судя по всему отличный практикующий психолог/психиатр, раз так быстро и уверенно оцениваете других людей? Не понимаю, что специалист подобного уровня и главное, - направления, забыл на IT-ресурсе...
  • Какую стоит выбрать панель управления для домашнего сервера?

    brainrom, я так примерно прикидываю, все панели которые я помню... думаю, можно бы дополить какую-то готовую, но свою для таких задач, мне кажется написать будет быстрее/проще, чем с чужой ради "чиха" разбираться. Но, на всякий случай - можете тут посмотреть, может чего приглянется...
  • Какую стоит выбрать панель управления для домашнего сервера?

    brainrom, может Вам проще самому такую "панель" сделать? Пол часа кодинга мне кажется, и "панель" готова.
  • Какую стоит выбрать панель управления для домашнего сервера?

    Либо функционал такого управления уж очень скудный. Существует ли панель, которая близка к моей задаче? Всё, что мне надо - иметь возможность смотреть логи серверов, запускать, останавливать. Ничего сверхъестественного.
    Судя по описанию, примерно такой расклад:
    mc + складывание логов в одну папку + несколько скриптов на запуск/остановку и панель готова :))
  • Из .txt в БД в MS SQL?

    Майкл Васюков, я думаю, пример txt-файла неплохо бы увидеть :)