phenom's comments

phenom | 11 years ago | on: The Python Road Not Taken

I 'll add my experience with asyncio and twisted:

1) debugging is way better in asyncio, with ipdb you can step in co-routine. In twisted, you will end up somewhere in internals.

2) asyncio is end of unhanded error in deferred :) (or you need to remember to add addErrback everywhere, even after addColbecks and addBoth)

3) with trial testing is frustrating, sometimes error raised in wrong test because of global event loop (for instance you forgot to mock external call). In asyncio world loop passed explicitly and this is good for testing.

phenom | 11 years ago | on: The Python Road Not Taken

asyncio is just nice API for async programing and event loop management. You should start from something high level in order to obtain asyncio ideas, like scraping [1] or try web development with aiohttp [2]. And then if you want to write some library or port database driver, look for examples at aio-libs[3] github organization.

[1] http://compiletoi.net/fast-scraping-in-python-with-asyncio.h...

[2] https://github.com/KeepSafe/aiohttp

[3] https://github.com/aio-libs

phenom | 13 years ago | on: Company withdrawing from Facebook as analytics show 80% of ad clicks from bots

I think problem is more deep, I do not want to make other Conspiracy Theory but here some story from other huge Russian social network (vk 150m. users). There is one small, not that big group (like fb groups), users made agreement, that no one will post next day (something like honeypot), and those who post would be considered as bot and baned forever. So next day couple or so bots generated comments encouraging others do not go on strike against some political party [0].

I do not know is it applies to FB, but those who have like 100k bots have some power too.

[0] http://imgur.com/Vvkbx screenshot in russian

Edit: spelling Edit2: proper link

phenom | 13 years ago | on: Company withdrawing from Facebook as analytics show 80% of ad clicks from bots

I think reasons is pretty strait forward:

[1] You can win a bunch of contests, competitions like those who have lot of likes can win iphone or other tech.

[2] You can sell likes.. just google and you will see, there are alot of places where you can buy it.

[3] Manipulation of public opinion.

Edit:

From FB side:

[1] they still have growth of users

[2] more bots == more clicks, more likes more FB value "on paper", more revenue

[3] and when they stabilize their market value they can easily kill those bots, just require them activation by phone.

vk.com Russian social network, had same issues, but they enabled phone activation for averybody and its not that easy to buy a lot of phone numbers in Russia, but some hackers just pay to vk.com admins...

Edit2: spelling

phenom | 13 years ago | on: Company withdrawing from Facebook as analytics show 80% of ad clicks from bots

FB does not need do that shady stuff. Here some facts.

[1] Bot registration on FB is really easy. If you try register 100 fake users in direct way you need to deal with javascript and web forms with strange ids, cookies and so on in your script. But if you enter fb.com without enabled javascript, they ask you change browser or use mobile version, which is not require* js at all.

[2] You can register number of accounts from one ip without CAPTCHA

[3] Only one "difficulty" is to find batch of emails, it is not that big issue since we have services like mailinator.com.

So 15 -25 loc script on python do all your job. It is not required use any tools like selenium or special skills , only basic understanding how http get/post works.

Why fb doing all this super easy bot registration stuff? I think we all know why.

Edit: spelling. Sorry non native English speaker here

phenom | 13 years ago | on: 10k Bootstrap Challenge: Launch of hnalerts.com

Painting is called Reply of the Zaporozhian Cossacks to Sultan Mehmed IV of the Ottoman Empire, by the way [0]...

Original reply was: Thou art a turkish imp, the damned devil's brother and friend, and a secretary to Lucifer himself. What the devil kind of knight art thou that cannot slay a hedgehog with your naked ass? The devil shits, and your army eats. Thou son of a bitch wilt not ever make subjects of Christian sons; we have no fear of your army, by land and by sea we will battle with thee, fuck thy mother. )))

[0] http://en.wikipedia.org/wiki/Reply_of_the_Zaporozhian_Cossac...

phenom | 13 years ago | on: Skype 4.0 for Linux

My old amd64 version do not require that much dependencies only coupe of packages... and thats it..

Here list of my dependencies for skype 4:

bluez-alsa:i386 glib-networking:i386 gstreamer0.10-plugins-good:i386 gstreamer0.10-x:i386 gtk2-engines:i386 gtk2-engines-murrine:i386 gtk2-engines-oxygen:i386 gtk2-engines-pixbuf:i386 ia32-libs ia32-libs-multiarch:i386 ibus-gtk:i386 lib32asound2 lib32gcc1 lib32stdc++6 libaa1:i386 libaio1:i386 libao4:i386 libatk1.0-0:i386 libaudiofile1:i386 libavc1394-0:i386 libc6-i386 libcaca0:i386 libcairo-gobject2:i386 libcairo2:i386 libcanberra-gtk-module:i386 libcanberra-gtk0:i386 libcanberra0:i386 libcap2:i386 libcroco3:i386 libcupsimage2:i386 libcurl3:i386 libdbus-glib-1-2:i386 libdv4:i386 libesd0:i386 libgail-common:i386 libgail18:i386 libgconf-2-4:i386 libgdbm3:i386 libgdk-pixbuf2.0-0:i386 libgettextpo0:i386 libgnome-keyring0:i386 libgomp1:i386 libgtk2.0-0:i386 libgudev-1.0-0:i386 libibus-1.0-0:i386 libidn11:i386 libiec61883-0:i386 libjasper1:i386 libmad0:i386 libmikmod2:i386 libnspr4:i386 libnss3:i386 libodbc1:i386 libpango1.0-0:i386 libpixman-1-0:i386 libproxy1:i386 libpulse-mainloop-glib0:i386 libpulsedsp:i386 libqt4-designer:i386 libqt4-opengl:i386 libqt4-qt3support:i386 libqt4-scripttools:i386 libqt4-svg:i386 libqt4-test:i386 libqtwebkit4:i386 libraw1394-11:i386 librsvg2-2:i386 librsvg2-common:i386 librtmp0:i386 libsdl-image1.2:i386 libsdl-mixer1.2:i386 libsdl-net1.2:i386 libsdl-ttf2.0-0:i386 libsdl1.2debian:i386 libshout3:i386 libsoup-gnome2.4-1:i386 libsoup2.4-1:i386 libspeex1:i386 libssl0.9.8:i386 libstdc++5:i386 libtag1-vanilla:i386 libtag1c2a:i386 libtdb1:i386 libunistring0:i386 libvorbisfile3:i386 libwavpack1:i386 libxaw7:i386 libxcb-render0:i386 libxcb-shm0:i386 libxft2:i386 libxmu6:i386 libxp6:i386 libxtst6:i386 odbcinst1debian2:i386 xaw3dg:i386

phenom | 14 years ago | on: Announcing Wolfram SystemModeler

Yep, its must be as awesome as Simulink. But in most real world examples you should use more basic programming languages in order to feel all process (handle discretization or numerical integration manually). In Simulink you connect couple block and thats it... everything important are hidden behind the scene.
page 1