В чем именно ложность? Вы не используете ОС или сеть?
Наука и техника развиваются много лет и многими людьми. Невозможно знать все в подробностях.
Профессионал должен знать не только свой код, но и примерное устройство соседей по стеку
Вся разница в понимании слова "примерное". Например, в моем понимании "волшебные деревья и индексы" — это и есть примерное устройство (даже с учетом того, что на собеседовании код для nested loops я бы пожалуй написал). Потому что у меня есть конкретное выражение "LEFT JOIN" в синтаксисе, и влиять на его работу я не могу. Когда я пишу запрос с джойнами, я мыслю немного другими категориями, чем вложенные циклы и выражения вида "Triple<K, V1, V2>" — например, множество, тип связи, направление (с какой стороны "1", с какой "много").
А для того, чтобы вскипятить чайник, надо в подробностях знать термодинамику. А для того, чтобы пользоваться компьютером, надо знать электротехнику и электронику. Сколько программистов может вспомнить без гугла законы Кирхгофа?
А для того, чтобы программировать, надо знать как работает защищенный режим и виртуальная память. А заодно загрузка с жесткого диска с чтением нулевого сектора и планировщик задач. А уж структуру IP-пакета точно должен знать каждый. А также уметь рассказать обо всем этом на собеседовании, и реализовать программно без IDE в Google Docs.
А вас не смущает, что несколько возвращаемых значений сами по себе создают такой массив?) Кстати, не подскажете аналогичную ссылку для Go, как это происходит на низком уровне и сколько памяти занимает?
Автор хотел показать, что это именно отличие Go от PHP. И в этом он ошибся. Если бы он хотел просто показать множественное присваивание в Go, то про PHP там бы ничего написано не было, так же как в разделах про переменные, циклы и структуры.
В PHP тоже можно делать так, как вы написали в обоих примерах. По факту отличие только в том, что в Go определена операция "запятая", которая создает… Хм, что же она создает, уж не список ли разнотипных значений, который в PHP называется массивом?
И что подставить на второй половине значение все-таки имеет. В Go нельзя слева написать 2 переменных, справа 3, в PHP можно.
Да я в общем-то не об этом, а о том, что у человека неправильное представление об армии. Офицеры и солдаты — это 2 разных лагеря, первые ездят на работу с 9 до 6, вторые живут год в казарме. И командиры — это в большинстве своем то же быдло, которое проявляет дедовщину по отношению к молодым, просто получившее официальную власть. Нормальных людей там мало, они в армии обычно не задерживаются.
PS: Вполне допускаю, что у меня просто "нерепрезентативная выборка", но после службы у меня осталось именно такое впечатление
Да так-то такой подход много где используется. Я использую фреймворк Yii, там есть нечто похожее. Генерация простая, вида "'w' .+ $counter++" ('w' от слова widget). А в web forms это как делается?
Казалось бы, для делопроизводства нормально. Но комп лагал невыносимо.
Встречал в армии 100-мегабайтный вордовский файл. Картинки фотографировались на цифровой фотик (N мегапикселей), вставлялись в Word, и ресайзились до размера превьюшки 100x60 или типа того. Ворд сохраняет исходник. При сохранении такого файла комп тоже лагал невыносимо. Сделал нормальную обрезку, файл уменьшился до 6 Мб.
Еще встречал схемы обстрела, нарисовнные в экселе. Там была какая-то привязка к координатам ячейки, видимо поэтому и выбрали Excel.
Иногда вместо ужина Володя оставался, чтобы апгрейдить свой компьютер.
А я иногда вместо пары часов сна оставался что-нибудь печатать. Из-за этого перед дембелем решил пошутить — добавил в автозагрузку скрипт на VBA, который через 4 дня после нашего дембеля начинает выводить MessageBox с текстом "Разрешите доложить, заебался я служить".
Есть библиотека pclzip. Можно написать 2 скрипта для запаковки и распаковки папки с проектом, которые запускаются из браузера, и качать через ftp один архив.
редактировать собственный алгоритм… именно эта возможность является необходимой и достаточной для существования… искусственного интеллекта.
Обучающиеся системы не меняют свой алгоритм, они меняют реакцию на входные данные. Алгоритм обучения и функционирования всегда один и тот же.
В самоизменяющихся программах нет ничего нового. Любой полиморфный вирус меняет свой машинный код в процессе работы. Также генерацию кода можно сделать в любом языке, в котором есть функция eval().
Программа, генерирующая рандомные арифметические операции, не является примером самообучаемой. Потому что нет цели обучения и метода определения, обучилась или нет.
Папку web можно переименовать. Ее название нигде не используется, путь к webroot определяется по местоположению index.php.
Можно напрямую переместить файлы из папки "backend/web" в папку "frontend/web/admin" и скорректировать пути в "frontend/web/admin/index.php".
Можно разнести движок и webroot по разным папкам. Например, index.php в папке "mysite/public_html/", а движок в папке "mysite-engine/". Тоже нужно только скорректировать пути в индексных файлах.
Можно даже таким образом запустить несколько сайтов на одном хостинге. Например, web-папки в "mysite/public_html/demo/[sitename]", а движки в "mysite-engine/[sitename]". Только при этом лучше хранение сессий сделать в БД, потому что иначе логин будет работать на всех сайтах сразу (и на самом mysite тоже, если он на Yii). При хранении в БД логин на одном сайте будет "выбивать" логин на другом.
Один раз столкнулся с тем, что апач ругается на отсутствие файла index.php, если создана символьная ссылка на web. Особо не разбирался почему, исправилось добавлением слеша в .htaccess: "RewriteRule . /index.php".
Еще столкнулся с тем, что консольные версии php запускаются как CGI. В нем отсутствуют константы STDIN, STDOUT, STDERR, и скрипт init не работает. Исправляется добавлением в init кода для открытия потоков:
Я не имел в виду, что надо имитировать биологические особенности с точностью до атомов. Я говорил про принципы, которые реализуются этими особенностями — как раз те правила, по которым функционируют связи. Но рассматривать их надо с позиций отдельных клеток, потому что обработка сигналов в процессе эволюции развивалась именно так, от простого к сложному.
Если представить, что видит перед собой отдельная клетка, то идея глубокого обучения появляется сама собой. Клетка видит только предыдущий слой, значит обучение и распознавание идет по слоям, по данным из предыдущего слоя. Клетка не может соединяться со всеми нейронами сразу, значит входная область ограничена. Во входной области могут встречаться похожие паттерны, получается карта признаков. Постоянно выделять все более сложные признаки не получится, значит после какого-то уровня обработки алгоритм анализа входных данных должен принципиально поменяться.
Когда мы начали в университете изучать нейронные сети, меня заинтересовал один вопрос. Биологические нейроны — они же не знают математики. Они не умеют вычислять производные сложных нелинейных функций, умножать матрицы, а обучение с учителем это сам по себе биологически неправдоподобный метод. Значит принцип работы у них немного другой. Почему в таком случае уделяется большое внимание большим сложным алгоритмам? Да, они дают какие-то результаты, но дальше распознавания пятен на шкуре леопарда почти ничего не продвинулось.
Мне кажется, лучше было бы изучать возможные принципы функционирования отдельных клеток и их взаимодействия. А то получается, что у нас «сеть сама распознаёт», а как именно это происходит, никто не знает.
У меня то же самое — сложно сделать задачу, которую раньше не решал или с которой не сталкиваешься постоянно, если разговариваешь с кем-то или просто кто-то смотрит и ждет. Я не сталкиваюсь, например, с алгоритмическими задачами, но при этом многие из них могу решить, если подумать над ними некоторое время в спокойной обстановке и представить все в деталях.
Я думал над этим, почему так происходит. Возможно, это из-за того, что работают разные отделы мозга. У кого-то общение забирает фокус внимания (как на этой картинке), и серьезно думать не получается, у кого-то получается совмещать и переключаться, кто-то такие задачи часто решает, и ему не надо задумываться, кто-то может вообще мыслит по-другому и у него это взаимосвязано.
То есть, это не боязнь завалить собеседование, или боязнь собеседника, а нестандартная для мозга ситуация, которая требует внимания и ресурсов, которые забирает на себя общение с собеседником. Примерно как в квантовой физике — наблюдение влияет на результат наблюдения.
Наука и техника развиваются много лет и многими людьми. Невозможно знать все в подробностях.
Вся разница в понимании слова "примерное". Например, в моем понимании "волшебные деревья и индексы" — это и есть примерное устройство (даже с учетом того, что на собеседовании код для nested loops я бы пожалуй написал). Потому что у меня есть конкретное выражение "LEFT JOIN" в синтаксисе, и влиять на его работу я не могу. Когда я пишу запрос с джойнами, я мыслю немного другими категориями, чем вложенные циклы и выражения вида "Triple<K, V1, V2>" — например, множество, тип связи, направление (с какой стороны "1", с какой "много").
А для того, чтобы программировать, надо знать как работает защищенный режим и виртуальная память. А заодно загрузка с жесткого диска с чтением нулевого сектора и планировщик задач. А уж структуру IP-пакета точно должен знать каждый. А также уметь рассказать обо всем этом на собеседовании, и реализовать программно без IDE в Google Docs.
В PHP тоже можно делать так, как вы написали в обоих примерах. По факту отличие только в том, что в Go определена операция "запятая", которая создает… Хм, что же она создает, уж не список ли разнотипных значений, который в PHP называется массивом?
И что подставить на второй половине значение все-таки имеет. В Go нельзя слева написать 2 переменных, справа 3, в PHP можно.
PS: Вполне допускаю, что у меня просто "нерепрезентативная выборка", но после службы у меня осталось именно такое впечатление
Простите, а кому это решать?
Встречал в армии 100-мегабайтный вордовский файл. Картинки фотографировались на цифровой фотик (N мегапикселей), вставлялись в Word, и ресайзились до размера превьюшки 100x60 или типа того. Ворд сохраняет исходник. При сохранении такого файла комп тоже лагал невыносимо. Сделал нормальную обрезку, файл уменьшился до 6 Мб.
Еще встречал схемы обстрела, нарисовнные в экселе. Там была какая-то привязка к координатам ячейки, видимо поэтому и выбрали Excel.
А я иногда вместо пары часов сна оставался что-нибудь печатать. Из-за этого перед дембелем решил пошутить — добавил в автозагрузку скрипт на VBA, который через 4 дня после нашего дембеля начинает выводить MessageBox с текстом "Разрешите доложить, заебался я служить".
Напрашивается картинка про 14 конкурирующих стандартов
Обучающиеся системы не меняют свой алгоритм, они меняют реакцию на входные данные. Алгоритм обучения и функционирования всегда один и тот же.
В самоизменяющихся программах нет ничего нового. Любой полиморфный вирус меняет свой машинный код в процессе работы. Также генерацию кода можно сделать в любом языке, в котором есть функция eval().
Программа, генерирующая рандомные арифметические операции, не является примером самообучаемой. Потому что нет цели обучения и метода определения, обучилась или нет.
Папку web можно переименовать. Ее название нигде не используется, путь к webroot определяется по местоположению index.php.
Можно напрямую переместить файлы из папки "backend/web" в папку "frontend/web/admin" и скорректировать пути в "frontend/web/admin/index.php".
Можно разнести движок и webroot по разным папкам. Например, index.php в папке "mysite/public_html/", а движок в папке "mysite-engine/". Тоже нужно только скорректировать пути в индексных файлах.
Можно даже таким образом запустить несколько сайтов на одном хостинге. Например, web-папки в "mysite/public_html/demo/[sitename]", а движки в "mysite-engine/[sitename]". Только при этом лучше хранение сессий сделать в БД, потому что иначе логин будет работать на всех сайтах сразу (и на самом mysite тоже, если он на Yii). При хранении в БД логин на одном сайте будет "выбивать" логин на другом.
Один раз столкнулся с тем, что апач ругается на отсутствие файла index.php, если создана символьная ссылка на web. Особо не разбирался почему, исправилось добавлением слеша в .htaccess: "
RewriteRule . /index.php
".Еще столкнулся с тем, что консольные версии php запускаются как CGI. В нем отсутствуют константы STDIN, STDOUT, STDERR, и скрипт init не работает. Исправляется добавлением в init кода для открытия потоков:
Если представить, что видит перед собой отдельная клетка, то идея глубокого обучения появляется сама собой. Клетка видит только предыдущий слой, значит обучение и распознавание идет по слоям, по данным из предыдущего слоя. Клетка не может соединяться со всеми нейронами сразу, значит входная область ограничена. Во входной области могут встречаться похожие паттерны, получается карта признаков. Постоянно выделять все более сложные признаки не получится, значит после какого-то уровня обработки алгоритм анализа входных данных должен принципиально поменяться.
Мне кажется, лучше было бы изучать возможные принципы функционирования отдельных клеток и их взаимодействия. А то получается, что у нас «сеть сама распознаёт», а как именно это происходит, никто не знает.
Я думал над этим, почему так происходит. Возможно, это из-за того, что работают разные отделы мозга. У кого-то общение забирает фокус внимания (как на этой картинке), и серьезно думать не получается, у кого-то получается совмещать и переключаться, кто-то такие задачи часто решает, и ему не надо задумываться, кто-то может вообще мыслит по-другому и у него это взаимосвязано.
То есть, это не боязнь завалить собеседование, или боязнь собеседника, а нестандартная для мозга ситуация, которая требует внимания и ресурсов, которые забирает на себя общение с собеседником. Примерно как в квантовой физике — наблюдение влияет на результат наблюдения.