text:
---
layout: default
---

# 1997-05-27 - SSN and passport

## Header Data

From<EMAIL_ADDRESS>(Anonymous)

To<EMAIL_ADDRESS>Message Hash: ce77f851f6ac24e42e42622622299aaabb4ef8301b33a095dfa4107e7664d6cf

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1997-05-27 20:57:59 UTC

Raw Date: Wed, 28 May 1997 04:57:59 +0800

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(Anonymous)
Date: Wed, 28 May 1997 04:57:59 +0800
To<EMAIL_ADDRESS>Subject: SSN and passport
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

     I recently applied for a U.S. passport and, as an experiment,
entered a SSN of 000-00-0000.  The nice lady at the counter informed
me that it would not be processed unless I provided a valid SSN (which
gets forwarded to the IRS).  It was my understanding that this
disclosure was voluntary and that another form was available for
notifying the IRS that a passport had been applied for.

     My travel plans didn't allow me the luxury of delaying the
application process, so I provided the damn number.  Does anyone know
the real rules for this situation?  Must passports be cleared with the
tax goons or do they just want to keep tabs on people travelling
abroad?

{% endraw %}
```

## Thread

+ Return to [May 1997](/archive/1997/05)

+ Return to "[frissell@panix.com](/authors/frissell_at_panix_com)"
+ Return to<EMAIL_ADDRESS>(Igor Chudov @ home)](/authors/ichudov_at_algebra_com_igor_chudov__at__home_)"
+ Return to "["Mark M." <markm@voicenet.com>](/authors/mark_m__markm_at_voicenet_com_)"
+ Return to<EMAIL_ADDRESS>(Anonymous)](/authors/nobody_at_hidden_net_anonymous_)"
+ Return to "[Tim May <tcmay@got.net>](/authors/tim_may_tcmay_at_got_net_)"

+ 1997-05-27 (Wed, 28 May 1997 04:57:59 +0800) - SSN and passport -<EMAIL_ADDRESS>(Anonymous)_
  + 1997-05-27 (Wed, 28 May 1997 06:09:34 +0800) - [Re: SSN and passport](/archive/1997/05/110e8e945d78232bd3edd13c41fdbfe3e4670448b50aaaf3375231258ca97376) - _"Mark M."<EMAIL_ADDRESS>  + 1997-05-28 (Wed, 28 May 1997 08:54:00 +0800) - [Re: SSN and passport](/archive/1997/05/60d8655b26299717312ea42839886d3b0fb71fb9114d2e9ff2091c9369c574e5) -<EMAIL_ADDRESS>  + 1997-05-28 (Wed, 28 May 1997 13:08:53 +0800) - [Re: SSN and passport](/archive/1997/05/6e08d3be75e47bf40182032141e89d867e2d3a8d9da3744f343a728b4178454b) - _Tim May<EMAIL_ADDRESS>    + 1997-05-28 (Wed, 28 May 1997 13:21:51 +0800) - [Re: SSN and passport](/archive/1997/05/55012f618d5f7f5329dc707931766e84e79f8b9a4069501ca7fdd370fbafc8ee) -<EMAIL_ADDRESS>(Igor Chudov @ home)_


text:
# 🧹 Web Scraping
By Anthony Vilarim Caliani

[![#](https://img.shields.io/badge/licence-MIT-blue.svg)](#) [![#](https://img.shields.io/badge/python-3-yellow.svg)](#) [![#](https://img.shields.io/badge/beautiful--soup-4.7.1-brightgreen.svg)](#)

## Description
App to learn about Web Scraping using Python and _beautiful-soup_ lib.

## Quick Start

> 👉 Before run these scripts make sure that you are using a Python 3 virtual environment ;)

```sh
# Start App
python main.py
```

---

_You can find [@avcaliani](#) at [GitHub](https://github.com/avcaliani) or [GitLab](https://gitlab.com/avcaliani)._

license: MIT

repository: duperez/python

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: duperez/python


text:
# keywords2vec
> A simple and fast way to generate a word2vec model, with multi-word keywords instead of single words.

## Example result

Finding similar keywords for "__obesity__"

| index | term                        |
|-------|-----------------------------|
| 0     | overweight                  |
| 1     | obese                       |
| 2     | physical inactivity         |
| 3     | excess weight               |
| 4     | obese adults                |
| 5     | high bmi                    |
| 6     | obese adults                |
| 7     | obese people                |
| 8     | obesity-related outcomes    |
| 9     | obesity among children      |
| 10    | poor sleep quality          |
| 11    | ssbs                        |
| 12    | obese populations           |
| 13    | cardiometabolic risk        |
| 14    | abdominal obesity           |

## Install

`pip install keywords2vec`

## How to use

Lets download some example data

```
data_filepath = "epistemonikos_data_sample.tsv.gz"

!wget "https://s3.amazonaws.com/episte-labs/epistemonikos_data_sample.tsv.gz" -O "{data_filepath}"
```

Import

```
from keywords2vec.main import similars_tree, get_similars
```

We create the model.

```
labels, tree = similars_tree(data_filepath)
```

More info, take a look [here](30_main.ipynb)

Then we can get the most similars keywords

```
get_similars(tree, labels, "obesity")
```

    ['obesity',
     'overweight',
     'obese',
     'physical inactivity',
     'excess weight',
     'high bmi',
     'obese adults',
     'obese people',
     'obesity-related outcomes',
     'obesity among children',
     'poor sleep quality',
     'ssbs',
     'obese populations',
     'cardiometabolic risk',
     'abdominal obesity']

```
get_similars(tree, labels, "heart failure")
```

    ['heart failure',
     'hf',
     'chf',
     'chronic heart failure',
     'reduced ejection fraction',
     'unstable angina',
     'peripheral vascular disease',
     'peripheral arterial disease',
     'angina',
     'congestive heart failure',
     'left ventricular systolic dysfunction',
     'acute coronary syndrome',
     'heart failure patients',
     'acute myocardial infarction',
     'left ventricular dysfunction']

### Motivation

The idea started in the Epistemonikos database [www.epistemonikos.org](https://www.epistemonikos.org), a database of scientific articles for people making decisions concerning clinical or health-policy questions. In this context the scientific/health language used is complex. You can easily find keywords like:

 * asthma
 * heart failure
 * medial compartment knee osteoarthritis
 * preserved left ventricular systolic function
 * non-selective non-steroidal anti-inflammatory drugs

We tried some approaches to find those keywords, like ngrams, ngrams + tf-idf, identify entities, among others. But we didn't get really good results.

### Our approach

We found that tokenizing using stopwords + non word characters was really useful for "finding" the keywords. An example:

* input: "Timing of replacement therapy for acute renal failure after cardiac surgery"
* output: [
	"timing",
	"replacement therapy",
	"acute renal failure",
	"cardiac surgery"
]

So we basically split the text when we find:
 * a stopword
 * a non word character(/,!?. etc) (except from - and ')

That's it.

But as there were some problem with some keywords that cointain stopwords, like:
 * Vitamin A
 * Hepatitis A
 * Web of Science

So we decided to add another method (nltk with some grammar definition) to cover most of the cases. To use this, you need to add the parameter `keywords_w_stopwords=True`, this method is approx 20x slower.

### References

Seem to be an old idea (2004):

*Mihalcea, Rada, and Paul Tarau. "Textrank: Bringing order into text." Proceedings of the 2004 conference on empirical methods in natural language processing. 2004.*

Reading an implementation of textrank, I realize they used stopwords to separate and create the graph. Then I though in using it as tokenizer for word2vec

As pointed by @deliprao in this [twitter thread](https://twitter.com/jeremyphoward/status/1094025901371621376). It's also used by Rake (2010):

*Rose, Stuart & Engel, Dave & Cramer, Nick & Cowley, Wendy. (2010). Automatic Keyword Extraction from Individual Documents. 10.1002/9780470689646.ch1.*

As noted by @astent in the Twitter thread, this concept is called chinking (chunking by exclusion)
[https://www.nltk.org/book/ch07.html#Chinking](https://www.nltk.org/book/ch07.html#Chinking)

### Multi-lingual
We worked in an implementation, that could be used in multiple languages. Of course not all languages are sutable for using this approach. We have tried with good results in English, Spanish and Portuguese

## Try it online

You can try it [here](http://<IP_ADDRESS>/episte/) (takes time to load, lowercase only, doesn't work in mobile yet) MPV :)

These embedding were created using 827,341 title/abstract from @epistemonikos database.
With keywords that repeat at least 10 times. The total vocab is 349,080 keywords (really manageable number)

## Vocab size

One of the main benefit of this method, is the size of the vocabulary.
For example, using keywords that repeat at least 10 times, for the Epistemonikos dataset (827,341 title/abstract), we got the following vocab size:

| ngrams             | keywords  | comp    |
|--------------------|-----------|---------|
| 1                  | 127,824   | 36%     |
| 1,2                | 1,360,550 | 388%    |
| 1-3                | 3,204,099 | 914%    |
| 1-4                | 4,461,930 | 1,272%  |
| 1-5                | 5,133,619 | 1,464%  |
|                    |           |         |
| stopword tokenizer | 350,529   | 100%    |

More information regarding the comparison, take a look to the folder [analyze](analyze).

## Credits

This project has been created using [nbdev](https://github.com/fastai/nbdev)

gha_language: Jupyter Notebook


text:
## Creating a M.E.A.N. Vagrant Virtual Development Environment ##

### Vagrant ###

[Vagrant](http://docs.vagrantup.com/v2/why-vagrant/index.html) is open-source software used to create lightweight and portable virtual development environments. Vagrant works like a "wrapper" for VirtualBox that can create, configure, and destroy virtual machines with the use of its own terminal commands. Vagrant facilitates the setup of environments without any direct interaction with VirtualBox and allows developers to use preferred editors and browsers in their native operating system. [This blog](http://mitchellh.com/the-tao-of-vagrant) describes a typical workflow using Vagrant in a development environment.

### MEAN Stack ###

[MEAN](http://mean.io) is a boilerplate that provides a nice starting point for [MongoDB](http://www.mongodb.org/), [Node.js](http://www.nodejs.org/), [Express](http://expressjs.com/), and [AngularJS](http://angularjs.org/) based applications. It is designed to give you quick and organized way to start developing of MEAN based web apps with useful modules like mongoose and passport pre-bundled and configured. We mainly try to take care of the connection points between existing popular frameworks and solve common integration problems.

###  Install Vagrant ###

* Download and install [VirtualBox 4.3.12](https://www.virtualbox.org/wiki/Downloads)
* Download and install [Vagrant 2.0.3](https://www.vagrantup.com/downloads.html)

#### Windows Users ####

- Download [Git for Windows](http://msysgit.github.io/):
  - Run the installer and "next" through the wizard until the step to adjust your PATH environment.
  - Choose the third option, "Run Git and included tools from within the Windows Command prompt"
  - **Important**: On the next step, "Configuring the line ending conversions", choose the second option:       "Checkout as-is, commit Unix-style line endings".
  - Choose "next" through any additional steps to complete the Git for Windows install.
  - Open the Windows Command Prompt as **Administrator**

### Get the Code

[Fork](https://github.com/linnovate/mean/fork) the `mean` and [fork](http://github.com/lynnaloo/mean-vagrant) the  `mean-vagrant` repositories on Github.

Clone your forks of the `mean` repositories to a directory on your host machine:

    git clone https://github.com/<username>/mean.git
    git clone --recursive https://github.com/<username>/mean-vagrant.git

Change directory to your `mean-vagrant` directory:
    cd mean-vagrant

### Setup Vagrant ###

Once you `cd` into the mean-vagrant directory, you will find a "Vagrantfile" which will provide
the necessary instructions and provisioning to setup your MEAN virtual machine. All Vagrant commands
should be performed in this directory with your Vagrantfile.

*Note: In the `Vagrantfile`, ensure that the `source` variable to matches a path of the cloned Mean source code
relative to the Vagrantfile:* `source = "../mean"`

### Install VirtualBox Guest Additions Plugin

    vagrant plugin install vagrant-vbguest

### Connect to the Virtual Machine ###

Start the virtual machine:

    vagrant up

Connect to the virtual machine via ssh:

    vagrant ssh

- The MEAN source code is synced to the folder `~/mean`

Start the Mean server using grunt:

    cd mean
    grunt

Launch your local browser and navigate to `http://localhost:3000`

repository: lynnaloo/mean-vagrant

gha_language: Puppet

gha_license_id: MIT

repo_name: lynnaloo/mean-vagrant


text:
# paip

Implementations in Clojure of exercises in Peter Norvig's book "Paradigms of Artificial Intelligence Programming"

## License

Copyright © 2017 Giovanni Martina

repository: drayah/paip

repo_name: drayah/paip


text:
---
title:  Inside Story
date:  18/02/2022
---

#### Sabbath or Scholarship?

_By Andrew McChesney_

It was an offer the Seventh-day Adventist girl could not refuse: a full scholarship to study at a private non-Christian school.

Malevelev grew up in an Adventist home and had been taught to remember God in all her decisions. She planned to enter Taiwan Adventist Academy when she finished sixth grade. Then recruiters from a private school showed up in her village and offered her a full scholarship.

Tuition was high at Taiwan Adventist Academy, and it would be difficult for her parents to afford it. They asked the girl to go to the private school.

During summer vacation, Malevelev visited the school and saw she would be required to attend classes on Sabbath. She wouldn’t be able to go to church to worship God. A conflict erupted within her: Should she accept the scholarship or keep the Sabbath? She knew she should choose the Sabbath.

At the end of the summer, Malevelev’s parents insisted she go to the private school. The girl felt dreadfully discouraged, and she prayed fervently.

“God, help me,” she prayed. “Show me what to do.”

Taking courage, she spoke kindly but firmly to her parents. “I want to go to Taiwan Adventist Academy,” she said. “I will not go to classes on Sabbath because I want to go to church.”

She explained her desire to remain faithful to God by keeping all ten commandments, including the fourth, “Remember the Sabbath day, to keep it holy” (Exodus 20:8, NKJV).

“I don’t want to betray the truth taught by my grandfather,” she said.

Seeing the girl’s determination, her parents allowed her to study at the Adventist academy. Malevelev has studied for five years at the school and is in the 11th grade. “I have wonderful teachers and classmates, and we are like a big family,” she said. “I have made many Christian friends. We have morning and evening worship together, we pray together, and we study together. I cherish every moment at the school.”

Malevelev is hopeful for the future. “I know God will lead me and fulfill His wonderful plan for me,” she said. “When you need to make an important decision, believe in God and choose according to His will and pleasure. I encourage myself with [Ecclesiastes 12:1] all the time. Now I am sharing my secret with you, and may God bless you.”

_This mission story illustrates the following components of the Seventh-day Adventist Church’s “I Will Go” strategic plan: Spiritual Growth Objective Number 7, “To help youth and young adults place God first and exemplify a biblical worldview.” Learn more about the strategic plan at IWillGo2020.org._

repository: Adventech/sabbath-school-lessons

branch_name: refs/heads/stage

repo_name: Adventech/sabbath-school-lessons


text:
---
title:  "Smiley's Adventure"
date:   2011-12-12
categories: [Project, GameMaker]
tags: [gamemaker, video game, demo, maze, adventure, fun, smiley-adventure]
image: /assets/img-preview/gm-1.jpg
gm-game-idx: 1
---

My very first step in programming, "Smiley's Adventure" is the first game that I did realise using Game Maker!
Navigate the dangerous maze with the smiley face to try to reach the green flag

{% include gm-details.html %}

The inspiration for it came from a random Game Maker tutorial on YouTube that I watched the first 2 minutes.
As you will see with the different project that I did, my infographics skills are pretty bad,
as such, most of the pictures were found on internet.
My lack of experience with the software also explains why most picture have strange white borders and strange animations.

The game controls are as bad as the visuals, my lack of knowledge in coding strike back.
It's quite common to get stuck and be forced to go back even if visually it should fit.
I discovered a few years after that the character picture actually have some black pixels around him which have collisions
as the background is also black, we can't see them and therefore realise the real "hit-box".

While we are on the topic of programming, an experienced programmer will probably be very sad to see the "code"
(I used "programming blocks" back then).
Most of it have no purpose as it is used in context that does not make sense.

Despite all of its faults, it has a special place in my heart and some of its concepts was pretty interesting
(and will actually be reuse in future projects).
For instance; the fake walls which destroy on collision, having another object moving with the player control, etc.

In a nutshell, this game is not extraordinary, but have the privilege of being my very first real programming experience,
guiding me to what would become my biggest passion in life even until now!

branch_name: refs/heads/main


text:
# Author: [Gaurav Kabra](https://www.quora.com/profile/Gaurav-Kabra-23)

# Run these commands in VSCode terminal:

dotnet new console --force : This initializes the project

dotnet run : This runs the code

# How to Play?
You have 5 lives. That means you can try 5 times to guess the integer

which is between 1 to 10 (both inclusive).

Once you guess it correct OR you run out of lives

you will be asked to continue.

Pressing any key other than Y or y will result in closing of game immediately.
### Note:
Throughout game, colors on console mean something:

RED : invalid input (e.g. too long input or instead of integer you enter type-inconsistent value) OR you are left with final life!

GREEN : You guessed the number correctly. Congrats for that!

WHITE : Rest text (including crash-reports (exceptions) IF ANY)

##### App
Go to [bin/VSProj.exe](https://github.com/gaurav-kabra-official/Guess-The-Number/blob/master/bin/Debug/netcoreapp3.1/CSProj.exe) and run it after download. Happy gaming ^_^

repository: kabragaurav/Guess-The-Number

repo_name: kabragaurav/Guess-The-Number


text:
---
title: "My Life as a Teenage Zuckerberg"
---

<img src="/blog/img/zuckerberg-political-cartoon.jpg" alt="A political cartoon about Mark Zuckerberg's Senate hearing.">

Okay, so two posts about the Facebook drama, but this is more about the trial. How does it relate to design? So many questions during Zuckerberg's Senate hearing were about services we as users already have access to and settings have access to control. It is silly to me that these "political leaders" did not do thorough research into privacy rights on the social media app. Is it a design issue that these people can't find their settings? Maybe, but Facebook is already working on that. More likely, these people didn't think to look for them until they absolutely had to.

Source: New York Daily News
Artist: Bill Bramhall

repository: bradderamon/blog

extension: markdown

repo_name: bradderamon/blog


text:
---
title: 'Dear Instructional Designer Show!: Interview with James Finder'
path: "/blog/dear-instructional-designer-show-interview-with-james-finder"
date: '2016-06-23'
featured: "../featured/twitter.jpg"
categories: ["Dear ID Show"]
tags: ["business", "instructional design", "solopreneur"]
---

Today’s interview is with James Finder, an ID I met on the instructional design subreddit. James is our first ID entrepreneur on the show. If you're thinking about starting up a business and striking out on your own, James shares valuable insight for this path. James shares his instructional design journey, the interesting client industry he's focusing on, and how he deals with the challenges of being a solo-preneur.

<iframe src="https://simplecast.com/e/38102?style=medium-light" width="100%" height="94px" frameborder="0" scrolling="no" seamless=""></iframe>

Remember: shownotes are on [Dear Instructional Designer show page](https://dearinstructionaldesigner.simplecast.fm/). Be sure to [hit James up on Twitter](https://twitter.com/getplexdesign) and show him some love for sharing his experience. Also, [leave a review on iTunes](https://itunes.apple.com/us/podcast/dear-instructional-designer/id1111995456?mt=2). Let me know what you're thinking about the podcast:

repository: anthkris/portfolio-site

gha_language: HTML

repo_name: anthkris/portfolio-site


text:
# Automatic allocation of crew positions

Requires [MongoDB driver](https://mongodb.github.io/node-mongodb-native/ "MongoDB") to run.

Algorithm pulls data from 2 collections (positions and crew) in database (crew).
Positions represented in multidimentional object to track position types and grades.

Algorithm runs through each position and filter crew suitable for thsi position according to criteria:
- previous position
- time in grade
- rating duty free
- grade
- has no allocated position
If multiple crew suits filter criteria, than crew selected randomly.

After this selected positions pushed back to crew collection in database.

Thank you.

repository: nevtemu/crew-positions-mongo

repo_name: nevtemu/crew-positions-mongo


text:
---
permalink: /resources/
title: "Resources"
author_profile: true
---

This page has resources I have developed and gathered over the years. Feel free to use them.

## edgarParser ##

EDGAR database contains several types of filings that public companies are required to submit to SEC. Although EDGAR is a rich source of data, gathering the data from it can be not straightforward. The repository [edgarParser](https://github.com/rsljr/python-edgar), has some of the scripts that I coded to gather data about inside trading (3, 4, and 5 filings), 10-k (annual reports) filings, 8-k (disclosure) filings, 13f (institutional investors) filings, and executive compensation (DEF 14A filings) from EDGAR.

## Instrumental Variables ##

Identifying causal effects is an important goal to research in strategy as we seek to inform firms' strategies. Instrumental variable framework allows researchers to estimate the causal effects of endogenous variables. However, identifying a good instrument is a daunting task. Aiming to facilitate the search and the development of new instruments, I have organized the two resources below.

### Instruments for Strategy Research ###
A list of instruments used in strategy research. You can check it out [Instrumental Variables in Strategy](https://roneileonel.shinyapps.io/instrumental_variable_strategy/).

### Instruments for National Cultural Values ###

Based on Nash and Patel's discussion of instruments for national cultural values, I compiled a repository with the data of several instruments cited in the paper. You can access the repository [here](https://github.com/rsljr/cultural_values_instrumental_variables).

## Other resources ##

A list of texts, lectures, videos, and books about doing research and research methods. Access [here](/other_resources).


text:
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [angular-charts](#angular-charts)
    - [Contributors](#contributors)
    - [Got suggestions ?](#got-suggestions-)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

angular-charts
==============

angular directives for common charts using d3, for more information visit

http://chinmaymk.github.io/angular-charts/

###Contributors
* [michalochman](https://github.com/michalochman) - [configurable colors](https://github.com/chinmaymk/angular-charts/commits?author=michalochman)
* [reneolivo](https://github.com/reneolivo) - fix for [bower.json](https://github.com/chinmaymk/angular-charts/commits?author=reneolivo)

License - MIT.

###Got suggestions ?
Feel free to submit a pull request, file an issue, or get in touch on twitter [@_chinmaymk](https://twitter.com/_chinmaymk)

repository: ctimmins/senior-design

repo_name: ctimmins/senior-design


text:
Welcome
=======

Qi is a highly flexible cloud-based sequential data historian that is
used to store, retrieve, and analyze data. You create and write data
to streams using a simple REST API. The streams are able to store simple or
complex data types to suit the application needs. An assortment of
methods with customizable behaviors are available to read data and
easily obtain needed information.

   [OSIsoft_Cloud_Services](OSIsoft_Cloud_Services.md)
   [Management_Overview](Management_Overview.md)
   [Data_Store_and_Qi](Data_Store_and_Qi.md)
   [Data_Ingress](Data_Ingress.md)
   [Access_Control](Access_Control.md)
   [samples](samples.md)
   [support](support.md)

repository: oscdoctest/Qi-Docs

repo_name: oscdoctest/Qi-Docs


text:
Let's go back to 1957.
Representatives
from six European countries
had come to Rome
to sign the treaty that was
to create the European Union.
Europe was destroyed.
A world war had emerged from Europe.
The human suffering was unbelievable
and unprecedented.
Those men
wanted to create a peaceful,
democratic Europe,
a Europe that works for its people.
And one of the many building blocks
in that peace project
was a common European market.
Already back then,
they saw how markets,
when left to themselves,
can sort of slip into being
just the private property
of big businesses and cartels,
meeting the needs of some businesses
and not the needs of customers.
So from our very first day,
in 1957,
the European Union had rules
to defend fair competition.
And that means competition on the merits,
that you compete
on the quality of your products,
the prices you can offer,
the services, the innovation
that you produce.
That's competition on the merits.
You have a fair chance
of making it on such a market.
And it's my job,
as Commissioner for Competition,
to make sure that companies
who do business in Europe
live by those rules.
But let's take a step back.
Why do we need rules
on competition at all?
Why not just let businesses compete?
Isn't that also the best for us
if they compete freely,
since more competition
drives more quality,
lower prices, more innovation?
Well, mostly it is.
But the problem is
that sometimes, for businesses,
competition can be inconvenient,
because competition means
that the race is never over,
the game is never won.
No matter how well
you were doing in the past,
there's always someone
who are out there
wanting to take your place.
So the temptation to avoid competition
is powerful.
It's rooted in motives

as old as Adam and Eve:
in greed for yet more money,
in fear of losing
your position in the market
and all the benefits it brings.
And when greed and fear
are linked to power,
you have a dangerous mix.
We see that in political life.
In part of the world,
the mix of greed and fear
means that those who get power
become reluctant to give it back.
One of the many things
I like and admire in our democracies
are the norms
that make our leaders hand over power
when voters tell them to.
And competition rules
can do a similar thing in the market,
making sure that greed and fear
doesn't overcome fairness.
Because those rules mean
that companies cannot misuse their power
to undermine competition.
Think for a moment about your car.
It has thousands of parts,
from the foam that makes the seats
to the electrical wiring
to the light bulbs.
And for many of those parts,
the world's carmakers,
they are dependent
on only a few suppliers.
So it's hardly surprising
that it is kind of tempting
for those suppliers
to come together and fix prices.
But just imagine what that could do
to the final price
of your new car in the market.
Except, it's not imaginary.
The European Commission
has dealt with already
seven different car parts cartels,
and we're still investigating some.
Here, the Department of Justice
are also looking
into the market for car parts,
and it has called it
the biggest criminal investigation
it has ever pursued.
But without competition rules,
there would be no investigation,
and there would be nothing
to stop this collusion from happening
and the prices of your car to go up.
Yet it's not only companies
who can undermine fair competition.
Governments can do it, too.
And governments do that
when they hand out subsidies
to just the favorite few, the selected.
They may do that
when they hand out subsidies --
and, of course,
all financed by taxpayers --
to companies.
That may be in the form
of special tax treatments,
like the tax benefits
that firms like Fiat,
Starbucks and Apple got
from some governments in Europe.
Those subsidies stop companies
from competing on equal terms.
They can mean that
the companies that succeed,
well, they are the companies
that got the most subsidy,
the ones that are the best-connected,
and not, as it should be,
the companies that serve
consumers the best.
So there are times when we need to step in
to make sure that competition
works the way it should.
By doing that, we help
the market to work fairly,
because competition gives consumers
the power to demand a fair deal.
It means that companies know
that if they cannot offer good prices
or the service that's expected,
well, the customers
will go somewhere else.
And that sort of fairness
is more important
than we may sometimes realize.
Very few people think
about politics all the time.
Some even skip it at election time.
But we are all in the market.
Every day, we are in the market.
And we don't want businesses
to agree on prices in the back office.
We don't want them
to divide the market between them.

If that happens,
well, obviously, we feel
that someone has cheated us,
that we are being ignored
or taken for granted by the market.
And that may undermine
not only our trust in the market
but also our trust in the society.
In a recent survey,
more than two-thirds of Europeans
said that they had felt

the effects of lack of competition:
that the price
for electricity was too high,
that the price for the medicines
they needed was too high,
that they had no real choice
if they wanted to travel
by bus or by plane,
or they got poor service
from their internet provider.
In short, they found that the market
didn't treat them fairly.
And that might seem
like very small things,
but they can give you this sense
that the world isn't really fair.
And they see the market,
which was supposed to serve everyone,
become more like the private property
of a few powerful companies.
The market is not the society.
Our societies are, of course,
much, much more than the market.
But lack of trust in the market
can rub off on society
so we lose trust in our society as well.
And it may be the most important
thing we have, trust.
We can trust each other
if we are treated as equals.
If we are all to have the same chances,
well, we all have to follow
the same fundamental rules.
Of course, some people and some businesses
are more successful than others,
but we do not trust in a society
if the prizes are handed out
even before the contest begins.
And this is where
competition rules come in,
because when we make sure
that markets work fairly,
then businesses compete on the merits,
and that helps to build the trust
that we need as citizens
to feel comfortable and in control,
and the trust that allows
our society to work.
Because without trust,
everything becomes harder.
Just to live our daily lives,
we need to trust in strangers,
to trust the banks who keep our money,
the builders who build our home,
the electrician
who comes to fix the wiring,
the doctor who treats us when we're ill,
not to mention
the other drivers on the road,
and everyone knows that they are crazy.
And yet, we have to trust them
to do the right thing.
And the thing is
that the more our societies grow,
the more important trust becomes
and the harder it is to build.
And that is a paradox of modern societies.
And this is especially true
when technology changes
the way that we interact.
Of course, to some degree,
technology can help us
to build trust in one another
with ratings systems and other systems
that enable the sharing economy.
But technology also creates
completely new challenges
when they ask us
not to trust in other people
but to trust in algorithms and computers.
Of course, we all see
and share and appreciate
all the good that
new technology can do us.
It's a lot of good.
Autonomous cars can give people
with disabilities new independence.
It can save us all time,
and it can make a much, much
better use of resources.
Algorithms that rely on crunching
enormous amounts of data
can enable our doctors
to give us a much better treatment,
and many other things.
But no one is going
to hand over their medical data
or step into a car
that's driven by an algorithm
unless they trust the companies
that they are dealing with.
And that trust isn't always there.
Today, for example,
less than a quarter of Europeans
trust online businesses
to protect their personal information.
But what if people knew
that they could rely
on technology companies
to treat them fairly?
What if they knew that those companies
respond to competition
by trying to do better,
by trying to serve consumers better,
not by using their power
to shut out competitors,
say, by pushing their services
far, far down the list of search results
and promoting themselves?
What if they knew
that compliance with the rules
was built into the algorithms by design,
that the algorithm had to go
to competition rules school
before they were ever allowed to work,
that those algorithms were designed
in a way that meant
that they couldn't collude,
that they couldn't form
their own little cartel
in the black box they're working in?
Together with regulation,
competition rules can do that.
They can help us to make sure
that new technology treats people fairly
and that everyone can compete
on a level playing field.
And that can help us build the trust
that we need for real innovation
to flourish
and for societies to develop for citizens.
Because trust cannot be imposed.
It has to be earned.
Since the very first days
of the European Union,
60 years ago,
our competition rules have helped
to build that trust.
A lot of things have changed.
It's hard to say
what those six representatives
would have made of a smartphone.
But in today's world,
as well as in their world,
competition makes the market
work for everyone.
And that is why I am convinced
that real and fair competition
has a vital role to play
in building the trust we need
to get the best of our societies,
and that starts with enforcing our rules,
actually just to make
the market work for everyone.
Thank you.

(Applause)

Bruno Giussani: Thank you.
Thank you, Commissioner.

Margrethe Vestager: It was a pleasure.

BG: I want to ask you two questions.
The first one is about data,
because I have the impression
that technology and data are changing
the way competition takes place
and the way competition regulation
is designed and enforced.
Can you maybe comment on that?

MV: Well, yes, it is
definitely challenging us,
because we both have to sharpen our tools
but also to develop new tools.
When we were going through
the Google responses
to our statement of objection,
we were going through
5.2 terabytes of data.
It's quite a lot.
So we had to set up new systems.
We had to figure out how to do this,
because you cannot work
the way you did just a few years ago.
So we are definitely
sharpening up our working methods.
The other thing is
that we try to distinguish
between different kinds of data,
because some data is extremely valuable
and they will form, like,
a barrier to entry in a market.
Other things you can just --
it loses its value tomorrow.
So we try to make sure
that we never, ever underestimate the fact
that data works
as a currency in the market
and as an asset that can be
a real barrier for competition.

BG: Google. You fined them
2.8 billion euros a few months ago.

MV: No, that was dollars.
It's not so strong these days.

BG: Ah, well, depends on the --

(Laughter)

Google appealed the case.
The case is going to court.
It will last a while.
Earlier, last year, you asked Apple
to pay 13 billion in back taxes,
and you have also
investigated other companies,
including European and Russian companies,
not only American companies, by far.
Yet the investigations
against the American companies
are the ones that have attracted
the most attention
and they have also attracted
some accusations.
You have been accused, essentially,
of protectionism, of jealousy,
or using legislation
to hit back at American companies
that have conquered European markets.
"The Economist" just this week
on the front page writes,
"Vestager Versus The Valley."
How do you react to that?

MV: Well, first of all,
I take it very seriously,
because bias has no room
in law enforcement.
We have to prove our cases
with the evidence and the facts
and the jurisprudence
in order also to present it to the courts.
The second thing is
that Europe is open for business,
but not for tax evasion.

(Applause)

The thing is that we are changing,
and for instance,
when I ask my daughters --
they use Google as well --
"Why do you do that?"
They say, "Well, because it works.
It's a very good product."
They would never, ever,
come up with the answer,
"It's because it's a US product."
It's just because it works.
And that is of course how it should be.
But just the same, it is important
that someone is looking after to say,
"Well, we congratulate you
while you grow and grow and grow,
but congratulation stops
if we find that you're
misusing your position
to harm competitors
so that they cannot serve consumers."

BG: It will be
a fascinating case to follow.
Thank you for coming to TED.

MV: It was a pleasure. Thanks a lot.

(Applause)

repository: prewittdavon/TEDVis

gha_language: Python

repo_name: prewittdavon/TEDVis


text:
# az-cli-extension-show-deployment
An extension for the Azure CLI to show ARM deployment progress

[![Build status](https://ci.appveyor.com/api/projects/status/k44c1ciuqrb6v34i/branch/release?svg=true)](https://ci.appveyor.com/project/stuartleeks/az-cli-extension-show-deployment/branch/release)

## Installing

### Install from the web

To install the extension, simply execute the following `az` command:

```bash
az extension add --source https://azclishowdeployment.blob.core.windows.net/releases/dist/show_deployment-0.0.9-py2.py3-none-any.whl
```

Note if you have previously installed and are updating then uninstall first via `az extension remove --name show-deployment`

### Download and install
If you prefer, you can download the extension and then install. The latest release can be downloaded from https://azclishowdeployment.blob.core.windows.net/releases/dist/show_deployment-0.0.9-py2.py3-none-any.whl

Then run the following (fixing the path to the downloaded file as required)

```bash
az extension add --source ~/Downloads/show_deployment-0.0.9-py2.py3-none-any.whl
```

## Running

To show the status of the latest deployment to `your-resource-group` run:

```
az group deployment watch --resource-group your-resource-group
```

You can select which deployment to watch by name:

```
az group deployment watch --resource-group your-resource-group --name some-deployment
```

## See it in action...

![extension in action](docs/az-group-deployment-watch-2.gif)

![extension in action in Cloud Shell](docs/az-group-deployment-watch-3.gif)

## Changelog

### 2020-08-22 v0.09

FIX: `expecting value` error executing `['/opt/az/bin/python3', '-m', 'azure.cli', 'group', 'deployment', 'operation', 'list', '-g', 'slsyn1', '-n', 'storageRoleDeploymentResource', '--output', 'json']`

Converted internal commands from `az group deployment...` to new `az deployment group ...` commands

Added `az deployment group watch` as an alias for `az group deployment watch`

### 2018-07-02 v0.0.7

FIX: error if message is string containing 'details'

Continue to refresh on 'Accepted' state

### 2018-06-29 v0.0.06

Add error output for Deployment Output evaluation step

### 2018-06-29 v0.0.5

Add deeper error output

### 2018-06-14 v0.0.4

Add output of operation errors

### 2018-06-06 v0.0.3

Check multiple properties to find duration as JSON structure varies across Azure CLI versions

### 2018-05-25 v0.0.2

Fix up duration parsing in az cli response JSON


text:
---
layout: essay
type: essay
title: What Can 'I' Do?
# All dates must be YYYY-MM-DD format!
date: 2019-01-16
labels:
  - Software Engineering
  - Learning
---

## What is software engineering to me?
Software engineering is now very active and essential field in this world. Everybody is quickly and effectively connected via internet and a lot of big business is highly dependent on this field. It is no wonder I grew interest in software engineering given I have been surrounded by highly developed technologies. To me, software engineering is a field that can satisfy my passion, which is to keep learning something new. Programming languages are still developing and there is always something I need to learn. It is an endless pursuit of my interest and passion.

## How is this field appealing?
On of the most appealing points of software engineering is that it is an ultimate form of customization. Thanks to the nature of programming languages that there are a lot of variations in code, we can build a software and websites as we specifically want. What is more, to do so, all what we need is a laptop. This helps us to strengthen the ability to design and construct softwares with a diverse possibility. I believe learning how to implement the code so that the website looks exactly how I want is the most challenging, yet the most crucial skill that is required.

## What is my goal?
For now, my goal is to acquire the skill to develop a website. Developing a website is the closest way to get connected to the world and the way the website is designed really depends on whoever writes the code. Website is an easiest way to develop and express my skill to people. By knowing how to write properly and effectively, I believe I can fulfill this goal.


text:
# Mimaco-Minga-of-Myths-Against-the-Oblivlion
 🥇 Honorific Mention - Crea Digital 2018 VideoGames

The main objective of this augmented reality game is to rescue the traditions of Colombia through a musical journey around the 6 geographical regions of the country. The experience begins with a minga* formed by local mythological characters, who share their concern for the lack of knowledge of the children about the ancestral culture. These characters are committed to recovering that traditions with the player's collaboration. Each mission takes place in a representative place of each region, where a musical challenge with typical instruments and songs of the area must be solved. As the challenge progresses, the player acquires bonuses related to gastronomy that enhance their skills in the game.

* **01**  Minga of mythological characters

<image src="https://media.githubusercontent.com/media/vicjomaa/Mimaco-Minga-of-Myths-Against-the-Oblivion/master/images/mim1.png" height="128" width="225"><image/>
* **02**  First mision is opened by AR region card.

<image src="https://media.githubusercontent.com/media/vicjomaa/Mimaco-Minga-of-Myths-Against-the-Oblivion/master/images/mim2.png" height="128" width="225"><image/>
* **03**  Musical challenge with traditional gastronomic content close to guitar hero.

<image src="https://media.githubusercontent.com/media/vicjomaa/Mimaco-Minga-of-Myths-Against-the-Oblivion/master/images/mim3.png" height="128" width="225" ><image/>
* **04**  A mission overcome unblocks a badge activated by AR.

<image src="https://media.githubusercontent.com/media/vicjomaa/Mimaco-Minga-of-Myths-Against-the-Oblivion/master/images/mim4.png" height="128" width="225"><image/>
* **05**  The badge recover complete the AR region card.

<image src="https://media.githubusercontent.com/media/vicjomaa/Mimaco-Minga-of-Myths-Against-the-Oblivion/master/images/mim5.png" height="128" width="225"><image/>

If the challenge is overcome, the player wins a physical badge associated with an animal of the  region. This prize unlocks hidden content in AR of
the region that you recovered from oblivion.

## Build in 🛠
* Unity 2017  - VideoGame editor
* Mixamo - Characters animation
* MagicaVoxel - 3d Characters modeling

## Created by ✒
* Critertec S.A.S
* Pedagogic Orientation: Nataly Opazo.
* UX design: Natalia pinzón y Jaime Rodríguez.
* AR / art & animation: Nelson Lopez y Satnep Fandiño
* Scriptwriter: Oscar Pico.
* Sound: Daniel Moreno.
* Programmer : Victor Mahecha.


text:
---
title: "It can be easy to explore data generating mechanisms with the simstudy package"
author: 'www.rdatagen.net'
date: '2017-05-16'
slug: it-can-be-easy-to-explore-data
link: https://www.rdatagen.net/post/intro-to-simstudy/
categories:
- bloglink
tags:
  - rstats
  - modeling
  - rdatagennet
---

I learned statistics and probability by simulating data. Sure, I did the occasional proof, but I never believed the results until I saw it in a simulation. I guess I have it backwards, but I that’s just the way I am[... <i class="fas fa-external-link-alt"></i>](https://www.rdatagen.net/post/intro-to-simstudy/)

repository: mkearney/data-scribers

repo_name: mkearney/data-scribers


text:
---
title: Evaluation Parameters
---

Often, the specific parameters associated with an Expectation will be derived from upstream steps in a processing
pipeline. For example, we may want to `expect_table_row_count_to_equal` a value stored in a previous step.

Great Expectations makes it possible to use "Evaluation Parameters" to accomplish that goal. We declare Expectations
using parameters that need to be provided at validation time. During interactive development, we can even provide a
temporary value that should be used during the initial evaluation of the Expectation.

```python
my_df.expect_table_row_count_to_equal(
    value={"$PARAMETER": "upstream_row_count", "$PARAMETER.upstream_row_count": 10},
    result_format={'result_format': 'BOOLEAN_ONLY'}
)
```

This will return `{'success': True}`.

More typically, when validating Expectations, you can provide Evaluation Parameters that are only available at runtime:

```python
my_df.validate(
    expectation_suite=my_dag_step_config,
    evaluation_parameters={"upstream_row_count": upstream_row_count}
)
```

## Evaluation Parameter expressions

In many cases, Evaluation Parameters are most useful when they can allow a range of values. For example, we might want
to specify that a new table's row count should be between 90 - 110 % of an upstream table's row count (or a count from a
previous run). Evaluation parameters support basic arithmetic expressions to accomplish that goal:

```python
my_df.expect_table_row_count_to_be_between(
    min_value={"$PARAMETER": "trunc(upstream_row_count * 0.9)"},
    max_value={"$PARAMETER": "trunc(upstream_row_count * 1.1)"},
    result_format={'result_format': 'BOOLEAN_ONLY'}
)
```
This will return `{'success': True}`.

Evaluation Parameters are not limited to simple values, for example you could include a list as a parameter value:

```python
my_df.expect_column_values_to_be_in_set(
    "my_column",
    value_set={"$PARAMETER": "runtime_values"}
)
my_df.validate(
    evaluation_parameters={"runtime_values": [1, 2, 3]}
)
```

However, it is not possible to mix complex values with arithmetic expressions.

## Storing Evaluation Parameters

### Data Context Evaluation Parameter Store

A Data Context can automatically identify and store Evaluation Parameters that are referenced in other Expectation
Suites. The Evaluation Earameter Store uses a URN schema for identifying dependencies between Expectation Suites.

The Data Context-recognized URN must begin with the string `urn:great_expectations`. Valid URNs must have one of the
following structures to be recognized by the Great Expectations Data Context:

```python
urn:great_expectations:validations:<expectation_suite_name>:<metric_name>
urn:great_expectations:validations:<expectation_suite_name>:<metric_name>:<metric_kwargs_id>
```

Replace names in `<>` with the desired name. For example:
```python
urn:great_expectations:validations:dickens_data:expect_column_proportion_of_unique_values_to_be_between.result.observed_value:column=Title
```

### Storing Parameters in an Expectation Suite

You can also store parameter values in a special dictionary called `evaluation_parameters` that is stored in the
`expectation_suite` to be available to multiple Expectations or while declaring additional Expectations:

```python
my_df.set_evaluation_parameter("upstream_row_count", 10)
my_df.get_evaluation_parameter("upstream_row_count")
```

If a parameter has been stored, then it does not need to be provided for a new expectation to be declared:

```python
my_df.set_evaluation_parameter("upstream_row_count", 10)
my_df.expect_table_row_count_to_be_between(
    max_value={"$PARAMETER": "upstream_row_count"}
)
```


text:
  Technologies   |
  Getting started   |
  Project   |
  License

  [![Author](https://img.shields.io/badge/author-IsraelSilva-8257E5?style=flat-square)](https://github.com/israel206)
  [![Languages](https://img.shields.io/github/languages/count/israel206/portfolio-next-js?color=%238257E5&style=flat-square)](#)

---

## 🚀 Technologies

This project was developed using the following technologies:

- [Html](https://www.w3schools.com/html/)
- [Css](https://www.w3schools.com/css/default.asp)
- [JavaScript](https://www.w3schools.com/js/default.asp)
- [React.js](https://pt-br.reactjs.org/docs/getting-started.html)

---

## 👨💻 Computer: How to run

Clone the project and access the folder

  ```bash
    # clone repository
    $ git clone https://github.com/israel206/portfolio-next-js.git
  ```

---

## 🚀 Getting started

```bash
    # enter web folder
    cd project-name
```

This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
docker-compose up
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.

[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.

The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

---

## 💻 Project

This is a project developed during the **[PLAYLIST](https://www.youtube.com/watch?v=Nhb67Eb98tU&list=PLQKg8mIgoxKpvIWyxMM-Nn6s_iww0KX53)**, presented canal by **[Backbench Coder](https://www.youtube.com/channel/UClW8d1f5m0QAE_Ig024EP6A)** during jan 30, 2021.

---

## 📝 License

This project is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for details.

---

Made with 💜 [by Israel Silva](https://israel206.github.io/) 👋 com direitos de aprendizagem de Sumit Dey

[ts]: https://www.typescriptlang.org
[vscode]: https://code.visualstudio.com/
[yarn]: https://yarnpkg.com/
[vceditconfig]: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
[vceslint]: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint

gha_language: TypeScript


text:
# Receivers for timely-dataflow logging

## Simple example

Run the simple example with:

```
$ cargo run --example basic -- 4
```

where 4 should be the number of workers in the computation we want to examine. Once that's up and running, you can start the computation to examine (with a recent-enough timely-dataflow):

```
TIMELY_WORKER_LOG_ADDR="<IP_ADDRESS>:8000" cargo run ... -- -w 4
```

(or, in Windows: )

```
set TIMELY_WORKER_LOG_ADDR=<IP_ADDRESS>:8000
cargo run ... -- -w 4
```

## Drawing the graph

The source is in `src/bin/graph.rs`. Run with:

```
$ cargo run --bin graph -- 4
```

Open a browser at http://localhost:9000
then start the computation we're examining (as before).

## Bar-chart of execution times

The source is in `src/bin/schedule.rs`. Run with:

```
$ cargo run --bin schedule -- 4
```

Open a browser at http://localhost:9000
then start the computation we're examining (as before).

## Steps to run this program
1. create a new directory/folder
2. go to created directory and  git clone https://github.com/frankmcsherry/differential-dataflow.git
3. git clone https://github.com/utaal/timely-viz.git
4. $ cd timely-viz
5. timely-viz$ cargo run --bin dashboard -- 2 html/dashboard.html
6. open a browser on http://localhost:9000/
7. open a new terminal and go to the differential dataflow directory
8. differential-dataflow$ TIMELY_WORKER_LOG_ADDR="<IP_ADDRESS>:8000" cargo run --release --example bfs -- 1000 1000 100 1000 no -w2 (we are using bfs example, you can give any timely computation)

repository: comnik/timely-viz

repo_name: comnik/timely-viz


text:
# Include #

A helper class for Adobe ExtendScript to embed the contents of all files, referenced in preprocessor directives, into a single file.

It reads the contents of the provided file line by line. If a line contains `#include` or `// @include` preprocessor, then inserts the contents of the named file into this file at the location of this statement. If the file to be included cannot be found, ExtendScript throws a run-time error.

Given the entry file `index.js`, that contains 3 `include` directives to files `foo.js`, `bar.js`, `baz.js`,

```javascript
// index.js:
#include 'foo.js'
#include 'bar.js'
#include 'baz.js'

// foo.js:
// Contens of file 'foo.js'

// bar.js:
// Contens of file 'bar.js'

// baz.js:
// Contens of file 'baz.js'
```

the result becomes one single file `index_included.js`
```javascript
// Contens of file 'foo.js'
// Contens of file 'bar.js'
// Contens of file 'baz.js'
```

## Usage ##

```javascript
// Inlcude the class
#include 'Include.js'

Include.process(
	'filePath', // Path to a file to be processed.

	// Optional object with user defined parameters:
	{
		addTrailingLineBrake: true, // Adds trailing line brake after including the content of a file. Optional, defaults to `true`.
		indentIncludedContent: true, // Adds indentation level of sources include directive. Optional, defaults to `true`.
		saveFilePath: 'test_finished.js', // Path to file to save final content. If not speficied, saves new file with prefix '_included.js'. Option is ignored if callback is provided.
		skipFiles: [], // List of file names with extension that shouldn't be included.
	},

	// Optional callback function that receives two parameters: final content and a list of included file paths.
	function(content, includedFiles) {
		var count = includedFiles.length;
		if (count === 0) {
			alert('There was nothing to include');
		} else {
			alert('Included ' + count + ' files. Great success!');
		}
	}
);
```

### Case 1 ###

```javascript
// Process 'test.js' file with default parameters.
// Returns file object 'test_included.js'.
Include.process('test.js');
```

### Case 2 ###

```javascript
// Process 'test.js' file with user parameters:
//	- do not add trailing line brakes,
// 	- do not add additional indentation,
//	- save final file as 'test_finished.js',
//	- do not include contents of 'bar.js' file.
//
// Returns file object 'test_finished.js'.
Include.process('test.js', {
	addTrailingLineBrake: false,
	indentIncludedContent: false,
	saveFilePath: 'test_finished.js',
	skipFiles: ['bar.js'],
});
```

### Case 3 ###

```javascript
// Process 'test.js' file with default parameters, but provide a callback function.
// Returns the result of callback function, in this case `undefined`.
Include.process('test.js', undefined,
	function(content, includedFiles) {
		var count = includedFiles.length;
		if (count === 0) {
			alert('There was nothing to include');
		} else {
			alert('Included ' + count + ' files. Great success!');
		}
	}
);
```

## Todo ##

* Add support for `#includepath` directive,
* Add saupport for multiple paths, separated by semicolon;


text:
---
title: Animals are saving the world!
date: "2020-05-06T23:46:37.121Z"
---
##### Wherever far wow thus a squirrel raccoon jeez jaguar this from along

<ab-control test-id="12">
    It's true, cats are saving the world.

</ab-control>

<ab-alternative test-id="12">
    It's true, dogs are saving the world.

</ab-alternative>

She packed her seven versalia, put her initial into the belt and made herself on
the way. When she reached the first hills of the Italic Mountains, she had a
last view back on the skyline of her hometown Bookmarksgrove, the headline of
Alphabet Village and the subline of her own road, the Line Lane. Pityful a
rhetoric question ran over her cheek, then she continued her way. On her way she
met a copy.

###### Slapped cozy a that lightheartedly and far

<ab-control test-id="52">
The copy warned the Little Blind Text, that where it came from it would have
been rewritten a thousand times and everything that was left from its origin
would be the word "and" and the Little Blind Text should turn around and return
to its own, safe country.
</ab-control>

<ab-alternative test-id="52">
But nothing the copy said could convince her and so it
didn’t take long until a few insidious Copy Writers ambushed her, made her drunk
with Longe and Parole and dragged her into their agency, where they abused her
for their projects again and again.
<ab-alternative>

Did you know that "despite its name, salted duck eggs can also be made from
chicken eggs, though the taste and texture will be somewhat different, and the
egg yolk will be less rich."?

([Wikipedia Link](https://en.wikipedia.org/wiki/Salted_duck_egg))

repository: jvaladas/gatsby-ab-blog

repo_name: jvaladas/gatsby-ab-blog


text:
---
name: Data Collection protocol
shortname: 2/DCX
status: draft
editor: Alexey Shmalko<EMAIL_ADDRESS>contributors: Alexey Gamov<EMAIL_ADDRESS>---

<!-- toc -->

# Introduction
Data Collection protocol is an endpoint-aware extension of [Kaa protocol](/0001-kaa-protocol/README.md).

It is designed to collect data from endpoints and transfer it to services/extensions for storage and/or processing.

# Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).

The following terms and definitions are used in this RFC.

- **Record**: a single data point that user is interested in.
- **Batch**: a collection of records uploaded within a single request.
- **Processing confirmation**: an acknowledgment designating that the server has finished processing a request.

# Requirements and constraints
Data Collection protocol requirements:

- Record processing is asynchronous.
Processing might require a significant period of time and may be performed simultaneously or in a different order.

- The client must know if a record has been processed.
This is needed for the client to guarantee that the data has been processed and to free allocated resources.

  Possible solutions:
  - Use QoS levels for message delivery confirmation.
  - Use QoS levels for message processing confirmation.
    MQTT requires all PUBACK messages appear in the same order as received PUBLISH messages.
    This creates a synchronization point, which conflicts with asynchronous record processing requirement.
  - Use separate response messages for processing confirmation.

    This is achieved by request/response pattern as defined per 1/KP.

- The server should handle different types of data.
  Different endpoints may send data in a variety of formats. The server should know the format to parse the payload.

  Solutions:
  - Use `<format_specifier>` embedded into resource path.

- The server should know the endpoint that generates the data.

  Solutions:
  - Make 2/DCX an endpoint-aware extension as defined per 1/KP.

- Little network usage.
  Internet connection may be slow, unstable, or costly, so the extension should send as little data as possible.

  Solutions:
  - Upload data in batches.
    A batch is a number of records uploaded in one network packet.

- Device can be unable to generate timestamps.

  Solutions:
  - On the server side, use network packet arrival time as a timestamp if no timestamp is present.

# Use cases
## UC1: Device shadow
The user only wants to know the current status of the endpoint parameters.
The endpoint updates them periodically.

## UC2: Historical data collection
The user wants to store all collected data with timestamps for further processing and for visualizing historical trends.

# Design
## Batch uploads
To reduce network usage, all records are uploaded in *batches*.
All records in a batch are processed as one record and have a single response status.

## No built-in timestamp handling
Due to the fact that different applications might need timestamps in different formats and precision, Data Collection protocol does not provide any special handling for timestamps.
There is no special field for a timestamp — it is the responsibility of higher layers to interpret any field as a timestamp.

Recommended fallback solution for cases when there is no timestamp: save server timestamp upon receiving a network message and pass it along the parsed data, so the upper layers can use that timestamp if needed.

## Request/response
2/DCX uses client-initiated request/response pattern defined in [1/KP](/0001-kaa-protocol/#requestresponse-pattern).

## Formats
### Schemeless JSON
#### Request
JSON Schema for requests is defined in the [request.schema.json](./request.schema.json) file.

The server MUST handle requests at the following resource path:
```
/<endpoint_token>/json
```

The payload MUST be a UTF-8 encoded JSON object with the following structure:

```json
{
  "$schema": "http://json-schema.org/schema#",
  "title": "2/DCX request schema",

  "type": "array"
}
```
where each element of an array represents a single record.

Example:
```json
[
  { "key": "value" },
  15,
  [ "an", "array", 13 ]
]
```

#### Response
A successful processing confirmation response MUST have zero-length payload.

Successful response means the bucket has been successfully delivered and processed.

repository: data-sci/kaa-rfcs

repo_name: data-sci/kaa-rfcs


text:
# Demo Instructions

This example shows who to create a simple Lambda function that will echo back what you transmit to it.

As the sample code includes the private key verbatim in the source, it should be treated carefully, and not checked into version control!

## Setting up a Lambda

1. Go to the AWS Lambda console.
1. Click "Create a Lambda function"
1. In "Select Blueprint", click "Blank function"
1. In "Configure triggers", click "Next"
1. Click "Configure function":
    1. Give function a name "myReceive"
    1. Select runtime "Node.js 4.3"
    1. Paste in code from *myReceive.js*
    1. Leave "Handler" as default ("index.handler")
    1. Set "Role" to "Create new role from template(s)"
    1. Set "Role name" to "role_with_no_permissions"
    1. Leave "Policy templates" empty
    1. "Next"

## Configure the API keys for Lambda

At the top of the AWSLambda.test.nut there are three constants to configure.

Parameter             | Description
----------------------| -----------
AWS_LAMBDA_REGION     | AWS region (e.g. "us-east-1")
ACCESS_KEY_ID         | IAM Access Key ID
SECRET_ACCESS_KEY     | IAM Secret Access Key

# License

The AWSLambda library is licensed under the [MIT License](../LICENSE).

repository: mysticpants/AWSLambda

gha_language: Squirrel

repo_name: mysticpants/AWSLambda


text:
# Learn-Java
This repository is created to teach to new users to develop
In Java.

At the moment the repository includes the following concepts
- [Hello, World !](https://github.com/fededev01/Learn-Java/blob/master/docs/hello-world.java)
- [Multi-line Comments](https://github.com/fededev01/Learn-Java/blob/master/docs/multi-line-comments.java)
- [Variables](https://github.com/fededev01/Learn-Java/blob/master/docs/variables.java)
- [Primitive Operators](https://github.com/fededev01/Learn-Java/blob/master/docs/primitive-operators.java)
- [Increments](https://github.com/fededev01/Learn-Java/blob/master/docs/increments.java)
- [Strings](https://github.com/fededev01/Learn-Java/blob/master/docs/strings.java)

##### How can I help?

If you believe any information here is erroneous, please report it as an issue or create a pull request.
I welcome suggestions, feedback and new content, as long as it follows the format that I am using.
You can also star this repository if you like the content.

##### Similar Repositories

- [Learn Solidity](https://github.com/fededev01/Learn-Solidity)
- [Learn JavaScript](https://github.com/fededev01/Learn-JavaScript)
- [Learn SQL](https://github.com/fededev01/learn-sql)
- [Learn Python](https://github.com/fededev01/Learn-Python)

#### Code of Conduct

This repository have also a code of conduct, consult it by clicking [here](https://github.com/fededev01/Learn-Java/blob/master/CODE_OF_CONDUCT.md)
Please, before to interact with the repo, read it.

repository: Newbie-Devs/Learn-Java

gha_language: Java

gha_license_id: Unlicense

repo_name: Newbie-Devs/Learn-Java


text:
# ActsAsXLSX

[![GitHub license](https://img.shields.io/github/license/jbox-web/acts_as_xlsx.svg)](https://github.com/jbox-web/acts_as_xlsx/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/jbox-web/acts_as_xlsx.svg)](https://github.com/jbox-web/acts_as_xlsx/releases/latest)
[![CI](https://github.com/jbox-web/acts_as_xlsx/workflows/CI/badge.svg)](https://github.com/jbox-web/acts_as_xlsx/actions)
[![Code Climate](https://codeclimate.com/github/jbox-web/acts_as_xlsx/badges/gpa.svg)](https://codeclimate.com/github/jbox-web/acts_as_xlsx)
[![Test Coverage](https://codeclimate.com/github/jbox-web/acts_as_xlsx/badges/coverage.svg)](https://codeclimate.com/github/jbox-web/acts_as_xlsx/coverage)

ActsAsXLSX is an ActiveRecord plugin for Axlsx. It makes generating Excel spreadsheets from any subclass of ActiveRecord::Base as simple as a couple of lines of code.

## Installation

Put this in your `Gemfile` :

```ruby
git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" }

gem 'acts_as_xlsx', github: 'jbox-web/acts_as_xlsx', tag: '1.1.0'
```

then run `bundle install`.

## Usage

See the Guides [here](http://axlsx.blog.randym.net/).


text:
# [Unicorn Library](index.html): File System #

_Unicode library for C++ by Ross Smith_

* `#include "unicorn/file.hpp"`

This module provides a very minimal set of file system operations, such as
file renaming and deletion, directory search, and so on.

## Contents ##

[TOC]

## Introduction ##

File handling in Unicode always has the problem that the actual file names on
most systems are not guaranteed to be valid Unicode. On most Unix systems, a
file name is an arbitrary sequence of bytes, with no restrictions other than
excluding the null and slash characters; while file names on systems such as
Linux are usually expected to be encoded in UTF-8 when they contain non-ASCII
characters, this is not enforced in any way. On Microsoft Windows, using the
NTFS file system, file names are nominally UTF-16 (with a short list of
disallowed characters), but not all of the Win32 wide character API functions
that deal with files check for valid encoding; it's not hard to create a file
whose name is an arbitrary sequence of 16-bit integers. The HFS+ file system
used by Apple on macOS and iOS appears to be the only widely used file system
that actually does enforce valid Unicode names at the file system level,
although it then proceeds to complicate matters by using a proprietary
normalization scheme that does not match any of the four standard ones, and in
any case the new APFS file system does not appear to enforce any kind of
encoding.

To make it possible to deal with this situation, this module uses the
`NativeString` type from the [`unicorn/core`](core.html) module, which is
`string` on Unix systems and `wstring` on Windows. Most of the functions in
this module come in `Ustring` and `NativeString` versions; on Windows these
are separate overloads, while on Unix `Ustring` and `NativeString` are really
the same type (`std::string`), and only one version of each function is
needed.

Functions that take a `NativeString` can operate on, and may return, file
names with invalid encoding. If the `Ustring` function is a separate
overload, it will convert invalid Unicode names using the usual character
replacement rule, which may result in unexpected behaviour if there are any
files on your system with non-Unicode names.

In short, use the `NativeString` versions of the functions here if you need
reliable handling of all filenames, including those containing invalid
Unicode; use the `Ustring` versions if you expect all the files you deal with
to have valid Unicode names, and you don't mind if non-Unicode names are
slightly mangled.

The examples in the documentation below mostly use Unix-style file names for
simplicity; the equivalent code on Windows will make the obvious substitutions
of backslashes for slashes, and drive roots such as `"C:\"` for `"/"`.

The term "leaf name" is used here to mean the name of an individual file
within a directory, with no directory path prefix (for example, the leaf name
of `"/foo/bar/hello.txt"` is `"hello.txt"`).

## Constants ##

Flag                     | Description
----                     | -----------
`File::`**`dotdot`**     | Include . and ..
`File::`**`follow`**     | Follow symlinks
`File::`**`fullname`**   | Return full file names
`File::`**`hidden`**     | Include hidden files
`File::`**`overwrite`**  | Delete existing file if necessary
`File::`**`recurse`**    | Recursive directory operations
`File::`**`unicode`**    | Skip files with non-Unicode names

Flags recognised by some of the functions in this module. Their usage is
documented with the individual functions that use them. Any flags not
documented for a given function will be ignored.

## Types ##

* `typename` **`FileId`**

The file identifier returned by the `file_id()` function. On some systems this
will be an integer type; on others it will be a class type. It will support
all comparison operators, I/O using `<<` and `>>` operators, and `std::hash`.

## System dependencies ##

* `constexpr char` **`file_delimiter`** `= ['/' on Unix, '\\' on Windows]`
* `constexpr NativeCharacter` **`native_file_delimiter`** `= ['/' on Unix, L'\\' on Windows]`

The standard delimiter for directory paths.

## File name functions ##

These functions operate purely on file names as strings; they do not make any
contact with the actual file system, and will give the same results regardless
of whether or not a file actually exists, or the user has permission to access
it.

The `file_is_*()` functions do not test the complete file name for legality;
if a file name would fail `is_legal_path_name()`, the results of the
`file_is_*()` functions is unspecified, except as noted below for the
individual functions.

Where relevant, these functions are aware of the standard double slash
convention for network paths (`"//server/path..."`),
and the Windows versions are aware of UNC paths (`"\\?\path..."`).

* `bool` **`file_is_absolute`**`(const Ustring& file)`
* `bool` **`file_is_absolute`**`(const NativeString& file)`
* `bool` **`file_is_relative`**`(const Ustring& file)`
* `bool` **`file_is_relative`**`(const NativeString& file)`
* `bool` **`file_is_drive_absolute`**`(const Ustring& file)`
* `bool` **`file_is_drive_absolute`**`(const NativeString& file)`
* `bool` **`file_is_drive_relative`**`(const Ustring& file)`
* `bool` **`file_is_drive_relative`**`(const NativeString& file)`

These indicate whether a file name is absolute or relative; exactly one of
them will be true for any non-empty file name (including illegal ones).

On Windows, two extra functions identify "drive relative" paths that are
relative to the current directory on a specific drive (`"C:path..."`), and "drive absolute" paths that are
absolute with respect to an unspecified current drive (`"\path..."`). Both of these functions are always false
on Unix.

* `bool` **`file_is_root`**`(const Ustring& file)`
* `bool` **`file_is_root`**`(const NativeString& file)`

True if the file name refers to the root of a directory tree (note that this
is a purely syntactic operation on the file name, and is not the same as
identifying the root of a physical file system).

* `template <typename... Args> Ustring` **`file_path`**`(const Ustring& file, Args... args)`
* `template <typename... Args> NativeString` **`file_path`**`(const NativeString& file, Args... args)`

Assembles a directory path from a series of path elements or relative paths.
If any argument is an absolute path, this is taken as the root of the final
path, ignoring any preceding arguments. (Drive relative and drive absolute
paths on Windows are treated as absolute in this context.)

Examples:

    file_path("foo", "bar", "hello.txt") == "foo/bar/hello.txt"
    file_path("/foo", "/bar", "hello.txt") == "/bar/hello.txt"

* `bool` **`is_legal_leaf_name`**`(const Ustring& file)`
* `bool` **`is_legal_leaf_name`**`(const NativeString& file)`
* `bool` **`is_legal_path_name`**`(const Ustring& file)`
* `bool` **`is_legal_path_name`**`(const NativeString& file)`
* `bool` **`is_legal_mac_leaf_name`**`(const Ustring& file)`
* `bool` **`is_legal_mac_path_name`**`(const Ustring& file)`
* `bool` **`is_legal_posix_leaf_name`**`(const Ustring& file)`
* `bool` **`is_legal_posix_path_name`**`(const Ustring& file)`
* `bool` **`is_legal_windows_leaf_name`**`(const Ustring& file)`
* `bool` **`is_legal_windows_leaf_name`**`(const wstring& file)`
* `bool` **`is_legal_windows_path_name`**`(const Ustring& file)`
* `bool` **`is_legal_windows_path_name`**`(const wstring& file)`

These indicate whether a string is a legal file name. The first two functions
call the corresponding system specific function for the host operating system.

The `*_leaf_name()` functions test for a valid path component, and will always
return false for any name that contains a slash (or backslash on Windows); the
`*_path_name()` functions test for a valid relative or absolute qualified file
name. Any name that passes `*_leaf_name()` will also pass the corresponding
`*_path_name()` test. All of these will return false for an empty string.

These test for the usual file name rules on the relevant operating systems;
keep in mind that remote mounted file systems may be physically located on a
different system and therefore will not necessarily follow exactly the same
rules. There are no separate functions for Linux because as far as I know it
does not impose any file name restrictions beyond the standard Posix rules.

* `pair<Ustring, Ustring>` **`split_path`**`(const Ustring& file, uint32_t flags = 0)`
* `pair<NativeString, NativeString>` **`split_path`**`(const NativeString& file, uint32_t flags = 0)`
* `pair<Ustring, Ustring>` **`split_file`**`(const Ustring& file)`
* `pair<NativeString, NativeString>` **`split_file`**`(const NativeString& file)`

These functions break down a file name into its constituent parts. The
`split_path()` function breaks the full name into directory and leaf names;
for example, if the original file name is `"/foo/bar/hello.txt"`, the
directory name is `"/foo/bar"` and the leaf name is `"hello.txt"`. If the file
name refers to the file system root (e.g. `"/"`), the directory is the full
file name and the leaf name is empty.

By default, the delimiter between the directory and leaf names is discarded,
unless the directory is a root name that requires the delimiter suffix for
correct identification; if the `File::fullname` flag is set, the delimiter (if
any) will always be kept at the end of the directory part. This is the only
flag recognised.

The `split_file()` function breaks the leaf name into a base and extension
(discarding the directory part); for example, if the original file name is
`"foo/bar/hello.txt"`, the base name is `"hello"` and the extension is
`".txt"`. The extension starts with the last dot in the leaf name, excluding
its first character; if the name does not contain a dot, or if the only dot is
at the beginning, the base name is the full leaf name and the extension is
empty.

Examples:

    split_path("/foo/bar/hello.txt") == {"/foo/bar", "hello.txt"}
    split_file("/foo/bar/hello.txt") == {"hello", ".txt"}
    split_file(".hello") == {".hello", ""}

## File system query functions ##

These functions perform read-only operations on the file system.

* `Ustring` **`current_directory`**`()`
* `NativeString` **`native_current_directory`**`()`

Query the current working directory of the calling process. These may throw
`std::system_error` in some unusual cases of failure, usually involving access
permission problems.

* `bool` **`file_exists`**`(const Ustring& file)`
* `bool` **`file_exists`**`(const NativeString& file)`

Query whether a file exists. This may give a false negative if the file exists
but is not accessible to the calling process.

* `FileId` **`file_id`**`(const Ustring& file, uint32_t flags = 0)`
* `FileId` **`file_id`**`(const NativeString& file, uint32_t flags = 0)`

Returns a unique file identifier, intended to identify the file even if it is
referred to by different paths. It will return zero if the file does not exist
or the caller does not have permission to query its properties. The only flag
recognised is `File::follow`, which causes the function to return the ID of
the linked file instead of that of the symlink; it has no effect if the file
named is not a symlink.

This is based on the device and inode numbers on Unix, or the file index on
Windows. Completely reliable file identification cannot be guaranteed in the
presence of parallel remote mounts or similar trickery. On some systems it may
throw `std::system_error` in unusual cases.

* `bool` **`file_is_directory`**`(const Ustring& file)`
* `bool` **`file_is_directory`**`(const NativeString& file)`

Query whether a file is a directory. This will return `false` if the file does
not exist; it may give a false negative if the directory exists but is not
accessible to the calling process.

* `bool` **`file_is_hidden`**`(const Ustring& file)`
* `bool` **`file_is_hidden`**`(const NativeString& file)`

True if the file is normally hidden. This will return `false` if the file does
not exist or is not accessible to the calling process. On Unix this is based
on the file name (a file is hidden if its name starts with a dot), but on
Windows this is a metadata property.

* `bool` **`file_is_symlink`**`(const Ustring& file)`
* `bool` **`file_is_symlink`**`(const NativeString& file)`

True if the file is a symbolic link.

* `uint64_t` **`file_size`**`(const Ustring& file, uint32_t flags = 0)`
* `uint64_t` **`file_size`**`(const NativeString& file, uint32_t flags = 0)`

Returns the size of the file in bytes. This will return zero if the file does
not exist, or if it can't be accessed for any other reason. If the file is a
directory, by default only the size of the directory entry itself (which may
be zero on some systems) is returned; if the `File::recurse` flag is supplied,
the directory's contents will be recursively scanned (symbolic links are not
followed).

* `Ustring` **`resolve_path`**`(const Ustring& file)`
* `NativeString` **`resolve_path`**`(const NativeString& file)`

Resolves a relative path to an absolute one. On Unix this includes resolving
the `"~"` home directory convention. This will not resolve symlinks in the
path. It will remove redundant path components such as a trailing `"/."`, and
on Windows it will expand short file names to long ones, so a path that was
already absolute will not necessarily be returned unchanged.

* `Ustring` **`resolve_symlink`**`(const Ustring& file)`
* `NativeString` **`resolve_symlink`**`(const NativeString& file)`

Returns the file pointed to by a symlink. If the argument names a file that
does not exist or is not a symlink, this will simply return the argument
unchanged. This will throw `std::system_error` if anything goes wrong, such as
a permission failure or a symlink loop. On Windows, resolving a symlink
requires opening the target file, so this will fail if the target file does
not exist (presumably the symlink still contains a path but there does not
appear to be any way to retrieve it).

## File system modifying functions ##

These functions perform operations that require write access to the file
system.

* `void` **`copy_file`**`(const Ustring& src, const Ustring& dst, uint32_t flags = 0)`
* `void` **`copy_file`**`(const NativeString& src, const NativeString& dst, uint32_t flags = 0)`

Copy a file. If the `File::recurse` flag is used, this will copy a directory
recursively; otherwise, it will fail if the source file is a directory. If the
`File::overwrite` flag is used, an existing file of the same name will be
deleted if possible; otherwise, the copy will fail. If the existing
destination file is a directory, it will only be replaced if the
`File::recurse` flag is also present (regardless of whether the source is a
directory). Regardless of flags, it will always fail if the source and
destination are the same. Symbolic links will be copied as links; the linked
file will not be copied.

This will throw `std::system_error` if anything goes wrong. This is
necessarily a non-atomic operation; there is always the possibility that an
interruption or a race condition between threads will leave a partially copied
file or directory.

* `void` **`make_directory`**`(const Ustring& dir, uint32_t flags = 0)`
* `void` **`make_directory`**`(const NativeString& dir, uint32_t flags = 0)`

Create a directory (with default permissions). It will do nothing if the
directory already exists. If the `File::recurse` flag is set, this will
recursively create any missing parent directories (similar to `mkdir -p`). If
the `File::overwrite` flag is set, and a file of the same name exists but is
not a directory, the existing file will be replaced.

This will throw `std::system_error` if the named file already exists but is
not a directory, and either the `File::overwrite` flag is not used or an
attempt to delete the existing file fails, if the directory path is not a
legal filename, if the parent directory does not exist and the `File::recurse`
flag was not set, or if the caller does not have permission to create the
directory.

* `void` **`make_symlink`**`(const Ustring& file, const Ustring& link, uint32_t flags = 0)`
* `void` **`make_symlink`**`(const NativeString& file, const NativeString& link, uint32_t flags = 0)`

Creates a symlink named `link` pointing to `file`. This will do nothing if the
symlink already exists. If the `File::overwrite` flag is set, this will delete
any existing file with the same name as the new link; if the existing file is
a non-empty directory, it will only be replaced if the `File::recurse` flag is
also set. This will throw `std::system_error` if the symlink cannot be
created, or if a file or directory of the same name as `link` already exists
but the necessary flags were not supplied.

* `void` **`move_file`**`(const Ustring& src, const Ustring& dst, uint32_t flags = 0)`
* `void` **`move_file`**`(const NativeString& src, const NativeString& dst, uint32_t flags = 0)`

Rename a file or directory. This will attempt to use the operating system's
native `rename()` call if possible, but will attempt a copy-and-delete
operation if this fails. This follows the same rules, and respects the same
flags, as `copy_file()`, except that moving a file to itself always succeeds,
and directories are always moved recursively (the `File::recurse` flag is only
needed if an existing directory is to be replaced). This will throw
`std::system_error` if anything goes wrong.

* `void` **`remove_file`**`(const Ustring& file, uint32_t flags = 0)`
* `void` **`remove_file`**`(const NativeString& file, uint32_t flags = 0)`

Delete a file or directory. If the `File::recurse` flag is set, directories
will be deleted recursively (like `rm -rf`; this will not follow symbolic
links); the flag is not needed to delete an empty directory. This will do
nothing if the named file does not exist to begin with. It will throw
`std::system_error` if the name is not a legal filename, if the name refers to
a non-empty directory and the `File::recurse` flag was not set, or if the
caller does not have permission to delete the file.

## Directory iterators ##

* `class` **`[Native]DirectoryIterator`**
    * `using [Native]DirectoryIterator::`**`difference_type`** `= ptrdiff_t`
    * `using [Native]DirectoryIterator::`**`iterator_category`** `= std::input_iterator_tag`
    * `using [Native]DirectoryIterator::`**`value_type`** `= [NativeString or Ustring]`
    * `using [Native]DirectoryIterator::`**`pointer`** `= const value_type*`
    * `using [Native]DirectoryIterator::`**`reference`** `= const value_type&`
    * `[Native]DirectoryIterator::`**`[Native]DirectoryIterator`**`()`
    * `explicit [Native]DirectoryIterator::`**`[Native]DirectoryIterator`**`(const value_type& dir, uint32_t flags = 0)`
    * _[standard iterator operations]_
* `Irange<DirectoryIterator>` **`directory`**`(const Ustring& dir, uint32_t flags = 0)`
* `Irange<NativeDirectoryIterator>` **`directory`**`(const NativeString& dir, uint32_t flags = 0)`

An iterator over the files in a directory. Normally you should call the
`directory()` function to get an iterator range, rather than explicitly
constructing a `[Native]DirectoryIterator`. Note that this is an input (i.e.
single pass) iterator (a restriction imposed by the way the underlying system
APIs work).

On systems (Windows) where the native string type is not 8-bit, there are two
directory iterator types: `NativeDirectoryIterator` has a value type of
`NativeString`, and returns the actual file names even if they are not valid
Unicode (unless the `File::unicode` option is used); `DirectoryIterator` has a
value type of `Ustring`, and converts file names using the usual substitution
convention if the original name is invalid.

On Unix, `DirectoryIterator` and `NativeDirectoryIterator` are the same type.
Although the value type is nominally `Ustring`, file names that are not valid
UTF-8 (on systems where this is possible) are passed through unchanged.

The following flags are recognised:

Flag                    | Description
----                    | -----------
`File::`**`dotdot`**    | Include . and ..
`File::`**`fullname`**  | Return full file names
`File::`**`hidden`**    | Include hidden files
`File::`**`unicode`**   | Skip files with non-Unicode names

If the name passed to the constructor, or to the `directory()` function,
refers to a file that does not exist or is not a directory, it will simply be
treated as an empty directory.

By default, an iterator dereferences to a file's leaf name; if the
`File::fullname` option is used, the full path is reported instead, including
the directory (this is based on the name passed to the constructor, and will
not be a fully qualified absolute path if the original directory name was
not).

If the `File::unicode` flag is supplied, and the original directory name was
invalid UTF, no files will be returned.

The order in which files are returned is unspecified; do not rely on them
being returned in the same order as the `ls` or `dir` command, or on the order
remaining the same on separate iterations over the same directory. Behaviour
is also unspecified if a directory's contents change while a directory
iterator is scanning it; the change may or may not be visible to the caller.

repository: finddit/unicorn-lib

repo_name: finddit/unicorn-lib


text:
**Akeeba Kickstart Cli** a command-line tool that can download the latest Akeeba Kickstart Files to the current folder.

## 🚀 Quick start

> **Requires [PHP 7.4+](https://php.net/releases/)**

```
# First, install:
composer global require tealorca/akeeba-kickstart-cli

# Then, use it:
akeeba-kickstart-cli
```

Akeeba Kickstart Cli is open-sourced software licensed under the [MIT license](LICENSE.md).

repository: tealorca/akeeba-kickstart-cli

repo_name: tealorca/akeeba-kickstart-cli


text:
SuperSpaceOdyssey
=================

Html5 and JavaScript Game

Basic retro side scrolling shooter.  This reminds me of the olds days, but with slightly better art.

- Side scroller
- Shoot 'em up
- Phoenix style retro game

Play the game: http://sgmeyer.github.io/SuperSpaceOdyssey

GAME ART
=================

Thanks to OpenGameArt.org and their contributors for providing the audio and sprites.

Laser Sound:
http://opengameart.org/content/laser-fire

Space Ships and Bullets (Sprite):
http://opengameart.org/content/spaceships-1

Explosion Animation (Sprite):
http://opengameart.org/content/explosion

Explosion Sound:
http://opengameart.org/content/bombexplosion8bit

Background Audio:
Intro: Eric Skiff - Arpanauts http://ericskiff.com/music/
Level 1: http://opengameart.org/content/grey-sector-8-bit

repository: sgmeyer/SuperSpaceOdyssey

repo_name: sgmeyer/SuperSpaceOdyssey


text:
# GRPC Client/Server Native Application
Simple native image Spring Boot application that tests gRPC client/server interactions.

Build the application by executing:

```
gradle clean bootBuildImage
```

After the image is generated, it can be executed by running:

```
docker run --rm docker.io/sitewhere/grpc-client-server:1.0.0
```

Output should be similar to:

```
2021-04-13 21:40:29.152  INFO 1 --- [           main] c.sitewhere.GrpcClientServerApplication  : Starting GrpcClientServerApplication using Java 1.8.0_282 on 12c6e49f1626 with PID 1 (/workspace/com.sitewhere.GrpcClientServerApplication started by cnb in /workspace)
2021-04-13 21:40:29.153  INFO 1 --- [           main] c.sitewhere.GrpcClientServerApplication  : No active profile set, falling back to default profiles: default
2021-04-13 21:40:29.157  INFO 1 --- [           main] com.sitewhere.GrpcServer                 : Starting gRPC server..
2021-04-13 21:40:29.159  INFO 1 --- [           main] com.sitewhere.GrpcServer                 : Server started. Attempting client request..
2021-04-13 21:40:29.163  INFO 1 --- [           main] com.sitewhere.GrpcServer                 : Successful request to gRPC server. Response was Atlanta 33.753746 -84.38633
2021-04-13 21:40:29.164  INFO 1 --- [           main] c.sitewhere.GrpcClientServerApplication  : Started GrpcClientServerApplication in 0.015 seconds (JVM running for 0.016)
```

repository: sitewhere/spring-native

repo_name: sitewhere/spring-native


text:
# CSV-Concat
This repo is for concatenating CSV files. This repo provides two functions for concatenation. One slow, one fast.

The functions would concat the CSV files found in the given directory and concat them into the given output file. The functions assume all CSV files have the same format and the same header. Only the header from the first file found would be kept (this is based on a glob search).

The "fast" function uses shutil, while the "slow" function is pure Python.

On average, the "fast" function is 2.5 to 5 times faster than the "slow" function.

## Prerequisites

* **Python 3.5+**
* **glob**
* **os**
* **shutil**

## Version

**1.0.0**

## Example

### Concat all CSV files in the "data" folder into a file named "concated.csv" in the current working directory

```python
import os
import csvConcat
import time

str_fout_path = os.path.join(os.getcwd(), 'concated.csv')

str_dir_path = os.path.join(os.getcwd(), 'data')

start       = 0.0
end         = 0.0
dur_slow    = 0.0
dur_fast    = 0.0

for i in range(0, 10):

    start = time.time()

    csvConcat.slow(str_fout_path, str_dir_path)

    end = time.time()

    dur_slow += (end - start)

print('Slow concat: ' + str(dur_slow/10.0))

start   = 0.0
end     = 0.0
dur     = 0.0

for i in range(0, 10):

    start = time.time()

    csvConcat.fast(str_fout_path, str_dir_path)

    end = time.time()

    dur_fast += (end - start)

print('Fast concat: ' + str(dur_fast/10.0))

print('Slow/Fast = ' + str(dur_slow/dur_fast))
```

## Contributing

高斯羽 博士 (Dr. Gao, Siyu)

repository: iruletheworld/CSV-Concat

repo_name: iruletheworld/CSV-Concat


text:
# exam-json2xml-converter
 JSON to XML Exam Engine converter

This repository includes files used to convert old JSON format exams to XML format exams for Exam Engine.

Some files  may have dependencies to files not shared in this repository.


text:
Adds an alias #times method called #upon_a_midnight_dreary to the Integer class
and String class, allowing you to call the method on 'once', 'twice', or 'thrice'.

Adds an alias to the #puts method called #quoth that upcases and adds exclamation marks. Defaults to "NEVERMORE!!!"

Adds an method to provide lorem_ipsum like filler content from the stories and poems of Edgar Allan Poe.  Passing an integer arguement selects the number of lines of text to return.  Default is to return the entire poem/story.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'poezix'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install poezix

## Usage

Try it!!! It's pretty simple so not much can go wrong.

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/poezix.

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

repository: mminute/poezix

repo_name: mminute/poezix


text:
This has been created as part of a blog post series. Part one can be seen [here](https://www.self-taught-and-fraught.com/react/use-fetch/)

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

### Prerequisites

To get this boilerplate running locally you will need:

- a node package manager (yarn or npm)
- a command line terminal (iTerm or bash)
- your favorite IDE (vscode, sublime)

## Install

```bash
npm install --save @rickbrown/use-fetch
```

## Usage

```js
import React from 'react'
import { useFetch } from '@rickbrown/use-fetch'

const App = () => {
  const [response, error, isLoading] = useFetch(
    `https://jsonplaceholder.typicode.com/users/5`
  )

  if (isLoading) {
    // can be used for loading indicator/spinner etc.
    return <h1>Loading..</h1>
  }

  if (error) {
    // handle any error
    console.log(error.message)
  }

  // if the code reaches this point, loading has been completed and there is no error
  // you have been returned a `response` object
  return (
    <>
      <pre>response: {JSON.stringify(response, null, 2)}</pre>
    </>
  )
}

export default App
```

## The `response` object

```js
{
  'end-point': String,
  status: Number,
  error: Boolean,
  'data-type': String,
  'data-length': Number,
  data: Object
}
```

So, if you wanted to remove all the extra information, and you only want the `data` object, and you are only using the `use-fetch` hook once in your component, your API could look like this:

```js
const [{ data }, error, isLoading] = useFetch(
  `https://jsonplaceholder.typicode.com/users/5`
)
```

## Chaining Multiple Requests

`use-fetch` will also accept a conditional statement. I will give an example by checking the URL. In this example we only want to make the request for the `forecastData` when the first `fetch` call for `weatherData` has been resolved. So we can use a ternary operator in the second `fetch` call. If there is no `weatherData`, we just return, and the hook does nothing. This conditional allows us to use our hook multiple times in the same component:

```js
const [weatherData, weatherError, weatherIsLoading] = useFetch(
  `http://api.openweathermap.org/data/2.5/weather?lat=${coords.lat}&lon=${coords.long}&APPID=${WEATHER_API_KEY}&units=metric`
)

const [forecastData, forecastError, forecastIsLoading] = useFetch(
  weatherData.data
    ? `http://api.openweathermap.org/data/2.5/forecast/daily?id=${weatherData.data.id}&appid=${WEATHER_API_KEY}`
    : null
)
```

## Running the tests

Available scripts:

```bash
yarn test
yarn test:watch
yarn test:coverage
```

## Built With

- [create-react-hook](https://github.com/hermanya/create-react-hook) - CLI for creating reusable React hooks using Rollup and create-react-app.
- [react](https://reactjs.org/docs/getting-started.html) - A JavaScript library for building user interfaces.
- [rollup](https://rollupjs.org/guide/en/) - Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application.
- [react-hooks-testing-library](https://react-hooks-testing-library.com) - Simple and complete React hooks testing utilities that encourage good testing practices.
- [node-fetch](https://www.npmjs.com/package/node-fetch) - A light-weight module that brings window.fetch to Node.js

## Contributing

[CONTRIBUTING.md](/CONTRIBUTING.md)

## Author(s)

- **Rick Brown** - _Initial work_ - [RickBr0wn](https://github.com/RickBr0wn)

## License

This project is licensed under the MIT License - see the [LICENSE.md](<[LICENSE.md](https://gist.github.com/RickBr0wn/5f95ee6118bb32034e2b94acbd88a99d)>) file for details

gha_language: JavaScript