Рубрика «python» - 344

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

Допустим вы находите или где-то уже слышали, или даже давно хотели попробовать специальный инструментарий для этих дел, зовущийся Selenium WebDriver. Вы идёте на сайт Selenium и радостно прыгаете от восторга: поддерживается ваш любимый скриптовый язык Python! Но увы, как и в случае с Django у разработчиков ещё не дошли руки до Python 3.x. Так что все вкусные синтаксические куски рафинада, а также встроеная поддержка UTF-8 по умолчанию не поддерживаются.

Однако, вооружившись знаниями о различиях между Python 2 и 3, а также стандартной утилитой 2to3.py мы в два счёта поборем всё то, что мешает нашему счастью и всеобщему прогрессу в разработке тестовых скриптов для интеграционного тестирования.
Читать полностью »

Кеннет Райтц из компании Heroku продолжает создавать элегантные библиотеки с упрощёнными API. Предыдущей разработкой была библиотека Requests для HTTP-запросов. Теперь он выпустил простой SMTP-сервер Inbox.py, который элементарно прикрутить к веб-приложению для осуществления прямых почтовых рассылок и приёма/обработки почты, без мучений с макросами sendmail.

from inbox import Inbox

inbox = Inbox()

@inbox.collate
def handle(to, sender, body):
    ...

# Bind directly.
inbox.serve(address='0.0.0.0', port=4467)

Читать полностью »

Мне, жуть, как понравились вот эти часы, очень захотел на скринсэйвер. Сказано — сделано.

Dev Tools Chromium'а дал понять, что урл видео-файла, проигрываемого плеером выглядит примерно следующим образом:

http://176.9.156.38/clock/big_< часы>-< минуты, округлённые вниз до делителя 5>.mp4?start=< смещение относительно округлённого времени>Читать полностью »

От переводчика: предлагаю вам перевод начала презентации Michael Fairley — Exing Ruby with Ruby. Я перевел только первую часть из трех, потому что она имеет максимальные практические ценность и пользу, на мой взгляд. Тем не менее, настоятельно рекомендую ознакомиться с полной презентацией, в которой помимо Python приводятся примеры заимствования фишек из Haskell и Scala.

Декораторы функции

В Python есть такая штука — декораторы, которая представляет собой синтаксический сахар для добавления в методы и функции кусочков часто используемой функциональности. Сейчас я покажу вам некоторые примеры того, что такое декораторы и почему они могли бы быть полезны и в Ruby.

Раньше я очень много работал с Python и декораторы функции определенно являются тем, чего мне так не хватает с тех пор, и кроме того тем, что может помочь практически всем нам сделать наш код на Ruby чище.

Возьмем Ruby и притворимся, что нам нужно перевести деньги с одного банковского аккаунта на другой. Вроде все просто, так?

def send_money(from, to, amount)
  from.balance -= amount
  to.balance += amount
  from.save!
  to.save!
end

Читать полностью »

Кто-то любит горы Кавказа, кто-то горы кокоса...

… а мне нравится решать задачи Project Euler. Конечно, я не могу похвастаться 350+ решёнными задачами, но четвёртый уровень (100..125) набрал честно. И в процессе этого набора, как подобает разработчику обыкновенному, начал выносить повторяющиеся фрагменты в отдельный модуль.

Надо сказать, что, по моим ощущениям, не менее половины представленных задач так или иначе связано с простыми числами. Например, найти наименьшие 5 простых чисел, таких, что любая пара из них, записанная в любом порядке как одно число (34, 56 -> 3456) будет так же простым числом (60). Или найти 1<=n<=1000000, такое что n/phi(n) максимально (69).

На днях дошли руки, что бы рабочее месиво «лишь бы посчитать, да побыстрее» причесать и извлечь оттуда модуль генерации простых чисел. Зачем это надо? Кому-то пригодиться как ещё-один-модуль-на-питоне. Кто-то может увидеть ещё один пример того, как писать не надо. А я, надеюсь, получу порцию тонизирующей критики и прочих советов.

Читать полностью »

В организации, где я тружусь в свободное от отдыха время, очень высокие требования к безопасности. Везде, где только можно, для аутентификации пользователей используются токены. Мне выдали вот такую вот штуку:
Распознаём изображение с токена при помощью камеры
и сказали: жмёшь кнопку, смотришь цифры, вводишь пароль и радуешься. «Безопасность, конечно, превыше всего, но и о комфорте забывать не следует» — примерно так подумал я и провёл ревизию имеющегося у меня электронного хлама.
Читать полностью »

Добавляем поддержку Windows Live Writer (Meta Weblog API) в блог на Django
Пару лет назад посчастливилось мне иметь блог на WordPress. До наших дней блог, как и вся база постов к моему сожалению не дожила, но рассказать я хочу не о самом блоге, а о том с помощью чего вся информация публиковалась. В то время Microsoft не так давно запустила Windows 7, а вместе с ней и пакет приложений Windows Live. Вот и я решил взглянуть – чего в этом пакете вкусного? Больше всего мне приглянулось приложение Windows Live Writer – программа позволяющая набирать и форматировать тексты, и публиковать их в блог. Удобный интерфейс, множество инструментов для форматирования, возможность хранить черновики локально, и многое другое – я влюбился. Спустя некоторое время свой блог без Windows Live Writer я уже не представлял.
Читать полностью »

Unity линза для поиска видео ВКонтакте

В unity очень удобные линзы, в ВКонтакте много видео, а flash в новой ubuntu превращает все фильмы в аватар. Поэтому я сделал линзу для поиска видео в ВКонтакте, открывающую их в totem.Читать полностью »

image

Вводим логин — получаем IP: http://skype-ip-finder.tk

Поиск происходит абсолютно незаметно для юзера.

Слева внешний IP через который клиент выходит наружу, справа локальный.
Если они совпадают значит у пользователя не используется NAT.

Если запущено одновременно несколько клиентов — будут показаны все.

Если возвращается только локальный IP вида 10.* или 192.168.* значит используется старая версия клиента, например Linux 2.0.0.72

IP показываются еще спустя несколько часов после того как пользователь отключился.

Читать полностью »

Определение IP адреса пользователя Skype (теперь банановый)

Вводим логин — получаем IP: http://skype-ip-finder.tk

Поиск происходит абсолютно незаметно для юзера.

Слева внешний IP через который клиент выходит наружу, справа локальный.
Если они совпадают значит у пользователя не используется NAT.

Если запущено одновременно несколько клиентов — будут показаны все.

Если возвращается только локальный IP вида 10.* или 192.168.* значит используется старая версия клиента, например Linux 2.0.0.72

IP показываются еще спустя несколько часов после того как пользователь отключился.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js