text:
# My personal awesome software list.
This is a list of software that I regularly enjoy using, that I have used in the past, or that I want to use sometime in the future. I have compiled this list purely subjectively according to my own taste. But maybe you can find some inspiration or help. YMMV.

If you know a replacement for a tool on this list, you are more than welcome to provide a pull request. Thank you very much!
## Documents and Writing.
* [Affinity Publisher](https://affinity.serif.com/en-us/publisher/): Professional desktop publishing software. ![Mac][mac] ![Windows][windows]
* [BibDesk](https://bibdesk.sourceforge.io/): Open-source reference management software package. ![OSS][oss] ![Mac][mac]
* [calibre](https://calibre-ebook.com/): Cross-platform open-source suite of e-book software. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [glow](https://github.com/charmbracelet/glow): Render markdown on the CLI, with pizzazz! 💅. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [JabRef](https://github.com/JabRef/jabref): Open-source, cross-platform citation and reference management tool. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [MindForger](https://github.com/dvorka/mindforger): Thinking notebook and Markdown editor. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [pandoc](https://github.com/jgm/pandoc): Universal markup converter. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [Scribus](https://www.scribus.net/): Open Source Desktop Publishing. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Scrivener](https://www.literatureandlatte.com/scrivener/): Word-processing program and outliner designed for authors. ![Mac][mac] ![Windows][windows]
* [Zettlr](https://github.com/Zettlr/Zettlr): A Markdown Editor for the 21st century. ![Linux][linux] ![Mac][mac] ![Windows][windows] ![OSS][oss]

## Programming.
* [conda](https://github.com/conda/conda): Open-source, cross-platform, language-agnostic package manager and environment management system. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [Dash](https://kapeli.com/dash): Instant offline access to 200+ API documentation sets. ![Mac][mac]
* [exercism](https://exercism.io/cli/): Command-line tool to interact with exercism.io. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [Git](https://git-scm.com): Distributed revision control system. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [git-lfs](https://github.com/git-lfs/git-lfs): Git extension for versioning large files. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [git-delta](https://github.com/dandavison/delta): Syntax-highlighting pager for git and diff output. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [GNU Octave](https://www.gnu.org/software/octave/index.html): High-level interpreted language for numerical computing. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [Hex Fiend](https://github.com/ridiculousfish/HexFiend/): A fast and clever hex editor for Mac OS X. ![OSS][oss] ![Mac][mac]
* [hexyl](https://github.com/sharkdp/hexyl): Command-line hex viewer. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [HxD](https://mh-nexus.de/en/hxd/): Freeware Hex Editor and Disk Editor. ![Windows][windows]
* [jq](https://stedolan.github.io/jq/): Lightweight and flexible command-line JSON processor. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [Neovim](https://neovim.io/): Ambitious Vim-fork focused on extensibility and agility. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [Strawberry Perl for Windows](http://strawberryperl.com/). Perl environment for MS Windows. ![OSS][oss] ![Windows][windows] ![CLI][cli]
* [Sublime Merge](https://www.sublimemerge.com/): Git client, done Sublime. ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Sublime Text](https://www.sublimetext.com/): A sophisticated text editor for code, markup and prose. ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [tig](https://jonas.github.io/tig/): Text interface for Git repositories. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [VSCodium](https://github.com/VSCodium/vscodium): VS Code without MS branding/telemetry/licensing. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [WinMerge](https://winmerge.org/): Tool for data comparison and merging of text-like files. ![OSS][oss] ![Windows][windows]
* [xsv](https://github.com/BurntSushi/xsv): Fast CSV toolkit written in Rust. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]

## Science & Engineering.
* [CloudCompare](https://www.danielgm.net/cc/): 3D point cloud and mesh processing software. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Fiji](https://github.com/fiji/fiji): A "batteries-included" distribution of [ImageJ](https://imagej.net/). ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [FreeCAD](https://github.com/FreeCAD/FreeCAD): General-purpose parametric 3D CAD modeler and a building information modeling (BIM) software with finite-element-method (FEM) support. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [gnuplot](http://www.gnuplot.info/): Command-driven, interactive function plotting. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows] ![CLI][cli]
* [meshlab](https://github.com/cnr-isti-vclab/meshlab): Mesh processing system. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [ParaView](https://gitlab.kitware.com/paraview/paraview): Data analysis and visualization application. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]

## Graphics.
* [Affinity Designer](https://affinity.serif.com/en-us/designer/): Professional Graphic Design Software. ![Mac][mac] ![Windows][windows]
* [Affinity Photo](https://affinity.serif.com/en-us/photo/): Professional Image Editing Software. ![Mac][mac] ![Windows][windows]
* [FileOptimizer](https://nikkhokkho.sourceforge.io/static.php?page=FileOptimizer): Advanced file optimizer featuring a lossless (no quality loss) file size reduction. ![OSS][oss] ![Windows][windows]
* [gallery-dl](https://github.com/mikf/gallery-dl): Command-line program to download image-galleries and -collections from several image hosting sites. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [GIMP](https://www.gimp.org/): Free and open-source raster graphics editor. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [HandBrake](https://github.com/HandBrake/HandBrake): Transcoder for digital video files. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [ImageOptim](https://github.com/ImageOptim/ImageOptim): GUI for lossless image optimization tools. ![OSS][oss] ![Mac][mac]
* [Inkscape](https://inkscape.org/): Free and open-source vector graphics editor. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [IrfanView](https://www.irfanview.com/): Image viewer, editor, organiser and converter program. ![Windows][windows]
* [Pixelmator](https://www.pixelmator.com/mac/): Powerful, full-featured image editor. ![Mac][mac]
* [PngOptimizer](https://github.com/hadrien-psydk/pngoptimizer): Optimize PNG images and convert other lossless format (BMP, GIF, TGA...) images to PNG. ![OSS][oss] ![Linux][linux] ![Windows][windows]
* [Trimage](https://github.com/Kilian/Trimage): Cross-platform GUI and command-line interface for optimizing PNG and JPG files. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]

### Color schemes.
* [Smyck Color Scheme](http://color.smyck.org/) for terminals and text editors.
![smyck][smyck]
* Diverging color map: "Cool To Warm" ([Diverging Color Maps for Scientific Visualization](https://www.kennethmoreland.com/color-maps/))
![cool2warm][cool2warm]
* Sequential color map: "Viridis" ([matplotlib colormaps](https://bids.github.io/colormap/))
![viridis][viridis]

## Fun & Games.
* [2048.c](https://github.com/mevdschee/2048.c): Console version of the game "2048" for GNU/Linux. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [cowsay](https://github.com/tnalpgge/rank-amateur-cowsay): Configurable talking characters in ASCII art. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [Good Sudoku by Zach Gage](https://apps.apple.com/us/app/id1489118195): Sudoku that loves you. ![iOS][ios]
* [lolcat](https://github.com/busyloop/lolcat): Rainbows and unicorns in your console! ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [mednaffe](https://github.com/AmatCoder/mednaffe): A front-end (GUI) for mednafen emulator. ![OSS][oss] ![Linux][linux] ![Windows][windows]
* [OpenEmu](https://openemu.org/): Multiple Video Game System. ![OSS][oss] ![Mac][mac]

## Multimedia.
* [ASCIIQuarium](https://robobunny.com/projects/asciiquarium/html/): Aquarium animation in ASCII art. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Auphonic](https://auphonic.com/): Audio post production web service for podcasts, broadcasters, radio shows, movies, screencasts and more.
* [DaVinci Resolve](https://www.blackmagicdesign.com/products/davinciresolve/): Color correction and non-linear video editing (NLE) application.os ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [FFmpeg](https://ffmpeg.org/): Play, record, convert, and stream audio and video. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [mpv](https://github.com/mpv-player/mpv): 🎥 command line video player (with GUI). ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [OBS Studio](https://obsproject.com/): Free and open source software for video recording and live streaming.os ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [OpenShot Video Editor](https://www.openshot.org/): Free, Open, and Award-Winning Video Editor.os ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [REAPER](https://www.reaper.fm/): Digital audio workstation and MIDI sequencer software.os ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Shotwell Photo Manager](https://github.com/GNOME/shotwell): Digital photo organizer. ![OSS][oss] ![Linux][linux]
* [Ultraschall](https://ultraschall.fm/): Eine leicht bedienbaren HighEnd-Podcast-Aufnahmesoftware auf Basis von Reaper.os ![OSS][oss] ![Mac][mac] ![Windows][windows]
* [youtube-dl](https://ytdl-org.github.io/youtube-dl/): Download YouTube videos from the command-line. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]

## File Management.
* [bat](https://github.com/sharkdp/bat): Clone of cat(1) with syntax highlighting and Git integration. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [Carbon Copy Cloner](https://bombich.com/): Backup utility that can create bootable backups. ![Mac][mac]
* [Double Commander](https://doublecmd.sourceforge.io/): file manager with two panels side by side. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [dupeguru](https://github.com/arsenetar/dupeguru/) finds duplicate files. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Everything](https://www.voidtools.com/): Locate files and folders by name instantly. ![Windows][windows]
* [fd](https://github.com/sharkdp/fd): Simple, fast and user-friendly alternative to find. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [fzf](https://github.com/junegunn/fzf): Command-line fuzzy finder written in Go. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [Listary](https://www.listary.com/): Desktop search utility. ![Windows][windows]
* [lsd](https://github.com/Peltoche/lsd): Clone of ls with colorful output, file type icons, and more. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [Marta](https://marta.yanex.org/): Dual pane file manager for macOS. ![Mac][mac]
* [Midnight Commander](https://www.midnight-commander.org/): Terminal-based visual file manager. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [Ncdu](https://dev.yorhel.nl/ncdu): disk usage analyzer with an ncurses interface. ![OSS][oss] ![CLI][cli]
* [ranger](https://ranger.github.io): File browser. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [ripgrep-all](https://github.com/phiresky/ripgrep-all): Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [ripgrep](https://github.com/BurntSushi/ripgrep): Ripgrep recursively searches directories for a regex pattern. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Total Commander](https://www.ghisler.com/): Orthodox file manager. ![Windows][windows]
* [WinDirStat](https://windirstat.net/): Graphical disk usage analyzer. ![OSS][oss] ![Windows][windows]

## Tools.
* [1Password](https://1password.com/): Password manager. ![Mac][mac]
* [7-Zip](https://7-zip.org/): File archiver with a high compression ratio. ![OSS][oss] ![Windows][windows]
* [Alfred](https://www.alfredapp.com/): Quicklaunch application. ![Mac][mac]
* [AltTab](https://github.com/lwouis/alt-tab-macos): Windows alt-tab on macOS. ![OSS][oss] ![Mac][mac]
* [AppCleaner](https://freemacsoft.net/appcleaner/): Small application which allows you to thoroughly uninstall unwanted apps. ![Mac][mac]
* [AquaSnap Window Manager](https://www.nurgo-software.com/products/aquasnap): Dock, snap, tile, organize. ![Windows][windows]
* [Arq](https://www.arqbackup.com/) backs up your files securely to your cloud account or NAS. ![Mac][mac] ![Windows][windows]
* [AutoHotkey](https://github.com/Lexikos/AutoHotkey_L): Macro-creation and automation-oriented scripting utility. ![OSS][oss] ![Windows][windows]
* [cask-repair](https://github.com/vitorgalvao/tiny-scripts): Quickly repair outdated/broken Casks from homebrew-cask. ![OSS][oss] ![Mac][mac]
* [DisplayCAL](https://displaycal.net/): Display Calibration and Characterization powered by ArgyllCMS. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Duet Display](https://www.duetdisplay.com/): Use your iPad as a second display for your Mac. ![Mac][mac]
* [EagleFiler](https://c-command.com/eaglefiler/): Collect notes, e-mails, and Web pages on your Mac, and search them instantly. ![Mac][mac]
* [ExifTool](https://www.sno.phy.queensu.ca/~phil/exiftool/index.html): Perl lib for reading and writing EXIF metadata. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [homebrew-cask-fonts](https://github.com/Homebrew/homebrew-cask-fonts): 🖋 Casks of Ｆ🅾𝓝𝐓𝚂. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [homebrew-cask](https://github.com/Homebrew/homebrew-cask/): 🍻 A CLI workflow for the administration of macOS applications distributed as binaries. ![OSS][oss] ![Mac][mac]
* [Homebrew](https://brew.sh/): The Missing Package Manager for macOS (or Linux). ![Linux][linux] ![Mac][mac]
* [htop](https://hisham.hm/htop/): Improved top (interactive process viewer). ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [icalBuddy](https://hasseg.org/icalBuddy/): Get events and tasks from the macOS calendar database. ![OSS][oss] ![Mac][mac]
* [iStat Menus](https://bjango.com/mac/istatmenus/): An advanced Mac system monitor for your menubar. ![Mac][mac]
* [iThoughtsX](https://www.toketaware.com/ithoughts-osx): Mind mapping app. ![Mac][mac]
* [KeePassXC](https://github.com/keepassxreboot/keepassxc): Cross-platform community-driven port of the Windows application "Keepass Password Safe". ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Keyboard Maestro](https://www.keyboardmaestro.com/): Automation tool for macOS which uses macros to automate workflows. ![Mac][mac]
* [mas](https://github.com/mas-cli/mas): Mac App Store command-line interface. ![OSS][oss] ![Mac][mac]
* [MoneyMoney](https://moneymoney-app.com/): Online banking for macOS. ![Mac][mac]
* [MonitorControl](https://github.com/the0neyouseek/MonitorControl): 🖥 control your external monitor brightness & volume on your Mac. ![OSS][oss] ![Mac][mac]
* [Moom](https://manytricks.com/moom/): Move and zoom windows. ![Mac][mac]
* [p7zip](https://p7zip.sourceforge.io/): 7-Zip (high compression file archiver) implementation. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [powerlevel9k](https://github.com/bhilburn/powerlevel9k): A badass zsh theme with more power than a normal earthling. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [PowerToys](https://github.com/Microsoft/PowerToys): Windows system utilities to maximize productivity. ![OSS][oss] ![Windows][windows]
* [Receipts](https://www.receipts-app.com/) sammelt und verwaltet Belege. ![Mac][mac]
* [TableTool](https://github.com/jakob/TableTool): A simple CSV editor for the Mac. ![OSS][oss] ![Mac][mac]
* [Taskwarrior](https://github.com/GothenburgBitFactory/taskwarrior): Commandline Task Management. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [tldr](https://tldr.sh/): Simplified and community-driven man pages. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [tmux](https://tmux.github.io/): Terminal multiplexer. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [topgrade](https://github.com/r-darwish/topgrade): Upgrade all the things. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [unrar](https://www.rarlab.com/): Extract, view, and test RAR archives. ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [yabai](https://github.com/koekeishiya/yabai): A tiling window manager for macOS based on binary space partitioning. ![OSS][oss] ![Mac][mac]
* [z](https://github.com/rupa/z): Tracks most-used directories to make cd smarter. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions): Fish-like fast/unobtrusive autosuggestions for zsh. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [zsh](https://www.zsh.org/): UNIX shell (command interpreter). ![OSS][oss] ![Linux][linux] ![Mac][mac]

## PDF files.
* [K2pdfopt](https://www.willus.com/k2pdfopt/): Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [PDFtk](https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/): The PDF Toolkit. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [QPDF](https://github.com/qpdf/qpdf): Tools for and transforming and inspecting PDF files. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Skim](https://skim-app.sourceforge.io/): PDF reader and note-taker for macOS. ![OSS][oss] ![Mac][mac]
* [Sumatra PDF](https://www.sumatrapdfreader.org/): PDF, ePub, MOBI, CHM, XPS, DjVu, CBZ, CBR reader. ![OSS][oss] ![Windows][windows]

## Internet.
### Remote access.
* [FileZilla](https://filezilla-project.org/): Free software, cross-platform FTP application. ![OSS][oss] ![Mac][mac] ![Windows][windows]
* [freerdp](https://www.freerdp.com/): X11 implementation of the Remote Desktop Protocol (RDP). ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Jump Desktop](https://jumpdesktop.com/): Remote desktop app. ![Mac][mac] ![Windows][windows]
* [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/): Free and open-source terminal emulator, serial console and network file transfer application. ![OSS][oss] ![Windows][windows]
* [Transmit](https://panic.com/transmit/): File transfer client program for macOS. ![Mac][mac]
* [WinSCP](https://github.com/winscp/winscp): SFTP, FTP, WebDAV, Amazon S3 and SCP client. ![OSS][oss] ![Windows][windows]

### Browsers.
* [Firefox](https://www.mozilla.org/en-US/firefox/): Free and open-source web browser. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [lynx](https://invisible-island.net/lynx/): Text-based web browser. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium): Google Chromium, sans integration with Google. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [w3m](https://w3m.sourceforge.io/): Pager/text based browser. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]

### Social Networks.
* [Bibliogram](https://bibliogram.art/): a website that takes data from Instagram's public profile views and puts it into a friendlier page that loads faster, gives downloadable images, eliminates ads, generates RSS feeds, and doesn't urge you to sign up. ![OSS][oss]
* [cawbird](https://github.com/IBBoard/cawbird): A fork of the Corebird GTK Twitter client that continues to work with Twitter. ![OSS][oss] ![Linux][linux]
* [invidious](https://github.com/omarroth/invidious): Alternative front-end to YouTube. ![OSS][oss]
* [nitter](https://github.com/zedeus/nitter): Alternative Twitter front-end. ![OSS][oss]
* [Tweetbot](https://tapbots.com/tweetbot/mac/): Third party client application for the social networking site Twitter. ![Mac][mac]

### Mail.
* [MailMate](https://freron.com/): IMAP email client for macOS featuring extensive keyboard control, Markdown integrated email composition, and much more. ![Mac][mac]
* [SpamSieve](https://c-command.com/spamsieve/): Powerful spam filtering for e-mail clients on macOS. ![Mac][mac]

### other Tools.
* [aria2](https://aria2.github.io/): Download with resuming and segmented downloading. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [httpie](https://httpie.org/): User-friendly cURL replacement (command-line HTTP client). ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Integrity](https://peacockmedia.software/mac/integrity/free.html): Free link checker. ![Mac][mac]
* [speedtest-cli](https://github.com/sivel/speedtest-cli): Command-line interface for https://speedtest.net bandwidth tests. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [transmission](https://github.com/transmission/transmission): Fast, easy, and free BitTorrent client. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [wakeonlan](https://github.com/jpoliv/wakeonlan): Sends magic packets to wake up network-devices. ![OSS][oss] ![Linux][linux] ![Mac][mac]
* [ffsend](https://gitlab.com/timvisee/ffsend): Fully featured Firefox Send client ![OSS][oss] ![Linux][linux] ![Mac][mac]

## Web Services.
* [Exercism](https://exercism.io/): Crowd-sourced code mentorship. Practice having thoughtful conversations about code. ![OSS][oss]
* [Regex101](https://regex101.com/): Online regex tester and debugger.
* [wallabag](https://github.com/wallabag/wallabag/): Self-hostable application for saving web pages: Save and classify articles. Read them later. Freely. ![OSS][oss]
* [Nextcloud](https://github.com/nextcloud/server): ☁ Nextcloud server, a safe home for all your data. ![OSS][oss]
* [Pinboard](https://pinboard.in/): Social bookmarking for introverts.
* [FreshRSS](https://github.com/FreshRSS/FreshRSS): A free, self-hostable aggregator… ![OSS][oss]
* [RSS-Bridge](https://github.com/RSS-Bridge/rss-bridge): The RSS feed for websites missing it. ![OSS][oss]
* [Discogs](https://www.discogs.com/): Music Database and Marketplace.
* [MediathekViewWeb](https://mediathekviewweb.de/): Einfache Browser-Oberfläche für den Zugriff auf die Filmliste des MediathekView Projekts. ![OSS][oss]
* [searx](https://github.com/asciimoo/searx): Privacy-respecting metasearch engine. ![OSS][oss]
* [Framadate](https://framadate.org/): Make your polls. ![OSS][oss]
    * [Framadate installation of Digitalcourage](https://poll.digitalcourage.de/)
    * [Framadate installation of DFN](https://terminplaner4.dfn.de/)
* [Syncthing](https://github.com/syncthing/syncthing): Open Source Continuous File Synchronization. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]

## Browser Add-ons.
* [CanvasBlocker](https://addons.mozilla.org/en-US/firefox/addon/canvasblocker/): Allows users to prevent websites from using some Javascript APIs to fingerprint them. ![Firefox][firefox]
* [Cookie AutoDelete](https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/): Control your cookies! ![Firefox][firefox]
* [Decentraleyes](https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/): Protects you against tracking through "free", centralized, content delivery. ![Firefox][firefox]
* [elevate](https://github.com/thomaschampagne/elevate) tracks your fitness and progressions on Strava over time. Analyse deeper your activities & segments. And more... ![Chromium][chromium]
* [HTTPZ](https://addons.mozilla.org/en-US/firefox/addon/httpz/): Fat-free hardenable opportunistic encryption. ![Firefox][firefox]
* [Invidition](https://addons.mozilla.org/en-US/firefox/addon/invidition/): Redirects YouTube and Twitter to their alternative ads-free, privacy-friendly, interfaces. ![Firefox][firefox]
* [Open Access Button](https://addons.mozilla.org/en-US/firefox/addon/openaccessbutton/): Helps you get the research you want right now, and adds papers you still need to your wishlists. ![Firefox][firefox]
* [uBlock Origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/): Finally, an efficient blocker. ![Firefox][firefox]
* [uMatrix](https://addons.mozilla.org/en-US/firefox/addon/umatrix/): Point & click to forbid/allow any class of requests made by your browser. ![Firefox][firefox]
* [Unpaywall](https://addons.mozilla.org/en-US/firefox/addon/unpaywall/): Get free text of research papers as you browse, using Unpaywall's index of ten million legal, open-access articles. ![Firefox][firefox]
* [unshort.link](https://github.com/simonfrey/unshort.link/): Prevent short link services from tracking you by unshortening the urls for you. ![Firefox][firefox] ![Chromium][chromium]

---
## Mobile.
### Navigation.
* [DB Navigator](https://www.bahn.de/p/view/service/mobile/db-navigator.shtml): Vom Stadtbus bis zum ICE, von der Auskunft bis zur Ankunft – der DB Navigator hält für jede Situation einen Service parat. ![iOS][ios] ![Android][android]
* [Geofency](https://www.geofency.com/): Automatic Location-based Time Tracking. ![iOS][ios]
* [Pocket Earth](https://pocketearth.com/): Offline Maps & Travel Guides. ![iOS][ios]
* [Öffi](https://gitlab.com/oeffi/oeffi): The King of Public Transit! ![Android][android] ![OSS][oss]
* [ÖPNV Navigator](https://apps.apple.com/de/app/%C3%B6pnv-navigator/id1239908782): Auskunft für den Nahverkehr. ![iOS][ios]

### Productivity & Work.
* [AdGuard](https://adguard.com/): Ultimate adblock for mobile. ![iOS][ios] ![Android][android]
* [Affinity Publisher](https://affinity.serif.com/en-us/publisher/): Professional desktop publishing software. ![iOS][ios]
* [Affinity Designer](https://affinity.serif.com/en-us/designer/): Professional Graphic Design Software. ![iOS][ios]
* [Affinity Photo](https://affinity.serif.com/en-us/photo/): Professional Image Editing Software. ![iOS][ios]
* [atWork](https://apps.apple.com/us/app/atwork-timesheet-time-tracker/id857189697): Work Hours Tracking, Time Card. ![iOS][ios]
* [BeFocused](https://xwavesoft.com/be-focused-pro-for-iphone-ipad-mac-os-x.html): Focus timer for work and study. ![iOS][ios]
* [Better](https://better.fyi/): Blocks all the tracking things. ![iOS][ios]
* [Calendars 5](https://readdle.com/calendars5): A smart calendar app. ![iOS][ios]
* [Charcoal](https://apps.apple.com/us/app/charcoal/id1490279484): Visualize Your Ideas. ![iOS][ios]
* [Documents](https://readdle.com/documents): File manager, media player. ![iOS][ios]
* [FE File Explorer](https://www.skyjos.com/fileexplorer/index.html): Access files on computer & NAS. ![iOS][ios] ![Android][android]
* [Firefox: Private, Safe Browser](https://www.mozilla.org/de/firefox/mobile/): Fast and Secure Web Browsing. ![iOS][ios] ![Android][android] ![OSS][oss]
* [Gladys](http://www.bru.build/app/gladys): Your drag & drop assistant. ![iOS][ios]
* [iThoughts](https://www.toketaware.com/ithoughts-ios): Mindmapping. ![iOS][ios]
* [Nextcloud](https://nextcloud.com/install/): A safe home for all your data. ![iOS][ios] ![Android][android]
* [Office Lens](https://apps.apple.com/app/office-lens/id975925059): PDF scanner, Docs, Whiteboard. ![iOS][ios] ![Android][android]
* [Opener](https://www.opener.link/): Open links in apps. ![iOS][ios]
* [Prompt 2](https://panic.com/prompt/): SSH to your servers with style. ![iOS][ios]
* [Scanbot](https://scanbot.io/): Document, Bar & QR-Code Scan. ![iOS][ios] ![Android][android]
* [Scrivener](https://www.literatureandlatte.com/scrivener/features?os=iOS): Combines all the writing tools you need to craft your first draft, from nascent notion to final full stop. ![iOS][ios]
* [Taskmator](https://apps.apple.com/us/app/taskmator-taskpaper-client/id806250172): Plain Text To-Do List & Tasks. ![iOS][ios]
* [Textastic](https://www.textasticapp.com/): Advanced code editor with support for syntax highlighting, remote file transfer, and SSH. ![iOS][ios]
* [Working Copy](https://workingcopyapp.com/): Powerful Git client for iOS that clones, edits, commits, pushes & more. ![iOS][ios]
* [Dash](https://kapeli.com/dash_ios): Instant offline access to 200+ API documentation sets. ![OSS][oss] ![iOS][ios]
* [GoodNotes](https://www.goodnotes.com/): Single place for all your handwritten notes and formerly paper-based information. ![iOS][ios]
* [Pythonista](https://omz-software.com/pythonista/): A Full Python IDE. ![iOS][ios]
* [Shapr3D](https://www.shapr3d.com/): Mobile 3D Design App for iPad. ![iOS][ios]

### Sports & Health.
* [AutoSleep](http://autosleep.tantsissa.com/): Auto Sleep Tracker & Monitor. ![iOS][ios]
* [CodeCheck: Produkt Scanner](https://codecheck-app.com/): Scan barcodes & shop healthy. ![iOS][ios] ![Android][android]
* [GPSBabel](https://www.gpsbabel.org/): convert, upload, download data from GPS and Map programs. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [HealthFit](https://apps.apple.com/us/app/healthfit/id1202650514): Export your workouts. ![iOS][ios]
* [iSmoothRun](http://www.ismoothrun.com/): The ultimate app for runners. ![iOS][ios]
* [RunGap](http://www.rungap.com/): Free Workout Data Manager for iOS. ![iOS][ios]
* [YAZIO](https://www.yazio.com/): Welcome to a healthier life. ![iOS][ios] ![Android][android]

### Multimedia.
* [AntennaPod](https://github.com/antennapod/AntennaPod): A podcast manager for Android. ![OSS][oss] ![Android][android]
* [detektor.fm](https://detektor.fm/empfang): Listen to detektor.fm radio. ![iOS][ios] ![Android][android]
* [Halide](https://halide.cam/): Premium RAW & Manual. ![iOS][ios]
* [IP Cam Viewer](http://hit-mob.com/): Remotely view, control and record your IP camera, webcam, DVR and NVR. ![iOS][ios] ![Android][android]
* [NewPipe](https://github.com/TeamNewPipe/NewPipe/): A libre lightweight streaming front-end for Android. ![Android][android] ![OSS][oss]
* [Pocket Casts](https://www.pocketcasts.com/): Powerful podcast player. ![iOS][ios] ![Android][android]
* [Reeder 4](https://www.reederapp.com/): News Reader. ![iOS][ios]
* [Triode](https://triode.app/): Enjoy all of your favorite Internet radio stations wherever you go. ![iOS][ios]
* [Pixelmator](https://www.pixelmator.com/ios/): Powerful, full-featured image editor. ![iOS][ios]
* [Procreate](https://procreate.art/): Sketch, paint, create. ![iOS][ios]
* [VLC](https://www.videolan.org/vlc/download-ios.html): Play all your movies and shows in most formats directly without conversion. ![iOS][ios]
* [Die MausApp](https://www.wdrmaus.de/extras/mausapp.php5): Interaktiv die MausWelt entdecken. ![iOS][ios] ![Android][android]

### News & Messaging.
* [Signal](https://signal.org/): Say "hello" to privacy. ![iOS][ios] ![Android][android] ![OSS][oss]
* [Threema](https://threema.ch/): Seriously secure messaging. ![iOS][ios] ![Android][android]
* [Toot!](https://apps.apple.com/app/toot/id1229021451?ls=1): Client for the Mastodon social network. ![iOS][ios]
* [Tweetbot](https://tapbots.com/tweetbot/): Award-winning Twitter client for iOS and the Mac. ![iOS][ios]
* [Twitterrific](https://twitterrific.com/ios): Award-winning, elegant Twitter client that’s easy to understand and a delight to use. ![iOS][ios]

### other Tools.
* [1Password](https://1password.com/downloads/): Generate & keep passwords safe. ![iOS][ios] ![Android][android]
* [Banking4](https://subsembly.com/banking4.html): Banking für Profis. ![iOS][ios] ![Android][android]
* [F-Droid](https://f-droid.org/): Free and Open Source Android App Repository. ![Android][android] ![OSS][oss]
* [Jump](https://jumpdesktop.com/): Remote desktop. ![iOS][ios] ![Android][android]
* [MobileData](https://elaborateapps.com/mobiledata-data-usage-widget): Mobile data usage. ![iOS][ios]
* [Mocha WOL](http://mochasoft.dk/iphone_wol.htm): Use your iPhone or iPad to power up a sleeping Mac or PC on your network. ![iOS][ios]
* [MoneyStats](http://www.ttdeveloped.com/_moneystats/moneystats_index.php): Track your expenses & income. ![iOS][ios]
* [NINA](https://www.bbk.bund.de/DE/NINA/Warn-App_NINA.html): Warnt Sie deutschlandweit vor Gefahren, auf Wunsch auch für Ihren aktuellen Standort. ![iOS][ios] ![Android][android]
* [ParcelTrack](https://www.parceltrack.de/): Track all carriers in one app. ![iOS][ios] ![Android][android]
* [Splid](https://splid.app/): Split expenses the easy way. ![iOS][ios] ![Android][android]
* [WarnWetter](https://www.warnwetterapp.de/): Detaillierte Informationen zur aktuellen Warn- und Wetterlage. ![iOS][ios] ![Android][android]

---

## Smart Home
* [diyHue](https://github.com/diyhue/diyHue): A Hue bridge emulator. ![OSS][oss]
* [homebridge](https://github.com/homebridge/homebridge): HomeKit support for the impatient. ![OSS][oss]
* [Hue Essentials](https://www.hueessentials.com/): Discover ways to get the most out of your smart lighting. ![iOS][ios] ![Android][android]
* [RaspBee](https://www.phoscon.de/de/raspbee/): The Raspberry Pi Zigbee gateway.
* [rrcc](https://github.com/LazyT/rrcc): RoboRock Control Center. ![OSS][oss] ![Linux][linux] ![Mac][mac] ![Windows][windows]
* [Valetudo](https://github.com/hypfer/valetudo): Cloud-free control webinterface for vacuum robots. ![CLI][cli] ![OSS][oss]

---

## Legend

| Logo | Description |
|:-------------------:|:-------------------------------------------------------|
| ![Android][android] | [Android](https://www.android.com/) |
| ![Chromium][chromium] | [Google Chromium](https://www.chromium.org/Home) |
| ![CLI][cli] | [Command-line interface](https://en.wikipedia.org/wiki/Command-line_interface) |
| ![Firefox][firefox] | [Mozilla Firefox](https://www.mozilla.org/firefox/) |
| ![iOS][ios] | [Apple iOS](https://www.apple.com/ios/) |
| ![Linux][linux] | [Linux](https://www.linuxfoundation.org/) |
| ![Mac][mac] | [Apple macOS](https://www.apple.com/macos/) |
| ![OSS][oss] | [Open Source](https://opensource.org/) |
| ![Windows][windows] | [Microsoft Windows](http://microsoft.com/windows/) |

---

All trademarks are property of their respective owners.

[android]: android.svg
[chromium]: chromium.svg
[cli]: cli.svg
[cool2warm]: cool2warm.svg
[firefox]: firefox.svg
[ios]: ios.svg
[linux]: linux.svg
[mac]: mac.svg
[oss]: Opensource.svg
[smyck]: smyck.svg
[viridis]: viridis.svg
[windows]: windows.svg

<!-- [mac]: https://cdn.rawgit.com/egeerardyn/awesome-LaTeX/700138fe725574e1741f148df6d1f77a8aa07eee/fig/apple.svg
[linux]: https://cdn.rawgit.com/egeerardyn/awesome-LaTeX/700138fe725574e1741f148df6d1f77a8aa07eee/fig/linux.svg
[windows]: https://cdn.rawgit.com/egeerardyn/awesome-LaTeX/700138fe725574e1741f148df6d1f77a8aa07eee/fig/windows.svg
[foss]: https://cdn.rawgit.com/egeerardyn/awesome-LaTeX/700138fe725574e1741f148df6d1f77a8aa07eee/fig/foss.svg
[awesome]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg
. ![alt text][id]

[id]: /path/to/img.jpg "Title" -->

repository: herrriehm/my-personal-awesome

repo_name: herrriehm/my-personal-awesome


text:
# lz4-wasm

LZ4 block codec: A WebAssembly implementation.

The current implementation encode/decode LZ4 block format as per [official documentation](https://github.com/lz4/lz4/blob/dev/doc/lz4_Block_format.md).

LZ4 frame format is not implemented at this time.

# Files

`./src/lz4-block-codec.wat`: the WebAssembly source code

`./dist/lz4-block-codec.wasm`: the compiled WebAssembly source code, generated using:

    wat2wasm ./lz4-block-codec.wat -o ./dist/lz4-block-codec.wasm
    wasm-opt ./lz4-block-codec.wasm -O4 -o ./dist/lz4-block-codec.wasm

You can get `wat2wasm` at <https://github.com/WebAssembly/wabt>, and `wasm-opt` at <https://github.com/WebAssembly/binaryen>.

# Test

Note: the test/benchmark page uses javascript implementation of other compression libraries solely for the sake of comparison with javascript-based solutions.

[Test & benchmark page](https://gorhill.github.io/lz4-wasm/test/index.html).

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
---
title: Installing the MEAN.io stack on Koding
author: P1xt
username: P1xt
categories: [frameworks platforms, node, angular, express, mongodb]
---

# Installing & Setting Up a MEAN.io stack

Before you continue reading this guide why not try a more easy way, using the [Koding Package Manager (kpm)](http://learn.koding.com/guides/getting-started-kpm/) and install MEAN or MEAN.io stack using just one command:

If you want to install MEAN:

```
kpm install mean
```

and if you want to install MEAN.io stack you can use:

```
kpm install mean-io-stack
```

***

This article will cover the process of installing and setting up a [MEAN.io](http://mean.io) stack in your [Koding](https://koding.com) environment.

What is MEAN.io
---------------

[MEAN.io](http://mean.io/) is an opinionated fullstack javascript framework which simplifies and accelerates web application development.
It contains Mongodb, Angular.js, Express.js, and Node.js.

The folowing instructions pertain the the MEAN stack as found on http://mean.io. There is a competing MEAN stack found at http://mean.js but a full discussion regarding the merits of the competing stacks is beyond the scope of this document.
Step 1 - Install the Prerequisites
----------------------------------

Before we can install MEAN, we need to install the following dependencies:

 - build-essentials
 - make
 - GCC compiler

Open your [Koding Terminal](https://koding.com/Terminal) and type the following:

    sudo apt-get install gcc make build-essential

After typing this and hitting enter, you might be prompted for a password. Type in the password of your Koding account and hit enter.

This command might take a few minutes to execute and will fetch and install all the required prerequisites.

Step 2 - Install Required Supporting Applications
-------------------------------------------------

Follow the directions [HERE](http://learn.koding.com/guides/install-mongodb/) to install mongodb.

Still in your [Koding Terminal](https://koding.com/Terminal), type the following to install grunt:

    npm install -g grunt-cli

Step 3 - Install MEAN
------------------------------

Still in your [Koding Terminal](https://koding.com/Terminal), type the following:

    npm install -g mean-cli

Step 4 - Creating your first MEAN Application
---------------------------------------------

    $ mean init <myApp>
    $ cd <myApp> && npm install

The npm install will install all the dependencies for your MEAN Application and will take several minutes.

Once the install is complete, you may start the server for your application using either grunt or node with the following commands (respectively):

    $ grunt
    $ node server

Then, open a browser and go to:
  http://YOURID.koding.io:3000

Where YOURID is replaced with your actual koding id.

license: MIT

repository: WebDevelopmentStudioWebAristan/kdlearn

gha_language: CSS

repo_name: WebDevelopmentStudioWebAristan/kdlearn


text:
# Create a Standalone file server for App Service

This template will creates App Service standalone file server for test scenarios.

The template will return public IP of newly created standalone file server which can be used for App Service deployment on ASDK. E.g. \\\\publicIp\Websites OR \\\\fqdn\Websites

It also creates the following resources:
+   A Virtual Network
+   One Storage Account and subnet
+   One Public IP
+   One Virtual machine configured for App Service standalone file server

## Notes
Standalone file server is not HA and should only be used in dev and test scenarios.

This template uses an Azure Stack Marketplace image, which must be downloaded from Azure Marketplace and made available on your Azure Stack instance:
- The latest version of Windows Server 2016 Datacenter

## Deploying from Azure Stack portal

+   Copy azuredeploy.json content to clipboard.
+   Sign in to portal.
+   Click "+ Create a resource" -> "Custom" -> "Template deployment".
+   Click "Edit template"
+   Delete existing content, paste in content from clipboard, then click "Save".
+   Click "Edit parameters" to complete any missing/incorrect parameters, then click "OK".
+   Specify the appropriate subscription and resource group settings.
+   Click "Create".

gha_license_id: MIT


text:
---
layout: post
title:  "Haskell"
author: Damir Cavar
date:   2016-06-12 05:22:10 -0400
permalink: iHaskell_Notebooks
categories: software
tags: Haskell iHaskell Jupyter "Kronos Haskell" "Natural Language Processing" "Machine Learning"
---
I developed a few [iHaskell](https://github.com/gibiansky/IHaskell) notebooks (see [Jupyter](https://jupyter.org/)
or [Kronos Haskell for Mac](http://www.kronosnotebook.com/haskell)) as tutorials and material accompanying different
courses in Computational Linguistics (CL), Natural Language Processing (NLP), AI and Machine Learning (ML).
The material will eventually be all listed here and made available for download:

- Intro to Haskell (zip, jupyter notebook)
- ...

extension: markdown

gha_language: HTML


text:
# datable.sql
![DaTableSQL](http://netmask.it/DaTable.jpg)

An ultra thin layer over relational databases that doubles their functionality and ease, by adding temporality, built-in support for undo-redo, "travel-in-time" and versioning, support for modern data types such as tags and code, inclusion of the schemes and meta data in the DB tables, etc.

The layer is written in PL/SQL, and can be inserted to existing database in one command, without changing anything in the lower layers (the database and the data), or the upper layers (e.g. the applications).

DaTableSQL is the basis of the new DaTableJS Web&Mobile framework, and without it, DaTableJS could not be so easy and powerful.

This project is not usable yet, but for INSTALLATION NOTES, you are welcome to visit [here](https://github.com/marmor/datable.sql/blob/master/INSTALL.md).


text:
---
layout: post
comments: true
category : [Snapshot]
tagline: "16 steps to doing an interview"
tags : [event, first]
image1: snapshot/logo_short.png
image2: snapshot/logo_medium.png
image3: snapshot/logo_long.png
finalimage: snapshot/finalimage.png
---
{% include JB/setup %}

1. Get asked to do an interview.
2. Freak out!
3. Why are they asking me?! Impostor syndrome to the max!
4. Show interest in the invitation, but keep your option of saying 'no' open while asking for more details: what's the expected audience, what sort of things are they going to ask you about?
5. Tell friends and family and watch them get super excited.
6. Freak out!
7. Recognize it's a nice opportunity and, worst that can happen, they won't use your recording/footage. But you still get to keep your experience.
8. Happily accept and settle all details about when and where.
9. Ask for advice: best from someone in a similar situation, or who was in a similar situation before.
10. Pretend you're not freaking out anymore until 1 hour before the interview.
11. Freak out!
12. Babble your way through the interview, hoping they have a damn good editor to make you sound smart.
13. Laugh at their silly mistake asking if you have anything else to add: then babble for double the time about your own research area.
14. Find out how they discovered you / who recommended you, go and thank them!
15. Wait until it airs and hope it's magically sounding smart... and that you're in there as well.
16. Breathe.

Check out [Command Line Heroes](https://www.redhat.com/en/command-line-heroes), where I may or may not be featured in a future episode (I'll share more when I know myself!).

Special thanks to Tommy Thompson for giving great advice (Step 9!) and Katja Hoffman for throwing this opportunity at me (Step 14!). Very greatful to know awesome people. :)


text:
![alt text](https://www.quanta.org/assets/img/q_cms.png)
# Quanta Cms #
An innovative, DB-free Content Management System for web and application development, based on the principles of Quantum physics.

Originally designed by Aldo Tripiciano in 2015, Quanta is now proudly free and open source.

Detailed info is available at the official website: https://www.quanta.org

The Author
----------------------------------
Aldo Tripiciano is a seasoned italian IT Developer, consulting for 15+ years on the major CMS players (Drupal, Wordpress, Joomla, etc.) for global companies and organisations such as the United Nations and the European Commission.
After mastering the top tools in the market, he decided to go one step beyond and build something new, to better fit the new generation of the web.

Quanta's Features
----------------------------------

- Pre-defined installation profiles (including modules, themes and general entities)
- A customizable UI backend ("Shadow"), also used for overlay forms
- Inline editing of content
- A batch tool ("Doctor") for install, update, diagnostic and repair
- User management
- Forms management
- Workflow management (Draft->Published statuses, etc.)
- Multilingualism / Internationalization
- Improved security (delegated on the OS file permissions - completely eliminating SQL injections and other SQL-based attacks)
- Big applications are easy to distribute on multiple machines, Virtualized or Cloud-based.

Quanta's Architecture
----------------------------------
Quanta is completely Object Oriented PHP, escaping the traditional MVC model and design patterns.

* a 100% file-system based architecture structured on  hierarchical system folders 📁 (no DB or SQL involved).
* Internal caching and indexation of directories through an internal vocabulary
* JSON storage of data and metadata
* 100% Object Oriented PHP
* Template engine allowing creation and override individual template for individual or multiple entities
* qTags: special markup allowing creation of tags that are incapsulated into templates, allowing the creation of complex applications with huge reduction of coding times
* CSS Grid approach natively supported by qTags
* Node-level access control (roles, permissions, etc.)
* Views system

Pre-Requisites
----------------------------------
Quanta can only be installed on any UNIX-based OS (Linux, OSx, etc.).

### General Requisites:
__Apache 2.4+__ or __Nginx 1.15+__
__PHP 5.6+__ (7 strongly advised!) including libraries: __GD__, __CURL__
__Composer__

### For Apache users:
The __rewrite__ and __headers__ modules must be enabled.

### For Windows / XAMP users:
As Quanta only runs on UNIX, in order to run Quanta on Windows, you will have to install a VM (VMware, VirtualBox, etc.) with your distribution of choice.

Installation
-----------------
Quick kickstart guide:

1. Clone the latest release of the Quanta repo

2. Create a host pointing to your quanta folder (i.e. myproject.com => /var/www/quanta)

3. Run Doctor:
```bash
./doctor myproject.com
```
and follow the steps until installation is completed.

4. run Composer:
```bash
composer install
```

5. Done! Check your brand new site at http://myproject

and start customizing it.

Detailed information about Quanta's installation process is available on the website: https://www.quanta.org/installation-instructions/

Customization
-----------------
Once you have, you can start:
* structuring your folders structure -> https://www.quanta.org/approaching-quantas-structure-nodes-folders-and-datajson-files/
* playing around with qTags -> https://www.quanta.org/what-is-a-quanta-tag-qtag/
* creating a basic layout -> https://www.quanta.org/the-index-html-file/
* building up great templates -> https://www.quanta.org/the-tpl-html-file/
* creating a custom module -> https://www.quanta.org/creating-a-custom-quanta-module/

... and become a Quanta pro by having a look at:
* the documentation -> https://www.quanta.org/documentation/
* the tutorials  -> https://www.quanta.org/tutorial/

Support
-----------------
Found any issue? Got any idea?
Quanta's contributors and enthusiasts are always happy to help.

* the FAQ -> https://www.quanta.org/faq/
* the Community -> https://www.quanta.org/community/
* the Facebook Group -> https://www.facebook.com/groups/quantacms

If you feel like something needs attention, don't hesitate in opening a new issue in the github repository:
https://github.com/quantacms/quanta

Quanta needs you to make every day new steps to become the best CMS ever created!


text:
# HortaCloud Website

[![DOI](https://zenodo.org/badge/481740552.svg)](https://zenodo.org/badge/latestdoi/481740552)

This is the website for [HortaCloud](https://github.com/JaneliaSciComp/hortacloud), including the user manual and deployment documentation.

It is built using the [Hugo](https://gohugo.io) static site generator, and uses the [Docsy theme](https://docsy.dev).

## Development

First, [install Hugo](https://gohugo.io/getting-started/installing). On Mac, this is just `brew install hugo`.

To compile this site locally, you must fetch submodules recursively.

Clone the repository like this:

    git clone --recurse-submodules --depth 1 git@github.com:JaneliaSciComp/hortacloud-website.git

Or if you already cloned, do this:

    git submodule update --init --recursive

Then install dependencies:

    npm install

Now you can compile the code and run a development server:

    hugo server

## Release

When you push to the main branch, the code will automatically be built and deployed to the production website running at [https://hortacloud.janelia.org/](https://hortacloud.janelia.org).

## Troubleshooting

Try [this fix](https://wowchemy.com/docs/hugo-tutorials/troubleshooting/#error-failed-to-resolve-output-format), if you see this error:

    Error: from config: failed to resolve output format "print" from site config

repository: JaneliaSciComp/hortacloud-website

branch_name: refs/heads/main

repo_name: JaneliaSciComp/hortacloud-website


text:
## gru.iobio

Gru.iobio is the api powering the iobio client apps.

### Local development

- The Dockerfile starts the koa server
- The endpoints are not likely to change, so gru does not use nodemon to hot reload during local development.

__Any changes to the api endpoints require a server restart.__

### Docs

Read the full docs at [https://github.com/iobio/iobio-gru-backend/tree/master/docs](https://github.com/iobio/iobio-gru-backend/tree/master/docs)

repository: nebula-genomics/iobio-services

gha_language: JavaScript

repo_name: nebula-genomics/iobio-services


text:
# Response Types
Responses can be set in two different ways, by default with async/await return statements in which case **Quart** automatically sets `content-type`, `content-length` headers and converts to a UTF8 string or alternatively by writing to the stream directly.

## Supported return types
### String
`Content-Type` header set to `plain/text` and `Content-Length` set to string length.
```javascript
app.handle('/', async () => "Hello World");
```
Or
```javascript
app.handle('/', async (stream) => {
  const { name } = "Hello " + await Users.get(stream.query.id);
  return name;
});
```

----

### JSON
`Content-Type` header set to `application/json`, object stringified and `Content-Length` set to string length.
```javascript
app.handle('/', async () => ({ hello: "World" }));
```

----

### Buffer
`Content-Type` header is set to `application/octet-stream` and `Content-Length` set to Buffer size.
```javascript
app.handle('/', async () => Buffer.from("Hello World"));
```

----

### Stream
`Content-Type` header is set to `application/octet-stream`.
```javascript
const fs = require('fs');

app.handle('/file', async (stream) => {
  return fs.createReadStream('./some/file');
});
```

## Writing to a stream
You can directly write to the SubStream which in turn wraps the HTTP2Stream instance and writes to it using `write` and `end` methods on the stream:

```javascript
app.handle('/', async (stream) => {
  stream.write("Hello");
  stream.write(" ");
  stream.end("World!");
});
```

repository: leofuster/chestnut-cream

repo_name: leofuster/chestnut-cream


text:
# BigScreen-Player Example App
This project contains a lightweight example of the `bigscreen-player` usage and was developed running in a browser and on TV playback capable devices.

It is hosted on [GitHub Pages](https://bbc.github.io/bigscreen-player/), and can be controlled on a browser using TAB and RETURN keys.

The example is setup to perform playback via MSE (*Media Source Extensions*), using the DASH dependency. For more info regarding dependencies and development of the player itself, please see the `bigscreen-player` [README](https://github.com/bbc/bigscreen-player/blob/master/README.md), or the official [GitHub Wiki](https://github.com/bbc/bigscreen-player/wiki/Architecture-Overview).

## Getting Started

### Build
Install any dependencies and run the build.

`npm i && npm run build`

### Run
Serve the application over http.

`npm start`

repository: mikeybyker/bigscreen-player

repo_name: mikeybyker/bigscreen-player


text:
# Pittsburgh Busses

[Try it out!](http://carols10cents.github.io/pghbusses/p1.html)

I was excited to hear that the Port Authority of Allegheny County was doing a beta of a [real-time bus tracking service](http://www.pghcitypaper.com/Blogh/archives/2013/08/21/port-authority-launches-pilot-of-real-time-bus-tracker) but I was disappointed to see how tedious it was to use. This is my attempt at making an interface to help bus riders get the real time information they need faster.

I am not affiliated with PAT nor with the company who is creating the system, Clever Devices. I do not believe I am in violation of the [Terms of use](http://<IP_ADDRESS>/bustime/wireless/html/terms.jsp), neither in the letter of the terms (ex: I am not mirroring any content, simply linking to the real-time pages) nor the spirit of being a good net citizen (ex: I downloaded the information I needed a handful of times, slowly, as to not overwhelm their servers with anything close to a noticeable amount of load).

## How it's made

The following is a stream-of-consciousness of my thoughts, motivations, and processes while creating this prototype.

### Initial impressions

[The City Paper article](http://www.pghcitypaper.com/Blogh/archives/2013/08/21/port-authority-launches-pilot-of-real-time-bus-tracker) explains at the end that to try out the real time service, you can go to the Port Authority's website and click on the "Real time link". When reading the online version, the words "Real time link" are a link directly to the real time service, saving you a click on PAT's website.

Your choices once you're there are presented as:

    * Text-only version (for text-readers and mobile devices)
    * Estimated Arrival Times interface
    * Bus Location Map
    * Plan trip with google maps

I mostly get bus information on my phone, so I haven't even looked at the other options-- I've only tried the text-only version.

Choosing that takes you to [http://<IP_ADDRESS>/bustime/wireless/html/home.jsp
](http://<IP_ADDRESS>/bustime/wireless/html/home.jsp) -- now, I understand this is a beta program, but they really couldn't afford/configure a domain name?? Or ideally, use portauthority.org/whatever??? Ugh, I could write a whole rant on how we should be able to trust information based on the domain name but can't because companies do stuff like this, but another time.

On this page, your choices are presented as:

    * Find by Stop # (how do I know what my stop # is?)
    * Choose your route (only choice: P1, which is in slightly larger text)
    * Sign in to Clever Devices Bus Time (oh geez i don't want another account)
    * Create a Clever Devices Bus Time account (please don't make me have an account)
    * What is Clever Devices Bus Time?
    * Questions or Comments?
    * Use Clever Devices Bus Time in the following languages: English
    * Terms of use

So if I choose the only route in the beta program, the P1, I then have to choose between 'inbound' and 'outbound'. Since the P1 makes a loop in the [downtown free fare zone](http://www.portauthority.org/paac/FaresPasses/Fares/Zones.aspx#FreeZone), I usually end up getting on at a stop that is technically "inbound" that's closer to my office, then staying on while the bus loops around to be "outbound" (but doesn't take a break or anything). Many, many people do this, and I would put money on the majority of bus riders not having a clue where the line between "inbound" and "outbound" is.

This distinction has always bothered me-- it's short for "inbound to downtown" and "outbound from downtown", but busses that don't go downtown at all still have a direction of their route that's called "inbound" and a direction that's called "outbound"!! How is someone brand new to the area supposed to figure this out on their own? This is an internal PAT implementation detail that is leaking out into the riders' world, but isn't actually useful to riders. I'd like to see if we can minimize this.

Anyway, moving on, I pick outbound for now, since I usually take the P1 after work to get to Negley or East Liberty. And I see this:

    Choose your stop (in alphabetical order):

WHYYYYYYYY ALPHABETICAL ORDER I don't know what my stop is called, exactly!! What's the closest stop to where I am? Who knows!! If they were in the order I hit them while riding the bus, I could tell!! This is not useful. It takes me a minute to read each stop in turn, think about where they are, and consider whether it's the stop I want or not. This is compounded by the fact that half the downtown stops are missing from this list because they're "inbound" (see above rant).

So finally I pick Smithfield at 6th and I can get real time bus information. Starting from the City Paper article, that was 5 clicks. Let's see if we can do better.

### Making improvements

Luckily for us, this service provides a [hypermedia API](http://www.hypermediaapi.com/), otherwise known as the predictably-formatted content with links that we just navigated through!!

In the spirit of Lean Startup, I'm going to do the bare minimum amount of work to get to an MVP of my idea to get some feedback. So I don't actually have any code that uses this hypermedia API -- I just used `curl` to fetch what I wanted and I'm caching it on disk in files (not included in this repo so I don't get accused of mirroring content). This is a slightly more programmatic way to get this content but is essentially the same as visiting these sites in my browser and using "File > Save Page As...".

So I started by getting the home page, then I followed the links (manually, yes, I know) to the other pages, much as I did above when describing my thoughts on interacting with the site. You can replicate what I did by running:

    mkdir cache
    curl "http://<IP_ADDRESS>/bustime/wireless/html/home.jsp" -o cache/home.html
    curl "http://<IP_ADDRESS>/bustime/wireless/html/selectdirection.jsp?route=P1" -o cache/p1-select-direction.html
    curl "http://<IP_ADDRESS>/bustime/wireless/html/selectstop.jsp?route=P1&direction=INBOUND" -o cache/p1-inbound-select-stop.html
    curl "http://<IP_ADDRESS>/bustime/wireless/html/selectstop.jsp?route=P1&direction=OUTBOUND" -o cache/p1-outbound-select-stop.html

At this point, the content of the select stop pages contains the URLs of the pages I want to link to, so I don't need to actually fetch the content of those pages.

To fix the ordering issue and try to get rid of the inbound/outbound distinction, I basically copied the links to the stops from the inbound and outbound pages and then consolidated them into one list, ordered starting from Swissvale where the P1 starts and ending with the last stop in the downtown loop.

I decided to add a header for the stops that are on the busway and stops that are downtown to help scanability. I'm not sure if this is useful to most people or not.

For Swissvale and the stops in the downtown loop, there's no sense in asking people to pick inbound or outbound at all since there's only one direction the bus passes that stop. For the stops on the busway where you might want to go in either direction, AFTER choosing the stop you're asked if you want to go towards downtown/away from Swissvale or away from downtown/towards Swissvale.

At that point, we have enough information to be able to link you to the real time information page relevant to you.

So let's say there's a landing page for this real-time info with an easy to remember URL like whereismybus.portauthority.org (kidding, that's a bit long), and that you click on a link to the P1 page from there. For some of the stops, it'll be a total of 2 clicks to get to the real time info, for some it'll be 3, so let's call it 2.5 and we have just halved the number of clicks!

### Next steps

* Handle more bus routes in a useful way
* Use browsers' geolocation feature to suggest stops nearby
* Script the caching and transformation of the data to be able to replicate this process should the URLs or IDs of the pages being linked to change
* Make it prettier and more useful on different device sizes
* When asking which direction you're going if that information is needed, I'd love to have an option to provide more detail because sometimes people might know the middles of the bus route but not the end, so have a third option that says "not sure" or something and that expands the other two options to list the next few stops in each direction, perhaps.
* Or maybe people would rather pick the stop where they're planning to get off? If they know the stops around their destination. Sometimes I get on the bus not knowing exactly where I'm going to get off though, just that the bus takes me in the general direction I'm trying to go. More thought needed.

### Your ideas?

I'd love to hear what you think about this experiment. You can email me at<EMAIL_ADDRESS>or reach me on twitter @carols10cents. If you're comfortable using github, feel free to open issues or send pull requests!

### License

MIT. See LICENSE.


text:
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/xltoy)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/glaucouri/xltoy)
![Travis (.com)](https://img.shields.io/travis/com/glaucouri/xltoy)

## XLtoy:

The ultimate toolkit for Microsoft Excel modelers and model-ops.

#### The name

*XLtoy* it's a word pun that starts from **exel to py** concept, but the *p* seem superfluous here and *xlto(p)y* became
XLtoy, more funny.

### Description

Excel is a good instrument to do analysis activities, model design, reporting and so on, his intuitiveness is the
main reason why it is so diffused all around the world. On the other hand, its great diffusion sees it involved in other
phases of deploy process. Generally, when excel cross the frontier in processes that involve IT departments it does not perform
very well, i mean: change management, error handling, big data, parallel execution, cross platform, deploy on cloud and so on.
Much of this work is entrusted to the IT department, which works to address these shortcomings.

XLtoy framework come to help this side, it can read, parse, diff, validate, manage changes and run out of the box complicated
models written using Microsoft Excel. Not all features are ready up to now, but the development plan is show below.

This tool is useful for users that write, share, maintain and deploy models written in Excel.

- It can:
   - Read data and formulas and store they in standard formats like json or YAML.
   - Parse formulas and identify interdependencies between equations.
   - Many kind of model are well handled by XLtoy like:
       - validation models
       - rule based models
       - financial models
       - forecasting models

In a collaborative environment, for example, a change management tools, can save a lot of time and money.
No less, dev-ops (od mod-ops) than need an instrument to identify uniquely model, data, and changes on each delivery.
Model differ can identify precisely which and where are the differences using syntactic or semantic algorithm.
Topological analisys can help to identify interdependencies between formulas.

### How it works
Analyze an entire workbook, is too difficult, and often useless, this approach force to write unpredictable an inefficient
algorithms and doesn't work because often we are interested only in a subset of an entire workbook. So main idea, is to
identify a subset of areas of interest, defined as *working areas* and focus XLtoy only on these.
Working areas are Named range defined by user,  they follow some pattern and address algotithms. So with minimum changes
to an existent sheet, the parser can handle it and produce useful information.
If you can apply some **simple [rules](https://raw.githubusercontent.com/glaucouri/xltoy/main/rules.md)**
you are ready to go!
All other operations are done *out of the box* using command line in order to promote automations and compatibility with
all platforms.

### Installation
It's strongly suggested to use virtualenv:
```
>pip3 install virtualenv
>python3 -m venv XLtoy_pyenv
>source XLtoy_pyenv/bin/activate
```

```
>pip install xltoy

# Or from source:

>git clone https://github.com/glaucouri/XLtoy.git
>cd XLtoy/
>python setup.py install
```

All features now are accessible via *xltoy* cli command.

```
$ xltoy --help

Usage: xltoy [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  collect
  diff

```
### Documentation

```
$ xltoy collect --help
Usage: xltoy collect [OPTIONS] FILENAME

Options:
  --timeit            Print out how many times it takes for the task
  --yaml              Print out the yaml hierarchical view
  --json              Print out the json hierarchical view
  --gml_graph PATH    save to a file the topology of models in gml format
  --data              Collect only data, it will ignore formulas
  -v, --verbose       verbose output (repeat for increased verbosity)
  --add_fingerprint   Enable fingerprint metadata informations, under section
                      xltoy

  --parsed            Parse formulas and use this version instead of excel
                      syntax

  --tag TEXT          Add a tag attribute to fingerprint eg: --tag v1.0
  --description TEXT  Add a description attribute to fingerprint eg:
                      --description model 2020Q1

  --help              Show this message and exit.

$ xltoy diff  --help
Usage: xltoy diff [OPTIONS] FILENAME1 FILENAME2

Options:
  --timeit         Print out how many times it takes for the task
  --data           Collect only data, it will ignore formulas
  --relative       Areas are handled as relative, each starts from row1,col1
  -v, --verbose    verbose output (repeat for increased verbosity)
  --nofingerprint  Ignore fingerprint metadata, under section xltoy
  --parsed         Parse formulas and use this version instead of excel syntax
  --json           Print out in json format instead of default YAML
  --help           Show this message and exit.

```
Follow tutorials to a deep dive into all features
* [working rules](https://raw.githubusercontent.com/glaucouri/xltoy/main/rules.md)  How to manage working areas and how works the parser
* [Tutorial1](https://raw.githubusercontent.com/glaucouri/xltoy/main/tutorial.md) How to manage values
* [Tutorial2](https://raw.githubusercontent.com/glaucouri/xltoy/main/tutorial2.md) How to manage models and formulas

#### Framework descriptions

The XLtoy Framework is composed of many subpackages, all of them are reachable via cli sub command.

* **xltoy.collector** : It read an excel workbook and extract all needed information, following rules described here.
This means equations, named or anonymous exogenous data and parameters.
Result can be represented as hierarchical yaml or json. This functionality solve problem related
to *change management*, *versioning*, *model governance* and *diff* operation.

* **xltoy.parser** : It can parse all collected equation in order to understand for each all the dependencies,
and transliterate each in a readable and working python code.
All relations between formulas are stored in a dependency graph in a key:value structure
using the mnemonic name for each equation. This data structure allow us to do a topological analysis of entire
system of equations

## Time line
The framework will be finished in some steps, i want to share the release plane because
with the release of first version i will need feedback, use cases and tester.

#### Version 0.1: first working version:
* it define [working rules](https://raw.githubusercontent.com/glaucouri/xltoy/main/rules.md)
* fully testes with py3.6 to py3.8
* collector can read data,formulas and can show an entire workbook as yaml or json.
* **diff** works with data and formulas too, it can compare 2 workbook or a representation of it yaml
or json.
* with fingerprint option model can be marked (like a md5 for a file)

#### Version 0.2: parser feature:
* parser can understand excel formula (probably not all syntax)
* in memory graph representation with all relation between equations.
* can find all predecessors and successors of a given equation.
* models can be exported as graph or python code.
* execution of python version can be done in a notebook or a stand alone env.

#### Version 0.3: executor feature:
* data can be stored as pandas DataFrame
* models can be binded to external data. Binding feature. and can be run on huge data set.

#### Version 0.4: big data feature:
* model can be distributed on a spark cluster and executed in order to work on big data

repository: glaucouri/XLtoy

repo_name: glaucouri/XLtoy


text:
# Usage >> Subscriptions >> apollo-subscription Element || 20

Use the `<apollo-subscription>` element from `@apollo-elements/components` to write declarative subscription elements in HTML. You can mix-and-match these elements in your app, e.g. writing some subscription components using JavaScript and various web components libraries, and other components using `<apollo-subscription>` and HTML templates.

<inline-notification type="tip">

This page is a HOW-TO guide. For detailed docs on the `<apollo-subscription>` element's API, see the [API docs](/api/components/apollo-subscription/)

</inline-notification>

Templates use [stampino](https://npm.im/stampino) and [jexpr](https://npm.im/jexpr) for efficiently updating data expressions. See their respective READMEs for more information.

<inline-notification type="tip">

`jexpr` expressions are like handlebars, nunjucks, polymer, etc. expressions. You can do most things you can do in JavaScript using `jexpr`. Try it out for yourself on the [Stampino REPL](https://github.com/justinfagnani/stampino/issues/14)

</inline-notification>

What that means is you can define the element's dynamic template using good-old HTML:

```html copy
<apollo-subscription>
  <script type="application/json">
    subscription Notifications {
      newNotifications { href title }
    }
  </script>

  <template>
    <style>
      :host([loading]) {
        opacity: 0;
      }
    </style>

    <link🤡 rel="stylesheet" href="/components/notifications.css">

    <ol class="notifications-list">
      <template type="repeat" repeat="{%raw%}{{ data.notifications }}{%endraw%}">
        <li>
          <a href="{%raw%}{{ item.href }}{%endraw%}">{%raw%}{{ item.title }}{%endraw%}</a>
        </li>
      </template>
    <ol>
  </template>
</apollo-subscription>
```

## Data Templates

Learn more about template expressions and bindings in the [`<apollo-query>` HTML element guide](/guides/usage/queries/html/#template-expressions)

## Next Steps
- Learn how to [manage client-side state using Apollo Elements](/guides/usage/local-state/)

license: ISC

repository: apollo-elements/apollo-elements

gha_language: TypeScript

gha_license_id: ISC

repo_name: apollo-elements/apollo-elements


text:
[core](../../index.md) / [com.agoda.ninjato.extensions](../index.md) / [Wrapper](index.md) / [<init>](./-init-.md)

# <init>

`Wrapper(api: `[`Api`](../../com.agoda.ninjato/-api/index.md)`)`

This class allows contributors to write wrapper-like extension functions.

In current release of Kotlin, the compiler cannot auto-cast the inferred type inside inlined lambdas.

It means that you still have to manually specify the reified type if you're calling such a function inside
a lambda that is being passed to another reified inline function and their types are the same.

Here's the example of usage:

```
inline fun Api.observable(crossinline receiver: Wrapper<T>.() -> T): Observable<T> = Observable.fromCallable {
    receiver(object : Wrapper<T>(this) {})
}

class YourApi : Api {
    fun search(query: String): Observable<SearchResult> = observable {
        get {
            ...
        }
    }
}
```

Without such a wrapper class, you would have to manually specify your type that actually can be inferred:

```
class YourApi : Api {
    fun search(query: String): Observable<SearchResult> = observable {
        get<SearchResult> {
            ...
        }
    }
}
```

### Parameters

`api` - instance of the [Api](../../com.agoda.ninjato/-api/index.md) to wrap around.

repository: HeyAlex/ninjato

repo_name: HeyAlex/ninjato


text:
# Sinatra Footnotes

Every page has footnotes that give information about your application. Based on Rails Footnotes by José Valim (https://github.com/josevalim/rails-footnotes)

## Installation

Add this line to your application's Gemfile:

    gem 'sinatra-footnotes'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install sinatra-footnotes

## Usage

Add this line to your Sinatra application file:

    require 'sinatra-footnotes'

repository: danstutzman/sinatra-footnotes

repo_name: danstutzman/sinatra-footnotes


text:
# Fitness Tracker

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Description

This is a fitness-tracking application for users to enter their daily work outs and see their weekly progress. Users can update current work outs and add new exercises, with a snapshot of the most recent work out showing on the landing page.

## Table of Contents

* [Installation](#installation)
* [Usage](#usage)
* [Screenshot](#screenshot)
* [Contributing](#contributing)
* [Questions](#questions)

## Installation

Please follow the following live site link to access the application: https://vast-tundra-76153.herokuapp.com/

## Usage

As a User, I can navigate to the landing page to see a snapshot of the most recent exercise I entered. From here, I can either update the existing work out, or start a new one. As a User, I can navigate to the dashboard page to check my daily work out stats and progress.

## Screenshot

![Fitness-Tracker-Home](https://user-images.githubusercontent.com/70773240/107102078-90817e80-67d6-11eb-91c1-6e48ea354724.png)

![Fitness-Tracker-Stats](https://user-images.githubusercontent.com/70773240/107102095-a131f480-67d6-11eb-870e-6c50afc50b1c.png)

## Contributing

Please send any contributing ideas to Robby Ray (contact information below)

## Questions

For more information about this application, or if you have any additional questions, do not hesitate to reach out to me via GitHub or E-mail.

- [Github](https://www.github.com/rgr5035)
-<EMAIL_ADDRESS>


text:
---
title: md5
description: hashes the given input and returns its MD5 checksum.
categories: [functions]
menu:
  docs:
    parent: functions
keywords: []
signature: ["md5 INPUT"]
relatedfuncs: [sha]
---

```go-html-template
{{ md5 "Hello world, gophers!" }}
<!-- returns the string "b3029f756f98f79e7f1b7f1d1f0dd53b" -->
```

This can be useful if you want to use [Gravatar](https://en.gravatar.com/) for generating a unique avatar:

```html
<img src="https://www.gravatar.com/avatar/{{ md5<EMAIL_ADDRESS>}}?s=100&d=identicon">
```

repository: bep/hugo

gha_language: Go

repo_name: bep/hugo


text:
---
templateKey: blog-post
title: Quick Progress Bars in python using TQDM
date: 2019-09-18T05:00:00.000+00:00
status: published
description: Quick Progress Bars in python using TQDM
cover: "/static/photo-1448387473223-5c37445527e7.jpg"
related_post:
# - src/pages/blog/autoreload_ipython.md
tags:
- python
related_post_label: ''

---
tqdm is one of my favorite general purpose utility libraries in python.  It allows me to see progress of multipart processes as they happen.  I really like this for when I am developing something that takes some amount of time and I am unsure of performance.  It allows me to be patient when the process is going well and will finish in sufficient time, and allows me to 💥 kill it and find a way to make it perform better if it will not finish in sufficient time.

![](/tqdm2.gif)

> for more gifs like these follow me on twitter
[@waylonwalker](https://twitter.com/_WaylonWalker)

**Add a simple Progress bar!**
```python
from tqdm import tqdm
from time import sleep

for i in tqdm(range(10)):
	sleep(1)
```

**convenience**

TQDM also has a convenience function called trange that wraps the range function with a tqdm progress bar automatically.

```python
from tqdm import trange
from time import sleep

for i in trange(range(10)):
	sleep(1)
```

**notebook support**

There is also notebook support.  If you are bouncing between ipython and jupyter I recomend importing from the auto module.

```python
from tqdm.auto import tqdm
from time import sleep

for i in tqdm(range(10)):
	sleep(1)
```

https://waylonwalker.com/autoreload-ipython

> If you are using notebooks you should enable ipython autoreload 👆


text:
# MakeUpperCase
[*View on Codewars*](https://www.codewars.com/kata/makeuppercase)

Write function makeUpperCase.

~~~if:bf
For BF all inputs end with \0, all inputs are lowercases and there is no space between.
~~~

## Timeline
- Created: 2016-08-02
- Published: 2016-08-02
- Approved: 2016-09-30
- Completed: 2019-01-27

repository: prayatma/codewars

gha_license_id: NOASSERTION

repo_name: prayatma/codewars


text:
# EventEngine

A simple framework to count events in an app. An event is a named counter. Events can be saved by an event engine which manages different events. These events can for instance be used to make score based decisions like showing a rating dialog when a certain score has been reached. The event engine also persists the events.

## Table of Contents

- [Installation](#installation)
  - [Swift Package](#swiftpackage)
- [Usage](#usage)
- [Architecture](#architecture)
- [License](#license)

## Installation

### [Swift Package](https://github.com/apple/swift-package-manager/blob/master/Documentation/PackageDescription.md#supportedplatform)

Just integrate the EventEngine via Xcode 11 - that's it!

## Usage

Here a small and simple example how this package can be used to track the number of App starts:

```
import EventEngine

func applicationDidFinishLaunching() {

    let eventEngine = EventEngineFactory.userDefaultPersistingEventEngine

    eventEngine.fire(event: "AppStart", incrementBy: 1)

    // Persist the current state of the modified event in user defaults
    eventEngine.synchronize()
}
```

To ask for the current event state of an event an event engine musst be used:

```
let eventEngine = EventEngineFactory.userDefaultPersistingEventEngine

let appStartEventState = eventEngine.state(ofEvent: "AppStart")
let appStartCount = appStartEventState.count
```

### Event states

Event states have multiple functionalities. They store:

- the counter of an event.
- its first occurrence and its last occurrence as a timer interval.
- if the event is disabled or enabled (a disabled event returns the count of 0).
- if the event occurred in the last 24 hours.

## Interface

<img src="/Resources/EventEngineUML.png">

## License

**EventEngine** is available under the MIT license. See the [LICENSE](https://github.com/apploft/EventEngine/blob/master/LICENSE) file for more info.

repository: apploft/EventEngine

gha_language: Swift

repo_name: apploft/EventEngine


text:
# CompactJson
Fast lightweight JSON serializer for .NET. Distributed as .NET library and C# source code.

## Why another JSON serializer?
This serializer is primarily designed to be embedded into other .NET libraries written in C#. This reduces dependencies to other wide-spread JSON parsing libraries.

## Features & Performance
The supported set of features has been reduced to the very basics by design. For example, you cannot control the order of class members during serialization. Also, CompactJson does not ship converters for `HashSet<T>` or `LinkedList<T>` (you may write your own Converter, of course). The intention is to keep it small and simple.

Performance has been compared to `Newtonsoft.Json` by a very small and simple benchmark, which is part of the source code repository. Execution on an i5-3550 showed the following results:

|               | Newtonsoft.Json (12.0.2) | CompactJson |
| ------------- | ------------- | ---------- |
| Warm-up  | 209ms  | 61ms |
| Serialization (small object graphs, total 406MB)  | 8.5s | 6.1s |
| Serialization (large object graphs, total 445MB)  | 9.1s | 6.8s |
| Deserialization (small object graphs, total 406MB)  | 12.1s | 7.7s |
| Deserialization (large object graphs, total 445MB)  | 14.7s | 11.2s |

As usual: performance measurements have to be interpreted carefully. For details about test execution, have a look at the code.

## Installation
Add either the `CompactJson` or the `CompactJson.Sources` Nuget package to your project. See the [packages on Nuget](https://www.nuget.org/profiles/pupsette).

## Usage
For simple conversions from a JSON string to a .NET object:
```csharp
int[] model = (int[])Serializer.Parse("[1,2,3]", typeof(int[]));
```
or the generic version:
```csharp
int[] model = Serializer.Parse<int[]>("[1,2,3]");
```
and vice-versa:
```csharp
string json = Serializer.ToString(new int[] {1,2,3}, false);
```
where the boolean parameter decides whether to indent (pretty-print) the JSON or not.

There are also overloads for streaming to a `TextWriter` or parsing from a `TextReader`.

When serializing classes and structs the public properties (with public getter *and* setter) and fields will be serialized and deserialized by default. For example:
```csharp
enum JobState
{
    Running,
    Completed,
    Aborted
}

class Job
{
    public DateTime Start { get; set; }
    public DateTime? End { get; set; }
    public string Description { get; set; }
    public State State { get; set; }
}
```
For more details and options regarding serialization of classes and struct, see the corresponding section below.

## Converters

Converters are responsible for 'converting' between JSON-like data and .NET objects. You may customize the serialization and deserialization by implementing your own converters. The interface that you need to implement is *IConverter*. It has methods for all the possible JSON input tokens (like *string*, *number*, *array*). In general, custom converters are very specific and so we recommend deriving from *ConverterBase* which refuses all input tokens by default and you have to override the accepted ones.

Here's an example of a converter implementation for the .NET GUID class.
```csharp
class GuidConverter : ConverterBase
{
    public GuidConverter() : base(typeof(Guid))
    {
    }

    public override void Write(object value, IJsonConsumer writer)
    {
        writer.String(((Guid)value).ToString());
    }

    public override object FromString(string value)
    {
        return Guid.Parse(value);
    }
}
```
Note, that this implementation does not accept a JSON *null* value! If you want to allow *null* values, you should use the *NullableConverterBase* instead of *ConverterBase* in order to control the behavior with a constructor parameter.

Once implemented, you may choose to register it globally at the static *ConverterRegistry* or to use it for individual properties by adding the *CustomConverter* attribute.

### Global Converter Registration

The converter may then added to the *ConverterRegistry* like this:
```csharp
ConverterRegistry.AddConverter(new GuidConverter());
```

For more advanced converters, you may want to register a custom implementation of *IConverterFactory*. This basically allows you to write converters for a range of types. For example, this is useful if the type you want to convert is a generic type.

### Property-specific Converter

The converter may be also be defined for a specific property like this:

```csharp
class MyClass
{
    [CustomConverter(typeof(GuidConverter))]
    public Guid ID { get; set; }
}
```

## Supported Types

There are converters already registered for the following types:
* `string`
* `int` / `uint`
* `long` / `ulong`
* `float` ("NaN", "Infinity" and "-Infinity" are encoded as strings)
* `double` ("NaN", "Infinity" and "-Infinity" are encoded as strings)
* `char`
* `bool`
* `DateTime` (see DateTime Formatting below)
* `Guid`
* `byte[]` (base64 encoded)
* `JsonValue` / `JsonObject` / `JsonArray` / `JsonNumber` / `JsonBoolean` / `JsonString` (see 'JSON Object Model' below.
* `List<T>` / `IList<T>`
* `T[]`
* `Dictionary<string, T>` / `IDictionary<string, T>` (maps to a JSON object, where the dictionary keys are JSON properties)
* `Enum` (enumeration values are encoded as string)
* `Nullable<T>` (e.g. if there is a converter for `int`, `int?` will also be supported.)

## Classes and Structs

### Properties and Fields
For converting from JSON to custom .NET classes and back there are a few rules, that are applied to the fields and properties of the custom class. The following members will be included during serialization/deserialization:
1. All public fields
2. All public properties (with getter and setter, getter must be public)
3. Properties and fields with the `[JsonProperty]` attribute

The property or field name is kept as-is. If you want to use a different name when converting to JSON, you have to assign it using the `[JsonProperty("myCustomName")]` attribute.

:heavy_exclamation_mark: Trying to parse into a `readonly` field will throw an exception during deserialization. Also parsing into a property without setter will fail.

Properties and fields may also be excluded from serialization/deserialization by using the `[JsonIgnoreMember]` or `[IgnoreDataMember]` attribute.

Example:
```csharp
class User
{
    [JsonIgnoreMember]
    public Guid InternalId { get; set; }

    [JsonProperty("UserName")]
    public string Name { get; set; }

    public string EMail { get; set; }

    [JsonProperty]
    private string Account;
}
```

### Null and Default Values

During serialization, null values will not be emitted, by default. Default values other than `null` will be emitted (e.g. 0 for an int). If you want to serialize a property or field in any case, you need to add the `[JsonEmitNullValue]` attribute to it. If you don't want to serialize the default value of a property or field, you need to add the `[JsonSuppressDefaultValue]` attribute.

For example, consider the following class:
```csharp
class User
{
    public string Name { get; set; }
    public string EMail { get; set; }
    public string Phone { get; set; }
	public int Age { get; set; }
}
```
If this one gets default-constructed and serialized
```csharp
string json = Serializer.ToString(new User());
```
the resulting JSON will look like this:
```
{"Age":0}
```

Adding the `[JsonEmitNullValue]` and `[JsonSuppressDefaultValue]` attributes changes the behavior.
```csharp
class User
{
    [JsonEmitNullValue]
    public string Name { get; set; }
    public string EMail { get; set; }
    public string Phone { get; set; }
	[JsonSuppressDefaultValue]
	public int Age { get; set; }
}
```
now, serialization yields:
```
{"Name":null}
```

:heavy_exclamation_mark: Note, that _default_ values are the language defined default values, which can be obtained by the `default` keyword in C#. Property and field initialization (e.g. from your constructor) does not define the _default_ value. Also the `[System.ComponentModel.DefaultValue]` attribute is not considered, currently.

### Including Type Information

Often, when deserializing JSON you may want to map JSON objects to .NET classes according to type information in your JSON. Consider the following example:
The JSON probably looks like this:
```json
[
  {
    "Type": "Service",
    "Name": "proxy endpoint config",
    "ServiceName": "Proxy",
    "Endpoint": "http://localhost:9111/proxy"
  },
  {
    "Type": "Log",
    "Name": "proxy log config",
    "LogFolder": "./logs"
  }
]
```

JSON objects don't carry type information, unless it has been added explicitly. In this example we want the deserializer to choose the .NET class according to the `Type` property. In order to do so, we must add attributes for assigning the type names as well as using the `TypedConverterFactory`. Like this:

```csharp
[JsonTypeName(typeof(ServiceConfiguration), "Service")]
[JsonTypeName(typeof(LogConfiguration), "Log")]
[JsonCustomConverter(typeof(TypedConverterFactory), "Type")]
class ConfigurationBase
{
    public string Name { get; set; }
}
class ServiceConfiguration : ConfigurationBase
{
    public string ServiceName { get; set; }
    public string Endpoint { get; set; }
}
class LogConfiguration : ConfigurationBase
{
    public string LogFolder { get; set; }
}
```

All the attributes are added to the base type, which is the one that has to be used when deserializing. In our example:
```csharp
List<ConfigurationBase> configs = Serializer.Parse<List<ConfigurationBase>>(json);
```
Of course, serialization works the same way:
```
string json = Serializer.ToString(configs);
```

The name of the JSON property, which is used to encode the type name can be chosen as a parameter of the `TypedConverterFactory` in the `[JsonCustomConverterAttribute]`. Note, that this property must always appear as first property in the JSON object. Also, the classes themselves should not have a property with the same name.

This example excludes the base type from serialization, because we did not assign a type name. Also there is no reflection involved, trying to determine all sub classes! Only the type name assignments at your base class makes the type visible to the serializer.

If your application determines supported types at run-time you can create a custom converter factory, which creates a `TypedConverter` by passing your own implementation of `ITypeNameResolver`.

One of the `[JsonTypeName]` attributes may set the name parameter to `null` (e.g. `[JsonTypeName(typeof(LogConfiguration), null)]`). This type is then deserialized in case the type property is missing. Also when serializing this type, the type property will not be emitted.

## DateTime Formatting

.NET `DateTime` values will be encoded as JSON string. The serialized DateTime string is ISO 8601 conformant, however
it does not convert all possible ISO 8601 representations to a DateTime object.

Allowed formats (examples):
* 2010-08-22T09:15:00
* 2010-08-22T09:15:00.910
* 2010-08-22T09:15:00Z
* 2010-08-22T09:15:00.910Z
* 2010-08-22T09:15:00+01:30
* 2010-08-22T09:15:00-03:00
* 2010-08-22T09:15:00.911+01:30
* 2010-08-22T09:15:00.911-03:00

When serializing, the milliseconds part will be omitted, if this part is 000. Also the 'Z' indicator will only be appended, if the DateTime object has the DateTimeKind.Utc. The UTC offset (+/-) will only be appended, if the DateTime object has the DateTimeKind.Local. If the DateTime object has DateTimeKind.Unspecified, there will be no suffix appended.

When deserializing, one of the above formats is expected, otherwise an exception is thrown. The resulting DateTime object will have the DateTimeKind set according to the encountered suffix. Keep in mind, that serializer and deserializer might have different UTC offsets. In this case, you cannot expect the deserialization and subsequent serialization to reproduce the input string.

If you want to apply your own custom converter for `DateTime` objects globally, overwrite the registered converter simply by adding it to the static `ConverterRegistry` (make sure, the `Type` property of your converter implementation returns `typeof(DateTime)`). Keep in mind, that the nullable variant `DateTime?` has a dedicated converter!

## JSON Object Model

If you don't want to convert to a specific custom .NET class during deserialization, you can do so by using the classes derived from `JsonValue`. You may also represent a part of a custom .NET class as generic JSON data by adding `JsonValue` or any derived class as property or field to your custom class. For example:
```csharp
class OperationParameter
{
    public string ParameterName { get; set; }
    public JsonValue ParameterValue { get; set; }
}
```

This allows you to inspect the contents of the `ParameterValue` at a later stage after deserialization. Another use-case is to simply pass JSON data from one component to another without actually interpreting it.

Using a more specific sub class of `JsonValue` is understood as a constraint during deserialization. For example using `JsonObject` as type for the `ParameterValue` property will make the serializer throw an exception, if anything but `null` or `{ [...] }` is encountered during deserialization.

repository: pupsette/CompactJson

gha_language: C#

repo_name: pupsette/CompactJson