Monday, 26 February 2018

SQL - разница между INNER JOIN и OUTER JOIN.

Всем привет.

Совсем недавно на собеседовании мне был задан вопрос по SQL. Ну кто же его, или про него, не знает. Чаще всего строится ассоциация с запросами типа SELECT. Но оператор SELECT весьма многогранен. Лично меня часто смущали условия типа JOIN, как внешние так и внутренние. Поэтому я решил прояснить это вопрос. Может и вам пригодиться.

В чем же разница между INNER JOIN и OUTER JOIN?

В SQL есть два типа оператора JOIN: INNER JOIN и OUTER JOIN. OUTER JOIN тоже может быть двух видов: LEFT JOIN и RIGHT JOIN. Главная разница между INNER JOIN и LEFT JOIN в том, что в первом случае из обеих таблиц выбираются только подходящие записи, а во втором случае из первой таблицы выбираются все записи, а из второй только подходящие. Всегда обращайте внимание на запросы с «ALL», потому что они, как правило, требуют LEFT JOIN, например, запрос, который требует найти все отделения и количество работников в них. Если вы используете INNER JOIN, то пропустите пустые отделения, в которых никто не работает. FULL JOIN логично объединяет обе таблицы. Существует еще запись CROSS JOIN, но она используется редко.

А теперь наглядно.

В тексте запроса можно опускать INNER если указан только JOIN. И OUTER если используете LEFT JOIN или RIGHT JOIN.

Также бывает полезно знать командную строку логина к популярным СУБД. Ниже маленькая справка.

Oracle: default port 1521
Connection: sqlplus username/pass@host:port/service

MSSQL: default port 1433
Connections:
до 2005-го: osql.exe -U <login> -P <password> -i <inputfile> - выполнить файл используя указанный login/password
C 2005-го:  sqlcmd -S server1\SQLExpress -U SqlUserAccount -P SqlPassword

MySQL: default port 3306
Connection: mysql -h host -u user -p

Firebird: default port 3050
Connection: isql [режимы] [имя-базы-данных] [-u[ser] <имя-пользователя> -pas[sword] <пароль>]

Успехов.

Monday, 19 February 2018

PortQry - бесплатный сканер сетевых портов.

Всем привет.

Некоторые проекты в недрах Microsoft могут быть отложены или даже стать историей. Иногда не заслуженно. Одним из них был проект по созданию простого сканера сетевых портов под публичным названием PortQry. Последний релиз про Portqry 2.0 Features and Functionality был здесь http://support.microsoft.com/?id=832919.

Остановимся на характеристиках PortQry и методах его использования. Кто знает, может это именно тот инструмент которого нам не хватает в нужную минуту).

Для большинства соединений в компьютерных системах используются протоколы TCP и UDP. Все версии Windows открывают множество портов, обеспечивающих возможность выполнения полезных функций, в частности совместное использование файлов и вызов удаленных процедур (RPC). Однако программы-"трояны" могут злоупотреблять портами, открывая лазейки для нападения на компьютеры. Как для диагностики необходимых сетевых служб, так и для обнаружения вредных программ нужно уметь управлять трафиком между компьютерами сети. Первый шаг к этому - обнаружить программы, прослушивающие сетевые порты в компьютерах.

С помощью анализатора сетевых портов, такого как Nmap, можно выявить приложения и сетевые службы, установленные на компьютере, и слушающие порты. Например, при сканировании Web-сервера будут обнаружены открытые порты 80 и 443. Некоторые анализаторы портов позволяют запросить из открытого порта информацию о прослушивающем приложении. Обычно в ответ на запрос поступает текстовый баннер, который содержит информацию о приложении. Однако баннер может быть ложным. Например, захватив баннер, сканер анализатора может сообщить, что порт 80 прослушивается программой Apache. Если используется только Microsoft IIS, это сообщение должно вызвать подозрение, что какая-то другая программа маскируется под Apache. В зависимости от результатов проверки может возникнуть необходимость зарегистрироваться в системе и непосредственно определить приложение, прослушивающее этот порт.

Windows Server 2003 и Windows XP позволяют установить соответствие идентификаторов процессов (processidentifier, PID) с открытыми сетевыми портами. С версии XP, компания Microsoft модернизировала Netstat, которая поддерживает корреляцию PID - сетевое соединение, однако в программе по-прежнему есть изъяны. Например, Netstat показывает только PID, но не имя процесса. Чтобы узнать имя процесса, необходимо установить соответствие имени и PID с помощью такого инструмента, как TaskManager.

Менее известный инструмент поможет осуществить исследование и анализ сети. Это PortQry, сканер сетевых портов, ориентированный на продукты Microsoft и располагающий функциями мониторинга хостов локальной сети.

Обзор PortQry

PortQry 2.0 совместим с Windows 2003 и выше. Он отображает состояние портов TCP и UDP на локальной или удаленной машине. По функциональности PortQry уступает большинству других сканеров сетевых портов, таких как Nmap или бесплатные SuperScan и ScanLine компании Foundstone. Но если запустить PortQry в локальном режиме на Windows 2003, то программа установит соответствие между открытыми портами и сетевыми приложениями-слушателями вплоть до уровня DLL. Кроме того, отчеты PortQry более насыщены информацией, чем отчеты Netstat.

При работе в дистанционном режиме PortQry показывает, закрыт или открыт данный порт. Для некоторых портов, например, LDAP (LightweightDirectoryAccessProtocol — упрощенный протокол доступа к сетевым каталогам) и RPC, PortQry выдает дополнительную информацию о прослушивающей службе. Например, при запросе LDAP порта UDP 389 PortQry передает полезную информацию о службе LDAP, в том числе о ее схеме, конфигурации и контекстах именования корневого домена; версии LDAP; хост-имени DNS.

PortQry - инструмент командной строки. Однако отдельно распространяемая программа PortQueryUI, которая рассматривается ниже, дополнена графическим интерфейсом для PortQry и несколькими функциями, облегчающими работу с продуктом.

Thursday, 15 February 2018

Баланс торрента.

Привет.

Хозяйке на заметку. 

Многие из нас любят торренты. Не только из-за того что так можно быстренько скачать нужный фильм для домашнего просмотра, но также для того что только так, к сожалению, можно оперативно найти и оценить нужный видео-курс. С этим активно борются правообладатели, но цель моего поста не очередное бла-бла про копирайт, а про баланс вашего торрент-клиента между скачиванием и раздачей.

К чему такой баланс, спросите вы. А дело в том что торренты доступны везде, даже в Европе. А там любят блюсти законы цифровых продуктов. Так что, мне нельзя там этим пользоваться? Или мой провайдер их закроет для меня? А вот и нет, пользоваться можно. Т.е. скачивать для внутреннего употребления. А вот раздавать не следует. Как же так? Ведь суть торрента  в том что первый же закаченный килобайт становится на раздачу. Даже не дожидаясь конца всей закачки. В том то и дело что ваш торрент-клиент должен быть настроен так чтобы раздача не велась с вашего адреса.

Часто в сети попадаются советы как просто сказать текущему торренту Stop сразу после окончания загрузки или установить что-нибудь из области "Auto-shutdown when complete". Это не подходит по причине которую я вам назвал чуть выше. Первые килобайты уже убежали.

Ограничить скорость раздачи до нуля? Настройки клиента, mTorrent к примеру, такого не предусматривают.



Saturday, 3 February 2018

Калькулятор расчета диагонали LCD телевизора.

Всем привет.

Несмотря на то что такая вещь дома как телевизор сейчас уступает место интернету он все равно есть. Редкая семья его не имеет. Можно и не смотреть наши новости, но телик все равно есть. Тем более что его функционал сейчас используют как угодно, особенно если есть функция SmartTV. Но большое значение имеет размер этой самой диагонали. И совсем не обязательно полагать что чем больше тем лучше. У нас дома же не царские хоромы. Правильный размер диагонали телевизора зависит от его разрешения и расстояния с которого вы его будет смотреть. Если пренебречь чем то из этих двух параметров то у вас будет либо дискомфорт просмотра либо вы легко испортите себе зрение. 

Поэтому вот вам онлайн калькулятор расчета необходимой диагонали вашего телика:



За основу расчета берем следующее. Если у вас есть уже телевизор, то введите размер его диагонали в дюймах (Screen size) и выберите разрешения входного сигнала который поступает на ваш телевизор (Choose resolution). Внизу вы увидите лучшее расстояние для просмотра.

У вас именно так? Поздравляю. Если нет, есть повод задуматься. Или переставить(перевесить) мебель, или купить.. новый телевизор. Какой размер?

Возвращаемся к калькулятору. Вводим разрешение входного сигнала (Choose resolution) и желаемую диагональ будущей покупки. Вы же его давно присмотрели в интернете. Получаем расстояние для просмотра. Есть такая возможность? Отлично. Если нет то пробуйте исходить из вашего удобного расстояния (Siting distance до дивана) и тогда получите оптимальную диагональ будущего "друга" на вечер. А там решите что вам важнее, ваш бюджет или комфорт.

Успехов.

Friday, 2 February 2018

Изменения в партнерке Youtube.

Всем привет.

Вот нам везет. Недавно Youtube принял решение обновить свою экосистему и таким образом отсеять слабо-прибыльные каналы. Бизнес есть бизнес.)

В оригинале это звучит так -
Today we are announcing changes to the YouTube Partner Program (YPP). While our goal remains to keep the YPP open to as many channels as possible, we recognize we need more safeguards in place to protect creator revenue across the YouTube ecosystem. 

What's Changing
Under the new eligibility requirements announced today, your YouTube channel, Nyukers, is no longer eligible for monetization because it doesn’t meet the new threshold of 4,000 hours of watchtime within the past 12 months and 1,000 subscribers. As a result, your channel will lose access to all monetization tools and features associated with the YouTube Partner Program on February 20, 2018 unless you surpass this threshold in the next 30 days. Accordingly, this email serves as 30 days notice that your YouTube Partner Program terms are terminated. 

В переводе это звучит так - ваш канал должен иметь не менее 1000 подписчиков и 4000 часов просмотра за год. Как минимум! Если есть такое то подаете заявку, которая будет рассмотрена в течение месяца и вам вернут статус партнера. Если нет, то после 20-го февраля статус с вас снимается и соответственно вы не сможете больше зарабатывать на своих видео показом рекламы. Если в перспективе выполните эти два требования то опять же сможете подать заявку.

Не нашел я ответа, что же будет с той суммой дохода которая уже набежала до 20-го февраля. Неужели как раньше, просто свистнут? Ну это уже ни в какие ворота.(

Поживем увидим.

Thursday, 1 February 2018

Табличный вывод в LogParser-е.

Всем привет.

Все таки Microsoft LogParser вещь стоящая. Плюс к этому такой инструмент еще и бесплатен. Его изучают даже в курсе этического хакинга.

Проходя по своим SQL-скриптам  LogParser-a, обновляя некоторые встроенные функции я обнаружил интересный вывод, т.е. табличный вывод.  Задается он просто параметром DATAGRID.

Пример запуска: LogParser.exe file:%1 -i:FS -o:DATAGRID

где сам SQL-запрос:
SELECT TOP 10 *
FROM D:\oracle92\*.*
ORDER BY Size DESC

И получаем всплывающее окно


Красиво? Возможно. Полезно? Увы, полезного тут ничего не оказалось. Ни сортировать данные, ни фильтровать данные здесь как в  Out-GridView Powershell возможности нет.

Такие дела.


Версия на печать

Популярное