معماری اِمویویاِم یک مدل معماری نرمافزار است که به توسعه دهندگان کمک میکند تا کد های خود را به سه بخش مدل، ویو و ویو مدل تقسیم کنند. این معماری با جداسازی کامل منطق برنامه از رابط کاربری، توسعه، تست و نگهداری را سادهتر میکند. در این معماری، مدل مسئول مدیریت داده ها و منطق برنامه است، ویو وظیفه ی نمایش اطلاعات به کاربر را دارد، و ویو مدل به عنوان پل ارتباطی بین این دو، داده ها را پردازش و برای نمایش در ویو آماده میکند. با استفاده از این معماری، پروژه ها خواناتر، ماژولارتر و تست پذیرتر میشوند. معماری اِمویویاِم در بسیاری از فریمورک های محبوب مانند ویوجیاس، آنگولار و... استفاده میشود.
Please open Telegram to view this post
VIEW IN TELEGRAM
2
<?php
#secure file upload
function secure_upload(array $file, array $allowedMimeTypes = ['image/jpeg', 'image/png'], array $allowedExtensions = ['jpg', 'jpeg', 'png'], int $maxSize = 2 * 1024 * 1024, string $uploadDir = DIR . '/uploads/') {
# Check for upload errors
if (!isset($file['error']) || is_array($file['error']) || $file['error'] !== UPLOAD_ERR_OK) {
return false;
}
# Check if tmp_name exists and is a valid uploaded file
if (!isset($file['tmp_name']) || !is_uploaded_file($file['tmp_name'])) {
return false;
}
# Check file size
if ($file['size'] > $maxSize) {
return false;
}
# Check MIME type using finfo
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file($file['tmp_name']);
if (!in_array($mimeType, $allowedMimeTypes)) {
return false;
}
# Check file extension
$originalName = $file['name'];
$ext = strtolower(pathinfo($originalName, PATHINFO_EXTENSION));
if (!in_array($ext, $allowedExtensions)) {
return false;
}
# Prevent double extensions
if (preg_match('/.(php[0-9]?|phtml)$/i', $originalName)) {
return false;
}
# Generate unique filename
$safeName = bin2hex(random_bytes(8)) . '.' . $ext;
# Ensure upload directory exists
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0755, true);
}
$destination = rtrim($uploadDir, '/') . '/' . $safeName;
# Move uploaded file
if (!move_uploaded_file($file['tmp_name'], $destination)) {
return false;
}
# Return saved filename
return $safeName;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
پروتکل اسانامپی یک پروتکل استاندارد است که برای مدیریت و نظارت بر تجهیزات شبکه استفاده میشود. این پروتکل به مدیران شبکه این امکان را میدهد که عملکرد دستگاه ها مانند روترها، سوئیچ ها و سرور ها را نظارت کرده و مشکلات آن ها را شناسایی کنند. این پروتکل در شبکههای بزرگ و پیچیده به کمک میآید تا عملکرد دستگاه ها را به صورت متمرکز کنترل و گزارش دهد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
یادگیری عمیق یا [Deep Learning] یکی از شاخه های پیشرفته ی یادگیری ماشین [ML] هست که با الهام از عملکرد مغز انسان، از شبکه های عصبی مصنوعی برای تحلیل داده های پیچیده استفاده میکند. در این روش، مدل ها بدون نیاز به مشخص کردن دستی ویژگی ها، خودشون الگو ها و ویژگی های مهم رو از داده ها استخراج و یاد میگیرند. این ویژگی باعث شده یادگیری عمیق برای پروژه هایی با حجم داده ی بالا و پیچیدگی زیاد، یک انتخاب ایدهآل باشد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
// Validate form before submit
function validateForm(event) {
event.preventDefault();
const name = document.getElementById('name').value.trim();
const email = document.getElementById('email').value.trim();
const password = document.getElementById('password').value.trim();
const errorBox = document.getElementById('errorBox');
let errors = [];
if (name.length < 3) {
errors.push('Name must be at least 3 characters.');
}
if (!/^\S+@\S+\.\S+$/.test(email)) {
errors.push('Invalid email address.');
}
if (password.length < 6) {
errors.push('Password must be at least 6 characters.');
}
if (errors.length > 0) {
errorBox.innerHTML = errors.join('<br>');
errorBox.style.color = 'red';
} else {
errorBox.innerHTML = '';
event.target.submit();
}
}
// Attach validator after DOM is loaded
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('myForm');
if (form) {
form.addEventListener('submit', validateForm);
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
1
هَسکِل [Haskell] یک زبان برنامه نویسی تابع محور، سطح بالا و استاتیک است که برای نوشتن برنامه های دقیق، امن و قابل اثبات طراحی شده است. این زبان بر اساس مفاهیم ریاضی و منطق بنا شده و یکی از خالص ترین زبان های تابعی محسوب میشود، به این معنا که همه چیز در آن به عنوان تابع تعریف میشود و حالت یا تغییر متغیر ها به شکل سنتی وجود ندارد. این زبان با استفاده از ارزیابی تنبل، تایپ سیستم قدرتمند و ایمنی بالا، در محیط هایی که نیاز به برنامه های بسیار پایدار، ایمن و بدون باگ وجود دارد، بسیار کاربردی است. از جمله حوزه های استفاده از هَسکِل میتوان به توسعه ی کامپایلر ها، سیستم های مالی، تحقیقات دانشگاهی و ابزار های تحلیل داده اشاره کرد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
شیگرایی [Object-Oriented Programming] یکی از روش های مدرن برنامهنویسی است که در آن برنامه به بخشهایی کوچک تر به نام اشیاء تقسیم میشود. هر شیء دارای ویژگی ها و رفتارهایی است که بر اساس کلاسها تعریف میشوند. در این روش، مفاهیمی مانند وراثت، کپسولهسازی، چندریختی و انتزاع نقش مهمی دارند. هدف اصلی شیگرایی، ساخت نرمافزار هایی است که قابل توسعه، قابل نگهداری، مقیاس پذیر و ایمن باشند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
import os
import mimetypes
import secrets
import shutil
def secure_upload(file_path, original_name,
allowed_mime_types=None,
allowed_extensions=None,
max_size=2 * 1024 * 1024,
upload_dir='uploads/'):
"""
Secure file upload with validation (MIME type, extension, size, unique naming).
:param file_path: Path to the temporary uploaded file (e.g. from input)
:param original_name: Original filename (e.g. "image.jpg")
:param allowed_mime_types: List of allowed MIME types
:param allowed_extensions: List of allowed extensions (without dot)
:param max_size: Maximum allowed file size in bytes
:param upload_dir: Target directory for saving
:return: Saved filename or None if invalid
"""
allowed_mime_types = allowed_mime_types or ['image/jpeg', 'image/png']
allowed_extensions = allowed_extensions or ['jpg', 'jpeg', 'png']
# Check if file exists and is a regular file
if not os.path.isfile(file_path):
return None
# Check file size
if os.path.getsize(file_path) > max_size:
return None
# Guess MIME type
mime_type, _ = mimetypes.guess_type(file_path)
if mime_type not in allowed_mime_types:
return None
# Extract and check extension
ext = os.path.splitext(original_name)[1].lower().lstrip('.')
if ext not in allowed_extensions:
return None
# Prevent double extensions like `.php.jpg`
if any(part.startswith('php') or part == 'phtml' for part in original_name.lower().split('.')):
return None
# Generate safe unique filename
safe_name = f"{secrets.token_hex(8)}.{ext}"
# Ensure upload directory exists
os.makedirs(upload_dir, exist_ok=True)
# Move file to destination
destination = os.path.join(upload_dir, safe_name)
try:
shutil.move(file_path, destination)
except Exception:
return None
return safe_name
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
1
بولما یک فریمورک مدرن و اپن سورس برای زبان Css است که با استفاده از فلکس باکس ساخته شده و به توسعه دهندگان کمک میکند بدون نوشتن کد های سفارشی، رابط های کاربری زیبا و ریسپانسیو طراحی کنند. این فریمورک تمرکز زیادی روی سادگی، خوانایی کلاس ها و ساختار ماژولار دارد، به همین دلیل یادگیری و استفاده از آن حتی برای مبتدی ها نیز بسیار ساده است. یکی از ویژگی های جالب این فریمورک این است که برخلاف فریمورک هایی مثل بوتسترپ، نیازی به جاوااسکریپت ندارد، یعنی تمام چیزی که نیاز دارید، فقط استایل سیاساس است. این موضوع باعث میشود بولما با اکثر فریمورک های جاوااسکریپتی مثل آنگولار و ریاکت به راحتی ترکیب شود.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
package main
import (
"crypto/rand"
"encoding/hex"
"errors"
"io"
"mime/multipart"
"net/http"
"os"
"path/filepath"
"strings"
)
// SecureUpload handles secure file upload in Go
func SecureUpload(file multipart.File, fileHeader *multipart.FileHeader, allowedMimeTypes []string, allowedExtensions []string, maxSize int64, uploadDir string) (string, error) {
// Validate file size
if fileHeader.Size > maxSize {
return "", errors.New("file too large")
}
// Read MIME type
buffer := make([]byte, 512)
if _, err := file.Read(buffer); err != nil {
return "", err
}
mimeType := http.DetectContentType(buffer)
// Reset file pointer
if _, err := file.Seek(0, 0); err != nil {
return "", err
}
// Check allowed MIME types
isAllowedMime := false
for _, allowed := range allowedMimeTypes {
if mimeType == allowed {
isAllowedMime = true
break
}
}
if !isAllowedMime {
return "", errors.New("invalid MIME type")
}
// Validate extension
ext := strings.ToLower(filepath.Ext(fileHeader.Filename))
if len(ext) > 0 {
ext = ext[1:] // remove the dot
}
isAllowedExt := false
for _, allowed := range allowedExtensions {
if ext == allowed {
isAllowedExt = true
break
}
}
if !isAllowedExt {
return "", errors.New("invalid file extension")
}
// Prevent double extensions
if strings.Contains(strings.ToLower(fileHeader.Filename), ".php") || strings.Contains(strings.ToLower(fileHeader.Filename), ".phtml") {
return "", errors.New("disallowed file extension")
}
// Create upload directory if not exists
if err := os.MkdirAll(uploadDir, 0755); err != nil {
return "", err
}
// Generate safe random filename
randomBytes := make([]byte, 8)
if _, err := rand.Read(randomBytes); err != nil {
return "", err
}
safeName := hex.EncodeToString(randomBytes) + "." + ext
dstPath := filepath.Join(uploadDir, safeName)
// Save file
dstFile, err := os.Create(dstPath)
if err != nil {
return "", err
}
defer dstFile.Close()
if _, err := io.Copy(dstFile, file); err != nil {
return "", err
}
return safeName, nil
}
Please open Telegram to view this post
VIEW IN TELEGRAM
2
اِسکالا [Scala] یک زبان برنامه نویسی سطح بالا، شیگرا و تابع محور است که روی ماشین مجازی جاوا اجرا میشود. این زبان برای حل مشکلات پیچیده در نرمافزار های مقیاس پذیر طراحی شده و ترکیبی از قدرت زبان های شیگرا مانند جاوا و زبان های تابعی مانند هَسکِل را ارائه میدهد. این زبان با قابلیت هایی مانند تایپ استاتیک هوشمند، قابلیت تعریف توابع به عنوان مقدار و نوشتن کد های تمیز و کوتاه، به یکی از گزینه های محبوب در توسعه ی سیستم های بزرگ، پردازش داده ها، و برنامه های همزمان تبدیل شده است.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
# First, run this command to install PHPMailer via Composer:
# composer require phpmailer/phpmailer
# Send an email using PHPMailer with SMTP
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
# Use SMTP
$mail->isSMTP();
# SMTP server host
$mail->Host = 'smtp.hero.com';
# Enable SMTP authentication
$mail->SMTPAuth = true;
# Your email address (sender)
$mail->Username = 'Hero@info.com';
# Your email app password
$mail->Password = 'S#h-o6y9e';
# Encryption type
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
# TCP port to connect
$mail->Port = 587;
# Set sender email and name
$mail->setFrom('Hero@info.com', 'HeroExpert');
# Set recipient email
$mail->addAddress('user@gmail.com');
# Email subject
$mail->Subject = 'Welcome to Hero';
# Email body content
$mail->Body = 'Thank you for join';
# Send the email
$mail->send();
echo 'Email sent successfully.';
} catch (Exception $e) {
# Show error if sending fails
echo "Email failed: {$mail->ErrorInfo}";
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
پروتکل پاپ۳ یکی از استاندارد های ساده و پرکاربرد برای دریافت ایمیل از سرور است. این پروتکل به کاربران امکان میدهد که نامه های الکترونیکی خود را از سرور دریافت کرده و در رایانه یا تلفن همراه ذخیره کنند. در بیشتر موارد، پس از دریافت ایمیل ها، نسخه اصلی آن ها از روی سرور حذف میشود. این ویژگی باعث صرفه جویی در فضای ذخیره سازی سرور میشود و دسترسی به ایمیلها را بهصورت آفلاین نیز ممکن میسازد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
# First, install nothing! smtplib and email modules are built-in
import smtplib
from email.message import EmailMessage
# Send an email using SMTP
try:
# Use SMTP
smtp_host = 'smtp.hero.com' # SMTP server host
smtp_port = 587 # TCP port to connect
smtp_user = 'Hero@info.com' # Your email address (sender)
smtp_password = 'S#h-o6y9e' # Your email app password
# Create the email message
msg = EmailMessage()
# Set sender email and name
msg['From'] = 'HeroExpert <Hero@info.com>'
# Set recipient email
msg['To'] = 'user@gmail.com'
# Email subject
msg['Subject'] = 'Welcome to Hero'
# Email body content
msg.set_content('Thank you for join')
# Connect to the SMTP server
server = smtplib.SMTP(smtp_host, smtp_port)
# Encryption type
server.starttls() # Equivalent to PHPMailer::ENCRYPTION_STARTTLS
# Enable SMTP authentication
server.login(smtp_user, smtp_password)
# Send the email
server.send_message(msg)
print('Email sent successfully.')
# Close the connection
server.quit()
except Exception as e:
# Show error if sending fails
print(f'Email failed: {e}')
Please open Telegram to view this post
VIEW IN TELEGRAM
1
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
یادگیری نظارت شده یکی از رایج ترین و مهمترین روش های یادگیری ماشین [ML] است که در آن مدل با استفاده از داده های برچسب خورده آموزش میبیند. در این روش، هر ورودی با خروجی مشخص همراه است و مدل تلاش میکند رابطه بین این دو را یاد بگیرد. به عنوان مثال، اگر به مدل تصاویر گربه و سگ را همراه با برچسب شان بدهیم، یاد میگیرد که در آینده تصاویر جدید را تشخیص دهد. این روش برای دسته بندی و پیش بینی بسیار کاربردی است و پایه ی اکثر کاربرد های هوش مصنوعی در دنیای واقعی به شمار میرود.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
package main
import (
"fmt"
// Install it by running:
// go get gopkg.in/gomail.v2
"gopkg.in/gomail.v2"
)
func main() {
// Create a new email message
m := gomail.NewMessage()
// Set the sender email address
m.SetHeader("From", "Hero@info.com")
// Set the recipient email address
m.SetHeader("To", "user@gmail.com")
// Set the email subject
m.SetHeader("Subject", "Welcome to Hero")
// Set the plain text email body
m.SetBody("text/plain", "Thank you for join")
// Configure SMTP settings
d := gomail.NewDialer(
// SMTP server host
"smtp.hero.com",
// TCP port to connect
587,
// SMTP username (email)
"Hero@info.com",
// SMTP app password
"S#h-o6y9e",
)
// Use STARTTLS encryption
d.StartTLSPolicy = gomail.MandatoryStartTLS
// Send the email
if err := d.DialAndSend(m); err != nil {
fmt.Printf("Email failed: %v\n", err)
return
}
fmt.Println("Email sent successfully.")
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
فایربیس یک پلتفرم توسعه نرمافزار از شرکت گوگل است که ابزار ها و سرویس هایی متنوع برای ساخت، بهبود و مقیاس پذیری اپلیکیشن های وب و موبایل ارائه میدهد. این پلتفرم، فرآیند های سمت سرور مانند پایگاه داده، احراز هویت، نوتیفیکیشن، و هاستینگ را ساده سازی کرده و به توسعه دهندگان این امکان را میدهد که تمرکز بیشتری روی تجربه کاربری و عملکرد فرانتاند داشته باشند. فایربیس با فراهم کردن زیرساخت های آماده و ابزار های آنلاین، سرعت توسعه را افزایش میدهد و کمک میکند اپلیکیشن ها بدون نیاز به بکاند سنگین، به صورت سریع و ایمن پیاده سازی شوند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1