All streams
Search
Write a publication
Pull to refresh
17
0
Дмитрий @StrangerInTheKy

PL/SQL разработчик

Send message
Не знаю чем «вдохновлялись» создатели блоков текста
Ну раз java принадлежит теперь ораклу, то вдохновлялись, вестимо, оракловым диалектом SQL ;)
Ничего там не написано. По итогам 6-й «задачки» курочка перестала нестись, потом у нее кончились перья (которые она меняла на репу, а репу съедала), дед перестал ее кормить, она стала просить в долг и попала в долговую яму. И все, задачи №7 уже не было.
Единственное, что более-менее похоже на механизм обогащения — это п. 8, банковские услуги (а именно — кредитование), но так по условиям задачи курица — не монополист, кредитованием кто угодно мог заниматься и заработать на этом.
Само по себе это не хорошо и не плохо. Переход от произхводства к услугам — это нормально, в крупных современных экономиках 70% ВВП производится в сфере услуг.
Катасонов в экономике — это примерно как эфир в физике или гомеопатия в медицине. От такого лучше держаться подальше — мозги здоровее будут.
А, ну всё, ларчик просто открывался, оказывается.
Наш «великий экономист» рекомендует читать Катасонова (выше в каментах). Если кто не в курсе — это фрик от экономики. Его «экономика» — это примерно как эфир в физике или гомеопатия в медицине.

Расходимся, короче.
Когда перья кончатся, курочке придётся нести яйца в обмен на репку. И всё, на этом её «сказочное обогащение» закончится.
Я только сейчас увидел ваше сообщение.
Еще было бы интересно узнать про внутреннюю реализацию.
Внутренняя реализация — заврапленные PL/SQL пакеты, так что узнаете вы ее только устроившись в оракл разработчиком. Также для отладки можно воспользоваться отладчиком апекса. Надо залогиниться в IDE, потом из IDE запустить приложение (тогда внизу появятся дополнительные кнопочки), нажать на «Debug», потом — «View Debug». Там можно найти по шагам отчет, какая часть выполнения страницы сколько времени занимает.

Пока APEX(на мой взгляд) это пример от Oracle как нужно\не нужно писать интернет приложения c использованием БД.
Так нужно или не нужно? ;) Вы определитесь.
Я этот ваш постгрес уважаю, конечно, но по жизни работаю с ораклом. Такшта простите, если чо. Нагуглил какие-то функции для работы с интервалами и генерации последовательностей, взял первое, что попалось.
У меня в 9.5 все работает.
with periods(id, start_time, stop_time) as (
  values(1, '2019-03-29 07:00:00'::timestamp, '2019-04-08 14:00:00'::timestamp), 
        (2, '2019-04-10 07:00:00'::timestamp, '2019-04-10 20:00:00'::timestamp), 
        (3, '2019-04-11 12:00:00'::timestamp, '2019-04-12 16:07:12'::timestamp),
        (4, '2018-12-28 12:00:00'::timestamp, '2019-01-16 16:00:00'::timestamp)
    ),
  wd as ( -- это все дни 2018 и 2019 годов
         select workday + '10 hour'::interval st, workday + '19 hour'::interval en -- начало и конец раб. дня
           from (select '2018-01-01'::timestamp + i * '1 day'::interval workday
		   from generate_series(0,729) i
		  where mod(i, 7) not in (5, 6)  -- минус выходные
		  -- плюс рабочие выходные
		  union all select '2018-04-28'::timestamp
		  union all select '2018-06-09'::timestamp
		  union all select '2018-12-29'::timestamp
                 -- минус праздничные будни
		 except select '2018-01-01'::timestamp
		 except select '2018-01-02'::timestamp
		 except select '2018-01-03'::timestamp
		 except select '2018-01-04'::timestamp
		 except select '2018-01-05'::timestamp
		 except select '2018-01-08'::timestamp
		 except select '2018-02-23'::timestamp
		 except select '2018-03-08'::timestamp
		 except select '2018-03-09'::timestamp
		 except select '2018-04-30'::timestamp
		 except select '2018-05-01'::timestamp
		 except select '2018-05-02'::timestamp
		 except select '2018-05-09'::timestamp
		 except select '2018-06-11'::timestamp
		 except select '2018-06-12'::timestamp
		 except select '2018-11-05'::timestamp
		 except select '2018-12-31'::timestamp
		 except select '2019-01-01'::timestamp
		 except select '2019-01-02'::timestamp
		 except select '2019-01-03'::timestamp
		 except select '2019-01-04'::timestamp
		 except select '2019-01-07'::timestamp
		 except select '2019-01-08'::timestamp
		 except select '2019-03-08'::timestamp
		 except select '2019-05-01'::timestamp
		 except select '2019-05-02'::timestamp
		 except select '2019-05-03'::timestamp
		 except select '2019-05-09'::timestamp
		 except select '2019-05-10'::timestamp
		 except select '2019-06-12'::timestamp
		 except select '2019-11-04'::timestamp) t
	)
-- собсна решение начинается тут:
select id, start_time, stop_time, sum(work_end - work_start) work_hrs 
  from (select p.id, p.start_time, p.stop_time,
	       case when p.start_time > wd.st then p.start_time else wd.st end work_start,
	       case when p.stop_time < wd.en then p.stop_time else wd.en end work_end
	from periods p join wd 
	     on p.start_time < wd.en and p.stop_time > wd.st
	) tt
 group by id, start_time, stop_time
 order by id;




Время каверзных вопросов.
1. Что там с воспроизводимостью результатов экспериментов в психологии? Говорят, там всё очень плохо.
2. «Эксперимент» Джошуа Белла не был научным экспериментом. Это скорее арт-перфоманс. Википедия говорит, что из 1000 человек один узнал его в лицо, а человек 5 — 6 заинтересовались музыкой. Но вроде бы классической музыкой интересуются всего примерно 1% людей, а в шумном месте от нетренированного слуха не стоит ожидать прорывов. Что нового показал этот «эксперимент»?
3. При чем здесь интерфейсы???
Из статьи мы узнали, что:
— крутейший скрипач Джошуа Белл играл в метро, но никто этого не оценил;
— мальчики в присутствии девочек придавали большее значение деньгам;
— люди поддаются влиянию большинства;
— вкус вина зависит от цены;
и так далее.
Слово «интерфейс» встречается только во вступлении к статье, а статья при этом называется «как наука помогает проектировать интерфейсы». Вы во вступлении написали, что результаты этих экспериментов «могут натолкнуть на мысли и решения при проектировании интерфейса, дизайна», ну так расскажите о своем опыте — какие мысли у вас появились?
Вендоры иногда конечно пытаются исправить некоторые из выявленных уязвимостей, но делают это весьма неохотно. Потому что прибыль им приносит не защита от хакеров, а новая функциональность, которую они потребителям предоставляют. Будучи ориентированными исключительно на краткосрочную прибыль, вендоры вкладывают деньги только в решение реальных проблем, а не гипотетических. Кибербезопасность же, в глазах многих из них, – вещь гипотетическая.
И кибербезопасность, и убытки от хакеров вполне выражаются в денежном эквиваленте. Статья красивая и написана поэтично, но с цифрами выглядела бы гораздо менее бледно.
Или...
… может, и не появилась бы вовсе?
Кхм. Простите мне мою резкость, но зачем давать эту бесполезную ссылку? Что она должна мне рассказать? Что из себя представляет этот «остров стабильности» — вы можете своими словами внятно описать? (Спрашиваю потому, что уверен, что не можете)
Я просто имею таки представление о том, что их себя представляют изотопы разных элементов, что из себя представляет таблица Менделеева и вообще, как-то так получилось, что технологии разделения изотопов — это моя специальность, по которой я честно 6 лет отучился.
То-то и оно. Кислород используют любые животные, углекислый газ — любые растения, а азот — только некоторые бактерии по чуть-чуть.
Но можем ли мы быть уверенны, что нет таких форм жизней, для которых чистый азот и +200 по Цельсию — самая благоприятная среда?
Можем. Азот — крайне инертен. В атмосфере Земли его целых 78%, и он почти не используется. Хотя казалось бы — бери да ешь.

С Периодической таблицей примерно то же самое. Возможно, мы знаем лишь ее краешек…
Совершенно невозможно. Чем крупнее ядро, тем оно а) нестабильнее и б) требует всё больше нейтронов на один протон, а взять их неоткуда. И химические свойства соответствующие: в конце все будут металлами.

К тому же, мы не можем гарантировать, что свойства и поведение элементов и веществ не меняется с изменением условий реакции (близость к планете «Х»?).
Наоборот: если нет никаких свидетельств того, что химические свойства вещества зависят от чего-то сильно далекого, нет смысла делать такие предположения. С тем же успехом мы можем предположить, что c 1-го января 2020 года вода будет растворять сахар только по рабочим дням с 9:00 до 18:00 по UTC.

А еще где-то встречал факт, что человечество в изучении Земли вглубь продвинулось примерно на толщину кожуры яблока, если проводить пропорциональную аналогию.
Это аналогия применительно к глубине самой глубокой из пробуренных на данный момент скважин. Тем не менее, никто не мешает изучать лаву и вулканические газы, самостоятельно выходящие на поверхность с гораздо больших глубин. Можно изучать эхо от землятрясений, сканировать кору ультразвуком и получать данные о внутреннем строении вплоть до самого ядра, и т. д.
Теперь вы просто обязаны написать что-нибудь о Breaking Bad :)
Там же просто кладезь информации: взрывчатые вещества, яды, наркотики, промышленное оборудование…
Фосфин тоже фигурирует: в первом сезоне Уолтер Уайт отравил им двух бандитов (одного из них — не до конца).
По сравнению со среднестатистическим голливудским фильмом это таки достаточно круто. Думаю, выше среднего.
Ну такая с кортами — это все-таки исключение, я думаю. Типовая стоянка выглядит как-то так (первое, что на гуглокартах попалось). Самый сок — ближе к морю, а севернее всё может ограничиться одной заправкой с магазинчиком и деревянными столиками.
хотя не ездил автобанами, не могу судить.
Я пол-Европы объездил, могу рассказать. Автобаны в Европе — это огромная инфраструктура (лично мне Франция нравится, там комфортнее всего). На нормальной стоянке на ходовой трассе (как правило, это огромная площадка), кроме собственно заправки, есть: куча кафешек и ресторанов, лавочки-столики в тенёчке посидеть пожрать свою еду (многие кстати едят свою), туалеты, душ (в том числе для инвалидов, в том числе часто бесплатно), спортивные площадки и куча другой развлекухи (на одной из стоянок во Франции я видел даже тенисные корты, баскетбольную площадку и скалолазную стенку — всё абсолютно бесплатно, разумеется). Когда тебе надо отдохнуть после 500 км езды перед следующими 500 км — там есть все, что надо. А уж если едешь с детьми, то место, куда их можно выпустить, чтобы они безопасно сбросили лишнюю двигательную энергию — бесценно. И такие площадки стоят каждые 20 — 30 км, и по всей трассе стоят информационные табло — сколько км до ближайшей.
А теперь мы решили сэкономить на маршруте в 1000 км. У нас машина с потреблением 8 литров на сотню, и съехав с трассы ради экономии 15 центов с литра мы выгадаем… 12 евро! И это будет просто заправка — без места для отдыха, нормальной еды, без места даже походить и размяться (только до кассы и обратно), с необходимостью уезжать с трассы, плутать по округе и выезжать обратно. Ни один европеец в здравом уме и твердой памяти такой ерундой заниматься не будет.
Я очень переживаю за хороших музыкантов и желаю им всяческих успехов, чтобы они и дальше радовали всех своим творчеством, но не могу не задать несколько вопросов…
1. Насколько снижение расходов на музыку коррелирует со снижением расходов на развлечения вообще? Может, это не музыканты проигрывают борьбу пиратам, а музыка как таковая проигрывает другим развлечениям?
2. Насколько снижение расходов на музыку коррелирует со снижением скорости роста населения? Во всем мире она снижается, а в Европе роста почти нет. Если у вас не появляется новых клиентов, откуда взяться новым доходам?
3. Как учитывается «насыщение» каждого конкретного покупателя? У меня есть некоторое количество музыки, и новую я почти не слушаю. Упомянутый «золотой век» в 60-е — 80-е годы был не так давно, многие закупившиеся тогда до сих пор живы. Ну они закупились и больше не хотят, логично?
4. И в защиту стриминговых сервисов: где исследования вторичного рынка? Диски/кассеты умершего человека попадают наследникам, которые раздают/распродают их дальше. Стриминговые сервисы такое прямо запрещают, насколько я знаю — «умерла так умерла». А умрут рано или поздно все 100% покупателей вашей музыки.
для хранения данных использовали (тут вы можете подумать MySQL\PostgreSQL\SQLite\MongoDB\Что-то-там-еще-но-обязательно-с-суффуиксом DB-иначе-пацаны-не-поймут, а вот и не угадали)
… ммм… дайте подумать…
функции БД на PL\SQL
А вот и угадали ;)
В общем — при подключении, в функции проверки данных аутентификации генерировалась временная таблица, в которой хранился ид пользователя.
Эмэсэскуэльщик, быстро перековавшийся в ораклиста? У вас должно было быть очень весело…

И еще одна серьезная проблема — не формализованная схема хранения данных.
Что такое «неформализованная схема» применительно к реляционной СУБД? Там внутри все очень даже формализовано.

Как и обещал ранее — рассказываю о хранении “любых полей” из JSON. Нет, они не хранились как строка в таблице. Они разбивались на key-value пары и хранились в отдельной таблице. Например, для пользователей было 2 таблицы — users, и users_data (string key, string value) — где собственно и хранились данные. Итогом такого подхода стало увеличение времени при сложных выборках из БД.
По вашему описанию непонятно, что такое «хранение “любых полей” из JSON» и как оно потом используется, и детали реализации тоже не очень ясны, но судя по имеющейся информации — по факту это реализовано лучше, чем предлагаете вы. А причины тормозов выяснить не сложно — оракл в этом плане обладает очень хорошим инструментарием. Скорее всего, просто не было никого, кто умеет им пользоваться.
Мгновенное превью — черт с ним, пусть его не будет, если качественно сделать его будет нельзя (хотя на там же SO я не видел никаких признаков тормозов у текста длиной в два экрана).
Но вот возможность видеть два текста (исходный и отрендеренный) рядом на одной странице — бесценна. Даже если там будут два отдельных скролла, и выравнивать тексты нужно будет руками — это будет уже намного лучше, чем есть сейчас. Когда текст уже почти дописан и остается вычитать его последние пару раз, чтобы поправить пунктуацию, опечатки и мелкие стилистические огрехи, переключаться туда-сюда много раз просто неимоверно неудобно.
Круто, спасибо. Теперь надо это куда-то записать, чтобы не забыть. А другие такие «недокументированные» возможности есть?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity