• Как я пишу конспекты по математике на LaTeX в Vim

    • Translation
    • Tutorial
    Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу опубликовать несколько постов в блоге с описанием нового процесса. Это первая из статей.

    Я начал использовать LaTeX для конспектирования во втором семестре курса математики, и с тех пор написал более 1700 страниц. Вот несколько примеров, как выглядит конспект:


    Читать дальше →
  • Интересности и полезности python. Часть 3

      В предыдущих частях мы рассмотрели срезы, распаковку\упаковку коллекций и некоторые особенности булевых операций и типов.

      В комментариях упоминалась возможность умножения коллекций на скаляр:

      a = [0] * 3
      s = 'a' * 2
      print(a, s)  # -> [0, 0, 0], 'aa'
      

      Более-менее опытный разработчик на языке python знает, что в нём отсутствует механизм копирования при записи

      a = [0]
      b = a
      b[0] = 1
      print(a, b)  # -> [1], [1]
      

      Что же тогда выведет следующий код?

      b = a * 2
      b[0] = 2
      print(a, b)
      
      Читать дальше →
    • Что нужно запомнить программисту, переходящему на Python

      • Tutorial

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


      Однако в какой-то момент перл исчерпал себя и я решил заняться питоном, сначала просто делал что-то и разбирался с тем, что нужно для данной задачи, а потом понял, что нужны какие-то систематизированные знания и прочитал несколько книг:


      • Билл Любанович «Простой Python. Современный стиль программирования»
      • Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
      • Бретт Слаткин «Секреты Python: 59 рекомендаций по написанию эффективного кода»

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


      В итоге у меня накопились какие-то заметки об особенностях питона, которые, как мне кажется, могут быть полезны тому кто пожелает мигрировать на него с других языков.

      Читать дальше →
    • Python: советы, уловки, хаки (часть 1)

      • Translation
      Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.

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

      Содержание

      1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
      2. Списки. Генераторы списков и выражения-генераторы.
      Читать дальше →
    • Плагины VIM о которых следует знать, часть 1: surround.vim

        Топик — вольный перевод статьи Vim Plugins You Should Know About, Part I: surround.vim Петериса Круминса.

        UPD: вторая часть

        Что такое плагин surround.vim? Вот что говорит о нем автор, Тим Поп (Tim Pope):

        Surround.vim работает со всем, что «окружает»: скобками, кавычками, тегами XML и т.п. Плагин предоставляет сочетания клавиш, которыми можно легко удалять, изменять и добавлять пары таких окружающих элементов.
        Читать дальше →
      • NumPy, пособие для новичков. Часть 1

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

        Первая часть учебника рассказывает об основах работы с NumPy: создании массивов, их атрибутах, базовых операциях, поэлементном применении функций, индексах, срезах, итерировании. Рассматриваются различные манипуляции с преобразованием формы массива, объединение массивов из нескольких и наоборот — разбиение одного на несколько более мелких. В конце мы обсудим поверхностное и глубокое копирование.
        Читать дальше →