Blog

  • Elements-of-Computing-Systems

    Renan Doria, Ph.D. Elementos de Sistemas. Insper, 2021.

    Elements of Computing Systems

    • Digital electronic systems;
    • Boolean algebra and numbering systems;
    • Minimization by Karnaugh and logic gates;
    • Analysis and design of combinational and sequential circuits;
    • Adders, encoders, decoders, multiplexers, demultiplexers, latches and flip-flops;
    • Registers, arithmetic logic units and control units;
    • Memory Management and Instruction Set;
    • Compilers, lexical, syntactic and semantic analyzers;
    • Operational systems.

    Learning objectives

    • Implement a simple digital computer from electronic components;
    • Integrate the programming and execution layers of a simple computer;
    • Working collaboratively in the development of a computer system;
    • Understand the evolution of computing;
    • Describe how data and instructions are stored and handled on computers.
    • Understand issues related to performance, operation and maintenance of digital systems
    Question Score Comments
    1 10/15 “the inconsistency in the functions of the pumps was missing”
    2 10/10
    3 10/10
    4 10/10
    5 10/15 “Missing RTL”

    Score

    Hardware Software
    40/50 10/10
    Question Score Comments
    1 15/15
    2 15/15
    3 18/20 “Small detail in the load implementation”
    4A 10/10
    4B 10/10

    Score

    Hardware Software
    28/30 40/40
    Question Score Comments
    1 15/15 “Does not pass last value”
    2 15/15
    3 10/20
    4 20/20 “Problem at line 40: causes opcode=”01” when instruction is “leaw $1, %A”, instead of “00””

    Score

    Hardware Software
    0/0 60/70

    Final Score

    Hardware Software
    84/120 110/120

    Z01 Einstein

    Motivation

    Develop a computer from ground up!

    Authors



    Giancarlo Ruggiero Gustavo de Oliveira Luciano Felix


    Luka Siqueira de Figueiredo Vinicius Morales Pedro do Amaral

    Course Bibliography

    Books

    • NISAN, Noam; SCHOCKEN, Shimon., The Elements of Computing Systems, ª ed., MIT Press, 2005, ISBN 417582 Livro Impresso
    • TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L., Sistemas Digitais: Princípios e Aplicações, 11ª ed., Pearson, 2011, ISBN 42579 Livro Impresso
    • PATTERSON, D.; HENNESSY, J. L., Organização e Projeto de Computadores: A Interface Hardware/Software., 4ª ed., Campus, 2014, ISBN 58741536 Livro Impresso

    Articles

    Visit original content creator repository https://github.com/FelixLuciano/Elements-of-Computing-Systems
  • HotelRatingApp

    Hotel Rating App

    This codebase was created to demonstrate a backend application built with Java 11 + Spring Boot 3 including CRUD operations, authentication, routing and more.

    This app helps users to rate a hotel services based on their experience. Once user is logged with correct email and password, he can post and see the reviews given by other users.

    This app mainly contains 3 microservices-

    1. UserServices: This service contains information about the user like his id, name and email.It uses MySQL as a database.

    2. HotelServices: This service contains information about the hotel like his id, name, ratings given by users and feedback provided.It uses Oracle as a database.

    3. RatingServices: This service provides ratings given to hotels based on userID and hotelId .It uses MongoDB as a database.

    Apart from these services, Okta has been used to provide security to microservices.

    Taking a closer look at the project structure, the main code of the application is located in the src/main/java directory. Additionally, configuration files and such can be found in the src/main/resources directory.

    The core logic of the application is organized as follows:

    ~Controller: Processes HTTP requests, calls business logic, and generates responses.

    ~Service: Implements business logic and interacts with the database through Repositories.

    ~Repository: An interface for interacting with the database, implemented using Spring Data JPA.

    Authentication and authorization management are implemented using Spring Security, with token-based authentication using Okta. Moreover, various features of Spring Boot are utilized to implement exception handling, logging, testing, and more.

    Through this project, you can learn how to implement backend applications based on Spring and how to utilize various Spring technologies. Additionally, by implementing an application following the RealWorld specifications, it provides a basis for deciding which technology stack to choose through comparisons with various other technology stacks.

    Architecture

    Architecture

    Technologies

    Spring Boot: Server side framework

    JPA: Entity framework

    Lombok: Provides automated getter/setters

    Actuator: Application insights on the fly

    Spring Security: Spring’s security

    Devtools: Support Hot-Code Swapping with live browser reload

    Okta: API authentication

    H2: H2 database embedded version

    Libraries

    Name Version
    spring-cloud-starter-netflix-eureka-client latest
    spring-boot-starter-actuator latest
    okta latest
    spring-cloud-config latest
    spring-cloud-starter-gateway latest
    spring-cloud-starter-circuitbreaker-reactor-resilience4j latest
    spring-cloud-discovery latest
    spring-boot-starter-cache latest
    Visit original content creator repository https://github.com/Surajrawat1709/HotelRatingApp
  • laravel-modernizr-command

    Laravel Modernizr Command

    Latest Version on Packagist Build Status GitHub license

    Laravel artisan command to generate custom Modernizr builds.

    Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.

    Installation

    You can install the package via Composer:

    composer require --dev hofmannsven/laravel-modernizr-command

    Install Modernizr

    Require Modernizr as a dependency in your package.json file:

    npm i modernizr --save

    Publish the config files

    Publish both package config files (config.php and modernizr.json):

    php artisan vendor:publish --provider="Hofmannsven\Modernizr\ModernizrServiceProvider"

    Customize the config files

    Example modernizr.json config file for SVG feature detection:

    {
      "feature-detects": [
        "svg",
        "svg/asimg",
        "svg/clippaths",
        "svg/filters",
        "svg/foreignobject",
        "svg/inline",
        "svg/smil"
      ]
    }

    See Modernizr’s config-all.json file for all detectable features.

    Usage

    Generate your custom Modernizr build based on your config.php and modernizr.json config files:

    php artisan modernizr:generate

    Testing

    composer test

    Changelog

    Please read the changelog for more information about what has changed recently.

    Contributing

    Please read the contribution guidelines for details.

    Support

    Always feel free to raise an issue on GitHub.

    Security

    If you discover a security issue, please contact me directly. My GPG fingerprint/key is available on Keybase.

    Credits

    License

    MIT License (MIT). Please read the license for more information.

    Visit original content creator repository https://github.com/hofmannsven/laravel-modernizr-command
  • WasteWater

    WasteWater

    Free library for modelling and simulation of waste water treatment plants.

    Library description

    The package WasteWater provides a collection of 3 different
    international accepted activated sludge models (ASM) of different complexity,
    including models for preclarifiers and 5 different models for
    the secondary settling process.

    PS: SimulationTimeUnit for all models built with the WasteWater library is days [d].

    The WasteWater package currently consists of the following subpackages

    • ASM1 – Activated Sludge Model No.1 (models 13 wastewater components and 8 biological processes)
    • ASM2d – Activated sludge Model No.2d (models 19 wastewater components and 21 biological processes)
    • ASM3 – Activated Sludge Model No.3 (models 13 wastewater components and 12 biological processes)
    • Icons – Icon definitions for wastewater treatment components
    • WasteWaterUnits – unit type definitions for use with the WasteWater library

    Current release

    Download WasteWater v2.1.0 (2015-01-22)

    Release notes

    License

    Copyright © 2000 – 2003 Gerald Reichl

    This Modelica package is free software and the use is completely at your own risk;
    it can be redistributed and/or modified under the terms of the Modelica License 1.1.
    For license conditions (including the disclaimer of warranty) visit http://www.modelica.org/licenses/ModelicaLicense1.1.

    Development and contribution

    Original Author:

    Gerald Reichl
    Technische Universitaet Ilmenau
    Faculty of Informatics and Automation
    Department Dynamics and Simulation of ecological Systems
    P.O. Box 10 05 65
    98684 Ilmenau
    Germany
    email: gerald.reichl@tu-ilmenau.de
    

    You may report any issues with using the Issues button.

    Contributions in shape of Pull Requests are always welcome.

    Visit original content creator repository
    https://github.com/modelica-3rdparty/WasteWater

  • Om.Orchard.SocialMetaTags

    Visit original content creator repository
    https://github.com/Lombiq/Om.Orchard.SocialMetaTags

  • magento2-document-search

    Document Module for Magento 2

    Latest Stable Version License: MIT Packagist Packagist

    This module aims to make documents searchable for customers in Magento 2.

    Setup

    Magento 2 Open Source or Commerce edition is required.

    Composer installation

    Run the following composer command:

    composer require opengento/module-document-search
    

    Setup the module

    Run the following magento command:

    bin/magento setup:upgrade
    

    If you are in production mode, do not forget to recompile and redeploy the static resources.

    Features

    This module aims to make documents searchable for customers in Magento 2.
    Documents can be searchable if their visibility is set to search.

    Documentation

    You can change the full search behavior by using the collection modifier extension point.
    Add you own Magento\Framework\Data\CollectionModifierInterface implementation to the modifiers list of:

    \Opengento\DocumentSearch\Model\Collection\CollectionModifier

    Query parameters can be read through: \Opengento\DocumentSearch\Model\QueryData

    Support

    Raise a new request to the issue tracker.

    Authors

    • Opengento CommunityLeadTwitter Follow
    • Thomas KleinMaintainerGitHub followers
    • ContributorsContributorGitHub contributors

    License

    This project is licensed under the MIT License – see the LICENSE details.

    That’s all folks!

    Visit original content creator repository https://github.com/opengento/magento2-document-search
  • wp-api-starter-theme

    WP API Starter Theme (BETA VERSION 1.0.0)

    WordPress starter theme with WP API components and templates, Tailwind CSS, and a modern development workflow. This WordPress theme is interesting for local testing, studies and code improvements. Please do not use this theme in production, use these themes for student purposes.

    Sponsors

    WP API Starter Theme is an open source project and completely free to use.

    However, the amount of effort needed to maintain and develop new features and products within the ecosystem is not sustainable without proper financial backing. If you have the capability, please consider sponsoring Flaubert Dev.

    Features

    Requirements

    Make sure all dependencies have been installed before moving on:

    Theme installation

    Fork or download this WordPress theme in your themes folder. If you download by git clone, don’t forget to remove the .git folder:

    git clone git@github.com:flaubert-dev/wp-api-starter-theme.git

    If you don’t know if Gulp CLI and Yarn are already installed globally, run the command below:

    npm list -g --depth=0

    If Gulp CLI and Yarn are not installed globally, run the command:

    npm install gulp-cli -g && npm install yarn -g

    With Gulp CLI and Yarn already installed, run the command below:

    yarn cache clean && yarn install && npx update-browserslist-db@latest

    Linux and MacOs Users

    Theme development

    In the gulpfile.js file, modify the path of your development environment:

    browserSync.init({
      proxy: 'http://localhost/success', // Change to your local development URL
      open: true // true will automatically open the browser on port 3000
    });

    Dev command

    Log in as an Administrator on your WordPress. Use this command to watch at your php, css and js files:

    yarn dev

    Build command

    To build the project use the command below. If you are not logged into WordPress, you will see that the css and js files have been minified:

    yarn build

    Theme structure

    themes/wp-api-starter-theme/  
    ├── app/                           
    │   ├── AcfJson/ # -> https://www.advancedcustomfields.com/resources/local-json/             
    │   └── Templates/      
    ├── config/                
    ├── resources/         
    │   ├── fonts/        
    │   ├── images/        
    │   ├── scripts/      
    │   └── styles/          
    ├── templates/      
    ├── vendor/     
    ├── .gitattributes
    ├── .gitignore
    ├── 404.php # -> Wait... News will come in this file
    ├── archive.php      
    ├── category.php      
    ├── composer.json      
    ├── footer.php      
    ├── functions.php      
    ├── gulpfile.js      
    ├── header.php      
    ├── index.php          
    ├── LICENSE          
    ├── package.json        
    ├── page.php # -> Wait... News will come in this file
    ├── README.md       
    ├── readme.txt       
    ├── screenshot.png       
    ├── search.php # -> Wait... News will come in this file
    ├── single.php # -> Wait... News will come in this file
    ├── style.css                                      
    ├── style.min.css                                      
    ├── tailwind.config.js                    
    ├── tailwindcss.exe # -> https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.3      
    ├── template-wp-api-example-using-JS.php     
    └── template-wp-query-example-using-PHP.php

    Community

    Keep track of development and community news.

    • Follow me on Linkedin
    • Also participate by collaborating with this project
    • Sponsors: None, for now…

    Visit original content creator repository
    https://github.com/flaubert-dev/wp-api-starter-theme

  • aviutl-installer-script

    日本語はこちら

    About AviUtl Installer Script

    This is a collection of scripts created with the purpose of simplifying the complex and difficult task for beginners of install and setting up the AviUtl main body and several essential plugins for video editing using AviUtl, so that it can be done by executing just one file.

    To make it easier to run in many environments, it is in .cmd (batchfile) format, but the contents are mostly Windows PowerShell (5.x) scripts.

    Operating Environment

    Windows 10 April 2018 Update (version 1803) or later
    (In other words, it works on all supported consumer Windows as of 2025)

    How to Use

    Download aviutl-installer_X.X.X.zip from the Assets of releases/latest and extract it.

    After that, simply double-click on aviutl-installer.cmd to start the installation of AviUtl and the required plugins (specific details on what will be installed can be found in List of items install (ja) ).

    If a screen saying “Windows protected your PC” appears, you can click More info and then click [Run anyway] to execute the script.

    State of operation: 2025-02-17_19h30_35

    YouTube introduction video (Japanese language only): 紹介動画

    License

    The license for this software is the MIT License.

    In general terms:

    • Software with this license can be used by anyone for free and without limitation, for any purpose.
    • Regardless of whether modifications are made, when redistributing, the copyright notice and the MIT License must be included in all substantial parts of the software.
    • The provider assumes no responsibility whatsoever. Use is at your own risk.

    This is the general idea of the license.
    This explanation is not a legally accurate statement, so if you have any doubts, please read the full text of the MIT License.

    I found a bug / I want this feature

    Please write it in the Issues.

    However, please remember that just because you write it does not mean it will be resolved immediately, and that the developers are also human and deserve respect.
    Aggressive issues will be closed without review, so if you want to resolve it, please write politely.

    Visit original content creator repository https://github.com/menndouyukkuri/aviutl-installer-script
  • VehicleNoiseSynthesizer

    Vehicle Noise Synthesizer

    ATTENTION:

    • If you do not own an NWH Physics asset for your project, simply delete the two related scripts in the Input folder!

    VNS is an open-source free audio addon primarily designed for Unity to simulate vehicle sounds based on engine rpm similar to a granulator without dependencies such as FMOD. {ADC15B13-CDF1-412F-A49A-F42651C76447}

    An Enhanced FM4-Inspired Vehicle Sound Synthesizer
    

    Can be used for:

    ☑️ Engine

    ☑️ Intake

    ☑️ Exhausts

    ☑️ Transmission⁰

    ☑️ Differential⁰ (and alike)

    ℹ️ This uses real audio clips per Engine RPM and Engine Load to create realistic sound/noise

    Pros: Some of the main reasons for devising this asset:

    ✅ Lightweight (Async Calculations – per fixed delta time)

    ✅ Uses only Unity, Optionally supports Unity Audio Mixer. Thus it’s possible to build WebGL projects.

    ✅ Advanced additional parameters to fine-tune the audio effect.

    Cons:

    ❌ Needs separate audio files per RPM¹

    ❌ Does not respect engine piston cycle frequency for fading audio clips Or in other words, it fades audio clips linearly smoothly which is not “always” good

    🔁How to loop?

    These are useful to compose loop audio for your vehicle sound simulation.

    ⚠️Alternatives?

    Although this asset was done with the idea of using it in my passion project ATG Simulator, I would say the paid ones might be easier to work with, below is a list of assets and plugins that you can use instead of this one for your projects – the prices are valid at the time of writing this text:

    Note that with DAW or standalone apps and plugins you may record looped audio clips for this (or the other assets) for simulating your audio in real-time.

    ℹ️ How to use it?

    Either download the unitypackage or a zipped archive of this repo. And import them into a new Unity project. Note that this asset has a pair of demo scenes that need NWH Vehicle Physics and NWH Dynamic Water Physics. To be able to use any of the two demo scenes you will need to import the said assets into your project first, then import this GitHub project. You shall have none of the NWH assets, one of them or all of them to use this asset. Just study the important codes which are commented line-by-line, And delete the scripts that are not related to your project – e.g. NWH Input demo samples if no NWH Asset is used.

    ℹ️ How does it work?

    How does this asset work, Simplified in an image.

    ℹ️ Why the heck am I sharing this freely?

    I expect people happily use this but also improve it and share an enhanced version of it with others. Happy coding! 🙂

    ©️ Dan. The original script and its idea were inspired by several internet sources and GitHub Repositories like Keijiro Takahashi, CombatWombatZockchster, manueleisl, and others. The original idea was published as a GitHub repo to recreate a Forza Motorsport 4 type of audio simulation for cars – which unfortunately I lost its URL².

    Thanks for your attention.

    Check the social media of my passion project called ATG Simulator please:


    Footnotes:

    ⁰ Transmission and differential sounds from the video are not by this script, Also blow-off and other sounds are not part of this asset as they are not intended to be.

    ¹ This script is also inspired by this video of the Turn10 Audio Engineer: https://youtu.be/UNvka9GL-9k. Same as Forza Horizon 3 or Forza Motorsport 7, it needs audio clips based on different rpm speeds. E.g Ferrari458Engine_Accelerating_at_the_rpm_speed_of_5000.wav and it needs at least one accelerating audio clip though very few and too many clips may result in subpar quality.

    ² In case you know the repository, feel free to let everyone know by adding a comment in the main GitHub repository.

    Visit original content creator repository https://github.com/ATG-Simulator/VehicleNoiseSynthesizer
  • log4mex-java

    Do you need an API to export machine learning configurations and outcomes?

    • LOG4MEX helps developers to manage ML metadata, improving interoperability and adding provenance information to the experiment.
    • No need to create scripts to manage the outputs.
    • No need to create wrappers to save outputs into SGBD’s.
    • Exporting clear information about your executions! Others do not need to guess what you did! (LOG4MEX is based on MEX Vocabulary)

    LOG4MEX Relations

    Requirements

    Java 8, Maven 3

    License

    LOG4MEX – a MEX Project – is Open Source and licensed under the GNU General Public License 3 (Copyright (c) 2014-2016, Diego Esteves).

    Demo and Documentation

    Bugs

    Found a 🐛 bug? Open an issue

    Changelog

    [v1.0.2]

    • MEX vocabulary update
    • Fixing serialization bug

    [v1.0.1]

    • MEX vocabulary update
    • Adding support to more semantic formats

    [v1.0.0]

    • Initial version

    Usage

    1) The basics

    Instantiating the main class for the experiment

    MyMEX mex = new MyMEX();

    Saving some basic provenance informations

    mex.setAuthorName("James Walter");
    mex.setAuthorEmail("jwalter1@example.com");
    mex.setContext(EnumContexts.STOCK_MARKET_PREDICTIONS);
    mex.setOrganization("Leipzig University");
    mex.setExperimentTitle("My Experiment 2016");
    mex.setExperimentDate(new Date());
    ...

    2) Configurations

    How many dimensions you want to have?

    You can either represent an unique configuration and access the linked objects direct from it

    ...
    mex.Configuration().
    ...

    or group your executions by configurations, e.g.: 1) analysis for dataset A 2) analysis for dataset B, and access the objects by configuration

    String c1 = mex.addConfiguration();
    String c2 = mex.addConfiguration();
    ...
    mex.Configuration(c1).
    ...

    For each configuration, you define your environment

    ...
    mex.Configuration().setDescription("here you can explain the logical group you've created");
    mex.Configuration().setModel("model8745.jd", "svm model based on alpha=0.05 and C=1", "2016-05-10");
    mex.Configuration().setHardwareConfiguration("ubuntu", EnumProcessors.INTEL_COREI7, EnumRAM.SIZE_16GB, "SSD", EnumCaches.CACHE_3MB);
    mex.Configuration().setDataSet("http://www.bmfbovespa.com.br/shared/iframe.aspx?idioma=pt-br&url=http://www.bmfbovespa.com.br/pt-br/cotacoes-historicas/FormSeriesHistoricas.asp", "bovespads", "bovespa");
    mex.Configuration().setSamplingMethod(EnumSamplingMethods.CROSS_VALIDATION, 10);
    mex.Configuration().setTool(EnumTools.WEKA, "3.6.6");
    mex.Configuration().addFeature(new String[]{"openp", "closep", "minp", "maxp"}); 
    ...

    What are your algorithms? You can also refer to them in case you need to specify different hyperparameters values

    ...
    String alg1 = mex.Configuration().addAlgorithm("svm", EnumAlgorithmsClasses.SupportVectorMachines);
    String alg2 = mex.Configuration().addAlgorithm("svm", EnumAlgorithmsClasses.SupportVectorMachines);
                  mex.Configuration().addAlgorithm("nb", EnumAlgorithmsClasses.NaiveBayes);
    ...
    mex.Configuration().Algorithm(alg1).addParameter(new String[]{"C", "10^3", "alpha", "0.2"});
    mex.Configuration().Algorithm(alg2).addParameter(new String[]{"C", "10^3", "alpha", "0.4"});
    ...

    Your runs: would like to represent every single execution (EnumExecutionsType.SINGLE) or a summary for a set of executions (EnumExecutionsType.OVERALL)? Are you training (EnumPhases.TRAIN) or testing (EnumPhases.TEST)) your model?

    ...
    String ex1 = mex.Configuration().addExecution(EnumExecutionsType.OVERALL, EnumPhases.TRAIN);
    
                 mex.Configuration().Execution(ex1).setStartDate(new Date());
                 mex.Configuration().Execution(ex1).setAlgorithm(alg1);
                 mex.Configuration().Execution(ex1).setStartsAtPosition("1233");
                 mex.Configuration().Execution(ex1).setEndsAtPosition("1376");
                 ...
                 mex.Configuration().Execution(ex1).setEndDate(new Date());

    Adding performance measures

    ...
    mex.Configuration().Execution(ex1).addPerformance(EnumMeasures.ACCURACY, .96);
    mex.Configuration().Execution(ex1).addPerformance(EnumMeasures.TRUEPOSITIVERATE, .70);
    ...

    Parsing and generating the mex file

    MEXSerializer.getInstance().saveToDisk(<file path>, <uri>, mex, MEXConstant.EnumRDFFormats.JSON_LD);
    ...

    A Simple Example

    MyMEX_10 mex = new MyMEX_10();
    
    //basic authoring provenance
    mex.setAuthorName("D Esteves");
    mex.setAuthorEmail("esteves@informatik.uni-leipzig.de");
    //the algorithm and features
    String[] features = {"min", "max", "ope clo"};
    mex.Configuration().addFeature(features);
    mex.Configuration().addAlgorithm(MEXEnum.EnumAlgorithm.NaiveBayes);
    
    // -> your model's call here !
    
    //setting the phase for the run
    String executionId = mex.Configuration().addExecutionOverall(MEXEnum.EnumPhase.TEST);
    
    //adding the performance(s)
    mex.Configuration().ExecutionOverall(executionId).setAlgorithm(mex.Configuration().Algorithm(EnumAlgorithm.NaiveBayes));
    mex.Configuration().ExecutionOverall(executionId).addPerformance(EnumMeasures.ACCURACY.toString(), .96);
    
    try{
        //parsing and saving the mex file
        MEXSerializer_10.getInstance().parse(mex);
        MEXSerializer_10.getInstance().saveToDisk("ex001.ttl","http://mex.aksw.org/examples/001/", mex);
    }catch (Exception e){
        System.out.println(e.toString());
    }

    More Examples

    More basic examples are available here. You can also visit the project wiki in order to check recent updates and further use cases.

    Visit original content creator repository
    https://github.com/mexplatform/log4mex-java