Когда я учился во втором классе (боже, как давно это было), в нашем учебнике было вполне понятное объяснение. Дословно не воспроизведу, но по смыслу примерно такое (разумеется, в оригинале оно было без буквенных обозначений, во втором классе-то): «Что значит поделить число A на число B? Это значит, найти число С, которое после умножения на B будет равно A. Если B равно нулю, то каким бы ни было число C, всё равно при умножении будет получаться ноль, а на A. Вывод — делить на ноль нельзя». В своё время меня в мои 8 лет это объяснение полностью удовлетворило.
Мой результат — 8/5. А персональный хит-парад любимых команд выглядит так:
1. tar -cf — dir1 dir2 dir3 | tar -C /dest/directory -xvf — — скопировать каталоги вместе с именами пользователей и правами доступа
2. df -h — ключ -h означает показывать результат в человеко-читаемом виде
3. `` — подстановка результата команды в командную строку. Например, grep -li CONST `find. -name *.h` найдет строки, содержащие CONST во всех файлах *.h от текущего каталога и ниже по иерархии.
4. () — группировка. Например, команду из первого примера можно переписать так: tar -cf dir1 dir2 dir3 | (cd /dest/directory; tar -xvf -)
5. Нежно люблю пакет ImageMagick, и особенно команду mogrify для работы с изображениями. Например, mogrify -resize 1920x1080 *.jpg сделает именно то, что ожидается — подгонит размер всех картинок под заданный размер, не меняя aspect ratio.
Закон о сетевой нейтральности — правильный и своевременный. Потому что без него всё шло к тому, что через некоторое время появились бы тарифные планы вида: «фейсбук и твиттер — 1 евро/мес, +гугл — 5 евро/мес, +новостные сайты — 20 евро/мес, +все сайты — 50 евро/мес, +скайп — 100 евро/мес». Вроде бы все почти хорошо (для потребителей), но если частное лицо или небольшая компания в таком интернете захотела бы что-то донести до широкой аудитории — у нее бы не получилось/не хватило денег.
Еще в последнее время операторы очень интересуются решениями по включению рекламных блоков прямо внутрь веб-страниц, передаваемых пользователям, что, на мой взгляд, вообще никуда не годится.
Да, увы, мы тоже нарвались на такое (Catalyst 6506+SUP720) года полтора назад. Заменили по смартнету.
Очень хорошо, что Cisco посчитала возможным сообщить о причинах. Среди профессионалов репутация ее от этого точно не пострадает, даже наоборот.
Спасибо, жизненно :)
По поводу четвертого положительного пункта мне когда-то мой друг (а в тот момент еще и начальник) сказал так: «При нашем безумном рабочем графике охотиться за женами времени вообще нет. Поэтому если уж «сохотил» жену — держись за нее крепче».
Хорошая статья. Я сам и многие мои знакомые прошли в свое время похожим путем. Еще пара рекомендаций:
1. GNS3 почему-то гораздо лучше работает в unix-like средах. Есть готовые образы виртуалок для всех распространенных гипервизоров.
2. Есть такой продукт — IOU (IOS on Unix). В отличие от Dynamips+GNS3 это не эмулятор железа, а IOS, собранный из исходных кодов для платформы Linux. Этот продукт был создан в глубинах компании Cisco для внутреннего использования и оттуда разошелся по Интернету. Cisco делает вид, что не знает о его существовании. Продукт интересен тем, что позволяет запустить на одной машине гораздо больше маршрутизаторов (до 20-30), а также есть в версии с эмуляцией многих возможностей коммутаторов. Для отработки заданий из секции Troubleshooting — самое то.
Отлично. Спасибо за то, что дважды напомнили молодость — во-первых, змея была первой компьютерной игрой в моей жизни (1987 год, машина Robotron 1715), и во-вторых, в 1989 году я написал на Турбо-Паскале собственный вариант, который занимал в памяти 5.5 килобайта. Я тогда тоже решил сэкономить на том, чтобы не делать массив, и хранил состояние змеи и еды прямо в видеопамяти, в той части, которая не отображалась на экран.
P. S. Скажите, а в современном программировании использование лямбда-выражений такого размера — это тренд, или таки грязный хак, чтобы уложиться в 30 строк?
Вы справедливо пишете, что сформулировать проблему с точки зрения клиента очень сложно. Меня в свое время научили полезной методике — разбить проблему на четыре шага:
Что планировалось сделать?
Какие действия для этого предпринимались?
Что клиент ожидал получить в результате своих действий?
Что получилось на самом деле?
Главное ноу-хау здесь — не забывать про шаг 3. Если совместно с клиентом пройти этот путь (хотя бы в виде вопросов и ответов), больше половины вопросов решается сразу. Можно даже форму обратной связи оформить таким образом, но этот путь не очень надежный, т. к. клиенты редко готовы проходить эти шаги аккуратно самостоятельно.
Это уже следующий уровень, близкий к тому, чтобы стать настоящим джедаем.
Я же имел в виду избежание классической ошибки совсем юных падаванов, которые пишут (я утрирую, конечно) что-то вроде «temp = x; x = y; y = temp;», не задумываясь о типах и размерах этих самых x и y. Особенно пикантно, если так пишут на каком-нибудь perl-е или фортране, где размер x, y и temp может быть произвольным.
Сходил по ссылке на ваш предыдущий опыт. Разрешите уточнить диагноз?
Вы начали с ассемблера PDP-11, он очень прост, логичен, и поэтому способен влюбить в себя. Так что заболевание ваше имеет изначально любовную природу.
Нас в свое время в институте учили программировать процессор машины ДВК-2 (система команд там тоже PDP-11) вообще в кодах, потом мы перешли к мнемоникам, а только в конце третьего курса получили в руки Си (Turbo C 2.0, уже на 386-х). И все справлялись, даже студенты, в обычной жизни далекие от компьютера (кафедра наша называлась «Кафедра автоматики», занимались мы тем, что сейчас называется встроенными системами).
С тех пор остался полезный навык — хотя бы примерно представлять, во что транслируется высокоуровневый код, и как он исполняется процессором.
Ситуация для авторов, при углубленном рассмотрении, совсем плохая — сегодня доступного, бесплатного, относительно качественного контента гораздо больше, чем в принципе возможно потребить отдельному человеку.
Поэтому у читателя всегда есть выбор, на что потратить время — почитать, к примеру, для самообразования бесплатный хабр/бесплатную википедию, или купить книгу O'Rielly и читать ее. Понятно, что для выбора второго варианта книга должна быть очень качественной.
Минутку, один раз я что-то подобное уже слышал. Даже два раза. Году в 96-м примерно в Москве было много Интернет-провайдеров, продававших карточки для подключения по dial-up. Все карточки были а) дорогие и б) лимитированные по времени. Я как-то спросил директора одного небольшого провайдера, почему вы не сделаете безлимитный доступ? А он ответил буквально следующее: «Можно было бы, но покупателей на них будет немного, а те, кто купил, будут передавать всем друзьям/знакомым/коллегам».
Лет через 6, т. е. в 2002 году, я подключил домой уже Интернет по ADSL, и в договоре был пункт о том, что абонент имеет право подключить не больше двух дополнительных компьютеров, с обязательным уведомлением провайдера, и за какую-то дополнительную плату. Я, разумеется, поинтересовался, что за фигня, и мне опять же объяснили, что это защита от «умных», которые будут покупать Интернет себе, а дальше раздавать всем соседям.
Надо ли напоминать, что теперь безлимитный Интернет в Москве есть в любой квартире, да еще и с предложениями вида «подключись сейчас и получи WiFi-роутер в подарок»?
Что изменилось? Наработалась база абонентов критического размера, такого, что удается цены держать разумными. В результате сейчас к Интернету проще (и по совокупности усилий — дешевле) подключиться и платить ежемесячно, чем извращаться для его полулегального подключения.
Ниже правильно написано, что с музыкой уже почти так. И с фильмами тоже. Производители софта подтягиваются (модель SaaS — Office 365, Photoshop в облаке и т. п.). Книги — явно следующие на очереди.
Долго не мог вкурить, за что вы его обозвали столь странным словом, но потом зашел к нему в профиль. Таких людей надо беречь, их безумства не дают миру сползти в унылое говно.
По теме: да кто бы спорил, что автор и издатель суть полезный симбиоз, я — так точно спорить не буду. И вы правильно пишете, что сейчас начинающему автору как никогда просто пробиться к читателю, благодаря iTunes, Amazon и сайтам «второго эшелона», вроде proza.ru.
Соглашусь, пожалуй. С небольшой оговоркой, что второе, а именно изготовление копий книги, претерпело несколько качественных изменений в сторону упрощения, не только сейчас, но и на протяжении последних 600 лет (Гутенберг, ксилография, ручной набор, линотип, офсет, компьютерная верстка), а первое — не только проще не стало, но еще и усложнилось, и продолжит усложняться. Я думаю, что нас в будущем ждут интерактивные бумажные книги, книги, общающиеся со сматрфоном и т. п. «В одну сторону» уже есть, например, QR-коды. Ждем мини-революцию на встречном направлении.
Да вот же, из недавнего: habrahabr.ru/post/197482/ Автора, правда, заминусовали, но это не отменяет того факта, что существуют авторы, которые так считают.
А вот еще, причем пишет издатель: habrahabr.ru/post/198092/ Из этой статьи даже процитирую: «С точки зрения издателя, автор — просто еще одно звено в цепи движения книги от идеи до продажи в магазине, причем звено тоже затратное. Жестоко, но правда».
Можно еще вот с такой статьей ознакомиться: www.providernet.ru/article.63.php Статья древняя (2006 г.), тем не менее до сих пор актуальная, а ее автор написал много неплохих книг по программированию.
Сегодняшней ситуацией не удовлетворен, кажется, никто.
Авторы считают, что их а) обирают издательства и б) пираты снижают продажи.
Издательства считают, что а) платят слишком много авторам и б) пираты снижают продажи.
Наконец, потребители справедливо замечают, что, несмотря на наступление цифровой эпохи, контент а) дорог и б) плохо доступен (рад бы иной раз заплатить, но нужную книгу реально найти только на торрентах бесплатно).
Мне кажется, это идет из-за следующего фундаментального конфликта. Традиционно, у издательства было две функции. Первая — изготовить из рукописи продукт (книгу), доставить ее потребителю и получить деньги. Вторая — «раскручивать» авторов, поддерживать интерес к новым книгам и к чтению вообще.
Вы справедливо замечаете: «С приходом цифры в нашу повседневную жизнь, цена копирования стала стремиться к нулю». Поэтому для выполнения первой функции издательства уже не нужны, ну или по крайней мере их роль сильно упала. Но вторая-то роль никуда не делась, и даже наоборот, усложнилась — сейчас бесплатного контента (как нелегального, так и вполне легального) столько, и он настолько разнообразен, что убедить людей заплатить за книгу стало не в пример труднее.
Вы, опять же, справедливо замечаете: «Нерентабельные товары уйдут с рынка. Это не хорошо и не плохо, это закон существующего социального строя». Соответственно, выживут те издательства и те авторы, которые сумеют решить накопившиеся противоречия.
Как вам, например такая идея: издательство, а не автор, может взять на себя проведение кампании на сбор средств на очередную книгу. Далее, после того как достаточная сумма собрана, автор получает фиксированный гонорар, издательство — свой процент, а книга издается и поступает в общественное достояние. Риски — высокие, сработает только с раскрученным автором, но схема представляется справедливой. Минус тоже очевиден — автор, прежде чем начнет прилично зарабатывать, будет вынужден написать несколько шедевров бесплатно или почти бесплатно.
Или так: представим себе электронную мега-библиотеку, в которой присутствуют вообще все книги всех авторов. А также нет DRM и прочих глупостей. Я лично готов, как читатель, платить за доступ к такой библиотеке пару тысяч рублей в месяц. И жене с удовольствием аккаунт куплю, и старшей дочери, и младшей, когда читать научится. Дальше эти деньги могут распределяться между авторами по числу скачиваний, а оператор библиотеки — получать процент. Если пойти по такому пути, наша семья будет в месяц тратить «на литературу» раза в три больше денег, чем сейчас, а читать — примерно столько же или немного больше. Выгодно это, опять же, всем.
В любом случае, найти взаимовыгодные пути можно, если каждая сторона будет слышать другую. Дай бог, доживём.
Это — провайдер не в России (в СНГ), с нешироким каналом за границу. Типичный его абонент — индивидуальный пользователь или небольшой офис с парой-тройкой компьютеров под Windows. О WSUS, соответственно, у абонентов понятия никакого нет.
Мы пробовали подсунуть WSUS Windows-машинам прозрачным образом (вместо штатного сервера Windows Update), но наши эксперименты успехом не завершились, к сожалению. А решение с прокси вроде бы работает.
А iptables умеет искать строку не в одном отдельно взятом пакете, а в сессии? В принципе, он вроде бы имеет некоторые stateful-фичи, так что может и уметь. Исследую вопрос при случае, спасибо за наводку.
Используется, особенно в небольших.
Блокировка — отдельная интересная тема. Действительно, в связи с последними инициативами наших законодателей провайдерам приходится что-то предпринимать. Те, у кого бюджет позволяет — ставят «промышленные» решения DPI. Те, что поменьше, часто поступают так — берут тот самый список Роскомнадзора, трафик на запрещенные IP заворачивают в сторону (как правило, не с помощью access-lists, а с помощью средств динамической маршрутизации), потом по WCCP перенаправляют на внешний кэш, и там уже разбирают по URL.
1. tar -cf — dir1 dir2 dir3 | tar -C /dest/directory -xvf — — скопировать каталоги вместе с именами пользователей и правами доступа
2. df -h — ключ -h означает показывать результат в человеко-читаемом виде
3. `` — подстановка результата команды в командную строку. Например, grep -li CONST `find. -name *.h` найдет строки, содержащие CONST во всех файлах *.h от текущего каталога и ниже по иерархии.
4. () — группировка. Например, команду из первого примера можно переписать так: tar -cf dir1 dir2 dir3 | (cd /dest/directory; tar -xvf -)
5. Нежно люблю пакет ImageMagick, и особенно команду mogrify для работы с изображениями. Например, mogrify -resize 1920x1080 *.jpg сделает именно то, что ожидается — подгонит размер всех картинок под заданный размер, не меняя aspect ratio.
Еще в последнее время операторы очень интересуются решениями по включению рекламных блоков прямо внутрь веб-страниц, передаваемых пользователям, что, на мой взгляд, вообще никуда не годится.
Очень хорошо, что Cisco посчитала возможным сообщить о причинах. Среди профессионалов репутация ее от этого точно не пострадает, даже наоборот.
По поводу четвертого положительного пункта мне когда-то мой друг (а в тот момент еще и начальник) сказал так: «При нашем безумном рабочем графике охотиться за женами времени вообще нет. Поэтому если уж «сохотил» жену — держись за нее крепче».
1. GNS3 почему-то гораздо лучше работает в unix-like средах. Есть готовые образы виртуалок для всех распространенных гипервизоров.
2. Есть такой продукт — IOU (IOS on Unix). В отличие от Dynamips+GNS3 это не эмулятор железа, а IOS, собранный из исходных кодов для платформы Linux. Этот продукт был создан в глубинах компании Cisco для внутреннего использования и оттуда разошелся по Интернету. Cisco делает вид, что не знает о его существовании. Продукт интересен тем, что позволяет запустить на одной машине гораздо больше маршрутизаторов (до 20-30), а также есть в версии с эмуляцией многих возможностей коммутаторов. Для отработки заданий из секции Troubleshooting — самое то.
P. S. Скажите, а в современном программировании использование лямбда-выражений такого размера — это тренд, или таки грязный хак, чтобы уложиться в 30 строк?
Главное ноу-хау здесь — не забывать про шаг 3. Если совместно с клиентом пройти этот путь (хотя бы в виде вопросов и ответов), больше половины вопросов решается сразу. Можно даже форму обратной связи оформить таким образом, но этот путь не очень надежный, т. к. клиенты редко готовы проходить эти шаги аккуратно самостоятельно.
Я же имел в виду избежание классической ошибки совсем юных падаванов, которые пишут (я утрирую, конечно) что-то вроде «temp = x; x = y; y = temp;», не задумываясь о типах и размерах этих самых x и y. Особенно пикантно, если так пишут на каком-нибудь perl-е или фортране, где размер x, y и temp может быть произвольным.
Вы начали с ассемблера PDP-11, он очень прост, логичен, и поэтому способен влюбить в себя. Так что заболевание ваше имеет изначально любовную природу.
Нас в свое время в институте учили программировать процессор машины ДВК-2 (система команд там тоже PDP-11) вообще в кодах, потом мы перешли к мнемоникам, а только в конце третьего курса получили в руки Си (Turbo C 2.0, уже на 386-х). И все справлялись, даже студенты, в обычной жизни далекие от компьютера (кафедра наша называлась «Кафедра автоматики», занимались мы тем, что сейчас называется встроенными системами).
С тех пор остался полезный навык — хотя бы примерно представлять, во что транслируется высокоуровневый код, и как он исполняется процессором.
Поэтому у читателя всегда есть выбор, на что потратить время — почитать, к примеру, для самообразования бесплатный хабр/бесплатную википедию, или купить книгу O'Rielly и читать ее. Понятно, что для выбора второго варианта книга должна быть очень качественной.
Лет через 6, т. е. в 2002 году, я подключил домой уже Интернет по ADSL, и в договоре был пункт о том, что абонент имеет право подключить не больше двух дополнительных компьютеров, с обязательным уведомлением провайдера, и за какую-то дополнительную плату. Я, разумеется, поинтересовался, что за фигня, и мне опять же объяснили, что это защита от «умных», которые будут покупать Интернет себе, а дальше раздавать всем соседям.
Надо ли напоминать, что теперь безлимитный Интернет в Москве есть в любой квартире, да еще и с предложениями вида «подключись сейчас и получи WiFi-роутер в подарок»?
Что изменилось? Наработалась база абонентов критического размера, такого, что удается цены держать разумными. В результате сейчас к Интернету проще (и по совокупности усилий — дешевле) подключиться и платить ежемесячно, чем извращаться для его полулегального подключения.
Ниже правильно написано, что с музыкой уже почти так. И с фильмами тоже. Производители софта подтягиваются (модель SaaS — Office 365, Photoshop в облаке и т. п.). Книги — явно следующие на очереди.
По теме: да кто бы спорил, что автор и издатель суть полезный симбиоз, я — так точно спорить не буду. И вы правильно пишете, что сейчас начинающему автору как никогда просто пробиться к читателю, благодаря iTunes, Amazon и сайтам «второго эшелона», вроде proza.ru.
А вот еще, причем пишет издатель: habrahabr.ru/post/198092/ Из этой статьи даже процитирую: «С точки зрения издателя, автор — просто еще одно звено в цепи движения книги от идеи до продажи в магазине, причем звено тоже затратное. Жестоко, но правда».
Можно еще вот с такой статьей ознакомиться: www.providernet.ru/article.63.php Статья древняя (2006 г.), тем не менее до сих пор актуальная, а ее автор написал много неплохих книг по программированию.
Авторы считают, что их а) обирают издательства и б) пираты снижают продажи.
Издательства считают, что а) платят слишком много авторам и б) пираты снижают продажи.
Наконец, потребители справедливо замечают, что, несмотря на наступление цифровой эпохи, контент а) дорог и б) плохо доступен (рад бы иной раз заплатить, но нужную книгу реально найти только на торрентах бесплатно).
Мне кажется, это идет из-за следующего фундаментального конфликта. Традиционно, у издательства было две функции. Первая — изготовить из рукописи продукт (книгу), доставить ее потребителю и получить деньги. Вторая — «раскручивать» авторов, поддерживать интерес к новым книгам и к чтению вообще.
Вы справедливо замечаете: «С приходом цифры в нашу повседневную жизнь, цена копирования стала стремиться к нулю». Поэтому для выполнения первой функции издательства уже не нужны, ну или по крайней мере их роль сильно упала. Но вторая-то роль никуда не делась, и даже наоборот, усложнилась — сейчас бесплатного контента (как нелегального, так и вполне легального) столько, и он настолько разнообразен, что убедить людей заплатить за книгу стало не в пример труднее.
Вы, опять же, справедливо замечаете: «Нерентабельные товары уйдут с рынка. Это не хорошо и не плохо, это закон существующего социального строя». Соответственно, выживут те издательства и те авторы, которые сумеют решить накопившиеся противоречия.
Как вам, например такая идея: издательство, а не автор, может взять на себя проведение кампании на сбор средств на очередную книгу. Далее, после того как достаточная сумма собрана, автор получает фиксированный гонорар, издательство — свой процент, а книга издается и поступает в общественное достояние. Риски — высокие, сработает только с раскрученным автором, но схема представляется справедливой. Минус тоже очевиден — автор, прежде чем начнет прилично зарабатывать, будет вынужден написать несколько шедевров бесплатно или почти бесплатно.
Или так: представим себе электронную мега-библиотеку, в которой присутствуют вообще все книги всех авторов. А также нет DRM и прочих глупостей. Я лично готов, как читатель, платить за доступ к такой библиотеке пару тысяч рублей в месяц. И жене с удовольствием аккаунт куплю, и старшей дочери, и младшей, когда читать научится. Дальше эти деньги могут распределяться между авторами по числу скачиваний, а оператор библиотеки — получать процент. Если пойти по такому пути, наша семья будет в месяц тратить «на литературу» раза в три больше денег, чем сейчас, а читать — примерно столько же или немного больше. Выгодно это, опять же, всем.
В любом случае, найти взаимовыгодные пути можно, если каждая сторона будет слышать другую. Дай бог, доживём.
Мы пробовали подсунуть WSUS Windows-машинам прозрачным образом (вместо штатного сервера Windows Update), но наши эксперименты успехом не завершились, к сожалению. А решение с прокси вроде бы работает.
Блокировка — отдельная интересная тема. Действительно, в связи с последними инициативами наших законодателей провайдерам приходится что-то предпринимать. Те, у кого бюджет позволяет — ставят «промышленные» решения DPI. Те, что поменьше, часто поступают так — берут тот самый список Роскомнадзора, трафик на запрещенные IP заворачивают в сторону (как правило, не с помощью access-lists, а с помощью средств динамической маршрутизации), потом по WCCP перенаправляют на внешний кэш, и там уже разбирают по URL.