Archive for the ‘Программизмы’ Category

С днем рождения, бабушка-адмирал Грейс Хоппер !

Понедельник, Декабрь 9th, 2013

grace_hooper_Intro

Сегодня 107 лет со дня рождения Грейс Хоппер, одной  из великих женщин в сфере компьютерных технологий и программирования.  Она способствовала популяризации термина bug, которым сейчас пользуются все современные программисты. Она была одной из первых, кто писал программы для гарвардского компьютера Марк I. Она разработала первый компилятор для компьютерного языка программирования, развила концепцию машинно-независимых языков программирования, что привело к созданию COBOL, одного из первых высокоуровневых языков программирования.

Спасибо миру за то, что у нас была такая великая женщина.

 

65 лет назад, 9 сентября 1947 года, из одного из первых компьютеров Mark II был извлечен застрявший между контактами реле мотылек, который оказался причиной сбоя в работе ЭВМ. С легкой руки руководителя группы программистов этого компьютера, Грейс Хоппер, понятие «жучка» и термин debugging в смысле «отладки программы» из малоизвестного жаргона инженеров перешли в разряд слов общеупотребительных. Впрочем, знаменита «потрясающая Грейс» далеко не только этим.

Урожденная Грейс Брюстер Мюррей, она появилась на свет в Нью-Йорке 9 декабря 1906 года и в детстве, в отличие от многих других девочек, больше всего интересовалась различного рода техникой. В 17 лет она поступила в один из первых в США женских университетов – колледж Вассар неподалеку от Нью-Йорка, а после окончания этого учебного заведения продолжила свое образование в аспирантуре гораздо более солидного Йельского университета, и даже стала первой в его истории женщиной – доктором математики. В 1930 г. она вернулась в Вассар в качестве преподавателя этой учебной дисциплины и практически одновременно вышла замуж за Винсента Хоппера, филолога из Нью-Йоркского университета. Хотя спустя 15 лет бездетные супруги развелись, Грейс до конца своей жизни продолжала носить фамилию бывшего мужа.

Наверное, Грейс Хоппер так и осталась бы никому не известным доцентом-математиком, если бы не Вторая мировая война. Вдохновленная всеобщим патриотическим порывом – а также памятью о собственном прадедушке, Александре Расселе, который был героем Мексиканской войны, дослужился до звания контр-адмирала и умер, когда Грейс было всего два года, – она поставила себе за цель поступить на службу в Военно-морские силы США.

Грейс в конце 1940-х годов

Однако женщин во флот стали брать только с 1942 года, и то лишь в специальное подразделение «Женского резерва», для работы, по большей части, в тылу – чтобы компенсировать нехватку мужчин, отправляемых на фронт. Но Хоппер потребовался еще целый год, чтобы убедить морское начальство одобрить ее кандидатуру: и по возрасту в 36 лет, и по весу в 47 кг (вместо минимальных 54-х) она казалась не очень-то подходящей фигурой для флотской службы. Старания Грейс увенчались успехом в декабре 1943 года, когда она сменила преподавание в колледже на учебу в Школе мичманов в штате Массачусетс.

Сидеть за партой рядом с девушками вдвое моложе было не очень вдохновляюще, как вспоминала потом Грейс Хоппер; тем не менее, учебу она закончила первой по успеваемости и в 1944 году, получив звание младшего лейтенанта, была направлена – не на фронт, как ей мечталось, а в вычислительный отдел Бюро боеприпасов, под начало Говарда Эйкена, как раз только что завершившего под крылом Гарвардского университета и на деньги от IBM конструирование первого американского программируемого компьютера – Марк I. Новинка была 17 м в длину и 2,5 м в высоту, весила 4,5 тонн и могла производить по три операции сложения или вычитания в секунду. Умножение требовало в 18 раз больше времени, т.е. 6 секунд, а одна операция деления выполнялась более 15 секунд.
Хотя Грейс Хоппер была математиком, а не физиком или инженером, как большинство других пионеров компьютерного дела, она сразу же нашла общий язык с новой ЭВМ. Ее первой задачей был расчет баллистических таблиц для корабельных орудий противовоздушной обороны: вычислив математические формулы для таких таблиц, Хоппер переводила их в инструкции для Марк I, записанные в двоичной системе. В дальнейшем компьютер производил расчеты сам, запрашивая только ввод переменных, таких как высота цели и расстояние до нее. Так Грейс Хоппер стала одним из первых в истории программистов, и в 1946 году даже опубликовала пионерскую книгу, посвященную этому роду деятельности: «Руководство по операциям с Автоматическим вычислителем, управляемом последовательностями» (Automatic Sequence Controlled Calculator – таково было громоздкое официальное название Марк I, придуманное ему руководством IBM).

читать дальше …

Oracle APEX: Итоги в Interactive report на каждой странице [RU]

Четверг, Ноябрь 14th, 2013

Одним из самых мощных инструментов визуализации данных в Oracle APEX является Interactive Report. Он предоставляет богатые возможности поиска, фильтрации, сортировки и вычисления итогов. Но есть ряд задач, часто возникающих в разработке бизнес-приложений, которые вызывают сложности. В нескольких постах я хочу предложить простой выход из положения.

Первым рассмотрим тривиальный вопрос — вывод итогов по всем данным на каждой странице отчета. При использовании встроенных итогов в IR, итоги выводятся на самой последней странице, если страниц несколько. В реальных приложениях очень часто итоги как раз и будут целью фильтрации и отображения данных — пользователю нужно сначала увидеть общую сумму, а потом уже, если она устраивает, смотреть детализацию. Если после применения фильтра пользователю приходится «отмотать» сначала 10-20 страничек, либо грузить ооочень длинную таблицу — пользователь звереет.

Оптимальным выходом является отображение итогов на каждой странице, но IR не предоставляет такой возможности. Значит, сделаем это сами.

In english, please…

(далее…)

Рубль получит свое лицо

Среда, Ноябрь 6th, 2013

Доколе рубль будет оставаться безликим? Символ рубля уже давно введен и используется:
Знак рубля
Но теперь его решили ввести официально.
Почему символ рубля должен быть именно таким — написано здесь
Голосуйте, стране важен ваш голос. 🙂
Голосовалка

Как создать индекс в Oracle, если таблица занята.

Среда, Октябрь 2nd, 2013

Иногда бывают такие ситуации, когда что-то случилось с индексами на важной таблице. Если работа с БД непрерывная и эта таблица очень часто занята, восстановить индексы достаточно проблематично, так как ресурс постоянно занят. Конечно можно поймать такой момент когда СУБД даст возможность создать index. Однако если эта проблема всплыла только после запуска длительной и важной операции, которая не требует отлагательств. Так как объект занят вам придется писать код создания индекса и сидеть давить, ловя момент когда пройдет commit и объект разблокируется. Не очень радужные перспективы. По-этому умные люди в Oracle подумали об этом. В Oracle Enterprise Edition есть возможно запустить создание индекса в режиме ожидания. К сожалению уже в версии Standard Edition данная возможность отсутствует. Что бы запустить создание индекса, когда ресурс занят необходимо дописать в конце ONLINE.

CREATE INDEX index_name ON table_name (column_name, column_name, column_name, column_name) ONLINE;

Операция запуститься и будет ждать момента, когда ресурс освободится. Как только пройдет commit запустится создание индекса. Имейте в виду, что время, необходимое для завершения построения онлайн индекса пропорциональный размеру таблицы и числу одновременно выполняющихся DML отчетности. Поэтому, лучше всего, начинать оперативное построение индекса при низкой DML активности.

Очень полезная feature. Если у вас версия Enterprise Edition советую пользоваться, так как она нужна не только в ситуации, которую описала я. Почитать документацию об этом можно здесь.

MS SQL и агрегатная функция умножения

Среда, Август 7th, 2013

Как известно, в MS SQL нет агрегатной функции, которая бы вычислила произведение всех элементов столбца (наподобие того, как SUM вычисляет сумму всех элементов). Но очень часто такая функция нужна.
Традиционно используется brute force решение: пробегается по курсору и выполняется перемножение элементов построчно. Медленно и глупо. Поиск вариантов решения привел к четырем идеям:
1) Курсор;
2) Математический;
3) Итеративный;
4) CLR.
(далее…)

WordPress и ошибка 401 — Unauthorized

Среда, Август 7th, 2013

Сегодня утром получила странное окошко для ввода логина и пароля при авторизации на блог. Несколько раз попробовала ввести свои данные не чего не вышло. Потом получила ошибку 401 — Unauthorized. Как оказалась в очередной раз сайты на
на базе WordPress и Joomla интенсивно атакуют Brute Force, на предмет подбора паролей для аккаунтов сайтов. В связи с этим, на хостинге решили ввести дополнительную защиту для указанных выше CMS.
Такие атаки проводятся постоянно. 18 апреля 2013 года на http://www.securelist.com/ была опубликована статья на эту тему.

Платформа WordPress подверглась масштабной брут-форс атаке

Хостинг-провайдеры и специалисты по сетевой безопасности регистрируют резкий рост трафика на веб-сайтах, работающих на движке WordPress. Используя десятки тысяч IP-адресов, неизвестные злоумышленники пытаются получить доступ к административной панели сайтов перебором логин-паролей по словарю (метод brute force). В случае успеха взломанный ресурс становится частью ботнета и подключается к текущей серии атак.
(далее…)

Как делаются внутренние ссылки на странице

Вторник, Июль 30th, 2013

Иногда есть необходимость сделать в html-файле меню и ссылки на текст ниже, а потом назад на меню. Для тех кто не знает, как это делается, я решила рассказать. Мне это пригодилось, когда я начала формировать свои рассылки с блога (как  организовать рассылку я расскажу позже). Что-бы организовать меню необходимо поставить тег <a> со ссылкой  href=»#имя_ссылки», а там, куда будет переводить этот тег, якорь <a> с именем name=»имя_ссылки». Таким же образом осуществляется реализация ссылки возврата. Вот как это выглядит.

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

(далее…)

Вы тут че, самые умные?

Понедельник, Июль 22nd, 2013

На rusrep  опубликовали новость про олимпиаду по спортивному программированию. Очень порадовал заголовок: «Вы тут че, самые умные?». Говорящий заголовок.

Но заголовок — это только цветочки. Саму статью читать так приятно, просто душа радостью наполняется за наши русских гениев.

(далее…)

Онлайн-компилятор

Пятница, Июль 5th, 2013

Как то Алан Кэй в интервью журналу Dr. Dobb’s сказал:

«Представьте, вы открыли «Википедию» на статье про язык Лого. Можно ли там написать и запустить программу на Лого? Нет. И авторам «Википедии» такое даже в голову не придёт, несмотря на то, что всё происходит на компьютере», — говорит Кэй. Он считает, что раз компьютер создан для взаимодействия, значит нечего пытаться изображать старые, неинтерактивные виды медиа. «Веб-браузерам уже много-много лет — объясняет Кэй, — и несмотря на то, что они работают на компьютере, который может выполнять задачи А, Б и В, они позволяют делать только А и половинку Б» отсюда .

Может быть его слова вдохновили, а может сами додумались создатели сайта http://ideone.com , на котором реализован on-line компилятор для различных языков программирования. Конечно, пока не на статье Википедии про языки, а отдельно, но все-таки появилась возможность скомпилировать код на страничке. Теперь можно не мучатся, чтобы проверить работоспособность кода в примерах и уроках по программированию. Можно просто прежде чем затевать крупный проект, быстренько проверить на ideone. А вот если бы сервис появился, который предоставлял бы возможность встраивать в страницу компилятор нужного тебе языка, вот тогда и на википедии, и на блогах, и на форумах, посвященных программированию, было бы очень комфортно »обитать». Побольше бы умных людей высказывали идеи, которые помогут сделать жизнь удобнее. Тогда, цепляясь за эти идеи, будут создаваться полезные мелочи, которые, на самом деле, не так уж просты в реализации, но, как показывает практика, очень полезны и нужны.

Сравнение ревизий SVN через WinMerge

Среда, Май 29th, 2013

Любой программист встречался с работой с svn. Это достаточно удобно как для маленьких, так и для больших компаний. Кто не знаком с таким термином приведу определение:
Subversion (также известная как «SVN») — свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet Inc.
Я знакома и работала с программным обеспечением для SVN — TortoiseSVN. Очень на мой взгляд удобный продукт. По его использованию написано большое количество документации. Бывают проблемы с производительность, если не верно настроишь сервер. Так же недостатком в его работе, как мне кажется, является очень неудобный сервис для сравнения версий — TortoiseMerge. Намного удобнее и быстрее использовать сторонний программный продукт WinMerge. Надо заметить, что как TortoiseSVN, так и WinMerge являются свободно-распространяемыми  программными продуктами. Данный факт радует в двойне.
(далее…)