Я дам тебе несколько мнений по одному вопросу, несколько разных текстов.Пожалуйста проанализируй их и выведи только общее в этих текстах.Если какое-то утверждение в одном тексте расходится с другими - не используй его.Если какое-то утверждение встречается только в одном тексте - собери такие утверждения в списке "гипотезы"Если утверждения повторяются в нескольких текстах - начни с них.Понятно?
Далее скармливаю ему несколько ответов.
Но это не для кода. Для кода я предпочитаю тесты. Test Driven Development идеален для нейронок
подождите, если государство вводит - то это точно не про децентрализацию цифровой рубль появился вроде как во время хайпа криптовалют - это так но цифровой рубль - не криптовалюта это централизованное и очень зарегулированное, в чем прелесть именно для государства, средство расчетов.
Откуда вообще идея, что цифровой рубль - крипта? Отучаемся так думать. Цифровые валюты были задолго до крипты, это не синонимы.
бесконечная запись какой-то величины не означает бесконечность самой величины
конкретно про Пи известно, что оно не больше (и не меньше) определенных значений, оно не является бесконечным числом. Бесконечной является только попытка его записать в данной системе.
Мы можем пойти от обратно и создать систему отсчета в Пи, вот один из вариантов
1 в десятичной системе записывается как 1 2 - 2 3 - 3 Пи - 10 2*Пи - 20 3*Пи - 30 Пи*Пи - 100 .... Пи*Пи*Пи - 1000
Такая система была бы очень удобной для расчета площади кругов, так, площадь круга в 1 метр давала бы ровно 1 квадратный Пи-метр
В квадратных Пи-метрах можно было считать и все остальное
но многие числа, к примеру, как 4 буханки хлеба или моя зарплата - стали бы записываться в бесконечной форме, что было бы неудобно для подсчета сдачи в магазинах
Вот мой вариант компактного типизированного подписчика-отписчика, который я использую для игр в HTML5. В играх, где объекты часто исчезают, отписка критически важна, поэтому createSignal мне не подошел (хотя он почти идеально имитирует поведение хуков в React, подозреваю, отсюда вытекает и все остальное)
// TState - в данном случае обычный генерик (T), ,
// позволяющий подставлять любые типы в момент создания
type UnSubscriber = () => void;
type StateObserver<TState> = (state: TState) => void;
/**
Это можно использовать и как event, и как state
state - это по сути event, изначально имеющий какое-то значение
поэтому в этом классе есть методы, присущие обоим концепциям
**/
export class StateEvent<TState> {
private subscribers = new Set<StateObserver<TState>>();
constructor(protected state?: TState) {
}
// этот метод необязателен,
// но позволяет читать последнее значение - полезно для инициализации
getState(): TState | undefined {
return this.state;
}
// подписка, сразу возвращает отписку, которую можно использовать потом
on(callback: StateObserver<TState>): UnSubscriber {
this.subscribers.add(callback);
return () => {
this.subscribers.delete(callback);
};
}
// классический сеттер состояния
setState(state: TState) {
this.subscribers.forEach((fn) => {
fn(state);
})
this.state = state;
}
// это синтаксический сахар для того же, более привычный для event
// хотите удалить - удаляйте,
emit(data: TState) {
this.setState(data);
}
// это можно вызвать, чтобы гарантированно почистить все подписки
// если не хочется возиться с отдельными отписками
// там, где это уместно - к примеру, при закрытии экрана основной игры
// можно удалить подписчики на все события для этого экрана
unSubScribeAll() {
this.subscribers.clear();
}
}
Использование
// store.ts к примеру, в целом где угодно
export const events = {
log: new StateEvent<unknown[]>()
}
//в логике, к примеру, в целом где угодно
events.log.emit('Hello', 'World', someMessage);
//в создании игрового объекта, к примеру, в целом где угодно
const unSub = events.log.on((args: unknown[]) => console.log(...args));
//... где-то при разрушении объекта - отписка
unSub();
Зачем в этих функциях используется возврат массива, а не объекта? Чем это обусловлено, чем это лучше?
Кажется, я догадываюсь - так компактнее всего можно сделать переименование под текущую задачу, чтобы использовать только функции.
Но знаете, если бы createSignal возвращал объект - можно было бы переименовывать его. Этот объект и может содержать функцию отписки, которая жизненно необходима в паттерне Observable-Observer (а именно эта схема используется в данном посте, просто записанная в компактном функциональном стиле).
так, и как там на очень больших моделях с программированием? А с пониманием шуток? Галактика знает, в чем юмор "Колобок повесился"? А с объяснением анатомии Колобка - поймет?
С каждым новым инструментом, облегчающим программирование, программисты освобождали себя от части труда и начинали заниматься следующим уровнем сложности.
Вы привели в качестве примера очень сложные продукты. Они стали возможны именно благодаря развитию инструментов.
Пресловутая "архитектура", "паттерны", "чистой код" Дядюшки Боба - возникли довольно поздно после возникновения языков высокого уровня.
Именно эти вещи являются наиболее сложными, недопонятыми и недорассказанными. Первые попытки изучить их и описать нельзя назвать удачными, но они были лучше, чем ничего.
С развитием чат-ботов мы получаем инструмент, который легко напишет любую программу уровня 60х годов.
Если вам нужны, если вы понимаете, умеете использовать с выгодой простые программы - вы получаете буст и карт-бланш.
Существует миллион простых идей и микропрограмм, которые никогда не реализовывались, потому что запрягать живого программиста было слишком дорого.
Теперь это пространство открыто - в том числе и для самих программистов. "Там, внизу много места" (с) Фейнман
Дерзайте. Просто подумайте об очень простых программах, которые раньше были запредельно дороги. Которые надо было не только написать, но и ввести (те самые перфоркарты и перемычки).
Программисты останутся нужны, потому что запрос на сложные продукты растет и они хорошо оплачиваются.
Но там, внизу, бесконечное количество простых идей, за которые вы никогда бы не взялись раньше, даже будучи кодером.
Если машины после нескольких лет эксплуатации или практически сразу начинают демонстрировать разные особенности работы - означает ли это, что у них появилась личность?
.
.
. Тогда самыми духовными были первые автомобили, которые собирали в гаражах, вручную.
кодерам становится легче. На самом деле там дело такое - нейросеть может быстро нагенерить, но в паре моментов накосячить. Для текстов это не смертельно, а вот программа с 1 ошибкой - это не рабочая программа. Поэтому я вижу будущее так
1. Люди всех мастей и профессий радостно генерят миллионы килобайт программы через нейронки 2. В какой-то момент нейронка косячит. Чтобы понять, где она ошиблась, нужен профи. 3. ???? 4. PROFIT!!
Тяжелее будет вкатываться в IT, в смысле в оплачиваемые профессии. Но зато те, кто вкатился, будут на саппорте бесконечной ленты от миллионов радостных генераторов кода без программистов, когда те столкнутся с первым косяком.
Почитайте Лема, мегабитовую бомбу. Рано или поздно мы упремся в потолок сложности конструкций, при котором невозможно рассчитывать и даже полностью понимать весь проект. Пан Лем предложил концепцию черного ящика - мы просто каким-то образом создаем сложнейшую систему, пока не получим нужные выводы по нужным вводам. А что мы не смогли построить теорию такой работы и вообще не понимаем, что внутри черного ящика - ну и бог с ним, мы уперлись бы в лимит сложности рано или поздно.
я предлагаю изменить образование на схему - даем студентам реальные задания задания проверяются практикой
если студент успешно решает проблему, преподаватель даже делится с ним гонораром если нет - преподаватель подходит и смотрит, как он пишет промпт и говорит - Ну правильно, тут asm нужен, а ты просишь скрипты на Руби или вообще не указываешь платформу
Вот так забота об окружающей среде резко тормозит технический прогресс
Мне, конечно, жалко глубоководных рыб. Но
а еще меняли колеса на колеснице на ходу
Лицензия позволяет использовать Фреда в коммерческих целях?
Продолжайте эксперименты.
Мой вариант
Далее скармливаю ему несколько ответов.
Но это не для кода. Для кода я предпочитаю тесты. Test Driven Development идеален для нейронок
подождите, если государство вводит - то это точно не про децентрализацию
цифровой рубль появился вроде как во время хайпа криптовалют - это так
но цифровой рубль - не криптовалюта
это централизованное и очень зарегулированное, в чем прелесть именно для государства, средство расчетов.
Откуда вообще идея, что цифровой рубль - крипта? Отучаемся так думать. Цифровые валюты были задолго до крипты, это не синонимы.
бесконечная запись какой-то величины не означает бесконечность самой величины
конкретно про Пи известно, что оно не больше (и не меньше) определенных значений, оно не является бесконечным числом. Бесконечной является только попытка его записать в данной системе.
Мы можем пойти от обратно и создать систему отсчета в Пи, вот один из вариантов
1 в десятичной системе записывается как 1
2 - 2
3 - 3
Пи - 10
2*Пи - 20
3*Пи - 30
Пи*Пи - 100
....
Пи*Пи*Пи - 1000
Такая система была бы очень удобной для расчета площади кругов, так, площадь круга в 1 метр давала бы ровно 1 квадратный Пи-метр
В квадратных Пи-метрах можно было считать и все остальное
но многие числа, к примеру, как 4 буханки хлеба или моя зарплата - стали бы записываться в бесконечной форме, что было бы неудобно для подсчета сдачи в магазинах
Вот мой вариант компактного типизированного подписчика-отписчика, который я использую для игр в HTML5. В играх, где объекты часто исчезают, отписка критически важна, поэтому createSignal мне не подошел (хотя он почти идеально имитирует поведение хуков в React, подозреваю, отсюда вытекает и все остальное)
Использование
Зачем в этих функциях используется возврат массива, а не объекта? Чем это обусловлено, чем это лучше?
Кажется, я догадываюсь - так компактнее всего можно сделать переименование под текущую задачу, чтобы использовать только функции.
Но знаете, если бы createSignal возвращал объект - можно было бы переименовывать его. Этот объект и может содержать функцию отписки, которая жизненно необходима в паттерне Observable-Observer (а именно эта схема используется в данном посте, просто записанная в компактном функциональном стиле).
Обычно можно сделать возврат отписчика из подписчика
Но с таким сниппетом, в котором Set тоже спрятанный и недоступный - это проблематично.
Знаете, тут мы дошли до момента, на котором мы либо все заворачиваем в еще одну функцию, либо не паримся и пишем обычный класс
так, и как там на очень больших моделях с программированием? А с пониманием шуток? Галактика знает, в чем юмор "Колобок повесился"? А с объяснением анатомии Колобка - поймет?
С каждым новым инструментом, облегчающим программирование, программисты освобождали себя от части труда и начинали заниматься следующим уровнем сложности.
Вы привели в качестве примера очень сложные продукты. Они стали возможны именно благодаря развитию инструментов.
Пресловутая "архитектура", "паттерны", "чистой код" Дядюшки Боба - возникли довольно поздно после возникновения языков высокого уровня.
Именно эти вещи являются наиболее сложными, недопонятыми и недорассказанными. Первые попытки изучить их и описать нельзя назвать удачными, но они были лучше, чем ничего.
С развитием чат-ботов мы получаем инструмент, который легко напишет любую программу уровня 60х годов.
Если вам нужны, если вы понимаете, умеете использовать с выгодой простые программы - вы получаете буст и карт-бланш.
Существует миллион простых идей и микропрограмм, которые никогда не реализовывались, потому что запрягать живого программиста было слишком дорого.
Теперь это пространство открыто - в том числе и для самих программистов. "Там, внизу много места" (с) Фейнман
Дерзайте. Просто подумайте об очень простых программах, которые раньше были запредельно дороги. Которые надо было не только написать, но и ввести (те самые перфоркарты и перемычки).
Программисты останутся нужны, потому что запрос на сложные продукты растет и они хорошо оплачиваются.
Но там, внизу, бесконечное количество простых идей, за которые вы никогда бы не взялись раньше, даже будучи кодером.
Отдайте их роботам.
Если машины после нескольких лет эксплуатации или практически сразу начинают демонстрировать разные особенности работы - означает ли это, что у них появилась личность?
.
.
.
Тогда самыми духовными были первые автомобили, которые собирали в гаражах, вручную.
кодерам становится легче. На самом деле там дело такое - нейросеть может быстро нагенерить, но в паре моментов накосячить. Для текстов это не смертельно, а вот программа с 1 ошибкой - это не рабочая программа. Поэтому я вижу будущее так
1. Люди всех мастей и профессий радостно генерят миллионы килобайт программы через нейронки
2. В какой-то момент нейронка косячит. Чтобы понять, где она ошиблась, нужен профи.
3. ????
4. PROFIT!!
Тяжелее будет вкатываться в IT, в смысле в оплачиваемые профессии.
Но зато те, кто вкатился, будут на саппорте бесконечной ленты от миллионов радостных генераторов кода без программистов, когда те столкнутся с первым косяком.
Почитайте Лема, мегабитовую бомбу. Рано или поздно мы упремся в потолок сложности конструкций, при котором невозможно рассчитывать и даже полностью понимать весь проект. Пан Лем предложил концепцию черного ящика - мы просто каким-то образом создаем сложнейшую систему, пока не получим нужные выводы по нужным вводам. А что мы не смогли построить теорию такой работы и вообще не понимаем, что внутри черного ящика - ну и бог с ним, мы уперлись бы в лимит сложности рано или поздно.
Я подтверждаю, иногда он выдумывает библиотеки. При этом густо замешивает с правдой - код в целом логичен, могут быть даже существующие библиотеки.
я предлагаю изменить образование на схему - даем студентам реальные задания
задания проверяются практикой
если студент успешно решает проблему, преподаватель даже делится с ним гонораром
если нет - преподаватель подходит и смотрит, как он пишет промпт и говорит
- Ну правильно, тут asm нужен, а ты просишь скрипты на Руби или вообще не указываешь платформу
чем докажете, что вы не AI?
Это будет главный вопрос следующих десятилетий
>> ИИ в результате вошёл в топ 10% всех игроков, а их там
Их там что?
допишите в объект
"Shift":Input.Shift,
window.addEventListener("keydown") в JavaScript обрабатывает и Shift
а вместо значений Input в поля объекта можно сразу писать функции,
сократив код сразу до целевой логики
я думал, будут рецепты от гуру, как сделать код еще короче
вот этот многослойный иф легко превращается в однострочник, если описать входные данные и толкаемые в input в декларативной форме объекта.