У меня вопрос финансового характера, статья называется "Как я зарабатывал $10,000 в месяц...", это я так понимаю "в прыжке" и на двоих? А можно увидеть совокупные оборот/доход с ноября 2020 по время закрытия? Хотя бы порядок :)
Самая жопа что выгоду от кроилова получают люди, которые успевают спрыгнуть с поезда попадалова. И через это схема воспроизводит себя постоянно без угроз и издержек "кроителям".
Мне вот интересно, статья написана по делу, на стыке IT технологий и бизнеса. При этом даунвоутов накидали и статье и автору без единого комментария. Я понимаю страх, я понимаю неприятие "буржуев", которые "эксплуатируют" подневольный трудовой класс. Копирайтинг (наряду с Поддержкой) является отраслью на острие конфликта AI-NI и смотреть за ним надо в оба глаза. Среди нас только зубные доктора "в домике".
Да все как обычно с учеными и журналистами. По личному опыту качество ответа именно в ответах по программированию очень сильно зависит от постановки вопроса. От того, насколько хорошо предоставлен контекст проблемы и критерии качества.
Заметил что если вопрос сформулирован с "предубеждением" (типа я хочу решить проблему X и хочу для этого использовать инструмент Y) то чат переубеждать не будет если уж не совсем какая-то дичь. Постарается дать ответ исходя из пожеланий оператора. Если же сформулировать вопрос более общим способо (я хочу решить проблему X, посоветуй какие вообще варианты обычно применяются), то качество ответов резко улучшается. У меня порой складывается впечатление что он работает по принципу "спрашивай меня или что делать или как делать, но не оба сразу".
Сколько лет работал с индийцами, столько удивлялся насколько они не умеют работать со сложностью. Поначалу у меня даже складывалось впечатление что их прям предмет такой есть "как сделать простые вещи максимально сложным и кривым способом". Как итог, если их оставить одних, они очень быстро доводят любую систему до состояния когда никто не понимает как это работает и дальше херачат брутфорс подбором кода.
За 15 лет привыкаешь что мир программирования это не розовые пони, и часто тратить две недели на рефакторинг куска говна чтоб реализовать хотелку бизнеса слишком долго/дорого. И с чего бы это код вызывал какие-то чувства. Это просто работа.
Ладно если пишешь на одном языке, а если их три и это только повседневные. Типа java, kotlin, typescript. И мучительно вспоминаешь уже завезли в java elvis или все еще страдаем.
Я программирую уже лет 15, примерно с марта оплатил подписку на ChatGPT 4.0. Это просто охрененный инструмент который до сих пор многие недооценивают. Я использую его каждый день на работе и до сих пор нахожу ему все новые и новые применения. Вот лишь небольшой список того, что он умеет делать на уровне "production ready"
генерация тестов
генерация кода согласно вводных
анализ и пояснение написанного кода
анализ фрагментов архитектуры
обсуждение вариантов реализации с аргументацией за и против
составление UML диаграмм
Единственный момент который нужно держать в голове, что он не сделает за вас всю работу. Он в душе не знает про ваши критерии качества. Но если вы можете пояснить почему сгенерированный код вас не устраивает и как вы хотите - он перепишет за считанные секунды. Если вы научитесь использовать этот инструмент, чат подымает вас на следующую ступеньку. По качеству взаимодействия ChatGPT уже превосходит среднестатического мидла.
ВАЖНО! Чат 3.5 это полнейший шлак, с ним невозможно работать.
Пример
Запрос
можешь пояснить что делает функция
export function enrichObject(object: any, propertyName: string, formula: string, defaultValue?: string) {
if (formula.trim() === "")
return
let evaluation = formula
let match = evaluation.match("([a-zA-Z][\\w]*)");
while (match) {
const value = object[match[1]]
if (value == null) {
object[propertyName] = undefined
return
}
evaluation = evaluation.replace(new RegExp("([a-zA-Z]\\w*)"), value)
console.debug(`${value} - ${evaluation}`)
match = evaluation.match("([a-zA-Z][\\w]*)");
}
try {
// eslint-disable-next-line no-new-func
const result: number = Function("\"use strict\";return (" + evaluation + ")")();
object[propertyName] = Number.isFinite(result) ? result : Number(defaultValue);
} catch (e) {
console.warn(`Формула для свойства ${propertyName} задана неверно. Пожалуйста проверьте выражение: ${formula}`)
}
}
Ответ
Эта функция, `enrichObject`, принимает на вход четыре параметра:
1. `object`: объект для обогащения,
2. `propertyName`: свойство объекта, которое будет обновлено,
3. `formula`: строка, которую мы хотим вычислить и установить в качестве значения свойства объекта,
4. `defaultValue`: необязательное значение по умолчанию, которое будет использоваться, если формула выдаст бесконечное значение.
Функция работает следующим образом:
- Она проверяет, если `formula` является пустой строкой, и если это так, то функция ничего не делает и просто возвращает управление.
- Затем она начинает процесс подстановки значений переменных, найденных в `formula`, используя значения этих переменных из `object`.
- В процессе подстановки, если функция обнаруживает, что какое-то значение равно `null`, то она устанавливает свойство объекта, определенное `propertyName`, в `undefined` и возвращает управление.
- После того как все подстановки выполнены, функция пытается вычислить получившееся выражение. Если вычисление происходит успешно, она устанавливает свойство объекта `propertyName` в вычисленное значение. Если результат вычисления является бесконечностью, то она устанавливает `propertyName` в `defaultValue`. Если при вычислении происходит ошибка, она выводит предупреждение в консоль.
Таким образом, эта функция используется для динамического вычисления выражения, указанного в `formula`, и обновления свойства `propertyName` объекта на основе этого вычисления. Все переменные в `formula` должны существовать в `object`.
Запрос
я хочу изменить эту функцию таким образом, чтобы источник свойств и объект для обогащения были двумя разными параметрами
Ответ
Для изменения функции enrichObject таким образом, чтобы источник свойств и объект для обогащения были двумя разными параметрами, вы можете просто добавить еще один параметр функции. Давайте назовем его sourceObject.
Функция тогда будет выглядеть так:
export function enrichObject(object: any, sourceObject: any, propertyName: string, formula: string, defaultValue?: string) {
if (formula.trim() === "")
return
let evaluation = formula
let match = evaluation.match("([a-zA-Z][\\w]*)");
while (match) {
const value = sourceObject[match[1]]
if (value == null) {
object[propertyName] = undefined
return
}
evaluation = evaluation.replace(new RegExp("([a-zA-Z]\\w*)"), value)
console.debug(`${value} - ${evaluation}`)
match = evaluation.match("([a-zA-Z][\\w]*)");
}
try {
// eslint-disable-next-line no-new-func
const result: number = Function("\"use strict\";return (" + evaluation + ")")();
object[propertyName] = Number.isFinite(result) ? result : Number(defaultValue);
} catch (e) {
console.warn(`Формула для свойства ${propertyName} задана неверно. Пожалуйста проверьте выражение: ${formula}`)
}
}
Теперь функция enrichObject принимает два разных объекта: object (объект для обогащения) и sourceObject (источник свойств). Значения переменных для подстановки берутся из sourceObject, а обновленное свойство записывается в object.
Вы можете принести свой код и спокойно пообсуждать его. Какая разница за что "цепляться". По своему опыту такие собеседования очень комфортные как для соискателя так и для собеседующего и дают не меньше информации. Традиционно это выглядит так: "наш джун написал вот такой код, что вы думаете на этот счет".
Отлично сказано про "Сеньор мышление", только к сожалению я видел очень мало разработчиков, позиционирующих себя как сеньоры и думающие так. Куда чаще "надо больше оверинжениринга и модных технологий".
Грамотный юрист должен понять задачи и возможные риски каждого участника (не только своего клиента), оценить их и найти тот единственный вариант партнерства, который устроит всех.
Как правило существует много больше одного варианта партнерства, приемлемого для сторон. И уж точно юрист одной стороны не является царем и богом чтобы за "всех" решать.
Ровно это в статье и написано. Хотят бороться давно но боятся оттока клиентов. Похоже сейчас математика прогнозов складывается им в плюс ну или кому-то из топов надо закрыть KPI
Запрет одновременного воспроизведения с разных устройств например. Digital fingerprint. Ограничение числа переключений между устройствами к примеру 20 раз в сутки.
Тут же нет цели поймать всех, просто сделать современное использование настолько неудобным чтобы платили за отдельный аккаунт.
Есть небольшое отличие метров от метров кубических, 1 млн литров = 1000 м3, если 25 метров высота то диаметр чуть больше 7 метров как раз дает озвученный объем
Позже он говорил, что он использовал 103 статьи из советских газет и технических журналов, 4 отчета различных делегаций, 11 отчетов вернувшихся из СССР военнопленных и около 25 фотографий местности. Эти цифры могут быть заниженными, в том смысле, что он, возможно, запрашивал только самые важные сведения, но это показывает, какое огромное количество деталей ему нужно было собрать воедино для достижения цели.
Вы рассматриваете задачу с точки зрения выполнения проекта. Здесь сам "проект" - реорганизация. Сортировка сотрудников с кем можно работать а кого на улицу. Вариант скинуть команде/командам напрямую какую-нибудь таску с коротким сроком минуя всю иерархию вполне себе рабочий метод. Ведь если вспомнить как все любят аджайл то там есть замечательное предварительное условие - "команда мотивированных профессионалов". Вот такие команды справятся лучше чем немотивированные или балаболы. При этом нужно держать в голове что "реорганизация" это проект крайне редкий и не надо экстраполировать его на регулярную деятельность.
Поправьте аннотации, у вас невалидный код. Должно быть типа:
У меня вопрос финансового характера, статья называется "Как я зарабатывал $10,000 в месяц...", это я так понимаю "в прыжке" и на двоих? А можно увидеть совокупные оборот/доход с ноября 2020 по время закрытия? Хотя бы порядок :)
Самая жопа что выгоду от кроилова получают люди, которые успевают спрыгнуть с поезда попадалова. И через это схема воспроизводит себя постоянно без угроз и издержек "кроителям".
Мне вот интересно, статья написана по делу, на стыке IT технологий и бизнеса. При этом даунвоутов накидали и статье и автору без единого комментария. Я понимаю страх, я понимаю неприятие "буржуев", которые "эксплуатируют" подневольный трудовой класс. Копирайтинг (наряду с Поддержкой) является отраслью на острие конфликта AI-NI и смотреть за ним надо в оба глаза. Среди нас только зубные доктора "в домике".
Сергей Алексашенко хорошо эту тему разобрал
На злобу дня. Цифровой рубль это не денежная реформа, это хуже @evgeny.kiselev - YouTube
Одна из интересных и не особо афишируемых особенностей, на сбережения в виде "цифровых рублей" не начисляются проценты.
Да все как обычно с учеными и журналистами. По личному опыту качество ответа именно в ответах по программированию очень сильно зависит от постановки вопроса. От того, насколько хорошо предоставлен контекст проблемы и критерии качества.
Заметил что если вопрос сформулирован с "предубеждением" (типа я хочу решить проблему X и хочу для этого использовать инструмент Y) то чат переубеждать не будет если уж не совсем какая-то дичь. Постарается дать ответ исходя из пожеланий оператора. Если же сформулировать вопрос более общим способо (я хочу решить проблему X, посоветуй какие вообще варианты обычно применяются), то качество ответов резко улучшается. У меня порой складывается впечатление что он работает по принципу "спрашивай меня или что делать или как делать, но не оба сразу".
Сколько лет работал с индийцами, столько удивлялся насколько они не умеют работать со сложностью. Поначалу у меня даже складывалось впечатление что их прям предмет такой есть "как сделать простые вещи максимально сложным и кривым способом". Как итог, если их оставить одних, они очень быстро доводят любую систему до состояния когда никто не понимает как это работает и дальше херачат брутфорс подбором кода.
Вы серьезно считаете что статья из мема и видосика на хабре это прям попасть в целевую аудиторию?
За 15 лет привыкаешь что мир программирования это не розовые пони, и часто тратить две недели на рефакторинг куска говна чтоб реализовать хотелку бизнеса слишком долго/дорого. И с чего бы это код вызывал какие-то чувства. Это просто работа.
Ладно если пишешь на одном языке, а если их три и это только повседневные. Типа java, kotlin, typescript. И мучительно вспоминаешь уже завезли в java elvis или все еще страдаем.
Я программирую уже лет 15, примерно с марта оплатил подписку на ChatGPT 4.0. Это просто охрененный инструмент который до сих пор многие недооценивают. Я использую его каждый день на работе и до сих пор нахожу ему все новые и новые применения. Вот лишь небольшой список того, что он умеет делать на уровне "production ready"
генерация тестов
генерация кода согласно вводных
анализ и пояснение написанного кода
анализ фрагментов архитектуры
обсуждение вариантов реализации с аргументацией за и против
составление UML диаграмм
Единственный момент который нужно держать в голове, что он не сделает за вас всю работу. Он в душе не знает про ваши критерии качества. Но если вы можете пояснить почему сгенерированный код вас не устраивает и как вы хотите - он перепишет за считанные секунды. Если вы научитесь использовать этот инструмент, чат подымает вас на следующую ступеньку. По качеству взаимодействия ChatGPT уже превосходит среднестатического мидла.
ВАЖНО! Чат 3.5 это полнейший шлак, с ним невозможно работать.
Пример
Запрос
можешь пояснить что делает функция
Ответ
Эта функция, `enrichObject`, принимает на вход четыре параметра:
1. `object`: объект для обогащения,
2. `propertyName`: свойство объекта, которое будет обновлено,
3. `formula`: строка, которую мы хотим вычислить и установить в качестве значения свойства объекта,
4. `defaultValue`: необязательное значение по умолчанию, которое будет использоваться, если формула выдаст бесконечное значение.
Функция работает следующим образом:
- Она проверяет, если `formula` является пустой строкой, и если это так, то функция ничего не делает и просто возвращает управление.
- Затем она начинает процесс подстановки значений переменных, найденных в `formula`, используя значения этих переменных из `object`.
- В процессе подстановки, если функция обнаруживает, что какое-то значение равно `null`, то она устанавливает свойство объекта, определенное `propertyName`, в `undefined` и возвращает управление.
- После того как все подстановки выполнены, функция пытается вычислить получившееся выражение. Если вычисление происходит успешно, она устанавливает свойство объекта `propertyName` в вычисленное значение. Если результат вычисления является бесконечностью, то она устанавливает `propertyName` в `defaultValue`. Если при вычислении происходит ошибка, она выводит предупреждение в консоль.
Таким образом, эта функция используется для динамического вычисления выражения, указанного в `formula`, и обновления свойства `propertyName` объекта на основе этого вычисления. Все переменные в `formula` должны существовать в `object`.
Запрос
я хочу изменить эту функцию таким образом, чтобы источник свойств и объект для обогащения были двумя разными параметрами
Ответ
Для изменения функции enrichObject таким образом, чтобы источник свойств и объект для обогащения были двумя разными параметрами, вы можете просто добавить еще один параметр функции. Давайте назовем его sourceObject.
Функция тогда будет выглядеть так:
Теперь функция enrichObject принимает два разных объекта: object (объект для обогащения) и sourceObject (источник свойств). Значения переменных для подстановки берутся из sourceObject, а обновленное свойство записывается в object.
Вы можете принести свой код и спокойно пообсуждать его. Какая разница за что "цепляться". По своему опыту такие собеседования очень комфортные как для соискателя так и для собеседующего и дают не меньше информации. Традиционно это выглядит так: "наш джун написал вот такой код, что вы думаете на этот счет".
Удачи вам найти желающих такое задание сделать.
Отлично сказано про "Сеньор мышление", только к сожалению я видел очень мало разработчиков, позиционирующих себя как сеньоры и думающие так. Куда чаще "надо больше оверинжениринга и модных технологий".
Как правило существует много больше одного варианта партнерства, приемлемого для сторон. И уж точно юрист одной стороны не является царем и богом чтобы за "всех" решать.
Ровно это в статье и написано. Хотят бороться давно но боятся оттока клиентов. Похоже сейчас математика прогнозов складывается им в плюс ну или кому-то из топов надо закрыть KPI
Запрет одновременного воспроизведения с разных устройств например. Digital fingerprint. Ограничение числа переключений между устройствами к примеру 20 раз в сутки.
Тут же нет цели поймать всех, просто сделать современное использование настолько неудобным чтобы платили за отдельный аккаунт.
Есть небольшое отличие метров от метров кубических, 1 млн литров = 1000 м3, если 25 метров высота то диаметр чуть больше 7 метров как раз дает озвученный объем
Позже он говорил, что он использовал 103 статьи из советских газет и технических журналов, 4 отчета различных делегаций, 11 отчетов вернувшихся из СССР военнопленных и около 25 фотографий местности. Эти цифры могут быть заниженными, в том смысле, что он, возможно, запрашивал только самые важные сведения, но это показывает, какое огромное количество деталей ему нужно было собрать воедино для достижения цели.
Вы рассматриваете задачу с точки зрения выполнения проекта. Здесь сам "проект" - реорганизация. Сортировка сотрудников с кем можно работать а кого на улицу. Вариант скинуть команде/командам напрямую какую-нибудь таску с коротким сроком минуя всю иерархию вполне себе рабочий метод. Ведь если вспомнить как все любят аджайл то там есть замечательное предварительное условие - "команда мотивированных профессионалов". Вот такие команды справятся лучше чем немотивированные или балаболы. При этом нужно держать в голове что "реорганизация" это проект крайне редкий и не надо экстраполировать его на регулярную деятельность.