Я уже писал, что недавно смотрел интервью с руководителем MySQL, и там он говорил о сложности бизнес-модели открытого кода. Это прекрасно, когда можно смотреть исходный код и благие намерения разработчиков понятны, только вот конный пользователь не ценит. Поэтому построить бизнес и заработать деньги очень сложно.
Заработать на поддержке очень сложно, потому что домашние пользователи и домохозяйки с неохотой смотрят на открытые проекты, да и установка программ иногда вызывает ужас. Администраторы любят халяву, но платить не очень, особенно за поддержку. Не солидно многим админам платить за какую-то поддержку, они и так умные.
Человек - существо по своей сути ленивое и большинство в этом мире появилось из-за лени и для облегчения нашей жизни. Но лень - это не зло, это прогресс, потому что таким образом мы упрощаем свою жизнь и повышаем производительность своего труда. Чтобы не искать ошибки ручками на WEB страницах создано множество программ, которые могут проверить сайт на уязвимости и просигнализировать, если найдено что-то подозрительное. Так ли эффективны эти программы? Могут ли они помочь нам? Давай попробуем разобраться.
Откуда берутся ошибки? Я бы выделил две основные проблемы - низкое образование и человеческий фактор. Тотальная нехватка программистов лет пять назад стала превращать в кодеров всех подряд. Ну ладно человек стал программистом без специального образования, но надо же учиться, совершенствоваться, а не отсиживать рабочее место за большую зарплату. Сейчас в Европе и США проблема программистов не такая жесткая, потому что стали использовать офшор и открыли кучу представительств в странах, где с программерами не такая большая проблема, но образование и качество кода создаваемого в офшоре и в представительствах оставляет желать лучшего.
Сегодня я решил выразить свой респект линуксу, а точнее его разработчикам, которых очень много. Свое уважение майкрософт я выразил уже давно, а до линукса никак клава не доходила, ибо в голову постоянно лезли другие мысли.
Не смотря на то, что я не отношусь к OpenSource, я все же уважаю линукс, потому что по моему мнению, эта система относиться к моему любимому QualitySource. Да, там есть ошибки, а где их нет? Да, в последнее время в окнах меньше ошибок, но времена бывают разные, а качество - достаточно комплексное понятие и в целом линукс качественный проект. Я уже давно веду сайтик с бaгами (BagTraq) и про линукс пишу очень даже редко, не чаще, чем про окна.
Должен ли сотрудник компании использовать продукты, которые производит эта самая компания? На мой взгляд просто обязан, и желательно, чтобы он пользовался только этими продуктами. Что меня подтолкнуло на этот разговор? Дело в том, что я увидел на одном сайте одного из сотрудников всеминоизвестной компании - использование технологии конкурента. Кто, где и что использовал не имеет никакого значения, интересен сам факт.
То, что сотрудник компании может использовать технологию конкурента - оставляет двоякое впечатление. Положительное здесь то, что компания лояльна к сотрудникам и позволяет им такие выходки, а это дозволено далеко не всем. Я слышал, что если сотрудника кока-колы увидят с напитком пепси, то увольнение происходит моментально и без разговоров. То же самое касается и слухов относительно сотрудников пепси. Я не работал ни там ни там, поэтому подтвердить или опровергнуть эти слухи не могу.
Должен ли код быть открытым? Ответ такой же сложный, как и вопрос - "не факт". Все зависит от программы и от вашего желания. Если вы хотите открыть код и свою работу на всеобщее обозрение, никто не может запретить. Но тут нужно сначала спросить себя: "А для чего мне это нужно?". Повыпендриваться? Получить реальную помощь других программистов?
На самом деле, очень мало народу вливается в массовую разработку. Например, на сайте www.vr-online.ru Проводился опрос по поводу отношения к открытому коду и активное участие в данном движении принимало только два человека. Трудно сказать, много это или мало, но мне кажется это очень мало. Да, на сайте, посвященном линуксом таких людей будет намного больше, но ведь и на сайте Microsoft их будет меньше.
Очень часто можно услышать, что МС заставляет нaс использовать свои окна, потому что впаривает свою ОС со всеми новыми компьютерами. В корне ошибочное мнение, потому что МС тут не причем, а вас никто не заставляет покупать компьютер именно с Windows. Давным давно, когда софтверный гигант был мелким софтом, Билл действительно стремился внедрить свою ОС всем железячникам, но сейчас ему это не нужно. Железячники сами выстраиваются в очередь, чтобы продавать windows компьютеры. Все это благодаря рекламе МС и ее правильному подходу.
Я тут сказал очень интересную мысль, что МС абсолютно не виновата и это не совсем правда. Конечно виновата, но не она впаривает нам окна, это делают производители железа. Да, да. МС виновата только в том, что каждая новая ОС требует больших ресурсов и дешевле купить новый компьютер с ОЕМ вариантом ОС, чем покупать коробку с новой ОС на старый компьютер. И именно это нравиться производителям компьютеров и они с нетерпением ждут выхода каждой новой версии Windows. Ведь именно в этот момент продажи компьютеров взлетают до небес.
Компонент PropertyGrid позволяет отображать свойства класса в виде сетки, как это делает окно Properties в самой среде разработки. Чтобы компонент отобразил свойства нужного вам класса, просто присвойте этот класс свойству SelectedObject. Например, следующая строка заставит отобразить свойства кнопки Button1:
propertyGrid.SelectedObject = Button1;
Давайте представим, что нам нужно использовать PropertyGrid для отображения нужного нам набора значений. Как это сделать? Да очень просто – можно все эти свойства объединить в отдельный класс и использовать его, как любой другой стандартный класс из .NET Framework. Только чтобы свойства выглядели красиво, их нужно правильно оформить при описании класса.
Давайте напишем пример, в котором на главном окне будет только компонент PropertyGrid, где должны отображаться свойства программы потенциального приложений. Все свойства будут объединены в отдельном классе PropertiesClass, это очень удобно, красиво и будет соответствовать всем принципам ООП. Давайте рассмотрим, как правильно и красиво оформить класс, возможно, вы узнаете что-то новое из жизни .NET.
Начиная эту статью, я прекрасно понимаю, что навлекаю на себя гнев всех тех, кто ненавидит Microsoft, а ведь таких очень много. Одних только любителей линуха достаточно. И все же, я не могу высказать свое восхищение этой компании за ОС и за офисый пакет.
Те, кто знает меня давно, прекрасно знают, что я не одобряю некоторые действия MS, особенно в отношении конкурентов. Когда компания поняла, что не может конкурировать качеством, она просто задавила конкурентов ценой и привязанностью, сделав IE бесплатным, да еще и внедрить в ее состав ОС, т.е. Фактически вынудив пользователей иcпользовать свой браузер уничтожила Netscape. Да, Netscape виновата в своем потопе не меньше, ведь она не смогла вывести на рынок более новую версию, а то, что было выведено с опозданием, оказалось не конкурентноспособным.
Но та война уже давно закончилась, сейчас мы поговорим о другой, более интересной войне - майкрофт против открытого кода. В данном случае богатой компании приходится противостоять целому сообществу. Но самое страшное, что противостоять приходится не только бесплатному продукту, но еще и продукту с открытым кодом! Тут уже с помощью банальной раздачи халявы не победить.
Существует множество методов сортировки в зависимости от скорости работы и сложности реализации. Самый простой, который приходит в голову большинству начинающих программистов - создать новый массив и в цикле искать наименьшим значения в основном массиве с переносом их в новый. Найдя первое наименьшее значение, начинают искать следующее, и так пока весь цикл не будет перенесен. Страшное дело, ведь алгоритм ест память, выполняется долго, а если массив уже отсортирован, то тратится тонна времени абсолютно впустую.
Недавно я увидел подобный код у опытного программиста, который хорошо знает базы данных и прекрасно решает производственные задачи. На вопрос: "А почему так", он сказал, что сложное придумывать лень а это реализовать очень просто.