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

Автор хочет поделится своим опытом организации быстрой перерисовки графиков (точнее сказать, изображений,) в Матлабе на примере организации радиолокационного индикатора кругового обзора Читать полностью »

Начну с истории о программистах, которую мне приходилось слышать неоднократно.

Я попросил Джо написать простенькую программу, которая делает &ltxyz&gt. Работы там было на несколько часов, в худшем случае на день. Ему понадобилось несколько дней, за который он написал гораздо более сложный фреймворк, чем требовалось. Почему он снова так намудрил?

Возможно, дело в том, что Джо – Абстрактно ориентированный программист (АОП) .Читать полностью »

Недавно на хабрахабре вышла статья о java на raspberry pi, увидев название которой было много ожиданий, а под катом оказался банальный Hello World!

Дело в том, что ко мне как раз ехала моя малинка и хотелось получить ответы на следующие вопросы:

1. Сравнима ли скорость работы java на малинке и настольном компьютере?
2. Насколько удобно работать с java на raspberry?
3. Есть ли адекватные библиотеки для работы с GPIO?

Вот на эти вопросы я и попробую дать ответы в этой статье.

Кому интересно: добро пожаловать под кат (графики и фотографий обнаженной малинки там не будет)

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

Доклад на девятой конференции «Свободное программное обеспечение в высшей школе», 25–26 января 2014. Исходный код заметок и примеров к ним доступен на https://github.com/mbykov/articles.

Все, кто работает с node.js, знают TJ Головайчука, автора веб-сервера express, библиотеки для тестирования mocha, и прочая, и прочая. Но, наверное, самый блестящий его проект на сегодня — это Component — http://github.com/component. На русском пока немного литературы о Компонентах, попробую восполнить этот пробел. TJ опубликовал первое сообщение о Компонентах в своем блоге 19 декабря 2012 г. Сейчас, после взрывного роста, количество компонент уже зашкаливает за тысячу, и растет каждый день.

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

«Проект без рисков – удел неудачников. Риски и выгода всегда ходят рука об руку» (с) Том Демарко, Тимоти Листер.

Руководителю проекта разработки ПО надо уметь делать немногое. Надо лишь уметь управлять рисками. Рисками не уложиться в срок. Рисками сделать не то, что требуется. Рисками перерасходовать проектный бюджет. Всё остальное – производные активности.

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

image

Таким большим оптимистам можно дальше и не читать. Для остальных продолжу.

Бытует мнение, что каждый новый проект разработки является уникальным предприятием. Это не совсем так. В отрасли уже накопился определенный опыт и большинство значимых рисков проектов разработки ПО известны и собраны коллекции (контрольные списки) грабель, на которые особенно часто наступают начинающие руководители программных проектов, предпочитающие учиться на собственном опыте.

Оговорюсь сразу, что самый значимый риск в разработке ПО – неадекватный РП. Но сейчас не об этом.
Читать полностью »

C#. Непоследовательное сравнение
От переводчика:
Это вольный перевод блогозаписи Эрика Липперта (Eric Lippert), в прошлом одного из разработчиков языка C#. Запись оформлена в виде «вопрос-ответ», я пропущу вопрос и перейду к ответу, вы можете ознакомиться с вопросом в оригинале, но там ничего особо интересного.

Но, для начала, я попрошу взглянуть на следующий код, и без гугла и компилирования, попробовать выяснить что произойдет в 9 случаях сравнения и свериться с ответами (для опроса):

int myInt = 1;
short myShort = 1;
object objInt1 = myInt;
object objInt2 = myInt;
object objShort = myShort;
Console.WriteLine(myInt == myShort);          // scenario 1
Console.WriteLine(myShort == myInt);          // scenario 2
Console.WriteLine(myInt.Equals(myShort));     // scenario 3
Console.WriteLine(myShort.Equals(myInt));     // scenario 4
Console.WriteLine(objInt1 == objInt1);        // scenario 5
Console.WriteLine(objInt1 == objShort);       // scenario 6
Console.WriteLine(objInt1 == objInt2);        // scenario 7
Console.WriteLine(Equals(objInt1, objInt2));  // scenario 8
Console.WriteLine(Equals(objInt1, objShort)); // scenario 9


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

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

Дальнейшее изложение будет проводиться с использованием многочисленных примеров на языке программирования Haskell. Дело в том, что по моему сугубому мнению, функциональное программирование находится намного ближе к модели квантовых вычислений, чем любой иной тип. Обосновывать эту точку зрения я сейчас не буду. Но суть в ином — для постижения модели квантовых вычислений нужен намного более суровый сдвиг парадигмы, чем, к примеру, такой сдвиг от структурного программирования к объектно-ориентированному и тем более к функциональному. Здесь нет ни слова о том, что кто-то из программистов находится выше или ниже, но лишь о том, что освоение новой модели — это реальный переворот в мозгах и способе алгоритмического мышления.

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

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

В прошлой статье Светофор на ПЛК – 30 блоков программа для ПЛК светофора была написана только на FBD.
Новая программа использует все 5 языков стандарта МЭК 61131-3.
Читать полностью »

Приветствую всех.

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

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

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


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