Size: a a a

2021 September 15
Блог*
источник
2021 September 16
Блог*
#prog #rust #моё #article

Здрасьте. Сегодня поста не будет — но только потому, что я решил написать статью для Хабра. Собственно, вот она.

И напоминаю: если вам это понравилось — поддержите копеечкой автора, я вам благодарен буду: 4274 3200 5402 8520.
источник
Блог*
#prog #haskell #video

Как написать FizzBuzz на Haskell. Нет, вы посмотрите
источник
Блог*
#article

Создание квайнов часто считается неким нетривиальным искусством. В этой статье автор рассказывает, как можно делать квайны относительно механическим способом, и даже обобщяет этот метод на квайновые цепочки произвольной длины.
источник
Блог*
#amazingopensource #menacingopensource

Что такое fortraith? Нет, это не опечатка в слове Fortran или, упаси боже, Fortnite. Это — библиотека, реализующая  компилятор времени компиляции, который переводит что-то, похожее на Forth, в вычисления на уровне типов Rust. Что? Да.
источник
Блог*
источник
2021 September 17
Блог*
#psy из блога о сексе, да-да. Но вещь важная
источник
Блог*
Хаим Гинотт. «Родитель-Ребенок. Мир отношений»

Зачем в блоге о сексе писать про книгу о воспитании? Во-первых, она мне понравилась. Во-вторых, это не только про детей, а про людей и их чувства.

Психолог Хаим Гинотт умер в 51 год, и сегодня мало кто знает его имя. Его главной работой так и осталась короткая книжка Between Parent and Child (1965). В ней Гинотт первым озвучил идеи, которые сегодня считаются очевидными и применимыми не только к детям, но и к взрослым:

• Что человеку нужно, чтобы его слушали и понимали, а не поучали и критиковали.
• Что самое важное в диалоге - услышать и принять эмоции собеседника.
• Что любые чувства имеют право быть, но не всякое поведение допустимо.
• Что ответственность идет изнутри - это не слепое послушание, а следование ценностям.
• Что гуманного человека можно вырастить только гуманными методами. Ломать или унижать нельзя никого и никогда.

На удивление простая, мудрая и логичная книга с массой конкретных советов. Очень рекомендую и семейным, и бездетным.
источник
Блог*
Главные мысли из книги Хаима Гинотта «Родитель-Ребенок. Мир отношений»

По первым страницам книги Хаима Гинотта мне казалось, что ничего нового в ней я не найду. Да, надо признавать и зеркалить эмоции ребенка, бла-бла-бла. В 1965-м это было в новинку, но кого этим удивишь сегодня?

Однако чем дальше читал, тем больше убеждался, что это удивительная, незаслуженно забытая книга.

Гинотт предельно просто описывает философию гуманного родительства и одновременно дает массу практических советов. Помогать ли с домашними заданиями? Как реагировать, если ребенок ворует? Как говорить с ним о сексе и о смерти? Что делать, когда старшие ревнуют к младшим? Об этом вы при желании почитаете в книге. А я лишь расскажу о базовых идеях.

Как общаться с ребенком

• Чаще всего родители говорят с детьми на языке критики и поучений. А детям нужен от нас язык принятия и сострадания. У него два принципа: (1) уважать ребенка, не ущемлять его достоинство; (2) сначала принять чувства ребенка, а уж потом давать советы.

• Главное в общении с ребенком - стремление слушать и слышать. Проявите искренний интерес к его словам и эмоциям. Не отрицайте его чувства и желания. Не высмеивайте. Принимайте все к сведению.

• Цель вашей коммуникации с ребенком - контакт. Реагировать нужно в первую очередь на его чувства, а не на поведение. Если ребенок рассказывает вам о каком-то событии, не выясняйте мелкие подробности - отвечайте на эмоции, которые событие у него вызвало.

• Дети не всегда говорят прямым текстом, им нужно особое внимание. Многие вопросы ребенок задает лишь для того, чтобы получить заверение в поддержке. Когда ребенок рассказывает о том, что его волнует, ему нужна ваша любовь, а не допросы и разглагольствования.

• Говорить с ребенком - это навык, его нужно осваивать. Без него родитель похож на хирурга-недоучку, который оперирует как бог на душу положит, потому что «достаточно любви и здравого смысла».

Как сделать, чтобы ребенок не врал

• Не задавайте вопросов, на которые знаете ответ. Не пытайтесь поймать ребенка на лжи с помощью вопросов-ловушек. Вы лишь унизите его и спровоцируете новую ложь.

• Не путайте ложь с фантазиями, с помощью которых ребенок подсказывает вам, чего хочет и о чем мечтает.

• Не ругайте за правду. Будьте готовы выслушать от ребенка и приятную, и горькую правду. Многие мамы и папы не слушают детей именно потому, что боятся услышать что-то, что им не понравится. Ребенок не станет врать, если будет четко знать, что у него нет необходимости говорить вам неправду.

Отношение к эмоциям

• Эмоции бывают положительными, отрицательными и двойственными. Объясните ребенку, что нормально испытывать любые чувства, в том числе противоречивые. Прямо говорите ребенку о его и своих эмоциях.

• Родители - зеркало детских эмоций: отражая их, мы помогаем детям разобраться в себе. Не будьте кривым зеркалом. Для ребенка важнее знать, какие чувства он переживает, чем понимать, почему он их испытывает. Не обманывайте и не пытайтесь подменить одни чувства другими («Не говори, что ненавидишь братика, ты на самом деле его любишь!») Говорите правду: «Я вижу, ты очень зол на брата».

• Родители тоже имеют право испытывать весь спектр эмоций. Злиться на ребенка - это иногда нормально. Оскорблять или бить ребенка нельзя никогда. Не обязательно быть святым. Просто не прячьте свои чувства, а прямо говоряите о них - без критики и унижения: «Я вне себя от ярости, потому что игрушки разбросаны по комнате».  Гнев не следует выражать таким образом, чтобы он нарастал в процессе выражения. Лекарство не должно быть опаснее болезни.

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

• Мир в доме не должен зависеть от перемен вашего настроения. Это результат методических сознательных действий: понижайте уровень напряженности, прежде чем она выйдет из-под контроля.

Продолжение завтра
источник
Блог*
Идеи из книги Хаима Гинотта «Родитель-ребенок». Часть 2

Характер ребенка формируют наши с ним отношения. Поэтому первый шаг - твердое намерение живо интересоваться тем, что он думает и чувствует, а не просто реагировать на его поведение.

Дисциплина

• Суть дисциплины в том, что мы разрешаем ребенку любые чувства, мысли и желания. Ограничиваем только нежелательное поведение.

• Недопустимое поведение пресекайте решительно, но без унижений и критики. Не ругайте личные качества ребенка («как ты смеешь бить сестру, жестокий мальчишка!»). Остановите его и объясните свойства предметов: «Сестры не для битья». В идеале дайте приемлемую альтернативу: «В мяч играют во дворе, а не в доме».

• Запрет должен быть сформулирован четко и безлично. Расплывчатые формулировки лишь сбивают с толку, лучше полный запрет. Не «не брызгайся слишком сильно», а «брызгаться нельзя».

• Правила легко придумать и сложно соблюдать. Не устанавливайте железных правил без крайней необходимости. Если установили - требуйте соблюдения без долгих обоснований.

• Не грозите наказаниями и не пытайтесь подкупить ребенка. Это не работает.

Ответственность

• Ответственность - это набор ценностей, а не послушание. Чувство ответственности невозможно навязать, оно растет изнутри. Ценности нельзя преподать, их можно только впитать. Ребенок повторяет за теми, кого уважает и любит. Демонстрируйте ценности на деле, а не на словах.

• Чтобы ребенок умел принимать решения, давайте ему право выбора. Не перекладывайте на него ответственность за здоровье и безопасность, но пусть с малых лет решает за себя. Как малышу приготовить яйцо: всмятку или пожарить? Какую футболку купить - красную или зеленую? Пусть с каждым годом зона ответственности расширяется.

Снисходительность

• Дети - это дети. Чистая рубашка на ребенке недолго будет чистой; на деревья нужно залезать; бегать веселее, чем ходить шагом. Не требуйте, чтобы ребенок перестал быть ребенком. Дюжина недорогих и легких в уходе рубашек будет куда полезнее для его психического здоровья, чем постоянные наставления об опрятности.

• Учите детей отличать незначительные происшествия от реальных трагедий. Не реагируйте на разбитое стекло так, словно это ваша разбитая жизнь. Мелкая неудача может служить хорошим поводом задуматься о том, что по-настоящему важно.

• Не стремитесь сделать ребенка максимально эффективным. Целесообразность - враг детства, разорение детской души. Дайте ребенку возможность экспериментировать, ошибаться, учиться без понуканий и стопроцентного КПД.

Похвалы и отказы

• Хвалить ребенка следует за конкретные вещи - за старание и результаты усилий - а не за абстрактные черты характера, которые вы хотели бы ему приписать. «Ах, какой послушный мальчик» - неудачный, оценочный вариант. «Спасибо, что убрал все игрушки, вижу, это было нелегко» - куда полезнее.

• Учитесь говорить «нет» мягко. Если вынуждены отказать ребенку в чем-то, то хотя бы не отнимайте у него удовольствие помечтать. Покажите, что понимаете его желание. Например: «Я вижу, как тебе хочется иметь эту прекрасную игрушку. Мне очень жаль, что я не могу ее тебе купить прямо сейчас». При возможности предложите альтернативу: «Если очень хочешь, можем попросить эту игрушку на Рождество».

О разном

• Авторитет подразумевает краткость. Родители говорят слишком много и подробно. Не вдавайтесь в долгие разъяснения, если ребенок об этом не просит.

• Всегда, при любой возможности старайся поддержать и усилить чувство собственного достоинства ребенка.

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

• Никогда не поднимайте руку на ребенка. И никогда не давайте бить себя: «Люди не для битья».

• Если не понимаете, как правильно поступить, лучше ничего не делайте. Подумайте и разберитесь в собственной позиции.

• Вырастить гуманного человека можно лишь гуманными методами. Цель не оправдывает средства. Нет ни одной высокой цели, ради которой можно было подавлять, ломать и обижать ребенка.
источник
2021 September 18
Блог*
Всегда мечтал битовые операции с null делать, спасибо Csharp
источник
Блог*
источник
2021 September 19
Блог*
во-вторых, голосуй или проиграешь
источник
Блог*
источник
Блог*
#prog #js #article

Статья (pdf) о том, как типы могут помочь поймать баги в коде на JavaScript, на базе случайной выборки из репозиториев по всему GitHub. TL;DR: Flow и Typescript в состоянии поймать 15% из допущенных багов (с доверительным интервалом 5%)! Причём, учитывая методологию, это число наверняка занижено. К сожалению, ссылки на материалы исследования нерабочие, так что проверить результаты несколько затруднительно.
источник
2021 September 20
Блог*
#prog

Там Данила пишет про суммирование чисел в плавучке и про то, как разбираться с неизбежными ошибками округления
Telegram
Experimental chill
Нередко в базах данных и вообще любой работы с массивами возникают сложения чисел с плавающей точкой. С ними вроде всё хорошо, IEEE 754 стандарт давно устоялся, но чем больше вы складываете чисел, тем больше накапливается ошибка. Ещё хуже, если вы суммируйте в разных потоках или машинах, результаты могут быть разные и надо писать отдельные проверки на сравнения. Ошибка, конечно же, идёт из округлений.

Кейс: вы работаете с данными и считайте порог для их удаления. Доверять только одному процессу с удалением строго нельзя, поэтому часто делают кворумные джобы, где запускают много одинаковых бинарей, которые обязаны договориться о том, что данные можно удалять. Это позволяет выкладывать новый код на staging, не боясь, что данные удалятся (например, кворум не наберётся, если из 3 реплик мы выложим новый плохой код только на одну). Нередкие проблемы, которые я видел в проде своими глазами были связаны с тем, что удаления не могли договориться из-за того, что вокруг порога X одни джобы считали X - eps, другие X +…
источник
2021 September 21
Блог*
#prog #article

С бооольшим опозданием делюсь статьёй (перевод на Хабре) про исследование производительности предсказателя ветвлений на разных процессорах. Помимо всего прочего — очень наглядно показана разница в производительности между предсказанными и не предсказанными переходами
источник
Блог*
источник
Блог*
#prog #rust #suckassstory

https://github.com/dimforge/nalgebra/issues/984

Рукалицо просто
источник
2021 September 22
Блог*
Sweet dreams are made of this
источник