• Тратите всю зарплату за месяц?



      Знакома ли Вам ситуация, когда конец месяца и сумма на карточке пустеет? А если еще аванс/зарплату задерживают на день-два, приходится даже занимать?

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

      Пост дискуссионный, интересно знать Ваш опыт решения этой проблемы. Мой вариант дальше.
      Читать дальше →
    • Загадка выпадающего списка «Амазона»

        Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



        Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
        Читать дальше →
      • Новый пароль по умолчанию в SAP

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

        image

        Стандартный пароль для TMSADM — PASSWORD — действительно широко известен, но про пароль $1Pawd2& я слышу впервые. Давайте разбираться…
        Первое, что приходит на ум, — поискать в Интернете. Google дает только две ссылки, на сайте компании SAP — 6 ссылок. Ни одна из этих ссылок не вносит ясности в наш вопрос: в основном загадочный пароль встречается в опубликованных фрагментах ABAP-кода.
        Ну что ж, видимо и нам ответы следует искать в коде. Открыв исходный код отчета RSUSR003, без труда находим текст того сообщения, которое мы видели ранее на экране (номер сообщения — 028).


        Читать дальше →
      • Emacs и Python (статья 2 из цикла)

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

          В данной статье я постараюсь продемонстрировать максимум удобных в ежедневном применении возможностей редактора Emacs для языка Python, и более конкретно для редактирования Django проектов.

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

          Читать дальше →
        • Emacs для начинающих: введение

            Ist das Emacs? Sehr gut!



            Начну с небольшой истории. Лет так 15 назад ездил я на подработку сисадмином программистом в славный городе Mannheim, West Germany. Когда я приехал на работу и развернул своё рабочее окружение, большинство дойчей вообще не сильно поняли в чём я работаю, а вот директор конторы сразу мне сказал: «Ist das Emacs? Sehr gut!», добавив также что никто кто из текущих программистов не смог его освоить. А по честному, не такой уж я особенный — мне просто повезло: готовый конфиг мне дал один добрый человек, и помог мне разобраться с редактором на первых шагах. Я, в свою очередь хочу поделиться своим опытом с остальными, и решил сделать серию статей для начинающих и не очень, с рассмотрением разных полезных фич emacs.

            В этой статье я также хочу пошатнуть сложившийся миф — что Emacs — сложный в работе/настройке редактор. Я считаю, что правильно начав, процесс изучения не будет сложным, и надеюсь, доставит Вам массу удовольствия от использования удобного, мощного и быстрого инструмента как в работе так в жизни.
            Читать дальше →
          • Какими будут планшеты, деньги, тюрьмы и наушники в 36 веке?

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

              осторожно, очень много букв
              Читать дальше →
            • Тайловый оконный менеджер i3

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

                Особенности i3wm для пользователя: корректная поддержка нескольких мониторов (смотрите скрин в конце), простой текстовый конфиг-файл, нет необходимости пересобирать wm после изменения настроек, три режима расположения окон, меню запуска приложений dmenu, создает рабочие столы по мере необходимости и удаляет пустые, из коробки имеет отличную информационную панель, показывающую уровень Wi-Fi сети, заряд батареи и много еще чего.
                Читать дальше →
              • Создание плагина для Intellij Platform (IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm and AppCode)

                Привет, Хабр!
                В данном топике я расскажу как создать простой плагин для IntelliJ IDEA и PyCharm. Так как все IDE содержат одинаковый интерфейс для работы с плагинами, то модификация его для других систем не требует значительных усилий (подробнее), в отличии от процесса непосредственной разработки.

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

                Плагины пишутся на Java, UI создается на SWING. Документация для разработки плагинов состоит всего лишь из нескольких страниц и горстки примеров. На просторах интернета данная тематика не отражена совсем. Единственное, что слегка помогает это наличие исходных кодов у некоторых уже созданных плагинов.

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


                Читать дальше →
                • +36
                • 10,8k
                • 8
              • Тренажёр для клавиатурных сочетаний

                  Сайт shortcutfoo.com служит для изучения и тренировки клавиатурных сокращений в разных программах. Он ориентирован прежде всего на разработчиков — есть курсы для изучения Vim, Sublime Text, Emacs, TextMate, XCode, *nix консоли. Приятный интерфейс, ничего лишнего, есть возможность создавать свои пакеты комбинаций для тренировки. Несколько неудобно, что он не позволяет видеть результат применения команд, а только даёт их текстовые описания, так что это скорее интерактивная шпаргалка, чем полноценный тренажёр. Тем не менее есть так называемый drill mode, в котором нужно набирать сочетания клавиш по памяти и на скорость.

                • Полиномиальные хеши и их применение

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

                  Введение


                  Начнем с определения. Пусть у нас есть строка s0..n-1. Полиномиальным хешем этой строки называется число h = hash(s0..n-1) = s0 + ps1 + p2s2 +… + pn-1sn-1, где p — некоторое натуральное число (позже будет сказано, какое именно), а si — код i-ого символа строки s (почти во всех современных языках он записывается s[i]).

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