Pull to refresh
28
Karma
0
Rating
Роман Теличкин @Telichkin

✍ Software Creator

TypeScript: паттерны проектирования. Часть 1

В посте для аргументов стратегии используется any, в вашем случае тоже придётся пожертвовать типизацией аргументов. Можно пойти немного дальше и сохранить типы:

login(() => loginWithTwitter('123'));
login(() => loginWithLocal('bytefer', '666'));

Популярная музыка на самом деле деградирует

Зашёл, чтобы оставить похожий комментарий. С самого начала текста создалось впечатление "Я где-то на YouTube смотрел точно такой же ролик". Спасибо за ссылку!


А ещё мне кажется, что этот текст писал не человек, а какой-то алгоритм, как это недавно было с новостями на Hacker News

[Личный опыт] Как я переехал в Австралию всего с двумя годами опыта в разработке

Вы "отваливаете 100500 денег" на пенсию текущих пенсионеров, а не на свою пенсию в будущем. В России солидарная пенсионная система, а не накопительная

Ситуация с PandaDoc в Беларуси: четверо сотрудников задержано, на топ-менеджеров компании завели уголовные дела

Я не разбираюсь в законах РБ, по-этому ваше утверждение "[Во время обыска в компании] Личные вещи – это все что находится в ваших карманах или ваших руках." для меня немного контринтуитивно.


Можете, пожалуйста, привести конкретные законы и статьи, на которые может ссылаться сотрудник, если в его компанию пришли с обыском?

В минском офисе PandaDoc идут обыски

Все же кажется, что к ним пришли из-за этого:


Ранее [PandaDoc] начала кампанию по сбору денег для белорусских силовиков, которые решили сменить профессию

Ссылка на результаты кампании тоже есть в посте: https://www.facebook.com/photo/?fbid=10158723155694592&set=a.10151034658869592

Аномалии голосования по поправкам к Конституции России. Часть 1

Потому что JSON — это модно. Шутка. Может потому что я описал процесс скраббинга данных и его можно повторить. Товарищи могут в них не верить, я не настаиваю.


Мне не очень нравится риторика и визуализация Шпилькина, вот я и стянул данные сам. В свободное время буду их ковырять. Данных мне не жалко, поэтому я и скинул ссылку сюда

Аномалии голосования по поправкам к Конституции России. Часть 1

tmin10 shadek dagen и все остальные, если хотите сами поиграться с данными, то я их вытянул с сайта http://www.vybory.izbirkom.ru и сложил в репу: https://github.com/Telichkin/constitution_data


Файл all_data.json

Facebook стал маркировать государственные СМИ в США

Интересно, а "Радио Свобода", которая получает прямое финансирование от правительства США[1], будет помечена как "подконтрольная властям СМИ"? В 2019 году они получили 124 миллиона долларов, в 2020 — 87 миллионов долларов.


[1] https://web.archive.org/web/20190320121320/https://www.svoboda.org/a/29830353.html

Реально ли разработчику в Кремниевой долине стать миллионером? Разбор от Staff Engineer в Lyft

У вас, видимо, медстрах для ЗП в 200 000 неправильно посчитан. Он должен быть 5.1% * 200 000 = 10 200. У медстраха же нет границы, с которой понижается процент, как у ПФР или соцстраха

Краткий обзор ридера PocketBook 740 Pro: 7,8 дюйма, аудио и защита по IPX8

Экран у 740 PocketBook-а очень нежный. У нас он треснул через месяц использования, причем никаких внешних повреждений не было: он не падал, на него на него ничего не роняли и не садились. Ридер просто лежал в умеренно набитой женской сумочке.


Если экран треснул — это всегда не гарантийный случай, даже если не было внешних дефектов. Замена экрана стоит 9000р.


В итоге ридером пользовались месяц, а теперь он второй год просто лежит в шкафу, потому что 16000р за хорошую читалку было не жалко, а вот 16000р + 9000р за ридер, который может еще раз непорочно треснуть, отдавать не хочется.


Четвертый kindle живет у нас с 2011 года, и никакие падения и тем более набитые сумки его еще не смогли сломать.

ReactiveX Redux

А почему нативно не написать retry, зачем нужно использовать сторонние библиотеки для базовой функциональности, которая пишется один раз на весь проект?


Если хочется настраивать retry перед каждым запросом:


const delay = ms => new Promise(resolve => setTimeout(resolve, ms))

const asyncRetry = async (asyncFn, { times, delayMs }) => {
  const lastTime = times - 1
  for (let i = 0, i < times, i++) {
    try {
     return await asyncFn()
    } catch (err) {
     if (i === lastTime) throw err
     await delay(delayMs)
    }
  }
} 

Если хочется настроить один раз в момент создания fetch-функций:


const retryable = (times, delayMs, asyncFn) => (...args) => 
  asyncRetry(() => asyncFn(...args), { times, delayMs })

const fetchUser = retryable(5, 2000, async (id) => {
  // fetch logic
}

Иногда кажется, что разработчики за модными библиотеками не замечают возможности языка.

Правительство РФ одобрило повышение штрафов за хранение персональных данных россиян за рубежом до 18 млн рублей

По ссылке написано:


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



И потом давно известен феномен — когда целенаправлено работают на позицию в рейтинге, чисто формально соответствуя критериям.

Это в равной степени относится к каждой стране в рейтинге.

Правительство РФ одобрило повышение штрафов за хранение персональных данных россиян за рубежом до 18 млн рублей

А по данным всемирного банка, государство делает все, чтобы бизнес было вести легче. В 2009 году Россия занимала 118 место в мире по легкости ведения бизнеса, а в 2019 уже 31[1]. По этому показателю Россия обогнала Францию, Италию и Швейцарию.


[1] https://ru.m.wikipedia.org/wiki/Рейтинг_лёгкости_ведения_бизнеса

Сериал «Чернобыль»: смотреть и думать

Все комментаторы, которые пишут, что фильм художественный, а не документальный, вам художественный фильм «Движение вверх» тоже понравился? Лайки обзору BadComedian[1] не ставили?

Уже после двух серий появляется столько «почему», что дальше смотреть сложно:

— Почему в сериале все руководители, даже главврач больницы, показаны дегенератами, которые не врубаются в ситуацию?
— Почему вся молодёжь и простые работяги сразу понимают ужас трагедии?
— Почему женщина физик из Минска так быстро понимает причину аварии и неэффективность способа борьбы с последствиями?
— Почему Хомюк на собрании с Горбачёвым намного уверенней Легасова? Легасов во время своей речи мямлит и неуверенно листает отчёт, и на этой неуверенности оператор делает акцент. Хомюк говорит без запинок, никуда не смотрит, оператор показывает только ее лицо и воодушевленное лицо какой-то пожилой женщины на собрании.
— Почему все что-то делают или под дулом автомата, или за деньги?
— Почему эвакуация начинается только после фразы «сегодня в Германии детям запрещают гулять на улице» и последующего переезда камеры на советских школьников, которые бегут домой на фоне дымящейся АЭС?
— Почему зритель за точно восстановленным антуражем не замечает клюквы?
— Почему даже после слов режиссёра «We had a general standing philosophy from the beginning, which was: Accuracy is everything to us.»[2] люди продолжают прикрывать все дыры «художественностью» этого сериала?
— Почему люди думают, что Американцы, которые так радовались смерти коммунизма[3], будут показывать настоящий СССР?

[1] www.youtube.com/watch?v=1nX0kF2UwDc&feature=share
[2] www.vice.com/en_us/article/j5wbq4/craig-mazin-interview-about-chernobyl-hbo-miniseries-on-how-accurate-and-what-really-happened
[3] youtu.be/c0QG_UvLkJo?t=19m

Забытая история ООП

Жаль, что Erlang довольно низкоуровневый в плане реализации ООП. Если в Smalltalk для обработки сообщения объектом достаточно создать метод с нужным селектором, то в Erlang принято сначала писать сервер, который умеет обрабатывать определенные сообщения, а потом клиент для этого сервера.


Но Erlang создавался для решения конкретных инженерных задач, и он справляется с этими задачами на ура. Очень приятный язык.

Забытая история ООП

А лучше не медитировать, а пописать на Smalltalk в котором между написанием программы и ее рантаймом нет никакой разницы.


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


В современных "динамических" языках информация о "типах" доступна только в рантайме. Так как в этих языках динамичность осталась только в рантайме, но момент написания все еще статический (текстовые файлы), то создается mismatch.


Smalltalk — совсем другой фрукт. Он делает динамическим не только способ работы системы как таковой, но и принцип работы человека с системой. В Smalltalk нет файлов. Кент Бек по этому поводу сказал "I mean, source code in files; how quaint, how seventies!". Да, в Smalltalk исходный код — это текст, но он находится не в файлах.

Palm возрождается из пепла с новым гаджетом

Пробовали клавиатуру Fleksy?

Как подготовиться к собеседованию в Google и не пройти его. Дважды

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


Тема развития определенных навыков и влияние этих навыков на все остальные аспекты жизни хорошо раскрыта в книге "Peak: Secrets from the New Science of Expertise". Автор книги является также автором исследования про 10000 часов, и в этой книге он объясняет, что популярная трактовка "10000 часов практики == профессионал" является неверной.

В защиту ООП. 7 несостоятельных аргументов его противников

Как только число 3 превращают в объект, к нему гвоздями прибивают какой-то один смысл

оно ограничивает наши возможности по интерпретированию числа 3 каким-то иным образом


Вам ничего не мешает добавлять любой смысл к объекту. Если в вашей ментальной модели число может быть кодом символа, отобразите это в числе:
charCode := 3 asCharCode.
charCode + 1. "Instance of CharCode didNotUnderstand #+"


Это и отличает данные от объектов: у объекта есть «смысл»/интерпретация, пользуясь Вашей терминологией, а у данных этого нет.

Пока это число 3, это просто данные, и мы можем наделять их любым смыслом


То есть данные — это все-таки что-то, что не имеет никакого смысла? Если число «3» и строка «лето» являются данными, значит ли это, что они по-сути равны как друг другу, так и абстрактному «ничего»?

В защиту ООП. 7 несостоятельных аргументов его противников

В первом сообщении я задавался вопросом, на который пока что никто не ответил :(
А что такое «данные»? Как «данные» могут существовать без интерпретатора?


Смыслом, как конкретным, так и абстрактным, и числа, и объекты наделяет человек.

Как сделать так, чтобы можно было передать смысл одного и того же объекта без искажений?

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity