Гришкин блог
1.05K subscribers
52 photos
13 videos
1 file
37 links
Личный канал @grishka.

Рекламу не размещаю.
Download Telegram
Channel created
Там coub решил закрыться 1 апреля, так что я по-быстрому сделал скачивалку всего налайканного и плеер к ней:
https://gist.github.com/grishka/2efec8715ebf3c0aca2d0dbf9b703769
Написал первый пост в новом блоге — о своём способе отображения списков со сложной вёрсткой в приложениях. Пост на английском, потому что почти все мои знакомые программисты его знают, а потенциальная аудитория будет больше, чем если писать по-русски.

https://grishka.me/blog/display-items/
👍4
Сейчас многие сравнивают последнее обновление телеграма с QIP — там же тоже были анимированные смайлики — но это не совсем верное сравнение. Знаете что было в QIP, чего в телеграме нет?

Настройка для отключения анимации.
👍15🤔1
Залипательное: https://sunandstuff.com/cube/
(работает только с компа)
(нет, с телефона не работает, совсем, вообще)
5
Media is too big
VIEW IN TELEGRAM
Твиттер в 2006 году.

Сервис, который делает одну вещь, и делает её отлично, без излишеств и без жадности. Из интересного — есть "друзья", которые отдельны от подписок. Когда я зарегился в твиттере в 2011, такого уже не было.
👍9😢7
Выпустил Smithereen 0.7.

Нововведений очень много, как внутри, так и снаружи, но вот основные.
- Новые инструменты для модерации: доступы на основе ролей, полностью переделанные жалобы (теперь выглядящие как тикеты), личные карточки пользователей, новые способы блокировки страниц, и так далее. Всё направлено на то, чтобы было удобно работать командой модераторов.
- Переделано хранение файлов. Теперь отдельно хранятся ссылки (references) на файлы — это существенно упрощает код, который с ними работает, и в будущем позволит существенно экономить место на диске. Также добавлена поддержка облачных сервисов хранения файлов, совместимых с AWS S3.
- Несколько десятков исправлений мелких багов и прочих косяков в интерфейсах.

Переходите в федивёрс — тот самый ВКонтакте уже никто не вернёт.
👍16🔥32👏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...

Но это понимаешь, только когда сам что-то попробуешь сделать.
👏16😁4👎3🔥2👍1
Почему некоторые люди настолько упорно отрицают кнопку shift?
🤡7🤷5👎21👏1😁1
Я вот осознал, что меня бесит мода не только в вещах, связанных с программированием (подходы, библиотеки, технологии), но и буквально в одежде. У меня протёрлись джинсы из Reserved, купленные ещё до войны. Я пошёл в теперь уже 🤡RE🤡 купить точно такие же новые. Но, конечно, ничего такого я там не нашёл! Нашёл какие-то похожие, такого же размера, и как бы написано slim, а по факту туда ещё половина меня влезет. А всё потому что коллекции хуекции сезоны хуезоны. А я всего лишь хочу покупать одно и то же всю жизнь. Неужели я прошу чего-то невозможного?!
👍32🤣105💯4😁3😭1
Forwarded from Стой под стрелой (Nikita Prokopov)
В Твиттере опять затронули тему геттеров. Я опять высказался, что мол, не понимаю. Зачем городить целый метод, который возвращает поле, и еще прятать поле, если можно напрямую прочитать поле? Кто умрет?

Объяснений обычно дают несколько.

Первое — а что если потом понадобится добавить логику? Ну когда понадобится, тогда и добавишь. Джетбрейнс на этом буквально бизнес построил, чтобы поле в метод можно было сконвертировать в любой момент.

(правда, они частично бизнес построили и на том, чтобы геттеры можно было сгенерировать одной кнопкой. На оба фронта играют, молодцы)

Второе — это же публичное АПИ поменяет, а у нас библиотека! Не, ну если у вас и правда библиотека, то ладно. Но много вы видели компаний, которые прям библиотеки пишут? Так-то я видел геттеры и просто в локальной кодбазе, причем тупые.

Третье — ну если правда логика какая-то нужна. Ленивое там поле, или кешируемое, или проверка какая. Тут я на вас очень обижусь, потому что если я вижу .getAge() я ожидаю что оно просто вернет age, а не начнет число Пи вычислять до сотого знака. Конвенции-с. Если нужен метод, который что-то действительно делает — ну так пусть он и выглядит как метод, который что-то делает. .calculateAge(), я не знаю.

Хуже всех тут выступают языки, которые умеют притворяться, что геттера нет, когда он есть. Типа, пишешь var y = obj.y, а на самом деле вызовется var y = obj.getY(). Нафига так делать? Какая цель преследуется? Чтобы выглядело симпатичнее, но читать-понимать было сложнее? Нет, спасибо. Вы думаете, почему на языках с большим количеством сахара так сложно программировать? Потому что вещи не то, чем кажутся.

Четвертое – иногда еще приводят аргумент, что мол геттеры мокаются/проксируются, а поля нет. Если честно, мне сложно представить что это такое и зачем это нужно. Зачем делать другой объект, который притворяется оригинальным объектом, и читать его поля. А если нужно читать поля, то зачем для этого другой объект.

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

И наконец пятое — что геттер/сеттер это единственный способ сделать разную видимость у чтения/записи. Тут мы упираемся в проблему, а нафига вообще ограничивать видимость/доступность операций, почему все не может быть public по умолчанию? Мое глубокое убеждение, что может.

Обычно приватную видимость защищают аргументами вроде: если программист увидит, что у массива есть поле size, открытое для записи, он сразу туда что-нибудь запишет и все сломает. То есть они как дети — видят розетку и сразу туда суют две спицы.

В такой логике (я пишу код для людей с интеллектуальным развитием 4-6 летнего ребенка, активно пытающегося самому себе навредить) жить, наверное, тяжеловато. Но тут есть такое соображение — в любой программе программист всегда может поделить на ноль и все сломать. Никто его не остановит и не помешает.

Однако же, на практике этого почему-то не происходит. Почему? На размышление дается тридцать секунд.
👍16👎8
This media is not supported in your browser
VIEW IN TELEGRAM
😁17🤔2🎉2
Доделал и оттестировал Smithereen 0.8. Новые фичи:

- Репосты, в том числе с добавлением своего комментария
- Встраивание постов на сайты
- Попап для удалённого взаимодействия с постом, если ты пытаешься что-нибудь с ним сделать, но не залогинен
- Новые поля в профилях (уже становится похоже на настоящую соцсеть)
- Настройка вида комментариев: древовидные (по умолчанию), двухуровневые, плоские
- Карточки с краткой информацией о пользователе при наведении на упоминания
- Подсказчик для упоминаний
- Закладки для профилей и групп
- Как всегда, куча мелких исправлений и улучшений
👏16🔥3👍1