jump to navigation

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
Tags: ,
add a comment

Прозрачная заставка для программы…
June 21st, 2007

Как говорит Никита, я тут покреативил немного smile_regular . Креатива захотелось сразу после первого запуска нового Windows Live Writer. Впечатлила прозрачная заставка со стеклянным эффектом. Три дня и три ночи боролся я с opacity, альфа-каналом и png. В итоге все поиски и начинания свелись к замечательной статье.

Кроме этого на http://www.codeproject.com/csharp/ много мануалов на эту тему. Вроде этого к примеру.

В итоге в фотошопе сделал png картинку и вот что вышло:

splash

Обновка: обновлена страничка с книгами по C#. Надеюсь теперь манулов Вам хватит – С#фера

Ссылки не в тему, но полезно:

1. http://www.blocks4.net/ – новости .NET
2. http://www.codeplex.com/reflectoraddins – аддоны для Рефлектора
3. http://blogs.msdn.com/abhinaba/default.aspx – качественный блог
4. http://blogs.microsoft.co.il/blogs/kim/default.aspx – еще один

Удачи!

…а музыка была: Komaro – AudioTrack 07

del.icio.us Tags: csharp, splash screen

Blogus tags : csharp,заставка,программы

Tags: csharp

Posted in Интерфейс, CSharp | 5 Comments »
Update post + Блоггерская мысляALT+0133
June 15th, 2007

Update: Чесно говоря куин в предыдущем посте был иксуевым. А все из-за \n. Вырубать стоит так:

Console.Writeln(@”qwe\n qwe\n”);

Вывод: qwe\n qwe\n

Мысль: блоггеры, а теперь посмотрите на свой последний пост. Да, который самый последний, который сразу начинается после заголовка блога. О чем он? О том, как я отдыхал на море, пишет механизатор гидропрома, о том, какие вкусные яблоки продавали сегодня на рынке, пишет системный кодер или о хрен поймешь каком-то апдейте, да еще с мыслью вдобавок пишет seregaborzov. Я клоню к тому, что последний пост на блоге дожен быть всегда в тему Вашего блога. Во-первых, читатель впервые попавший к Вам на страничку сразу воспринимает тематику(CSharp, Web-design или Гидропром) блога. Во-вторых, у попавшего к Вам на блог создается первое впечатление(то или не то, а не добавить ли мне RSS? добавить =)).

И это все влияет на то, что у Вас появится или не появится новый ридер. Так что если Вы написали пост про кошек или собак, не оставляйте(кроме блоггеров-животноводов) его последним. Последний пост должен быть в тему, и если я пишу о программинге и ИТ, то не позволительно оставлять последним этот полуметафизический пост. Но на первый раз мы его простим, уж ладно, а пока обмыслевываете и пишите комменты…

PS(=)): придумал новый(может не новый) литературный прием. Название: Текстовая двумеризация. вот как стоит применять текстовую двумеризацию (© seregaborzov):

берем кусок любого текста. к примеру из этого поста. применяем текстовую двумеризацию:

Создание формы происходит с помощью вызова метода InitializeComponent(), описанного в Form1.Designer.cs, после того как в главной программе мы создали новый экземпляр класса Form: Application.Run(new Form1()). При этом. Щас секунду. Але бля. Да. Нет, я же тебе говорил не звони мне! Нет, я уже дома. Все. Все пока. Извините. О чем мы? а, так вот, при этом в методе InitializeComponent() не рекомендуется что-либо изменять, поскольку. Да скока можно. Алё!!! Бля я те говорю я занят! Нет! Неееет! Всё пока. Покааа. У меня гости. Всё, все давай, да. Хуууу. На чем мы остановились? Итак, поскольку можно потерять «всё что должно построиться». При этом следующий код тоже возможен….

Надеюсь Вы уловили -). Могут также применяться и другие двумеризационные текстовые обороты:

щас, подождите, чайник вскипел

минуту, в дверь кто-то звонит

секунду, только шнурки завяжу

ой извините пора идти, дорасскажу в другой раз……

ЗЫ: прием с цветом стырил у Тёмы. Интересно просечёт =)? Если Вы просекли фишку, напишите в комментах – я просек =))) и все что Вы думаете о текстовой двумеризации -)))

…а музыка была: DJ Balu (FreШ 44) – Трек 2

Blogus tags : блоггинг,разное

Posted in Блоггинг, CSharp, Разное | 14 Comments »
Самовывод исходника и треугольник Паскаля на C#…
June 9th, 2007

Сначала случайно наткнулся на задачу о выводе кода программы без обращения к файлам, а потом решил сделать такой вот мини-алгоритмический пост:

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

1 using System;

2

3 namespace ViewCode2

4 {

5 class Program

6 {

7 static void Main(string[] args)

8 {

9 char slash = (char)92; // \

10 char n = (char) 110; // n

11 char kav = (char)34; // “

12 char sko = (char)123; // {

13 char skz = (char)125; // }

14 char tz = (char)59; // ;

15 char pr = (char) 32;

16

17 string s;

18 s = “using System;\n namespace ViewCode2\n{\n class Program\n{\n static void Main(string[] args) \n{\n char slash = (char)92;\n char n = (char) 110;\n char kav = (char)34;\n char sko = (char)123;\n char skz = (char)125;\n char dv = (char)59;\n string s; \n s = \nConsole.Write(s + kav + s.Substring(0, 12) + tz + slash + n + pr + s.Substring(15, 19) + slash + n + sko + slash + n + pr + s.Substring(38, 13) + slash + n + sko + slash + n + pr + s.Substring(55, 31) + pr + slash + n + sko + slash + n + s.Substring(90, 22) + tz + slash + n + pr + s.Substring(115, 19) + tz + slash + n + pr + s.Substring(137, 19) + tz + slash + n + pr + s.Substring(159, 20) + tz + slash + n + pr + s.Substring(182, 20) + tz + slash + n + pr + s.Substring(205, 18) + tz + slash + n + pr +s.Substring(226,8) + tz+pr + slash + n + pr + s.Substring(238,3) +pr + s.Substring(238))”;

19

20 Console.Write(s.Substring(0,242) + kav + s.Substring(0, 12) + tz + slash + n + pr + s.Substring(15, 19) + slash + n + sko + slash + n + pr + s.Substring(38, 13) + slash + n + sko + slash + n + pr + s.Substring(55, 31) + pr + slash + n + sko + slash + n + s.Substring(90, 22) + tz + slash + n + pr + s.Substring(115, 19) + tz + slash + n + pr + s.Substring(137, 19) + tz + slash + n + pr + s.Substring(159, 20) + tz + slash + n + pr + s.Substring(182, 20) + tz + slash + n + pr + s.Substring(205, 18) + tz + slash + n + pr +s.Substring(226,8) + tz+pr + slash + n + pr + s.Substring(238,3) +pr + s.Substring(242));

21 Console.ReadKey();

22 }

23 }

24 }

исходник в конце поста

Основной проблемой является \n, так как при выводе в строке всегда переносит каретку (хотя все эти \” или \a можно отрубить). Пришлось использовать ascii. Если у Вас есть реализация по-интересней и короче, прошу писать в комменты

2. Треугольник Паскаля.

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

Каждый элемент уровнем ниже получается как сумма 2-х верхних. Реализация с помощью итераторов.

Исходный код, включает оба алгоритма – Algorithms.rar.(20Кб)

PS(© seregaborzov): Если театр начинается с вешалки, то программа с иконки. smile_nerd

…а музыка была: Jay-Z – TV Track

del.icio.us Tags: csharp, quine, algorithm

Tags: csharp программирование quine pascal

Blogus tags : csharp,программирование

Posted in Программирование, CSharp | 4 Comments »
Выключаем компьютер с помощью CSharp…
June 5th, 2007

Стал выключать комп, а тут такое:

scrinshut

Оказалось прогу написал smile_regular. Смысл:

70 public class Shutdown

71 {

72

73 ///

74 /// Windows restart

75 ///

76 public void Restart()

77 {

78 StartShutDown(“-f -r -t 5″);

79 }

80

81 ///

82 /// Log off.

83 ///

84 public void LogOff()

85 {

86 StartShutDown(“-1″);

87 }

88

89 ///

90 /// Shutting Down Windows

91 ///

92 public void Shut()

93 {

94 StartShutDown(“-s -t 00″);

95 }

96

97 private static void StartShutDown(string param)

98 {

99 ProcessStartInfo proc = new ProcessStartInfo();

100 proc.FileName = “cmd”;

101 proc.WindowStyle = ProcessWindowStyle.Hidden;

102 proc.Arguments = “/C shutdown “ + param;

103 Process.Start(proc);

104 }

105 }

Скачать исходник – ShutDownComp.rar

PS: кстати пишу из нового Windows Live Врайтера. Классный дизайн и пару новых фич. Респект.

ЗЗЫ: все кодирующие на .NET должны пойти и заценить:

Microsoft Silverlight 1.1 Developer Reference

.NET 2 Common Types and References

Windows Vista Developer Reference

рЕЩЕ: Все блогерры должны сделать себе бегущие строки и понтоваться, перед такими же понтовщиками:

signbot

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

…а музыка была: 085 ENRIQUE – HERO

Blogus tags : csharp,.NET,posters,computer,shutdown,Paris Hilton

Tags: csharp .NET posters computer shutdown Paris Hilton

del.icio.us Tags: csharp, .NET, posters, computer, shutdown, Paris Hilton

IceRocket Tags: csharp, .NET, posters, computer, shutdown, Paris Hilton

43 Things Tags: csharp, .NET, posters, computer, shutdown, Paris Hilton

я тоже люблю тэги…=)

Posted in CSharp | No Comments »
Tasty links for .NET koders…
May 28th, 2007

Надоело каждый раз вводную чушь писать. Гагарин в этом смысле молодец. Поехали:

http://www.windowsforms.net – свежий интересный портал

http://www.syncfusion.com/FAQ/WindowsForms/Default.aspx – FAQю, ну в смысле фак для Вас

http://www.tlbox.com/programmers/ – проги для кодеров

http://www.usabilityviews.com/simply_google.htm – не в тему, но в тему

http://blog.not-a-kernel-guy.com/ – популярный, понятный интересный блог

http://weblogs.asp.net/jgalloway/ – интересный блог для всех (у)дотНЭТовцев

http://wpf.netfx3.com/files/25/default.aspx – 3-ий фреймворк

http://www.searchdotnet.com/default.aspx – сказка просто

http://www.dofactory.com/Patterns/Patterns.aspx – паттерны

http://www.microsoft.com/Rus/Msdnaa/Curricula/Default.mspx – не все то гэ, что мс

http://www.connectionstrings.com/default.aspx – все виды коннект-строк ко всем БД

http://www.dotnetcharting.com/home.aspx – диграммы, кружки и все freeware

http://agilemanifesto.org/ – супер-вещь, помогает не только в осознании Agile, но и в мотивации. Какие люди подписались!

http://www.webforefront.com/ – мультипортал

http://evanhoff.com/Default.aspx – контентный блог Net девелопера

http://classicpm.wordpress.com/ – не знал, что на вордпрессе существует этот блог. респект автору!

http://www.developeru.info/default.aspx – пишет интересно, понятно, объемно и по-русски.

жаль, что ругаться плохо=)…вопщем много всего

http://johnholliday.net/Default.aspx – много интересных вещей

…а музыка была: Moby – Temptation

Tags: .NET csharp программирование programming

Blogus tags : .NET,csharp,программирование,programming

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
Tags:
add a comment

ООП-термины…
July 14th, 2007

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

ООП – технология создания сложного ПО, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа(класса), а классы образуют иерархию с наследованием свойств.

Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений.
Основные принципы ООП:

1. Абстрагирование – процесс выделения абстракций в предметной области задачи.

Абстракция – совокупность существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа. Современный уровень абстракции предполагает объединение всех свойств абстракции (как касающихся состояния анализируемого объекта, так и определяющих его поведение) в единую программную единицу некий абстрактный тип (класс).

1. Ограничение доступа – сокрытие отдельных элементов реализации абстракции, не затрагивающих существенных характеристик ее как целого.

Необходимость ограничения доступа предполагает разграничение двух частей в описании абстракции:

Интерфейс – совокупность доступных извне элементов реализации абстракций (основные характеристики состояния и поведения);

Реализация – совокупность недоступных извне элементов реализации абстракции (внутренняя организация абстракции и механизмы реализации ее поведения).

Ограничение доступа в ООП позволяет разработчику:

- выполнять конструирование системы поэтапно, не отвлекаясь на особенности реализации используемых абстракций.

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

Инкапсуляция- сочетание объединения всех свойств предмета (составляющих его состояния и поведения) в единую абстракцию и ограничения доступа в реализации этих свойств.

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

В ООП используются 2 вида иерархии:

Иерархия «целое/часть» – показывает, что некоторые абстракции включены в рассматриваемую абстракцию как её части, например, лампа, состоит из цоколя, нити накаливания и колбы. Этот вариант иерархии используется в процессе разбиения системы на разных этапах проектирования.

Иерархия «общее/частное» – показывает, что некоторая абстракция является частным случаем другой абстракции, например, «обеденный стол – конкретный вид стола», а «столы – конкретный вид мебели». Используется при разработке структуры классов, когда сложные классы строятся на базе более простых путем добавления к ним новых характеристики, возможно, уточнения имеющихся.

Один из важнейших механизмов ООП – наследование свойств в иерархии общее/частное.

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

1. Типизация – ограничение, накладываемое на свойства объектов и препятствующее взаимозаменяемости абстракций различных типов (или сильно сужающее возможность такой замены). Использование принципа типизации обеспечивает:

- ранее обнаружение ошибок, связанных с недопустимыми операциями над программными объектами;

- упрощение документирования;

- возможность генерации более эффективного кода;

Тип может связываться с программным объектом статически (тип объекта определен на этапе компиляции – ранее связывание) и динамически (тип объекта определяется только во время выполнения программы – позднее связывание). Реализация позднего связывания в языке программирования позволяет создавать переменные – указатели на объекты, принадлежащие различным классам (полиморфные объекты), что существенно расширяет возможности языка.

1. Параллелизм – свойство нескольких абстракций одновременно находиться в активном состоянии, т.е. выполнять некоторые операции.
2. Устойчивость – свойство абстракции существовать во времени независимо от процесса, породившего данный программный объект, и/или в пространстве, перемещаясь из адресного пространства, в котором он был создан.

Различают:

- временные объекты, хранящие промежуточные результаты некоторых действий, например вычислений;

- локальные объекты, существующие внутри подпрограмм, время жизни которых исчисляется от вызова подпрограммы до её завершения;

- глобальные объекты, существующие пока программа загружена в память;

- сохраняемые объекты, данные которых хранятся в файлах внешней памяти между сеансами работы программы.

+
Объектно-ориентированное программирование требует знания четырех вещей:(не факт)

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

(2) Многократное использование требует от программиста познакомиться с большими библиотеками классов. А это может оказаться сложнее, чем даже изучение нового языка программирования. Библиотека классов фактически представляет собой виртуальный язык, который может включать в себя сотни типов и тысячи операций. В языке Smalltalk, к примеру, до того, как перейти к практическому программированию, нужно изучить значительную часть его библиотеки классов. А это тоже требует времени.

(3) Проектирование классов — задача куда более сложная, чем их использование. Проектирование класса, как и проектирование языка, требует большого опыта. Это итеративный процесс, где приходится учиться на своих же ошибках.

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

***

PS(пародия на Задорнова): Тихо! Тихо! Не время, не время. Тихо! Набрали воздух, набрали…ждём…ждём. Тишину! Тишину! Потерпите! Вот щас, тишина! Приготовились, готовы? Тихо! Я Вас умоляю. Тихо!

Михаил Владимирович, Михаииил…Владимирович…умоляю Вас, дети уже уснули, полдник у нас в 16.00, пусть отдохнут… — напуганно шептала Вера Николаевна, воспитательница д/с № 96 «Малыш».

PPS(возможно и был такой случай в театре):

Дуняша. Говорите.

Епиходов. Мне бы желательно с вами наедине…(вздыхает)

Дуняша(смущенно). Хорошо… только сначала принесите мне мою тальмочку…Она около шкапа…тут немножко сыро…

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

Да…и зайдите в Размышляешь? там появилась новая pdf версия за последний период

Blogus tags : ООП; программирование

Posted in Программирование, Юмор | No Comments »
Эдгар Дейкстра отвечает на вопросы студентов…
July 4th, 2007

Алгоритм Дейкстры? Мне жаль, если Вы знаете только это об этом гуру информатики. В сети масса ресурсов о Дейкстре, поищите – он того стоит. Я же привожу часть ответов Дейкстры на вопросы студентов.

Перевод с англ. Олег Хачкинаев (Alf)
Ответы на вопросы студентов отделения программного обеспечения
[Восстановить примерные вопросы мы предлагаем читателю в качестве упражнения.]

• Красивые безделушки — не всегда усовершенствование, возьмите, к примеру, последовательность: Классная доска => Диапроектор => PowerPoint.
• Мне не следует тратить время на компьютер лишь потому, что я ученый-компьютерщик. [Медикам-исследователям вовсе не обязательно самим страдать от болезней, которые они изучают.]
• Это не задача информатики — продвигать «компьютеризацию», скажем, разрабатывая прожорливые приложения и тем самым создавая рынок для следующего поколения вычислительного оборудования. [Медикам-исследователям не следует изобретать новые болезни, чтобы создавать рынок для новых лекарственных средств.]
• Задача Университета — не предлагать то, что общество просит, а давать то, что обществу необходимо. [Те вещи, что общество просит, в основном хорошо понятны, и для них не нужен Университет; он же должен предлагать то, что никто больше предоставить не в состоянии.]
• На наше формирование большое влияние оказывают инструменты, которые мы используем, в частности, формализмы, которые мы используем, формируют наш образ мышления лучшим или худшим образом, и это значит, что мы должны быть чрезвычайно осторожны в выборе того, чему учить и чему учиться, потому что разучиться потом совершенно невозможно. [Много лет назад, когда мне нужен был новый ассистент, одним из требований было «Не иметь даже понятия о Фортране», а в высшей школе в Сибири запрещено преподавание Бейсика.]
• Программист должен уметь демонстрировать, что его программа обладает требуемыми свойствами. Если эта мысль приходит ему в голову слишком поздно, он наверняка не сможет справиться с этой задачей: только если он позволяет этой цели влиять на разработку, есть надежда, что он справится с ней. Окончательная проверка не обеспечивает этого влияния и по сути дела является телегой, запряженной впереди лошади. Но именно это и происходит в программных фирмах, в которых «программирование» и «контроль качества» осуществляют разные группы. [Вряд ли стоит говорить, что эти фирмы не дают никакой гарантии качества.]
• Необходимые приемы эффективного доказательства достаточно формальны, но до тех пор, пока программированием занимаются люди, не владеющие этими приемами, кризис программного обеспечения будет сохраняться и рассматриваться как неизлечимая болезнь. А вы знаете, что делают неизлечимые болезни: они приводят к появлению знахарей и шарлатанов, которые в данном случае принимают личину Гуру Программирования.
• Кое-кто из вас сомневается, что упомянутые ранее «приемы эффективного доказательства», столь изящные для маленьких программ, способны масштабироваться, я цитирую, «применимо к устрашающим размерам и явной сложности большинства программ». Что ж, приемы окажутся бесполезны, если вы попытаетесь использовать их для распутывания хаоса, созданного группой некомпетентных, неорганизованных программистов. Их сила проявляется в фазе конструирования, когда (i) они приводят к значительно более коротким исходным текстам, чем созданные без их помощи, и (ii) длина вывода программы растет не быстрее, чем линейно, с ростом самой программы. Наконец, программы, произведенные таким способом, получаются бесконечно лучшими, чем обычный программный хлам. Мы не должны забывать, что программисты живут в мире искусственно созданных сущностей, это отличает их от большинства других ученых. Программист не должен спрашивать, насколько применимы технологии надежного программирования. Он должен создать мир, в котором они применимы; это единственный путь обеспечить высокое качество разработки. «Возможности машины дают нам теперь достаточный простор для создания хаоса. Неограниченные возможности для запутывания всего на свете! Выработка строгой интеллектуальной дисциплины сохранять вещи достаточно простыми — это настоящий вызов в этой среде, как технический, так и образовательный».
• «Вернемся к нашему первоначальному вопросу: может ли наука о компьютерах спасти компьютерную промышленность? Мой ответ таков: если компьютерную промышленность вообще можно спасти, только наука о компьютерах способна сделать это. Но может пройти немало времени, пока компьютерная промышленность — в особенности компании, крепко стоящие на ногах, — согласятся с этой точкой зрения. Почти наверняка это потребует больше времени, чем тот ограниченный период, на который они строят свои будущие планы. Тем временем академический мир — который традиционно строит гораздо более далеко идущие планы, — не имеет выбора. Он вынужден совершенствовать лучшие навыки, которые может выработать информатика, и обучать им. Чем поддаваться внешнему давлению и распространять сегодняшние заблуждения, лучше прекратить эту деятельность вовсе». Но чтобы подчеркнуть, как много терпения нам понадобится, позвольте привести еще одну старую цитату (1988): «Слишком мало людей осознает, что высокие технологии, столь знаменитые сегодня, — это в основном математические технологии». (Выдержка из 2nd David-report, названного так в честь председателя комитета Dr. E.E. David Jr.)
• Нет, я боюсь, что Информатика страдает от популярности Интернета. Он привлекает все возрастающую — если не сказать сметающую все на своем пути — массу студентов с весьма слабыми научными склонностями, и при более близком знакомстве Интернет только укрепляет господствующую (и несколько вульгарную) одержимость скоростью и объемами.
• Да, я разделяю ваше беспокойство: вряд ли можно научиться хорошо программировать, пройдя соответствующий курс. Ситуация сходна с аналогичной в математике, где программа обучения ориентирована на математические результаты; как заниматься самой математикой — студент должен впитать самостоятельно, так сказать. Один из доводов в пользу манипуляции символами и вычислительных доказательств — им гораздо легче научить, чем словесно-графическим доказательствам. Широкое введение курсов подобной вычислительной методологии, впрочем, столкнется с непреодолимыми политическими проблемами.
• В программном бизнесе имеется множество предприятий, которым неясно, что наука может помочь им; им также неясно, что она должна попытаться сделать это.

и еще в Размышляешь? много цитат от Дейкстры.

…а музыка была: Snoop Dogg feat. Pharell Williams – Let’s Get Blown

зы: если кто-то не понимает зачем я вставляю …а музыка была, так это для того, чтоб вы слушали именно этот трек при прочтении поста, чтобы оказаться на одной волне с автором и прочувствовать всю литературную подоплеку конкретного рассказа…

Blogus tags : программирование

del.icio.us Tags: progarmming, Dijkstra

Tags: Dijkstra programming

Posted in Программирование | 5 Comments »
Some tips for team leaders and project managers…
June 29th, 2007

Заголовок если переводить как-то не звучит =):
40-часовые недели

Не разрешайте Вашим подопечным работать более 40 часов в неделю. Это должно быть правилом, а любая задержка должна быть скорее исключением. Таким образом Вы не только поддерживайте работоспособность команды, но и сохраняете сотрудника на занимаемой должности на более длительный срок, иначе он может просто сбежать от Вас.
Автоматизируй это!

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

10-15 минут вполне достаточно для того, чтобы выяснить чем занимался программист, какие у него проблемы. Это намного эффективнее, чем еженедельные собрания.
Демо для заказчика

Всегда имейте под рукой демонстрацонную версию проекта. Это всегда положительно влият на настроение заказчика и он наглядно себе может представить как идет работа над проектом.
Пробные испытания

Очень здорово если Вы сможете проводить пробные испытания на стороне клиента. Успех пробных версий придаст уверенности в том что Вы на правильном пути.
Регрессионные тесты

Такого рода тесты должны проводиться автоматически и постоянно, проверяя не теряете ли Вы функциональность проекта, не катится ли он по наклонной(регрессирует). Следите за производительностью программы и “сочетаемостью” кода, функций.
Только лучшие инструменты

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

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

Следите за результатами тестирования кода. Вы сможете следить за тем, что реализуется именна та функциональность, которую желает клиент, причем реализуется правильно и выбрасывает исключения где это необходимо.
Повесьте в комнате доску(whiteboard)

Визуальные рекомендации с элементами “черчения” намного эффективнее и поучительнее болтавни с размахиванием руками.

Есть что добавить?

PS(интересная ремарка): Вы можете сказать в чем различие между лидером и менеджером программного проекта?

“No one has yet figured out how to manage people effectively into battle; they must be led,” wrote John Kotter in ‘What Leaders Really Do’. He notes that leadership is about helping people cope with change, while management is about coping with complexity. Leaders set direction, managers plan and budget. Leaders align people, managers organize and staff. Leaders motivate, managers control.

http://www.poppendieck.com/leadership.htm

и ещё(ё ё ё ё ё…тренирую мизинец…ё ё ё ё ё ё):

The best leaders are those who lead by example. The rest are simply managers.
It’s pretty easy to sit back and draw a few diagrams, quote a few principles. It’s harder to implement those diagrams and follow those principles in practice. Don’t fall into the trap of thinking you are better than those around you. It doesn’t matter how much you think you know, you sink or float with your team and are only as strong as your weakest developer. Remember, it only takes one really nasty bug to derail an entire project.
Be creative and be edgy, but never forget where the rubber meets the road. Architecture is worthless until it is implemented. Be a coder and lead by example.

+ прикольная песня о базах данных + =)

PPS: да прибудет с Вами сила MSIL’a fingerscrossed

…а музыка была: Krec – Последний полёт

Blogus tags : программирование,tips,team leader

del.icio.us Tags: программирование, tips, team leader

Tags: программирование tips team leader

и не говорите… сам тащусь от таких постов

Posted in Программирование | No Comments »
6 способов писать более лучший код…
June 27th, 2007

Оригинал – http://www.learncpp.com/general-programming/six-language-independent-ways-to-write-better-code/

Я не буду дословно переводить, а лишь приведу основные тезисы выдвинутые в статье-оригинале. Это даже скорей не перевод, а собственное мнение-пересказ по поводу…
1. Пишите код способный к расширению.

Это значит, что написав код и решив конкретную проблему, Вы должны быть готовым к добавлению новых функций. Написав программу поддерживающую bmp – формат, не стоит останавливаться. Поддержите и jpg в программе или сделайте код, который будет готов к внесению новой функциональности “малой кровью”.
2. Не надо никаких магических чисел.

for iii = 0 to 15
if (slot[iii].type == 12)
return true;

Что можно сказать об этом коде? Цикл. А при чем тут 15 или 12? Почему не 58 или 36? Используйте параметризованные переменные и Вы улучшите читабельность кода в разы:

for iii = 0 to MAX_INVENTORY_SLOTS
if (slot[iii].type == TYPE_ITEM_POTION)
return true;

Теперь понтятно, что это за цикл и с чем его едят.
3. Комментирование это почему, а не что.

Часто комментирование кода, заключается в объяснении и названии всех его “участников”. Комментируйте код, объясняя принцип работы этого кода. Перефразируя Джобса: Комменты это не то, как это выглядит, а то, как это работает.
4. Никаких велосипедов.

Одним из преимуществ ООП является повторное использование кода. Многие забывают об этом, вставляя “пятое колесо” в программу. В сети масса программерских ресурсов, где есть исходники и оупен сорс. Пользуйтесь, но не забывайте о лицензиях.
5. Работайте с приращением.

Не пишите код, оставляя его тестирование на потом. Доводите код до ума сразу, отлавливая все баги. Тем самым Вы сэкономите время на переключении с одной задачи на другую.
6. Найдите критиков для своих программ.

Общайтесь, выкладывайте свои программы на обозрение и тестирование, прислушивайтесь к советам товарищей по ремеслу, исправляйте ошибки.

Ссылка в тему: http://www.developers.org.ua/archives/a4/2007/04/04/10-veschey-kotoryim-ya-nauchilsya-za-10-let-professionalnoy-razrabotki-po/

…а музыка была: Dire Straits – Expresso Love

Blogus tags : программирование

del.icio.us Tags: programming

Tags: programming

Posted in Программирование | 11 Comments »
Прикольный анекдот…=)
June 22nd, 2007

Ксюша Собчак рассказала анекдот. Не мне лично, а по телеку. Прикол в том, что этот анекдот я сначала прочел в оригинале на каком-то забугорном сайте. Вот он как выглядит (какая-то вырезка из газеты, видимо случай был на самом деле -)):

funny-279

smile_teeth

Ксюша же рассказала его так:

DJ на радиостанции объявил конкурс: необходимо придумать слово, которого нет в русском языке и придумать предложение вместе с этим словом. В качестве приза была объявлена поездка на курорт…

- И у нас первый звонок. Да, здраствуйте, как Вас зовут?

- Николай

- Здраствуйте Николай! Какое же слово Вы придумали?

- Мое слово: ИДНА!

- Что ж я смотрю в словари и действительно такого слова нет! Ну а какое же предложение Вы составили с этим словом?

- Иди нахуй!

DJ сразу засуетился. И ничего не придумал лучше, чем поставить новую песню. После звонков от дирекции радио по поводу мата в эфире и окончания песни, DJ снова вернулся в эфир:

- А наш конкурс продолжается и у нас уже есть новый дозвонившийся! Здраствуйте, представьтесь…

- Здраствуйте, меня зовут Игорь и мое слово: ЭТСНО

- ЭТСНО, да действительно нет в словаре такого оригинального слова! Что ж Игорь, а какое же предложение Вы составили с ЭТСНО?

- Это снова я. Иди нахуй!

smile_teeth

вот такое совпадение smile_wink. английский лаконичней, но наш ярче -)

…а музыка была: Ленинград – Звезда рок-н-ролла

del.icio.us Tags: humor, radio

43 Things Tags: humor, radio

Blogus tags : анекдот,юмор

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
Tags:
add a comment

Класс для работы с Mozilla Firefox…
сентябрь 15th, 2007

Используем:

1 class FirefoxUtilities
2 {
3 private string firefoxPath;
4
5 ///
6 /// Initializes a new instance of the class.
7 ///
8 public FirefoxUtilities()
9 {
10 firefoxPath =
11 string.Format(@”{0}Mozilla Firefoxfirefox.exe“,
12 Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
13 }
14
15 ///
16 /// Open Firefox if Firefox is available
17 ///
18 /// the url
19 private void Open(string arguments)
20 {
21 if (!IsFirefoxAvailable())
22 throw new Exception(“Firefox is not installed.“);
23 else
24 Process.Start(firefoxPath, arguments);
25 }
26
27 ///
28 /// Determines whether [is firefox available].
29 ///
30 ///
31 /// true if [is firefox available]; otherwise, false.
32 ///
33 public bool IsFirefoxAvailable()
34 {
35 FileInfo fiFirefox = new FileInfo(firefoxPath);
36 return fiFirefox.Exists;
37 }
38
39 ///
40 /// Opens the firefox.
41 ///
42 public void OpenFirefox()
43 {
44 Open(string.Empty);
45 }
46
47 ///
48 /// Opens the firefox with a specific url.
49 ///
50 /// the url
51 public void OpenFirefox(string url)
52 {
53 Open(url);
54 }
55
56 ///
57 /// Opens the firefox in save mode.
58 ///
59 public void OpenFirefoxInSaveMode()
60 {
61 Open(“-safe-mode“);
62 }
63
64 ///
65 /// Opens the firefox in a new window.
66 ///
67 /// the url
68 public void OpenFirefoxInNewWindow(string url)
69 {
70 Open(string.Format(“-new-window {0}“, url));
71 }
72
73 ///
74 /// Opens the firefox in a new tab.
75 ///
76 /// the url
77 public void OpenFirefoxInNewTab(string url)
78 {
79 Open(string.Format(“-new-tab {0}“, url));
80 }
81
82 ///
83 /// Opens the mozilla website.
84 ///
85 public void OpenMozillaWebsite()
86 {
87 Process.Start(“http://www.mozilla-europe.org“);
88 }
89 }

…а музыка была: 50 Cent – Just A Lil Bit (Produced By Scott Storch)

Blogus tags : csharp,mozilla,firefox,class

Tags: csharp mozilla firefox

del.icio.us Tags: csharp, mozilla, firefox

Опубликовано в рубрике CSharp | No Comments »
Radio or Combo, Left- or Right- Align…
сентябрь 14th, 2007

Давно я не писал на тематику Интерфейсов. Но вот недавно наткнулся на неплохой блог и решил потрендеть и у себя на тему UI и расположения контролов. Думаю, что дискуссия будет полезна Всем, так что присоединяйтесь:

1. http://ilikeellipses.com/2007/07/24/radios-or-combo-boxes/ – оригинал, подделка =):

Чаще всего опции в программах задаются в виде радиокнопок,

Horizont

Vertical

либо в виде комбобоксов:

ComboBox

Автор пишет, что лучше выбирать комбо, поскольку комбо экономит пространство и легче в обращении, так как добавить новую строку в комбо значительно легче, чем создать новый радио + можно группировать дополнительные “подопции”:

ComboBoy

Но. С другой стороны, при использовании радио пользователь делает один клик для выбора опции, а в комбо два. Да и сам интерфейс выглядит на мой взгляд “спокойней” и удобней с радиобатонами.

Какие мысли у Вас?

2. http://ilikeellipses.com/2007/07/30/to-left-align-or-to-right-align-that-is-the-question/ – оригинал, перевод:

С этой проблемой сталкиваются многие, в том числе и я. Действительно иногда сложно выровнять, чтобы было красиво, а иногда хочется еще и выпендриться. Вот три картинки:

LeftAlig

FarLeftA

UnequalL

Думаю Все прочуствовали разницу в расположении связки label-textbox. На мой взгляд, левое выравнивание выглядит лучше, но правое более компактно и экономично. Что выбираете Вы?

…еще конечно существуют какие-нить стандарты для этих случаев – я не искал, так что есть ссылки кидайте. Хотя цель любого UI не соответствовать стандартам, а быть удобным. (предлагаю ввести новый акроним: UUI – Useful User Interface smile_nerd)

…а музыка была: T.I. – My Love feat Justin Timberlake

Blogus tags : ui,interface,user,пользователь,интерфейс,контролы

del.icio.us Tags: ui, interface, user

Tags: ui interface user

Опубликовано в рубрике Интерфейс | 9 Comments »
78 ресурсов, сделающих жизнь web-дизайнера проще…
сентябрь 14th, 2007

Не в том смысле, что эти ресурсы заплатят за Вас коммунальные услуги или проголосуют на выборах (а у Вас кстати, начали дороги ремонтировать в городе? smile_regular), а в том что создавать новые шедевры на просторах паутины станет проще и приятней. Большинство ссылок, наверняка уже заюзаны Вами, но не все же такие крутые =):

0. http://www.vandelaydesign.com/blog/design/resources-simplify-design/ – оригинал этого поста и неплохой ресурс в целом (надеюсь, что Вы поймете причину того, что я начал с 0 =))
Для подбора цвета

1. Color Schemer Gallery

2. I Like Your Colors

For more color-related tools, see Find the Perfect Colors for Your Website.
Free CSS Navigation Menus

3. Listamatic

4. Exploding Boy

5. Alvit.de

6. Dynamic Drive

7. Our own collection of CSS Menus
Фотки

8. Stock.Xchng – free stock photos.

9. Stock Expert – Low cost stock photography.

10. iStockphoto – Low cost stock photography.

11. Big Stock Photo – Low cost stock photography.
Иконки

* 12. IconFinder.net – Icon search engine
* 13. 31 Sources of Quality, Free Icons

CSS-шаблоны

14. Layout-O-Matic – A tool that lets you create your own CSS-based template.

* 15. CSS Creator – CSS layout generator.
* 16. Layout Gala – Collection of templates.
* 17. Open Designs – Open source templates.
* 18. Open Source Templates – More open source templates.

Проверь ссылки

19. DeadLinks.com

* 20. Online Link Validation Tool

Тестирование сайта в разных браузерах

21. Browser Shots

* 22. Browsercam
* 23. NetMechanic

24. Effectively Testing Your Website in Multiple Browsers.
Валидаторы

25. HTML

* 26. CSS
* 27. RSS and Atom
* 28. RSS, Atom, and KML

Скрипты

29. JavaFile

* 30. PHP Freaks
* 31. DynamicDrive
* 32. The JavaScript Source
* 33. PowerfulScripts
* 34. DHTMLGoodies.com
* 35. PHP Open Source Scripts

Favicon для сайта

36. Dynamic Drive

* 37. Favicon from Pictures
* 38. FaviconGenerator.com
* 39. Favicons with text instead of images
* 40. Graphics Guru

Шрифты

41. 80 Beautiful Typefaces for Professional Design (Smashing Magazine)

* 42. dafont.com
* 43. Urban Fonts
* 44. 1001 Free Fonts

Чтобы быть в стиле Web 2.0

45. Stripe Generator

* 46. Web 2.0 Badges
* 47. More Web 2.0 Badges
* 48. Web 2.0 Icons
* 49. Web 2.0 Logo Creator

Сделай кнопочки

50. Dynamic Drive

* 51. Kalsey.com
* 52. Lucazappa.com
* 53. Blog Flux
* 54. Yugatech.com
* 55. MyCoolButton
* 56. Buttonator

Сделай себе градиенты

57. Dynamic Drive
58. 4u2ges.com
Скругленные уголки

59. CSS Rounded Box Generator

60. Spiffy Corners
CSS Speech Bubbles

61. WillMayo.com

* 62. CSS Play

CSS инструменты

63. CSS Tidy – a CSS parser and optimizer.

* 64. Clean CSS – a CSS optimizer and formatter.
* 65. CSS Optimizer
* 66. CSS Analyzer – a validator plus.
* 67. CSS Mate – online CSS editor.
* 68. CSS Compressor

Чтобы еще проще было

* 69. Web Host Uploader – A simple FTP tool that eliminates the need to manually upload changes with an FTP client. This tool uploads changes with a single click.
* 70. Web Standards Checklist from Max Design.
* 71. Firebug Add-On for Firefox – Edit, debug and monitor your CSS, HTML and JavaScript in any live web page.
* 72. Web Developer Firefox Add-On – Adds a toolbar with a number of features and web developer tools.

- Сорри Серж, бат ай ду нот си эсчо сикс линкс. Где же Вэй?

- Фак офф конечно, но не забывай про http://seregaborzov.wordpress.com/tag/web-design/, там эсчо мэни юзфул ссылок.

…а музыка была: Океан Эльзи – Без Бою (сё хотни, а хочешь из мэду, я налэю тоби вина…жека, про че хоть песня? я тока врубаюсь, что я не сдамся без бою smile_teeth)

Blogus tags : web-дизайн,web design,links,ссылки

del.icio.us Tags: web-дизайн, web design, links, ссылки

Tags: web-дизайн web design links ссылки

Опубликовано в рубрике Web Design | 10 Comments »
Паттерны проектирования на C#…
сентябрь 12th, 2007

Паттерны проектирования – описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте. Статья в Wiki дает несколько иное опредление, но определение, которое привел я, дает нам Банда четырех с своей книге: “Приемы объектно-ориентированного проектирования. Паттерны проектирования“. Я не хочу долго рассказывать про то, что и так написано в Wiki, про книги, которые необходимы для изучения паттернов или про то, а вапще к чему это все. Это я оставляю на Вас. На себя же я беру реализацию каждого паттерна на C#, пару примеров использования и еще что-нибудь интересное связанное с шаблонным проектированием. Конечно, Вы будете правы, сказав: “Эй Серега, все эти паттерны уже давно реализованы на CSharp! Зачем тебе вся эта афро-американская работа?”. На что я скромно отвечу: “Дайте мне возможность разобраться во всем самому и помочь разобраться Вам”. Вопщем это как бы анонс новой рубрики на блоге.

А пока зацените списки блогов с мсдн:

http://blogs.msdn.com/categories/detail.aspx?category=C%23

http://blogs.msdn.com/categories/detail.aspx?category=.NET

и посетите отличный блог на вордпрессе: Jim 2.0’s Blog

…а музыка была: 001 SADE – NO ORDINARY LOVE

del.icio.us Tags: .NET, design patterns, csharp

Tags: .NET design patterns csharp

Blogus tags : .NET,design patterns,csharp,паттерны проектирования,шаблоны,программирование

Опубликовано в рубрике CSharp, Design Patterns | No Comments »
Посмотрим, посмотрим…
сентябрь 12th, 2007

Спалил тему и уже зарегился.

Выполняю условия: [Image]

Реально все это выглядит заманчиво, но:

- рекломадателям для начала нужно понять, что пост в нормальном блоге – это не реклама, а ценный, качественный контент. И поэтому если Вы действительно хороши, блоггер действительно напишет хорошо. В противном случае, смысла я не вижу. При этом рекломадатель должен понимать, что без субъективного фактора блоггера здесь не обойтись (специфика блогописательства)

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

А так сервис неплохой. Уже какие-то заявки висят. Чем черт не шутит, тем и не шутит. smile_regular

PS: а на завтра у нас Паттерны – зуб даю и еще в табло, если не выложу пост =).

…а музыка была: Никольский – Когда поймешь умом

Blogus tags : блоггинг,заработок

Опубликовано в рубрике Blogging | 17 Comments »
« Предыдущие Заметки
Следующие записи »

*
Подпишись на RSS

Получать Посты На E-Mail
*
Страницы
o Размышляешь?
o С#фера: статьи, книги, ресурсы
o Эбаут Серёжа Борзов
*
Рубрики
o .NET (13)
o Blogging (12)
o CSharp (28)
o Design Patterns (1)
o Интерфейс (6)
o Корпорация (15)
o Программы (8)
o Юмор (27)
o Life (23)
o Operating Systems (5)
o Programming (17)
o SEO (5)
o Web 2.0 (4)
o Web Design (9)
*

*
Лучшие Посты
o Полезная информация для блоггеров…
o !5+6+9+10+15+20+25+30+40+50×6…
o Как создать логотип в стиле web 2.0…
o CSS меню с закладками и Верстка слоями…
o Как придумать название и создать логотип для компании…
*
Размышляешь?
Слишком плохо, что те люди, которые знают как управлять страной, водят такси или стригут волосы. Джорж Бернс
*
Blog-эргономика
o Добавь в Technorati Favorites
o Мой ящик с файлами
o Рейтинг блогов
o [AD]
o Я и Opera
o [AD]
o google
o lenta
o PageRank Checking Tool
o RSS
o toodoo
o yahoo
*
Блог блогу – друг
o ЗАБИЯКА
o Креативный блог Никиты Селецкого
o О PHP и о жизни…
o Павел Воронин – зарисовки на полях
o InGeekLog
*
Я читаю
o ITBlogs
o RSDN
o The Code Project
*
brat-line@yandex.ru
книга жалоб и предложений идей и знакомств
*
Архив
o сентябрь 2007 (18)
o август 2007 (7)
o июль 2007 (6)
o июнь 2007 (7)
o май 2007 (10)
o апрель 2007 (15)
o март 2007 (11)
o февраль 2007 (5)
o Январь 2007 (14)
o декабрь 2006 (9)
o Ноябрь 2006 (16)
o Октябрь 2006 (17)
o сентябрь 2006 (5)
*
Присоединяйтесь к обсуждению…
Полезная иÐ… on Посмотрим, посмо…
Kpoxa on Полезная информÐ…
seregaborzov on Полезная информÐ…
Kpoxa on Полезная информÐ…
Полезная иÐ… on Посмотрим, посмо…
*
Лучшие ссылки на блоге today
o 15daysofjquery.com
o teknobites.com/2007/07/19…
o rdos401.org
o smashingmagazine.com/2007…
o google.com/apis/maps
*
Посещений
o 34,771 hits
*
Рейтинг SIMPLETOP.NET [Image]
*
View blog authority

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
add a comment

Set next statement (установка “нового значения” или следующей позиции) очень полезная фича дебаггера в ВС2005, которая позволяет перемещать указатель команд (instruction pointer – IP) на следующие позиции выполнения при отладке. Не вдаваясь в подробности работы механизма, посмотрим как применить эту фичу на практике:

К примеру нам необходимо отладить такой простенький код:

class Example{

static void Main(string[] args) {

int initialValue = 20; initialValue

++; Console.WriteLine(initialValue);

Console.ReadLine();

}

}

Жмем F11 (Step Into) и начинаем пошаговую отладку. Доходим до строки как показано на рисунке:

121

Кликаем правой кнопкой на строке initialValue++ и в контекстном меню выбираем Set Next Statement:

122

Дальше жмем F5. Смотрим на результат: 22, хотя по смыслу должен быть 21. Что произошло? Мы просто вернулись на один оператор (initialValue++ ) назад и прибавили еще раз 1. В чем же фишка? Фишка в том, что отладку можно проводить избегая выполнения отдельных операторов или методов, что помогает при отладке, когда мы хотим увидеть результат выполнения кода без использования каких-либо сомнительных строк (просто перескакивая их).

Ссылки в тему: пост-первоисточник, msdn

PS (в продолжении мыслей о дизайне): чем грамотный вордпрессовец отличается от безграмотного вордпрессовца? Тем что безграмотный так и оставляет в ссылке на пост русский текст, а грамотный заходит в Правку и в Post Slug пишет англоязычную ссылку.

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
add a comment

Даю сто пудов, что несколько лекторов из Вашего института ведут свои лекции, написав их на перфокартах smile_regular. Я помню еще в школе многие учителя на них писали задания на самостоятельную и самым понтовым было подготовить доклад выйдя с конспектом, написанном на перфокарте, не говоря уж о шпорах и закладках в книгах. Меня всегда интересовала история происхождения этих картонок с цифрами на одной стороне, да и вапще почему их так много и че с ними делают. К стыду своему, только сейчас наткнулся на описание того, что представляют из себя и как работают перфокарты. Цитирую книгу Языки и эволюция технологий программирования:

Основные черты языка Фортран
Здесь я привожу перечень основных свойств Фортрана IV — версии, распространенной в период расцвета этого языка.
Запись программы
В отличие от современных языков, допускающих свободный формат записи программы, когда разрешается писать несколько операторов в строке, переносить текст
с одной строки на другую почти в любом месте, Фортран предполагает строгую форму записи. В одной строке записывается не более одного оператора. Формат строки тоже строго определен, а ее длина не может превышать 72 символов. Такие требования были установлены первым компилятором Фортрана и, несомненно, облегчали ему
работу. Размер строки определялся использованием для ввода программы в компьютер стандартных 80-колонных перфокарт, на каждую из которых «набивалась»
одна строка. Такие перфокарты (рис. 1.5) были изобретены еще в конце XIX века основателем IBM Германом Холлеритом и поэтому особо почитаются этой фирмой.

Безымянный

Перенос текста программы на перфокарты обычно выполнялся не самим программистом, а оператором. Чтобы уменьшить число ошибок при перфорации, программист записывал программу на специальных бланках (рис. 1.6).

Безымянный2

Каждая строка бланка, соответствующая одной перфокарте, разбита на несколько полей в соответствии с правилами записи программ на Фортране:

1. позиции с 1-ой по 5-ую отводятся для размещения метки оператора. В роли меток используются целые числа без знака. Хорошим стилем считается размещать метки в программе по возрастанию, тогда их легче найти при чтении. Если позиция 1 содержит букву «C» (от «comment»), то строка является комментарием;
2. если в колонке 6 записан символ, отличный от пробела, то данная строка является продолжением предыдущей. Обычно в колонке продолжения ставят либо номер строки продолжения, либо какой-то выбранный символ, например «*»;
3. оператор Фортрана записывается в позициях с 7 по 72. Он не обязан начинаться в седьмой колонке, но очень многие программисты долгое время игнорировали возможность использования отступов в фортрановских программах;
4. колонки 73–80 не обрабатываются компилятором Фортрана и могут использоваться, например, для нумерации перфокарт.

Следуя давней традиции приводить для первого знакомства с языком программу, печатающую «Hello, World!», именно ее я подготовил для перфорации, записав на бланке. Чтобы вы лучше почувствовали дух самого старого языка программирования, использована древнейшая форма конструкции вывода: оператор PRINT в сочетании с оператором FORMAT. Две подряд идущие буквы «H» в FORMATe — не опечатка. Просто строковая константа записана в так называемой холлеритовской форме с указателем длины. Начальная «H» — это первая буква в имени и фамилии Германа Холлерита (Herman Hollerith), а число 13 спереди, как вы догадываетесь, —
количество символов в строке «Hello, World!». Я, признаться, до сих пор не понимаю, зачем потребовался такой странный способ представления строк.

Вот такие дела, а мы с Вами – XP, web 2.0, visual studio…

PS: А теперь секунду внимания. Проверяя сегодня рефераллы в админке, я наткнулся на пару интересных ссылок:

http://tailer777.wordpress.com/2007/09/20/Интересные-истории-в-цифрах/

http://tailer777.wordpress.com/2007/09/20/Полезная-информация-для-блоггеров…/

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

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

Я против того, чтобы у меня пиздили посты

(если Вы не хотите ставить ссылку на меня, придумайте сами или напишите свое мнение по этому поводу)

Надо бороться с такой херней на корню. А я думаю – чего так этот чел на русском вордпрессе в топе постоянно…

Надеюсь теперь Олег Игоревич переименует свой блог на Меня называют пиздуном smile_regular

…а музыка была: Смысловые галлюцинации – Пока это кажется важным

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
add a comment

Когда-то нашел эту функцию, с тех пор с ней не расстаюсь.

function GooglePageRank($url){
$arr = parse_url($url);
$url = $arr['host'];
$url=»info:».$url; $ch=GoogleCSum($url,0xE6359A60);
$host=»toolbarqueries.google.com»; $hostip=gethostbyname($host);
$query =»GET /search?client=navclient-auto&ch=6″.$ch.»&ie=UTF-8&oe=UTF-8&features=Rank&q=».rawurlencode($url).» HTTP/1.0\r\n»;
$query.=»Host: $host\r\n»; $rank=-1;
$query.=»User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n»;
$query.=»Connection: Close\r\n\r\n»;
$fp=fsockopen($hostip,80,$errno,$errstr,30);
if ($fp)
{ fputs($fp,$query); $data=»"; while (!feof($fp)) $data.=fgets($fp,4096); fclose($fp);
$data=explode(«\n»,$data);
foreach ($data as $line)
if (!is_bool(strpos($line,»Rank_1″)))
{ $rank=explode(«:»,trim($line)); $rank=$rank[2]; break; } }
return $rank;
}

function GoogleCSum($s,$key){
$v4=$len=strlen($s); $esi=$key; $ebx=$edi=0X9E3779B9; $p=0;
if ($len>=12)
for($i=0;$i
{ $edi=unsign($edi+ord($s[$p+4])+(ord($s[$p+5]) << 8)+(ord($s[$p+6]) << 16)+(ord($s[$p+7]) << 24));
$esi=unsign($esi+ord($s[$p+8])+(ord($s[$p+9]) << 8)+(ord($s[$p+10]) << 16)+(ord($s[$p+11]) << 24));
$edx=unsign(($ebx+ord($s[$p+0])+(ord($s[$p+1]) << 8)+(ord($s[$p+2]) << 16)+(ord($s[$p+3]) << 24)-$edi-$esi)^shr($esi,13));
$edi=unsign(($edi-$esi-$edx)^($edx << 8));
$esi=unsign(($esi-$edx-$edi)^shr($edi,13));
$edx=unsign(($edx-$edi-$esi)^shr($esi,12));
$edi=unsign(($edi-$esi-$edx)^($edx << 16));
$esi=unsign(($esi-$edx-$edi)^shr($edi,5));
$edx=unsign(($edx-$edi-$esi)^shr($esi,3)); $ebx=$edx;
$edi=unsign(($edi-$esi-$ebx)^($ebx << 10));
$esi=unsign(($esi-$ebx-$edi)^shr($edi,15));
$v4-=12; $p+=12; }
$esi=unsign($esi+$len);
if ($v4>=11) $esi=unsign($esi+(ord($s[$p+10]) << 24));
if ($v4>=10) $esi=unsign($esi+(ord($s[$p+9]) << 16));
if ($v4>=9) $esi=unsign($esi+(ord($s[$p+8]) << 8));
if ($v4>=8) $edi=unsign($edi+ord($s[$p+4])+(ord($s[$p+5]) << 8)+(ord($s[$p+6]) << 16)+(ord($s[$p+7]) << 24));
else
{ if ($v4>=7) $edi=unsign($edi+(ord($s[$p+6]) << 16));
if ($v4>=6) $edi=unsign($edi+(ord($s[$p+5]) << 8));
if ($v4>=5) $edi=unsign($edi+ord($s[$p+4])); }
if ($v4>=4) $ebx=unsign($ebx+ord($s[$p+0])+(ord($s[$p+1]) << 8)+(ord($s[$p+2]) << 16)+(ord($s[$p+3]) << 24));
else
{ if ($v4>=3) $ebx=unsign($ebx+(ord($s[$p+2]) << 16));
if ($v4>=2) $ebx=unsign($ebx+(ord($s[$p+1]) << 8));
if ($v4>=1) $ebx=unsign($ebx+ord($s[$p+0])); }
$ebx=unsign(($ebx-$edi-$esi)^shr($esi,13));
$edi=unsign(($edi-$esi-$ebx)^($ebx << 8));
$esi=unsign(($esi-$ebx-$edi)^shr($edi,13));
$ebx=unsign(($ebx-$edi-$esi)^shr($esi,12));
$edi=unsign(($edi-$esi-$ebx)^($ebx << 16));
$esi=unsign(($esi-$ebx-$edi)^shr($edi,5));
$ebx=unsign(($ebx-$edi-$esi)^shr($esi,3));
$edi=unsign(($edi-$esi-$ebx)^($ebx << 10));
$esi=unsign(($esi-$ebx-$edi)^shr($edi,15)); return $esi;
}
function shr($x,$y) {
$x=unsign($x);
for($i=0;$i<$y;$i++) $x=floor($x/2); return $x;
}
function unsign($l) {
$l=intval($l);
if ($l>=0){
return $l;
}else{
return 4294967296+$l;
}
}

Обо всём Сентябрь 24, 2007

Posted by ukrainebloger in Обо всём.
1 comment so far

Может я просто немного из каменного века, но:

Ситуация: Читаю занятный пост на интересном блоге. У меня есть что сказать, делаю это(оставляю комментарий). Я практически уверен что автор\кто-то мне ответит. Но, как-то не солидно после этого по сто раз заходить на страницу поста, проверять, смотреть кто-что-как.

Бывает, есть фиды комментов (странно как-то их в ридер добавлять), у некоторых есть подписка на комменты по email (здесь тоже минусов хватает).

Вопрос: Нет ли у какой-нить читалки рсс функции: добавляешь коммент, она это понимает, а потом как-то выделяет этот пост, если\когда тебе ответили? Или надо ждать веб3.0?