text:
# Conversation Analyzer
Analyzer and statistics generator for text-based conversations. If interested, check out also [my related article].

Includes scraper and parser for Facebook conversations.

The scraper retrieves all messages of a specific Facebook conversation and saves them in a JSON file. At this step messages include all fields and attributes as defined by the Facebook response format.

The parser takes as input the result of the scraper and extracts only the textual messages and related attributes, for then saving them to a text file. Such file is used as input for the conversation analyzer.
Conversation format example (based on the current parser):

    2012.06.17 15:27:42 SENDER_1 Message text from sender1
    2012.06.18 17:27:42 SENDER_2 Message text from sender2

##Usage
Each of the three components (i.e. scraper, parser, analyzer) can be run separately.
The analyzer can be accessed via the *main.py* script contained in the *src* folder. It will log a set of basic stats for the overall conversation.
Scraper ( *conversationScraper.py* ) and parser ( *conversationParser.py* ) are instead inside the *util* folder.

For each see the help menu (-h or --help) for a detailed usage description.

Basic configurations for all modules can be managed via the *config.ini* file. The location of the config file to be used should be passed via *--config* argument.

###Requirements
The only additional requirement for parser and scraper is the *requests* package. For the analyzer I used Conda; *requirements.txt* is the exported environment file. See [here](http://conda.pydata.org/docs/using/envs.html#share-an-environment) for a guide on how to manage Conda environments.

##Scraper
In order to access Facebook conversations the following parameters are required: *cookie* and *fb_dtsg* and conversation ID.

Such data can be found via the following procedure:

1. Open the desired conversation in a browser
2. Check the network traffic via the preferred developer tool or equivalent
3. Scroll up in the conversation until a POST request is issued to [thread\_info.php](https://www.facebook.com/ajax/mercury/thread_info.php)
4. Locate and copy the required parameters: *cookie*, *fb_dtsg* and conversation ID
4.1 You can find the conversation ID in a line with this format: *messages\[user_ids\]\[\<conversation_ID\>\]..* or *messages\[thread_fbids\]\[\<conversation_ID\>\]* for group conversations.

Once the values of *cookie* and *fb_dtsg* have been copied in the *config.ini* file, the scraper can be run by passing the conversation ID as argument (--id).
If you want to scrape a group conversation, use the *-g* flag, the scraper will not work otherwise.
Via the *-m* flag new messages can be merged with the previously scraped part of the same conversation, if present.

##Parser
To run the parser just provide as arguments the path of the scraped-conversation file and the desired path for the parsed output.
Additionally, via *--authors*, you can pass a dictionary like structure to provide a correspondence between the profile IDs and preferred aliases. This will produce a more readable output. Example usage:

    --authors "{"11234":"SENDER_1", "112345":"SENDER_2"}"

##Analyzer
**The analyzer is still a work in progress.**

I have added a **ipython notebook for easier exploration of the various statistics and analytical results**. Just check out the *conversation-analyzer.ipynb* in the top-level folder. I have left previous outputs as examples, but I encourage you to explore your own data and tweak the stats and plots based on your preferences. If you are not familiar or not willing to check out the notebook, you can still access the old *main.py* for automatic stats running. It requires as parameter the filepath of the conversation to be analyzed; it will then log and generate a set of basic stats for the overall conversation.

Related classes are in the *stats* folder. The suggested and maintained class to use is *convStatsDataframe*, that makes use of Pandas *Dataframe* for the stats generation. In the *test* package you can find unittests and example files that generate or plot different kind of statistics.

* **Conv Interval** (start date, end date, duration, days without messages)

* **Basic length stats** (number of messages, total length of messages, message average length)

* **Lexical Stats** (tokens count and vocabulary, lexical diversity)

* **Word Count/Frequency** (top N words, word count, words said just by, tf-idf, relevant words by sender, zipf's law)

* **N-Gram Count/Frequency** (bi and trigrams by sender, tf-idf)

* **Emoticons Stats** (number of emoticons, emoticon ratio, emoticon count)

* **Reply Delay** (reply delay by sender, reply delay by message length, num of sequential messages by sender)

* **Aggregation**: most of the previous groups include the option of aggregation by sender, or by datetime features (e.g. hour, day, month, year) where relevant

**NEW**

* **Sentiment Analysis** (joy, anger, disgust, fear values via [IBM Watson Tone Analyzer Service](http://www.ibm.com/watson/developercloud/tone-analyzer.html))

##TODO
    * different-conversations comparison
    * option of using normal login for facebook, then collect needed info (try mechanize)

## License

Released under version 2.0 of the [Apache License].

[Apache license]: http://www.apache.org/licenses/LICENSE-2.0
[my related article]: https://medium.com/@5agado/conversation-analyzer-baa80c566d7b#.w20u1gltf


text:
# go-gw-protoc

A docker container to compile [Protocol Buffers][protobufs] with [protoc-gen-grpc-gateway][grpc-gateway]

[![release][release-badge]][release-link]
[![publish-docker-image][publish-docker-badge]][publish-docker-link]
![license][license-link]

The Docker image is available on [Docker Hub][docker-hub]

It is based on [golang:1.13-buster][golang] and adds all the packages needed for using `protoc` to compile your Protocol Buffers for [gRPC][grpc] and [grpc-gateway][grpc-gateway]

You can generate the gRPC and gRPC-gateway go source with:

```bash
docker run --rm -v ${PWD}:/source diebietse/go-gw-protoc -I. --go_out=plugins=grpc:. --grpc-gateway_out=logtostderr=true:. hello-world.proto
```

To test it go to the [example folder][example], run `build.sh` and it will create `hello-world.pb.go` and `hello-world.pb.gw.go`

To use gogofaster for source code generation use

```bash
docker run --rm -v ${PWD}:/source diebietse/go-gw-protoc -I. --gogofaster_out=plugins=grpc:. --grpc-gateway_out=logtostderr=true:. hello-world.proto
```

Gogofaster can also be used to generate marshallers and unmarshallers as well as a host of other options.  \
-I/usr/local/include \
--go_out=paths=source_relative,plugins=grpc:./ \
--validate_out="lang=go:./" \
hello-world-validate.proto
```

See [https://github.com/gogo/protobuf](https://github.com/gogo/protobuf) for more information.

[protobufs]: https://github.com/protocolbuffers/protobuf
[grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway
[golang]: https://github.com/docker-library/golang/blob/f30f0428221b94c7dcb414ebdcea83106df20897/1.13/buster/Dockerfile
[grpc]: https://github.com/grpc
[example]: ./example
[publish-docker-badge]: https://github.com/diebietse/go-gw-protoc/actions/workflows/docker-build.yml/badge.svg
[publish-docker-link]: https://github.com/diebietse/go-gw-protoc/actions/workflows/docker-build.yml
[license-link]: https://img.shields.io/github/license/diebietse/go-gw-protoc.svg
[release-badge]: https://img.shields.io/github/v/release/diebietse/go-gw-protoc
[release-link]: https://github.com/diebietse/go-gw-protoc/releases

repository: diebietse/go-gw-protoc

branch_name: refs/heads/master

extension: md

gha_language: Dockerfile

license_type: permissive

repo_name: diebietse/go-gw-protoc


text:
https://github.com/github/docs/issues/21865

Repro:
 * Push this folder into a new repository.
 * Create 4 pull requests:
   * branch: `project1`, "Update Project 1 only", change `project1/some/file`
   * branch: `project2`, "Update Project 2 only", change `project2/other/file`
   * branch: `project3`, "Update Project 3 only", change `project3/another/file`
   * branch: `project12`, "Update Project 1 and Project 2 both", change `project1/some/file` and `project2/other/file`
 * Observe CI execution as documented in GitHub issue

license: Unlicense

repository: TWiStErRob/repros

branch_name: refs/heads/main

repo_name: TWiStErRob/repros


text:
---
author: rcartaino
comments: true
date: 2010-09-29 09:58:38+00:00
layout: post
redirect_from: /2010/09/good-subjective-bad-subjective
hero:
slug: good-subjective-bad-subjective
title: Good Subjective, Bad Subjective
wordpress_id: 5236
tags:
- company
- community
- reference
- stackexchange
---

Stack Exchange is about questions with objective, factual answers. We've been crystal clear about this for as long as I can remember, even back to the earliest, pre-beta days of Stack Overflow. It's right there in the standard Stack Exchange FAQ:

>
**What kind of questions should I not ask here?**

>
Avoid asking questions that are subjective, argumentative, or require extended discussion. This is not a discussion board, this is a place for questions that can be answered!

Thus, **questions that are not answerable -- discussions, debates, opinions -- should be closed as subjective**. It seems simple enough: Fact good; opinion and discussion bad. But why?

Most forums and chat rooms have a scale problem. As in, _they don't_. The more people that join the discussion, the more noise each of those connections bring. So the forums get progressively noisier and noisier, and suddenly one day … [you stop learning](http://scobleizer.com/2009/11/02/the-chat-roomforum-problem-an-apology-to-technosailor/).

... eventually the experts (i.e. people who are teaching you stuff) get drowned out and you are left with an experience that looks more like the magazine rack at a grocery store than a book shelf at Harvard. -- Robert Scoble

Because we believe so deeply in _learning_, we are willing to go to great lengths to suppress the discussion, debate, and opinions that -- while plenty entertaining -- cause most forums to inevitably break down.

Insisting on objectivity is fine for computing and mathematics. But once you get past the hard(ish) sciences, you veer towards the much softer social sciences. There are experts in these fields, but they are by definition, not exact. In fact, _most_ academic fields don't have objective answers. Topics like economics, engineering, the arts, literature, and social sciences don't exactly have correct and incorrect answers. There is a [growing list of proposals](http://area51.stackexchange.com/?tab=hot) about increasingly subjective topics, and we believe many of them are going to make great Stack Exchange sites!

[![](http://blog.stackoverflow.com/wp-content/uploads/fields-arranged-by-purity.png)](http://xkcd.com/435/)

That's where the problem starts.

**We never claimed that subjective questions were horrible abominations that should never be asked.** We simply choose to forego those subjective discussions, as there were dozens upon dozens of forums which already catered to them.

But software and programming isn't always a hard science, either. Once you get past the _does this code compile or not_ questions, you're dealing with issues of best practices, experiences, and behaviors. Perhaps because our communities have become so accustomed to getting quick, accurate, and timely answers, they feel that even a subjective Stack Overflow is better than the alternatives. So much so, that our fellow programmers created [a sister site specifically for their pent up subjective questions](http://programmers.stackexchange.com). Take one heaping pile of subjective questions, bottle it up for over two years and… _kablooey!_

[
![](/images/wordpress/programmers-se.png)
](http://programmers.stackexchange.com)

The [programmers.stackexchange.com](http://programmers.stackexchange.com/) site exploded overnight, hosting some of the best (and worst) questions on the Stack Exchange network.

Now turn the page.

[Moms4mom](http://moms4mom.com/) was an early Stack Exchange 1.0 case study in subjectivity. The owners knew from the outset that the topic of parenting was inherently and deeply subjective, a fundamentally bad fit to our engine. Parenting is one of the most subjective subjects I can imagine; every child is different, every parent is different, and whole cultures are _wildly_ different in how they approach child rearing. After all, who can say for certain [what order one should watch the Star Wars (saga) with your children for the first time?](http://moms4mom.com/questions/161/what-order-should-i-watch-the-star-wars-saga-with-my-children-for-the-first-tim)

The folks at Moms4mom owned up to the subjective issue and came up with a set of principles to create _useful_ subjective discussions on parenting: the [**Back It Up! Principle.**](http://moms4mom.com/back-it-up) Back It Up! means that your answers must be based on either:

  * Something that happened to you **personally**

  * Something you can **back up **with a reference

They talk about how "opinion, by itself, is noise." They're not saying that subjective opinions are to be avoided; they're attempting to mold  and shape their inherently subjective Q&A; into something constructive, informative and helpful. As it turns out, there is an entire field of subjective "expertise" that has the hallmarks of making **great Q&A sites**:

![](/images/wordpress/screenshot-0.png)

If we can avoid conversations that are -- and this is the really tricky part -- _too subjective_, we can maintain the ideals of great Q&A in the face of completely subjective topics. We can _avoid_ falling into the predictable destructive patterns of random discussion, debate, and opinion that turn a site from a learning experience into a glorified cheap-thrills gossip rag.

I can generally tell when a question is _unreasonably_ subjective. I can't always describe it, but [I know it when I see it](http://en.wikipedia.org/wiki/I_know_it_when_I_see_it). Unfortunately, that's not good enough to base a policy on.

I shall not today attempt further to define [hard-core pornography]; and perhaps I could never succeed in intelligibly doing so. But I know it when I see it...  -- Potter Stewart of the Supreme Court of the United States

Even the definition of what is too subjective on Stack Exchange is somewhat ... subjective. But **we can provide a set of guidelines that help you determine what a good subjective question is**. It's akin to determining [what is fair use, and what is not](http://en.wikipedia.org/wiki/Fair_use) -- a multi-factor test where you attempt to fit a few guidelines to the specifics of your situation.

## Guidelines for Great Subjective Questions

  1. **Great subjective questions inspire answers that explain "why" and "how".** The best subjective questions _invite explanation_. If you're asking for a product recommendation of some kind, you want answers to contain detailed information about the features and how they can be used, and why you might want to choose one over the other. "How?" and "Why?"  In contrast, the bad subjective questions let answerers get away with hit-and-run answers that maybe provide a name and a link -- but fail to provide any sort of adequate explanation, context, or background.

  2. **Great subjective questions tend to have long, not short, answers**. The best subjective questions inspire your peers to _share their actual experiences_, not just post a mindless one-liner or cartoon in hopes of being rewarded with upvotes for being merely "first." Sharing an experience takes at least one paragraph; ideally several paragraphs. If I'm asking about how to bake cookies, don't give me a list of grocery items: milk. butter. vanilla. eggs. There is virtually nothing I can learn from a short, static list of grocery items that make up a recipe. Instead, tell me what happened the last time you made cookies _from_ that recipe! Share your detailed experiences, so that we all might learn from them.

  3. **Great subjective questions have a constructive, fair, and impartial tone.** The best subjective questions avoid the all too seductive route of ranting and flamebait. They set the right tone of constructive learning and collaboration from the very outset, by emphasizing that we're all here to learn from each other, even if we have different viewpoints or beliefs about the right way to handle what are inherently subjective decisions. We're not here to fight each other; that's an enormous waste of everyone's time. There is always _more than one right way_.

  4. **Great subjective questions invite sharing experiences over opinions**. Certainly experiences inform opinions, but the best subjective questions unabashedly and unashamedly prioritize sharing actual experiences over random opinions. It's more useful to share with us _what you've done_ than _what you think_. Everyone has an opinion. It takes zero effort or imagination to have an opinion about anything and everything. But people who have _done_ things, real things in the world, and have the scars and arrows in their back to show for it -- now that's worth sharing. You should be uniquely qualified to have your opinion based on the specific experiences you had. And you should share those experiences, and more specifically what you _learned_ from your experiences, with us!

  5. **Great subjective questions insist that opinion be backed up with facts and references**. Opinion isn't _all_ bad, so long as it's backed up with something other than "because I'm an expert", or "because I said so", or "just because". Use your specific experiences to back up your opinions, as above, or point to some research you've done on the web or elsewhere that provides evidence to support your claims.  We _want_ to believe you. But like Wikipedia itself, {% raw %}{{citation needed}}{% endraw %}. And good subjective questions make this clear from the outset: _back it up!_

  6. **Great subjective questions are more than just mindless social fun**. The best subjective questions avoid the social pitfalls of "Getting To Know You" (GTKY) and mindless entertainment. Sometimes people just want to poll a community for ideas that might help solve a problem (best book, best approach). These can be okay when there is actual knowledge in the collection of answers. What _isn't_ okay are the social bonding questions which are designed just to impress others, such as "What is the coolest/stupidest/weirdest/funniest thing you saw/did/tasted today?", or questions where the site's actual topic is tacked on as a token afterthought, such as "Favorite food for programmers." If you removed the "for programmers" part of this question, is it really unique to our profession? Could an average member of our community reasonably be expected to _learn something that makes them better at their job_ from this question?  If not, then it's a bad subjective question.

So, there you have it: the difference between a good subjective question and a bad subjective question -- expressed as six simple guidelines. If you're wondering if a particular subjective question is worthy, wonder no longer. **Apply the six subjective question guidelines and see how it scores.** If the score is low, close it. If the score is high, vote it up. You can expect to see these guidelines enforced on programmers.stackexchange.com over the next week or so, and made policy network-wide, wherever subjectivity is part of the site topic itself.

If you think this is all too complicated, well, I guess that's _subjective_. But, [as Robert Scoble correctly pointed out](http://scobleizer.com/2009/11/02/the-chat-roomforum-problem-an-apology-to-technosailor/), this is the price of allowing some subjectivity without letting it undermine and destroy the very learning aspect of our communities that we believe makes them worthwhile in the first place.

As for me, I say **subjective questions are dead. Long live subjective questions!**

license: MIT

extension: markdown


text:
# Lagom build philosophy

When done right, adopting a reactive microservice architecture can drastically increase a development organization's productivity and velocity. Lagom offers a flexible build approach that supports individual and team development, and that can grow over time. You can put all of your microservices in a single sbt or Maven build (or project), each service can be in a separate build, or multiple builds can contain groups of logically related services.

To choose an approach, consider the pros and cons:

* Single build for multiple services:
    * Development of new features often requires simultaneous work on multiple services.  Having those services in the same build makes for a frictionless development experience.
    * However, as the number of developers working on a build increases, it can slow down velocity if they get in each other's way.
* Multiple builds, each with a single service or small group of services:
    * Each microservice can be changed independently and move forward faster when isolated. At release time, dependent services can upgrade and use the updated service.
    * However, multiple builds add complexity. You need to publish services to make them available to other services. The implementation needs to import all services on which an individual service depends. [[Splitting a system into multiple builds|MultipleBuilds]] describes how to deal with this.

When starting out, it often makes sense to keep all services in the same build. A small team can easily work with one build and avoid the lag time and dependencies that arise when systems are divided into multiple builds. As a system and organization evolves, it can make sense to change your approach. For example, as a system grows in functionality, you can split services into different builds. The same principle applies to the teams working on them. It's important not to be afraid to refactor your builds to keep up with your organizational needs.

repository: lagom/lagom

gha_language: Scala

repo_name: lagom/lagom


text:
# Benchmark

## Machine:

This time, we only provide benchmark on GPU and [ARM](arm_benchmark.md). In the near future, we will add benchmark on CPU.

For ARM benchmark, please refer [here](arm_benchmark.md)

>  CPU: `12-core Intel(R) Xeon(R) CPU E5-2620 v2 @2.10GHz`
>  GPU: `Tesla P4`
>  cuDNN: `v7`

## Counterpart of anakin  :
The counterpart of **`Anakin`** is the acknowledged high performance inference engine **`NVIDIA TensorRT 3`** ,   The models which TensorRT 3 doesn't support we use the custom plugins  to support.

## Benchmark Model

The following convolutional neural networks are tested with both `Anakin` and `TenorRT3`.
 You can use pretrained caffe model or the model trained by youself.

> Please note that you should transform caffe model or others into anakin model with the help of [`external converter ->`](#)

- [Vgg16](#1)   *caffe model can be found [here->](https://gist.github.com/jimmie33/27c1c0a7736ba66c2395)*
- [Yolo](#2)  *caffe model can be found [here->](https://github.com/hojel/caffe-yolo-model)*
- [Resnet50](#3)  *caffe model can be found [here->](https://github.com/KaimingHe/deep-residual-networks#models)*
- [Resnet101](#4)  *caffe model can be found [here->](https://github.com/KaimingHe/deep-residual-networks#models)*
- [Mobilenet v1](#5)  *caffe model can be found [here->](https://github.com/shicai/MobileNet-Caffe)*
- [Mobilenet v2](#6)  *caffe model can be found [here->](https://github.com/shicai/MobileNet-Caffe)*
- [RNN](#7)  *not support yet*

We tested them on single-GPU with single-thread.

### VGG16

- Latency (`ms`) of different batch

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 8.8690 | 8.2815
    2 | 15.5344 | 13.9116
    4 | 26.6000 | 21.8747
    8 | 49.8279 | 40.4076
    32 | 188.6270 | 163.7660

- GPU Memory Used (`MB`)

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 963 | 997
    2 | 965 | 1039
    4 | 991 | 1115
    8 | 1067 | 1269
    32 | 1715 | 2193

### Yolo

- Latency (`ms`) of different batch

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 16.4596| 15.2124
    2 | 26.6347| 25.0442
    4 | 43.3695| 43.5017
    8 | 80.9139 | 80.9880
    32 | 293.8080| 310.8810

- GPU Memory Used (`MB`)

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 1569 | 1775
    2 | 1649 | 1815
    4 | 1709 | 1887
    8 | 1731 | 2031
    32 | 2253 | 2907

###  Resnet50

- Latency (`ms`) of different batch

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 4.2459   |  4.1061
    2 |  6.2627  |  6.5159
    4 | 10.1277  | 11.3327
    8 | 17.8209 |   20.6680
    32 | 65.8582 | 77.8858

- GPU Memory Used (`MB`)

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 531  | 503
    2 | 543  | 517
    4 | 583 | 541
    8 | 611 | 589
    32 |  809 | 879

###  Resnet101

- Latency (`ms`) of different batch

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 7.5562 | 7.0837
    2 | 11.6023 | 11.4079
    4 | 18.3650 | 20.0493
    8 | 32.7632 | 36.0648
    32 | 123.2550 | 135.4880

- GPU Memory Used (`MB)`

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 701  | 683
    2 | 713  | 697
    4 | 793 | 721
    8 | 819 | 769
    32 | 1043 | 1059

###   MobileNet V1

- Latency (`ms`) of different batch

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 45.5156  |  1.3947
    2 |  46.5585  |  2.5483
    4 | 48.4242  | 4.3404
    8 |  52.7957 |  8.1513
    32 | 83.2519 | 31.3178

- GPU Memory Used (`MB`)

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 329  | 283
    2 | 345   | 289
    4 | 371 | 299
    8 | 393 | 319
    32 |  531 | 433

###   MobileNet V2

- Latency (`ms`) of different batch

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 65.6861 | 2.9842
    2 | 66.6814 | 4.7472
    4 | 69.7114 | 7.4163
    8 | 76.1092 | 12.8779
    32 | 124.9810 | 47.2142

- GPU Memory Used (`MB`)

    BatchSize | TensorRT | Anakin
    :---: | :---: | :---: |
    1 | 341 | 293
    2 | 353 | 301
    4 | 385 | 319
    8 | 421 | 351
    32 | 637 | 551

## How to run those Benchmark models?

> Please refer to [Instructions](CNN/README.md)

# RNN Benchmark

## Machine:

This time, we only provide benchmark on CPU. In the near future, we will add benchmark on ARM and GPU.

## Counterpart of anakin  :

The counterpart of **`Anakin`** is `Tensorflow 1.8.0`, which installed by Anaconda 4.5.4, run by Python 3.6

## Benchmark Model

The following convolutional neural networks are tested with both `Anakin` and `Tensorflow`.
 You can use pretrained model or the model trained by youself.

> Please note that you should transform fluid model or others into anakin model with the help of [`external converter ->`](#)

- [Language model](#1)   *fluid model can be found [here->](https://github.com/PaddlePaddle/models/tree/develop/fluid/language_model)*

We tested them on single-CPU with different thread numbers.
For language model, we use ptb_valid_txt as dataset.

Tensorflow run in python api, and the thread number for tensorfow is actually process number. You can run it by ` sh benchmark_tensorflow.sh`

Anakin run in c api, and we set openmp thread pool = 1, mkl thread pool=1. You can run it by `sh benchmark_anakin.sh`

All test run in docker 1.13.1, with CentOS Linux release 7.5.1804
### language model in i7-7700

- Latency (`ms`) of one batch

    ThreadNum | Tensorflow | Anakin
    :---: | :---: | :---: |
    1 | 5.64    | 2.44
    2 | 8.29    | 4.44
    4 | 14.23   | 9.91
    6 | 19.83   | 15.51

- Throughput (`words/s`)

    ThreadNum | Tensorflow | Anakin
    :---: | :---: | :---: |
    1 | 3459 | 8536
    2 | 4772 | 9399
    4 | 5498 | 8418
    6 | 5764 | 8070

### language model in E5-2620 v4

- Latency (`ms`) of one batch

    ThreadNum | Tensorflow | Anakin
    :---: | :---: | :---: |
    1 | 6.31    | 2.84
    2 | 7.94    | 2.678
    4 | 8.66    | 4.32
    6 | 12.33   | 7.12

- Throughput (`words/s`)

    ThreadNum | Tensorflow | Anakin
    :---: | :---: | :---: |
    1 | 2890 | 7257
    2 | 4726 | 15439
    4 | 8659 | 18351
    6 | 9414 | 17461

### language model in E5-2650 v4

- Latency (`ms`) of one batch

    ThreadNum | Tensorflow | Anakin
    :---: | :---: | :---: |
    1 | 3.69    | 2.84
    2 | 4.62    | 2.85
    4 | 7.78    | 3.48
    6 | 13.54   | 4.79

- Throughput (`words/s`)

    ThreadNum | Tensorflow | Anakin
    :---: | :---: | :---: |
    1 | 4456 | 7300
    2 | 7522 | 14556
    4 | 9580 | 22086
    6 | 8664 | 23938

## How to run those Benchmark models?

> Please refer to [Instructions](RNN/README.md)

repository: vin-huang/Anakin

branch_name: refs/heads/AMD-test

repo_name: vin-huang/Anakin


text:
# bckpcln reference doc

#### Version / Disclaimer

**bckpcln vesion 0.2** is still early WIP, although I use it everyday on my personal server and *it seems to work*.

## Description

#### Summary

This is a small CLI tool to automatically cleanup your less useful local system backups.

Written in Rust, it is reliable, has very few dependencies, and can easily run in a small server.

#### Use case:

On your server, you have put in place a program or script to periodically create local system backups in a directory.
Your backups are *not* incremental, but **full backups**.

Over time, the backups quickly pile up, and you have to archive or delete them if you don't want
to run out of disk space.

**bckpcln** is a small tool that allows you to delete some of these backups automatically.
It is intended to be run periodically (via **cron** for example) in the directory where your backups are stored,
to "clean" the backups and regain space.

**bckpcln** won't simply delete the oldest backups,
but instead uses an algorithm to try to delete the "less useful" ones.
It assume that not only the latest backups are important, but also older ones.

Indeed, ideally, you want to be able to restore your system in its latest state after a hardware failure,
but also maybe in some of its older states.
This can be the case if you want to restore it before a system upgrade failure,
or before an intrusion (presuming the backup files were not compromised!).
Or if you simply want to go back in time, out of curiosity...

Note that there is no assumption on the rhythm at which the backups are created.

#### Backup directory format

The backups must stored in a single directory.
In this version of **bckpcln**, the backups must be stored in subdirectories in this central directory.
These subdirs must be named using a pattern that indicates the date of the backup files inside.
The precise content of each subdirectory is not important.

As an example:
```text
backups_folder
│
├── 2012-02-24_1545_08
│   ├── foo.bak
|   └── bar
|── 2012-07-15_1854_53
│   ├── foo
│   └── baz
│       ├── backup_bar1
│       └── bar2.tgz
|── 2012-07-15_1854_53
│   ├── foo.bk
│   └── baz
│       └── bar
│           └── baf.partimage
|
.
.
.
```

#### How **bckpcln** chooses the backups to delete

The "usefulness" criteria for a backup are the following:
- The backup is isolated. A backup is isolated if its creation date is far from any other backup's date.
- The backup is recent.

The first criterium has a higher priority than the second.

## Running bckpcln

The best way to learn about **bckpcln** is to run it. It won't delete anything without being passed the right arguments.
You can run this command to learn about its usage:

```
> bckpcln --help

USAGE:
    bckpcln [FLAGS] [OPTIONS] --max-size <MAX_SIZE>

FLAGS:
        --delete     Perform the actual deletion
    -f, --force      Forces the deletion without prompting
    -h, --help       Prints help information
    -l, --list       List all the backups and their properties
    -V, --version    Prints version information
    -v, --verbose    Print more details

OPTIONS:
    -d, --directory <BACKUP_DIR>    The directory to process. Default is current working directory.
    -m, --max-size <MAX_SIZE>       Defines the maximum accepted size of the backup folder. Supports standard units.
                                    Examples: 5k, 10M, 6G
        --move <TARGET_FOLDER>      Perform a move (instead of delete) to the specified target folder
```

## Simple example

Assuming your backups are stored in /mnt/foo/backups, and the max total size you want to allow them is 50GB,
you can run this command:
```
> bckpcln -d /mnt/foo/backups -m 50G

Backup directory to clean up: /mnt/foo/backups
Max size: 75 GiB
Perform delete: No, just explain
Cumulated size of all backup files: 52 GiB
Cumulated backups size is higher than the max size - cleanup is needed!
Deleting (or moving) "/mnt/foo/backups/sys425123.bak" would free 1 GiB
Deleting (or moving) "/mnt/foo/backups/sys423456.bak" would free 1 GiB
New cumulated size of all backup files : 49 GiB
```

**bckpcln** will show you the file it intends to delete, and the space you would regain.
But nothing gets deteled - by default, it's a *dry run!*

When you're ready to actually delete the files, simply add the --delete flag to **actually delete the files**:

```
> bckpcln -d /mnt/foo/backups -m 50G --delete
```

You also have the option to move the files to another directory, instead of deleting them:

```
> bckpcln -d /mnt/foo/backups -m 50G --move /mnt/bar/archive
```

repository: rsaugier/bckpcln

repo_name: rsaugier/bckpcln


text:
# Raketa

Raketa is a fully client-side content management system that can be deployed for easily managing pages.  It can be used as a wiki in connection with a git repository.  Should you choose this option Github allows editing through the website, as does the Gitlab application which is fairly easy to install using an automated method.  This content engine is designed to create traditional sites as well and allow web creators to get new sites up and running by having a powerful foundation from which they can write their sites in markdown.

**Mastodon:**<EMAIL_ADDRESS>
## Features

* Relatively easy theme system.  Anyone with a basic understanding of CSS can create a new theme for their site.
* (Planned) Easy plugin creation and management system for adding functionality and custom code.
* (Planned) Embedding of third party comments.  This will be done initially through Disqus but others may be added.
* (Planned) Blog-style list of pages on the front page and an appropriate way of sorting them using meta data.
* (Planned) Allow metadata to be ented into pages by the author.
* (Planned) Customizeable top menu and an optional right-side bar
* (Planned) Create a system to customize the copyright with options for Creative Commons licenses.

## Installation

Download the files for Raketa to the location of your site.  In the root of the installation, create `config.js` and define any variables to customize your site.

At a minimum you should define the following variables:

`cgSitename = 'Your site name';`

`cgOwner = 'Your name or username';`

`cgCopyrightYear = '2021';`

It is also advisable to change the home page since it could be overwritten depending on how you update your site.

`cgHomepageTitle = 'home';`

## Known issues

* Sometimes when loading the page there is a bug where the default value of variables is displayed instead of the configured value.
* `cgCopyright` is automatically reset in `main.js` since

## Customizing Raketa

### Adding small code changes without a new theme or plugin

The file `user.css` can be used to add styles or make changes without creating a new theme.  All styles applied here will be added over the current theme.

Small JavaScript code features can be added to `config.js` since it is a fully functional JavaScript file.

### Creating a new theme

In order to create a theme, you need to create a directory inside the `themes` directory with the name of your theme and inside of there a file with the same name ending in `.css`.  The directory and file must have the same name and however the name is written will be the name of your theme.  If you aren't experienced with CSS then I suggest that you copy the directory of an existing theme and change the names of the directory and file to whatever you want.  Doing this will give you a starting point from which you can modify the theme however you like.

Once you have a functional theme you can edit `config.js` and set the variable `cgTheme` to the name of your theme so it will be used on your site.

### Creating a new plugin

To create a new plugin, decide on a name for your plugin and create a directory under the `plugins` directory with that name followed by a file inside it with the same name and ending in `.js`.  Write the code of your plugin in that file.

After creating or downloading a plugin, go to `config.js` and add `cfLoadPlugin('PluginName');` to install the plugin.

## Consideration

### Disqus

Pros:
* It is very widespread and used on many sites.  It is likely that visitors will have a Disqus account for commenting and will be more inclined to engage.

Cons:
* Disqus is a third party tracker.
* Most adblockers will block it and visitors will never know they are missing out on discussion.

Possible solution to adblockers:

I don't want to push visitors too hard to whitelist the site and allow a third party.

* Give visitors a periodic notice informing them of the comment section and ask them to whitelist the site.  After dismissing the notice it should be at least a week before they are reminded.


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

### Description

Stack consumption vulnerability in Double-Take <IP_ADDRESS>65 and earlier, distributed under the HP StorageWorks Storage Mirroring name and other names, allows remote attackers to cause a denial of service (daemon crash) via a certain packet that triggers the recursive calling of a function.

### POC

#### Reference
- http://aluigi.altervista.org/adv/doubletakedown-adv.txt
- http://aluigi.org/poc/doubletakedown.zip
- http://securityreason.com/securityalert/3698

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

repository: trickest/cve

gha_language: HTML

gha_license_id: MIT

repo_name: trickest/cve


text:
# Model Complexity Analysis

## Get the FLOPs and params (experimental)

We provide a script adapted from [MMEngine](https://github.com/open-mmlab/mmengine/blob/main/mmengine/analysis/complexity_analysis.py) to compute the FLOPs and params of a given model.

```shell
python tools/analysis_tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}]
```

Description of all arguments:

- `config`: The path of the model config file.
- `--shape`: Input size, support single value or double value parameter, such as `--shape 256` or `--shape 224 256`. If not set, default to be `224 224`.

Example:

```shell
python tools/analysis_tools/get_flops.py configs/resnet/resnet50_8xb32_in1k.py
```

You will get the final result like this.

```text
==============================
Input shape: (3, 224, 224)
Flops: 4.109G
Params: 25.557M
Activation: 11.114M
==============================
```

Also, you will get the detailed complexity information of each layer like this:

```text
+--------------------------+----------------------+-----------+--------------+
| module                   | #parameters or shape | #flops    | #activations |
+--------------------------+----------------------+-----------+--------------+
| model                    | 25.557M              | 4.109G    | 11.114M      |
|  backbone                |  23.508M             |  4.109G   |  11.114M     |
|   backbone.conv1         |   9.408K             |   0.118G  |   0.803M     |
|    backbone.conv1.weight |    (64, 3, 7, 7)     |           |              |
|   backbone.bn1           |   0.128K             |   1.606M  |   0          |
|    backbone.bn1.weight   |    (64,)             |           |              |
|    backbone.bn1.bias     |    (64,)             |           |              |
|   backbone.layer1        |   0.216M             |   0.677G  |   4.415M     |
|    backbone.layer1.0     |    75.008K           |    0.235G |    2.007M    |
|    backbone.layer1.1     |    70.4K             |    0.221G |    1.204M    |
|    backbone.layer1.2     |    70.4K             |    0.221G |    1.204M    |
|   backbone.layer2        |   1.22M              |   1.034G  |   3.111M     |
|    backbone.layer2.0     |    0.379M            |    0.375G |    1.305M    |
|    backbone.layer2.1     |    0.28M             |    0.22G  |    0.602M    |
|    backbone.layer2.2     |    0.28M             |    0.22G  |    0.602M    |
|    backbone.layer2.3     |    0.28M             |    0.22G  |    0.602M    |
|   backbone.layer3        |   7.098M             |   1.469G  |   2.158M     |
|    backbone.layer3.0     |    1.512M            |    0.374G |    0.652M    |
|    backbone.layer3.1     |    1.117M            |    0.219G |    0.301M    |
|    backbone.layer3.2     |    1.117M            |    0.219G |    0.301M    |
|    backbone.layer3.3     |    1.117M            |    0.219G |    0.301M    |
|    backbone.layer3.4     |    1.117M            |    0.219G |    0.301M    |
|    backbone.layer3.5     |    1.117M            |    0.219G |    0.301M    |
|   backbone.layer4        |   14.965M            |   0.81G   |   0.627M     |
|    backbone.layer4.0     |    6.04M             |    0.373G |    0.326M    |
|    backbone.layer4.1     |    4.463M            |    0.219G |    0.151M    |
|    backbone.layer4.2     |    4.463M            |    0.219G |    0.151M    |
|  head.fc                 |  2.049M              |           |              |
|   head.fc.weight         |   (1000, 2048)       |           |              |
|   head.fc.bias           |   (1000,)            |           |              |
|  neck.gap                |                      |  0.1M     |  0           |
+--------------------------+----------------------+-----------+--------------+
```

```{warning}
This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double-check it before you adopt it in technical reports or papers.
- FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 224, 224).
- Some operators are not counted into FLOPs like custom operators. Refer to [`mmengine.analysis.complexity_analysis._DEFAULT_SUPPORTED_FLOP_OPS`](https://github.com/open-mmlab/mmengine/blob/main/mmengine/analysis/complexity_analysis.py) for details.
```

repository: open-mmlab/mmpretrain

gha_language: Python

repo_name: open-mmlab/mmpretrain


text:
# Schedge
Schedge is an open source API to NYU's course catalog, geared at eventually helping
NYU students plan their courses easier and faster.

NYU Albert is really annoying to use, and so is the rest of NYU's course catalog
infrastructure. Our goal with this API is to make it easier for students to plan
out their schedules, and eventually to also do some of that for them.

API Docs: https://schedge.a1liu.com

## Contributing
Please take a look at [contributing guide](docs/CONTRIBUTING.md). It will provide you
a general overview of the project and how to contribute.

## API Documentation
The API documentation is available at https://schedge.a1liu.com .

## Commands
The following commands are valid in Schedge:

```sh
./schedge query catalog     # Query the catalog
./schedge query sections    # Query a section
./schedge query school      # Query a school/subject
./schedge parse catalog     # Parse the catalog
./schedge parse section     # Parse the section
./schedge parse school      # Parse the school/subject
./schedge scrape catalog    # scrape the catalog
./schedge scrape sections   # scrape the sections
./schedge scrape school     # scrape the school/subject
./schedge db scrape         # scrape the catalog for information
./schedge db query          # query the database for information
./schedge db serve          # Serve the database data through an API
```

#### Example
```sh
./schedge scrape catalog --year 2020 --semester sp --school UA --subject CSCI
```
The above command will scrape catalog data from Albert website for Computer Science courses at the
College of Arts and Sciences for the Spring, 2020.

## Front Ends
If you'd like to write a front end to this API, you can list it below!

- https://courses.torchnyu.com (repo at https://github.com/NicholasLYang/courses )
- https://bobcat-search.netlify.com (repo at https://github.com/EthanPrintz/bobcat-search )

repository: torchnyu/schedge

gha_language: Java

repo_name: torchnyu/schedge


text:
[![homebridge-unifi-protect: Native HomeKit support for UniFi Protect](https://raw.githubusercontent.com/hjdhjd/homebridge-unifi-protect/main/images/homebridge-unifi-protect.svg)](https://github.com/hjdhjd/homebridge-unifi-protect)

# Homebridge UniFi Protect

[![Downloads](https://img.shields.io/npm/dt/homebridge-unifi-protect?color=%230559C9&logo=icloud&logoColor=%23FFFFFF&style=for-the-badge)](https://www.npmjs.com/package/homebridge-unifi-protect)
[![Version](https://img.shields.io/npm/v/homebridge-unifi-protect?color=%230559C9&label=Homebridge%20UniFi%20Protect&logo=ubiquiti&logoColor=%23FFFFFF&style=for-the-badge)](https://www.npmjs.com/package/homebridge-unifi-protect)
[![UniFi Protect@Homebridge Discord](https://img.shields.io/discord/432663330281226270?color=0559C9&label=Discord&logo=discord&logoColor=%23FFFFFF&style=for-the-badge)](https://discord.gg/QXqfHEW)
[![verified-by-homebridge](https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59&style=for-the-badge&logoColor=%23FFFFFF&logo=homebridge)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)

## Complete HomeKit support for the UniFi Protect ecosystem using [Homebridge](https://homebridge.io).

`homebridge-unifi-protect` is a [Homebridge](https://homebridge.io) plugin that provides HomeKit support to the [UniFi Protect](https://ui.com/camera-security) device ecosystem. [UniFi Protect](https://ui.com/camera-security) is [Ubiquiti's](https://www.ui.com) video security platform, with rich camera, doorbell, and NVR controller hardware options for you to choose from, as well as an app which you can use to view, configure and manage your video camera and doorbells.

### Feature Options

Feature options allow you to enable or disable certain features in this plugin. These feature options provide unique flexibility by also allowing you to set a scope for each option that allows you more granular control in how this plugin makes features and capabilities available in HomeKit.

The priority given to these options works in the following order, from highest to lowest priority where settings that are higher in priority will override the ones below:

  * Device options that are enabled or disabled.
  * Controller options that are enabled or disabled.
  * Global options that are enabled or disabled.

All feature options can be set at any scope level, or at multiple scope levels. If an option isn't applicable to a particular category of device, it is ignored. For example, if you have two doorbells in your environment, and want to enable the same feature options on both, you can enable the doorbell-related feature options globally rather than specifying them for each individual doorbell. If you want to override a global feature option you've set, you can override the global feature option for the individual doorbell in this example.

**Note: it's strongly recommended that you use the Homebridge webUI](https://github.com/homebridge/homebridge-config-ui-x) to configure this plugin - it's easier to use for most people, and will ensure you always have a valid configuration.**

#### Specifying Scope
There are two types of scope specifiers that you can use with feature options - MAC addresses.

Scoping rules:

  * If you don't use a scoping specifier, feature options will be applied globally for all devices.
  * To use a device or controller-specific feature option, append the option with `.MAC`, where `MAC` is the MAC address of either a UniFi Protect controller or a camera.

`homebridge-unifi-protect` will log all devices it discovers on startup, including MAC addresses, which you can use to tailor the feature options you'd like to enable or disable on a per-device basis.

### Getting Started
Before using these features, you should understand how feature options propagate to controllers and the devices attached to them. If you choose to disable a controller from being available to HomeKit, you will also disable all the cameras attached to that controller. If you've disabled a controller, you can selectively enable a single device associated with that controller by explicitly using the `Enable.` Feature Option with that device's MAC address. This provides you a lot of richness in how you enable or disable devices for HomeKit use.

The `options` setting is an array of strings used to customize Feature Options in your `config.json`. I would encourage most users, however, to use the [Homebridge webUI](https://github.com/homebridge/homebridge-config-ui-x), to configure Feature Options as well as other options in this plugin. It contains additional validation checking of parameters to ensure the configuration is always valid.

#### Example Configuration
An example `options` setting might look like this in your config.json:

```js
"platforms": [
  {
    "platform": "UniFi Protect",

    "options": [
      "Disable.Video.Transcode",
      "Enable.Video.Transcode.AAAAAAAAAAAA"
    ],

    "controllers": [
      {
        "address": "<IP_ADDRESS>",
        "username": "some-unifi-protect-user (or create a new one just for homebridge)",
        "password": "some-password"
      }
    ]
  }
]
```
In this example:

| Device MAC Address    | Description
|-----------------------|------------------
| AAAAAAAAAAAA          | A UVC G3 Flex that is managed by a UniFi Protect controller.

* The first line `Disable.Video.Transcode` disables transcoding on all UniFi Protect devices that appear in HomeKit.
* The second line, overrides the first and enables transcoding on the G3 Flex. Specifying device-specific options always overrides global settings.

### Feature Options Reference
Feature options provide a rich mechanism for tailoring your `homebridge-unifi-protect` experience. The reference below is divided into functional category groups:

**Note: it's strongly recommended that you use the Homebridge webUI](https://github.com/homebridge/homebridge-config-ui-x) to configure this plugin - it's easier to use for most people, and will ensure you always have a valid configuration.**

 * [Audio](#audio): Audio feature options.
 * [Device](#device): Device feature options.
 * [Doorbell](#doorbell): Doorbell feature options.
 * [Log](#log): Logging feature options.
 * [Motion](#motion): Motion detection feature options.
 * [Nvr](#nvr): NVR feature options.
 * [SecuritySystem](#securitysystem): Security system feature options.
 * [Video](#video): Video feature options.
 * [Video.HKSV](#video.hksv): HomeKit Secure Video feature options.

#### Audio feature options.

These option(s) apply to: Protect cameras

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Audio`                                          | Audio support. **(default: enabled)**.
*Supported on Protect cameras that have a microphone.*
| `Audio.Filter.Noise`                             | Audio filter for ambient noise suppression. **(default: disabled)**.
*Supported on Protect cameras that have a microphone.*
| `Audio.Filter.Noise.FftNr<I>.Value</I>`          | Noise reduction amount, in decibels, for the FFmpeg afftdn filter. **(default: 90)**.
| `Audio.Filter.Noise.HighPass<I>.Value</I>`       | Frequency, in Hertz, for the FFmpeg highpass filter. **(default: 200)**.
| `Audio.Filter.Noise.LowPass<I>.Value</I>`        | Frequency, in Hertz, for the FFmpeg lowpass filter. **(default: 1000)**.
| `Audio.TwoWay`                                   | Two-way audio support on supported cameras. **(default: enabled)**.
*Supported on Protect devices that have a speaker (e.g. Protect doorbells).*

#### Device feature options.

These option(s) apply to: all Protect devices

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Device`                                         | Make this device available in HomeKit. **(default: enabled)**.
| `Device.StatusLed`                               | Enable the status LED for this device in HomeKit. **(default: disabled)**.
*Supported on Protect devices that have a status LED.*

#### Doorbell feature options.

These option(s) apply to: Protect cameras

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Doorbell.Messages`                              | Enable the doorbell messages feature. **(default: enabled)**.
*Supported on Protect devices that have a doorbell.*
| `Doorbell.Messages.FromDoorbell`                 | Use messages saved to the Protect NVR as message switches. **(default: enabled)**.
*Supported on Protect devices that have a doorbell.*
| `Doorbell.PhysicalChime`                         | Add switch accessories to control the physical chimes attached to a Protect doorbell. **(default: disabled)**.
*Supported on undefined.*
| `Doorbell.PhysicalChime.Duration.Digital<I>.Value</I>`  | Chime duration, in milliseconds, of a digital physical chime attached to a Protect doorbell. **(default: 1000)**.
*Supported on undefined.*
| `Doorbell.Trigger`                               | Add a switch accessory to trigger doorbell ring events on a Protect camera or doorbell. **(default: disabled)**.
*Supported on Protect cameras that have a motion sensor.*

#### Logging feature options.

These option(s) apply to: Protect cameras, Protect lights, Protect sensors

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Log.Doorbell`                                   | Log doorbell ring events in Homebridge. **(default: enabled)**.
*Supported on Protect cameras that have a motion sensor.*
| `Log.HKSV`                                       | Log HomeKit Secure Video recording events in Homebridge. **(default: enabled)**.
*Supported on Protect cameras that have a motion sensor.*
| `Log.Motion`                                     | Log motion events in Homebridge. **(default: disabled)**.
*Supported on Protect devices that have a motion sensor.*

#### Motion detection feature options.

These option(s) apply to: Protect cameras, Protect lights, Protect sensors

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Motion.Duration<I>.Value</I>`                   | Duration, in seconds, of a single motion event, before allowing a new one. **(default: 10)**.
| `Motion.OccupancySensor`                         | Add an occupancy sensor accessory using motion sensor activity to determine occupancy. By default, any motion will trigger occupancy. If the smart motion detection feature option is enabled, it will be used instead. **(default: disabled)**.
*Supported on Protect devices that have a motion sensor.*
| `Motion.OccupancySensor.Duration<I>.Value</I>`   | Duration, in seconds, to wait without receiving a motion event to determine when occupancy is no longer detected. **(default: 300)**.
| `Motion.OccupancySensor.Person`                  | When using both the occupancy sensor and smart motion detection feature options, use UniFi Protect's person detection to trigger occupancy. **(default: enabled)**.
*Supported on Protect devices that support smart motion detection (e.g. G4-series cameras and better).*
| `Motion.OccupancySensor.Vehicle`                 | When using both the occupancy sensor and smart motion detection feature options, use UniFi Protect's vehicle detection to trigger occupancy. **(default: disabled)**.
*Supported on Protect devices that support smart motion detection (e.g. G4-series cameras and better).*
| `Motion.SmartDetect`                             | Use UniFi Protect smart motion detection for HomeKit motion events when on a supported device. **(default: disabled)**.
*Supported on Protect devices that support smart motion detection (e.g. G4-series cameras and better).*
| `Motion.SmartDetect.ObjectSensors`               | Add contact sensor accessories for each smart motion object type that UniFi Protect supports. **(default: disabled)**.
*Supported on Protect devices that support smart motion detection (e.g. G4-series cameras and better).*
| `Motion.Switch`                                  | Add a switch accessory to activate or deactivate motion detection in HomeKit. **(default: disabled)**.
*Supported on Protect devices that have a motion sensor.*
| `Motion.Trigger`                                 | Add a switch accessory to manually trigger a motion detection event in HomeKit. **(default: disabled)**.
*Supported on Protect devices that have a motion sensor.*

#### NVR feature options.

These option(s) apply to: Protect controllers

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Nvr.Service.Playlist<I>.Value</I>`              | Publish an M3U playlist of Protect cameras on the specified port of this Homebridge server that is suitable for use in apps (e.g. Channels DVR) that can make camera livestreams available through them. **(default: 10110)**.
| `Nvr.Publish.Telemetry`                          | Publish all the realtime telemetry received from the Protect controller to MQTT. **(default: disabled)**.
| `Nvr.Recording.Switch`                           | Add switch accessories to control the native recording capabilities of the UniFi Protect NVR. **(default: disabled)**.
| `Nvr.SystemInfo`                                 | Add sensor accessories to display the Protect controller system information (currently only the temperature). **(default: disabled)**.

#### Security system feature options.

These option(s) apply to: Protect controllers

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `SecuritySystem.Alarm`                           | Add a switch accessory to trigger the security system accessory, when using the liveview feature option. **(default: disabled)**.

#### Video feature options.

These option(s) apply to: Protect cameras

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Video.Transcode.Hardware`                       | Use hardware-accelerated transcoding when available (Apple Macs, Intel Quick Sync Video-enabled CPUs, Raspberry Pi 4). **(default: disabled)**.
| `Video.Stream.Only.High`                         | When viewing livestreams, force the use of the high quality video stream from the Protect controller. **(default: disabled)**.
| `Video.Stream.Only.Medium`                       | When viewing livestreams, force the use of the medium quality video stream from the Protect controller. **(default: disabled)**.
| `Video.Stream.Only.Low`                          | When viewing livestreams, force the use of the low quality video stream from the Protect controller. **(default: disabled)**.
| `Video.Transcode`                                | When streaming to local clients (e.g. at home), always transcode livestreams, instead of transmuxing them. **(default: disabled)**.
| `Video.Transcode.HighLatency`                    | When streaming to high-latency clients (e.g. cellular connections), transcode livestreams instead of transmuxing them. **(default: enabled)**.
| `Video.DynamicBitrate`                           | Dynamically adjust the image quality of the camera directly on the UniFi Protect controller to accomodate HomeKit requests. **(default: disabled)**.
| `Video.DynamicBitrate.Switch`                    | Add a switch accessory to enable or disable dynamic bitrate support on the Protect controller. **(default: disabled)**.

#### HomeKit Secure Video feature options.

These option(s) apply to: Protect cameras

| Option                                           | Description
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| `Video.HKSV.Recording.MaxDuration<I>.Value</I>`  | Maximum HomeKit Secure Video event duration, in seconds. **(default: 0)**.
| `Video.HKSV.Recording.Switch`                    | Add a switch accessory to enable or disable HKSV event recording. **(default: disabled)**.
| `Video.HKSV.Record.Only.High`                    | When recording HomeKit Secure Video events, force the use of the high quality video stream from the Protect controller. **(default: disabled)**.
| `Video.HKSV.Record.Only.Medium`                  | When recording HomeKit Secure Video events, force the use of the medium quality video stream from the Protect controller. **(default: disabled)**.
| `Video.HKSV.Record.Only.Low`                     | When recording HomeKit Secure Video events, force the use of the low quality video stream from the Protect controller. **(default: disabled)**.
| `Video.HKSV.TimeshiftBuffer`                     | Enable the timeshift buffer for HomeKit Secure Video. **(default: enabled)**.

license: ISC

repository: hjdhjd/homebridge-unifi-protect

gha_language: TypeScript

gha_license_id: NOASSERTION

repo_name: hjdhjd/homebridge-unifi-protect


text:
# Troubleshooting

Here are the most common issues people are having.

Please submit an issue on Github if you can't find a solution to your problem.

## Problems with the command line options?

Run `apex-nitro help`

![APEX Nitro Help](img/command-help.png)

## EACCES: permission denied

When installing using `npm install -g apex-nitro`, you might get an error like this:

```bash
gyp verb `which` failed Error: not found: python2
...
...
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/apex-nitro/node_modules/node-sass/build'
...
...
```

It's because you are trying to `npm install` as root. You can either follow the official npm solution: https://docs.npmjs.com/getting-started/fixing-npm-permissions (recommended) or simply run the following:

```bash
sudo npm install -g --unsafe-perm apex-nitro
```

## EPERM: operation not permitted

Sometimes when you are trying to launch a project with `apex-nitro launch <project>`, you might get an error like this:

```bash
APEX Nitro
is now processing your files...
Error: EPERM: operation not permitted, mkdir 'C:\Users\vmorneau\Project\dist\css'
```

It means your operating system is locking the folder APEX Nitro is trying to delete and recreate. It creates a conflict with the operating system and APEX Nitro is unable to process your files.

It usually happens with you are trying to open the `/dist/` folder yourself. There is no need to open the `/dist/` folder yourself. Only the `/src/` folder is relevant to you.

To fix this, close down any program that might interfere with the `/dist/` folder (example: Windows Explorer, Finder, or your code editor) and start again.

## Error: Node Sass does not yet support your current environment

Sometimes when you are trying to launch a project with `apex-nitro launch <project>`, you might get an error like this:

```bash
(node:14488) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (57)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v3.13.1
(node:14488) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```

It is usually related to your Node.js environment that was updated. One of APEX Nitro's dependency (node-sass) sometimes gets corrupted. This is a known issue for node-sass.

The solution is simple: just run `npm rebuild -g node-sass` and try again.

Reference: https://github.com/sass/node-sass/issues/1764

## Unable to publish files

APEX Nitro allows you to automatically publish your files to APEX using this command: `apex-nitro publish <project>`

This is achievable only if you have configured SQLcl properly in your APEX Nitro configuration.

Start by reviewing your configuration using this command: `apex-nitro config <project>`

Look for a section called SQLcl and fill out the fields. You will need to have SQLcl locally on your system. No need to install anything, just point the SQLcl directory to the appropriate field of the APEX Nitro configuration.

This section is inspired by SQL Developer, and allows you to enter your database information using 4 different methods:
1- with SID
2- with Service Name
3- with TNS
4- custom connect string

APEX Nitro doesn't provide any way of validating your connection info. Please validate it yourself in SQL Developer if `apex-nitro publish <project>` doesn't work.

## APEX application doesn't pick up the changes from local files

APEX Nitro uses an HTTP header variable to communicate between the local files and the APEX application (with web sockets).

When APEX Nitro is launched it initializes the HTTP header variable. Unfortunately, this is not supported on an HTTP server from Weblogic.

See https://github.com/OraOpenSource/apex-nitro/issues/223 for more details.

## Self-signed SSL Warnings

When using APEX Nitro, you may encounter browser warnings before running your APEX application for the first time:

![Certificate Error](img/troubleshoot-certificate-1.png)

This is normal because you are serving the files from your own computer with self-signed certificates. Please continue.

You will access your APEX application normally, except for this icon near your browser's URL:

![Certificate Error](img/troubleshoot-certificate-2.png)

This is normal and it will only occur on your development environment.

## How to specify the file concatenation order?

Right now when you activate the concatenation option for JavaScript or CSS, APEX Nitro merges all your files together automatically under a new filename (also configurable in `apex-nitro config <project>`).

Sometimes you might want to specify an order for these files. Especially for CSS, the order is very important.

If you use the default settings of APEX Nitro, the concatenation is done automatically following an alphabetical order.

**The simplest way to specify an order to your files would be to name them alphabetically.** Example:

- css/001-header.css
- css/002-body.css
- css/003-footer.css
- js/001-util.js
- js/002-upload.js
- js/003-library.js

There are advanced methods for dealing with the concatenation order. Let's break it down for each language.

### CSS

- In the APEX Nitro config, change the CSS processor to `less` or `sass`
- Then you can use the `import` functionality, which allows you to inject other CSS files in the order you want

repository: dfrechdev/apex-nitro

repo_name: dfrechdev/apex-nitro


text:
# rustlang_rsh
Simple client/server rsh program written in Rust

# To use

Build the repo with cargo build

Run the compiled exe

without arguments if you want to start a server

with the server's ip if you want to start an interactive client session

with the server's ip, followed by a command to execute if you want to just run a single command


text:
# json-key-mapper
Convert JSON keys from one format to another while preserving its value

Use this library when you need to convert JSON objects from one format to another.  You would use this to convert JSON from ajax calls that have a different structure then your project.  This will work with a single object or an array of objects.  The mapping process is non destructive.  Meaning you only need to define a few keys to convert and only those keys will be converted, the other keys will be left untouched.

Usage:
------
Define your mapping with a key and object.  In this case we want to define 'myUserMap'.  Your application will expect userId and postalCode, however the data source gives you id, and zip properties.  You can define as many mapping profiles as you need.

    jkm.setMap('myUserMap', {
        'id': 'userId',
        'zip': 'postalCode'
    });

Once the mapping has been defined you can pass in your values to be mapped.

    var original = {
        id: '123',
        name: 'eko3alpha',
        zip: '12345',
        country: 'US'
    }

lets convert!

    var converted = jkm.map('myUserMap', original);

now your data will be in a format ready to be consumed by your application!

    console.log(converted); // will output:

    {
       userId: 123,
       name: 'eko3alpha',
       postalCode: '12345',
       country: 'US'
    }

Now lets say you have an array of objects, you can reuse this mapping for each individual object.

    var originalArray = [{
        id: '123',
        name: 'eko3alpha',
        zip: '12345',
        country: 'US'
    },{
        id: '200',
        name: 'johnDoe',
        zip: '90210',
        country: 'US'
    }];

    var convertedArray = jkm.map('myUserMap', originalArray);

After convertion your new array will look like so:

    console.log(convertedArray); // will output:

    [{
       userId: 123,
       name: 'eko3alpha',
       postalCode: '12345',
       country: 'US'
    },{
       userId: 200,
       name: 'johnDoe',
       postalCode: '90210',
       country: 'US'
    }]


text:
# BSV-Stuff
This is a repository I shall use to toy around with Bluespec-SystemVerilog.

It may contain solutions to exercises you are doing. Don't look at the code if you don't want to get spoiled.

This also contains the compiled verilog code, so everyone can run this code on their Basys3 boards or adapt it run on $FPGA.

# Current Functionality
 - [master (old)](https://github.com/DevJPM/BSV-Stuff/tree/aa26a14cd9494569059049a45d8e7c668ab5e458):
   - Echoes Data coming in over the serial connection (9600 Baud, no parity, both can be changed easily at the module instantiation)
   - The 8 right leds will display the current status of the switch right next to them
   - The 8 left leds will display the binary encoded value of the last data frame received over UART
   - The 7 segment display will display integers streamed in as characters via the serial connection
     - It supports negative integers (and mulitple negations), support for negative integers can be turned off at module instantiation
     - It supports hex (prefix `x`,`X`,`h`,`H`), binary (prefix `b`,`B`), octal (`o`,`O`) and decimal (prefix `d`,`D` or no prefix) decoding of the data, inputs need to be followed by a carriage-return or a line-feed
     - If the integer is too big to be displayed (ie bigger than 3 decimal digits) then the display will show all-dashes
     - The conversion logic may overflow on too big inputs
 - master (current):
   - Provides basic modules for other branches / projects
   - Does nothing except indicating which switches are active using the LEDs
 - ALU:
   - interprets the left 8 switches and the right 8 switches as 8-bit integers each
   - based on the last button press, it computes a function (either addition, subtraction, power, multiplication or static return "1" instead of division, because inline-division sucks on real HW)
   - The 7-segment display cycles through the following states "off, left operand, right operand, result"
 - Pipeline:
   - implements a 5-step pipeline
   - makes extensive use of vectors
   - Generates rules using for-loops
   - Makes use of higher-order programming to instantiate modules with functions
   - Makes use of `CReg`s to for speed-ups in the pipeline steps
   - Verifies the functional equality of the fast and slow pipeline steps using BlueCheck
   - This branch is not meant to synthesized into a real FPGA right now
 - BlueCheck:
   - uses [blueCheck](https://github.com/CTSRD-CHERI/bluecheck) to verify some basic arithmetic properties using invariant-based randomized testing
   - uses blueCheck to verify that a toy 16-element sized register-based FIFO behaves the same as the built-in `mkSizedFIFO(16)`
   - _may_ be used to develop a module that translates between BlueCheck's UART interface and the simpler interface used by the Basys3
   - This branch is not meant to be synthesized into a real FPGA right now

# How to build

Simply call `make verilog` on the top level of the cloned repository, this will re-generate the `mkTopModule.v` and `mkTopModule.sched` (the rule schedule).

Then feed `wrapper.v` into your Verilog compiler as the top-level module and be sure to also give it `mkTopModule.v` and the contents of the `Verilog/` subdirectory of your bluespec distribution.

You will also need to add a constraints file which maps the physical package pins (and the clock) to `wrapper`'s I/O ports. I may or may not provide this file for the Basys3 in the future, for now it is left as an exercise to the user to get the file from the internet and adapt it to work with this code.

repository: DevJPM/BSV-Stuff

gha_language: Verilog

repo_name: DevJPM/BSV-Stuff


text:
QualityAnalyzer is FASTEN plugin to store/update code quality metadata from Kafka topic. There is a single Kafka message per single callable produced
by [Rapid Plugin](https://github.com/fasten-project/quality-analyzer/tree/master/rapidplugin) using [Lizard](https://github.com/terryyin/lizard).
Once a metadata message is consumed, the metadata is stored to respective database depending on the forge (mvn, Debian, PyPI).

It can be used both as a standalone tool and as a part of FASTEN server.

## Arguments

- `-h` `--help` Show this help message and exit.
- `-d` `--database` Comma separated key-value pairs of Database URLs for connection
- `-f` `--file` Path to JSON file that contains JSON with Lizard tool generated quality metrics

## Usage

A password must be provided through the environmental variable `$FASTEN_DBPASS`.
Currently, all three databases use the same password (this will change).

To start as part of FASTEN server,

```
FASTEN_DBPASS=pass ... -p /path-to/fasten/docker/plugins/ -k localhost:9092 -pl "QualityAnalyzer" -kt "QualityAnalyzer=fasten.RapidPlugin.out" -d "mvn=jdbc:postgresql://postgres@localhost/dbname,debian=jdbc:postgresql://postgres@localhost/pythondbname"
```

## Join the community

The FASTEN software package management efficiency relies on an open community contributing to open technologies. Related research projects, R&D engineers, early users and open source contributors are welcome to join the [FASTEN community](https://www.fasten-project.eu/view/Main/Community), to try the tools, to participate in physical and remote worshops and to share our efforts using the project [community page](https://www.fasten-project.eu/view/Main/Community) and the social media buttons below.

repository: fasten-project/fasten

branch_name: refs/heads/develop

repo_name: fasten-project/fasten


text:
# android-http-instagram-example

## Getting Started

### Setting up data model

To run this example, please create a [Graphcool](http://graph.cool) account and **copy your endpoint**.

![](http://i.imgur.com/ytXDR4B.gif)

This is the needed data model:

```graphql
type Post {
  description: String!
  imageUrl: String!
}
```

### Configure app endpoint

Open `app/src/main/java/graph/cool/instagramhttpexample/MainActivity.java` and replace `__PROJECT_ID__` with your endpoint.

```java
Request request = new Request.Builder()
  .url("https://api.graph.cool/simple/v1/__PROJECT_ID__")
  .post(body)
  .build();
```

### Run application

Open the project with Android Studio, build and run. Enjoy!

## Help & Community [![Slack Status](https://slack.graph.cool/badge.svg)](https://slack.graph.cool)

Join our [Slack community](http://slack.graph.cool/) if you run into issues or have questions.


text:
# ArduinoPepeLibs
Useful libraries for several sensors, modules and devices for using with arduino.
## Elemental
This library includes a class for controling dc motors through a H-bridge or driver. It supports
several modules or chipas such as l298n, l293d and others where each motor needs 3 pins for control of
direction and speed with PWM.


text:
# Tuxedo-Server-API
This is an implementation of securely exposing Mainframe DB2 database to internet

This implementation consist of,
1. Server program that establishes connection with configured Tuxedo server which is intern connected with mainframe DB2 database
2. /www folder with html pages to get query inputs from user

### How to use it?
For this you require a IBM mainframe with DB2 database, wrapped with tuxedo server
In the server program,
Install the latest IBM Db2 driver software from ![https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads](https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads) inside Genie folder
1. Configure the IP address of tuxedo server
2. Configure query that need to be executed (or change the html page to get query from user)
3. Start the server program
4. Get the index page from server via http from your browser
5. Enter values to complete the query
6. Press search
7. Result will be updated below

![](UserScreenShot.png)


text:
---
layout: layout.pug
navigationTitle:  Uninstalling
title: Uninstalling
menuWeight: 20
excerpt:
featureMaturity:
enterprise: false
---

<!-- This source repo for this topic is https://github.com/mesosphere/confluent -->

Follow these steps to uninstall the service.

## CLI

1. Uninstall the service. From the DC/OS CLI, enter `dcos package uninstall confluent-kafka`.

1. If you are using DC/OS version 1.9 or older, you must clean up remaining reserved resources with the framework cleaner script, `janitor.py`. [More information about the framework cleaner script](/1.9/deploying-services/uninstall/#framework-cleaner).

To uninstall an instance named `confluent-kafka` (the default), run:
```
MY_SERVICE_NAME=confluent-kafka
dcos package uninstall $MY_SERVICE_NAME
dcos node ssh --master-proxy --leader "docker run mesosphere/janitor /janitor.py \
    -r $MY_SERVICE_NAME-role \
    -p $MY_SERVICE_NAME-principal \
    -z dcos-service-confluent-kafka"
```

repository: ShaunDeng/dcos-docs-site

repo_name: ShaunDeng/dcos-docs-site


text:
### React Native Android Keystore
Prepare a React Native app for release on Android

Generates a release keystore, updates your local gradle configuration and finally updates the app's gradle config.

> This package assumes that you created your react-native project using `react-native init`.

#### Installation
```
npm install react-native-android-keystore -g
```

#### Usage
```
react-native-android-keystore
```

# Getting Help
If you encounter a bug or feature request we would like to hear about it. Before you submit an issue please search existing issues in order to prevent duplicates.

# Contributing
For more information about contributing PRs, please see our Contribution Guidelines.

# Get in touch
If you have any questions about our projects you can email <a href="mailto:projects<EMAIL_ADDRESS>

repository: Kejoku/react-native-android-keystore

repo_name: Kejoku/react-native-android-keystore


text:
# [Start Coding ES6 With Babel][published url]
## Instructor: [Jason Green][instructor url]

JavaScript has evolved a lot over the years. The latest version of the language, ECMASCript 6 (ES6 for short) was recently finalized and it brings a lot of improvements for developers. Of course, brower support is still spotty.

What if you don't want to wait for modern browser adoption or to update your server to node 0.12? In this course we'll discover how we can write full stack ES6 today. We'll use Babel, along with other build tools like Browserify and Gulp to transpile our ES6 into plain ES5, which is supported by the vast majority of browsers.

# Source Files Description:

These source files are broken up into 5 folders (cooresponding to lessons 2 through 6 of the course). To try any one of them, simply clone this repo, navigate to the particular lesson directory, and run the following commands.
```
npm install
gulp
#open a new tab
node server.js
```
Then navigate to `http://localhost:9000` in your browser to see the result.

------

These are source files for the Tuts+ course: [Start Coding ES6 With Babel][published url]

Available on [Tuts+](https://tutsplus.com). Teaching skills to millions worldwide.

[published url]: https://code.tutsplus.com/courses/start-coding-es6-with-babel
[instructor url]: https://tutsplus.com/authors/jason-green


text:
# Contributing to language-dataset

* [Fixing a sample label](#fixing-a-sample-label)
* [Adding a new language](#adding-a-new-language)
* [Improving the tooling](#Improving-the-tooling)

## Fixing a sample label

If you find an incorrect label, you can submit an annotation:

1. Find the sample at `data/dataset.yml`.
2. In the `annotations` section, add your annotation as follows:
   `human-<github_username>: <language>` where `<github_username>` is your GitHub username and `<language>` is one of the possible keys listed at `data/meta.yml` or `Unknown` if it is an unlisted language.
3. Run `pipenv run python -m tools.lint`.
4. Submit a Pull Request with all changes.

## Adding a new language

At the moment we do not accept new languages. However, if the language is popular enough, you can add support for it to [github/linguist](https://github.com/github/linguist/) and we will eventually import it to the dataset.

## Improving the tooling

If you submit changes to the tooling, keep in mind that:

1. We format Python code with [black](https://github.com/psf/black).

repository: smola/language-dataset

repo_name: smola/language-dataset


text:
## Download and setup

Carry out the following steps to use the tutorial compiler:

1. Clone this repository
2. Install typescript if not already installed (`npm install -g typescript`)
3. Clone the tutorials repository in a folder next to the tutorial-compiler repository (`git clone https://github.com/devonfw-forge/tutorials.git`)
4. Open a terminal and navigate into the cloned tutorial-compiler repository
5. Install the dependencies (`npm install`)
6. Execute the build script (localBuildRun.ps1 or localBuildRun.sh)

repository: dixyushi/tutorial-compiler

repo_name: dixyushi/tutorial-compiler


text:
# Lifestone Church Website

# Contributing

If you would like to contribute:

* Fork this repository
* Clone it to your computer
* Run `bundle install`
* Run `bundle exec jekyll serve`
* Go to `localhost:4000` in your browser
* Now you can edit the site and the site will get generated automatically (but you'll still need to hit refresh in the browser)
* Then you can submit a pull request to have it added to the live site

repository: myLordJ/lifestonechurch

branch_name: refs/heads/gh-pages

repo_name: myLordJ/lifestonechurch


text:
---
layout: post
title: "How I'm Maintaining Positivity While Job Searching"
date: 2019-07-01 12:57:01 +0000
permalink: how_im_maintaining_positivity_while_job_searching
---

Since graduating from the Flatiron School’s online self-paced curriculum, I’ve been swimming in a sea of job applications, coding tutorials, and LinkedIn searches. The job search process is one that requires a lot of time and energy. It’s not hard to get deflated and feel helpless, especially after weeks of applying and either not hearing back or being rejected. In this post, I’m going to share some of the steps I’m taking and choices I’m making in order to maintain positivity and balance in the face of rejection and uncertainty.

Short To-Do Lists

Getting through any kind of school, especially for moms like me, requires a ton of goal setting. In my year of learning to code online in a self-paced curriculum, I developed the habit of creating reasonable to-do lists with attainable short term goals. I learned to do what I know I can and leave the rest up to the universe. A concise list of 3-5 items that can be checked off by the end of the day feels a lot better than a laundry list of 20 abstract goals that drags from one week to the next.

Scarcity vs. Abundance Mindset

Last week I had 2 phone screenings that went great! Both interviewers told me that they wanted me to move forward to the next step, in-person technical interviews. I was thrilled...until it was 3 days later and all I heard were crickets. No emails to schedule a technical interview and no response to my follow-up messages. I felt myself slipping into a negative place. A scarcity mindset sounds something like “Man, there are SO few job opportunities and SO MANY applicants. HOW can I possibly compete?”. I’m learning to recognize those thoughts and adopt an abundance mindset instead.  There’s ONLY ONE ME out there and A LOT of companies who could greatly benefit from my unique experience and skill set.”

Gratitude & an Open Mind

It’s not hard to feel defeated after days, weeks, or months of rejections and silence. It feels like, sorry to use a cliche but, you’re searching for a needle in a haystack. This point touches on the previous about so many applicants and so few job opportunities, but to expand, I’m trying to be open to a wider range of positions that may put me a step closer to my target. And amongst those rejections and unanswered messages, I’m also reminding myself to be grateful for the seemingly negative experiences as they’re helping me build resilience and a better understanding of who, how, and where I want to be.

Being a Lifelong Learner

I truly believe that a person who’s willing to learn will always find opportunities. The career path of a developer requires a willingness to learn new skills and concepts in a climate of constant change. And since it’s impossible to know everything, it’s better to spend your time learning something that you like. There are a thousand new things to learn in the world of development, but I’ve chosen to branch off from what I already know and learn Node.js/Express. Here’s some code I’ve been working on…

Node.js App with Passport and OAuth for User Authentication

```
const passport = require("passport");
const GoogleStrategy = require("passport-google-oauth20").Strategy;
const mongoose = require("mongoose");
const keys = require("../config/keys");

// import the user model from mongoDB
const User = mongoose.model("users");

// passport takes the instance of user and saves the id
passport.serializeUser((user, done) => {
  done(null, user.id);
});

// mongoDB takes the id from passport and uses it to find the full user entry in the DB
passport.deserializeUser((id, done) => {
  User.findById(id).then(user => {
    done(null, user);
  });
});

// utilize passport's GoogleStrategy to get the user's google account
// info and set our mongoDB user's googleId to that user's google profile
// id through OAuth, then save the user
passport.use(
  new GoogleStrategy(

      clientID: keys.googleClientID,
      clientSecret: keys.googleClientSecret,
      callbackURL: "/auth/google/callback",
      proxy: true
    },
    async (accessToken, refreshToken, profile, done) => {
      const existingUser = await User.findOne({ googleId: profile.id });
      if (existingUser) {
        return done(null, existingUser);

      const user = await new User({ googleId: profile.id }).save();
      done(null, user);

);

```


text:
---
name: Bug report
about: An Error occured
title: ''
labels: bug
assignees: ''

---

**Description**
Describe what happened as exact as you can.

**Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Platform**
Windows / Linux / Mac?

**Browser**
Chrome 75 / Firefox / Safari / Internet Exploiter / ... ?

gha_language: JavaScript


text:
# Installation
> `npm install --save @types/is-date-object`

# Summary
This package contains type definitions for is-date-object (https://github.com/ljharb/is-date-object).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/is-date-object.

### Additional Details
 * Last updated: Fri, 07 Feb 2020 18:24:05 GMT
 * Dependencies: none
 * Global values: none

# Credits
These definitions were written by  Adam Zerella (https://github.com/adamzerella), and Jordan Harband (https://github.com/ljharb).

repository: ssvenkatrohit/events-app-external

repo_name: ssvenkatrohit/events-app-external


text:
# Video: Web Push Notifications \(I/O 2016\)

> 作者：Pete LePage

Push notifications are an incredibly effective way to build deeper user engagement with your application, and are now available on the web. In this video, we'll take a look at how they work and deep-dive into how to implement push notifications in web applications, from beginning to end.


text:
Calculate TMY using the Sandia method
=====================================

A python script for determining the best 12 months from a historical dataset.

Usage
-----

```
./tmy.py -c <config_file> <bom_file>
```

A `<bom_file>` contains hourly meterological data for a single location for a period of,
typically, 10 or more years. Data is require to be complete and continuous (the script
will print warnings if this is not the case)

A JSON `<config_file>` maps the columns in the provided `<bom_file>` to those parameters
used to calculate the TMY, and specifies the weights to be used for each parameter. See
example config.

Another way to run the process is to specify:

```
./tmy.py -c <config_file> --all
```

This will download the master csv file that contains references to all `<bom_file>`s, and
iterate over them, finding the TMY for each one. Once finished, the master csv file is updated
to point at the output csvs that have the TMY for each month together, forming a single year
based on typical months.

References
----------

Users Manual for TMY3 Data Sets (Revised) - NREL
  (www.nrel.gov/docs/fy08osti/43156.pdf)

National Solar Radiation Database 1991–2005 Update: User’s Manual
  (http://www.nrel.gov/docs/fy07osti/41364.pdf)


text:
+++
# Accomplishments widget.
widget = "accomplishments"  # See https://sourcethemes.com/academic/docs/page-builder/
headless = true  # This file represents a page section.
active = true  # Activate this widget? true/false
weight = 80  # Order that this section will appear.

title = "Courses"
subtitle = ""

# Date format
#   Refer to https://sourcethemes.com/academic/docs/customization/#date-format
date_format = "Jan 2006"

# Accomplishments.
#   Add/remove as many `[[item]]` blocks below as you like.
#   `title`, `organization` and `date_start` are the required parameters.
#   Leave other parameters empty if not required.
#   Begin/end multi-line descriptions with 3 quotes `"""`.

[[item]]
  organization = "University of Illinois Urbana-Champaign"
  organization_url = "https://www.cs.illinois.edu"
  title = "CS 483: Applied Parallel Programming"
  url = ""
  #certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2020-01-21"
  date_end = "2020-05-06"
  description = ""

[[item]]
  organization = "University of Illinois Urbana-Champaign"
  organization_url = "https://www.cs.illinois.edu"
  title = "CS 477: Formal Software Development Methods"
  url = ""
  #certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2020-01-21"
  date_end = "2020-05-06"
  description = ""

[[item]]
  organization = "University of Illinois Urbana-Champaign"
  organization_url = "https://www.cs.illinois.edu"
  title = "CS 411: Database Systems"
  url = ""
  #certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2020-01-21"
  date_end = "2020-05-06"
  description = ""

[[item]]
  organization = "University of Illinois Urbana-Champaign"
  organization_url = "https://www.cs.illinois.edu"
  title = "CS 547: Deep Learning"
  url = ""
  #certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2019-09-02"
  date_end = "2019-12-12"
  description = ""

[[item]]
  organization = "University of Illinois Urbana-Champaign"
  organization_url = "https://www.cs.illinois.edu"
  title = "CS 374: Introduction to Algorithms & Models of Computation"
  url = ""
  #certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2019-09-02"
  date_end = "2019-12-12"
  description = ""

[[item]]
  organization = "Coursera"
  organization_url = "https://www.coursera.org"
  title = "Coursera Machine Learning"
  url = ""
  certificate_url = "https://www.coursera.org/account/accomplishments/records/T8QWKTALWSCK"
  date_start = "2019-11-02"
  date_end = "2019-12-02"
  description = ""

[[item]]
  organization = "Coursera"
  organization_url = "https://www.coursera.org"
  title = "Coursera Algorithm 1: Divide and Conquer, Sorting and Searching, and Randomized Algorithms"
  url = ""
  certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2019-07-02"
  date_end = "2019-08-02"
  description = ""

[[item]]
  organization = "University of Illinois Urbana-Champaign"
  organization_url = "https://www.cs.illinois.edu"
  title = "CS 225: Introduction to Data Structures and Algorithms with C++"
  url = ""
  #certificate_url = "https://www.coursera.org/account/accomplishments/records/3HVN6JHLG86T"
  date_start = "2018-08-27"
  date_end = "2018-12-12"
  description = ""

+++

repository: diditong/academic-kickstart

repo_name: diditong/academic-kickstart


text:
# 3.5.3

The following are the fixed issues for Hazelcast 3.5.3 release.

- `ClientInvocationFuture` may hang when the deserialized response is null. [[#6363]](https://github.com/hazelcast/hazelcast/issues/6363).
- The method `CacheStatisticsImpl::getAverageRemoveTime()` uses the "get" count on the cache but it must use the "remove" count. [[#6314]](https://github.com/hazelcast/hazelcast/issues/6314).
- Hazelcast `console.sh` should support changing namespaces that contain space characters. [[#6307]](https://github.com/hazelcast/hazelcast/issues/6307).
- The client fails to properly reconnect to a single node cluster after the Hazelcast server is restarted. [[#6168]](https://github.com/hazelcast/hazelcast/issues/6168).
- Transactional Queue ordering on rollback can be violated. The reason is that the `QueueContainer` does not rollback the changes in the order that is opposite to the order of the items when they were added. It is a random order due to the fact that the changes are stored in a hashmap. [[#6156]](https://github.com/hazelcast/hazelcast/issues/6156).
- When a field, that is only available in a subclass of an interface, is indexed, Null Pointer Exception is thrown. [[#6151]](https://github.com/hazelcast/hazelcast/issues/6151).
- Extra `\r\n` in the body of the REST API responses causing warnings. [[#6144]](https://github.com/hazelcast/hazelcast/issues/6144).
- Near cache on the client size for replicated map does not get invalidated after replicated map changes. [[#5694]](https://github.com/hazelcast/hazelcast/issues/5508).
- `IList.iterator()` and `listIterator()` do not support the method `iterator.remove()`. [[#5508]](https://github.com/hazelcast/hazelcast/issues/5508).

The following are the enhancements performed for Hazelcast 3.5.3 release.

- Cache statistics are only supported at the server side and exposed by `CacheProxy`. At the client side, cache statistics are not calculated and supported so `UnsupportedOperationException` is thrown at `ClientCacheProxy` [[#6262]](https://github.com/hazelcast/hazelcast/issues/6262).
- Added `iam-role` support to Hazelcast Cloud module. So users can use Hazelcast Cloud module without configuring access keys. [[#6262]](https://github.com/hazelcast/hazelcast/issues/2630).

repository: alparslanavci/hazelcast-release-notes

repo_name: alparslanavci/hazelcast-release-notes