Archive for the ‘Notes’ Category
Saturday, March 10th, 2012 |
Бывает нужно копировать файлы с сервера на локальный компьютер и наоборот. Раньше я поднимал ftp для этих целей, но вот вчера с удивлением узал что существует специальная команда которая позволяет перемещать и копировать данные используя ssh сессию, по специальному (шифрованному!) протоколу – scp.
С помощью программы scp (Secure Copy) вы можете копировать файлы и директории между разными Unix или Linux-машинами.
Scp использует ssh для соединения и предоставляет аналогичный уровень безопасности.
SCP (от англ. secure copy) — протокол RCP копирования файлов, использующий в качестве транспорта не RSH, а SSH. В UNIX-подобных операционных системах существует одноимённая (scp) утилита удалённого копирования файлов (входит в состав openssh).
Использовать примерно так:
scp root@32.1.20.77:/home/database.sqlite ~
Копирует файл с сервера в рабочую папку текущего юзера на локальном компьютере.
Для виндовс, говорят тоже есть специальное приложение WinSCP.
Posted in Linux, Notes | 3 Comments »
Tuesday, February 28th, 2012 |
Долго не писал, был крайне занят в разных проектах, получая madskillz в различных областях программирования. Ну что могу сказать, программировать мне пока нравится больше чем предыдущие занятия SEO. Сама оптимизация канешно весьма полезное умение и имеет скажем так прикладное значение, но я считаю трЪ вебмастер должен уметь собственно делать сайты. Причем не на вордпрессе или на какой-нибудь сраной point-and-click CMS, а уметь писать легковесные, быстрые, заточенные под задачу решения.
Это было интро, собственно переходим к сути статьи. Итак, как правило программист нуждается в редакторе в котором он будет набирать код. Некоторые предпочитают огромный монстроподобные, тяжеловесных, кросплатформенных java-IDE (eclipse, netbeans и т.д.) весь функционал которых как правило не исползуется, в то время лаги gui достаточно ощутимы, кто бы что не говорил. Однако линуксу уже не первый год и на нем существуют достаточно хорошие нэйтивные решения, которым уже по 30 (с хуем) лет, но которые тем не менее активно развиваются и многие предпочитают набирать код именно в этих редакторах, я имею в виду Emacs и Vim. Звезды сложились так что я стал использовать emacs, сначала для того чтобы набирать небольшие программки параллельно с netbeans, затем понял что netbeans мне уже не нужен.
Собственно уже не первый раз устанавливая Ubuntu на разные компьютеры я сталкиваюсь с необходимостью заново создавать рабочее окружение Emacs’а.
И вот в очередной раз решил записать последовательность действий.
Установка и настройка Emacs для разработки на Python

Для начала все свои настройки и плагины я храню в репозитории на гитхабе, который доступен мне из любой точки мира где есть интернет.
Сперва поставим сам емакс, открываем терминал и пишем:
sudo apt-get install emacs
Поставим гит если его нет (а если система совсем новая то нужно еще перед этим сделать sudo apt-get update)
user@machine:~$ sudo apt-get install git-core
Coбственно осталось кланировать репозиторий куда-нибудь в папке юзера.
user@machine:~$ cd ~
user@machine:~$ mkdir temp
user@machine:~$ cd temp
user@machine:~$ git clone https://github.com/istinspring/iemacs
Затем копируем файлы конфигурации в папку юзера
user@machine:~$ cp -r iemacs ~/.emacs.d
user@machine:~$ cd iemacs
user@machine:~$ cp .emacs ~/.emacs
Если сейчас запустить Emacs он покажет ошибку, т.к. нет нужных плагинов.
Ставим их:
user@machine:~$ sudo apt-get install pymacs
user@machine:~$ sudo apt-get install python-ropemacs
user@machine:~$ sudo apt-get install python-mode
Все. Остальные плагины уже установленны в папочке. Я использую минимальный набор плагинов, хотя можно при желании наворотить очень много всякого, и проверку синтаксиса на лету и соответствие PEP8.
YASnippets – сниппеты. очень удобно вбить туда повторяющиеся паттерны кода. Например у меня вбиты сниппеты для быстрого создания скелета паука – grab:spider.
Autocomplete – тут и сказать нечего автокомплит. Так же ускоряет процесс набивание кода.
Далее можно начать разбираться и потихоньку выстраивать удобное окружение для работы с кодом.
Posted in Code, Linux, Notes, Python | 4 Comments »
Saturday, July 2nd, 2011 |
Собственно MFA – это Made for Adsense или Made for Ads, другими словам созданные специально для показа рекламы, контент как правило вторичен. Почему стала интересна эта тема? Well, последние пару месяцев в среде вебмастеров с которыми я общаюсь стало модным меряться “доходами” с адсенса на белых проектах, однако особых успехов пока нет, за прошлый месяц с одного сайта накапало 17$. Маловато…но даже 2$ в сутки = 60$ в месяц, а это уже тот профит с которого можно покупать разные гаджеты или раз в год менять ноутбук. Если понемногу заниматься mfa сайтами вполне реально добиться небольшого cash flow в сутки, для этого нужна сеть сайтов и какой-то простой движек для их создания.
Немножко данных с сайтов по адсенсу. По порядку :
- Page views – просмотры
- Clicks – клики по адсенсу
- Page CTR (clicks trough rate) процент кликов по отношению к просмотрам страницы
- CPC (Cost per click) – средняя стоимость клика
- Page RPM (revenue per thousand impressions) – доход с 1000 просмотров
- Earnings – собственно деньги
Russia 39,929 140 0.35% $0.08 $0.29 $11.65
United States 1,092 10 0.92% $0.26 $2.40 $2.62
Ukraine 13,916 15 0.11% $0.13 $0.14 $1.90
Сразу бросается в глаза 2ая строка – United States, всего 1000 просмотров (это где-то 200-300 траффика *за месяц*, при условии что смотрят как правило более одной страницы) принесли 2.62$. Хмм уже интересно, особенно если сравнивать с Russia и Ukraine. + низкий CTR наверняка можно увеличить, реклама висит не на самом видном месте.
Ближе к делу. Создание MFA сайтов.
Для создания mfa сайтов нужна платформа. Есть несколько вариантов – либо рендерить статику (html), либо написать что-то вроде мини-цмс на django/flask/whatever с базой данных sqlite (чтобы не возникала необходимость под каждый сайт создавать БД, если сайтов много то это сущий ад) в стиле “залил и забыл”.
Преимущество статики – будет работать на любом хостинге, не требователена к ресурсам, но для любого изменения нужно рендерить сайт заново. С движком для статик-сайтов не придется даже изворачиваться – на гитхабе их полно (pelican, blogofile, hyde). Нет проблем взять любой и переделать малой кровью (по необходимости), фактически нужно будет просто создать несколько шаблонов, что как бы несложно, особенно если не верстать с нуля, а облагородить уже готовые для вордпресса.
Мини-цмс, особенно на django или flask конечно же не получится ставить где угодно зато сам двиг можно периодически апдейтить, и иметь все удобства по работе с контентом (загрузка файлов, WSGI редактор, создание новых страниц). Ну по идее ничего не будет мешать точно так же отрендерить сайт в статику и залить куда нужно.
Оба варианта имеют свои плюсы и минусы. В идеале, если конечно заниматься серьезно, придется орудовать как динамикой так и статикой, причем статика скорее всего предпочтительней по той простой причине что сайты нужно будет раскидывать по разным ипам, а брать постоянно вдсы, пусть даже за 10 баксов слишком затратно. Статику же потянет любой хостинг за бакс, который проще оплатить сразу на длительное время (на год например).
Что в интернетах?
А в интернетах пишут про индусов которые рубят килобаксы на адсенсе. В сети очень много разной информации, часть откровенный бред “продвигаторов”, часть можно взять на карандаш.
У гугла присутствует русскоязычный блог про адсенс, очень хороший, рекомендую ознакомится – http://adsense-ru.blogspot.com/. Так можно поискать информацию на иностранных форумах вроде http://forums.digitalpoint.com/.
Далее я выделил основные моменты, на которые, как мне кажется стоит обратить внимание :
- тщательная проработка шаблонов, они должен быть сделаны по всем правилам, а это значит валидный html, грамотно обозначенные метатэги, возможно микроданные/микроформаты, исключение дублирования контента (тэги/категории закрытые от индексации), красивые урлы (их еще называют ЧПУ, /how-to-do-it вместо /?p=10&c=1)
- Если приходить на сайт юзер будет с поисковиков, то нужно стараться сделать так чтобы выходил он через клик по адсенсу, больше делать ему на сайте нечего.
- Ходят слухи что существуют методики покупки дешевого траффика на mfa сайты и конверта его в плюс, так называемый арбитраж, ну чтож может быть…может быть.
- Может забанить гугл. Видел несколько сайтов с акками в бане, но там совсем все печально с контентом.
- Помимо адсенса эти сайты можно монетизировать другими способами. Товары от амазон, продажа ссылок. В конце концов сайты это ликвидный товар сам по себе. Как правило чем больше у вебмастера сайтов в активе, тем лучше.
- MFA сайты чаще всего окучивают НЧ запросы (микрониши). На таких веб-сайтах как ehow ключевым компонентом является алгоритм подбора ключевых фраз с низкой конкуренцией и потенциально высоким CPC. Рядовым сайтостроителям придется искать такие кейворды самостоятельно.
- Вероятнее всего имеет смысл использовать гео таргетинг (например “рыбалка в…”). Ну это вообще один из последних трендов.
Все это и так должно быть понятно опытному вебмастеру. По поводу Mini-CMS for MFA sites, я сейчас накидаю по быстрому на django и выложу на гитхабе.
Posted in Advertising, Google, Notes | 3 Comments »
Thursday, June 9th, 2011 |
Сейчас трудно представить проект который бы не использовал jQuery, её используют для создания анимации, эффектов и всех этих новых веб 2.0 красивостей, которые позволяют сохранять дизайн минималистичным, но в то же время поддерживать хороший експириенс юзера от работы с сайтом.
Часто делают так :
Вы делаете так же? Перестаньте – такой подход во многом не верен, нет никаких причин размещать эти файлы у себя. Я рекомендую использовать сервис гугла Google AJAX Libraries – чтобы подгружать такой контент напрямую с (ближайших) серверов гугла.
Какие преимущества даёт такое размещение?
Уменьшается задержка (отклик) – библиотека подгружается быстрее.
Параллелизм – пока загружается jQuery, ваш сервер отдаёт остальной контент.
Кэширование : если пользователь серфил интернет – наверняка многие библиотеки с CDN гугла закэшировались браузером.
Уменьшается нагрузка на сервер – так же неплохо будет облегчить свою страницу на 30+кб
Собственно есть 2а метода :
или старый добрый
Posted in Google, html & css, Notes | 1 Comment »
Saturday, June 4th, 2011 |
Сервис GitHub предоставляет возможность размещать свой open source код бесплатно и использует для этого достаточно сложную систему контроля версий – git. Приватные репозитории на гитхабе доступны только для оплаченных аккаунтов. А что делать если хотелось бы скрыть код, но в то же время использовать все удобства которые предоставляют системы контроля версий?
Есть 2а пути, простой и сложный. Простой – воспользоваться сервисом который предоставляет bitbucket или поднять на сервере свой репозиторий кода.
Битбакет это примерно такая же социальная сеть для кода как и гитхаб, с той разницей что заместо git используется mercurial или hg, работать с которым как мне показалось проще. Плюс он позволяет абсолютно бесплатно создавать приватные репозитории для своих проектов код которых вы не хотите транслировать на весь веб.
Собственно, старт проекта выглядит примрно так (сначала нужно создать приватный репозиторий на bitbucket):
Start new bitbucked project
create folders etc.
>> hg init
>> hg add
make “hgrc” file in .hg folder with :
[paths]
default = https://bitbucket.org/user/project
[ui]
username = Your Name
verbose = True
also will be good idea to put .hgignore file :
# use glob syntax.
syntax: glob
# Common
*.pyc
*.pyo
*.swp
*.swo
*.orig
*~
# Project specific
.env
pip-log.txt
>> hg commit -m “Here we go”
>> hg push
.hgignore файл который задаёт как бы говорит hg не помещать в репозиторий разные ненужные файлы – бэкапы которые создаёт редактор кода, невидимые файлы и т.д.
На текущий момент кол-во приватных репозиториев на Bitbucket.org не ограничено – пользуйтесь =)
Posted in Code, Notes | 1 Comment »
Friday, March 4th, 2011 |
Наткнулся в Линуксе на очень удобную штучку: в окне терминала можно работать сразу с несколькими процессами, посылая какие-то на фоновое выполнения и переключаясь между тем что нужно на данный момент.
Когда вы находитесь в терминале и, к примеру, у вас запущен mc, можно в любой момент послать эту задачу на фоновое выполнение нажав [ctrl+z]
Чтобы посмотреть список задач которые “висят” на фоне нужно набрать: [jobs] (без квадратных скобок конечно)
Для переключение между задачами [fg номер задачи] (где номер задачи 1, 2… такой же как и в списке который выводится после команды [jobs])
Чтобы сразу запустить задачу как фоновый процесс нужно добавить [&]. Например [mc &]
Очень удобно )
Posted in Linux, Notes | No Comments »
Thursday, November 25th, 2010 |
Бывает различные сервисы используют url-прокладку тем самым скрывая оригинальный url ссылки, а узнать оригинальный урл очень хочется. Примеров масса – различные сервисы сокращения ссылок (shorurl), ссылки feedburner через feedproxy.google.com. Короче, очень жизненный пример : мне нужно получать данные из кучи RSS, часть из них проходит через этот самый feedburner который преобразует ссылки таким образом – http://feedproxy.google.com/~r/somesite/~3/H_xFNwC1ikE/ не, ну это блядство, срочно нужна ссылка на оригинал.
Как получить оригинальный url ссылки shorturl?
Делается это элементарно, дергаем этот линк, проходим все редиректы и возвращаем тот url куда в конечном итоге пришли.
Используя urllib2. Самый простой метод, поэтому наиболее предпочтительный.
import urllib2
fp = urllib2.urlopen('http://feedproxy.google.com/~r/somesite/~3/H_xFNwC1ikE/')
print fp.geturl()
Используя httplib. Замороченный, нужно разбивать урл на части, что как бы не очень удобно.
import httplib
""" http://feedproxy.google.com/~r/somesite/~3/H_xFNwC1ikE/ """
conn = httplib.HTTPConnection('feedproxy.google.com')
conn.request('HEAD', '/~r/somesite/~3/H_xFNwC1ikE/')
response = conn.getresponse()
print response.getheader('location')
Используя культовый curl
import pycurl
conn = pycurl.Curl()
conn.setopt(pycurl.URL, 'http://feedproxy.google.com/~r/somesite/~3/H_xFNwC1ikE/')
conn.setopt(pycurl.FOLLOWLOCATION, 1)
conn.setopt(pycurl.CUSTOMREQUEST, 'HEAD')
conn.setopt(pycurl.NOBODY, True)
conn.perform()
print conn.getinfo(pycurl.EFFECTIVE_URL)
Кстати, первый спамм на .РФ – онлайн-гипермаркет.рф
Posted in Code, Notes, Python | No Comments »
Thursday, November 25th, 2010 |
Рыская по просторам интернетов, натолкнулся на “Вопросы и задания по Python”. Польза этих вопросов очевидна – подобные задания могут предлагать вам в качестве теста на человека который более менее разбирается в вопросе. + ответы на эти несложные вопросы помогут вам систематизировать свои знания.
Полностью список можно найти тут http://pyobject.ru/blog/2010/02/04/python-quiz/
Вопросы и задания по Python
- Типы данных, основные конструкции
- Функции
- Итераторы
- Модули
- Классы
- Метаклассы и дескрипторы
Posted in Code, Notes, Python | 1 Comment »
Tuesday, November 23rd, 2010 |
Недавно пришла карточка Paxum, mastercard. Вообще хотелось бы что-нибудь вроде епасса, чтобы все платили в одно место, ну и вайры куда-нибудь принимать еще. Т.е. в идеале нужно 2е карты от разных систем. Я выбрал Paxum и EPESE (говорят удобно, коллеги пользуются).
Обновляемый списко тех, кто платит Paxum :
Блог
Твиттер
Paxum
На форуме master-x так же есть ветка, где присутствует русскоязычный саппорт Paxum, для многих это немаловажный фактор.
Posted in Cool Story Bro, Notes | No Comments »
Thursday, November 18th, 2010 |
Регулярные выражения (они же регулярки, они же регэкспы) совершили настоящую революцию в обработке текстов, позволяя вести поиск и вставку текста используя так называемые паттерны – описывающие требуемый формат операции. Само по себе описание регекспов достаточно объемно, для повседневных задач можно даже изучить тему вполне поверхностно. Использовать регулярки, крайне удобно и быстро, несмотря на то что по скорости они проигрывают строковым и DOM функциям – тем не менее часто проще написать регулярку чем разрабатывать функцию. Само собой каждый уважающий себя язык программирования имеет реализацию регэкспов и Python не исключение. В качества классического примера :
def parse_proxy(page):
"""Parse proxies from webpage"""
reg = re.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}")
proxy_list = reg.findall(page)
return proxy_list
вытащить все прокси из кода вебстраницы. Простейшие регулярки несколько раз используются в прокси чекере.
Полезные сайты :
http://www.pcre.ru/ – типичные примеры, описание и конструктор который сильно облегчает процесс конструирования регулярных выражений.
http://www.regexlib.com/ – библиотека готовых регулярных выражений, сортировака по разделам. Очень полезный ресурс.
http://www.gskinner.com/RegExr/ – еще один конструктор регулярных выражений. Составь и проверь.
http://regexlib.ru/ – еще одна библиотека регулярок. на русском.

Использование регулярных выражений на Python.
Питон естественно предоставляет инструменты для работы с регулярными выражениям
http://docs.python.org/library/re.html
http://docs.python.org/dev/howto/regex.html – есть неплохой HOWTO
Библиотека регулярных выражений называется – re. Немаловажный момент – для строк с регулярным выражением нужно использовать префикс “r“, чтобы символы \ не преобразовывались в строковые специальные символы вроде \t, \n и т.д.
Использовать так :
match = re.search(ur"text", u"sometext and text")
print "Re.seach : ", match.group()
exp = re.compile(ur"text")
match = re.finditer(exp, u"sometext and text")
print "Re.finditer : "
for item in match:
print item.group(), item.span()
re.compile – компилирует регулярное выражение в regular expression object который может быть использован методами match() и search() и т.д. К выражению могут быть добавлены специальные флаги-модификаторы (вроде re.IGNORECASE).
Важно помнить что функции вычисляющие регулярное выражение возвращают объект у которого есть свойства и метода.
group() возвращеает строку удовлетворяющую условию регэкспа.
start() Возвращает начальную позицию совпадения
end() Возвращает конечную позицию совпадения
span() Возвращает кортеж (tuple) – (start, end) в котором заданы позиции совпадения.
Следующий пример возвращает все числа из произвольной строки :
p = re.compile('\d+')
result = p.findall('1 2 3 yolochka gori, 23 yellow popugais')
print result
Целесообразность применения регулярных выражений.
Однако не стоит чересчур увлекаться регулярными выражениями (об этом говорят даже в официальном туториале python’а), зачастую бывает проще воспользоваться строковыми функциями – они быстрее (т.к. реализованы в виде небольших, хорошо оптимизированных C циклов). В моей практике бывали случаи когда самый простой путь был – через DOM вырезать нужный кусок и уже там работать регулярками (парсинг google images, например). Представим что вам нужно заменить слово “милиция” на “полиция”, для этого вполне подойдет функция re.sub, однако в РАЗЫ проще использовать replace() :
text = "Наша милиция нас бережет."
result = text.replace("милиция", "полиция")
print result
Разница между match() и search()
Функция match() только проверяет – есть ли совпадения с начала строки, в то время как search() будет сканировать на совпадения с паттерном всю строку целиком.
print(re.match('super', 'superstition').span())
print(re.match('super', 'insuperable'))
print
print(re.search('super', 'superstition').span())
print(re.search('super', 'insuperable').span())
(0, 5)
None
(0, 5)
(2, 7)
Удачных вам регулярных выражений. Стоит уделить изучению материалов по регекспам хотя бы несколько часов, поверьте ваши вложения времени с лихвой окупятся в будущем.
Posted in Code, Notes, Python | No Comments »
Sunday, November 14th, 2010 |
Зачем? Предположим у вас есть CMS и хочется устроить там искусственную жизнь, естественно самый простой вариант (и самый быстрый) – работать напрямую с базой данных. Но если cms достаточно развитая то возникают сложности, из-за того что одно действие меняет данные в куче разных таблиц. Естественно очень хотелось бы мониторить обращения к базе данных, чтобы потом их повторить. Ну, во-первых нужен линукс – web-разработчик должен работать в линуксе. У меня стоит нечестная Ubuntu – нечестная потому что в окне VirtualBox, впрочем, про это я расскажу позже.
Перехват обращений к базе данных mySQL
Для того чтобы просматривать запросы нужно включить логгирование в конфигурационном файле mysql он находится /etc/mysql/my.cnf нужно раскоментировать следующие 2е строчки :
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
log = /var/log/mysql/mysql.log
general_log = 1
Далее сделать рестарт mySQL сервера :
sudo /etc/init.d/mysql restart
Все, лог будет писаться в /var/log/mysql/mysql.log Рестарт mySQL сервера только не забудьте сделать.

Можно наблюдать в это в реальном времени в окне терминала :
tail -f /var/log/mysql/mysql.log
Posted in Code, Notes, Server | 1 Comment »
Sunday, November 14th, 2010 |
С неба они не свалятся – надо работать. Следующие советы – очевидны для любого продвинутого пользователя социальных сетей, тем не менее хорошо иметь список под рукой. Возможно кто-то подчерпнет из него пару идей для себя!

Десят тысяч причин по которым вы хотите иметь 10к друзей.
Причины тоже вполне очевидны, спектр задач решаемых с помощью раскачанных акков в социальных сетях крайне разнообразен начиная от вирал маркетинга до поиска партнеров для бизнеса.
- Вы станете популярным. Школиё говорит что имеет 500 или 1000 друзей? Вы сможете сказать – “У меня 10k”
- Вы станете получать friend requests каждый день сотнями, и все потому, что ваш никнейм есть на многих страницах фэйсбука.
- У вас есть страница которую вы хотите промоутить? Хотите чтобы пара тысяч ваших друзей пошли и посмотрели на нее?
- У вас есть продукт или услуга которую вы хотите промоутить, но вам нужны люде чтобы генерировать продажи?
- Покупать рекламу – дорого
- Возможно в будущем вы сможете продать профиль ради easy money? Это уже такая же обыденность как и продажа раскрученных блогов.
- Можно продавать ссылки и рекламу с вашего профиля. Бизнесмены и веб-сайты будут платить вам за то, чтобы вы поставили ссылку на их сайт.
- Вы актер/музыкант и хотите рекламировать ваши пати?
- Вам нравится смотреть как ваш трафик растет.
- Вы просто хотите иметь 10к друзей.
Самый быстрый способ взять планку 10к очевидно как можно большая активность в социальной сети. Вам нужно наращивать присутствие – добавлять друзей, делать комментарии, постить анонсы и сообщения. Делать быстро и много. Быть всегда и во многих местах сразу.
Добавляйте друзей как только есть такая возможность.
Поставьте себе цель 20 друзей в день, или типа того. Оставляйте вашим друзьям сообщения на стене, комментируйте их фото и видео. Старайтесь построить естественные взаимоотношения и вы увидите результат очень быстро. Постите интересные анонсы, но не очень часто.
ВСЕГДА добавляйте рекомендованных друзей.
Это отличный инструмент от фэйсбука, почему бы не использовать его?
Используйте кнопки.
Если вы блоггер или у вас есть твиттер, поставьте кнопки фэйсбука на видном месте (как у меня, к примеру), чтобы люди могли добавлять вас. Сейчас практически у каждого есть аккаунт на фэйсбуке и конопка на посещаемом сайте обязательно даст результат.
Вступайте в группы.
Вступление в тематические группы позволит вам построить сеть тематических знакомств. Нельзя не использовать эту возможность.
Делайте ваши собственные группы.
Создавайте взаимодействия сами – делайте группы, приглашайте знакомых. Приглашайте своих RL друзей. Возможно не все ваши друзья/коллеги еще имеют аккунт в социальной сети? Отличный повод приглисить их!
Постите комменты в популярных профилях.
Иногда вы будете находить профиля или группы с тысячами подписчиков – ваш комментарий заметит большое число людей, вполне вероятно некоторые захотят добавить вас в друзья.
Используйте ссылку – Add me
Используйте shor url сервис вроде – bit.ly для сокращения ссылки и теперь добляйте её в конец каждого емэйла которое вы отправляете, если у вас есть профиль на посещаемом форуме – поставьте ссылку в сигнатуру.
Posted in Notes, social networks | No Comments »
Sunday, November 14th, 2010 |
Было бы неплохо добавить автоматический кроспостинг записей блога на фэйсбук и твиттер, подумал я ранним воскресным утром. Следующая мысль пролетевшая в разогнанной кофеином голове была – “нужно погуглить”. Тщательные исследования поисковых систем выявили насколько вариантов, при ближайшем рассмотрении несколько сразу отвалились и выбирать осталось не из чего.
Вообщем есть отличный плагин для организации сабмита постов в фэйсбук и твиттер (и попутно еще в тучу социальных сетей) – Network Publisher.
Регистрация пролетела за пару кликов (Sign Up with Facebook). OAuth когда ты залогинен на фэйсе или твиттере решает. Вообщем внутри все просто добавляешь аккаунты + привязываешь блоги. Как я понял часть социальных сетей можно добавить за отдельную плату + есть ограничения на максимальное количество постов – 200, что как бе дохуя. Больше, чем может понадобится для этого блога в сутки. А еще сервис предоставляет API – http://apidocs.linksalpha.com/home/getting-started API очень простое (пост запрос + json ответ):
Summary
Enables Publishing of content to Networks
URL
http://api.linksalpha.com/ext/publish
Request Method
POST
Response Format
json
Required Parameters
* api_key
API key of the Network to which content needs to be published to
* content_text
content that you want to post to the Network
Я бы даже сказал типичное API, в ближейшее время напишу пост как писать обертки для апи подобного типа на Python используя pycurl.
В итоге после нехитрых манипуляция я поставил и настроил этот плагин – результаты можно посмотреть на моем твиттере и фэйсбуке.
Posted in Notes, social networks, Wordpress | No Comments »