1598309040
Сегодня любой желающий может воспользоваться методами квантового программирования, написать простой код на Python и запустить его на реальном квантовом вычислителе. Ришат Ибрагимов rishat_ibrahimov разобрал основы квантовых вычислений на примерах с кодом, показал, как запускать программы на локальном симуляторе и удаленном квантовом компьютере.
— Всем привет, меня зовут Ришат. Я почти три года работаю над качеством поиска Яндекса. Но поговорить сегодня хочу не о работе, а о том, чем я занимаюсь в свободное время. Занимаюсь я квантовой информатикой, а на самом деле — самыми разными моделями вычислений, в том числе квантовыми.
Квантовая информатика — это сейчас достаточно интересная область. Туда много сил вкладывается, много всего сделано. В докладе я постараюсь заинтересовать кого-то из вас. Может быть, среди вас есть крутой ML-инженер, который захочет заниматься квантовым машинным обучением, или просто сильный алгоритмист, который сможет вложить свои силы в это направление. Будет здорово, потому что будущее скоро наступит.
Сразу скажу, что я не физик. Наверняка среди вас есть люди, которые в физике всех этих процессов понимают больше, чем я. Поэтому про физику я не буду говорить почти ничего.
От вас я жду, что вы совсем немножко помните алгебру, помните, что такое вектор и как умножить вектор на матрицу.
#phyton #всем привет
1598309040
Сегодня любой желающий может воспользоваться методами квантового программирования, написать простой код на Python и запустить его на реальном квантовом вычислителе. Ришат Ибрагимов rishat_ibrahimov разобрал основы квантовых вычислений на примерах с кодом, показал, как запускать программы на локальном симуляторе и удаленном квантовом компьютере.
— Всем привет, меня зовут Ришат. Я почти три года работаю над качеством поиска Яндекса. Но поговорить сегодня хочу не о работе, а о том, чем я занимаюсь в свободное время. Занимаюсь я квантовой информатикой, а на самом деле — самыми разными моделями вычислений, в том числе квантовыми.
Квантовая информатика — это сейчас достаточно интересная область. Туда много сил вкладывается, много всего сделано. В докладе я постараюсь заинтересовать кого-то из вас. Может быть, среди вас есть крутой ML-инженер, который захочет заниматься квантовым машинным обучением, или просто сильный алгоритмист, который сможет вложить свои силы в это направление. Будет здорово, потому что будущее скоро наступит.
Сразу скажу, что я не физик. Наверняка среди вас есть люди, которые в физике всех этих процессов понимают больше, чем я. Поэтому про физику я не буду говорить почти ничего.
От вас я жду, что вы совсем немножко помните алгебру, помните, что такое вектор и как умножить вектор на матрицу.
#phyton #всем привет
1598550000
Эти инструменты упростят настройку и позволит автоматизировать рутинные операции. Они избавят разработчика от многих сложностей, которые мешают сосредоточиться на решении задач и комфортном написании кода.
Есть много способов настройки окружения Python. В этом материале об одном из них. Но это, безусловно, не является единственным решением.
Python — это язык программирования общего назначения, который часто рекомендуют начинающим. За двадцать лет его существования написано несколько книг по Python. Хотя язык часто называют простым, настройка инструментария Python для разработки далеко не самая простая задача.
Настройка окружения Python достаточно сложна: xkcd
На мой взгляд, это лучший менеджер версий Python. Однако стоит отметить, что pyenv работает на Linux, Mac OS X и WSL2: то есть, трёх «UNIX-подобных» средах.
Установка самого pyenv иногда может оказаться непростой. Но может помочь специальный установщик pyenv, который использует curl | bash для начальной загрузки.
Если вы используете Mac (или другую систему, в которой вы запускаете Homebrew), вы можете прочитать инструкции по установке и использованию pyenv здесь .
После установки и настройки pyenv вы можете использовать pyenv global для установки версии Python по умолчанию. Можете выбрать свою «любимую» версию. Обычно это самая последняя стабильная версия, но это не точно -)
Для Python можно создавать виртуальные окружения, то есть помещать каждый проект в изолированную среду. Это можно сделать с помощью virtualenvwrapper. Тогда появляется возможность переключаться между виртуальными окружениями в любой момент.
#virtualenvwrapper #python #помощью
1661347571
Dropzone — самая известная бесплатная библиотека с открытым исходным кодом, которая обеспечивает загрузку файлов перетаскиванием с предварительным просмотром изображений . В этом примере я буду использовать Laravel , но вы можете использовать предыдущие версии.
Создайте проект Laravel, введя следующую команду.
composer create-project --prefer-dist laravel/laravel dropzonefileupload
Настройте базу данных в файле .env .
//.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dropzonefileupload
DB_USERNAME=root
DB_PASSWORD=
Я настроил учетные данные для локальной базы данных.
Введите следующую команду в свой cmd.
$ php artisan make:model ImageUpload -m
Он создаст два файла.
Нам нужно создать схему для таблицы загрузки изображений. Итак, перейдите в Laravel >> база данных >> миграции >> create__image_uploads_table.
//create_image_uploads_table
public function up()
{
Schema::create('image_uploads', function (Blueprint $table) {
$table->increments('id');
$table->text('filename');
$table->timestamps();
});
}
Создайте файл в resources >> views >> imageupload.blade.php и поместите в него следующий код . В этом файле мы добавим dropzone для загрузки файлов.
<!-- imageupload.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Laravel Multiple Images Upload Using Dropzone</title>
<meta name="_token" content="{{csrf_token()}}" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/min/dropzone.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.js"></script>
</head>
<body>
<div class="container">
<h3 class="jumbotron">Laravel Multiple Images Upload Using Dropzone</h3>
<form method="post" action="{{url('image/upload/store')}}" enctype="multipart/form-data"
class="dropzone" id="dropzone">
@csrf
</form>
</body>
</html>
В этот файл мы сначала добавляем наши bootstrap.min.css, dropzone.min.css. Затем мы добавляем jquery.js и dropzone.js. Далее мы создаем форму и присоединяем к ней класс dropzone.
Кроме того, у нас есть некоторый текст, отображаемый в нашем поле загрузки. Кроме того, если это изображение успешно загружено, на нем будет отображаться галочка, если только оно не будет отображать крестик и ошибку.
Теперь пишем все конфигурации для Dropzone. Поэтому добавьте следующий код в файл представления.
<!-- imageupload.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Laravel Multiple Images Upload Using Dropzone</title>
<meta name="_token" content="{{csrf_token()}}" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/min/dropzone.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.js"></script>
</head>
<body>
<div class="container">
<h3 class="jumbotron">Laravel Multiple Images Upload Using Dropzone</h3>
<form method="post" action="{{url('image/upload/store')}}" enctype="multipart/form-data"
class="dropzone" id="dropzone">
@csrf
</form>
<script type="text/javascript">
Dropzone.options.dropzone =
{
maxFilesize: 12,
renameFile: function(file) {
var dt = new Date();
var time = dt.getTime();
return time+file.name;
},
acceptedFiles: ".jpeg,.jpg,.png,.gif",
addRemoveLinks: true,
timeout: 5000,
success: function(file, response)
{
console.log(response);
},
error: function(file, response)
{
return false;
}
};
</script>
</body>
</html>
В файле выше мы добавляем параметры конфигурации для Dropzone. Вы можете найти любой из вариантов конфигурации, доступных в документации dropzone .
Теперь пройдемся по каждому варианту.
acceptFiles проверяет MIME-тип или расширение файла по этому списку . Определяем .jpeg, .jpg, .png, .gif. Вы можете изменить в зависимости от ваших потребностей.
php artisan make:controller ImageUploadController
Он создаст файл с именем ImageUploadController.php ; прописываем маршруты в файле route >> web.php . Итак, давайте сделаем это.
//web.php
Route::get('image/upload','ImageUploadController@fileCreate');
Route::post('image/upload/store','ImageUploadController@fileStore');
Route::post('image/delete','ImageUploadController@fileDestroy');
Следующим шагом будет переход к файлу ImageUploadController.php и добавление некоторого кода в функцию fileCreate() .
// ImageUploadController.php
public function fileCreate()
{
return view('imageupload');
}
В методе create() мы просто возвращаем созданное нами загруженное изображение .
Нам нужно закодировать функцию fileStore() последовательно, чтобы сохранить имя файла в базе данных.
// ImageUploadController.php
use App\ImageUpload;
public function fileStore(Request $request)
{
$image = $request->file('file');
$imageName = $image->getClientOriginalName();
$image->move(public_path('images'),$imageName);
$imageUpload = new ImageUpload();
$imageUpload->filename = $imageName;
$imageUpload->save();
return response()->json(['success'=>$imageName]);
}
Теперь мы добавляем функцию removeFile() в конфигурацию dropzone.
<!-- imageupload.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Laravel Multiple Images Upload Using Dropzone</title>
<meta name="_token" content="{{csrf_token()}}" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/min/dropzone.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.js"></script>
</head>
<body>
<div class="container">
<h3 class="jumbotron">Laravel Multiple Images Upload Using Dropzone</h3>
<form method="post" action="{{url('image/upload/store')}}" enctype="multipart/form-data"
class="dropzone" id="dropzone">
@csrf
</form>
<script type="text/javascript">
Dropzone.options.dropzone =
{
maxFilesize: 12,
renameFile: function(file) {
var dt = new Date();
var time = dt.getTime();
return time+file.name;
},
acceptedFiles: ".jpeg,.jpg,.png,.gif",
addRemoveLinks: true,
timeout: 50000,
removedfile: function(file)
{
var name = file.upload.filename;
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
type: 'POST',
url: '{{ url("image/delete") }}',
data: {filename: name},
success: function (data){
console.log("File has been successfully removed!!");
},
error: function(e) {
console.log(e);
}});
var fileRef;
return (fileRef = file.previewElement) != null ?
fileRef.parentNode.removeChild(file.previewElement) : void 0;
},
success: function(file, response)
{
console.log(response);
},
error: function(file, response)
{
return false;
}
};
</script>
</body>
</html>
Добавьте функцию fileDestroy() для удаления файла из базы данных. Добавьте следующий код в FileUploadController.
//ImageUploadController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\ImageUpload;
class ImageUploadController extends Controller
{
public function fileCreate()
{
return view('imageupload');
}
public function fileStore(Request $request)
{
$image = $request->file('file');
$imageName = $image->getClientOriginalName();
$image->move(public_path('images'),$imageName);
$imageUpload = new ImageUpload();
$imageUpload->filename = $imageName;
$imageUpload->save();
return response()->json(['success'=>$imageName]);
}
public function fileDestroy(Request $request)
{
$filename = $request->get('filename');
ImageUpload::where('filename',$filename)->delete();
$path=public_path().'/images/'.$filename;
if (file_exists($path)) {
unlink($path);
}
return $filename;
}
}
Наконец, наша загрузка образа Laravel Dropzone завершена. Спасибо, что взяли.
Ссылка: https://appdividend.com/2022/02/28/laravel-dropzone-image-upload/
#laravel #php
1659563940
Страница входа является основным требованием для веб-сайтов, основанных на членстве.
Пользователю необходимо войти на веб-сайт, используя свое имя пользователя или адрес электронной почты и пароль для доступа к веб-сайту. Если пользователь не вышел из системы, но СЕССИЯ уничтожена, ему необходимо снова войти на веб-сайт.
Добавив «запомнить меня» в форму входа, пользователь должен установить флажок «запомнить меня» и войти на веб-сайт. Теперь, если пользователь не вышел из системы, но СЕССИЯ будет уничтожена.
Когда пользователь снова обращается к веб-сайту, ему не нужно входить в систему, и СЕССИЯ инициируется.
В этом руководстве я покажу, как создать страницу входа с функцией «запомнить меня» с помощью PDO и PHP.
Я использую users
таблицу в примере –
CREATE TABLE `users` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`username` varchar(80) NOT NULL,
`name` varchar(80) NOT NULL,
`password` varchar(80) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Создайте config.php
для подключения к базе данных.
Завершенный код
<?php
$server = "localhost";
$username = "root";
$password = "";
$dbname = "tutorial";
// Create connection
try{
$conn = new PDO("mysql:host=$server;dbname=$dbname","$username","$password");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
die('Unable to connect with the database');
}
Создать index.php
файл.
HTML
Создайте <form >
.
Создайте текстовый элемент для имени пользователя, элемент пароля, флажок для «Запомнить меня» и кнопку отправки.
<!doctype html>
<html>
<head>
<title>Login page with Remember me using PDO and PHP</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container">
<form method="post" action="">
<div id="div_login">
<h1>Login</h1>
<div>
<input type="text" class="textbox" name="txt_uname" value="" placeholder="Username" />
</div>
<div>
<input type="password" class="textbox" name="txt_pwd" value="" placeholder="Password"/>
</div>
<div>
<input type="checkbox" name="rememberme" value="1" /> Remember Me
</div>
<div>
<input type="submit" value="Submit" name="but_submit" id="but_submit" />
</div>
</div>
</form>
</div>
</body>
</html>
PHP
Создал 2 функции для шифрования и расшифровки идентификатора пользователя. Я использую OpenSSL для шифрования и дешифрования.
'aes-256-cbc'
шифр (вы можете посмотреть другие методы здесь ). Получите $iv
.Чтобы зашифровать значения прохода в openssl_encrypt
– openssl_encrypt($userid, $cipher, $key, 0, $iv)
.
Добавьте $ciphertext
с $iv
и $key
отделите и закодируйте '::'
в формате base64 и верните его.
$ciphertext
. Взорвите $ciphertext
и '::'
назначьте переменные.Передайте значения в openssl_decrypt()
функцию и верните ее.
Войти <форма> отправить и установить запомнить меня COOKIE –
Если but_submit
это POST, то прочитайте имя пользователя и пароль. Если имя пользователя и пароль не пусты, проверьте, существует ли имя пользователя и пароль в users
таблице или нет.
Если существует, прочитайте идентификатор пользователя.
Установите Запомнить меня COOKIE, если 'rememberme'
это POST. Зашифруйте идентификатор пользователя, вызвав encryptCookie()
функцию. Установите $_COOKIE['rememberme']
на 30 дней.
Инициализировать $_SESSION['userid']
с помощью $userid
и перенаправить на home.php
.
Проверить запомнить меня ПЕЧЕНЬЕ –
Проверьте $_SESSION['userid']
, установлено или нет. Если установлено, то перенаправляет в home.php
противном случае, проверка $_COOKIE['rememberme']
установлена или нет.
Если установлено, то расшифруйте $_COOKIE['rememberme']
обход его в decryptCookie()
функции и получите идентификатор пользователя. Проверьте, существует ли идентификатор пользователя или нет. Если существует, установите $_SESSION['userid']
и перенаправьте на home.php
.
<?php
include "config.php";
// Encrypt cookie
function encryptCookie( $value ) {
$key = hex2bin(openssl_random_pseudo_bytes(4));
$cipher = "aes-256-cbc";
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext = openssl_encrypt($value, $cipher, $key, 0, $iv);
return( base64_encode($ciphertext . '::' . $iv. '::' .$key) );
}
// Decrypt cookie
function decryptCookie( $ciphertext ) {
$cipher = "aes-256-cbc";
list($encrypted_data, $iv,$key) = explode('::', base64_decode($ciphertext));
return openssl_decrypt($encrypted_data, $cipher, $key, 0, $iv);
}
// Check if $_SESSION or $_COOKIE already set
if( isset($_SESSION['userid']) ){
header('Location: home.php');
exit;
}else if( isset($_COOKIE['rememberme'] )){
// Decrypt cookie variable value
$userid = decryptCookie($_COOKIE['rememberme']);
// Fetch records
$stmt = $conn->prepare("SELECT count(*) as cntUser FROM users WHERE id=:id");
$stmt->bindValue(':id', (int)$userid, PDO::PARAM_INT);
$stmt->execute();
$count = $stmt->fetchColumn();
if( $count > 0 ){
$_SESSION['userid'] = $userid;
header('Location: home.php');
exit;
}
}
// On submit
if(isset($_POST['but_submit'])){
$username = $_POST['txt_uname'];
$password = $_POST['txt_pwd'];
if ($username != "" && $password != ""){
// Fetch records
$stmt = $conn->prepare("SELECT count(*) as cntUser,id FROM users WHERE username=:username and password=:password ");
$stmt->bindValue(':username', $username, PDO::PARAM_STR);
$stmt->bindValue(':password', $password, PDO::PARAM_STR);
$stmt->execute();
$record = $stmt->fetch();
$count = $record['cntUser'];
if($count > 0){
$userid = $record['id'];
if( isset($_POST['rememberme']) ){
// Set cookie variables
$days = 30;
$value = encryptCookie($userid);
setcookie ("rememberme",$value,time()+ ($days * 24 * 60 * 60 * 1000));
}
$_SESSION['userid'] = $userid;
header('Location: home.php');
exit;
}else{
echo "Invalid username and password";
}
}
}
?>
Создать home.php
файл.
Проверьте $_SESSION['userid']
, установлено или нет. Если не установлено, то перенаправить в index.php
файл.
На странице создайте <form >
кнопку и кнопку отправки для выхода из системы.
При выходе из системы нажмите кнопку, чтобы уничтожить СЕАНС и удалить 'rememberme'
COOKIE, установив время в прошлом.
Редирект на index.php
страницу.
Завершенный код
<?php
include "config.php";
?>
<!doctype html>
<html>
<head>
<title>Login page with Remember me using PDO and PHP</title>
</head>
<body>
<?php
// Check user login or not
if(!isset($_SESSION['userid'])){
header('Location: index.php');
}
// logout
if(isset($_POST['but_logout'])){
session_destroy();
// Remove cookie variables
$days = 30;
setcookie ("rememberme","", time() - ($days * 24 * 60 * 60 * 1000) );
header('Location: index.php');
}
?>
<h1>Homepage</h1>
<form method='post' action="">
<input type="submit" value="Logout" name="but_logout">
</form>
</body>
</html>
Прокомментируйте setcookie()
функцию кнопки выхода, нажмите в home.php
файле, чтобы проверить, работает ли функция «Запомнить меня», и вы также можете уменьшить время истечения срока действия COOKIE.
Если он работает, то при запуске файла создается СЕССИЯ, index.php
и страница перенаправляется в home.php
файл.
Источник: https://makitweb.com
1679375045
В этом уроке по Chatgpt мы узнаем, как решить проблему с Leetcode с помощью Chatgpt.
Вопрос по ChatGPT и LeetCode: -
Главы: -
00:01: - Поиск ближайших к заданным двум узлам проблемы с кодом Leet с использованием ChatGPT
06:40: — Создайте код Java для отображения дерева в списке ссылок
08:35 : - Трудно решить медиану задачи кода Leet из двух отсортированных массивов с использованием ChatGPT3
12:00: — Самые популярные вопросы о Python. Найдите с помощью ChatGPT OpenAI.
13:15: — Найдите популярный вопрос о LeetCode с помощью ChatGPT
14:10 :- Объединение отсортированных списков Объединение всех связанных списков в один отсортированный связанный список Решение проблем LeetCode с помощью ChatGPT
17:40: — Языковая модель искусственного интеллекта ChatGPT3 обучена в 2021 году и отключена от Интернета
18:35 :- я спросил ChatGPT Кто я?
19:10 :- Я спросил ChatGPT Что, если мы дадим три списка для хэш-карты и попытаемся сгенерировать дерево в Java
19:35 :- Какое-то время ChatGPT не дает ответов, что мы ожидаем
20:30 : 👍!! СПАСИБО!!🙏
Загрузите наше приложение: https://play.google.com/store/apps/details?id=com.softwaretechit .
Подробнее читайте здесь: https://softwaretechit.com/top-10-quetions-on-ai-and-chatgpt-ai-tool-can-ai-is-new-future-of-world/
Смотреть другое видео: - https://youtube.com/shorts/7MmZi6GHizM?feature=share
Оригинальный источник статьи: https://dev.to/softwaretechit