Elsewhere

Tim Millwood: Selling the Drupal community to those here for the code

Planet Drupal - Mon, 11/07/2016 - 14:03
Throughout the software development world there are many “evangelist” roles who sell the code to the...
Categories: Elsewhere

Dirk Eddelbuettel: Rcpp now used by over 700 CRAN packages

Planet Debian - Mon, 11/07/2016 - 13:41

Earlier this morning, Rcpp reached another milestone: 701 packages on CRAN now depend on it (as measured by Depends, Imports and LinkingTo declarations). The graph is on the left depicts the growth of Rcpp usage over time.

Rcpp cleared 300 packages in November 2014. It passed 400 packages in June of last year (when I only tweeted about it), 500 packages in late October and 600 packages exactly four months ago in March. The chart extends to the very beginning via manually compiled data from CRANberries and checked with crandb. Then next part uses manually saved entries, and the final and largest part of the data set was generated semi-automatically via a short script appending updates to a small file-based backend. A list of packages using Rcpp is kept on this page.

Also displayed in the graph is the relative proportion of CRAN packages using Rcpp. The four per-cent hurdle was cleared just before useR! 2014 where I showed a similar graph (as two distinct graphs) in my invited talk. We passed five percent in December of 2014, six percent last July, seven percent just before Christmas and now criss-crosses 8 eight percent, or a little less than one in twelve R packages.

700 user packages is a really large and humbling number. This places quite some responsibility on us in the Rcpp team as we continue to try our best try to keep Rcpp as performant and reliable as it has been.

So with that a very big Thank You! to all users and contributors of Rcpp for help, suggestions, bug reports, documentation or, of course, code.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Categories: Elsewhere

OpenLucius: Update OpenLucius | June 2016

Planet Drupal - Mon, 11/07/2016 - 10:28

We just updated OpenLucius, these are the most important changes:

Categories: Elsewhere

PreviousNext: Refactoring Drupal batch API callbacks to increase testability

Planet Drupal - Mon, 11/07/2016 - 08:44

Drupal's Batch API is great, it allows you to easily perform long running processes with feedback to the user.

But during Drupal 8's development processes it was one of the remaining systems that didn't get the full object oriented, service-based architecture.

Much of the batch API is largely unchanged from Drupal 7.

But that doesn't mean you can't write unit-testable callbacks.

Let's get started.

Categories: Elsewhere

Simon Désaulniers: [GSOC] Week 5&6 Report

Planet Debian - Sun, 10/07/2016 - 20:06

During week 5 and 6, I have been to the debian conference 2016. It was really interesting meeting with a lot of people all so involved in Debian.

Key signing party

Each year, this is a really important tradition: people gather together and exchange GPG public key fingerprint and sign each other’s keys. This contributes greatly to the growth of the web of trust.

I did exchange public key fingerprint with others. It was the first opportunity become more connected in the PGP web of trust. I think this is something that needs to make its way to the less technical people so that everyone can benefit from the network privacy features. There is support for some mail clients like Thunderbird, but I think there is still work to do there and mostly there is work to do about the opinion or point of view people have about encryption ; people don’t care enough and they don’t really know what encryption can do for them (digital signature, trust and privacy).

Ring now part of Debian

During the first week at debcamp, Alexandre Viau, an employee at Savoir-Faire Linux and a also a Debian developer (DD for short), has packaged Ring for Debian. Users can now install Ring like so:

$ sudo apt-get install ring

This is an important moment as more people are now going to easily try Ring and potentially contribute to it.

Presentating Ring

Alexandre Viau and I have been thinking about presenting Ring at debconf 2016. We finally did it.

  Your browser does not support the video tag.

Categories: Elsewhere

Ritesh Raj Sarraf: Leprosy in India

Planet Debian - Sun, 10/07/2016 - 20:06

During my recent travel, I had quite a long layover at the Doha International Airport in Qatar. While killing time, I watched an interesting programme on the Al Jazeera network.

The program aired on Al Jazeera is Lifelines. This special episode I watched, covered about "Leprosy in India". After having watched the entire programme, I felt the urge to blog about it.

First of all, it was quite depressing to me, to know through the programme, that the Govt. of India had officially marked "Leprosy" eradicated from India in 2005. As per Wikipedia, "Globally in 2012, the number of chronic cases of leprosy was 189,000, down from some 5.2 million in the 1980s. The number of new cases was 230,000. Most new cases occur in 16 countries, with India accounting for more than half." 

Of the data presented on Lifelines, they just covered a couple of districts from 2 States (of the 28+ States) of India. So, with many states remaining, and unserveyed, and uncounted, we are far away from making such statements.

Given that the Govt., on paper, has marked Leprosy eradicated; so does WHO. Which means that there is no more funding to help people suffering from the disease. And with no Govt. (or International) funding, it is a rather disappointing situation.

I come from a small town on the Indo-Nepal intl. border, named Raxaul. And here, I grew up seeing many people who suffered from Leprosy. As a child, I never much understood the disease, because as is mentioned in the programme, I was told it was a communicable disease. Those suffering, were (and are) tagged as Untouchables (Hindi:अछूत). Of my small town, there was and still is a sub-town, named Sunderpur. This town houses patients suffering from Leprosy, from around multiple districts closeby. I've never been there, but have been told that it is run by an NGO, and helps patients fight the disease.

Lifelines also reported that fresh surveys done by the Lepra society, just a 3 day campaign, resulted in 3808 new cases of people suffering from Leprosy. That is a big number, given accessibility to small towns only happens once a week on market day. And in 3 days the team hardly covered a couple of district towns.

My plea to the Media Houses of India. Please spend some time to look beyond the phony stuff that you mostly present. There are real issues that could be brought to a wider audience. As for the government, it is just depressing to know how rogue some/most of your statements are.

Categories: Keywords: Like: 
Categories: Elsewhere

Ritesh Raj Sarraf: Leprosy in India

Planet Debian - Sun, 10/07/2016 - 20:06

During my recent travel, I had quite a long layover at the Doha International Airport in Qatar. While killing time, I watched an interesting programme on the Al Jazeera network.

The program aired on Al Jazeera is Lifelines. This special episode I watched, covered about "Leprosy in India". After having watched the entire programme, I felt the urge to blog about it.

First of all, it was quite depressing to me, to know through the programme, that the Govt. of India had officially marked "Leprosy" eradicated from India in 2005. As per Wikipedia, "Globally in 2012, the number of chronic cases of leprosy was 189,000, down from some 5.2 million in the 1980s. The number of new cases was 230,000. Most new cases occur in 16 countries, with India accounting for more than half." 

Of the data presented on Lifelines, they just covered a couple of districts from 2 States (of the 28+ States) of India. So, with many states remaining, and unserveyed, and uncounted, we are far away from making such statements.

Given that the Govt., on paper, has marked Leprosy eradicated; so does WHO. Which means that there is no more funding to help people suffering from the disease. And with no Govt. (or International) funding, it is a rather disappointing situation.

I come from a small town on the Indo-Nepal intl. border, named Raxaul. And here, I grew up seeing many people who suffered from Leprosy. As a child, I never much understood the disease, because as is mentioned in the programme, I was told it was a communicable disease. Those suffering, were (and are) tagged as Untouchables (Hindi:अछूत). Of my small town, there was and still is a sub-town, named Sunderpur. This town houses patients suffering from Leprosy, from around multiple districts closeby. I've never been there, but have been told that it is run by an NGO, and helps patients fight the disease.

Lifelines also reported that fresh surveys done by the Lepra society, just a 3 day campaign, resulted in 3808 new cases of people suffering from Leprosy. That is a big number, given accessibility to small towns only happens once a week on market day. And in 3 days the team hardly covered a couple of district towns.

My plea to the Media Houses of India. Please spend some time to look beyond the phony stuff that you mostly present. There are real issues that could be brought to a wider audience. As for the government, it is just depressing to know how rogue some/most of your statements are.

Categories: Keywords: Like: 
Categories: Elsewhere

Joey Hess: twenty years of free software -- part 12 propellor

Planet Debian - Sun, 10/07/2016 - 19:29

Propellor is my second big Haskell program. I recently described the motivation for it like this, in a proposal for a Linux.Conf.Au talk:

The configuration of Linux hosts has become increasingly declarative, managed by tools like puppet and ansible, or by the composition of containers. But if a server is a collection of declarative properties, how do you make sure that changes to that configuration make sense? You can test them, but eventually it's 3 AM and you have an emergency fix that needs to go live immediately.

Data types to the rescue! While data types are usually used to prevent eg, combining an Int and a Bool, they can be used at a much more abstract level, for example to prevent combining a property that needs a Debian system with a property that needs a Red Hat system.

Propellor leverages Haskell's type system to prove the consistency of the properties it will apply to a host.

The real origin story though, is that I wanted to finally start using configuration management, but the tools for it all seemed very complicated and built on shakey foundations (like piles of yaml), and it seemed it would be easier to write my own than deal with that. Meanwhile, I had Haskell burning a hole in my pocket, ready to be used in a second large project after git-annex.

Propellor has averaged around 2.5 contributions per month from users since it got started, but increasing numbers recently. That's despite having many fewer users than git-annex, which remember gets perhaps 1 patch per month.

Of course, I've "cheated" by making sure that propellor's users know Haskell, or are willing to learn some. And, propellor is very compositional; adding a new property to it is not likely to be complicated by any of the existing code. So it's easy to extend, if you're able to use it.

At this point propellor has a small community of regular contributors, and I spend some pleasant weekend afternoons reviewing and merging their work.

Much of my best work on propellor has involved keeping the behavior of the program the same while making its types better, to prevent mistakes. Propellor's core data types have evolved much more than in any program I worked on before. That's exciting!

Next: ?twenty years of free software -- part 13 past and future

Categories: Elsewhere

Simon Désaulniers: [GSOC] Week 3&4 Report

Planet Debian - Sun, 10/07/2016 - 19:12

I have finally made a version of the queries code that can viably be integrated into the master branch of OpenDHT. I am awaiting my mentor’s approval and/or comments.

What’s done

Queries. The library will provide the additional following functions in its API:

void get(InfoHash id, GetCallbackSimple cb, DoneCallback donecb={}, Value::Filter f = Value::AllFilter(), Where w = {}) { void query(const InfoHash& hash, QueryCallback cb, DoneCallback done_cb = {}, Query q = {});

The structure Where in the first signature will allow the user to narrow the set of values received through the network those that verify the “where” statement. The Where actually encapsulates a statement of the following SQL-ish form: SELECT * WHERE <some_field>=<some_field_value>.

Also, the DhtRunner::query function will let the user do something similar to what’s explained in the last paragraph, but where the returned data is encapsulated in FieldValueIndex structure instead of Value. This structure has a std::map<Value::Field, FieldValue>. You can think of the FieldValueIndex as a subset of fields of a given Value. The Query structure then allows you to create both Select and Where “statements”.

What’s next
  • Value pagination. I have begun working on this and I now have a more clear idea of the first step to accomplish. I have to redesign the ‘get’ operation callbacks calling process by making a callback execution per SearchNode instead of per Search (list of SearchNode). This will let us properly write the value pagination code with node concurrency in mind. This will therefor make sure we don’t request a value from a node if it doesn’t stores it;
  • Optimizing announce operations;
Categories: Elsewhere

Bits from Debian: New Debian Developers and Maintainers (May and June 2016)

Planet Debian - Sun, 10/07/2016 - 17:30

The following contributors got their Debian Developer accounts in the last two months:

  • Josué Ortega (josue)
  • Mathias Behrle (mbehrle)
  • Sascha Steinbiss (satta)
  • Lucas Kanashiro (kanashiro)
  • Vasudev Sathish Kamath (vasudev)
  • Dima Kogan (dkogan)
  • Rafael Laboissière (rafael)
  • David Kalnischkies (donkult)
  • Marcin Kulisz (kula)
  • David Steele (steele
  • Herbert Parentes Fortes Neto (hpfn)
  • Ondřej Nový (onovy)
  • Donald Norwood (donald)
  • Neutron Soutmun (neutrons)
  • Steve Kemp (skx)

The following contributors were added as Debian Maintainers in the last two months:

  • Sean Whitton
  • Tiago Ilieve
  • Jean Baptiste Favre
  • Adrian Vondendriesch
  • Alkis Georgopoulos
  • Michael Hudson-Doyle
  • Roger Shimizu
  • SZ Lin
  • Leo Singer
  • Peter Colberg

Congratulations!

Categories: Elsewhere

Paul Tagliamonte: SNIff

Planet Debian - Sun, 10/07/2016 - 15:34

A while back, I found myself in need of two webservers that would terminate TLS (with different rules). I wanted to run some custom code I’d written (which uses TLS peer authentication), and also nginx on port 443.

The best way I figured out how to do this was to write a tool to sit on port 443, and parse TLS Client Hello packets, and dispatch to the correct backend depending on the SNI name.

SNI, or Server Name Indication allows the client to announce (yes over cleartext!) what server it’s looking for, similar to the HTTP Host header. Sometimes, like in the case above, the Host header won’t work, since you’ve already done a TLS handshake by the time you figure out who they’re looking for.

I also spun the Client Hello parser out into its own importable package, just in case someone else finds themselves in this same boat.

The code’s up on github.com/paultag/sniff!

Categories: Elsewhere

Sune Vuorela: Let Qt models meet std::vector<std::tuple<…>>

Planet Debian - Sun, 10/07/2016 - 15:27

The problem

So. I was stuck with a container of tuples that I wanted to see in a Qt view (QTableView, QtQuick ListView or similar). So how to do that?

Another problem: I haven’t been doing fun things with templates recently.

A solution?

After a bit of hacking, it seems like it can just be done like

typedef std::tuple<std::string, QString> Element; typedef std::vector List; List list = { std::make_tuple("first", "second"), std::make_tuple("third", "fourth"); std::unique_ptr<TableModel> magic = createTableModel(list); QTableView view; view.setModel(magic->model());

and … tada:

Of course, we are also QtQuick friendly

std::unique_ptr<ListModel>List>> magic = createListModel(list); // expose magic->model() to your quickview

and a delegate containing the following

Text { text: role0 } Text { text: role1 }

 

can give:

But enough about creation.

Whattabout manipulation?

Luckily we got you covered. Insert two extra rows at position 1?

auto lines = { std::make_tuple("extra", "extra"), std::make_tuple("extra2","extra2") }; magic->insertRows(1,lines.begin(), lines.end());

Append a row?

magic->appendRow(std::make_tuple("",""));

Remove 2 rows at position 3?

magic->removeRow(3,2);

Replace the underlying list?

List newList; // fill list magic->reset(newList);

Read-only looping over the elements?

for(const Element& e : magic->list()) { ... }

The Qt model of course also accepts setData calls.

Future?

If anyone is interested I will polish the code a bit and publish it. If that’s the case, how should I name this thing?

And I did get around doing fun things with templates again.

Categories: Elsewhere

Michal &#268;iha&#345;: Weblate 2.7

Planet Debian - Sun, 10/07/2016 - 11:00

Slightly later than on monthly schedule but Weblate 2.7 is out today. This release brings improvements to the API and is first to officially support wlc a command line client for Weblate.

Full list of changes for 2.7:

  • Removed Google web translate machine translation.
  • Improved commit message when adding translation.
  • Fixed Google Translate API for Hebrew language.
  • Compatibility with Mercurial 3.8.
  • Added import_json management command.
  • Correct ordering of listed traslations.
  • Show full suggestion text, not only a diff.
  • Extend API (detailed repository status, statistics, ...).
  • Testsuite no longer requires network access to test repositories.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Weblate is also being used https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Aptoide, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English SUSE Weblate | 0 comments

Categories: Elsewhere

Craig Small: procps 3.3.12

Planet Debian - Sun, 10/07/2016 - 07:58

The procps developers are happy to announce that version 3.3.12 of procps was released today. This version has a mixture of bug fixes and enhancements. This unfortunately means another API bump but we are hoping this will be fixed with the new library API coming soon.

procps is developed on gitlab and the new version of procps can be found at https://gitlab.com/procps-ng/procps/tree/newlib

procps 3.3.12 can be found at https://gitlab.com/procps-ng/procps/tags/v3.3.12

From the NEWS file, procps 3.1.12 has the following:

  • build: formerly optional –enable-oomem unconditional
  • free: man document rewritten for shared Debian #755233
  • free: interpret intervals in non-locale way Debian #692113
  • kill: report error if cannot kill process Debian #733172
  • library: refine calculation of ‘cached’ memory
  • library: find tty quicker Debian #770215
  • library: eliminate threads display inconsistencies Redhat #1284091
  • pidof: check cmd if space found in argv0
  • pmap: fixed detail parsing on long mapping lines
  • pmap: fix occasional incorrect memory usage values Redhat #1262864
  • ps: sort by cgroup Debian #692279
  • ps: display control group name with -o cgname
  • ps: fallback to attr/current for context Debian #786956
  • ps: enabled broken ‘thcount’ option Redhat #1174313
  • tests: conditionally add prctl Debian #816237
  • top: displays the 3 new linux-4.5 RES memory fields
  • top: man page memory fields corrected + new narrative
  • top: added display of CGNAME (control group name)
  • top: is now more responsive to cpus brought online
  • top: namespace cols use suppressible zero

We are hoping this will be the last one to use the old API and the new format API ( imaginatively called newlib ) will be used in subsequent releases.

Feedback for this and any other version of procps can be sent to either the issue tracker or the development email list.

Categories: Elsewhere

Norbert Preining: OpenPHT 1.6.2 for Debian/sid

Planet Debian - Sun, 10/07/2016 - 06:17

I have updated the openpht repository with builds of OpenPHT 1.6.2 for Debian/sid for both amd64 and i386 architecture. For those who have forgotten it, OpenPHT is the open source fork of Plex Home Theater that is used on RasPlex, see my last post concerning OpenPHT for details.

The repository also contains packages (source and amd64/i386) for shairplay which is necessary for building and running OpenPHT.

sid and testing

For sid use the following lines:

deb http://www.preining.info/debian/ openpht-sid main deb-src http://www.preining.info/debian/ openpht-sid main

You can also grab the binary for amd64 directly here for amd64 and i386, you can get the source package with

dget http://www.preining.info/debian/pool/main/o/openpht/openpht_1.6.2.20160707-1.dsc

Note that if you only get the binary deps, you also need libshairplay0 from amd64 or i386.

The release file and changes file are signed with my official Debian key 0x860CDC13.

jessie

Builds for Debian stable release jessie are available directly from the github project page of OpenPHT

Now be ready for enjoying the next movie!

Categories: Elsewhere

Wuinfo: Joy Of Collaboration

Planet Drupal - Sun, 10/07/2016 - 02:26

We make our life easier by making our colleague's lives easier. If our manager is in a stressful state, we'd better find the way to do something. It is such a fulfill feeling when we can do something together and contribute as a member of a productive team.

I had been in a financial system project for a company in NYC. We needed to migrate a huge amount of content from old system to a new one (Tech: Drupal 5 to Drupal 7). The business is making money by selling data. So, data accuracy was a big thing. Due to the complexity of the data, couple months into the project, we had not got the content migrated. Some technical problems prevented us from going forward. Everyone in the team was under pressure and working very hard. Company executives were starting to losing patience and doubt our ability to get the job done. Our boss was under a lot of stress. In a weekly meeting a few weeks after I joined the project, our manager told us that he was not sure he would still be working for the company the next day. He was afraid he might get fired by his boss. It was like a stone in my stomach. What would happen to us if he lost the job? The whole team was quickly motivated. We all liked him and did not want it to become reality. We all know it was the time all out for a greater good.

For the interest of the group, we did not care about a small personal loss. When migrating location nodes, we needed Google map API to translate hundreds of thousands postal address. It is not free. To save time from asking permission to buy the service, one of our colleagues just went ahead and created an account with his personal credit card. It cost him some money but saved some time for the whole team. We all worked late, collaborated closely and more efficiently. We did not mind to sacrifice for the interest of the project.

My job was to assistant the other backend developer to migrate the content. It was such a compelling feeling to be a part of it and wanted the success of the project. It occupied my mind. When eating, walking, taking a shower, sleeping and even dreaming I had been thinking the ways to solve some technical problems; contemplating the best possible solutions. Many of us include myself were a little bit sick. But, physical health with good rest and diet is the key to a clear and sharp mind. Even though we had a lot of stress, I believe that was one of the key elements to the success of the project. I had learned some time management skill before. Not wasting a minute, I allocated enough time to eat and sleep, and that help me to keep my mind fresh and calm all the time. Two weeks after the meeting, we successfully overcame all the major technical difficulty and got the content migrated.

Everyone seemed to be relaxed right away. It was a pleasure to the conversation during the following meeting. Like fighting a battle should by should against a ferocious enemy and win it, everybody in the team felt closer and more connected to each other. We helped each other and collaborated closely and made our life easier. It is a real joy from collaboration.

Categories: Elsewhere

Clint Adams: “Progress”

Planet Debian - Sun, 10/07/2016 - 00:43

When you replace mutt-kz with mutt 1.6.1-2, you may notice a horribly ugly thing appear. Do not panic; just add unset sidebar_visible to your ~/.mutt/muttrc .

Categories: Elsewhere

Matthew Garrett: "I recieved a free or discounted product in return for an honest review"

Planet Debian - Sat, 09/07/2016 - 21:09
My experiences with Amazon reviewing have been somewhat unusual. A review of a smart switch I wrote received enough attention that the vendor pulled the product from Amazon. At the time of writing, I'm ranked as around the 2750th best reviewer on Amazon despite having a total of 18 reviews. But the world of Amazon reviews is even stranger than that, and the past couple of weeks have given me some insight into it.

Amazon's success is fairly phenomenal. It's estimated that there's over 50 million people in the US paying $100 a year to get free shipping on Amazon purchases, and combined with Amazon's surprisingly customer friendly service there's a lot of people with a very strong preference for choosing Amazon rather than any other retailer. If you're not on Amazon, you're hurting your sales.

And if you're an established brand, this works pretty well. Some people will search for your product directly and buy it, leaving reviews. Well reviewed products appear higher up in search results, so people searching for an item type rather than a brand will still see your product appear early in the search results, in turn driving sales. Some proportion of those customers will leave reviews, which helps keep your product high up in the results. As long as your products aren't utterly dreadful, you'll probably maintain that position.

But if you're a brand nobody's ever heard of, things are more difficult. People are unlikely to search for your product directly, so you're relying on turning up in the results for more generic terms. But if you're selling a more generic kind of item (say, a Bluetooth smart bulb) then there's probably a number of other brands nobody's ever heard of selling almost identical objects. If there's no reason for anybody to choose your product then you're probably not going to get any reviews and you're not going to move up the search rankings. Even if your product is better than the competition, a small number of sales means a tiny number of reviews. By the time that number's large enough to matter, you're probably onto a new product cycle.

In summary: if nobody's ever heard of you, you need reviews but you're probably not getting any.

The old way of doing this was to send review samples to journalists, but nobody's going to run a comprehensive review of 3000 different USB cables and even if they did almost nobody would read it before making a decision on Amazon. You need Amazon reviews, but you're not getting any. The obvious solution is to send review samples to people who will leave Amazon reviews. This is where things start getting more dubious.

Amazon run a program called Vine which is intended to solve this problem. Send samples to Amazon and they'll distribute them to a subset of trusted reviewers. These reviewers write a review as normal, and Amazon tag the review with a "Vine Voice" badge which indicates to readers that the reviewer received the product for free. But participation in Vine is apparently expensive, and so there's a proliferation of sites like Snagshout or AMZ Review Trader that use a different model. There's no requirement that you be an existing trusted reviewer and the product probably isn't free. You sign up, choose a product, receive a discount code and buy it from Amazon. You then have a couple of weeks to leave a review, and if you fail to do so you'll lose access to the service. This is completely acceptable under Amazon's rules, which state "If you receive a free or discounted product in exchange for your review, you must clearly and conspicuously disclose that fact". So far, so reasonable.

In reality it's worse than that, with several opportunities to game the system. AMZ Review Trader makes it clear to sellers that they can choose reviewers based on past reviews, giving customers an incentive to leave good reviews in order to keep receiving discounted products. Some customers take full advantage of this, leaving a giant number of 5 star reviews for products they clearly haven't tested and then (presumably) reselling them. What's surprising is that this kind of cynicism works both ways. Some sellers provide two listings for the same product, the second being significantly more expensive than the first. They then offer an attractive discount for the more expensive listing in return for a review, taking it down to approximately the same price as the original item. Once the reviews are in, they can remove the first listing and drop the price of the second to the original price point.

The end result is a bunch of reviews that are nominally honest but are tied to perverse incentives. In effect, the overall star rating tells you almost nothing - you still need to actually read the reviews to gain any insight into whether the customer actually used the product. And when you do write an honest review that the seller doesn't like, they may engage in heavy handed tactics in an attempt to make the review go away.

It's hard to avoid the conclusion that Amazon's review model is broken, but it's not obvious how to fix it. When search ranking is tied to reviews, companies have a strong incentive to do whatever it takes to obtain positive reviews. What we're left with for now is having to laboriously click through a number of products to see whether their rankings come from thoughtful and detailed reviews or are just a mass of 5 star one liners.

comments
Categories: Elsewhere

CiviCRM Blog: Mapping it in 5-10min - a CiviCON 2016 Lightening Talk

Planet Drupal - Sat, 09/07/2016 - 20:31

Someone asked me to post this here - so that he can give it a try!

I did a Lightening Talk at CiviCON 2016 showing how you can put your Contacts on a Leaflet Map. It only takes a few minutes to put your CiviCRM Contacts on a Leaflet Map if you're using Drupal. Leaftlet is an open-source JavaScript Library for interactive maps. In addition what's really cool is that you can color the PIN based on the value of a CiviCRM custom field!

I've posted the details in a QA format including some of my slides from my CiviCON Lightening Talk on CiviCRM's StackExchange site:

http://civicrm.stackexchange.com/questions/12862/how-to-put-your-civicrm...

Give it try!

CiviConCiviCRMDrupalTips
Categories: Elsewhere

Enrico Zini: Monthly link collections with staticsite

Planet Debian - Sat, 09/07/2016 - 19:23

A year ago, I wrote:

Instead of keeping substantial tabs open until I have read all of them, or losing them in the jungle of browser bookmarks, I have written a script that collects them into a file per month, and turns them into markdown files for my blog.

That script turned out to be quirky and overengineered, so much so that I stopped using it myself.

I've now rethought my approach, and downscaled it: instead of saving a copy of each page locally, I can blog a reference to https://archive.org or https://archive.is. I do not need to autogenerate a description from the site itself.

The result has been a nicely minimal set of changes to staticsite that resulted in a new version where adding a link to a monthly collection is as easy as typing ssite new -a links.

As long as I'll remember to rebuild the site 3 weeks from now, a new post should automagically appear in my blog.

Categories: Elsewhere

Pages

Subscribe to jfhovinne aggregator - Elsewhere