Обновить
1024K+

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

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

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

Почти бездаунтаймный переход между двумя разными вебсерверами

Время на прочтение1 мин
Охват и читатели574
Когда я совершал переходы между apache, lightttp и потом nginx, дошел до очень интересного "tips and tricks".
Умного тут ничего нет, но может кому-то поможет.
Читать дальше →

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

Время на прочтение15 мин
Охват и читатели2.1K
Довольно давно, собирая информацию по средствам параллельного программирования, наткнулся я на элегантный (другими словами сложно описать ощущения) язык 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 — материал подходящий для первого знакомства с этим языком и для получения от него удовольствия.

Итак...

Layers + Unity Container

Время на прочтение7 мин
Охват и читатели3.4K
Всем привет! Хочу привести пример layers-архитектуры и роль контейнера Unity в ней. А то народ про сам контейнер пишет, а как его c с пользой использовать толком написать не могут. Давайте я попробую.

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

Новая версия компилятора LDC

Время на прочтение1 мин
Охват и читатели1.3K
LDC — компилятор языка программирования D, использующий LLVM для генерации машинного кода. Судя по результатам тестов он совместим с DMD (стандартным компилятором D) и может стать его заменой в подавляющем большинстве случаев.
Читать дальше →

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

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

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

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

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

Подсветка синтаксиса для собственного языка

Время на прочтение4 мин
Охват и читатели7.7K
imageПодсветка синтаксиса — задача простая и решалась много раз. Но есть у нее одна неприятная особенность — если мы хотим подсветить синтаксис нового языка (например, языка bb-тэгов хабраредактора, или лога какой программы), то большинство решений включает создание грамматики, парсера, и затем встраивание это всего куда-нибудь. А что делать, если получить подсветку для логов желание есть, а тратить на это три часа желания нет?

Воспользоваться самым простым способом

Метапрограммирование

Время на прочтение4 мин
Охват и читатели4.5K
imageМетапрограммирование — общее название класса средств автоматизации труда программиста. Под ним понимают и кодогенерацию, и макросы препроцессора в C, и шаблоны C++, и макросы LISP, и создание своих DSL, а так же использование динамических языков с генерацией кода на лету. Nemerle поддерживает еще один вариант метапрограммирования.

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

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

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

Хитрость

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

image

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

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

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

image


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

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

Время на прочтение1 мин
Охват и читатели1.4K
Объявлены итоги ежегодного студенческого чемпионата по программированию 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.5K
Хаброюзер allan_sundry во флейме про ботнет под Mac OS X не поверил, что недавняя уязвимость в Linux-овом udev действительно широка, глубока и в ряде случаев даже опасна. В ответ я решил написать этот топик, демонстрирующий, что создать рабочий эксплойт для опубликованной уязвимости нередко может даже фриланствующий студент-недоучка, потратив пару-тройку часов воскресным вечером.
Читать дальше →

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

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

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

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

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

Squeak: Работа над ошибками

Время на прочтение2 мин
Охват и читатели1.8K
После моего поста-туториала об установке и запуске Squeak, мне сообщили об ошибках возникших в процессе. Ошибки следующие:
  • Зависание при установке FreeType Plus (в Pharo поддержка встроена, поэтому в нем проблемы нет).
  • Не открывается SqueakMap в образе squeak-dev и squeak-webdev

Поэтому я решил разместить решение этих двух проблем.
Решение проблем

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

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

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

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

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

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

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

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

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

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

Время на прочтение7 мин
Охват и читатели49K

Введение


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