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

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

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 показываются еще спустя несколько часов после того как пользователь отключился.

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

Кодим безумный пассивный сниффер в виде модуля для Python

Сразу скажу: то, чем мы с вами будем здесь заниматься, не претендует, скажем, на какую-то промышленную применимость. Более того, я признаю, что мой код в данном примере может быть ужасен, страшен и ненужен. И тем не менее — почему бы не поперехватывать пакеты посреди недели? Так, слегка.

Итак, сегодня мы вот что наколдуем:

1. Реализуем простейший пассивный перехватчик пакетов для TCP и UDP
2. Засунем его в C-библиотеку в виде расширения для Python
3. Приделаем ко всему этому интерфейс итератора, дабы байты сыпались, как из рога изобилия
4.…
5. PROFIT!Читать полностью »

Со времени публикации новости о выходе Google App Engine 1.6.0 прошло уже много времени. А между прочем вышло 5 обновлений, каждое из которых принесло много вкусного и интересного. Попробую восполнить этот пробел.

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


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