Author: Bojan Bjelić

  • s-IT

    Information Systems Architect

    s IT Solutions AT Spardat GmbH, Vienna, Austria

    January 2019 – October 2019

    s IT Solutions (currently Erste Digital) was the IT service company of Erste Bank Austria.

    I was in charge of architecture strategy, coordination and governance for the Branch & Lending division. During that time, I was actively involved in the company wide and division specific target architecture development and gap analysis.

    Analysis and providing insights into the current landscape from the logical, technical, and operational side plays a significant part.

    The challenge was to define the process and ensure the correct implementation of new, and reuse of existing products and platforms via architecture governance.

    Additionally, I was supporting strategic product and project development.

    Industry: FinTech

    Responsibilities and applied knowledge: Enterprise architecture, Software architecture, System integration, Scalability, Cloud, Streaming, Development process governance, Process implementation

  • Grady Booch – A thread regarding the architecture of software-intensive systems.

    Quoting Twitter thread by @Grady_Booch on 4th of September 2020.

    There is more to the world of software-intensive systems than web-centric platforms at scale.
    A good architecture is characterized by crisp abstractions, a good separation of concerns, a clear distribution of responsibilities, and simplicity.

    All else is details.
    You cannot reduce the complexity of a software-intensive systems; the best you can do is manage it.
    In the fullness of time, all vibrant architectures must evolve.

    Old software never dies; you must kill it.
    Some architectures are intentional, some are accidental, most are emergent.
    Meaningful architecture is a living, vibrant process
    of deliberation, design, and decision.
    The relentless accretion of code over days, months, years
    and even decades quickly turns every successful new project into a legacy one.
    Show me the organization of your team and I will show you the architecture of your system.
    All well-structured software-intensive systems
    are full of patterns.
    A software architect who does not code is like
    a cook who does not eat.
    Focusing on patterns and cross-cutting concerns
    can yield an architecture that is smaller, simpler, and more understandable.
    Design decisions encourage what a particular stakeholder can do as well as what constrains what a stakeholder cannot.
    In the beginning, the architecture of a software-intensive system is a statement of vision. In the end, the rchitecture of every such system is a reflection of the billions upon billions of small and large, intentional and accidental design decisions made along the way.
    All architecture is design, but not all design is architecture.

    Architecture represents the set of significant design decisions that shape the form and the function of a system, where significant is measured by cost of change.

    https://threadreaderapp.com/thread/1301810358819069952.html
    https://twitter.com/grady_booch/status/1301810358819069952?s=21
  • Detecting if a point is inside or outside of a path

    @FreyaHolmer

    my favourite way to see if a point is inside or outside a path, is using its winding number🍥 traverse the path from the perspective of a point and add up the amount of turning along the way if it made a full turn, it’s inside if it wound back to 0, it’s outside it’s so neat~

  • git – duplicate a repo without forking

    mkdir foo; cd foo 
    # move to a scratch dir
    
    git clone --bare https://github.com/exampleuser/old-repository.git
    # Make a bare clone of the repository
    
    cd old-repository.git
    git push --mirror https://github.com/exampleuser/new-repository.git
    # Mirror-push to the new repository
    
    cd ..
    rm -rf old-repository.git  
    # Remove our temporary local repository
    
    https://stackoverflow.com/questions/6613166/how-to-duplicate-a-git-repository-without-forking
  • CSV-related tools and resources – AwesomeCSV

    The URL: https://github.com/secretGeek/AwesomeCSV

    The following content was taken from GitHub, authored by Leon Bambrick.

    Awesome CSV Awesome

    A carefully curated list of CSV-related tools and resources

    CSV remains the most futuristic data format from the distant past.

    XML has risen and fallen. JSON is just a flash in the pan. YAML is a poisoned chalice. CSV will outlast them all.

    When the final cockroach breathes her last breath, her dying act will be to scratch her date of death in a CSV file for posterity.

    Contents

    Here are some awesome tools for dealing with CSV:

    Tools

    • NimbleText/Live – Use patterns to manipulate CSV; the world’s simplest code generator *.
    • PapaParse – A powerful in-browser CSV parser.
    • d3-dsv – d3.js parser and formatter module for delimiter-separated values.
    • CSVKit – CSV utilities that includes csvsql / csvgrep / csvstat and more.
    • XSV – A fast CSV command-line toolkit written in Rust.
    • sed (gnu tool) – Stream editor.
    • gawk (gnu tool) – Text processing and data extraction using awk.
    • awk by example – Comprehensive examples of using awk.
    • Miller – Like sed / awk / cut / join / sort etc for name-indexed data such as CSV.
    • ParaText – CSV parsing at 2.5 GB per second.
    • CSVGet – Get structured data from sites as CSV.
    • CSVfix – A tool for manipulating CSV data.
    • Tad – A fast free cross-platform CSV viewer.
    • Nvd3-tags – A tiny library for making charts from csv data.
    • Powershell: Import-CSV – Powerful in-built facility for dealing with CSV (example).
    • CSV Tools – A collection of useful CSV utilities.
    • graph-cli – Flexible command line tool to create graphs from CSV data.
    • CSV to SQL – Online tool to create insert/update/delete etc from CSV data.
    • C#: kbCSV – An efficient, easy to use .NET parsing and writing library for CSV.
    • csvprintf – UNIX command line utility for parsing and formatting output based on CSV files.
    • Mockaroo – Random data generator for CSV / JSON / SQL / Excel.
    • Ron’s CSV Editor – Handles big files, does miraculous things. A timeless editor for a timeless format.
    • Rainbow CSV plugins – Collection of text editor plugins for CSV/TSV syntax highlighting. Available for Vim, VS Code, Atom, Sublime Text and other editors.
    • Mighty Merge – join/union csv files.

    Repair or Validate CSV

    • Csvlint.go – Command line tool for validating CSV files against RFC 4180.
    • csvstudio – A smart app to repair syntax errors in very large CSV files.
    • scrubcsv – Remove bad records from a CSV file and normalize (requires rust)
    • reconcile-csv – Find relationships between a set of related CSVs

    Generate Table Schema

    • CSV Schema — Analyzes a CSV file and generates database table schema, all within the browser
    • Wanted: More tools in this category.

    Treat CSV as SQL

    • TextQL – Execute SQL against CSV or TSV.
    • Datasette Facets – Faceted browse and a JSON API for any CSV File or SQLite DB.
    • q – Run SQL Directly on CSV Files
    • RBQL – Rainbow Query Language, a SQL-like language with JavaScript or Python backend.
    • PSKit Query — Powershell module lets you run simple queries over objects, including imported with csv

    Convert to or from CSV

    • CSV to Table – Convert CSV files to searchable and sortable HTML table.

    CSV <-> JSON

    • Agnes – Two way Csv to Json **.
    • csv2json – online tool to convert your CSV or TSV formatted data to JSON and vice versa.
    • csv-to-json – Easy, privacy-friendly and offline-first online csv to json converter.

    Essays

    Once you’ve found the perfect data serialization file format, you stop looking

    David Wengier

    Data

    Conferences

    • csv,conf – A community conference for data makers everywhere.

    Standards

    The wonderful thing about standards is that there are so many of them to choose from.<br />—(Possibly) Grace Hopper.

    META: Other similar lists

    • structured-text-tools – List of command line tools for manipulating CSV / XML / HTML / JSON / INI etc.
    • META-METAThis list as CSV.
    • META-META-META – A NimbleText pattern that produces this markdown page from this list as a CSV.

    Code of Conduct

    See Code of Conduct

    Funtribute

    To experience the fun of contributing, see Contributing

    Footnotes

    * <span id=’footnote1′ ></span> I’m the author of NimbleText. Of course I put it first on the list. If I didn’t personally rate it I wouldn’t have spent so much time making and improving it.

    ** <span id=’footnote2′ ></span> I wrote agnes but don’t really endorse it for others to use (thus haven’t migrated the source code to GitHub). It’s slow and non-streaming. I’d go with papa-parse. On the plus side, agnes has a more comprehensive test suite and simpler api than most.

    *** <span id=’footnote3′ ></span> Mine too.

    License

    CC0

    To the extent possible under law, Leon Bambrick has waived all copyright and related or neighboring rights to this work.

  • Kasaya

    A “WYSIWYG” (kind of) scripting language and runtime for browser automation

    https://github.com/syscolabs/kasaya

  • Presto

    Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes.

    https://prestodb.io/

  • q – Text as Data

    q is a command line tool that allows direct execution of SQL-like queries on CSVs/TSVs (and any other tabular text files).

    q treats ordinary files as database tables, and supports all SQL constructs, such as WHERE, GROUP BY, JOINs etc. It supports automatic column name and column type detection, and provides full support for multiple encodings.

    http://harelba.github.io/q/