Search
Write a publication
Pull to refresh
2
0

Software developer, C/C++, *SQL, DWH, ETL

Send message

Пример решения типичной ООП задачи на языке Haskell

Reading time6 min
Views26K
Рассмотрим типичную задачу, из тех, что обычно считаются «ООП-эшными». Имеется список данных (объектов) имеющих не одинаковые структуры (по научному, гетерогенный список), при чём, над каждым нужно выполнять одинаковые действия – по простому, каждый можно передать в некую функцию.
Читать дальше →

Шесть распространенных проблем ноутбуков и стоимость их решения

Reading time5 min
Views39K
Как бы ни была совершенна современная техника, приобретая ее, вместе с ней мы приобретаем и потенциальные проблемы. Вся разница в том, насколько быстро нам придется с ними столкнуться, а это уже, согласитесь, зависит от множества косвенных факторов, начиная с нашего отношения к девайсу – и оканчивая надежностью и авторитетом бренда производителя. В группе повышенного риска всегда были и остаются смартфоны, планшеты и ноутбуки, эксплуатировать которых, по определению, зачастую приходится в самых разных условиях и в непредсказуемых ситуациях.
Читать дальше →

Умножение Карацубы и C++ 11

Reading time6 min
Views48K
Хочу в очередной раз затронуть метод реализации умножения Карацубы с использованием возможностей стандарта C++11. Данный алгоритм неоднократно рассматривался здесь («Умножение длинных чисел методом Карацубы», «Алгоритм Карацубы для умножения двух чисел»), но видимо из-за того, что я не умею их готовить, первый вариант не работал с числами разной длины, а второй делает не совсем то, что было нужно.

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

Серии Фейнмана [Озвучка Vert Dider]

Reading time1 min
Views33K


«Серии Фейнмана» — образовательный проект, созданный с целью повысить уровень научной грамотности в обществе. От создателей «Серий Карла Сагана».
Читать дальше →

Магия тензорной алгебры: Часть 9 — Вывод тензора угловой скорости через параметры конечного поворота. Применяем Maxima

Reading time8 min
Views15K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Утекло уже порядком времени, как я обещал получить тензор угловой скорости твердого тела, выразив его через параметры конечного поворота. Если взглянуть на КДПВ, то станет понятно, почему я так долго думал — стопка бумаги на столе, это ход моих мыслей.

Преобразование тензорных выражений то ещё удовольствие…


Жестокие тензоры не хотели упрощаться. Вернее, они то хотели, но при преобразованиях, раскрытии скобок, в силу невнимательности возникали мелкие ошибки, которые не позволяли взглянуть на картину в целом. В итоге результат таки был получен. Не последнюю роль в этом сыграла СКА Maxima, которой я обратился, во многом благодаря статье пользователя EugeneKalentev. Акцент упомянутой статьи смещался в сторону вычислительной работы с тензорами, компоненты которых представлены конкретными структурами данных. Меня же интересовал вопрос работы с абстрактными тензорами. Оказалось, что Maxima может с ними работать, хоть и нет так, как может быть хотелось, но всё же она серьезно упростила мне жизнь.

Итак, мы возвращаемся к механике твердого тела, а заодно посмотрим, как работать с тензорами в Maxima.
Читать дальше →

Магия тензорной алгебры: Часть 10 — Получаем вектор угловой скорости. Работаем над недочетами

Reading time7 min
Views16K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение




Введение на этот раз будет «активным». Мы сразу начнем работать, и, пользуясь результатами предыдущих статей 6 и 9, получим псевдовектор угловой скорости твердого тела, выраженный через параметры конечного поворота.

Итак, путем долгих мучений вручную и, недолгих, но кропотливых преобразований в Maxima, мы пришли к тому, что антисимметричный тензор угловой скорости 2 ранга выглядит так

\Omega_{\,mk} = \left(1 - \cos\varphi \right )\left(\dot u_{\,m} \, u_{\,k} - u_{\,m} \, \dot u_{\,k}\right ) + \sin\varphi \, \left(1 - \cos\varphi \right ) \, u^{\,i} \left( \varepsilon_{\,ijk} \, \dot u^{\,j} \, u_{\,m} - \varepsilon_{\,ilm} \, \dot u^{\,l} \, u_{\,k} \right ) +

+ \sin\varphi \cos\varphi \, \varepsilon_{\,mjk} \, \dot u^{\,j} + \dot\varphi \, \varepsilon_{\,mik} \, u^{i} \quad (1)

Мы говорили о том, что получить псевдовектор угловой скорости можно, свернув (1) с тензором Леви-Чивиты

\omega^{\,r} = \varepsilon^{\,mkr} \, \Omega_{\,mk} \quad (2)

Однако дальнейшее исследование показало, что формула (2) содержит ошибку, которая приводит к получению не совсем верного результата. Отгадка нашлась путем изучения литературы и дальнейшего самостоятельного осмысления результатов из статьи о свертке тензора Леви-Чивиты.

Приглашаю под кат всех, кому интересно, что получилось в итоге.
Читать дальше →

Магия тензорной алгебры: Часть 5 — Действия над тензорами и некоторые другие теоретические вопросы

Reading time7 min
Views64K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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

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

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

Магия тензорной алгебры: Часть 6 — Кинематика свободного твердого тела. Природа угловой скорости

Reading time8 min
Views30K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Что такое угловая скорость? Скалярная или векторная величина? На самом деле это не праздный вопрос.

Читая лекции по теоретической механике в университете, я, следуя традиционной методике изложения курса кинематики, вводил понятие угловой скорости в теме «Скорость точки тела при вращательном движении». И там угловая скорость впервые появляется как скалярная величина, со следующим определением.
Угловая скорость твердого тела — это первая производная от угла поворота тела по времени
\omega = \frac{d \varphi}{dt}

А вот потом, при рассмотрении каноничной формулы Эйлера для скорости точки тела при вращении

\vec{v}_M = \vec{\omega} \times \vec{r}

обычно дается следующее определение
Угловая скорость тела — это псевдовектор, направленный вдоль оси вращения тела в ту сторону, откуда вращение выглядит происходящим против часовой стрелки

Ещё одно частное определение, которое, во-первых, утверждает неподвижность оси вращения, во-вторых навязывает рассмотрение лишь правой системы координат. И наконец термин «псевдовектор» обычно объясняется студентам так: «Посмотрите, ведь мы показали, что омега — скалярная величина. А вектор мы вводим для того, чтобы выписать формулу Эйлера».

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

Учитывая уровень подготовки школьников, а так же вопиющую глупость, допускаемую в программах подготовки бакалавров, когда теормех начинается с первого (вдумайтесь!) семестра, такие постепенные вводные, на палках, веревках и желудях наверное оправданы.

Но мы с вами заглянем, что называется, «под капот» проблемы и, вооружившись аппаратом тензорного исчисления, выясним, что угловая скорость — это псевдовектор, порождаемый антисимметричным тензором второго ранга.

Думаю для затравки вполне достаточно, а поэтому — начнем!
Читать дальше →

Магия тензорной алгебры: Часть 7 — Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления

Reading time8 min
Views38K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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

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

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

Так что задача этой статьи — не заглядывая внутрь тензора поворота исследовать его свойства и получить тензорное соотношение для его расчета. А раз задача поставлена, то начнем её решать.
Читать дальше →

Магия тензорной алгебры: Часть 4 — Динамика точки в тензорном изложении

Reading time8 min
Views33K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Итак, настал момент применить на практике всё то, о чем мы так долго рассуждали теоретически. Данная заметка будет использовать в основном материал предыдущей статьи, в которой есть ссылки на предыдущие публикации по тензорной тематике.

А заниматься мы будем механикой. Именно решение задач механики и побудило меня разбираться с тензорным исчислением. И поговорим мы об уравнениях Лагранжа 2 рода, которые применяются для анализа движения сложных механических систем. Эти уравнения имеют вид, хорошо известный большинству специалистов в данной области

\frac{d}{dt} \left(\frac{\partial T}{\partial \dot{q}^i} \right ) - \frac{\partial T}{\partial q^i} = Q_i \quad i = \overline{1,s}

где s — число степеней свободы механической системы; q^i — обобщенная координата; T = T\left(\vec{q}, \, \dot{\vec{q}} \right ) — кинетическая энергия механической системы; Q^i — обобщенная сила.

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

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

Что же, начнем!
Читать дальше →

Магия тензорной алгебры: Часть 3 — Криволинейные координаты

Reading time8 min
Views70K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Читая отзывы к своим статьям, понял, что я излишне перегрузил читателя теоретическими вводными. Прошу за это прощения, признаться честно, я сам далек от формальной математики.

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

А пока что рассмотрим некоторые теоретические основы. Добро пожаловать под кат.
Читать дальше →

Магия тензорной алгебры: Часть 2 — Векторные и тензорные операции. Ранги тензоров

Reading time10 min
Views137K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Несказанно рад, что читателям понравилась предыдущая статья. Сразу сделаю оговорку — просто рассказать о таком ёмком понятии как тензор не получится — велик объем информации. Могу обещать, что к концу цикла мозаика сложится.

А в прошлый раз мы остановились на том, что рассмотрев представление вектора в косоугольном базисе, и определив, что он представляется двумя разными (ковариантными и контравариантными) наборами координат, получили общие выражения для скалярного произведения, учитывающие изменение метрики пространства. Таким образом, мы весьма осторожно подошли к понятию тензора
Тензор — математический объект, не изменяющийся при изменении системы координат, представленный набором >своих компонент и правилом преобразования компонент при смене базиса.

Скалярное произведение — это хорошо. Но как же быть с остальными операциями? Как они связываются с геометрией пространства и представимы ли в тензорном виде? Разумеется представимы, ведь векторы — это… тензоры! И скаляры — это тоже тензоры. Привычные нам математические объекты лишь частные примеры более общего понятия, коим является тензор.

Вот об этом мы и поговорим под катом.
Читать дальше →

Магия тензорной алгебры: Часть 1 — что такое тензор и для чего он нужен?

Reading time7 min
Views379K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение



Это было очень давно, когда я учился классе в десятом. Среди довольно скудного в научном плане фонда районной библиотеки мне попалась книга — Угаров В. А. «Специальная теория относительности». Эта тема интересовала меня в то время, но информации школьных учебников и справочников было явно недостаточно.



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



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

Осторожно, Modern UI

Reading time12 min
Views28K

Каждый разработчик Windows Store приложений должен знать гайдлайны.
Guideline в переводе с английского — рекомендации, руководящие указания. Для того, чтобы приложение попало в Store не обязательно следовать рекомендациям, но следовать им желательно. Есть несколько особенностей, или иноземно выражаясь фич (англ. feature), которые желательно иметь каждому приложению. Я решил рассмотреть эти особенности, а заодно сделать шаблон C#/XAML приложения Windows Store, с которого можно начинать разработку. Ведь, так или иначе, часто приходится заходить в разработанные ранее приложения или MSDN, чтобы скопировать код сниппета для определенной функции.
Описанные далее возможности не только сделают ваше приложение соответствующим гайдлайнам, но и украсят его дополнительным функционалом, привлекающим внимание пользователей, а также помогут в продвижении.
Читать дальше →

«Программирование мышкой» для микроконтроллеров

Reading time5 min
Views39K
Многие микроконтроллерные платформы поддерживают инструменты для создания начальной конфиграции периферийных устройств и портов ввода/вывода. Обычно это графическая среда, в которой задаются параметры работы кристалла и может быть сгенерирован исходный код — заготовка будущего проекта.

При использовании такого конфигуратора вы существенно упрощаете начальный этап программирования, но делаете это не в ущерб пониманию процессов, происходящих на кристалле.
Ниже приведен пример использования конфигуратора для микроконтроллера C8051F930 от Silicon Labs. Будем управлять яркостью светодиода с потенциомера, написав руками всего две строчки кода. Just for fun, конечно.

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

Библиотечные паттерны: Почему фреймворки — это зло

Reading time14 min
Views19K
Здравствуйте, уважаемые читатели!

Сегодня мы хотим предложить вам перевод технической статьи, автор которой, Томас Петричек, рассматривает различные аспекты работы с библиотеками на языке F#. Поскольку мы сейчас изучаем потенциал одной книги, в создании которой участвовал этот автор, статья позиционируется прежде всего как текст-образец, на примере которого вы сможете оценить повествовательный талант автора, качество его идей, аргументов и рассуждений, а также примеры кода. Однако, поскольку изложенные в статье соображения не ограничиваются работой с F#, надеемся, что текст окажется информативным и интересным для самой широкой аудитории
Читать дальше →

Использование монад в С++. Часть 1: монада списка

Reading time10 min
Views34K
Часть 1
Часть 2

Иногда программисты на С++ просят привести пример задачи, которая не может быть решена без использования монад. Начнём с того, что этот вопрос неверен сам по себе — это всё-равно, что спрашивать, существует ли задача, которая не может быть решена без циклов. Очевидно, если в вашем языке есть поддержка оператора goto, вы можете обойтись без использования операторов цикла. Что монады (и циклы) могут сделать для вас, это упростить ваш код и помочь лучше его структурировать. Как использование циклов превращает спагетти-код в нормальный, так и использование монад может превратить ваш код в императивном стиле в декларативный. Эта трансформация может помочь легче писать, понимать, поддерживать и расширять ваш код.

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

  s e n d
+ m o r e
---------
m o n e y


Каждая буква соответствует цифре от 0 до 9. Нужно написать программу, которая подберёт такие соответствия, чтобы написанная операция сложения была верной. Перед тем, как продолжить чтение статьи — подумайте минутку, как бы вы решили эту задачу?
Читать дальше →

Обработка строк в Java. Часть I: String, StringBuffer, StringBuilder

Reading time8 min
Views462K

Вступление


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

  1. String, StringBuffer, StringBuilder (реализация строк)
  2. Pattern, Matcher (регулярные выражения)

Реализация строк на Java представлена тремя основными классами: String, StringBuffer, StringBuilder. Давайте поговорим о них.
Читать дальше →

Контракты в D

Reading time5 min
Views8.2K
Доброго времени суток, хабр!

Сегодня я хочу рассказать Вам о контрактном программировании и его реализации в D. Это очень интересная концепция построения API. Смысл заключается в формальной спецификации работы функции или класса на уровне кода, а не комментария.

Пример подобной спецификации для функции:
Читать дальше →

Почему я не преподаю SOLID и «принцип устранения зависимостей»

Reading time5 min
Views65K

Статья 1. Почему я не преподаю SOLID


Если вы разговариваете с кем-то, кому небезразлично качество кода, уже достаточно скоро в разговоре всплывёт SOLID — аббревиатура, помогающая разработчикам запомнить пять важных принципов объектно-ориентированного программирования:

SOLID полезен. Его разработали знатоки в нашей области. Он помогает людям рассуждать о дизайне. Помогает создавать системы, устойчивые к изменениям.

Раньше SOLID был краеугольным камнем моего набора средств проектирования. Я делал все возможное, чтобы сделать мой код как можно более SOLID. Я учил других поступать так же.

Сегодня SOLID остается для меня важным, но я больше не пытаюсь сделать мой код SOLID. Я редко упоминаю его, когда говорю про дизайн. И тем более я не учу пользоваться им разработчиков, которым хочется почерпнуть хорошие дизайнерские методы проектирования. Он больше не находится у меня под рукой в моем «ящике для инструментов». Он лежит в пыльной коробке на чердаке. Я храню его, потому что он важен, но редко им пользуюсь.
Читать дальше →

Information

Rating
Does not participate
Location
Bayern, Германия
Registered
Activity