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
Так же как в музыке есть определенные правила при построении аккордов так же и цветовая палитра строится по определенным правилам, зачастую бывает тяжело с ходу подбирать нужные цвета и их правильные сочетания. Во первых это время, а во вторых хотелось бы в таких вопросах полагаться на специалистов. Обе проблемы легко решаются если использовать социальную сеть Color Lovers.
Внутри мы видем классическую twitter-like социальную сеть. Пользователи могут предлагать свои решения в области цветового дизайна и так же голосовать за понравившиеся. Есть возможность фалловить. Порыскав там немного нашел массу готовых решений и цветовых схем. Если вы больше программист, чем дизайнер или по каким-то причинам не хотите заниматься подбором цветов – эта социальная сеть – то что нужно.
Posted in Notes | 1 Comment »
Sunday, November 14th, 2010
Поставил do-follow на комментарии, теперь любой кто напишет комментарий получит бэклинк на свой сайт/блог. + Посидел вечер за правкой кода и css, внес массу незначительных изменений, чтобы блог выглядел более web 2.0′ым. В ближайшее время (благо оно появилось, хотя, как не странно работать стал больше, главное втянуться) продолжу допиливать дизайн : хочу практически полностью отказаться от картинок и сделать все на css. Не помешало бы еще и как ускорить загрузку блога, гугл любит когда сайт быстрый =) да и пользователям это по нраву.
Posted in Cool Story Bro | 4 Comments »
Saturday, November 13th, 2010
Вам нужен http://www.crummy.com/software/BeautifulSoup/ – отличная штука для работы с html/xml документами, работает даже если xml кривой. Очень часто встречающаяся задача – удалить html тэги из строки.
from BeautifulSoup import BeautifulSoup
''.join(BeautifulSoup(page).findAll(text=True))
Так же можно заюзать уже готовый код от Lorien’а (помните про open source?) – clean.py, не забудьте импортировать в проект так же и htmldata.py
Posted in Code, Python | No Comments »
Saturday, November 13th, 2010
Достаточно модный тренд, вообщем самое время поговорить о мощном движении Open Source и его пользе. Наверняка многие слышали о таких темах как sourceforge.net, code.google.com? Достаточно плотно сидят в выдаче. В чем заключается на данный момент работа программиста? Ведь почти все что нужно так или иначе есть в готовом виде, и нужно лишь протянуть руку чтобы использовать чужие разработки, а не терять время разрабатывая очередной велосипед. Настоящие развалы готового кода практически на все случаи жизни можно найти на социальных сайтах :
А возможно не только найти, но и поучаствовать в допиливании обертки для очередного API который вы можете использовать для построения своих сайтов.
Posted in Code, Python, social networks | 1 Comment »
Wednesday, November 10th, 2010
Часто настроек в приложении может быть дофига и невольно задумываешься о том, чтобы вынести их в отдельный файл – файл настроек. Бывает программисты по инерции начинают писать код который будет считывать и обрабатывать этот файл, и бывает даже строковыми методами. Однако в питоне ничего не мешает нам создать файл вроде settings.py и исполнять его на уровне кода.
Вот к примеру файл settings.py :
import os.path as path
template_dir = path.join(path.dirname(__file__), "templates")
user_record = {
'id' : 1,
'mail' : "xyu@gmail.com",
'pass' : "1234"
}
А вот так его можно вызывать из кода :
import settings
def main():
print settings.template_dir
if __name__ == "__main__":
main()
или так (по модному) :
def main():
mod = __import__("settings")
print getattr(mod, 'template_dir')
if __name__ == "__main__":
main()
Posted in Python | No Comments »
Tuesday, September 7th, 2010
Как определить кол-во проиндексированных страниц в гугле? реализация на Python. Недавно нужно было срочно, написал :
import urllib
import re
from urllib2 import urlopen
from urlparse import urlparse
from urllib import FancyURLopener
class GOpener(FancyURLopener):
version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6'
def web_getpage(url):
g_opener = GOpener()
page = g_opener.open(url)
return page.read()
def get_index(url):
request = 'http://www.google.com/search?q=site:' + url
# About 105,000,000 results
index = 0
try:
gs = web_getpage(request)
p = re.compile('About (.*) results')
index = int(p.findall(gs)[0].replace(",", ""))
except SearchError, e:
index = -1
#print "Search Failed : %s" % e
finally:
#print "Index: %d\tURL: %s" % (int(index), url)
return index
Posted in Code, Google, Python | 2 Comments »
Thursday, September 2nd, 2010
from urllib2 import urlopen
""" Returns True if we appear to have an internet connection or False.
It defaults to using google as a test server, but you can supply an alternative if you want."""
def isonline(reliableserver='http://www.google.com'):
try:
urlopen(reliableserver)
return True
except IOError:
return False
частенько нужно проверять есть ли коннект к интернету во время выполнения какого-либо скрипта. озадачился недавно, т.к. провайдер несколько напрягал пару дней.
Posted in Code, Python | No Comments »
Tuesday, August 31st, 2010
Собственно рабочая функция проверки Google Page Rank :
import urllib, sys
def get_pagerank(url):
hsh = check_hash(hash_url(url))
gurl = 'http://www.google.com/search?client=navclient-auto&features=Rank:&q=info:%s&ch=%s' % (urllib.quote(url), hsh)
try:
f = urllib.urlopen(gurl)
rank = f.read().strip()[9:]
except Exception:
rank = 'N/A'
if rank == '':
rank = '0'
return rank
def int_str(string, integer, factor):
for i in range(len(string)) :
integer *= factor
integer &= 0xFFFFFFFF
integer += ord(string[i])
return integer
def hash_url(string):
c1 = int_str(string, 0x1505, 0x21)
c2 = int_str(string, 0, 0x1003F)
c1 >>= 2
c1 = ((c1 >> 4) & 0x3FFFFC0) | (c1 & 0x3F)
c1 = ((c1 >> 4) & 0x3FFC00) | (c1 & 0x3FF)
c1 = ((c1 >> 4) & 0x3C000) | (c1 & 0x3FFF)
t1 = (c1 & 0x3C0) << 4
t1 |= c1 & 0x3C
t1 = (t1 << 2) | (c2 & 0xF0F)
t2 = (c1 & 0xFFFFC000) << 4
t2 |= c1 & 0x3C00
t2 = (t2 << 0xA) | (c2 & 0xF0F0000)
return (t1 | t2)
def check_hash(hash_int):
hash_str = '%u' % (hash_int)
flag = 0
check_byte = 0
i = len(hash_str) - 1
while i >= 0:
byte = int(hash_str[i])
if 1 == (flag % 2):
byte *= 2;
byte = byte / 10 + byte % 10
check_byte += byte
flag += 1
i -= 1
check_byte %= 10
if 0 != check_byte:
check_byte = 10 - check_byte
if 1 == flag % 2:
if 1 == check_byte % 2:
check_byte += 9
check_byte >>= 1
return '7' + str(check_byte) + hash_str
print get_pagerank("http://twitter.com")
Posted in Code, Python | 1 Comment »
Tuesday, August 24th, 2010
Не так давно услышал про такую IDE как Pyscripter. Скачал отсюда, утсановил. Вообщем пара слов : легче чем NetBeans определенно. Рекомендую.
Posted in Code, Notes, Python | No Comments »
Monday, June 21st, 2010
Бывает необходимо замерить время выполнения скрипта или функции. Сделать это можно следующим образом :
start = time.time()
function_name()
print "Elapsed Time: %s" % (time.time() - start)
function_name() <<—- функция время выполнения которой нужно замерить
Posted in Code | 2 Comments »
Friday, May 21st, 2010
Самое время установить FTP сервер. Комрады рекомендуют – vsftpd. Eго используют на таких серьезных сайтах, как : ftp.redhat.com, ftp.suse.com, ftp.debian.org, ftp.gnu.org, ftp.gnome.org, ftp.kde.org, т.е. фтп с высокой загрузкой. для которых не менее важна надежность.
Внимание!!! FTP сервер может быть уже установлен (проверьте это попробовав зайти на ftp://youserverIP).
У меня отлично поставился через yum (если версия linux у вас 64 битная, то рекомендую для начала проверить наличие 64 битной весии yum search vsftpd) :
yum install vsftpd
[root@server/]# yum install vsftpd
...... [cut]
Downloading Packages:
(1/1): vsftpd-2.0.6-6.fc9.x86_64.rpm | 143 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: vsftpd ######################### [1/1]
Installed: vsftpd.x86_64 0:2.0.6-6.fc9
Complete!
Из кусочка лога видно, что поставилась нужная 64 битная версия, yum сработал как надо.
Теперь для тех лузеров у кого не получилось установить из репозитария с помощью yum’а. Ниггер, как ты правильно понял тебя ждут суровые испытания
скопировать нужную версию тут. Качаем последний архив .tar.gz в папку например root/install :
[root@server install]# wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.7.tar.gz
C помощью mc распаковываем его. Заходим в папку куда распаковали и втыкаем маунал в файле install. Ну а что? Установка с исходников дело неинтеллигентное. Для RedHat/Fedora систем есть rpm, нужно только погуглить и поставить vsftpd из rpm точно таким же образом как например webmin. Думаю если поискать, то можно найти и rpm для CentOS’а.
Я оптимистично полагаю, что все же yum сработал и vsftpd установился без проблем. Теперь нужно сконфигурировать и запустить.
/etc/vsftpd/ – в этой папке находятся файлы конфигурации (это можно посмотреть набрав команду whereis vsftpd)
Делаем следующее :
Создаем папку для фтп – /var/ftpwww/
Через webmin создаем юзера – ftpwww (system->Users and Groups), задаем ему папку (/var/ftpwww), shell – /sbin/nologin и пароль.
Теперь нужно поправить файл конфига – vsftpd.conf (находится в /etc/vsftpd/vsftpd.conf)
# Example config file /etc/vsftpd/vsftpd.conf
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd whith two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
Это пример конфига для vsftpd. Обратите внимание, что вот эти строчки нужно раскомментировать.
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
затем создать файл chroot_list – и туда записать юзера ftpwww, это необходимо для того, чтобы запретить юзеру ходить дальше назначенной папки.
+ закомментировать anonymous_enable=YES, на всякий случай, нам же не нужно чтобы на фтп сервер коннектились разные анонимусы =)
Вот и все! Осталось только перезапустить vsftpd :
/etc/init.d/vsftpd restart
Теперь можно соединятся с сервером используя FAR или Total Commander. Настраиваем подключение через свой фтп менеджер :
Server – IP вашего сервера, ну и логин/пасс – юзера которого вы создали через вебмин.
Posted in Server | No Comments »
Wednesday, May 12th, 2010
Есть масса сервисов которые позволяют захостить у себя картинку, пожалуй самые известные это imageshack.us и tinypics.com
Однако есть сервис получше – clip2net.com
Фишка в том, что вы ставите себе небольшую программку – клиент, которые висит в трее и позволяет парой кликов выложить в нет область экрана. Это очень удобно, как для блоггеров, так и просто для тех кто работает в комманде.
Posted in Notes | 2 Comments »