Да, да...
можете меня ругать. Я забыл выпустить рассылку на прошлой неделе. Теперь
вот в среду выпускаю номер 48... Следующий выпуск будет наверно в
понедельник на следующей неделе.
А сегодня в
выпуске: интервью с нашим любимым админом Alar'ом,
а также статья в Московском журнале "Куда пойти учиться", от rpy3uH'а
урок об обратке исключений в Delphi
и еще немного юмор. Удачи вам!
Профессия программист - Журнал “куда пойти учиться”
В
его голове цифры, алгоритмы и оригинальные идеи
складываются в полезные, простые и доступные программы,
способные облегчить жизнь миллионам пользователей
персональных компьютеров.
Пишет, Светлана Юдина.
Взгляд журналиста на профессию:
Программист – одна из самых востребованных и
высокооплачиваемых профессий в России. Даже не самый
продвинутый специалист может найти работу в соответствии
со своим уровнем знаний, а затем постепенно учиться и
набираться опыта.
Хорошим стартом карьеры может стать присоединение к
группе программистов при разработке какого-либо проекта.
Крупные проекты часто привлекают внимание западных
компаний, которые «перекупают» российских программистов.
К примеру, когда-то группа наших молодых ученых
разрабатывала процессор «Эльбрус» для Минобороны, а в
итоге их всех перекупила корпорация Intel, и теперь наши
ученые и программисты работают за рубежом, а сам проект
«Эльбрус» потихоньку закрылся. Проблема «утечки мозгов»
в этой профессии – одна из самых острых.
Спрос на рынке труда на программистов высокий, но и
конкуренция соответствующая. Найти интересную и
высокооплачиваемую работу вам удастся только в том
случае, если вы знаете свое дело «на отлично».
Я согласен с тем, что программист - самая востребованная
профессия на сегодняшний день. Пока что не самая
высокооплачиваемая, но это дело будущего
Проблема утечки мозгов - это проблема организации,
которая не может предоставить хорошие условия труда и
зарплату для программиста. Мозги у программиста никуда
не утекают, потому выбор перспективной и
высокооплачиваемой работы в пользу патриотических и
других чувств, подтверждает наличие этих самых мозгов
Советую всем прочитать, ниже статьи интервью с
Александром Архиповым, программистом, администратором
сайта Programmersforum.ru
Программист: гений поневоле
Программист – одна из самых
востребованных и высокооплачиваемых
профессий в России. Даже не самый
продвинутый специалист может найти
работу в соответствии со своим
уровнем знаний, а затем постепенно
учиться и набираться опыта...
Здравствуйте уважаемые
«дельфисты» и им сочувствующие. Сегодня я вам
расскажу про обработку исключений в программах на
Delphi. Техника, описанная мной позволяет почти
полностью контролировать выполнение сомнительного
кода, который может и не сработать в самый критичный
момент. Данная статья в первую очередь ориентирована
на «чайников».
Начнём сначала (это низкоуровневая часть этой
статьи, кому не интересно тот может не читать). В
Windows исключения обрабатываются с помощью техники
SEH. Расшифровывается она так – Structured Exception
Handling, т.е. структурированная обработка
исключений. Суть её вот в чём. У каждого процесса в
некоторой области памяти (обычно она указывается
сегментным регистром fs) находится связанный список,
в каждом элементе которого содержатся по два
указателя: один указывает на обработчик исключения,
второй указывает на следующий элемент. Таким
образом, получается цепочка указателей обработчики
(первый элемент находится по адресу [fs]:0). При
возникновении исключения (например: деление на ноль,
обращение к несуществующей (невыделенной) памяти,
неправильная операция над числами, неверное
преобразование и т.д.) вызывается первый обработчик,
он может обработать исключение и вернуть результат
EXCEPTION_CONTINUE_EXECUTION т.е. «всё нормально»,
или если оно не может его обработать или оно
предназначено для обработки других исключений оно
возвращает результат EXCEPTION_CONTINUE_SEARCH, то
управление будет передано следующему обработчику и
так до тех пор, пока исключение не будет обработано
(если уж никто не смог обработать исключение, то я
думаю, последний обработчик додумается завершить
приложение).
Теперь ближе к делу. В Delphi техника SEН
реализуется с помощью блока try…except/finally…end.
Общий формат этих блоков такой:
try
<код>
except
<что будет выполнено если будет исключение>
end
либо:
try
<код>
finally
<что будет выполнено в любом случае>
end
В втором случае
видно что в цепочку обработчиков SEH будет добавлен
пустой обработчик, а в первом случае в цепочку
обработчиков будет добавлен указатель на блок except…end.
В блоке, который следует после except можно
обработать исключение, можно просто вывести
сообщение об ошибке, а можно и ничего не делать. При
возникновении ошибки в основном блоке управление
сразу же передаётся коду, который находится в блоке
except. Код, который находится после строки, которая
вызвала исключение не выполнится. Если основной код
слишком большой, и могут возникать различные ошибки,
то можно с помощью блока on…do узнать какое именно
исключение произошло. Например:
try
d:=56/0;
x:=round(d);
except
on EInvalidOp do
ShowMessage(’деление на ноль’)
else
ShowMessage(’другая ошибка’);
end;
Можно получить детальную информацию об исключении,
объявив в блоке on…do переменную требуемого класса и
потом её использовать, например:
try
d:=56/0;
x:=round(d);
except
on Excp : EInvalidOp do
ShowMessage(’ошибка под названием - ‘+Excp.Message)
else
ShowMessage(’Другая ошибка’);
end;
Можно сгенерировать исключение с помощью оператора
raise, например:
type
MyClass = class (Exception);
………
begin
//more code
raise MyClass.Create(’любой текст’);
или можно
воспользоваться уже существующим классом, например
raise
EZeroDivide.Create(’текст’);
Информацию о классах
исключений можно получить, набрав в справке Delphi «VCL
exception classes» (там конечно не все, но для
начала хватит).
Следует подметить,
что ошибки можно обработать только в стандартных
функциях Delphi, ошибки в API функциях нельзя
отловить с помощью блоков try. У API функций есть
свой способ узнать об ошибке или генерировать ошибки
– это API функции Set/GetLastError.
Беседуют два программиста:
- Чем отличается программист от обычного человека?
- Программист может ответить на вопрос, в котором уже заключен ответ.
- Это как?
- Ну, например, ответь на вопрос: сколько будет 2+2=4?
- TRUE.
* * *
Решил хакеp стать поваpом.
Пошел блины печь.
Пеpвый блин у него, как водится, комом вышел.
Hу а втоpой - экзешником!
* * *
- Я тут с такой девушкой познакомился... Отпад! 90-60-90!!!
- Круто... Откуда у нее шестизначная аська?!!
* * *
Программист глубокой ночью за компом чувствует прикосновение сзади.
Оборачивается - жена стоит голышом, обворожительно-нежно на него
смотрит.
Программист:
- Извини, милая, но комп занят...
* * *
Первый день. Запустили все программы и отформатировали все дискеты.
Второй день. Запустили все утилиты и отформатировали все винчестеры.
Третий день. Запустили все, что грузится, и отформатировали все, что
крутится.
Четвертый день. Приехал админ, и тут такое началось...
* * *
В кабинете шефа компютерщик подготавливает комп к форматированию. В это
время в кабинет влетает секретарша:
- Шеф спрашивает, не встречалась ли вам папка <Мусор>?
Компютерщик с ужасом вспоминает, что минуту тому назад снес эту папку.
Немедленно запускаются всевозможные <анерейзы>, и через полчаса он гордо
докладывает вешедшему в кабинет шефу:
- Шеф, я нашел ее!
- Кого?
- Ту папку, <Мусор>. Вы полчаса назад звонили...
- Ах да! Я хотел сказать - сотри ее нафиг...
* * *
У программера спрашивают:
- Сколько детей?
- Два сына.
- По сколько лет?
После паузы:
- Один на компе играет, а второй еще нет.
* * *
- Зачем в российских военкоматах окулисты показывают картинки,
состоящие из множества разноцветных кружочков?
Если ты дальтоник, то увидишь на картинке одно число, а если нет -
другое?
- Защита от автоматической регистрации ботами.
* * *
- Что такое "поддержка пользователей"?
- А это если у пользователя вся инфа накрылась медным тазом, то ты
подходишь, кладешь руку на плечо и говоришь: "Как я вас понимаю!"
* * *
- В мой компьютер попал вирус.
- Ну и что ты сделал?
- Прививку.
- Куда?
- Под мышку...
* * *
У кнопки "Reset" есть один
недостаток:
маленькая очень,
кулаком попасть сложно.
* * *
Компьютерная примета:
если все ваши знакомые сидят в аське, то на улице идет дождь.
* * *
Дали соседнему отделу стажера.
Слышу, сотрудники переговариваются:
- Рожа все время опухшая... Глаза красные... На работе спит...
- Пьет, что ли?
- Может, квейкер просто...
* * *
Закон программиста:
Если тебе что-то не нравится, то не спеши это исправлять, если не
помнишь, для чего ты это сделал.
* * *
- Мужики, а фильм Doom по какой части сняли?
- По третьей.
- Спасибо. А пароли от первой - подойдут?
Подписчикам рассылки
Ко мне на e-mail
часто приходят разные письма от подписчиков с вопросами. Я всегда рад вашим
письмам. присылайте вопросы, пожелания, замечания. Адрес для
писем ведущему рассылки admin@welikeit.ru.