БлогNot. Блог ПерСа

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

php графика javascript числа сервис программирование афоризмы личное россия политика общество эзотерика email mysql сервер шахматы картинка форматы игра random статистика c++ studio алгоритм форум психология mathcad образование деградация мошенничество книги математика дата excel принтер ретро java список рейтинг история сказка маразм словарь язык english firefox браузеры блог учебное тест все теги все комментарии


[1-15] [16-30] ... [1831-1845] [1846-1852]


Прикреплённое сообщение, правила и всё такое

Остеклить балкон, лоджию в Новосибирске? Проверено, Вам сюда

Encoding: Windows-1251 (Russian). Для полноценной работы блога нужны включённые в браузере картинки + JavaScript + Cookies.
Если картинки выключены, используйте эти ссылки: Поиск ::: Статистика ::: Помощь ::: E-mail ::: RSS ::: Nickolay.info
Ссылки, открывающие новое окно (вкладку), везде подсвечены.

Даже по законам Эрефии этот блог не является СМИ, все сообщения выражают личную точку зрения автора блога и являются оценочными суждениями, при этом любые совпадения мест, имён, названий и действующих лиц далеко не случайны. В блоге нет файлов, способных нанести вред Вашему компьютеру или мобильному устройству. Если Вам не исполнилось 18+, срочно отвалите отсюда, прикиньтесь ветошью и не отсвечивайте покиньте этот блог. Учтите, что читая его, Вы вторгаетесь на мою личную территорию :) Страница статьидалее...
19.01.2038, 15:15 [10727]


Простая столбцовая диаграмма на PHP

Все мы видели цветные столбики или строчки диаграмм на web-страницах, обычно они показывают результаты опросов и не только.

В заметке представлен простейший скрипт для построения горизонтальной гистограммы на основе маленького класса PHP и табличного элемента HTML.

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

Вот скрипт в работе, а вызвал я его здесь таким кодом -

<?php
 $arr = array (
  'Сделанные теги:'=>191,
  'Найденные баги:'=>67,
  'Два весёлых гаги:'=>2
 ); //Массив с парами данных "подпись"=>"значение"
 require_once('SimplePlot.php'); //Подключить скрипт
 $plot = new SimplePlot($arr); //Создать диаграмму
 $plot->show(); //И показать её
?>

Всё предельно просто, не так ли? :)

Дополнительным аргументом конструктора можно задать ширину основной ячейки со столбцами, по умолчанию эта величина равна 100 пикселам (см. в коде). Разумеется, можно сделать больше настроек, но это усложнит класс, который был нужен нам максимально компактным.

Вот полный код скрипта (файл SimplePlot.php): Страница статьидалее...
14.12.2017, 16:47 [14]


Разбиение числа на Javascript

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

Выберите значение:

Результат:

Страница статьидалее...
14.12.2017, 10:42 [16]


Javascript: числа в диапазоны и обратно

Скрипт понадобился мне для извлечения из текста информации о целых числах и диапазонах чисел, записанных в этом тексте (не знаю, как перевести на русский простое "range expansion").

В общем, 1-3 должно превратиться в 1,2,3, а -5--2,-4-0 в -5,-4,-3,-2,-1,0, если так понятней (интервалы объединятся, повторяющиеся числа удалятся).

Обратная задача также имеет смысл - например, из числового ряда 1,12,9,8,7 12 мы можем получить "упакованную" запись 1,7-9,12 - здесь также удалятся дубли, числа отсортируются, а любые три и более натуральных числа, идущие подряд, запишутся в виде диапазона число1-число2.

Вот небольшой сервис на Javascript, решающий задачу.

Из ввода берутся только целые числа, например, 1.5 или 1,5 превратятся в 1 и 5.

Кнопку "Распаковать" можно применять ещё и для фильтрации строки от повторяющихся числовых значений.

Код в том виде, что здесь приведён, не является обратимым, то есть упаковка строки, а затем её распаковка не обязана приводить к исходной строке. Это происходит потому, что разрешены любые разделители, а дефис может играть роль как знака перед целым числом, так и разделителя в диапазоне число1-число2.

Например, из строки

-6,-3 - -1

при её распаковке получатся диапазон (-6)-(3) и значение (-1), что приведёт к ряду

-6,-5,-4,-3,-2,-1,0,1,2,3

, упаковка же этого ряда даст диапазон

-6-3

Если нужно, диапазоны при распаковке "переворачиваются", то есть, диапазон 18-11 даст ряд 11,12,13,14,15,16,17,18, а 2-2 даст значение 2.

В коде любопытно, как сортировать и фильтровать массивы на Javascript, основные действия закомментированы.

Вот сервис в работе и исходник на момент написания, возможно, он не совсем точен, но мне для моей задачи хватило. Страница статьидалее...
13.12.2017, 17:14 [19]


Заметки с коммуникатора. 33. Май-декабрь 2017-го: "модель без будущего"

Что-то произошло, застравляющее начать новый отсчёт, точней, мы все знаем, что :)

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

Файл, как всегда, получен автоконвертированием лога с коммуникатора.

Государство вообще не должно строиться на обращённости в прошлое, такие государства не выживают.
Разумеется, уважение к предкам, традициям и истории необходимо, но оно не должно сводиться к постоянным попыткам ревизии этого прошлого под сегодняшние нужды, как у нас.
Николай Фёдоров, неапример, в своё время предложил пусть совершенно утопическую, но модель будущего для России.
У коммунистов тоже была такая модель, пусть насильническая и выморочная, но она позволила им продержаться 70 лет.
Владимир Мегрэ тоже, к примеру, предложил модель будущего, маргинальную, однако вполне законченную и понятную.
Что есть у нынешних? Ничего вообще. В этом всё дело, а не в крымнаше и ценах на нефть.

Страница статьидалее...
13.12.2017, 12:49 [25]


Почему Нижний?

Вот какой вопрос волнует наших уважаемых эзотериков. Даже письма пишут. Но почему мне-то? :)

Это моё "почему", а у них вот какое:

Почему об очередном "сроке" было объявлено не в Москве, не в родном для "вождя" Питере, не в Сибири, которой прирастают китайцы, не на "дальневосточном гектаре", наконец, а именно в Нижнем Новгороде?

Место любого толкового знакового события, как и его дата, конечно, выбираются неслучайно любой администрацией мира.

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

Самое очевидное - ГАЗ строился Фордом на деньги Рокфеллеров, хозяевам даётся успокоительная отмашка, что всё в порядке и под контролем. Тем более, хозяева недавно признали Иерусалим столицей Израиля, что откладывали 20 лет. А значит, будут новые ближневосточные войны. Сама мантра "ГАЗ" достаточно очевидна для понимания того, на что планируется опора. "Национальное достояние" будет рулить и далее.

Правда, радующиеся, что "мы идём по пути Америки" рассеянцы скрепной национальности напрасно видят себя на месте американского белого меньшинства - задавленного политкорректностью, идиотски-законнического, до предела дебилизированного и выхолощенного от каких-либо творческих или просто человеческих порывов (это всё уже есть и у нас), но содержимого в тепле и сытости (а вот этого не будет).

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

Кроме того, Нижний традиционно считается вотчиной либералов, там губернаторствовал убитый Немцов, оттуда вышли все эти кириенки и прочие весёлые комсомольцы ельцинского призыва. Лишний раз им напомнить, "за кого (якобы) народ" не помешает.

Нижний ассоциируется как с самобытной "реиндустриализацией", сормовскими рабочими и народными промыслами (заниматься которыми Путин советовал русским-индейцам), так и с "Матерью", Горьким и т.п. Горький тут точно не нужен, как и Сахаров, а вот архетип матери-Раши, на которой символически женат возомнивший себя величайшим в истории правителем (то есть, полностью "поехавший") "вождь" очень даже к месту.

Наконец, именно в Нижнем полезно напомнить "коллективному бессознательному", что Минина и Пожарского не будет, не будет и национального освобождения.

Ну и всякие мелкие личные приметы сатрапа, вроде того, что все важные заявления ещё с 2000-го он делает по средам или четвергам. Страница статьидалее...
10.12.2017, 15:43 [40]


Как перейти с MySQL на MySQLi?

Как известно, расширение MySQL, применяемое в большинстве скриптов на PHP, работающих с базой данных, с версии PHP 5.5 устарело, а с версии 7.0 будет удалено.

Легко ли для существующего сайта перейти на с MySQL на рекомендуемое MySQLi? Я считаю, что да, ведь формат БД не изменился, а процедурный стиль обращения к новым функциям сохранён, так что работа будет небольшой.

Во-первых, у большинства функций достаточно заменить имя типа mysql_select_db на имя типа mysqli_select_db, во-вторых, кое-где придётся поменять параметры (добавить идентификатор соединения или поменять параметры местами, как у mysqli_query против mysql_query), в-третьих, некоторые функции, не имеющие прямых аналогов в MySQLi, такие как mysql_result, можно "обернуть" в код, написанный при помощи новых рекомендуемых функций, например:

if (!function_exists('mysql_result')) {
 function mysql_result($result, $number, $field=0) {
  mysqli_data_seek($result, $number);
  $row = mysqli_fetch_array($result);
  return $row[$field];
 }
}

Кроме того, если вы не писали вызова mysql_connect перед каждым запросом, а применяли модуль, в котором собраны функции для работы с БД, достаточно будет поменять только этот модуль.

Например, приведённый по последней ссылке модуль db.php для работы с MySQLi изменится только следующим образом: Страница статьидалее...
09.12.2017, 15:06 [44]


Шахматные фигуры PNG размером 80x80 пикселов, для шахматных скриптов

Надеюсь, это завершающая шахматная заметка на ближайшее время :)

Все наименования файлов с фигурами - стандартные для шахматных фреймворков (chessboard.js, chess.js и т.д.) и программ, то есть:

Чёрные:
bB.png   слон
bK.png   король
bN.png   конь
bP.png   пешка
bQ.png   ферзь
bR.png   ладья
Белые:
wB.png   слон
wK.png   король
wN.png   конь
wP.png   пешка
wQ.png   ферзь
wR.png   ладья

Везде формат PNG 32bit с прозрачным фоном и размером 80 на 80 пикселов, некоторые очень старые смотрелки могут такое показать неправильно, но стандартные Paint или браузеры - нормально.

Сейчас в архиве лежат наборы фигур со стандартными наименованиями alpha, cburnett, cheq, leipzig, merida, uscf, wikipedia, каждый набор в папке со "своим" именем.

Посмотрите на красивые шахматные фигуры вместе с названиями наборов: Страница статьидалее...
08.12.2017, 15:30 [52]


Шахматная ходилка-2: теперь со стандартными библиотеками :)

Не так уж давно, лет 5-7 назад, моя старая добрая шахматная ходилка была вполне себе востребована. Но времена меняются, и пора собрать её версию на основе библиотек chess.js и chessboard.js, фактически, ставших сегодня стандартом для шахматных приложений на Web.

Новый небольшой сервис позволяет двигать мышкой шахматные фигуры начиная как со стандартной позиции, так и с любой позиции в формате FEN, которую Вы туда загрузите. Запись партии ведётся в стандартном формате PGN, файл PGN содержит стандартные теги и формируется "однострочным", для удобства вставки в шахматные смотрелки вроде ChessTempo или на форумы.

Ходы можно неограниченно отменять, если при розыгрыше партии произошла ошибка. Можно вернуться к начальной позиции кнопкой "Заново".

Единственное, чем приложение не похоже на другие мои поделки последних двух дней (Случайные шахматы-2, Ходы фигур) - реализация превращения пешки, которое chess.js при "ручной" игре не обрабатывает. В итоге несколько модифицировал и выдрал код для превращения пешки вот отсюда, его можно увидеть в секциях "Обработка превращения фигуры" файлов index.html и script.js. Для поддержки всплывающего окна превращения фигуры нужен также стиль css/pgnbuilder.css из приложенного архива.

Полный листинг исходников не прикрепляю, но их легко скачать в архиве .zip с этой страницы.

В режиме онлайн скрипт также можно будет всегда открыть по следующей ссылке: Страница статьидалее...
08.12.2017, 11:59 [58]


Случайные шахматы-2 или майним шахматную криптовалюту :)

На так давно я писал и даже переписывал код для генерации случайной шахматной игры самостоятельно или же извлекал его из базы удалённого сервера. С использованием библиотек chessboard.js и chess.js, ссылки на которые есть в предыдущей статье, задача становится куда приятнее для программирования.

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

Запустив на некоторое время этот скрипт у себя в браузере, вы способствуете накоплению статистики о процентах "случайных" побед в шахматах, возможно, по законам больших чисел, это соответствует и проценту побед при любой "непредвзятой" игре сторон, например, при выборе хода с помощью сколь угодно сложной оценочной функции. Страница статьидалее...
08.12.2017, 09:06 [76]


Изучаем ходы шахматных фигур

Посмотрел разработки опытного шахматного педагога (В.А. Полоудин, любезно предоставивший мне свои материалы), в частности, программки для изучения детьми ходов шахматных фигур.

Всё неплохо, но эпоха Visual Basic, Delphi, да и вообще stand-alone приложений давно прошла :)

Немного поработав вчера и сегодня, написал небольшой сервис для работы с фигурами на доске в режиме "перетащил и оставил".

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

Всё, что мне понадобилось - освежить в памяти примеры по chessboard.js и документацию по chess.js, эти замечательные библиотеки я уже использовал в "искусственном интеллекте" на Javascript.

Ниже показан сервис в работе, приведена содержательная часть кода и прикреплён архив с исходниками. Страница статьидалее...
07.12.2017, 11:33 [75]


Делаем "векторную" графику на Javascript

В том смысле, что канва будет менять размер вместе с окном браузера, а картинка перерисовываться после изменения размеров канвы. При этом размеры картинки должны зависеть от размеров канвы. У нас картинка будет состоять из единственной закрашенной окружности, но подход нетрудно расширить и на большее количество объектов.

Итак, в документе есть канва, размер которой не указан атрибутами тега <canvas>:

<canvas id="dynamicCanvas" style="background-color:black;"></canvas>

Этот размер будет установлен яваскриптом, расположенным ниже в документе:

<script type="text/javascript">
(function() {
 var canvas = document.getElementById('dynamicCanvas');
 var ctx = canvas.getContext('2d');
 var width = canvas.width = document.documentElement.clientWidth; //клиентская ширина окна
 var height = canvas.height = window.innerHeight; //а высота - из высоты окна
 //
 // здесь будет остальной код скрипта
 //
})();
</script>
<noscript>Нужен включённый Javascript для работы приложения</noscript>

Высота взята из объекта window, чтобы канва не оказалось маленькой высоты, если страница не наполнена содержимым.

Затем поставим слушатель события resize, который будет менять размеры канвы и вызывать функцию перерисовки через нужное количество миллисекунд, например, 100: Страница статьидалее...
06.12.2017, 14:11 [41]


Фонтан, который не заткнётся, он же на Javascript :)

Скрипт, чем-то похожий на фейерверк, только это фонтан, с учётом гравитации для "капель". Кое-что вынесено в настройки, кое-что нет, исходник, как всегда, можно посмотреть под катом, он прост и содержит комментарии к основным действиям, а вот скрипт непосредственно в работе:

Если "притормаживает" при открытии ленты, это связано с загруженностью её другими скриптами, на отдельной странице не должен :) Страница статьидалее...
06.12.2017, 12:52 [44]


C++: заполняем динамический массив случайными целыми значениями и реализуем простую сортировку

В коде формируется динамический целочисленный массив, содержащий значения из диапазона [0,range[, затем он сортируется простым "пузырькоподобным" методом и выводится в консоль. Для удобства функции обмена двух значений, сортировки массива и вывода массива в консоль представляют собой шаблоны. Более толковая для больших размерностей сортировка QuickSort показана в этой заметке.

Функция обмена элементов массива назвается swp, а не swap, чтобы избежать конфликта со стандартной и ошибки C2668. Страница статьидалее...
06.12.2017, 08:10 [44]


О чём написать Путину :)

В интервью с ГМ Наумкиным, весьма, кстати любопытной и колоритной личностью, главред Суров, возможно, не без иронии заметил: "Попробуйте написать письмо Владимиру Путину". Из этого вышла небезынтересная переписка, которую приведу здесь, чтоб не затерялась.

Завершил тему, как всегда, Салов, указав на "мессианский характер" явления.

Увы, простому человеку всей глубины идей Валерия Борисовича не понять, а вот ощущение, что он живёт пусть в бедном, несовершенном но своём государстве для него очень важно.

Именно это чувство - что у нас есть хоть плохонькое, но своё государство, мы в последние 5 лет и потеряли окончательно...

Опубликовано ПерС в 1 Декабрь, 2017 - 22:12.
> Попробуйте написать письмо Владимиру Путину
Мне кажется, так уж изощрённо издеваться над гроссмейстером Наумкиным не нужно :)

Опубликовано Володин Виктор в 1 Декабрь, 2017 - 22:34.
Во-первых, я не издеваюсь над гроссмейстером Наукиным, которого знаю боле 20 лет. Мгорь - очень приятный человнеК, и с чувством юмора у него всё в порядке! (как со всем остальным!!) А во-вторых, я стараюсс не писать Путину более двух раз в году! (Ему надо и свалки закрывать, и в семьи погрельцев в гости заходить ..) а в 2017 году я обратился к Путину уже 3 раза! Путину не легче, чем ММ!

Опубликовано ПерС в 2 Декабрь, 2017 - 08:59.
Уважаемый Виктор, я цитировал не Вас, а Сурова, что ясно видно из текста интервью. Да, и в конце моей реплики стоит смайлик, что как бы намекает не воспринимать её слишком всерьёз :) Что же до писем Путину, мне кажется, Вам не нужно так себя ограничивать. Пишите ему больше и чаще, пишите так, чтобы негодяй, метаясь по мокрым от пота подушкам, всю ночь не мог сомкнуть глаз, в ужасе думая об одном – «нет ли письма от Володина?!» :)

... Страница статьидалее...
03.12.2017, 21:49 [56]


[1-15] [16-30] ... [1831-1845] [1846-1852]

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход