К сожалению, сейчас под рукой нету фотоаппарата. Попробовал снять соткой — качество совсем паршивое получается. Когда будет чем снять — обязательно выложу :)
В сборе или по частям? =) У друга ноут на базе 75го пня, даже работает :) Он работал местным промоутером в Intel, рассказывал про эту штуку, так ему не поверили :) Говорят, не было таких процов %)
Совместная сборка наших и еще кого-то. На базе 286го проца. Это был один из первых подобных компьютеров в Алма-ате :) А год тогда был какой то 9х. После динозавров ЕС1840/41 он казался машиной с другой планеты =) Надо сказать, черный корпус и нестандартный дизайн намного опередили свое время. Проработал лет 8, а потом в нем сгорела какая-то микросхема на мамке. И винт на нем был аж 40Мб %) А цветная графика казалась чем-то заоблачным. Помню, как часами гоняли в Dune2 %)
Эх, найти бы такой сейчас… Но зато, до сих пор валяется клава от него =)
Потому что определение класса закрыто и переопределению не подлежит. Иногда хочется добавить поля данных «на лету» (в CL это, кстати, тоже возможно), но гораздо чаще — те или иные методы.
В своем языке я применил (или придумал?) механизм расширений, который позволяет добавлять (и переопределять) методы внешних классов, без наследования. Несмотря на нападки ортодоксов, могу отметить, что использование расширений (по крайней мере в нашем проекте) очень удобно и здорово облегчает жизнь.
В качестве банального примера:
extend int {
public const function times(block b) {
for (var n = 0; n < this; n++)
b(n);
}
}
export function main() {
3.times() { |i| puts(i as string); };
}
Если кто не понял: в рамках текущего модуля мы расширяем класс класс int, объявленный в стандартной библиотеке, методом times() который выполняет некоторый код N раз. Далее этот метод вызывается у экземпляра класса, в данном случае числовой константы 3.
P. S.: Наиболее эффективен этот подход при работе со сторонними модулями.
Как правило, существует некоторый интерфейс модуля, методы которого оперируют с объектами — инстанциями классов объявляемых в рамках этого стороннего модуля. Соответственно, изменять их напрямую мы не имеем возможности. Иногда бывает потребность дополнить такие классы своими методами для удобства обработки или взаимодействия. Проблема заключается в том, что в традиционных языках (С++), для этого потребовалось бы писать классы обертки, реализующие нужные методы и далее оборачивать весь интерфейс так, чтобы он работал с обертками. Естественно, это не относится к полностью динамическим языкам, где это можно сделать.
В случае К++, достаточно расширить класс своими методами и можно тут же применять их, что называется, на практике :)
Какой, нафиг, dolby на 2х динамиках? Тем более на лаптопной звуковухе и хреновых наушниках Такого качества звука и эффекта присутствия мне не дала ни одна система из тех что я имел возможность оценить.
Я бы еще отметил различия в строении ушей. Смысл в том, что звук от источника приходит в уши немного по разному, с некоторым запаздыванием одного относительно другого. Это учитывается мозгом и на основании этой информации, мы определяем положение источника «вверху-внизу» и вроде как еще «спереди-сзади». А «лево-право» определяется обычным образом, засчет стерео.
Видимо эти товарищи эмулируют запаздывание чтобы создать соответствующий эффект.
Мне кажется, что Кнут это лучшее что можно предложить в таком варианте. Он потому и ценится, что практически «на пальцах» объясняет азы. Кнут не учит программировать, он учит думать как программист. А программировать человек учится сам. Как-то так :)
Вы не смотрите на объемы книг :) Во-первых, никто не заставляет читать книгу «от корки до корки» (кстати, это распространенное заблуждение; как правило, книги по IT пишутся так, что их можно читать с любого места и сколько надо). Во-вторых, чем больше информации, тем больше вероятность что там найдется что-то понятное для вас :)
Электромагнитное излучение — это тоже форма материи. Радиоволны так же как и свет, инфракрасное, ультрафиолетовое, гамма излучение и все части спектра — электромагнитные волны.
Корпускулярную природу света подтверждают опыты Лебедева (другого), которые экспериментально доказывают явление светового давления.
Вы неправильно понимаете суть этого утверждения. Он имел в виду невозможность движения материального тела (фотона) со скоростью выше скорости света. В данном случае, материя не переносится.
Да, наверное вы правы. Вот то что меня точно доставало, так это вопрос полезности… Лично для меня сложнее всего был именно психологический аспект обучения (а не собственно материал).
Ну вы как дети малые :) Как будто кто то серьезно говорит о промышленном использовании. Это уже занудство имхо. В то время как автор привел всего лишь очередной пример нестандартного применения инструментов.
Не сравнивайте. Разные ВУЗ-ы — разные программы. В СПбГУ тоже было фактически свободное посещение (хотя и не рекомендовалось), однако объем даваемого материала такой, что пропуск даже нескольких занятий чреват полным неврубанием в суть. Пара примеров:
1) Лекция по матану. Заходит препод, начинается пара. Препод идет к доске и начинает писать. Непрерывно. До конца пары. За это время дается около десятка теорем (с доказательствами). Даже если не отвлекаться, то все равно практически не реально следить за мыслью.
2) Коллоквиум по АТЧ (алгебра и теория чисел). Одна единственная тема: определители и матрицы. Для сдачи необходимо взять одноименную книжку Зенона Иваныча Боревича и выучить ее. Наизусть %) 100 с лишним страниц формул.
Проблема в том, что тамошнее образование предполагает изучение материала с нуля: от постулатов и до самого высокго уровня (естественно с доказательствами).
Приведя аналогию с IT: студент должен сам спаять свой комп, потом написать операционку, весь необходимый софт и только тогда заниматься конкретными задачами :) Притом, знать досконально его устройство, все происходящие процессы и при первом вопросе на память привести нужный кусок кода. В основном, там готовят математиков, которые (при случае) могут работать программистами, а не наоборот.
P. S: Чуть выше я писал про АИЭС — местный институт в который я пошел учиться после того как. Вот там да, та самая картина что вы описали. В результате: в зачетке только 2 удовл, да и то, по семейным обстоятельствам и в силу дубовости преподов. Остальные — хор и отл. К экзаменам не готовился в принципе (ну может пару часиков накануне полистать); посещение лекций — эпизодическое (пару раз в неделю). Хотя там за непосещение дрючат. Если получается. Такие дела…
Я не говорил что «твердолобость» это идеал и ни в коем случае не утверждаю, что теория никому не нужна. Перечитайте мой пост пожалуйста. Я утверждаю лишь, что конретное практическое знание лучше, чем [обширные] теоретические знания, без умения их применять.
Лучше уже такое конкретное, но твердое, и притом привязанное к практике знание, которое можно расширить при необходимости, чем горы фундаментальной математики, которую большинство забывает после экзамена. Именно потому, что не видят целесообразности знаний. Не видят как их можно применить. И соответственно, не умеют применять.
Теория должна идти бок о бок с практикой. Иначе это будет просто информационный мусор.
Совместная сборка наших и еще кого-то. На базе 286го проца. Это был один из первых подобных компьютеров в Алма-ате :) А год тогда был какой то 9х. После динозавров ЕС1840/41 он казался машиной с другой планеты =) Надо сказать, черный корпус и нестандартный дизайн намного опередили свое время. Проработал лет 8, а потом в нем сгорела какая-то микросхема на мамке. И винт на нем был аж 40Мб %) А цветная графика казалась чем-то заоблачным. Помню, как часами гоняли в Dune2 %)
Эх, найти бы такой сейчас… Но зато, до сих пор валяется клава от него =)
В своем языке я применил (или придумал?) механизм расширений, который позволяет добавлять (и переопределять) методы внешних классов, без наследования. Несмотря на нападки ортодоксов, могу отметить, что использование расширений (по крайней мере в нашем проекте) очень удобно и здорово облегчает жизнь.
В качестве банального примера:
Если кто не понял: в рамках текущего модуля мы расширяем класс класс int, объявленный в стандартной библиотеке, методом times() который выполняет некоторый код N раз. Далее этот метод вызывается у экземпляра класса, в данном случае числовой константы 3.
P. S.: Наиболее эффективен этот подход при работе со сторонними модулями.
Как правило, существует некоторый интерфейс модуля, методы которого оперируют с объектами — инстанциями классов объявляемых в рамках этого стороннего модуля. Соответственно, изменять их напрямую мы не имеем возможности. Иногда бывает потребность дополнить такие классы своими методами для удобства обработки или взаимодействия. Проблема заключается в том, что в традиционных языках (С++), для этого потребовалось бы писать классы обертки, реализующие нужные методы и далее оборачивать весь интерфейс так, чтобы он работал с обертками. Естественно, это не относится к полностью динамическим языкам, где это можно сделать.
В случае К++, достаточно расширить класс своими методами и можно тут же применять их, что называется, на практике :)
P. P. S.: Интересно мнение товарища khim :)
Видимо эти товарищи эмулируют запаздывание чтобы создать соответствующий эффект.
Вы не смотрите на объемы книг :) Во-первых, никто не заставляет читать книгу «от корки до корки» (кстати, это распространенное заблуждение; как правило, книги по IT пишутся так, что их можно читать с любого места и сколько надо). Во-вторых, чем больше информации, тем больше вероятность что там найдется что-то понятное для вас :)
Вот она, природа человека. Достаточно послушать «сокрушительные материалы» и все, можно считать себя разбирающимся в области.
Корпускулярную природу света подтверждают опыты Лебедева (другого), которые экспериментально доказывают явление светового давления.
1) Лекция по матану. Заходит препод, начинается пара. Препод идет к доске и начинает писать. Непрерывно. До конца пары. За это время дается около десятка теорем (с доказательствами). Даже если не отвлекаться, то все равно практически не реально следить за мыслью.
2) Коллоквиум по АТЧ (алгебра и теория чисел). Одна единственная тема: определители и матрицы. Для сдачи необходимо взять одноименную книжку Зенона Иваныча Боревича и выучить ее. Наизусть %) 100 с лишним страниц формул.
Проблема в том, что тамошнее образование предполагает изучение материала с нуля: от постулатов и до самого высокго уровня (естественно с доказательствами).
Приведя аналогию с IT: студент должен сам спаять свой комп, потом написать операционку, весь необходимый софт и только тогда заниматься конкретными задачами :) Притом, знать досконально его устройство, все происходящие процессы и при первом вопросе на память привести нужный кусок кода. В основном, там готовят математиков, которые (при случае) могут работать программистами, а не наоборот.
P. S: Чуть выше я писал про АИЭС — местный институт в который я пошел учиться после того как. Вот там да, та самая картина что вы описали. В результате: в зачетке только 2 удовл, да и то, по семейным обстоятельствам и в силу дубовости преподов. Остальные — хор и отл. К экзаменам не готовился в принципе (ну может пару часиков накануне полистать); посещение лекций — эпизодическое (пару раз в неделю). Хотя там за непосещение дрючат. Если получается. Такие дела…
Опечатка :) А так да, концепт интересный.
А про «штудентов» и так все ясно.
Теория должна идти бок о бок с практикой. Иначе это будет просто информационный мусор.