text:
# Modbus PDU

This is a simple firmware that connects over serial to a 16 channel Modbus current
sensor like [this one](https://www.aliexpress.com/item/4000131557448.html) (search
for "Multi-channel 16-channel AC current frequency measurement acquisition module
RS485 sensor transmitter MODBUS-RTU" on Aliexpress for good examples).

The ESP32 connects using serial to the serial output of the current sensor, before
it is turned into RS-485. It is then no longer advised to use RS-485. It will read
the current sensor outputs once every 5 seconds, and integrate the total power use
per channel. It will periodically save its state to flash (see configuration
parameter `pdu.state_interval`), in order to survive power failures, reboots and
firmware updates. When rebooting or updating firmware, case should be taken to
persist the state to flash, by calling RPC `State.Write` (details below).

## Prometheus Metrics

TODO(pim) --

The firmware exposes all channel information using the Prometheus exposition
format, ready for scraping and integration into a network monitoring system.
It also exports several modbus statistics (notably number of reads, number of
responses, and number of invalid responses).

## API

The firmware exposes several getters over Mongoose OS RPC subsystem. See
`RPC.List` to enumerate them all, and `RPC.Describe '{"name": ... }'` to show
the call proto.

The `State` RPC Service either writes the statefile describing the current
PDU state to flash, or reads it back from flash into memory.

The `Channel` RPC Service takes either no arguments, in which case report for
all channels is given as a list, or if a parameter `idx` is present, only
that one channel is returned as a scalar. Note that channels are run from 0..15.
When calling `Channel.Clear`, which zeros the current and consumption counters,
care should be taken to also persist the state to flash with `State.Write`, so
that restarts do not inadvertently restore old state.

 The
following events are sent:

*    Startup: A message is sent to `/mongoose/broadcast/stat/id` with
     information about the microcontroller and firmware.
*    Periodical: A message is sent to `${device_id}/stat/pdu` with
     information about the channels in JSON format.

Examples:
```
/mongoose/broadcast/stat/id {"deviceid": "esp32_5866D0", "macaddress": "D8A01D5866D0",
                             "sta_ip": "<IP_ADDRESS>", "ap_ip": "", "app": "pdu",
                             "arch": "esp32", "uptime": 3}
```

repository: pimvanpelt/pdu

repo_name: pimvanpelt/pdu


text:
# SpeedRead ![](demo.gif)

## About

Speed reader written in python. It reads text from the clipboard content (or xsel/xclip output). Supports some command line arguments and you can navigate within the text with the arrow keys.

I made this to integrate in my i3wm + zathura pdf reader workflow. zathura can copy text to the clipboard with a simple mouse selection, then just use a keybind to call the package with: `$ python -m speedread`. Fast and Easy.

## Usage

Install with:

`$ pip install --user speedread`

Options:

> SpeedRead [-h] [-w WPM] [-xclip] [-xsel] [-cb]
>
> optional arguments:
>   -h, --help         show this help message and exit
>   -w WPM, --wpm WPM  words per Minute
>   -xclip, --xclip    use output from `$ xclip -o`
>   -xsel, --xsel      use output from `$ xsel`
>   -cb, --clipboard   use clipboard content

Additionally it also support some key binds:
- j / k : decrease / increase wpm
- h / l : go backward / forward one word
Same idea with arrow keys

## Integration with i3wm

Add this line to your i3wm config file:

`for_window [class="Speedread"] floating enable`

Them add a line to call this package with a key bind:

`bindsym <KEY> python -m speedread &> /dev/null`

### DOTOs

- [x] Add more command line arguments
- [ ] Make it prettier
- [ ] Make it WM independent
- [ ] Add option to read from STDIN
- [ ] Select text in pdf without using the mouse

license: MIT

repository: neumann-mlucas/speedread

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: neumann-mlucas/speedread


text:
# Origin

Origin provides ease-to-use macros for delegating methods from a class to another object. It behaves like `delegate` Crystal's stdlib macro, but with **type declaration support** and simpler declaration.

This kind of macro is really interesting when, for example, using the [Decorator Pattern](https://en.wikipedia.org/wiki/Decorator_pattern).

It supports:

- types
- arguments
- blocks

## Installation

```yaml
dependencies:
  origin:
    github: pyrsmk/origin
    version: ~> 0.2.2
```

## Usage

### Basics

Origin has two macros: `wire` and `autowire`. They work in a similar way by relying on the definition of an `@origin` instance variable with the object you want to wire on.

See the following very simple example using `wire`:

```crystal
require "origin"

class Animal
  def head
    1
  end

  def ears
    2
  end

  def legs
    4
  end
end

class Human
  wire head, to: head
  wire ears, to: ears

  def initialize(@origin : Animal); end

  def legs
    2
  end

  def arms
    2
  end
end

human = Human.new(Animal.new)
# Prints `2`
puts human.legs
# Prints `2`
puts human.ears
# Prints `1`
puts human.head
```

That is, we don't need to re-implement `head` and `ears` since we don't want to change their behavior.

Internally, the code `wire head, to: head` compiles to:

```crystal
def head(*args, **options)
  @origin.head(*args, **options)
end

def head(*args, **options)
  @origin.head(*args, **options) do |*yield_args|
    yield *yield_args
  end
end
```

That means `wire` can handle *arguments* and *blocks* as well.

### Wire a method to another name

`wire` is also useful when you want to plug to a method with another name. Let's use the same example with an `Animal` and a `Human`:

```crystal
class Animal
  def tail
    "I'm a tail!"
  end
end

class Human
  wire tailbone, to: tail

  def initialize(@origin : Animal); end
end

# Prints `"I'm a tail!"`
puts Human.new(Animal.new).tailbone
```

### Return types

At this point, you may think: *But what about return type definition?*. Here's how we can declare types:

```crystal
class Animal
  def head : Int32; end

  def ears : Int32; end

  def eyes : Int32; end

  def nose : Bool; end

  def tailbone : String; end
end

class Human
  wire head : Int32, to: head
  wire ears : Int32, to: ears
  wire eyes : Int32, to: eyes
  wire nose : Bool, to: nose
  wire tailbone : String, to: tail

  def initialize(@origin : Animal); end
end
```

### Setters and special method names

There's a special syntax we had not talk about yet. If you want to wire setters or some weird method names like `<<` or `[]?` you would see that the compiler's complaining. Hence, for these cases, you need to use a symbol.

Just note that if you want to have a return type for special method names, you'll need to explicitly define it with the `return_type` option (but you won't be able to use this trick with `autowire`).

Here's a more concrete example:

```crystal
class StringCollection
  @items = [] of String

  def <<(item : String)
    @items << item
  end

  def []=(index : Int32, item : String)
    @items[index] = item
  end

  def [](index : Int32) : String
    @items[index]
  end

  def []?(index : Int32) : String?
    @items[index]?
  end
end

class SymbolToStringCollection
  wire :[], return_type: String, to: :[]
  wire :[]?, return_type: String?, to: :[]?

  def initialize(@origin : StringCollection); end

  def <<(item : Symbol)
    @origin << item.to_s
  end

  def []=(index : Int32, item : Symbol)
    @origin[index] = item.to_s
  end
end

collection = SymbolToStringCollection.new(StringCollection.new)
collection << :foo
collection[0] = :bar
# Prints `"bar"`
puts collection[0]?
# Prints `nil`
puts collection[1]?
```

### Auto-wiring

After we approached how `wire` works, we can talk about `autowire`. It wraps `wire` behavior and simplify the declaration for methods you don't need to rename:

```crystal
class Animal
  def head : Int32; end

  def ears : Int32; end

  def eyes : Int32; end

  def nose : Bool; end
end

class Human
  autowire head : Int32,
           ears : Int32,
           eyes : Int32,
           node : Bool

  def initialize(@origin : Animal); end
end
```

## Contributing

Before contributing don't hesitate to ask if your idea of a new feature could be accepted before developing it.

1. Fork the project (<https://github.com/pyrsmk/origin/fork>)
2. Initialize the repository (`make init`)
3. Create your feature branch (`git checkout -b feature/my-new-feature`)
4. Write your code and exhaustive tests (`make test`)
5. Push and create a new Pull Request
6. Wait for the maintainers to approve or request changes
7. Merge your work 🎉

repository: pyrsmk/origin

repo_name: pyrsmk/origin


text:
#Tests

## Coverage

Start vscode "Coverage Gutters: Watch", then run:

    dotnet test --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=lcov

repository: darthwalsh/dotNetBytes

branch_name: refs/heads/main

gha_language: C#

gha_license_id: MIT

repo_name: darthwalsh/dotNetBytes


text:
# Password Generator

## Description
My goal with this project was to use only JavaScript functions & methods to generate a secure password given a series of inputs from the user. Specifically my application will take in five inputs from the user-- password length & four acceptable character types-- and it will *randomly* create a password that can be copied from the browser window!

My application can be found here: https://zdensamson.github.io/Password_generator/

I was able to accomplish this objective with the following steps:
1. Use an **event listener** to activate the user prompts
1. Have a single function-- called by the event listener-- trigger all other functions
1. Collect user inputs through `prompt()` & `confirm()` **methods**
    1. Assign the desired length to a variable
    1. Append the inclusion or omission of 4 unique character types in a list with boolean value representation
1. Assign each character type an "ID" of **1-4**
    1. lowerCase = 1, upperCase = 2, number = 3, specialCharacter = 4
1. Use my true/false list to root out any character type ID's (1-4) not desired by the user
1. **Loop** over the desired password length
    1. Use `Math.random()` to randomly select an approved character type (1-4)
    1. Use a conditional **if/else** to call a function linked to 1-4
    1. Functions linked to "1-4" use `Math.random()` to select a character within that type
1. Using a `querySelector()` & `.value` property reassign the text within a targeted `<div>` to equal our randomly generated password!

The "meat & potatoes" of this project exists in the `for` loop which is held in the first function triggered by my event listener. I found development of this code to be the most conceptually challenging, but it was also a wonderful teaching moment. I learned the value of _"coding in chunks"_-- creating multiple functions to handle specific tasks that could easily be observed and _debugged_. Once I had the pieces of information (_chunks_) available to be easily called upon-- the for loop was actually the easiest piece of code to write, and no bugs were observed!

In a future refactor (or application of similar logic above) I hope to utilize the concept of **dynamically generated** variables in a more efficient way. My current code is subject to a lot of refactoring if we want to add any additional character types. This is because I _manually_ assigned an "ID" to each character type (1-4). I believe in a future iteration I can take advantage of the **object** data type, and dynamically generate an ID as a value to every character type function (key). Using this type of structure I can avoid creating multiple lists housing essentially the same "references".

## License

Copyright (c) 2021 Zachary Dennis Samson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


text:
---
title: Do not succumb to economic stupidity
date: 2009-03-15
year: "2009"
month: "2009/03"
description: Listening to NPR's Planet Money economics podcast really does help to understand the current economic crisis.
tags:
  - economic crisis
  - links
  - npr
  - podcasts
slug: do-not-succumb-to-economic-stupidity
---

Yikes. It’s been a week since I launched my new site and blog and I haven’t posted yet. I think this is partially because I don’t know what I’m going to be focusing on with this blog. Middle East Studies? Technology? Hmmm…

I’ve had this blog post on my mind for a while, though, so I’d better post it. The best part is that it has nothing to do with MES or tech topics.

I’ve felt somewhat immune and aloof from all the American economic troubles. We moved to Egypt in August, a few months after the Bear Stern collapse, but before the September Lehman Bros./Commercial Paper collapse and subsequent bailouts.

Despite the rigors of grad school, I’ve had plenty of time to study up on the causes of this crisis. Having a bus daily 45 minute–1 hour bus commute has given me plenty of time to follow some awesome podcasts. I’ll post about my podcast routine later, but suffice it to say, I feel way more informed about this crisis because of the time I’ve spent listening and studying.

That doesn’t mean I know everything—or anything—about this crisis. I don’t fully comprehend all the crazy financial machinations that got us here. I can follow the news a bit better, though.

Here are some of the best resources I’ve found so far:

**NPR’s Planet Money**: Amazing [podcast](http://www.npr.org/rss/podcast/podcast_detail.php?siteId=94411890) that comes out 3–4 times a week. Excellent reporting. Easy to understand. Awesome. [Their blog rocks, too](http://www.npr.org/money).

**This American Life**: Normally their hour long radio shows highlight a variety of interesting stories on random topics and have little to do with news, but they cosponsor Planet Money and have dedicated two entire shows to the economic crisis, [The Giant Pool of Money](http://www.thisamericanlife.org/Radio_Episode.aspx?sched=1242) and [Bad Bank](http://www.thisamericanlife.org/Radio_Episode.aspx?sched=1285). US Treasury Secretary Tim Geithner and Senator Max Baucus even [praised Bad Bank in front of a joint session of Congress](http://www.npr.org/blogs/money/2009/03/some_doll_house_or_other.html). It was that good.

**The Crisis of Credit**: [Brilliant 10 minute animation](http://vimeo.com/3261363) inspired by Planet Money.

**Inside the Meltdown**: PBS did a [great hour long documentary](http://www.pbs.org/wgbh/pages/frontline/meltdown/) on the crisis. Really good, as well.

So check out those links and get informed. Found any other useful resources out there? Let us know in the comments…

repository: lukesonnet/ath-hugo

repo_name: lukesonnet/ath-hugo


text:
# Classifier variability: Accounting for training and testing

## Authors

Weijie Chen, Brandon D. Gallas, Waleed A. Yousef

## Abstract

We categorize the statistical assessment of classifiers into three levels: assessing the classification performance and its testing variability conditional on a fixed training set, assessing the performance and its variability that accounts for both training and testing, and assessing the performance averaging over training sets and its variability that accounts for both training and testing.
We derived analytical expressions for the variance of the estimated AUC and provide freely available software implemented
with an efficient computation algorithm.
Our approach can be applied to assess any classifier that has ordinal (continuous or discrete) outputs.
Applications to simulated and real datasets are presented to illustrate our methods.

## Keywords

Classifier evaluation, Training variability, Classifier stability, U-statistics, AUC

## Introduction

This paper concerns the statistical assessment of supervised learning classifiers in binary classification tasks.
The assessment uses a training dataset and a test dataset to estimate the classification performance (in terms of some metric, e.g., area under the receiver operating characteristic (ROC) curve, or AUC) and its variability.
A point estimate of the classifier performance with a finite sample is meaningless unless it is accompanied with its uncertainty.
Variability estimation is important to make statistical inference of the classification performance on the population from which the finite datasets are drawn.
The traditional approaches to assess the uncertainty of the estimated AUC only account for the variability in sampling a test set.
However, a finite training set is also a random sample from the population of training sets, and the AUC varies with the training set.
Training variability is a characterization of classifier stability with respect to varying training sets.
The main theme of this paper is to investigate a nonparametric approach to quantify the classifier performance variability that accounts for both the randomness of the finite training set and that of the test set.

The traditional approach to the assessment of pattern classifiers is to use a test set to estimate the standard deviation of the classifier performance and ignore the variability caused by the random choice of the finite training set.
This might be acceptable for some particular classifiers and particular feature distributions, for example, theoretical analyses of Bayes classifiers on Gaussian distributions by Fukunaga et al. show that the variance comes predominantly from the finite test set. However, Beiden et al. showed that training variability should be taken into account in general and particularly when comparing competing classifiers.
Ignoring training variability assumes that the training set is ‘‘frozen’’ and therefore training is treated as a fixed, rather than random, effect.

Training variability is a characterization of the stability of the estimated classifier performance with respect to varying training sets.
Such classifier stability has been a major concern in applications that involve a large number of features and a relatively small number of training samples.
In multiple biomarker applications such as gene-expression microarray studies, classifiers are typically developed with a few of hundreds of patient samples on tens of thousands of gene-expression measurements.
Stability/fragility questions often arise in data-oriented pattern classifier findings.


text:
# Jikji [![Pypi](https://img.shields.io/pypi/v/jikji.svg)](https://pypi.python.org/pypi/jikji) [![Build Status](https://travis-ci.org/Prev/jikji.svg)](https://travis-ci.org/Prev/jikji)

Python Static website generator for Modern web

## What's different
Common static website generators, like [Jekyll](https://jekyllrb.com/), aim to transform mardowns to HTMLs.

While Jekyll is a blog-friendly generator, Jikji pursues **general purpose** static website generator, allowing a developer to write a code communicating with **DBMS** or **RESTFul API servers**.

## Getting Started

First, install Jikji using pypi.

```bash
$ pip install jikji
```

Then you can use command line interfaces of Jikji.
Try creating a new project.

```bash
$ mkdir myproj
$ cd myproj

$ jikji create .
```

Now you can find several files like below:

```
.
├── settings.py
├── pages.py
├── static
│   ├── images
│   │   ├── ...
│   └── stylesheet.css
├── templates
│   ├── gallery.html
│   └── home.html
└── views
    ├── gallery.py
    └── home.py
```

`settings.py` is the entry point of this project. You can define paths for template, static files, view files, publishers, and init scripts.

`pages.py` is the default init script for sample project. Fixed data list and sample commands are located in this file. You may understand the design patterns of Jikji by reading this file. We give the full file content here:

```python
from jikji import getview, addpage

item_list = [
	{'id': 1, 'image_url': '/images/image1.jpg', 'location': 'Paris, France', 'year': '2018'},
	{'id': 2, 'image_url': '/images/image2.jpg', 'location': 'San Francisco, CA', 'year': '2017'},
	{'id': 3, 'image_url': '/images/image3.jpg', 'location': 'Seattle, WA', 'year': '2018'},
	{'id': 4, 'image_url': '/images/image4.jpg', 'location': 'Seoul, Korea', 'year': '2018'},
	{'id': 5, 'image_url': '/images/image5.jpg', 'location': 'Venice, Italy', 'year': '2017'},
]

getview('home.index').url_rule = '/'
getview('gallery.index').url_rule = '/{id}/'

addpage(view='home.index', params=(item_list,))

for item in item_list:
	addpage(view='gallery.index', params=item)
```

As you can see in the code above, major keywords of Jikji are `view` and `pages`. Simply, `view` is an interface while `page` is an instance of a static web.

In Jikji, `views` works similar with the controller of MVC pattern. Each `view` has one 'URL rule', one 'view function', and multiple `pages`.
For example, `gallery.index` view has the url rule `/{id}/`. And the pages for `gallery.index` view  have actuall URLs like `/1/`, `/2/`, `/3/`, ... Here is the view file for `gallery.index`:

```python
from jikji import render_template, register_view

@register_view
def index(data):
	return render_template('gallery.html',
		image_url=data['image_url'],
		location=data['location'],
		year=data['year'],
	)
```

Note that Jikji uses [Jinja2](http://jinja.pocoo.org) template engine which is used in [Flask](http://flask.pocoo.org/) as well. You can see Jinja template documentation [here](http://jinja.pocoo.org/docs/dev/templates/).

`templates` and `static` directories are similar with Flask or other web frameworks. Then let's talk about the `view`.

## Generate static files

You can generate static files by simply calling command line below:

```bash
$ jikji generate <project_dir>
```

If your project is located in curreny directory, just call:

```bash
$ jikji generate .
```

Our generator uses multiprocess package of python. Thus, note that you have to design your project with side-effect free.

## Open server for testing

On developing step, you don't have to generate all the time after modifying template.
Jikji provides useful feature to develop in realtime.

Run jikji as **listening** mode:

```bash
$ jikji listen <project_dir>
$ jikji listen <project_dir> --port PORT --host HOST
```

Then you can see rendered website in your browser (default: http://localhost:7000). When you reload the website, Jikji will do re-rendering the templates.

Limitations: if you change the init scripts including `settings.py` and `pages.py`, Jikji would not reload the files. In that case, please turn off the server and restart Jikji listening mode.

repository: Prev/jikji

branch_name: refs/heads/dev

gha_language: Python

repo_name: Prev/jikji


text:
# school-rent-project
School renting system

This project is designed as a business model for a company that is renting items to students. The listing items include computer, hair dryer etc.

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

## Built With

* [Spring Boot](https://spring.io/projects/spring-boot) - The back-end framework used
* [Hibernate](https://hibernate.org/) - ORM framework
* [PostgreSQL](https://www.postgresql.org/) - Relational Database
* [Json Web Token](https://jwt.io/) - Security Filter
* [JUnit](https://junit.org/junit4/) - Testing
* [Maven](https://maven.apache.org/) - Dependency Management

## Authors

* **Minfeng Wu** - *Initial work* - [minfeng-wu](https://github.com/minfeng-wu)

## License

MIT © MinfengWu

repository: minfeng-wu/school-rent-project

branch_name: refs/heads/upstream

gha_language: Java

repo_name: minfeng-wu/school-rent-project


text:
# Terraform::AWS::Lb

Provides a Load Balancer resource.

~> **Note:** `Terraform::AWS::Alb` is known as `awsLb`. The functionality is identical.

## Properties

`Name` - (Optional) The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters,
must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified,
Terraform will autogenerate a name beginning with `tf-lb`.

`NamePrefix` - (Optional) Creates a unique name beginning with the specified prefix. Conflicts with `Name`.

`Internal` - (Optional) If true, the LB will be internal.

`LoadBalancerType` - (Optional) The type of load balancer to create. Possible values are `application` or `network`. The default value is `application`.

`SecurityGroups` - (Optional) A list of security group IDs to assign to the LB. Only valid for Load Balancers of type `application`.

`AccessLogs` - (Optional) An Access Logs block. Access Logs documented below. Only valid for Load Balancers of type `application`.

`Subnets` - (Optional) A list of subnet IDs to attach to the LB. Subnets
cannot be updated for Load Balancers of type `network`. Changing this value
for load balancers of type `network` will force a recreation of the resource.

`SubnetMapping` - (Optional) A subnet mapping block as documented below.

`IdleTimeout` - (Optional) The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60.

`EnableDeletionProtection` - (Optional) If true, deletion of the load balancer will be disabled via
the AWS API. This will prevent Terraform from deleting the load balancer. Defaults to `false`.

`EnableCrossZoneLoadBalancing` - (Optional) If true, cross-zone load balancing of the load balancer will be enabled.
This is a `network` load balancer feature. Defaults to `false`.

`EnableHttp2` - (Optional) Indicates whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`.

`IpAddressType` - (Optional) The type of IP addresses used by the subnets for your load balancer. The possible values are `ipv4` and `dualstack`.

`Tags` - (Optional) A mapping of tags to assign to the resource.

### AccessLogs Properties

`Bucket` - (Required) The S3 bucket name to store the logs in.

`Prefix` - (Optional) The S3 bucket prefix. Logs are stored in the root if not configured.

`Enabled` - (Optional) Boolean to enable / disable `AccessLogs`. Defaults to `false`, even when `Bucket` is specified.

### SubnetMapping Properties

`SubnetId` - (Required) The id of the subnet of which to attach to the load balancer. You can specify only one subnet per Availability Zone.

`AllocationId` - (Optional) The allocation ID of the Elastic IP address.

## Return Values

### Fn::GetAtt

`Id` - The ARN of the load balancer (matches `arn`).

`Arn` - The ARN of the load balancer (matches `id`).

`ArnSuffix` - The ARN suffix for use with CloudWatch Metrics.

`DnsName` - The DNS name of the load balancer.

`ZoneId` - The canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record).

## See Also

* [aws_lb](https://www.terraform.io/docs/providers/aws/r/lb.html) in the _Terraform Provider Documentation_


text:
### API description

#### Subscribed Topics:

**claw_controller/command (std_msgs/Float64)**
control the servo for the claw, values range: 0(opened)～-2.0(closed)

**cyton_robot/command/joint (sensor_msgs/JointState)**
make the robot move to a position in joint space.
example: /cyton_bringup/script/cmd_pub.py

**cyton_robot/command/pose (geometry_msgs/PoseStamped)**
make the robot move to a position in cartesian coordination system.
example: /cyton_bringup/script/cmd_pub.py

**cyton_arm_controller/follow_joint_trajectory/cancel (actionlib_msgs/GoalID)**
stop a trajectory action in executing by publishing an empty topic.
example:
```sh
$ rostopic pub /cyton_arm_controller/follow_joint_trajectory/cancel actionlib_msgs/GoalID -- {}
```
*Note: the following Subscribed Topics are invalid in simulation*

**cyton_command_joint (cyton_msg/Float64Array)**
control the positions of the robot's joints.
example:
```sh
$ rostopic pub /cyton_command_joint cyton_msgs/Float64Array "data: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, -0.2]"
```

#### Published Topics:

**joint_states (sensor_msgs/JointState)**
the current status of the joints.

**tf (tf2_msgs/TFMessage)**
the transformation relationship among the links.

#### Services:
*Note: the following Services are invalid in simulation*

**cyton_go_home (std_srvs/SetBool)**
make the robot go to home position.

example:
```sh
$ rosservice call /cyton_go_home "data: false"
or
$ rosservice call /cyton_go_home "data: true"
```

**cyton_torque_enable (std_srvs/SetBool)**
set torque enable/disenable

example:

enable:
```sh
rosservice call /cyton_torque_enable "data: true"
```
disenable:
```sh
rosservice call /cyton_torque_enable "data: false"
```


text:
# PString
Parse string to common types via convenient extension methods.

[Nuget](https://www.nuget.org/packages/PStringExtensions/)

# Install:
```
dotnet add package PStringExtensions --version 1.0.0
```

## To use simply add namespace:
```
using StringConversion;
```

Once you add this using directive, all strings will have extension methods of this library. (Invoke via `.`)

repository: StrajnarFilip/PString

repo_name: StrajnarFilip/PString


text:
eyetvmacsync
============

Scripts to copy and sync eyetv shows recorded on a server to a client machine

You should be able to reverse-enginner how to set it up based on the
command-line parameters in the main script...basically I run it like this:

~/bin/eyetvsync.pl --transfer-log ~/var/eyetvsync.log --local-shows-dir ~/Documents/EyeTV\ Archive/ --remote-shows-dir "/Volumes/STX3TB/EyeTV Archive" --remote-host eyetv-server.local --remote-user username --patterns-file ~/etc/eyetv-patterns.txt --local-staging-dir /Users/username/EyeTvStaging/ --debug

I have it auto-starting by installing a compiled AppleScript (included) and
having it run as a login item.  There are several other ways of getting it
to start on Mac OS X, pick your poison!

repository: diabolicalMdog/eyetvmacsync

repo_name: diabolicalMdog/eyetvmacsync


text:
# learn.hasura.io website

![Gatsby Postgres GraphQL](./assets/gatsby-postgres-graphql.png)

- Test the app

  Run `npm run develop` to start the gatsby server.
  Visit [http://localhost:8000](http://localhost:8000) to view the app

repository: cTxplorer/learn-graphql

repo_name: cTxplorer/learn-graphql


text:
# Party Invitation Tool

This is a program that parses a file (by default customer.txt), calculates the customers to be invited based on their distance to the company's office (by default 100), and prints the invites, one per line, to a file (by default output.txt).

# Installation

This program was developed using Python 3.7.3, but uses no features specific to that version and should be able to run on any Python 3 installation.
It also requires pytest to be installed for unit testing.

To install pytest, use the following command:
```
pip3 install pytest
```

# Commands
```
python3 main.py [distance] [input_file] [output_file]
```
Executes the program. This program produces no output to stdout, only writing the results to file.

```
pytest
```
Runs all unit tests


text:
# SemialgebraicGames.jl
`SemialgebraicGames.jl` is a solver for two-player zero-sum polynomial games on semialgebraic sets. It also includes DSOS and SDSOS optimization capabilities, along with an iterative change-of-basis algorithm. Contrary to the repository name, this package is called `SemialgebraicGames.jl`.

> Tip: Julia is "fast" is its own _unique_ way, though you may want to keep a book nearby, just in case...
## To add
Open your _Julia_ interpreter, press `]` to enter the _pkg_-mode, and run
```
add https://github.com/votroto/SemialgebraicGamesCVUT.jl.git
```
to add this package (or use `dev` instead of `add` to keep the package "alive" for development).

Finaly, press `backspace` to exit the _pkg_-mode.

## To use
```julia
# Load this package. (This will take a while)
using SemialgebraicGames
# Packages to define the payoff function, and the strategy sets.
using DynamicPolynomials
using SemialgebraicSets
# Example semidefinite optimizer.
using CSDP
opt = CSDP.Optimizer

# Example game definition
@polyvar x y
p  = (x - y)^2
Sx = @set 1 - x^2 >= 0
Sy = @set 1 - y^2 >= 0

# Run the solver. (First time load. Again.)
value_x, measure_x, measure_y = solve_game(p, Sx, Sy, opt, iteration=0x1)
```
The problem can also be solved using an iterative change-of-basis technique based on DDP and SDDP.
```julia
using ECOS
opt = () -> CoBModel(ECOS.Optimizer, SDD, iterations=0x5)
```
> Keep in mind that SDDP and DDP are conservative relaxations. Therefore, `solve_game(p, Sx, Sy, ...)` is unlikely to equal the dual `solve_game(-p, Sy, Sx, ...)`. Try both.

It is also possible to use LP and SOCP solvers simply by imbueing them with diagonal-dominance bridging capabilities. This results in the standard DDP and SDDP optimization.
```julia
opt = lazy_relax(ECOS.Optimizer, SDDPBridge)
```

## To remove:
Open your _Julia_ interpreter, press `]` to enter the _pkg_-mode, and run
```
rm SemialgebraicGames
```
Finaly, press `backspace` to exit the _pkg_-mode.

## Acknowledgement
- Ahmadi, A., & Majumdar, A. (2017). Dsos and sdsos optimization: More tractable alternatives to sum of squares and semidefinite optimization. SIAM Journal on Applied Algebra and Geometry, 3. https://doi.org/10.1137/18M118935X
- Lasserre, J.-B. (2004). Global optimization with polynomials and the problem of moments. SIAM Journal on Optimization, 11. https://doi.org/10.1137/S1052623400366802
- Parrilo, P. (2007). Polynomial games and sum of squares optimization, 2855–2860. https://doi.org/10.1109/CDC.2006.377261


text:
---
layout: relation
title: 'dobj'
shortdef: 'direct object'
udver: '2'
---

The direct object of a verb is the noun phrase that denotes the entity acted upon. The direct object is typically marked by the accusative case in Greek.

~~~ sdparse
Ο υπουργός ενημέρωσε το σώμα
dobj(ενημέρωσε, σώμα)
~~~

However, some verbs take objects in genitive:

~~~ sdparse
Η Αντιγόνη μοιάζει της Αρετής.Gen
dobj(μοιάζει, Αρετής.Gen)
~~~

~~~ sdparse
Οι συνεδριάσεις προηγούνται των αποφάσεων.Gen
dobj(προηγούνται, αποφάσεων.Gen)
~~~

In general, if there is just one object, it should be labeled `obj`,
regardless of the morphological case or semantic role that it bears.

When two objects are present, one of them is labeled as `obj` and the other as [iobj](). Generally, the most directly affected object _(patient)_ is marked as `obj`. The one exception is when there is a clausal complement. Then the clausal complement is regarded as [iobj]() “clausal direct object” and an object nominal will be an iobj. See [iobj]() for more details.

See the [expl]()  relation for cases of clitic doubling.

<!-- Interlanguage links updated Út 9. května 2023, 20:04:25 CEST -->

repository: UniversalDependencies/docs

branch_name: refs/heads/pages-source

gha_language: HTML

repo_name: UniversalDependencies/docs


text:
# DoctrineProfileExtraBundle

Bundle to get information about doctrine hydration performance

## Purpose

Adds a section to web profile which lists all doctrine hydrations performed during generation of response.

## Installation

Add this in your `composer.json`

```php
"require-dev": {
    [...]
    "debesha/doctrine-hydration-profiler-bundle" : "~1.0@dev",
},
```

Then run `php composer.phar update `

Next step is to register the bundle in AppKernel (`app/AppKernel.php`)

```php
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
    [...]
    $bundles[] = new Debesha\DoctrineProfileExtraBundle\DebeshaDoctrineProfileExtraBundle();
}
```

**Attention! The bundle MUST be included AFTER DoctrineBundle.**

That's it.

## Screenshots

Your profile gets a new section where you may get an information about how fast was hydrations made and
how many entities was hydrated.

![Screenshot](http://i.imgur.com/GsvkIIN.png)

![Screenshot](http://i.imgur.com/pkLzlc8.png)

repository: debesha/DoctrineProfileExtraBundle

gha_language: PHP

repo_name: debesha/DoctrineProfileExtraBundle


text:
# Singly Linked List Zip

Zip two linked lists.

[ll-zip](https://github.com/afnandamra/data-structures-and-algorithms/pull/22)

## Challenge

### Features

- Write a function called zipLists which takes two linked lists as arguments. Zip the two linked lists together into one so that the nodes alternate between the two lists and return a reference to the head of the zipped list. Try and keep additional space down to O(1). You have access to the Node class and all the properties on the Linked List class as well as the methods created in previous challenges.

### Structure and Testing

run `npm test ll-zip` to check that the function is working correctly

## Approach & Efficiency

- My approach was checking if the lists exists or not first, then append the values one by one, to make sure that **time O(n)** and **space O(1)**

## Solution

![image](../assets/DS4.jpg)

gha_language: JavaScript


text:
# Oracle Sharding tools and deployment automation library

[SDB-terraform-onprem]: https://github.com/oracle/db-sharding/tree/master/deployment-with-terraform/sdb-terraform-onprem
[SDB-terraform-oci]: https://github.com/oracle/db-sharding/tree/master/deployment-with-terraform/sdb-terraform-oci
[SDB-terraform]: https://github.com/oracle/db-sharding/tree/master/deployment-with-terraform/
[SDB-Mid-Tier-Routing]: https://github.com/oracle/db-sharding/tree/master/Mid-Tier-Routing
[SDB-Fast-Data-Ingest]: https://github.com/oracle/db-sharding/tree/master/sharding-fast-data-ingest
[OKE-sharding]: https://github.com/oracle/db-sharding/tree/master/oke-based-sharding-deployment
[DOCKER-sharding]: https://github.com/oracle/db-sharding/tree/master/docker-based-sharding-deployment
[MTR-Intro]: https://github.com/oracle/db-sharding/wiki/Sharded-Database-Mid-Tier-Routing#introduction
[SDB-prod-page]: https://www.oracle.com/database/technologies/high-availability/sharding.html
[SDB-prod-doc]: https://docs.oracle.com/en/database/oracle/oracle-database/19/shard/
[OCI]: https://www.oracle.com/cloud/
[SDB]: https://www.oracle.com/database/technologies/high-availability/sharding.html

- [About](#about)
- [Terraform based deployment of Oracle sharded database](#terraform-based-deployment-of-oracle-sharded-database)
  * [Overview](#overview)
  * [Details](#details)
- [Mid-tier routing for use in Oracle sharded database client applications](#mid-tier-routing-for-use-in-oracle-sharded-database-client-applications)
  * [Overview](#overview-1)
  * [Details](#details-1)
- [OKE based deployment of Oracle sharded database](#oke-based-deployment-of-oracle-sharded-database)
  * [Overview](#overview-2)
  * [Details](#details-2)
- [Docker based deployment of Oracle sharded database](#docker-based-deployment-of-oracle-sharded-database)
  * [Overview](#overview-3)
  * [Details](#details-3)
- [Sharding Fast Data Ingest](#routing-implementations-for-use-in-oracle-sharding-client-applications)
  * [Overview](#overview-4)
  * [Details](#details-4)

## About

This repository provides Oracle Sharded database deployment automation and tools :

* Terraform based deployment of Oracle sharded database.
* Mid-tier routing for use in Oracle sharded database applications.
* OKE based deployment of Oracle sharded database.
* Fast data ingest for sharding applications.

If you want to learn more about Oracle sharding a.k.a Oracle Sharded Database, please refer to the [product page][SDB-prod-page] and [product documentation][SDB-prod-doc].

<strong> Note </strong> : Oracle Sharding and Oracle Sharded Database (SDB) are interchangeably used names in the documentation and refer to the same entity.

## Terraform based deployment of Oracle sharded database

### Overview

Provides Terraform modules, configuration and scripts that provisions the necessary components and resources for a quick and easy setup of [Oracle Sharded Database][SDB] (SDB) on either [Oracle Cloud Infrastructure][OCI] (OCI) or On-Premise. It creates and configures SDB infrastructure components necessary for a successful Sharded Database setup, such as Oracle Shard Director(s), Shard Catalog(s), Shard(s) and optionally Shard Standby(s) as well as Catalog standby using Data Guard for replication to provide high-availability and/or disaster recovery of the sharded data.

### Details

For more details, please refer to the [SDB-Terraform][SDB-terraform] documentation.

## Mid-tier routing for use in Oracle sharded database client applications

### Overview

Please refer to the Sharded database [Mid-Tier Routing introduction][MTR-Intro] for an overview.

### Details

For more details, please refer to the [SDB Mid-Tier routing][SDB-Mid-Tier-Routing] documentation.

## OKE based deployment of Oracle sharded database

### Overview

Oracle Kubernetes Engine (OKE) based deployment of sharded database.

### Details

For more details, please refer to the [OKE sharding][OKE-sharding] documentation.

## Docker based deployment of Oracle sharded database

### Overview

Docker based deployment of sharded database.

### Details

For more details, please refer to the [Docker sharding][DOCKER-sharding] documentation.

## Fast data ingest

### Overview

The Fast data ingest library consist of several parts:
 * Generic routing table interfaces
 * Sharding metadata implementation
 * Metadata reader (encapsulated select queries)
 * Tools for efficient parallel splitting with respect to sharding key

### Details

For more details, please refer to the [Fast data ingest][SDB-Fast-Data-Ingest] documentation.

repository: oracle/db-sharding

gha_license_id: NOASSERTION

repo_name: oracle/db-sharding


text:
Call for Red and Red/System
------------------------

This binding is still work in progress.

It implements a **call** function for Red (similar to rebol's **[call](http://rebol.com/docs/shell.html)** function).

POSIX version uses [wordexp](http://pubs.opengroup.org/onlinepubs/9699919799/functions/wordexp.html) function to perform word expansion.

Windows version performs home made string parsing (no expansion or substitution).

Any proposal to improve this parsing (with native Windows functions) is welcome.

Current limits
------------------------

The windows' call function can launch only GUI apps such as **notepad**, **explorer**.

Console commands like **dir** needs further investigation and help to implement window's stdio redirections.

Files
------------------------

>*call.reds* : low-level binding for Red/System

>*call.red* : binding for Red

>*console-call.red* : Call Red binding added to console

Running the Red console call example
------------------------

1. This binding is provided with an example adding **call** feature to the console.

1. Compile with Red from Red main directory

    `$ red -c tests/console-call.red`

1. Or compile it from the REBOL console :

    `do/args %red.r "%tests/console-call.red"`

1. The resulting binary is in Red main directory.

    Linux users run **console-call** from command line.

    Windows users need to open a DOS console and run **console-call.exe** from there.

Syntax
------------------------

      USAGE:
          call cmd /input in /output out /error err /wait
      DESCRIPTION:
          Executes a shell command to run another process.
      ARGUMENTS:
          cmd -- The shell command or file (Type: string)
      REFINEMENTS:
            /input -- Redirects in to stdin
                in -- (Type: string)
            /output -- Redirects stdout to out
                out -- (Type: string block)
            /error -- Redirects stderr to err
                err -- (Type: string block)
            /wait -- Runs command and waits for exit
      RETURNS:
            a process ID or 0

When you use the /input, /output, or /error refinements you automatically set the /wait refinement.

Linux examples
------------------------

        $ ./console-call
        -=== Call added to Red console ===-
        -=== Red Console alpha version ===-
        (only ASCII input supported)

        red>> call "ls /"
        == 16139
        red>> bin   dev  home    lib      lost+found  mnt  proc  run   srv  tmp  var
        boot  etc  initrd  lib64  media       opt  root  sbin  sys  usr

        red>> call/wait "ls /"
        bin   dev  home    lib    lost+found  mnt  proc  run   srv  tmp  var
        boot  etc  initrd  lib64  media       opt  root  sbin  sys  usr
        == 0
        red>> out: "" call/output "ls /" out
        == 0
        red>> probe out
        {bin^/boot^/dev^/etc^/home^/initrd^/lib^/lib64^/lost+found^/media^/mnt^/opt^/proc^/root^/run^/sbin^/srv^/sys^/tmp^/usr^/var^/}
        == {bin^/boot^/dev^/etc^/home^/initrd^/lib^/lib64^/lost+found^/media^/mnt^/opt^/pr
        red>> inp: "This is a Red world...^/"
        == "This is a Red world...^/"
        red>> call/input "cat" inp
        This is a Red world...
        == 0

Known bug
------------------------

Outputs redirection can loose data (end of buffer).

Access to C system variable **[errno](http://en.wikipedia.org/wiki/Errno.h)** required.


text:
---
layout: page
title: About Topos
permalink: /about/
---

Topos is focused on spurring fundamental scientific and technological progress and is currently experimenting with how to support creative problem solving in a co-living setting. In particular, we aim to support resident scientists complete several month significant projects of theirs while not conflicting with 9-5 life.

space

To support quiet and collaborative work, our home has a quiet library space with views of the bay and ocean as well as a vibrant collaborative floor where we regularly host conferences, reading groups, dinners, workshops, and lectures. On weekends, we operate a science hostel to host visitors.

culture

We devote great care to ensure our culture supports people learning and studying in their own way without any implicit ability-driven social status. We think this helps create the relaxed focus that accelerates learning and increases the enjoyment of it.

fun

We organize camping trips, regular bonfires, DJ Hawking jam sessions, and (very) occasional < Rave \| Function> house parties. Spontaneity is a core value.

diversity

Academia propels the narrow cutting-edge with expensive yet specialized resources. Topos focuses on teaching fundamentals and providing daily exposure to a breadth of ideas and exposition from all scientific fields. We have, for example, an ongoing lecture series devoted to novel expositions of old topics.

In sum, we believe that co-living is powerful raw material for personal and scientific growth. We are actively testing hypotheses for how that material can be best developed to support scientists. By doing so, we hope to spur breakthroughs.

We look for people with the drive to greatly improve during their time at Topos as residents or visitors. Please email <a href="mailto:info@topos.house?Subject=Co-living"<EMAIL_ADDRESS>for more information.


text:
LeetCode 1  [Two Sum](https://leetcode.com/problems/two-sum/description/)
   - Brute Force O(N^2)
   - map O(N)
   ```
   def twoSum(self, nums, target):
      sum_map = {}
      for i, x in enumerate(nums):
          if(sum_map.get(x) == None):
              sum_map[target-x] = i
          else:
              return [sum_map[x], i]
      return []
   ```


text:
---
layout: post
title: Gray-Box P3 Nominated Best Paper at GECCO
---
This year my paper
[Gray-Box Optimization using the Parameter-less Population Pyramid](http://dl.acm.org/citation.cfm?id=2739480.2754775)
was [nominated for Best Paper](http://www.sigevo.org/gecco-2015/best-papers-nom.html)
in the Genetic Algorithms (GA) track of the Genetic and Evolutionary Computation Conference (GECCO).
As usual, all of my code and data is available on [github](https://github.com/brianwgoldman/GrayBoxOptimization/releases).
In order to be nominated, a paper must first be accepted by the track. This year, of the 45 submitted papers,
the GA track only accepted 17. During the peer review process, any of the reviewers can suggest a paper for
nomination. These suggested papers are then reviewed by the track chairs, and 3 are selected for nomination.
This makes my second nomination for best paper, the first being my [Parameter-less Population Pyramid](http://dl.acm.org/citation.cfm?id=2598350)
paper which won last year's award.

The final decision for who wins best paper is made by conference attendees. All nominated papers are presented
back-to-back, with audience members voting for who they believe had the best work. This year I faced stiff competition
from fellow BEACON members Liang and Miikkulainen at UT-Austin as well as from Whitley at Colorado State.
I'm sad to say I wasn't chosen by the audience this year. Congratulations Dr. Whitley for his work
[Mk Landscapes, NK Landscapes, MAX-kSAT: A Proof that the Only Challenging Problems are Deceptive](http://dl.acm.org/citation.cfm?id=2739480.2754809).


text:
---
layout: project
type: project
image: images/homepage.png
title: Link Up Manoa
permalink: projects/link-up-manoa
# All dates must be YYYY-MM-DD format!
date: 2020-05-15
labels:
  - UH Manoa
  - Software Engineering
  - Project Management
summary: I was part of a group project to create a social study group web application for students in the same major.
---

## Link Up Manoa
Link Up Manoa is a web-based platform that was intended to make group-study easier between students. Students have the option of creating an online account that is registered to a database, and can interact between students and other people associated in the same major. Due to classes being large, and social interaction often intimidating between new students and veterans of a University alike, Link-Up-Manoa was created to alleviate the stress associated with finding groups of people to study with, and the space associated with that group.

## Team Contribution and Building

The following are pages that give a general overview of our project, along with my methods of implementing skills

## Login And User Account Registration

Upon visiting the home page, the top right corner allows users of the site to log in to their respected accounts. Accounts can be of either "user" or "admin" priveleges, and if the person is not a registered user of the site, they are able to become one simply by clicking the "register" button. Once they do, they are redirected to a page that allows them to start off with basic information.

## User Page

Once the user has completed all the basic requirements of creating a profile, or if they are simply logging back into the site, they are then redirected to their user profile page, which contains basic information about themselves and their degree program, along with nav links to certain tools that will help them plan out their studying, organize group meetings, and make friends with those in the same major. As a part of the team, I helped to create the user page UI and functionality.

## Tutor Page

As a user, the student has the potential to become either a student or a student-tutor, where they will provide aid to other students as necessary. Per group contribution, I was in charge of creating the database that housed the tutors, and creating this page that would show users as a list of "cards". Other students have the option of contacting these tutors and requesting help in their subjects of intereest, or creating a group study with the tutors as head of these sessions.

## Sessions Page

The sessions page is connected to the notes section on the user profile page, along with a navbar link that will redirect the user to cards of study groups they have, or notes that they need to complete in order to add to the experience. Users can also add more note cards to keep tabs of assignments they need to complete, and use it as a "journaling" method for reference in group study as well. I contributed to this portion of the project by creating the small database that housed the sessions of the groups.

## Friend Page

The friend page is where users can interact with other members of the site, and add people to study groups accordingly. Similar to social media sites, and based off of this concept, one is able to search and filter for a specific user, or see user recommendations on the side bar and look for a user in that way as well.

## Admin Page

The admin page is for registered users of the site to control the flow of traffic and monitor who is active on the site, and who should be deleted. They also control admin priveleges of user-authentication and group-authentication.

## The Overall Experience

Overall this project allowed me to gain a broader understanding of not only API's and back-end databases, but front-end development and frameworks that can make programming a lot easier. It also taught me more about group-development and teamwork, and how to manage our time efficiently. If there is anything that I could improve on this project, it would be to manage the back end databases in a clean manner, and implement chat-rooms for people to discuss study groups. The user interface could also potentially be cleaner, and have more pictures that depict study group data.

Source:  link-up-manoa/link-up-manoa


text:
---
layout: post
status: publish
published: true
title: Watch the new 'movie' from Apple and The Rock for free
author:
  display_name: Charlotte Grainger
  login: LottieBetty
  email<EMAIL_ADDRESS>  url: ''
author_login: LottieBetty
author_email<EMAIL_ADDRESS>wordpress_id: 14454
wordpress_url: https://blog.buymobiles.net/?p=14454
date: '2017-07-25 09:58:47 +0100'
date_gmt: '2017-07-25 08:58:47 +0100'
categories:
- News
tags:
- apple
- iphone
- siri
- The Rock
---

"Hey Siri, is this for real?"

Since his days in the ring, Dwayne “The Rock” Johnson has certainly come a long way. He’s no longer a mere caricature of a fighter, touting cheesy lines to a riled-up audience. No, these days, he’s a legit actor. In fact, last year, he actually became the world’s highest paid actor, beating Jackie Chan to the punch.

Over the course of his movie career, the former wrestler has starred with many other Hollywood greats, including Aaron Paul and Zac Efron. So, his next ‘co-star’ (and, believe me, I used that phrase lightly) should come as a real surprise. Here’s a hint… It’s not even human.

In your wildest dreams, I bet that you never thought you’d see the day when Siri (yes, Apple’s very own digital assistant) would become a breakout movie star. Well, that day is upon us, friends. The AI has landed its very first leading role in a production that Johnson is calling the “biggest, coolest, sexiest, funnest movie ever”.

Teamed w/ @Apple to make the biggest, coolest, sexiest, funnest (is that a word?) movie ever. Drops TOMORROW!#ROCKxSIRI #DominateYourDay🏾 pic.twitter.com/STwlCPsVUh

— Dwayne Johnson (@TheRock) July 23, 2017

Of course, there’s a catch. Actually, the so-called ‘movie’ is a three-minute and 45 second long video clip (watch below). I’m certain that you will agree that calling a short clip a film, is a stretch. But we'll suspend our disbelief, won't we?

If Johnson says it’s a film, I guess we have no choice but to believe him, right? It’s called The Rock x Siri: Dominate The Day and is pretty much an action-packed extended advert for the tech company. If you’re just a tad curious about the film, you’re in luck. The movie is on Apple’s YouTube channel right now, and you can watch it right here too.

So, grab some popcorn, snuggle up, and prepare to be blown away by Siri’s first big (or little) screen production. Oh, it’s a wonderfully weird time to be alive.


text:
---
id: dev-guide-mobile-jitsi-meet
title: Developer Guide for Jitsi Meet
sidebar_label: Jitsi Meet development
---

This guide will help you setup a development environment to start working on the Jitsi Meet mobile app itself.

:::caution
Building the apps / SDKs is not supported on Windows.
:::

## Overview

:::note
This guide is about building the Jitsi Meet apps themselves. If you want to integrate the Jitsi Meet SDK into your own application check the dedicated page on the sidebar.
:::

Jitsi Meet can be built as a standalone app for Android or iOS. It uses the
[React Native] framework.

First make sure the [React Native dependencies] (React Native CLI Quickstart) are installed.

:::warning Node version
Node 16.x and npm 8.x are required. Any other version may result in runtime errors.
:::

:::note Xcode
Xcode 12 or higher is required.
:::

## iOS

1. Install dependencies

  - Install main dependencies:

    ```bash
    npm install
    ```

  - Install the required pods (CocoaPods must be installed first, it can
    be done with Homebrew: `brew install cocoapods`)

    ```bash
    cd ios
    pod install
    cd ..
    ```

2. Build the app using Xcode

    - Open `ios/jitsi-meet.xcworkspace` in Xcode. Make sure it's the workspace
      file!

    - Select your device from the top bar and hit the **Play ▶** button.

    When the app is launched from Xcode, the Debug Console will show the application output
    logs.

3. Other remarks

    It's likely you'll need to change the bundle ID for deploying to a device.
    This can be changed in the **General** tab. Under **Identity** set
    **Bundle Identifier** to a different value, and adjust the **Team** in the
    **Signing** section to match your own.

## Android

The [React Native dependencies] page has very detailed information on how to
setup [Android Studio] and the required components for getting the necessary
build environment. Make sure you follow it closely.

Set the JDK in Android Studio to at least Java 11: https://developer.android.com/studio/intro/studio-config#jdk

The recommended way for building Jitsi Meet is building the app with Android Studio.

### Adding extra dependencies

Due to how our project is structured, React Native's automatic linking won't work so Android dependencies need to be manually linked.

First, add your project to `android/settings.gradle` like so:

```gradle title="android/settings.gradle"
include ':react-native-mydependency'
project(':react-native-mydependency').projectDir = new File(rootProject.projectDir, '../node_modules/@somenamespace/react-native-mydependency/android')
```

Then add a dependency on `android/sdk/build.gradle` like so:

```gradle title="android/sdk/build.gradle"
implementation project(':react-native-mydependency')
```

Last, link it in the `getReactNativePackages` method in `android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java` like so:

```java title="android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java"
new com.companyname.library.AwesomeLibraryPackage(),
```

Make sure you adjust the fully qualified package name.

## Debugging

The official documentation on [debugging] is quite extensive and specifies the
preferred method for debugging.

:::note
When using Chrome Developer Tools for debugging the JavaScript source
code is being interpreted by Chrome's V8 engine, instead of JSCore which React
Native uses. It's important to keep this in mind due to potential differences in
supported JavaScript features.
:::

## Enabling extra features

- [Dropbox Integration](mobile-dropbox.md)
- [Google Sign-In Integration (For YouTube Live Streaming)](mobile-google-auth.md)

[Android Studio]: https://developer.android.com/studio/index.html
[debugging]: https://facebook.github.io/react-native/docs/debugging/
[React Native]: https://facebook.github.io/react-native/
[React Native dependencies]: https://reactnative.dev/docs/environment-setup

repository: jitsi/handbook

repo_name: jitsi/handbook


text:
# Node-Express-Strap

Prefer plain ol' JavaScript? https://github.com/mjhea0/Node-Express-Strap

![alt tag](/public/img/github_splash.png)
### Node/Express/MongoDB/Passport/Bootstrap

This is a basic node boilerplate complete with user authentication, meant for rapid web development. Get your app quickly!

### Quick Setup

1. Clone Repository `git clone https://github.com/gemfarmer/Node-Express-CoffeeStrap.git`
2. `npm install`
3. `cake dev` or `supervisor lib/app.js`

### Main Tools

1. Node
2. Express
3. CoffeeScript
4. MongoDB
5. Mongoose
6. Passport
7. Jade
8. JQuery
9. Bootstrap

For more info and version info, look at the `package.json` file.

### Configuration Files

1. `authentication.js` - user authentication
2. `config.js` - provides application variables such as API Keys, site name, port. For production, be sure to include confidential configurations as enviornment variables.
3. `database.js` - connecting/disconnecting from the database
4. `navigation.js` - navigation links for bootstrap

## Contribute!

Fork the repo and contribute. Check off some of the items on the TO-DO list below!

### Todo

1. Update to Bootstrap 3
2. Update documentation
3. Add Mocha unit tests
4. Add social auth

=======
Node-Express-CoffeeStrap
========================

Bootstrap for Node.js that includes Express, Jade, MongoDB, and Authentication. Written in CoffeeScript

repository: gemfarmer/RealizeChange

repo_name: gemfarmer/RealizeChange


text:
# Portfolio

## Description
 I was assigned to recreate a website from a reference photo. I started this as a challenge to myself to become more comfortable with flexbox. Although I couldnt mimic the way the original website behaves with flexbox, I was able get some of it as well as some of the other elements to work and recreate it's general aesthetic.

## Table of Contents (Optional)
- [Installation](#installation)
- [Usage](#usage)
- [Credits](#credits)
- [Notes](#Notes)
- [License](#license)

## Installation
No installs required.

## Usage
Access the website by clicking the URL:  https://keith-l-watford.github.io/i-am/

Here's a screenshot of the reference website:
![A screenshot of the referenced website](assets/images/portfolio_mockup.png)

and heres where my recreation currently stands *(as of June 2nd, 2021)*:
![A screenshot of my reaction](assets/images/screencapture-recreation.png)

## Credits
Shout out to my tutor Scott, Teacher Lief, and naps.

## Notes
The next time I attempt this I think I will start with a mobile first approach and use media query to size it out for bigger screens. Unfortunately, I was too far along to start over and change my approach. I now have a greater understanding of flexbox and its properties, however, theres still more to work on and utilize.

## License
This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

 IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to http://unlicense.org/

license: Unlicense

repository: Keith-L-Watford/i-am

repo_name: Keith-L-Watford/i-am


text:
# DM0249_R0M0E0 RGB Camera Module

![](To be updated)

# Project Stage
**Caution: This project is still under development. We are currently in process of getting our board prototyped and tested.**
           **We are proactively making our design available for our uses to plan and provide us with design feedback.**

# Overview
This repository contains open hardware designed by Luxonis. The DM0249 is a carrier board for the Sunny A12N02A IMX378 camera module, and is designed to be compatible with the [BW1094](https://github.com/luxonis/depthai-hardware/tree/master/BW1094_DepthAI_HAT) and [BW1098FFC](https://github.com/luxonis/depthai-hardware/tree/master/BW1098FFC_DepthAI_USB3) baseboards and also with new version of 1098FFC which is  [DM1098FFC](https://github.com/luxonis/depthai-hardware/tree/master/DM1098FFC_DepthAI_USB3). A 26-pin FFC is used to carry 5V power, 4-lane MIPI, I2C, and other control signals between the BW0249 and the controller baseboards.
In this version of 0249 carrier board no outer dimensions or mounting holes were changed. Main reason for change was having more robust FFC connectors.

# Repository structure:
* `PCB` contains the packaged Altium project files
* `Docs` contains project output files
* `Images` contains graphics for readme and reference
* `3D Models` contains generated 3D models of the board
# Key features
* 26 pin 0.5mm FFC interconnect to baseboard
* 30 pin interface to IMX378 camera module
* 4-lane MIPI
* Aux/Control signals to camera module
* 5V power input via FFC
* On-board power generation for camera module
* Design files produced with Altium Designer 20

# Board layout & dimensions

![](Images/DM0249_R0M0E0-TOP.png)

![](Images/DM0249_R0M0E0-BOT.png)

# Getting started
Camera module compatibility is known for the Sunny A12N02A, but not tested for other modules. The FFC connector is an 0.5mm pitch, 26-pin, and bottom-contact, across which travels the 4-lane MIPI, 5V, I2C, camera clock, camera reset, and other optional control lines. 5V power is regulated down and filtered as appropriate to meet the requirements of the compact camera module and IMX378.

# Revision info
These files represent the R0M0E0 revision of this project. Please refer to schematic page, `Project_Information.SchDoc` for full details of revision history.

repository: luxonis/depthai-hardware

repo_name: luxonis/depthai-hardware


text:
### Advocating for trans rights

###### Cal Gunnarsson, MIT BE

###### GSC DIS

###### May 9, 2019

---

### Why this presentation?

- Self-interest :heart\_eyes\_cat:
- Lessons learned from trans advocacy
- Lessons for advocacy in general???

---

### Acknowledgements

- Miguel Alcantar (MIT BE)
- Title IX Student Advisory Committee
- BE graduate students (and Board)

---

### 1. Trans issues
### 2. Trans advocacy
### 3. What we're doing
### 4. Lessons learned

---

## 1. Trans issues

---

### Transgender = gender differs from sex assigned at birth

Trans women, trans men, nonbinary people...

---

### Trans people are diverse

- Experiences of binary and nonbinary people
- Experiences of trans women and trans men
- Intersectional experiences
- Different priorities for transitions and "passing"

---

### Trans people face legal discrimination

###### Proposition 3

###### Title IX

---

### Trans people face structural discrimination
* ID cards and name changes

* Gender markers

* Security lines

* :toilet:

---

### Trans people face social discrimination

* Violence and harassment

* Deadnaming

* Misgendering

---

### Trans graduate students [report a chilly climate](https://wordpress.clarku.edu/agoldberg/files/2018/07/Goldberg-Kuvalanka-dickey-2018-JDHE-1.pdf)

**67%** say safety influences gender presentation

**33%** misgendered "often" by students

**32%** misgendered "often" by faculty

---

Examples are _frequent, pervasive, and obvious_

---

## 2. Trans advocacy

---

### Lots to be done but...

- Lack of specific education
- Problems are institutional, not always departmental

---

### Trans inclusivity = beliefs + repeated, visible action

- Trans exclusion is the *norm*
- Are trans women explicitly included in my programming for women?
- Does my LGBTQ event have gender neutral bathrooms?

---

### Surveys can be hard...

- hard to get "quantitative support"
- hard to anonymize

---

### ... and marginalizing

---

## 3. What we're doing

---

### A more inclusive interview weekend

- Asking about accommodations beforehand
- Pronoun stickers at graduate student events
- Diversity panel at interview weekend

---

### Pronoun stickers at graduate student events
- Worked with Title IX office to roll out stickers
- Current students briefed on pronoun etiquette
- Discussed at faculty meeting
- [Pronoun explainer](https://titleix.mit.edu/pronouns) to accompany stickers

---

### Diversity panel

- Women, URM, LGBTQ+ people, people with disabilities
- Prepared and sent questions to panelists
- Audience questions in person and anonymous

---

### Future work

- Gender neutral bathrooms, prayer rooms, lactation rooms
- Event planning accessibility checklists

---

## 4. Lessons learned

---

### Find low-hanging fruit first

What _don't_ we need "permission" for?

---

### Changing people's behaviors changes their beliefs -- not the other way around

- Make norms visible and easy to follow

- Inertia can be your friend!

---

### Graduate students can harness certain forms of power

- We host interview weekend

- We run lab websites

- We make syllabi

---

### It helps to stick together

- Pull other underrepresented groups along where we can

- Stick together across departments

- Stick together across undergraduate/graduate

---

## Thanks for listening!

repository: cgunnars/gsc-dis

repo_name: cgunnars/gsc-dis


text:
## Windows Teminal Customization

### These tweaks / custimizations techniques are Windows Only.

Very often I'm asked how I customized my Windows Terminal. This repo will walk you through step-by-step how to make your terminal look like the one I use.
Fisrt of all, let's have look at my Windows Terminal.

### Fullscreen Maximized

![terminal](<https://github.com/evilprince2009/Windows-Terminal-Customization/blob/main/Screenshot%20(53).png>)

### Resized View

![terminal](<https://github.com/evilprince2009/Windows-Terminal-Customization/blob/main/Screenshot%20(54).png>)

Now, let's start customizing the terminal. First things first , let's go through the prerequisites.

### Prerequisites

- [Windows Terminal](https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701#activetab=pivot:overviewtab)
- [Cascadia Code](https://github.com/microsoft/cascadia-code/releases/tag/v2106.17)
- [Git](https://git-scm.com/downloads)
- [Posh Winfetch](https://github.com/evilprince2009/Posh-Winfetch-remake/)

## How to's

### Install Windows Terminal

Definitely if you haven't installed Windows Terminal yet, install it from Microsoft Store. Thats the first thing you need to do.

### Install Cascadia Code

Download the [Cascadia Code](https://github.com/microsoft/cascadia-code/releases/tag/v2106.17) font latest version and install it on your computer. This should be very straight forward. Using other fonts might create gibberish on the terminal and break the design.

### Install Git

Download the [Git for Windows](https://gitforwindows.org/downloads) and install and configure it on your system properly. You can check out this [video](https://www.youtube.com/watch?v=8JJ101D3knE&t=762s) to see how to install and configure Git properly on Windows.

### Install Posh Winfetch

Head over to [Posh Winfetch](https://github.com/evilprince2009/Posh-Winfetch-remake/) repo and go through the README , and follow the instructions to install it properly on your system.

### Workspace directory

Make a folder named `Workspace` in your `D:\` Drive.

### Write your custom settings

- Hit `Windows+R` to open the run command.
- Paste `%USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState` and hit enter. This will bring up a file explorer.
- Now download the `settings.json` file from _[here](https://github.com/evilprince2009/Windows-Terminal-Customization/blob/main/settings.json)_ and paste it in the file explorer.

### Now it's showtime

Restart your Windows Terminal and you should be good to go.

### [Ibne Nahian](www.facebook.com/evilprince2009)


text:
### !! DO ALL OF THIS IN A NEW BRANCH !!

Change Rails gem version in Gemfile to latest patch of current minor version or, if already at latest patch, latest patch of next minor version. Versioning uses a three-part number, `MAJOR.MINOR.PATCH`

i.e.     **4.2.2    >    4.2.10    >    5.0.7    >    5.1.6**    ...etc

Check versions at https://rubygems.org/gems/rails/versions
It may be neccesary/advisable to upgrade other gems to.

It may be neccesary to update the Ruby binary.
Check https://guides.rubyonrails.org/upgrading_ruby_on_rails.html

run `bundle update`

fix any gem dependancies

run `rails app:update`
This will help you with the creation of new files and changes of old files in an interactive session. Make sure you preview the difference, to see if there are any unexpected changes.

Refer to https://guides.rubyonrails.org/upgrading_ruby_on_rails.html for any changes required to be made manually.

Run following commands to upgrade Webpacker to the latest stable version. This process involves upgrading the gem and related JavaScript packages:

```
bundle update webpacker
rails webpacker:install
yarn upgrade @rails/webpacker --latest
yarn upgrade webpack-dev-server --latest
```

Run your test suite and fix any deprecation warnings

Open `config/initializers/new_framework_defaults_x_x.rb`. This file contains config options that represent a breaking change from the previous version. You will notice that intially they are all commented out. In conjunction with https://guides.rubyonrails.org/upgrading_ruby_on_rails.html, incrementally uncomment each config, updating your code as neccessary. Run tests after each config is uncommented.

Once every new feature has been activated, you may change the `config.load_defaults x.x` in `config/application.rb`.

It may be a good idea to keep the `new_framework_defaults_x_x.rb` in your repository, even after you have changed `config.load_defaults x.x` just in case you need to revert that and switch a feature off again.

Commit your changes

Now, go back to the top and start again with next minor version.

When you are finally running the latest framework version, run your tests again and check all your gems are current and free from security warnings. Commit & merge!

Don't leave it so long next time.

repository: fig/guides

repo_name: fig/guides


text:
## 2. What Makes a Good Program
What does it mean to measure the quality of programs ?(15-16)

absolute measurement is probably not possible but perhaps we can create a relative scale taking into account "a situation---a total situation--in which they are developed." (16-17)

### Specifications
utmost requirement is that programs are correct (17)

>"...the original creator of the old system raised a hand.
>
>'And how long does your program take?' he asked...
>
>'That varies with the input,' was the replay, 'but on average, about ten seconds per card."
>
>'Aha,' was the triumphan reply. 'But _my_ program takes only one second per card.'
>
>...our hero, who was rather young and naive, was not put down by this remark. Instead, he calmly observed, 'But your program doesn't work....'"(18)

### Schedule
"a program that is late is often worthless" (19)

Most people prefer consistency and accuracy in estimates vs extremely variale and inaccurate estimates (20)

### Adaptibility
Build your programs to the level worthy of the likely lifetime of the solution (20)

Why do we so often write programs that are hard to modify when we know the the program will most likely be modified "adaptibility is not free" (20-21)

_Fisher's Fundamental Theorem_ (R.A Fisher) states that the better adapted a systme is to a particular environment, the less adaptable it is to a new environment (21)

Make sure to validate that specialization/optimization is really appropriate for the problem you are solving (22)

Efficiency and adaptability are often not easy to achieve simoultaneously

Questions for Managers (25)

1. "On what bases do you reward programmers? Are certain of your crieria mutually contradicotry?"
2. Are your programs adaptable, if not, why not, can you trace to incentives (26)
3. How important is the schedule and do you see how schedule above quality might impact programmer decision making

Questions for Programmers

1. "Do you have criteria explicitly in mind whe you start on a project?"  Where do the criteria come from?
2. Do you think about people reading your software in the future?

### Comments on Chapter 2: What Makes a Good Program?

The programmer that makes software that sells (or is used) is the better programmer (2.i)

"Quality is value to some person."

url: https://raw.githubusercontent.com/ssteinbauer/BookNotes/06b0fcb6bad3b5ceb6834dfb4dcc92010e153d84/The Psychology of Computer Programming/02 What_Makes_a_Good_Program.md

repository: ssteinbauer/BookNotes

filename: 02 What_Makes_a_Good_Program.md

repo_name: ssteinbauer/BookNotes


text:
The AMEE category at business/waste/water/anaerobicdigester provides a
methodology for calculating the quantity of methane emissions from
anaerobic digesters which are combusted at water treatment plants. The
methodology is based on measurements of several plant-specific
parameters relating to the flow of emissions from the digester, and is
sourced from the
[guidelines](http://www.epa.gov/climatechange/emissions/archived/downloads/tsd/TSD%20wastewater_020409.pdf)
associated with the US EPA's [mandatory reporting
requirements](http://www.epa.gov/climatechange/emissions/ghgrulemaking.html).

-----

## How to use this category

### Selecting an emissions scenario

To use this category, simply create a profile item - there are no drill
choices.

### Specifying activity data

Next, specify the following profile item values:

  - ***volumetricFlow***: the measured volumetric flow rate (i.e. volume
    per time) of emissions from the digester
  - ***CH4Concentration***: the measured concentration of CH4 in the
    digester emissions (expressed as a whole percentage, i.e. 0-100)
  - ***temperature***: the temperature at which flow measurements were
    made
  - ***pressure***: the pressure at which flow measurements were made
  - ***time***: the duration for which the facility was in operation

The assumes default values for the density of CH4 and the
destruction efficiency of combustion. Users can override these default
values by specifying their own facility-specific values using the
following profile item values:

  - ***destructionEfficiency***: the fraction of CH4 destroyed under
    combustion (a decimal fraction, 0-1; default, 0.99)
  - ***density***: density of CH4 (i.e. mass per volume)

### Results and calculation

The quantities returned represent the methane emissions associated with
the quantity specified. The following quantities are returned:

  - ***producedCH4***: absolute quantity of CH4 produced by the
    anaerobic digestion process
  - ***destroyedCH4***: absolute quantity of CH4 destroyed by
    combustion
  - ***emittedCH4***: absolute quantity of CH4 emitted (i.e. not
    destroyed)
  - ***CO2e***: emitted CH4 to CO2e converted using the
    appropriate [global warming
    potential](Greenhouse_gases_Global_warming_potentials))

repository: thegreenwebfoundation/datasets

repo_name: thegreenwebfoundation/datasets


text:
# ITIS

Integrated Taxonomic Information System

## Website

[https://www.itis.gov](https://www.itis.gov)

## License

> Information presented on the ITIS website is considered public information and may be distributed or copied. Use of the appropriate citation is requested.

## Citation

> To direct readers to the entire ITIS website, it is sufficient to give the address of the site in text:

> Retrieved [month, day, year], from the Integrated Taxonomic Information System (ITIS), www.itis.gov. https://doi.org/10.5066/F7KH0KBK

> To cite data obtained from ITIS, the following citation format is offered as a suggestion:

> Retrieved [month, day, year], from the Integrated Taxonomic Information System (ITIS) on-line database, www.itis.gov. https://doi.org/10.5066/F7KH0KBK

> Citations can be formatted to the style needed for your publication as long as there is sufficient information included to return the reader to the referenced information.

## Files used

## Configuration properties

| Property       | Values     | Description |
| -------------- | ---------- | ----------- |
| forceExport    | true/false | Force graph export even if nothing changed |
|                |            |             |


text:
# Sequel::Instrumentation

This gem provides OpenTracing instrumentation for [Sequel](https://github.com/jeremyevans/sequel) using `Dataset` and `Database` extensions.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'signalfx-sequel-instrumentation'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install signalfx-sequel-instrumentation

## Usage

```ruby
require 'sequel/instrumentation'

Sequel::Instrumentation.instrument(tracer: OpenTracing.global_tracer)
```

Optional argument:
- `tracer`: used to set a custom tracer. Default: `OpenTracing.global_tracer`

## Tags

Each span generated by the instrumentation will have the following tags:
- `component`: `ruby-sequel`
- `span.kind`: `client`
- `db.type`: the database driver type. For example, `mysql2`
- `db.statement`: the SQL statement being executed

When possible, the `db.instance` tag will also be populated with the database name.

## Development

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

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

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/signalfx/ruby-sequel-instrumentation.

repository: signalfx/ruby-sequel-instrumentation

gha_language: Ruby

repo_name: signalfx/ruby-sequel-instrumentation


text:
ngrok-server
============

Building the binaries
---------------------

    docker run -it -v /tmp/bin:/ngrok/bin \
        -e CA_CERT="`awk 1 ORS='\\n' <CA_CERT_FILE>`" \
        tutum/ngrok

Server and client binaries will be available in `/tmp/bin` on the host.

If you want to get other platform version, you can run /bin/bash command and switch to /ngrok directory and launch following commands.

    GOOS=windows GOARCH=amd64 make release-client
    GOOS=darwin GOARCH=amd64 make release-client
    GOOS=linux GOARCH=arm make release-client

Running the server
------------------

    docker run -d --net host \
        -e TLS_CERT="`awk 1 ORS='\\n' <TLS_CERT_FILE>`" \
        -e TLS_KEY="`awk 1 ORS='\\n' <TLS_KEY_FILE>`" \
        -e CA_CERT="`awk 1 ORS='\\n' <CA_CERT_FILE>`" \
        -e DOMAIN="your.domain" \
        -v /tmp/bin:/ngrok/bin \
        tutum/ngrok

If you want run it behind a nginx based proxy, you can add some port options.

    docker run -d -p 8080:80 -p 4443:4443 \
        -e TLS_CERT="`awk 1 ORS='\\n' <TLS_CERT_FILE>`" \
        -e TLS_KEY="`awk 1 ORS='\\n' <TLS_KEY_FILE>`" \
        -e CA_CERT="`awk 1 ORS='\\n' <CA_CERT_FILE>`" \
        -e DOMAIN="your.domain" \
        -v /tmp/bin:/ngrok/bin \
        tutum/ngrok

Environment Variables
---------------------

    TLS_CERT        TLS cert file for setting up tls connection
    TLS_KEY         TLS key file for setting up tls connection
    CA_CERT         CA cert file for compiling ngrok
    DOMAIN          domain name that ngrok running on
    TUNNEL_ADDR     address that ngrok server's control channel listens to, ":4443" by default
    HTTP_ADDR       address that ngrok server's http tunnel listents to, ":80 by default"
    HTTPS_ADDR      address that ngrok server's https tunnel listents to, ":80 by default"

Client configuration
--------------------

    cat >~/ngrok.cfg <<EOL
    server_addr: "your.domain:4443"
    trust_host_root_certs: false
    EOL

Running Client
--------------

    ./ngrok -config ngrok.cfg -subdomain your_subdomain port_number


text:
---
title: "GiveCamp Memphis 2017"
tags:
    - memtech
    - memphis
    - events
    - givecamp
categories:
    - news
    - events
author:
    - Mike Cochran
---

GiveCamp Memphis 2017

GiveCamp Memphis 2017 is coming soon. If you haven’t heard, it’s the weekend of Feb 17th. GiveCamp is an awesome weekend event where local devs, designers, marketers, social media gurus, and other professionals band together to help provide non-profits with solutions ranging from websites to mobile apps to Excel spreadsheets. The weekend long event is a fantastic way to give back to the community and gain valuable experience. Here are just a few posts from past volunteers and charities about the great work that comes out of GiveCamp Memphis:

George Spake - Volunteer: GiveCamp Memphis Demonstrates How Vibrant Memphis’ Tech Community Is

TN Data Commons - Charity: GiveCamp – Memphis tech at its best

Ed Leafe, Rackspace - Volunteer: GiveCamp Memphis 2014

Overton Park Conservancy - Charity: GiveCamp Memphis

If you want to volunteer, signup on Meetup here: GiveCamp Memphis 2017

GiveCamp needs volunteers with any and all skills from developers to marketers, at any level of expertise. Everyone is welcome, from the Senior level to the novice, and beyond. Even if your skills aren't in development, there's a good chance that one of the teams needs your help (we're looking at you, SEO specialists and project managers).

Show up Friday night, find a project that sounds interesting, and spend the weekend doing a good thing for a good cause!
If you want to learn more, visit givecampmemphis.org


text:
# redux-immutable-merge-reducers

Return the flattened output of the redux-immutable combineReducers function.

## Description

Use `redux-immutable-merge-reducers` when you want to combine reducers into one flattened state object.

Import `mergeReducers` as so:

```javascript
import mergeReducers from "redux-immutable-merge-reducers";
```

Then pass any number of reducers you'd like to `mergeReducers` like so:

```javascript
mergeReducers(reducerA, reducerB);
```

Your store should then contain a flattened object with the state of both reducers, similar to the result you would get from using the `spread operator` to combine objects in es6:

```
{ ...stateA, ...stateB };
```

## Example

Given the following reducers:

```javascript
import { fromJS } from "immutable";
import { DEFAULT_ACTION } from "./constants";

export const reducerAInitialState = fromJS({
  someStateObject: {
    aNestedStateObject: {
      aDeeplyNestedList: []
    }
  }
});

function reducerA(state = reducerAInitialState, action) {
  switch (action.type) {
    case DEFAULT_ACTION:
      return state;
    default:
      return state;
  }
}

export default reducerA;
```

```javascript
import { fromJS } from "immutable";
import { DEFAULT_ACTION } from "./constants";

export const reducerBInitialState = fromJS({
  someOtherStateObject: {
    anotherNestedStateObject: {
      anotherDeeplyNestedList: []
    }
  },
  moreStateThisTimeAString: "An example string."
});

function reducerB(state = reducerBInitialState, action) {
  switch (action.type) {
    case DEFAULT_ACTION:
      return state;
    default:
      return state;
  }
}

export default reducerB;
```

And the following reducer:

```javascript
myReducer: mergerReducers(reducerA, reducerB);
```

Your store would contain the following state tree:

```
myReducer: {
  someStateObject: {
    aNestedStateObject: {
      aDeeplyNestedList: []
    }
  },
  someOtherStateObject: {
    anotherNestedStateObject: {
      anotherDeeplyNestedList: []
    }
  },
  moreStateThisTimeAString: "An example string."
};
```

## Installation

`npm i --save redux-immutable-merge-reducers`

`yarn add redux-immutable-merge-reducers`

## License

MIT

repository: typekev/redux-immutable-merge-reducers

repo_name: typekev/redux-immutable-merge-reducers


text:
# SP20 CS242 Project
Programming Studio Final Project: Ray-tracer

## Features
### Geometries
* OBJ or PLY format support
* Ray-object intersection support for:
    * Planes
    * Spheres
    * Triangles
* Movable camera supporting:
    * Orthographic projection
    * Perspective projection

### Lighting
* Support for point lights
* Support for area lights

### Shading
* Support for shadows
* Support for diffuse and specular reflection (Phong model)

### Misc.
* Rendering a mirror-like object
* Rendering a transparent object
* Calculation Optimizations
* Multi-jittered sampling

# Dependencies
* https://code.google.com/archive/p/bitmap/

# Dev Dependencies

repository: noahssarcastic/raytracer

repo_name: noahssarcastic/raytracer


text:
# Systems

Systems types are defined in the library [MathematicalSystems.jl](https://github.com/JuliaReach/MathematicalSystems.jl). Apart from purely discrete or continuous, hybrid automata
(i.e. those mixing discrete-continuous dynamics) are defined in
[HybridSystems.jl](https://github.com/blegat/HybridSystems.jl).

```@contents
Pages = ["systems.md"]
Depth = 3
```

## Types and macros

The API reference for systms types and macros can be found in the
[MathematicalSystems.jl](https://juliareach.github.io/MathematicalSystems.jl/latest/man/systems/)
documentation. Two commonly used macros are `@system` and `@ivp`, used to
define a system and an initial-value problem respectively.

## Normalization

```@docs
normalize(::AbstractSystem)
normalize(::InitialValueProblem)
```

## Homogeneization

```@docs
homogeneize
```


text:
# Sticky sessions with proxy

Simple and customizable way to use multicore features with [socket.io](http://socket.io/) and [express](https://github.com/strongloop/express).

## How it works

Launches multiple worker processes through [cluster](http://nodejs.org/docs/latest/api/cluster.html), using bunch of ports.
One worker process becomes also 'http-proxy', serving as sticky session balancer.

Establishes sticky round-robin balancer for any kind of http frameworks. Not only, but including socket.io and express.
Client will always connect to same worker process sticked with customizable hash function.
For example, socket.io multi-stage authorization will work as expected.

## Installation

```bash
npm install sticky-socket-cluster
```

## Basic Usage

```javascript
require('sticky-socket-cluster')(start);

function start(port) {
	require('http').createServer(function(req, res) {
	  		res.end('worker: ' + port);
		}).listen(port, function() {
	  	console.log('server started on ' + port + ' port');
	});
}
```

## Customized Usage

(Complete demo in [test](test) folder)

```javascript
require('sticky-socket-cluster/replace-console')();
	// prefixes console output with worker ids.

var options = {
	workers: 2, // total workers (default: cpu cores count).
	first_port: 8000, // 8000, 8001 are worker's ports (default: 8000).
	proxy_port: 5000, // default (5000).
	session_hash: function (req, res) { return req.connection.remoteAddress; },
		// can use cookie-based session ids and etc. (default: int31 hash).

	no_sockets: false // allow socket.io proxy (default: false).
};

require('sticky-socket-cluster')(options, start);

function start(port) {
	var express = require('express');
	var http = require('http');
	var app = express();
	var server = http.Server(app);
	var io = require('socket.io')(server);

	io.on('connection', function(socket)
	{
		console.log("socket.io connection handler...");
		//...
	});

	server.listen(port, function() {
		console.log('Express and socket.io listening on port ' + port);
	});
}
```

#### LICENSE

This software is licensed under the MIT License.

Copyright Vladimir E. Koltunov and contributors, 2014-2015.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the
following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

 IN
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.

repository: PROGrand/sticky-socket-cluster

repo_name: PROGrand/sticky-socket-cluster


text:
# REPLPAPER

Duplicate a MicroPython REPL on an e-Paper module

MicroPython's [uos.dupterm()](http://docs.micropython.org/en/latest/unix/library/uos.html#uos.dupterm) allows you to duplicate or switch the REPL/terminal on a stream-like object.

So I implemented a stream-like object that can parse and interpret the subset of VT100 escape sequences used by MicroPython's readline, debounces input to try and batch updates, keeps track of lines and cursor position, wraps the lines, tracks which parts of the screen are dirty and efficiently updates the screen through (fast) partial updates when only part of the screen changed and (slow) full updates only when the entire screen changes.

This means you can connect to MicroPython running on a microcontroller over serial interface and the output will show up on a terminal screen in addition to your serial terminal.

This is admittedly not terribly useful yet because you still have to connect over serial to input text. The next step is to add keyboard support (probably PS/2 at first, dedicated DIY one later) and then you can have a self-contained Python REPL.

What's the point of all of that?

1) For fun.

2) You could have a modern take on 1980s style "boot to BASIC" computers, except it would be handheld. Kinda like a graphing calculator or those early 1990s PDAs. But it is also a microcontroller devkit for doing "arduino" stuff straight on it, no PC required.

3) Leave one of these in a project. By default the screen would show the normal dashboard with whatever stats and things make sense (temperature, speed, battery state of charge, relative humidity..), but then you press some key combo on the built-in PCB keyboard and drop into a debug or developer console where you can poke at whatever modules are in memory. Type `exit()` and it goes back to the dashboard as usual.

## Installation instructions

I have only tested this on an esp32-wroom module connected to a 2.9" e-Paper module from waveshare. Make sure you get the 2 colour one because it can do partial screen updates at 0.3 seconds. The 3 colour ones are very slow and can only do full updates. The larger screens unfortunately don't come in variations that have the common SPI interface and that can do fast partial updates. Except for the largest, most expensive one.

Follow the instructions on the [esp32](https://github.com/micropython/micropython/tree/master/ports/esp32) port for getting MicroPython onto the board.

Use Adafruit's excellent [ampy](https://github.com/adafruit/ampy) to upload additional modules from this repo and elsewhere to the board's internal file system.

You need epaper2in9.py (I only made very minor changes to [mcauser](https://github.com/mcauser/micropython-waveshare-epaper)'s file), textbuffer.py and screen.py. epaper2in9 is the e-ink screen driver, textbuffer manages lines of text wrapped to rows and cols for a screen with fixed with font and screen implements the stream for dupstream.

In addition to that you will need [bitfont.py](https://github.com/ShrimpingIt/bitfont/blob/master/python/bitfont.py) and [font_5x8](https://github.com/ShrimpingIt/bitfont/blob/master/python/faces/font_5x8.py) from the excellent [bitfont](https://github.com/ShrimpingIt/bitfont) library.

## Usage

Connect to the micropython board over serial as usual. I use `$ picocom -b 115200 /dev/cu.SLAB_USBtoUART`.

Then to install the screen stream, run `from screen import screen`. This will setup the screen driver, clear it and run uos.dupterm to install it. All terminal output will now appear duplicated on the e-ink screen.

To clear the screen, call `screen.clear()`.

To uninstall it you can call `screen.uninstall()`. Alternatively just reboot the esp32.

You will need to uninstall the screen or reboot if you want to use ampy to upload more modules because it uses the same serial connection to upload files and things get.. weird.

## Testing

I use [pytest](https://pytest.org/) for running the unit tests in textbuffer.py and [coverage](https://coverage.readthedocs.io/) for coverage. Via the command `coverage run --omit "*site-packages*" $(which pytest)` and then `coverage report -m` to see the report.

For discovering what MicroPython's readline is doing I wrote unix_monitor.py. It intended for use with the unix port. But you have to change the compile-time configuration of that to support uos.dupterm() because there are no slots by default. Useful to keep around in case this ever has to support more escape sequences and what not.

repository: lerouxb/replpaper

repo_name: lerouxb/replpaper


text:
# Unicode Nushu

Unicode Nushu is the database for Nushu included in the Unicode Standard.

If you are looking for the Nushu Dictionary website, see [here.

<big>**请点击此处进入女书字典网站**</big>](https://nushuscript.org/)

## Usage

### Correspondences

The correspondences are listed in `data.csv`, including

* (a) the Nushu character itself
* (b) its sequence number in the book 《女书规范字书法字帖》
* (c) the Chinese characters it could correspond to
* (d) representative pronunciation in the dialect

This file could be accessed by `https://nushuscript.org/unicode_nushu/data.csv`, or by [viewing it on GitHub](https://github.com/nushu-script/unicode_nushu/blob/master/data.csv).

## Contribution

Everybody is welcomed!

## License

Code for building the data is distributed under MIT license.

Copyright © 2018-2019 The Nushu Coder's Group on GitHub


text:
---
title: "Animation: From archival to digital turn"
type: clip
lang: en
parent: archival-digital-turn
iframe: archival-to-digital-turn

---

{: .headsup}

An animation on how the digital turn has affected the practice of applying source criticism to historical content. Historians need to understand how digitisation and web archives work in order to be able to take a critical approach to the sources they use.

<!-- more -->