MySQL: не дает вставить строку (даже для root)

Пришлось тут давеча переносить БД многопользовательской игры «Аллоды 2» с виртуалки (где все настроено) на выделенный сервак (где настраивать надо самому). Перенес БД, права в мускуле настроил, вроде работает все. Но. Не создаются новые персонажи.

Оказалось, что дело в параметре STRICT_TRANS_TABLES, который не дает автоматом устанавливать Читать далее →

Рубрика: MySQL | Оставить комментарий

PHP: простой запрос к базе данных MySQL, форма и кнопка

Начало работы с базами данных на PHP может показаться довольно сложным делом, если сразу пытаться «съесть слона» и делать слишком сложные запросы. Начнем с самого базового простого запроса к базе данных, чтобы понять общий принцип. Рабочий код, который можно скопировать, находится в конце поста.

Примеры:
1) вывести и напечатать одно значение из базы данных MySQL на PHP, в нашем примере мы будем извлекать имя седьмого игрока;
2) сделать на сайте форму (выпадающий список) с кнопкой, чтобы отправить выбранное значение из формы в программу и получить нужные данные из базы данных MySQL.

Читать далее →

Рубрика: PHP | 2 комментария

CSS: граница таблицы увеличена каждые 2-3 строки

Столкнулся с тем, что таблица с некоторой периодичностью рисует более толстые границы (сверху или снизу). Каждый вторая или третья строка таблицы имеет двойную границу:

Порыл через ‘inspect’ код css — не нашел лишних бордеров. В итоге, спустя плчаса выяснил, что это  проблема:

border-collapse: collapse;

Нужно поменять его на

border-collapse: separate;

При collapse граница между ячейками отображается одна и игнорируется cellspacing.

При separate — вокруг ячеек отображается своя собственная граница; в местах соприкосновения ячеек показываются сразу две линии.

В общем, благодаря collapse браузер может анализировать таблицу и убирать в ней двойные линии. Если у вас css трубочиста — скорее всего браузер напортачит, так что проще сидеть на separate.

Рубрика: HTML и CSS | Оставить комментарий

[Язык C] Приоритет операций

Как мне кажется, более удачно отформатировал приоритеты операций K&R:

→ ( )  [ ]  ->  .
← !  ~  ++   – –   +  –  *  &  (type)  sizeof
→ *  /  %
→ +  —
→ <<  >>
→ <  <=  >  >=
→ ==  !=
→ &
→ ^
→ |
→ &&
→ ||
← ?:
← =  +=  -=  *=  /=  %=  &=  ^=  |=  <<=  >>=
→ ,

 

Версия для печати (картинка весом 12Кб):

Читать далее →

Рубрика: С (Си) | Оставить комментарий

Python ООП — объектно-ориентированное программирование

Продолжаем практиковаться в программировании. После восьмой главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила принципы ООП и программные объекты / классы, пора переходить к практике. Сделаем домашнее задание вместе!

Краткий конспект ООП на Python

Программный объект — формальное представление реального объекта в языке программирования. Объекты создаются на основе классов. Читать далее →

Рубрика: Python | Оставить комментарий

Как переименовать расширение файла в Python

Задача: в папке лежит файл с расширением .raw и мне нужно переименовать этот файл на такой же, но с другим расширением .txt — как это делать?

Решение:
Нужно импортировать модуль os, у которого есть методы os.path.splitext() и os.rename(). Методом os.path.splitext() можно разделить исходный файл на две части — его имя и разрешение, которое попадает в квадратные скобки как [0] — имя и [1] — разрешение. Далее нужно просто склеить имя с новым разрешением через os.rename(). Читать далее →

Рубрика: Python | Оставить комментарий

[Язык C] Функция memcpy ()

Помню, что когда я увидел первый раз в коде функцию memcpy () — не понял, что это за неведомая зверушка. Никто и думать не думал написать комментарий, который ее объясняет (не, ну потом понимаешь, что эт логично.. не писать же в комментах что делает printf). При этом по всему коду этих memcpy было раскидано несколько сотен. Прямо вот пригорошни этих функций, как гроздья спелого винограда висят.. а как их скушать — непонятно. Комментарии в лучшем случае говорили что-то про копировать, что-то про память, буфер и другие умные слова.

Итак. Функция memcpy () — от англ. memory copy — копирует содержимое ячейки памяти из одной области в другую; при этом ячейки не должны пересекаться. Определяется при помощи #include <string.h>

memcpy(куда, откуда, размер); Читать далее →

Рубрика: С (Си) | Оставить комментарий

Python: Задачи и решения (Глава 7. Файлы и исключения. Игра «Викторина»)

Продолжаем практиковаться в программировании. После седьмой главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила работу с файлами, пора переходить к практике. Сделаем домашнее задание вместе!

Краткий конспект по работе с файлами в Python

Открыть и закрыть файл

open() — открыть файл и сообщить путь к директории;
open("файл", "r", encoding="utf-8") — открыть файл на чтение в кодировке Unicode. Читать далее →

Рубрика: Python | Оставить комментарий

WinMerge + Git = mergetool

Давно уже пользуюсь замечательной тулзой WinMerge, чего и вам желаю. И вот настала пора мержить конфликты на гите.. а встроенные тулзы или какие-либо альтернативные Git GUI оказались весьма косячными (протестировал десяток) для конкретно того, что мне нужно. В итоге, дешево-сердито оказалось сверять все в WinMerge.

Чтобы его юзать в файле C:\Users\<user>\.gitconfig добавляем: Читать далее →

Рубрика: Git | Оставить комментарий

Github: учимся работать с вилкой правильно

Рано или поздно в жизни каждого ммм… мальтузианина, допустим.. наступает момент, когда нужно учиться по-человечески работать с гитом. В частности заниматься садоводством — выращивать ветки, прививать их, подстригать и проч.

Ну я садовод-любитель и все всегда пушил в мастер. На танке в магазин за хлебом ездил так сказать. 

Но настала пора, когда важно, что побеги росли в нужную сторону… Допустим мы сделали форк (на сайте гитхаба кнопку нажать справа сверху) и.. Читать далее →

Рубрика: Git | Оставить комментарий

C++ Bulder: плагины

Удивлен, но в Борланде (который стал С++ Билдером) нет хоткея на дубликат строки.. ну это как ctrl+d в святом Notepad++. И вообще в Борланде все плохо с хоткеями их не переназначишь без бубнов.

Хорошо, что есть плагины:

  • китайское CnPack. Мейд ин чайна в хорошем смысле, камрады. К примеру, имеется годность в виде Ctrl+Alt+D, которая дублирует эти самые строки. Шпасибо вождям пролетариата за счастливое отрочество. 

Минус: штука весьма громоздкая, 100500 модулей, хрен найдешь что-нибудь.

  • Ищо один плагин на тему: GExperts. Хорош более человекопонятным интерфейсом. Будьте аккуратны — нужно для каждой версии RAD качать отдельную версию плагина; плагин для RAD 10.4 на 10.3 работать не будет (у китайцев такой проблемы нет).

Минус: нету ёклмн хоткея дубликации строк. Приходится привинчивать отсюда.

В общем, все не так гладко, но варианты есть. Отладка Борландом замечательна, но вот писать сильно удобнее в том же CodeLite.

Рубрика: IDE | Оставить комментарий

Жлобство домашнего интернета от <вырезано цензурой>

Ну просто ниже плинтуса провалился <вырезано цензурой>, клиентом «домашнего интернета» которого я имею несчастье быть. Не, в целом все у них устраивало, хотя у соседей интернет уже давно 500 Мбит/с, а у <вырезано цензурой> нет тарифов выше 100 Мбит/с.. Но я по своей консервативности (и лени) никуда не торопился; в конце-концов это частная контора, ни единого разрыва (почти). Но вот сегодня пришло миленькое письмецо от них:

Обновляем тарифы Домашнего интернета.
Мы стремимся поддерживать высокое качество услуг, поэтому с 23 апреля 2021 года обновляем тарифную линейку Домашнего интернета*.
По вашему договору <вырезано цензурой> обновятся условия тарифа. Теперь в него будет входить подписка «Семейная» в <вырезано цензурой> ТВ — а это более 3 000 фильмов, сериалов, мультфильмов и познавательных передач для всей семьи. Ежемесячный платеж составит 549 руб/мес. Смотрите то, что вы любите в высоком качестве и без рекламы на любом устройстве и вне зависимости от оператора! О том, как подключить подписку, мы расскажем в отдельном письме.
Выбрать другой тарифный план вы можете в личном кабинете.
*Изменения предусмотрены п 4.6 договора об оказании услуг связи <вырезано цензурой>.

*Жопа горит* Неслыханное скотство с которым я сталкиваюсь впервые за 25 лет в интернетах. Поменять тариф без согласия пользователя, прислав ему письмо счастья, уведомляющего холопа, что его интернет-хозяин решил повысить ставку оброка. Читать далее →

Рубрика: Остальное | Оставить комментарий

Склеить PDF бесплатно и в кайф

В общем, думаю не надо объяснять, что онлайн сервисы по склейке PDF — это мягко говоря небезопасно. Украдут все ваши секретные документы.

Посему надо клеить все на локалке. Ну и желательно в опен-сурсовом ПО. И вот есть оно.. встречайте: PDFSam

Годнейший софт, проверено.

Рубрика: PDF | Оставить комментарий

[phpbb] Страница заблокирована из-за ошибки 403 (доступ запрещен)

Заметил тут такой косяк с форумом одним — он не индексировался в Google Search.. пишет, скотина:
Страница заблокирована из-за ошибки 403 (доступ запрещен)
И хорошо, что заметил, т.к. давно уже была просадка посещаемости и я не понимал с чем это может быть связано. Оказалось, что в Яндексе форум отлично индексируется, а вот в Google его практически нет.

Начал копать, проверил все — robots.txt, .htaccess, настройки DNS — думаю, мейб где-то я ботов гугла отшиваю.

Оказалось, ларчик просто открывался — с какого-то бодуна у меня форумные права группы «Боты» не были проставлены. Ну вот вообще там права были сброшенный в null. А боты гугла по умолчания в эту группу закидываются; в то время как мудрый яша шерстит все ононимно и поэтому так этого косяка не было.

Короче, выставил права группы на «Боты» — и аллилуйа, все начало индексироваться. Далее пошел проверять другие свои форумы. На остальные все ок было.. ну как ок — стоял стандартный доступ «Для чтения». Тоже перенусул его на «ботов».

Итого, ищо один баг в копилку phpbb — сброс прав группы «боты» с какого-то неведомого бодуна.

Да пребудет с вами Chmod, по веки веков, админ.

Рубрика: phpBB | Оставить комментарий

Открыть .webp в Photoshop

Долгое время работа с файлами .webp была адом адским, приходилось конвертировать в .png . Но, чу! Аллилуйа, вот плагин для фотошопа, который позволяет работать с .вебп:

Качаем файл плагина WebPShop_x_x_x_Win_x64.8bi: https://github.com/webmproject/WebPShop/releases

Кладем плагин в папку: C:\Program Files\Adobe\Adobe Photoshop\Plug-ins

Рубрика: Photoshop | Оставить комментарий

Уменьшить громкость звуков Windows 10

Перманентное уменьшение звуков Windows 10. Делал для себя; делюсь:

  1. Закидываем в папку C:\Windows\Media  файлик 1.wav (эт дефолтный звук нотификации, который я сделал сильно тише)
  2. Заходим в «Звуки» Windows (пкм на иконку громкости винды справа снизу) и там назначаем этот звук на все нужные нам места
  3. Всё! Больше наши уши не болят от назойливых звуков Билли.
Рубрика: Windows 10 | Оставить комментарий

Повысить громкость видео без рендера

Накосячили с записью звука? Провод микрофона отошел и записалось на встроенный микр? Лень рендерить многочасовое видео ради повышения пары децибел? Ну или сделать все потише. Есть решение 🙂 

  1. Качаем ffmpeg (кто не хочет компилировать — качайте ffmpeg-release-full с одного из сайтов в разделе Downloads)
  2. добавляем ее папку bin в переменные среды ОС (в меню «старт» вбейте path, найдете Enviroment Variables, там в Path добавьте путь до папки бин)
  3. командной строкой (cmd) запускаем:
    ffmpeg -i <file.mp4> -vcodec copy -af «volume=10dB» <output_file.mp4>
  4. Если надо наоборот понизить громкость — делайте отрицательное значение.

Это конечно тоже занимает время, но процесс быстрее, чем в Adobe Premiere или других редакторах на порядки.

Рубрика: ffmpeg, Проблемы и решения | Оставить комментарий