Категория:

WEB

Темы:

PHP YII2 Firebird

Работа с базой данных Firebird из YII2

Так получилось, что мне понадобилось переносить интерфейс пользователя из связки Delphi + Firebird в WEB. Дабы не останавливать работу комплекса программ, решено было переносить формы постепенно, а для этого необходимо сохранить работу СУБД Firebird и подключаться к ней из web приложения. При разработке web-приложения я решил использовать фреймворк YII2.

На этапе разработки мне не нужен полноценный HTTP сервер, вполне сойдет Denwer или XAMMP, или что-то еще. Я выбрал XAMMP т.к. в Денвере давно не обновляется версия PHP, а руками заниматься его обновлением не хочется, идем по пути наименьшего сопротивления.

Изначально ни в XAMMP PHP, ни в YII2 нет возможности работать с СУБД Firebird, но при определенных танцах с бубном сделать это вполне реально. Итак, я буду полагать, что у Вас уже установлены: Windows 7 x64, XAMMP и YII2, Firebird 2.5.

Пути установки пакетов у меня (для себя вводите соответствующие корректировки):

  • Firebird 2.5 версия x64 (тип сервера значения не имеет) в C:\Program Files\Firebird\Firebird_2_5\
  • XAMMP установлен в D:\xampp\
  • YII2 установлен в D:\xampp\htdocs\yii\
  • БД расположена в пути D:\WORK\database\TBOT.GDB

Теперь можно начинать.

Категория:

WEB

Темы:

JavaScript Webix

Примеры создания форм с помощью Webix Framework

Веб дизайнеры частенько сталкиваются с необходимостью создания форм. Данная задача не простая, и может вызвать головную боль (особенно если вы делаете что-то не стандартное, к примеру, много-страничную форму). Для упрощения жизни можно воспользоваться фрэймворком. В этой статье я покажу вам несколько практических приёмов для создания форм с помощью фрэймворка Webix.

Webix — это JavaScript библиотека для создания пользовательского интерфейса, содержащая HTML5 компоненты, предназначенные специально для мобильных и десктопных приложений. Спектр компонент действительно велик и разнообразен: от самых простых кнопок до виджета SpreadSheet, позволяющего создавать интерфейсы типа Excel. Помимо коллекций, компонент пользовательского интерфейса, доступен механизм обработки событий, поддержка offline режима и куча других фишек. Вы так же можете создать свою тему оформления с помощью skin builder, воспользоваться инструментом visual designer для создания интерфейсов с помощью техники drag-and-drop, а так же поэкспериментировать с кодом в виртуальной песочнице. Помимо этого, возможности фрэймфорка подробно расписаны в документации.

Ранее мы уже рассказывали об основах работы с Webix.

Категория:

WEB

Темы:

Яндекс

Yandex Translate для Visual Studio Code

Начну с того, что использую vim в качестве редактора файлов. Все удобно и быстро, но есть некоторые проблемы которые выделил при длительном пользовании:

  • Нет асинхронности. Знаю что есть nvim — но он работает не так быстро и не так гладко
  • Сложность написания плагинов. Спорный конечно вопрос для разных гуру — но честно говоря так много «каши», не хватает модульности и какой то структурности из уже реализованных «велосипедов»
  • Когда слишком много плагинов vim стартует — нужно быть честным, довольно долго и это напрягает

Пользуюсь так же по основному своему хобби — Android Studio. Очень прожорлив этот IDE к ресурсам системы, процессор иногда сходит с ума обрабатывая очередной цикл gradle assembleDebug. 

Visual Studio Code испытывал скептически. Первое что удивило скорость запуска вместе с большой структурой проекта. Моментальный поиск по файлам и множество плагинов, отличный менеджер плагинов похожий на Sublime. Минимальная загрузка процессора.

Категория:

Windows

Темы:

Firefox AD

Категория:

WEB

Темы:

JavaScript HTML Webix

Введение в фрэймворк Webix

В этой статье мы бы хотели познакомить вас с фрэймворком Webix. Для демонстрации возможностей данного инструмента мы создадим интерфейс online аудио плеера. Не обольщайтесь — это всего лишь модель интерфейса. Исходный код доступен в демо и на странице GitHub.

Категория:

WEB

Создание RESTful сервиса на Meteor

Meteor привлекает простотой использования и возможностью очень быстро создать работающее приложение с минимальным набором функций. У Meteor — хорошо развитое сообщество. Есть множество полезных дополнительных модулей, которые не требуют сложной настройки, и могут быть использованы сразу после установки.

Есть хорошая документация, примеры и большое количество постов на форумах, вроде StackOverflow. Meteor — это full-stack фреймворк, который предлагает удобную и многофункциональную интеграцию сервера с клиентом. Так зачем же выходить за рамки этого взаимодействия, и создавать RESTful сервис?

Клиент-серверное приложение, по-сути, состоит из 2 независимых частей, которые которые взаимодействуют посредством определенного интерфейса. При этом каждая из частей клиент-серверного приложения может создаваться разными людьми или командами.

Разработчики клиентской части вовсе не ограничены использованием Meteor, они могут использовать любой другой JS фреймворк, клиент даже не обязательно должен быть написан на JS, это может быть к примеру приложение Android, написанное на Java, или iOS, написанное на Objective C.

Именно эти причины заставили меня выбрать Meteor для построения back end в моем проекте, и искать пути для создания RESTful сервиса на Meteor.

Категория:

Windows

Темы:

Outlook

Ускоряем автоматическую настройку почтового ящика Exchange в Outlook 2016

Функция автоматического обнаружения (Autodiscover) появилась еще в Exchange Server 2007. Основанная задача Autodiscover – возможность поиска почтовым клиентом почтового сервера Exchange и автоматического подключения почтового ящика. От пользователя Outlook нужно только указать свое email  и пароль, все остальное Outlook при помощи Autodiscover выполнит сам.

При тестировании нового почтового клиента Outlook 2016 при внешнем подключении к Exchange было замечено, что автоматическая настройка клиента может занимать несколько минут (в нашем случае около 8 мин). Проблема заключается в том, что Autodiscover отрабатывает слишком долго.

Категория:

WEB

Темы:

Google События

Google наказал продавцов авиабилетов за нарушение микроразметки

Google удалил из поисковой выдачи сниппеты, предназначенные для осуществления поиска авиабилетов, за нарушение правил микроразметки. Среди «пострадавших» значится несколько крупных зарубежных онлайн-сервисов.

Джон Миллер, инженер по качеству поиска Google, сообщил, что специалисты компании удалили из поисковой выдачи несколько расширенных сниппетов за нарушения «стандартов» микроразметки. Примечательно, что удаленные сниппеты были предназначены для поиска авиабилетов, но в размещенных в них данных о рейсах была применена «неправильная» разметка.

Google наказал продавцов авиабилетов за нарушение микроразметки

В частности, пострадали сниппеты целого ряда крупных сервисов онлайн заказа авиабилетов, в том числе Expedia и TripAdvisor.

Категория:

Разное

Темы:

PostgreSQL

Восстановление данных PostgreSQL после потери файла pg_control

Для обеспечения отказоустойчивости СУБД PostgreSQL, как и многие базы данных, использует специальный журнал, в котором ведет историю изменения данных. Перед тем как записать данные в файлы БД, сервер PostgreSQL аккумулирует изменения в оперативной памяти и записывает в последовательный файл журнала, чтобы не потерять их из-за непредвиденного отключения питания.

Данные в журнал пишутся до того как пользователь базы данных получит сообщение об успешном применении изменений. Этот журнал называется журналом упреждающей записи (Write-Ahead Log или просто WAL), а файлы журнала хранятся в каталоге pg_xlog. Также периодически PostgreSQL сбрасывает измененные аккумулированные данные из оперативной памяти на диск.

Этот процесс согласования данных называется контрольной точкой (checkpoint). Контрольная точка выполняется также при каждом штатном выключении PostgreSQL.

Информация о том, с какими внутренними значениями завершилась контрольная точка, хранится в файле global/pg_control и потому этот файл должен быть доступен СУБД еще до момента восстановления данных. Если PostgreSQL отключается нештатно, то изменения из файлов журнала (pg_xlog) применяются к файлам БД, начиная с позиции последней контрольной точки. Этот процесс называется восстановлением данных.

Категория:

WEB

Темы:

SEO HTTPs

Как HTTPs влияет на продвижение сайта

HTTP-протокол повсеместно используется в сети для получения данных с сайтов. Сообщения, переданные с помощью HTTP-протокола являются обычной текстовой информацией, что делает её уязвимой.

В первую очередь об этом стоит беспокоиться ресурсам, оперирующими персональной информацией пользователей, например, номерами кредитных карт, логинами-паролями и прочее. Для защиты от атак, основанных на прослушивании и подмене контента, был создан защищенный HTTPs-протокол, по сути являющийся обычным HTTP, но работающий через шифрованные транспортные механизмы SSL и TLS.

Но что, если ваш сайт не является сайтом платежной системы, банка или хостинга? Стоит ли заморачиваться переходом на HTTPs? Основной аргумент, из-за которого многие до сих пор не перешли на защищенный протокол — “у нас просто контент, мы не опериреуем персональными данными”. На этом моменте рассмотрим подробней, как злоумышленники монетизируют ваши сайты и ваших пользователей, а также подумаем, как это может влиять на SEO.

Почему HTTPS протокол лучше чем HTTP

Категория:

Windows

Темы:

Windows Server

Аудит удаления файлов и папок для Windows Server

Любой администратор Windows сталкивался с ситуацией, когда разъяренные пользователи хотят узнать, кто именно удалил мега важный файл с годовым отчетом в общей папке на файловом сервере. Эту информацию можно получить только при условии ведения аудита удаления файлов и папок на файловом сервере, иначе останется только восстановить удаленный файл из резервной копии (а вы их уже делаете?)  и развести руками.

Но, даже при включенном аудите удаления файлов, найти что-то в логах бывает проблематично. Во-первых, найти нужную запись среди тысячи событий довольно сложно (в Windows отсутствуют вменяемые средства поиска интересующего события с возможностью гибкой фильтрации), а во-вторых, если файл был удален давно, это событие может просто отсутствовать в журнале, т.к. было перезатерто более новыми.