Производи и используй

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

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

Должен ли код быть открытым?

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

На самом деле, очень мало народу вливается в массовую разработку. Например, на сайте www.vr-online.ru Проводился опрос по поводу отношения к открытому коду и активное участие в данном движении принимало только два человека. Трудно сказать, много это или мало, но мне кажется это очень мало. Да, на сайте, посвященном линуксом таких людей будет намного больше, но ведь и на сайте Microsoft их будет меньше.

Производители железа за МС

Очень часто можно услышать, что МС заставляет нaс использовать свои окна, потому что впаривает свою ОС со всеми новыми компьютерами. В корне ошибочное мнение, потому что МС тут не причем, а вас никто не заставляет покупать компьютер именно с Windows. Давным давно, когда софтверный гигант был мелким софтом, Билл действительно стремился внедрить свою ОС всем железячникам, но сейчас ему это не нужно. Железячники сами выстраиваются в очередь, чтобы продавать windows компьютеры. Все это благодаря рекламе МС и ее правильному подходу.

Я тут сказал очень интересную мысль, что МС абсолютно не виновата и это не совсем правда. Конечно виновата, но не она впаривает нам окна, это делают производители железа. Да, да. МС виновата только в том, что каждая новая ОС требует больших ресурсов и дешевле купить новый компьютер с ОЕМ вариантом ОС, чем покупать коробку с новой ОС на старый компьютер. И именно это нравиться производителям компьютеров и они с нетерпением ждут выхода каждой новой версии Windows. Ведь именно в этот момент продажи компьютеров взлетают до небес.

В первый раз в первый класс

Компонент PropertyGrid позволяет отображать свойства класса в виде сетки, как это делает окно Properties в самой среде разработки. Чтобы компонент отобразил свойства нужного вам класса, просто присвойте этот класс свойству SelectedObject. Например, следующая строка заставит отобразить свойства кнопки Button1:

propertyGrid.SelectedObject = Button1;

Давайте представим, что нам нужно использовать PropertyGrid для отображения нужного нам набора значений. Как это сделать? Да очень просто – можно все эти свойства объединить в отдельный класс и использовать его, как любой другой стандартный класс из .NET Framework. Только чтобы свойства выглядели красиво, их нужно правильно оформить при описании класса.

Давайте напишем пример, в котором на главном окне будет только компонент PropertyGrid, где должны отображаться свойства программы потенциального приложений. Все свойства будут объединены в отдельном классе PropertiesClass, это очень удобно, красиво и будет соответствовать всем принципам ООП. Давайте рассмотрим, как правильно и красиво оформить класс, возможно, вы узнаете что-то новое из жизни .NET.

Зы что я уважаю Microsoft

Начиная эту статью, я прекрасно понимаю, что навлекаю на себя гнев всех тех, кто ненавидит Microsoft, а ведь таких очень много. Одних только любителей линуха достаточно. И все же, я не могу высказать свое восхищение этой компании за ОС и за офисый пакет.

Те, кто знает меня давно, прекрасно знают, что я не одобряю некоторые действия MS, особенно в отношении конкурентов. Когда компания поняла, что не может конкурировать качеством, она просто задавила конкурентов ценой и привязанностью, сделав IE бесплатным, да еще и внедрить в ее состав ОС, т.е. Фактически вынудив пользователей иcпользовать свой браузер уничтожила Netscape. Да, Netscape виновата в своем потопе не меньше, ведь она не смогла вывести на рынок более новую версию, а то, что было выведено с опозданием, оказалось не конкурентноспособным.

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

Пузырьковая сортировка

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

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

Quality Source

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

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

Безопасные функции

Не секрет, что достаточно большая часть ответственности за безопасность кода лежит на функциях, особенно это относится к С/С++, где повсеместно используются строки, заканчиваются нулем. Это не только самый большой тормоз, но и самый дырявый тип данных. Второй источник проблем безопасности - нарушение логики или ошибки проектирования. Что страшнее? Я не берусь ответить на этот вопрос однозначно, хотя мне кажется, что вторая проблема опасноснее, потому что ее сложнее вычеслить.

Я затеял этот разговор не ради того, чтоб определить, что страшнее, а чтобы задуматься, почему мы не решаем проблемы безопасности и как это можно сделать.

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

Администраторы за открытый код

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

Этим вопросом я всеръез озаботился после прочтения одной из статей Джоела о том, как влияют цены сопряженных товаров. Чтобы лучше понять эту тему, ее лучше рассматривать на примере. Есть компьютер и софт и оба товара взаимосвязаны. Сколько будет стоит компьютер с ОС? Экономист скажет, что он должен стоить столько, сколько готов заплатить потребитель. Если это меньше себестоимости, то производство не рентабельно.

Ттеперь мы подошли к самому интересному. Допустим, что потребитель способен заплатить 1000 зеленых. Теперь, чем меньше будет стоить ОС, тем больше сможет получить производитель железа и наоборот. Поэтому MS стремится сделать железо дешевым и на домашнем рынке ей это удается. Именно поэтому IBM стремится сделпть ОС дешевой и рынке серверов это удается сделать благодаря Linux.

Консалтинг фуфло и что делать

Сегодня я хочу поговорить о консалтинге и Почему он не может быть хорошим. Еще год назад я считал, что консалтинг реально может помогать компаниям потому что:

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

Потом я прочитал книгу: "джоел о программировании". Сайт автора кажется www.joelonsoftware.com, а на русскоязычной версии можно прочитать русские варианты статей. Про консалтинг там тоже кажется было в свободном доступе. Первое впечатление о книге - автор просто завидует высоким доходам консалтинговых компаний, и пытается облить грязью конкурентов, ведь как сказал автор, его компания сама занимается консалтинговых, правда это для них не первостепенный доход. Я мог согласиться только с некоторыми мыслями джоела, но далеко не со всеми.

Недавно я поменял работу и об этом уже писал. Я так же уже писал, что у нас на работе стоит ERP система и даже поделился своим мнением по поводу этой системы. Но сейчас мы будем говорить о консалтинге с которым я так же столкнулся в реальности на новой работе. Теперь я понял, что джоел был абсолютно не прав, особенно, что касается российского консалтинга. Это за бугром может быть все терпимо, а в нашей стране консалтинг приносит заказчику только проблемы.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне