Сам лично дважды отправлял в МТС претензию, чтобы достали номер компании из "спам-листа". Изначально думали телефония полегла, посыпались массовые обращения, что нельзя в компанию дозвониться.
И сразу в догонку@jackcraneя, как клиент, в гробу видал и то и другое. Я желаю быстро и четко получить информацию, которая мне нужна, а не переписывать по полдня с людьми, которые только недавно письменность освоили. Я не знаю, что именно случилось с бизнес перепиской, но все меньше я получаю писем где четко и лаконично указано именно то, что я просил. Так же регулярно замечаю, что люди письма читают по диагонали.
Вот только в числе этих заблокированных звонков огромное количество телефонных номеров реальных компаний, части ниразу не спамерских, сам дважды доставал из блокировок номера компаний. А автоматизированные коллцентры спокойно себе работают, потому что это кого надо коллцентры. Стабильно 2-3 раза в день получаю спам звонки в том числе в выходные и ранним утром, тупо проще белый список сделать.
Тоже не понял. Тезис "я видел плохо спроектированные бд, поэтому они зло" как то слабоват и тем более не увидел ответа, почему же смена типа базы данных от этого избавит.
Законопослушные и благонадёжные граждане получают высокие показатели в рейтинге, что даёт им ряд привилегий, например, устроиться на хорошую работу, приоритет при обслуживании в госучреждениях и возможность получить кредит.
Если бы только так, то это было бы терпимо. Куда хуже что при низком рейтинге даже билет на поезд купить не получится. И что намного хуже, рейтинг родителей является базисом. Наказание детей за грехи родителей и "рабом родился, рабом и умрешь" это откат в развитие человечества на три тысячи лет назад. Тут даже известный эпизод черного зеркала меркнет.
В таком случае всю команду, которая занимается UX нужно уволить в обнимку с маркетологами за профнепригодность. "Не виноватая я, меня заставили" конечно забавная мантра, но только для собственного успокоения. И, заметьте, я написал "ВСЕХ это это сделал"
Не так с дизайнерами то, что они не пользуются своими продуктами. А еще не понимают то, что написано в первом коменте. Я годами искал тех кто не просто "делает продуктовый дизайн" а читает книги, узнает по перспективу и особенности психологии, самосовершенствуется и стремится делать клевые вещи. В итоге оказалось, что проще самому освоить архитектуру UX.
На днях дочка попросили поиграть с ней в корабли, ну идем качаем WoWs. Захожу, Сразу в глаза всплывашка на экран с рассказом о том как им хочется денег, закрываем. А где мой порт? Что это за аляпистое нечто? Ах да, это дизайнерам очень хочется чтобы я непременно увидел как они старались, меняем порт на спокойную водичку и глазки начинают отдыхать. А что у нас тут за уведомление? "Прочтите новости, чтобы получить награду", ну ок, давайте прочтем, прочитал то, что мне интересно, где награда? Ах, надо в одном из разделов кнопочку, горите в аду, закрываем. А тут что подсвечено? Боевой пропуск, заберите награды, и нам бы хотелось еще денег, награды заберу, денег не дам. Дальше что? "Верфь": вот вам награды, а еще можете получить БОЛЬШУЮ награду, но, да мы хотим денег, кораблик хочу, но денег не дам (хотя тут наиболее весомый пожалуй аргумент). Дальше "адмиралтейство": ой, что это, я что попал в конец 90ых? все сверкает, музычка включалась, выключить, выключить(!), что тут у нас? тут немного халявы, сэр, но еще мы хотим ДЕНЕГ, снова не дам, закрываем. А чего тут за красная точка? Новые нашивки и коллекции, очень важно да, может они сделали ПКМ "отметить все"? Нет, нужно найти в списке и поводить мышечкой. Хух, справился, чего на сладкое? Контейнеры? Ну давайте, ах надо нажать кнопочку "получить контейнер" и обязательно посмотреть как его притаскивает кран, а внутри что? ндеее, народ вы правда не слышали про эффект малозначимых наград?.
Ребята, я только что зашел и сыграл несколько боев и вы уже довели меня до бешенства, где гребаная кнопка "забрать все и отключить все уведомления?". Почему нужно доводить до бешенства свою самую платежеспособную аудиторию? И это я еще не вспомнил про интерфейс, который после многих лет еще не везде избавился от светлых прозрачных фонов, и про алгоритм кислого, по которому во всем мире не проехался только ленивый.
Очень хочется, чтобы тех кто это все сделал, прижали нежно к земельке якорем (можете написать на нем большими буквами UX), дали ноутбук и заставили делать все, что описано выше снова и снова и снова до просветления.
Я чувствую все эти вещи острее чем большинство и уже насиделся в офисах где после 18 отключают вентиляцию (пришел бодрый через час уже мордой в клаву) и в офисах где в глазах светлело, когда выходил покурить. В итоге когда в новой квартире стал просыпаться через 4-6 часов от духоты пошел и поставил по бризеру почти в каждую комнату с датчиками, подобрал соотношение приток/шум и проблем не знаю. С датчиками сверяюсь чисто справочно иногда.
PS заставил вынести растения из спален к чертям ибо они выдышивали мой воздух!
PS Если вам цифры выше кажутся большими, вы еще не представляете сколько человек расходует когда занимается сексом, там за 60+ кубов
PS Вообще если не верите датчикам то вот попроще
В жилых помещениях воздух должен обновляться в среднем 1 раз в час, в офисах — 3 раза и выше.
Норма притока свежего воздуха в жилые комнаты и спальни с расчетом на одного человека рассчитывается так: 7 дм3/с ˑ чел. : 1000 х 60х60 = 25,2 м3/ч. Иными словами, для каждого человека, находящегося в жилом доме, системой вентиляции должен обеспечиваться приток до 25 м3 свежего воздуха в час.
Это даже не нелепо, это безумие. На своих курсах есть возможность заприметить людей, с качествам, которые тебе очень нужны (а многие из них на собес в яндекс не пойдут по целому ряду причин). При этом, как выше отмечалось, компании тратят чудовищные средства на поиск сотрудников на будущее.
Следовательно одно из двух, либо в плане нейма у яндекса все невероятно плохо, либо курсы эти не стоят вообще ничего.
Я думаю, что анимацию сделали потому, что по поводу ГПСЧ у человека бесконечное количество заблуждений. Визуализация процесса броска часть из них снимает.
Тем более что игровой рандом он не чистый ГПСЧ ниразу, его итак подкручивать приходится в пользу игрока. Но с другой стороны на тараканы в головах сильно влияют всякие Wargaming,X-Com и прочие изза их ненормальной тяге к подкручиванию всего и вся.
А вот с дайсом все оказалось именно так, как и боялся. Абсолютно ненужный гиммик, который только замедляет процесс Save/load прохождения проверки, из-за того что необходимо просматривать анимацию. Хотя «Плюсик за старания» поставить можно.
Объясните пожалуйста зачем этим вот все занимаются? Не прошел проверку, ну все, значит не прошел. Вы же в реальной партии на каждом шагу гейммастера не собираетесь убеждать что кубик надо перебросить? Что вполне логично, как там в мстителях: "Если убьет - то и умрешь"? )
Ценность SO (или комментов на хабре) в том, что можно почитать почему конкретно тот или иной вариант не стоит использовать (ну или он вообще некорректен) а так же почитать несколько мнений сразу. Причем за очень короткое время.
@PuerteMuerte да, каюсь, моя ошибка, я о таком подходе слышал и даже несколько раз его обдумывал, но в живую не видел ниразу, а работаю как раз финансовой сфере. Я себе инты не мог позволить на старте последнего проекта изза целого ряда факторов, самым существенным из которых является проблема с bigint/округлением в гетерогенных средах.
@cupraer По поводу вашего вступления, замечу что весь смысл комментариев в общении, и тому что я писал есть конкретные причины, а вы злитесь, как будто я пришел к вам домой и цветом коврика недоволен, будьте добрее)
Взять готовенькое, к сожалению, не вариант, потому что я и есть тот самый Пальяччо.
Мы все тут с той стороны, которая делает кнопки "сделай хорошо")
Не сказать, что ваш сиквел как-то особенно более лучше читается, в сравнении с моим, но это и не важно: они не изоморфны (потеряна full composability), и поэтому ваш не пойдет.
Ну мне, как человеку который живет sql, куда проще читать, но тут вкусовщина. Запрос проще для манипцляций, но тоже вкусовщина. А вот в изоморфность я не верю: я очень много и давно работаю с разными базами и почти всегда это приводит лишь к тому, что инструмент плох во всех случаях.
Джейсон выбирал не я (см. п. 1), где-то по соседству я оговорился: для тех, кто волен выбирать в базе — я от входа рекомендую composed field, с ним таких проблем, очевидно, нет.
Верно, но есть другие, например невозможность объявить not null для каждого вложенного поля. Хотя это можно конечно решить через check.
Деньги — это всегда инт, любой школьник, поработавший с деньгами хотя бы годик вам это скажет.
Школьник не архитектор и будет работать с тем, с чем скажут и с шансом в 98% это будет numeric/number
Если он это скажет с такой категоричностью его ждет очень много открытий чудных
Сначала он выяснит что на входе и на выходе от/к пользователю у него всегда float
Потом он совершенно наивно умножит на 10^2, не обеспечит при этом централизованно управляемую систему трансформации
В какой то момент с удивлением обнаружит что умножение на степень 10 не является точной операцей и хорошо, если он добавит округлении только лишь при трансформации пользовательского ввода, иначе его ждет еще много увлекательных приключений
В какой то момент выяснит, что нужно вычислять процент от суммы и поймет что нужно поднять еще на две степени
Вполне возможно (а всего несколько лет назад, практически наверняка) познакомится с особенностями работы с int64 в гетерогенных средах, если не повезет то и с bigInt.
Столкнется с полной невозможностью использовать такой любимый и удобный two-way variable binding во фронтовых фреймворках.
В работе с float при грамотном подходе ничего страшного, в принципе, нет, если не пытаться округлять его при каждом чихе.
Контроль на уровне базы — штука хорошая, но в случае двух полей мы получаем зыбкое улучшение за счет простых проверок, но теряем консистентность данных и буквально приглашаем прикладных программистов, которые этим кодом будут пользоваться, понаделать невынужденных ошибок из-за неверного апдейта
Возможно, но в прикладных решениях смена валюты практически не встречается, а вот сущности с 10+ денежных полей - постоянно.
Да, джейсон — это неизящный хак, но я не могу обойти всех пользователей библиотеки и сообщить им: вот тут на хабре посоветовали, поэтому вы выбросите свои старые базы, установите постгрес, а там сделайте composed field, по феншую.
Конечно нет, потому что никто такого не предлагал и composite types имеет свои недостатки. А вот если вы напишете свой тип с поддержкой всех операторов, с удобными функциями и реализуете прозрачный cast с использованием таблицы курсов, то в ОГРОМНОЕ количество людей вам не то что спасибо скажут, молится на вас будут
закос синтаксиса языка под читаемый английский — очень плохо расширяется и в общем случае не работает.
На что вполне справедливо получили множество замечаний, что, таки, работает.
Вы сами так построили запрос что он стал тяжело читаем
with agg as (select sum ->> 'currency' as currency,
sum((sum ->> 'amount')::numeric(17, 2)) as amount
from test
group by sum ->> 'currency'),
json as (select json_agg(json_build_object('currency', currency,
'amount', amount))
from agg)
select *
from json;
Если разнести построение объекта и все остальное то становится куда проще. Кроме вы сами выбрали json, могли же выбрать составной объект или два поля.
Важно понимать: серьезные субд это не тупая хранилка для json. У вас в запросе неверное предположение что деньги - всегда инт, хотя на самом деле decimal (я поставил с двумя знаками, хотя это не так в общем случае). Кроме завернув данные в json лишили себя возможности простого и элегантного контроля данных на уровне базы (очевидно что currency_code и amount not null и сверху check >0)
upd ну и в копилку про сложность данных, типов стало больше да, координаты и прочая гемоетрия, диапазоны и прочая многомерщина, хитрые exclude constraint и прочая радость. Json на уровне бд это не усложнение типов данных а наоборот, низведение всей прелести до текста.
У меня для вас плохие новости, вы поняли мою мысль с точностью да наоборот.
Сам лично дважды отправлял в МТС претензию, чтобы достали номер компании из "спам-листа". Изначально думали телефония полегла, посыпались массовые обращения, что нельзя в компанию дозвониться.
И сразу в догонку@jackcraneя, как клиент, в гробу видал и то и другое. Я желаю быстро и четко получить информацию, которая мне нужна, а не переписывать по полдня с людьми, которые только недавно письменность освоили. Я не знаю, что именно случилось с бизнес перепиской, но все меньше я получаю писем где четко и лаконично указано именно то, что я просил. Так же регулярно замечаю, что люди письма читают по диагонали.
Вот только в числе этих заблокированных звонков огромное количество телефонных номеров реальных компаний, части ниразу не спамерских, сам дважды доставал из блокировок номера компаний. А автоматизированные коллцентры спокойно себе работают, потому что это кого надо коллцентры. Стабильно 2-3 раза в день получаю спам звонки в том числе в выходные и ранним утром, тупо проще белый список сделать.
есть, только недавно видел мельком на ютубе обзор корпуса, который представлял собой огромный радиатор
Та же история и тоже техлид (ну или CTO подразделения, кому как нравится)
Тоже не понял. Тезис "я видел плохо спроектированные бд, поэтому они зло" как то слабоват и тем более не увидел ответа, почему же смена типа базы данных от этого избавит.
Если бы только так, то это было бы терпимо. Куда хуже что при низком рейтинге даже билет на поезд купить не получится. И что намного хуже, рейтинг родителей является базисом. Наказание детей за грехи родителей и "рабом родился, рабом и умрешь" это откат в развитие человечества на три тысячи лет назад. Тут даже известный эпизод черного зеркала меркнет.
Я дико извиняюсь, но мне очень интересно, почему вы подписали соглашение о неконкуренции?
В таком случае всю команду, которая занимается UX нужно уволить в обнимку с маркетологами за профнепригодность. "Не виноватая я, меня заставили" конечно забавная мантра, но только для собственного успокоения. И, заметьте, я написал "ВСЕХ это это сделал"
Не так с дизайнерами то, что они не пользуются своими продуктами. А еще не понимают то, что написано в первом коменте. Я годами искал тех кто не просто "делает продуктовый дизайн" а читает книги, узнает по перспективу и особенности психологии, самосовершенствуется и стремится делать клевые вещи. В итоге оказалось, что проще самому освоить архитектуру UX.
На днях дочка попросили поиграть с ней в корабли, ну идем качаем WoWs. Захожу, Сразу в глаза всплывашка на экран с рассказом о том как им хочется денег, закрываем. А где мой порт? Что это за аляпистое нечто? Ах да, это дизайнерам очень хочется чтобы я непременно увидел как они старались, меняем порт на спокойную водичку и глазки начинают отдыхать. А что у нас тут за уведомление? "Прочтите новости, чтобы получить награду", ну ок, давайте прочтем, прочитал то, что мне интересно, где награда? Ах, надо в одном из разделов кнопочку, горите в аду, закрываем. А тут что подсвечено? Боевой пропуск, заберите награды, и нам бы хотелось еще денег, награды заберу, денег не дам. Дальше что? "Верфь": вот вам награды, а еще можете получить БОЛЬШУЮ награду, но, да мы хотим денег, кораблик хочу, но денег не дам (хотя тут наиболее весомый пожалуй аргумент). Дальше "адмиралтейство": ой, что это, я что попал в конец 90ых? все сверкает, музычка включалась, выключить, выключить(!), что тут у нас? тут немного халявы, сэр, но еще мы хотим ДЕНЕГ, снова не дам, закрываем. А чего тут за красная точка? Новые нашивки и коллекции, очень важно да, может они сделали ПКМ "отметить все"? Нет, нужно найти в списке и поводить мышечкой. Хух, справился, чего на сладкое? Контейнеры? Ну давайте, ах надо нажать кнопочку "получить контейнер" и обязательно посмотреть как его притаскивает кран, а внутри что? ндеее, народ вы правда не слышали про эффект малозначимых наград?.
Ребята, я только что зашел и сыграл несколько боев и вы уже довели меня до бешенства, где гребаная кнопка "забрать все и отключить все уведомления?". Почему нужно доводить до бешенства свою самую платежеспособную аудиторию? И это я еще не вспомнил про интерфейс, который после многих лет еще не везде избавился от светлых прозрачных фонов, и про алгоритм кислого, по которому во всем мире не проехался только ленивый.
Очень хочется, чтобы тех кто это все сделал, прижали нежно к земельке якорем (можете написать на нем большими буквами UX), дали ноутбук и заставили делать все, что описано выше снова и снова и снова до просветления.
Это на каждого
Нет не врет.
Я чувствую все эти вещи острее чем большинство и уже насиделся в офисах где после 18 отключают вентиляцию (пришел бодрый через час уже мордой в клаву) и в офисах где в глазах светлело, когда выходил покурить. В итоге когда в новой квартире стал просыпаться через 4-6 часов от духоты пошел и поставил по бризеру почти в каждую комнату с датчиками, подобрал соотношение приток/шум и проблем не знаю. С датчиками сверяюсь чисто справочно иногда.
PS заставил вынести растения из спален к чертям ибо они выдышивали мой воздух!
PS Если вам цифры выше кажутся большими, вы еще не представляете сколько человек расходует когда занимается сексом, там за 60+ кубов
PS Вообще если не верите датчикам то вот попроще
Победившие инженеры там были лет 15 назад, сейчас, судя по тому что я слышу регулярно, инженерная культура там сдохла напрочь.
Это даже не нелепо, это безумие. На своих курсах есть возможность заприметить людей, с качествам, которые тебе очень нужны (а многие из них на собес в яндекс не пойдут по целому ряду причин). При этом, как выше отмечалось, компании тратят чудовищные средства на поиск сотрудников на будущее.
Следовательно одно из двух, либо в плане нейма у яндекса все невероятно плохо, либо курсы эти не стоят вообще ничего.
Я думаю, что анимацию сделали потому, что по поводу ГПСЧ у человека бесконечное количество заблуждений. Визуализация процесса броска часть из них снимает.
Тем более что игровой рандом он не чистый ГПСЧ ниразу, его итак подкручивать приходится в пользу игрока. Но с другой стороны на тараканы в головах сильно влияют всякие Wargaming,X-Com и прочие изза их ненормальной тяге к подкручиванию всего и вся.
Объясните пожалуйста зачем этим вот все занимаются? Не прошел проверку, ну все, значит не прошел. Вы же в реальной партии на каждом шагу гейммастера не собираетесь убеждать что кубик надо перебросить? Что вполне логично, как там в мстителях: "Если убьет - то и умрешь"? )
Ценность SO (или комментов на хабре) в том, что можно почитать почему конкретно тот или иной вариант не стоит использовать (ну или он вообще некорректен) а так же почитать несколько мнений сразу. Причем за очень короткое время.
@PuerteMuerte да, каюсь, моя ошибка, я о таком подходе слышал и даже несколько раз его обдумывал, но в живую не видел ниразу, а работаю как раз финансовой сфере. Я себе инты не мог позволить на старте последнего проекта изза целого ряда факторов, самым существенным из которых является проблема с bigint/округлением в гетерогенных средах.
@cupraer
По поводу вашего вступления, замечу что весь смысл комментариев в общении, и тому что я писал есть конкретные причины, а вы злитесь, как будто я пришел к вам домой и цветом коврика недоволен, будьте добрее)
Мы все тут с той стороны, которая делает кнопки "сделай хорошо")
Ну мне, как человеку который живет sql, куда проще читать, но тут вкусовщина. Запрос проще для манипцляций, но тоже вкусовщина. А вот в изоморфность я не верю: я очень много и давно работаю с разными базами и почти всегда это приводит лишь к тому, что инструмент плох во всех случаях.
Верно, но есть другие, например невозможность объявить not null для каждого вложенного поля. Хотя это можно конечно решить через check.
Школьник не архитектор и будет работать с тем, с чем скажут и с шансом в 98% это будет numeric/number
Если он это скажет с такой категоричностью его ждет очень много открытий чудных
Сначала он выяснит что на входе и на выходе от/к пользователю у него всегда float
Потом он совершенно наивно умножит на 10^2, не обеспечит при этом централизованно управляемую систему трансформации
В какой то момент с удивлением обнаружит что умножение на степень 10 не является точной операцей и хорошо, если он добавит округлении только лишь при трансформации пользовательского ввода, иначе его ждет еще много увлекательных приключений
В какой то момент выяснит, что нужно вычислять процент от суммы и поймет что нужно поднять еще на две степени
Вполне возможно (а всего несколько лет назад, практически наверняка) познакомится с особенностями работы с int64 в гетерогенных средах, если не повезет то и с bigInt.
Столкнется с полной невозможностью использовать такой любимый и удобный two-way variable binding во фронтовых фреймворках.
В работе с float при грамотном подходе ничего страшного, в принципе, нет, если не пытаться округлять его при каждом чихе.
Возможно, но в прикладных решениях смена валюты практически не встречается, а вот сущности с 10+ денежных полей - постоянно.
Конечно нет, потому что никто такого не предлагал и composite types имеет свои недостатки. А вот если вы напишете свой тип с поддержкой всех операторов, с удобными функциями и реализуете прозрачный cast с использованием таблицы курсов, то в ОГРОМНОЕ количество людей вам не то что спасибо скажут, молится на вас будут
На что вполне справедливо получили множество замечаний, что, таки, работает.
Вы сами так построили запрос что он стал тяжело читаем
Если разнести построение объекта и все остальное то становится куда проще. Кроме вы сами выбрали json, могли же выбрать составной объект или два поля.
Важно понимать: серьезные субд это не тупая хранилка для json. У вас в запросе неверное предположение что деньги - всегда инт, хотя на самом деле decimal (я поставил с двумя знаками, хотя это не так в общем случае). Кроме завернув данные в json лишили себя возможности простого и элегантного контроля данных на уровне базы (очевидно что currency_code и amount not null и сверху check >0)
upd ну и в копилку про сложность данных, типов стало больше да, координаты и прочая гемоетрия, диапазоны и прочая многомерщина, хитрые exclude constraint и прочая радость. Json на уровне бд это не усложнение типов данных а наоборот, низведение всей прелести до текста.
Никаких, хорошая штука