Решил я намедни сделать для себя небольшой, но очень удобный велосипед для вычисления всяких полезных математических функций. Стоит отметить, что пишу я на разных языках, и в этот раз выбор пал на C++. Пилю я, значит, сей чудесный трехколесный транспорт и параллельно занимаюсь юнит-тестированием свежесозданных функций… И тут нате-здрасте — один из тестов выдает мне совсем не тот результат, которого я ждал. Готовы?!
Читать полностью »
Рубрика «Программирование» - 683
Всем нолям ноль: почти все языки программирования делают это
2016-03-10 в 12:32, admin, рубрики: Ноль, Программирование, языки программирования, метки: НольSTM32 и LCD, быстрая заливка экрана
2016-03-10 в 11:51, admin, рубрики: stm32, дисплей, Программирование, программирование микроконтроллеров В настоящее время получили распространение различные жидкокристаллические дисплеи, которые отлично подключаются к контроллерам семейства STM32. В данной статье речь пойдет об одном из распространенных контроллеров STM32F103C8T6 и дисплее 7" на контроллере SSD1963. Оба в виде законченных узлов легко доступны на Aliexpress и относительно недорого стоят. Конечно, все рассмотренное ниже справедливо и для других дисплеев с параллельным интерфейсом и большинства контроллеров STM32.
Читать полностью »
Свежий взгляд на код Oracle VM VirtualBox
2016-03-10 в 11:10, admin, рубрики: c++, open source, oracle, pvs-studio, virtualbox, Блог компании PVS-Studio, виртуализация, ошибки в программе, Программирование, статический анализ кода Виртуальные машины — важный инструмент в арсенале разработчика программного обеспечения. Мой интерес к коду VirtualBox вызван личным использованием этого продукта для проверки открытых проектов, а также для других разных задач, связанных с использованием нескольких операционных систем. Первая проверка этого проекта состоялась в 2014 году, тогда описание около 50 ошибок едва уместилось в двух статьях. C выходом Windows 10 и VirtualBox 5.0.XX, на мой взгляд, стабильность работы программы заметно ухудшилась. Поэтому я решил проверить проект ещё раз.
Читать полностью »
Что должен уметь программист, чтобы получить работу в сфере финансов
2016-03-10 в 6:56, admin, рубрики: Блог компании ITinvest, онлайн-трейдинг, Программирование, разработка, сфера финансов, фондовый рынокВ нашем блоге на Хабре мы много пишем об использующихся в сфере финансов технологиях. На фондовых биржах сегодня используется самое передовое программное и аппаратное обеспечение — как для построения самой торговой инфраструктуры, так и для создания систем онлайн-трейдинга.
Сегодня здесь востребованы математики, физики и программисты. Люди способные создавать алгоритмы торговли и делать на их базе качественный софт. Многие программисты, в свою очередь, хотели бы попробовать свои силы в финансовой отрасли — она может предложить привлекательное сочетание интересных задач и высоких зарплат.
Сегодня мы поговорим о том, какими навыками нужно обладать, чтобы получить работу в HFT-фирме, инвестиционном банке, хедж-фонде или брокерской компании. При подготовке топика использовались материалы сайтов experience.com и quantstart.com.Читать полностью »
«Цифровая лаборатория» – общение со смартфоном по Bluetooth
2016-03-10 в 6:42, admin, рубрики: arduino, diy или сделай сам, азбука электронщика, Блог компании Мастер Кит, лаборатория, мастер кит, Программирование, программирование микроконтроллеров, Электроника для начинающихВ первых двух обзорах (1, 2) мы познакомили вас с составом и основными возможностями набора NR05 «Цифровая лаборатория» из серии «Азбука электронщика».
Мы неоднократно говорили, что возможности набора не исчерпываются теми опытами и проектами, которые входят обучающее пособие. Возможности набора гораздо шире!
Рассмотрим, как можно реализовать с помощью «Цифровой лаборатории» управление исполнительными устройствами с вашего смартфона или планшета.
Читать полностью »
Взаимодействие с роботом на базе конструктора Lego Mindstorms EV3 через RCML
2016-03-09 в 14:49, admin, рубрики: diy или сделай сам, Программирование, робототехникаВ статье содержится описание опыта использования конструктора Lego Mindstorms EV3 для создания прототипа робота с его последующим программным и ручным управлением при помощи Robot Control Meta Language (RCML).
Далее будут рассмотрены следующие ключевые моменты:
- Сборка прототипа робота на базе конструктора Lego Mindstorms EV3
- Быстрая установка и настройка RCML для Windows
- Программное управление роботом на базе контроллера EV3
- Ручное управление периферией робота с помощью клавиатуры и геймпада
Забегая немного вперед, добавлю, что для реализации управления Lego-роботом с помощью клавиатуры требуется создать программу, содержащую всего 3 строки программного кода. Подробней о том, как это сделать написано под катом.
Читать полностью »
Интерфейсы — важнейшая концепция в разработке ПО
2016-03-09 в 14:11, admin, рубрики: python, Анализ и проектирование систем, Блог компании Mail.Ru Group, Веб-разработка, интерфейсы, основы, Программирование
Интерфейс можно считать своеобразным договором между системой и внешним окружением. В рамках компьютерной программы «система» — рассматриваемая функция или модуль, а «окружение» — весь остальной проект. Интерфейс формально описывает, какие данные могут передаваться между системой и окружением. А «реализацию» можно охарактеризовать как «система минус интерфейс». В языках наподобие Haskell интерфейсы могут быть крайне специфическими. А в языках вроде Python они, напротив, очень обыденны. Выбранный тип интерфейса может повлиять на размер созданного технического долга и производительность программиста. О том, как это посчитать, написано ниже. Также будет предложен метод для оценки и сравнения разных интерфейсов. На основании этих сравнений вы сможете сами понаблюдать за способами использования языка или программного инструмента.
Читать полностью »
Агрегат для node.js
2016-03-09 в 12:12, admin, рубрики: ActiveRecord в 600 SLOC, agregate, javascript, neo4j, node.js, Веб-разработка, Программирование, разработка
какой-то неведомый агрегат, никак не связанный с node.js. Но на хабре считается хорошим тоном приложить картинку
Некоторое время назад я задумался, почему же в node.js работа с реляционными БД, такими как *SQL, и некоторыми noSQL типа Mongo, сложна, и сделал альтернативное решение, заточенное под скорость работы программиста (в сравнении с классическими решениями, заточенных под скорость работы с БД) и прямолинейность и компактность API для минимального порога вхождения. Первым источником вдохновления стал доклад "минимальная поверхность API", вторым — знаменитая цитата Дональда Крута:
Программисты тратят ненормальное количество времени, волнуясь о скорости некритичных частей приложений, и эти попытки повысить эффективность серьезно отрицательно влияют на отладку и поддержку этих приложений. Преждевременная оптимизация есть корень всех зол.
С днём рождения, Джеф Раскин
2016-03-09 в 12:10, admin, рубрики: edisonsoftware, usability, web-разработка, Блог компании Edison, интерфейсы, киберпанковский март, Программирование, Профессиональная литература, разработка «Интерфейс не должен вредить человеку или своим бездействием допустить, чтобы человеку был нанесен вред». Азимов-Раскин
На фото: Джеф Раскин. То чувство, когда ты один знаешь, как сделать интерфейсы правильно, а весь мир делает не так.
Для тех, кто еще не знает Джеф Раскин (Jef Raskin) — специалист по компьютерным интерфейсам, автор статей по юзабилити и книги «The Humane Interface», сотрудник № 31 фирмы Apple Computer, наиболее известен как инициатор проекта Макинтош в конце 70-x.
- Привел Стива Джобса в Xerox PARC.
- Носил «гугл-очки» еще до появления компании Google.
- Ненавидел компьютерную мышь.
- Создал компьютерную кошку.
- Не любил GUI, мечтал о ZUI.
- Ему было мало одного курсора, он сделал два.
- Дирижировал оркестром.
- Вместе с Дональдом Кнутом играл на инструментах, и тоже фанател от органа.
- Написал язык программирования для гуманитариев, который содержал 6 инструкций.
В день рождения (9 марта) старика-бунтаря Раскина, решил поделиться мыслями про интерфейсы в своей жизни. Какой интерфейс помогает лично вам в жизни, служит «усилителем интеллекта»?
Мой первый интерфейс, где я был максимально продуктивен на то время (и под задачи молодости) — DOS Navigator, затем его сменил Total Commander.
Возможно, мой мозг засох после выпуска из универа, но мне кажется, что все, что связано с интерфейсами, с тех пор стало только хуже (субъективно). Я даже перестал искать и пробовать, стал пользоваться первым, что под руку попадется (например, встроенный редактор в Хабре). Но если надо взяться за серьезный проект, где «думать надо», я спрыгиваю из гамака и снимаю лыжи открываю… CorelDraw X3.
Corel — самая крутая штука после белой доски на всю стену и десятка цветных маркеров. В Corel есть ZUI. Стабильный и рабочий ZUI. Для моих задач и того типа информации (много текста и много картинок) которым я оперирую, чтобы «думать», Corel подходит почти идеально (лучшего пока не нашел). Хотя, нет, вроде бы Palantir тоже имеет ZUI. (Радует, что и читатели шевелятся в этом направлении — icefall с его «Тектограммы — новое поколение майндмапов»)
Под катом немного наследия Джефа Раскина.
Читать полностью »
Решение задачи FizzBuzz
2016-03-09 в 11:53, admin, рубрики: c++, алгоритм FizzBuzz, Алгоритмы, задача FizzBuzz, Программирование, решение Fizzbuzz, метки: алгоритм FizzBuzz, задача FizzBuzz, решение FizzbuzzПри устройстве на работу программистом столкнулся с интересной задачей следующего содержания:
«Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово Fizz, а вместо чисел, кратных пяти — слово Buzz. Если число кратно пятнадцати, то программа должна выводить слово FizzBuzz. Задача может показаться очевидной, но нужно получить наиболее простое и красивое решение.»
Под наиболее простым и красивым решением я понимаю наиболее компактный алгоритм, который использует наименьшее количество условных операторов и операций сравнения. Такой алгоритм будет иметь наименьшую временную сложность, к нему и будем стремиться.Читать полностью »