Найти тему
Обзор механической клавиатуры Keychron k2 v1
1. Введение. В сети много обзоров данной модели механической клавиатуры, зачем нужен еще один? Во-первых, почему нет?! Во вторых у них есть одна особенность - обзоры пишутся людьми которым клавиатура достается на несколько дней, а так как являюсь обладателем Keychron K2 уже несколько лет то решил написать этот обзор, в свое время он бы мне помог. Для кого этот обзор? Для тех кто рассматривает данную клавиатуру в покупку на длительный срок. В этой статье я не буду описывать характеристики (как переключать...
1 год назад
Http client на java
Хочу представить учебный пример Http Client'а написанного на java без использования сторонних библиотек. Если вы прочитали заметки по java.net и разобрались в клиент-серверном взаимодействии, то трудностей, как минимум в понимании, у вас не возникнет. Немного терминов: API - программный интерфейс приложения (application programming interface), описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой. HTTP - (HyperText Transfer Protocol) протокол прикладного уровня передачи гипертекста...
1 год назад
Java. Да это же чатик!
Почему такое название? Громкое? Глупое? Давайте не будем спешить с суждениями, а разберем по порядку пример и сделаем выводы в конце. Поехали... Возьмем наш предыдущий пример из поста "Пакет java.net что ты такое?", у нас остался не решенный вопрос. После того как клиент, устанавливал соединение с сервером, присылал сообщение и сервер ему отвечал, последний завершал свою работу и больше не мог принимать соединения от клиента. Как это изменить? По сути сообщение !pong было для сервера кнопкой выключения...
1 год назад
Пакет java.net что ты такое?
Какой современный язык не может работать с сетью? Спросите вы, а может быть и не спросите, да и какая разница если из заголовка понятно что мы собираемся говорить о Java =) Попробуем разобрать некоторые классы пакета java.net и посмотреть что они могут. Разберем классы ServerSocket и Socket. Для этого напишем два мини приложения. Первое это Сервер который принимает сообщение "!ping" и отправляет ответ "!pong". Второе это клиент который отправляет непосредственно нужное сообщение. Сервер: Клиент: Запустим сначала сервер, точка входа метод main(String[] args) класса PongServer...
1 год назад
YAK Pro - PHP Обфускатор. Используем docker
Настало время обновить заметку по YAK Pro. Понадобился как то YAK Pro, а так как давно не пишу на php, не хотелось устанавливать его в операционную систему. И тут вспоминаем про docker. Изначально попытался сделать свой образ, запаковать в него сам обфускатор, файл который необходимо "закодировать", и конечно же образ php, точнее нам будет достаточно php-cli (Command Line Interface). Но прочтя документацию, нашел способ интересней и более подходящий мне. Приступим. Подразумевается что git и докер у вас уже установлен...
1 год назад
CakePHP: Как добавить проверку в div если вы используете Хэлперы
Продолжение к заметки на тему - CakePHP: как сделать блок внутри блока, используя "Хэлперы". Если вы используете конструкцию вложенных блоков: echo $this->Html->div('grop',       $this->Html->div('form-grop',            $this->Html->link('Names List', '#', array('class' => 'button-set')) .            $this->Form->input('realtor_name', array('readonly' => 'readonly', 'value' => $name[0], 'label' => false, 'div' => false, 'type' => 'textArea', 'id' => 'add-after'))     ...
1 год назад
CakePHP: как сделать блок внутри блока, используя "Хэлперы"?
Как добавить в представление (View) простой блок DIV? Так: $this->Html->div('className', null, array('id' => 'success-peditor')); HTML: <div id="success-peditor" class="className"></div> А как же написать подобный HTML? <div class="get-message">       <div id="success-peditor" class="success">Success.</div>       <div id="error-peditor" class="error">Error.</div>       <div id="warning-peditor" class="warning">Warning.</div> </div> Все просто, нужно воспользоваться оператором конкатенации "...
1 год назад
YAK Pro - PHP Обфускатор. Установка и использование на примере в CentOS 7
Настройка: 1. Для начала нужно установить пакеты git и php-cli (интерфейс командной строки): # yum install git # yum install php-cli 2. Перейдите в каталог, где вы хотите установить yakpro-po (к примеру: /usr/local): # cd /usr/local 3. Извлеките копию из GitHub: # git clone https://github.com/pk-fr/yakpro-po.git 4. Перейдите в каталог yakpro-po: # cd yakpro-po 5. Извлеките из GitHub парсер: # git clone https://github.com/nikic/PHP-Parser.git 6. Убедитесь, что yakpro-po.php имеет права выполнения, иначе: # chmod a + x yakpro-po...
1 год назад
PHP: Быстрая сортировка
Быстрая сортировка работает намного быстрее сортировки выбором. Разберем пример: 1. Выбрать опорный элемент. 2. Разделить массив на два под массива: элементы, меньшие опорного, и элементы, большие опорного. 3. Рекурсивно применить быструю сортировку к двум под массивам. Помним что пустой массив и массив с одним элементом сортировать не нужно, его мы просто возвращаем - базовый случай...
1 год назад
CakePHP 1.x как вставить тег (span) в Html->link
Как добавить тег span в ссылку a, CakePHP 1.x? Добавить параметр escape значение false, что бы наш Тег не отображался как текст. Тег span: $this->Html->tag("span", __("live", true), array("class" => "cdn-live", "style" => "display:none")); Добавить Тег span в текст с помощью конкатенации - ".": echo $this->Html->link(__("CDN " . $this->Html->tag("span", __("live", true), array("class" => "cdn-live", "style" => "display:none")), true), array("controller"...
1 год назад
CakePHP: как определить вход с мобильного устройства
Что бы определить загрузил пользователь страницу с мобильного устройства в CakePHP можно воспользоваться стандартным Помощником (Helper) - RequestHandler. Если нужно определять устройство на всех страницах, подключим в AppController helper - RequestHandler: public $helpers = array('RequestHandler'); Добавим метод: private function isMobile() { if ($this->RequestHandler->isMobile()) { $this->is_mobile =...
1 год назад
Бинарный поиск с примером на PHP
Что если я попрошу вас угадать число от одного до ста, как вы будите это делать при условии что, я буду говорить это число больше или меньше предложенного вами варианта? Если вы спросите - это число 50? И после получив ответ будите отбрасывать часть массива и снова делить оставшуюся часть на два, Вы правы! В этом случае О-большое будет равно O(log2 100). О-больное - это время выполнения алгоритма, оно выражается в количестве операций (O(log n))...
1 год назад