Hacker Newsnew | comments | show | ask | jobs | submit | phenom's comments login

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.


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


You can add youtube videos or some short clips from movies and ask your user repeat after protagonist. Everyone likes to repeat catchy phrases from movies)))


Good idea! I was also thinking of adding song lyrics, starting with Queen maybe.


Edit: pointed out in other comment


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


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


You seem knowledgeable. What is the main purpose of bots on facebook?

The article implies they could be used by facebook or competitors to burn up ad revenue, but this approach would just kill the golden pay-per-click goose.


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.


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


Thank you for that. This is the real story here, IMO.


Personally I like Jamendo. It is #1 repository for free music under Creative Commons. You can download legal mp3 for free or purchase for commercial use.



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...


You should probably stay on 2.2 beta....

1. Skype 4 require download 95 additional packages for ubuntu version (all marked i386 even if you using amd64)

2. I am not sure but giant ads probably included too [1]

[1] http://arstechnica.com/information-technology/2012/06/skype-...


It's actually a 32-bit binary, so the amd64 debian package just lists all the i386 dependencies explicitly. Bummer.

$ file /usr/bin/skype /usr/bin/skype: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0x3223447b98867e62fbed258aa0da4f2281ab6f11, stripped


On Fedora (17 here, 32 bits) replaces the old package without installing any extra stuff.

I haven't tested it deeply, but looks like runs smoother than the previous (quite unstable) version.


The point was that skype has no x86_64 version. So if you have a 64 bit install (random aside: I hope you're on an Atom netbook and not running a 32 bit linux on a desktop/laptop) it will pull all the i686 versions of its dependencies.

This probably works now on Ubuntu, which has finally rolled out a multilib implementation (that I haven't kicked the tires on yet).


This a i3 M370, but I run a 32 bits OS because I got tired of running 64 bits with applications with no support for 64 bits (read: Flash browser plugin and Skype).

After some time I've found that there's no real advantage for me on a 64 bits OS for a laptop (ie. I have only 3GB of RAM, performance looks the same, etc).


Flash has been X86_64 compatible for a while now...

  sh-4.2$ rpm -q flash-player
(rpm query on openSUSE Tumbleweed)

  sh-4.2$ file /usr/lib64/browser-plugins/libflashplayer.so
  /usr/lib64/browser-plugins/libflashplayer.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped


Choppy sound (if not completely broken depending on the audio codec), crashes (I got core dumps daily), absurd CPU usage and made Firefox unstable.

I'm not a heavy flash user, but after 6 months I was really frustrated. The 32 bits version works great in comparison.


I apologize for the digression, but what's wrong with running 32bit linux on a desktop/laptop?


Apart from it being a measurably slower architecture (15-20% is typical) and the only sane way of dealing with large memory machines? (Laptops with 8G are routine today, and require a PAE kernel on i686). Refusing to upgrade is the reason that products like Skype continue to refuse to support 64 bit targets.

Just try it. Chances are you won't even notice the difference, except that your battery will last a tiny bit longer if you do compute-heavy stuff.


Tried it couple years ago and the only thing I noticed was that it used more memory (almost twice as much as 32bit IIRC). So I returned to 32bit and am still using it, with PAE kernel so I can use all 4 gigs that I have right now. I really don't feel a bit responsible because Skype refuses to support 64bit.

Another reason that I keep 32bit is portability, as I have quite a peculiar setup: I keep my Linux on a removable HDD, and boot off it on several different machines, which may or may not support 64bit. (So I don't have to tow my laptop to work and back every day.)


You can run a 64 bit kernel, with a 32 bit userspace BTW, this lets you access all the memory on your machine.

Personally I'm waiting for debian multiarch to switch, since I have no desire to reinstall everything from scratch. If debian multiarch did not exist I might have bitten the bullet, but since it does, I can wait a bit for it.


Of course. Even better (best of both worlds, really) would be to run a 64 bit kernel with an x32 userspace: https://sites.google.com/site/x32abi/

But those are still bleeding edge options for people comfortable with tinkering with their systems. I was speaking to the simple choice of i686 vs. x86_64 in pre-cooked systems.


This may surprise you, but every laptop and desktop that I own has a 32-bit processor in it.


How many years has it been since AMD released the Hammer architecture? There was actually a recent post on the LKML that mentioned this.


At this point, I see no reason to run a pure 32 bit userspace. There are no real advantages. The performance impacts are minor, and most people are over 4 GB (or should be).


As to your point 2, I've heard multiple times now that this Linux version does not include the in-conversation ads.


I'm on Arch Linux and installing skype4 from AUR has no dependencies that the skype package from multilib didn't...

Must just be Ubuntu ^.^


The new version of skype is in the official repositories. Just installed it and it looks good so far.


that and the fact that Arch rocks!


On Ubuntu the dependencies were already installed by the old version, so I could install this new version without anything else required.


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


Yeah, I forgot to tell that I'm using the Ubuntu x86 version, not the x64 one.


Maybe you should consider that a Ubuntu problem...I use Arch and only one additional package is required.


Debian 6.0.5 installed without any additional packages also, it was a straight replace.

edit: amd64


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.



Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact