Tag Archives: articles

Учимся на программиста

Недавно в МИФИ мы обнаружили студентов второго курса факультета кибернетики. Ребята занимались тем, что учили наизусть таблицу ASCII. Русскую таблицу ASCII. Русскую таблицу ASCII в кодировке cp-1251. Их потом на экзамене всех в обязательном порядке спрашивать будут.

Но это ерунда и неинтересно. Это вы ещё не видели студента, которому вручили стопку учебников по китайскому языку. Едем дальше.

Этим же ребятам задали написать переводчик. Консольный переводчик. Одним из условий для сдачи зачёта им поставили сборку приложения в университете. Ребята сразу же с проблемой столкнулись — кодировки-то в консоли и в MVS различаются. Поэтому при каждом обращении к системе производится двойная смена кодировок — до и после операции. Поскольку Microsoft Visual Studio в университете нелокализованная, а из-под «гостя» не позволяется добавлять туда либы, то пришлось искать обходные пути. При получении этих крякозябров в консольке ребята их копировали, а затем подбирали отступ для таблицы символов и таким образом написали модуль для перевода крякозябров во все буквы русского языка. Поскольку у каждого билда виндоуса смещение отступа различается, то они написали макросы для топа из десяти разных отступов. Благо им повезло и сборка в университете попала в этот топ.

Но это ерунда и тоже неинтересно. Дальше слушаем.

Трое ребят с пятого, выпускного курса подготовили дипломный проект — сайт на PHP. В настоящий момент сайт имеет несколько интересных архитектурных решений, вроде дублирования базы данных при каждом (sic!) обращении. Но меня особенно удивило, когда мне сказали, что «у них запрос хранится в куках»
— А-а, — говорю. — Имя таблицы небось хранят, да?
— Нет, сам запрос к серверу.
— Нихрена себе, весь SQL, что ли?
— Да нет. Запрос. Хочешь — хоть «rm -rf» пиши.
— Э-э… Это как?
— Ну так, переменная с запросом в куках хранится. Чтобы куки удобнее было в фаерфоксе редактировать

Эти трое собрали 40,000 рублей и попросили моего знакомого доделать проект, потому что этот сайт падает и нихера не работает. Тот им говорит — идите нахер, у меня завал с матаном.

Этот человек по совместительству с учёбой работает на семнадцатой кафедре в этом же институте. Учится в одном потоке со мной, на факультете экспериментальной и теоретической физики. Если вы до конца декабря зайдёте на лекцию по матанализу, или геометрии, или социологии, то непременно найдёте его слева от меня. Или справа. Но тогда слева будет сидеть панк и любитель ruby из Мурома.

Почему он пошёл на «Т», а не на «кибернетику»? Да потому что его, как и меня, на «кибернетику» не взяли. Нас втроём не взяли на «кибернетику», потому что мы хреново физику сдали. И поэтому пошли на факультет экспериментальной и теоретической физики, центральный факультет института.

Это МИФИ. Это вам не какая-нибудь шарашка. Это Национальный исследовательский ядерный университет. Это второй технический вуз в России, после физтеха.

Это вы ржали с моих постов о кубанском аграрном? Программист в «колхозе», гы-гы, ага. Плакать надо. У нас в «колхозе» за предложение спросить со студентов ASCII-таблицу всё ебло кирпичами бы отбили. Но не здесь. Здесь вам не Краснодар, здесь, блять, нанотехнологии двигают.

Дорогие дети! Пожалуйста, не повторяйте моих ошибок. Образования в России вообще нихуя нет. Хоть в престижных, хоть не в престижных институтах. Тут скоро пальмы из земли повылезают и обезьяны заведутся. Да, есть люди, которые одержимы наукой и которых иногда можно найти в университетах, но подавляющему большинству похуй на науку. И ни в коем случае не слушайте студентов и выпускников, когда они говорят о том, что их университеты такие охуенные. Потому что институт — это не школа, куда заставляют идти родители. Институты человек сам выбирает и сам борется за право там учится. И признаваться в том, что они добились только возможности страдать хуйнёй 5 лет подряд очень тяжело. И каждый студент вам расскажет, что именно его вуз — самый-самый. Это нормально.

Учитесь сами, держитесь поближе к нужным людям, никого вокруг не слушайте. Если нужно высшее образование — поступайте в самый халявный и спокойный университет. Voker57 так и делает, и делает правильно. А я идиот.

Реклама

12 комментариев

Filed under Без рубрики

Google AdWords

Весёлая игрушка.

Google, замучавшись присылать мне бесплатные ваучеры по обычной почте, послал мне один по почте бумажной. А мне тут как раз понадобилось руины продать. Но руины продавать скучно, поэтому, посовещавшись с уокером, решили прикола ради раскрутить /nopython.

Система напичкана свистульками до отказа. Тут тебе и флеш-графики, и всевозможные критерии показа вплоть до возраста целевой аудитории, и умные системы вроде планирования расходов в зависимости от действий пользователей на сайте (!), и подсказочки на каждом поле, и интерактивное руководство. «Вебинары» какие-то проводят. Переведено всё. Даже режим «для начинающих» прикрутили, чтобы новые пользователи не убегали со страху.

А теперь самое интересное. Быстренько раскрутить свой сайтик с помощью AdWords, если он не интересен людям, невозможно. Вообще невозможно. Полный ноль.

А дело вот в чём. Рекламодатель выбирает ключевые слова, по которым будут показываться его объявления. Он же и назначает максимальную цену, которую хочет за клик по этому объявлению. К примеру, это два цента. Google читает ключевые слова, сравнивает с объявлением и с целевой страницей, на которую ссылается объявление, и выводит показатель релеватности. Чем он выше, тем ниже та цена, которую приемлет гугль для показа объявления. Если, например, этот показатель равен 10/10, то он будет счастлив показать это объявление по цене один цент за клик.

Но если релевантность совсем хреновая, то он заломит цену до доллара за клик. Вроде и «клиент всегда прав», и результаты поиска не портятся. Хочешь — плати доллар, не хочешь — иди к чёртовой матери. Так что если вы ищете информацию о фреймворке, а слева в sponsored links светится «enlarge your penis!» — смело кликайте: разорите хозяина.

Таким образом при показе объявления гугл руководствуется одним коэффицентом, который считается как «бабло × релевантность». А так как бабло не бесконечное, а релевантен сайт ко всему на свете быть не может, то получается так, что сколько людей интересуются содержанием твоего сайта, столько по этой рекламе и привлечёшь.

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

Практически получается так, что покупается не реклама, а результаты поиска в отдельной колонке. Я пробовал сделать подставу — провести на /nopython пользователей, искавших «learning python» и «python tutorial», и вот что получилось:

«Удалите ключевое слово. Наша система показывает, что пользователи, выполнявшие поиск по данному ключевому слову, не сочли ваше объявление или целевую страницу релевантными.»

И заломил мне цену на эти слова до 11 рублей за клик. Пошёл он нафиг с такими ценами.

Вообщем, рекламировать увеличение пениса, если его не просят, очень сложно. Зато можно поставить вполне приличную рекламу вроде «топлю котят, недорого, деревня Нижние Лоховцы». Кликать по ней будут раз в месяц, платить за неё тоже почти не придётся. Тут главное — результат. Потому что каждый посетитель точно будет интересоваться потоплением котят в родной деревне. Иначе зачем он эту чушь в строку поиска вбивал?

2 комментария

Filed under Без рубрики

Approx

Выполняет ту же функцию, что и apt-proxy и apt-cacher — кеширующего прокси-сервера для apt-get’а. Разница в том, что он проще и не вешается при закачке пакетов с нескольких машин на узком канале. А ещё, в отличие от перлового говна, в нём исходники читаемые. Советую перелазить на него тем, кто ещё не перелез.

Оставьте комментарий

Filed under Без рубрики

Про подсознание

Ненавижу беседовать с людьми на эту тему. Все почему-то понимают под ним какую-то таинственную хренотень, хотя понятие очень простое. Легче всего о нём рассказать на примере ходьбы человека.

Для начала разберёмся, что такое сознание. Когда вы идёте куда-то — на работу, в магазин — вы непрерывно думаете о чём-то. Вот то, чем вы думаете — это и есть сознание. Ура, разобрались.

Но ходьба — сложный процесс. Для неё необходимы две трети мышц всего организма. Даже для игры на музыкальном инструменте требуется куда меньше. Вы не сможете сделать и шага, если будете думать о том, как должна себя вести каждая мышца при ходьбе. Сознание не может отвечать за ходьбу: оно слишком медленно для этого.

Но как-то каждый день мы ходим и даже не задумываемся об этом. За ходьбу отвечает другая абстрактная часть мозга — подсознание. Оно может управлять ходьбой потому, что её производительность огромна — на порядки больше, чем у сознания.

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

У подсознания есть свой недостаток — оно не умеет вести себя в непривычных ситуациях. Если на вашем пути вдруг вырастет стена, то ноги не будут сами искать обход. Для этого и существует сознание — для принятия решений в непривычной обстановке.

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

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

И на самом деле плохо то, что люди не понимают, что чем больше работы будет выполняться бессознательно, тем лучше. Во-первых, так быстрее. Во-вторых, так меньше ошибок. В-третьих, сознание остаётся свободно для работы, которая действительно требует мышления.

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

Именно поэтому меня бесит программа «проводник». Он заставляет работать моё сознание там, где я этого не хочу. Когда-нибудь пробовали искать что-нибудь в «Programm Files»? Пока среди сотни одинаковых папок найдёшь то, что надо, по три раза забываешь, чего хотел. Автодополнение путей же, само собой, сделано через жопу.

Ей-Богу, мне куда проще нажать «~ / b tab p tab o tab d tab» и открыть файл «/home/komar/books/programming/ocaml/Developing Applications With Objective Caml.pdf», чем искать его мышкой. Потому что это занимает две секунды. Потому что это делается параллельно, бессознательно. Я просто думаю о книге про окамл, которая находится в моей коллекции книг по программированию, а открывается она сама по себе.

Именно поэтому я ненавижу сенсорные кнопки. Их нельзя запомнить тактильно, и тем самым они намертво обрубают возможность бессознательно их использовать.

Именно за это я люблю командную строку. Разумеется, к консоли Windows это не относится. Cmd.exe — это говно сорокалетней давности, как и вся операционная система.

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

Кстати, я использовал сознание-подсознание в сравнении с директором-сотрудниками. Такая метафора не совсем корректна. Дело в том, что старшим братом из этих двух является именно подсознание. Здесь больше подойдёт аналогия с людьми в стране и их правительством. Не правители создают народ, а народ выбирает своих правителей. И этот же народ может жить и без них. В случае с правительством это называется отставкой, в случае с сознанием — гипнозом.

2 комментария

Filed under Без рубрики

Про магию

  • Магия — это явление, природу которого мы не понимаем.

Так как все привыкли представлять магию в выдуманном волшебном мире, я буду сравнивать электромонтёра и сказочного волшебника. По сути дела налаживание электропроводки с точки зрения папуаса ничем не отличается от приготовления волшебного зелья с нашей точки зрения. И там, и там необходимы странные компоненты, вроде высушенных в полнолуние лягушачьих мизинцев или длинного медного цилиндра толщиной в миллиметр внутри цилиндра побольше, изготовленного из материала, полученного путём таинственного приготовления чёрной жижи из недр Земли. В обоих же случаях необходимо руководствоваться правилами, будь то рецепт приготовления или инструкция по технике безопасности. В одном случае при несоблюдении превратишься в козлёнка, в другом — будешь убит громом небесным. Ну и в конце, ясное дело, непонятные для папуаса законы заставляют загореться стеклянный шар, а таинственные для нас силы заставляют после выпивания волшебного напитка… Ну, я не знаю… Рога там от него вырастают.

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

  • Только не надо про то, что у вас таких друзей нет. Их сейчас как собак нерезаных

Магией может быть всё что угодно. Главное то, что наблюдателю виден только результат, а полная суть происходящего ему неизвестна, остаётся «чёрным ящиком». Почти для всех жуткой магией является работа компьютера. Отдельная магия — это интернет. Слышали когда-нибудь возмущение «я ничего не качала, я прямо в интернете смотрела, куда все деньги подевались?»

Примеров можно выдумать целую кучу. Вон, для кого-то приготовление борща — сплошная магия. Некоторые только магией могут объяснить, куда все деньги подевались, ведь вроде не тратил совсем. То, что работает независимо от нашего понимания, мы можем назвать магией. Для абстракции. Для упрощения. Для разбиения большого явления на составляющие, чтобы поместить его в голове.

Отдельного внимания заслуживает такая магия, как искусство. О нём, наверное, позже.

2 комментария

Filed under Без рубрики

О сенсорных кнопках

Первое знакомство с модной причудой у меня состоялось в сентябре 2008 года. Я тогда приехал с выходных в общежитие, оставив дома зарядное устройство для моего телефона. К счастью, нашлись добрые люди, которые подогнали мне аппарат, очень похожий на «samsung soul» — «samsung e950»:

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

  • Так как нет клавиш, то нет и хода клавиш. Сенсор реагирует на простое прикосновение, а не на нажатие. Вследствие этого пальцы приходится держать на расстоянии от панели и через некоторое время устают. Если не отводить их, то либо сенсоры поймут прикосновение пальца как повторные нажатия, либо вы позвоните кому-нибудь, нажав не на те «кнопки».
  • Нет тактильной отдачи. Нажали ли вы «кнопку» или нет — угадывается только на дисплее. А если интерфейс при этом «тормозит» — начинаешь нервничать.
  • Вследствие двух вышеприведённых пунктов абсолютно невозможно сделать что-то вслепую.
  • Невозможно сразу узнать, за что сейчас отвечает та или иная область тачпада. Он постоянно закрывается от глаз пальцами, а на основном дисплее функции не дублируются графически. Приходится убить пальцы и переводить взгляд на другой дисплей.
  • Даже в тонких перчатках пользоваться телефоном невозможно.
  • Если у вас огрубевшие или другие «необычные» руки, то пользоваться телефоном вам тоже невозможно. Это частая ситуация — я не выдумал.

С телефоном я, слава Богу, расстался. За ту неделю я окончательно возненавидел его, да ещё и совершил штук десять случайных звонков. Следующее общение с сенсорами у меня состоялось после покупки ноутбука, имеющего тачпад и панель, на которой располагались сенсорные кнопки.

К тачпаду была предусмотрена кнопка на корпусе, выключающая его. ПО для работы с мультимедийными сенсорными клавишами я в последствие снёс, ибо когда есть «touch-typing skill» использовать «горячие клавиши» куда удобнее. Но сенсоры и здесь испортили жизнь: в темноте эти фигульки светятся ярче, чем монитор. Отвлекают постоянно, на глаза давят. Приехав домой, пришлось с помощью изоленты сделать такой вот моддинг:

Сенсорные мониторы находят себе неплохое применение. А вот сенсорные кнопки — это всегда говно.

2 комментария

Filed under Без рубрики

Об изделиях Microsoft’а

Microsoft Natural® Ergonomic Keyboard 4000 — лучшая клавиатура от начала времён и до сегодняшних дней. Форма идеальная, ход клавиш мягкий, тихий и ровный, нижний ряд покрупнее. Обратный уклон — вообще офигенная штука, руки с клавиатуры убирать не хочется. Ощущения после Microsoft Natural Multimedia совсем другие. Вот ещё бы мультимедийные клавиши убрали к чёрту, так тогда бы вообще не клавиатура была, а чудо какое-то.

А вот мыши у них в три раза дороже, но идентичны китайским. Обидно.

P.S.: а ещё очень удобны кожанные подставки под запястья. И вообще.

1 комментарий

Filed under Без рубрики