C# - запуск только одной копии программы
10.08.2008
Недавно пришлось решить вопрос запуска только одной копии программы на C#. Вопрос решил успешно, используя Mutex. Собственно велосипед изобретать не стал и воспользовался готовым кодом, который нашел здесь. Сначала создаем класс (который я успешно использовал уже в нескольких проектах):
Читать полностью »
Недавно, друг подсказал мне неплохое решение для работы с массивами в PHP. Это класс, который работает на подобии LINQ в C#3.0 и позволяет делать выборки из массивов с помощью конструкций, которые напоминают SQL. Вот небольшой пример, выборка слов, длина которых меньше 5 символов:
// Create data source
$names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");
$result = from('$name')->in($names)
->where('$name => strlen($name) < 5')
->select(’$name’);
Следует отметить, что данное решение работает только с версией PHP 5.2 или выше.
Более подробная информацией по PHPLinq размещена на этом сайте.
Обо мне
27.02.2008
Добро пожаловать на мой блог, где я высказываю свои мысли о программировании, интернет-технологиях, и жизни вцелом. Надеюсь найдете что-нибуть интересное для себя. Страничка называется “Обо мне”, потому начнем:
Общее:
Меня зовут Макагон Сергей, живу в городе Кривой Рог (Украина). Мне 21 год.
Работа:
На данный момент занимаюсь разработкой и продвижением сайтов в Интернете. Основным сайтом является Портал программистов, но кроме него есть еще и другие интересные проекты.
Знания:
Давно (сейчас не использую)
- C++Builder
- Delphi
Использую
- HTML+CSS
- PHP
- C# (.NET Framework)
Базы данных:
- MySQL
- MS SQL
- Firebird (InterBase)
Изучаю
- ASP.NET
- Java Script/AJAX
Интересуюсь:
Интернет-технологии, WEB 2.0 создание сервисов для пользователей, кодогенерация, SEO, проектирование.
Хобби:
Музыка, Футбол, Мысли о вечном
Связь:
- ICQ: 177-170-два
- devoid#ua.fm
Очень непростую тему хочу затронуть сегодня. Но начнем с определения в Википедии, которое мне очень нравится:
Программи́рование — процесс и искусство создания компьютерных программ с помощью языков программирования. Программирование сочетает в себе элементы искусства, науки, математики и инженерии.
Да, программирование является, несомненно, искусством. Кто относится к этому иначе - тот либо утратил изначальный интерес к этому делу, либо относился к программированию несерьезно с самого начала.
Итак, что представляет собой язык программирования? По сути, это набор инструкций и команд, которые позволяют получить определенный результат и заставляют программу работать так, как того хочет программист. Глядя на бесконечные топики на различных форумах с названиями “C++ vs Delphi”, “C++ vs C#”, “На чем лучше писать?!” и так далее, появляются сомнения о том, что язык программирования лишь инструмент для программиста.
Возвращаясь к изначальной идее программирования, как искусства, хочу заметить что художники сами выбирают чем они будут писать картины, музыканты выбирают инструмент на котором они будут играть. Смешно выглядели бы топики на форумах, где пианисты доказывали, что пианино лучше гитары, согласитесь? А ведь и на пианино и на гитаре можно сыграть музыку. Эти алегории привел для того, чтобы показать нелепость холливаров как таковых.
Язык программирования является лишь инструментом, используя который программист может реализовать свои идеи, задачи и амбиции. В зависимости от поставленных задач, опытный и разработчик выбирает инструмент, который позволяет решить задачу более эффективно. В этом и есть отличие профессионального программиста от новичка. Новичек будет писать на том языке, который отстаивал на форуме всеми силами и который более-менее знает
Важным вопросом является и обьективность программиста. Если отстаивать только один язык программирования, можно многое потерять. С каждой технологии нужно выбирать лучшее. Кроме того, обьективность проявляется в сравнении, и очень важно знать как плюсы, так и минусы каждого из языков программирования, чтобы лучше сориентироваться в своем выборе. Потому каждый программист должен осознанно подходить к вопросам выбора языка и среды разработки.
В заключение своей небольшой заметки хочу сказать, что холливары - результат детского максимализма новичков, намного полезнее было бы описывать плюсы языков программирования, и их минусы. Чтобы помочь программистам сразу понять достоинства и недостатки “инструментов” для разработчика. Очень хочется выслушать ваше мнение по данному вопросу ![]()
Контролируйте код, господа! :)
06.02.2008
На одном из блогов нашел ссылку на некую программу, которая помогает следить за кодом, и его изменениями при разработке крупных проектов. SourceMonitor - на первый взгляд довольно невзрачная программа, которая на удивление предоставляет достаточно много информации о исходном коде. Начну с того что анализировать она может:
- С++
- C#
- Java
- VB.NET
- Delphi
- C
- HTML
- Visual Basic
Далее, я создаю новый проект, куда загружаю один из своих проектов на C#. Далее создается Checkpoint - точка, которая позволит запомнить и сохранить текущее состояние исходного кода проекта. Как только мы создали Checkpoint в SourceMonitor мы уже можем знать сколько файлов содержит проект, сколько в нем строк кода, классов, какой процент кода составляют комментарии, сколько вызовов методов в нашем коде. Вобщем очень много полезной информации, которая может быть представлена даже в графическом варианте. Статистику можно смотреть как для всего проекта, так и для каждого файла отдельно. Думаю программа будет полезной тем, у кого крупные проекты и требуется контроль версий кода. Также неплохо оценивать код до и после оптимизации (исследуя количество переменных и вызовов методов и др. показатели). Удачного контроля кода ![]()
Перечисления (Enums) в C# (C sharp)
11.11.2007
Я недавно написал маленькую статью на тему: Перечисления (enumerations) в C# (C sharp), и в продолжение к ней хочу привести пример из спецификации языка C# (C sharp), который показывает как еще можно обьявлять перечисления, но используя в роли основного типа sbyte:
The following example declares an enum type named Alignment with an underlying type of sbyte.
enum Alignment: sbyte
{
Left = -1,
Center = 0,
Right = 1
}
Замечу что при обьявлении перечисления без явного определения типа, автоматически используется int.
Автозапуск программы в C#
05.11.2007
В последнее время очень часто на форумах программистов задают вопрос “Как добавить в автозагрузку программу написанную на C#”. Чтобы немного разьяснить этот вопрос - написал статью Автозапуск программы в C#, прочитав которую вы без проблем сможете добавить программу в автозагрузку. Все сводится к простой работе с реестром (используя Microsoft.Win32.RegistryKey и Microsoft.Win32.Registry).
Вот собственно основные (не все) пространства имен, которы нужны для нормальной работы в C# с Базами данных и XML.
Базы данных:
System.Data
System.Data.Odbc (для работы через ODBC-драйверы)
System.Data.OleDb
System.Data.SqlClient (для работы с MS SQL Server 5.0)
System.Data.SqlTypes (для поддержки типов SQL)
Вот какие namespace используют обычно при работе с XML:
System.Xml
System.Xml.Schema
System.Xml.XPath
System.Xml.Xsl
Про классы каждого пространства имен можно подробно почитать в MSDN.
PS: Блог о SEO - полезно почитать тем, кто раскручивает свой сайт.
Интересные факты с мира программирования
21.10.2007
Недавно встретил в одной из тем форума исходников.ру такие факты:
С развитием Интернета американским компаниям стало намного дешевле и проще нанимать программистов неамериканцев.
Если раньше приток “мозгов” обеспечивался приглашением специалистов из-за рубежа в США, то теперь американские
софтверные компании предпочитают нанимать сотрудников в Индии (на ее долю приходится 80% заказов американских
компаний на создание программного обеспечения), Китае, бывшем СССР - где услуги программистов стоят намного
дешевле.
То, что фирмам США дешевле заказывать программыне продукты у программистов с других стран - очевидно, но очень удивило и улыбнуло то что 80% софта на заказ делают индусы
Вот еще интересности:
Соответствие программного кода, международным спецификациям написания кода, для аутсортинга в различных странах мира. По данным Американской профессиональной ассоциации ITAA (Information Technology Association of America)
Рассматривались C++, Java, Oracle и SQL-языки.
1. Израиль - 91%
2. Россия - 82%
3. Восточная Европа - 76%
4. Украина, Прибалтика - 62%
5. Казахстан - 53%
6. Китай - 43%
7. Пакистан - 31%
8. Индия - 28%
Кстати как видим Индия на 28% только придерживается стандартов. Россия порадовала, а вот Украина держится середнячком.
Ну и так для размышления еше несколько цитат:
За период нахождения у власти президента Джорджа Буша\George Bush работу потеряли 2.5 млн. человек, занятых в
промышленности и около 600 тыс. человек, работавших в сфере услуг. Уровень безработицы в США достиг 6.1% - это
самый высокий уровень с 1994 года.
Видим плоды “умной политики” не менее “умного” человека….
Чтобы уменьшить расходы, многие фирмы, действующие в сфере обслуживания, предпочитают увольнять квалифицированных специалистов, проработавших в этих компаниях много лет, и нанимать новичков. Новые сотрудники не имеют тех льгот, которыми обладали их предшественники, их зарплаты, значительно меньше - во многих фирмах США существует традиция ежегодно на 5% повышать зарплаты сотрудникам, проработавшим на своем месте не менее 12 месяцев. Кроме того, новые сотрудники больше боятся потерять работу и менее требовательны к условиям труда, что позволяет работодателям достичь дополнительной экономии средств.
А без квалифицированных специалистов получаем неквалифицированные услуги, в т.ч. и программные продукты. Жаль.
Первый шаг изучения C#(CSharp)
27.09.2007
Изучение любого языка должно начинаться с чтения спецификации языка. Потому для тех кто начинает изучать C#(Csharp) будет очень полезным Спецификация языка C#(Csharp) версии 3 (C# Language Specification. Version 3.0). В ней описаны все особенности языка.
Скачать можно отсюда.