emGee Software Solutions Custom Database Applications

Share this

Web Technologies

MariaDB Server 10.2.12 now available

Planet MySQL - Thu, 01/04/2018 - 09:56
MariaDB Server 10.2.12 now available dbart Thu, 01/04/2018 - 12:56

The MariaDB project is pleased to announce the immediate availability of MariaDB Server 10.2.12. See the release notes and changelog for details and visit mariadb.com/downloads to download.

Download MariaDB Server 10.2.12

Release Notes Changelog What is MariaDB 10.2?

The MariaDB project is pleased to announce the immediate availability of MariaDB Server 10.2.12. See the release notes and changelog for details.

Login or Register to post comments

Categories: Web Technologies

Percona Toolkit 3.0.6 Is Now Available

Planet MySQL - Thu, 01/04/2018 - 08:41

Percona announces the release of Percona Toolkit 3.0.6 on January 4, 2018.

Percona Toolkit is a collection of advanced command-line tools that perform a variety of MySQL and MongoDB server and system tasks too difficult or complex for DBAs to perform manually. Percona Toolkit, like all Percona software, is free and open source.

You download packages from the website or install from official repositories.

This release includes the following changes:

New Features:
  • PT-221: Improve pt-table-sync support for MyRocks
  • PT-218: pt-stalk now checks the RocksDB status
  • PT-214: pt-mysql-summary contains the RocksDB section
  • PT-205: pt-osc shows a message if trying to set the engine to rocksdb and binlog_format != row
  • PT-204: pt-table-checksum skips RocksDB tables.
Bug fixes:
  • PT-234: The general log parser cannot handle time stamps which include time zones
  • PT-229: pt-online-schema-change does not retry on a deadlock error when using Percona Server 5.7
  • PT-225: pt-table-checksum ignores generated columns
Categories: Web Technologies

26 Fabulous Scripts Fonts

CSS-Tricks - Thu, 01/04/2018 - 08:24

(This is a sponsored post.)

Just $9.

They are nicely constructed as well, with stylistic alternates, ligatures, punctuation, extra characters, and multilingual support.

Direct Link to ArticlePermalink

26 Fabulous Scripts Fonts is a post from CSS-Tricks

Categories: Web Technologies

Fun Times With Sizing Grid Elements

CSS-Tricks - Thu, 01/04/2018 - 08:24

Chris showed us a little while back that CSS grid areas and their elements are not necessarily the same size. It's an interesting point because one might assume that putting things into a grid area would make those things occupy the entire space, but grid areas actually reserve the space defined by the grid and set the element's justify-content and align-items properties to a stretch value by default.

So... yes, they are the same size, but not necessarily.

Chris ended his post by asking "who cares?" while indicating no one in particular. The point was much more geared toward calling this out as a starting point for folks who need to align content in the grid.

I'm not sure I have a better answer, but it made me think it would be fun if we could leverage those auto-assigned stretch values to adapt a user interface in interesting ways.

I'm not saying any of these are great use cases. In fact, they may be downright silly. That said, maybe they can be the starting point for other ideas.

Stretching Form Fields

One idea is to add some interaction to form fields. If our <form> is the grid container then we can set text inputs where they start at their default width using the start value and then expanding them to the full width of the container by switching to the stretch value on a :focus state:

.grid__form { display: grid; } .grid__input { justify-self: start; } .grid__input:focus { justify-self: stretch; }

See the Pen CSS Grid: Grid Child Stretch on Focus by Geoff Graham (@geoffgraham) on CodePen.

Then again, we can already do something similar with Flexbox but with the benefit of the flex being an animated property:

See the Pen Flexbox: Child Stretch on Focus by Geoff Graham (@geoffgraham) on CodePen.

I'm honestly not sure where expanding form fields on focus would make for great UX but it's certainly fun to play with.

Curtain Opening Effect Re-Visited

We posted a good ol' fashioned CSS trick last year that uses the checkbox hack to create the effect of a curtain opening to reveal content behind it.

See the Pen OXJMmY by Geoff Graham (@geoffgraham) on CodePen.

That used widths and positioning to move things around on click, but we could have done something similar with Grid. Again, this is less robust because it lacks animation and the does not allow the curtain to fully open, but it does show how we can leverage the stretch, start and end values of a grid element and its sizing to achieve some interesting ideas.

See the Pen CSS Grid Curtain Reveal by Geoff Graham (@geoffgraham) on CodePen.

What Else?

The fact that grid elements are not always the size of the grid area is a nice tip to keep in our back pockets as we develop layouts. I'd bet we can come up with more ideas to take that concept to another level and have fun with it as a group. Share 'em if you have 'em!

Fun Times With Sizing Grid Elements is a post from CSS-Tricks

Categories: Web Technologies

A DBA Analyses 'The Phoenix Project'

Planet MySQL - Thu, 01/04/2018 - 07:05
Last year, I read 'The Phoenix Project'. I liked it and as an IT manager in the past, I did experience high blood pressure during the SEV1 scenarios in the book.

I also liked the way DevOps methodology helped solve issues with IT as well as help the company succeed overall.
As a DBA, however, I did have some things that didn't make sense to me about this story.  Bare in mind that the two major incidents in the book were database related. So in this post, I would like to jot down some things I have noticed and how they could have been solved looking at them from a different lens.
Caution, Spoiler Alert

Incident No.1 - Tokenisation
In the first incident, a 3rd party supplier ran a script against the database to tokenise some personal data. This was related to an issue that information security highlighted, but had the result of effecting HR and accounting.
In the book, there is a complaint that there was no test environment to see if this script would have any negative effects on other parts of the organisation. 
Now to me, this does make sense and at the same time, makes no sense at all.
If you meant, that back in the day, it was hard to get full environments setup to test changes on your application servers, then you would probably be right. Today, perhaps based on the methodology that this book introduces, you probably do have those environments setup: either virtualised or in a container. 

Testing Database
What doesn't make sense to me is that is not having a test database. Now reading through the book, there are mentions of Oracle database and some MS SQL databases. As a mainly MySQL DBA, I have not always worked on those databases, but I have worked next to people who have. My observation is, if you were to have an Oracle database, you would almost certainly have other dev/test/UAT/staging/pre-prod database servers as well.  Why do I think this? If you can afford to pay for an Oracle database, you would probably get more testing databases under the same license. License being the most expensive part when using Oracle.   So a testing database to test things that may effect the precious and expensive database server is almost a certainty.

DBA as a Gatekeeper
Now it seems shocking to me that the DBA had not been involved in the process to validate this 3rd party script. Old school Oracle DBAs are involved in everything that happens on their servers.  Need a user on the database? goto the DBA.  Need a database server for a new app? please fill these in triplicates, detailing what would be the projected usage for the next 5 years.  In most companies, an Oracle DBAs may even setup integration between other products like Oracle HR and finance.  So how could you have run something that significant against the database without their knowledge is beyond me.
Assuming that a database field had in fact been messed up, then Oracle DBAs have a TON of really enviable backup and restore features.  They can query a table to view all the backups that are available to restore from and choose the point-in-time that is closest to what they need. A DBA could simply restore the database, fetch the specific table that had its column changed and apply it to the to production database.  Its more than one table? Restore the database, go over the changes in the logs a point-in-time and skip the parts the conversion script applied.

It seems to me that the authors wrote the book based on their own experiences, but those experiences occurred in companies that had no DBAs. Not having a DBA is a product of start ups, not old school 1500-person car-parts manufacturers.

Incident No.2 - Conversion
There was a crippling database issue to do with a database conversion that was needed along side some new code roll out. The issue caused a 2 day - break out the hand held receipt machine - downtime to the system.

Works on My Laptop
During the initial investigation, a developer said something along the lines of 'it worked fine on my laptop' when describing the performance of the database conversion scripts. The problem was that on production, it was x1000 slower. Now, I have written about how to not be the one that deploys that slow query to production before and this really states that situation. Apparently, they still didn't have a database testing environment to test it against.
However, on the topic above of 'DBA as a gatekeeper': Why didn't the DBA review the conversion scripts or was involved in the the code review process for SQL statements? It could be that there wasn't any in the company.
Another point was that they couldn't cancel the conversion after they started and noticed how slow it was. If this was within a transaction or a single alter table statement, why not? If too many things have changed, could they not restore the database to a point-in-time before the changes were made? Was the conversion x1000 slow instead of maybe x10 slow, because of a foreign key check that could have been turned off? A DBA would have given you those options.

Project Unicorn
After the hero turns things around and things begin to pickup, they decide to start a separate project to add predictive features to the main project. In it, they decided to bypass seeking permission for database changes and create a new database where they copied production data into it from several locations. I very much like this approach and it falls in line with the reactive micro services pattern
This would make this book ahead of its time. Instead of managing one main database (although, they did mention in the book that had a couple of dozen database servers) for the website, they can break it up into several database servers, based on functionality. What is required is to use tools - and I would believe in 2012, they meant ETL tools - to migrate the needed data into these new database servers. 
This would still need a DBA though or at the very least, a data engineer with an ops background, as you now need to:
  • Data model new environments based on data from old ones
  • Create and maintain data pipelines
  • Monitor for errors and fix data that didn't make it 
  • Fix data drift and re-sync data across servers

In addition, you now need to backup, monitor the availability and performance of these additional database servers.
So while it adds complexity to the backend and you are now moving from simple database maintenance to a more data architecture role, it is the way forward. Certainly the only way to have proper micro services with their own single-purpose and loosely coupled data stores.

it might have been better if they just hired a DBA to solve thier DB issues.— GuybrushThreepwoodⓋ (@jonathan_ukc) January 6, 2017

;)— Kevin Behr (@kevinbehr) January 8, 2017

Categories: Web Technologies

Announcing ClusterControl 1.5.1 - Featuring Backup Encryption for MySQL, MongoDB & PostgreSQL

Planet MySQL - Thu, 01/04/2018 - 05:41

What better way to start a new year than with a new product release?

Today we are excited to announce the 1.5.1 release of ClusterControl - the all-inclusive database management system that lets you easily deploy, monitor, manage and scale highly available open source databases - and load balancers - in any environment: on-premise or in the cloud.

ClusterControl 1.5.1 features encryption of backups for MySQL, MongoDB and PostgreSQL, a new topology viewer, support for MongoDB 3.4, several user experience improvements and more!

Feature Highlights Related resources  ClusterControl Change Logs  ClusterControl Upgrade Instructions  Announcing ClusterControl 1.5 Full Backup and Restore Encryption for these supported backup methods
  • mysqldump, xtrabackup (MySQL)
  • pg_dump, pg_basebackup (PostgreSQL)
  • mongodump (MongoDB)

New Topology View (BETA) shows your replication topology (including load balancers) for your entire cluster to help you visualize your setup.

  • MySQL Replication Topology
  • MySQL Galera Topology
Improved MongoDB Support
  • Support for MongoDB v3.4
  • Fix to add back restore from backup
  • Multiple NICs support. Management/public IPs for monitoring connections and data/private IPs for replication traffic

Improved user experience featuring a new left-side navigation that includes:

  • Global settings breakout to make it easier to find settings related to a specific feature
  • Quick node actions that allow you to quickly perform actions on your node
ClusterControl Single Console for Your Entire Database Infrastructure Find out what else is new in ClusterControl Install ClusterControl for FREE View Release Details and Resources Improving Database Security: Backup & Restore Encryption

ClusterControl 1.5 introduces another step to ensuring your databases are kept secure and protected.

Backup & restore encryption means that backups are encrypted at rest using AES-256 CBC algorithm. An auto generated key will be stored in the cluster's configuration file under /etc/cmon.d. The backup files are transferred in encrypted format. Users can now secure their backups for offsite or cloud storage with the flip of a checkbox. This feature is available for select backup methods for MySQL, MongoDB & PostgreSQL.

New Topology View (beta)

This exciting new feature provides an “overhead” topology view of your entire cluster, including load balancers. While in beta, this feature currently supports MySQL Replication and Galera topologies. With this new feature, you can drag and drop to perform node actions. For example, you can drag a replication slave on top of a master node - which will prompt you to either rebuild the slave or change the replication master.

Improved User Experience

The new Left Side Navigation and the new quick actions and settings that accompany it mark the first major redesign to the ClusterControl interface in some time. ClusterControl offers a vast array of functionality, so much so that it can sometimes be overwhelming to the novice. This addition of the new navigation allows the user quick access to what they need on a regular basis and the new node quick actions lets users quickly run common commands and requests right from the navigation.

Download the new ClusterControl or request a demo.

Tags:  clustercontrol backup security encryption MySQL MongoDB PostgreSQL database management
Categories: Web Technologies

CodePen’s Most Hearted of 2017

CSS-Tricks - Wed, 01/03/2018 - 16:26

The most fun year-end list there is, if you ask me.

Direct Link to ArticlePermalink

CodePen’s Most Hearted of 2017 is a post from CSS-Tricks

Categories: Web Technologies

PHP 5.6.33 Released - PHP: Hypertext Preprocessor

Planet PHP - Wed, 01/03/2018 - 16:00
The PHP development team announces the immediate availability of PHP 5.6.33. This is a security release. Several security bugs were fixed in this release. All PHP 5.6 users are encouraged to upgrade to this version.For source downloads of PHP 5.6.33 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog.
Categories: Web Technologies

PHP 7.1.13 Released - PHP: Hypertext Preprocessor

Planet PHP - Wed, 01/03/2018 - 16:00
The PHP development team announces the immediate availability of PHP 7.1.13. This is a security release. Several security bugs were fixed in this release.All PHP 7.1 users are encouraged to upgrade to this version.For source downloads of PHP 7.1.13 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog.
Categories: Web Technologies

PHP 7.2.1 Released - PHP: Hypertext Preprocessor

Planet PHP - Wed, 01/03/2018 - 16:00
The PHP development team announces the immediate availability of PHP 7.2.1. This is a security release. Several security bugs were fixed in this release.All PHP 7.2 users are encouraged to upgrade to this version.For source downloads of PHP 7.2.1 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog.
Categories: Web Technologies

Symfony 4: Unpack the Packs - Fabien Potencier

Planet PHP - Wed, 01/03/2018 - 16:00

We get a lot of positive feedback on Symfony 4. You love the new directory structure. You love the simplicity of using services without configuring anything. And you love the automation that Flex provides. It makes me happy and proud.

But one issue I hear sometimes is that it is more complex to start a new project. Most projects need many Symfony features. But new projects now have bare minimum dependencies when created via composer create-project symfony/skeleton. You need to explicitly add all the dependencies you want to depend on. Being explicit is great, but UX suffers. Ever tried to add profiler and didn't get timing info? Yup, symfony/stopwatch is optional, so you need to add it explicitly.

You loved the simplicity of starting a project with the Symfony Standard Edition. Is it nostalgia? Perhaps. Would it be possible to get the best of both world? Certainly! Read on.

First, let me recap some current available features:

  • Any Composer package can have a related recipe that helps with auto-configuration (recipes are stored at symfony/recipes and symfony/recipes-contrib);

  • Symfony Packs are Composer metapackages that bundle several dependencies together to make your life easier (install symfony/debug-pack and get everything you need to debug a Symfony application).

Symfony Packs are time savers, but they have one limitation: they mask the real dependencies. Let me explain with an example. Using symfony/orm-pack is a great way to get the most commonly needed Doctrine related packages and bundles. Run composer req symfony/orm-pack (or simply composer req orm) to get Doctrine core, the Doctrine bundle, and the Doctrine migrations bundle (everything configured thanks to some nice recipes).

But what if you want to remove one dependency that is included in the pack? Like the migrations bundle. You cannot remove it as the project's composer.json file requires symfony/orm-pack, not the individual dependencies:

diff --git a/composer.json b/composer.json index e24f26b..5238f98 100644 --- a/composer.json +++ b/composer.json @@ -7,6 +7,7 @@ "symfony/flex": "^1.0", "symfony/framework-bundle": "^4.0", "symfony/lts": "^4@dev", + "symfony/orm-pack": "^1.0", "symfony/yaml": "^4.0" }, "require-dev": {

Another example would be when you want to change a dependency constraint for a package coming from a pack.

You can of course require the individual dependencies, but for packs like debug or api, you would have to have a look at their composer.json on Github and do some copy/paste. Not ideal.

There is another way. Unpacking the pack. You can now unpack an already installed pack via the unpack command:

composer unpack orm

The command updates composer.json to remove the pack and replace it with the individual dependencies defined in the pack:

diff --git a/composer.json b/composer.json index 5238f98..b8c9794 100644 --- a/composer.json +++ b/composer.json @@ -3,11 +3,13 @@ "license": "proprietary", "require": { "php": "^7.1.3", + "doctrine/doctrine-bundle": "^1.6.10", + "doctrine/doctrine-migrations-bundle": "^1.3", + "doctrine/orm": "^2.5.11", "symfony/console": "^4.0", "symfony/flex": "^1.0", "symfony/framework-bundle": "^4.0", "symfony/lts": "^4@dev", - "symfony/orm-pack": "^1.0", "symfony/yaml": "^4.0" }, "require-dev": {

Tweaking the pack dependencies is now possible. Don't want the migration bundles? Simple enough:

composer rem migrations

You can also unpack a pack at installation time via the --unpack flag. That flag tells Composer to add the dependencies of the pack in your composer.json instead of adding the pack package itself:

composer req orm-pack --unpack

Note that the unpack command and the --unpack flag only work for Symfony packs (the Composer package type must be symfony-pack). Any other dependencies are simply ignored and follow the standard Composer installation process.

That's a great feature by itself and give you even more power when it comes to dependency management.

Now, you could create a "Symfony Standard Edition" pack and benefit from the new unpacking feature.

That would almost work. Except that the Symfony Standard Edition has dev dependencies that would not be installed by Composer. As you know, when

Truncated by Planet PHP, read more at the original (another 3038 bytes)

Categories: Web Technologies

Case in Point: A Year of Customer Experience with Percona

Planet MySQL - Wed, 01/03/2018 - 14:20

In 2017 we have welcomed many new customers into the Percona fold. It’s always interesting to find out what challenges the Percona team helped them to address and how they chose their relationship with Percona. As unbiased champions of open source database software, our consultancy, support and managed services staff apply their expertise across a wide range of technologies. Here are just a few stories from the past year.

Scaling applications on Amazon RDS the right way

Specializing in on-demand transportation services, Grab needed a high-availability, high performing database engine to serve their rapidly growing application. Grab operates in over 30 densely populated cities in six countries of Southeast Asia. Although they had implemented a split database with Redis caching, they felt there was still room – and a necessity – to improve performance.

Maximum RDS hardware size had been reached, so Percona consultants worked with Grab to rearchitect the database design and reduce its overall footprint. The database management team were left with a solution that was manageable and with the capacity to expand.

“[Percona] proposed solutions that met our scaling and performance needs. The suggested changes were implemented fast, with no database downtime, and we saw an immediate improvement in our performance.” – Edwin Law, Data Engineering Lead, Grab

Managed database services

A B2C business with upward of 25 million subscribers, deal-brokering site Pepper.com has over 500 million page views a month. Data security is an issue at the forefront of their business. When their DBA left to take on a new challenge, the company was left with a dilemma common to many companies that have grown exponentially from a small, committed core of staff. With business continuity relying on a single resource, they knew they had to mitigate exposure to this risk, and Percona’s Managed Services offered a perfect solution.

Contracting out their database management provides 24-hour coverage for their databases, 365 days a year. Furthermore, rather than having to rely on one person’s knowledge and availability, in-depth expertise and a wide pool of knowledge are available if problems arise.

“Our subscribers expect deals that get posted on Pepper.com to not just be valid but scrutinized and rated by the community. Guaranteeing database performance is key to making sure our web applications are responsive and up-to-date. Percona Care Ultimate helps us to achieve these objectives.” – Pavel Genov, Head of Software Development at Pepper.com

Maximising database uptime

For Open Sky the challenge was to ensure maximum uptime. Their business model demands high availability with revenue directly tied to uptime. Using both MongoDB and MySQL in their architecture, hiring Percona to help with their DBA work made absolute sense, since Percona maintains distributions of these products.

Many smaller companies find it hard to justify the expense of a full-time DBA, never mind a whole team. Depending too much on a single person is an obvious candidate for a single point of failure. With high availability at the core of their business, not having DBA cover is a risky strategy.

Achieving outstanding database and query performance

LMAX Exchange also needed high availability, but was looking for very high performance too. Clients create ad hoc reports using vast amounts of data. With their logo incorporating the phrase “Speed Price Transparency”, their reporting system had something to live up to. As with all of our engagements, we carried out an initial audit of their existing systems. Through that were able to make some recommendations off the bat for improvements to their database configuration. The key to this exercise was to deliver important performance gains without the need for wholesale application upheaval. Percona support services help keep them on track.

Preparing for database growth

Alkemics’ challenge was that as a SaaS provider operating in a competitive industry and B2B, not only their own success but that of their customers relies on their delivery of an optimal service. The company was gearing for growth and needed to make sure that their database systems could support their ambitions. With that in mind, they hired Percona to carry out an audit of their database management and replication process. The database tuning recommendations once implemented led to a 45% decrease in memory usage. Along with overall improvements in query and database performance, Alkemics gained confidence in their ability to sustain planned growth.

Cloud Database Environments

Another factor influencing the need for optimization is cloud delivery, and the work with Alkemics illustrates what our team can achieve. During 2017, the number of applications using cloud infrastructure – like AWS, Microsoft Azure, and Google Cloud – increased rapidly, and we expect this trend to continue in 2018. With many cloud services charging solely on the basis of resource usage – disk space, memory, CPU, and IO all being factors – the DBA’s role has come into sharp focus in the context of cost. Percona Monitoring and Management underwent a substantial development, and in 1.5.3 incorporated support for Amazon RDS Aurora.

Optimizing database resource usage and cloud footprint

Lookout uses the Amazon Web Services (AWS) platform with Aurora as their main database software. Percona’s expertise with databases in the cloud helped Lookout to reduce their cloud footprint and, therefore, their operational costs. As a mobile security company, maximum availability in a secure environment is a core business function. As well as Percona’s database audit and optimization services, Lookout leverage Percona Monitoring and Management in the development of a resilient, pro-active approach to cloud management.

Check out our webinar with Lookout as well!

Summing up our customers’ stories

A common theme is that – whatever the size of their business – our customers are pushing the boundaries of technology with their projects and ambitions. This makes it an exciting place to work for Percona’s consultants, support, and technical account managers. Every new client brings a new challenge, an opportunity to look at the technology from a fresh angle and the chance to extend their knowledge.

If you are the kind of person that would enjoy this kind of challenge, then don’t forget we’re hiring!

Categories: Web Technologies