text:
---
layout: default
---

# 1996-12-06 - Copyright violations

## Header Data

From<EMAIL_ADDRESS>(Ronald Raygun Remailer)

To<EMAIL_ADDRESS>Message Hash:<PHONE_NUMBER>b54219eb91123c1ed9f74838d348a88a439f338d8e43063c884042

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-12-06 23:14:10 UTC

Raw Date: Fri, 6 Dec 1996 15:14:10 -0800 (PST)

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(Ronald Raygun Remailer)
Date: Fri, 6 Dec 1996 15:14:10 -0800 (PST)
To<EMAIL_ADDRESS>Subject: Copyright violations
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

New York Times: Thursday, December 5, 1996

Stock Hyped On Internet Resumes Trading

By LESLIE EATON

Peter Usinger was incensed. The Rochester business consultant was using
the

Internet, as he often does, to check up on a little company he had bought
stock in called Omnigene Diagnostics Inc.

But when Usinger reached the company's site on the World Wide Web, he
did not find the usual information about its patented test to diagnose
gum
disease. Instead, he read that the company was in default on the license
agreement that lets it use the patent -- the company's main asset.

 Usinger correctly suspected the site manager
was
embroiled in a dispute with the company. ``If you are not able to
substantiate
your claims and we have to take a financial loss,'' Usinger wrote, ``we
will
notify our lawyers.''

The manager, Robert Gibson, shot back his own e-mail, with enough details
to convince Usinger. And that was the beginning of the end of a
high-technology hype that had turned Omnigene Diagnostics stock from a
dud into a high flyer almost overnight. Within two weeks, the Securities
and
Exchange Commission halted trading in the stock and announced its action
on America Online, the agency's first such use of an electronic bulletin
board.

With the expiration Wednesday night of the trading suspension, the
cyberspace drama resumes Thursday. If the stock follows the usual
pattern, it
could well fall back to earth with a thud.

The Omnigene Diagnostics story shows the effects Internet technology is
having, for good and bad, on investors and investing. Reams of
information
are available -- but truthfulness and accuracy can be almost impossible
to
judge. Amateur investors find their way to obscure securities and mingle
online with both stock promoters trying to drive prices up and
short-sellers
trying to drive prices down.

But the tale also illustrates the changes occurring in the still young
world of
Internet investing. Securities regulators are becoming more aggressive
about
online stock fraud; at the same time, individual investors like Usinger
are
becoming warier and starting to use the power of the Internet to protect
themselves.

``A lot has changed -- dramatically -- in the last six months,'' said
John
Stark,
a lawyer for the SEC who specializes in Internet fraud. ``There was a
real
culture of trust and benevolence; now people are becoming more
skeptical.''

And not a moment too soon. Online investing is growing by leaps and
bounds; with that growth has come a corresponding rise in scams,
including
manipulation of small stocks with few shares outstanding. ``It's a growth
industry,'' said William McLucas, the director of enforcement for the
SEC.

Regulators are investigating several suspected ``pump and dumps,'' in
which
the Internet is used to stir up investor enthusiasm and inflate prices.
The
perpetrators, who usually own shares they acquired for little or no
money,
sell them into the rising market. When the scam falls apart, legitimate
investors are left holding the worthless shares.

To be sure, such schemes have flourished for decades without the
Internet.
And the Omnigene Diagnostics story includes some traditional elements of
stock hype, including the use of a radio talk-show host, who was paid
with
stock to promote the company.

But the Internet was integral to the rise and fall of Omnigene
Diagnostics,
which is based in West Palm Beach, Fla. The stock was touted on
electronic
bulletin boards; clues about the company's problems first appeared on its
site
on the World Wide Web; the details were fleshed out using e-mail, which
was also employed to alert regulators, and the company's management took
to the Net to defend itself before the SEC stepped in online.

When Omnigene Diagnostics first showed up on Internet bulletin boards in

early October, virtually identical messages praising the company appeared
on
different boards, signed with different names. These messages said the
company had no competition, had already racked up sales of $400,000,
would have revenues of more than $2 million next year and had only
450,000
tradeable shares. Urging readers to call the company's 800 number for
more
information, the messages concluded, ``This could be your stock buy of
the
year ... Take a look NOW.''

By then, the share price of Omnigene Diagnostics, known as ``Oh My God''
because of its ticker symbol of OMGD, had already jumped from $1, where
it traded over the counter -- very occasionally -- in July, to about $4.
But as
the Internet messages flew, so did the price, topping $6.50 by
mid-November.

Even early on there were voices of caution. ``Oh no, not another FL
company,'' wrote someone on America Online's Investor Network. ``I have
heard that a lot of scams originate out of Florida.'' Other writers noted
that
the company did not seem to have filed documents with the SEC, and was
not traded on an exchange.

But naysayers were quickly shouted down by writers who accused them of
trying to profit from a drop in the stock price. The boosters hinted of a
deal
with Procter & Gamble, and cheered each day's rising price with lines
like,
``I'm going to ride this train to the gold mine. Toooot!! TOOOOT!!''

Meanwhile, the Internet was helping to bring together two men with a
rather
different view of Omnigene Diagnostics: Robert Gibson, a computer
programmer in Florida, and Peter Mahler, president of the company's
former
parent, Omnigene Inc. of Cambridge, Mass.

With sales at its diagnostics unit declining, Omnigene Inc. sold the unit
in May
1995 to the American Biodental Corporation, of Boca Raton, Fla., which
makes dental implants. Though its testing operations continued in
Cambridge,
Omnigene Diagnostics was to be run from Florida.

But almost from the beginning, things went wrong, Mahler said. Omnigene
Diagnostics quickly fell behind on its rent and royalty payments to its
former
parent. Most of its staff quit, and Mahler's company went to court to
evict its
one-time subsidiary. Though the company dropped the suit after receiving
a
payment, Omnigene Diagnostics still owes it money, Mahler said.

But the final straw for Mahler may have been Omnigene Diagnostics' Web
site, which had the address www.omnigene.com.

The site was operated by Gibson, the computer programmer, whose main
business includes running Web sites for legal process servers. Last year,
at an
Office Depot store in West Palm Beach, Gibson bumped into an old
acquaintance, Dominic Scacci, and eventually agreed to do some
programming for businesses Scacci was involved with, which included
Omnigene Diagnostics. In fact, Gibson said, he ended up sharing an office
with Scacci, who used his phones, computers and copier.

But like Mahler, to whom he had spoken about Omnigene Diagnostics'
computer system, Gibson said he was having trouble getting paid. The
company did not seem to be doing nearly as much business as Scacci said.
And earlier this fall, Gibson began to have suspicions about what Scacci
was
up to.

``The company was always short of money, and suddenly Dominic drives up
in a new car,'' Gibson recalled. He also found a list, left in his
computer by
Scacci, that indicated the company had been issuing hundreds of thousands
of free shares to Scacci's other companies, his friends and family,
Gibson

said. ``It started to smell,'' he said, so he called the SEC.

Shares also went to Jerome Wenger, host of ``The Next Superstock,'' a
program that is heard on radio stations around the country, including
WEVD
in New York. In an interview, Wenger said that he received the stock for
serving as a consultant to bring the company to investors' attention, and
that
he discloses such arrangements to his listeners.

On Oct. 31, Mahler sent an e-mail to Gibson complaining that the Web
site's
address infringed on his trademark and saying that unless the site was
removed immediately, ``legal action will result.''

Instead, on Nov. 3, Gibson changed the first page of the site to the
message
that so irked Usinger, the Rochester investor. (Gibson also took his
equipment out of the office he had shared with Scacci.)

Which brings the story back to the angry e-mail sent by Usinger, who had
bought several hundred shares of Omnigene Diagnostics in October.

After Gibson replied to his message, Usinger said, ``all the little
tricks you
see in shells and scams started surfacing like little bubbles.'' So he
decided to
send some information to the SEC's online complaint division. He also
decided to sell his stock, at a nice profit.

As Usinger and a few other investors began posting their information on
the
bulletin boards, a free-for-all broke out in cyberspace. Some people
scolded
Usinger for trying to make people panic and sell their shares, and bulls
and
bears got into online shouting matches.

Messages signed by Scacci appeared, saying that Gibson owed him money
and had encoded the company's computer data. ``He demanded $10,000 to
give us the key,'' read one such message posted on Nov. 7 on a bulletin
board on the Silicon Investor Web site. ``I refused. This is when he
decided
to proceed to send falsehoods out over the Internet.''

As for the default on the patent license, a message on America Online
signed
Scacci6733 said that Omnigene Diagnostics ``owns the patent purchased
from Omnigene Inc. It's as simple as that.''

But there were a number of things Scacci did not tell people in his
messages.
A former stockbroker with a history of regulatory run-ins, Scacci has
filed for
personal bankruptcy protection twice, according to regulatory records.

Scacci was the agent for something called the Austria International Fund,
which was based in the Bahamas, according to documents filed with the SEC
by American Biodental. These filings say that it was really the fund, not
American Biodental, that spent $189,000 to buy Omnigene Diagnostics.

Omnigene Diagnostics was spun off in January, shortly before American
Biodental filed for bankruptcy protection. But American Biodental's
shareholders never received any OMGD shares, said Ingo Kozak, a director
of American Biodental, which has changed its name to Biolok International
Inc.

Scacci said in a brief interview last week that, on the advice of his
lawyers,
he could not answer questions about the Omnigene situation. But he said
his
previous regulatory difficulties were basically problems with
record-keeping.
And he denied being the agent for the Austria International Fund.

On Nov. 20, the SEC said it was suspending trading in Omnigene
Diagnostics' shares for 10 business days, the maximum allowed. The
reason:
questions about the company's ``alleged ownership and other rights as to
certain patents and trademarks, ODI's sales, past and projected, ODI's
operations and facilities, and the number of freely traded shares.''

The SEC posted a notice of the halt on America Online's bulletin board
because ``it looks like one of the vehicles people were using to
disseminate a
substantial amount of hype'' about the company, said McLucas, the
enforcement chief, adding that he expects the agency to make similar
electronic announcements in the future.

Whether the SEC will go after anyone it believes has hyped the stock
electronically is unknown; the commission never comments on current
investigations.

The company's fate will become clearer Thursday, when trading can resume
-- which will occur only if brokerage firms are confident they have
enough
information to make bids on the stock. In the past, stocks in which
trading
has been suspended have tended to plunge when it resumes.

Gibson is still unhappy about his run-in with Omnigene Diagnostics and
the
investors who excoriated him online. But, he said, ``the good news is
that this
stuff can come to the surface quicker because of the open lines of
communication'' that the Internet allows.

As for Usinger, he said that his Omnigene experiences have made him a
more
cautious investor. And that despite the abuse he received from some
online
critics, he does not regret having shared his discoveries about the
company
with his fellow Internet investors, some of whom also got their money out
before trading was halted.

``I thought everyone should know this,'' he said. ``It's the difference
between
having something more before Christmas and having nothing.''

New York Times: Thursday, December 5, 1996

Mastercard's "Smart Card" Builds Support

By SAUL HANSELL

Seven financial giants, including Wells Fargo, Chase Manhattan and Dean
Witter, Discover, have agreed to market the Mondex electronic-cash
product in the United States.

The Mondex ``smart card,'' which was developed in Britain, is a plastic
card
containing a computer chip that can be used to make purchases in vending
machines, via pay telephones and over the Internet. Customers can
transfer
money onto and off the card at an automated teller machine or by using a
specially equipped telephone.

The backing ensures that Mondex will be one of the leading systems in the
country as the market for smart cards evolves.

Last month Mastercard International bought 51 percent of the
international
arm of Mondex, which will sell franchises in various regions.

The seven companies plan to announce Thursday that they will form a
company to offer Mondex in the United States. Wells Fargo & Co. will own
30 percent of Mondex USA, Chase will own 20 percent, and 10 percent
stakes will each be owned by Dean Witter, AT&T, First Chicago NBD,
Michigan National Bank and Mastercard.

This group will license the right to issue Mondex cards to other
financial
companies.

The card will get its major introduction in the United States in New York
City as part of a test by Chase and the Citibank unit of Citicorp. That
test,
which will involve 50,000 consumers and 500 merchants, was to have
introduced another smart-card system, Mastercard Cash.

But when Mastercard bought Mondex, it abandoned that system, and Chase
will have to modify its systems to use Mondex.

``We were moving along at a real good pace and expected to deliver
Mastercard Cash, as promised, in the first quarter,'' said Ronald Braco,
senior vice president of Chase. ``But we felt it would be foolish to go
forward. Chase is not in the business of having our customers test
technology
that has no future.''

In the New York test, Citibank will use the Visa Cash smart-card system
by
Visa International. A primary goal of the test is to develop terminals
for
merchants to use that will be able to accept both the Visa and the Mondex
cards.

Unlike Visa Cash and other smart-card programs, Mondex allows people to
transfer money between their cards, allowing a parent to put money on a
child's card, for example. The transfers use a $100 calculating device
called
an electronic wallet.

The owners of Mondex will conduct several tests in the next year. Plans
call
for introducing the product more widely in 1998.

Initial tests of smart cards -- such as the high-profile introduction
Visa Cash
had at the Atlanta Olympics -- have shown that the technology is
effective
but that consumer demand is tepid.

``The technology works well, but the consumer proposition has not been a
grand-slam home run,'' said Janet Crane, president of Mondex USA. ``Cash
works fine, and getting people to replace something they are quite happy
with
is very hard.'' Ms. Crane said that additional smart-card applications,
such as
shopping on the Internet, and frequent-buyer rewards at fast-food
restaurants
would help spur Mondex's acceptance.

Still, it is unclear who will be willing to bear the costs of introducing
expensive new technology. Merchants have to buy new terminals that now
cost about
$500.

The cards themselves cost $10 each wholesale. And Mondex USA will
charge banks that issue the cards 25 cents each time money is transferred
to
Mondex cards. The banks, in turn, are expected to pass this fee and their
own costs to customers.

The inclusion of Dean Witter puts that company in the unusual role of
cooperating with Mastercard, which has stringent rules against linking
its
brand with rival credit-card marketers like Discover.

Shawn Healy, a Mastercard spokesman, said that unlike credit cards,
Mondex was meant to be an ``open system.''

Dean Witter's main interest is in offering merchants the ability to
accept
Mondex cards. The company has not decided yet whether to add a chip that
can store Mondex cash on its Discover cards or to offer Mondex as a
separate product.

American Banker: Thursday, December 5, 1996

Wells, Chase Take Lead Stakes As Seven Invest in Mondex
USA

By JEFFREY KUTLER

Wells Fargo & Co. and Chase Manhattan Corp. head a group of seven U.S.
companies making equity investments in the Mondex smart card system.

Wells and Chase -- through subsidiaries Wells Fargo Bank and Texas
Commerce Bank -- have acquired 30% and 20%, respectively, of Mondex
USA, the global payment organization's U.S. franchise.

They will be joined by five 10% owners in a formal announcement today of
the launching of Mondex USA. It will be based in San Francisco, with
Wells
Fargo executive Janet Hartung Crane as president and chief executive
officer.

"We have an impressive group of well-capitalized players who are making
very significant, long-term commitments," Ms. Crane said in an interview
Wednesday.

She said her unit would begin in earnest to staff up in January -- it has
heretofore relied on about 15 Wells people led by Ms. Crane and executive
vice president Dudley Nigg - to "propel Mondex in the United States."

Along with Wells and Texas Commerce, two other national banks --
subsidiaries of First Chicago NBD Corp. and Michigan National Corp. --
got approval this week from the Office of the Comptroller of the Currency
to
participate in Mondex USA.

Also owning 10% each will be three nonbanks that did not require OCC
clearance: Dean Witter, Discover & Co.; AT&T Corp.'s Universal Card
Services unit; and MasterCard International Inc.

Only Wells and AT&T were previously listed as Mondex owners. They and
Natwest Group, the London banking company that developed Mondex,
were the first equity participants in Mondex USA and were among the 17
"global founders" of the Mondex International umbrella organization
incorporated in July.

Wells and AT&T "sold down" their interests to accommodate the five
additional partners, Ms. Crane said. And Natwest Group completely sold
what was designed to be a temporary, minority stake.

Meanwhile, Mondex International is in a state of flux, awaiting
MasterCard's
purchase of a 51% interest, leaving the U.S. company, Mondex UK, and
other regional entities with pieces of the remaining 49%.

The U.S. owners did not disclose the value of their equity stakes. It has
been
publicly acknowledged only that the original capitalization of Mondex USA
was 30 million British pounds, or about $50 million.

That is likely to be a fraction of the marketing and development
expenditures
required to realize Mondex's vision of "global electronic cash."

"This is something that is definitely not going to be a smashing success
in one
year," Ms. Crane said.

But given Mondex's blue-chip backing and the owners' desire to sign
others
as card issuers, merchant-acquirers, and licensees, Ms. Crane said she
has
every reason to be confident.

As evidence that momentum is already building, she cited growing trials
in
Britain and Canada, the rapid sign-up of 12,000 cardholders for a test in
Hong Kong, and commitments from technology vendors like Verifone Inc. to
create the necessary infrastructure.

Infrastructure-building and pilot testing are the Mondex USA priorities
for
1997, the CEO said. Wells has 800 employees using the chip cards at 22
merchants; AT&T just launched a 200-employee test in Jacksonville, Fla.,
and is planning to handle "virtual" transactions via the Internet and
intranets.

 The last will demonstrate Mondex's ability to operate in both the
physical and
virtual worlds, which Ms. Crane said gives Mondex a unique advantage.

An eagerly awaited New York City trial -- the first attempt by MasterCard
and Visa to prove their competing technologies can "interoperate" -- has
been put off from the first to the fourth quarter next year, in part to
let
MasterCard implement the Mondex system.

Each of the Mondex USA owners has a seat on the board of directors, with
Mr. Nigg of Wells as chairman. Ms. Crane, who joined Wells a year ago
from MasterCard, is also a director as well as Mondex International vice
chairman.

The others are Walter Korchin, senior vice president and general counsel
of
AT&T Universal Card Services; Ronald Braco, senior vice president at
Chase; William Simmons, executive vice president of Novus, the Dean
Witter merchant services unit; Bruce Nyberg, senior vice president, First
Chicago NBD; Alan Heuer, MasterCard's U.S. region president; and
Michael King, senior vice president of alternative delivery at Michigan
National.

Michigan National's parent, National Australia Bank, is a Mondex global
founder.

Mondex USA actually consists of two Delaware-incorporated entities: a
services company headed by Ms. Hartung and a lower-profile originating
company charged with monetary operations and risk management issues.
Wells Fargo vice president Jim Rudd is president of the latter.

{% endraw %}
```

## Thread

+ Return to [December 1996](/archive/1996/12)

+ Return to<EMAIL_ADDRESS>(Ronald Raygun Remailer)](/authors/alzheimer_at_juno_com_ronald_raygun_remailer_)"

+ 1996-12-06 (Fri, 6 Dec 1996 15:14:10 -0800 (PST)) - Copyright violations -<EMAIL_ADDRESS>(Ronald Raygun Remailer)_


text:
> This plugin has not been fully tested. Proceed with caution.

Use this plugin to `git push` to a repository at the end of a successful build. Use the following parameters to configure this plugin:

* `remote` - push to this remote repository
* `branch` - push to this remote branch
* `force` - force push using the `--force` flag

Example configuration in the `.drone.yml` file:

```yaml
deploy:
  git_push:
    branch: master
    remote: git@git.heroku.com:falling-wind-1624.git
    force: false
```

repository: daxroc/drone-git-push

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: daxroc/drone-git-push


text:
# Istio manifest for Kubeflow

The manifest is taken from OSS Istio pre-release
[1.1-20190111-09-15](https://gcsweb.istio.io/gcs/istio-prerelease/daily-build/release-1.1-20190111-09-15/).

We need custom configuration as discussed in the
[issue](https://github.com/kubeflow/kubeflow/issues/1909#issuecomment-438409215).

Specifically, the things we changed are:

1. The policy of configmap `istio-sidecar-injector` is changed from `enabled` to `disabled`.
   According to this [table](https://github.com/istio/istio/issues/6476#issuecomment-399219937),
   `policy=disabled` and `namespace label=enabled` is what we want.
1. The service type of `istio-ingressgateway` is changed from `LoadBalancer` to `NodePort`.
1. Add annotation to service `istio-ingressgateway`: `beta.cloud.google.com/backend-config: XXX`.
   This is to [enable IAP](https://cloud.google.com/iap/docs/enabling-kubernetes-howto#kubernetes-configure).

*TODO*: To allow egress, we need to know cluster specific IP ranges. Also, Istio's recommended way is to use
serviceEntry. We will figure out this part later.

repository: jlewi/kubeflow-dev

gha_language: Jsonnet

repo_name: jlewi/kubeflow-dev


text:
# Climb-Bot
Climb-Bot is a Reddit bot that provides information on routes mentioned in posts on climbing-related subreddits.

Climb-Bot uses Google's search engine API as a NLP engine and for extracting route metadata.
To run the bot, you may register an API key at https://cse.google.com

Route metadata is extracted from theCrag.com; Reddit API accessed through PRAW (Python Reddit API Wrapper)

Currently in the process of implementing the fastText NLP model to assist in classification of route names:

Created a file containing all posts ever made (about 50,000 posts) to r/climbing and r/bouldering: posts.txt.
Labeled them (__label__1 for routes, __label__2 for nonroutes) as according to my current identification process.
Need to find method to relabel the posts to increase accuracy and include posts that lack a grade.

license: MIT


text:
# Data Fabric Ontologies

https://www.ontotext.com/

https://www.datafleets.com

https://www.stardog.com/

https://www.cambridgesemantics.com/anzo-platform/

https://www.semanticarts.com/gist/

https://www.cambridgesemantics.com/blog/semantic-university/intro-semantic-web/intro-linked-data/

http://sansa-stack.net/
https://github.com/EIS-Bonn/Squerall

Anzo
Allegro
Cinchy
Ontotext

Denodo - Data Virtualisation
https://www.denodo.com/en/data-virtualization/why-denodo

MarkHub - DataHub
https://www.marklogic.com

## Ontology Editors

https://basic-formal-ontology.org/

https://protege.stanford.edu/

https://www.cognitum.eu/semantics/FluentEditor/

https://www.ontolis.com/en/index.html

https://www.topquadrant.com/products/topbraid-composer/

Data-Centric Enterprise

The Rise of the knowledge graph

The Knowledge Graph Cookbook Kindle Edition by Andreas Blumauer and Helmut Nagy
The AI-Powered Enterprise: Harness the Power of Ontologies to Make Your Business Smarter, Faster, and More Profitable by Seth Earley (Author)
Knowledge Graphs: Fundamentals, Techniques, and Applications (Adaptive Computation and Machine Learning series)

there's no AI without IA (information architecture).
And the IA is what knowledge graphs get you

https://www.dataversity.net/knowledge-graphs-a-single-source-of-truth-for-the-enterprise/
https://www.ontotext.com/knowledgehub/fundamentals/what-is-a-knowledge-graph/
https://www.ontotext.com/blog/digital-twins-sounds-like-cyberpunk/

gha_license_id: MIT


text:
---
layout: leaf-node
title: "A multi-national, multi-institutional study of assessment of programming skills of first-year CS students"
title-url: ["https://pdfs.semanticscholar.org/cbad/dfc496cebf6dc683ed8aad2306a359aa58ce.pdf", "http://citeseerx.ist.psu.edu/viewdoc/download?doi=<IP_ADDRESS>.3706&rep=rep1&type=pdf"]
author: ["Michael McCracken", "Vicki Almstrum", "Danny Diaz", "Mark Guzdial", "Dianne Hagan",
"Yifat Ben-David Kolikant", "Cary Laxar", "Lynda Thomas", "Ian Utting", "Tadeusz Wilusz"]
groups: broader-issues
categories: computer-science-education
topics: scholarly-readings
summary: >
    ABSTRACT:  In computer science, an expected outcome of a student's education is programming
    skill. This working group investigated the programming competency students have as they
    complete their first one or two courses in computer science. In order to explore options for
    assessing students, the working group developed a trial assessment of whether students can program.
cite: |
    McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B. D., ... & Wilusz, T. (2001). A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. ACM SIGCSE Bulletin, 33(4), 125-180.
pub-date: 2001-12-01
added-date: 2015-09-01
resource-type: pdf-document
---

gha_language: HTML


text:
## Welcome to GRNmap's Test Suite

deleted_strains_test - contains test sheets for matlab_codes/excelTests/deleted_strains_test.m

initialize_arrays_test - contains a test sheet for matlab_codes/dataStructureTests/InitializeArraysTest.m

matlab_codes - contains GRNmap's Matlab code for the test suite, the script to run the test suite is in here as well

matrix_dimensions_test - contains 3 test sheets for matlab_codes/dataStructureTests/MatrixDimensionsTest.m

MSE_tests - contains a test sheet for matlab_codes/calculationTests/MSETest.m

optimization_diagnostic_test - contains a test sheet for matlab_codes/excelTests/OptimizationDiagnosticTest.m

pertubation_tests - contains two folders for separate tests:
 - math_post_L-curve_corrected - contains test sheets for matlab_codes/calculationTests/LCurveTest.m
 - to_be_reformatted - contains two folders
    - math_L-curve - contains test sheets for matlab_codes/excelTests/SimulationTimepointsTest.m
    - seaver_L-curve - contains test sheets used in matlab_codes/allReadInputSheetTest.m

sixteen_tests - 16 input and corresponding output sheets made available for user reference

repository: kdahlquist/GRNmap

gha_language: Matlab

repo_name: kdahlquist/GRNmap


text:
### Creating the project

**On Windows**

```sh
~/onGit/play-scala-sample-apps (master)
$ which activator
/c/Software/Typesafe-Activator/typesafe-activator-1.3.10/bin/activator

~/onGit/play-scala-sample-apps (master)
$ activator new ToDoList just-play-scala

Fetching the latest list of templates...

[WARN] [09/01/2016 10:12:36.765] [default-akka.actor.default-dispatcher-4] [ActorSystem(default)] Failed to download new template catalog properties: java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Users\droid\.activator\1.3.10\templates\index.db_f7c6b21c7044732a.tmp' is a directory.
[INFO] [09/01/2016 10:12:36.765] [default-akka.actor.default-dispatcher-4] [akka://default/user/template-cache] We have index hash 8a2285c306189290715965bc7fae4399d0d5c882 but haven't downloaded that index - attempting to download it now.
[ERROR] [09/01/2016 10:12:37.233] [default-akka.actor.default-dispatcher-4] [akka://default/user/template-cache] Could not find a template catalog. (java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Users\droid\.activator\1.3.10\templates\index.db_ac2c52046dd3a1a3.tmp' is a directory.
java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Users\droid\.activator\1.3.10\templates\index.db_ac2c52046dd3a1a3.tmp' is a directory.
        at scala.Predef$.require(Predef.scala:224)
        at sbt.IO$.copyFile(IO.scala:637)
        at sbt.IO$.move(IO.scala:839)
        at activator.package$RichIO$.createViaTemporary$extension(package.scala:30)
        at activator.templates.repository.UriRemoteTemplateRepository$$anonfun$resolveIndexTo$1.apply(UriRemoteTemplateRepository.scala:228)
        at activator.templates.repository.UriRemoteTemplateRepository$$anonfun$resolveIndexTo$1.apply(UriRemoteTemplateRepository.scala:220)
        at sbt.IO$.withTemporaryDirectory(IO.scala:344)
        at activator.templates.repository.UriRemoteTemplateRepository.resolveIndexTo(UriRemoteTemplateRepository.scala:220)
        at activator.cache.TemplateCacheActor$$anonfun$9.apply(TemplateCacheActor.scala:165)
        at activator.cache.TemplateCacheActor$$anonfun$9.apply(TemplateCacheActor.scala:163)
        at scala.Option.foreach(Option.scala:257)
        at activator.cache.TemplateCacheActor.preStart(TemplateCacheActor.scala:163)
        at akka.actor.Actor$class.aroundPreStart(Actor.scala:470)
        at activator.cache.TemplateCacheActor.aroundPreStart(TemplateCacheActor.scala:25)
        at akka.actor.ActorCell.create(ActorCell.scala:580)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:279)
        at akka.dispatch.Mailbox.run(Mailbox.scala:220)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Users\droid\.activator\1.3.10\templates\index.db_ac2c52046dd3a1a3.tmp' is a directory.
        at scala.Predef$.require(Predef.scala:224)
        at sbt.IO$.copyFile(IO.scala:637)
        at sbt.IO$.move(IO.scala:839)
        at activator.package$RichIO$.createViaTemporary$extension(package.scala:30)
        at activator.templates.repository.UriRemoteTemplateRepository$$anonfun$resolveIndexTo$1.apply(UriRemoteTemplateRepository.scala:228)
        at activator.templates.repository.UriRemoteTemplateRepository$$anonfun$resolveIndexTo$1.apply(UriRemoteTemplateRepository.scala:220)
        at sbt.IO$.withTemporaryDirectory(IO.scala:344)
        at activator.templates.repository.UriRemoteTemplateRepository.resolveIndexTo(UriRemoteTemplateRepository.scala:220)
        at activator.cache.TemplateCacheActor$$anonfun$9.apply(TemplateCacheActor.scala:165)
        at activator.cache.TemplateCacheActor$$anonfun$9.apply(TemplateCacheActor.scala:163)
        at scala.Option.foreach(Option.scala:257)
        at activator.cache.TemplateCacheActor.preStart(TemplateCacheActor.scala:163)
        at akka.actor.Actor$class.aroundPreStart(Actor.scala:470)
        at activator.cache.TemplateCacheActor.aroundPreStart(TemplateCacheActor.scala:25)
        at akka.actor.ActorCell.create(ActorCell.scala:580)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:279)
        at akka.dispatch.Mailbox.run(Mailbox.scala:220)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
```

**On Ubuntu**

```sh
~/onBB/Play-Scala-Sample-Apps$ which activator
/home/droid/software/typesafe-activator/activator-dist-1.3.10/bin/activator

~/onBB/Play-Scala-Sample-Apps$ activator new TodoListApp just-play-scala

Fetching the latest list of templates...

OK, application "TodoListApp" is being created using the "just-play-scala" template.

To run "TodoListApp" from the command line, "cd TodoListApp" then:
/home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/activator run

To run the test for "TodoListApp" from the command line, "cd TodoListApp" then:
/home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/activator test

To run the Activator UI for "TodoListApp" from the command line, "cd TodoListApp" then:
/home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/activator ui

```

### Project structure and content

![](_misc/Project%20Structure.png)

**Controller files**

*TodoListApp/app/controllers/Application.scala*

```scala
package controllers

import play.api.mvc._

object Application extends Controller {

  def index = Action {
    Ok(views.html.main())
  }

}
```

The *Action* and *Ok* methods are imported from the *play.api.mvc* package.

**View files**

The code for views reside in the *app/views* directory.

The generated view file is a *Twirl* template, which facilitates the views to be defined using Scala code along with HTML (which is why the generated view file has the extension *.scala.html* rather than just *html*)

*TodoListApp/app/views/main.scala.html*

```scala
<!DOCTYPE html>

<html>
    <head>
        <title>Just Play Scala</title>
    </head>
    <body>
        <h1>Just Play Scala</h1>
    </body>
</html>
```

**Configuration file**

Application level configuration properties are set in the following file.

*TodoListApp/conf/application.conf*

```conf
# This is the main configuration file for the application.
# ~~~~~

# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
application.secret="kY9oA[`V9q1]5467cTQao4EHb@xFHZA5^b:at[;:nLEvdWYpBnchCneh>P?u0Wp_"

# The application languages
# ~~~~~
# application.langs="en"

# Global object class
# ~~~~~
# Define the Global object class for this application.
# Default to Global in the root package.
# application.global=Global

# Router
# ~~~~~
# Define the Router object to use for this application.
# This router will be looked up first when the application is starting up,
# so make sure this is the entry point.
# Furthermore, it's assumed your route file is named properly.
# So for an application router like `my.application.Router`,
# you may need to define a router file `conf/my.application.routes`.
# Default to Routes in the root package (and conf/routes)
# application.router=my.application.Routes

# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
# db.default.driver=org.h2.Driver
# db.default.url="jdbc:h2:mem:play"
# db.default.user=sa
# db.default.password=""

# Evolutions
# ~~~~~
# You can disable evolutions if needed
# evolutionplugin=disabled

# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/),
# by providing an application-logger.xml file in the conf directory.

# Root logger:
logger.root=ERROR

# Logger used by the framework:
logger.play=INFO

# Logger provided to your application:
logger.application=DEBUG
```

**Routes file**

All requests that the application supports should be defined in the following file.

*TodoListApp/conf/routes*

```conf
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                           controllers.Application.index

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.versioned(path="/public", file)
```

It can be noticed that each route definition has the following parts

* Request method (GET, PUT, POST, DELETE)
* Path to which to respond to
* Method that should be invoked to return a response

The first entry from the above file could be interpreted as:

A GET request to the path "/" would invoke the method "controllers.Application.index" and responds to the request with the return value of the method.

The second entry from the above file could be interpreted as:

A GET request to a the path "/assets/*file" would be served from the "public" folder.

The *public* directory is where Play-independent resources like JavaScript, CSS, images etc. are hosted

**Build files**

To indicate SBT that the project is a Play application and that it "recognizes" the project as a Play application, it has to be provided with the Play settings. This is done by enabling the *PlayScala* plugin from where the Play settings are imported.

*TodoListApp/build.sbt*

"build.sbt" is the build definition file, which is essentially a list of key-value pairs. The symbol ":=" is the assignment operator. The default build file includes the following keys

* name
* version
* root

```sbt
name := """TodoListApp"""

version := "1.0-SNAPSHOT"

lazy val root = project.in(file(".")).enablePlugins(PlayScala)   <-----------
```

SBT allows build definitions to be extended using plugins. To allow SBT to download the plugins required for Play applications, the following content is generated by the template

*TodoListApp/project/plugins.sbt*

```properties
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.4")      <--------------
```

The *resolver* has to be modified if the plugin is not hosted on Maven or Typesafe repositories.

The *addSbtPlugin* is passed the Ivy module ID for the plugin.

**Addressing SBT version incompatibilities**

The generated build properties contains the version of the SBT being used. This avoids any incompatibility issues when the same build definition is compiled by different SBT versions.

*TodoListApp/project/build.properties*

```properties
#Activator-generated Properties
#Thu Sep 01 10:56:48 EDT 2016
template.uuid=71358ad9-fc02-4dfa-aa4a-1ae1964e5181
sbt.version=0.13.5
```

### Running the default project

```sh
:~/onBB/Play-Scala-Sample-Apps/TodoListApp$ activator run
[info] Loading project definition from /home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/project
[info] Updating {file:/home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/project/}todolistapp-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to TodoListApp (in build file:/home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/)
[info] Updating {file:/home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/}root...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

```

**Making a request from the browser**

Requesting the following URL in the browser "http://localhost:9000/" displays the following in the console

```sh
(Server started, use Ctrl+D to stop and go back to the console...)

[info] Compiling 4 Scala sources and 1 Java source to /home/droid/onBB/Play-Scala-Sample-Apps/TodoListApp/target/scala-2.10/classes...
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/routes$javascript : Unsupported major.minor version 52.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/routes : Unsupported major.minor version 52.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/routes$ref : Unsupported major.minor version 52.0
[info] play - Application started (Dev)
```

and displays the following in the browser

![](_misc/Output%20in%20browser.png)

### Generated files

### sbt build file alternative

An alternative to using an *.sbt* build file is to provide the build configuration settings in Scala code i.e. in a *.scala* build file.

repository: trdroid/Play-Scala-Sample-Apps

repo_name: trdroid/Play-Scala-Sample-Apps


text:
The example demonstrates usage of `Sort` process. The sort process is used to sort data in `"asc"` or `"desc"` direction.

__Sort multiple columns__

`Sort` process can sort data by multiple columns at the same time. Note that it takes into account the order of name that you input. In below example, the __income__ column will be sort first.

```
->pipe(new Sort(array(
    "income"=>"asc",
    "name"=>"desc",
)))
```

repository: koolreport/examples

repo_name: koolreport/examples


text:
# worstrun

![preview](https://i.imgur.com/qIKIC35.png)

This is a minimal split tracker for terminals supported by ncurses.

#### installation

###### dependencies

- C11 compiler    (gcc 4.7+, clang 3.6+)
- POSIX bubble bath (`clock_gettime`)
- ncurses library (runtime and headers)
- jansson library (runtime and headers)
- GNU make

The program will `setlocale(LC_ALL, "")` and use `ncursesw` in order to properly
display UTF-8 text in the terminal, if that is necessary and possible. This
requires a unicode-capable terminal, sufficient font support and a UTF-8 locale.

###### ...

    $ git clone https://github.com/muffindrake/worstrun
    $ cd worstrun
    $ make
    $ ./wr split.json

#### usage

Upon startup, either a default (`"$HOME/.splits.json"`) or specified json file
containing information such as game title, category and split data is read and
the content is displayed.

In IDLE, you're able to:
- `Q`uit the program
- scroll the split contents (key `up`/`down`, `j`/`k`, `home`/`end`)
- commence a run using `F4`
- write a JSON file to the home directory containing current split times (`F12`)

In a RUN:
- record a split using `F8`, ending the run when the last split is recorded
- toggle pause using `F1`
- return to IDLE, ending the run using `F4`

You are able to force-quit at any point by hitting `^C` (Control + C).

#### split data

You should use the offered split file as a hard guideline for writing your
own and you should also use a text editor that points out any invalid json you
may have typed - the program will refuse to read invalid json, as implemented by
the jansson library.

The times inside the file are in integer milliseconds from start of run.

#### configuration

`config.h` contains macro definitions for keybindings (refer to `man 3
curs_getch`), as well as some strings and window heights/coordinates that you
may edit within reason.

The program never writes to any files for any reason, except as noted, as such
you have to maintain splits by your method of choice.

If you require global hotkeys under X11, it may be a good idea to use `xdotool`
in conjunction with some hotkey manager.
The program sets the terminal title to `worstrun` or the string contained in the
environment variable `WR_TERM_TITLE`.

#### license

See the LICENSE file.

repository: fgaz/worstrun

repo_name: fgaz/worstrun


text:
# PitchForum
#### An app that allows one to post and react to one minute pitches in different categories, 01/03/2021
#### By [Ryan Rotich](https://github.com/RYAN2540)

### [PitchForum App](https://pitchforum.herokuapp.com/)

## Description

PitchForum is an app where users can post pitches that they deem impressive. The idea is that in life you only have 60 seconds to impress someone. One minute can make or break you. How do you make sure that you use your 1 minute to actually say something meaningful?

On PitchForum, users submit their one minute pitches and other users will vote on them and leave comments to give their feedback. The pitches are organized in categories that include product pitch, interview pitch and pickup lines among others. As a user you'll have to create an account and be signed in to post a pitch, vote and leave a comment. Without signing in, you can only view pitches in different categories. Make your account today and start pitching!

#### Latest updated version is on 3rd March 2021.

## Technologies used

1. Python v3.9
2. Flask 1.1.2
3. Postgres
4. SQLAlchemy
5. Flask-Bootstrap
6. HTML & CSS

## Development

The app has been developed with Flask 1.1.2. It uses PostgreSQL database and SQLAlchemy. Database migrations are tracked with ALembic. Email communication uses the Google SMTP server. The app is deployed on Heroku. It's source code is available on GitHub at https://github.com/RYAN2540/PitchForum

## Setup & Run instructions
- Install the dependencies listed on `requirements.txt`.
- Configure your app to include `SECRET_KEY`, `MAIL_USERNAME`, and `MAIL_PASSWORD` environment variables.
- Run your app on `development` config for debugging purposes.

To contribute to this project on any modules, follow these easy steps:

- Fork the repo
- Create a new branch in your terminal (git checkout -b improve-feature)
- Make appropriate changes in file(s)
- Add the changes and commit them (git commit -am "Improve App")
- Push to the branch (git push origin improve-app)
- Create a Pull request

## Support and contact details
For any queries, issues, ideas or concerns contact [Ryan Rotich](austinbrian005@gmail.com). Your feedback is highly appreciated.
### [License](LICENSE)
MIT license
Copyright (c) 2020 **Ryan Rotich**


text:
# VTor

*VTor* is a pragmatic validation framework for any kind of Java objects.
*VTor* is fast, small and focused on validation. Constraints can be
declared with annotations or used manually. Constraints may be grouped
in profiles. *VTor* is extensible - users can easily use custom
constraints. By default constraints are written in Java, but it is easy
to extend it and use XML or any scripting language to define validation
expressions.

## Validation in action

*VTor* validation process consist of:

* definition of validation checks (i.e. applied constraints);
* executing these rules on target object (usually, a java bean);
* examining validation results.

An example:

~~~~~ java
    ValidationContext vctx = new ValidationContext();
    vctx.add(new Check("boo", new MinLengthConstraint(2)));
~~~~~

Above code snippet defines single check in *VTOR* validation context.
The check defines the minimal length of `boo` property.

Now, lets validate some bean:

~~~~~ java
    Vtor vtor = new Vtor();
    vtor.validate(vctx, fooBeanInstance);
~~~~~

Validation has been performed. The only thing left is to check
validation results.

~~~~~ java
    List<Violation> vlist = vtor.getViolations();
~~~~~

This list is `null` when validation is successful, otherwise it contains
list of violations - validation checks that failed. Easy, right?

## Default constraints

*VTor* comes with many common general-purpose constraints. For example:

* `MaxConstraint`, `MaxConstraint`, `RangeConstraint` - defines min and
  max numeric value.
* `LengthConstraint`, `HasSubstringConstraint`, `LengthConstraint`,
  `WildcardMatchConstraint`... - for checking string values.
* `EqualToFieldConstraint` - checks if two fields are equal.
* ...

For complete list of constraints check *VTor* javadoc.

## VTor annotations

*VTor* usage can be simplified using annotations, when validation is
done in couple of lines. Above example is rewritten using annotations:

~~~~~ java
    public class Foo {

    	@MinLength(2)
    	String boo;		// getters/setters are optional
    }
~~~~~

Validation is now done with few lines:

~~~~~ java
	Vtor vtor = new Vtor();
	vtor.validate(fooInstance);
	System.out.println(vtor.hasViolations());
~~~~~

Now, this is easy:)

## Profiles

Problem when using annotations is that one bean can't be validated
using different set of checks, i.e. rules sets. For example, an user
model object is validated differently when user is created and updated:
in the first case we need to check if the username is unique. This is
where *VTor* profiles comes in.

Profile is the name of checks group that constraint belongs to. *VTor*
annotation may specify which profile groups its check belongs to.

~~~~~ java
	@MinLength(value = 2, profiles = {"p1,p2"})
	String boo;
~~~~~

To instruct *VTor* to use certain profiles:

~~~~~ java
	Vtor vtor = new Vtor();
	vtor.useProfiles("p1", "p2");
	vtor.validate(fooInstance);
~~~~~

There are special profile names:

* `*` (wildcard joker) - used in annotation means that some constraint
  belongs to all profiles. So instead of writing all profiles names, it
  is possible to use this wildcard instead.
* `default` - used to validate checks from default group, i.e. defined
  by annotations that do not have profile name explicitly defined.

### Excluding profiles

Sometimes it is required to exclude a check (defined by annotation
constraint) from one or more profiles. Instead to write down all
profiles names except the excluded one, it is possible to exclude a
profile using minus sign as a prefix (e.g. `-p2`).

Excluded profile names have higher priority!
{: .attn}

So, even if some check may belongs to a several profile, if there is a
excluded profile, the check will not be executed!

### Must-have profiles

Check is executed if there is at least one matched profile. Sometimes we
want to execute a check only if all profiles are requested. To achieve
this, just put `+` (plus) sign in front of the profile name.

### Severity

Severity is a simple checks-weight value; all checks with severity less
then specified will not run.

### Profiles summary

~~~~~ java
    // match profiles 'p1' OR 'p2'
    @FooCheck(profiles = {"p1", "p2"})

    // match profiles 'default' OR 'p2'
    @FooCheck(profiles = {"default", "p2"})

    // match 'p1' OR 'p3' ONLY IF 'p2' does NOT match
    @FooCheck(profiles = {"p1", "-p2", "p3"})

    // match profiles 'p1' AND 'p2'
    @FooCheck(profiles = {"+p1", "+p2"})
~~~~~~

## Misc

### Adding custom violations

*VTor* allows user to add custom violations, not only those that comes
from constraints. For example:

~~~~~ java
    vtor.addViolation(new Violation("number", foo, null));
~~~~~

This way even the validation itself can be performed outside of *VTor*
and pass results to the framework.

### Use constraints directly

Most *VTor* constraints may be executed directly, using static method
`validate()` of the constraint class. For example:

~~~~~ java
    boolean valid = MinLengthConstraint.validate("value", 3);
~~~~~

Yeah!


text:
# [`pstar`](./pstar.md).[`plist`](./pstar_plist.md).`pand(self, name='__plist_and_var__', call_pepth=0)`

Stores `self` into a [`plist`](./pstar_plist.md) of `tuple`s that gets extended with each call.

`pand` is meant to facilitate building up `tuple`s of values to be sent as
a single block to a chained call to [`apply`](./pstar_plist_apply.md), or as `*args` when calling
`plist.apply(psplat=True)`. The name is `pand` to evoke conjunction: the
caller wants a [`plist`](./pstar_plist.md) with this *and* this *and* this.

`pand` stores a variable in the caller's frame that isn't visible to the
caller, but is visible to future calls to `pand` due to how `locals()`
works.

**Examples:**
```python
foos = plist([pdict(foo=0, bar=0), pdict(foo=1, bar=1), pdict(foo=2, bar=0)])
foos.baz = 3 * foos.foo + foos.bar
assert (foos.aslist() ==
        [{'foo': 0, 'bar': 0, 'baz': 0},
         {'foo': 1, 'bar': 1, 'baz': 4},
         {'foo': 2, 'bar': 0, 'baz': 6}])
def new_context():
  assert (foos.bar.groupby().baz.groupby().foo.pand().root().bar.pand().ungroup()
              .apply_(qj, '(foo, bar)') ==
          [[[(0, 0)],
            [(2, 0)]],
           [[(1, 1)]]])
new_context()
# Logs:
#   qj: <pstar> apply: (foo, bar) <1249>: (0, 0)
#   qj: <pstar> apply: (foo, bar) <1249>: (2, 0)
#   qj: <pstar> apply: (foo, bar) <1249>: (1, 1)
```

The same construction can be used with methods that expect the arguments
individually, requiring the `tuple` to be expanded:
```python
def new_context():
  (foos.bar.groupby().baz.groupby().foo.pand().root().bar.pstr().pand()
       .ungroup().apply_(qj, psplat=True, b=0))
new_context()
# Logs:
#   qj: <pstar> apply: (foo, bar) <2876>: (0, 0)
#   qj: <pstar> apply: (foo, bar) <2876>: (2, 0)
#   qj: <pstar> apply: (foo, bar) <2876>: (1, 1)
#   qj: <pstar> apply: (0, 0) <2876>: (0, 0)
#   qj: <pstar> apply: (2, 0) <2876>: (2, 0)
#   qj: <pstar> apply: (1, 1) <2876>: (1, 1)
```

Building multiple `tuple`s in the same context requires passing `name` to keep
them separate:
```python
def new_context():
  me = plist()
  assert (foos.bar.groupby().baz.groupby().me().foo.pand().root().bar.pand().ungroup()
              .apply_(qj,
                      me.foo.pand('strs').root().bar.pand('strs').ungroup().pstr()) ==
          [[(0, 0),
            (2, 0)],
           [(1, 1)]])
new_context()
# Logs:
#   qj: <pstar> apply: (0, 0) <1249>: (0, 0)
#   qj: <pstar> apply: (2, 0) <1249>: (2, 0)
#   qj: <pstar> apply: (1, 1) <1249>: (1, 1)
```
Note that the construction above is hard to understand, and probably
shouldn't be used.

**Args:**

>    **`name`**: String naming an available variable in the caller's context. Should
>          only be passed if the calling frame needs to create multiple
>          different `tuple`s. Defaults to '__plist_and_var__'. If a variable of
>          the same name exists in the caller's context, `pand` will fail to
>          write to it.

>    **`call_pepth`**: Do not pass. Used by `plist.__call__` to keep track of how
>                many stack frames occur between the caller and `pand()`.

**Returns:**

>    The current [`plist`](./pstar_plist.md) of `tuple`s, with `self` added.

**Raises:**

>    **`ValueError`**: If the variable named by `name` is already present in the
>                caller's frame and is not a [`plist`](./pstar_plist.md), or has different `pshape()`
>                than `self`.

## [Source](../pstar/pstar.py#L5537-L5650)

repository: iansf/pstar

repo_name: iansf/pstar


text:
![Screenshot](https://raw.github.com/UA-CS493/Syllabus/master/Resources/Images/header.png)

Maintainable and Scalable Systems through Collaboration, VCS, and Open Source Software (CS 491/591)
========

The class syllabus lives here. Make sure to watch this repository so you can be notified if things change. You can click the little eye at the top of the page to change your settings so you receive email notifications if things change. This class is highly experimental in its techniques and class structure, but is actually very modern in its approach to using the current and respected tools of the day for efficient and maintainable software engineering practices. Below you will find the meta about the class as well as a tentative schedule of assignments and tests. Happy Coding!

Where:  SERC 2039       When:  9AM-12PM

## Table of Contents
* [Class Structure](#class-structure)
* Topics
  * [Mac Crash Course](#mac-crash-course) -History,core,apps,navigation
  * [Git and Github](#git-and-github)
     * [Why we use VCS](#why-we-use vcs) - changes, sharing, tracking, versioning
     * [VCS Options](#vcs-options) - CVCS:SVN,TFS DVCS:git,mercurial,bazaar
     * [Git Basics](#git-basics) -dvcs,repositories,line change tracking, the origin
     * [Git Usage](#git-usage) -push,pull,clone,commit
     * [More Git](#more-git) -ignore, branch/merge, gitflow, tagging, stashing
     * [Github Basics](#github-basics) -registration,star,fork, watch, trending, gists, collaborators, readme/markdown, repository creation/rename/deletion, issue tracking
     * [Github Best Practices](#github-best-practices) -releasing, semantic versioning, being considerate
     * [SourceTree](#sourcetree) -installing,connecting github (or any .git endpoint),using sourcetree,
     * [Other Technologies](#other-technologies) SVN,mercurial,tfs
  * [IDE Basics](#ide-basics)
     * [Installation and Setup](#installation-and-setup)
     * [First App](#first app)
     * [Getting Around](#getting-around) - editor,project nav,console,debugger
     * [Project Structure](#project-structure) - mvc,entry points, good organization,searching,theming,resources,virtual folders
  * [OOP Basics](#oop-basics)
     * [Classes and Objects](#classes-and-objects)
     * [Inheritance](#inheritance)
     * [Variables](#variables) - private, public
     * [Methods](#methods) - static,non-static,inherited(overrrided methods)
  * [Objective-C](#objective-c)
     * [Class Structure](#class-structure) -.h,.m,interface, implementation
     * [Variables and Properties](#variables-and-properties) http://rypress.com/tutorials/objective-c/properties.html
     * [Primitives](#primitives) - int,float,double,char, short, long
     * [Methods in Objc](#methods-in-objc) +,-,public,private,no parameter,single parameter,calling
     * [Imports](#imports)
     * [Protocols](#protocols)
  * [iOS SDK Basics](#ios-sdk-basics)
     * [SDK Primitive Aliases](#sdk-primitive-aliases) - NSInteger, CGFloat
     * [Data Structures](#data-structures) - NSArray, NSDictionary, NSSet
     * [Other Foundation Classes](#other-foundation-classes) NSDate,
  * [UIKit Basics](#uikit-basics)
     * [View Hierarchy](#view-hierarchy)
     * [No Storyboards](#no-storyboards)
     * [No Nibs](#no-nibs)
     * [Animations](#animations)
     * [Event Handling](#event-handling) Through nib and code only
     * [Navigation](#navigation)
  * [GCD, Concurrency and blocks](#gcd-concurrency-and-concurrency)
     * [Anatomy of an App](#anatomy-of-an-app)
     * [Blocks](#callbacks) http://rypress.com/tutorials/objective-c/blocks.html
     * [Basic Async Tasks](#basic-async-tasks)
     * [Callbacks](#callbacks)
     * [NSOperationQueue](#nsoperationqueue)
  * [Web Programming](#web-programming)
     * [The need for communication](#the-need-for-communication)
     * [The Internet Protocol Suite](#the-internet-protocol-suite)
     * [HTTP/HTTPS](#https/https)
     * [Ports](#ports) http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
     * [HTTP Request](#http requests)
        * [URL](#url)
        * [Verbs](#verbs) GET,POST,PUT,DELETE
        * [Headers](#headers) http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
        * [Body](#body)
     * [Basic Web Calls](#basic-web-calls)
     * [Project API Reintroduction](#project-api-reintroduction)
        * [Web Methods](#web-methods)
        * [URL Breakdown](#url-breakdown)
        * [Data Interchange Languages](#data interchange languages) or "Organizing things in the message body"
           * [Why](#why)
           * [Popular Formats](#popular-formats)
           * [Breaking Down JSON](#breaking-down-json)
     * [NSObject+ObjectMap](#nsobject+objectmap)
  * [Testing](#testing)
     * [Why We Test](#why-we-test)
     * [Assertions](#basic-assertions)
     * [Library Testing Example (DateTools)](#library-testing-example-(datetools))
     * [Testing UI Components](#testing-ui-components)
  * [Maps](#maps)
     * [Setup](#setup)
     * [Basics](#basics) zooming,panning,tilting,map types,(reverse) geocoding,
     * [Render Hierarchy](#render-hierarchy)
     * [Annotations](#annotations)
     * [Layers](#layers)
  * [URI Schemes](#URI-Schemes)
  * [Third Party Libraries](#third-party-libraries)
  * [Cocoapods](#cocoapods)
  * [Art and Design](#art-and-design)
  * [Android Dev](#android-dev)
     * [Android Studio](#android-studio)
     * [Java](#java)
     * [GenyMotion](#genymotion)
     * [SDK Management](#sdk-management)
     * [Hello World](#hello-world)
     * [MVC in Android](#mvc-in-android)
     * [Activities/Fragments](#activities/fragments)
        * [Activity Lifecycle](#activity-lifecycle) http://i.stack.imgur.com/rVnSi.png
        * [Fragment Lifecycle](#fragment-lifecycle) http://i.stack.imgur.com/cJ3QW.png
     * [Async Tasks](#async-tasks)
     * [Navigation](#navigation)
     * [Libraries (Jars and Modules)](#libraries-(jars-and-modules))
     * [Resource Files](#resource-files)
  * [Deploying Apps](#deploying-apps)
     * [ItunesConnect](#itunes-connect)
     * [Archiving](#archiving)
     * [Analytics](#analytics)
  * [Resources](#resources)

## Class Structure

The bulk of this class will be entirely run on the GitHub platform. GitHub is a social coding tool that emphasizes Open Source and creative collaboration. GitHub is built entirely off of the [Git](http://en.wikipedia.org/wiki/Git_(software)) distributed version control platform. Git is used in development teams around the world for maintaining code bases in an extremely efficient manner, as well as being a tool for pushing code to production servers and maintaining a record of pushes to track down and eliminate bugs before they become a problem.

**Get a GitHub Account!**

First things first - you have to have a GitHub account. No account, no grade. You can create a free account by clicking the sign up button in the top-right of the browser window. Don't read any further until you have created your account.

## About the Assignments

Each assignment will be a separate repository inside of the UA-CS493 organization, and those links can be found in each Assignment section in this Syllabus as they are posted. Assignments in this class aren't your typical CS assignment; each one is created, maintained and graded through GitHub. Each assignment contains a README.md file in the top-level directory of the repository which contains all of the information about the assignment, the rubric used to grade your assignment, and any instructions/tips necessary to complete the project. Below is the order of operations of beginning, working on, and completing an assignment.

**Order of Operations**
* Fork the assignment
* Create a new folder with your name in the top-level
* Work on and complete the assignment inside your own Forked version of the repository
* Once completed, open a Pull Request to merge your repository with the master class repository
* Ace the assignment! (if you did well, of course)

**Committing your Work**

A commit is the process of saving the state of your work, which you can revert or look back onto any time you wish. This is very helpful for tracking bugs that started after a certain commit, where you can look at not only what files changed, but also what lines of code are different - a useful tool for efficiently tracking and eliminating bugs/design flaws in larger systems. For these assignments, you should commit often - and a commit log will be checked to see your creative process through the duration of the course, and to verify assignments were completed on time.

**Forking Repositories**

If you look up at the top of the page, you'll notice a button under your username that says "Fork." What a fork does is take the repository and port it over to your code base. You can make edits, change things and then commit - all without affecting the master repository you forked from. This enables you to do the assignment, until you're happy with the result and then you can make a Pull Request to "turn it in."

**Pull Requests**

A Pull Request is the process of merging the changes in your forked repository into the master repository. This works by finding differences in the files you forked and adding them in. A full history of your git commits is added into the master commit logs as well.

**GitHub Issues**

Issues are an auxilliary part of the GitHub platform; a separate tool built to be used in conjunction with Git. We are going to use Issues in this class to provide feedback on assignments, ask for help on assignments, and to show where in your commit history you were doing good things, or where things went wrong. This is an extremely helpful tool for collaboration as you will see in your group assignments in this class.

##Git and Github

####Why We Use VCS
- changes, sharing, tracking, versioning

####VCS Options
- CVCS:SVN,TFS DVCS:git,mercurial,bazaar

####Git Basics
-dvcs,repositories,line change tracking, the origin

####Git Usage
-push,pull,clone,commit

####More Git
-ignore, branch/merge, gitflow, tagging, stashing

[Gitflow](http://nvie.com/posts/a-successful-git-branching-model/)

####Github Basics
-registration,star,fork, watch, trending, gists, collaborators, readme/markdown,

##Android Dev

##Deploying Apps

####Apple Developer Site

[https://developer.apple.com/](https://developer.apple.com/)

The developer site handles signing of apps and provisioning devices

####Itunes Connect

[https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa](https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa
)

Itunes Connect handles deployment and app store analytics/management.

##Art and Design

A primer on art and design in apps and in general can be found in the [Artsy Fartsy](https://github.com/UA-CS491-591/ArtsyFartsy) repository.

##Resources
Below are a list of blogs and tutorials that you may find helpful in learning objective-c

#### Language
* [Rypress Objective-C Tutorial](http://rypress.com/tutorials/objective-c/)

#### Platform
* [Ray Wenderlich Tutorials](http://www.raywenderlich.com/tutorials)
* [Appcoda Tutorials - No Storyboards](http://www.appcoda.com/ios-programming-course/)
* [Tutorials Point](http://www.tutorialspoint.com/ios/index.htm)
* [Start Developing iOS Apps Today](https://developer.apple.com/library/IOs/referencelibrary/GettingStarted/RoadMapiOS/index.html#//apple_ref/doc/uid/TP40011343-CH2-SW1)

Also, **[StackOverflow](http://stackoverflow.com/) is your best friend.** Google "iphone sdk" then whatever your question is for best results.

#### More Advanced
* [ObjC.io](http://www.objc.io/)
* [NSHipster](http://nshipster.com/)


text:
# LaTeX and review-pdfmaker

The command `review-pdfmaker` in Re:VIEW use [LaTeX](https://en.wikipedia.org/wiki/LaTeX) to generate a PDF file.

To use the command, you need to set up LaTeX system.

## Important Changes about LaTeX in Re:VIEW 2.0

* Default LaTeX compiler is upLaTeX, not pLaTeX.
* The meaning of `scale` option in `@<image>` command is changed and configurable.
* `prt` is printer, not publisher. You can use `pbl` for publisher.

## about upLaTeX

In Re:VIEW 2.0 released at April 2016, default LaTeX compiler became upLaTeX from pLaTeX.  The upLaTeX support Unicode and you can use unicode characters such like ①②... and other characters without otf package.

Almost packages in pLaTeX can be supported in upLaTeX, but some package (such as jsbook class and otf package) need `uplatex` option.

Default settings of Re:VIEW is below:

```yaml
texcommand: uplatex
texoptions: null
texdocumentclass: ["jsbook", "uplatex,oneside"]
dvicommand: dvipdfmx
dvioptions: "-d 5"
```

## How to use old pLaTeX

You also use pLaTeX with Re:VIEW 2.0.

To use pLaTeX, You can add these configuration in config.yml.

```yaml
texcommand: platex
texoptions: "-kanji=utf-8"
texdocumentclass: ["jsbook", "oneside"]
dvicommand: dvipdfmx
dvioptions: "-d 5"
```

You can use a variable `@texcompiler` to compare latex command in layout ERB files (lib/review/layout.tex.erb in default).
The value of `@texcompiler` is `platex` (when using pLaTeX) and `uplatex` (when using upLaTeX).
The usage is below:

```
<% if @texcompiler == "uplatex" %>
\usepackage[deluxe,uplatex]{otf}
<% else %>
\usepackage[deluxe]{otf}
<% end %>
```

## about `scale` option

In Re:VIEW 2.0, the meaning of `scale=..` in the third option of ``//image`` command.
The meaning in 1.0 is "scale for image file" (`1.0` is same as original image size), but the one in 2.0 is "scale for paper width" (`1.0` is same as paper widdth.)

If you need the same behavior in Re:VIEW 1.x, you should add ``image_scale2width: false`` in config.yml (default value is `true`).

```yaml
image_scale2width: false
```

repository: takahashim/review-markup-sample

gha_language: TeX

repo_name: takahashim/review-markup-sample


text:
# Farm

Farm is an entry point for launching your bots. Each application can have only one launched farm.

### Example

This is an example of using farm with single ```EchoBot``` bot.

`name` - unique name for a bot, lowcase latin/numbers are recomended.

`token` - access token for your bot, generated with BotFather.

`traceHook` - For debugging purpoises you can create group, generate integration web hook and write it here to receive all received/sent messages. WARRING: This is not secure and we recomend to do this only for debug.

`overlord` - Optional class for [Overlord](bot-overlord.md)

```kotlin
import im.actor.bots.framework.farm

fun main(args: Array<String>) {
    farm("bots") {
        bot(EchoBot::class) {
             name = "echo"
             token = "<YOUR_TOKEN_HERE>"
             traceHook = "<OPTIONAL_TRACE_WEBHOOK>"
             overlord = <OPTIONAL_OVERLORD_CLASS>
        }
    }
}
```

repository: macressler/actor-bots

repo_name: macressler/actor-bots


text:
# Create Preview System

**Preview** is a visualisation system for Domik scriptable objects.

## Prepare
Open Domik folder in project -> Select **Preview** prefab -> Drop it to the scene
==dropping preview gif==

## Usage
Then you select Part, Place, Placeable Object or Mask, Preview will render it's visual representation, so you can change them and see results imidiately

==for tabs which shows usaging wigh part, place, po and mask==

### See also
- Preview

url: https://raw.githubusercontent.com/GangstaHikka/domik/3cb92ba1923973d1161bc1aa298cf3afcfcce0e8/docs/Old stuff/Getting Started/Create Preview System.md

repository: GangstaHikka/domik

branch_name: refs/heads/main

filename: Create Preview System.md

repo_name: GangstaHikka/domik


text:
---
title: Safer Node.js coding with git hooks and husky
date: "2021-09-28T00:00:00+02:00"
description: Practical examples for setting up git hooks with husky for safer Node.js development
---

## Our goals

1. Auto-format source code before each commit
2. Fast local tests before each commit
3. Auto-install npm dependencies when switching branches

## The base: Git hooks with Husky

[Husky](https://typicode.github.io/husky/) is a thin wrapper around [git hooks](https://git-scm.com/docs/githooks) - shell scripts that execute in response to git actions.
Husky configures git to use the `.husky` folder for reading hooks.

Setup is straightforward, install husky

```shell
➜  npm install husky is-ci --save-dev
➜  npx husky install
```

and setup the `husky install` command to run automatically outside of CI environments

```json
// package.json
{
  "scripts": {
    "prepare": "is-ci || husky install"
  }
}
```

And finally, add a test `pre-commit` hook:

```shell
➜  npx husky add .husky/pre-commit 'echo "the pre-commit hook ran 🚀"'
```

This will put our script in the `.husky` directory:

```shell
➜  test-repo git:(master) ✗ tree .husky
.husky
├── _
│   └── husky.sh
└── pre-commit
```

`.husky/pre-commit`:

```bash
#!/bin/sh

. "$(dirname "$0")/_/husky.sh"

echo "the pre-commit hook ran 🚀"
```

And we can test that our hook executes when we commit:

```shell
➜  git add .husky && git commit -m 'add husky'
the pre-commit hook ran 🚀
 ....
```

## 1. Auto-format source code before each commit

Using [prettier](https://prettier.io) and [pretty-quick](https://www.npmjs.com/package/pretty-quick) auto-formatting code is as simple as:

```shell
➜  npm install prettier pretty-quick --save-dev
```

Update `.husky/pre-commit`:

```bash
#!/bin/sh

. "$(dirname "$0")/_/husky.sh"

npx pretty-quick --staged # ✅ replace the dummy "echo" command
```

And we're done, now our files will be auto-formatted by `prettier` before each commit!

```shell
➜  git add . && git commit -m 'add pretty-quick'
🔍  Finding changed files since git revision ff5738c.
🎯  Found 2 changed files.
✍  Fixing up package.json.
✅  Everything is awesome!
 ....
```

## 2. Fast local tests before each commit

We will use [lint-staged](https://github.com/okonet/lint-staged) to execute minimal local tests before each commit.

The following setup will only execute tests related to the files that have actually been changed in the current commit instead of your full test suite.
We can leave the full test suite execution to our CI.

```shell
➜  npm install lint-staged jest --save-dev
```

Update `.husky/pre-commit`:

```bash
#!/bin/sh

. "$(dirname "$0")/_/husky.sh"

npx pretty-quick --staged
npx lint-staged # ✅ add lint-staged
```

Add `.lintstagedrc.js`

```js
// .lintstagedrc.js
module.exports = {
  // If any ts/js(x) files changed.
  "**/*.{ts,js}?x": [
    // Execute tests related to the staged files.
    "npm run test -- --passWithNoTests --bail --findRelatedTests",

    // Run the typechecker.
    // Anonymous function means: "Do not pass args to the command."
    () => "tsc --noEmit",
  ],
}
```

# 3. Auto-install npm dependencies when switching branches

A great way to lose time chasing non-existent bugs is to forget that different branches can have different dependencies in `package.json`.
The following setup will automatically run `npm install` after you switch branches or execute git commands that can modify `package.json`, e.g. a merge.

```shell
➜  npx husky add .husky/post-checkout 'echo "the post-checkout hook ran 🚀"'
```

Update `.husky/post-checkout`:

```bash
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

# From the post-checkout docs https://git-scm.com/docs/githooks#_post_checkout
# The hook is given three parameters:
#  - the ref of the previous HEAD
#  - the ref of the new HEAD (which may or may not have changed)
#  - a flag indicating whether the checkout was:
#     - a branch checkout (changing branches, flag=1)
#     - a file checkout (retrieving a file from the index, flag=0).

# When the third script parameter is "1" we are executing a branch checkout
if [ "$3" = "1" ]; then
  # install npm packages
  npm install

  # or with yarn
  # yarn install --frozen-lockfile
fi
```

Additionally, we should run `npm install` after a merge or a rewrite.
We can setup those up with just 2 commands:

```shell
➜  npx husky add .husky/post-merge 'npm ci'
➜  npx husky add .husky/post-rewrite 'npm install'
```

Or with `yarn`:

```shell
➜  npx husky add .husky/post-merge 'rm -rf node_modules && yarn install --frozen-lockfile'
➜  npx husky add .husky/post-rewrite 'yarn install'
```

branch_name: refs/heads/development

gha_language: JavaScript


text:
# Math Operations
***Some mathematical functions in JavaScript***

This is not overriding built-in `Math()` method, just a custom *module* with different functions combined.

[`Readme and Demo page`](https://monkeyraptor.github.io/math_operation)


text:
# @xstate/vue

## Quick Start

1. Install `xstate` and `@xstate/vue`:

```bash
npm i xstate @xstate/vue
```

**Via CDN**

```html
<script<EMAIL_ADDRESS>```

By using the global variable `XStateVue`

or

```html
<script<EMAIL_ADDRESS>```

By using the global variable `XStateVueFSM`

2. Import the `useMachine` composition function:

```vue
<template>
  <button @click="send('TOGGLE')">
    {{
      state.value === 'inactive'
        ? 'Click to activate'
        : 'Active! Click to deactivate'
    }}
  </button>
</template>

<script>
import { useMachine } from '@xstate/vue';
import { Machine } from 'xstate';

const toggleMachine = Machine({
  id: 'toggle',
  initial: 'inactive',
  states: {
    inactive: {
      on: { TOGGLE: 'active' }
    },
    active: {
      on: { TOGGLE: 'inactive' }
    }
  }
});

export default {
  setup() {
    const { state, send } = useMachine(toggleMachine);
    return {
      state,
      send
    };
  }
};
</script>
```

**Vue 2.x notice:** If you're using Vue 2.x, please see [the recipe](https://xstate.js.org/docs/recipes/vue.html) instead.

## API

### `useMachine(machine, options?)`

A [Vue composition function](https://vue-composition-api-rfc.netlify.com/) that interprets the given `machine` and starts a service that runs for the lifetime of the component.

**Arguments**

- `machine` - An [XState machine](https://xstate.js.org/docs/guides/machines.html).
- `options` (optional) - [Interpreter options](https://xstate.js.org/docs/guides/interpretation.html#options) OR one of the following Machine Config options: `guards`, `actions`, `activities`, `services`, `delays`, `immediate`, `context`, or `state`.

**Returns** `{ state, send, service}`:

- `state` - Represents the current state of the machine as an XState `State` object.
- `send` - A function that sends events to the running service.
- `service` - The created service.

### `useService(service)`

A [Vue composition function](https://vue-composition-api-rfc.netlify.com/) that subscribes to state changes from an existing [service](TODO).

**Arguments**

- `service` - An [XState service](https://xstate.js.org/docs/guides/communication.html).

**Returns** `{state, send}`:

- `state` - Represents the current state of the service as an XState `State` object.
- `send` - A function that sends events to the running service.

### `useMachine(machine)` with `@xstate/fsm`

A [Vue composition function](https://vue-composition-api-rfc.netlify.com/) that interprets the given finite state `machine` from [`@xstate/fsm`] and starts a service that runs for the lifetime of the component.

This special `useMachine` hook is imported from `@xstate/vue/lib/fsm`

**Arguments**

- `machine` - An [XState finite state machine (FSM)](https://xstate.js.org/docs/packages/xstate-fsm/).

**Returns** an object `{state, send, service}`:

- `state` - Represents the current state of the machine as an `@xstate/fsm` `StateMachine.State` object.
- `send` - A function that sends events to the running service.
- `service` - The created `@xstate/fsm` service.

**Example** (TODO)

## Configuring Machines (TODO)

Existing machines can be configured by passing the machine options as the 2nd argument of `useMachine(machine, options)`.

Example: the `'fetchData'` service and `'notifySuccess'` action are both configurable:

**Example** (TODO)

## Matching States

For [hierarchical](https://xstate.js.org/docs/guides/hierarchical.html) and [parallel](https://xstate.js.org/docs/guides/parallel.html) machines, the state values will be objects, not strings. In this case, it's better to use [`state.matches(...)`](https://xstate.js.org/docs/guides/states.html#state-methods-and-getters):

```vue
<template>
  <div>
    <loader-idle v-if="state.matches('idle')" />
    <loader-loading-user v-if-else="state.matches({ loading: 'user' })" />
    <loader-loading-friends v-if-else="state.matches({ loading: 'friends' })" />
  </div>
</template>
```

## Persisted and Rehydrated State

You can persist and rehydrate state with `useMachine(...)` via `options.state`:

```vue
<script>
// Get the persisted state config object from somewhere, e.g. localStorage
const persistedState = JSON.parse(
  localStorage.getItem('some-persisted-state-key')
);

export default {
  setup() {
    const { state, send } = useMachine(someMachine, {
      state: persistedState
    });

    // state will initially be that persisted state, not the machine's initialState
    return { state, send };
  }
};
</script>
```

repository: ekaone/xstate

repo_name: ekaone/xstate


text:
# lumbar_sagittal_seg
This tutorial explains how to segment spinal cords on images with sagittal orientation and thick slices. In general we highly recommend to segment the cord on isotropic resolution data, or data acquired axially. However, in some cases, you might want to obtain a rough delineation of the cord from sagittal scans. Here's a suggestion on how to do it.

## Dependencies

SCT version: v3.2.1.

## Getting started

Below is an example of a sagittal scan. You notice that the spinal cord is difficult to delineate on the axial view, due to the low resolution in the right-left direction:

The strategy here is to resample the scan to an isotropic resolution, and then segment the cord using manual initialization.

```bash
# resample
sct_resample -i T2.nii.gz -mm 1x1x1 -o T2r.nii.gz
# segment with manual initialization
sct_propseg -i T2r.nii.gz -c t2 -init-centerline viewer
```

The image below shows how to do the manual initialization. Here, we only label until the lower tip of the spinal cord, which stops at around T12-L1. Below the spinal cord is the cauda equine.

And here is the resulting cord segmentation:

If you wish to resample the segmentation at the same resolution of the native image, you can do so using the following command:

```bash
# resample back to T2 native space
sct_register_multimodal -i T2r_seg.nii.gz -d T2.nii.gz -identity 1 -x linear
```

Note, here we used linear interpolation in order to keep the partial volume information, but you can also output a binary segmentation by replacing `-x linear` by `-x nn`. Here is the output:

## License

The MIT License (MIT)

Copyright (c) 2018 École Polytechnique, Université de Montréal

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:
# SDS 383D

Welcome to SDS 383D for Spring 2022, a Ph.D.-level course on statistical modeling.  All course materials can be found through this GitHub page.

Some course logistics
- Instructor: James Scott, <http://jgscott.github.com>
- Meets: Mondays and Wednesday, 1:00 to 2:30 PM
- Classroom: UTC 4.120
- Office hours: Tuesday, 1-2 PM, via Zoom (link on Canvas).  Wednesdays in person, 2:30-3:30 PM, CBA 6.478.

## Exercises

[You can find all the exercises here.](exercises/)  I'll post them as they become relevant throughout the semester.

## About the course

This course is about building probabilistic models for real-world systems.  Our approach will _primarily_, although not exclusively, be Bayesian.

Formally, this course has SDS 383C as a prerequisite.  But plenty of students have succeeded in the past without having taken that course.  So here's a list of substantive prerequisites.  To succeed, you need to know the following topics:
- linear algebra
- how to perform basic data-analysis tasks in R or Python, at the level of Lessons 1-7 in [this undergraduate text](https://bookdown.org/jgscott/DSGI/).
- multivariable calculus.  To be more specific, we lean often on gradients, Hessians, and Jacobeans, but not on more physics-relevant tools like divergence, curl, Green's theorem, etc.
- undergraduate probability (measure theory isn't necessary).  You should be comfortable writing down PDFs and understanding what they mean.  You should have seen moment-generating functions and the change-of-variable formula involving Jacobeans.
- basic inferential statistics: sampling distributions, confidence intervals, p-values, etc.
- basic regression, at the level of Lessons 14-15 of [this undergraduate text](https://bookdown.org/jgscott/DSGI/)

If you have any doubt about your preparation for this course, feel free to chat with me on the first day.

This is a blend between a traditional lecture-based course and a flipped classroom.  Some of the time is spend on lectures in class.  But a lot of the other class time is spent with you in charge.  You will work on the [exercises outside of class](exercises/).  When you come to class, you will share what you've done, and benefit from understanding what others have done.   We will end up covering less than in an exclusively lecture-based course.  But what you learn, you will learn deeply.  The trade-off is more than worth it.

## Grading

Your grade consists of three pieces: 30% exercises, 30% peer evaluation and 40% final project.

### Exercises

You will turn in a complete copy of all exercises at the end of the semester, in a single PDF document.

### Peer evaluation

During the semester, you will be expected to do three main things on a recurring basis:
1) Work on the exercises outside of class, and document your code so that someone else can follow it.  You will post all of your code and materials on your GitHub page.
2) Present your work in front of class, either up at the board or by hooking up your computer and showing us your code and results.
3) Provide at least three peer reviews of others' code and analyses from their GitHub pages, so that everyone gets feedback.  You'll do this about once every 3-4 weeks, and I'll assign the reviewers randomly.

At the end of the semester, everyone will (privately) turn in a document that summarizes their assessment of each person's contribution to the course.  Those who have helped others to learn (e.g. by presenting excellent work in class or by offering thoughtful peer reviews, will presumably get good evaluations).  I'll use these summaries to set the peer-evaluation grades.  Note: I'll still have the final say here.

### Final project

Pick some relevant topic that interests you.  Clear it with me ahead of time, and then do it.  Basically, I trust you to choose something that will optimize your own learning experience, and that will dovetail with your research and educational goals.  It certainly can overlap with your own research.  Examples:

1) Analyze a data set from your own research, using techniques from class or closely related techniques.
2) Invent a new technique and show how awesome it is.
3) Prove something interesting about a procedure or algorithm related to what we're studying (admittedly unlikely, but certainly possible!)
4) Read a paper, or a group of related papers, that expands on some topic we've covered in class.  Implement the method(s) and benchmark it (them) against something else.

Final projects are due on the last class day of the semester: Friday, May 6.

Note: you should feel free to work either solo or in pairs for the projects.

## Requirements

1) Set up a [GitHub](www.github.com) account if you don't already have one.

2) Learn how to use GitHub, either via the command line or through a source-code browser like GitHub Desktop or SourceTree.

3) Optional, but recommended: bring your own data!

## Topics

Here's a partial list of topics that we'll cover.

- The multivariate normal distribution
- GLMs
- Linear smoothing and local regression
- Gaussian processes
- Hierarchical models and multi-level regression
- Inference for hyperparameters in hierarchical models
- Bayesian time-series and/or spatial models
- Mixture models and/or latent factor models (if time)

There are no formally required textbooks, but here are three recommended references:

- [Data Analysis Using Regression and Multilevel/Hierarchical Models](http://www.stat.columbia.edu/~gelman/arm/), by Andrew Gelman and Jennifer Hill.  An e-book version is available through the [UT Library website](http://www.lib.utexas.edu).
- _Generalized Linear Models_ by McCullagh and Nelder
- _All of Statistics_ by Larry Wasserman.


text:
# DA-Utility-Apps
Following utilities are provided as sample apps for CA PC dashboard or context views:
-	SNMP Parameter Update: set timeout and retries
-	DA Status Parameters: quickly review DA perspective of the device in context
-	Custom Attribute Update: set device or interface custom attribute value
-	Custom Attribute Create: create device of interface custom attribute

Please review DA Utility Apps.pdf for examples.

INSTALLATION
Each app is packed in a separate ZIP archive. Each ZIP can be installed through CA PM 3.1 App Deployment function.
Please review the corresponding README file for individual hints.

The apps are provided under MIT License. License file is included with each app.

NOTES
-	The apps are provided as samples and no warranties are provided or made.
-	Use them as templates for improvements and extensions
-	The apps can easily be debugged, i.e. in Chrome Debugger

repository: CA-PM/DA-Utility-Apps

repo_name: CA-PM/DA-Utility-Apps


text:
# teihencer

an [APIS](https://apis.acdh.oeaw.ac.at) based application to enhance TEI documents (therefore this hilarious project name)

We are currently updating the code base.

## installation

1. clone the repo `git clone https://github.com/acdh-oeaw/teihencer.git`
2. init apis-submodule `git submodule update --init`
3. create symbolic links from `teihencer-teimporter`, `teihencer-webapp`, and `teihencer-urls` to `apis-core/teimporter`, `apis-core/webpage` and `apis-core/custom_urls` (on windows use  `mklink /d webpage ..\teihencer-webapp`)
4. create symbolic link from `teihencer-settings` to `apis-core/apis/settings`
5. Make migrations `python manage.py makemigrations entities highlighter labels metainfo relations vocabularies webpage --settings=apis.settings.dev`

## set up (merely for internal development)

1. create a git repo e.g. 'teihencer'
2. `cd teihencer`
3. `git submodule add https://github.com/acdh-oeaw/apis-core.git`

now your root directory should contain a directory called *apis-core*, and a *.gitmodules* file.

1. create a webpage application (or copy it from somewhere else) in the root directory and name it e.g teihencer-webapp
2. after this, you need to link from `apis-core/apis` to your webpage application directory. This can be achieved with a symbolic link. To create such a link on windows, type `mklink /d webpage ..\teihencer-webapp`
3. now you need to create a virtual environment and install needed packages (on windows this can be bit cumerbosome because you might have to download precompiled packages first)
4. after you env is set up, you have to create migraion files `python manage.py makemigrations entities highlighter labels metainfo relations vocabularies webpage --settings=apis.settings.dev` make sure to do this for all apps in your project

python manage.py makemigrations entities highlighter labels metainfo relations vocabularies webpage --settings=apis.settings.dev

# Workflow

## Registration (not yet implemented)

A user account is needed for managing the data created/curated/published by users.

* simple form with username, password (to decide if also email)
* A group {username} is created.
* The user {username} is linked to group {username}
* A collection {username} is created. This collection {username} has a parent collection {teihencer-all}
* The {username}-collection is related to group {user-name} and all CRUD rights for this collection given to user {username}

## Upload/Process

* user needs to be logged in
* user can upload 1-n TEI-Document(s)
* upload form requests the name of a {current-upload}-collection
** this collection can already exist (select from list)
** or this collection will be created
* anyway this collection always has a `parent_collection` the {username}-collection.
* derived entities from the uploaded document(s) will be related to {current-upload}-collection
* derived entities from the uploaded document(s) will be related to source-objects which will be created on the fly, with names taken from uploaded/processed files

# Use cases

## place entities tagged but not linked to any index

You have 1:n TEI files which are semantically annotated in a sense that place like entities a tagged like e.g. `<tei:placeName/>` or `<tei:rs[@type='place']/>`. But those elements are not in any way linked to an index like a `<listPlace>`. If so, you can upload you file and *TEIHencer* will

* add `@ref` attributes to those entities. The attribute values are md5 hashes derieved from the elements text nodes. This ensures that entities with the same text-nodes share the same `@ref`-value.
* *TEIHencer* takes the text-nodes and reconciles them against [geonames.org](http://www.geonames.org/). It tries to find matches and stores those matches in a specific collection, which can then be manually post processed/curated in a graphical user interface.
* After this curation process, the enhanced and curated place objects can be exported as TEI document.

## enrich an existing place index (`<tei:listPlace/>`)

You have already one place index but the entries are not linked to geonames (or [GND](https://portal.dnb.de)) but you want to enhance your index with information (IDs, coordinates, ...) findable on [geonames.org](http://www.geonames.org/).
To do so you can

* Upload your TEI document containing the place index.
* *TEIHencer* will parse this document and store as much information as possible (e.g. alternative placenames, place types) in it's database.
* *TEIHencer* will reconcile all parsed entities against [geonames.org](http://www.geonames.org/). It tries to find matches and stores those matches in a specific collection, which can then be manually post processed/curated in a graphical user interface.
* After this curation process, the enhanced and curated can be exported as TEI document.

# Limitations:

Geonames-API allows 2000 requests per IP per hour.

repository: acdh-oeaw/teihencer

repo_name: acdh-oeaw/teihencer


text:
# Enum <small>4.0</small>

> With the release of v3.0, the Documentation has been moved to:

- [Enum Documentation 4.x](https://konekt.dev/enum/4.x)
- [Enum Documentation 3.x](https://konekt.dev/enum/3.x)
- [Enum Documentation 2.3](https://konekt.dev/enum/2.3)
- [Documentation here is also still available](#konekt-enum-documentation)

repository: artkonekt/enum

gha_language: PHP

repo_name: artkonekt/enum