Давайте проверим, работает ли виджет комментариев на сайте.
https://grishka.me/blog/respect-your-users/
https://grishka.me/blog/respect-your-users/
grishka.me
Уважайте своих пользователей
В последнее время начал замечать печальный тренд – приложения, сайты и даже операционные системы всё меньше и меньше уважают своих пользователей. В чём это выражается, спросите вы? А вот в чём:
Нет, дорогой ВКонтакте, я не хочу "думать о безопасности своей…
Нет, дорогой ВКонтакте, я не хочу "думать о безопасности своей…
👍2🤪1
Там coub решил закрыться 1 апреля, так что я по-быстрому сделал скачивалку всего налайканного и плеер к ней:
https://gist.github.com/grishka/2efec8715ebf3c0aca2d0dbf9b703769
https://gist.github.com/grishka/2efec8715ebf3c0aca2d0dbf9b703769
Gist
Coub Likes Downloader.user.js
GitHub Gist: instantly share code, notes, and snippets.
Написал первый пост в новом блоге — о своём способе отображения списков со сложной вёрсткой в приложениях. Пост на английском, потому что почти все мои знакомые программисты его знают, а потенциальная аудитория будет больше, чем если писать по-русски.
https://grishka.me/blog/display-items/
https://grishka.me/blog/display-items/
grishka.me
Display Items
Sometimes, when building a native app, you may need to display a long (potentially infinite) list of complex, dynamic layouts. Think social media posts, modern instant messages, you get the idea. All these things where there are endless combinations of media…
👍4
Залипательное: https://sunandstuff.com/cube/
(работает только с компа)
(нет, с телефона не работает, совсем, вообще)
(работает только с компа)
(нет, с телефона не работает, совсем, вообще)
❤5
Написал статью на хабр о том, как сделать минимальный ActivityPub-сервер:
https://habr.com/ru/articles/702724/
https://habr.com/ru/articles/702724/
Хабр
Пишем минимальный ActivityPub-сервер с нуля
В последнее время, на фоне покупки Twitter Илоном Маском , люди начали искать ему альтернативы — и многие нашли такую альтернативу в Mastodon . Mastodon — это децентрализованная социальная сеть,...
👍11❤🔥3👏1
Собрал свои актуальные мысли о продлении жизни в осмысленный текст: https://grishka.me/blog/life-extension-thoughts/
grishka.me
Мысли о продлении жизни
Здесь я решил собрать свои свежие мысли о продлении жизни, подходах к нему, перспективных с моей точки зрения направлениях исследований, и всяких смежных темах.
Теории старения Большинство людей до сих пор думают, что процесс старения является чем-то вроде…
Теории старения Большинство людей до сих пор думают, что процесс старения является чем-то вроде…
🔥15🦄1
Media is too big
VIEW IN TELEGRAM
Твиттер в 2006 году.
Сервис, который делает одну вещь, и делает её отлично, без излишеств и без жадности. Из интересного — есть "друзья", которые отдельны от подписок. Когда я зарегился в твиттере в 2011, такого уже не было.
Сервис, который делает одну вещь, и делает её отлично, без излишеств и без жадности. Из интересного — есть "друзья", которые отдельны от подписок. Когда я зарегился в твиттере в 2011, такого уже не было.
👍9😢7
Выпустил Smithereen 0.7.
Нововведений очень много, как внутри, так и снаружи, но вот основные.
- Новые инструменты для модерации: доступы на основе ролей, полностью переделанные жалобы (теперь выглядящие как тикеты), личные карточки пользователей, новые способы блокировки страниц, и так далее. Всё направлено на то, чтобы было удобно работать командой модераторов.
- Переделано хранение файлов. Теперь отдельно хранятся ссылки (references) на файлы — это существенно упрощает код, который с ними работает, и в будущем позволит существенно экономить место на диске. Также добавлена поддержка облачных сервисов хранения файлов, совместимых с AWS S3.
- Несколько десятков исправлений мелких багов и прочих косяков в интерфейсах.
Переходите в федивёрс — тот самый ВКонтакте уже никто не вернёт.
Нововведений очень много, как внутри, так и снаружи, но вот основные.
- Новые инструменты для модерации: доступы на основе ролей, полностью переделанные жалобы (теперь выглядящие как тикеты), личные карточки пользователей, новые способы блокировки страниц, и так далее. Всё направлено на то, чтобы было удобно работать командой модераторов.
- Переделано хранение файлов. Теперь отдельно хранятся ссылки (references) на файлы — это существенно упрощает код, который с ними работает, и в будущем позволит существенно экономить место на диске. Также добавлена поддержка облачных сервисов хранения файлов, совместимых с AWS S3.
- Несколько десятков исправлений мелких багов и прочих косяков в интерфейсах.
Переходите в федивёрс — тот самый ВКонтакте уже никто не вернёт.
👍16🔥3❤2👏1
Подумал тут, и осознал, что всё-таки есть как минимум одна вещь в программировании, которая стала лучше в современности по сравнению с тем, что было 15-25 лет назад.
Намного большее количество опенсорса. В нулевые и девяностые его практически не было — библиотеки в большинстве своём были коммерческими продуктами, иной раз с "связаться с нами" вместо цены. Ты покупал лицензию и так и жил со связанными руками. Предполагалось, что твоё приложение, в котором ты будешь использовать такую библиотеку, тоже будет коммерческим.
Сейчас же, если кто-то делает какую-то библиотеку, публикация её исходников по сути предполагается по умолчанию. И даже для тех, кто эти библиотеки в своих проектах не использует, всё равно есть польза в образовательном плане, ведь можно почитать код и узнать что-то новое, стать чуточку мудрее и опытнее.
Намного большее количество опенсорса. В нулевые и девяностые его практически не было — библиотеки в большинстве своём были коммерческими продуктами, иной раз с "связаться с нами" вместо цены. Ты покупал лицензию и так и жил со связанными руками. Предполагалось, что твоё приложение, в котором ты будешь использовать такую библиотеку, тоже будет коммерческим.
Сейчас же, если кто-то делает какую-то библиотеку, публикация её исходников по сути предполагается по умолчанию. И даже для тех, кто эти библиотеки в своих проектах не использует, всё равно есть польза в образовательном плане, ведь можно почитать код и узнать что-то новое, стать чуточку мудрее и опытнее.
👍34🔥4👏3
Forwarded from Стой под стрелой (Nikita Prokopov)
Блин, отличный тут (это как твит, только в Мастодоне) показали сегодня.
Короче, чел нашел реализацию Pokedex от нашего Гришки (это не панибратство, ник у него такой), которая на чистой джаве и андроидных API и работает в сто раз быстрее версии на Композе и весит в 10 раз меньше.
А дальше его немножко заклинило, потому что он видимо свято верит в то, что писать код надо так как все, а не как хочется. Пишет:
> Someone posts an extremely spicy implementation of a basic app on r/androiddev that essentially says, "All recommended best practices for Android dev are trash, just use Java and ditch all of Google's compat APIs"
> Everyone laughs at this person for being a crank
> Turns out: They are the author of mastodon-android!
> It would be nice if Mastodon's Android client weren't written and maintained by a crank who is unable to collaborate effectively or distinguish between good and bad dependencies.
То есть видите, да? С одной стороны, Гришкина реализация существует и работает гораздо лучше. Это как бы факт.
С другой стороны, челу ну очень хочется верить, что вот это все что происходит в индустрии — библиотеки, фреймворки, языки, что все меняется постоянно, что за всем этим надо следить, бежать, учить — что это все не зря, что в этом есть какой-то смысл.
И даже списать под шумок пример с Pokedex — ха-ха, это все очень мило, но пример-то игрушечный, no way это смаштабируется на реальное приложение — тоже не получается, потому что есть Mastodon for Android.
Ну и у человека кризис веры. Он обзывается, высмеивает, торгуется (хотел бы я, чтобы этих проектов не существовало), но сделать ничего не может.
Грустная история, но полезная. Жить с ощущением, что если Композ и Котлин существуют, то значит для этого есть хорошая причина — можно, но до первого столкновения с реальностью.
Я не говорю, что прям весь прогресс это треш, но и просто верить в пользу чего-то просто потому, что его сделала какая-то большая компания — это хороший путь к психическому срыву.
Ну а людей, которые хоть что-то сделали и запустили, любым вообще способом, надо уважать хотя бы за этот факт. Собственно, реакция создателя Мастодона на тред того чувака:
> he said he wouldn't tolerate anyone "insulting" grishka, and then he blocked me, so...
Но это понимаешь, только когда сам что-то попробуешь сделать.
Короче, чел нашел реализацию Pokedex от нашего Гришки (это не панибратство, ник у него такой), которая на чистой джаве и андроидных API и работает в сто раз быстрее версии на Композе и весит в 10 раз меньше.
А дальше его немножко заклинило, потому что он видимо свято верит в то, что писать код надо так как все, а не как хочется. Пишет:
> Someone posts an extremely spicy implementation of a basic app on r/androiddev that essentially says, "All recommended best practices for Android dev are trash, just use Java and ditch all of Google's compat APIs"
> Everyone laughs at this person for being a crank
> Turns out: They are the author of mastodon-android!
> It would be nice if Mastodon's Android client weren't written and maintained by a crank who is unable to collaborate effectively or distinguish between good and bad dependencies.
То есть видите, да? С одной стороны, Гришкина реализация существует и работает гораздо лучше. Это как бы факт.
С другой стороны, челу ну очень хочется верить, что вот это все что происходит в индустрии — библиотеки, фреймворки, языки, что все меняется постоянно, что за всем этим надо следить, бежать, учить — что это все не зря, что в этом есть какой-то смысл.
И даже списать под шумок пример с Pokedex — ха-ха, это все очень мило, но пример-то игрушечный, no way это смаштабируется на реальное приложение — тоже не получается, потому что есть Mastodon for Android.
Ну и у человека кризис веры. Он обзывается, высмеивает, торгуется (хотел бы я, чтобы этих проектов не существовало), но сделать ничего не может.
Грустная история, но полезная. Жить с ощущением, что если Композ и Котлин существуют, то значит для этого есть хорошая причина — можно, но до первого столкновения с реальностью.
Я не говорю, что прям весь прогресс это треш, но и просто верить в пользу чего-то просто потому, что его сделала какая-то большая компания — это хороший путь к психическому срыву.
Ну а людей, которые хоть что-то сделали и запустили, любым вообще способом, надо уважать хотя бы за этот факт. Собственно, реакция создателя Мастодона на тред того чувака:
> he said he wouldn't tolerate anyone "insulting" grishka, and then he blocked me, so...
Но это понимаешь, только когда сам что-то попробуешь сделать.
👏16😁4👎3🔥2👍1
Я вот осознал, что меня бесит мода не только в вещах, связанных с программированием (подходы, библиотеки, технологии), но и буквально в одежде. У меня протёрлись джинсы из Reserved, купленные ещё до войны. Я пошёл в теперь уже 🤡RE🤡 купить точно такие же новые. Но, конечно, ничего такого я там не нашёл! Нашёл какие-то похожие, такого же размера, и как бы написано slim, а по факту туда ещё половина меня влезет. А всё потому что коллекции хуекции сезоны хуезоны. А я всего лишь хочу покупать одно и то же всю жизнь. Неужели я прошу чего-то невозможного?!
👍32🤣10❤5💯4😁3😭1
Forwarded from Стой под стрелой (Nikita Prokopov)
В Твиттере опять затронули тему геттеров. Я опять высказался, что мол, не понимаю. Зачем городить целый метод, который возвращает поле, и еще прятать поле, если можно напрямую прочитать поле? Кто умрет?
Объяснений обычно дают несколько.
Первое — а что если потом понадобится добавить логику? Ну когда понадобится, тогда и добавишь. Джетбрейнс на этом буквально бизнес построил, чтобы поле в метод можно было сконвертировать в любой момент.
(правда, они частично бизнес построили и на том, чтобы геттеры можно было сгенерировать одной кнопкой. На оба фронта играют, молодцы)
Второе — это же публичное АПИ поменяет, а у нас библиотека! Не, ну если у вас и правда библиотека, то ладно. Но много вы видели компаний, которые прям библиотеки пишут? Так-то я видел геттеры и просто в локальной кодбазе, причем тупые.
Третье — ну если правда логика какая-то нужна. Ленивое там поле, или кешируемое, или проверка какая. Тут я на вас очень обижусь, потому что если я вижу
Хуже всех тут выступают языки, которые умеют притворяться, что геттера нет, когда он есть. Типа, пишешь
Четвертое – иногда еще приводят аргумент, что мол геттеры мокаются/проксируются, а поля нет. Если честно, мне сложно представить что это такое и зачем это нужно. Зачем делать другой объект, который притворяется оригинальным объектом, и читать его поля. А если нужно читать поля, то зачем для этого другой объект.
Но я тупой Кложа-программист, каким-то образом у нас ничего этого нет и все прекрасно работает. Но у нас и объектов нет, так что... Тут у меня реально ощущение, что люди придумали себе проблемы и героически их решают.
И наконец пятое — что геттер/сеттер это единственный способ сделать разную видимость у чтения/записи. Тут мы упираемся в проблему, а нафига вообще ограничивать видимость/доступность операций, почему все не может быть public по умолчанию? Мое глубокое убеждение, что может.
Обычно приватную видимость защищают аргументами вроде: если программист увидит, что у массива есть поле size, открытое для записи, он сразу туда что-нибудь запишет и все сломает. То есть они как дети — видят розетку и сразу туда суют две спицы.
В такой логике (я пишу код для людей с интеллектуальным развитием 4-6 летнего ребенка, активно пытающегося самому себе навредить) жить, наверное, тяжеловато. Но тут есть такое соображение — в любой программе программист всегда может поделить на ноль и все сломать. Никто его не остановит и не помешает.
Однако же, на практике этого почему-то не происходит. Почему? На размышление дается тридцать секунд.
Объяснений обычно дают несколько.
Первое — а что если потом понадобится добавить логику? Ну когда понадобится, тогда и добавишь. Джетбрейнс на этом буквально бизнес построил, чтобы поле в метод можно было сконвертировать в любой момент.
(правда, они частично бизнес построили и на том, чтобы геттеры можно было сгенерировать одной кнопкой. На оба фронта играют, молодцы)
Второе — это же публичное АПИ поменяет, а у нас библиотека! Не, ну если у вас и правда библиотека, то ладно. Но много вы видели компаний, которые прям библиотеки пишут? Так-то я видел геттеры и просто в локальной кодбазе, причем тупые.
Третье — ну если правда логика какая-то нужна. Ленивое там поле, или кешируемое, или проверка какая. Тут я на вас очень обижусь, потому что если я вижу
.getAge() я ожидаю что оно просто вернет age, а не начнет число Пи вычислять до сотого знака. Конвенции-с. Если нужен метод, который что-то действительно делает — ну так пусть он и выглядит как метод, который что-то делает. .calculateAge(), я не знаю. Хуже всех тут выступают языки, которые умеют притворяться, что геттера нет, когда он есть. Типа, пишешь
var y = obj.y, а на самом деле вызовется var y = obj.getY(). Нафига так делать? Какая цель преследуется? Чтобы выглядело симпатичнее, но читать-понимать было сложнее? Нет, спасибо. Вы думаете, почему на языках с большим количеством сахара так сложно программировать? Потому что вещи не то, чем кажутся.Четвертое – иногда еще приводят аргумент, что мол геттеры мокаются/проксируются, а поля нет. Если честно, мне сложно представить что это такое и зачем это нужно. Зачем делать другой объект, который притворяется оригинальным объектом, и читать его поля. А если нужно читать поля, то зачем для этого другой объект.
Но я тупой Кложа-программист, каким-то образом у нас ничего этого нет и все прекрасно работает. Но у нас и объектов нет, так что... Тут у меня реально ощущение, что люди придумали себе проблемы и героически их решают.
И наконец пятое — что геттер/сеттер это единственный способ сделать разную видимость у чтения/записи. Тут мы упираемся в проблему, а нафига вообще ограничивать видимость/доступность операций, почему все не может быть public по умолчанию? Мое глубокое убеждение, что может.
Обычно приватную видимость защищают аргументами вроде: если программист увидит, что у массива есть поле size, открытое для записи, он сразу туда что-нибудь запишет и все сломает. То есть они как дети — видят розетку и сразу туда суют две спицы.
В такой логике (я пишу код для людей с интеллектуальным развитием 4-6 летнего ребенка, активно пытающегося самому себе навредить) жить, наверное, тяжеловато. Но тут есть такое соображение — в любой программе программист всегда может поделить на ноль и все сломать. Никто его не остановит и не помешает.
Однако же, на практике этого почему-то не происходит. Почему? На размышление дается тридцать секунд.
👍16👎8
Доделал и оттестировал Smithereen 0.8. Новые фичи:
- Репосты, в том числе с добавлением своего комментария
- Встраивание постов на сайты
- Попап для удалённого взаимодействия с постом, если ты пытаешься что-нибудь с ним сделать, но не залогинен
- Новые поля в профилях (уже становится похоже на настоящую соцсеть)
- Настройка вида комментариев: древовидные (по умолчанию), двухуровневые, плоские
- Карточки с краткой информацией о пользователе при наведении на упоминания
- Подсказчик для упоминаний
- Закладки для профилей и групп
- Как всегда, куча мелких исправлений и улучшений
- Репосты, в том числе с добавлением своего комментария
- Встраивание постов на сайты
- Попап для удалённого взаимодействия с постом, если ты пытаешься что-нибудь с ним сделать, но не залогинен
- Новые поля в профилях (уже становится похоже на настоящую соцсеть)
- Настройка вида комментариев: древовидные (по умолчанию), двухуровневые, плоские
- Карточки с краткой информацией о пользователе при наведении на упоминания
- Подсказчик для упоминаний
- Закладки для профилей и групп
- Как всегда, куча мелких исправлений и улучшений
👏16🔥3👍1