Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu.Wang 2019-02-01 22:08:22 +08:00
commit e8b5f98a38
4 changed files with 505 additions and 1 deletions

View File

@ -0,0 +1,146 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Comparing 3 open source databases: PostgreSQL, MariaDB, and SQLite)
[#]: via: (https://opensource.com/article/19/1/open-source-databases)
[#]: author: (Sam Bocetta https://opensource.com/users/sambocetta)
Comparing 3 open source databases: PostgreSQL, MariaDB, and SQLite
======
Find out how to choose the best open source database for your needs.
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_container_block.png?itok=S8MbXEYw)
In the world of modern enterprise technologies, open source software has firmly established itself as one of the biggest forces to reckon with. After all, some of the biggest technology developments have emerged because of the [open source movement][1].
It's not difficult to see why: even though Linux-based open source network standards may not be as popular as proprietary options, they are the reason smart devices from different manufacturers can communicate with each other. In addition, many argue that open source development produces applications that are superior to their proprietary counterparts. This is one reason why the chances are good that your favorite tools (whether open source or proprietary) were developed using open source databases.
Like any other category of software, the functionality and features of open source database management systems can differ quite significantly. To put that in plainer terms, [not all open source database management systems are equal][2]. If you are choosing an open source database for your organization, it's important to choose one that is user-friendly, can grow with your organization, and offers more-than-adequate security features.
With that in mind, we've compiled this overview of open source databases and their respective advantages and disadvantages. Sadly, we had to leave out some of the most used databases. Notably, MongoDB has recently changed its licensing model, so it is no longer truly open source. This decision probably made sense from a business perspective, since MongoDB has become the de facto solution for database hosting [with nearly 27,000 companies][3] using it, but it also means MongoDB can no longer be considered a truly open source system.
In addition, since it acquired MySQL, Oracle has all but killed the open source nature of that project, which was arguably the go-to open source database for decades. However, this has opened space for other truly open source database solutions to challenge it. Here are three of them to consider.
### PostgreSQL
No list of open source databases would be complete without [PostgreSQL][4], which has long been the preferred solution for businesses of all sizes. Oracle's acquisition of MySQL might have made good business sense at the time, but the rise of cloud storage has meant that the database [has gradually fallen out of favor with developers][5].
Although PostgreSQL has been around for a while, the relative [decline of MySQL][6] has made it a serious contender for the title of most used open source database. Since it works very similarly to MySQL, developers who prefer open source software are converting in droves.
#### Advantages
* By far, PostgreSQL's most mentioned advantage is the efficiency of its central algorithm, which means it outperforms many databases that are advertised as more advanced. This is especially useful if you are working with large datasets, for which I/O processes can otherwise become a bottleneck.
* It is also one of the most flexible open source databases around; you can write functions in a wide range of server-side languages: Python, Perl, Java, Ruby, C, and R.
* As one of the most commonly used open source databases, PostgreSQL's community support is some of the best around.
#### Disadvantages
* PostgreSQL's efficiency with large datasets is well known, but there are quicker tools available for smaller databases.
* While its community support is very good, PostgreSQL's core documentation could be improved.
* If you are used to advanced tools like parallelization and clustering, be aware that these require third-party plugins in PostgreSQL. There are plans to gradually add these features to the main release, but it will likely be a few years before they are offered as standard.
### MariaDB
[MariaDB][7] is a truly open source distribution of MySQL (released under the [GNU GPLv2][8]). It was [created after Oracle's acquisition][9] of MySQL, when some of MySQL's core developers were concerned that Oracle would undermine its open source philosophy.
MariaDB was developed to be as compatible with MySQL as possible while replacing several key components. It uses a storage engine, Aria, that functions as both a transactional and non-transactional engine. [Some even speculated][10] Aria would become the standard engine for MySQL in future releases, before MariaDB diverged.
#### Advantages
* Many users choose MariaDB over MySQL due to MariaDB's [frequent security releases][11]. While this does not necessarily mean MariaDB is more secure, it does indicate the development community takes security seriously.
* Others say MariaDB's major advantages are that it will almost definitely remain open source and highly compatible with MySQL. This means migrating from one system to the other is extremely fast.
* Because of this compatibility, MariaDB also plays well with many other languages that are commonly used with MySQL. This means less time is spent learning and debugging code.
* You can [install and run][12] WordPress with MariaDB instead of MySQL for better performance and a richer feature set. WordPress is the [most popular CMS by marketshare][13]—powering nearly half the internet—and has an active open source developer community. Third-party themes and plugins work as intended when WordPress is installed with MariaDB.
#### Disadvantages
* MariaDB is somewhat liable to bloating. Its central IDX log file, in particular, tends to become very large after protracted use, ultimately slowing performance.
* Caching is another area where MariaDB could use work—it is not as fast as it could be, which can be frustrating.
* Despite all the initial promises, MariaDB is no longer completely compatible with MySQL. If you are migrating from MySQL, you will have some re-coding to do.
### SQLite
[SQLite][14] is arguably the most implemented database engine in the world, thanks to its adoption by many popular web browsers, operating systems, and mobile phones. Originally developed as a lightweight fork of MySQL, unlike many other databases it is not a client-server engine; rather, the full software is embedded into each implementation.
This creates SQLite's major advantage: on embedded or distributed systems, each machine carries an entire implementation of the database. This can greatly speed up the performance of databases because it reduces the need for inter-system calls.
#### Advantages
* If you are looking to build and implement a small database, SQLite is [arguably the best way to go][15]. It is extremely small, so it can be implemented across a wide range of embedded systems without time-consuming workarounds.
* Its small size makes the system extremely fast. While some more advanced databases use complex ways of producing efficiency savings, SQLite takes a much simpler approach: By reducing the size of your database and its associated processing software, there is simply less data to work with.
* Its widespread adoption also means SQLite is probably the most compatible database out there. This is particularly important if you need or plan to integrate your system with smartphones: the system has been native on iOS for as long as there have been third-party apps and works flawlessly in a wide range of environments.
#### Disadvantages
* SQLite's tiny size means it lacks some features found in larger databases. It lacks built-in data encryption, for example, something that has become standard to prevent the [most common online hacker attacks][16].
* While the wide adoption and publicly available code makes SQLite easy to work with, it also increases its attack surface area. This is its most commonly cited disadvantage. New critical vulnerabilities are frequently discovered in SQLite, such as the recent remote attack vector called [Magellan][17].
* Although SQLite's single-file approach creates speed advantages, there is no easy way to implement a multi-user environment using the system.
### Which open source database is best?
Ultimately, your choice of open source database will depend on your business needs and particularly on the size of your system. For small databases or those with limited use, go for a lightweight solution: not only will it speed up implementation but a less-complex system means you will spend less time debugging.
For larger systems, especially in growing businesses, invest the time to implement a more complex database like PostgreSQL. This will save you time—eventually—by removing the need to re-code your databases as your business grows.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/1/open-source-databases
作者:[Sam Bocetta][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/sambocetta
[b]: https://github.com/lujun9972
[1]: https://opensource.com/article/18/2/pivotal-moments-history-open-source
[2]: https://blog.capterra.com/free-database-software/
[3]: https://idatalabs.com/tech/products/mongodb
[4]: https://www.postgresql.org/
[5]: https://www.theregister.co.uk/2018/05/31/rise_of_the_open_source_data_strategies/
[6]: https://www.itworld.com/article/2721995/big-data/signs-of-mysql-decline-on-horizon.html
[7]: https://mariadb.org/
[8]: https://github.com/MariaDB/server/blob/10.4/COPYING
[9]: https://mariadb.com/about-us/
[10]: http://kb.askmonty.org/en/aria-faq
[11]: https://mariadb.org/tag/security/
[12]: https://mariadb.com/resources/blog/how-to-install-and-run-wordpress-with-mariadb/
[13]: https://websitesetup.org/popular-cms/
[14]: https://www.sqlite.org/index.html
[15]: https://www.sqlite.org/aff_short.html
[16]: https://hostingcanada.org/most-common-website-vulnerabilities/
[17]: https://www.securitynewspaper.com/2018/12/18/critical-vulnerability-in-sqlite-you-should-update-now/

View File

@ -0,0 +1,239 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Pyvoc A Command line Dictionary And Vocabulary Building Tool)
[#]: via: (https://www.ostechnix.com/pyvoc-a-command-line-dictionary-and-vocabulary-building-tool/)
[#]: author: (SK https://www.ostechnix.com/author/sk/)
Pyvoc A Command line Dictionary And Vocabulary Building Tool
======
![](https://www.ostechnix.com/wp-content/uploads/2019/01/pyvoc-720x340.jpg)
Howdy! I have a good news for non-native English speakers. Now, you can improve your English vocabulary and find the meaning of English words, right from your Terminal. Say hello to **Pyvoc** , a cross-platform, open source, command line dictionary and vocabulary building tool written in **Python** programming language. Using this tool, you can brush up some English words meanings, test or improve your vocabulary skill or simply use it as a CLI dictionary on Unix-like operating systems.
### Installing Pyvoc
Since Pyvoc is written using Python language, you can install it using [**Pip3**][1] package manager.
```
$ pip3 install pyvoc
```
Once installed, run the following command to automatically create necessary configuration files in your $HOME directory.
```
$ pyvoc word
```
Sample output:
```
|Creating necessary config files
/getting api keys. please handle with care!
|
word
Noun: single meaningful element of speech or writing
example: I don't like the word unofficial
Verb: express something spoken or written
example: he words his request in a particularly ironic way
Interjection: used to express agreement or affirmation
example: Word, that's a good record, man
```
Done! Let us go ahead and brush the English skills.
### Use Pyvoc as a command line Dictionary tool
Pyvoc fetches the word meaning from **Oxford Dictionary API**.
Let us say, you want to find the meaning of a word **digression**. To do so, run:
```
$ pyvoc digression
```
![](https://www.ostechnix.com/wp-content/uploads/2019/01/pyvoc1.png)
See? Pyvoc not only displays the meaning of word **digression** , but also an example sentence which shows how to use that word in practical.
Let us see an another example.
```
$ pyvoc subterfuge
|
subterfuge
Noun: deceit used in order to achieve one's goal
example: he had to use subterfuge and bluff on many occasions
```
It also shows the word classes as well. As you already know, English has four major **word classes** :
1. Nouns,
2. Verbs,
3. Adjectives,
4. Adverbs.
Take a look at the following example.
```
$ pyvoc welcome
/
welcome
Noun: instance or manner of greeting someone
example: you will receive a warm welcome
Interjection: used to greet someone in polite or friendly way
example: welcome to the Wildlife Park
Verb: greet someone arriving in polite or friendly way
example: hotels should welcome guests in their own language
Adjective: gladly received
example: I'm pleased to see you, lad—you're welcome
```
As you see in the above output, the word welcome can be used as a verb, noun, adjective and interjection. Pyvoc has given example for each class.
If you misspell a word, it will inform you to check the spelling of the given word.
```
$ pyvoc wlecome
\
No definition found. Please check the spelling!!
```
Useful, isnt it?
### Create vocabulary groups
A vocabulary group is nothing but a collection words added by the user. You can later revise or take quiz from these groups. 100 groups of 60 words are **reserved** for the user.
To add a word (E.g **sporadic** ) to a group, just run:
```
$ pyvoc sporadic -a
-
sporadic
Adjective: occurring at irregular intervals or only in few places
example: sporadic fighting broke out
writing to vocabulary group...
word added to group number 51
```
As you can see, I didnt provide any group number and pyvoc displayed the meaning of given word and automatically added that word to group number **51**. If you dont provide the group number, Pyvoc will **incrementally add words** to groups **51-100**.
Pyvoc also allows you to specify a group number if you want to. You can specify a group from 1-50 using **-g** option. For example, I am going to add a word to Vocabulary group 20 using the following command.
```
$ pyvoc discrete -a -g 20
/
discrete
Adjective: individually separate and distinct
example: speech sounds are produced as a continuous sound signal rather
than discrete units
creating group Number 20...
writing to vocabulary group...
word added to group number 20
```
See? The above command displays the meaning of discrete word and adds it to the vocabulary group 20. If the group doesnt exists, Pyvoc will create it and add the word.
By default, Pyvoc includes three predefined vocabulary groups (101, 102, and 103). These custom groups has 800 words of each. All words in these groups are taken from **GRE** and **SAT** preparation websites.
To view the user-generated groups, simply run:
```
$ pyvoc word -l
-
word
Noun: single meaningful element of speech or writing
example: I don't like the word unofficial
Verb: express something spoken or written
example: he words his request in a particularly ironic way
Interjection: used to express agreement or affirmation
example: Word, that's a good record, man
USER GROUPS
Group no. No. of words
20 1
DEFAULT GROUP
Group no. No. of words
51 1
```
```
```
As you see, I have created one group (20) including the default group (51).
### Test and improve English vocabulary
As I already said, you can use the Vocabulary groups to revise or take quiz from them.
For instance, to revise the group no. **101** , use **-r** option like below.
```
$ pyvoc 101 -r
```
You can now revise the meaning of all words in the Vocabulary group 101 in random order. Just hit ENTER to go through next questions. Once done, hit **CTRL+C** to exit.
![](https://www.ostechnix.com/wp-content/uploads/2019/01/pyvoc2-1.png)
Also, you take quiz from the existing groups to brush up your vocabulary. To do so, use **-q** option like below.
```
$ pyvoc 103 -q 50
```
This command allows you to take quiz of 50 questions from vocabulary group 103. Choose the correct answer from the list by entering the appropriate number. You will get 1 point for every correct answer. The more you score the more your vocabulary skill will be.
![](https://www.ostechnix.com/wp-content/uploads/2019/01/pyvoc3.png)
Pyvoc is in the early-development stage. I hope the developer will improve it and add more features in the days to come.
As a non-native English speaker, I personally find it useful to test and learn new word meanings in my free time. If youre a heavy command line user and wanted to quickly check the meaning of a word, Pyvoc is the right tool. You can also test your English Vocabulary at your free time to memorize and improve your English language skill. Give it a try. You wont be disappointed.
And, thats all for now. Hope this was useful. More good stuffs to come. Stay tuned!
Cheers!
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/pyvoc-a-command-line-dictionary-and-vocabulary-building-tool/
作者:[SK][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.ostechnix.com/author/sk/
[b]: https://github.com/lujun9972
[1]: https://www.ostechnix.com/manage-python-packages-using-pip/

View File

@ -0,0 +1,119 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Secure Email Service Tutanota Has a Desktop App Now)
[#]: via: (https://itsfoss.com/tutanota-desktop)
[#]: author: (John Paul https://itsfoss.com/author/john/)
Secure Email Service Tutanota Has a Desktop App Now
======
[Tutanota][1] recently [announced][2] the release of a desktop app for their email service. The beta is available for Linux, Windows, and macOS.
### What is Tutanota?
There are plenty of free, ad-supported email services available online. However, the majority of those email services are not exactly secure or privacy-minded. In this post-[Snowden][3] world, [Tutanota][4] offers a free, secure email service with a focus on privacy.
Tutanota has a number of eye-catching features, such as:
* End-to-end encrypted mailbox
* End-to-end encrypted address book
* Automatic end-to-end encrypted emails between users
* End-to-end encrypted emails to any email address with a shared password
* Secure password reset that gives Tutanota absolutely no access
* Strips IP addresses from emails sent and received
* The code that runs Tutanota is [open source][5]
* Two-factor authentication
* Focus on privacy
* Passwords are salted and hashed locally with Bcrypt
* Secure servers located in Germany
* TLS with support for PFS, DMARC, DKIM, DNSSEC, and DANE
* Full-text search of encrypted data executed locally
![][6]
Tutanota on the web
You can [sign up for an account for free][7]. You can also upgrade your account to get extra features, such as custom domains, custom domain login, domain rules, extra storage, and aliases. They also have accounts available for businesses.
Tutanota is also available on mobile devices. In fact, its [Android app is open source as well][8].
This German company is planning to expand beyond email. They hope to offer an encrypted calendar and cloud storage. You can help them reach their goals by [donating][9] via PayPal and cryptocurrency.
### The New Desktop App from Tutanota
Tutanota announced the [beta release][2] of the desktop app right before Christmas. They based this app on [Electron][10].
![][11]
Tutanota desktop app
They went the Electron route:
* to support all three major operating systems with minimum effort.
* to quickly adapt the new desktop clients so that they match new features added to the webmail client.
* to allocate development time to particular desktop features, e.g. offline availability, email import, that will simultaneously be available in all three desktop clients.
Because this is a beta, there are several features missing from the app. The development team at Tutanota is working to add the following features:
* Email import and synchronization with external mailboxes. This will “enable Tutanota to import emails from external mailboxes and encrypt the data locally on your device before storing it on the Tutanota servers.”
* Offline availability of emails
* Two-factor authentication
### How to Install the Tutanota desktop client?
![][12]Composing email in Tutanota
You can [download][2] the beta app directly from Tutanotas website. They have an [AppImage file for Linux][13], a .exe file for Windows, and a .app file for macOS. You can post any bugs that you encounter to the Tutanota [GitHub account][14].
To prove the security of the app, Tutanota signed each version. “The signatures make sure that the desktop clients as well as any updates come directly from us and have not been tampered with.” You can verify the signature using from Tutanotas [GitHub page][15].
Remember, you will need to create a Tutanota account before you can use it. This is email client is designed to work solely with Tutanota.
### Wrapping up
I tested out the Tutanota email app on Linux Mint MATE. As to be expected, it was a mirror image of the web app. At this point in time, I dont see any difference between the desktop app and the web app. The only use case that I can see to use the app now is to have Tutanota in its own window.
Have you ever used [Tutanota][16]? If not, what is your favorite privacy conscience email service? Let us know in the comments below.
If you found this article interesting, please take a minute to share it on social media, Hacker News or [Reddit][17].
![][18]
--------------------------------------------------------------------------------
via: https://itsfoss.com/tutanota-desktop
作者:[John Paul][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/john/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/tutanota-review/
[2]: https://tutanota.com/blog/posts/desktop-clients/
[3]: https://en.wikipedia.org/wiki/Edward_Snowden
[4]: https://tutanota.com/
[5]: https://tutanota.com/blog/posts/open-source-email
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2018/12/tutanota2.jpg?resize=800%2C490&ssl=1
[7]: https://tutanota.com/pricing
[8]: https://itsfoss.com/tutanota-fdroid-release/
[9]: https://tutanota.com/community
[10]: https://electronjs.org/
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/01/tutanota-app1.png?fit=800%2C486&ssl=1
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2018/12/tutanota1.jpg?resize=800%2C405&ssl=1
[13]: https://itsfoss.com/use-appimage-linux/
[14]: https://github.com/tutao/tutanota
[15]: https://github.com/tutao/tutanota/blob/master/buildSrc/installerSigner.js
[16]: https://tutanota.com/polo/
[17]: http://reddit.com/r/linuxusersgroup
[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2018/02/tutanota-featured.png?fit=800%2C450&ssl=1

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: ( dianbanjiu )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )