Обновить
63
1.3

Programmer

Отправить сообщение

Отличный пример того, как инструмент применяется не совсем по назначению (ровно то же самое с математикой).

С одной стороны это гениально - GPT обучена на огромном количестве кода, и она может эвристически предположить смысл того или иного фрагмента кода, и соответственно восстановить осмысленные имена идентификаторов, комментарии и т.п.

С другой стороны, самим переименованием должна заниматься не нейросеть, а строгая символьная система (в данном случае парсер). Потому что GPT by design имеет право на ошибку, а парсер - не имеет. А малейшая ошибка способна исказить работу всего кода.

Знаете, что мне это напоминает: в средние века были алхимики, и они тоже думали что есть связи между некоторыми малоизученными на тот момент сущностями. Типа такого: Тихо Браге выражал уверенность в «связях между небесными телами, земными веществами и органами тела». Отголоски тех времен остались до сих пор во всякой астрологии и эзотерике:) С квантовой физикой и сознанием ИМХО творится та же фигня: две сложные для понимания сущности, и человеческая нейросеть сразу выдает - ну наверняка же они связаны! Видимо это какое-то общее когнитивное искажение.

Помогло отключение галки "системное оформление окна".

Так смысл именно в том чтобы системное оформление было, без него то всё нормально работает. Мне категорически неудобен этот современный стиль окон без заголовка, когда на перетаскивание окна отведена пара пикселей, в которые еще нужно умудриться попасть, а остальное занято табами. Я еще понимаю если бы место экономили в конце 90-х, когда были маленькие разрешения... но сейчас, с огромными мониторами, зачем???

Сейчас поставил версию 6.9 на совершенно чистую виртуалку с Lubuntu 24.04 LTS, установил галку use Native Window, перезапустил браузер - та же проблема. Причем и само окно настроек также ей подвержено. Похоже, заголовок окна как-то пытается реагировать на первое нажатие, но дальше отваливается окончательно. Также пробовал ставить и снимать Show Title Bar - ни на что не влияет. Возможно это сочетание Vivaldi + LXQT дает такой эффект.

Добрый день! А вы вот с этой проблемой что нибудь сделали? Хотя-бы напишите смогли вы ее воспроизвести или нет, а то ведь совсем непонятно чего ожидать.

Потому что ключевое слово func стоит в начале всей конструкции. Значит, все что дальше - функция. Также как struct - структура, enum - перечисление, и т.д. Первое слово всегда определяет языковую конструкцию.

И кстати, еще одно преимущество синтаксиса Go - в том, что в нем лямбда-функции объявляются в точности также как и "обычные". Т.е. вообще никакой разницы, только имя не указывается. В остальных же языках - зоопарк кто во что горазд. Какие-то вертикальные палки и прочий ужас.

[](int x, int y) { return x+y; };           // C++
^int (int x, int y) { return a + b; };      // ObjC
(x, y) => x + y                             // C#
(int x, int y) -> x + y                     // Java
delegate int(int x, int y) {return x+y;}    // D
let add = |a, b| a + b;                     // Rust
{ (a: Int, b: Int) -> Int in return a + b } // Swift
(a: Int, b: Int) => a + b                   // Scala
_ + _                                       // и это тоже Scala
{ x: Int, y: Int -> x + y }                 // Kotlin
lambda x, y: x + y                          // Python
lambda { |x, y| x + y }                     // Ruby
(x, y: int) => x + y                        // Nim
|x: i32, y: i32| i32 { return x + y; };     // Zig

И вообще в ASCII операторных символов мало (а в языках программирования используется именно ASCII потому что эти символы гарантированно есть на всех клавиатурах мира). Т.е. операторы лучше по возможности оставить для инфиксных выражений, унаследованных от математики.

Ключевое слово fn это рак мозга и паскальная живопись.

Нет, ключевое слово fn (а также fun, func, function) это необходимость для упрощения компилятора, чтобы не было всяких Most Vexing Parse (а короткие ключевые слова действиительно удобнее для написания). А вот что действительно рак мозга и паскальная живопись - так это мусорные стрелочки и двоеточия при объявлении функций и переменных, которые выполняют чисто декоративную роль и визуально засоряют код.

function Add(x, y: Integer): Integer;       // Pascal
fn add(x: i32, y: i32) -> i32               // Rust
fn Add(a: i64, b: i64) -> i64               // Carbon
func greet(name: String) -> String          // Swift
def greet(name: String, age: Int): String = // Scala
fun greet(name: String, age: Int): String   // Kotlin
fn add(x: i32, y: i32) i32                  // Zig

В языке Go нет никаких стрелочек и двоеточий, и никаких проблем их отсутствие не создает.

func sum(x, y int) int                      // Go

Сбоку на плате есть 4 контактных отверстия. Вполне может быть или UART или SWD, но без осциллографа не посмотреть:)

Скрытый текст

Обратная совместимость. Код C++ можно включать в файлы Carbon. 

Вот это очень важно. Чтобы прямо в рамках одного проекта работало - старое можно до поры до времени (или навсегда) оставить на С++, новое писать на новом языке. И чтобы все среды разработки из коробки поддерживали такие гибридные проекты.

Собственно, и в рамках самого С++ можно было бы так сделать - развитие текущего С++ заморозить навсегда, выпустить некую очередную версию языка без всех костылей и легаси, несовместимую со старым кодом, назвать это С++2, старый код от нового отличать за счет другого расширения файла или #pragma version 2 в начале файла. Но чтобы можно было легко собирать гибридные проекты. Тогда у разработчиков будет стимул постепенно переходить на новый язык, новые проекты сразу на новом, в старых - добавлять новые файлы на новом языке и переписывать старый код лишь по мере необходимости (или вообще не переписывать, если таковой необходимости нет).

У меня сломался (протек) чайник, и перед тем как его выбросить я вытащил из него плату с BLE адаптером NRF51822, также на ней двухразрядный семисегментный индикатор, 4 кнопки, зуммер, датчик температуры на проводе и выход для управления реле. Питается от 5 вольт, в общем могла бы быть неплохая игрушка для того чтобы вывести бегущую надпись "HELLO HAbr", но вот как ее программировать?

А исходники этой оболочки доступны?

Сначала должна образоваться потребность, затем потребность осознаётся и под неё подбирается инструмент (например, "я хочу раскукожить скукоженный YouTube средствами роутера, для этого гораздо удобнее прошивка OpenWrt, чем стоковая")

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

И сколько вы реально знали, а сколько просто подобрали? :) У меня кстати 36 guesses

Прежде всего, был бы интересен обзор того, что это вообще такое и в чем преимущества перед штатными пришивками. Не на уровне "что-то для обхода блокировок" а подробнее. И ответ "раз вы еще не знаете, значит вам это и не нужно" не принимается:)

Что такое "версия" в данном контексте. Вот я ввел модель своего роутера к ним в поиск, он мне выдает две строчки: версии A1 и B1. Что это вообще? При выборе прошивки для скачивания также предлагается несколько версий прошивки.

Можно ли вернуть старую прошивку, если новая не заработала или по какой-то причине не устроила?

Что такое "фопда". По контексту понятно что наверное какой-то форум, но все-же.

Было бы интересно почитать здесь на Хабре статью про OpenWRT для новичков. Как выбирать прошивку, как прошивать, на что обращать внимание...

Мы допускаем что человек при счете в уме иногда может ошибаться, но от калькулятора мы ожидаем точных результатов. Также и здесь.

И потом, нам же в конечном итоге не олимпиадные задачи решать. Мы ожидаем, что ИИ поможет нам познать Тайны Вселенной, на основании которых можно будет к примеру разработать технику на новых физических принципах, и тому подобное. Цена ошибки может быть слишком высока.

Генеративный ИИ не способен на точные решения. Это лишь вероятностный предсказатель, и поэтому, если его научить на огромном количестве теорем и задач, он будет выдавать некие решения, которые иногда, возможно даже почти всегда, будут правильными - но абсолютной гарантии не будет никогда.

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

А вот симбиоз этих технологий вполне может обеспечить прорыв. В силу элегантности и простоты фундаментальных законов самой математики, в ней наверняка имеется множество скрытых аналогий и закономерностей, еще не оформленных как теории и теоремы. Человеческому мозгу сложно выявить их, но это под силу мощной машинной нейросети, обученной на огромном объеме математических знаний. Точные символьные вычисления позволят проверять гипотезы, сгерерированные нейросетью, и выдавать абсолютно точные результаты. Нейросеть в свою очередь может управлять вычислителем, предлагая шаги преобразовнаний, с наибольшей вероятностью ведущие к результату, тем самым мы избегаем брутфорса. Символьный вычислитель можно также использовать для обучения нейросети (по аналогии с АльфаГо, которая играла сама с собой несколько часов и превзошла гроссмейстеров - здесь символьный вычислитель будет аналогом "правил игры"). Еще можно вспомнить проект по оцифровке математики - думаю это как раз здесь пригодится.

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

XML слегка громоздок, но это вопрос его применения. Зачем все эти схемы, когда можно просто пользоваться тегами и атрибутами? И он максимально человекочитаем. Каждый тег имеет имя, и глядя на некоторую строчку в середине файла, сразу понятно что это за данные. А вообще корпорации любят наворачивать в свои файлы лишнего, но они и с любым другим форматом будут также наворачивать.

JSON имеет некоторые недостатки, но есть же JSON5. Все что нужно Сообществу - принять таки наконец этот формат в качестве основного.

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

Информация

В рейтинге
1 662-й
Зарегистрирован
Активность