Рубрика «Программирование» - 1089

Изначально задумывалось, как комментарий к посту Программирование для начинающих: как стартовать и куда двигаться?. Но потом решил написать пост о своем пути становления программистом, так как воспоминания еще относительно свежи да и возможно мой опыт будет полезным несколько более широкой аудитории.

Все ниже написанное — мой личный опыт и мнение( которое может быть и ошибочным ).

Если все еще интересно, прошу под катЧитать полностью »

Буквально на днях вышел QtCreator 2.5.0, и в нем появился плагин TODO. Но этот плагин поддерживает комментарии вида: &ltKEYWORD&gt: &ltsome text&gt, а я везде использую doxygen комментарии: @&ltKEYWORD&gt &ltSOME_TEXT&gt. Поэтому я решил доработать плагин, так чтобы он мог поддерживать комментарии обоих видов. Читать полностью »

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

Например в популярной CMS UMI мы можем найти такое замечательное наименование свойства объекта: izobrazhenie. Заметьте — не «image» и даже не «picture», а вот так незамысловато.
Читать полностью »

О том, как читать до конца

Сегодня мы представляем вниманию читателей следующую лекцию курса «Сетевое программирование в UNIX», которую прочитали в Уральском федеральном университете (УрФУ) специалисты компаний SkyDNS и Айдеко. К сожалению, в публикациях произошел вынужденный перерыв. Надеемся, что время ожидания новой лекции вы использовали для реализации сервера и клиента, о которых рассказывали наши специалисты.
Читать полностью »

В продолжение топика

Итак, в презентации было упомянуто, что для поиска у всех изображений:

  1. Удаляется информация о цвете.
  2. Они преобразуются к квадрату.
  3. Обрезаются края у квадрата.

Что же делать с картинкой далее?
Читать полностью »

Недавно вышла книга The dRuby book — distributed and parallel computing with Ruby (перевод японской книги, написанной автором самой библиотеки). В этой статье я попытаюсь дать обзор глав книги, касающихся библиотеки DRb. Если вам захочется ознакомиться с темой более подробно, книгу можно купить или скачать. Сразу скажу, что я не буду говорить в этом посте не о синхронизации потоков, ни о библиотеке Rinda.

Предположим, что вы пишите систему, которая работает с более чем одним процессом. Например, у вас есть веб-сервер, который в фоновом режиме запускает задачи, работающие долгое время. Или вам просто нужно обеспечить пересылку данных из одного процесса в другой и координировать их. Для таких ситуаций и нужна библиотека DRb. Она написана целиком на Ruby и включена в стандартную библиотеку, поэтому начать работать с ней можно моментально. Для её подключения достаточно написать require 'drb'

Достоинства библиотеки DRb большей частью проистекают из динамичности самого языка Ruby.
Во-первых, при затрате минимальных усилий на подготовительном этапе, дальше вы работаете с объектами не задумываясь, где они расположены: в одном процессе или в другом. Библиотека полностью маскирует от вас все технические детали.
Во-вторых, вы не обязаны жестко прописывать интерфейс. Любой руби-объект может выставить свой интерфейс наружу — таким образом вы можете как воспользоваться функциональностью одного из стандартных классов типа Hash или Queue, а можете сделать свой класс с любым интерфейсом. Кроме того вам ничто не мешает менять интерфейс прямо в процессе исполнения, и даже использовать method_missing для обработки любых запросов. И уж разумеется, обновление интерфейса сервера вообще никак не влияет на клиента, если тот не вызывает методы, которые изменили сигнатуру или поведение. Таким образом сервер и клиент максимально независимы.
И наконец, клиент даже не обязан знать классы объектов, которые ему возвращает сервер, он может их использовать и без этого. Таким образом сервер волен скрыть столько много деталей, сколько ему угодно.
Но, конечно, есть и подводные камни, и их предостаточно. К счастью, dRuby несложен в понимании, ну а понимание его устройства позволяет большей части проблем просто не допускать. Документация к этой библиотеке, к сожалению, не проясняет множества моментов, поэтому статья будет интересна и новичкам, и людям уже поработавшим с библиотекой.

Читать полностью »

Легкое обновление прошивки Raspberry Pi от Hexxeh

Многие поклонники гаджетов уже сделали предзаказ мини-компьютера Raspberry Pi, а некоторые счастливчики уже получили эти устройства. Само собой, эти устройства, прежде всего, попали в руки девелоперов, программистов, гиков и любителей поработать с разного рода железом. И уже началась работа по изменению прошивки Raspberry Pi. Это не такой и простой процесс, и разработчик с ником Hexxeh сумел упростить все это. Он создал собственный инструмент, автоматизирующий процесс обновления прошивки.

Читать полностью »

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

Я подозреваю, что программисты, которые делали эти редакторы, просто брали какую-нибудь книжку по обработке изображений и добавляли в программу каждый фильтр, который там был. И если в алгоритме были какие-то параметры, которые можно было бы менять, то в пользовательский интерфейс добавляли для него ползунок.Читать полностью »

В статье описывается метод обработки сложных событий с помощью цепочек. В качестве практического приложения была выбрана относительно простая задача — прогнозирование движения валютного курса.

При построении цепочек использовалась методология, описанная в статье “Автоматический анализ текстов без модераторов” и в комментариях к ней. После описания алгоритма будут предложена стратегия с положительным математическим ожиданием прибыли.

Введение

При обработке событий приходится искать смысл происходящего. Если с неба светит солнце и дует юго-западный ветер, то что это значит? А если вдруг потемнело и слышны глухие раскаты, то чем это грозит?

Ответ на эти вопросы лежит в будущем. Если сейчас хорошая погода, то можно идти гулять. А если вдруг сгустились тучи, то надо готовиться к дождю. Таким образом, события из настоящего становятся предпосылками для формирования будущего.

Но будущее не существует. Даже если оно предопределено, всегда может объявиться фактор, который в той или иной степени изменит результат. Можно говорить лишь о некоторой вероятности, с которой прогноз исполняется.

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

Другим фактором является то, что поведение окружающей среды определено и детерминировано далеко не всегда. Это заставляет прибегать к эмпирическим методам исследования: сначала мы фиксируем предпосылки, а потом ассоциируем их с произошедшими последствиями. Время между причиной и следствием дает дополнительную задержку.

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

Таким образом, задача сводится к сбору необходимой информации, эмпирическому поиску стабильных причинно-следственных связей и использовании результатов при прогнозировании.

Читать полностью »

В прошлом посте я обосновал то как можно с помощью javascript проигрывать покадровую анимацию.

На основе предыдущей статьи я написал скринсейвер по играм.

Как устроен скринсейвер:
Вначале я написал сам скринсейвер, представляющий собой небольшую программку-браузер, растянутую на весь экран.
Основная анимация скринсейвера была написана на javascript.

Вот несколько скриншотов скринсейвера:

image
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js