Прошу ChatGPT объяснить как работает выражение меняющее местами два элемента массива:
Особенно понравилось про опечатку...
Особенно понравилось про опечатку...
В ClickHouse есть встроенная веб-консоль для работы с базой данных, позволяет лишь выполнять SQL-запросы, штука быстрая, удобная, просто открываешь в браузере сайт по адресу http://localhost:8123/ и можешь работать с базой данных.
Решил сделать аналогичную, для работы с другими базами данных, для реализации выбрал язык PHP, можно запустить где угодно, хоть на калькуляторе, даже если нет веб-сервера (php -S localhost:8089 pdoconsole.php). Можно закинуть скрипт на любой хостинг, где есть поддержка PHP, и работать на удалённом сервере. Получилась эдакий простой phpmyadmin, или pgadmin, для тех, кто предпочитает работать с базами данных через SQL. Поддерживаются все базы данных, что работают через библиотеку PDO.
Всё находится в одном файле pdoconsole.php, браузер загружает страницу одним HTTP-запросом, в дальнейшем SQL-запросы отправляются через AJAX (библиотека htmx.js), результат выводится в таблицу, в которой можно разворачивать столбцы одной строки, и смотреть их в виде строк. Оформление сделано на bootstrap5, поддерживается тёмная тема, можно работать даже со смартфона, вёрстка адаптивная.
В начале файла pdoconsole.php можно заменить ключ шифрования на случайную длинную фразу, ей шифруются данные подключения к базе данных, которые хранятся в cookie долгое время. История запросов хранится в sessionStorage браузера, стирается после закрытия вкладки. Можно работать одновременно с разными базами данных через параметр ?prefix=dbname
Исходный код и полное описание: https://github.com/ibnteo/pdoconsole
Дорогой Пикабу, пост без рейтинга. Уже почти год учусь на разработчика php, учусь своими силами, без курсов, в настоящее время уже пытаюсь рассылать отклики и делаю тестовые задания, но обратной связи ни от одной компании еще не получил. По обучению уже не знаю, как мне развиваться дальше.
Я изучаю PHP + laravel, знаю основы HTML, CSS, немного JS, Composer, MySql - могу делать запросы в бд извлекать и записывать данные, строить связи.
На github пока никаких проектов нет, но пользоваться умею, основные команды знаю.
Сейчас активно учу ООП.
Очень хотел бы поразбирать тестовые задания, которые я делал для компаний, понять, где ошибся, пройти виртуальное собеседование.
Очень хочу уже попасть хоть на какую-нибудь работу в it, даже самую низко оплачиваемую, хочу работать и набираться опыта.
Связаться со мной можно через телеграм paradokas.
Буду благодарен за любую обратную связь.
Как сделать своё рабочее место удобным и комфортным, а так же повысить свою производительность?
Как Вы предпочитаете писать код?
- В консоли Putty mcedit на веб-сервере под Linux/BSD напрямую
- В Far Manager
- В Eclipse PHP Developer
- Используете ломаный PHPStorm или другой платный редактор (почему?)
Как Вы предпочитаете редактировать файлы?
- Локально, веб-сервер под Windows
- Монтирую сетевую шару под виндой с Linux/BSD
- Использую WinSCP
- Иное решение
Используете ли Вы GIT?
- Да, вместе с github или другим облаком
- Да, вместе со своим локальным (домашним) репозитарием.
- Использую другую систему управления версиями
- Не использую.
Сколько у Вас мониторов?
- Один, переключаюсь вручную.
- Один, использую систему переключения между виртуальными экранами (типа "Куб Рабочих Столов")
- Два
- Более двух (расскажите, как у Вас организовано рабочее пространство)
По настройке Eclipse (при использовании библиотек адаптивной вёрстки, основанных на Bootstrap, находит в них кучу ошибок). Как избавиться? Или это нормально?
Верстаете ли Вы под Internet Explorer или нынче это уже не актуально?
Где почитать о правильной настройке Яндекс.Вебмастер?
Пишете ли Вы stub (заглушки) для проверки (например, для проверки соединения с БД)? Какие инструменты используете для ускорения разработки? Типа, готовые решения CRUD или что-то подобное? Какой JS-фреймворк предпочитаете и почему? Имеет ли смысл оставлять старые версии Bootstrap или лучше как можно скорее переходить на актуальные?
Имеет ли смысл изучать Symfony/Yii2 ? Не ломают ли сделанные на них сайты? Есть ли в этих решениях известные уязвимости? Не имеют ли сайты на таких решениях лишний вес и неповоротливость? Что по этому поводу почитать?
Что лучше использовать для распространения резервных копий?
- Ansible или другую систему управления конфигурациями
- GIT или другую систему управления версиями
- rsync или аналогичное решение
Что порекомендуете по SQL (MariaDB)?
- Что почитать по скорости и отличиям движков Aria и XtraDB (InnoDB)? Имеет ли смысл применение Aria?
- Что почитать по индексам?
Не техническая проблема, но... Как Вы боретесь с прокрастинацией?
Заранее благодарен! Всем добра!
B-дерево - это алгоритм индексирования, который используется в PostgreSQL. Он основан на идее разделения данных на несколько секций, которые называются узлами дерева. Каждый узел содержит набор ключей и ссылок на дочерние узлы. Поиск значения в B-дереве осуществляется путем последовательного перехода по узлам дерева, начиная с корневого узла, и сравнения искомого ключа с ключами в текущем узле. Этот алгоритм обеспечивает быстрое поиск, вставку и удаление данных, особенно в случае большого объема данных.
Узел дерева - это элемент структуры данных, который содержит информацию и ссылки на другие узлы. В B-дереве, каждый узел содержит набор ключей и ссылок на дочерние узлы. Корневой узел дерева является вершиной, откуда начинается обход дерева. Узлы ниже корня называются потомками. Каждый узел может иметь одного или несколько дочерних узлов, которые соответственно называются листьями дерева. Листья являются конечными узлами дерева и не содержат дочерних узлов.
B-дерево является структурой данных, которая может быть реализована в различных языках программирования, включая PHP. Чтобы реализовать B-дерево в PHP, вы можете создать класс, который описывает узел дерева и содержит методы для добавления, удаления и поиска элементов в дереве.
Некоторые из основных методов, которые вы можете реализовать в классе B-дерева в PHP, могут включать:
insert($value) - добавляет новое значение в дерево
delete($value) - удаляет значение из дерева
search($value) - ищет значение в дереве и возвращает true, если найдено, и false в противном случае
getMinimum() - возвращает минимальное значение в дереве
getMaximum() - возвращает максимальное значение в дереве
Важно отметить, что реализация B-дерева может быть сложной и требует некоторой предварительной
подготовки и знания алгоритмов и структур данных. Вам также может потребоваться протестировать и отладить ваш код для обеспечения корректной работы.
В PHP так же можно использовать сторонние библиотеки для реализации B-дерева, к примеру, "btree" или "B-tree" или "php-btree". Использование сторонних библиотек может значительно упростить процесс реализации B-дерева в вашем PHP-коде и обеспечить более надежную и оптимизированную реализацию.
Так же стоит отметить time complexity и space-complexity
Time complexity B-дерева обычно определяется как O(log n), где n - это количество элементов в дереве. Это достигается за счет того, что каждый узел дерева содержит не более t-1 ключей и t дочерних узлов, таким образом максимальная глубина дерева ограничена log(n/t).
Space complexity определяется как O(n), где n - это количество элементов в дереве. Это означает, что память, необходимая для хранения дерева, зависит от количества элементов в дереве. Каждый узел дерева содержит не более t-1 ключей и t дочерних узлов, поэтому количество узлов в дереве будет ограничено n/t.
Однако, необходимо учитывать, что в B-дереве также может быть использован дополнительный объем памяти для хранения информации о дочерних узлах и других метаданных.
"Introduction to Algorithms" авторы: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Эта книга считается одним из лучших учебников по алгоритмам и структурам данных и включает подробное описание B-дерева и других структур данных.
"Database Systems: The Complete Book" автор: Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom. Эта книга посвящена базам данных и включает подробное описание B-дерева и других индексных структур, используемых в базах данных.
"Algorithms in C++" автор: Robert Sedgewick. Эта книга предоставляет практическое руководство по алгоритмам и структурам данных на языке С++ и включает код для реализации B-дерева.
Спасибо за дополнения и замечания https://t.me/gasoid
Ещё больше полезной информации тут https://vk.com/work2oq
Тогда не было крутых и простых игровых движков как сейчас, да и в 10 лет катастрофически не хватало знаний и концентрации.
Потом пошли установки своих серверов для Lineage 2, просто поиграть с друзьями. Кода в этом было мало, но чувство, что ты создаешь что-то свое было неописуемо.
Далее был Warcraft 3 и создание карт. Это было так давно, что даже мамонты застали ту эпоху. Blizzard с их редактором научили меня простому порядку:
Событие - Условие - Действие
На самом деле это базовый принцип разработки:
Пользователь открыл сайт - Если пользователь не авторизован - Отправить его на страницу регистрации
Все остальное детали.
Первый раз действительно познакомиться с кодом мне удалось, когда появился SAMP (San Andreas Multiplayer). Разработка требовала знания просто языка PAWN и чтение документации разработчиков.
После появления уверенности в своих силах я начал изучать Java и PHP.
В Java я работал с VK API, хотел создать standalone клиент (Тогда еще его не было)
Спасибо тому специалисту поддержки, который ответил на мой вопрос. Если ты это читаешь - Спасибо тебе, ты мне очень помог!
Даже после того как я устроился работать в компанию, выбрав профессию PHP-разработчика я не отпускал мысль, что я найду способ создать игру.
Вернемся в наше время. Я создаю сервис обучения, в котором информация подана в виде игры для более понятного и интересного обучения. Но чего не хватает…
Конкуренция всегда была топливом для мотивации. Только встретив сопротивление, в сравнении с другим специалистом, ты можешь оценить свои способности.
После изучения сервисов, которые, якобы являются играми, но в то же время обучающей платформой и сотни часов залипания в одну точку, я понял как бы я хотел чтобы это выглядело.
Это будет дуэль алгоритмов двух людей, которые должны описать свои ходы еще до начала боя, в зависимости от ситуации на арене.
Я хочу поделиться с Вами, каждым этапом разработки в режиме онлайн, ведь на своем примере я могу лучше объяснить что такое программирование, рассказать о нюансах работы и вызвать у вас интерес к этой профессии.
В следующей статье я напишу какие сервисы в виде программируй-играй я нашел, чем они мне понравились или не понравились. И как они повлияли на мою будущую игру.
Всем доброго времени суток! Это мой первый пост, хотя пикабу я читаю уже не помню сколько лет. В общем я хочу переквалифицироваться в программисты. Решил пойти в бекэнд, выбрал язык PHP. Какие-то курсы не покупал, помогал в изучении друг и информация в открытом доступе. Пока какие-то серьезные проекты не делал, только решал различные задачи. Сейчас решил заняться трудоустройство, но обнаружил что на HH не так и много вакансий на джуна PHP, да и в тех вакансиях требования как к мидлу. Может быть смогу найти на Пикабу свою первую работу ну или советы как ее найти? Буду благодарен абсолютно любому фидбэку по трудоустройству на первое место.
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Сегодня в программе куки, сессии и азы ООП