Live Instructor Led Online Training Developer Tools courses is delivered using an interactive remote desktop! .
During the course each participant will be able to perform Developer Tools exercises on their remote desktop provided by Qwikcourse.
Select among the courses listed in the category that really interests you.
If you are interested in learning the course under this category, click the "Book" button and purchase the course. Select your preferred schedule at least 5 days ahead. You will receive an email confirmation and we will communicate with trainer of your selected course.
A tool for scalable peer-to-peer video streaming using WebTorrent.
By using the collective power of WebTorrent, video streams get progressively stronger as more peers contribute to a torrent. With torrents, it is also possible for users to access previous parts of a stream unlike traditional WebRTC video streaming.
This is the plug-and-play middleware that receives the torrent link from the broadcasting client and sets up the proper Socket.io connections for the viewing clients.
This is the client component that records video from a device's camera, saving it to generated torrent files, and sending those torrents' magnet link out to the viewing clients.
This is the client which views what the Broadcaster is recording. It receives a torrent magnet link and renders the video from that torrent to an injected video tag using WebTorrent.
Tunny is a Golang library for spawning and managing a goroutine pool, allowing you to limit work coming from any number of goroutines with a synchronous API. A fixed goroutine pool is helpful when you have work coming from an arbitrary number of asynchronous sources, but a limited capacity for parallel processing. For example, when processing jobs from HTTP requests that are CPU heavy you can create a pool with a size that matches your CPU count.
pex is a library for generating .pex (Python EXecutable) files which are executable Python environments in the spirit of virtualenvs
. pex is an expansion upon the ideas outlined in PEP 441
and makes the deployment of Python applications as simple as cp
. pex files may even include multiple platform-specific Python distributions, meaning that a single pex file can be portable across Linux and OS X. pex files can be built using the pex
tool. Build systems such as Pants
, Buck
, and {py}gradle
also support building .pex files directly. Still unsure about what pex does or how it works? Watch this quick lightning talk: WTF is PEX?
. pex is licensed under the Apache2 license.
Targets.vim is a Vim plugin that adds various [text objects][textobjects] to give you more targets to [operate][operator] on. It expands on the idea of simple commands like di' (delete inside the single quotes around the cursor) to give you more opportunities to craft powerful commands that can be correctly.
Vagga is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. Note version 0.2 changed format of vagga.yaml
see Release Notes
and Upgrading for more info. Major Features Are:
Vagrant-LXC
and Docker More deep feature description in docs
Pomerium is an identity-aware proxy that enables secure access to internal applications. Pomerium provides a standardized interface to add access control to applications regardless of whether the application itself has authorization or authentication baked-in. Pomerium gateways both internal and external requests, and can be used in situations where you'd typically reach for a VPN.
BinderHub allows you to BUILD
and REGISTER
a Docker image from a Git repository, then CONNECT
with JupyterHub, allowing you to create a public IP address that allows users to interact with the code and environment within a live JupyterHub instance. You can select a specific branch name, commit, or tag to serve. BinderHub ties together: a scalable system for authenticating users and spawning single user Jupyter Notebook servers, and a Docker image using a Git repository hosted online. BinderHub is built with Python, kubernetes, tornado, npm, webpack, and sphinx.
What is CML? Continuous Machine Learning (CML) is an open-source library for implementing continuous integration & delivery (CI/CD) in machine learning projects. Use it to automate parts of your development workflow, including model training and evaluation, comparing ML experiments across your project history, and monitoring changing datasets. automatically train and evaluate models, then generates a visual report with results and metrics. Above, an example report for a We built CML with these principles in mind: science.** Use GitLab or GitHub to manage ML experiments, track who trained ML models or modified data and when. Codify data and models with plots in each Git Pull Request. Rigorous engineering practices help your team make informed, data-driven decisions. GitLab and your favorite cloud services: AWS, Azure, GCP. No databases, services or complex setup needed. _ Need help? Just want to chat about continuous integration for ML?
Modd is a developer tool that triggers commands and manages daemons in response to filesystem changes. If you use modd, you should also look at Devd integrates with modd, allowing you to trigger in-browser livereload with modd. The repo contains a set of example modd.conf files that you can look at for a quick idea of what modd can do: Example | Description
Captum is a model interpretability and understanding library for PyTorch. Captum means comprehension in latin and contains general purpose implementations of integrated gradients, saliency maps, smoothgrad, vargrad and others for PyTorch models. It has quick integration for models built with domain-specific libraries such as torchvision, torchtext, and others. Captum is currently in beta and under active development!
With the increase in model complexity and the resulting lack of transparency, model interpretability methods have become increasingly important. Model understanding is both an active area of research as well as an area of focus for practical applications across industries using machine learning. Captum provides state-of-the-art algorithms, including Integrated Gradients, to provide researchers and developers with an easy way to understand which features are contributing to a models output. For model developers, Captum can be used to improve and troubleshoot models by facilitating the identification of different features that contribute to a models output in order to design better models and troubleshoot unexpected model outputs. Captum helps ML researchers more easily implement interpretability algorithms that can interact with PyTorch models. Captum also allows researchers to quickly benchmark their work against other existing algorithms available in the library.
The primary audiences for Captum are model developers who are looking to improve their models and understand which features are important and interpretability researchers focused on identifying algorithms that can better interpret many types of models. Captum can also be used by application engineers who are using trained models in production. Captum provides easier troubleshooting through improved model interpretability, and the potential for delivering better explanations to end users on why theyre seeing a specific piece of content, such as a movie recommendation.
Pop Shell is a keyboard-driven layer for GNOME Shell which allows for quick and sensible navigation and management of windows. The core feature of Pop Shell is the addition of advanced tiling window management a feature that has been highly-sought within our community. For many ourselves included i3wm has become the leading competitor to the GNOME desktop. Tiling window management in GNOME is virtually nonexistent, which makes the desktop awkward to interact with when your needs exceed that of two windows at a given time. Luckily, GNOME Shell is an extensible desktop with the foundations that make it possible to implement a tiling window manager on top of the desktop. Therefore, we see an opportunity here to advance the usability of the GNOME desktop to better accomodate the needs of our community with Pop Shell. Advanced tiling window management is a must for the desktop, so we've merged i3-like tiling window management with the GNOME desktop for the best of both worlds.
A proposal for integration of the tiling window management features from Pop Shell into GNOME is currently under development. It will be created as a GitLab issue on GNOME Shell for future discussion, once we have invested our time into producing a functioning prototype, and learned what does and does not work in practice. Ideally, the features explored in Pop Shell will be available for any environment using Mutter far extending the half-monitor tiling capability currently present. By starting out as a shell extension, anyone using GNOME Shell can install this onto their system, without having to install a Pop-specific fork of GNOME on their system.
So, why is this a problem for us, and why do so many of our users switch to i3wm?
GNOME currently only supports half-tiling, which tiles one window to one side of the screen, and another window to the other side of the screen. If you have more than two windows, it is expected to place them on separate workspaces, monitors, or to alternate between windows with Alt
+ Tab
. This tends to work fine if you only have a small handful of applications. If you need more than two windows at a time on a display, your only option is to manually drag windows into position, and resize them to fit alongside each other a very time-consuming process that could easily be automated and streamlined.
Suppose you are a lucky or perhaps unlucky owner of an ultra-wide display. A maximized window will have much of its preferences and controls dispersed across the far left and far right corners. The application may place a panel with buttons on the far left, while other buttons get shifted to either the distant center, or far right. Half-tiling in this scenario means that each window will be as large as an entire 2560x1440 or 4K display. In either scenario, at such extreme sizes, the mouse becomes completely useless and applications become unbearable to use in practice.
As you struggle with fighting the window manager, it quickly becomes clear that any attempt to manage windows in a traditional stacking manner where you need to manually move windows into place, and then manually resize them is futile. Humans are nowhere near as precise or as quick as algorithms at aligning windows alongside at each other on a display.
The GNOME desktop comes with many useful desktop integration features, which are lost when switching to an i3wm session. Although possible to connect various GNOME session services to an i3wm session, much of the GNOME desktop experience is still lost in the process. The application overview, the GNOME panel, and GNOME extensions. Even worse, many users are completely unfamiliar with tiling window managers, and may never feel comfortable switching "cold turkey" to one. By offering tiling window management as feature which can be opted into, we can empower the user to ease into gaining greater control over their desktop, so that the idea of tiling window management suddenly becomes accessible. There are additionally those who do want the traditional stacking window management experience, but they also want to be able to opt into advanced tiling window management, too. So it should be possible to opt into tiling window management as necessary. Other operating systems have successfully combined tiling window management features with the traditional stacking window management experience, and we feel that we can do this with GNOME as well..
Janet is a functional and imperative programming language and bytecode interpreter. It is a lisp-like language, but lists are replaced by other data structures (arrays, tables (hash table), struct (immutable hash table), tuples). The language also supports bridging to native code written in C, meta-programming with macros, and bytecode assembly. There is a repl for trying out the language, as well as the ability to run script files. This client program is separate from the core runtime, so Janet can be embedded into other programs.
Minica is a simple CA intended for use in situations where the CA operator also operates each host where a certificate will be used. It automatically generates both a key and a certificate when asked to produce a certificate. It does not offer OCSP or CRL services. Minica is appropriate, for instance, for generating certificates for RPC systems or microservices. On first run, minica will generate a keypair and a root certificate in the current directory, and will reuse that same keypair and root certificate unless they are deleted.
On each run, minica will generate a new keypair and sign an end-entity (leaf) certificate for that keypair. The certificate will contain a list of DNS names and/or IP addresses from the command line flags. The key and certificate are placed in a new directory whose name is chosen as the first domain name from the certificate, or the first IP address if no domain names are present. It will not overwrite existing keys or certificates. The certificate will have a validity of 2 years and 30 days.
IceCream is a little library for sweet and creamy debugging.
Do you ever use print() or log() to debug your code? Of course you do. IceCream, or ic for short, makes print debugging a little sweeter. IceCream is well tested, permissively licensed, and supports Python 2, Python 3, PyPy2, and PyPy3.
Have you ever printed variables or expressions to debug your program? If you've ever typed something like print(foo('123')) or the more thorough print("foo('123')", foo('123')) then ic() is here to help. With arguments, ic() inspects itself and prints both its own arguments and the values of those arguments. from icecream import ic def foo(i): return i + 333 ic(foo(123)) Prints ic| foo(123): 456 Similarly, d = {'key': {1: 'one'}} ic(d['key'][1]) class klass(): attr = 'yep' ic(klass.attr) Prints ic| d['key'][1]: 'one' ic| klass.attr: 'yep' Just give ic() a variable or expression and you're done. Easy.
Have you ever used print() to determine which parts of your program are executed, and in which order they're executed? For example, if you've ever added print statements to debug code like def foo(): print(0) first() if expression: print(1) second() else: print(2) third() then ic() helps here, too. Without arguments, ic() inspects itself and prints the calling filename, line number, and parent function. from icecream import ic def foo(): ic() first()
if expression: ic() second() else: ic() third()
Prints ic| example.py:4 in foo() ic| example.py:11 in foo() Just call ic() and you're done. Simple.
ic() returns its argument(s), so ic() can easily be inserted into pre-existing code.
a = 6 def half(i): return i / 2 b = half(ic(a)) ic| a: 6 ic(b) ic| b: 3
ic.format(*args) is like ic() but the output is returned as a string instead of written to stderr. from icecream import ic s = 'sup' out = ic.format(s) print(out) ic| s: 'sup' Additionally, ic()'s output can be entirely disabled, and later re-enabled, with ic.disable() and ic.enable() respectively. from icecream import ic ic(1) ic.disable() ic(2) ic.enable() ic(3) Prints ic| 1: 1 ic| 3: 3 ic() continues to return its arguments when disabled, of course; no existing
TaskbarX gives you control over the position of your taskbar icons. TaskbarX will give you an original Windows dock like feel. The icons will move to the center or user given position when an icon gets added or removed from the taskbar. You will be given the option to choose between a variety of different animations and change their speeds. The animations can be disabled if you don't like animations and want them to move in an instant. The center position can also be changed to bring your icons more to the left or right based on the center position. Currently all taskbar settings are supported including the vertical taskbar and unlimited taskbars. TaskbarX has been in development since 6 may 2018. Also known as FalconX and Falcon10.
42 different Animations including "none"
Great performance (Very optimized and lightweight looping)
Change animation speed
Change custom offset position based on center
Center between startbutton, search, taskview etc... and left tray icons, clock etc...
All taskbar settings supported
Vertical taskbar supported
Unlimited monitors supported
Change taskbar style to Transparent, Blur and Acrylic
Change taskbar color and transparency
Hide Start button and more...
API Umbrella is an open source API management platform for exposing web service APIs. The basic goal of API Umbrella is to make life easier for both API creators and API consumers. How?
A perceptual hash is a fingerprint of a multimedia file derived from various features from its content. Unlike cryptographic hash functions which rely on the avalanche effect of small changes in input leading to drastic changes in the output, perceptual hashes are "close" to one another if the features are similar.
Perceptual hashes are a different concept compared to cryptographic hash functions like MD5 and SHA1. With cryptographic hashes, the hash values are random. The data used to generate the hash acts like a random seed, so the same data will generate the same result, but different data will create different results. Comparing two SHA1 hash values really only tells you two things. If the hashes are different, then the data is different. And if the hashes are the same, then the data is likely the same. In contrast, perceptual hashes can be compared -- giving you a sense of similarity between the two data sets. This code was inspired/based on: Requirements
Axel tries to accelerate the download process by using multiple connections per file, and can also balance the load between different servers. Axel tries to be as light as possible, so it might be useful on byte-critical systems. Axel supports HTTP, HTTPS, FTP and FTPS protocols. Thanks to the original developer of Axel, Wilmer van der Gaast, and everyone else who has contributed to it over the years.
OpenNote is a progressive web application(PWA)/HTML5 offline app that was built to be a open source(MIT License), web based text editor/note taking software. It is designed to be self hosted and gives you ownership of your data Please support this project by: Thank you!
What is PSCollectionView? It's a Pinterest style scroll view designed to be used similar to a UITableView. It supports Portrait and Landscape orientations. I built this as a hack to show my friends. Any suggestions or improvements are very welcome! Coming soon... A fully functional demo app. What is PSCollectionViewCell? It's the equivalent of UITableViewCell It implements base methods for configuring data and calculating height Note: You should subclass this! Want to see this code in a live app? I use this in my iPhone/iPad app, Lunchbox. ARC Fully ARC compatible now
Markwon is a markdown library for Android. It parses markdown following [commonmark-spec] with the help of amazing [commonmark-java] library and renders result as Android-native Spannables. No HTML is involved as an intermediate step. No WebView is required. It's extremely fast, feature-rich and extensible. It gives ability to display markdown in all TextView widgets (TextView, Button, Switch, CheckBox, etc), Toasts and all other places that accept Spanned content. Library provides reasonable defaults to display style of a markdown content but also gives all the means to tweak the appearance if desired. All markdown features listed in [commonmark-spec] are supported (including support for inlined/block HTML code, markdown tables, images and syntax highlight). Markwon comes with a sample application. It is a collection of library usages that comes with search and source code for each code sample. Since version 4.2.0 Markwon comes with an editor to highlight markdown input as user types (for example in EditText).
EasyTransitions is a library that helps developers create custom interactive transitions using simple functions defined in a protocol and avoid handling with the mutiple transitions API's in UIKit.
The development roadmap will be documented using Github issues, milestones and project. Contributions are welcome!
PiShrink is a bash script that automatically shrink a pi image that will then resize to the max size of the SD card on boot. This will make putting the image back onto the SD card faster and the shrunk images will compress better. In addition the shrinked image can be compressed with gzip and xz to create an even smaller image. Parallel compression of the image
pwd.sh is a Bash shell script to manage passwords and other secrets. It uses GnuPG to symmetrically (i.e., using a master password) encrypt and decrypt plain text files.
The second release of pwd.sh features many security and reliability improvements, and is a recommended upgrade. Compatible on Linux, OpenBSD, macOS. Changelist:
The original release which has been available for general use and review since July 2015. There are no known bugs nor security vulnerabilities identified in this stable version of pwd.sh. Compatible on Linux, OpenBSD, macOS.
Phenomenon is a very small, low-level WebGL library that provides the essentials to deliver a high performance experience. Its core functionality is built around the idea of moving millions of particles around using the power of the GPU.
Want to see some magic right away? Have a look here!
This is a custom widget for Android, which uesd for showing grid pictures, such as you seeing in weibo or wechat.
app:imgGap="4dp"
or nineGridImageView.setGap(int gap);
app:maxSize="9"
or nineGridImageView.setMaxSize(int maxSize);
if maxSize
Less than or equal to 0, there may not limit for images size.app:showStyle="fill"
or nineGridImageView.setShowStyle(int style);
default style is STYLE_GRID
:
another style is STYLE_FILL
:app:singleImgSize="120dp"
or nineGridImageView.setSingleImgSize(int singleImgSize)
Remember to pull the latest version of PyREBox in order to enjoy its latest features. PyREBox is under active development and new cool features are yet to come! The master branch should always contain an stable version, while the dev branches contain the latest, work-in progress features. The following announcement list refers to the master branch, and the date when the development changes were merged into master.
Sprinkle is a software provisioning tool you can use to build remote servers with, after the base operating system has been installed. For example, to install a Rails or Merb stack on a brand new slice directly after its been created.
#sprinkle
channel on the Freenode IRC NetworkIn the field of Developer Tools learning from a live instructor-led and hand-on training courses would make a big difference as compared with watching a video learning materials. Participants must maintain focus and interact with the trainer for questions and concerns. In Qwikcourse, trainers and participants uses DaDesktop , a cloud desktop environment designed for instructors and students who wish to carry out interactive, hands-on training from distant physical locations.
For now, there are tremendous work opportunities for various IT fields. Most of the courses in Developer Tools is a great source of IT learning with hands-on training and experience which could be a great contribution to your portfolio.
Developer Tools Online Courses, Developer Tools Training, Developer Tools Instructor-led, Developer Tools Live Trainer, Developer Tools Trainer, Developer Tools Online Lesson, Developer Tools Education