Показаны сообщения с ярлыком разработка. Показать все сообщения
Показаны сообщения с ярлыком разработка. Показать все сообщения

Python: теперь и с синтаксисом Haskel

У некоторых питонистов есть и такая презабавная забава,- ругаться на синтаксис Python и предлагать всевозможные улучшения. Пользователь GitHub Pyos ушёл дальше всех, реализовав на Python проект Dogelang( сокращённо dg). Из описания на сайте следует, что dg,- это самостоятельный язык программирования, компилирующийся в байткод, примерно как Scala собирается в JVM. Кроме того, код на dg вполне работоспособен под PyPy. Что, по большому счёту значит, что dg, не больше и не меньше,- альтернативный синтаксис Python 3 (или Python3 из параллельного мира, как кому больше нравится). Ко всему прочему, это позволяет использовать все существующие и совместимые с 3-й версией языка Python библиотеки. Выглядит это примерно так:


import '/sys/stdin'

IOTools = subclass object where
  #: Compute the average line length of a file.
  #:
  #: avglen :: TextIOBase -> NoneType
  #:
  avglen = staticmethod $ fd ->
    lengths = list $ map len fd
    count   = len lengths
    total   = sum lengths
    print 'Average line length:' $ if
      count > 0 => total / count
      otherwise => 0

IOTools.avglen stdin

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

Единороги: время летать

Логотип FlyByUnicorn
Вероятно, какие-то волшебные шестерёнки во вселенной повернулись особенным образом, а может быть это просто весна? Следом за Pyladies в сферу внимания попал сайт FlyByUnicorn,- целая биржа труда для девушек и женщин в сфере IT. Среди предложений,- позиции программистов на Python, Ruby, Android, iOS, веб-дизайн, иллюстраторы и менеджеры проектов и прочая и прочая и прочая. Одно из основных требований,- хороший английский язык. Девчонки, налетайте!

СМИ: Слишком Много Информации

Прежде чем разрабатывать систему защиты системы, убедись, что система не работает против тебя. Очень часто, система авторизации возвращает слишком много информации в случае неуспешного логина. Например, в абстрактной системе (веб-сайт, или FTP-сервер или SIP-софтсвич) пытается авторизоваться злоумышленник, используя случайный логин vasya.pupkin и пароль 123456. Система ищет в списке пользователя vasya.pupkin и пытается сверить хеш пароля (вы же не храните пароли в базе данных открытом виде, правда?). Система быстро убеждается в том, что пользователя с таким именем не существует и отправляет ответ, что-то вроде “Invalid Username”(Неправильное имя пользователя) или “Username Does Not Exist”(Пользователь не найден). Вот Вам прекрасный пример принципа СМИ,- слишком много информации.

Почему?