40 тысяч за день работы?! Да ну их, эти деньги:)
Работаю директором небольшой управляющей компании.
Так получилось, что сварщика у нас нет. Посчитал, что экономически нерентабельно содержать на полном окладе сварщика, учитывая, что их услуги нужны раз в месяц, а иногда и вовсе нет.
Поэтому, когда нужны сварочные работы, например, при замене полотенцесушителя, я пользуюсь Авито.
И обычно проблем не возникало.
Однако тут случилась ситуация, которая меня удивила.
Но давайте обо всем по порядку.
Застройщик по одному из МКД не установил сильфонные компенсаторы на стояки отопления.
По проекту они есть, а на деле их нет.
Кто не в курсе, сильфонные компенсаторы - это устройства препятствующие температурной деформации труб отопления, т.е. чтобы стояки не выгибало дугой.
Подумал и решил по многочисленным просьбам жителей их установить.
Долго ждал от поставщика и вот, наконец, они прибыли, 26 штук)
Скажу сразу, штука эта не из дешёвых.
Ну, думаю, нужен сварщик.
Для сведения скажу, что такса на сварочные работы идёт за 1 стык, от 500 до 1000 рублей.
26 штук - 52 стыка, т.е. порядка 26-52 тысяч рублей за день работы.
Согласитесь, что неплохие деньги?)
Так вот, спустя неделю, эти компенсаторы всё ещё лежат в коробке...
Несколько сварщиков приходило, торговались, договорились, потом они куда-то исчезали.
К одному я даже съездил домой, потому как сегодня утром он не пришел, а на телефонные звонки не отвечал. Не нашел его.
Ещё один очень сильно занят переездом)) сказал, что без проблем, но только на следующей неделе, причем объявление у него было утреннее свежее.
Меня прямо бомбит от этой ситуации, зачем ты тогда подаёшь объявление???
У нас не Москва-Сити, а Уфа, далеко не самый богатый город.
И 40 тысяч рублей - это неплохие деньги за 1 день работы, а в предмете я разбираюсь, если делать качественно и не торопиться, то это часов 5-6 работы.
Как показала практика, 40 штук это не та сумма из-за которой стоит суетиться)))))
P.S. Сварщика мне подогнал знакомый, завтра должен подойти и начать работать. Надеюсь на это, по крайней мере...
Осеннее зелье
Наступила осень, а значит дождь, сырость, ветер, кое-где уже и снег, отсутствие отопления в квартире. Всё ощущается гадким и противным. Многие осенью простывают. Чихание, кашель, першение в горле, нос заложенный добивают позитив окончательно.
Поэтому вот рецепт осеннего зелья против всех этих простуд, сейчас его пью как раз. В принципе, тот же глинтвейн, но не все ж могут его три литра за день выпить.
Берем большую кастрюлину, у меня трехлитровая.
Делаем морс из варенья. Варенье любое, какое нравится. Я беру обычно малиновое или вишневое. Варенья разводить столько, сколько вам по вкусу нравится. Это всё дело на огонь и ждем пока закипит.
Тем временем режем половинку лимона, половинку апельсина. Готовим специи: я использую корицу, имбирь, гвоздику. Еще можно кардамон или мускатный орех, дело вкуса.
Как морсик закипел, специи, лимон, апельсин все в кастрюлю и еще минут пять пусть кипит. Выключаем и ждем, пока остынет.
Потом, и только потом, добавляем мёд (мёд становится бесполезным при нагревании выше 50-60°).
Всё. Можно пить.
За день так кастрюльку эту и выпиваю. На следующий день бодрячком.
Единственный минус, это аллергия возможна, если склонность есть.
Лечилась так, когда еще грудью кормила, чтоб лекарства не пить. Ребенок у меня не аллергик, так что было все в порядке.
Такой вот безалкогольный глинтвейн.
Не болейте)))
Поймут не только программисты (надеюсь)
Вчера на pikabu в горячее влетела картинка с шуткой про статическую\динамическую
типизацию в программировании. Пост под названием «Программисты поймут».
Дисклеймер: если Вы изучаете программирование и начали читать этот пост с целью просвящения, а не из-за праздного любопытства - не стоит опираться на данный текст! Для подобных целей в конце поста приведены две подробные и более точные статьи.
Но что же такое типизация? Судя по бурному обсуждению под постом, многие люди, никак не связанные с программированием, заинтересовались этим вопросом.
Там же, в комментариях было дано пояснение от пользователя @9poIIIa.
Вскоре под этим комментарием развернулось бурное обсуждение, в котором многие утверждали, что этот пользователь допустил ту же самую ошибку, что и в посте: смешал между собой совершенно не связанные друг с другом понятия: статическую\динамическую типизацию и строгую\не строгую (она же — сильная и слабая типизации).
Эти пользователи, в свою очередь, пытались дать свои объяснения. Но они были либо слишком специализированными (их невозможно понять без предварительной подготовки), либо излишне абстрактными и упрощенными, вроде «я складываю крокодила и велосипед — это не строгая типизация».
Я лично придерживаюсь мнения, что излишнее упрощение — ничуть не лучше переусложненного объяснения. Поэтому хочу предложить на суд общественности свое пояснение этих понятий для не программистов и разбор того, что происходит на картинке.
СПОЙЛЕР для тех, кому лень читать весь пост:
В шуточной картинке, вероятнее всего, допущена ошибка. Имелось ввиду либо «Динамическая типизация лучше статической», либо же «Не строгая типизация лучше строгой».
А пользователи, поспорившие с @9poIIIa и указавшие ему на неточность его объяснения — абсолютно правы.
Если говорить очень грубо, то статическая\динамическая типизация — определяет то, какие данные, в теории, могут хранить переменные.
А понятие строгой\не строгой (сильной\слабой) типизации — определяет то, как две различные переменные могут взаимодействовать друг с другом.
Т.е. это два совершенно разных понятия, которые нельзя смешивать.
Теперь, непосредственно, к объяснению:
Прежде чем понять разницу между типизациями, необходимо понять что такое «переменная».
В большинстве языков программирования, «переменная» — это небольшая ячейка памяти, предназначенная для хранения в себе какой-либо информации: чисел, символов, логических значений (истина\ложь) и многого другого (современные языки программирования даже позволяют создавать собственные типы данных).
Над переменными можно совершать различные действия: складывать их, вычитать, делить друг на друга, умножать.
Разумеется, количество операций над переменными не ограничивается этими четырьмя и может очень сильно варьироваться в зависимости от того, какую информацию хранит переменная и на каком языке программирования мы пишем код, но в контексте данного обсуждения, это не имеет особого значения. Давайте закроем глаза и на время представим, что операций только четыре.
Отлично. Мы на шаг приблизились к пониманию понятия «типизация».
Давайте теперь разберем, что такое «тип» в языке программирования:
в типизированных языках программирования тип переменной определяет то, какие значения эта переменная может в себе хранить. Например, в таком языке программирования как c++ - целочисленная переменная (int) может хранить только целые числа (-1, 0, 2, 3 и т.д.). А переменная типа «символ» (char) — только символы английского алфавита ('a', 'z', и т.д.).
Для дальнейших объяснений я использую два языка программирования: c++ (статическая и не строгая типизация) и python (динамическая и строгая).
Статическая\Динамическая типизация:
В языках со статической типизацией, при создании переменных — программист, зачастую, должен явно указать, какой тип переменной он хочет создать.
C++:
int a = 2;
«int» — это обозначение типа переменной. В данном случае — тип «целое число».
«a» — имя созданной переменной (может быть любым). Если мы захотим, в дальнейшем в коде получить содержимое этой переменной, мы сможем обратиться к ней по этому имени.
Знак «=» — говорит нам о том, что переменная «a» после своего созднаия примет значение, стоящее справа от этого знака — в данном случае — это «2».
Как мы видим, нам пришлось явным образом указать, что переменная «a» может хранить в себе только целые числа. В такой переменной мы не сможем хранить символы или же дробные числа.
int a = 2.3; // Такой код выдаст ошибку
Это язык со Статической тпизацией.
Python:
a = 2
А вот так этот же код будет выглядеть на Python. Здесь нам не пришлось указывать тип переменной «a». Этот язык программирования самостоятельно определил, без помощи программиста, что «a» будет иметь целочисленный тип. Поскольку при создании этой переменной, в нее было записано значение соответствующего типа.
К тому же, если вдруг у нас возникнет необходимость сохранить в этой переменной что-то помимо целых чисел — мы сможем легко перезаписать данные в этой ней.
a = 2.3 # Если написать этот код после «a = 2», он сработает. Значение a изменится, а Python самостоятельно определит новый тип переменной «a».
Это язык с Динамической типизацией.
Строгая\Не строгая типизация
Определяет то, может ли язык неявно преобразовать данные различных типов.
С++:
int a = 2;
char b = 'L';
int c = a + b;
Да, да, вам не показалось. Мы сложили число и символ (!) и получили новое число.
Как это работает? C++ неявно преобразовал символ 'L' в число — а именно в номер, который соответствует этому символу в таблице кодировок ASCII. Номер, соответствующий символу 'L' в этой таблице — 76. Таким образом, в «c» у нас окажется значение 2+76=78
С++ - это язык с Не строгой типизацией.
Python:
a = 2
b = 'L'
c = a + b # Здесь будет ошибка
Python не позволяет нам складывать такие две разные сущности как «целое число» и «символ».
Python - язык со строгой типизацией.
Таким образом, языки со строгой типизацией не позволяют смешивать сущности разных типов в выражениях и не выполняют никаких автоматических преобразований, а языки не строгой типизацией, наоборот всячески способствуют, чтобы программист смешивал разные типы в одном выражении.
Итог:
То, какая в языке типизация - во многом определяет как будет писаться код на этом языке программирования.
И в изначальной картинке, как я подозреваю, попытались отобразить давний спор межу представителями различных «лагерей» программистов. Часть специалистов выступает за динамическую типизацию в языках программирования, часть за статическую. Аналогично со строгой и не строгой типизацией. Правда же, как известно, где-то посередине.
Но шутка не удалась из-за допущенной неточности.
Бонус от меня лично:
P.S. несмотря на мое заявление в самом начале поста, я все-же использовал ряд небольших упрощений при объяснении различных понятий в программировании (просто, чтобы не перегружать читателей ненужной информацией). Надеюсь, сообщество программистов простит мне неточности.
Источники:
Истории фотографа. Часть 78. А давайте поможем отличному фотографу!
Я не могу обойти историю, которую выложил @proudman, в конце будет ссылка на неё. Гордей, ты пример мужества и таланта. Я очень хочу помочь тебе, но не знаю чем. Ты без рук снимаешь лучше, чем я, да и многие фотографы с руками. Наверняка для тебя важно общение с людьми и именно поэтому ты на Пикабу. Ну я так думаю, прости если на деле иначе. Поэтому я обращаюсь к каждому своему подписчику с просьбой подписаться на @proudman и сделать жизнь этого замечательного человека немного веселей и разнообразней.
Чувак, если нужны советы по фото или ещё что-нибудь, естественно, что будет мне по силам, обращайся смело. Ты крут, просто знай это! Вот история Гордея: https://pikabu.ru/story/obeshchannyiy_post_ochen_dlinnopost_...
Ребят, оставлю комменты для минусов. Это пост добра.