Google’s decision should not leave the SEO sphere untouched. In a lawsuit that opened in 2012 before the British High Court of Justice, the American multinational is accused by Foundem, a price comparison site, of anti-competitive practices: Google is said to have downgraded its products in the search results of its engine from 2006. The American firm must now choose between disclosing the secrets of its algorithm or withdrawing confidential documents provided in the context of this trial.
An independent SEO expert appointed, Google tries to discredit it
Foundem replied that these documents, which were supposed to provide a better understanding of how Google’s search algorithm works, were too technical for British judges. The latter thus granted Foundem the possibility of appointing an independent SEO expert, Philipp Kloeckner, who would be authorized to examine these confidential documents.
The expert would thus have access to what the British now call Google’s “crown jewels,” which the Mountain View firm is trying to avoid by all means.
The American search engine has even tried to discredit Philipp Kloeckner in the British court, arguing that the expert had worked for Trivago and Visual Meta, two companies that have already complained to the European Commission about anti-competitive practices against him, to replace him with its own two experts, to no avail.
The origins of the case: Google’s abuse of dominance
While it was only accessible to a handful of users, Foundem has always appeared on the first page in Google’s search results for shopping-related queries. As described in the New York Times, two days after it was opened to the general public, the British price comparator plummeted in Google’s index, tens, or even hundreds of pages away from its initial positioning.
Evidence of an abuse of dominant position on the part of the search engine for the benefit of its Google Shopping service, Foundem managed at the same time to maintain its positions in the SERPs of the other search engines. The company filed a complaint in 2012 with the British High Court of Justice and sought damages from Google for the losses suffered.
To prove its innocence in this case, Google provided a series of confidential documents through two engineers, Cody Kwok and Michael Pohl.
Google’s dilemma and the consequences of this case
In mid-March, the British High Court of Justice granted Google a “reasonable time” to make its choice: either it allows the expert Philipp Kloeckner to consult these documents, with the risk that the entire SEO community may know the secrets of its algorithm once the case is made public, or it withdraws its confidential documents, which will effectively make it guilty of abuse of a dominant position in its lawsuit against Foundem.
As a third alternative solution, Google could also propose to the comparator to reach an out-of-court settlement with millions of euros in damages. If this choice allows it to avoid having to reveal the core of its search algorithm, it implies that Google would admit its guilt in this case, which would open the way for other web players who are also victims of the search engine’s anti-competitive practices. In either case, Google will have to make a choice, which should have severe consequences within the SEO community.
In 2019, as every year, the web and mobile development sectors are evolving, particularly in terms of programming languages. Which are currently the most used and why? How to select the one that corresponds to our needs?
In this article, you will find the list of languages that are generally most used and learnt in the development sphere.
This one has been at the top of the list for several years now. In question? Used on the front and back end, Java allows the creation of websites and web applications and has a large number of functionalities to accelerate the development process.
An object-oriented programming language and its associated web development frameworks, like Django. Very easy to understand, this is the programming language for creative people and particularly suitable for developing websites with high traffic.
Derived from the C language (one of the oldest programming languages), C++ is relatively easy to learn the binary language. It has a minimal core of keywords but allows a large number of possible combinations to be obtained.
We can only mention this programming language, used by the majority of CMS and websites of all types. PHP can be very easily inserted into an HTML page before sending it to the browser. It is straightforward to use, and you will be able to get a solid foundation in PHP in just a few months.
SQL (Structured Query Language)
This language is used to exploit relational databases. But what exactly does that mean? That means that SQL allows the reliable storage of your website information. With SQL, you can create tables, extract, delete or modify data and define user access permissions. Its syntax follows precise rules.
Simple, intuitive, and flexible; this “object-oriented” programming language is increasingly popular with web developers. Its flexibility is defined in many respects, but in particular because of its syntax (addition of optional parentheses). Its framework is also particularly well provided, which has contributed to the rise in popularity of this language in recent years.
Choose the programming language adapted to your needs
Are you looking to develop websites or web applications? Mobile applications? What type? It all depends on your field of activity and the time you want to spend learning the Dev language.
As seen above, some technologies are more difficult to understand than others. If you have a timing criterion to respect, focus on Ruby or Python. But perhaps this does not correspond to the projects you want to carry out? It’s up to you to decide the difference. Why not ask experienced developers for advice?
MongoDB’s efforts to obtain approval from the Open Source Initiative for a more business-friendly license, SSPL, have failed. The company has therefore chosen to do without it, and this could well be a turning point in the history of open source.
What is happening right now is interesting. Never has open source been so ubiquitous in software, and yet it has never been as fluid as it seems now. Faced with cloud giants like Amazon Web Services, virtually capable of crushing them outright, companies managing open source projects, like MongoDB and Elasticsearch, have sought ways to defend themselves while encouraging companies to pay.
The problem of open source licensing
Judging by their financial results, the AWS threat was slightly overestimated. But it is understandable that MongoDB and others are looking for ways to protect their investments. Eliot Horowitz, technical director of MongoDB, recently said that his company had spent more than $300 million to develop its database, which is then made available free of charge to everyone, in open source. But the fact that AWS or another cloud service provider can grab this code without giving anything in return is a real problem.
Hence the use of the SSPL license, which essentially says: “If you make MongoDB available as a service, you must contribute to the code of that service.” It may go a little far, but it is understandable why MongoDB chose this system. It is also not difficult to understand why the publisher has just decided to give up the blessing of the Open Source Initiative on the SSPL.
MongoDB changes strategy
The outcry against the SSPL by some members of the open source community was loud and sustained. Despite MongoDB’s reasonable efforts to amend the SSPL to address the objections, the company finally decided to throw in the towel, as Eliot Horowitz explained: “We continue to believe that the SSPL is consistent with the open source definition and the four essential software freedoms. However, given its reception by the entire community, the consensus necessary to support OSI approval does not seem to exist at this time. Therefore, we now remove the SSPL from the consideration of the OSI Board of Directors.”
The CEO of MongoDB detailed what he intends to do to refine the license and work with other industry players to try to find a way to defend against the impending threat of the cloud. In the meantime, MongoDB will continue to offer its community edition under SSPL as if it were open source by allowing users to “examine, modify and distribute the software or redistribute modifications made to the software following the license.” It is not open source in itself, but it allows most users to have freedom similar to that provided by open source. And that’s when it gets interesting.
The past two years have been extremely wild in the cryptocurrency world. The number of initial coin offerings exploded, along with the number of cryptocurrencies. Today, there are over 2000 coins or tokens available, but most of them are weak in regards to vision and creativity.
If you take a look at ICOs that have been launched in the past two years, most of them are utilizing technology that’s already there and are just unworkable. This combined with the low success rate of startups in this day and age, most if not all of the new cryptocurrencies do not have a promising future.
However, before you start to panic, it’s imperative to keep in mind that some coins will thrive and survive. In this brief read, we have listed a few altcoins that seem to have the best chance of generating profit in 2019 and beyond.
Basic Attention Token (BAT)
This is a project that was founded by some of the most highly regarded individuals in the tech world. Simply put, the basic attention token is a unit of account between publishers, advertisers and users. It is synonymous with the Brave Browser, which repels malware and protects user privacy while browsing the web. According to the Basic Attention Token whitepaper, the browser blocks ads and trackers that are notorious for selling user information. Personal data privacy has become more of a concern in the past few months, and with such a solution, BAT is more likely to be a great long-term investment compared to other relatively new altcoins.
Binance Coin (BNB)
Binance quickly became the biggest crypto exchange in the market and for a good reason. It not only allows you to buy almost any coin, but it does so at a minimal fee compared to exchanges like Coinbase. The Binance user base is growing day by day, which means more people are purchasing cryptocurrencies, even though the market hasn’t had a dramatic change.
The binance exchange is so well-established and user-friendly that is has become the first port of call for new investors and newbies. Due to such reliance, the Binance or BNB token has become one of the most traded coins on the market, thus increasing its value, day after day.
BNB ideally has appealing affiliate programs which contribute highly to the companies growth. Moreover, the exchange does not have serious security issues, which has been an alarming aspect of numerous major cryptocurrency exchanges.
The goal of Stellar is to provide a fast, efficient as well as inexpensive service to people for cross-border payments. Unlike Ripple, XLM is geared to individuals and not big institutions. Companies such as Paypal dominate the online payment industry and charge about 4 to 5 percent per transaction, which can be hefty for large transactions. In contrast, XLM offers transaction speeds of 5 seconds and nominal fees. For example, Tempo remittances dApp operating on Stellar blockchain can be able to process over 600K transactions for a mere 0.01 USD. Also, XLM doesn’t utilize proof of work verification, meaning it does not have to deal with the energy consumption that’s currently hampering bitcoin. Lastly, Stellar has partnered with renowned companies like IBM, further showing that it is a substantial investment.
This is undoubtedly a controversial pick, but TRON recently purchased BitTorrent. Such an acquisition will mean big things this year if the company can develop decentralized and more secure means of torrenting. Other points to consider is that TRX is among the few ERC20 tokens that are on the MainNet. For these reasons, Tron is indeed a cryptocurrency with a promising future.
Find more on this page Facebook!
The CES 2019 in Las Vegas is an opportunity to showcase the latest technologies. But among the innovations of the 4,500 exhibitors, there are also some crazy creations, with perfectly useless objects, unless you are really addicted to technology.
Flying taxi, four-legged car, roll-up TV, capsule beer machine… Did you think you saw everything from CES Las Vegas 2019? However, some manufacturers have even more unusual ideas. Where are they getting all this stuff?
The karaoke cup holder machine
It’s well known; you only sing well when you’re drunk. That must have been what Sony thought when it designed its GTK-PG10 loudspeaker to play music but also to hide some soundtracks to sing songs. When it’s your turn, you can put your beer mug in one of the folding shutters. Surprisingly, nobody mentioned that the speaker is waterproof, which means it is better not to be too drunk anyway.
The bra that measures your chest
Usually, to know your bra size, you rely on a tape measure and previous purchases. But this old method is too unreliable, according to the manufacturer Soma, who has developed a connected bra equipped with sensors that measure the bust of the woman wearing it. Somainnofit links to an application that offers a whole range of Soma clothing in the right size. A selling point more than a real garment.
You have to feel lonely to want to talk to your toilet bowl. However, Kohler thinks the opposite with its “immersive” Numi 2.0 toilets. Equipped with voice control via Alexa and speakers, they allow you to listen to music, adjust the color of the light or the temperature of the seat. This small distraction is still charged $7,000 or $9,000 for the black version.
The ring that transforms color into sound
Here is the xylophone 2.0: Specdrums is a small ring that records the color of an object when it is touched and translated into sound. By using several rings, you can have fun creating music by tweaking peaches and bananas or sorting your multicolored patterned T-shirts. Good luck playing Mozart with this technique, unless you have a full-color chart on hand. Count 60 euros per unit and 90 euros per pair.
The camera that makes your baby a spy
The emotion of a father playing with his child for the first time or the joy of a mother watching her first steps, all these moments, the French startup Babeyes allows you to record them by transforming your baby into a cameraman. Her teddy bear-shaped camera clips onto the baby’s pajamas and films everything in her field of action. As if the millions of photos posted on the social networks of the parents “baba” of their little ones were not enough.
The current boom in artificial intelligence could not do without investing our homes: not content to be omnipresent in the heart of our smartphones; personal voice assistants are also trying to find a place in our homes today.
The small sector of the connected home is being shaken up by the arrival of these new types of devices, which are sometimes favoured by Google Assistant, sometimes by Alexa and sometimes by Siri or Microsoft. These assistants, we can also describe them as intelligent speakers boosted with artificial intelligence, intend to occupy a prominent place in homes.
Key points to consider
Since smart speakers are intended to be permanently or almost permanently accessible, it should be possible to consider placing them in any room of the house (living room, kitchen, bathroom, etc.) and even why not outside, since some have batteries. Some attention will, therefore, be paid to the robustness of the product, in particular by monitoring any IP certification (water or dust resistance).
If the speaker is designed for music listening, we of course subject it to the same versatility requirements as a “non-intelligent” speaker. It is, therefore, necessary to check whether it offers complete connectivity, as well as exhaustive and easy-to-use controls.
Like all loudspeakers, “intelligent” models have to offer quality sound reproduction. It is to ensure not only that they can provide a pleasant music listening experience, but also to reproduce the voice of the vocal assistant in a clear, natural and perfectly intelligible way.
It is a good thing that the user can understand the assistant, but it is apparently no less important that the assistant can recognize the user! Not all intelligent speakers are equal in this respect, succeeding in picking up voice commands from a greater or lesser distance, being more or less sensitive to surrounding noise and benefiting from a more or less effective understanding algorithm.
We test audio performance in an utterly classic way: our acoustic measurements mainly include frequency response, harmonic distortion, power, impulse response, etc. Speech recognition quality is measured by sending several voice commands to the speaker at a calibrated sound level, pronounced by a sample of people with different voice timbres.
We then check how far the control is perceived, with what background noise level, etc. Outside the lab, all these products are tested in a “connected” environment to observe the possible interactions with the various equipment in the house.
Here is our review of the German hosting company 1&1, now called IONOS, one of the cheapest on the market in Europe
Finding the right web hosting for your website is something that should not be done lightly.
It is essential to take the time to compare the different hosts with each other.
In particular, the highly mathematical equation of finding the perfect balance between high performance and attractive price must be solved. If you are looking for a test complet 1&1 IONOS, please read on !
So, in a few moments, after taking the time to read this article until the end, you will know whether or not it is the host that can meet all your requirements.
Presentation of 1&1 IONOS hosting
1&1 was founded in Germany in 1988, making it one of the oldest companies in the sector.
It is now considered one of the leading brands in its field, mainly because it is present in 10 countries such as France, of course, but also Spain, the United Kingdom, and the United States for example.
Its other strength is to be particularly aggressive concerning its rates.
This is why many website managers prefer the 1&1 web host to be sure to benefit from an exceptional quality/price ratio.
As we will tell you below, 1&1 develops many solutions, and continually improves them.
There is, therefore, a good chance that you will find all your happiness with this brand, which does everything possible to meet the ever-increasing needs of each of its customers as precisely as possible.
Hosting packs offered by 1&1 IONOS
If one thing is sure, it is that 1&1 develops a truly complete and comprehensive hosting offer.
By choosing this web host, it is therefore very likely that you will find what you are looking for since you will be able to choose between the following services.
MyWebsite hosting: If your needs are limited and you want to create a lightweight website or blog of a few pages, then MyWebsite hosting may be right for you. In addition to being able to host your site, you will be able to fully customize and manage it thanks to integrated software that will save you from having to dive into complicated and time-consuming programming. In other words, 1&1 MyWebsite hosting will be perfect for beginners.
Web hosting: From Starter Pack to Unlimited Pro Pack, 1&1 offers a hosting solution that can be adjusted to your needs. You can automatically switch from one pack to another depending on the performance of your website. Whether you have an e-commerce site under Prestashop or a blog under WordPress for example, this solution can be attractive to launch you at a lower cost.
Linux hosting: More specifically, shared Linux hosting will be useful if your website has been designed under this operating system. Be careful, however. Hosting, whether running on Linux or Windows, is independent of your computer’s operating system. It will, therefore, be possible to use 1&1 Linux hosting even if your PC is running under Windows. Regarding performance and offers, they are the same as for the previous web hosting.
WordPress hosting: If you are planning to create a site in WordPress, then 1&1 WordPress hosting is the right one for you. With packages identical to traditional hosting, you can install the latest version of the CMS and a selection of the best plugins in just a few clicks. After a few minutes, you can already start working on your site without having to be an expert in web development.
All these services can be chosen regardless of the 1&1 IONOS hosting selected, and one thing is certain, they will significantly improve your efficiency.
There are more options available if you are after VPS, cloud or dedicated hosting solutions but we stuck to shared plans here ! Find all their offers here.
The pricing of 1&1 IONOS website hosting
Rates offered by 1&1 are among the most attractive in the sector.
Indeed, with a web hosting accessible from 0.99€ per month, you will be able to launch your project and test its viability at a lower cost.
Of course, if your needs change, you will be able to upgrade your offer to a more powerful hosting, or even a dedicated server, the prices can reach 120€ per month for an ultra-powerful server.
The latest version of the Linux kernel removes nearly 100,000 lines of code, adds file encryption and Berkeley Packet Filter among numerous improvements.
While the most significant changes could leave developers who have been waiting for these changes for some time speechless, others could escape the mass of Linux users. So, not to be missed, here is a selection of new features brought to you by the Linux 4.18 kernel.
A vast cleaning of the code
The Linux 4.18 kernel has eliminated almost 100,000 lines of obsolete code.
That’s a lot! However, this doesn’t mean that some of your favorite features have disappeared. This meticulous cleaning removed all the useless code, and it seems that there were many of them.
As a result, the new kernel should occupy less memory, run slightly more efficiently and be less vulnerable to attacks that might be taking advantage of the neglected parts of the old code. The remaining code is also a little cleaner and easier to handle.
BPFILTER to reinforce network security
BPFILTER, a name derived from Berkeley Packet Filter, is another exciting feature of this core. Initially, BPFILTER was used to filter packets for other tools such as tcpdump. Its introduction in Linux 4.18 could eventually replace both iptables and nftables. BPFILTER also extends the capabilities of Linux in several areas, in particular, network security, load balancing, and performance monitoring, without affecting performance.
We can, therefore, say that BPFILTER represents a fundamental change for the network and security. The transition from the previous technology should be straightforward. BPFILTER has simple solutions for translating iptables rules into its rule format. It also provides flexibility to decide where to apply the filtering rules, perhaps on the network interface itself. It also offers solutions to modernize and revitalize the network stack.
Speck file system encryption
Since Linux version 4.18, FSCRYPT, which operates at the file system level rather than the block device level, supports the Speck128/Speck256 encryption algorithms.
Although Speck has raised some concerns because its development by the National Security Agency (NSA) and the U.S. agency may not have shared all of its design elements, it offers a new option for file system encryption. It may stay unused, but it appears to be the only encryption option available for low-end Android devices and therefore may play an important role.
The mechanism for controlling concomitance without blocking the user space of so-called “reboot sequences” is included in the new kernel. Calls to the RSEQ system allow faster operations in the user space, as demonstrated by some micro-benchmarks. It also provides significant improvements in the kernel programmer code. These changes should translate into a substantial increase in the overall performance of the system.
Another improvement in Linux 4.18 is support for bi-directional transfer in USB 3.2, which accelerates data transfers from USB devices to hosts and devices using C-type cables. The Linux 4.18 kernel also has a kernel scan interface for asynchronous I/O. It allows you to consult a set of file descriptors to determine which files can perform I/O without blocking them. This change also improves performance. The new kernel also includes a TCP copy-free receiving API and support for high-performance XDP AF sockets that promises to improve performance while saving CPU cycles and memory bandwidth.
In conclusion, the Linux 4.18 kernel shows many improvements regarding performance, security, and functionality that Linux system users should appreciate. You can also reassure them about the 2038 deadline!
The DevOps platform based on the Git software version control system, GitLabn has been upgraded to version 11.1.
The first visible change from GitLab version 11.1, the security dashboard now allows you to view the latest security status of the default branch for each project. It will enable security teams to see if there is a potential problem and take appropriate action.
The dashboard also allows you to remove false positives or generate specific problems to solve vulnerabilities. The security team can also adjust the criticality level of vulnerabilities. This dashboard is in the Project menu in the project’s lateral navigation space.
GitLab version 11.1 offers better security control options.
GitLab version 11.1 also includes Static Application Security Testing (SAST) tools for Node.js, which detect code vulnerabilities when sending changes to a repository.
SAST support is already available for C, C++, Go, Java and Python. Filtering by file name, path, and extension for advanced syntax search have also extended the code search capabilities.
Upgrade to version 11.1
Runner’s performance improves with version 11.1.
For example, the correction of the pagination of POST requests called webhooks, to ensure that the display of the page is not interrupted during the editing of these webhooks. Delivered with GitLab, the Runner tool – which is used to perform CI/CD integration and continuous delivery tasks – is also upgraded to version 11.1, providing better management of Docker idle times and the ability to sign packages in RPM and DEB formats.
The table of configurable problems is now accessible via the GitLab API, which allows for custom workflows.
Transferring projects between namespaces via an API is possible. Besides, the user interface of GitLab 11.1 also benefits from several improvements. First, the developers revised the merge request widget. Second, the contribution analysis page is more readable. The addition of a merge request panel in the Web IDE allows the merge request to be displayed side by side in the code and the IDE.
A drop-down menu has been added to switch from one group to another to the group link at the top of the navigation, making it easier to access. The pages summarizing the steps have been redesigned. It is a first step in the simplification work to facilitate team monitoring. A problem can be classified as “confidential” directly from the comment field. Finally, the design of the Kubernetes page now uses tabs for each option when adding a cluster.
GitLab version 11.1 is available as a demo for on-site or public cloud deployment.
If you no longer want Facebook tracking, Openbook may be right for you.
Openbook is the name of the next social network to compete with Facebook. And if you’re tired of the way Facebook uses (but doesn’t sell) your data to target advertising, you might be interested.
Indeed, as the Financial Times reports, which reveals this new project, the creators of this future platform want to do better than Facebook regarding data protection. First of all, the site will be open source, which means that it will be possible to analyze its code to study how it works. And unlike Facebook, OpenBook will not track its users, and will not earn money through advertising.
Other differences could distinguish OpenBook from its rival with 2 billion users. “It’s really about building a social network that respects the privacy of its users, that’s the main driver for me. But we realized that if we wanted to succeed, we needed to bring more to the table, we didn’t just want to build a Facebook clone,” said Joel Hernandez, the boss of the new initiative. According to the FT, he would have liked to create a less invasive alternative to Facebook long ago but would have decided to act now to take advantage of the Cambridge Analytica effect on public opinion regarding privacy. He would plan to bring more customizations and elements that will make OpenBook “more fun.”
The Openbook initiative is also supported by Philip Zimmermann, the inventor of the PGP encryption program.
A marketplace to replace advertising
To make money, OpenBook will adopt a different business model than Facebook. Indeed, instead of using user data to target advertising, it should launch a kind of marketplace on which it will be possible to sell (and through which Openbook can charge commissions).
But for now, the initiative will first have to go through the crowdfunding box. Indeed, instead of a classic fundraiser, its creators have decided to launch a participatory fundraising campaign on Kickstarter, which should start Tuesday. If all goes well, the first to access the Openbook beta should be the contributors to this campaign.
Secondly, Openbook could also take advantage of the data portability imposed by the DGMS to allow new users to transfer their personal information from Twitter or Facebook to the new platform.
If the idea of creating an alternative to Facebook with more privacy can only be laudable, it also remains to be seen whether the mass will adopt this new platform. Other sites have already tried to make their place in the social networking landscape. But most of these have failed. We could cite the example of 800 pound Gorilla, an open source and decentralized Twitter rival who made the buzz for a week, before falling into oblivion.
I’ve decided to jump on the bandwagon and spill my thoughts on “NoSQL” since it’s been such a hot topic lately (, , , ). Since I work on the Drizzle project some folks would probably think I take the SQL side of the “debate,” but actually I’m pretty objective about the topic and find value in projects on both sides. Let me explain.
Last November at OpenSQL Camp I assembled a panel to debate “SQL vs NoSQL.” We had folks representing a variety of projects, including Cassandra, CouchDB, Drizzle, MariaDB, MongoDB, MySQL, and PostgreSQL.
Even though I realized this was a poor name for such a panel, I went with it anyways because this “debate” was really starting to heat up. The conclusion I was hoping for is that the two are not at odds because the two categories of projects can peacefully co-exist in the same toolbox for data management. Beyond the panel name, even the term “NoSQL” is a bit misleading. I talked with Eric Evans (one of my new co-workers over on the Cassandra team) who reintroduced the term, and even he admits it is vague and doesn’t do the projects categorized by it any favors. What happens when Cassandra has a SQL interface stacked on top of it? Yeah.
One reason for all this confusion is that for some people, the term “database” equates to “relational database.” This makes the non-relational projects look foreign because they don’t fit the database model that became “traditional” due it’s popularity. Anyone who has ever read up on other database models would quickly realize relational is just one of many models, and many of the “NoSQL” projects fit quite nicely into one of these categories.
The real value these new projects are providing are in their implementation details, especially with dynamic scale-out (adding new nodes to live systems) and synchronization mechanisms (eventual consistency or tunable quorum). There are a lot of great ideas in these projects, and people on the “SQL” side should really take the time to study them – there are some tricks to learn.
Square Peg, Round Hole
One of the main criticisms of the “NoSQL” projects is that they are taking a step back, simply reinventing a component that already exists in a relational model. While this may have some truth, if you gloss over the high-level logical data representations, this is just wrong. Sure, it may look like a simple key-value store from the outside, but there is a lot more under the hood. For many of these projects it was a design decision to focus on the implementation details where it matters, and not bother with things like parsing SQL and optimizing joins.
I think there is still some value in supporting some form of a SQL interface because this gets you instant adoption by pretty much any developer out there. Love it or hate it, people know SQL. As for joins, scaling them with distributed relational nodes has been a research topic for years, and it’s a hard problem. People have worked around this by accepting new data models and consistency levels. It all depends on what your problem requires.
I fully embrace the “NoSQL” projects out there, there is something we can all learn from them even if we don’t put them into production. We should be thrilled we have more open source tools in our database toolbox, especially non-relational ones. We are no longer required to smash every dataset “peg” into the relational “hole.” Use the best tool for the job, this may still be a relational database. Explore your options, try to learn a few things, model your data in a number of ways, and find out what is really required. When it comes time to making a decision just remember: Dear everyone who is not Facebook: You are not Facebook.
Back in January when I was between jobs I had a free weekend to do some fun hacking. I decided to start a new open source project that had been brewing in the back of my head and since then have been poking at it on the weekends and an occasional late night. I decided to call it Scale Stack because it aims to provide a scalable network service stack. This may sound a bit generic and boring, but let me show a graph of a database proxy module I slapped together in the past couple days:
Database Proxy Graph
I setup MySQL 5.5.2-m2 and ran the sysbench read-only tests against it with 1-8192 threads. I then started up the database proxy module built on Scale Stack so sysbench would route through that, and you can see the concurrency improved quite a bit at higher thread counts. The database module doesn’t do much, it simply does connection concentration, mapping M to N connections, where N is a fixed parameter given at startup.
In this case I always mapped all incoming sysbench connections down to 128 connections between Scale Stack and MySQL. It also uses a fixed number of threads and is entirely non-blocking. As you can see the max throughput around 64 threads is a bit lower, but I’ve not done much to optimize this yet (there should be some easy improvements where I simply stuck in a mutex instead of doing a lockless queue). It’s only a simple proof-of-concept module to see how well this would work, but it’s a start to a potentially useful module built on the other Scale Stack components. One other thing to mention is that these tests were run on a single 16-core Intel machine. I’d really like to test this with multiple machines at some point.
So, what is Scale Stack?
Check out the website for a simple overview of what it is. The goal is to pick up where the operating system kernel leaves off with the network stack. It is written in C++ and is extremely modular with only the module loader, option parsing, and basic log in the kernel library. It uses Monty Taylor’s pandora-build autoconf files to provide a sane modular build system, along with some modifications I made so dependency tracking is done between modules. You can actually use it to write modules that would do anything, I’m just most interested in network service based modules.
The kernel/module loader is also just a library, so you can actually embed this into existing applications as well. Some of the modules I’ve written for it are a threaded event handling module based on libevent/pthreads and a TCP socket module. There is also an echo server and simple proxy module I created while testing the event and socket modules. The database proxy module builds on top of the event and socket module. The code is under the BSD license and is up on Launchpad, so feel free to check it out and contribute. If you need a base to build high-performance network services on, you should definitely take a look and talk with me.
What’s up next?
I have a long list of things I would like to do with this, but first up are still some basics. This includes other socket type modules like TLS/SSL, UDP, and Unix sockets. Then are some more protocol modules such as Drizzle, a real MySQL protocol module, and others like HTTP, Gearman, and memcached. It’s fairly trivial to write these since the socket modules handle all buffering and provide a simple API. As for the DatabaseProxy module, I’d like to rework how things are now so it’s not MySQL protocol specific, integrate other protocol modules, improve performance, add in multi-tenancy support for quality-of-service queuing based on account rules, and a laundry list of other features I won’t bore you with right now.
I also have plans for other services besides a database proxy, especially one that could combine a number of protocols into a generic URI server with pluggable handlers so you can do some interesting translations between modules (like Apache httpd but not http-centric). For example, think of the crazy things you can do with Twisted for Python, but now with a fast, threaded C++ kernel. I also still need to experiment with live reloading of modules, but I’m not sure if this will be worthwhile yet.
If any of this sounds interesting, get in touch, I’d love to have some help! I’ll have some blog posts later on how to get started writing modules, but for now just take a look at the existing modules. The EchoServer is a good place to start since it is pretty simple. Also, if you’ll be at the MySQL Conference and Expo next week, I’d be happy to talk more about it then.
Since I announced SlackDB a few weeks ago, I’ve had a number of questions and interesting conversations in response. I thought I would summarize the initial feedback and answer some questions to help clarify things. One of the biggest questions was “Isn’t this what Drizzle is doing?”, and the answer is no. They are both being designed for “the cloud” and speak the MySQL protocol, but they provide very different guarantees around consistency and high-availability. The simple answer is that SlackDB will provide true multi-master configurations through a deterministic and idempotent replication model (conflicts will be resolved via timestamps), where Drizzle still maintains transactions and ACID properties, which imply single master. Drizzle could add support for clustered configurations and distributed transactions (like the NDB storage engine), but writes would still happen on the majority (maintain quorum) since the concept of global state needs to be maintained.
This led Mark Callaghan to ask why not just modify Drizzle to support these behaviors? He has a good point since most of the properties I’m talking about exist at the storage engine level. There are still a number of changes that would need to happen in the kernel around catalog, database, and table creation to support the replication model. SlackDB also won’t need a number of constructs provided by the Drizzle kernel (various locks, transaction support) so query processing can be lighter-weight. So while it’s probably possible with enough patches and plugins to make this work in Drizzle, I believe it will be easier (both socially and technically) to do this from scratch. With either approach there is still a fair amount of code to be written, and I’ve decided to use Erlang since it allows programmers to express ideas concisely and more quickly with an acceptable trade-off in runtime efficiency. This would make it even more difficult to integrate with Drizzle.
A couple folks asked why I chose the BSD license instead of GPL or Apache. I didn’t want a copyleft license, so GPL was out, but after chatting some more I decided to switch SlackDB to the Apache 2.0 license for the patent protection clause. As much as I dislike patents and would prefer not to acknowledge them, I figured having the protection clauses in there would make it less likely that anyone using the software would have to deal with them once there are other contributors who may hold patents.
I presented the techniques I’m using behind SlackDB in a session at OpenSQL Camp Boston last weekend, and overall they were well received. There was a lot of great feedback and suggestions about other projects and libraries doing related things that may help speed things along. I was glad to see I wasn’t the only person thinking about these properties for relational databases, as Josh Berkus of PostgreSQL fame also led a session on ordering events and conflict resolution within relational data when you loosen up consistency.
I also attended Surge in Baltimore and listened to a talk by Justin Sheehy about “Embracing Concurrency At Scale.” You can see another recording of the same talk here. Justin explained the concepts and problems with systems trying to maintain any kind of globally consistent state quite well, and I agree with almost everything in his presentation. This recent blog post by Coda Hale also explains some of the other key principles around what you must give up in order to get the level of availability required by most systems these days. These help explain the reasons why I started SlackDB – I’m trying to combine these properties with a relational data model. Right now I’m still only able to put my limited spare time into it, but I’m hoping to find a way to put more time into the project. Hopefully you will agree we need a database like this and will help out too. 🙂
OpenStack currently consists of three main components: Nova (Compute), Swift (Object Storage), and Glance (Image Service). There are some other projects such as a dashboard and mobile apps as well. You can see the full list here. This is great start, but in order for OpenStack to compete long term other infrastructure and platform services will need to be brought in. I’d like to talk about the process I’m taking with a new message queue service.
Step 1 – Idea
The first step is to figure out what is missing. What new service would compliment the software already available? What hasn’t been solved yet? What are users asking for? A message queue seemed like an appropriate next step as most applications that need to scale out and be highly available will make use of a queue at some point (sometimes not in the most obvious form). It will also allow other cloud services to be built on top of it. In fact, the current OpenStack projects could even leverage a queue service for new features.
Step 2 – Initial requirements
Before you write up a proposal and send it out, it might be a good idea to gather some initial requirements and figure out what it may look like. Don’t worry about details as the community will help flush this out later. Some of the major requirements when thinking about OpenStack projects are horizontal scalability, multi-tenancy, modular API, REST API, zones and locality awareness, and no single points of failure (high availability). This is a pretty heavy set of requirements before even getting into service specifics, but this will help you think about how to approach a service. You may have to diverge away from traditional thinking for a particular service. For example, what worked in a rack or a data center may not work in the cloud. You need to account for this up front and state behavioral differences from what folks may expect. For the queue service, this meant not taking a traditional approach you see in some queue protocols and services, and instead integrating ideas from distributed services.
A multi-tenant cloud is a very different environment from what many people are used to and usually requires a different approach to solve problems. If folks tell you you’re re-inventing the wheel, take their concerns into consideration, but also realize you may not be. You may be writing a jet engine.
Step 3 – Wiki and Mailing List Proposal
Once you have a good idea and a rough outline, you’ll probably want to run it by a couple people for feedback before sending it to everyone. You’ll then want to create a new wiki page on the OpenStack wiki and send a note to the public mailing list that mentions the wiki page and asks for community feedback. For example, the queue service proposal I wrote can be found here. There is an enormous amount of collective experience and brain power on the mailing list which will help point out any issues with the proposal. The service you initially propose may look nothing like the service you actually build. It’s also quite possible the service you propose is not a good fit for the cloud or OpenStack. The community will help iron all these details out.
Step 4 – Wait
It can take folks a while to catch up on public mailing lists, so be patient. Let people know about the proposal by other means (blog, tweet, irc, …) and help facilitate the conversation as people respond.
Step 5 – Prototype
Once you feel the community is content with the proposal and it’s a viable idea (don’t expect consensus), prototype it! This shows the community you are serious and this exercise will help work out more issues in the proposal. Let the community know about it and again wait for any feedback. This doesn’t need to be anything fancy, for the queue service I put this together over a weekend.
Step 6 – Name and Language
Now comes the difficult part, choosing a project name. I’d suggest not using the mailing list for this as it will be a lot of noise for a matter that isn’t too important. Ask a couple folks who may also be interested for ideas and make sure it’s not already taken (search on github, Launchpad, Google, etc). For the queue service we decided on “Burrow”.
You’ll also need to figure out the most appropriate language. For middleware and services, Python is a good default. If efficiency is a concern, look at Erlang or C/C++. Be sure to send another mail to the list and ask for feedback. With the queue service I initially proposed C++ with Erlang as an alternative since efficiency is a major concern (especially around utilizing multiple cores), and the community came back mixed but with more enthusiasm for Erlang.
Step 7 – Bootstrap the Project on Launchpad
We’re using Launchpad for OpenStack project management. You’ll need to create a project and a number of groups to manage it. For example, the queue project can be found here. The groups have the following roles (replace burrow with your project name):
burrow – Public group that anyone can join. This currently includes members on the main OpenStack mailing list, but we’re setup this way in case we need to break projects out into their own list.
burrow-drivers – The group responsible for maintaining the project, managing blueprints, and making releases.
burrow-core – The group responsible for performing code reviews.
burrow-bugs – The group responsible for managing bugs.
Step 8 – Lock onto Releases and Milestone Schedule
While not important right away, it might be a good idea to start working with the OpenStack release cycle. Releases are currently every three months with milestones setup in each release for feature freeze, bug freeze, and releases. See the release page for more details. Launchpad makes it fairly simple to manage this, you’ll just want to create a new series (for example, “cactus” right now), and a couple milestones within that series for the freezing and release. Ask on the mailing list or on IRC if you need any help, but a good rule of thumb is to follow what other established projects do (like Nova).
Step 9 – Code!
Get to work and try to recruit other developers to help you. Keep the community updated with progress by using IRC, mailing list, planet.openstack.org, and tweets.
Step 10 – Submit to the Project Oversight Committee
Up until this point your project has not been an official OpenStack project. It is a well thought-out idea driven by the community that probably has a good chance though. You’ll need to make a proposal to the POC using this page once the project can stand on it’s own. You probably don’t need a final version, but you need something that is functional and more robust than a prototype. The POC meets weekly, although it may take more time (and some conversations) to decide if your project is ready. The queue service I’ve been driving has not been proposed since it’s not ready, so you may want to take all this with a grain of salt. It is my hope to have the first version ready to propose in April as part of the Cactus release.
This process will vary and can certainly be refined. I’m stating what I’ve done with a new project, but existing projects will obviously need to take a different route. The main idea to keep in mind though is that any OpenStack project should be seen as community driven, not just by an individual or company. One or more individuals may carry out a large part of the work of the community initially, but community concerns and feedback should always be taken with the utmost importance.
Walmart and Microsoft announced a five-year technology partnership to fight against Amazon’s influence.
At Microsoft’s Inspire conference in Las Vegas July 14-18, Walmart revealed that the two companies have sealed a strategic partnership. Based on the Cloud computing services offered by Microsoft, the agreement would allow its partner to benefit from the Azure application platform and Microsoft 365. Companies will also work on the development of new projects focused on artificial intelligence and service improvement using machine learning technology. For example, artificial intelligence solutions could help Walmart personalize its marketing campaigns according to Internet users.
Walmart is Amazon’s biggest retail competitor, while Microsoft is Amazon’s biggest rival when it comes to cloud services.
It was therefore logical that the two companies finally joined forces to try to limit the power of their common enemy.
Nevertheless, it is important to remember that the partnership comes at a time when Microsoft has expressed interest in designing a technology rivalling the one operated by physical Amazon Go stores. Announced in January 2018, Amazon’s first store successfully replaced staff with ambitious technologies based on artificial intelligence. Similarly, customers no longer have to wait in line because the cash registers no longer exist: now you pay with your Amazon account and mobile phone.
Microsoft, for its part, would be looking at similar technology that could operate cameras attached to shopping carts in stores. To date, the firm has already hired a computer vision specialist from Amazon. Moreover, Bill Gates’ company would be in talks with Walmart, which would certainly find its interest in this project since it would enable it to catch up with Bezos’ company.
However, this assumption was not made when the partnership was officially announced.
Samsung has unveiled its latest high-end smartphone. The Galaxy S9 relies on photography to stand out, with a variable aperture sensor and video slow motion at 960 frames per second.
The South Korean conglomerate Samsung officially presented its brand new high-end smartphone, the Galaxy S9, designed to integrate augmented reality, at the World Mobile Congress (MWC) in Barcelona. Samsung did not attend last year’s event and took advantage of a day where its competitors remained discreet to highlight its new flagship smartphone. The S9 will be equipped with a new type of optics to meet the augmented reality applications made by the Korean company.
The Galaxy S9 confirms the trend which is generalizing among smartphone manufacturers, to onboard screens on almost the entire front of the device. Available from June 20, it can also be converted into a computer, by connecting a number of accessories and will integrate the possibility of being unlocked by password, fingerprint, face recognition or retinal scanner. The camera focuses on photography with a variable aperture sensor and video slow motion at 960 frames per second.
Huawei still in the race
Earlier today, Chinese telecom giant Huawei introduced the latest version of its Matebook X Pro laptop and its new MediaPad M5 tablet. Both devices boast shorter charging times, longer battery life and improved technical capabilities compared to previous versions. They also incorporate simplified interconnectivity for the manufacturer’s various devices: computers, tablets and smartphones.
LG also took advantage of MWC’s standby to introduce an update of its V30S smartphone, which embed artificial intelligence (AI) through the ThinkQ software suite, the main innovation of the device. Like its local competitor Samsung, LG intends to integrate its own IA into all its device, smartphones of course, but also connected TVs and household appliances.
However, no new high-end phone to take over from LG G6, introduced during the last edition of MWC.
The two video-sharing sites are waging a merciless war in the heart of Internet users. If the leading video platform Youtube seems to have supremacy, the French contender Dailymotion keeps resisting. To differentiate themselves, both offer original and unique services.
YouTube: The Beast
YouTube was created in 2005 by former PayPal employees. The site hosts all kinds of video: movies, music videos, TV shows and more, using Flash technology. YouTube works by registration even if all Internet users can view shared videos. After you registered on Youtube, you can post your videos (up to 10 minutes in length), comment and rate others’ videos or subscribe to a channel. The site quickly found its audience through word of mouth. One of YouTube’s big projects has been to put online all the music videos produced by Sony BMG Music Entertainment, Warner Music, and Universal. YouTube has quickly become the number one platform for artists to do their promotion. A video viewed many times ensures recognition in the media. YouTube has enabled the discovery of many artists.
The site reigns supreme over the world of online video, especially since Google bought it in 2006. Android phones have integrated a simple and fast link to YouTube. In 2010, the video host reached two billion videos viewed daily.
Dailymotion: The Outsider
Dailymotion was created only one month after YouTube in March 2005. Despite sounding English, Dailymotion is a French company. It is very similar to YouTube, with the only difference that it hosts videos internally. Users registered on this French video-sharing website are called MotionMakers. They can send a video they have made to the editorial team of the site so that it is highlighted on the first page. From the beginning, Dailymotion has been supported by individual investors. In 2006, the site received fundraising of 8 million $ thanks to two investors. Dailymotion signs contracts with Universal and Warner but also with independent producers to have broadcasting rights. Dailymotion is fast becoming one of the world’s most visited video-sharing platform. It ranks 29th among the most visited sites with 114 million visitors worldwide. Like YouTube, the video host Dailymotion has revealed many talents.
What about other video-sharing sites?
If YouTube and Dailymotion have a clear monopoly in the video hosting game, there are a few other sites that are worth having a look at. Vimeo is an American video hosting company created in 2004. Although Vimeo was built before the Youtube, it is not as popular. The site was launched by filmmakers and other film professionals to share their work. In 2010, this video host had more than 3 million members. It offers a paid service to have access to better quality videos and pages without advertising. The content of the site is monitored to offer only original videos. All commercial, pornographic or violent videos are automatically deleted by this video host who wishes to preserve the state of mind at the origin of its creation.