To display the most relevant entries to you in priority,
vote for the stories you are interested in
()
and reject those that you are not interested in
()
Ten years ago this week,
online music pioneer Justin Frankel released a
little application dubbed Gnutella that enabled file sharing through a distributed P2P network.
Frankel, whose previous claim to fame was programming the then hugely-popular Winamp MP3 player software, supposedly named the
client after his favorite hazelnut cream spread, and the first version
published online was really more of a proof of concept than anything else.
Still, Gnutella hit a nerve. Napster had been sued three months before, and many file sharers were rightfully
fearing that the music industry would eventually prevail in court and force Napster to switch off
its servers. With Gnutella, no such switch existed, as the client was allowing direct P2P
connections without the help of any centralized server. Add to it the fact that Gnutella, unlike
Napster, allowed users to swap videos and software as well as MP3s, and you begin to see why many
immediately viewed Gnutella as the next step in P2P file sharing.
A step, one should add, that made Frankel’s employer AOL more than a little nervous. It
only took the Internet giant a day to force Frankel and his colleagues to take down
Gnutella – but even that was too long, as countless sites quickly started to first
mirror, then build upon Frankel’s official Gnutella client. There’s always been a
little bit of mystery surrounding the exact happenings of those days, but some people have been
musing that a person with a surprising amount of insider knowledge showed up in one of the first
IRC chat rooms dedicated to Gnutella soon after AOL pulled the plug, only to provide some very
detailed information about the inner workings of the client’s P2P protocol.
Speaking of IRC: Early versions of the software didn’t really have any way for users to
connect, save for entering another user’s IP address, which is why IRC quickly became an
integral part of the early days of Gnutella. It was also in those IRC chat rooms that the myth of
Gnutella as a seemingly invincible P2P protocol was born, and the fact that AOL tried but
couldn’t contain the software seemed to fit right into that picture. Gnutella was one of
the very first P2P apps I ever wrote about, so I lurked in those chat rooms as well, where people
were cheering the fact that someone finally found a file sharing solution that couldn’t be
shut down. I still remember one IRC user saying: “We’ve started a damn cult
again!”
Only Gnutella wasn’t really ready to be a cult. The network routed search requests from
peer to peer, leading to an exponential growth of traffic as its network became bigger. Napster
programmer Jordan Ritter described the problem early on in a paper titled “Why Gnutella Can’t
Scale. No, Really,” and Frankel himself, who has hardly ever gone on the record about
Gnutella, once stated that he was
fully aware of “how poorly it would scale” when he released the client.
Still, Gnutella captured the imagination of many, one of them being Mark Gorton, founder of the
New York-based Lime Group. Gorton was at
the time pursuing a vision of automating businesses through structured data, and Gnutella, as
something that could, for example, distribute real estate listings wrapped in XML, seemed to fit
that image quite nicely. Early versions of the Gnutella client of Gorton’s LimeWire venture were still written with this
vision in mind, hoping to build a P2P network that could eventually be used to do all kinds of
things with which we’re now familiar on the web, thanks to web services.
LimeWire’s engineers joined a growing group of developers loosely connected through web
sites like the long-defunct Gnutella.wego.com (whose admin Gene Kan tragically committed
suicide in 2002) and mailing lists like the one for the Gnutella Developer Forum, and one of
the first issues to be tackled was scalability. The introduction of a two-tiered system of
ordinary clients and so-called Ultrapeers helped grow both the network as a whole and each
user’s search horizon. The idea was also later adopted by the developers of KaZaA, whose
own take on this two-tiered approach still lives on in Skype’s P2P network.
Technical improvements like these helped Gnutella to grow, but the competition was quick to catch
up. Bram Cohen unveiled a first version of
BitTorrent only two years after Frankel had published Gnutella, and BitTorrent quickly became the
file sharing client of choice for sharing videos online. Part of BitTorrent’s quick rise to
fame was its modular simplicity: Cohen had outsourced much of the search and indexing of files to
torrent web sites, only handling the actual distribution of data within the client. Gnutella on
the other hand was meant to work without any web server. That made it much more invincible, but
also much less accessible to users who migrated from apps and clients to a world of web services.
Another issue that has plagued Gnutella from the beginning is not technical, but legal. The
protocol was supposed to outsmart trigger-happy lawyers, but the mere fact that there
wasn’t a central switch to turn off the Gnutella network didn’t stop rights holders
from going after people and companies associated with it. Lawsuits and legal threats forced Morpheus, Xolox, Bearshare and
a number of other companies and developers to throw the towel.
LimeWire got sued by the music industry as well in 2006, but that hasn’t
stopped the company from continuing with the development and monetization of its client.
LimeWire’s client also utilizes BitTorrent these days, but LimeWire’s VP of Product
Management Jason Herskowitz told me during a phone conversation that Gnutella has “worked
really well” for the company, and that its engineers are looking into ways to make Gnutella
once again more attractive to developers by exposing some of its functionality through web
services. “There is still a long future ahead for Gnutella,” he predicted.
Not everyone agrees with that outlook. Adam Fisk, who was hired by LimeWire as one of its first developers in the summer of
2000, but left the company in 2004 to eventually start his own P2P venture dubbed Littleshot, believes that some core assumptions
of the Gnutella protocol are outdated. “I don’t think that distributed P2P search
makes any sense,” he told me, explaining that the very server-less search functionality
that made Gnutella superior to Napster also ended up being its biggest burden, and that it would
be much easier to have servers handle search and just use P2P to deliver data – a recipe
that has already helped BitTorrent succeed.
Sure, LimeWire and some other Gnutella clients could still stick around for a long time, Fisk
admitted, but he was skeptical that we would ever see any significant new project based on
Gnutella. “That would be shocking,” he said.
The last week has seen some interesting progress for the n900. Firstly it was great to see
phototranslator finally being availiable in
extras-devel. I wrote a couple of weeks ago about having lost patience waiting and played
with OCR myself. However phototranslator has put it together in a slick package and combines
with google translate api to provide a pretty cool application.
Obviously it is of most use if you are travelling to a foriegn country, translating signs and
menus as you go, but it is still interesting to play with and just show off the capabilities of
the device (without having to drop to a terminal).
Perhaps the major new item this week is sygic’s mobile maps being released
for sale. There was much rumour that they had been waiting to release via Nokia’s ovi
store. However, they have made it aviliable for sale via their own site.
I purchased it on Friday after some of the initial rush had died down, and sygic had some chance
to get their servers working properly. Some of the first off the mark reported painfully slow
downloads which dropped and they had to use resuming downloaders to get all the way through. At
1.8gb I didn’t really want to deal with download problems. Given that the program requires
activation via their site, it’s not clear why they didn’t just torrent the file and
save their servers a lot of problems.
Nonetheless when I came to make my purchase I got about 200kb/sec and it downloaded in about
90mins.
I had read the maemo forums and seen people had trouble with segfaults if the data folders
weren’t in the right place. So I copied to the /home/user/MyDocs folder as instructed. What
I didn’t do was unplug my usb cable, just unmounted the n900 and left it charging only. I
got a segfault running the application
I rebooted the phone, unplugged the cable and then it ran fine to the point of product
activation. Where I selected ‘automatic’ and entered my product code. Only to find it
sat doing nothing for a minute then segfaulted….
At this point I was a little concerned about the quality of the app. It’s response to the
unexpected seems to be to segfault, which doesn’t seem like good code to me.
However, after actually reading some instructions I realised I should go through manual
activation, and that product code != Activation code. I went via their site and got my activation
code and at last I was up and running.
Once going, I’ve had no further problems. It’s a fast application and seems very
good. I’ve only used it to route me home from work, but it did so well. The thing I noticed
was how fast it recalculated when I intentionally deviated from the route. No sooner than I made
the turn than I looked down to see new route laid out. To be fair I’m comparing to a now
pretty old tomtom, but it’s recalculation always took a few seconds of processing.
The other thing I noticed was that the map has a housing estate in my town that was built perhaps
5 years ago, but does not have some mini roundabouts on my route home from years before that.
I also note that it doesn’t seem to care about traffic lights. By which I mean it gives no
indication that it would consider them as a factor in routing decisions. I don’t know if
any do, but I hold out hope one day to get routing that knows that 9am on a weekday could mean
several extra minutes going through traffic lights.
The maemo forums where quickly full of interesting tips/hacks to enable fullscreen operation
& open up more menu options. This allows for portrait operation and more controls. I
don’t know why sygic didn’t have these enabled by default, perhaps they are not fully
tested so have been left in an implicit ‘unsupported’ state, but easy to switch on.
Some think it’s crazy to pay €59 for something nokia might do for free in
ovi maps. However given nokias track record so far I’m not at all convinced they are going
to give away anything even close to as good as sygics offering. In terms of price, I paid more
for just the France maps addition on my old tomtom, so €59 for the whole of
europe seems very good value to me. Now I just need my brodit active holder to ship…
Rumours have increased that firmware release 1.2 is imminent. Based on some wishful thinking and
the fact that the UK has finally gotten the 1.1.1 release that the rest of the world got weeks
ago. Along with a number of bugs being marked explicitly as in pr 1.2. Neither of these things
need have any baring on the release of the next update, but wishful thinking is hard to put down
.
I also became aware this week of TweeGo, a new twitter
client. This one written with c++/qt and looking very nice. A much slicker ui than my own witter.
I am really glad to see more options being actively developed, bringing more choice to n900
users.
Perhaps more significantly than the other things this week… I wrote the code to add avatar
support to witter. Though as yet it’s not ready to release, it should be reasonably
shortly. (Perhaps this should really be something for next week rather than last)
For a long time I pretty much refused to consider avatar support. I figured it would do nothing
but take up memory, use up screen space, and slow things down. And it would cost time in coding I
was unwilling to spend. However, this week I came accross a thread on maemo forums with some good
examples of what I would need. So I had a play and found it didn’t take too long to get
basic support working. Although it must make the memory footprint bigger, it doesn’t appear
to hurt performance. So at somepoint soon witter will look something like this:
To have a few new things arriving for the n900 in a short space of time really gave me the
feeling that it is gathering momentum. Getting better and better all the time.
This momentum enourages more development, and hopefully more good information such as the thread
I found, which in turn leads to more, better applications.
With a cool new technology demo in phototranslator, a great pay-for gps option from sygic and a
slick new twitter client in TweeGo, it’s hard not to feel optimistic about the future for
the N900 after a week like this.
Wally 2.3.2
(KDE Other Utility)
Wally is a Qt4 wallpaper changer, using multiple sources like files, folders, FTP remote folders,
Flickr, Yahoo!, Panoramio, Pikeo, Ipernity, Photobucket, Buzznet, Picasa, Smugmug and Bing images.
It runs under Linux, Win32, and MacOSX, and it's available in many languages.
If you are upgrading KDE4 to 4.4, you must rebuild from sources, cause WallyPlugin can crash
Plasma. DEB files will be available when 4.4 will be available as "stable" with Ubuntu.
Note for Ubuntu users: if you're using KDE4, please use KDE4 ONLY packages!!!
changelog:
Version 2.3.2
- Double-clicking icon in system tray advances on next photo
- Improved duplicated photo detection
- Added Catalan language
- Added Greek language
- Added disclaimer to be accepted on first start of Wally
- Removed QtScript dependency, JSON parser has been implemented internally (Qt 4.6
compatibility)
- Run-time folder change detection has been removed from "Folders" module, its use is too resource
consuming
- BUG FIXED: search issues occurred when using multiple tags/keywords
- BUG FIXED: EXIF information are now showed correctly when non-Latin1 characters in filename path
are used
- BUG FIXED: KDE 4.4 SC was not properly detected
- BUG FIXED: Panoramio was working only with "Original" sized images
Version 2.3.1
- Added Chinese language
- Added Polish language
- Active Desktop is now detected, and error is reported
- Photo filename is used when title is not available
- XFCE detection improved
- BUG FIXED: GUI bug in proxy selection form
- BUG FIXED: Panoramio coordinates are checked after input terminates
- BUG FIXED: buggy behaviour in MacOSX, Folders module, when too many files are present in
specified directories
Version 2.3.0
- Added French language
- Added Czech language
- Wally can now display wallpapers behind toolbars and docks, using full screen space
- Time period can now be shortened up to 10 seconds
- Automatic border color feature has been added
- BUG FIXED: history data is not stored anymore when Cancel is pressed
- BUG FIXED: HTTP download does not get stuck anymore if HTTP response is wrong
- BUG FIXED: HTTP download in history window does not get stuck anymore at 99%, cause of a
QProgressDialog conflict
- BUG FIXED: history viewer misbehaviours have been fixed
- BUG FIXED: Panoramio items save state correctly now
- BUG FIXED: map selection issues in Panoramio items have been fixed
- BUG FIXED: MacOSX Info.plist fixed
- BUG FIXED: regression bug about free disk space check has been fixed
Version 2.2.0
- Added selection on map for Panoramio items configuration
- History window has been improved, more informations for each item and filter by tags have been
added
- Added Bing module
- EXIF support improved. Information window has been added, and EXIF is stored in history.
- BUG FIXED: wrong GUI behaviour in HTTP items when setting photos path, now fixed
- BUG FIXED: wrong GUI behaviour on proxy server selection, now fixed
- BUG FIXED: duplicated items are not accepted anymore
- BUG FIXED: now asks HTTP server first if download is recoverable
- BUG FIXED: segfault no longer happens when GIF/PNG/no-EXIF-compatible photo is downloaded
- BUG FIXED: consecutive downloads of the same photo are not allowed anymore
- BUG FIXED: X shortcuts for older WMs weren't updated to current features
Version 2.1.0
- Added system proxy support
- Added History feature
- Modules can be disabled/enabled
- Added Picasa module
- Added Smugmug module
- Added Buzznet module
- HTTP engine can now recover downloads
- More cosmetic changes
- Free disk space threshold can be configured
- Multiple items in HTTP engines can be selected
- BUG FIXED: state in Folders engine is now properly saved
- BUG FIXED: playlist is now reset correctly after wrap
Version 2.0.3
- BUG FIXED: MacOSX script for wallpaper change now works properly
- BUG FIXED: Color button is now showed correctly with all GUI styles
- BUG FIXED: "About" dialog now can be closed under MacOSX
- BUG FIXED: empty "Remote folder" items are now correctly rejected
- BUG FIXED: Wally's single instance in MacOSX is now properly detected
- BUG FIXED: annoying issues with KDE4 WallyPlugin have been solved (at the end!!!)
- Some cosmetic changes
Version 2.0.2
- BUG FIXED: empty items are now discarded
- BUG FIXED: single instance in Linux now is checked using file PID, thus avoiding false
positives
- BUG FIXED: only available free space on desktop is used
- BUG FIXED: Pikeo now resets page count search after an empty result
- Free disk space (at least 20 megs) is checked for availability before saving photos
- EXIF tags are analyzed in every plugin, and corrections are applied where needed
- Photobucket has no throttle limit anymore, watermark on photo is applied
- More code restyling
- Fixed plural form in translations
- Added Portuguese (Brazil) translation
- Window manager can be forced at command line (Linux only)
- WallyPlugin: D-BUS is not used anymore
- WallyPlugin: KDE message will appear at end of installation, remembering of KDE4 Plasma
restart
- Removed QCA dependency
- Application data folder is now more S.O. "friendly" under Win32 and MacOSX
Version 2.0.1
- WallyPlugin BUG FIXED: plugin is now compiled without debug information
- WallyPlugin BUG FIXED: D-BUS access rights are now setup correctly
- WallyPlugin BUG FIXED: installation paths are now detected properly
You don't need to upgrade to 2.0.1 if you're not using KDE4.
.DEB files now include Wally and WallyPlugin. No need to use sources for KDE4.
Version 2.0.0
- Wally's engine has been totally rewritten, for better stability and better coding structure in
plugins' development
- UI partial restyling and improvement
- KDE4 support
- MacOSX support (experimental)
- FTP remote folders support
- Multilanguage support (English, Italian, Spanish and Russian)
- Wally now remembers its last state before termination
- Bugs fixed all around
Version 1.3.2
- Added configurable GUI style
- Flickr search pages count is now hard-limited, to avoid repeated results
- Pikeo plugin is now enabled
- Added "-debug" command line switch for better bugs tracing
- BUG FIXED: pictures in folder mode now change correctly
- BUG FIXED: multiple erroneous picture validations are no longer generated
Version 1.3.1
- BUG FIXED: regression bug about removing rows from configuration has been fixed
Version 1.3.0
- Added Pixeo plugin (still disabled, EXPERIMENTAL)
- Added Riya plugin (still disabled, EXPERIMENTAL)
- About dialog now shows supported images
- BUG FIXED: Gnome detection now should work
Version 1.2.0
- Added Panoramio plugin
- Flickr images are now rotated correctly, if needed
- BUG FIXED: sending quit immediately before background change doesn't generate a segfault now
- BUG FIXED: HTTP timeouts now if a transfer takes too long
- BUG FIXED: internal search is now limited by HTTP result count
- VERY IMPORTANT BUG FIXED: Play/Pause now works correctly
Version 1.1.0
- Added Fluxbox support
- Added Blackbox support
- Added FVWM support (unstable)
- Added WindowMaker support
- BUG FIXED: XFCE4 now works
- BUG FIXED: "Cancel" command now works when HTTP download is in progress
we'd need more customization options for the email notifier. I see on the documentation that TC
5.1 is going to leverage a different templating engine but no additional information is provided.
Our requirements are as following:
edit the templates from the Web UI, since not every member of the team will have physical
access to the TC server.
reference system properties, environment variables and parameters from the notification
template
Is anything of this planned already or should I create an issue on youtrack?
we'd need more customization options for the email notifier. I see on the documentation that TC
5.1 is going to leverage a different templating engine but no additional information is provided.
Our requirements are as following:
edit the templates from the Web UI, since not every member of the team will have physical
access to the TC server.
reference system properties, environment variables and parameters from the notification
template
Is anything of this planned already or should I create an issue on youtrack?
Generally, I do not think you should go into such detail and try to workaround issues with your
version control using TeamCity. Moreover, the concrete behavior depends on the version control
you use.
I agree that ideally I should not care what TC does with the VCS, but at the moment we are
experiencing major issues with the load TC is exercising on our VCS, and we have to find a way to
deal with it. Our code base is pretty big, and checking it out completely might take tens of
minutes, which is something we cannot deal with. So any advice on this side is welcome.
In general, in case of server-side checkout, TeamCity caches the sources on the server per VCS
root checkout settings and goes to the version control server for the clean patch only once per
day with all the rest builds only retrieving incremental patch from the VCS server.
So, as far as I understand, if I have several build configurations sharing the same VCS root but
each one with different checkout rules (which we set up with the aim of improving checkout
performance), do they share a common clean patch or does each one of them require a standalone
patch? In the second case I guess our decision to fine-tune the checkout rules per build
configuration is counter productive then, and we better remove them completely, can you confirm?
In this case, however, we need to configure build triggering rules, since we don't want to see a
build starting because something has been checked in which doesn't have anything to do with this
build configuration.
However, sometimes building incremental patch can be not quicker then building a full one. e.g.
AFAIK for TFS there is no full patch cached by TeamCity.
Can you explain this?
Do you really need to use non-default checkout directory? This note relates to the case:
I do. Please take into account that certain codebases might be very complex, and while removing
the need for a special checkout directory might be very simple in most cases because of well
factored code which doesn't need to know where it's running, it other cases, when you have to
maintain large chunks of legacy code, this might just not be possible. This is our case, where
the code - test code - needs to be running in a specific location on the file system and
considering to make it independent of this constraint requires a lot of work.
- a build A with certain VCS settigns is build in the directory X
- whan a build B with different VCS settigns is going to build in the same
directory X, TeamCity first deleted the content of the directory and performs clean patch.
BTW, luckily we are in a situation in which different build configurations use the same checkout
directory but with same VCS settings.
Barence writes "As embarrassing as it may seem, an eggy smell in a server room needn't mean
broaching the delicate subject of hygiene with a colleague. It can actually be a signal that
something is about to go wrong with your server setup, as this consultant discovered after days of
assuming questionable personal habits were to blame. The culprit? An expiring UPS device, sending
out its own unique warning signal."
Barence writes "As embarrassing as it may seem, an eggy smell in a server room needn't mean
broaching the delicate subject of hygiene with a colleague. It can actually be a signal that
something is about to go wrong with your server setup, as this consultant discovered after days of
assuming questionable personal habits were to blame. The culprit? An expiring UPS device, sending
out its own unique warning signal."
Barence writes "As embarrassing as it may seem, an eggy smell in a server room needn't mean
broaching the delicate subject of hygiene with a colleague. It can actually be a signal that
something is about to go wrong with your server setup, as this consultant discovered after days of
assuming questionable personal habits were to blame. The culprit? An expiring UPS device, sending
out its own unique warning signal."
MF Digital will be Partnering with Disc Makers at the NAB show, April 12-15 to demonstrate CD,
DVD, & Blu-ray Disc Duplication, Print and Content Conversion Solutions. (PRWeb Mar 21, 2010)
Publication Date: 2010 Mar 17 PMID: 20299324Authors: Standley, D. M. - Yamashita, R. - Kinjo, A. R.
- Toh, H. - Nakamura, H.Journal: BioinformaticsMOTIVATION: Functional similarity between proteins
is evident at both the sequence and structure levels. SeSAW is a web-based program for identifying
functionally or evolutionarily conserved motifs in protein structures by locating sequence and
structural similarities, and quantifying these at the level of individual residues. Results can be
visualized in 2D, as annotated alignments, or in 3D, as structural superpositions. An example is
given for both an experimentally determined query structure and a homology model. Availability and
Implementation: The web server is located at http://www.pdbj.org/SeSAW/ CONTACT:
standley@ifrec.osaka-u.ac.jp.post to:
CiteULike
FmPro Migrator quickly and accurately migrates FileMaker Pro database structure
and data to MySQL, Oracle, Access, SQL Server, Sybase, DB2, OpenBase, PostgreSQL, FrontBase,
SQLite and Valentina.
Converts Access Forms/Reports, Relationships, Value Lists, Queries and Visual Basic to
FileMaker 10
Converts FileMaker Pro Layouts/Scripts/Value Lists to Microsoft Access
Converts FileMaker Pro Layouts/Scripts/Value Lists, Relationships to Servoy Projects
Converts Layouts to HTML/JavaScript
Converts Layouts/Scripts to Revolution Stacks
Migrates Access, Bento, Firebird and SQL Server to FileMaker 10
Converts Bento Forms to FileMaker Layouts
Automated Table Consolidation Feature
Generates Perl CGI scripts for all databases
Facilitates FileMaker ESS Configurations
Host FileMaker Pro data at any ISP supporting MySQL
Documents FileMaker Pro database structure
Migration of large text fields and image data for all supported databases
No ODBC driver licensing required for UNIX servers
Repeating Fields Extraction
Economical Single-User License
FileMaker image export feature
Export Layout XML to individual files (Developer Edition Feature)
FileMaker Pro database fields containing more than 255 or 4000 characters of text are migrated to
the appropriate large text column type in the destination database. Container field data within
FileMaker Pro container fields is migrated directly to the appropriate BLOB type of database
columns through a network connection. No manual data entry is required for processing either of
these specialized data types.
WHAT'S NEWVersion 5.57:
Added new PHP to revTalk conversion feature.
Added new BASIC to revTalk conversion feature.
Fixed the Value Lists generated for Servoy migration projects to add rn instead of only r as
value list item separators.
Updated Fmig_Preferences.db3 (v6) and MigrationProcess.db3 (v4) files to include new
preference items for new features.
Renamed Convert Database to Revolution feature with new icon and changed name to Convert
Layouts to Rev.
Jet Profiler for MySQL 1.0.8Jet Profiler for MySQL is real-time query performance and
diagnostics tool to help DBAs and developers. Core features are:
Top Queries
Top Users
Top Tables
Replication Profiling
Zoomable GUI
Free Version
Jet Profiler focuses on queries, tables and users. This gives you the information you need
most in order to quickly fix performance problems in your code, such as most frequent queries, most
used tables or busiest users. Data is collected, analyzed and displayed in real-time in diagrams,
pie charts and tables. You can easily drill down and navigate through the data. Most of the
profiling work is done in the Jet Profiler application, not in the database server. Therefore, the
performance hit is normally negligible, around 1%. It supports all MySQL versions. No database
server changes are necessary. No agents or separate services are needed. Jet Profiler is a desktop
application which runs on your computer. You start it, connect to a server, hit the record button,
and see results within minutes. And it runs on Windows, Mac and Linux. The professional version
contains more features than the free version.
WHAT'S NEWVersion 1.0.8:
Added reminder message when license is about to expire.
Fixed bug #67: Software updates fails on Windows in some situations, related to slow network
responses.
Fixed bug #68: Top Tables tab wont always show all tables that are being used. This can
happen if the tables have very low usage.
Fixed bug #72: Memory leak in pie chart painting leading to OutOfMemoryErrors during
prolonged running (days).
MichaelSmith writes "I code on the tram, going to and from work, and I noticed that there are a lot
of WiFi access points along the way. So one week I made it my job to write an automatic scanner
which runs from a cron job every minute during commuting times. My backup script pushes the new AP
names to my web server and you can read it online. It is a mixture of the straightforward, naive
and funny, with a few pop culture references along the way. The first column in the file is the
number of access points with that name. The second column is the AP name, in brackets to pick up
white space." Why can't "Dress Me Slowly" and "Domestic Bliss" just share an AP?
MichaelSmith writes "I code on the tram, going to and from work, and I noticed that there are a lot
of WiFi access points along the way. So one week I made it my job to write an automatic scanner
which runs from a cron job every minute during commuting times. My backup script pushes the new AP
names to my web server and you can read it online. It is a mixture of the straightforward, naive
and funny, with a few pop culture references along the way. The first column in the file is the
number of access points with that name. The second column is the AP name, in brackets to pick up
white space." Why can't "Dress Me Slowly" and "Domestic Bliss" just share an AP?
John Gilmore keynote – What do we do next, having produced a free software system for our
computers? Perhaps we should aim at Windows? Wine + an extended ndiswrapper to run other hardware
drivers + a better system administration interface/resources/manuals. However that means knowing
a lot about windows internals – something that open source developers don’t seem to
want to do. We shouldn’t just carry on tweaking – its not inspiring; whats our
stretch goal? Discussion followed – reactos, continue integrating software and people with
a goal of achieving really close integration: software as human rights issue! ‘Desktop
paradigm needs to be replaced’ : need to move away from a document based desktop to a
device based desktop. Concern about the goal of running binary drivers for hardware: encourages
manufacturers to sell hardware w/out specs; we shouldn’t encourage the idea that that is
ok. Lots of concern about cloning, lots of concern about what will bring more freedom to users,
and what it will take to have a compelling vision to inspire 50000 free software hackers. Free
software in cars – lots of safety issues in .e.g brake controllers, accelerators.
Eben Moglen – ‘We’re at the inflection point of free software’ –
because any large scale global projects these days are not feasible without free software. Claims
that doing something that scales from tiny to huge environment requires ‘us’ —
A claim I would (sadly) dispute. Lots of incoming and remaining challenges. ‘Entirely clear
that the patent systems relationship to technology is pathological and dangerous’ –
that I agree with! Patent muggings are a problem – patent holders are unhappy with patents
granted to other people .
Patent pools are helping slowly as they grow. Companies which don’t care about the freedom
aspect of GPLv3 are adopting it because of the patent protection aspects. Patent system is at the
head of the list of causes-of-bad-things affecting free software. SFLC is building coalitions
outside the core community to protect the interests of the free software community. We are
starting to be taken for granted at the high end of mgmt in companies that build on free
software. … We face a problem in the erosion of privacy. We need to build a stack, running
on commodity hardware that runs federated services rather than folk needing centralised services.
Marina Zhurakhinskaya on GNOME Shell: Integrates old and new ideas in an overall
comprehensive design. Marina ran through the various goals of the shell – growing with
users, being delightful, starting simply so new users are not overwhelmed. The activities screen
looks pretty nice The workspace rearrangement UI is really good. The notifications thing is
interesting; you can respond to a chat message in-line in the notification.
Richard Stallman on Software as a
Service – he presented verbally the case made in the paper. Some key
quotes…Â “All your data on a server is equivalent to total
spyware” – I think this is a worst-case analogy; it suggests that you can
never trust another party: kindof a sad state of paranoia to assume that all network servers are
always out to get you all the time. And I have to ask – should we get rid of Savannah then
(because all the data is stored there) – the argument for why Savannah is not SaaS is not
convincing: its just file storage, so what makes it different to e.g. Ubuntu
One? “If there is a server and only a little bit of it is SaaS, perhaps
just say don’t worry about it – because that little bit is often the hardest bit to
replace.” Â ”Lets write systems for collaborative word process that
don’t involve a central server” — abiword w/the sharing plugin ?
RMS seems to be claiming that someone else sysadmining a server for you is better
than someone else sysadmining a time-shared server for you: I don’t actually see the
difference, unless you’re also asserting that you’ll always have root over
your’ own machine’. The argument seems very fuzzy and unclear to me as to why there
is really a greater risk – in particular when there is a commercial relationship with the
operator (as opposed to, say, an advertising supported relationship).
Canonical has announced the availability of the first Ubuntu 10.04 beta release. The new version
of Ubuntu, codenamed Lucid Lynx, is scheduled to arrive in April. It will be a long-term support
(LTS) release, which means that updates will be available for three years on the desktop and five
years on servers.
Although the Ubuntu developers have largely focused on boosting stability for this release, they
have also added a number of noteworthy new features and applications. One of the most visible
changes is the introduction of a
new theme—a change that is part of a broader rebranding initiative that aims to update
Ubuntu's visual identity.
We have faced the problem of building our application on our continuous integration server. It was
a pain to write separate ant build scripts, because all information is already present in
the eclipse environment, so nobody is interested in...
Pour une durée limitée (l'offre est valable jusqu'au 2 avril), Electronic Arts vend
sur Steam un pack de quatre Battlefield Bad Company 2 pour le prix de trois, soit
150€. Malgré cette promo, le jeu reste plus cher que sur
Amazon.co.uk, où il coûté 34 euros fdp in (et 47 euros sur consoles).
Par ailleurs, Electronic Arts a patché les serveurs dédiés du jeu. Le
changelog : - Several common crash fixes. Especially those which have monitoring scripts that rely
on the Remote Admin interface should see stability improvements.
- PunkBuster can send commands to Remote Admin interface. pb_sv_task 0 -1 now works
- Veteran-rank handling corrected
- Switched back to Release version of the low-level networking library; less debug output but
higher performance
- Increased the initial server reconnection interval to 30+rand(30) seconds
- PB GUID generation is now based on EA account IDs (it used to be based on persona names)
TeamViewer connects to any PC or server around the world within a few seconds. You can remote
control your partner's PC as if you were sitting right in front of it.
eToolz includes some of the most important networking tools like NS-Lookup, Ping, TraceRoute and
Whois. It allows also to check E-mail addresses (MX-Server) and to search/convert domain names
showing DNS entries (A, PTR, NS, SOA). eToolz supports also international domain names.
Note: the application starts in German, but you can immediately focus the "Sprache / Language"
option in the window.
BlackBerry addicts that keep strange hours should keep a stiff drink on hand between 2AM and 6AM
EDT on Sunday, March 28th, because those are the hours RIM will be hard at work updating its
North American servers to BIS 3.0. During this four hour upgrade process literally every BIS user
will have to go without BlackBerry services, but since it’s happening so late in the East,
it’s going to be the poor ol’ West Coasters that are going to feel the brunt of this.
Either way you slice it, the gain is worth the pain as BIS 3.0 brings with it 2-way Gmail sync
(in the EMEA region this is being slowly introduced, so take that as a sign the same will happen
here), the ability to add/delete Gmail labels, support for .wma and OpenOffice files, and a few
other assorted trinkets that concern carrier-related error messages. Sweet.
Ten years ago this week, online music pioneer Justin Frankel released a little application dubbed
Gnutella that enabled file sharing through a distributed P2P network. Frankel, whose previous claim
to fame was programming the then hugely-popular Winamp MP3 player software, supposedly named the
client after his favorite hazelnut cream spread, and the first version published online was really
more of a proof of concept than anything else.
Still, Gnutella hit a nerve. Napster had been sued three months before, and many file sharers were
rightfully fearing that the music industry would eventually prevail in court and force Napster to
switch off its servers. With Gnutella, no such switch existed, as the client was allowing direct
P2P connections without the help of any centralized server. Add to it the fact that Gnutella,
unlike Napster, allowed users to swap videos and software as well as MP3s, and you begin to see why
many immediately viewed Gnutella as the next step in P2P file sharing. Continue
reading on Newteevee.com.
Tags: gnutella,, justinfrankel,, newteevee,, limewire
Ten years ago this week, online music pioneer Justin Frankel released a little application dubbed
Gnutella that enabled file sharing through a distributed P2P network. Frankel, whose previous
claim to fame was programming the then hugely-popular Winamp MP3 player software, supposedly named the client after his favorite hazelnut
cream spread, and the first version published online was really more of a proof of concept than
anything else.
Still, Gnutella hit a nerve. Napster had been sued three months before, and many file sharers were rightfully
fearing that the music industry would eventually prevail in court and force Napster to switch off
its servers. With Gnutella, no such switch existed, as the client was allowing direct P2P
connections without the help of any centralized server. Add to it the fact that Gnutella, unlike
Napster, allowed users to swap videos and software as well as MP3s, and you begin to see why many
immediately viewed Gnutella as the next step in P2P file sharing.
A step, one should add, that made Frankel’s employer AOL more than a little nervous. It
only took the Internet giant a day to force Frankel and his colleagues to take down
Gnutella – but even that was too long, as countless sites quickly started to first
mirror, then build upon Frankel’s official Gnutella client. There’s always been a
little bit of mystery surrounding the exact happenings of those days, but some people have been
musing that a person with a surprising amount of insider knowledge showed up in one of the first
IRC chat rooms dedicated to Gnutella soon after AOL pulled the plug, only to provide some very
detailed information about the inner workings of the client’s P2P protocol.
Speaking of IRC: Early versions of the software didn’t really have any way for users to
connect, save for entering another user’s IP address, which is why IRC quickly became an
integral part of the early days of Gnutella. It was also in those IRC chat rooms that the myth of
Gnutella as a seemingly invincible P2P protocol was born, and the fact that AOL tried but
couldn’t contain the software seemed to fit right into that picture. Gnutella was one of
the very first P2P apps I ever wrote about, so I lurked in those chat rooms as well, where people
were cheering the fact that someone finally found a file sharing solution that couldn’t be
shut down. I still remember one IRC user saying: “We’ve started a damn cult
again!”
Only Gnutella wasn’t really ready to be a cult. The network routed search requests from
peer to peer, leading to an exponential growth of traffic as its network became bigger. Napster
programmer Jordan Ritter described the problem early on in a paper titled “Why Gnutella Can’t
Scale. No, Really,” and Frankel himself, who has hardly ever gone on the record about
Gnutella, once stated that he was
fully aware of “how poorly it would scale” when he released the client.
Still, Gnutella captured the imagination of many, one of them being Mark Gorton, founder of the
New York-based Lime Group. Gorton was at
the time pursuing a vision of automating businesses through structured data, and Gnutella, as
something that could, for example, distribute real estate listings wrapped in XML, seemed to fit
that image quite nicely. Early versions of the Gnutella client of Gorton’s LimeWire venture were still written with this
vision in mind, hoping to build a P2P network that could eventually be used to do all kinds of
things with which we’re now familiar on the web, thanks to web services.
LimeWire’s engineers joined a growing group of developers loosely connected through web
sites like the long-defunct Gnutella.wego.com (whose admin Gene Kan tragically committed
suicide in 2002) and mailing lists like the one for the Gnutella Developer Forum, and one of
the first issues to be tackled was scalability. The introduction of a two-tiered system of
ordinary clients and so-called Ultrapeers helped grow both the network as a whole and each
user’s search horizon. The idea was also later adopted by the developers of KaZaA, whose
own take on this two-tiered approach still lives on in Skype’s P2P network.
Technical improvements like these helped Gnutella to grow, but the competition was quick to catch
up. Bram Cohen unveiled a first version of
BitTorrent only two years after Frankel had published Gnutella, and BitTorrent quickly became the
file sharing client of choice for sharing videos online. Part of BitTorrent’s quick rise to
fame was its modular simplicity: Cohen had outsourced much of the search and indexing of files to
torrent web sites, only handling the actual distribution of data within the client. Gnutella on
the other hand was meant to work without any web server. That made it much more invincible, but
also much less accessible to users who migrated from apps and clients to a world of web services.
Another issue that has plagued Gnutella from the beginning is not technical, but legal. The
protocol was supposed to outsmart trigger-happy lawyers, but the mere fact that there
wasn’t a central switch to turn off the Gnutella network didn’t stop rights holders
from going after people and companies associated with it. Lawsuits and legal threats forced Morpheus, Xolox, Bearshare and
a number of other companies and developers to throw the towel.
LimeWire got sued by the music industry as well in 2006, but that hasn’t
stopped the company from continuing with the development and monetization of its client.
LimeWire’s client also utilizes BitTorrent these days, but LimeWire’s VP of Product
Management Jason Herskowitz told me during a phone conversation that Gnutella has “worked
really well” for the company, and that its engineers are looking into ways to make Gnutella
once again more attractive to developers by exposing some of its functionality through web
services. “There is still a long future ahead for Gnutella,” he predicted.
Not everyone agrees with that outlook. Adam Fisk, who was hired by LimeWire as one of its first developers in the summer of
2000, but left the company in 2004 to eventually start his own P2P venture dubbed Littleshot, believes that some core assumptions
of the Gnutella protocol are outdated. “I don’t think that distributed P2P search
makes any sense,” he told me, explaining that the very server-less search functionality
that made Gnutella superior to Napster also ended up being its biggest burden, and that it would
be much easier to have servers handle search and just use P2P to deliver data – a recipe
that has already helped BitTorrent succeed.
Sure, LimeWire and some other Gnutella clients could still stick around for a long time, Fisk
admitted, but he was skeptical that we would ever see any significant new project based on
Gnutella. “That would be shocking,” he said.
L'hébergement virtuel proposant des "tranches" de serveur devient de plus en plus
populaire. Vous trouverez un peu partout des offres comparables à celles proposées
par Gandi ou Slicehost et, de mon point de vue,
elles représentent l'avenir de l'hébergement de sites web.
En regardant les offres de près, le premier réflexe est généralement
d'être effrayé par les tarifs. Surtout en France, où certaines
sociétés laissent croire qu'on peut fournir un hébergement de qualité
pour 2 EUR par mois.
Pour une somme allant de 14 à 20 EUR par mois, vous pourrez trouver un hébergement
disposant de 256 Mo de RAM, un puissance CPU raisonnable et une flexibilité que vous ne
trouverez pas ailleurs. Et vous serez administrateur de votre machine ce qui n'est pas le dernier
des avantages.
256 Mo
Il y a de cela 8 ans, j'avais un vieux PC dans ma cuisine, avec 192 Mo de RAM, un CPU poussif et
un débit montant de 128 kbits/s. Ça ne m'empêchait pas de faire
tourner un serveur web, un serveur de mail. Les début de dotclear.net se sont faits sur
cette machine, à côté du frigo.
Du coup, je me suis dit, qu'il n'y avait aucune raison de ne pas faire fonctionner correctement
un serveur web avec 256 Mo de RAM, un meilleur CPU et une bande passante bien plus confortable.
Afin de tester mon idée, j'ai créé une machine virtuelle avec vmware et une
image Ubuntu server. Cette liste propose un grand nombre d'images de VM
prêtes à l'emploi, ça vous fera gagner du temps si vous voulez faire des
essais.
Au démarrage la machine virtuelle n'utilise que 16% de ses 256 Mo de mémoire. (Avec
uniquement un serveur SSH).
MySQL
Sur Ubuntu, la configuration par défaut de MySQL est réputée pour consommer
un peu trop de ressources. Nous pouvons améliorer ceci en modifiant un peu le fichier
/etc/mysql/my.cnf. Faites en sorte d'avoir ces lignes dans le fichier :
Si vous n'avez pas l'intention d'installer Dotclear ou plus généralement, ne
comptez pas utiliser InnoDB, désactivez le en ajoutant la ligne :
skip_innodb
Cette configuration me donne une utilisation de mémoire d'environ 30 Mo. Ça
dépendra, bien sûr, de vos applications.
Oublions Apache
De l'ensemble LAMP, nous voulons conserver Linux, MySQL et PHP. Nous allons remplacer Apache par
un autre serveur : Nginx.
Nginx (on dit Engine X) est ce qu'on pourrait appeler la nouvelle génération de
serveurs web. Il peut remplacer Apache dans de nombreuses circonstances. Je vous laisse lire la
présentation du serveur ainsi que ce billet.
Pour installer Nginx, apt, yum ou votre gestionnaire de paquet feront l'affaire. Assurez vous
simplement d'avoir une version 0.7.x. Nous verrons ensuite comment le configurer.
PHP et PHP Xcache
Nginx, contrairement à Apache, ne propose pas d'équivalent à mod_php. Vous
ne pouvez pas non plus utiliser PHP simplement en CGI (tant mieux). Vous allez devoir utiliser
FastCGI et indiquer à Nginx comment y accéder.
Pour faire simple, nous allons installer spawn-fcgi et écrire un script pour lancer nos
processus PHP. Sur Ubuntu/Debian :
apt-get install php5-cgi spawn-fcgi
Le script permettant de lancer les processus PHP est le suivant, vous devez le créer dans
/etc/init.d/php5-fcgi :
Pour activer votre script (avec Ubuntu ou Debian) :
update-rc.d php5-fcgi defaults
Maintenant vos processus PHP se lanceront au démarrage. Un petit mot sur deux
paramètres importants. Les processus PHP en CGI ont une tendance connue à planter
de manière régulière. C'est à ceci que sert à la variable
PHP_FCGI_MAX_REQUESTS que nous avons mis à 500. Tous les 500 cycles, chaque processus PHP
sera relancé. Enfin, PHP_FCGI_CHILDREN=2 indique de lancer deux processus PHP. Vous pouvez
en mettre plus mais n'oubliez pas que plus il y en a plus vous consommerez de mémoire.
Une fois en production, vous pourriez constater que c'est un peu lent. L'installation du paquet
php5-xcache améliore grandement les performances de PHP. Consultez le site de Xcache pour en savoir plus. J'ai
doublé la taille du cache (xcache.size dans /etc/php5/conf.d/xcache.ini) mais ne perdez
pas de vue que cette taille est appliquée à chaque processus PHP (soit 2 fois 32M
dans mon cas).
Maintenant, vous pouvez lancer votre processus à l'aide de /etc/init.d/php5-fcgi start.
Notez également que PHP FPM
peut remplacer spawn-fcgi. J'en ai lu le plus grand bien mais ne l'ai pas testé.
Configuration de Nginx
Vous avez bien entendu installé Nginx avec un classique apt-get install nginx.
Nginx pour Ubuntu ou Debian fourni un fichier de configuration pour FastCGI. Nous allons le
compléter. Le fichier est /etc/nginx/fastcgi_params et doit contenir ceci :
Les derniers paramètres permettent d'utiliser PHP en mode PATH_INFO (à condition de
bien configurer Nginx). Le tout dernier paramètre est le plus important, c'est celui qui
va dire à PHP quel script exécuter.
Maintenant, testons ceci. Créez un fichier /var/www/nginx-default/test.php dans lequel
vous pouvez par exemple mettre un appel à phpinfo() ou ce que vous voulez.
Ensuite, modifiez le fichier /etc/nginx/site-enabled/default (il peut se trouver ailleurs si vous
n'êtes pas sur Ubuntu/Debian). Vous pouvez aussi créer un nouveau fichier, vous
faites comme vous voulez.
server { listen 80; server_name localhost; root /var/www/nginx-default; index index.php
index.html; access_log /var/log/nginx/localhost.access.log; location ~ ^(.+.php)(/.*)?$ {
fastcgi_pass localhost:9000; include /etc/nginx/fastcgi_params; } }
Relancez le serveur avec /etc/init.d/nginx restart et rendez vous sur votre nouveau site pour
pointer sur le fichier test.php. Votre script doit s'exécuter.
Ça ne marche pas ? Vous obtenez le très informatif "No input file
specified" ? Quelque chose est mal configuré. Ça peut être un
problème de permission. Commencez par essayer d'enlever la partie se chargeant
d'interpréter PHP et de charger votre script. Vous pouvez également utiliser strace
pour repérer quelle valeur de SCRIPT_FILENAME est passée à PHP.
Petit bonus : installation de Dotclear
Dotclear, avec la configuration que nous venons de voir, s'installe très bien. Vous
pourrez même l'utiliser en PATH_INFO avec une URL du genre /index.php/...
Peut-on faire mieux ? Yes we can.
Avec Apache, vous aviez la possibilité d'utiliser Mod Rewrite pour lui dire quelque chose
comme : "Si ce n'est pas un fichier ou un répertoire transforme l'URL vers tel script".
Nginx propose des options de rewrite du même type avec une limite de taille ; on ne peut
pas imbriquer les tests. On peut donc tester si l'URL demandée pointe vers un fichier, ou
vers un répertoire mais pas les deux. C'est gênant. On peut s'en sortir en
écrivant une configuration très complexe et difficile à maintenir. Sinon on
peut se rappeler que Nginx n'est pas Apache et qu'il existe peut-être un autre moyen.
Nginx fournit une directive appelée try_files qui va faire exactement ce
que nous ferions avec Apache rewrite en testant si le fichier et le répertoire n'existe
pas.
Donc, pour votre Dotclear à la racine pointant vers /dotclear/index.php, voici la recette
:
La même chose est possible pour Wordpress, Drupal et consort.
Quelques tests et conclusion
Ma configuration est une machine virtuelle VMWare avec 256 Mo de RAM utilisant un seul core de
CPU sur un MacBook Pro. C'est sans doute un peu plus que ce dont dispose une part
d'hébergement mais ça donne une idée.
C'est tout à fait honorable pour du PHP avec aussi peu de ressources. L'autre aspect
intéressant est que même avec 50 visiteurs au même moment, vos fichiers
statiques sont servis en moins d'une demie-seconde. Et contrairement à Apache,
l'utilisation mémoire n'augmente pas avec le nombre de requêtes simultanées.
La conclusion est que, oui, avec 256 Mo de RAM, vous pouvez disposer d'un serveur web tout
à fait performant et vous disposez même d'une marge de manoeuvre permettant
d'installer un serveur SMTP et IMAP.
N'étant pas non plus un expert sur le sujet, n'hésitez pas à signaler les
erreurs. Et si vous avez des astuces concernant PostgreSQL avec une telle configuration,
ça m'intéresse.
At the MIX10 conference this past week, MAKE had a booth
embedded inside the Coding4Fun exhibit. We showed off MAKE magazine, some of our Make: Books, and a few kits. Our Coding4Fun neighbors had a
lot of great projects on display, including their Coding4Fun Cannon, which was a robotic t-shirt
launching platform with two barrels. What's more, it was controlled by a Windows Phone 7 app, and
they completed it in two weeks. Here's how Clint Rutkas of Coding4Fun described it:
Mid-February, we were asked to build a t-shirt shooting robot for the Mix conference on March
15th, 2010. This required us to pitch our vision and then research, build, test, and ship our
project--all in about 3 weeks. After Scott Guthrie gave us approval based on our SketchFlow demo,
we had to divide and conquer the application with only 2 weeks left to build the physical robot,
the server software, and the phone software. And on top of all that, since we were consuming an
unfinished product, everything had to have backup plans.
Publication Date: 2010 Mar 17 PMID: 20236520Authors: Veeramalai, M. - Gilbert, D. - Valiente,
G.Journal: BMC BioinformaticsABSTRACT: BACKGROUND: Although methods based on highly abstract
descriptions of protein structures, such as VAST and TOPS, can perform very fast protein structure
comparison, the results can lack a high degree of biological significance. Previously we have
discussed the basic mechanisms of our novel method for structure comparison based on our TOPS+
model (Topological descriptions of Protein Structures Enhanced with Ligand Information). In this
paper we show how these results can be significantly improved using parameter optimization, and we
call the resulting optimised TOPS+ method as advanced TOPS+ comparison method i.e. advTOPS+.
RESULTS: We have developed a TOPS+ string model as an improvement to the TOPS [1-3] graph model by
considering loops as secondary structure elements (SSEs) in addition to helices and strands,
representing ligands as first class objects, and describing interactions between SSEs, and SSEs and
ligands, by incoming and outgoing arcs, annotating SSEs with the interaction direction and type.
Benchmarking results of an all-against-all pairwise comparison using a large dataset of 2,620
non-redundant structures from the PDB40 dataset [4] demonstrate the biological significance, in
terms of SCOP classification at the superfamily level, of our TOPS+ comparison method. CONCLUSIONS:
Our advanced TOPS+ comparison shows better performance on the PDB40 dataset [4] compared to our
basic TOPS+ method, giving 90 percent accuracy for SCOP alpha+beta; a 6 percent increase in
accuracy compared to the TOPS and basic TOPS+ methods. It also outperforms the TOPS, basic TOPS+
and SSAP comparison methods on the Chew-Kedem dataset [5], achieving 98 percent accuracy. Software
Availability: The TOPS+ comparison server is available at
http://balabio.dcs.gla.ac.uk/mallika/WebTOPS/.post to:
CiteULike
A website that sorts everyday the most relevant information to you.
Vote for the news and Matoumba will learn your tastes and the information that you like the most.
It is all FREE!
Find here the history of the stories you found interesting.
Show this to people who share the same interests as you,
and if they use Matoumba, their own votes will fine recommandations to you.