Коварство NOT IN в SQL (следите за NULL!)

Некоторые вещи в SQL совсем не интуитивны. Я уже писал про пагубность сравнения с NULL в SQL, но недавно снова наступил на эти грабли. Иногда в сложных запросах не всегда очевидна природа данных. Скажем, есть у вас некая таблица customers:Продолжить чтение →

Как называть свои функции и методы

Опыт программирования для больших проектов на PHP и JavaScript подсказывает, что подбор названий функций и методов очень важен. Да, часто нехватка времени и/или лень и/или усталость приводят к таким названиям, как checkOtherThings() или handlingSomeArrayStuff() или даже cb(). Чем это плохо? Код работает, лень удовлетворена, заказчик/начальник довольны, о чем и говорить? Однако, все это чревато отложенными проблемами и часами, потраченными впустую. Если потом кто-то будет работать с вашим кодом, заниматься отладкой или расширением функционала, он вас точно не поблагодарит за doSomeStuff() и putArToOtherAr(). Этим «кем-то» всегда можете оказаться вы сами через месяц или год. Если сейчас вы чувствуете себя в своем коде, как рыба в воде, то через пару месяцев, вероятно, вы не вспомните даже, зачем вообще весь этот модуль был нужен.

Продолжить чтение →

Как проверить наличие значения в массиве PostgreSQL

Такая задача как проверка наличия определенного значения в массиве только кажется простой и однозначной. В PostgreSQL до версии 9.5 отсутствовала специальная функция для этих целей. Вы можете искать вхождение одного массива в другой, получать пересечение двух массивов и т.д., но не искать одиночное значение в массиве. Начиная с версии 9.5, такая функция присутствует.Продолжить чтение →

Идеальная программа для GTD. Или чем RememberTheMilk лучше TickTick и Todoist

Remember The MilkЯ долго шел к Remember The Milk. По пути я протестировал много программ для управления задачами/делами в стиле GTD (Getting Things Done). Двумя из лучших из них я пользовался существенное время: TickTick и Todoist. Они действительно лучшие, имеют красивый и удобный интерфейс, синхронизируемы между всеми вашими устройствами, могут похвастаться превосходным функционалом. Однако, мои требования к такого рода программному обеспечению очень многосторонни. В итоге, бесспорным лидером оказался первопроходец в этой сфере Remember The Milk.

Продолжить чтение →

Уютная Далмация

Вид на Макарска из парка Осеява
Вид на Макарска из парка Осеява

Куда можно поехать из России в сентябре с двухлетним ребенком, чтобы было море, солнце, культурные достопримечательности, спокойно, интересно, но и не очень дорого? Хорватия — чудесный вариант — решили мы и отправились в путь. Три города: Трогир, Макарска и Сплит в центральной Далмации — лежали на нашем пути.

Продолжить чтение →

Поиск простых чисел на PHP

Простые числа — это натуральные числа больше 1, которые делятся только сами на себя или на 1. Часто возникающая (например, при шифровании данных) задача — найти все простые числа от 2 до заданного N. Для этого придумано несколько алгоритмов разной эффективности. Давайте рассмотрим их реализацию на PHP.

Продолжить чтение →

Почему мы считаем десятками, а в году 12 месяцев, или о происхождении систем счисления

Почему мы считаем десятками (это называется десятичной системой счисления) — не сложный вопрос. На двух руках у нас десять пальцев, а все мы с детства привыкли считать, последовательно загибая пальцы. Видимо, наши предки так же осваивали премудрости арифметики, а когда десяти стало явно не хватать, то для новых систем счета и записи чисел число пальцев на руках стали использовать в качестве базовой единицы кратности. И тут я задумался, почему же тогда у нас в году 12 месяцев, почему в английской системе мер часто считают дюжинами, откуда вообще взялось число 12 в качестве такой основы. Не 11, не 13, а именно 12. А в некоторых культурах использовалась даже 60-ричная система. В чем природа этих явлений?Продолжить чтение →

Don’t be annoyed, о разнице между глаголами annoy, irritate и disturb

Смыслы

Глаголы annoy, irritate и disturb похожи и часто пересекаются в употреблении, однако, между ними есть и существенная разница.

Если что-то раздражает продолжительное время или постоянно, особенно, если на это нельзя повлиять, то оно irritate или frustrate. Например, This crowd on my way to the office irritates me every day.Продолжить чтение →