BZIK.INFO
[ bzik анекдоты ] [ bzik афоризмы ] [ bzik истории ] [ bzik башизмы ] [ bzik ИТ истории ] [ bzik тосты ]
[ bzik неразобранное ] [ bzik прислать свежий ]
BZIK.INFO




Жил-был у меня смартфон. Обычный такой андроидокитаец, имя ему — H3060. Да-да, просто H3060, никаких излишеств вроде имени производителя и т. д. И вот однажды он поломался: включаешь — загружается только в отладочном режиме; вытащишь батарейку, подержишь так часа четыре — запускается нормально. Ну, и ещё глюки: кнопки громкости не работают (в отладочном режиме обе, в обычном одна), микрофон не пашет, вайфай цепляет как попало.

Принёс я смартфон в местный СЦ. Мастер покрутил аппарат в руках и сказал, что легче выкинуть, ибо чинить такие аппараты — сущий геморрой. А теперь самая мякотка: выхожу из СЦ, прохожу метров двести, потом думаю: чем чёрт не шутит… Включаю — работает! Вытаскиваю батарею, вставляю — работает!

Шут их знает, китайцев этих. Испугался, видать… Я бы сравнил смартфон с наркоманом, переевшим китайских синтетических забав и внезапно увидевшим санитара с полным шприцем галоперидола.



Сны айтишников и просто людей, близких к науке и технике, бывают… какими угодно. Вот очередной.

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

Набор для физического опыта Юнга по интерференции света

Набор для этого опыта действительно реально в 38 рублей уложить, там . На выходе стоит человек с анкетами и просит всех выходящих написать, для чего они купили этот набор. Почти все пишут: «Чтобы показаться умным», но некоторые — «Чтобы подтянуть физику».

А потом я проснулся. Жаль, что это был сон. А может, прочитают и сделают?



Сижу на проекте коллеги. Вот несколько правил, которыми он руководствовался.

Если используете AJAX, никогда не забывайте формировать весь HTML и все биндинги на стороне сервера. Зачем передавать данные, если можно передать HTML?

Чтобы удобнее, например, реализовать галерею, сразу сформируйте HTML с инлайновыми джаваскриптовыми функциями goNext(), goBack(), closeGallery(). Куда же положить эти функции? Конечно ж, в глобал скоуп. «А что вообще можно класть в глобал скоуп?» — спросите вы. Конечно, всё. Всё, всё, всё и ещё раз всё. Зачем загружать себя модулями, низкой связанностью? Это всё брехня бюрократов и неталантливых сыщиков. Вообще все функции и переменные положим в один файл, чтобы «удобно» там было потом найти что-то. И вообще, классно ведь — один файл вместо тысячи, правда?

Для повышения крутости в инлайн-JS в HTML можно добавить несколькострочный код, что-нибудь из jQuery тоже пойдёт. Например, по DOM’у шариться через инлайн-JS — просто сказка!

Если вы делаете одностраничное приложение, то всё-таки придется реализовать историю. Но не печальтесь, не надо, это просто. Главное, не забудьте одно важное правило: проверки данных ставить нигде не надо. И ничего, что если перейти по ссылке на страницу и затем нажать «назад», ни черта не произойдёт. Всё же правильно работает, в хистори положить нечего, красненькие строчки в консоли JS об этом говорят.

Насчёт красных строчек: это же классно! Зачем делать мир чёрно-белым? Красные сообщения в консоли — это же прелесть, это красиво и разнообразно. Они никак не свидетельствуют о том, что что-то может идти не так. Они, как цветы на полянке в лесу, лишь украшают унылую консольку.

И напоследок: зачем использовать объекты JS? Всё же прекрасно хранится в дивах. HTML — это ж XML, так что вполне сойдёт для хранения данных. Просто ставишь display: none — и делов-то!



Конкретно задолбали юные программисты, косящие под крутых.

Неужели вам ни разу не встречались личности, хвалившиеся знаниями в своём юном возрасте? А мне встречались, причём не раз в два года, а намного чаще, поскольку я сижу на многих форумах, посвящённых разработке игр (чаще всего программисты начинают с мечты создать игру). Я сейчас распространяюсь не о тех, кто в силу своей наивности думает, что сделать GTA или «Крусис» легче, чем оно на самом деле, хотя и такие есть. Больше меня заботят (и умиляют) те, кто кидают понты, хвалятся, что аж семь лет сидят за компом и «изучают» десять языков программирования (и это в 14 лет!), в другой теме копипастя урок про WinForms, а также те, кто красочно расписывают свою школьную жизнь, быдлизм одноклассников и небыдлизм и программисткость самого себя.

Вопрос: зачем они так делают? Просто так и муха на варенье не сядет. Ответ ясен: это такой способ выделиться среди скучной толпы. И так элегантно, не гуляя с чуваками по улицам и не ходя в качалку.

Объясняю таким личностям раз. Частично это ответ на вопрос, почему такой офигенный народ мне так часто встречается. Секрет в том, что скачать Game Maker или Unity3D, достать бесплатные модели, посмотреть два урока от Васяна527 на Ютубе — в этом нет ничего сложного. Ничего! Тому, кто не пропускал уроки информатики и что-то рубает в теме, не составляет ну никакой сложности пройти курс начинающего девелопера. Возможно, не стоит спорить в срачах, кто главнее и дольше учится программировать?

Объясняю два. Когда вы сравниваете себя с одноклассниками и прочим «быдлом» (в свою пользу, ага), вы берёте за кальку те области, в которых разбираетесь только вы. Более чем вероятно, что лет через шесть-восемь, выйдя из вуза, вы с удивлением обнаружите, что ваш сокурсник Петька, никогда ничем не выделявшийся, поднял себе финансовое положение на быдляцком способе «купи-продай» и приобрёл себе крутой джип, пока вы работаете стажёром в каком-нибудь «Нивале», записывая гениальные скрипты взаимодействия монстриков и корпея над книгами о маркетинге.

Всем спасибо, можете расходиться.



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

И вот стала Маша жаловаться, что ей довольно уже длительное время регулярно падают какие-то чужие уведомления с заказами из интернет-магазинов, которых она не посещала, на адрес в каком-то далёком селе под Хабаровском (а она живёт в Москве). Заказчицу тоже зовут Мария, и это единственное совпадение.

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

Оказалось, что Мария, увидев при регистрации в интернет-магазине поле «имейл», решила, что раз её зовут Маша, то адрес masha@masha.ru — красивый и вполне подойдёт. Почему бы его не ставить при регистрации, раз люди просят? А своего адреса у неё нет.

— Зачем мне имейл? — спросила хабаровская Маша. — У меня ведь пароль есть.

— Видите ли, Маша, — сказала Маша московская, — у меня тоже есть все эти ваши пароли. Они исправно приходят мне на почту. И, кроме того, я знаю размер вашего нижнего белья…



Есть у меня давнишний приятель. Лет тридцать знакомы. Компом он пользуется ещё со времён «Искры» и ЕС-1841. Всё это время он водит мышь левой рукой. Не потому, что левша, просто по давней привычке. Да-да — дабл-клик он делает указательным пальцем левой руки.

Недавно приятель обнаружил, что USB-шных мышей к компу можно подключить несколько, и теперь пользуется двумя мышками. Справа и слева. Утверждает, что так на широкоформатнике 27″ гораздо удобнее.



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

Вообще, люблю я своих сотрудниц. Одна прочухала про «эффект присутствия»: как только её компьютер артачится, она больше не лупит истерично по клавиатуре и грызуну, а просто зовёт меня постоять рядом. Удивительно, но работает. Заменить картридж и отнять у МФУ сожранные листы? Хорошо. Терпеливо расскажу, как и куда сохранять файлы из почты, даже про вкладки в Экселе поясню. Невольно постигаю 1С, чтобы, опять-таки, объяснять девочкам, что и почему. Конечно, иногда они путают меня с электриком, но я не обижаюсь.

Люблю я и наших клиентов, имеющих удалённый доступ, особенно ту женщину, которой терпеливо объясняла, что такое принтскрин и где оно сидит. Заимела привычку на любое «нам не зайти!» спрашивать, есть ли соединение с интернетом, получать красноречивое молчание и извинения в ответ. Люблю копаться под столами и чистить системники от пыли, а также спасать их от верной гибели.

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

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



Индусский код, ? Терминология выдаёт программиста, который, кроме своего Виндоус-десктопа, где всё рядом, похоже, мало что повидал. Вот вам другая история.

Некая организация заказывает себе сайт с прайс-листом. Разработчики делают сайт, налаживают импорт данных, размещают всё это на хостинге. Данные ручками вносит лично главбух.

Проходит год, программу дописывают. Теперь она сама забирает данные с FTP-сервера, на который их заливает скрипт из офиса, потому что залить прямо на хостинг нельзя. Данные берутся из каталогов на файловом сервере в офисе, что стоит на столе у главбуха.

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

Проходит ещё пара лет. Фирма развивается, в новый офис заведено оптоволокно, в серверной гудят шкафы с оборудованием, сайт на отдельной машине, файловый сервер стоит рядом. Чтобы лишний раз ничего не переписывать, теперь скрипт заливает на FTP на тот же сервер, где сайт, но сайт тоже не переписывают, поэтому он забирает сам у себя.

Да, теперь на первый взгляд получается как-то глупо: лишние операции, которые можно было бы заменить копированием! Оптимизаторы негодуют, кроют матом тупых индусов и убедительно доказывают свою точку зрения очевидными фактами: да, действительно, можно ведь просто скопировать!

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

Так было бы, если бы оптимизаторы не оптимизировали то, что в оптимизации не нуждалось. Теперь придётся переписывать — а с разработчиком уже разобрались, верно? Будете извиняться или искать другого?

Эта история, конечно, несколько притянута за уши, но суть именно такая: иногда правильнее изобразить «индуса», добавив лишний транспортный протокол, или вынеся в настройки то-что-никогда-не-поменяется, или добавив лишнюю функцию, или даже написав формулу типа А = А*1, чем потом получить непереносимое, немасштабируемое решение, на которое придётся молиться с бубном и сдувать с него пылинки.

Было время, и я стремился к оптимизации: зачем нам вот эта функция, если внутри она просто вызывает другую? Зачем нам лишняя проверка, если исключение никогда-никогда не возникнет? А потом менялись внутренние функции библиотек, менялись алгоритмы, программы вешались, заставляя ночами ковырять древние исходники в поисках очередного «оптимального хода».

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



Понадобилось нам как-то раз поддерживать немецкий сайт по продаже недвижимости на TYPO3. Модули много кто там писал до нас. Позднее заказчик перенёс сайт на другой хостинг, и в админке перестал работать импорт новых позиций.

Импорт работал так. Заказчик специальной прогой формировал XML-файл с инфой для импорта в базу и папки с картинками, всё автоматически паковалось в ZIP и заливалось на сайт в папку import. В админке надо было открыть страницу со списком файлов в каталоге import и нажать одноимённую кнопку.

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

Модуль работал так. Открывалось FTP-соединение с этим же сервером, FTP-функциями PHP скрипт залезал в каталог import (в соседнюю папку), распаковывал архив и парой запросов заливал в базу. Повторюсь: скрипт работал с соседней папкой через FTP. Логин и пасс были напрямую прописаны в коде, в функции соединения.

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

Утром я не могу зайти по FTP и в хост-панель сайта. Днём в сети появляется человек заказчика и рассказывает следующую историю.

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



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


ЕЩЁ БЗИКОВ!        ПРИСЛАТЬ СВОЙ!

{126} {125} {124} {123} {122} {121} {120} {119} {118} {117} {116} {115} {114} {113} {112} {111} {110} {109} {108} {107} {106} {105} {104} {103} {102} {101} {100} {99} {98} {97} {96} {95} {94} {93} {92} {91} {90} {89} {88} {87} {86} {85} {84} {83} {82} {81} {80} {79} {78} {77} {76} {75} {74} {73} {72} {71} {70} {69} {68} {67} {66} {65} {64} {63} {62} {61} {60} {59} {58} {57} {56} {55} {54} {53} {52} {51} {50} {49} {48} {47} {46} {45} {44} {43} {42} {41} {40} {39} {38} {37} {36} {35} {34} {33} {32} {31} {30} {29} {28} {27} {26} {25} {24} {23} {22} {21} {20} {19} {18} {17} {16} {15} {14} {13} {12} {11} {10} {9} {8} {7} {6} {5} {4} {3} {2} {1}




BZIK.INFO
[ bzik анекдоты ] [ bzik афоризмы ] [ bzik истории ] [ bzik башизмы ] [ bzik ИТ истории ] [ bzik тосты ]
[ bzik неразобранное ] [ bzik прислать свежий ]
BZIK.INFO

админу в мыло