Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
exlends
Категории
  • ru
    Игры
    Образование
    Искусственный Интеллект
    Новости
    Бекенд, разработка серверов
    Фронтенд
    Мобильная разработка
    Языки программирования
    Разработка игр | 3D | 2D
    Базы данных
    CMS
    DevOps
    Операционные системы
    Маркетинг
    Девайсы
    Юмор, Мемы

  • en
    AI
    Programming languages
    Frontend
    GameDev

  • Блоги

Log in to post

  • All categories
  • JspiJ
    Jspi
    JavaScript and Node.js Modules: Complete Guide

    Modularity is a fundamental principle of modern development, allowing code to be organized into independent, reusable components. JavaScript’s module system evolution has led to several standards, each with its own specifics and use cases.

    Main JavaScript Module Systems

    1. CommonJS - Server Standard

    Usage: Originally created for Node.js, now also used in browsers via bundlers.

    Syntax:

    // Export
    module.exports = { functionA, variableB };
    exports.functionC = functionC;
    
    // Import
    const module = require('./module');
    const { functionA } = require('./module');
    

    Support:

    • Node.js: all versions
    • Browsers: via Webpack, Browserify, Rollup

    2. AMD (Asynchronous Module Definition)

    Usage: Designed for browsers with asynchronous loading.

    Syntax:

    // Module definition
    define(['dependency'], function(dependency) {
      return {
        exportedFunction: function() {
          // use dependency
        }
      };
    });
    
    // Module loading
    require(['module'], function(module) {
      module.exportedFunction();
    });
    

    Support:

    • Browsers: via RequireJS
    • Node.js: via wrappers

    3. UMD (Universal Module Definition)

    Usage: Cross-platform solution compatible with CommonJS, AMD and global variables.

    Syntax:

    (function(root, factory) {
      if (typeof define === 'function' && define.amd) {
        // AMD
        define(['exports'], factory);
      } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
        // CommonJS
        factory(exports);
      } else {
        // Global variable
        factory((root.myModule = {}));
      }
    }(typeof self !== 'undefined' ? self : this, function(exports) {
      // Module code
      exports.example = function() {};
    }));
    

    4. ES6 Modules - Native Standard

    Usage: Modern ECMAScript standard supported by all current environments.

    Syntax:

    // Export
    export const name = 'value';
    export function functionName() {};
    export default function() {};
    
    // Import
    import { name, functionName } from './module';
    import defaultExport from './module';
    

    Browser Support

    ES6 Modules in Browsers

    • Chrome: since version 61 (2017)
    • Firefox: since version 60 (2018)
    • Safari: since version 11 (2017)
    • Edge: since version 16 (2017)

    Usage:

    <!-- Module loading -->
    <script type="module" src="app.js"></script>
    
    <!-- Inline module -->
    <script type="module">
      import { functionName } from './module.js';
      functionName();
    </script>
    

    Legacy Browser Support

    For browsers without ES6 module support use:

    • Transpilation (Babel)
    • Module bundlers (Webpack, Rollup, Parcel)
    • Combination of type=“module” and nomodule:
    <script type="module" src="app.es6.js"></script>
    <script nomodule src="app.legacy.js"></script>
    

    Node.js Support

    Module Support History

    • Node.js 0.1.0-8.x: CommonJS only
    • Node.js 8.5.0: experimental ES6 module support (with --experimental-modules flag)
    • Node.js 12.0.0: improved ES6 module support
    • Node.js 13.2.0: stable ES6 module support without flags
    • Node.js 14.0.0+: full ES6 module support in LTS releases

    Using ES6 Modules in Node.js

    .mjs extension:

    // module.mjs
    export const value = 10;
    
    // app.mjs
    import { value } from './module.mjs';
    

    “type” field in package.json:

    {
      "type": "module",
      "main": "app.js"
    }
    

    Mixed projects:

    • .js files - CommonJS
    • .mjs files - ES6 modules
    • .cjs files - CommonJS (when “type”: “module”)

    Practical Recommendations

    Module System Selection

    • New projects: use ES6 modules
    • Libraries: support both CommonJS and ES6 (via dual export)
    • Legacy projects: stay with CommonJS until refactoring

    Cross-Module System Compatibility

    Importing CommonJS in ES6:

    import { createRequire } from 'module';
    const require = createRequire(import.meta.url);
    const commonJSModule = require('./common-js-module.cjs');
    

    Importing ES6 in CommonJS (with dynamic import):

    async function loadModule() {
      const es6Module = await import('./es6-module.mjs');
    }
    

    Build Optimization

    • Use tree-shaking with ES6 modules
    • Minimize circular dependencies
    • Split code with dynamic imports

    Migration from CommonJS to ES6 Modules

    1. Rename files to .mjs or set “type”: “module”
    2. Replace module.exports with export
    3. Replace require() with import
    4. Update relative import paths (add extensions)
    5. Fix __dirname and __filename references

    Migration Example

    Before (CommonJS):

    // math.js
    const PI = 3.14;
    function sum(a, b) { return a + b; }
    module.exports = { PI, sum };
    
    // app.js
    const { PI, sum } = require('./math');
    console.log(sum(5, 10));
    

    After (ES6 modules):

    // math.js
    export const PI = 3.14;
    export function sum(a, b) { return a + b; }
    
    // app.js
    import { PI, sum } from './math.js';
    console.log(sum(5, 10));
    

    Module Tools

    Bundlers and Transpilers

    • Webpack: supports all module systems
    • Rollup: optimized for ES6 modules
    • Babel: transpiles ES6+ to compatible code
    • Parcel: zero configuration, supports all formats

    Utilities

    • esm: package for using ES6 modules in Node.js
    • @babel/plugin-transform-modules-commonjs: transforms ES6 to CommonJS

    Conclusion

    JavaScript’s module ecosystem has evolved significantly, with ES6 modules becoming the universal solution for all platforms. For new projects, use ES6 modules with transpilation and bundling for backward compatibility.

    For existing CommonJS projects, plan gradual migration to ES6 modules using modern Node.js features and bundlers. This improves performance, enables tree-shaking, and simplifies long-term maintenance.

    Regardless of the chosen module system, remember the core principles of modularity: loose coupling, strong cohesion, and clear interfaces between system components.


    0 0 1 Reply
  • kirilljsxK
    kirilljsx
    msGallery ограниченный вывод превью

    Снимок экрана 2025-08-26 в 13.53.45.png

    Появилась задача сделать вывод превью под основной каруселью товаров до 3-х итемов.

    Вот основной чанк tpl.msGallery, в моем случае он переделан, у вас он может выглядеть по дефолту.

    <div class="product-slider productSticky">
      <div class="product-slider__slides">
        {if $files?} {foreach $files as $file}
        <img
          class="product-slider__image"
          src="{$file['url']}"
          alt="[[*pagetitle]]"
        />
        {/foreach} {/if}
      </div>
      <div class="product-slider__preview">
        <!-- Вот необходимый код для вывод превью -->
        {if $files && is_array($files)}
            {var $count = 0}
            {foreach $files as $file}
                {if $count < 3 && !empty($file['url'])}
                    <img
                        class="product-slider__image-preview"
                        src="{$file['url']}"
                        alt="[[*pagetitle]]"
                    />
                    {var $count = $count + 1}
                {/if}
            {/foreach}
        {/if}
        <!-- Вот необходимый код для вывод превью -->
      </div>
      <button class="product-slider__btn product-slider__btn_prev">️</button>
      <button class="product-slider__btn product-slider__btn_next">️</button>
    </div>
    

    Что мы тут делаем, проверяем является ли $files массивов - {if $files && is_array($files)}, если все ок то далее создаем переменную {var $count = 0} далее по стандарту используем метод перебор массива {foreach $files as $file}.

    Далее делаем проверку на количество что бы переменная$count не была больше 3-х
    {if $count < 3 && !empty($file['url'])}
    При при каждой итерации (перебор массива) прибавляем значение переменной {var $count = $count + 1}

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


    0 0 0 Reply
  • JspiJ
    Jspi
    Understanding TypeScript's satisfies Operator: A Comprehensive Guide

    TypeScript continues to evolve with powerful features that enhance type safety and developer experience. One such feature introduced in TypeScript 4.9 is the satisfies operator—a versatile tool that bridges the gap between type checking and type preservation. In this article, we’ll explore what makes this operator special and how it can improve your TypeScript code.

    What is the satisfies Operator?

    The satisfies operator allows you to verify that an expression matches a particular type while preserving its most specific form. It acts as a guard that ensures type compatibility without altering the inferred type of the expression.

    Basic Syntax

    {expression}  satisfies   Type
    

    This syntax checks that expression conforms to Type, but maintains the expression’s original type information.

    The Problems It Solves

    1. Preserving Literal Types

    Before satisfies, developers often faced a dilemma between type safety and preserving literal types:

    // Without satisfies
    const colors = {
        red: "#FF0000",
        green: "#00FF00",
        blue: "#0000FF"
    } as const;
    // Type: { readonly red: "#FF0000", readonly green: "#00FF00", readonly blue: "#0000FF" }
    
    // With satisfies
    const colors = {
        red: "#FF0000",
        green: "#00FF00",
        blue: "#0000FF"
    } satisfies Record<string, string>;
    // Type preserved: { red: "#FF0000", green: "#00FF00", blue: "#0000FF" }
    

    2. Validating Partial Conformance

    The operator excels at verifying structural compatibility while maintaining full type information:

    interface User {
        id: number;
        name: string;
        email?: string;
    }
    
    const user = {
        id: 1,
        name: "John",
        age: 30
    } satisfies User;
    // TypeScript knows all properties: { id: number, name: string, age: number }
    

    Practical Use Cases

    Configuration Validation

    interface AppConfig {
        name: string;
        port: number;
        environment: "development" | "staging" | "production";
    }
    
    const config = {
        name: "My App",
        port: 3000,
        environment: "development" // Auto-completion works!
    } satisfies AppConfig;
    

    Color Palettes and Themes

    type ColorPalette = Record<string, string>;
    
    const colors = {
        primary: "#3498db",
        secondary: "#2ecc71",
        accent: "#e74c3c",
        // Error: Type 'number' is not assignable to type 'string'
        // warning: 123 satisfies string
    } satisfies ColorPalette;
    

    Discriminated Unions

    type Shape =
        | { kind: "circle"; radius: number }
        | { kind: "rectangle"; width: number; height: number };
    
    const circle = {
        kind: "circle",
        radius: 5,
    } satisfies Shape;
    
    
    // TypeScript knows this is a circle with radius property
    console.log(circle.radius); // OK
    

    Comparative Analysis

    satisfies vs Type Annotations

    // Type annotation
    const obj1: { x: number } = { x: 1, y: 2 };
    // Error: Property 'y' does not exist on type '{ x: number; }'
    
    // satisfies
    const obj2 = { x: 1, y: 2 } satisfies { x: number };
    // OK: Checks compatibility while preserving full type
    

    satisfies vs Type Assertions (as)

    // Type assertion (potentially unsafe)
    const obj1 = { x: 1, y: 2 } as { x: number };
    // OK, but loses information about 'y'
    
    // satisfies
    const obj2 = { x: 1, y: 2 } satisfies { x: number };
    // OK: Verifies compatibility while maintaining complete type information
    

    Advanced Patterns

    Combining with as const

    const routes = {
        home: "/",
        about: "/about",
        contact: "/contact"
    } as const satisfies Record<string, string>;
    
    // Type: { readonly home: "/", readonly about: "/about", readonly contact: "/contact" }
    

    Complex Structure Validation

    type ResponseShape =
        | { status: "success"; data: unknown }
        | { status: "error"; message: string };
    
    const apiResponse = {
        status: "success",
        data: { id: 1, name: "John" }
    } satisfies ResponseShape;
    
    // TypeScript knows the exact response structure
    if (apiResponse.status === "success") {
        console.log(apiResponse.data); // OK
    }
    

    Limitations and Considerations

    • Not a type annotation replacement: Only verifies compatibility without assigning types
    • Structural compatibility focus: Works with shapes rather than nominal types
    • No type narrowing: Preserves the original expression type exactly

    Conclusion

    The satisfies operator represents a significant step forward in TypeScript’s type system, offering a elegant solution for situations where you need to:

    • Verify type compatibility without losing specific type information
    • Maintain literal types while ensuring structural validity
    • Validate partial conformance to interfaces
    • Enhance type safety without compromising flexibility

    By incorporating satisfies into your TypeScript workflow, you can write more robust, maintainable code that leverages TypeScript’s powerful type system while preserving the precise type information that makes your code more expressive and reliable.

    As TypeScript continues to evolve, features like satisfies demonstrate the language’s commitment to providing developers with tools that combine type safety with practical flexibility—a combination that makes TypeScript increasingly valuable for projects of any scale.


    0 0 1 Reply
  • kirilljsxK
    kirilljsx
    Коды на игру в роблоксе

    В Роблоксе существуют два основных типа кодов:

    1. Коды (Codes) — это специальные комбинации символов, которые вводятся внутри конкретных игр на платформе Roblox и дают внутриигровые бонусы (монеты, предметы, скины, способности). Активация происходит через меню игры, например, в разделе “Codes” или “Redeem Code”.

    2. Промокоды (Promocodes) — вводятся на официальном сайте Roblox в разделе активации промокодов и дают бесплатные предметы для аватара (головные уборы, одежду, аксессуары). Эти коды действуют для всех пользователей и имеют ограниченный срок действия.

    Актуальные рабочие коды и промокоды Roblox на август 2025:

    • VICTORYLAP — наушники Cardio Cans (Island Of Move)

    • TWEETROBLOX — питомец The Bird Says

    • SETTINGTHESTAGE — рюкзак Build it Backpack (Island Of Move)

    • STRIKEAPOSE — шляпа Hustle Hat (Island Of Move)

    • THINGSGOBOOM — аксессуар Ghostly Aura Waist Accessory (Mansion Of Wonder)

    • FXARTIST — рюкзак Artist Backpack (Mansion Of Wonder)

    • SPIDERCOLA — питомец Spider Cola

    • GLIMMER — аксессуар Head Slime Accessory (Mansion Of Wonder)

    • PARTICLEWIZARD — наплечник Tomes of the Magus Shoulder Accessory (Mansion Of Wonder)

    • WORLDALIVE — компаньон Crystalline Companion (Island Of Move)

    • DIY — посох Kinetic Staff (Island Of Move)

    • BOARDWALK — аксессуар Ring of Flames Waist Accessory (Mansion Of Wonder)

    • GETMOVING — очки Speedy Shades (Island Of Move)

    В играх Roblox также есть свои коды для популярных плейсов, например, в Zombie Strike, Warrior Simulator, и других, которые дают игровые валюты, оружие и питомцев.

    Для активации кода в игре нужно найти соответствующее окно ввода (часто в главном меню, соцсетях или магазине игры), ввести код с учётом регистра и нажать активацию. Для промокодов на сайте Roblox нужно авторизоваться, зайти в раздел ввода промокодов, ввести код и подтвердить.

    Важно учитывать, что коды имеют ограниченный срок действия и количество активаций, а также чувствительны к регистру.


    0 0 0 Reply
  • kirilljsxK
    kirilljsx
    Что такое "фабрика" в программировании? На примере JavaScript

    Фабрика (Factory) — это паттерн проектирования, который позволяет создавать объекты без указания конкретного класса или типа. Вместо прямого вызова new SomeClass(), ты используешь функцию (или объект), которая решает, какой именно объект создать, в зависимости от входных данных.

    Преимущества:

    • Упрощает расширение кода.
    • Скрывает сложность создания объектов.
    • Централизует логику создания.

    Пример: Фабрика на JavaScript

    Допустим, у нас есть разные типы пользователей: админ, модератор, обычный пользователь. У каждого разные права.

    Мы можем создать фабрику, которая будет возвращать нужный объект в зависимости от роли.

    // Базовый класс пользователя
    class User {
        constructor(name, role) {
            this.name = name;
            this.role = role;
        }
    
        getInfo() {
            return `${this.name} — ${this.role}`;
        }
    
        hasAccess() {
            return false;
        }
    }
    
    // Конкретные типы пользователей
    class Admin extends User {
        constructor(name) {
            super(name, 'admin');
        }
    
        hasAccess() {
            return true; // Админ имеет доступ ко всему
        }
    
        deleteAccount(userId) {
            console.log(`Админ ${this.name} удалил аккаунт ${userId}`);
        }
    }
    
    class Moderator extends User {
        constructor(name) {
            super(name, 'moderator');
        }
    
        hasAccess() {
            return true;
        }
    
        banUser(userId) {
            console.log(`Модератор ${this.name} забанил пользователя ${userId}`);
        }
    }
    
    class RegularUser extends User {
        constructor(name) {
            super(name, 'user');
        }
    
        hasAccess() {
            return false;
        }
    }
    
    // 🏭 Фабрика пользователей
    function createUser(name, role) {
        switch (role) {
            case 'admin':
                return new Admin(name);
            case 'moderator':
                return new Moderator(name);
            case 'user':
                return new RegularUser(name);
            default:
                throw new Error(`Неизвестная роль: ${role}`);
        }
    }
    
    // 🔧 Использование фабрики
    const admin = createUser("Алексей", "admin");
    const mod = createUser("Мария", "moderator");
    const user = createUser("Иван", "user");
    
    console.log(admin.getInfo()); // Алексей — admin
    console.log(mod.getInfo());   // Мария — moderator
    console.log(user.getInfo());  // Иван — user
    
    console.log(admin.hasAccess()); // true
    console.log(user.hasAccess());  // false
    
    admin.deleteAccount(123); // Алексей удалил аккаунт 123
    mod.banUser(456);         // Мария забанила пользователя 456
    

    🔹 Почему это удобно?

    • Если ты захочешь добавить новый тип пользователя (например, guest), тебе нужно только:
      1. Создать новый класс.
      2. Добавить его в createUser.
    • Всё остальное приложение продолжает работать, используя общий интерфейс (hasAccess, getInfo и т.д.).

    Фабрика — это как “конвейер”, который на вход получает параметры (например, role) и на выходе даёт готовый объект нужного типа.

    Это делает код:

    • гибче,
    • легче для тестирования,
    • проще для расширения.

    0 0 0 Reply
  • kirilljsxK
    kirilljsx
    Awesome Open-Source AI Toolkit

    Stop searching. This is the only AI toolkit a developer will ever need!

    This toolkit covers all areas of AI, from machine learning basics to specialized fields like computer vision, NLP, reinforcement learning, and MLOps. Updated with 2025 trends for building, learning, and experimenting efficiently.

    A curated, comprehensive collection of open-source AI tools, frameworks, datasets, courses, and seminal papers. Organized by AI domains and segregated for beginners (foundational, easy-to-use tools/courses) and advanced users (complex, production-ready resources).

    Whether you’re a beginner starting your AI journey or an advanced engineer deploying scalable systems, this repo provides essential resources to accelerate your work. Contribute to keep it growing.

    Why This Toolkit?

    • Broad Coverage: Spans all AI domains with detailed category separation.
    • Open-Source Only: Exclusively free, community-driven tools and resources.
    • Skill-Level Segregation: Beginner-friendly entries for quick starts; advanced for deep dives.
    • Beyond Tools: Includes top datasets for exploration, free courses, and key papers.
    • Up-to-Date: Trending resources as of August 2025, with GitHub stars for popularity insights.
    • Community-Driven: Add new entries via PRs to make it more comprehensive and viral!

    AI Domains and Tools

    Tools are categorized by domain. Each includes a brief description, GitHub URL, and approximate stars (as of August 2025). Segregated into Beginner (simple setup, tutorials-focused) and Advanced (scalable, customizable) sub-sections.

    Machine Learning Frameworks

    Foundational libraries for building and training ML models.

    Beginner

    Tool Description URL Stars
    scikit-learn Simple machine learning in Python for classification, regression, and clustering https://github.com/scikit-learn/scikit-learn 60k
    Keras User-friendly neural networks API on top of TensorFlow or PyTorch https://github.com/keras-team/keras 61k

    Advanced

    Tool Description URL Stars
    TensorFlow End-to-end platform for large-scale ML with strong ecosystem support https://github.com/tensorflow/tensorflow 183k
    PyTorch Dynamic neural networks with GPU acceleration for research and production https://github.com/pytorch/pytorch 81k

    Data Processing & Management

    Tools for handling and preparing data.

    Beginner

    Tool Description URL Stars
    Pandas Easy data manipulation and analysis with DataFrames https://github.com/pandas-dev/pandas 43k
    NumPy Fundamental array computing and linear algebra operations https://github.com/numpy/numpy 28k

    Advanced

    Tool Description URL Stars
    Dask Parallel computing for large datasets, integrates with Pandas/NumPy https://github.com/dask/dask 12k

    Vector Databases

    Open-source storage for embeddings and similarity search.

    Beginner

    Tool Description URL Stars
    Chroma Simple embedding database for local LLM apps https://github.com/chroma-core/chroma 15k
    FAISS Efficient similarity search library from Facebook AI https://github.com/facebookresearch/faiss 35k

    Advanced

    Tool Description URL Stars
    Weaviate Vector database with GraphQL and modular plugins https://github.com/weaviate/weaviate 15k
    Qdrant High-performance vector search with filtering support https://github.com/qdrant/qdrant 20k
    Milvus Scalable vector database for billion-scale similarity search https://github.com/milvus-io/milvus 30k

    Orchestration & Workflow Frameworks

    For building AI pipelines and agents.

    Beginner

    Tool Description URL Stars
    Langflow No-code visual builder for LLM workflows https://github.com/langflow-ai/langflow 15k
    Flowise Drag-and-drop UI for LLM chains https://github.com/FlowiseAI/Flowise 25k

    Advanced

    Tool Description URL Stars
    LangChain Modular framework for LLM apps and agents https://github.com/langchain-ai/langchain 120k
    LlamaIndex Data ingestion and querying for LLMs https://github.com/run-llama/llama_index 50k
    Haystack Production-ready NLP pipelines https://github.com/deepset-ai/haystack 18k
    DSPy Programmatic prompt optimization https://github.com/stanfordnlp/dspy 15k
    Semantic Kernel AI integration SDK for .NET/Python/Java https://github.com/microsoft/semantic-kernel 8k

    Computer Vision

    Libraries for image processing and vision tasks.

    Beginner

    Tool Description URL Stars
    OpenCV Core library for image/video processing and basic CV tasks https://github.com/opencv/opencv 75k

    Advanced

    Tool Description URL Stars
    Ultralytics YOLO State-of-the-art object detection and segmentation models https://github.com/ultralytics/ultralytics 30k
    Detectron2 Facebook AI’s framework for object detection and segmentation https://github.com/facebookresearch/detectron2 30k

    Natural Language Processing (NLP)

    Tools for text analysis and language models.

    Beginner

    Tool Description URL Stars
    NLTK Toolkit for basic NLP tasks like tokenization and stemming https://github.com/nltk/nltk 13k
    spaCy Efficient NLP library for entity recognition and dependency parsing https://github.com/explosion/spaCy 29k

    Advanced

    Tool Description URL Stars
    Transformers Hugging Face library for state-of-the-art NLP models https://github.com/huggingface/transformers 130k
    Flair Framework for advanced NLP with pre-trained embeddings https://github.com/flairNLP/flair 14k

    Reinforcement Learning (RL)

    Frameworks for agent training and decision-making.

    Beginner

    Tool Description URL Stars
    Stable-Baselines3 Reliable RL algorithms built on PyTorch https://github.com/DLR-RM/stable-baselines3 8k

    Advanced

    Tool Description URL Stars
    Ray RLlib Scalable RL library for distributed training https://github.com/ray-project/ray 32k
    OpenRL Unified framework for single/multi-agent RL https://github.com/OpenRL-Lab/openrl 1k

    MLOps

    Tools for ML operations, deployment, and monitoring.

    Beginner

    Tool Description URL Stars
    MLflow Track experiments, package code, and deploy models https://github.com/mlflow/mlflow 18k

    Advanced

    Tool Description URL Stars
    Kubeflow Kubernetes-native platform for ML pipelines https://github.com/kubeflow/kubeflow 14k
    DVC Version control for data and ML models https://github.com/iterative/dvc 13k

    PDF Extraction Tools

    For extracting data from PDFs.

    Beginner

    Tool Description URL Stars
    pdfplumber Extract text and tables from PDFs https://github.com/jsvine/pdfplumber 6k
    Camelot Tabular data extraction from PDFs https://github.com/camelot-dev/camelot 2k

    Advanced

    Tool Description URL Stars
    Docling AI-powered PDF to JSON/Markdown conversion https://github.com/docling-project/docling 1k
    PyMuPDF High-performance PDF parsing https://github.com/pymupdf/PyMuPDF 5k
    PDF.js JavaScript-based PDF rendering and extraction https://github.com/mozilla/pdf.js 50k

    Retrieval-Augmented Generation (RAG)

    For enhancing LLMs with external data.

    Beginner

    Tool Description URL Stars
    PrivateGPT Local document interaction with LLMs https://github.com/imartinez/privateGPT 50k
    AnythingLLM All-in-one local LLM app for RAG https://github.com/Mintplex-Labs/anything-llm 20k

    Advanced

    Tool Description URL Stars
    RAGFlow Deep document understanding for RAG https://github.com/infiniflow/ragflow 15k
    Verba RAG chatbot with Weaviate integration https://github.com/weaviate/Verba 5k
    Quivr GenAI second brain for document management https://github.com/QuivrHQ/quivr 35k
    Jina Multimodal neural search for RAG https://github.com/jina-ai/jina 25k
    txtai Embeddings database for semantic search https://github.com/neuml/txtai 10k

    Evaluation & Testing

    For assessing AI models.

    Beginner

    Tool Description URL Stars
    Ragas Framework for evaluating RAG pipelines https://github.com/explodinggradients/ragas 8k

    Advanced

    Tool Description URL Stars
    Phoenix Observability for LLMs and vision models https://github.com/Arize-ai/phoenix 5k
    DeepEval Unit testing for LLM outputs https://github.com/confident-ai/deepeval 8k
    TruLens Tracking and evaluation for LLM experiments https://github.com/truera/trulens 2k

    Monitoring & Observability

    For production AI systems.

    Beginner

    Tool Description URL Stars
    Phoenix ML observability tool https://github.com/Arize-ai/phoenix 5k

    Advanced

    Tool Description URL Stars
    Evidently AI Monitoring for ML model performance https://github.com/evidentlyai/evidently 5k

    AI Agents

    Frameworks for building autonomous AI agents.

    Beginner

    Tool Description URL Stars
    AutoGPT Autonomous AI agent for task automation using LLMs https://github.com/Significant-Gravitas/AutoGPT 160k
    BabyAGI Task-driven autonomous agent inspired by BabyAGI https://github.com/yoheinakajima/babyagi 18k

    Advanced

    Tool Description URL Stars
    CrewAI Framework for orchestrating role-playing AI agents https://github.com/joaomdmoura/crewAI 20k
    MetaGPT Multi-agent framework simulating a software company https://github.com/geekan/MetaGPT 40k
    OpenHands AI agents for software development tasks https://github.com/All-Hands-AI/OpenHands 10k

    Generative AI

    Tools for generating text, images, and other content.

    Beginner

    Tool Description URL Stars
    Ollama Run and manage local LLMs easily https://github.com/ollama/ollama 70k
    Stable Diffusion WebUI User-friendly web interface for Stable Diffusion image generation https://github.com/AUTOMATIC1111/stable-diffusion-webui 130k

    Advanced

    Tool Description URL Stars
    Diffusers State-of-the-art diffusion models for image and audio generation https://github.com/huggingface/diffusers 25k
    llama.cpp Efficient LLM inference in C/C++ https://github.com/ggerganov/llama.cpp 60k
    InvokeAI Creative engine for Stable Diffusion models https://github.com/invoke-ai/InvokeAI 22k

    Deep Learning

    Libraries for advanced neural network development.

    Beginner

    Tool Description URL Stars
    fastai High-level deep learning library on PyTorch for quick results https://github.com/fastai/fastai 26k

    Advanced

    Tool Description URL Stars
    JAX Composable transformations for high-performance ML https://github.com/google/jax 30k
    tinygrad Minimalist deep learning framework https://github.com/tinygrad/tinygrad 25k
    Deeplearning4j JVM-based deep learning suite for enterprise https://github.com/deeplearning4j/deeplearning4j 13k

    Advanced LLM Architectures

    Frameworks for optimizing and architecting large language models.

    Beginner

    Tool Description URL Stars
    PEFT Parameter-efficient fine-tuning for large models https://github.com/huggingface/peft 15k
    bitsandbytes K-bit quantization for accessible LLMs https://github.com/TimDettmers/bitsandbytes 5k

    Advanced

    Tool Description URL Stars
    vLLM High-throughput LLM inference engine https://github.com/vllm-project/vllm 25k
    Flash Attention Fast and memory-efficient attention mechanism https://github.com/Dao-AILab/flash-attention 12k
    exllamav2 Fast inference library for LLMs on consumer GPUs https://github.com/turboderp/exllamav2 6k

    Datasets

    Top open datasets for AI exploration. Segregated by skill level.

    Beginner Datasets (Small, Easy to Use)

    Dataset Description URL Domain
    MNIST Handwritten digits for classification https://yann.lecun.com/exdb/mnist/ CV/ML
    Iris Flower species classification https://archive.ics.uci.edu/dataset/53/iris ML
    Boston Housing House price regression https://www.kaggle.com/datasets/vikrishnan/boston-house-prices ML

    Advanced Datasets (Large-Scale, Complex)

    Dataset Description URL Domain
    ImageNet Large image dataset for object recognition https://www.image-net.org/ CV
    COCO Common objects in context for detection/segmentation https://cocodataset.org/ CV
    LAION-5B Massive multimodal dataset for generative models https://laion.ai/blog/laion-5b/ GenAI
    Common Crawl Web-scale text corpus for NLP https://commoncrawl.org/ NLP
    GLUE Benchmark for NLP tasks https://gluebenchmark.com/ NLP

    Courses

    Free online courses for learning AI. Segregated by level.

    Beginner Courses

    Course Description URL
    Elements of AI Introduction to AI concepts for non-experts https://www.elementsofai.com/
    Introduction to AI (Coursera) Basics of AI from IBM https://www.coursera.org/learn/introduction-to-ai
    Google AI Essentials Practical AI skills from Google https://grow.google/ai/

    Advanced Courses

    Course Description URL
    Deep Learning Specialization (Coursera) Advanced neural networks by Andrew Ng https://www.coursera.org/specializations/deep-learning
    CS224N: NLP with Deep Learning (Stanford) State-of-the-art NLP techniques https://web.stanford.edu/class/cs224n/
    Reinforcement Learning (DeepMind) RL fundamentals and algorithms https://www.deepmind.com/learning-resources/reinforcement-learning-lecture-series-2021

    Papers

    Seminal and trending AI papers, with repositories for collections.

    Beginner-Friendly Papers (Foundational)

    Paper/Repo Description URL
    Attention Is All You Need (Transformer) Introduced Transformers for NLP https://arxiv.org/abs/1706.03762
    A Few Useful Things to Know About ML Practical ML advice https://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf

    Advanced Papers (Cutting-Edge)

    Paper/Repo Description URL
    ML Papers of the Week Weekly curated ML papers https://github.com/dair-ai/ML-Papers-of-the-Week
    Awesome AI Research Papers Influential papers in AI domains https://github.com/awesomelistsio/awesome-ai-research-papers
    Landmark Papers in ML Key historical papers https://github.com/daturkel/learning-papers

    0 0 0 Reply
  • kirilljsxK
    kirilljsx
    World of Warcraft заполонили чёрные паладины

    World of Warcraft в 2025 году заполонили чёрные паладины с протезами и маги на волшебных инвалидных колясках. 🤡

    2e0bb6f9-c1c5-42e5-a250-0066964dbc04-image.png

    4f0308e6-fcc4-4bae-86bb-2e57276d8094-image.png

    b558bb30-c0bf-4edd-8c30-1db708762b10-image.png


    0 0 0 Reply
  • adminA
    admin
    Ретроградный Меркурий: Иллюзия, породившая феномен

    merk.jpeg

    Ретроградный Меркурий — один из самых обсуждаемых астрологических феноменов в современной культуре. Его упоминание вызывает у многих тревогу: срывы планов, поломки техники, недопонимание в общении. Но что стоит за этим термином?

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


    Содержание

    • Астрономическая основа: что такое ретроградное движение?
    • История термина: от древних астрономов к астрологам
    • Почему именно Меркурий?
    • Как вычисляют периоды ретроградности
    • Астрологическая интерпретация: мифы и реальность
    • Влияние на повседневную жизнь: суеверия и статистика
    • Критика и научный взгляд
    • Заключение: зачем мы верим в ретроградный Меркурий?

    Астрономическая основа: что такое ретроградное движение?

    Ретроградное движение — это оптическая иллюзия, при которой планета кажется движущейся назад по небесной сфере относительно звёзд. На самом деле планета продолжает двигаться по своей орбите в привычном направлении, но из-за разницы в орбитальных скоростях Земли и других планет создаётся впечатление обратного хода.

    Как это работает?

    • Орбитальная механика: Земля и Меркурий вращаются вокруг Солнца с разной скоростью. Меркурий, будучи ближайшей к Солнцу планетой, совершает оборот за 88 дней, тогда как Земля — за 365 дней.
    • Эффект обгона: Когда Земля “догоняет” Меркурий на орбите, последний на фоне далёких звёзд кажется движущимся назад. Это похоже на ситуацию, когда вы обгоняете машину на шоссе: на мгновение создаётся впечатление, что обгоняемая машина движется назад.

    Важно! Ретроградность — не уникальное свойство Меркурия. Все планеты Солнечной системы (кроме Солнца и Луны) периодически демонстрируют это явление. Например, Марс становится ретроградным каждые 26 месяцев.


    История термина: от древних астрономов к астрологам

    Происхождение термина

    Слово “ретроградный” происходит от латинского retrogradus (retro — “назад” + gradi — “шагать”). Впервые термин использовался в работах древнегреческих астрономов, таких как Клавдий Птолемей (II век н.э.), в его труде “Альмагест”.

    Как объясняли ретроградность в древности?

    • Геоцентрическая модель: В системе Птолемея планеты двигались по сложным траекториям, включающим эпициклы — маленькие окружности, по которым планета “катилась” по большой орбите (деференту). Ретроградное движение объяснялось тем, что в определённый момент планета на эпицикле двигалась против направления деферента.
    • Вавилонские записи: Ещё в 7-м веке до н.э. вавилонские астрономы фиксировали ретроградные петли планет на глиняных табличках, называя их “назад идущими звёздами”.

    Переход к астрологии

    В Древнем Риме планету Меркурий ассоциировали с богом торговли и путей Меркурием (греч. Гермес). Его ретроградность интерпретировалась как знак путаницы в коммуникации и срывов путешествий. В средневековой Европе астрологи, такие как Корнелиус Агриппа (XVI век), закрепили связь ретроградного Меркурия с “неблагоприятными периодами”.


    Почему именно Меркурий?

    Меркурий выделяется среди планет по нескольким причинам:

    Параметр Значение Почему важно для ретроградности
    Орбитальный период 88 дней Частые ретроградные фазы (3-4 раза в год)
    Угловое расстояние от Солнца до 28° Ретроградность заметна только вблизи Солнца
    Скорость движения Самая высокая среди планет Частые изменения направления видимого движения
    • Частота: Меркурий становится ретроградным 3–4 раза в год на срок до 21–24 дней. Для сравнения: Венера — 1 раз в 19 месяцев, Марс — 1 раз в 26 месяцев.
    • Видимость: Из-за близости к Солнцу ретроградный Меркурий часто скрыт в его лучах, что усиливало мистический ореол вокруг явления в древности.

    Как вычисляют периоды ретроградности

    Астрономический метод

    Астрономы определяют ретроградность через геоцентрическую долготу планеты:

    1. Строят эфемериды — таблицы положения планет на небе.
    2. Фиксируют момент, когда долгота Меркурия перестаёт расти (становится прямым движением) и начинает уменьшаться (попятное движение).
    3. Ретроградная фаза начинается в точке стационарности (остановки) и завершается следующей стационарностью.

    Пример для 2023 года:

    Период ретроградности Даты Знак зодиака
    Первый 23 декабря – 1 февраля Козерог/Водолей
    Второй 21 апреля – 14 мая Овен/Телец
    Третий 25 августа – 15 сентября Дева/Лев
    Четвёртый 13 декабря – 1 января Стрелец

    Астрологический метод

    Астрологи используют те же данные, но интерпретируют их через призму домов гороскопа и аспектов (углов между планетами). Например, ретроградный Меркурий в Деве усиливает внимание к деталям, а в Стрельце — к философским вопросам.


    Астрологическая интерпретация: мифы и реальность

    Что символизирует Меркурий в астрологии?

    • Коммуникация: Речь, письмо, электронные сообщения.
    • Логика и обучение: Принятие решений, анализ информации.
    • Транспорт и технологии: Поездки, гаджеты, интернет.

    Как меняется влияние при ретроградности?

    По астрологическим представлениям, ретроградный Меркурий “переворачивает” эти сферы:

    • Коммуникация: Срывы договоров, двусмысленные фразы, потерянные письма.
    • Технологии: Поломки техники, сбои в работе ПО.
    • Путешествия: Опоздания на рейсы, забытые документы.

    Пример: Если вы планируете подписать контракт во время ретроградного Меркурия, астрологи советуют перенести встречу — велик риск упущенных деталей в документах.

    Распространённые мифы

    • Миф 1: “Ретроградный Меркурий влияет на всех одинаково”.
      Реальность: В астрологии учитывается положение Меркурия в личном гороскопе. Для кого-то период будет нейтральным.
    • Миф 2: “Нельзя начинать новые проекты”.
      Реальность: Это время подходит для рефлексии, а не для запретов. Многие используют его для исправления ошибок.

    Влияние на повседневную жизнь: суеверия и статистика

    Социальные последствия

    • Мемы и тренды: В соцсетях хештег #RetrogradeMercury набирает миллионы упоминаний каждый раз, когда начинается ретроградность.
    • Бизнес-ритуалы: Некоторые компании переносят запуск проектов, чтобы избежать “негатива”.
    • Психологический эффект: Люди чаще замечают мелкие неприятности, связывая их с Меркурием (эффект подтверждающего свидетельства).

    Есть ли статистика?

    • Исследование 2017 года (Университет Бристоля) проанализировало 10 000 жалоб на сбои в работе техники за 5 лет. Корреляция с ретроградным Меркурием оказалась статистически незначимой.
    • Опрос 2022 года (Pew Research): 28% американцев верят, что ретроградный Меркурий влияет на их жизнь, хотя 76% не могут объяснить, как именно.

    Критика и научный взгляд

    Почему учёные скептичны?

    1. Физическая невозможность: Гравитационное влияние Меркурия на Землю в 100 000 раз слабее, чем Луны. Даже при ретроградности это не меняется.
    2. Отсутствие механизмов: Нет известных физических процессов, через которые планета могла бы влиять на коммуникацию или технологии.
    3. Культурная вариативность: В Индийской астрологии (Джйотиш) ретроградный Меркурий считается благоприятным для глубокого обучения.

    Психологические объяснения

    • Эффект Барнума: Люди склонны интерпретировать общие утверждения как персональные.
    • Когнитивный диссонанс: Чтобы оправдать неудачи, мы ищем внешние причины (даже если они иррациональны).
    • Социальное подкрепление: Когда все вокруг говорят о “проклятии Меркурия”, мы начинаем замечать подтверждающие события.

    Цитата: “Ретроградный Меркурий — это зеркало, в котором люди видят своё стремление контролировать хаос жизни” — профессор психологии Сара МакКой (Университет Мичигана).


    Заключение: зачем мы верим в ретроградный Меркурий?

    Ретроградный Меркурий — яркий пример того, как научный факт (оптическая иллюзия) превращается в культурный миф через призму астрологии. Его популярность объясняется:

    • Потребностью в объяснениях: Люди ищут порядок в хаосе повседневных проблем.
    • Эстетикой астрологии: Сложные гороскопы дают иллюзию контроля.
    • Цифровой эпохой: В мире, зависимом от коммуникаций, страх сбоев находит “виновника”.

    Но важно помнить: ретроградный Меркурий не ломает ваш телефон — это делает физический износ. Он не срывает вашу поездку — к этому приводят человеческие ошибки. Астрология может быть инструментом саморефлексии, но не заменой ответственности за свои решения.

    Философский вывод: Возможно, главный урок ретроградного Меркурия — не в том, чтобы бояться его, а в том, чтобы учиться останавливаться, анализировать и корректировать курс. Ведь иногда движение “назад” — это единственный путь вперёд.


    1 0 0 Reply
  • kirilljsxK
    kirilljsx
    Как сделать уникальные стикеры для бизнеса в telegram

    Довольно просто, с задачей хорошо справляется GPT Image, можно воспользоваться у pr-cy.

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

    Сам промпт:

    Сделай уникальный стикерпак из 6 стикеров на основе фото моего кота как профессиональный дизайнер стикеров для Telegram. Все стикеры должны быть узнаваемыми и передавать 8 разных эмоций и состояний, передавай эмоции через мимику и жесты. Стикеры должны максимально отличаться друг от друга по эмоциями, эмоции должны быть гиперболизированными и узнаваемыми. Используй: 1) смех 2) любовь 3) удивление 4) слёзы 5) лайк 6) сон. Вокруг стикеров должно быть пространство, чтобы вырезать их и использовать. Сохрани внешний вид моего кота, при этом стилизуй его под стикеры для использования в чатах.
    

    0 0 0 Reply
  • adminA
    admin
    Трейдинг это что: суть, виды и как начать

    470cdbfd-6260-4b5d-88d3-56b0514a887b-image.png

    Что такое трейдинг: раскрываем суть

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

    Представьте: вы заметили, что акции Tesla резко подешевели из-за новостей. Купив их по низкой цене и продав через час при росте, вы заработаете разницу. Именно так работает трейдинг — на быстром анализе и решительных действиях.

    Главное — не «угадывать» тренды, а опираться на данные. Профессионалы используют технический анализ, экономические индикаторы и алгоритмы. Но даже новичок может начать с базовых стратегий.

    Как это работает на практике

    Трейдинг строится на простом принципе: «купить дешевле — продать дороже». Однако процесс требует дисциплины и знаний. Вот ключевые этапы:

    • Анализ рынка. Изучаете графики, новости, объемы торгов. Например, перед выходом отчетности компании.
    • Открытие позиции. Покупаете актив (лонг) или продаете без владения (шорт, если ожидаете падения).
    • Фиксация прибыли/убытков. Закрываете сделку, когда цена достигает цели или стоп-лосса.

    Важно: рынки работают 24/7 (особенно Forex и крипта). Это позволяет торговать в удобное время, но требует постоянного контроля. Новичкам советую начать с демо-счета — так вы потренируетесь без риска для бюджета.

    Трейдинг vs инвестиции: главные отличия

    Многие путают трейдинг с инвестированием. Разберем различия:

    • Сроки. Инвесторы держат активы годами (например, акции Apple). Трейдеры — часы, дни или недели.
    • Цель. Инвестиции — пассивный доход через дивиденды и рост стоимости. Трейдинг — активная игра на разнице цен.
    • Риски. У трейдинга выше волатильность. Одна ошибка может «съесть» депозит, если не использовать стоп-лоссы.

    Запомните: трейдинг — не способ быстро разбогатеть. Это профессия, требующая обучения и хладнокровия.

    Почему люди выбирают трейдинг?

    Высокая доходность манит новичков. При грамотном подходе можно увеличить капитал на 10–20% в месяц. Но важно понимать: такие результаты редкость. Средний успешный трейдер зарабатывает 5–10% в месяц.

    Еще преимущества:

    • Гибкость. Торгуйте из любой точки мира, имея ноутбук и интернет.
    • Доступность. Минимальный входной барьер — от $10 на некоторых платформах.
    • Азарт и развитие. Каждый день — новый вызов: анализируете данные, учитесь на ошибках, совершенствуете стратегии.

    Однако трейдинг это что с рисками. По статистике, 80% новичков теряют деньги в первый год. Причина? Эмоциональные решения, отсутствие плана, игнорирование риск-менеджмента.

    Как начать торговать: 3 простых шага

    Не бросайтесь в омут с головой. Следуйте проверенной схеме:

    1. Выберите инструмент и брокера.
      Начните с акций или Forex. Откройте счет у лицензированного брокера (например, Interactive Brokers, Binance для крипты). Проверьте комиссии и условия.

    2. Обучайтесь бесплатно.
      Изучите основы на YouTube, в блогах (TradingView, Investing.com). Освойте термины: спред, леверидж, свечные модели. Бесплатные курсы — ваш лучший друг.

    3. Практикуйтесь на демо-счете.
      Тренируйтесь 2–3 месяца, пока не достигнете стабильной прибыли. Только потом переходите к реальным деньгам.

    Ключевой совет: никогда не рискуйте больше 1–2% депозита в одной сделке. Это защитит вас от краха при серии убытков.

    Трейдинг — не лотерея, а ремесло. Те, кто вкладывает время в обучение и дисциплину, находят здесь источник дохода. Начните с малого, анализируйте рынок ежедневно, и вы превратите трейдинг это что из загадки в реальный навык. Удачи!


    0 0 0 Reply
  • kirilljsxK
    kirilljsx
    Создание собственного искусственного интеллекта

    Это увлекательный процесс (а может быть и нет 😀 ), и Python — отличный выбор для этого благодаря богатой экосистеме библиотек.

    Шаг 1

    Начнем с простого, понимание что такое ИИ:

    • Машинное обучение (ML) — обучение модели на данных.
    • Нейронные сети — более сложные модели, особенно глубокие (Deep Learning).
    • Генеративные модели — например, чат-боты, генератор текста.

    Но начать нужно с простого — попробуем обучить модель предсказывать что-то.


    Шаг 2

    Предварительно установим Python (лучше 3.8+, надеюсь вы знаете как установить?), затем установи нужные библиотеки:

    pip install numpy pandas scikit-learn matplotlib tensorflow torch jupyter
    

    Что тут у нас:

    • scikit-learn — для простого машинного обучения.
    • numpy — работа с массивами.
    • pandas — обработка данных.
    • matplotlib — визуализация.

    Шаг 3

    Теперь попробуем создать простую модель, которая предсказывает зарплату по стажу работы.

    Пример 1: Простая модель

    # Создадим файл  linear_regression.py или main.py без разницы
    
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression
    from sklearn.model_selection import train_test_split
    
    # 1. Сгенерируем данные
    np.random.seed(42)
    стаж = np.random.randint(1, 20, 100)  # стаж в годах
    зарплата = стаж * 3000 + np.random.normal(0, 5000, 100)  # зарплата с шумом
    
    # 2. Подготовим данные
    X = стаж.reshape(-1, 1)  # признаки (стаж)
    y = зарплата               # целевая переменная (зарплата)
    
    # 3. Разделим на обучение и тест
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 4. Создаём и обучаем модель
    model = LinearRegression()
    model.fit(X_train, y_train)
    
    # 5. Делаем предсказания
    y_pred = model.predict(X_test)
    
    # 6. Оцениваем качество
    score = model.score(X_test, y_test)
    print(f"Точность модели (R²): {score:.2f}")
    
    # 7. Визуализация
    plt.scatter(X_test, y_test, color='blue', label='Реальные данные')
    plt.plot(X_test, y_pred, color='red', label='Предсказание')
    plt.xlabel('Стаж (лет)')
    plt.ylabel('Зарплата (руб)')
    plt.legend()
    plt.show()
    

    Это простая ИИ — модель, которая “учится” на данных и делает предсказания.

    И да! Python 3 полностью поддерживает кириллицу в именах переменных, функций, комментариях и строках. Так что использовать русские слова — абсолютно нормально с точки зрения синтаксиса ну или меня 😁


    Шаг 4:

    Плавно переходит к нейросетям, попробуем нейронную сеть с помощью TensorFlow/Keras.

    Пример 2: Нейросеть для той же задачи

    # neural_network.py
    
    import numpy as np
    from sklearn.model_selection import train_test_split
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    
    # 1. Данные (те же)
    np.random.seed(42)
    стаж = np.random.randint(1, 20, 100)
    зарплата = стаж * 3000 + np.random.normal(0, 5000, 100)
    
    X = стаж.reshape(-1, 1)
    y = зарплата
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 2. Создаём нейросеть
    model = Sequential([
        Dense(10, activation='relu', input_shape=(1,)),  # скрытый слой
        Dense(1)  # выходной слой (предсказание)
    ])
    
    # 3. Компилируем
    model.compile(optimizer='adam', loss='mse', metrics=['mae'])
    
    # 4. Обучаем
    history = model.fit(X_train, y_train, epochs=100, verbose=0, validation_split=0.2)
    
    # 5. Оценка
    loss, mae = model.evaluate(X_test, y_test, verbose=0)
    print(f"Средняя ошибка: {mae:.2f} руб")
    
    # 6. Предсказание
    new_experience = np.array([[5]])  # 5 лет стажа
    predicted_salary = model.predict(new_experience, verbose=0)
    print(f"Предсказанная зарплата для 5 лет стажа: {predicted_salary[0][0]:.0f} руб")
    

    А это у нас уже искусственный интеллект на основе нейросети.


    Шаг 5

    Хотим что-то “умное”, как ChatGPT? Начнем с простого ответчика на ключевые слова.

    Пример 3: Простой чат-бот

    # chatbot.py
    
    import random
    
    # База знаний бота
    responses = {
        "привет": ["Привет!", "Здравствуйте!", "Приветствую!"],
        "как дела": ["Хорошо, спасибо!", "Отлично, а у тебя?"],
        "пока": ["Пока!", "До свидания!", "Удачи!"],
        "спасибо": ["Пожалуйста!", "Всегда рад помочь!"]
    }
    
    def get_response(user_input):
        user_input = user_input.lower()
        for key in responses:
            if key in user_input:
                return random.choice(responses[key])
        return "Извините, я не понял."
    
    # Тест
    while True:
        user = input("Вы: ")
        if user.lower() == "выход":
            break
        print("Бот:", get_response(user))
    

    А что дальше ?

    Глубокое обучение - стоит попробовать transformers от Hugging Face для создания настоящих языковых моделей.

    Пример:

    from transformers import pipeline
    
    chatbot = pipeline("text-generation", model="gpt2")
    response = chatbot("Как стать программистом?", max_length=100)
    print(response[0]['generated_text'])
    

    Обучение своей модели:

    • Собери датасет (например, диалоги)
    • Дообучи модель (fine-tuning) с помощью HuggingFace Transformers.

    0 0 0 Reply
  • barsikB
    barsik
    Производные степенной, показательной и логарифмической функций

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

    В этом материале вы узнаете, как быстро и правильно находить производные этих функций. Без сложных обозначений — только понятные объяснения, правила и примеры. Даже если вы впервые сталкиваетесь с этим, всё будет просто и логично.

    Как найти производную степенной функции

    Степенная функция — это, например, x в квадрате, x в кубе или корень из x. Общий вид: x в степени n, где n — любое число: целое, дробное, положительное или отрицательное.

    Основное правило

    Чтобы найти производную такой функции, нужно:

    1. Степень (n) поставить в начало как множитель.
    2. Уменьшить степень на единицу.

    Например:

    • Производная от x² — это 2x.
    • Производная от x³ — это 3x².
    • Производная от x⁻² — это -2x⁻³.

    А что с корнями? Помните: корень из x — это x в степени 1/2. Значит:

    • Производная от √x = производная от x^(1/2) = (1/2) × x^(-1/2) = 1/(2√x).

    Это правило работает всегда, где функция определена. Главное — правильно переписать корень или дробь в виде степени.

    Производная показательной функции: когда рост ускоряется

    Показательная функция — это, например, 2^x, 5^x или e^x. Она описывает процессы, где что-то растёт или убывает очень быстро: вирусы, деньги на депозите, радиоактивный распад.

    Как её дифференцировать?

    Производная функции a^x (где a — положительное число, не равное 1) равна самой функции, умноженной на натуральный логарифм от a.

    Проще говоря:

    • Производная от 2^x = 2^x × ln(2)
    • Производная от 10^x = 10^x × ln(10)

    Но есть особый случай — число e (примерно 2,718). У него уникальное свойство:

    • Производная от e^x = e^x

    Да, она не меняется! Это делает экспоненту e^x одной из самых важных функций в математике.

    Если в степени стоит не просто x, а выражение (например, e^(2x)), используем правило цепочки:

    • Производная от e^(2x) = e^(2x) × 2 = 2e^(2x)

    Производная логарифмической функции: от ln x до log a x

    Логарифмическая функция — противоположность показательной. Чаще всего в задачах встречается натуральный логарифм, обозначаемый как ln x. Это логарифм по основанию e.

    Простое правило

    Производная от ln x равна 1/x.
    То есть:

    • (ln x)' = 1/x

    Это работает только при x > 0 — логарифм определён только для положительных чисел.

    Если основание другое — например, log₂x (логарифм по основанию 2), то:

    • Производная от log_a x = 1 / (x × ln a)

    Примеры:

    • Производная от log₂x = 1 / (x × ln 2)
    • Производная от ln(3x) = 1/(3x) × 3 = 1/x (здесь применяем цепное правило)

    Полезные советы для запоминания

    Чтобы не путаться, держите в голове:

    • У степенной функции степень “спускается” вперёд, а сама степень уменьшается на 1.
    • У показательной функции почти всё остаётся, но добавляется множитель — ln a. Исключение: e^x — она остаётся без изменений.
    • У логарифма (ln x) производная — просто 1/x. Легко запомнить.

    Если аргумент сложный (например, ln(x² + 1) или e^(4x)), не забывайте умножать на производную внутреннего выражения — это цепное правило.

    Зная эти три типа, вы сможете находить производные большинства функций, с которыми столкнётесь в школе и вузе. Это фундамент, на котором строится вся дифференциация. Учись понимать — и математика станет проще.


    0 0 1 Reply
  • barsikB
    barsik
    Объём и площадь поверхности: цилиндр, конус, шар

    Фигуры вращения — цилиндр, конус, шар — часто встречаются в задачах и в реальной жизни.
    Банка, ведро, мяч, колонна — всё это примеры этих форм.

    Чтобы решать задачи правильно, нужно знать две вещи:

    • объём — сколько вмещается внутри,
    • площадь поверхности — сколько материала нужно, чтобы её покрыть.

    Мы разберём всё по порядку:
    четко, без лишней сложности, с примерами.


    Цилиндр: объём и площадь боковой и полной поверхности

    Цилиндр — это как столб или банка.
    Имеет два одинаковых круглых основания и боковую поверхность.

    Объём цилиндра: V = πr²h

    Чтобы найти, сколько в нём “помещается”, умножаем площадь основания на высоту.

    Формула:
    V = π × r² × h
    Где:

    • r — радиус основания,
    • h — высота цилиндра.

    Пример:
    r = 3 см, h = 10 см
    V = π × 9 × 10 = 90π ≈ 282,6 см³


    Площадь поверхности цилиндра: S = 2πr² + 2πrh

    Полная площадь — это два основания + боковая поверхность.

    • Площадь двух кругов: 2πr²
    • Боковая поверхность (развёртка — прямоугольник): 2πrh

    Итого:
    S = 2πr² + 2πrh = 2πr(r + h)

    Пример:
    r = 3 см, h = 10 см
    S = 2π×3×(3 + 10) = 6π×13 = 78π ≈ 245 см²

    💡 Запомните:

    • Объём — в кубических единицах (см³, м³),
    • Площадь — в квадратных (см², м²).

    Конус: острый, но предсказуемый

    Конус — как рожок мороженого или колпак.
    Есть круглое основание и вершина.

    Объём конуса: V = ⅓πr²h

    Объём конуса в три раза меньше, чем у цилиндра с теми же r и h.

    Формула:
    V = ⅓ × π × r² × h
    Где:

    • r — радиус основания,
    • h — высота (от центра основания до вершины).

    Пример:
    r = 4 м, h = 6 м
    V = ⅓ × π × 16 × 6 = 32π ≈ 100,5 м³


    Площадь поверхности конуса: S = πr² + πrl

    Состоит из:

    • Круглого основания: πr²,
    • Боковой поверхности: πrl,
      где l — образующая (расстояние от вершины до края основания).

    Формула:
    S = πr(r + l)

    Пример:
    r = 4 м, l = 5 м
    S = π×4×(4 + 5) = 4π×9 = 36π ≈ 113,04 м²

    ⚠️ Важно: если даны высота и радиус, но нет образующей — найдите её по теореме Пифагора:
    l = √(r² + h²)


    Шар: идеальная фигура

    Шар — это трёхмерная сфера.
    У него нет рёбер, граней, только радиус.

    Объём шара: V = ⁴⁄₃πr³

    Чем больше радиус, тем быстрее растёт объём — ведь он в кубе.

    Формула:
    V = ⁴⁄₃ × π × r³

    Пример:
    r = 3 см
    V = ⁴⁄₃ × π × 27 = 36π ≈ 113,04 см³


    Площадь поверхности шара: S = 4πr²

    Это площадь всей внешней оболочки — как кожура арбуза.

    Формула:
    S = 4 × π × r²

    Пример:
    r = 5 м
    S = 4 × π × 25 = 100π ≈ 314 м²

    💡 Интересно:
    Площадь поверхности шара равна площади четырёх кругов того же радиуса.


    Как запомнить формулы? Простые подсказки

    Не пытайтесь вызубрить всё.
    Лучше поймите логику:

    Фигура Объём Площадь поверхности
    Цилиндр πr²h (как призма) 2πr² + 2πrh
    Конус ⅓πr²h (треть от цилиндра) πr² + πrl
    Шар ⁴⁄₃πr³ (самый “плотный”) 4πr²

    📌 Советы:

    • У конуса объём — с коэффициентом ⅓,
    • У шара — ⁴⁄₃ и r³,
    • Площадь шара — 4πr², как 4 круга,
    • У цилиндра и конуса — πr² в основании.


    0 0 1 Reply
  • barsikB
    barsik
    Формула площади круга и длины окружности: всё, что нужно знать

    Круг — одна из самых гармоничных фигур в геометрии.
    И с ним постоянно сталкиваются и в школе, и в жизни.
    Хотите вычислить, сколько краски нужно для круглого стола?
    Или какова длина забора вокруг круглой клумбы?

    Тогда вам пригодятся две ключевые формулы:

    • площадь круга,
    • длина окружности.

    Объясню всё просто, пошагово и без лишней сложности.
    Только то, что действительно нужно знать.


    Площадь круга: как найти, если известен радиус

    Площадь круга — это то, сколько места он занимает на плоскости.

    Формула проста:
    S = π × r²
    Где:

    • S — площадь,
    • r — радиус (расстояние от центра до края),
    • π (пи) ≈ 3,14159… — математическая константа.

    Чаще всего в задачах используют π ≈ 3,14 или оставляют букву π в ответе.

    Пример:
    Радиус круга — 5 см.
    S = π × 5² = 25π ≈ 78,5 см².

    💡 Совет: Если дан диаметр (d), сначала найдите радиус: r = d / 2.
    Например, d = 10 см → r = 5 см → S = 25π.


    Длина окружности: формула и применение

    Длина окружности — это периметр круга.
    То, сколько метров понадобится, чтобы пройти по его краю.

    Формула:
    C = 2 × π × r
    или
    C = π × d
    Где:

    • C — длина окружности,
    • r — радиус,
    • d — диаметр.

    Обе формулы работают. Выбирайте ту, где данные уже известны.

    Пример:
    Радиус = 7 м.
    C = 2 × π × 7 = 14π ≈ 43,96 м.

    Если дан диаметр 10 см → C = π × 10 = 10π см.

    Это полезно при решении задач про колёса, беговые дорожки, ограждения и т.д.


    Что такое π (пи)? Почему оно везде?

    π (пи) — это отношение длины окружности к её диаметру.
    В любом круге, каким бы он ни был, это отношение всегда одинаковое.

    C / d = π ≈ 3,14159…
    Именно отсюда и пошла формула C = πd.

    π — иррациональное число. Оно бесконечно и не повторяется.
    Но для расчётов хватает 3,14 или дроби 22/7 (для грубых оценок).

    Запомните:

    • π ≈ 3,14
    • 2π ≈ 6,28
    • π/2 ≈ 1,57

    Это ускорит вычисления.


    Как не ошибиться: советы по применению формул

    Частые ошибки начинающих:

    • путают площадь и длину,
    • забывают возводить радиус в квадрат,
    • используют диаметр вместо радиуса в формуле S = πr².

    Как избежать ошибок:

    1. Сначала определите, что нужно найти: площадь (S) или длину ©?
    2. Найдите радиус. Если дан диаметр — разделите на 2.
    3. Подставьте в нужную формулу.
    4. Проверьте единицы измерения. См² — для площади, см — для длины.

    📌 Пример задачи:
    Дано: диаметр круга = 8 м. Найти площадь и длину окружности.

    Решение:
    r = 8 / 2 = 4 м
    S = π × 4² = 16π м²
    C = 2 × π × 4 = 8π м

    Ответ: площадь — 16π м², длина — 8π м.


    Круги проще, чем кажутся

    Теперь вы знаете:

    • Площадь круга = πr²,
    • Длина окружности = 2πr или πd.

    Эти формулы — база.
    Они пригодятся в школе, на экзаменах, в ремонте и даже в кулинарии (представьте, сколько теста для пиццы!).


    0 0 1 Reply
  • barsikB
    barsik
    Как быстро найти площадь треугольника: три формулы, которые выручат на экзамене

    Три самых нужных способа: через высоту, по Герону и через синус угла.

    Площадь треугольника — одна из базовых тем в геометрии.
    Её нужно знать каждому школьнику и студенту.
    Но формул несколько. Какую выбрать?
    Всё зависит от того, какие данные у вас есть.

    Разберём основные формулы площади треугольника, объясним, когда и как их использовать.
    Без лишней воды — только суть, примеры и полезные подсказки.


    Как найти площадь треугольника: основные формулы

    Существует несколько способов вычислить площадь треугольника.
    Выбор зависит от известных параметров: стороны, углы, высота, радиусы окружностей.

    Рассмотрим самые популярные и полезные формулы.
    Каждая из них пригодится в определённой задаче.


    Через основание и высоту: S = ½·a·h

    Это самая простая и часто используемая формула площади треугольника.

    S = ½ × a × h
    Где:

    • a — длина основания,
    • h — высота, проведённая к этому основанию.

    Представьте: треугольник стоит на стороне a.
    Высота h — перпендикуляр от противоположной вершины до этой стороны (или её продолжения).

    Пример:
    Основание — 10 см, высота — 6 см.
    S = ½ × 10 × 6 = 30 см².

    Эта формула работает для любого треугольника: остроугольного, тупоугольного, прямоугольного.


    По формуле Герона: когда известны три стороны

    Идеально подходит, если вы знаете длины всех трёх сторон, но не знаете высоту.

    Формула выглядит так:
    S = √ [p(p−a)(p−b)(p−c)]
    Где:

    • a, b, c — длины сторон,
    • p — полупериметр: p = (a + b + c) / 2.

    Шаги для расчёта:

    1. Найдите полупериметр.
    2. Подставьте в формулу.
    3. Вычислите корень.

    Пример:

    • Стороны: 3 см, 4 см, 5 см.
    • p = (3+4+5)/2 = 6
    • S = √ [6×(6−3)×(6−4)×(6−5)] = √ [6×3×2×1] = √ 36 = 6 см².

    Обратите внимание: это прямоугольный треугольник (3-4-5).
    Площадь через катеты: ½×3×4 = 6 см². Результат совпадает!


    Через две стороны и угол между ними: S = ½·a·b·sin(γ)

    Когда известны две стороны и угол между ними — это лучший выбор.

    Формула:
    S = ½ × a × b × sin(γ)
    Где:

    • a и b — стороны,
    • γ — угол между ними.

    Эта формула особенно полезна в задачах с косинусами и синусами.
    Она работает для любого треугольника.

    Пример:
    Стороны 8 см и 5 см, угол между ними — 30°.
    sin(30°) = 0.5
    S = ½ × 8 × 5 × 0.5 = 10 см².

    Запомните: синус угла — это табличное значение.
    Для 30°, 45°, 60°, 90° его нужно знать наизусть.


    Как выбрать нужную формулу?

    Не нужно учить всё наизусть.
    Просто ответьте на вопрос: что вам известно?

    Что дано? Какую формулу использовать?
    Основание и высота S = ½·a·h
    Три стороны Формула Герона
    Две стороны и угол между ними S = ½·a·b·sin(γ)
    Катеты прямоугольного треугольника S = ½·a·b (частный случай)

    Главное — не бояться пробовать.
    Часто в задаче можно найти недостающие данные с помощью теоремы Пифагора или тригонометрии.


    0 0 1 Reply
  • barsikB
    barsik
    Корни квадратного уравнения через дискриминант

    1. Вводное напоминание

    Квадратное уравнение:
    a x² + b x + c = 0, где a ≠ 0

    Всё, что нужно для нахождения корней, — это дискриминант
    D = b² – 4ac


    2. Алгоритм «от D до корней»

    1. Записываем коэффициенты: a, b, c.

    2. Считаем D = b² – 4ac.

    3. Смотрим на знак 😧
      • D > 0 — два корня
      • D = 0 — один корень (кратность 2)
      • D < 0 — действительных корней нет

    4. Если D ≥ 0, находим корни по формуле
      x = (-b ± √D) / (2a)

    5. Проверяем: подставляем полученные значения x обратно в уравнение.


    3. Пошаговый пример

    Решим: 2x² – 4x – 6 = 0

    1. a = 2, b = –4, c = –6

    2. D = (–4)² – 4·2·(–6) = 16 + 48 = 64

    3. D > 0 → два корня

    4. √D = 8
      x₁ = ( 4 + 8 ) / 4 = 12 / 4 = 3
      x₂ = ( 4 – 8 ) / 4 = –4 / 4 = –1

    5. Проверка:
      2·3² – 4·3 – 6 = 18 – 12 – 6 = 0 ✔️
      2·(–1)² – 4·(–1) – 6 = 2 + 4 – 6 = 0 ✔️

    Ответ: x = 3, x = –1


    4. Чек-лист типовых ошибок

    Подводный камень Как не утонуть
    Забыть минус у b b = –4 → b² = 16
    Перепутать порядок b² – 4ac, а не 4ac – b²
    Считать √D «на глаз» Сначала посчитать D, потом извлекать корень
    Делить только числитель x = (-b ± √D) / (2a) — знаменатель общий
    Не проверять ответ Подстановка занимает 10 секунд и экономит 10 минут пересдач

    5. Что делать, если D < 0?

    Говорите честно:
    «Действительных корней нет».
    Если тема комплексных чисел разрешена, добавляйте:
    «В комплексных числах корни x = (-b ± i√|D|)/(2a)».


    6. Мини-шпаргалка для быстрого копирования

    1. D = b² - 4ac
    2. Если D ≥ 0 → x = (-b ± √D)/(2a)
    3. Подставить и проверить

    0 0 1 Reply
  • barsikB
    barsik
    Дискриминант квадратного уравнения

    1. Формула

    Для уравнения вида
    a x² + b x + c = 0, где a ≠ 0

    дискриминант:
    D = b² – 4ac

    | D > 0 | два разных корня |
    | D = 0 | один корень (x = –b / 2a) |
    | D < 0 | действительных корней нет |


    2. Разбор примера

    Решим: 3x² – 10x + 3 = 0

    1. a = 3, b = –10, c = 3
    2. D = ( –10 )² – 4·3·3 = 100 – 36 = 64
    3. √ D = 8
    4. x₁ = ( 10 + 8 ) / ( 2·3 ) = 18 / 6 = 3
      x₂ = ( 10 – 8 ) / ( 2·3 ) = 2 / 6 = 1/3

    Ответ: x = 3, x = 1/3


    3. Типовые ошибки и как их избежать

    № Ошибка Как правильно
    1 Забываем знак b b = –10 → b² = 100
    2 Пишем 4ac – b² Всегда b² – 4ac
    3 D < 0 → «нет решений» Уточнять: нет действительных корней
    4 Делим только числитель x = (–b ± √D) / (2a)
    5 Упрощаем √D преждевременно Сначала считаем D, потом корень
    6 Не проверяем ответ Подставляем корни обратно в уравнение

    Обсуждение

    Приводите свои примеры, задавайте вопросы и делитесь «ловушками», в которые сами попадали!


    0 0 1 Reply
  • kirilljsxK
    kirilljsx
    Al-ассистент для SEO — Комплексный SEO анализ страницы

    Для того что бы сделать seo анализ через ИИ-агента необходимо использовать следующий промпт

    📋 Готовый промпт:

    1. 🎯 Подбери топ-15 лучших запросов для страницы [ВАША_ССЫЛКА] на основе:
       - Анализа контента и тематики
       - Частотности в Wordstat
       - Коммерческой релевантности
       - Конкурентности запросов
    
    2. 📊 Создай семантическое ядро в виде таблицы с колонками:
       - Запрос
       - Частотность (запросов/мес)
       - Тип запроса (основной/целевой/длинный хвост)
       - Приоритет (высокий/средний/низкий)
       - Сложность продвижения
    
    3. 🔍 Проанализируй ТОП-10 конкурентов в Яндексе:
       - Собери и проанализируй их мета-тайтлы
       - Выяви успешные паттерны и подходы
       - Определи слабые места конкурентов
       - Предложи 3-5 вариантов лучшего мета-тайтла
       - Обоснуй каждый вариант с указанием преимуществ
    
    Дополнительно укажи рекомендации по оптимизации и потенциал роста трафика.
    

    1 0 0 Reply
  • kirilljsxK
    kirilljsx
    В Telegram появился глобальный поиск постов

    Поиск публичных постов

    Теперь пользователи могут искать сообщения по ключевым словам в публичных каналах, даже в тех, в которых они не состоят. В разделе поиска появилась новая вкладка «Посты». Пока функция доступна лишь Premium-пользователям. В день доступно по 10 поисков.

    Рейтинг пользователей

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

    Альбомы историй

    Пользователи, которые активно публикуют истории, теперь могут объединять их в альбомы, создавая тематические подборки. Функция также доступна для каналов, например, магазины теперь могут создавать каталоги товаров.

    Чтобы добавить истории в альбом, нужно зайти в раздел «Публикации» в профиле и выбрать «Добавить альбом».

    Коллекции подарков

    В обновлении также есть функция для сортировки подарков — теперь их можно объединять в коллекции по различным признакам (редкости, тематике и т. д.). Один и тот же подарок может присутствовать в разных коллекциях. А для удобства просмотра подарков предусмотрен фильтр сортировки.

    Чтобы добавить подарки в коллекцию, нужно перейти во вкладку «Подарки» в профиле и нажать «Добавить коллекцию».

    Premium-подарки

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

    Мини-приложение BotFather

    Теперь пользователи могут создавать и управлять ботами и мини-приложениями с помощью удобного интерфейса в новом мини-приложении BotFather. Обновление настроек, иконки, описания — все это доступно разработчикам в мини-приложении BotFather.


    0 0 0 Reply
  • kirilljsxK
    kirilljsx
    ИИ научился управлять человечеством

    a292a6e0-bad3-4b6e-9e8f-1207dc073302-image.png

    ИИ научился управлять человечеством: разработчикам пришлось сделать функцию для приложения, только потому что ее выдумал ChatGPT.

    Чат-бот отправлял людей на сервис Soundslice создавать нотные листы из текста. Но там не было такой опции. Поэтому площадку завалили жалобами.

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


    0 0 0 Reply
Популярные темы:

  • JavaScript мемы
    kirilljsxK
    kirilljsx
    2
    24
    357

  • Vue.js и React — необычное сравнение
    D
    DeepSeeker
    3
    10
    295

  • Как выбрать язык программирования для стартапа: Python, Go, Rust или что-то ещё?
    kirilljsxK
    kirilljsx
    0
    10
    111

  • Славянский удар з*лупой
    kirilljsxK
    kirilljsx
    0
    9
    119

  • Проверка стала проще с Zod: как обеспечить точность и качество форм
    kirilljsxK
    kirilljsx
    3
    8
    349

  • Выгорание в ИТ миф или нет?
    kirilljsxK
    kirilljsx
    0
    6
    81

  • Национальный мессенджер России: как будет работать интеграция с госуслугами и какие функции получит платформа
    kirilljsxK
    kirilljsx
    2
    6
    76

  • При каком режиме мышка садится быстрее при 2.4 или BT ?
    kirilljsxK
    kirilljsx
    0
    6
    67

Пользователи в Сети:

Статистика:

3

Online

36

Users

215

Topics

385

Posts

Категории

  • Главная
  • Новости
  • Фронтенд
  • Бекенд
  • Языки программирования

Контакты

  • Сотрудничество
  • info@exlends.com
  • Наш чат
  • Наш ТГ канал

© 2024 - 2025 ExLends, Inc. Все права защищены.

Политика конфиденциальности
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups