text:
=id='home'
### SysAdmin Best Practices

> There are two major products that came out of
> Berkeley: LSD and UNIX.  We do not believe this
> to be a coincidence.

> - Jeremy S. Anderson

---
=data-y='620.80005' data-z='-358.90002' data-rotate-x='-30' data-scale='0.97'

### Standard Toolset

- Servers
- Logging
- Backups
- Web
- Database

---
=data-y='480' data-x='-170' data-z='-358.90002' data-rotate-x='-30' data-scale='0.25'

Servers-those devices systems administrators are
likely to deal with.

---
=data-y='540' data-x='-155' data-z='-358.90002' data-rotate-x='-30' data-scale='0.25'

Logging-tracking all activity for funny business.

---
=data-y='600' data-x='-145' data-z='-358.90002' data-rotate-x='-30' data-scale='0.25'

Backups-making redundant copies of all important
data.

---
=data-y='655' data-x='-135' data-z='-358.90002' data-rotate-x='-30' data-scale='0.25'

Web-presenting data on the world wide stage.

---
=data-y='725' data-x='-125' data-z='-358.90002' data-rotate-x='-30' data-scale='0.25'

Database-where one can keep their data.

---
=data-y='949.4' data-z='-949.4' data-rotate-x='-60' data-scale='0.94' id='shadow'

### Server

> There is only one satisfying way to boot a
> computer.

> - J.H. Goldfuss

---
=data-y='919.10004' data-z='-1592.5' data-rotate-x='-90' data-scale='0.91'

### Unix

- AT&T Bell Labs
    - Ken Thompson
    - Dennis Ritchie
    - among others
- A modular design
- Focus on the 'Unix Philosophy'
    - small
    - simple
    - extensible

---
=data-y='563.2' data-z='-2103.2' data-rotate-x='-120' data-scale='0.88'

### Successors

- Linux
    - Red Hat, Suse, CentOs
    - Linus's College Project
    - Release Early Release Often
    - Bazaar
- Berkeley Software Distribution
    - FreeBSD, OpenBSD, NetBSD
    - Shares Original Codebase with Unix
    - Unix Philosophy
    - Cathedral

---
=data-y='0.0' data-z='-2346.0' data-rotate-x='-150' data-scale='0.85'

### Deployment

- Puppet
    - Ruby
    - Declarative Configuration
- Chef
    - Ruby and Erlang
    - Recipes
- Ansible
    - Python
    - OpenSSH

---
=data-y='0.0' data-z='-2346.0' data-rotate-x='-150' data-scale='1.35'

### Virtual

- Qemu, Kvm, Virtual Box
- System/Process Virtualization
- Sandboxing
- Rebuild
- Upgrade
- Treat the Same as Physical Servers
- Track Duplication

---
=data-y='-606.8' data-z='-2263.2' data-rotate-x='-180' data-scale='0.82' id='track'

### Logging

> The best way to accelerate a Macintosh is at
> 9.8m/sec/sec.

> - Marcus Dolengo

---
=data-y='-1090.2001' data-z='-1888.1001' data-rotate-x='-210' data-scale='0.79'

### Scope

- Location-Location Location
- Tools-What Log
- What-Do you Log?

---
=data-y='-1330.0' data-z='-1330.0' data-rotate-x='-240' data-scale='0.76'

### Where

- In Situ Vulnerabilities
- Centralize

### Tools

- Nagios, Zabbix
- Plugins

---
=data-y='-1277.5' data-z='-737.30005' data-rotate-x='-270' data-scale='0.73'

### Nagios and Zabbix

- Active
- Clients
- Ownership
- Naemon, Ichinga

---
=data-y='-966.00006' data-z='-259.00003' data-rotate-x='-300' data-scale='0.70'

### What?

- What do you Need?
- All Files
- Processes
- Access
- Review Options
- Implement & Review

---
=data-y='-495.80002' data-z='0.0' data-rotate-x='-330' data-scale='0.67' id='mirror'

### Formation

- Auditing
- Common Log Format
- Prodigal

---
=data-y='0.0' data-z='0.0' data-rotate-x='-360' data-scale='0.64'

### Backups

> Wise are those who backup, for their data will
> be safe in the the day of trouble. Even though
> they face the blue screen of death, they shall
> fear no evil.

> - T.E. Ronneberg

---
=data-y='390.40002' data-z='-225.70001' data-rotate-x='-390' data-scale='0.61'

### Mirroring

- Where-Location Location Locations
- What-To Back Up?
- When-To Test?

---
=data-y='585.80005' data-z='-585.80005' data-rotate-x='-420' data-scale='0.58'

### EveryWhere

- Disaster Recovery
- Ease of Use
- Costs
- Lots Of Copies
    - Local
    - Separate
    - Remote

---
=data-y='555.5' data-z='-962.5' data-rotate-x='-450' data-scale='0.55'

### This?

- Full
- Incremental
- Differential
- Reverse Delta

---
=data-y='332.8' data-z='-1242.7999' data-rotate-x='-480' data-scale='0.52'

### Testing

- Successful Testing
- Monitoring/Logging
- Validation
- Rotate Hardware

---
=data-y='0.0' data-z='-1352.4' data-rotate-x='-510' data-scale='0.49' id='web'

### Web

> Those parts of the system that you can hit with
> a hammer (not advised) are called hardware;
> those program instructions that you can only
> curse at are called software.

> - Author Unknown

---
=data-y='-340.40002' data-z='-1269.6001' data-rotate-x='-540' data-scale='0.46'

### Attending

- Firewall-Block Them Out
- Configuration-Control the Possibilities
- File Location-Mitigate Damage
- Resources-Tools And Guides

---
=data-y='-593.4' data-z='-1027.7001' data-rotate-x='-570' data-scale='0.43'

### Walls Of Fire

- firewalld, iptables, pf and ipfw
- White List-Only Allow Whats Needed
- Coordinate Routers to Reinforce

---
=data-y='-700.00006' data-z='-700.00006' data-rotate-x='-600' data-scale='0.40'

### Tuning

- Disable Unneeded Processes
- Keep Up to Date & Patched
- Chroot & Webserver User
- Remote Admin Through A Secure Connection

---
=data-y='-647.5' data-z='-373.7' data-rotate-x='-630' data-scale='0.37'

### Run Away

- Remote Code
- Remote Sensitive Data

### Assets

- [SysAdmin Audit Networking and Security(SANS)][sans-resources]
  http://www.sans.org/security-resources/
- [Center for Internet Security(CIS)][cis-resources]
  http://benchmarks.cisecurity.org/downloads/benchmarks/

---
=data-y='-469.20004' data-z='-125.80001' data-rotate-x='-660' data-scale='0.34'

### Database

> “All problems in computer science can be solved
> by another level of indirection… Except for the
> problem of too many layers of indirection.”

> - David Wheeler

---
=data-y='-229.40001' data-z='0.0' data-rotate-x='-690' data-scale='0.31'

### The Knowledge

- On A Remote Server
- Firewall Off
- Secure Access Files
- Secure Backups

---
=data-y='0.0' data-z='0.0' data-rotate-x='-720' data-scale='0.28'

### Referee A

Quotes

- [Quote Garden][quotes-a]
  http://www.quotegarden.com/sys-admin-day.html
- [Lone SysAdmin][quotes-b]
  http://lonesysadmin.net/2010/06/29/levels-of-indirection/

Server

- [Virtual Technet][virt-machs-bp]
  http://technet.microsoft.com/en-us/magazine/gg131921.aspx

---
=data-y='160.0' data-z='-92.5' data-rotate-x='-750' data-scale='0.25'

### Referee B

Log

- [Cisco][log]
  http://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html#anc57
- [Stack Over Flow][stacklog]
  http://stackoverflow.com/questions/673575/what-are-the-best-practices-for-logging-an-enterprise-application

Backup

- [Technet][techbackup]
  http://technet.microsoft.com/en-us/library/backup-best-practices-2.aspx

---
=data-y='222.20003' data-z='-222.20003' data-rotate-x='-780' data-scale='0.22'

### Referee C

Backup Cont.

- [IQPC][iqpcbackup-cost]
  http://www.iqpc.com/uploadedFiles/EventRedesign/UK/2010/May/11376004/Assets/DIG-003_eDiscovery_WP_V1.pdf

Web Servers

- [Boran][boran-web]
  http://www.boran.com/security/webserver_practices.html

---
=data-y='191.9' data-z='-332.5' data-rotate-x='-810' data-scale='0.19'

### Referee D

Database

- [Applicure][applicure-database]
  http://www.applicure.com/blog/database-security-best-practice

For full references See Source Code

[quotes-a]:http://www.quotegarden.com/sys-admin-day.html
[quotes-b]:http://lonesysadmin.net/2010/06/29/levels-of-indirection/
[unix]:https://en.wikipedia.org/wiki/Unix_philosophy
[bsd]:https://en.wikipedia.org/wiki/BSD#Significant_BSD_descendants
[virt-machs]:https://en.wikipedia.org/wiki/Virtual_machines
[virt-machs-bp]:http://technet.microsoft.com/en-us/magazine/gg131921.aspx
[log]:http://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html#anc57
[stacklog]:http://stackoverflow.com/questions/673575/what-are-the-best-practices-for-logging-an-enterprise-application
[auditing]:https://en.wikipedia.org/wiki/Log_management_and_intelligence
[common-log]:https://en.wikipedia.org/wiki/Common_Log_Format
[prodigal]:https://en.wikipedia.org/wiki/Proactive_Discovery_of_Insider_Threats_Using_Graph_Analysis_and_Learning
[techbackup]:http://technet.microsoft.com/en-us/library/backup-best-practices-2.aspx
[pcmagbackup]: http://www.pcmag.com/article2/0,2817,1847364,00.asp
[iqpcbackup-cost]:http://www.iqpc.com/uploadedFiles/EventRedesign/UK/2010/May/11376004/Assets/DIG-003_eDiscovery_WP_V1.pdf
[wikibackup]:https://en.wikipedia.org/wiki/Backup
[boran-web]:http://www.boran.com/security/webserver_practices.html
[pcmag-web]:http://www.pcmag.com/article2/0,2817,11525,00.asp
[applicure-database]:http://www.applicure.com/blog/database-security-best-practice
[sans-resources]:http://www.sans.org/security-resources/
[cis-resources]:http://benchmarks.cisecurity.org/downloads/benchmarks/


text:
### [CVE-2018-7726](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7726)
![](https://img.shields.io/static/v1?label=Product&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=n%2Fa&color=brighgreen)

### Description

An issue was discovered in ZZIPlib 0.13.68. There is a bus error caused by the __zzip_parse_root_directory function of zip.c. Attackers could leverage this vulnerability to cause a denial of service via a crafted zip file.

### POC

#### Reference
- https://github.com/gdraheim/zziplib/issues/41

#### Github
No PoCs found on GitHub currently.

license: MIT

repository: trickest/cve

branch_name: refs/heads/main

extension: md

gha_language: HTML

gha_license_id: MIT

license_type: permissive

repo_name: trickest/cve


text:
# Relaxing Waves

![relaxing-waves](https://user-images.githubusercontent.com/13072231/93008311-30cbd200-f5ae-11ea-9765-62b9490eb5c8.png)

## What is it?

**_Give your website relaxing waves_**

Provide `relaxing waves` for your website.

It is easy to add on your website and you can easily customize the background and color of the waves.

## How To Use

### 1. Download required files

To use `Relaxing Waves`, you need the following JavaScript and CSS files.

- [relaxingWaves.js](https://github.com/myConsciousness/relaxing-waves/blob/master/src/org/thinkit/web/js/relaxingWaves.js)
- [relaxing-waves.css](https://github.com/myConsciousness/relaxing-waves/blob/master/src/org/thinkit/web/css/relaxing-waves.css)

### 2. Import downloaded files on HTML

**_CSS_**

Add the following CSS import within the HTML head tag.

Specify the path to the downloaded `relaxing-waves.css`.

```html
<head>
  <link rel="stylesheet" href="./path/to/relaxing-waves.css" />
</head>
```

**_JavaScript_**

Add the following JavaScript import within the HTML head tag, or at the bottom of body tag.

Specify the path to the downloaded `relaxingWaves.js`.

```html
<script src="./path/to/relaxingWaves.js"></script>
```

### 3. Add container for Relaxing Waves

Add the following container to any location in the body tag where you want to place waves.

When `relaxingWaves.js` loads, it adds wave elements to all `relaxing-waves-container` elements in the body tag.

> **_Note:_**

> The class name of the container must be `relaxing-waves-container`.

```html
<body>
  <div class="relaxing-waves-container"></div>
</body>
```

## Advanced Options

You can change the background and color of waves to any color by adding the following attribute to an element with the class name `relaxing-waves-container`.

Provides a `wave-background` attribute to change the background color of a wave to any color, and a `wave-color` attribute to change the wave color to any color.

You can change the color to any color by specifying a `color code` for each attribute.

> **_Note:_**

> The color code you specify does not have to start with #.

> The background color of the wave can be specified with the `linear-gradient` function.

```html
<body>
  <div
    class="relaxing-waves-container"
    wave-background="c3dce8"
    wave-color="006994"
  ></div>
</body>
```

## License

```
Copyright 2020 Kato Shinya.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
in compliance with the License. You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the specific language governing permissions and limitations under
the License.
```

## More Information

`Relaxing Waves` was designed and implemented by Kato Shinya, who works as a freelance developer from Japan.

Regardless of the means or content of communication, I would love to hear from you if you have any questions or concerns. I do not check my email box very often so a response may be delayed, anyway thank you for your interest!

- [Creator Profile](https://github.com/myConsciousness)
- [License](https://github.com/myConsciousness/relaxing-waves/blob/master/LICENSE)
- [File a Bug](https://github.com/myConsciousness/relaxing-waves/issues)

repository: myConsciousness/relaxing-waves

branch_name: refs/heads/master

repo_name: myConsciousness/relaxing-waves


text:
## Discord-Moderator
----
#### Features:
- Easy and simple
- Beginner Friendly
- Supports Mass actions like Massban, massmute
----
#### Support Server
**__Invite__**: https://discord.gg/QWKzWpdFZc

----
### Example Code

```js
const {
    Client
} = require('discord.js');
const mod = require('discord-moderator') // For discord.js-light, check out discord-moderator-light
// Intents and Not Required Events
const client = new Client();

client.on('ready', async () => {
    console.log('ok')
})
client.on('message', async message => {
    if (message.content.startsWith(`!ban`)) {
        userIDs = ['id1', 'id2'] // Ability to massban. All you need is get multiple IDs by message collector or something.
        reason = 'scam' // Ban reason
        days = 7 // Number of days to purge.
        interval = 2000 //To avoid API Abuse, we will ban 1 ID in every 2 seconds.
        try {
            await mod.Ban(message, userIDs, reason, days, interval)
            console.log('banned')
        } catch (err) {
            if (err.message.startsWith('Invalid ID')) console.log('Invalid ID was provided')
            else if (err.message.startsWith(`No Input.`)) console.log(`No Input was given.`)
            console.log(err)
            //Handle error like this to respond to user input.

        };
    } else if (message.content.startsWith(`!unban`)) {
        userIDs = ['00000'] // Ability to massunban. All you need is get multiple IDs by message collector or something.
        interval = 2000 //To avoid API Abuse, we will unban 1 ID in every 2 seconds.
        try {
            await mod.Unban(message, userIDs, interval)
        } catch (err) {
            if (err.message.startsWith('Invalid ID')) console.log('Invalid ID was provided')
            else if (err.message.startsWith(`No Input.`)) console.log(`No Input was given.`)
            console.log(err)
            //Handle error like this to respond to user input.
        }
    } else if (message.content.startsWith(`!kick`)) {
        userIDs = ['0000000000000000000', 'id2', 'id3'] // Ability to massunkick. All you need is get multiple IDs by message collector or something.
        reason = 'spam' // The reason
        interval = 2000 //To avoid API Abuse, we will kick 1 ID in every 2 seconds.
        try {
            await mod.Kick(message, userIDs, reason, interval)
        } catch (err) {
            if (err.message.startsWith('Invalid ID')) console.log('Invalid ID was provided')
            else if (err.message.startsWith(`No Input.`)) console.log(`No Input was given.`)
            console.log(err)
            //Handle error like this to respond to user input.
        }
    } else if (message.content.startsWith(`!mute`)) {
        userIDs = ['id1', 'id2', 'id3'] // Ability to massunmute. All you need is get multiple IDs by message collector or something.
        roleID = 'id' // The mute role ID. Package will take care if its valid or not.
        interval = 2000 //To avoid API Abuse, we will mute 1 ID in every 2 seconds.
        try {
            await mod.Mute(message, userIDs, roleID, interval)
        } catch (err) {
            if (err.message.startsWith('Invalid ID')) console.log('Invalid ID was provided')
            else if (err.message.startsWith(`No Input.`)) console.log(`No Input was given.`)
            console.log(err)
            //Handle error like this to respond to user input.
        }
    } else if (message.content.startsWith(`!unmute`)) {
        userIDs = ['id1', 'id2', 'id3'] // Ability to massununmute. All you need is get multiple IDs by message collector or something.
        roleID = 'id' // The mute role ID. Package will take care if its valid or not.
        interval = 2000 //To avoid API Abuse, we will mute 1 ID in every 2 seconds.
        try {
            await mod.Unmute(message, userIDs, roleID, interval)
        } catch (err) {
            if (err.message.startsWith('Invalid ID')) console.log('Invalid ID was provided')
            else if (err.message.startsWith(`No Input.`)) console.log(`No Input was given.`)
            console.log(err)
            //Handle error like this to respond to user input.
        }
    }
})
client.login('¯\_(ツ)_/¯');
```

----


text:
# SRocket

> SRocket ( short for: SocketRocket ) is a batteries-included, opinionated socket.io framework written in typescript.

#### Quickstart Guide: [here](quickstart.md)

## Disclaimer {docsify-ignore}

!> The Docs for Version 2.2.1 are still work in progress, Some pages may not have been updated
yet

!> SRocket is still under construction!
While reading the documentation keep in mind that the structure and the API may change
This package follows the SEMVER convention, meaning breaking changed will only be released as
major version updates

## Introduction {docsify-ignore}

Have you ever worked with pure socket.io and wanted a bit more structure to your project? If so SRocket is the answer to that,
It has all the features you need to build your next real-time application in a http inspired way. Features like the built-in router
make code orgainstation a breez and the support for typescript and model based validation makes your application safe and easy to maintain.

## Main Features {docsify-ignore}

-   Builtin routing.
-   Builtin validation.
-   Typesafe by nature since its written in typescript
-   Fully extensible with access to the lower level parts and middlewares.

repository: fossabot/SRocket

repo_name: fossabot/SRocket


text:
OntoMaven
=========

Maven-based ontology development and management of ontology artifacts in distributed ontology repositories.

###User Guide (April 2016)

This document is for end users who are looking for information on how to run and use OntoMaven.

###### Prerequirements

In order to run OntoMaven on your machine, you need:

- Mandatory is a **Java Virtual Machine (JVM)**.  Java 8 for 64-bit systems tested and found to be as a stable JVM for OntoMaven. Depending on your use case you may want to assign more RAM than assigned as default.
- An up-to-date **Apache Maven** version. At the time of creation of the guide at least Maven 3.0.5 was verified as a running version.
- If you want to use OntoMaven as a **Maven project inside Eclipse** or some other IDE you need their relevant Maven plugins. Please consider to use corresponding manuals for installation and usage.
- For support of distributed repositories you need to install a **source code management (SCM)** system like Git or Subversion (SVN).

###### Installation and configuration details

Before you start to use the instructions from this section, be sure you already fulfilled the prerequirements mentioned in the section before.

Since OntoMaven is an open source project, you can **get the source code** and build it on your own. You can retrieve the source code of OntoMaven on the project's site http://www.corporate-semantic-web.de/ontomaven.html.

You can **build and deploy OntoMaven** like usual for a Maven based application with the command `mvn build` on the command line or the corresponding command in your favorite IDE.

In order to **start the application** to import ontologies and to collaborate with other knowledge engineers and domain experts, your command should have the following form (parameters are optional):

`mvn de.csw:ontomaven:<goal_name> [-D<parameter_name>=<parameter_value>]`

In Eclipse or other similar IDE you can start goals from the given configuration menu to run applications. Here you should insert `de.csw:ontomaven:<goal_name>` into the menu field to define your goal.

The **available goals and their parameters** are listed in another section.

By default the support for **distributed repositories** is not active. Edit the pom.xml file in the root directory of OntoMaven to specify your ontology repository.

The following code snippet shows you how to connect with some repository server using SVN:

```xml
<project>
...
<scm>
	<connection>scm:svn:http://somerepository.com/svn_repo/trunk</connection>
	<developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection>
	<url>http://somerepository.com/view.cvs</url>
</scm>
...
</project>
```

Instead of SVN you can connect to any other supported SCM.

###### Supported SCM

As of this writing the following SCMs are fully supported:

- Bazaar
- CVS
- Git
- Mercurial
- Subversion
- ...

[Full list of supported SCMs (on the Apache Maven SCM site)](http://maven.apache.org/scm/scms-overview.html)

###### Goals: Function and parameters

* **ApplyAspects**
Applys the choosen aspects of the ontology and creates a new result ontology.

	* `aspectsAppliedOwlDirectory` with default value `"target/aspectsAppliedOwlDirectory"`
	* `aspectsAppliedOwlFileName` with default value `"aspectsAppliedOntology.owl"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`
	* `userAspects` defined at the pom.xml file in the root directory of OntoMaven with the following lines:
    ```xml
    <userAspects>
        <aspect>myFirstAspect</aspect>
        <aspect>mySecondAspect</aspect>
        ...
    </userAspects>
    ```
* **CreateOntologyGraph**
Creates a graphml file of the ontology. The result file can be visualized by any tool supporting graphml files. Included into OntoMaven is also

	* `graphDirectory` with default value `"target/site/graph"`
	* `graphFileName` with default value `"owlGraph.graphml"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`
	* `ifApplyAspects` with default value `false`
	* `userAspects` defined at the pom.xml file in the root directory of OntoMaven with the following lines:
	```xml
    <userAspects>
        <aspect>myFirstAspect</aspect>
        <aspect>mySecondAspect</aspect>
        ...
    </userAspects>
    ```
* **CreateOntologyReport**
Generates a report for the ontology. This report will contain information about the ontology and its elements like classes, properties, individuals.

	* `ontologyReportOutputDirectory` with default value `"target/site/ontologyReport"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`
	* `ifApplyAspects` with default value `false`
	* `userAspects` defined at the pom.xml file in the root directory of OntoMaven with the following lines:
	```xml
    <userAspects>
        <aspect>myFirstAspect</aspect>
        <aspect>mySecondAspect</aspect>
        ...
    </userAspects>
    ```
* **ExportAxioms**
Exports the axioms of the ontology into a file. Furthermore aspects can be applied and inferred axioms can be printed and exported.

	* `ifExportInferredAxioms` with default value `false`
	* `ifExportOriginalAxioms` with default value `true`
	* `axiomsExportDirectory` with default value `"target/exportedAxioms"`
	* `axiomsExportFileName` with default value `"exportedAxioms.txt"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`
	* `ifApplyAspects` with default value `false`
	* `userAspects` defined at the pom.xml file in the root directory of OntoMaven with the following lines:
	```xml
    <userAspects>
        <aspect>myFirstAspect</aspect>
        <aspect>mySecondAspect</aspect>
        ...
    </userAspects>
    ```
* **ImportOntologies**
Loads and saves all (also transitiv) imports. The loaded ontologies will be saved in a specific directory. Every imported ontology will also be registered in a catalog. All goals will work with the local ontologies, if they are imported before.

	* `importDirectory` with default value `"imports"`
	* `catalogFileName` with default value `"catalog.xml"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`

* **InferAxioms**
Exports the inferred axioms of the ontology into a file.

	* `ifIncludeOriginalAxioms` with default value `true`
	* `inferredOwlDirectory` with default value `"target/inferredOwlFiles"`
	* `inferredOwlFile` with default value `"inferredOntology.owl"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`
	* `ifApplyAspects` with default value `false`
	* `userAspects` defined at the pom.xml file in the root directory of OntoMaven with the following lines:
	```xml
    <userAspects>
        <aspect>myFirstAspect</aspect>
        <aspect>mySecondAspect</aspect>
        ...
    </userAspects>
    ```
* **PrintAspectNames**
Prints names of in a given ontology existing aspects.

	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`

* **RemoveAspects**
Applys the choosen aspects of the ontology and creates a new result ontology.

	* `owlFileWithoutAspectsName` with default value `"ontologyWithoutAspects.owl"`
	* `owlFilesWithoutAspectsDirectory` with default value `"target/owlFilesWithoutAspects"`
	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`

* **TestEntailment**
Tests if the axioms of an ontology can be inferred from the axioms of another ontology.

	* `premiseOntologyFileName` with default value `"premiseOntology.owl"`
	* `conclusionOntologyFileName` with default value `"conclusionOntology.owl"`
	* `ifApplyPremiseAspects` with default value `true`
	* `ifApplyConclusionAspects` with default value `true`
	* `userPremiseAspects` with default value `[]` (empty string array)
	* `userConclusionAspects` with default value `[]` (empty string array)
	* `owlDirectory` with default value `"owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`

* **TestOntology**
Tests an ontology regarding the syntax and consistency. The result will be printed in the console and written into a specified file.

	* `owlDirectory` with default value `"owl"`
	* `owlFileName` with default value `"ontology.owl"`
	* `aspectsIRI` with default value `"http://www.corporate-semantic-web.de/ontologies/aspect_owl#hasAspect"`
	* `ifApplyAspects` with default value `false`
	* `userAspects` defined at the pom.xml file in the root directory of OntoMaven with the following lines:
	```xml
    <userAspects>
        <aspect>myFirstAspect</aspect>
        <aspect>mySecondAspect</aspect>
        ...
    </userAspects>
    ```

repository: ag-csw/OntoMaven

gha_language: Java

repo_name: ag-csw/OntoMaven


text:
# Vim Configuration

This is my personal vim configuration.

I personally don't like to work with IDEs and that's reflected in how
minimal this configuration is.

## Installation

Clone this repository to `~/.vim` and create a symbolic link between the
included `vimrc` file and `~/.vimrc`.

On Linux/OS X:

```bash
git clone https://github.com/livcarman/vimrc.git ~/.vim
ln -s ~/.vim/vimrc ~/.vimrc
```

On Windows 10 (using PowerShell):

```PowerShell
git clone https://github.com/livcarman/vimrc.git $HOME\.vim
cmd /c mklink /h $HOME\_vimrc $HOME\.vim\vimrc
```

The plugins are managed by [vim-plug](https://github.com/junegunn/vim-plug/).
Run `:PlugInstall` inside vim to install them. You can update them at any
time with `:PlugUpdate`.

### Font Installation

This configuration will attempt to set [Hack](https://sourcefoundry.org/hack/)
as vim's font, falling back to the system's default fonts if Hack is not
available. You should use a version of Hack that's been patched for Powerline,
available [here](https://github.com/powerline/fonts/tree/master/Hack).

Hack is not a hard dependency -- this is purely cosmetic.

## Windows Compatibility

Things more or less just work on Windows, but getting color schemes to work
properly is a bit of a nightmare. I highly suggest that you use Git Bash to
run vim, which is part of [Git for Windows](https://git-for-windows.github.io).

Colors will display properly in Git Bash, but will not in PowerShell, cmder,
the standard command prompt, and all the other usual suspects..

## Custom Commands & Keybindings

| Keybinding        | Description                                             |
| ----------------- | ------------------------------------------------------- |
| W                 | Save the current buffer with sudo.                      |
| jk                | Equivalent to \<Esc>                                    |
| :ToggleWhitespace | Turn trailing whitespace highlighting on/off.           |
| :StripWhitespace  | Delete all trailing whitepsace in the current buffer.   |

license: Unlicense

repository: livcarman/vimrc

repo_name: livcarman/vimrc


text:
# GDC GATK3 MuTect2
![Version badge](https://img.shields.io/badge/GATK3.6-nightly--2016--02--25--gf39d340-<COLOR>.svg)

The GATK3 MuTect2 pipeline employs a "Panel of Normals" to identify additional germline mutations. This panel is generated using TCGA blood normal genomes from thousands of individuals that were curated and confidently assessed to be cancer-free. This method allows for a higher level of confidence to be assigned to somatic variants that were called by the MuTect2 pipeline.

Original GATK3 MuTect2: https://gatkforums.broadinstitute.org/gatk/discussion/9183/how-to-call-somatic-snvs-and-indels-using-mutect2

## GATK3

Important note:

* The GDC GATK MuTect2 version was frozen to the version when we delivered our first data release. GATK team normally do not keep nightly version beyond 30 days, so that it makes really difficult to re-build the identical docker image.

However, according to GATK team, it seems reasonable to use GATK3.7 as a replacement.

https://gatkforums.broadinstitute.org/gatk/discussion/9406/where-can-i-find-the-gdc-mutect2-version
* Please contact GATK team for the GATK3.7 `GenomeAnalysisTK.jar`.

## How to build

https://docs.docker.com/engine/reference/builder/

The docker images are tested under multiple environments. The most tested ones are:
* Docker version 19.03.2, build 6a30dfc
* Docker version 18.09.1, build 4c52b90
* Docker version 18.03.0-ce, build 0520e24
* Docker version 17.12.1-ce, build 7390fc6

## For external users
The repository has only been tested on GDC data and in the particular environment GDC is running in. Some of the reference data required for the workflow production are hosted in [GDC reference files](https://gdc.cancer.gov/about-data/data-harmonization-and-generation/gdc-reference-files "GDC reference files"). For any questions related to GDC data, please contact the GDC Help Desk at<EMAIL_ADDRESS>
There is a production-ready CWL example at https://github.com/NCI-GDC/mutect2-cwl which uses the docker images that are built from the `Dockerfile`s in this repo.

To run multi-threading GATK3 MuTect2:

```
[INFO] [20200109 04:10:13] [multi_mutect2] - --------------------------------------------------------------------------------
[INFO] [20200109 04:10:13] [multi_mutect2] - multi_mutect2_p3.py
[INFO] [20200109 04:10:13] [multi_mutect2] - Program Args: docker/multi_mutect2/multi_mutect2.py -h
[INFO] [20200109 04:10:13] [multi_mutect2] - --------------------------------------------------------------------------------
usage: Internal multithreading MuTect2 calling. [-h] -j JAVA_HEAP -f
                                                REFERENCE_PATH -r
                                                INTERVAL_BED_PATH -t TUMOR_BAM
                                                -n NORMAL_BAM -c THREAD_COUNT
                                                -p PON -s COSMIC -d DBSNP -e
                                                CONTEST [-m]

optional arguments:
  -h, --help            show this help message and exit
  -j JAVA_HEAP, --java_heap JAVA_HEAP
                        Java heap memory.
  -f REFERENCE_PATH, --reference_path REFERENCE_PATH
                        Reference path.
  -r INTERVAL_BED_PATH, --interval_bed_path INTERVAL_BED_PATH
                        Interval bed file.
  -t TUMOR_BAM, --tumor_bam TUMOR_BAM
                        Tumor bam file.
  -n NORMAL_BAM, --normal_bam NORMAL_BAM
                        Normal bam file.
  -c THREAD_COUNT, --thread_count THREAD_COUNT
                        Number of thread.
  -p PON, --pon PON     Panel of normals reference path.
  -s COSMIC, --cosmic COSMIC
                        Cosmic reference path.
  -d DBSNP, --dbsnp DBSNP
                        dbSNP reference path.
  -e CONTEST, --contest CONTEST
                        Contamination estimation value from ContEst.
  -m, --dontUseSoftClippedBases
                        If specified, it will not analyze soft clipped bases
                        in the reads.
```

## For GDC users

See https://github.com/NCI-GDC/gdc-somatic-variant-calling-workflow.

gha_language: Python


text:
# DATA CLEANER
## Project Description
This directory contains the methods used to format out twitter data, for both archived and streamed in data. You will notice many empty folders here, and this is because they contained gigabytes worth of data when run locally. These were files that were pushed to S3 after they were created here. As such, these files were not pushed to github.

## Technologies Used
- Spark version 3.0.1
- Spark RDDs
- Spark SQL

## Features
- Allows a user to clean both streamed in Twitter data as well as archived Twitter data taken from [archive.org](https://archive.org/details/twitterstream?and[]=year%3A%222020%22&and[]=year%3A%222021%22) so only the text is grabbed from the Tweet.

## Folder Structure

### Empty Folders
- test-output - used by the ArchiveCleaner.clean method to store the initial results of the file cleaning process
- test-output-rdd - used by the ArchiveCleaner.clean method to store the intermediary results of the file cleaning process
- test-output-stream - used by the StreamCleaner.clean method to store the initial results of the file cleaning process

### Other Important Folders
- sample-archive-data
    - 01-01 - contains a sample of the archived data folder structure, which can be used to do a test run of ArchiveCleaner.clean
- twitter-stream-example-files - contains two methods that were used in a separate program to stream in twitter data, so data could be gathered beyond the last available date in the archived data. These methods do not run; they are just meant to illustrate what was done to get our streamed in twitter data.
    - Main.scala - This method was used to gather the streaming data.
    - saveData.scala - This method was used to make a copy of the streaming data every hour, so that we would have a new data file every hour
- unit-test-data - small bit of output data that will be used to test the ArchiveCleaner.scala method and StreamCleaner.scala method.
- cleanedArchiveFiles - contained the final results of all the files that were cleaned by the ArchiveCleaner.clean method. Files that were saved here were then immediately pushed to S3.
- cleanedStreamFiles - contained the final results of all the files that were cleaned by the StreamCleaner.clean method. Files that were saved here were then immediately pushed to S3.

### Classes
- ArchiveCleaner.scala - Formats archive data from a user specified day (view the scaladocs for more information)
- StreamCleaner.scala - Formats archive data from a user specified day (view the scaladocs for more information)op players they wish to analyze as well as the specific bracket.

## Requirements
- [JDK version 8 or 11](https://adoptopenjdk.net/).
- [Scala and SBT](https://www.scala-lang.org/download/2.12.8.html).
- [Spark](https://spark.apache.org/downloads.html)

## Usage
1. Ensure all above requirements are met
2. Navigate to your desired work folder and run the shell command:
```bash
git clone https://github.com/891-MehrabRahman-CovidAnalysis/covid-analysis-1.git
```
3. Open your desired shell of choice, navigate to the downloaded "../covid-analysis-1/twitter-general/data-cleaner" folder.
4. For archive data:
    - Download a day's worth of data from [archive.org](https://archive.org/details/twitterstream?and[]=year%3A%222020%22&and[]=year%3A%222021%22) and extract the .zip file **to a folder given a name matching your downloaded file. THIS IS IMPORTANT. For example, the file "twitter-stream-2021-01-05.zip" must be extracted to a folder named "01-05"** Do not worry about extracting the inner .bz2 files; Spark can handle this for us.
    - Replace "C:/Users/Cody/Desktop/extracts/" on line 41 of ArchiveCleaner.scala with the path to your extracted directory
    - Type sbt "run [mm-dd]" (example: sbt "run 02-03") to grab all data from your extracted directory, filter out everything except tweet text, and combine the data into a single text file. Results should pop up in cleanedArchiveFiles directory matching your input (i.e. mm-dd.txt).
5. For streaming data:
    - Set up your own stream, using the twitter-stream-example-files as your guide.
    - Replace "C:/Users/Cody/Desktop/Revature Training Stuff/scalawags-group-5/twitter-stream/HourlyResults/" on line 53 of StreamCleaner.scala with the path to your hourly streaming files.
    - Type sbt "run [mm-dd]" (example: sbt "run 02-03") to grab all hourly data from the specified day, merge it all into a single file, and format it be uniform on every line. Results should pop up in cleanedStreamFiles directory matching your input (i.e. mm-dd.txt).

gha_language: Scala


text:
# Sentiment Analysis of Social Media Posts with Apache Spark

This repository contains the sample source code and presentation used in the ignite session I have on [JFall 2015](http://www.nljug.org/jfall/2015/).
I also wrote a blog post on the subject which you can find [here](http://niels.nu/blog/2015/sentiment-spark.html).

## Presentation

The presentation (as PDF) can be found [here](/doc/jfall-sentiment.pdf).

## Spark Hello World

A small runnable example of how to do do a word-count analysis is shown in [HelloSparkWorld.java](./src/main/java/com/nibado/example/spark/example/HelloSparkWorld.java).

## Running the analysis

### Downloading the data

The 5GB dataset can be downloader using your favorite torrent client using [this link](https://mega.nz/#!ysBWXRqK!yPXLr25PgJi184pbJU3GtnqUY4wG7YvuPpxJjEmnb9A).

You should end up with a RC_2015-01.bz2 file around 5GB in size.

The application.properties file has the default input set to /tmp/RC_2015-01.bz2. If you downloaded the file to a different
location please change the properties file accordingly.

### Configuration

The application has two config settings that need to be set by you (if their defaults are incorrect), these settings are
contained in application.properties.

The input property should point to RC_2015-01.bz2 you just downloaded. The output property should point to an empty directory.
The application will create the full directory if possible.

### Running the Analysis

You can run the analysis by simply starting running the Main class. It should start a spark context and start an analysis
run. You can then connect to http://localhost:4040/ to see the progress. Keep in mind that this process will take quite
some time, more than one hour on my machine.

First it reads all the JSON and parses it into internal comment structures and analyses these. The resulting data is stored
in a temporary object store location. This isn't strictly needed at all but since this part takes by far the most amount of
time it's done for convenience: running new reduce operations on this dataset takes a lot less time than going through the
entire deserialization again.

The object file is then used to do the count and sentiment reductions which are then written to their corresponding files.

## Links
* Reddit
  * [What is Reddit?](https://en.wikipedia.org/wiki/Reddit)
  * [Original Reddit Post](https://www.reddit.com/r/datasets/comments/3bxlg7/i_have_every_publicly_available_reddit_comment)
  * [Comment data on google bigquery](https://bigquery.cloud.google.com/table/fh-bigquery:reddit_comments.2015_05)
* Apache Spark
  * [What is Apache Spark?](http://spark.apache.org/)
  * [Spark vs Map-Reduce](https://www.quora.com/What-is-the-difference-between-Apache-Spark-and-Apache-Hadoop-Map-Reduce)
  * [Spark Getting Started](http://spark.apache.org/docs/latest/programming-guide.html)
* Sentiment Analysis
  * [What is Sentiment Analysis](https://semantria.com/sentiment-analysis)
  * [SentiNet Word List](http://sentiwordnet.isti.cnr.it/)
  * [Stanford Paper on Sentiment Analysis](http://nlp.stanford.edu/sentiment/)

repository: vishwakarmarahul/jfall-sentiment

repo_name: vishwakarmarahul/jfall-sentiment


text:
# Changelog

## 6.0.0

- Converted all code to TypeScript
- Align vertex colors to linear (three.js) [#70](https://github.com/kaisalmen/WWOBJLoader/issues/70)
- Re-added `AssetPipelineLoader`, `AssetPipeline`, `AssetTask` and `ResourceDescriptor` to the package
- Updated dependencies

## 5.0.0

- Clean-up and uncluttering
  - Remove all code related to worker online assembly and minification workarounds
- Upgrade to versions `2.1.0` of `three-wtm` into `wtd-core`
  - `OBJLoader2Parallel` is no longer using `WorkerTaskDirector`, but only using the generic `WorkerTask`
- Transformed repository to npm workspaces
- Switched to vite for development and bundle creation [#63](https://github.com/kaisalmen/WWOBJLoader/issues/63)
- Webworker with three-wtm and webpack [#60](https://github.com/kaisalmen/WWOBJLoader/issues/60)
  - Make parser independent and thereby reduce worker size to a minimum
  - Fully rely on module workers. Use vite config to generate standard workers from module workers at build time
  - `package.json` now exports:
    - `wwobjloader2`: Unpacked javascript module code
    - `wwobjloader2/bundle`: An esm bundle
    - `wwobjloader2/worker`: The raw module parser worker
    - `bundle/worker/module`: Pre-packaged module parser worker
    - `bundle/worker/classic`: Pre-packaged classic parser worker
- Add @react-three/fiber examples [#69](https://github.com/kaisalmen/WWOBJLoader/pull/69)
- Explore aligning types with the core loaders [#68](https://github.com/kaisalmen/WWOBJLoader/issues/68)
- three.js versioning in package file [#65](https://github.com/kaisalmen/WWOBJLoader/issues/65)

## 4.0.1

- `three.js` is no longer a **peerDependency**. It is just a **dependency**. This resolves issue #58.
- Updated **devDependencies** to resolve potential security issues.

## 4.0.0

- All worker related functionality has been moved to external `WorkerTaskManager`, see [three-wtm](https://github.com/kaisalmen/three-wtm).
- Introduction of potentially Infinite running `WorkerTaskManager` example `wtm_potentially_infinite.html`
- Updated Example `webgl_loader_obj2_options.html`: Expose parser options and logging configuration in UI
- Completely removed the need to use gulp.
- Use snowpack for development.
- Use rollup for library creation and used rollup and snowpack for supplement of the library verification environment.

## 3.2.0

- Changed structure of the repository to mimic three.js layout
- Fixes #18335 CodeSerializer works with uglified code
- All multiple files loading examples now use `AssetPipelineLoader` prototype.

## 3.1.2

- three.js issue 17769:
  - Move `ObjectManipulator` into `WorkerRunner` and export it from there
  - Remove `OBJLoader2Parser` import from `WorkerRunner`. Remove unneeded functions from DefaultWorkerPayloadHandler and WorkerRunner and aligned typescript definitions
  - The parser in DefaultWorkerPayloadHandler should not be limited to `OBJ2LoaderParser`. js and ts was not aligned here.

## 3.1.1

- three.js issue 17615/17711: ObjLoader2Parser materials are not applied in worker
- Additionally, allow material override from `OBJLoader2#addMaterials` to `MaterialHandler#addMaterials`

## 3.1.0

- `OBJLoader2` is now based on `Loader` (three.js issue 17406)
- Updated typescript definitions (fixed three.js issue 17364) Note: `OBJLoader2Parallel#parse` is implemented differently
- Unified load and parse behaviour of `OBJLoader2` and `OBJLoader2Parallel`: Separate onParseComplete is gone. onLoad serves the same purpose in both sync an parallel use cases
- Fix logging verbosity (MaterialHandler, etc)
- Fixed three.js 15227 along

## 3.0.0

- Transformed the whole code base to jsm and added typescript definitions (in scope of complete three.js code base transformation).
- Removed `LoaderWorkerDirector`. This is going to be replaced with more generic approach likely driven by three.js
- `OBJLoader2` extends `OBJLoader2Parser`: Moved common functions (parser configuration and callback) to `OBJLoader2Parser`. Here aim was to remove redundant function definitions in both the independent parser code and in `OBJLoader2`.
- `OBJLoader2Parser`: All private functions are now identified by "_". Provides functions and members for extensions.
- `WorkerExecutionSupport` is able to create the worker code for `OBJLoader2Parallel` by concatenation of existing code pieces (memory or files) or loading a jsm file that contains all dependencies.
- `MaterialHandler` and `MeshReceiver` have been extracted from OBJLoader2. The are re-usable `WorkerExecutionSupport` context.
- All MTL handling code has been removed from OBJLoader2. New approach via bridge `MtlObjBridge`.
- OBJLoader2 will not get any further dependencies. `WorkerExecutionSupport` will use OBJLoader2 and other loaders.
- OBJ Verify has been updated to use modules for both `OBJLoader` and `OBJLoader2`.
- Started `AssetPipelineLoader` prototyping

## 2.5.1

- three.js issue 15219: Materials are initialised as objects.
- three.js issue 15468. `OBJLoader2`: Reduced log level from warn to info when defaultMaterial is used when material name was not resolvable.
- three.js issue 16307: Backported onError function usage from OBJLoader2/Parser V3. Unified callback naming

## 2.5.0

- Issue #47: Fixed incorrect vertex color pointerC initialization (omitting first set of values)
- Pull Request #46: It is now possible to run `THREE.OBJLoader2` in nodejs 10.5.0+. Thanks to @Cobertos
- Replaced Singletons with pure function/prototype definitions (backport from dev (V3.0.0)). Reason: Counter issues with worker code Blob generation from minified code base (e.g when using webpack)
- three.js issue 12942: Align `setPath` and `setResourcePath` meaning and handling

## 2.4.2

- Issue #43: `OBJLoader2` allows to register a generic error handler. If this callback is available it will be used instead of a throw. `LoaderWorkerDirector` uses this callback to report a problem, but continue with the next loading task. `loadMtl` now allows to pass onProgress and onError as well.

## 2.4.1

- three.js issue 14010: `TRHEE.OBJLoader2.loadMtl` transforms an ArrayBuffer to String `THREE.LoaderUtils.decodeText` if content is provided as ArrayBuffer
- three.js issue 14032: Vertex Color value was not correctly initialized. Vertex colors are now correctly used
- Issue #40: Added function `TRHEE.OBJLoader2.setUseOAsMesh` to enforce mesh creation on occurrence of "o". The default is false (spec compliant).
- Issue #39: Ensure name of `THREE.LoaderSupport.ResourceDescriptor` always has a default name
- Issue #38: Fixed onMeshAlter and onLoadMaterials callback usage in `THREE.LoaderSupport.WorkerDirector` and fixed handling of returned objects in `THREE.LoaderSupport.MeshBuilder`

## 2.4.0

- three.js issue 13197:
  - Added forceWorkerDataCopy to THREE.LoaderSupport.WorkerSupport and THREE.LoaderSupport.WorkerDirector
  - THREE.OBJLoader2 handles cached resources properly. This increases overall performance as no unnecessary reloads are requested.
- THREE.OBJLoader2: Reduced Parser complexity:
  - Simplified slash counting used for face type detection
  - One buildFace function is used for all four face types, lines and points including indices (=vertex reduction) creation if wanted.
  - String processing (o, g, mtllib and usemtl) just concatenates chars
  - Overall speed improvements due simpler code paths
- Removed THREE.LoaderSupport.ConsoleLogger: Added setLogging function as replacement where required. Console logging is behind boolean flags. **Important:** Code adjustments are required.
- Removed THREE.LoaderSupport.LoaderBase: Many functions are coupled with OBJLoader2. It was simply not generic enough and added unneeded complexity.
- Reduced THREE.LoaderSupport.PrepData to minimum set of generic functions. Simple properties are added by demand and are no longer enforced.
- Renamed THREE.LoaderSupport.Builder to THREE.LoaderSupport.MeshBuilder
- Added objverify to npm package
- Updated documentation

## 2.3.1

- Issue #10: Moved load and checkResourceDescriptorFiles from OBJLoader2 to LoaderBase. Re-use generic functions in other loaders

## 2.3.0

- Issue #28: Parser Verification. Reduce overall complexity of Parser. It is now a single class. Missing 'g' statement don't cripple parsing.
- Issue #31: Worker code still works when mangling is used during minification.
- Issue #32: THREE.LoaderSupport.ConsoleLogger: Allow to pass additional arguments to error, warn, info and debug
- Issue #33: Added support for Points and fixed Lines along

## 2.2.1

- Issue #27: Multiple mesh definitions (vertices, normals, uvs and faces) within one group are now supported. Needed to remove early release of vertex data from memory.
- Issue #28: Negative face indices are now supported.
- Issue #29: Cleaned loadMtl API and clarified `WorkerSupport.run` contract. Transferable is automatically attached if data is an ArrayBuffer.

## 2.2.0

- WorkerRunnerRefImpl changes: No longer required `THREE.LoaderSupport.Validator` and `THREE.LoaderSupport.ConsoleLogger` which reduces size of worker. Default workers only include WorkerRunnerRefImpl for establishing communication and no longer need the Validator or the ConsoleLogger.
- LoaderWorkerSupport changes: It always ensures logConfig parameters are properly initialized before being passed to worker. Fixed logging problems.
- Issue #25: OBJLoader2 now logs an error if `THREE.LoaderSupport` is not included as script in HTML. The same is true for missing `THRE.MTLLoader`, but only if method `loadMtl` is used.
- Issue #26: `WorkerSuport` now contains a inner private class `LoaderWorker` that encapsulates the native worker. This separates the runtime functionality from the setup and interaction. Workers are now terminated when immediately when they are not running otherwise `LoaderWorker.terminateRequested` ensures termination when final execution status is reached. `WorkerDirector` now properly handles shutdown of workers. Evaluation of status is always performed in `WorkerDirector.processQueue`. `WorkerDirector.callbackOnFinishedProcessing` is called when processing is completed and all workers are terminated. This allows to clear all meshes, for example.

## 2.1.2

- Added onLoadMaterials allowing alteration of materials when they have been loaded
- Issue #21 Part2: Fixed new mesh detection (offset and not) solely relies on 'v' and 'f' occurrences. 'o' and 'g' are meta information, that no longer drive the decision
- Issue #22: WorkerDirector now only allows implementations that have property callbacks
- Example WWOBJLoader2Stage: Added validity checks to ZipTools
- Fixed worker code generated from minified version is broken

## 2.1.1

- Issue #21: Fixed 'o' or 'g' declaration lead to early cleanup of stored vertex data
- WorkerSupport: Added worker payloads "imageData" and "error"

## 2.1.0

- Issue #18: Builder enhancements:
  - Materials can be added to it as regular objects, as jsonified objects (e.g. from worker) and as clone instruction (map of property and value)
  - Separated mesh processing from material processing
  - Builder no longer defines default materials. This is no the responsibility of the user (loader)
- WorkerSupport is now able to load arbitrary js files into Blob used to create the Worker (as exemplary shown and used in MeshSpray)

## 2.0.1

- three.js issue #12324: Fix slashes in string pattern (e.g. usemtl) were replaced by spaces
- Fixed line processing with uv

## 2.0.0

- `OBJLoader2` and `WWOBJLoader2` have been fused. Worker based asynchronous execution of the loader is now handled by `parseAsync`, `load` with `useAsync` flag or `run` which is used for batch processing
- All common functionality independent of OBJ parsing has been moved to package `THREE.LoaderSupport`. Thease are:
  - Builder
  - LoadedMeshUserOverride
  - WorkerSupport
  - WorkerRunnerRefImpl
  - WorkerDirector
  - PrepData
  - Commons
  - Callbacks
  - Validator
  - ConsoleLogger
- `OBJLoader2.parse` method accepts arraybuffer or string as input.
- Indexed rendering is supported.
- Issue #15: `ConsoleLogger` now encapsulates all console logging. Logging can be fully deactivated or switched to debug mode
- Issue #16: progress callbacks provide numerical values to indicate overall progress of download or parsing

## 1.4.1

Loader related changes:

- Issue #14: RawObject was not set with usemtl name, but with mtllib

## 1.4.0

Loader related changes:

- Issue #12, three.js issue #11804, #11871, PR #11928: Added n-gon support

## 1.3.1

Loader related changes:

- Issue #12, three.js issue #11804, #11871, PR #11928: Added n-gon support

## 1.3.0

Loader related changes:

- SmoothingGroups: activeSmoothingGroup is ensured to be a number (integer). "0" instead of "off" did not lead to detection of flat shading.
- Issue 8: OBJLoader2 sets the mesh name properly. Mesh name is taken from group name (g) if exists or object name (o). Fixed cut-off names (o, g, mtllib, usemtl)
- Issue 9: Fixed debug logging in MeshCreator related to Multi-Material creation.
- three.js issue 11422: OBJLoader2 and WWOBJLoader2 are able to load vertexColors when defined as: v x y z r g b
- Added download/progress feedback in all examples

Example related changes:

- Replaced Boolean with own Validator function

## 1.2.1

Loader related changes:

- Validator and its functions replace all Boolean calls. It is included in THREE.OBJLoader2.
- Versions are now defined inside OBJLoader2 and WWOBJLoader2.
- Static OBJLoader2._getValidator and OBJLoader2_buildWebWorkerCode are reached via prototype of OBJLoader2. Instance of OBJLoader2 is no longer created.
- Requires three.js release 85 (now available)

Example related changes:

- webgl_loader_obj2_ww_parallels: Fixed "Run Queue" started new run before first was completed.

## 1.2.0

Loader related changes:

- THREE.OBJLoader2.WWOBJLoader2
  - Function `_receiveWorkerMessage` now uses a meshDescription that allows to override material or bufferGeometry or to completely disregard the mesh. `THREE.OBJLoader2.WWOBJLoader2.LoadedMeshUserOverride` was introduced for this.
  - Allow usage of multiple callbacks per callback type
  - `THREE.OBJLoader2.WWOBJLoader2.PrepDataArrayBuffer` and `THREE.OBJLoader2.WWOBJLoader2.PrepDataFile` require less mandatory parameters. Setters are introduced to handle optional things
- THREE.OBJLoader2.WWOBJLoader2Director
  - Added per queue object callbacks
  - Global callbacks in `prepareWorkers` will be specified with new object `OBJLoader2.WWOBJLoader2.PrepDataCallbacks`. This object is also used in both PrepData objects for defining extra per model callbacks in addition to the global ones
  - Callbacks will be reset and reassigned for every run
- All Examples
  - Improve code quality and logging: Replaced != or == with Boolean() or ! Boolean() where applicable
  - Improve logging and comments
  - Restored compatibility with three.js release 84

## 1.1.1

- wwobjloader2 npm relase 1.1.0 did not set three.js dependency properly. That's why it was immediately succeeded by this version.

Loader related changes:

- Adjusted to removal of MultiMaterial in three.js release 85. Therefore not compatible with three.js < 0.85.0.

## 1.0.7 / 1.0.6

Improvements since initial release. This was the first npm release and the first release for three.js.

Loader related changes:

- THREE.OBJLoader2
  - Removed need for making Parser public. OBJLoader2 has a build function for web worker code.
  - MeshCreator is now private to OBJLoader2
  - Removed underscores from functions of private classes
- THREE.OBJLoader2.WWOBJLoader2
  - Added checks for Blob and URL.createObjectURL
  - Worker code build: Removed need to adjust constructor and some new Object calls
  - Allow to properly set CORS to MTLLoader via WWOBJLoader2 and WWOBJLoader2Director
  - Now allows to enable/disable mesh streaming
  - Adjusted naming of web worker classes
- All Examples
  - Library headers now carry references to development repository

Example related changes:

- webgl_loader_obj
  - Added GridHelper
  - Resources to load are now defined outside example classes
- webgl_loader_obj2_ww
  - Allow to clear all meshes in
  - Allows to load user OBJ/MTL files
  - Added GridHelper
  - Resources to load are now defined outside example classes
- All Examples
  - Created one page examples and tuned naming
  - All examples now use dat.gui
  - Removed namespace "THREE.examples"
  - Fixed comment typos
  - Fixed some code formatting issues
  - Fixed tabs in examples

## 1.0.0

Initial public release.

repository: kaisalmen/WWOBJLoader

gha_language: TypeScript

repo_name: kaisalmen/WWOBJLoader


text:
---
title: Simplifying Networks through Segment Routing
author: Jonathan Davidson
source: Cisco Executive Platform
source-url: https://blogs.cisco.com/news/simplifying-networks-through-segment-routing
date: 2017-09-27
eurl: https://blogs.cisco.com/news/simplifying-networks-through-segment-routing
technology: 'SRv6, SRMPLS'
excerpt: >-
  The networking industry is going through an incredibly dynamic time of change and opportunity. Global IP traffic will increase nearly threefold over the next five years and 127-fold from 2005 to 2021.  The number of devices connected to IP networks by 2021 will be three times higher than the global population. On top of that, the diversity of applications has never been greater, with each having its own set of requirements and hurdles.
  This unprecedented growth requires Service Providers to transform their networks, and Segment Routing is becoming one of the keys to successfully paving the way to that transformation.
teaser: images/press/jonathan_davidson.jpg
---

repository: xrdocs/segment-routing

branch_name: refs/heads/gh-pages

gha_language: JavaScript

repo_name: xrdocs/segment-routing


text:
### Shallow Copy
Shallow copy is a bit-wise copy of an object. A new object is created that has an exact copy of the values in the original object. If any of the fields of the object are references to other objects, just the reference addresses are copied, only the memory address is copied.

It makes a copy of the reference to X into Y. Think about it as a copy of X’s Address. So, the addresses of X and Y will be the same i.e. they will be pointing to the same memory location.

### Output
Original elements before shallow copying List 1
10 20 30 [40, 50] 60
New list of elements after shallow copying List 2
10 20 30 [70, 50] 60
Original elements after shallow copying List 1
10 20 30 [70, 50] 60

path: /shallow copy in ptyhon.md

filename: shallow copy in ptyhon.md

gha_language: Jupyter Notebook


text:
# IU's label Kakao M calls cops on a fan who live streamed audio of IU's concert and sues him for copyright infringement

Published at: **2019-11-02T19:06:00+00:00**

Author: **olmal**

Original: [allkpop](https://www.allkpop.com/article/2019/11/ius-label-kakao-m-calls-cops-on-a-fan-who-live-streamed-audio-of-ius-concert-and-sues-him-for-copyright-infringement)

IU's label called cops on a fan who live-streamed audio of IU's tour concert 'LOVE, POEM' on November 2. IU held the first concert of her tour on November 2 at Women's University Universiade Gymnasium in Kwangju.
During the concert, the securities caught a fan who was live-streaming during the concert. He was immediately removed from the arena and was transported to the nearest police station. Later on the community website, the said fan posted that he had to write a statement as the insiders sued him.
Netizens are split on the response of the label. Some comments say he deserved it while others say this was too draconian.
What do you think?

repository: dsadlollioygjmzvcxv/tdc-exported

repo_name: dsadlollioygjmzvcxv/tdc-exported


text:
Title: Loadout Slots

# Loadout Slots

The Highlander has a number of features to add new loadout slots, change existing loadout slot availability,
or modify which items can be equipped under which conditions. This is a list of pages tagged "Loadoutslots".

gha_language: UnrealScript


text:
# Installation
> `npm install --save @types/howler`

# Summary
This package contains type definitions for howler.js (https://github.com/goldfire/howler.js).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/howler.

### Additional Details
 * Last updated: Wed, 24 Jun 2020 08:56:19 GMT
 * Dependencies: none
 * Global values: none

# Credits
These definitions were written by [Pedro Casaubon](https://github.com/xperiments), [Alexander Leon](https://github.com/alien35), [Nicholas Higgins](https://github.com/nicholashza), [Carlos Urango](https://github.com/cjurango), and [R.J.](https://github.com/jun-sheaf).


text:
---
title: "Now"
slug: "now"
category: "now"
---

## Throwing away my to do list

I noticed recently that not only do I dread the thought of opening up my electronic to do list but realistically, I never action much off of it anyway.

I decided to experiment with throwing it away completely and relying on my calendar. Things that **must** be done should go on my calendar regardless.

Now don't get me wrong, I still have *things to do* in some form or another but they're not explicitly a list. The thing I'm trying to avoid here is subsciously mistaking any such list as a *things i must do* list as opposed to a *things i could do* list.

The other aspect is that being electronic means I'm tether to my computer. Basically what I'm doing instead is carrying a notebook. If there's something I need to do at a certain time, it goes on my calendar. If it's wishy washy or not important, I just write a note but I don't expect that note means "It will happen" as there isn't any period of time attached.

Most projects I do are relatively ad hoc, or in the case of this site, I file Github Issues so I'm relying on "I'll just do a couple minutes" as my driver to determine what I find interesting at any given moment.

If I don't feel like doing something, I just simply won't do it and I try to pay no attention to whether streaks happen or not.

This might go too far the other way for sure but it's an experiment so who knows, maybe I'll end up getting more done in an attempt to *not* be explicitly productive!

## Octowise

I haven't talked about it publically but I've got a [side project for viewing Kobo highlights](https://github.com/marcus-crane/octowise) that has been on and off the backburner for some time.

[Electron](https://www.electronjs.org/) gave me a lot of troubles between native module compilation and trying to work within the expected [security model](https://www.electronjs.org/docs/latest/security/context-isolation). Most every comment would simply say "disable security" while I couldn't get modules I needed to work within sandboxing. Agh, it felt extremely kafkaesque and I got no real work done on that side project.

Recently I discovered a project called [wails](https://github.com/wailsapp/wails) which allows you to write most of your codebase in Go while crafting a UI in Javascript. This works by providing a bridge between Go and JS so you can call Go functions from within JSland.

While I'm not too far into using it, my tests so far have been [very promising](https://twitter.com/sentreh/status/1416558765340446724)!

I'm glad to finally start making progress on the actual problem rather than all the stuff surrounding the problem itself.

## Static libraries

Currently, I have both [books](/books/) and [games](/games/) pages which show the things I'm working through.

They aren't explicitly linked anywhere (besides here) but in future, I intend to surface them to users and provide a sort of gallery of sorts.

My goal here is to try and use my site as a data store rather than relying on third parties so much.

For me, books and games are probably the two most at risk I would say.

With books, [Goodreads](https://goodreads.com) is still widely used but is effectively neglected by their corporate overlords at Amazon.

With games, [How Long To Beat](https://howlongtobeat.com/user?n=Sentry), there's still an active community and I've been a member of the side for 10 years now but I noticed recently that the site was bought by [Ziff Davis](https://www.ziffdavis.com/). I don't know that I consider them as bad as some large entities but in my lifetime, I've seen them shut down 1UP.com, GameSpy, GameTrailers, Official U.S. Playstation Magazine and UGO. I didn't necessarily visit any of those sites aside from GameTrailers but I don't see why a small ex-indie site like HLTB would be any different in future.

On a more general note as well, neither of these sites make money off of me so I don't exactly know what keeps them running? Publisher deals? Beats me.

Anyway, both pages are powered by `yaml` files currently that are manually curated. I'll probably write more about it in future but for now, you can [check out the data folder](https://github.com/marcus-crane/utf9k/tree/main/data) if you'd like to see more.

## This site in general

While I like to think I'm still pretty active writing posts for my [blog](/blog), the large majority of changes I've made recently aren't particularly user facing.

Here's a short list of recent changes:

* Addition of [games](/games/)
* Addition of [debug](/debug/) to help tidy up metadata
* Wrote V2 of the homepage live player. It now features playback progress and cover art for games, movies, tv shows and music.
* Added live searching to [questions](/questions/) and split up all of the content into one "post" per question.
* Moved from [Netlify](https://www.netlify.com/) to [Fly.io](https://fly.io/). Besides just liking the latter, I've also started forwarding server logs to an [Intel NUC](https://www.intel.com/content/www/us/en/products/details/nuc/mini-pcs.html) at my house. My next step will be to surface anonymous stats back here on my site.

At some point, hopefully soon, I'll be doing a revamp of the layout. Nothing huge in terms of formatting but tidying up the design.

My main goals will be trying to reduce the number of external requests (ideally caching everything locally) and creating nice, static cards for showing eg; tweets rather than straight serving the embed widgets as they tend to look out of place.

Beyond that, life stuff is busy! Lotta irons in various fires but nothing to talk about just yet.


text:
# Free Parking System

This repo is created as a contribution to my personal portfolio.
The **_Free Parking System_** is being developed on my spare time.
With this repo i'm looking to:

- [x] Improve my skills on TDD and unit testing.
- [x] Learn / use microservices.
- [x] Learn / use Docker.

I expect the repo to continuously change file structure and shape as i learn
and explore/tackle with the problems.

### Thanks

  - I want to say thanks for the ServiceResult classes to the creator of this repo
    [FunctionalOOP.Result](https://github.com/hellourgo/FunctionalOOP.Result)

repository: NickPolyder/FreeParkingSystem

branch_name: refs/heads/develop

gha_language: C#

repo_name: NickPolyder/FreeParkingSystem


text:
---
layout: post
title: R.I.P.  textdrive.com
date: 2014-04-03 23:40:40
category: computing
---

Up until recently, I had a little Wordpress blog that I hosted
using a sevice called [Textdrive][]. Textdrive was a nice, simple
Unix-based hosting solution that, prior to [Joyent][]'s purchase
of the company, provided great value for $15/mo.  But sometime about
a week ago, the lights went dark.  At this point I should mention
that this was no longer Joyent's company. While Joyent seems to be
focusing on major cloud services, the Textdrive of late was a reboot
of the original shared-hosting provider, catering to the low-end.

The bankruptcy of a startup is not unusual, especially one catering
to the low-margin side of a line of business, but what *is* unusual
is how the company managed to shut down without even emailing any
of its customers. I literally found out about the shutdown by
attempting (and failing) to contact my server, only days after it
had apparently been wiped clean. Apparently a notice had been posted
to their support forums, which is a bizarre substitute for notifying
one's customer base.  I can't imagine what the explanation for all
of this is, but it will be interesting to see how it turns out.

An amusing side note is that had I been an up-to-date reader of
Wired Magazine, I might have read [this][wired] article about how
my hosting provider had gone out of business.


text:
# adunkman/s-thoughts-on

> ⚠ Archived — moved to https://www.dunkman.me/reading/.

A collection of my thoughts on things.

## What things?

- [The Double Diamond: Strategy + Execution of the Right Solution](thoughts/double-diamond.md)

repository: adunkman/s-thoughts-on

repo_name: adunkman/s-thoughts-on


text:
# Internet of Things Platform

![](../img/iot-service-catalog.png)

### Open IBM Cloud Service Catalog:

> [IoT Platform service (not boilerplate) catalog](https://console.bluemix.net/catalog/services/internet-of-things-platform)

After you create the service, open the IoT Platform service and click Launch button:

![](../img/iot-click-launch.png)

### How-To:

> Click here to [generate API key and token in IBM Watson IoT Platform](https://developer.ibm.com/code/howtos/iot-generate-apikey-apitoken)

repository: hovig/iot-mic-sts-ifttt-assistant-slack

repo_name: hovig/iot-mic-sts-ifttt-assistant-slack


text:
# [Snake Web](https://paulolima.xyz/)   [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Check%20this%20amazing%20project%20and%20more%20at%20my%20github&url=https://paulolima.xyz/&hashtags=coding,snake,python,web,developers)

[![Price](https://img.shields.io/badge/price-FREE-0098f7.svg)](https://github.com/froala/design-blocks/blob/master/LICENSE)

* Read this in other languages: [English](README.md), [Portuguese](README.pt.md)

Snake Web

Classic snake game made in python

### Getting Started

- Open the index Html page


text:
## Lawyer Bot REST API

This AI Chatbot is part of the [Lawyer Bot](https://github.com/lukitos/lawyerbot-capstone) suite of applications. It provides the chat user interface (UI), the chat server, and the integration with Dialogflow.

## License
MIT


text:
# Scripts

Here all scripts are placed which can be used to start a run. From the main directory of the project execute one of:

```
python abstract_rl/src/scripts/mpo_qube.py
python abstract_rl/src/scripts/mpo_cartpole.py
python abstract_rl/src/scripts/mpo_levitation.py
python abstract_rl/src/scripts/trpo_qube.py
python abstract_rl/src/scripts/trpo_cartpole.py
python abstract_rl/src/scripts/trpo_levitation.py
```


text:
# openfisca-djangoapi

A database and Django webserver layer for serving OpenFisca rulesets

## Serving Locally and Deploying

#### Serving locally
This repo can be served in two ways:
1) Serve with a local development environment :heavy_check_mark:
   - Instructions in [local_deployment.md](docs/local_deployment.md)
2) Serve with Docker
   - Not recommended (this functionality is currently broken :warning:) :warning:
   - Instructions in [docker_deployment.md](docs/docker_deployment.md)

#### Deploying
- This app can be deployed in a number of ways, we'll leave that up to you :wink:
- But, here are some considerations
   - This app uses a sqlite3 database. SQLite runs in memory, and backs up its data store in files on disk. Thus, a persistent filesystem is required - and platforms with ephemeral filesystems (such as Heroku) are not suitable.

## Serve with a local development environment (recommended)
We recommend you build and serve this Django application locally.

To do this, follow these instructions: [local_deployment.md](docs/local_deployment.md).

## Serve with Docker
Not recommended (this functionality is currently broken :warning:)

To do this, follow these instructions: [docker_deployment.md](docs/docker_deployment.md).

## Awesome resources

See [additional_resources.md](docs/additional_resources.md) to learn more about all the different components used in this repository.


text:
# Configuration

Since version 0.10, aria2p reads configuration from `$XDG_CONFIG_HOME/aria2p/config.toml`.

Things that can be configured are:

- key bindings
- colors

Upon running aria2p version 0.10 or above,
the configuration will be created with default values
if it doesn't already exist.

The format of the configuration file
is [TOML](https://github.com/toml-lang/toml).

You can bind several key to a single action if you want:

```toml
FOLLOW_ROW = "F"    # only one key
HELP = ["F1", "?"]  # multiple keys
```

license: ISC

gha_license_id: ISC


text:
# Screenshotter

A Node server that takes screenshots of websites
with [node-webshot](https://github.com/brenden/node-webshot).

## Install

```shell
npm install
```

## Running

```shell
npm start # listens on 8080 by default
```

## Usage

You can either get the image via an HTTP response, or instruct `screenshotter`
to save the screenshot in a path within its local filesystem.

### Get the screenshot in the HTTP response

The following shell script uses `curl` to request a screenshot for `lucify.com`,
receives it in the body of a HTTP response, and pipes the result into `img.jpg`.

```shell
read -r -d '' BODY <<EOF
{
  "url": "lucify.com",
  "options": {
    "streamType": "jpg",
    "quality": 90,
    "windowSize": {
      "width": 2000,
      "height": 1500
    }
  }
}
EOF
echo $BODY | curl -v -X POST -H "Content-Type: application/json" -d '@-' localhost:8080/ > img.jpg
```

### Save the screenshot in a file

The following shell script uses `curl` to request the screenshotter running at `localhost:8080`
to take a screenshot of `lucify.com` and store it in its local filesystem in `/tmp/screenshot.jpg`.
On success, the screenshotter responds with status code `200`.

```shell
read -r -d '' BODY <<EOF
{
  "url": "lucify.com",
  "fileName": "/tmp/screenshot.jpg",
  "options": {
    "streamType": "jpg",
    "quality": 90,
    "windowSize": {
      "width": 2000,
      "height": 1500
    }
  }
}
EOF
echo $BODY | curl -v -X POST -H "Content-Type: application/json" -d '@-' localhost:8080/
```

## Docker

Screenshotter can be run in Docker. Docker needs to be installed in order to run these commands.

Build Docker image with
```shell
docker build -t screenshotter .
```

You can then run it with
```shell
docker run --rm -ti -e 'DEBUG=1' -p 8080:8080 screenshotter
```

## Remarks

There's an issue with `webshot` on newer node versions, so we install it straight
from a [Pull Request](https://github.com/brenden/node-webshot/pull/150).

## License

[MIT](LICENSE)

repository: petebytes/screenshotter

repo_name: petebytes/screenshotter


text:
# OCluster - getLastPosition()

Retrieves the last Record ID position in the cluster.

## Getting Record Positions

When you query OrientDB, the records in the result-set each have a Record ID, which is composed of two numbers.  The first number is the Cluster ID, the second is the record's position in the cluster.  Using this method you can retrieve the last record position in this cluster.

### Syntax

```
long OCluster().getLastPosition()
```

#### Return Value

This method returns a `long` value that represents the last record position in the cluster.

repository: orientechnologies/orientdb-docs

gha_language: CSS

repo_name: orientechnologies/orientdb-docs


text:
---
title: 'Customizing your recruiting process (and online recruiting software)'
date: '2016-11-08'
categories:
  - 'recruiting-strategy'
slug: 'customising-recruiting-process'
seoTitle: 'Customizing your recruiting process (and online recruiting software)'
seoDescription: 'To beat the competition, you have to stand out from the crowd. For recruiters, a recruiting system is the best thing to do. We give tips to customize it!'
author: 'Orla-Hodnett'
coverImage: '/images/online-recruiting-software.jpg'
---

Remember when bedazzling was a thing? For a brief time in the 90s, you weren't a pre-teen girl worth your salt if you hadn't embellished a t-shirt or hat with rhinestones or glitter.

Why can't we jazz up a careers page or glitz up a recruiting procedure? The bedazzling tool of the recruiter is online recruiting software and here are a few ways you can customize your application process. Might not work so well with old jeans though.

#### Mind your language

Localisation is an essential part of marketing and sales in a globalised world. The recruiter is ultimately a salesperson, so why should recruiting be any different? If you need a [candidate with a particular language set](http://hirehive.io/blog/recruiter-abroad-hire-multilingual-candidates-globally/), advertise in the desired language.

HireHive helps in this endeavour, by helping you to localise job application forms and automatic responses, ensuring an improved experience for your applicants. You can customize your application process to suit your candidates perfectly.

#### Custom questions

You know for certain, with particular roles, that there are some skill sets or requirements you cannot do without. In advertising jobs, you should just come out and ask them. Knowing this can determine whether a candidate is suitable for a job or not.

HireHive allows you to customise your job application process to include a set of basic questions. This seriously helps your filtering of candidates and helps candidates understand what you need.

#### Custom careers site

A customized careers site screams professionalism and looks impressive to candidates. You can ensure your branding is consistent and offer further insight on available roles to your prospective employees. Your careers page can reflect your organisation's culture and needs clearly.

> Using HireHive, you can create a customized careers site for any roles you may currently have on offer

Using HireHive, you can create a customized careers site for any roles you may currently have on offer. You can even categorise them by department or business area, making the site much easier to browse.

#### Customizing stages in the pipeline

Having a well-oiled, well-running hiring process will save time and money. Having a process for advertising, filtering, screening, interviewing and, finally, hiring, will give you and your team confidence in the process. Once that is in place, the recruiting process becomes straightforward and seamless.

However you hire, HireHive helps you to categorise your candidates, no matter how many stages they may go through. You can create stages and give them distinctive names to label them. Whatever form your process takes, [HireHive can be customised](http://hirehive.io/help/managing-jobs/customising-the-application-process/) to reflect that.

> If you need a candidate with a very specific skill set, a test or assessment may be necessary as part of the recruiting process

#### Assessments or tests

If you need a candidate with a very specific skill set, a test or assessment may be necessary as part of the recruiting process. If the candidate does not pass muster, you can exclude them from consideration.

Tasks can vary from problem-solving to copywriting to writing examples of code. If you can put together a standard test for all applicants, you can include it early on in the application process, so candidates can demonstrate their abilities.

gha_language: Svelte


text:
# Fakturace pro Nette Framework

Nastavení v **config.neon**
```neon
services:
    - NAttreid\Invoice\IInvoiceFactory
```

Použití v presenteru
```php
/** @var \NAttreid\Invoice\PrintInvoice  @inject */
public $printInvoice;

function createComponentList(){
    $receiver = new \NAttreid\Invoice\Entities\Receiver();
    $receiver->name = $obj->company;
    $receiver->ico = $obj->ico;
    $receiver->dic = $obj->dic;
    $receiver->street = $obj->address;
    $receiver->city = $obj->city;

    $supplier = new \NAttreid\Invoice\Entities\Supplier;
    $supplier->ico = $obj->ico;
    $supplier->dic = $obj->dic;
    $supplier->name = $obj->name;
    $supplier->street = $obj->street;
    $supplier->zip = $obj->zip;
    $supplier->city = $obj->city;
    $supplier->country = $obj->country;
    $supplier->text = $obj->text;
    $supplier->bankAccount = $obj->bankAccount;
    $supplier->iban = $obj->iban;
    $supplier->swift = $obj->swift;
    $supplier->phone = $obj->phone;
    $supplier->email = $obj->email;

    $invoice = new \NAttreid\Invoices\Entities\Invoice();
    $invoice->id = $obj->id;
    $invoice->variable = $obj->variable;
    $invoice->constant = $obj->constant;
    $invoice->dueDate = $obj->dueDate;
    $invoice->dateIssue = $obj->dateIssue;
    $invoice->taxDate = $obj->taxDate;
    $invoice->vat = $obj->vat;
    $invoice->text = $obj->text;
	$invoice->currency = new \NAttreid\Invoices\Entities\Currency\EUR();

    $invoice->receiver = $receiver;
    $invoice->supplier = $supplier;

    foreach ($obj->items as $obji) {
        $item = new Item();
        $item->name = $obj->name;
        $item->price = $obj->price;
        $item->vat = $obj->vat;
        $item->amount = $obj->amount;
        $invoice->addItem($item);
    }

    $printer = $this->printInvoice;

    // pro zmenu jazyka
    $printer->getTranslator()->setLang('cs');

    $printer->setInvoice($invoice);
    $response = $printer->getResponse();
    $this->sendResponse($response);
}
```

repository: nattreid/invoices

repo_name: nattreid/invoices


text:
---
title: Raytracing - Image Output
layout: post
image: 2018-07-15-raytracing-image-output/raytracing-image-output-1.jpg
---

The "Hello World!" of Computer Graphics.

# Image Output
There are lots of file formats to choose to pack raytracing results, and the one that the book recommended is PPM format.

## PPM Format

PPM aka the **portable pixmap format**, along with the portable graymap format (PGM) and the portable bitmap format (PBM) are image file formats belong to Netpbm formats family, designed to be easily exchanged between platforms.
```
P3
3 2
255
# The part above is the header
# "P3" means this is a RGB color image in ASCII
# "3 2" is the width and height of the image in pixels
# "255" is the maximum value for each color
# The part below is image data: RGB triplets
255   0   0     0 255   0     0   0 255
255 255   0   255 255 255     0   0   0
```
save the code with ```.ppm``` extension and open in software like [XnViewer](https://www.xnview.com/en/) :

## C++ File Output
We can just use standard input/output stream objects from ```<iostream>``` to output results and copy them from command line and save as ```.ppm``` file, or we can write files directly with library ```<fstream>```.

``` c
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    // Resolution 200x100 pixels
    int nx = 200;
    int ny = 100;

    ofstream outfile( "render.ppm", ios_base::out);
    // Output to .ppm file
    outfile << "P3\n" << nx << " " << ny << "\n255\n";
    // Output to command line
    std::cout << "P3\n" << nx << " " << ny << "\n255\n";

    // Draw image pixels from top to bottom, left to right
    for (int j = ny-1; j >= 0; j--)
    {
        for (int i = 0; i < nx; i++)
        {
            float r = float(i) / float(nx);
            float g = float(j) / float(ny);
            float b = 0.2;
            // Get rgb values within range (0.0, 1.0)
            // Cast to integers and map to (0, 255)
            int ir = int (255.99*r);
            int ig = int (255.99*g);
            int ib = int (255.99*b);

            outfile << ir << " " << ig << " " << ib << "\n";
            std::cout << ir << " " << ig << " " << ib << "\n";
        }
    }
}
```
Output image is the one on the top of the page.

# Other Formats
On [Peter Shirley's Graphics Blog](http://psgraphics.blogspot.com/2015/06/a-small-image-io-library-stbimageh.html) he introduced a small all-in-one image IO library: [stb_image.h](https://github.com/nothings/stb/blob/master/stb_image.h) to output more common image formats.
JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib)
- PNG 1/2/4/8/16-bit-per-channel
- TGA (not sure what subset, if a subset)
- BMP non-1bpp, non-RLE
- PSD (composited view only, no extra channels, 8/16 bit-per-channel)
- GIF (*comp always reports as 4-channel)
- HDR (radiance rgbE format)
- PIC (Softimage PIC)
- PNM (PPM and PGM binary only)


text:
---
date: 2021-05-23
title: Altering Tables
categories:
  - databases
description: How to alter a table using SQL
type: Document
order_number: 3
---
## Altering a Table

Tables can have its columns or constraints altered with the following command.

```
ALTER TABLE table_name
(columns to be altered go here)
```

## Types of Alterations

* ADD column_name datatype
* DROP column_name
* MODIFY column_name datatype


text:
# Isomorphic One Time Password library

> Fork from [notp](https://github.com/guyht/notp)

Simple to use, fast, and with zero dependencies.  The Isomorphic Time Password library both for node and browser is fully compliant with [HOTP](http://tools.ietf.org/html/rfc4226) (counter based one time passwords) and [TOTP](http://tools.ietf.org/html/rfc6238) (time based one time passwords).  It can be used in conjunction with the [Google Authenticator](https://github.com/google/google-authenticator/) which has free apps for iOS, Android and BlackBerry.

# Installation

```
npm install iotp
```

# Usage

```javascript
var iotp = require('iotp');

//.... some initial login code, that receives the user details and TOTP / HOTP token

var key = 'secret key for user... could be stored in DB';
var token = 'user supplied one time use token';

// Check TOTP is correct (HOTP if hotp pass type)
var login = await iotp.totp.verify(token, key);

// invalid token if login is null
if (!login) {
    return console.log('Token invalid');
}

// valid token
console.log('Token valid, sync value is %s', login.delta);
```

## Google Authenticator

[Google authenticator](https://github.com/google/google-authenticator/) requires that keys be base32 encoded before being used. This includes manual entry into the app as well as preparing a QR code URI.

To base32 encode a utf8 key you can use the `thirty-two` module.

```javascript
var base32 = require('thirty-two');

var key = 'secret key for the user';

// encoded will be the secret key, base32 encoded
var encoded = base32.encode(key);

// Google authenticator doesn't like equal signs
var encodedForGoogle = encoded.toString().replace(/=/g,'');

// to create a URI for a qr code (change totp to hotp if using hotp)
var uri = 'otpauth://totp/somelabel?secret=' + encodedForGoogle;
```

Note: If your label has spaces or other invalid uri characters you will need to encode it accordingly using `encodeURIComponent` More details about the uri key format can be found on the [google auth wiki](https://github.com/google/google-authenticator/wiki/Key-Uri-Format)

# API
## hotp.verify(token, key, opt)

Check a counter based one time password for validity.

Returns a `Promise` will resolved to null if token is not valid for given key and options.

Returns a `Promise` will resolved to an object `{delta: #}` if the token is valid. `delta` is the count skew between client and server.

### opt
**window**
> The allowable margin for the counter. The function will check `window` codes in the future against the provided token.
> i.e. if `window = 100` and `counter = 5` all tokens between 5 and 105 will be checked against the supplied token
> Default - 1

**counter**
> Counter value. This should be stored by the application on a per user basis. It is up to the application to track and increment this value as needed. It is also up to the application to increment this value if there is a skew between the client and server (`delta`)

## totp.verify(token, key, opt)

Check a time based one time password for validity

Returns a `Promise` will resolved to null if token is not valid for given key and options.

Returns a `Promise` will resolved to an object `{delta: #}` if the token is valid. `delta` is the count skew between client and server.

### opt
**window**
> The allowable margin for the counter. The function will check `window` codes in the future against the provided token.
> i.e. if `window = 5` and `counter = 1000` all tokens between 995 and 1005 will be checked against the supplied token
> Default - 1

**time**
> The time step of the counter. This must be the same for every request and is used to calculate C.
> Default - 30

## hotp.gen(key, opt)

Returns a `Promise` will resolved to a counter based one time password

### opt
**counter**
> Counter value. This should be stored by the application, must be user specific, and be incremented for each request.

## totp.gen(key, opt)

Returns a `Promise` will resolved to a time based one time password

### opt
**time**
> The time step of the counter. This must be the same for every request and is used to calculate C.
> Default - 30

## Changed from 2.x to 3.x

* Support for browser.
* Use async API style because browser crypto API is async.

repository: mountainmoon/iotp

repo_name: mountainmoon/iotp


text:
# Click Listener

If you want to get information about what the user has clicked on, you can set up a callback function. The callback function looks like this:

```javascript
function clickListener(abcelem, tuneNumber, classes, analysis, drag, mouseEvent) {
}

renderAbc("paper", abcString, { clickListener: clickListener })
```

Here is the data that is returned to you:

## abcelem

The internal object that is associated with the element clicked. Use a debugger to see what is available.

::: tip Tip
This object is subject to change as the library gets more functionality. There is not a guarantee that it will stay backwards compatible. But that said, the structure of this object doesn't change much and usually just adds properties.
:::

## tuneNumber

If there are more than one tune in the original abcString, this reports which tune was clicked on.

## classes

The css classes of the element that was clicked. (This requires the parameter `{ add_classes: true }`).

## analysis

An object containing the following info about the item clicked:
 ```
{
    line: 0, // zero-based line
    measure: 0, // zero-based measure from the beginning of the line
    voice: 0, // zero-based voice
    staffPos: { top: 0, height: 0, zero: 0 } // the Y-coordinates in the SVG for the staff system that contains the item. "zero" is the Y-coordinate of the middle-C.
}
```

## drag

See the [Dragging](./dragging.md) page for more details.

## mouseEvent

The original event that triggered this callback.

repository: bacti/abcjs

gha_license_id: NOASSERTION

repo_name: bacti/abcjs


text:
---
path: "/policy/visa-free-business-and-tourism-travel-for-ukrainian-citizens"
date: "Tue Mar 06 2018 00:08:44 GMT-0500 (EST)"
title: "Visa-Free Business and Tourism Travel for Ukrainian Citizens"
---

 **WHEREAS**

* Canada has a deep and long-standing relationship with Ukraine, including 1.3 million Canadians of Ukrainian descent after 125 years of Ukrainian immigration to Canada, several bilateral programs and, most recently, the Canada-Ukraine Free Trade Agreement (CUFTA);

* Ukrainian-Canadians make up more than 13% of Saskatchewan’s population;

* Canadian-Ukrainian bilateral trade represents nearly $375 million/year and is expected to double with the signing of CUFTA;

* Western Canada is expected to be the primary beneficiary of CUFTA, with nearly $140 million worth of exports a year from 2014-16;

* Ukraine unilaterally eliminated the need for short-term visas forCanadian citizens in 2005, while Ukrainian business leaders still require cumbersome visas to engage in business activities in Canada;

* more than one-third of Ukrainian visa applications were denied in the first quarter of 2017;

* the EU eliminated the needfor visas for Ukrainian citizens in 2017 and has seen a refusal rate of just 0.026% since its implementation (June –Sept. 2017);

* the Liberal Party of Canada committed during the 2015 election that a Liberal government “would work to achieve this goal” [abolition of visas for short-term travel];

**BE IT RESOLVED** the Liberal Government of Canada will eliminate the need for business and tourist visas for Ukrainian citizens with biometric passports for stays of not longer than 90 days.(Saskatchewan)


text:
## About
This is [my personal website](https://kimlimjustin.github.io/) created using HTML, CSS and Vanilla JavaScript hosted using GitHub Pages.

| Demo | Demo |
| ---- | --- |
| ![Demo](https://drive.google.com/uc?export=view&id=12jAD0hDs1DNIhSt8GEK5o6zbVTIrg2Df) | ![Demo](https://drive.google.com/uc?export=view&id=1P_dInyfUjONT4n1y8MQNnSeT80j4FjMq) |

## Features
- Loading animation using CSS
- Animate on scroll using AOS library
- Recent blog from dev.to using [DEV API](https://docs.forem.com/api/)
- Dark theme and light theme
- A terminal simulator built using Vanilla JavaScript
- Multilingual Resources

## License
[MIT](https://github.com/kimlimjustin/kimlimjustin.github.io/blob/master/LICENSE)