Персональный проект Александра Чижова, Иркутск 1998-2006Компьютерный журнал Cooler | скачать новые компьютерные игры | гаджеты | астрономия | обзоры программиста System's temperature
recent issueaboutarchiveLive TAMrubricatorlinksBooks digest
Компьютерный журнал "Cooler" Александра Чижова (Иркутск)
prev 13 сентября 2009 next

А вы готовы по первому телефонному требованию шефа нажать кнопку "Print
Screen"
и тут же оправить ему на почту результат, при этом не прикасаясь
предварительно к другим кнопкам, мыши и т.д.?

N 855
0xFF

Празднование дня программиста отнесли на 256-й день года.
Что кажется мне вполне логичным. 256 - это круглое число, являющееся максимально возможным количеством состояний для байта. 0 - это тоже состояние, так что празднуем именно 0xFF, а не 0x100. Празднование 0xFF официально пока только в нашей стране.
В високосный год день программиста выпадает на 12 сентября.

комментарии

Ну, коли день такой, программистский, то позволю себе немного порассуждать о программировании. В самом модном направлении - web. Как мне кажется.

Вообще, сама идеология web-программирования (WP) повторяет историю программирования вообще. Вспомните - изначально все программы были "потоковые". Мы запускали программу, может давали ей что-то на вход, может что-то из профайла, не суть важно - она отрабатывала и выдавала результат. Однако, понадобился интерфейс.

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

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

С web-приложениями все происходило точно так же. Изначально HTML ли, PHP ли (или PERL) - все они выдают конечный готовый поток пользователю, на который тот может влиять, но только глобально - т.е. просто перезагрузить с новыми данными параметрами (например формы ввода или через GET). Сервер опять обработает всю "программу" и выдаст результат (ну или запустит новую программу (например link)).

Как видите, на заре развития web-programming пошел именно по пути потоковости, как уже проторенному и проверенному пути. Разумеется, этого пользователю было мало. Хотелось же нормального интерфейса, чтобы влиять на события отдельно от всего "потока". Чтобы при нажатии на кнопочку запускалась именно отдельная процедура. Ну вы поняли, о чем я. :)

Т.е. web-programming повторил (только в очень быстром масштабе времени) путь программирования вообще - от потоковости перешел к процедурности. Разумеется, помог в этом xmlHttpRequest, а по-просту - AJAX (ajax - это не язык, это метод, способ).
По сути, в web-программе грузится "шаблон" страницы, который является "якорем" для всей начинки, а потом (как вариант) начинают по разным условиям подгружаться части, например разрешенные этому пользователю или в зависимости от каких-то событий.
Отличие от обычного программирования (не web) в том, что клиентская часть и серверная полностью разделены. Это и плюс, и минус. Программирование (а особенно, отладка) становится сложнее, но зато защищенность не в пример выше. Т.е. я не могу просто так хакнуть web-приложение - я в общем случае не знаю как оно работает и что там внутри. В случае с обычным приложением, я могу посмотреть и отследить вообще все, что оно делает. При этом, мне можно не беспокоиться об атаках на программу - он уже у клиента. Вся :) А вот web-программинг сильно нагружен защитой. Иногда кажется, что параноидально. Но это кажется только на первых порах :)

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

Поэтому, на текущем этапе можно наблюдать именно восход процедурного программирования в web: программист теперь не привязан к постоянному перезапуску "приложения". В общем случае теперь перезапуск (т.е. перезагрузка странички) должна означать по аналогии с обычным приложением - как будто мы закрыли программу и снова открыли ее. Произошла инициализация. Опять все готово к работе. Вот когда пишешь web с ajax'ом, надо помнить об этом моменте - пользователь может в любой момент "перезагрузить" страницу. Ну, это понятно.

Чем руководствуемся для работы с элементами страницы, как с управляющими указателями для процедур: помогает JavaScript - вот это клиентский (пока единственный) язык программирования. В помощь функционалу JS приходят различные библиотеки, одна из самых популярных - jQuery. Т.е. на клиентской стороне разработчик ограничен только JavaScript (не будем говорить про Flash, где свой язык, но и среда тоже своя). Именно для AJAX работа с данными выглядит достаточно просто, пока не сталкиваешься с кодировками и (русским) языком. Дело в том, что данные для запроса (через ajax) уходят обычной строкой, где есть управляющие символы. Их надо как-то маскировать. Escape - вот выход, но AJAX всегда, при всех ситуациях кодирует русский текст в UTF - и вот то, что приходит после escape и кодирования в UTF в серверную часть - необходимо обрабатывать. Это первый момент. Второе - то, что посылается из серверной части клиенту - вот это не всегда перекодируется в UTF - это уже зависит от настроек сервера. Это тоже необходимо учитывать. Если вообще работать не только с UTF.

Далее. JavaScript сам по себе язык не свободный в функционале. Он ограничен браузером из соображений безопасности. Например, я не могу на клиентской машине работать с локальными фалами. Нет, конечно, такой браузер можно придумать и разрешить, но никто им пользоваться не захочет :)
Еще момент: AJAX и upload файлов - интересный момент - чисто средствами AJAX нельзя загрузить файл на сервер через элемент формы file upload без участия пользователя. Хотя это различными способами реализовано (например через iframe, где он невидимым образом содержит в себе формочку и скриптом там "нажимается" кнопочка ok), но файл в любом случае должен выбрать пользователь, т.к. поле выбора файла закрыто для JavaScript.
Кроме того, программист ограничен при работе с изображениями. Например, он может только подгружать картинки, а не изменять их SRC на лету. Нет такого свойства, чтобы готовые binary данные вставить в элемент. Далее, работа с записью файлов (контента) на локальный диск - JS опять зедсь не участвует - только браузер. В общем-то правильно, но представьте, что в "процедурном" веб-программировании, о котором я говорю, необходимо при нажатии на кнопочку, получить контент (от сервера) и предложить барузеру его ("для записать/открыть"). Обычнейший download - серверная часть должна послать заголовок типа content-type: application/text. При этом, если еще предлагать открыть его пользователю (не записывая на диск), хорошо бы послать имя "файла": Content-disposition: attachment. Так вот, IE по-своемй понимает attachment - он стирает файл из кэша (хотя записывать позволяет), inline помогает решить эту проблему. И таких фишек - море...

По серверной части: с клиентом лучше всего работать через JSON - отдавать просто текст клиенту - это неинтересно. Во-первых, кроме текста надо вернуть какое-то состояние отработки функции, сложные параметры и т.п. Пусть JS получает все раздельно. Разумеется, в виде хэша. Вот кстати, в JS нет встроенной функции для того чтобы узнать длину хэша. Массива - можно, а хэша - нет. Не знаю, почему.
Но JS - это пока единственный путь программирования клиентской части.
В общем, по-хорошему, веб-программеру надо знать как минимум HTML, CSS, JS и хотя бы один язык серверной части - PHP, Python, RoR, Perl. Совсем хорошо: знание СУБД (что-нибудь: Oracle, PosgreSQL, MySQL и т.д.) понимание jQuery, понимаение работы http заголовков, понимание DOM страницы. Кроме этого - знание методов атак, основных принципов защиты и т.п.

Так что, как видите, web-программерам приходится не легко :)

Пишите в комментах свои мнения.

комментарии

Журнал WebSOUND (от 18 августа 2009):
выпуск N 190:
- Интернациональный видео клип;
- Синтез речи - некоммерческий авторский "движок";
- клаксон от круизного лайнера в автомобиле;
- Компания Neuhauslabs анонсировала внешунюю звуковую карту с усилителем для PC, построенную на базе вакуумных ламп;
- Обновления ПО ( N-Track Studio, Sibelius, Adobe Audition, Cockos Reaper, Steinberg WaveLab, Energy-XT);

В проекте Audiotag есть улучшения - свежий ffmpeg, в интерфейсе - индикатор загрузки файла. Для распознавания достаточно 15 сек фрагмента.

Теперь Audiotag может распознавать аудио из роликов YouTube. Просто указываешь URL на страничку с роликом, скрипт сам качает видео ролик, сам распаковывает, забирает аудио дорожку и распознает ее.

комментарии

Обновилась программа Total Commander до версии 7.50. Распространение - Shareware, после 30 необходимо купить за 38 долларов. Whats new можно почитать здесь. Альтернативы в windows приложениях TC пока нет. А для консольных приложений - FAR держит первенство с момента создания. Каждый выбирает для себя свой менеджер. Мне больше нравится FAR. Развитие у него сейчас free, open source. Кстати, доступна 64-битная версия.

комментарии

Стереотетрис. Т.е. глаза в кучку - и поехали :)

Онлайн hi-score. Наверное, тетрис одна из немногих игр, которые можно легко перевести в стерео. Сделана на флэше, управление клавишами. Долго играть конечно, сложновато для глаз.

комментарии

Компания Wi2Geo запустила новые геоинструметы для вебсайтов. Активная схема проезда Этот инструмент позволяет посетителям сайта отправить СМС со схемой проезда прямо на свой мобильный! Во-первых, это удобно клиентам, так как не нужно распечатывать карту, а во-вторых, владельцы компании или магазина получают дополнительный канал для коммуникации с потенциальным клиентом. Wi2Geo предоставляет сервис бесплатно в течение 30 дней. Узнать подробнее можно тут.

Это не настоящий iPhone. Это WPhone - изделие китайских мастеров, сочетающее в себе кроме WiFi,BT, dual-SIM, браузера Opera, еще и аналоговый телевизор (ну и FM радио в довесок).

Экран, разумеется, сенсорный, две камеры ну и все остальное. Стоит от $150.

комментарии

Компания AMD на днях представила свой новый графический чип, который может обрабатывать и поддерживать сразу 6 дисплеев.

Конкрентно на фотографии - 24 экрана, которые получились из конфигурации 4 в/карты на этом чипе *6. Итого - 24.
Насколько я понял, общее разрешение 6500х2500. Что в общем-то странновато. Может это разрешение 3х2 частей. Т.е. именно 6 дисплеев. Тогда более похоже на правду.
Но впечатляет.

комментарии

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

комментарии

Смотри-ка, способ передачи через ИК жив и даже имеет потенциал. До сих пор IR передача ограничивалась 100Мбит, а недавно Infrared Data Association (IrDA) сообщила о появлении новой спецификации Giga-IR - т.е. реально возможно с помощью ИК светодиодов передавать 1Гбит в секунду. Первые устройства появятся уже в 2010 году. Например, беспроводной USB с высокой скоростью. Правда, USB 3.0 побыстрее будет, чем 1Гбит/сек, но во многих случаях, даже такое зажатие в скорости в угоду беспроводного USB вполне может себя оправдать.

комментарии

ChromePlus - альтернативная версия Chrome, сделанная с некоторыми доработками прямо из браузера Google Chrome. Доработок не так много - IE tab (позволяет просматривать страницы в IE движке), гестурный ввод (мышка) и интеграция с различными менеждерами закачек. Инсталляция 12Мб. Вроде как есть версия и для 64 систем, но на сайте я углядел только для 32бит.

комментарии

nanometer: "Исследователи из Национального института нанотехнологий, Корнеллского и Мичиганского университетов сконструировали фотодиоды на основе нанотрубок, которые заметно превосходят существующие аналоги по эффективности преобразования энергии".
"Нанотрубки - замена медным проводам" - При разработке наноустройств исследователи сталкиваются с одной важной проблемой - резким падением проводимости привычных медных проводов, при уменьшении поперечного сечения провода до размеров свободного пробега электрона

комментарии

Atmel разработал и выпустил чип, (maXTouch), который является контроллером сенсорного экрана. Поддерживает неограниченное количество прикосновений, гестуры. Опрос прикосновения - 250 раз/сек. Также поддерживает стилус, ногти и перчатки.
Очень интерсный чип - именно с массового выпуска подобных микроконтроллеров начинается широкое и недорогое производство всевозможных устройств, в данном случае - сенсорные экраны будут везде и недорого :)

 

ссылку прислал Igorx

комментарии

Больше в экзотику, наверное. Blu-Ray проигрыватель, продающийся за 135тыс. долларов.
Я помню, в соответствие с развитием технологий, последовательно появлялись CD, DVD, а теперь вот - BD - проигрыватели именно такой ценовой категории. Модель называется Eidos. Швейцарская ручная работа. Произведено всего 50 штук. В общем, это как часы за пол-миллиона.
На нем можно даже не смотреть диски.

комментарии

Элегантная идея. Пластик.

комментарии

RSS feed: уведомление , расширенный.

Общие Комментарии к выпуску (13 сентября 2009).

поздравляю всех программистов с их Днем!

комментарии
prev

[ Архив+поиск ]-[ все комментарии ]-[ Жизнь ТАМ ]
[ Хакеры ] [ Журнал WebSound ]
[ обзор книг ] [ mouseimp ] [ биржа труда ] [ Ссылки ]
[RSS feed simple]    [RSS feed simple 2]    [RSS feed complete]

next


Универсальный измеритель
Универсальный измеритель


Canoma
Canoma


вентилятор в мышке
вентилятор в мышке


как устроен провайдер
как устроен провайдер



Пишите! Мне интересно будет Ваше мнение, замечания и пожелания. Письма (кроме личных) публикую по своему усмотрению, так что оговаривайте этот момент.
Выпуски выходят два раза в неделю. У журнала существует RSS feed, оформляйте подписку в браузере.
WM для дотаций и оплаты интернета: R360505585668 ( Z158492530952 )


Для женской половины читателей женский журнал: мода, женский клуб, прически, гороскоп на неделю,

Перепечатка материалов сайта запрещена

это мой е-майл Боря делал дизайн
Компьютерный журнал "Cooler". Авторство и выпуски Александр Чижов. Иркутск
1998-2009
Рейтинг@Mail.ru
Cooler
WWWoman - лучший WM!!
Rambler counter