Самое время для шифрования своих удалённых стореджей :/
Еще так недавно я был беспечным наивным человечком, не понимающим даже назначение https, а в последнее время понимаю, что скомпрометировал себя уже везде, где только можно. Но уже слишком поздно.
Интереснейшый подход! Единственное, что тут, по моему мнению, критически необходимо — это достаточная энтропия источника RNG. А так — статья очень простая и занимательная, спасибо!
А мне последние годы вполне хватает контакта. Когда-то любил winamp и foobar, затем deadbeef, но когда появилось много девайсов (ноут, планшет, телефон, рабочий ПК), стало гораздо удобнее слушать музыку из браузера либо из какого-то pulsar или tvoeradio (последнее — очень удобная программа, несмотря на примитивное название, является чем-то типа lastfm, но для апи вконтакта; крадет метаданные из тех же источников, что и ласт.фм и довольно неплохо понимает теги и жанры треш-метала).
Как по мне, так идея автора статьи довольно яркая и интересная, поскольку делает мир разнообразнее. И поэтому он вполне заслуживает поддержки и моей симпатии.
Я всегда любил PHP и с Python на данный момент имею вдвое меньше опыта, нежели с первым, но данный язык — действительно больше, чем просто язык. В то время, как PHP — не больше, чем интерпретатор для достижения некой цели, Python — целая философия (которая, не спорю, позволяет наделать такого, что глаза ревьюэра через уши вытекут). А главное — он форсит программистов по крайней мере писать читабельный вложенный код. Я ни разу не сталкивался с невозможностью реализации чего-то в нем.
Другой интересный приём — изменение класса объекта на лету изнутри класса через self.__class__. Это немного нарушает предсказуемость кода, но даёт большую гибкость (например, при работе с сетевыми пакетами в протоколах пользовательского уровня, тип которых заранее неизвестен).
Интересная статья, узнал для себя пару новые вещей.
От себя добавил бы еще про OrderedDict (сортированном dict), о котором узнал относительно недавно и который местами очень сильно помогает (например, при формировании REST-запросов, где важен порядок аргументов) и, кроме того, полностью совместим с dict.
Имхо, если есть необходимость выполнять код, критически зависимый от времени (например, позицию перемещающегося объекта, который рисуется, например, на канвасе), имеет смысл использовать requestAnimationFrame (или если работа не с графикой — то обычный setTimeout) и полагатся на системный таймер и разницу во времени между вызовами функции. Помню, была у нас проблема, когда объекты перемещались неплавно. Пришлось писать своей механизм для выравнивания нестабильного квантования между вызовами.
Оф-топ: Однако, частично согласен с вашей мыслью — неоднородность фона создаёт некий комфорт, в отличие от «плиточных» дизайнов.
Еще так недавно я был беспечным наивным человечком, не понимающим даже назначение https, а в последнее время понимаю, что скомпрометировал себя уже везде, где только можно. Но уже слишком поздно.
Но не уверен, сработает ли моё разыменование с генератором вместо списка.
Впрочем, к чему сравнивать пулемёт и танк?
self.__class__
. Это немного нарушает предсказуемость кода, но даёт большую гибкость (например, при работе с сетевыми пакетами в протоколах пользовательского уровня, тип которых заранее неизвестен).От себя добавил бы еще про
OrderedDict
(сортированномdict
), о котором узнал относительно недавно и который местами очень сильно помогает (например, при формировании REST-запросов, где важен порядок аргументов) и, кроме того, полностью совместим сdict
.