Blog

  • Comfenalco_Microelectronica_Nivel_0

    🚀 Comfenalco – Microelectrónica para Técnicos Nivel 0

    ¡Descubre el fascinante mundo de la microelectrónica! Un viaje épico desde los fundamentos atómicos hasta los componentes más avanzados de la tecnología moderna.

    ⚡ ¿Por qué este curso te cambiará la vida?

    Este no es solo otro curso de electrónica. Es tu puerta de entrada al futuro tecnológico, donde aprenderás desde la Ley de Moore hasta las técnicas más avanzadas de diagnóstico con medidores ESR. 2

    🎯 Metodología Revolucionaria

    Teoría + Laboratorio = Dominio Total 3

    • 🧠 Teoría: Conceptos fundamentales que cambiarán tu perspectiva
    • 🔬 Laboratorio: Prácticas reales con herramientas profesionales
    • 🔧 Componentes: Desde discretos hasta SMD de última generación

    🌟 Arsenal de Herramientas Digitales

    📱 Apps Revolucionarias para tu Smartphone

    • SMD Decoder: Decodifica resistencias, capacitores e inductores al instante 4
    • Electrodoc: Tu calculadora universal de componentes 5
    • All DataSheet: Acceso instantáneo a hojas de fabricante 6
    • Lupa Digital: Convierte tu celular en un microscopio profesional 7

    🤖 IA Generativa: Tu Asistente Personal

    Domina las herramientas de inteligencia artificial más poderosas: 8

    • ChatGPT, Copilot, Gemini, LuzIA, Claude

    🔬 Fundamentos que Transforman

    ⚛️ Desde el Átomo hasta el Chip

    • Modelo Atómico: Comprende la base de todo 9
    • 14 Tipos de Energía: Desde luz hasta radioactividad 10
    • Ley de Ohm Masterclass: Domina V, I, R como un profesional 11

    🧪 Materiales del Futuro

    Conoce los secretos de: 12

    • Conductores: Oro, Cobre, Aluminio
    • Semiconductores: Silicio, Germanio, GaAs
    • Superconductores: Carbono, Cadmio, Cromo
    • Superaisladores: Tecnología de vanguardia

    🛠️ Herramientas Profesionales

    🔧 Arsenal Completo de Instrumentación

    • Multímetros Inteligentes: Medición de precisión 13
    • Herramientas Especializadas: Para celulares, potencia, vehículos 14
    • Instrumentación Industrial: Equipos de nivel profesional 15

    🎯 ¡EL SECRETO MEJOR GUARDADO: MEDIDORES ESR!

    🔥 ESR: La Técnica que Separa a los Profesionales de los Aficionados

    Los medidores ESR son la herramienta más poderosa para diagnóstico avanzado de componentes. 16

    ¿Por qué ESR es REVOLUCIONARIO?

    • 🎯 Diagnóstico sin desoldadura: Mide componentes en circuito
    • Detección instantánea: Identifica fallas invisibles al multímetro
    • 🔬 Precisión extrema: Capacitores, inductores, resistores
    • 💡 Ahorro de tiempo: Diagnósticos en segundos, no horas

    Aplicaciones ESR en el curso:

    • Medición de capacitores sin riesgo eléctrico 17
    • Análisis de inductores con precisión profesional 18
    • Verificación de resistores sin interferencias 19
    • Diagnóstico de diodos y semiconductores 20

    🧩 Componentes: De Básico a Experto

    🔴 RESISTORES: Maestría Completa

    • Discretos, SMD, Potencia, Industriales, Arrays 21
    • Carta de Fallas Profesional: 7 tipos de fallas y sus causas 22

    🟢 CAPACITORES: Tecnología Avanzada

    • Cerámicos, Tantalio, SMD, Aceite y Papel 23
    • Diagnóstico Experto: 7 fallas críticas identificadas 24

    🟡 INDUCTORES: Magnetismo Dominado

    • Toroidales, SMD, Discretos – 8 tipos diferentes 25
    • Medición Profesional: 4 técnicas avanzadas 18

    🔵 SEMICONDUCTORES: El Futuro en tus Manos

    • Diodos: LEDs, Potencia, SMD, Equivalencias 26
    • SCRs: Control de potencia profesional 27
    • TRIACs: Conmutación AC avanzada 28

    ⚠️ Seguridad Profesional

    🛡️ Protección Total

    Domina los 6 enemigos de la electrónica: 29

    • Estática: Técnicas de descarga segura
    • 🌡️ Temperatura: Control térmico profesional
    • 💧 Humedad: Prevención de corrosión
    • 🌪️ Polvo: Mantenimiento preventivo
    • 📳 Vibraciones: Estabilidad mecánica
    • 🦺 EPP: Equipos de protección personal

    📚 Manuales Profesionales

    Aprende a interpretar los 5 tipos de documentación técnica: 30

    • 📖 Manual de Usuario
    • ⚙️ Manual de Operación
    • 🛡️ Manual de Garantía
    • 🔧 Manual de Servicio (L0, L1, Esquemáticos)

    🚀 ¿Listo para la Transformación?

    Este curso no solo te enseña electrónica, te convierte en un profesional. Con herramientas de IA, medidores ESR, y conocimiento desde el nivel atómico hasta sistemas complejos.

    💻 Cómo Empezar

    1. Abre index.html en tu navegador
    2. Sumérgete en la experiencia interactiva
    3. Practica con herramientas reales
    4. Domina el diagnóstico ESR

    🎓 Instructor: Luis Sanchez (@sanchezluys)
    🛠️ Tecnología: reveal.js – Presentaciones interactivas de nivel profesional
    📅 Versión: v1.0 2024

    “La microelectrónica no es solo tecnología, es el lenguaje del futuro. ¡Aprende a hablarlo!”

    Ask DeepWiki

    Visit original content creator repository https://github.com/sanchezluys/Comfenalco_Microelectronica_Nivel_0
  • opti-data-profiles

    Opti Data Profiles

    This library (just one class, really) provides a simple C# wrapper around customer objects in Optimizely Data Plaform (ODP), allowing you to use that repository to store user profile and preferences.

    Note that you could manage Customer profiles in ODP already, this just provides a C# “link” to get the corresponding profile to the CMS server-side user context.

    This allows storage of user preferences and data in ODP, which provides some benefits:

    1. It’s handy and simple
    2. It scales like crazy (I’m not saying users in CMS didn’t scale, but ODP is literally built for exactly this)
    3. You can segment users based on profile data
    4. It’s easy to re-use user data in other applications and platforms

    Traditionally, Opti CMS hasn’t provided a comprehensive framework for storing user data beyond name, email, and passwords. For other preference data, Opti CMS has relied on the ASP.NET profile framework or bespoke systems.

    This library (hopefully) solves this issue.

    To Install

    You only need to compile in the one class: OptiDataProfile.cs

    Then, set two static properties:

    // The name of the field that is serving as an identifier
    OptiDataProfile.KeyField = "email";
    
    // Your API Key
    OptiDataProfile.ApiKey = "whatever";
    

    (Yes, yes, I should probably write this as an injected service at some point. If you want to, go nuts. PRs are open.)

    To Use (read)

    Instantiate the OptiDataProfile object with the identifier (a value for whatever you used as the KeyField). This should correspond to how the user is dentified in CMS — either username or email would work.

    For example, if we were using email:

    var profile = new OptiDataProfile("deane@deanebarker.net");
    

    If a customer object doesn’t exist in ODP for that key, it will be created.

    When the object is created in C#, all the profile data is cached in a local dictionary, under the Attributes property. Values are stored as object.

    Some convenience accessors are also provided.

    var address = profile.GetValue("address"); // Returns an object
    var address = profile.GetString("address"); // Returns a string
    var address = profile["address"]; // Returns a string
    

    You can provide a default value to be used if GetValue returns null or GetString returns null or whitespace.

    var mood = profile.GetString("mood", "Unknown");
    

    To Use (write)

    You can write back to ODP one value at a time:

    profile.SetValue("mood", "Happy");
    

    Note: that attribute must already exist on the “Customer” schema in ODP.

    That will write immediately, and update the local object cache (it does this interally — it doesn’t write and then reload all the attributes).

    You can write multiple keys at once:

    profile.SetValues(new Dictionary<string,object>()
    {
      { "mood", "Happy" },
      { "eyecolor", "blue" }
    });
    

    Or you can pass in an object that will be reflected — property names will become dictionary keys.

    profile.SetValues(new {
      mood = "Happy",
      eyecolor = "blue"
    });
    

    (Clearly, that last method presents issues with property naming. Your attribute keys would have to obey C# syntax rules — no spaces, no hyphens, etc. If your keys violate those rules, then you’ll need to use the Dictionary method.)

    Automating ID Retrieval

    Normally, you need to pass in an ID to instatiate an object. This isn’t ideal if you’re instantiating the object in different locations in your code.

    You can set a static method to be used for this, which allows you to centralize this logic. This method should return a string.

    OptiDataProfile.IdProvider = () => {
      var email = GetEmailSomehow();
      return email;
    };
    

    This method takes no parameters — the intention is that you would retrieve the ID from Session or HttpContext or some other global construct.

    Once this method is set, then anywhere in your code, you can call this:

    var profile = OptiDataProfile.GetCurrentProfile();
    

    (See ProfileController.cs for examples of this method.)

    That will call the IdProvider method internally, and feed the result into the constructor, returning a populated profile. If your IdProvider returns null, then GetCurrentProfile will return null as well.

    Visit original content creator repository
    https://github.com/deanebarker/opti-data-profiles

  • llama-server

    LLaMA Server

    PyPI version Unit test GitHub stars GitHub license

    LLaMA Server combines the power of LLaMA C++ (via PyLLaMACpp) with the beauty of Chatbot UI.

    🦙LLaMA C++ (via 🐍PyLLaMACpp) ➕ 🤖Chatbot UI ➕ 🔗LLaMA Server 🟰 😊

    UPDATE: Greatly simplified implementation thanks to the awesome Pythonic APIs of PyLLaMACpp 2.0.0!

    UPDATE: Now supports better streaming through PyLLaMACpp!

    UPDATE: Now supports streaming!

    Demo

    • Better Streaming
    better_stream_demo.mov
    • Streaming
    stream_demo.mov
    • Non-streaming
    demo.mov

    Setup

    • Get your favorite LLaMA models by

    • Create a models.yml file to provide your model_home directory and add your favorite South American camelids, e.g.:

    model_home: /path/to/your/models
    models:
      llama-7b:
        name: LLAMA-7B
        path: 7B/ggml-model-q4_0.bin  # relative to `model_home` or an absolute path

    See models.yml for an example.

    • Set up python environment:
    conda create -n llama python=3.9
    conda activate llama
    • Install LLaMA Server:

      • From PyPI:
      python -m pip install llama-server
      • Or from source:
      python -m pip install git+https://github.com/nuance1979/llama-server.git
    • Start LLaMA Server with your models.yml file:

    llama-server --models-yml models.yml --model-id llama-7b
    • Check out my fork of Chatbot UI and start the app;
    git clone https://github.com/nuance1979/chatbot-ui
    cd chatbot-ui
    git checkout llama
    npm i
    npm run dev
    • Open the link http://localhost:3000 in your browser;
      • Click “OpenAI API Key” at the bottom left corner and enter your OpenAI API Key;
      • Or follow instructions at Chatbot UI to put your key into a .env.local file and restart;
      cp .env.local.example .env.local
      <edit .env.local to add your OPENAI_API_KEY>
    • Enjoy!

    More

    • Try a larger model if you have it:
    llama-server --models-yml models.yml --model-id llama-13b  # or any `model_id` defined in `models.yml`
    • Try non-streaming mode by restarting Chatbot UI:
    export LLAMA_STREAM_MODE=0  # 1 to enable streaming
    npm run dev

    Fun facts

    I am not fluent in JavaScript at all but I was able to make the changes in Chatbot UI by chatting with ChatGPT; no more StackOverflow.

    Visit original content creator repository https://github.com/nuance1979/llama-server
  • llama-server

    LLaMA Server

    PyPI version Unit test GitHub stars GitHub license

    LLaMA Server combines the power of LLaMA C++ (via PyLLaMACpp) with the beauty of Chatbot UI.

    🦙LLaMA C++ (via 🐍PyLLaMACpp) ➕ 🤖Chatbot UI ➕ 🔗LLaMA Server 🟰 😊

    UPDATE: Greatly simplified implementation thanks to the awesome Pythonic APIs of PyLLaMACpp 2.0.0!

    UPDATE: Now supports better streaming through PyLLaMACpp!

    UPDATE: Now supports streaming!

    Demo

    • Better Streaming
    better_stream_demo.mov
    • Streaming
    stream_demo.mov
    • Non-streaming
    demo.mov

    Setup

    • Get your favorite LLaMA models by

    • Create a models.yml file to provide your model_home directory and add your favorite South American camelids, e.g.:

    model_home: /path/to/your/models
    models:
      llama-7b:
        name: LLAMA-7B
        path: 7B/ggml-model-q4_0.bin  # relative to `model_home` or an absolute path

    See models.yml for an example.

    • Set up python environment:
    conda create -n llama python=3.9
    conda activate llama
    • Install LLaMA Server:

      • From PyPI:
      python -m pip install llama-server
      • Or from source:
      python -m pip install git+https://github.com/nuance1979/llama-server.git
    • Start LLaMA Server with your models.yml file:

    llama-server --models-yml models.yml --model-id llama-7b
    • Check out my fork of Chatbot UI and start the app;
    git clone https://github.com/nuance1979/chatbot-ui
    cd chatbot-ui
    git checkout llama
    npm i
    npm run dev
    • Open the link http://localhost:3000 in your browser;
      • Click “OpenAI API Key” at the bottom left corner and enter your OpenAI API Key;
      • Or follow instructions at Chatbot UI to put your key into a .env.local file and restart;
      cp .env.local.example .env.local
      <edit .env.local to add your OPENAI_API_KEY>
    • Enjoy!

    More

    • Try a larger model if you have it:
    llama-server --models-yml models.yml --model-id llama-13b  # or any `model_id` defined in `models.yml`
    • Try non-streaming mode by restarting Chatbot UI:
    export LLAMA_STREAM_MODE=0  # 1 to enable streaming
    npm run dev

    Fun facts

    I am not fluent in JavaScript at all but I was able to make the changes in Chatbot UI by chatting with ChatGPT; no more StackOverflow.

    Visit original content creator repository https://github.com/nuance1979/llama-server
  • devops-101

    DevOps-101

    Introduction

    This repository is designed to help anyone with very little or no computing background learn the basics of DevOps. Course is self-paced and when you’re finished with it, you’ll know how to manage resouces in Azure Cloud, using Infrastructure as Code approach.

    Learning path is just a collection of publicly available courses, grouped by a specific topic. Some section have homework part – you can use it for a self-evalution.

    if you have any questions regarding this tutorial, please do not hesitate to contact me (using Reddit,Linkedin or by pushing pull request to this repository).

    Prerequisites

    Accounts:

    Software:

    Learning Path

    DevOps

    1. The Origins of DevOps
    2. Guide to DevOps
    3. DevOps Model from Amazon

    Linux

    1. Running Windows Subsystem for Linux
    2. Linux Fundametals

    Linux Homework

    1. Deploy a Linux environmet (could be a Virtual Machine, Container Instance, Windows Subsystem for Linux etc.)
    2. Install some webserver and reconfigure it so it would run on a custom port (like 8088)
    3. Configure and apply a custom response page for the webserver (something like “Hello World!”)

    Git

    1. Introduction to Git
    2. Learn Git Branching
    3. Introduction to GitHub in Visual Studio Code
    4. Working with Git in Visual Studio Code

    Git Homework

    1. Fork this repository
    2. Clone forked repository to your local environment (could be PC, Virtual Machine, WSL etc.)
    3. Locally create a new branch and modify README.md file in it (by appending it with “Hello World!” line)
    4. Commit and push all changes to remote Github repository (forked one, not the original)

    Python

    1. What is Python?
    2. LearnPython.org interactive Python tutorial
    3. Perform mathematical operations on numeric data in Python
    4. [Optional][Advanced] An Introduction to Interactive Programming in Python

    Containerisation

    1. What is virtualization?
    2. What are containers?
    3. What is Docker?
    4. Introduction to Docker containers
    5. Containers for Beginners

    Containerisation Homework

    1. Create Dockerfile (base image can be any prefferable Linux image) in which a webserver is installed and started
    2. Build an image from the Dockerfile (for that you’ll need installed Docker Engine) and run the container (don’t forget to expose port for HTTP)
    3. Validate that you can access the webserver
    4. Publish your image to your Docker Hub Registry (for that you’ll need account in Docker Registry)

    Continuous Integration (CI)

    1. Continuous Integration Explained
    2. Create your first GitHub Action

    Continuous Integration Homework

    1. Create a new Github repository.
    2. Create and configure Github Action, which builds Dockerfile and publishes it in Docker Hub Registry once every day.

    Azure

    Intro

    1. Introduction to Azure fundamentals
    2. Create an Azure account
    3. Manage services with the Azure portal

    Access and Security

    1. Services and identity types of Azure AD
    2. Service Principals vs Managed Identities
    3. Create a service principal
    4. Manage secrets with Azure Key Vault
    5. Azure role-based access control
    Access and Security Homework
    1. Register a new application in Azure Active Directory.
    2. Generate and store a secret for the application.
    3. Create a Key Vault and grant access to the application: on resouce level – Contributor role, on Vault level – policy which would allow to create and read secrets.
    4. Using non-GUI approach (Powershell, Azure CLI etc.): authenticate to Azure using application’s credentials; create a new secret, read it, delete the whole Key Vault.

    ARM Templates

    1. Deploy resources using ARM template
    2. Use Azure Key Vault to pass secure parameters
    3. Deploy ARM templates by using GitHub Actions
    ARM Templates Homework
    1. Create a new Key Vault and add a secret with some value, which will be used as virtual machines password
    2. Deploy DNS Forwarder with your own parameters file, which for an user password would use Key Vault refference
    3. Check the result by logging in VM using a password from the Key Vault

    Networks

    1. Fundamentals of computer networking
    2. Connect on-prem to Azure using VPN Gateway
    3. Connect on-prem to Azure using ExpressRoute
    4. Design an IP addressing schema
    5. Intro to VNet peering
    6. Hub and Spoke topology
    7. Design and implement private access to Azure Services
    Networks Homework
    1. Create two VNets with different IP ranges (which doesn’t overlap) and a storage account
    2. Expose storage account’s fileshare privately (using private endpoint) on both networks
    3. Establish between networks VNet peering
    4. Create two virtual machines – one in the first network with public IP and another in the second network without public IP
    5. Connect remotely to publicly available machine and using it connect to the privately available VM
    6. From both VMs resolve privately exposed fileshare (using nslookup or any other prefferable way) and validate that in both cases IP is private

    Serverless

    1. Choose the right integration and automation services in Azure
    2. Configure Azure Container Instances
    3. Publish Azure Functions by using Azure Functions Core Tools
    4. Create a Python function in Azure from the command line
    5. Monitor GitHub events by using a webhook with Azure Functions
    6. Create a function on Linux using a custom container
    Serverless Homework
    1. Deploy function for showing your public IP and check how it works
    2. [Optional][Advanced] Configure the same function but as a custom Docker container, deploy that image to Azure Container Instance with public IP address (with exposed HTTP port) and validate the result

    Azure DevOps

    1. Introduction to Azure DevOps
    2. Implement CI/CD with Azure DevOps
    3. Host your own build agent in Azure Pipelines

    Azure DevOps Homework

    1. Create a new organization and project in Azure DevOps.
    2. Deploy and configure self-hosted build agent on Azure Container Instance.
    3. Use self-hosted agent for deploying a Python web app.

    Ansible

    1. Ansible Overview
    2. Ansible Introduction
    3. Run web server using Ansible
    4. Ansible User Guide
    5. Configure Ansible on an Azure VM

    Ansible Homework

    1. Install Ansible with Azure modules
    2. Choose some ARM template from Azure Quickstart Templates and deploy it using azure_rm_deployment

    Infrastructure as Code

    What is Infrastructure as Code (IaC)?

    Infrastructure as Code Homework

    Configure and deploy your own IaC

    Next steps

    Congratulations! You have successfully completed this course! Now you can explore Azure by yourself. If you still wondering where to start, check following resources:

    Visit original content creator repository https://github.com/groovy-sky/devops-101
  • acs-language-survey

    This is a brief summary of the top non-English and non-Spanish languages spoken per-state in the US.

    This report was inspired by a 2014 article by Slate.

    The raw dataset was made available by the American Community Survey (a department of the Census Bureau) and is available for download here.

    Reporting on the data follows.


    Alaska

    630423 adult speakers

    Language Speakers Percent
    104 Yupik 17997 2.85%
    78 Tagalog 13062 2.07%
    102 Inupik 5062 0.80%
    27 Russian 3864 0.61%
    65 Korean 3639 0.58%
    15 German 3618 0.57%
    7 French 2039 0.32%
    91 Samoan 1976 0.31%
    101 Eskimo 1879 0.30%
    64 Japanese 1696 0.27%

    Alabama

    4320582 adult speakers

    Language Speakers Percent
    16 German 10019 0.23%
    7 French 7543 0.17%
    64 Chinese 6971 0.16%
    75 Vietnamese 5484 0.13%
    70 Korean 4546 0.11%
    110 Arabic 3930 0.09%
    42 Hindi 3283 0.08%
    69 Japanese 3043 0.07%
    112 African languages 2687 0.06%
    86 Tagalog 2107 0.05%

    Arkansas

    2633385 adult speakers

    Language Speakers Percent
    15 German 5761 0.22%
    69 Vietnamese 4272 0.16%
    7 French 4107 0.16%
    58 Chinese 3288 0.12%
    68 Laotian 3011 0.11%
    66 Hmong 2483 0.09%
    77 Tagalog 2135 0.08%
    99 Arabic 2063 0.08%
    64 Korean 1871 0.07%
    101 African languages 1199 0.05%

    Arizona

    5843921 adult speakers

    Language Speakers Percent
    113 Navajo 88251 1.51%
    15 German 22406 0.38%
    70 Chinese 20940 0.36%
    81 Vietnamese 16670 0.29%
    92 Tagalog 16252 0.28%
    7 French 14983 0.26%
    149 Arabic 12708 0.22%
    122 Apache 11545 0.20%
    151 African languages 9785 0.17%
    76 Korean 8726 0.15%

    California

    33748857 adult speakers

    Language Speakers Percent
    83 Chinese 926918 2.75%
    116 Tagalog 706785 2.09%
    97 Vietnamese 460203 1.36%
    92 Korean 347778 1.03%
    86 Cantonese 219085 0.65%
    48 Persian 180269 0.53%
    47 Armenian 174358 0.52%
    87 Mandarin 173835 0.52%
    91 Japanese 143291 0.42%
    32 Russian 142278 0.42%

    Colorado

    4495642 adult speakers

    Language Speakers Percent
    14 German 29255 0.65%
    80 Vietnamese 18275 0.41%
    7 French 17837 0.40%
    69 Chinese 16336 0.36%
    75 Korean 15469 0.34%
    28 Russian 15298 0.34%
    132 African languages 11152 0.25%
    130 Arabic 8449 0.19%
    92 Tagalog 7392 0.16%
    74 Japanese 5975 0.13%

    Connecticut

    3281254 adult speakers

    Language Speakers Percent
    11 Italian 38437 1.17%
    13 Portuguese 38107 1.16%
    7 French 36857 1.12%
    27 Polish 36553 1.11%
    66 Chinese 22829 0.70%
    26 Russian 11817 0.36%
    14 German 11445 0.35%
    10 French Creole 10304 0.31%
    25 Greek 9689 0.30%
    41 Hindi 8381 0.26%

    District of Columbia

    552746 adult speakers

    Language Speakers Percent
    7 French 8036 1.45%
    103 African languages 6606 1.20%
    104 Amharic 3337 0.60%
    61 Chinese 2675 0.48%
    14 German 2354 0.43%
    110 Kru, Ibo, Yoruba 1994 0.36%
    11 Italian 1417 0.26%
    12 Portuguese 1318 0.24%
    101 Arabic 1175 0.21%
    10 French Creole 1152 0.21%

    Delaware

    803548 adult speakers

    Language Speakers Percent
    91 African languages 4626 0.58%
    57 Chinese 4465 0.56%
    7 French 4114 0.51%
    14 German 3224 0.40%
    11 Italian 2661 0.33%
    77 Tagalog 2292 0.29%
    89 Arabic 2161 0.27%
    39 Hindi 2004 0.25%
    98 Kru, Ibo, Yoruba 1743 0.22%
    40 Gujarati 1545 0.19%

    Florida

    17052403 adult speakers

    Language Speakers Percent
    12 French Creole 295218 1.73%
    8 French 110231 0.65%
    14 Portuguese 85380 0.50%
    17 German 72578 0.43%
    13 Italian 56803 0.33%
    103 Tagalog 51064 0.30%
    89 Vietnamese 47261 0.28%
    76 Chinese 44730 0.26%
    159 Arabic 42668 0.25%
    31 Russian 31897 0.19%

    Georgia

    8785436 adult speakers

    Language Speakers Percent
    81 Korean 42326 0.48%
    141 African languages 41104 0.47%
    7 French 39170 0.45%
    86 Vietnamese 38420 0.44%
    73 Chinese 32213 0.37%
    16 German 25995 0.30%
    43 Hindi 18922 0.22%
    152 Kru, Ibo, Yoruba 15787 0.18%
    29 Russian 14574 0.17%
    13 Portuguese 14360 0.16%

    Hawaii

    1194450 adult speakers

    Language Speakers Percent
    77 Tagalog 52562 4.40%
    62 Japanese 48179 4.03%
    85 Ilocano 44591 3.73%
    56 Chinese 27588 2.31%
    63 Korean 17148 1.44%
    107 Hawaiian 16864 1.41%
    99 Samoan 11960 1.00%
    68 Vietnamese 8110 0.68%
    58 Cantonese 6872 0.58%
    7 French 4864 0.41%

    Iowa

    2787519 adult speakers

    Language Speakers Percent
    14 German 13267 0.48%
    75 Vietnamese 7498 0.27%
    29 Serbocroatian 7060 0.25%
    64 Chinese 6868 0.25%
    7 French 4700 0.17%
    117 African languages 3449 0.12%
    74 Laotian 3331 0.12%
    70 Korean 2692 0.10%
    115 Arabic 2507 0.09%
    86 Tagalog 2169 0.08%

    Idaho

    1375973 adult speakers

    Language Speakers Percent
    15 German 4826 0.35%
    7 French 3277 0.24%
    56 Chinese 2205 0.16%
    27 Russian 1955 0.14%
    61 Japanese 1883 0.14%
    30 Serbocroatian 1591 0.12%
    14 Portuguese 1563 0.11%
    111 Shoshoni 1459 0.11%
    78 Tagalog 1191 0.09%
    62 Korean 1170 0.09%

    Illinois

    11942587 adult speakers

    Language Speakers Percent
    29 Polish 199034 1.67%
    74 Chinese 76514 0.64%
    104 Tagalog 74746 0.63%
    14 German 51632 0.43%
    83 Korean 48083 0.40%
    138 Arabic 45342 0.38%
    28 Russian 42984 0.36%
    11 Italian 42431 0.36%
    46 Urdu 41048 0.34%
    27 Greek 40561 0.34%

    Indiana

    5896315 adult speakers

    Language Speakers Percent
    14 German 35022 0.59%
    68 Chinese 15521 0.26%
    7 French 14502 0.25%
    74 Korean 6703 0.11%
    89 Tagalog 6571 0.11%
    117 Arabic 6064 0.10%
    79 Vietnamese 5835 0.10%
    27 Russian 5703 0.10%
    119 African languages 5593 0.09%
    73 Japanese 5330 0.09%

    Kansas

    2580615 adult speakers

    Language Speakers Percent
    15 German 13564 0.53%
    76 Vietnamese 9951 0.39%
    65 Chinese 8506 0.33%
    7 French 5422 0.21%
    119 African languages 4454 0.17%
    75 Laotian 4444 0.17%
    117 Arabic 3542 0.14%
    71 Korean 3222 0.12%
    42 Hindi 2508 0.10%
    86 Tagalog 2415 0.09%

    Kentucky

    3955505 adult speakers

    Language Speakers Percent
    15 German 12312 0.31%
    7 French 7902 0.20%
    65 Chinese 5820 0.15%
    29 Serbocroatian 4804 0.12%
    71 Japanese 4528 0.11%
    116 Arabic 3402 0.09%
    77 Vietnamese 3296 0.08%
    89 Tagalog 3103 0.08%
    72 Korean 2666 0.07%
    40 Hindi 2514 0.06%

    Louisiana

    4043172 adult speakers

    Language Speakers Percent
    7 French 138077 3.42%
    76 Vietnamese 22995 0.57%
    10 Cajun 22867 0.57%
    65 Chinese 7415 0.18%
    108 Arabic 6935 0.17%
    11 French Creole 6297 0.16%
    16 German 5480 0.14%
    84 Tagalog 2778 0.07%
    12 Italian 2605 0.06%
    44 Urdu 2244 0.06%

    Massachusetts

    6087734 adult speakers

    Language Speakers Percent
    13 Portuguese 183108 3.01%
    76 Chinese 89914 1.48%
    7 French 74936 1.23%
    11 French Creole 48400 0.80%
    12 Italian 47478 0.78%
    30 Russian 38723 0.64%
    89 Vietnamese 35011 0.58%
    142 African languages 25952 0.43%
    29 Greek 24793 0.41%
    140 Arabic 23600 0.39%

    Maryland

    5247846 adult speakers

    Language Speakers Percent
    144 African languages 60515 1.15%
    72 Chinese 54869 1.05%
    7 French 47573 0.91%
    81 Korean 38832 0.74%
    155 Kru, Ibo, Yoruba 29528 0.56%
    101 Tagalog 24686 0.47%
    16 German 21988 0.42%
    30 Russian 19102 0.36%
    86 Vietnamese 16813 0.32%
    145 Amharic 15465 0.29%

    Maine

    1244327 adult speakers

    Language Speakers Percent
    7 French 52395 4.21%
    14 German 4223 0.34%
    96 African languages 3291 0.26%
    98 Cushite 2243 0.18%
    58 Chinese 2001 0.16%
    27 Russian 1783 0.14%
    69 Vietnamese 1274 0.10%
    94 Arabic 1123 0.09%
    11 Italian 1020 0.08%
    88 Passamaquoddy 919 0.07%

    Michigan

    9414626 adult speakers

    Language Speakers Percent
    140 Arabic 96346 1.02%
    15 German 42700 0.45%
    77 Chinese 36214 0.38%
    7 French 29029 0.31%
    30 Polish 28424 0.30%
    12 Italian 21861 0.23%
    160 Syriac 21214 0.23%
    71 Albanian 19134 0.20%
    84 Korean 15564 0.17%
    83 Japanese 15303 0.16%

    Minnesota

    4830132 adult speakers

    Language Speakers Percent
    126 African languages 49864 1.03%
    82 Hmong 46623 0.97%
    129 Cushite 27156 0.56%
    14 German 25990 0.54%
    85 Vietnamese 17328 0.36%
    73 Chinese 14651 0.30%
    7 French 14350 0.30%
    29 Russian 13452 0.28%
    84 Laotian 9687 0.20%
    124 Arabic 8396 0.17%

    Missouri

    5480859 adult speakers

    Language Speakers Percent
    15 German 24288 0.44%
    7 French 14799 0.27%
    68 Chinese 14014 0.26%
    31 Serbocroatian 11354 0.21%
    82 Vietnamese 10976 0.20%
    139 African languages 7879 0.14%
    77 Korean 7321 0.13%
    28 Russian 7051 0.13%
    137 Arabic 6390 0.12%
    96 Tagalog 5680 0.10%

    Mississippi

    2705306 adult speakers

    Language Speakers Percent
    8 French 5515 0.20%
    91 Choctaw 4917 0.18%
    67 Vietnamese 4377 0.16%
    16 German 3705 0.14%
    56 Chinese 3682 0.14%
    96 Arabic 2660 0.10%
    74 Tagalog 2625 0.10%
    39 Hindi 1495 0.06%
    98 African languages 1350 0.05%
    62 Korean 1211 0.04%

    Montana

    896668 adult speakers

    Language Speakers Percent
    13 German 8786 0.98%
    91 Crow 3568 0.40%
    8 French 2119 0.24%
    83 Blackfoot 1257 0.14%
    84 Cheyenne 1174 0.13%
    52 Chinese 919 0.10%
    57 Japanese 705 0.08%
    26 Russian 655 0.07%
    70 Tagalog 639 0.07%
    92 Dakota 627 0.07%

    North Carolina

    8405944 adult speakers

    Language Speakers Percent
    7 French 27357 0.33%
    15 German 21648 0.26%
    73 Chinese 20768 0.25%
    88 Vietnamese 15811 0.19%
    136 Arabic 14838 0.18%
    138 African languages 13558 0.16%
    83 Korean 12355 0.15%
    99 Tagalog 11352 0.14%
    44 Hindi 9471 0.11%
    85 Hmong 9206 0.11%

    North Dakota

    598518 adult speakers

    Language Speakers Percent
    13 German 10162 1.70%
    22 Norwegian 1776 0.30%
    28 Serbocroatian 1232 0.21%
    7 French 1098 0.18%
    89 African languages 992 0.17%
    54 Chinese 988 0.17%
    80 Hidatsa 806 0.13%
    82 Dakota 675 0.11%
    68 Tagalog 617 0.10%

    Nebraska

    1641193 adult speakers

    Language Speakers Percent
    74 Vietnamese 6526 0.40%
    13 German 6415 0.39%
    8 French 4417 0.27%
    63 Chinese 4091 0.25%
    112 Arabic 3430 0.21%
    114 African languages 3424 0.21%
    33 Czech 2498 0.15%
    68 Japanese 1404 0.09%
    38 Hindi 1290 0.08%
    84 Tagalog 1150 0.07%

    New Hampshire

    1237068 adult speakers

    Language Speakers Percent
    8 French 27990 2.26%
    11 Portuguese 4425 0.36%
    53 Chinese 4343 0.35%
    14 German 3638 0.29%
    23 Greek 2409 0.19%
    37 Hindi 2308 0.19%
    10 Italian 1941 0.16%
    24 Russian 1860 0.15%
    93 Arabic 1798 0.15%
    25 Polish 1769 0.14%

    New Jersey

    8100620 adult speakers

    Language Speakers Percent
    74 Chinese 100441 1.24%
    12 Italian 89120 1.10%
    13 Portuguese 83203 1.03%
    103 Tagalog 77898 0.96%
    82 Korean 71986 0.89%
    30 Polish 65656 0.81%
    46 Gujarati 61278 0.76%
    45 Hindi 51742 0.64%
    137 Arabic 48617 0.60%
    29 Russian 45114 0.56%

    New Mexico

    1818055 adult speakers

    Language Speakers Percent
    93 Navajo 63027 3.47%
    107 Keres 12230 0.67%
    117 Zuni 8923 0.49%
    14 German 6937 0.38%
    62 Chinese 4487 0.25%
    115 Tewa 4121 0.23%
    7 French 3935 0.22%
    73 Vietnamese 3362 0.18%
    116 Towa 2161 0.12%
    114 Tiwa 2121 0.12%

    Nevada

    2351179 adult speakers

    Language Speakers Percent
    85 Tagalog 51242 2.18%
    65 Chinese 18980 0.81%
    15 German 9577 0.41%
    72 Korean 7868 0.33%
    7 French 6740 0.29%
    71 Japanese 6363 0.27%
    121 African languages 5849 0.25%
    77 Vietnamese 5801 0.25%
    11 Italian 5417 0.23%
    119 Arabic 4946 0.21%

    New York

    18224612 adult speakers

    Language Speakers Percent
    79 Chinese 454479 2.49%
    12 Italian 235045 1.29%
    30 Russian 230989 1.27%
    7 French 143762 0.79%
    11 French Creole 135430 0.74%
    18 Yiddish 126293 0.69%
    88 Korean 106949 0.59%
    31 Polish 105138 0.58%
    82 Cantonese 100578 0.55%
    29 Greek 81020 0.44%

    Ohio

    10734806 adult speakers

    Language Speakers Percent
    16 German 56444 0.53%
    76 Chinese 31106 0.29%
    7 French 31081 0.29%
    130 Arabic 25305 0.24%
    132 African languages 23983 0.22%
    12 Italian 19876 0.19%
    29 Russian 14829 0.14%
    28 Greek 13157 0.12%

    Oklahoma

    3348376 adult speakers

    Language Speakers Percent
    72 Vietnamese 13768 0.41%
    14 German 9972 0.30%
    61 Chinese 7518 0.22%
    7 French 5379 0.16%
    67 Korean 4743 0.14%
    126 Cherokee 4387 0.13%
    135 Arabic 4369 0.13%
    137 African languages 3884 0.12%
    123 Muskogee 3425 0.10%
    79 Tagalog 3147 0.09%

    Oregon

    3498022 adult speakers

    Language Speakers Percent
    62 Chinese 22171 0.63%
    25 Russian 20958 0.60%
    74 Vietnamese 18999 0.54%
    13 German 17440 0.50%
    69 Korean 12239 0.35%
    68 Japanese 11162 0.32%
    8 French 10687 0.31%
    88 Tagalog 8018 0.23%
    137 Arabic 5601 0.16%
    32 Ukrainian 5261 0.15%

    Pennsylvania

    11686497 adult speakers

    Language Speakers Percent
    77 Chinese 59127 0.51%
    15 German 57016 0.49%
    11 Italian 53698 0.46%
    7 French 39933 0.34%
    31 Russian 32679 0.28%
    91 Vietnamese 29669 0.25%
    32 Polish 26676 0.23%
    86 Korean 26667 0.23%
    147 Arabic 25140 0.22%
    149 African languages 18664 0.16%

    Puerto Rico

    3695811 adult speakers

    Language Speakers Percent
    8 French 1047 0.03%
    37 Chinese 664 0.02%
    11 Portuguese 662 0.02%
    10 Italian 499 0.01%
    13 German 435 0.01%
    58 Arabic 262 0.01%
    39 Cantonese 178 0.00%
    9 French Creole 173 0.00%
    19 Swedish 68 0.00%
    33 Catalonian 50 0.00%

    Rhode Island

    993514 adult speakers

    Language Speakers Percent
    12 Portuguese 33785 3.40%
    7 French 14197 1.43%
    11 Italian 9684 0.97%
    56 Chinese 6208 0.62%
    10 French Creole 5757 0.58%
    92 African languages 4033 0.41%
    27 Polish 2794 0.28%
    66 Laotian 2058 0.21%
    14 German 2028 0.20%
    34 Armenian 1913 0.19%

    South Carolina

    4107268 adult speakers

    Language Speakers Percent
    7 French 13142 0.32%
    16 German 12736 0.31%
    67 Chinese 7469 0.18%
    86 Tagalog 6379 0.16%
    78 Vietnamese 5509 0.13%
    111 Arabic 4121 0.10%
    29 Russian 3431 0.08%
    28 Greek 2841 0.07%
    13 Portuguese 2821 0.07%
    43 Hindi 2673 0.07%

    South Dakota

    739597 adult speakers

    Language Speakers Percent
    80 Dakota 10600 1.43%
    13 German 10219 1.38%
    90 African languages 1214 0.16%
    62 Vietnamese 1152 0.16%
    67 Tagalog 977 0.13%
    8 French 816 0.11%
    91 Amharic 804 0.11%
    24 Russian 802 0.11%
    52 Chinese 801 0.11%
    86 American Indian 557 0.08%

    Tennessee

    5736382 adult speakers

    Language Speakers Percent
    16 German 13804 0.24%
    7 French 12935 0.23%
    69 Chinese 11729 0.20%
    117 Arabic 10264 0.18%
    119 African languages 9991 0.17%
    75 Korean 7505 0.13%
    80 Vietnamese 7289 0.13%
    79 Laotian 6507 0.11%
    44 Hindi 5095 0.09%
    91 Tagalog 4667 0.08%

    Texas

    21869156 adult speakers

    Language Speakers Percent
    91 Vietnamese 160434 0.73%
    78 Chinese 114309 0.52%
    16 German 73455 0.34%
    165 African languages 64081 0.29%
    108 Tagalog 57427 0.26%
    7 French 57283 0.26%
    48 Urdu 49176 0.22%
    86 Korean 49123 0.22%
    163 Arabic 45461 0.21%
    46 Hindi 42238 0.19%

    Utah

    2404658 adult speakers

    Language Speakers Percent
    63 Chinese 11155 0.46%
    13 German 9836 0.41%
    109 Navajo 9369 0.39%
    7 French 8376 0.35%
    12 Portuguese 7934 0.33%
    101 Tongan 6111 0.25%
    74 Vietnamese 4909 0.20%
    69 Korean 4532 0.19%
    68 Japanese 4399 0.18%
    25 Russian 4289 0.18%

    Virginia

    7183318 adult speakers

    Language Speakers Percent
    82 Korean 53200 0.74%
    75 Chinese 44610 0.62%
    87 Vietnamese 42036 0.59%
    100 Tagalog 40080 0.56%
    135 African languages 39216 0.55%
    7 French 35397 0.49%
    133 Arabic 29256 0.41%
    15 German 25887 0.36%
    44 Persian 22794 0.32%
    47 Urdu 21087 0.29%

    Vermont

    588245 adult speakers

    Language Speakers Percent
    8 French 10474 1.78%
    13 German 2690 0.46%
    28 Serbocroatian 1326 0.23%
    25 Russian 1077 0.18%
    10 Italian 823 0.14%
    57 Chinese 798 0.14%
    67 Vietnamese 583 0.10%
    26 Polish 569 0.10%
    12 Portuguese 512 0.09%

    Washington

    6029673 adult speakers

    Language Speakers Percent
    73 Chinese 68083 1.13%
    86 Vietnamese 52496 0.87%
    81 Korean 49441 0.82%
    102 Tagalog 47783 0.79%
    29 Russian 47252 0.78%
    15 German 32928 0.55%
    166 African languages 29105 0.48%
    80 Japanese 22685 0.38%
    8 French 22236 0.37%
    37 Ukrainian 17175 0.28%

    Wisconsin

    5243435 adult speakers

    Language Speakers Percent
    14 German 37573 0.72%
    77 Hmong 32657 0.62%
    7 French 11294 0.22%
    69 Chinese 10674 0.20%
    31 Polish 9801 0.19%
    30 Russian 6946 0.13%
    11 Italian 5458 0.10%
    126 Arabic 5180 0.10%
    79 Laotian 4683 0.09%

    West Virginia

    1705879 adult speakers

    Language Speakers Percent
    8 French 2976 0.17%
    13 German 2101 0.12%
    60 Chinese 1576 0.09%
    10 Italian 1562 0.09%
    78 Tagalog 1254 0.07%
    93 Arabic 1054 0.06%
    71 Vietnamese 1026 0.06%
    65 Japanese 973 0.06%
    42 Urdu 680 0.04%
    66 Korean 546 0.03%

    Wyoming

    487031 adult speakers

    Language Speakers Percent
    13 German 1850 0.38%
    8 French 1427 0.29%
    66 Arapaho 963 0.20%
    46 Chinese 578 0.12%
    49 Japanese 539 0.11%
    24 Russian 464 0.10%
    23 Greek 377 0.08%
    58 Tagalog 348 0.07%
    72 Shoshoni 348 0.07%
    71 Dakota 314 0.06%


    Visit original content creator repository
    https://github.com/jrouly/acs-language-survey

  • blockfrost-go


    Official Blockfrost SDK Client

    Build status Go report card GoDoc

    Getting started

    To use this SDK, you first need to log in to blockfrost.io, create your project and retrieve the API token.


    Installation

    blockfrost-go can be installed through go get

    $ go get https://github.com/blockfrost/blockfrost-go

    Usage

    Cardano API

    package main
    
    import (
    	"context"
    	"fmt"
    	"log"
    
    	"github.com/blockfrost/blockfrost-go"
    )
    
    func main() {
    	api, err := blockfrost.NewAPIClient(
    		blockfrost.APIClientOptions{
                ProjectID: "YOUR_PROJECT_ID_HERE", // Exclude to load from env:BLOCKFROST_PROJECT_ID
            },
    	)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	info, err := api.Info(context.TODO())
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	fmt.Printf("API Info:\n\tUrl: %s\n\tVersion: %s", info.Url, info.Version)
    }

    IPFS

    package main
    
    import (
    	"context"
    	"flag"
    	"fmt"
    	"log"
    
    	"github.com/blockfrost/blockfrost-go"
    )
    
    var (
    	fp = flag.String("file", "", "Path to file")
    )
    
    func main() {
    	flag.Parse()
    	// Load project_id from env:BLOCKFROST_IPFS_PROJECT_ID
    	ipfs := blockfrost.NewIPFSClient(blockfrost.IPFSClientOptions{})
    
    	ipo, err := ipfs.Add(context.TODO(), *fp)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	fmt.Printf("IPFS Object: %+v\n", ipo)
    
    	// Pin item to avoid being garbage collected.
    	pin, err := ipfs.Pin(context.TODO(), ipo.IPFSHash)
    	if err != nil {
    		log.Fatal(err)
    	}
    	fmt.Printf("Pin: %+v", pin)
    }

    More examples of usage can be found in example folder.

    Developing

    Set BLOCKFROST_PROJECT_ID env variable:

    export BLOCKFROST_PROJECT_ID=<MAINNET_TOKEN>
    

    To run specific test:

    go test -run <name>
    

    To run all tests:

    make test
    

    To generate missing .golden file

    go test -gen
    

    License

    Licensed under the Apache License 2.0, see LICENSE

    Visit original content creator repository https://github.com/blockfrost/blockfrost-go
  • CalendarKit

    CalendarKit CalendarKit License SwiftPM compatible Swift Compatibility Platform Compatibility Tag Version

    YouTube Channel Subscribers Twitter GitHub followers

    Richard Topchii on Telegram

    CalendarKit

    CalendarKit is a Swift calendar UI library for iOS and Mac Catalyst. It looks similar to the Apple Calendar app out-of-the-box, while allowing customization when needed. CalendarKit is composed of multiple modules which can be used together or independently.

    Tutorials

    Need Help?

    If you have a programming question about how to use CalendarKit in your application, Create a new GitHub Issue with the question tag.

    Check out the Sample App for reference.

    Create a new Issue from template to report a bug or request a new feature.

    Examples

    Video

    Sample App

    Installation

    CalendarKit can be installed with Swift Package Manager or with CocoaPods.

    Swift Package Manager (Xcode 12 or higher)

    The preferred way of installing CalendarKit is via the Swift Package Manager.

    1. In Xcode, open your project and navigate to FileSwift PackagesAdd Package Dependency…
    2. Paste the repository URL (https://github.com/richardtop/CalendarKit.git) and click Next.
    3. For Rules, select Version (Up to Next Major) and click Next.
    4. Click Finish.

    Adding Package Dependencies to Your App

    CocoaPods

    ⚠️ Warning: CocoaPods support is deprecated and will be removed at a later date. It’s recommended to migrate your installation of CalendarKit to using Swift Package Manager.

    To install it, add the following line to your Podfile:

    pod 'CalendarKit'

    Adding Pods to an Xcode project

    Usage

    1. Subclass DayViewController
    2. Implement EventDataSource protocol to show events.

    CalendarKit requires EventDataSource to return an array of objects conforming to EventDescriptor protocol, specifying all the information needed to display a particular event. You’re free to use a default Event class as a model or create your own class conforming to the EventDescriptor protocol.

    // Return an array of EventDescriptors for particular date
    override func eventsForDate(_ date: Date) -> [EventDescriptor] {
      var models = myAppEventStore.getEventsForDate(date) // Get events (models) from the storage / API
    
      var events = [Event]()
    
      for model in models {
          // Create new EventView
          let event = Event()
          // Specify DateInterval
          event.dateInterval = DateInterval(start: model.startDate, end: model.endDate)
          // Add info: event title, subtitle, location to the array of Strings
          var info = [model.title, model.location]
          info.append("\(datePeriod.beginning!.format(with: "HH:mm")) - \(datePeriod.end!.format(with: "HH:mm"))")
          // Set "text" value of event by formatting all the information needed for display
          event.text = info.reduce("", {$0 + $1 + "\n"})
          events.append(event)
      }
      return events
    }

    After receiving an array of events for a particular day, CalendarKit will handle view layout and display.

    Usage

    To respond to the user input, override mehtods of DayViewDelegate, for example:

    override func dayViewDidSelectEventView(_ eventView: EventView) {
      print("Event has been selected: \(eventview.data)")
    }
    
    override func dayViewDidLongPressEventView(_ eventView: EventView) {
      print("Event has been longPressed: \(eventView.data)")
    }

    Localization

    CalendarKit supports localization and uses iOS default locale to display month and day names. First day of the week is also selected according to the iOS locale.

    GermanNorwegian

    Styles

    By default, CalendarKit looks similar to the Apple Calendar app and fully supports Dark Mode. If needed, CalendarKit’s look can be easily customized. Steps to apply a custom style are as follows:

    1. Create a new CalendarStyle object (or copy existing one)
    2. Change style by updating the properties.
    3. Invoke updateStyle method with the new CalendarStyle.
    let style = CalendarStyle()
    style.backgroundColor = UIColor.black
    dayView.updateStyle(style)

    Light theme Dark theme

    Requirements

    • iOS 11.0+, macOS (Catalyst) 10.15+
    • Swift 5.7+

    Contributing

    The list of features currently in development can be viewed on the issues page.

    Before contributing, please review guidelines and code style.

    Author

    Richard Topchii

    License

    CalendarKit is available under the MIT license. See the LICENSE file for more info.

    Visit original content creator repository https://github.com/richardtop/CalendarKit
  • CalendarKit

    CalendarKit CalendarKit License SwiftPM compatible Swift Compatibility Platform Compatibility Tag Version

    YouTube Channel Subscribers Twitter GitHub followers

    Richard Topchii on Telegram

    CalendarKit

    CalendarKit is a Swift calendar UI library for iOS and Mac Catalyst. It looks similar to the Apple Calendar app out-of-the-box, while allowing customization when needed. CalendarKit is composed of multiple modules which can be used together or independently.

    Tutorials

    Need Help?

    If you have a programming question about how to use CalendarKit in your application, Create a new GitHub Issue with the question tag.

    Check out the Sample App for reference.

    Create a new Issue from template to report a bug or request a new feature.

    Examples

    Video

    Sample App

    Installation

    CalendarKit can be installed with Swift Package Manager or with CocoaPods.

    Swift Package Manager (Xcode 12 or higher)

    The preferred way of installing CalendarKit is via the Swift Package Manager.

    1. In Xcode, open your project and navigate to FileSwift PackagesAdd Package Dependency…
    2. Paste the repository URL (https://github.com/richardtop/CalendarKit.git) and click Next.
    3. For Rules, select Version (Up to Next Major) and click Next.
    4. Click Finish.

    Adding Package Dependencies to Your App

    CocoaPods

    ⚠️ Warning: CocoaPods support is deprecated and will be removed at a later date. It’s recommended to migrate your installation of CalendarKit to using Swift Package Manager.

    To install it, add the following line to your Podfile:

    pod 'CalendarKit'

    Adding Pods to an Xcode project

    Usage

    1. Subclass DayViewController
    2. Implement EventDataSource protocol to show events.

    CalendarKit requires EventDataSource to return an array of objects conforming to EventDescriptor protocol, specifying all the information needed to display a particular event. You’re free to use a default Event class as a model or create your own class conforming to the EventDescriptor protocol.

    // Return an array of EventDescriptors for particular date
    override func eventsForDate(_ date: Date) -> [EventDescriptor] {
      var models = myAppEventStore.getEventsForDate(date) // Get events (models) from the storage / API
    
      var events = [Event]()
    
      for model in models {
          // Create new EventView
          let event = Event()
          // Specify DateInterval
          event.dateInterval = DateInterval(start: model.startDate, end: model.endDate)
          // Add info: event title, subtitle, location to the array of Strings
          var info = [model.title, model.location]
          info.append("\(datePeriod.beginning!.format(with: "HH:mm")) - \(datePeriod.end!.format(with: "HH:mm"))")
          // Set "text" value of event by formatting all the information needed for display
          event.text = info.reduce("", {$0 + $1 + "\n"})
          events.append(event)
      }
      return events
    }

    After receiving an array of events for a particular day, CalendarKit will handle view layout and display.

    Usage

    To respond to the user input, override mehtods of DayViewDelegate, for example:

    override func dayViewDidSelectEventView(_ eventView: EventView) {
      print("Event has been selected: \(eventview.data)")
    }
    
    override func dayViewDidLongPressEventView(_ eventView: EventView) {
      print("Event has been longPressed: \(eventView.data)")
    }

    Localization

    CalendarKit supports localization and uses iOS default locale to display month and day names. First day of the week is also selected according to the iOS locale.

    GermanNorwegian

    Styles

    By default, CalendarKit looks similar to the Apple Calendar app and fully supports Dark Mode. If needed, CalendarKit’s look can be easily customized. Steps to apply a custom style are as follows:

    1. Create a new CalendarStyle object (or copy existing one)
    2. Change style by updating the properties.
    3. Invoke updateStyle method with the new CalendarStyle.
    let style = CalendarStyle()
    style.backgroundColor = UIColor.black
    dayView.updateStyle(style)

    Light theme Dark theme

    Requirements

    • iOS 11.0+, macOS (Catalyst) 10.15+
    • Swift 5.7+

    Contributing

    The list of features currently in development can be viewed on the issues page.

    Before contributing, please review guidelines and code style.

    Author

    Richard Topchii

    License

    CalendarKit is available under the MIT license. See the LICENSE file for more info.

    Visit original content creator repository https://github.com/richardtop/CalendarKit
  • RetroArch-ARM


    RetroArch UWP ARM32 only
    Cores | Original Project | Wiki

    About

    After long time of work I present to you this UWP release of RetroArch for Windows (ARM32) devices

    With more than 70+ core

    Target (ARM32)

    • Windows 15035+ Full cores
    • Windows 14393 with few cores
    • Windows 10586 with few cores
    • DirectX Feature level 11, 9.3 & 9.1

    ARM64 or Latest

    • This repo for ARM32, legacy support only
    • Refer to the official repo for any updates Click here
    • Please don’t ask or contact me for other than ARM32
    • This repo is not meant to be up-to date fork (nor redistribution)

    UWP improvements

    This app supported by UWP2Win32

    Cores updater

    The current cores downloader/updater linked with my repo at docs/cores

    if you want to help to get/fix more cores for ARM please submit pull request with the target core or contact me

    Credits

    • RetroArch Developed by RetroArch Team

    • Bashar Astifan (UWP Improvements and ARM support)

    • Gustave Monce (DLL dynamic loading solution)

    Support

    RetroArch Team done great job to make this project if you would like to support them Click Here

    Building

    • You need SDKs: 19041 and 14393
    • Use Visual Studio 2022
    • Goto pkg\msvc-uwp
    • Use only RetroArch-msvc2019-UWP.sln
    • You can build it as ReleaseANGLE
    • There is also Release 14393 (no much cores)
    • To ensure cores loaded correctly, you can make them built-in
    • Built-in cores must be at pkg\msvc-uwp\RetroArch-msvc2019-UWP\cores

    D3D 9.3 & 9.1

    • Use ReleaseANGLE Legacy
    • Or create new config from ReleaseANGLE 14393 D3D
    • Define IS_LEVEL_93 in project Preprocessors
    • Remove the following from project Preprocessors
      • HAVE_OZONE
      • HAVE_XMB

    Important

    This project maintained for legacy hardware, when something don’t work well on modern hardware

    please don’t open issue for it, I have no interests to support other than ARM32

    WinRT Surface

    I’m refering to the ARM32 old one, it was before super slow and the reason was:

    • Only ANGLE was used to support older devices
    • ANGLE don’t have support for feature level 9.1
    • It will fallback to WARP device (more like software render)
    • 5~ frames per seconds was expected (WARP is super slow)
    • With the latest update in theory it’s expected to work under DirectX and should be fast.

    Note

    I’m not affiliate with RetroArch or Libretro

    Visit original content creator repository https://github.com/basharast/RetroArch-ARM