Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (16)

Наибольший вклад в теги

Все теги (73)

Лучшие ответы пользователя

Все ответы (68)
  • Почему хабр отказался от %username%.habrahabr.ru

    @lesha_penguin
    Все равно никто ничего не скажет. Поэтому мои предположения:

    1) Снижение нагрузки на DNS.
    за: на каждое обращение к профилю юзера выполняется лишний ресолвинг. вносит задержки. лишняя нагрузка на сеть.
    против: новость «как DNS лег под хабрэффектом» хорошо опубликовать первого апреля.

    2) >9000 виртуальных хостов сильно огорчили сервер.
    за: очень возможно, особенно если они были «брутально» прописаны в конфиге апача.
    против: сильно сомневаюсь что оно так. Сотни-то хостинговых кампаний предлагают услуги виртуального хостинга, когда и поболее доменов висит на одном сервере, и чем хабр отличается? Да и высоконагруженные проекты с кучей поддоменов: тоже есть хорошие примеры, ЖеЖешечка например, так же, работает себе, и ничего!

    3) Виртуальные поддомены вначале планировались для чего-то еще, типа возможности для хабраюзеров создать свой мини-сайт на хабре. Но потом решили так не делать. А сейчас просто «выпилили нахрен столетний рудимент» во время очередной итерации рефакторинга.
    за: иногда код следует перебирать и архитектурно. куча заведомо мертвого кода в проекте — путь в никуда, как жизнь в городе-призраке!
    против: только зачем? если рудимент не мешает, то святой принцип: работает-не трогай!

    4) Поддомены *.habrahabr.ru хотят дать компаниям под корпоративные блоги (посолидней как-то ведь), а юзеров просто передвинут /users/username/.
    за: очень даже возможно. Маркетингово совершенно нелогично когда «компания» имеет какую-то «домашнюю страничку» /companies/thecompany/ а «юзер» получает целый «домен».
    против: а компаниям на это пофиг, у каждой из них есть свой корпоративный сайт.

    5) Поддомены *.habrahabr.ru хотят отдать под тематические блоги. Каждая тематика-свой поддомен.
    за: да, вообще-то логично! более логичнее, чем для юзеров!
    против: а смысл?

    6) Распределение нагрузки за счет наращивания количества обслуживающих серверов.
    за: если определенные юзерские данные были связаны с определенными серверами, то логично.
    против: все равно непонятно, если запрос проходит через rewrite то пофиг что домен что кусок пути.

    7) Юзеры стали злоупотреблять пиаристыми поддоменами username.habrahabr.ru.
    за: а что, *.habrahabr.ru — возможно попробовать как инструмент для раскрутки.
    против: «малокалиберно» слишком. тянет на материал для новости на первое апреля.

    8) Выкатывание какой-то принципиально новой фишки, где поддомен будет только мешать.
    за: неизвестно что это за фишка, может поддомены и сильно будет мешать!
    против: а неизвестно что это за фишка, может поддомены и не будут мешать;)

    9) Хабр собирается выкатить пачкой сразу кучу хабра-сервисов. Логичное предположение, если ХабраСторадж — только начало, а завта планируется уже ХабраБлекджек.
    за: habrastorage.habrahabr.ru для Хабрастораджа более правильно, чем постоянный риск «фишинг-батхертов» вида ha6past0rage.ru. Да и проще с одной кукой авторизации в одном домене.
    против: ну, а если какой-то проект предусматирвает «столь тесную интеграцию с хабром», то почему бы не habrahabr.ru/projectname/?
    Ответ написан
  • Почему Линус не любит C++?

    @lesha_penguin
    <Мысль_вслух>Если существует специальный «ад для говнокодеров», то наверняка, одним из самых жестких наказаний в нем была бы отладка того говнокода, который, который в С++ получается по принципу «делается более просто и изящно».</Мысль_вслух>

    Если начинать «от сотворения мира»:

    1) Как известно C++ был был придуман Страуструпом, мы не будем умалять его «ученные регалии» (ученных-то наград куча, но они по сути единственное чего «добился человек», кстати, 90% прямо или косвенно за c++). Однако, заметим, что Страуструп — как раз есть пример «чистого теоретика» (в отличии от «практика»-Торвальдса), т.е. является человеком за свою жизнь не принимавшим участия в разработке ни одного серьезного реального программного проекта. По сути компилятор c++ — единственное более-менее практическое дело в его жизни. Соотвественно о том с какими проблемами приходится сталкиваться в реальном «software development-е» с «высоты его ООП-теорий» он имеет весьма посредственное представление.

    2) Как верно заметили, в упомянутой статье, изначально это был как раз «Це с классами», т.е. изначально НЕ БОЛЕЕ ЧЕМ «академическая» попытка навернуть на C отдельные элементы «обьектности» (типа, Smalltalk обьектный, а давайте попробуем сделать такое на более низком уровне). Кстати, могу Вам сказать, что с C++ я впервые познакомился в 80-90е годы, когда языком «ученной среды» был Фортран, языком «системщиков» Си, а для обучения «всех непрофильных специальностей» основам программирования использовались Basic и Pascal. Да, но правда «тогдашний C++ 80» отличался от нынешнего — он реально производил впечатление «просто прикольной поделки» (на память помню, что например, тогда не было и половины привычного функционала например таких вещей как всяких «reinterpret_cast-ов» или namespac-ов.). Кстати, да… барабанная дробь… НЕ БЫЛО STL!!!

    3) Наверное Страуструповский «Це с классами», наверное так бы и остался в списке «прикольных поделок» в аналах истории, если бы не одно обстоятельство: «ВНЕЗАПНО» произошел «софтверный бум», соотвественно: a) «элитных» «олдскульных» программистов стало резко не хватать b) «требования к качеству софта» резко упали c) понадобилось средство для генерации достаточно низкоуровневого «говнокода в промышленных масштабах». И как ни странно, (ага, угадали, именно с появлением в C++ STL-я) C++ так и не избавившись от своих «академических болячек» был брошен в пучину «мейнстрима».

    4) Вам говорят истинную правду, когда говорят, что «C++» это маркетинговое название для «Це с классами». Да, это так. И можно сказать, к великому сожалению, он нашел свою рыночную нишу. (Сейчас любой дурак может легко «освоить C++ за 21 день (с бустом и стлем)», при этом не умея даже внятно ответить на простой вопрос «Если ты такой умный, обьясни тогда почему, c$k@, у тебя программа течет по памяти и падает», (про такие «неполиткорректные вопросы», как «зачем писать 100 строк на то, что пишется в две-три», мы вообще тактично молчим, а то, мало ли, может у человека «сдельная зарплата» за количество строк ;) ), зато с видом крутого Беара Грилса можно обсуждать такие «высокие материи» как «Паттерны» и «чистый ООП»).

    5) И к самому большему сожалению, в некоторых случаях альтернативы нет. Да, Я еще не встречал ни одного программиста, который в действительно реальной разработке софта активно использовал бы C++ и при этом от него бы не плевался. У C++ есть «Огромный ПЛЮС» — Его Мультипарадигменность! По-сути это его единственный плюс, позволяющий «не уйти в дебри» (типа попыток запихнуть «main()» в обьект только ради «идеи чистого ООП»)!

    6) А теперь, после такого «исторического» вступления еще раз перечистайте внимательно письмо Торвальдса, высказывание человека который лучше многих «теоретиков чистого ООП» знает как это оно «на собственной шкуре» разрабатывать сложные системы, и комментарии от хабраюзеров, которые «на живой практике» знают «почем фунт лиха» в топике. Под большинством утверждений я лично бы поставил свою подпись золотыми буквами.
    Ответ написан
  • Сканеры штрих-кодов и PHP

    @lesha_penguin
    Сканеры штрих-кода (из тех, с которыми мне довелось работать) обычно работают в двух вариантах:
    1) Эмуляция клавиатуры (те, кто подключаются через PS/2 или работают как USB HID)
    2) Эмуляция COM-порта (те, которые соответственно втыкаются в компорт либо являются USB Serial Device)

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

    Соответственно, вопрос. Вам для каких нужд? Если Вы хотите минимальными затратами организовать «рабочее место оператора» с взаимодействием через веб — то вариант с USB HID — это ваш вариант. Вы просто с помощью PHP рисуете форму, с полем, куда JS-ом выставляете фокус. Оператор «пикнув» сканнером штрихкода просто введет туда цифры. (И незабываем, какой еще ОГРОМНЫЙ плюс возникает, если штрихкод потерт и нечитается — оператор просто набивает артикул на клавиатуре в это поле.)

    Вариант с Serial-подключением имеет плюсы лишь когда вы организуете выделенное узкозаточенное рабочее место.
    Ответ написан
  • Как успеть за всеми технологиями

    @lesha_penguin
    Насчет «новых технологий» дам несколько хороших советов (как человек, который уже многое успел повидать на своем веку).

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

    Второе: Позволь, дам тебе несколько нестандартный взгляд на «новые технологии».

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

    Сразу видно, хитрые фирмы изобретут еще 100500 разных технологий, языков, фреймворков, парадигм и каждую из них они будут рекламировать как новую и революционную, готовую перевернуть мир (хотя я авторитетно скажу, что по крайней мере за последние 20 лет чего-то действительно принципиально нового придумано было чрезвычайно мало. компутеры стали меньше а программы больше. и все).
    При этом каждую технологию подают исключительно как «серебрянную пулю», способную решить все текущие и будущие проблемы. А еще реклама давит на «чувство моды», выставляя всех кто не гонится за модой старомодными пердунами. И конечно, любая реклама тебе пытается внушить, что эта новая технология вот-вот вытеснит все остальные, и вам надо срочно все бросать и изучать пока не поздно чтобы не оказаться за бортом… да и вообще, есть еще over 9000 рекламных приемов.
    Так вот — не верь рекламе — не забывай, реклама все врет. У любой технологии есть свои плюсы и минусы. Плюсы, даже весьма сомнительные, рекламно выставляются напоказ, а минусы, даже самые очевидные, тчательно маскируются и отрицаются.

    Цель любой этой всей рекламы — чтобы такие как ты покупались на эту рекламу и сломя голову бежали «изучать новые технологии» (тратя на это свои силы, время и деньги). И самое главное, чтобы тащили когда нужно и даже когда совсем ненужно «продукты этих новых технологий» в свои проекты. А когда минусы станут очевидными, все обнаружат, что на технологию уже «подсели как на иглу» и просто так ее выпилить из проектов затруднительно. Знакомо?

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

    Так вот, первый вопрос который ты должен себе задать: Твое время, силы и внимание, безвозвратные годы твоей жизни — оно что ничего не стоит, чтобы им так разбрасываться и просто дарить их кому-попало направо и налево? Наверное уж если вкладывать свое время так во что-то реально ценное! А вот что для тебя ценное — решать должен ты сам не позволяя никому в это влезать!

    При этом, обрати внимание, я вовсе не призываю, «запереться в бункере», отгородившись от внешнего мира глухой стеной. Как раз наоборот, надо быть в курсе того, что происходит вокруг. Но при этом не обязательно в каждую «новую хрень» углублятся, тратя на нее свои ценные молодые годы.
    Зачастую о «новых технологиях» достаточно знать только пять вещей:
    * знать что такая технология существует
    * примерно представлять для чего она
    * знать сильные и слабые стороны (т.е. читать больше практические отзывы, особенно внимательно читая негативные, чтобы не всю информацию брать из рекламы)
    * сравнительный анализ (обращаем внимание на негатив больше чем на рекламу)
    * знать примерно что и где гуглить если вдруг будет принято решение узнать о ней побольше.

    И все! Этого будет достаточно. Ты двигаешся к цели, и не даешь себя сбить с цели. И если вдруг ты видишь что какую-то технологию ты можешь применить применительно к своей цели (если оно оправдано и ты видишь что оно оправдано).

    Заметь, применить не потому что «это модно», а потому что это отвечает твоим целям и задачам и ты хорошо взвесил, что трудозатраты окупятся! (Кстати, никогда не применяй что-то только потому что это «модно». Мода она ни к чему хорошему не приводит, она только порождает «жертвы моды».)

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

    P.S.: Кстати, если вообще не знаешь что учить — учи матчасть, учи основы, тренируй мышление, развивай мозг. Это всегда пригодится. Зная матчасть любую «новую технологию» ты запросто освоишь как только ты для себя решишь, что она тебе нужна.

    P.P.S.: Короче, если по-простому, не будь хомячком, которого все стремятся сьесть на обед (т.е. не работай на продвижение ненужных тебе лично технологий).
    Будь матерым волчарой, который сам сожрет кого угодно (пусть технологии работают на тебя, и любое взаимодействие с «новой технологией» для тебя сто раз просчитанное взаимовыгодное сотрудничество, только так).
    Ответ написан
  • Ускорение работы программиста?

    @lesha_penguin
    Какой Главный ресурс программиста — внимание! Т.е. продуктивность твою как программиста лимитирует не время, которое ты чему-то уделяешь, а внимание. Поэтому, для повышения производительности убираешь все ненужное что отвлекает твое внимание на себя.

    В первую очередь — отключаем всякие скайпы и аськи. Если тебе нужен сервис мгновенных сообщений — заведи себе отдельный рабочий аккаунт, и используй его только по работе. Разделение сотовых на личный и рабочий тоже дает +100 к здоровой упорядоченности жизни.

    Во вторую очередь — прибираем на рабочем месте. Куча бумажек и древнего неиспользуемого говна утягивает внимание на себя.

    В третих — вырубаем на компутере всякие свисто-перделки, которые не нужны, а только тянут внимание на себя.

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

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

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

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

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