Обновить
1072.6

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Краткая, неполная и вымышленная история языков программирования

Время на прочтение4 мин
Количество просмотров4.5K
1801 — Иосиф Мария Жаккард с помощью перфокарт вышивает «hello world» на ткани. Хабровчане тех времен недовольны отсутствием хвостовой рекурсии, многопоточности и заглавных букв.

1842 — Ада Лавлейс пишет первую программу. Её успехам препятствует маленькая проблемка — компьютера для исполнения этой программы ещё не изобрели. Через полтора века архитекторы корпоративных приложений переймут технику Ады по написанию неисполняемых программ и назовут этот метод UML.
Что случилось дальше?

C++ — как латынь

Время на прочтение1 мин
Количество просмотров1.3K
Для большинства программистов язык С++ — как латынь:
1. Очень многие современные языки от него произошли, но сейчас им мало кто пользуется.
2. Считается, что на латыни C++ можно написать что угодно. Это, наверное, так, но фразы получаются громоздкими.
3. Учеба в классическом университете подразумевает обязательное изучение C++. После учебы все равно мало кто его понимает.
4. Хорошо понимают в специальных учреждениях, где поддерживают старый софт. Читай «библиотека с манускриптами».
5. Библиотекари считают всех, кто не знает латыни, неучами.

Upd:
6. Латынь часто наделяют мистическими возможностями (см. Г. Поттер). C++ тоже.

Юмор, ага. :)

P.S. Я знаю знал, но теперь уже не люблю.

Upd2: Поместил в юмор. Ибо шутка же.

Официальный праздник День программиста

Время на прочтение1 мин
Количество просмотров791
Подпись этого приказа, я думаю это вопрос нескольких дней. Ура товарищи! Датой празднования выбран 256 день года 13 сентября (в високосный год 12 сентября). Еще раз ура )))

Удивительная страна Oz, или как принять данные при помощи send

Время на прочтение15 мин
Количество просмотров2K
Довольно давно, собирая информацию по средствам параллельного программирования, наткнулся я на элегантный (другими словами сложно описать ощущения) язык Oz http://www.mozart-oz.org. Язык тогда показался мне достойным того, чтобы представить его Habraсообществу. И вот, у меня появилось время и причины это сделать.

Oz — мультипарадигменный язык программирования. Набор базовых абстракций в языке необычный и позволяет, например, написать отправляющую информацию процедуру send так, что при её помощи можно будет так же и получать данные. И без всякого подвоха вроде:

send(socket; buffer; flag) = (if (flag == RECV) (recv(socket; buffer)) or (realsend(socket; buffer))).

Речь идёт именно о том, что отправка и получение данных осуществляются одной и той же последовательностью операций виртуальной машины Oz. Естественно, достигается это за счёт особых абстракций для работы с данными и с параллельными процессами. Описанию этих абстракций и посвящён этот текст, потому как на мой взгляд — они неплохо позволяют почувствовать особенности Oz. Конечно, Oz больше, чем изложенное ниже, но, как мне кажется, тайна хитрого send — материал подходящий для первого знакомства с этим языком и для получения от него удовольствия.

Итак...

Графика средствами Python

Время на прочтение1 мин
Количество просмотров13K
В издательстве Apress вышла книга Beginning Python Visualization: Crafting Visual Transformation Scripts, посвящённая визуализации данных с помощью Python и смежных инструментов. Это уникальная в своём роде работа, потому что на Питоне такие вещи делают довольно редко. Автор книги говорит, что сам искал такое руководство для своей работы, но не нашёл, и ему пришлось разбираться самостоятельно.

В книге приводится несколько примеров, как можно визуализировать данные. Например, с помощью Python можно извлечь данные из GPS-ресивера через серийный порт и уже на компьютере обработать как душе угодно, в том числе создавать графики и диаграммы. Автор показывает всё это на примере конкретного GPS-приёмника и модуля PySerial.

Самое главное в книге — подробная демонстрация, как работать с известными для визуализации математических и научных данных MatPlotLib, NumPy и SciPy, а также с библиотекой PIL (Python Imaging Library) для простейшей обработки изображений.

Полистать книгу можно в магазине Amazon (по ссылке выше).

Знакомство с Processing 1.0

Время на прочтение4 мин
Количество просмотров118K
Цель написания этого топика — познакомить вас с замечательным языком Processing. Этот ЯП не может похвастать широкой функциональностью или богатыми выразительными средствами, но он способен предложить кое-что другое…
Читать дальше

Хитрость

Время на прочтение1 мин
Количество просмотров1.3K
В связи с постом вспомнилась небольшая история из жизни.

image

Учавствовал как-то на киевской олимпиаде по информатике. Было 4 задачи, 2 я довольно быстро решил, как мог, а 2 что-то вообще никак не шли.
Читать дальше →

Россия снова стала чемпионом мира по программированию

Время на прочтение2 мин
Количество просмотров862
Уже второй год подряд победителем студенческого чемпионата мира по программированию стала команда Санкт-Петербургского государственного университета информационных технологий, механики и оптики.

image


Читать дальше →

ACM ICPC World Finals 2009: три золотых медали — наши

Время на прочтение1 мин
Количество просмотров1.3K
Объявлены итоги ежегодного студенческого чемпионата по программированию ACM ICPC:
image

Три из четырех золотых медалей взяли команды из России:

  1. St. Petersburg State University of IT, Mechanics and Optics
  2. Tsinghua University
  3. St. Petersburg State University
  4. Saratov State University
Поздравляем наших ребят и желаем им дальнейших успехов!
Имена героев...

Скучный эксплойт для одной широкой дыры

Время на прочтение2 мин
Количество просмотров2.3K
Хаброюзер allan_sundry во флейме про ботнет под Mac OS X не поверил, что недавняя уязвимость в Linux-овом udev действительно широка, глубока и в ряде случаев даже опасна. В ответ я решил написать этот топик, демонстрирующий, что создать рабочий эксплойт для опубликованной уязвимости нередко может даже фриланствующий студент-недоучка, потратив пару-тройку часов воскресным вечером.
Читать дальше →

С днём вебмастера

Время на прочтение1 мин
Количество просмотров644
С днём вебмастера!

4 апреля — один из неофициальных праздников, о которых слышало большинство айтишников, и о котором почти не знают интернет пользователи. Да, именно в этот день принято отмечать день вебмастера.

И в эту весеннюю субботу хочу искренне поздравить всех вебмастеров, программистов, стартапщиков и веб-разработчиков с праздником! С днём вебмастера!

Seaside 2.9: Частичные продолжения

Время на прочтение10 мин
Количество просмотров1.6K
Некоторое время назад на хабре проскакивал топик про «континуации» от ХабраЮзера qmax. Он был весьма впечатлен идеей, а вот подробно рассказать не вышло. И вот недавно один из разработчиков Seaside, Джулиан Фитзелл написал потрясающую по своей доходчивости статью. С его разрешения я сделал ее перевод и хотел бы поделиться с хабрасообществом.

Сразу хотелось бы сказать о терминологии. В качестве перевода слова continuation я использую наиболее близкое по смыслу «продолжение». Общая же терминология статьи для неискушенного в Smalltalk разработчика может показаться непривычной. Так, вместо стека вызовов используется «цепь контекстов», а вместо потока — «процесс». Если у вас останутся вопросы после прочтения — смело задавайте их в комментариях. Спасибо.
читать полный текст статьи

Как попробовать Smalltalk на вкус

Время на прочтение7 мин
Количество просмотров17K
Smalltalk LogoС выходом на большую арену Ruby и с появлением фреймворка Seaside, все чаще упоминается Smalltalk. Однако, среди молодого поколения (разработчики до 30 лет) бытует мнение, что это мертвый язык, разработанный на заре появления ПК и тогда же похороненный. Упоминание о Smalltalk на лекциях по ЯП, недалеко от COBOL, делает его еще более архаичным.

Однако, это неправда! Все это время Smalltalk жил, иногда даже рядом с нами, развивался, использовался для решения серьезных задач, а иногда — для несерьезных. вот тут просто фраза как-то странно построена. Но вот притока свежей крови в сообщество разработчиков практически не было. Причины сейчас перечислять бессмысленно.

Но что происходит когда программисту хочется попробовать что-то новенькое? Он пытается это сделать. И от того, насколько это легко или сложно, с какими проблемами он столкнется, зависит его отношение к инструменту в дальнейшем.
попробовать Smalltalk

Ближайшие события

Файлы, отображаемые в память

Время на прочтение3 мин
Количество просмотров98K
В этой статье я хотел бы рассказать о такой замечательной штуке, как файлы, отображаемые в память(memory-mapped files, далее — MMF).
Иногда их использование может дать довольно таки существенный прирост производительности по сравнению с обычной буферизированной работой с файлами.
Так что ж это такое?

Разбор опций командной строки в UNIX-подобных системах

Время на прочтение7 мин
Количество просмотров45K

Введение


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

Вступительное слово

Время на прочтение1 мин
Количество просмотров813
Доброго всем времени суток.

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

Недавний опрос показал, что хабралюди интересуются вопросами разработки под unix-like ОС. Всвязи с этим было решено создать этот блог. Его тематика несколько шире, чем задумывалась первоначально(программирование на Си под *nix — так уж сложилось, что хорошо знаю я только этот язык программирования), но я наивно надеюсь, что сознательные хабралюди помогут с наполнением блога статьями на темы, о которых я не имею ни малейшего представления =)
Хотелось бы услышать в комментариях пожелания, что бы вы хотели видеть в этом блоге, в каком ключе статьи («для самых маленьких» или же для матерых кодеров), на какие темы и т.п.
Всем успехов.

Три парадигмы F#

Время на прочтение16 мин
Количество просмотров21K

Введение


Все, кто так или иначе связан с .NET программированием знает, что уже в следующую версию Visual Studio будет встроен новый язык программирования — F#, который позиционируется как функциональный, чем сразу, так уж повелось, вызывает подозрения в бесполезности. Для того, чтобы показать, что F# — куда больше, чем просто ФЯП (хотя и просто ФЯП — это очень немало), я и написал все нижеследующее.
Эта статья, несмотря на изрядную длину, не претендует на то, чтобы полностью описать всю функциональность языка. Это всего лишь краткий обзор, призванный продемонстрировать широкий спектр возможностей, каждая из которых заслуживает отдельной статьи, и даже не одной.
Кроме того, написав такой пространный пост, я хотел сделать задел на будущее, чтобы в дальнейшем мне не отвлекаться на незначительные вещи базового уровня. Конечно, сразу головой в пруд — это действенно, но и какой-никакой фундамент не помешает.
А уже в следующий раз я приведу пример на волнующую тему пригодности F# для обычной профессиональной программистской деятельности.
И еще раз, под катом действительно МНОГО текста. И не говорите потом, что я вас не предупреждал. =)
Читать дальше →

Премию Тьюринга опять дали женщине

Время на прочтение1 мин
Количество просмотров2K
Самую престижную в области информатики Премию Тьюринга в этом году опять дали женщине. Опять, потому что это произошло во второй раз за последние три года. То есть в последнее время лучшими программистами и компьютерными учёными мира признаются не мужчины, а женщины.

В этом году премию присудили Барбаре Лисков (Губерман), профессору Массачусетского технологического института. Барбара Лисков руководила разработкой таких языков программирования как CLU и Argus в 1970-х и 80-х годах, а также объектно-ориентированной системы управления базами данных Thor. Вместе с Дженнет Уинг, Лисков разработала в 1987 году принцип подстановки — концепцию определения подтипа, очень важный элемент в логике объектно-ориентированных языков программирования. Её изобретения стали основой для разработки языков C++, Java и C#. Кстати, она является первой в США женщиной, получившей степень доктора компьютерных наук (в далёком 1968 году).

«Всякий раз, когда вы обмениваетесь электронной почтой с другом, проверяете банковский счёт в интернете или запускаете поиск Google, вы пользуетесь плодами её исследований», — сказал проректор МТИ Рафаэль Рейф, комментируя решение жюри.

via MIT News

Особенности влияния изучения нескольких языков программирования

Время на прочтение2 мин
Количество просмотров1.5K
Попробуйте в уме высчитать результат вычисления следующего выражения:

true ? false ? 5 : 6 : true ? 7 : 8

Высчитали? А теперь идём под хабракат
за правильным ответом

Вклад авторов