Subscribe: Blog of Leonid Mamchenkov
http://mamchenkov.net/wordpress/feed/atom/
Added By: Feedage Forager Feedage Grade A rated
Language: English
Tags:
active directory  amazon rds  amazon  continue reading  database  microsoft  mysql  national geographic  rds  reading  schema  wordpress 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Blog of Leonid Mamchenkov

Blog of Leonid Mamchenkov



Thoughts on technology, movies, and everything else



Updated: 2016-12-11T03:44:01Z

 



Amazon RDS and Amazon Virtual Private Cloud (VPC)

2016-12-11T03:09:25Z

Yesterday I helped a friend to figure out why he couldn’t connect to his Amazon RDS database inside the Amazon VPC (Virtual Private Cloud).  It was the second time someone asked me to help with the Amazon Web Services (AWS), and it was the first time I was actually helpful.  Yey! While I do use quite … Continue reading Amazon RDS and Amazon Virtual Private Cloud (VPC) Yesterday I helped a friend to figure out why he couldn’t connect to his Amazon RDS database inside the Amazon VPC (Virtual Private Cloud).  It was the second time someone asked me to help with the Amazon Web Services (AWS), and it was the first time I was actually helpful.  Yey! While I do use quite a few of the Amazon Web Services, I don’t have any experience with the Amazon RDS yet, as I’m managing my own MySQL instances.  It was interesting to get my toes wet in the troubleshooting. Here are a few things I’ve learned in the process. Lesson #1: Amazon supports two different ways of accessing the RDS service.  Make sure you know which one you are using and act accordingly. If you run an Amazon RDS instance in the VPC, you’ll have to setup your networking and security access properly.  This page – Connecting to a DB Instance Running the MySQL Database Engine – will only be useful once everything else is taken care of.  It’s not your first and only manual to visit. Lesson #2 (sort of obvious): Make sure that both your Network ACL and Security Groups allow all the necessary traffic in and out.  Double-check the IP addresses in the rules.  Make sure you are not using a proxy server, when looking up your external IP address on WhatIsMyIP.com or similar. Lesson #3: Do not use ICMP traffic (ping and such) as a troubleshooting tool.  It looks like Amazon RDS won’t be ping-able even if you allow it in your firewalls.  Try with “telnet your-rds-end-point-server your-rds-end-point-port” (example: “telnet 1.2.3.4 3306” or with a real database client, like the command-line MySQL one. Lesson #4: Make sure your routing is setup properly.  Check that the subnet in which your RDS instance resides has the correct routing table attached to it, and that the routing table has the default gateway (0.0.0.0/0) route configured to either the Internet Gateway or to some sort of NAT.  Chances are your subnet is only dealing with private IP range and has no way of sending traffic outside. Lesson #5: When confused, disoriented, and stuck, assume it’s not Amazon’s fault.  Keep calm and troubleshoot like any other remote connection issue.  Double-check your assumptions. There’s probably lesson 6 somewhere there, about contacting support or something along those lines.  But in this particular case it didn’t get to that.  Amazon AWS support is excellent though.  I had to deal with those guys twice in the last two-something years, and they were awesome. [...]



PHP : Microsoft Office 365 and Active Directory

2016-12-11T02:26:33Z

Disclaimer: I am not the biggest fan of Microsoft.  On the contrary.  I keep running into situations, where Microsoft technologies are a constant source of pain.  If that annoys you, please stop reading this post now and go away.  I don’t care.  You’ve been warned. A few recent projects that I’ve been working on in … Continue reading PHP : Microsoft Office 365 and Active Directory Disclaimer: I am not the biggest fan of Microsoft.  On the contrary.  I keep running into situations, where Microsoft technologies are a constant source of pain.  If that annoys you, please stop reading this post now and go away.  I don’t care.  You’ve been warned. A few recent projects that I’ve been working on in the office required integration with Microsoft Office 365.  Office 365 is a new kid on the block as far as I am concerned, so I had no experience of integrating with these services. The first look at what needs to be done resulted in a heavy drinking session and a mild depression.  Here are a few links to get you started on that path, if you are interested: Get Started with Windows Azure Active Directory (Developer Preview) PHP Calendar API Sample PHP Connect sample using Microsoft Graph Logging into Office365 email using PHP Using PHP and LDAP to connect to Microsoft Office 365 We’ve discussed the options with the client and decided to go a different route – limit the integration to the single sign-on (SSO) only, and use their Active Directory server (I’m not sure about the exact setup on the client side, but I think they use Active Directory Federation Services to have a local server in the office synchronized with the Office 365 directory). Exposing the Active Directory server to the entire Internet is not the smartest idea, so we had to wrap this all into a virtual private network (VPN).  You can read my blog post on how to setup the CentOS 7 server as an automated VPN client. Once the Active Directory was established, PHP LDAP module was very useful for avoiding any low-level programming (sockets and such).  With a bit of Google searching and StackOverflow reading, we managed to figure out the magic combination of parameters for ldap_connect(), ldap_set_option(), and ldap_search(). It took longer than expected, but some of it was due to the non-standard configuration and permissions on the client side.  Anyways, it worked, which were the good news. The client accepted the implementation and we could just close the chapter, have another drink, and forget about this nightmare.  But something was bothering me about it, so I was thinking the heavy thoughts at the back of my mind. The things that bother me about this implementation are the following: Although it works, it’s a rather raw implementation, with very limited flexibility (filters, multiple servers, etc). The code is difficult to test, due to the specifics of the AD setup and the network access limitations. There is a lack of elegance to the solution.  Working code is good, but I like things to be beautiful too.  As much as possible at least. So, I was keeping an eye open and I think today I came across a couple of links that can help make things better: adLDAP PHP library, which provides LDAP authentication and integration with Active Directory.  I don’t know how I missed it so far, but I think now things will be much easier and cleaner. Search Filter Syntax documentation on MSDN. This Reddit thread.  Yes, a lot of the things I’ve learned today are linked from it.  But it’ll be much easier for me to find all this information in my own blog, next time I’ll have to deal with Microsoft again. Public-facing LDAP server thanks to Georgia Institute of Technology, for testing connection and simple queries. Armed with this new knowledge, I’m sure the current working solution can be improved a lot – simplified with fewer lines of code, based on the much more robust and tested code base, and given a basic test script to make[...]



Winter is coming

2016-12-10T23:49:46Z

Big Picture shares a collection of beautiful photographs, themed “Winter is coming“.  Here is one to get you started.

Big Picture shares a collection of beautiful photographs, themed “Winter is coming“.  Here is one to get you started.

(image)




National Geographic: Best Photos of 2016

2016-12-10T23:50:37Z

National Geographic published its selection of the best photos of 2016. Here is a gallery of National Geographic’s 52 best images of the year—curated from 91 photographers, 107 stories, and 2,290,225 photographs. Some are, as always, absolutely amazing.  Some are not so much.  For a global collection of pictures, it’s surprising to find the word “Yellowstone” … Continue reading National Geographic: Best Photos of 2016

National Geographic published its selection of the best photos of 2016.

Here is a gallery of National Geographic’s 52 best images of the year—curated from 91 photographers, 107 stories, and 2,290,225 photographs.

Some are, as always, absolutely amazing.  Some are not so much.  For a global collection of pictures, it’s surprising to find the word “Yellowstone” mentioned 13 times on the page.

This one is my favorite:

(image)

Of those with people in them, I liked this one:

(image)

 




Taking the Pain Out of MySQL Schema Changes

2016-12-10T18:55:27Z

“Taking the Pain Out of MySQL Schema Changes” covers the following approaches to deploying MySQL schema changes: Schema Change in Downtime Role Swap (cluster setup) pt-online-schema-change The last one is the usage of pt-online-schema-change tool developed by Percona guys, as part of their Percona Toolkit – an Open Source set of command-line tools for MySQL.

Taking the Pain Out of MySQL Schema Changes” covers the following approaches to deploying MySQL schema changes:

  1. Schema Change in Downtime
  2. Role Swap (cluster setup)
  3. pt-online-schema-change

The last one is the usage of pt-online-schema-change tool developed by Percona guys, as part of their Percona Toolkit – an Open Source set of command-line tools for MySQL.




CakePHP 3 and the need for breadcrumbs

2016-12-10T14:32:48Z

I’ve been catching up with the CakePHP roadmap.  One of the tickets for the next release (CakePHP 3.3.10, scheduled for tomorrow), is this ticket, relating to the breadcrumbs navigation. When building applications with CakePHP, you have a couple of easy ways to generate breadcrumbs for the easier user navigation.  One, is to use HTML Helper, which … Continue reading CakePHP 3 and the need for breadcrumbs

I’ve been catching up with the CakePHP roadmap.  One of the tickets for the next release (CakePHP 3.3.10, scheduled for tomorrow), is this ticket, relating to the breadcrumbs navigation.

When building applications with CakePHP, you have a couple of easy ways to generate breadcrumbs for the easier user navigation.  One, is to use HTML Helper, which provides a quick and simple way.  The other, is to use a feature rich Breadcrumbs Helper, available since CakePHP version 3.3.6 (but not mentioned in the release notes).

Digging further down into templates, and best practices for user navigation, and different ways of styling breadcrumbs (Smashing Magazine, Hongkiat, UI Patterns), I thought – wouldn’t it be nice to have breadcrumbs navigation built into a human brain?

I mean, how many times did you catch yourself in some dark corner of the Internet, trying to figure out how did you get there?  If only humans had breadcrumbs navigation built into our brains, that would be so easy to trace back the steps.  Browser history can, of course, help, but with so many open tabs and several things happening in parallel, a flat list of tabs is not much help.




Minor release philosophy

2016-12-09T14:43:23Z

This bit from the WordPress Dev Chat Summary made me smile today: Minor releases will continue to follow the philosophy of trying to fix more bugs than we create. Simple, elegant and effective…

This bit from the WordPress Dev Chat Summary made me smile today:

Minor releases will continue to follow the philosophy of trying to fix more bugs than we create.

Simple, elegant and effective…




Database Engines Ranking

2016-12-09T06:40:12Z

DB-Engines.com provides some insight into some of the most popular database engines (312 of them to be precise).  Nothing too surprising there – Oracle and MySQL leading the charts, but it’s nice to have the numbers and trends. There are, of course, many different ways how the popularity can be calculated.  Their method is based … Continue reading Database Engines Ranking DB-Engines.com provides some insight into some of the most popular database engines (312 of them to be precise).  Nothing too surprising there – Oracle and MySQL leading the charts, but it’s nice to have the numbers and trends. There are, of course, many different ways how the popularity can be calculated.  Their method is based on the popularity of each engine in a variety of online outlets, from Google Search to social networks. Number of mentions of the system on websites, measured as number of results in search engines queries. At the moment, we use Google, Bing and Yandex for this measurement. In order to count only relevant results, we are searching for together with the term database, e.g. “Oracle” and “database”. General interest in the system. For this measurement, we use the frequency of searches in Google Trends. Frequency of technical discussions about the system. We use the number of related questions and the number of interested users on the well-known IT-related Q&A sites Stack Overflow and DBA Stack Exchange. Number of job offers, in which the system is mentioned. We use the number of offers on the leading job search engines Indeed and Simply Hired. Number of profiles in professional networks, in which the system is mentioned. We use the internationally most popular professional networks LinkedIn and Upwork. Relevance in social networks. We count the number of Twitter tweets, in which the system is mentioned. It seems objective and representative enough to me. [...]



WordPress now powers 27.1% of all websites on the Internet

2016-12-06T08:39:48Z

WordPress Tavern states: WordPress now powers 27.1% of all websites on the internet, up from 25% last year. While it may seem that WordPress is neatly adding 2% of the internet every year, its percentage increase fluctuates from year to year and the climb is getting more arduous with more weight to haul. Linking to … Continue reading WordPress now powers 27.1% of all websites on the Internet

(image)

WordPress Tavern states:

WordPress now powers 27.1% of all websites on the internet, up from 25% last year. While it may seem that WordPress is neatly adding 2% of the internet every year, its percentage increase fluctuates from year to year and the climb is getting more arduous with more weight to haul.

Linking to these statistics from W3Techs.  Impressive!

Those who think that WordPress is just a blogging system are far from the truth…




WordPress 4.7 Field Guide

2016-12-05T22:08:16Z

WordPress 4.7 is just around the corner (this month).  Here is a field guide, detailing what are the changes (and there are plenty!) and what to pay attention to during and after upgrade of your site, as well as what plugin and theme developers should check for the maximum compatibility with the upcoming release. WordPress 4.7 … Continue reading WordPress 4.7 Field Guide

WordPress 4.7 is just around the corner (this month).  Here is a field guide, detailing what are the changes (and there are plenty!) and what to pay attention to during and after upgrade of your site, as well as what plugin and theme developers should check for the maximum compatibility with the upcoming release.

WordPress 4.7 Field Guide

class="wp-embedded-content" sandbox="allow-scripts" security="restricted" src="https://make.wordpress.org/core/2016/12/05/wordpress-4-7-field-guide/embed/#?secret=WDwN7gt3Yn" data-secret="WDwN7gt3Yn" width="600" height="338" title="“WordPress 4.7 Field Guide” — Make WordPress Core" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">

Holly Molly, that’s a lot of changes!

Over 447 bugs, 165 enhancements, 8 feature requests, and 15 blessed tasks have been marked as fixed in WordPress 4.7.