Войдите или зарегистрируйтесь
Вы сможете писать комментарии и посты, ставить лайки и другое
Поиск
Тёмная тема

Посты пользователя mrAnderson


Покупка подписки на Claude без бана аккаунта из России

Надеюсь кому из разрабов поможет. У меня до этого был уже куплен Claude, мне подписку подарил работодатель НЕ из России. Так было несколько месяцев, потом мой заказчик отвалился.

Аккаунт был на гугловскую почту, т.е. домен почты не ***.ru. Общался с клодом на русском, все ок было, никто не забанил.

Потом подписка закончилась, я думал, как продлевать. Начитался кучу отзывов, что Антропик стали банить российские аккаунты. Я, пока был платный акк, всё это время сидел на Клоде с самых разных айпишников (Нидерланды, Южная Корея и т.п.), клоду на это было пофик.

Полтора месяца без клода было мукой 😫 Я решился на покупку через сервис-посредник (их много). Купил подписку через ggsel (не сочтите за рекламу). Там какое-то говно нужно было ставить в браузер как расширение, пришлось поставить в отдельный браузер, это нужно было для вытягивания id, потом расширение для браузера снёс сразу. Но всё успешно, через минуту после покупки всё засчиталось, тариф за 20 баксов добавился. Уже неделю вот так сижу, Pro Plan, полёт нормальный.

Ещё на всякий случай заставил Клода запомнить типа я из Казахстана, переехал туда навсегда и живу там долго. Хз, может поможет.

Fable 5 вот даже дали попробовать
Показать полностью...
+3
11

Никто не пишет RIGHT JOIN в SQL

Пост для айтишников бэкендеров.

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

В стандарте SQL есть правый джойн, но им никто не пользуется. Он же контринтуитивен! Зачем мне "обрезать" главную таблицу, написанную слева и подсоединять к полной правой? Логично же поменять их местами и написать LEFT JOIN.
+2
28

Misleading naming in JavaScript: atob() and btoa()

JavaScript has two globally available metods for working with Base64: atob() and btoa(). Their names clearly look like they were borrowed from older languages. In C, for instance, the standard library includes functions like atoi and atof:

#include <stdlib.h>

char str[] = "123";
int num = atoi(str); // 123

atoi means ASCII to integer, and atof means ASCII to float (though in reality it returns a double).

So what do you think the atob function does in JavaScript? ASCII to Base64? In other words, converting a regular string into a Base64 string? Nope! It does the exact opposite: it converts a Base64 string into a "regular" string. And btoa, in turn, converts a regular string into Base64!

console.log(btoa('Famabara')); // 'RmFtYWJhcmE='
console.log(atob('RmFtYWJhcmE')); // 'Famabara'

Who thought it was a good idea to swap the names like that? Love JS.
+2
37

Кривой нейминг в JavaScript: atob() и btoa()

В ЖСе есть два глобально доступных метода для работы с Base64 - это atob() и btoa(). Этот нейминг - явно калька с более старших языков. В Си в стандартной библиотеке есть, например, методы atoi и atof:

#include <stdlib.h>

char str[] = "123";
int num = atoi(str); // 123

atoi - означает ascii to integer, а atof - ascii to float (хотя по факту там double).

И как вы думаете, что делает функция atob в javascript? ASCII to Base64? Т.е. обычную строку в Base64 строку? Нет! Она делает ровно наоборот: переводит Base64 строку в "обычную" строку. А btoa в свою очередь переводит обычную строку в Base64!

console.log(btoa('Famabara')); // 'RmFtYWJhcmE='
console.log(atob('RmFtYWJhcmE')); // 'Famabara'

Кому в голову пришло перепутать названия? Люблю JS.
+2
43

Заметили, что пропала реклама IT-курсов?

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

Народ не глупый, уже не верит зазываниям "выучи пайтон и получай 300к/наносек". Выпускники айтишкол ищут работу годами и не находят, и радует, что про это всё больше пишут, ибо нефик.

А теперь внимание: именно IT-курсы со своей обильной и лживой рекламой виноваты в той отвратной ситуации, которая у нас сложилась на айти рынке. Рынок наводнён выпускниками этих школ, но есть важная деталь: уровень знаний и навыков у этих выпускников отвратительный. Раньше реклама айти была из каждого утюга, а теперь вот притихли.

Может, оно и к лучшему. Со временем рынок очистится от всего этого. А пока у нас 1000 человек на 1 место. Полный бред.
+7
102

Продажа благотворительности на Озоне - помогаем пёсикам и кошкам за 200 рублей

На Озоне появилась новая тема - продажа благотворительности. За 200 рублей можно получить ничего, просто благодарность - "сертификат" с доставкой на email.
Написали характеристики собаки:
Показать полностью...
+4
34

Позорная цензура мема в Яндекс Картинках: Можно, а зачем? от инженера Автоваза

Наш злой российский народ обнаружил позорную цензуру в Яндекс Картинках. Интервью с инженером Груненковым из АвтоВАЗа породило новый мем "Можно, а зачем?". Так вот вбейте эту фразу в Яндексе Картинках:
В картинках нет вообще никакого упоминания мема! Вот гады.
А это скриншот из Гугла, мем на месте.
Показать полностью...
+5
119

Пагинация курсором в PostgreSQL: не путайте реальный CURSOR и фейковый курсор из WHERE

На любом собесе по system design и хайлоаду вас наверняка спросят про пагинацию. И вопрос этот с подвохом, т.к. на хайлоаде БД очень большие, с миллионами записей. Например, спросят как сделать бесконечную ленту последних постов с подгрузкой. И тут главное не обос****ться как я сделал на своем собесе 😂

Итак, что мы знаем про курсоры? В PostgreSQL есть самые настоящие курсосы! Они так и называются CURSOR. В постгресе они работают только внутри транзакций.
BEGIN;
DECLARE zhopa_cursor CURSOR FOR
  SELECT id, title, created_at FROM posts;

-- Получаем 10 строк:
FETCH 10 FROM zhopa_cursor;

-- Получаем еще следующие 10 строк сразу после места, где остановились до этого:
FETCH 10 FROM zhopa_cursor;

CLOSE zhopa_cursor;
COMMIT;

Обратите внимание, что обязательны транзакция и конкретное имя для курсора. Можно ли это использовать в вебе? Нет. Но я на собесе начал заливать про эти курсоры постгреса и про хранение имен курсоров, хотя непонятно как это все реализовать для веба. Типа не закрывать некоторое время транзакцию и держать открытой некоторое время пока идут http запросы? 😂

Короче, в веб разработке есть так называемые курсоры, которые никакими курсорами на самом деле не являются. Это обычные WHERE условия в SQL! Но за каким-то х***м это называется курсором.

Вот SQL получения первого списка постов для ленты:

SELECT id, title, created_at
FROM posts
ORDER BY created_at DESC, id DESC
LIMIT 20;

Далее браузер в http запросе для получения следующих 20 постов передает payload:

"last_created_at": "2026-01-15 12:30:00+00",
"last_id": 12345,

И бэк делает SQL запрос:

SELECT id, title, created_at
FROM posts
WHERE (created_at, id) < ($1, $2)
ORDER BY created_at DESC, id DESC
LIMIT 20;

Вот эта строка:
WHERE (created_at, id) < ($1, $2)
это и есть как бы наш курсор, хотя нифига это не курсор.

Такой запрос с псевдо-курсором намного быстрее, чем юзанье OFFSET когда постгрес читает все подходящие записи в таблице и тут же скипает часть их.
Показать полностью...
+2
45
1