Number Theory and the RSA Public Key Cryptosystem#
Author: Minh Van Nguyen<EMAIL_ADDRESS>This tutorial uses Sage to study elementary number theory and the RSA public key cryptosystem. A number of Sage commands will be presented that help us to perform basic number theoretic operations such as greatest common divisor and Euler’s phi function. We then present the RSA cryptosystem and use Sage’s built-in commands to encrypt and decrypt data via the RSA algorithm. Note that this tutorial on RSA is for pedagogy purposes only. For further details on cryptography or the security of various cryptosystems, consult specialized texts such as [MenezesEtAl1996], [Stinson2006], and [TrappeWashington2006].
Elementary number theory#
We first review basic concepts from elementary number theory, including the notion of primes, greatest common divisors, congruences and Euler’s phi function. The number theoretic concepts and Sage commands introduced will be referred to in later sections when we present the RSA algorithm.
Prime numbers#
Public key cryptography uses many fundamental concepts from number
theory, such as prime numbers and greatest common divisors. A
positive integer \(n > 1\) is said to be prime if its factors are
exclusively 1 and itself. In Sage, we can obtain the first 20 prime
numbers using the command primes_first_n
:
sage: primes_first_n(20)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
Greatest common divisors#
Let \(a\) and \(b\) be integers, not both zero. Then the greatest common
divisor (GCD) of \(a\) and \(b\) is the largest positive integer which is
a factor of both \(a\) and \(b\). We use \(\gcd(a,b)\) to denote this
largest positive factor. One can extend this definition by setting
\(\gcd(0,0) = 0\). Sage uses gcd(a, b)
to denote the GCD of \(a\)
and \(b\). The GCD of any two distinct primes is 1, and the GCD of 18
and 27 is 9.
sage: gcd(3, 59)
1
sage: gcd(18, 27)
9
If \(\gcd(a,b) = 1\), we say that \(a\) is coprime (or relatively prime) to \(b\). In particular, \(\gcd(3, 59) = 1\) so 3 is coprime to 59 and vice versa.
Congruences#
When one integer is divided by a non-zero integer, we usually get a remainder. For example, upon dividing 23 by 5, we get a remainder of 3; when 8 is divided by 5, the remainder is again 3. The notion of congruence helps us to describe the situation in which two integers have the same remainder upon division by a non-zero integer. Let \(a,b,n \in \ZZ\) such that \(n \neq 0\). If \(a\) and \(b\) have the same remainder upon division by \(n\), then we say that \(a\) is congruent to \(b\) modulo \(n\) and denote this relationship by
This definition is equivalent to saying that \(n\) divides the
difference of \(a\) and \(b\), i.e. \(n \;|\; (a - b)\). Thus
\(23 \equiv 8 \pmod{5}\) because when both 23 and 8 are divided by 5, we
end up with a remainder of 3. The command mod
allows us to
compute such a remainder:
sage: mod(23, 5)
3
sage: mod(8, 5)
3
Euler’s phi function#
Consider all the integers from 1 to 20, inclusive. List all those integers that are coprime to 20. In other words, we want to find those integers \(n\), where \(1 \leq n \leq 20\), such that \(\gcd(n,20) = 1\). The latter task can be easily accomplished with a little bit of Sage programming:
sage: L = []
sage: for n in range(1, 21):
....: if gcd(n, 20) == 1:
....: L.append(n)
sage: L
[1, 3, 7, 9, 11, 13, 17, 19]
The above programming statements can be saved to a text file called,
say, /home/mvngu/totient.sage
, organizing it as follows to enhance
readability.
L = []
for n in range(1, 21):
if gcd(n, 20) == 1:
L.append(n)
L
We refer to totient.sage
as a Sage script, just as one would refer
to a file containing Python code as a Python script. We use 4 space
indentations, which is a coding convention in Sage as well as Python
programming, instead of tabs.
The command load
can be used to read the file containing our
programming statements into Sage and, upon loading the content of the
file, have Sage execute those statements:
load("/home/mvngu/totient.sage")
[1, 3, 7, 9, 11, 13, 17, 19]
From the latter list, there are 8 integers in the closed interval \([1, 20]\) that are coprime to 20. Without explicitly generating the list
1 3 7 9 11 13 17 19
how can we compute the number of integers in \([1, 20]\) that are
coprime to 20? This is where Euler’s phi function comes in handy.
Let \(n \in \ZZ\) be positive. Then Euler’s phi function counts the
number of integers \(a\), with \(1 \leq a \leq n\), such that
\(\gcd(a,n) = 1\). This number is denoted by \(\varphi(n)\). Euler’s phi
function is sometimes referred to as Euler’s totient function, hence
the name totient.sage
for the above Sage script. The command
euler_phi
implements Euler’s phi function. To compute
\(\varphi(20)\) without explicitly generating the above list, we proceed
as follows:
sage: euler_phi(20)
8
How to keep a secret?#
Cryptography is the science (some might say art) of concealing data. Imagine that we are composing a confidential email to someone. Having written the email, we can send it in one of two ways. The first, and usually convenient, way is to simply press the send button and not care about how our email will be delivered. Sending an email in this manner is similar to writing our confidential message on a postcard and post it without enclosing our postcard inside an envelope. Anyone who can access our postcard can see our message. On the other hand, before sending our email, we can scramble the confidential message and then press the send button. Scrambling our message is similar to enclosing our postcard inside an envelope. While not 100% secure, at least we know that anyone wanting to read our postcard has to open the envelope.
In cryptography parlance, our message is called plaintext. The process of scrambling our message is referred to as encryption. After encrypting our message, the scrambled version is called ciphertext. From the ciphertext, we can recover our original unscrambled message via decryption. The following figure illustrates the processes of encryption and decryption. A cryptosystem is comprised of a pair of related encryption and decryption processes.
+ ---------+ encrypt +------------+ decrypt +-----------+
| plaintext| -----------> | ciphertext | -----------> | plaintext |
+----------+ +------------+ +-----------+
The following table provides a very simple method of scrambling a message written in English and using only upper case letters, excluding punctuation characters.
+----------------------------------------------------+
| A B C D E F G H I J K L M |
| 65 66 67 68 69 70 71 72 73 74 75 76 77 |
+----------------------------------------------------+
| N O P Q R S T U V W X Y Z |
| 78 79 80 81 82 83 84 85 86 87 88 89 90 |
+----------------------------------------------------+
Formally, let
be the set of capital letters of the English alphabet. Furthermore, let
be the American Standard Code for Information Interchange (ASCII) encodings of the upper case English letters. Then the above table explicitly describes the mapping \(f: \Sigma \longrightarrow \Phi\). (For those familiar with ASCII, \(f\) is actually a common process for encoding elements of \(\Sigma\), rather than a cryptographic “scrambling” process per se.) To scramble a message written using the alphabet \(\Sigma\), we simply replace each capital letter of the message with its corresponding ASCII encoding. However, the scrambling process described in the above table provides, cryptographically speaking, very little to no security at all and we strongly discourage its use in practice.
Keeping a secret with two keys#
The Rivest, Shamir, Adleman (RSA) cryptosystem is an example of a public key cryptosystem. RSA uses a public key to encrypt messages and decryption is performed using a corresponding private key. We can distribute our public keys, but for security reasons we should keep our private keys to ourselves. The encryption and decryption processes draw upon techniques from elementary number theory. The algorithm below is adapted from page 165 of [TrappeWashington2006]. It outlines the RSA procedure for encryption and decryption.
Choose two primes \(p\) and \(q\) and let \(n = pq\).
Let \(e \in \ZZ\) be positive such that \(\gcd \big( e, \varphi(n) \big) = 1\).
Compute a value for \(d \in \ZZ\) such that \(de \equiv 1 \pmod{\varphi(n)}\).
Our public key is the pair \((n, e)\) and our private key is the triple \((p,q,d)\).
For any non-zero integer \(m < n\), encrypt \(m\) using \(c \equiv m^e \pmod{n}\).
Decrypt \(c\) using \(m \equiv c^d \pmod{n}\).
The next two sections will step through the RSA algorithm, using Sage to generate public and private keys, and perform encryption and decryption based on those keys.
Generating public and private keys#
Positive integers of the form \(M_m = 2^m - 1\) are called
Mersenne numbers. If \(p\) is prime and \(M_p = 2^p - 1\) is also
prime, then \(M_p\) is called a Mersenne prime. For example, 31
is prime and \(M_{31} = 2^{31} - 1\) is a Mersenne prime, as can be
verified using the command is_prime(p)
. This command returns
True
if its argument p
is precisely a prime number;
otherwise it returns False
. By definition, a prime must be a
positive integer, hence is_prime(-2)
returns False
although we know that 2 is prime. Indeed, the number
\(M_{61} = 2^{61} - 1\) is also a Mersenne prime. We can use
\(M_{31}\) and \(M_{61}\) to work through step 1 in the RSA algorithm:
sage: p = (2^31) - 1
sage: is_prime(p)
True
sage: q = (2^61) - 1
sage: is_prime(q)
True
sage: n = p * q ; n
4951760154835678088235319297
A word of warning is in order here. In the above code example, the choice of \(p\) and \(q\) as Mersenne primes, and with so many digits far apart from each other, is a very bad choice in terms of cryptographic security. However, we shall use the above chosen numeric values for \(p\) and \(q\) for the remainder of this tutorial, always bearing in mind that they have been chosen for pedagogy purposes only. Refer to [MenezesEtAl1996], [Stinson2006], and [TrappeWashington2006] for in-depth discussions on the security of RSA, or consult other specialized texts.
For step 2, we need to find a positive integer that is coprime to
\(\varphi(n)\). The set of integers is implemented within the Sage
module sage.rings.integer_ring
. Various operations on
integers can be accessed via the ZZ.*
family of functions.
For instance, the command ZZ.random_element(n)
returns a
pseudo-random integer uniformly distributed within the closed interval
\([0, n-1]\).
We can compute the value \(\varphi(n)\) by calling the sage function
euler_phi(n)
, but for arbitrarily large prime numbers \(p\) and \(q\),
this can take an enormous amount of time. Indeed, the private key
can be quickly deduced from the public key once you know \(\varphi(n)\),
so it is an important part of the security of the RSA cryptosystem that
\(\varphi(n)\) cannot be computed in a short time, if only \(n\) is known.
On the other hand, if the private key is available, we can compute
\(\varphi(n)=(p-1)(q-1)\) in a very short time.
Using a simple programming loop, we can compute the required value of \(e\) as follows:
sage: p = (2^31) - 1
sage: q = (2^61) - 1
sage: n = p * q
sage: phi = (p - 1)*(q - 1); phi
4951760152529835076874141700
sage: e = ZZ.random_element(phi)
sage: while gcd(e, phi) != 1:
....: e = ZZ.random_element(phi)
...
sage: e # random
1850567623300615966303954877
sage: e < n
True
As e
is a pseudo-random integer, its numeric value changes
after each execution of e = ZZ.random_element(phi)
.
To calculate a value for d
in step 3 of the RSA algorithm, we use
the extended Euclidean algorithm. By definition of congruence,
\(de \equiv 1 \pmod{\varphi(n)}\) is equivalent to
where \(k \in \ZZ\). From steps 1 and 2, we already know the numeric
values of \(e\) and \(\varphi(n)\). The extended Euclidean algorithm
allows us to compute \(d\) and \(-k\). In Sage, this can be accomplished
via the command xgcd
. Given two integers \(x\) and \(y\),
xgcd(x, y)
returns a 3-tuple (g, s, t)
that satisfies
the Bézout identity \(g = \gcd(x,y) = sx + ty\). Having computed a
value for d
, we then use the command
mod(d*e, phi)
to check that d*e
is indeed congruent
to 1 modulo phi
.
sage: n =<PHONE_NUMBER>835678088235319297
sage: e =<PHONE_NUMBER>300615966303954877
sage: phi =<PHONE_NUMBER>529835076874141700
sage: bezout = xgcd(e, phi); bezout # random
(1,<PHONE_NUMBER>019967172592779313, -1667095708515377925087033035)
sage: d = Integer(mod(bezout[1], phi)) ; d # random
4460824882019967172592779313
sage: mod(d * e, phi)
1
Thus, our RSA public key is
and our corresponding private key is
Encryption and decryption#
Suppose we want to scramble the message HELLOWORLD
using RSA
encryption. From the above ASCII table, our message maps to integers
of the ASCII encodings as given below.
+----------------------------------------+
| H E L L O W O R L D |
| 72 69 76 76 79 87 79 82 76 68 |
+----------------------------------------+
Concatenating all the integers in the last table, our message can be represented by the integer
There are other more cryptographically secure means for representing our message as an integer. The above process is used for demonstration purposes only and we strongly discourage its use in practice. In Sage, we can obtain an integer representation of our message as follows:
sage: m = "HELLOWORLD"
sage: m = [ord(x) for x in m]; m
[72, 69, 76, 76, 79, 87, 79, 82, 76, 68]
sage: m = ZZ(list(reversed(m)), 100) ; m
72697676798779827668
To encrypt our message, we raise \(m\) to the power of \(e\) and reduce
the result modulo \(n\). The command mod(a^b, n)
first computes
a^b
and then reduces the result modulo n
. If the exponent
b
is a “large” integer, say with more than 20 digits, then
performing modular exponentiation in this naive manner takes quite
some time. Brute force (or naive) modular exponentiation is
inefficient and, when performed using a computer, can quickly
consume a huge quantity of the computer’s memory or result in overflow
messages. For instance, if we perform naive modular exponentiation
using the command mod(m^e, n)
, where m
, n
and e
are as
given above, we would get an error message similar to the following:
mod(m^e, n)
Traceback (most recent call last)
...<ipython console> in <module>()
.../sage/rings/integer.so
in sage.rings.integer.Integer.__pow__ (sage/rings/integer.c:9650)()
RuntimeError: exponent must be at most<PHONE_NUMBER>
There is a trick to efficiently perform modular exponentiation, called
the method of repeated squaring, cf. page 879 of [CormenEtAl2001].
Suppose we want to compute \(a^b \mod n\). First, let
\(d \mathrel{\mathop:}= 1\) and obtain the binary representation of \(b\),
say \((b_1, b_2, \dots, b_k)\) where each \(b_i \in \ZZ/2\ZZ\). For
\(i \mathrel{\mathop:}= 1, \dots, k\), let
\(d \mathrel{\mathop:}= d^2 \mod n\) and if \(b_i = 1\) then let
\(d \mathrel{\mathop:}= da \mod n\). This algorithm is implemented in
the function power_mod
. We now use the function power_mod
to
encrypt our message:
sage: m =<PHONE_NUMBER>8779827668
sage: e =<PHONE_NUMBER>300615966303954877
sage: n =<PHONE_NUMBER>835678088235319297
sage: c = power_mod(m, e, n); c
630913632577520058415521090
Thus \(c =<PHONE_NUMBER>77520058415521090\) is the ciphertext. To recover
our plaintext, we raise c
to the power of d
and reduce the
result modulo n
. Again, we use modular exponentiation via
repeated squaring in the decryption process:
sage: m =<PHONE_NUMBER>8779827668
sage: c =<PHONE_NUMBER>77520058415521090
sage: d =<PHONE_NUMBER>019967172592779313
sage: n =<PHONE_NUMBER>835678088235319297
sage: power_mod(c, d, n)
72697676798779827668
sage: power_mod(c, d, n) == m
True
Notice in the last output that the value<PHONE_NUMBER>8779827668 is the same as the integer that represents our original message. Hence we have recovered our plaintext.
Acknowledgements#
2009-07-25: Ron Evans (Department of Mathematics, UCSD) reported a typo in the definition of greatest common divisors. The revised definition incorporates his suggestions.
2008-11-04: Martin Albrecht (Information Security Group, Royal Holloway, University of London), John Cremona (Mathematics Institute, University of Warwick) and William Stein (Department of Mathematics, University of Washington) reviewed this tutorial. Many of their invaluable suggestions have been incorporated into this document.
Bibliography#
T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. The MIT Press, USA, 2nd edition, 2001.
A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone. Handbook of Applied Cryptography. CRC Press, Boca Raton, FL, USA, 1996.


The Motorola Razr flip phone is back
Party like it's 2004
Motorola have brought back the classic Razr flip phone, 15 years after the original device was released.
The new incarnation of the phone features a 6.2 inch screen which folds together when closed. The phone also has a smaller “quick view” screen on the outer shell to display notifications.
The phone will first be available to buy in the US for $1500 on December 26 with other countries following later.
You can see some videos of the new phone below:
Described by Motorola as feating an “impossible” feat of engineering, the phone now features a folding screen which closes completely.
Speaking to the BBC, Glenn Schultz who is the head of product development at Motorola said: “With the new Razr we had to rethink how to engineer a phone.”
He continued: “Our zero-gap hinge allowed us to bring to market a device that folds completely in half. Many didn’t believe we could do it, but let me tell you, it’s fun to work on something that everyone thinks is impossible.”
Back in 2018, it was revealed that Oscar winning actor Daniel Day Lewis still uses a flip phone.
Journalist Karen Han spotted the actor on the subway in New York and shared a picture of the moment, tweeting: “Daniel Day-Lewis is on my train and casually just looking at his flip phone”.
Meanwhile, Robbie Williams revealed earlier this week that he hadn’t owned a phone since 2006. Speaking on Back of the Net, Williams said: “I haven’t owned a phone since 2006. I’m always on my computer, I’ve always got Wi-Fi.”
He continued: “I got rid of [my phone] because I just don’t like them.”


title = "Account" url = "/account/:code?" layout = "octaskin" description = "Sign in, registration and account management." is_hidden = 0 [account] redirect = "home" paramCode = "code" [sociallogin] == {% partial "pages-all/header" %} {% component 'account' %} Forgotten your password?
Forgotten your password?


-
[ICML]
Learning Maximum-A-Posteriori Perturbation Models for Structured Prediction in Polynomial Time
Ghoshal Asish,
and
Honorio Jean
In International Conference on Machine Learning
2018
[arXiv]
-
[AISTATS]
Learning Sparse Polymatrix Games in Polynomial Time and Sample Complexity
Ghoshal Asish,
and
Honorio Jean
In Artificial Intelligence and Statistics
2018
[arXiv]
-
[AISTATS]
Learning Linear Structural Equation Models in Polynomial Time and Sample Complexity
Ghoshal Asish,
and
Honorio Jean
In Artificial Intelligence and Statistics. [Oral presentation. Acceptance rate: 5%.]
2018
[arXiv]
-
[NIPS]
Learning Identifiable Gaussian Bayesian Networks in Polynomial Time and Sample Complexity
Ghoshal Asish,
and
Honorio Jean
In Advances in Neural Information Processing Systems
2017
[arXiv]
-
[AISTATS]
-
[AISTATS]
Learning Graphical Games from Behavioral Data: Sufficient and Necessary Conditions
Ghoshal Asish,
and
Honorio Jean
In Artificial Intelligence and Statistics
2017
[arXiv]
-
[Allerton]
From behavior to sparse graphical games: Efficient recovery of equilibria
Ghoshal Asish,
and
Honorio Jean
In Communication, Control, and Computing (Allerton), 2016 54th Annual Allerton Conference on
2016
[arXiv]
-
[COMSNETS]
Fast training on large genomics data using distributed support vector machines
Theera-Ampornpunt Nawanol,
Kim Seong Gon,
Ghoshal Asish,
Bagchi Saurabh,
Grama Ananth,
and
Chaterji Somali
In Communication Systems and Networks (COMSNETS), 2016 8th International Conference on
2016
-
[ACM-BCB]
An ensemble SVM model for the accurate prediction of non-canonical MicroRNA targets
Ghoshal Asish,
Grama Ananth,
Bagchi Saurabh,
and
Chaterji Somali
In Proceedings of the 6th ACM Conference on Bioinformatics, Computational Biology and Health Informatics
[ Best paper award ]
2015
-
[ICRA]
Covering space with simple robots: from chains to random trees
Ghoshal Asish,
and
Shell Dylan A
In Robotics and Automation (ICRA), 2013 IEEE International Conference on
2013
-
[AAAI-SS]
Being There, Being the RRT: Space-Filling and Searching in Place with Minimalist Robots.
Ghoshal Asish,
and
Shell Dylan A
In AAAI Spring Symposium: Multirobot Systems and Physical Data Structures
2011


SMILE-WIDE is a Bayesian network library. Initially, SMILE-WIDE is a version of the well known SMILE library, augmented With Integrated Distributed Execution. This allows execution on very large datasets. As SMILE-WIDE is developed, BigData-specific capabilities will surpass the standard Bayesian network interfaces.
Programmer-facing, SMILE-WIDE is a .jar library which you can include in your software. User-facing, it is also integrated into Hive as a UDF to provide posterior probabilities of missing values, given the observed values for each instance.
SMILE-WIDE is written in Java, using the underlying SMILE library, which is written in C++. It uses Hadoop for inference on large data.
Please contact the authors with any questions or problems:
SMILE-WIDE is an Eclipse project configured to use Maven. All external dependencies are pulled from the appropriate Maven repositories. The code can be built from the IDE or directly from the command line. The basic build can be started with the following command:
mvn clean package
This creates two jars in the target directory and copies the appropriate native library
to the target/lib
directory.
The binary files are:
smile-wide-0.0.1-SNAPSHOT.jar
smile-wide-0.0.1-SNAPSHOT-job.jar
libjsmile.so
, libjsmile.jnilib
or jsmile.dll
It's possible to build for a platform different from the one running the Maven by overriding the smile.native.platform
variable. For example, when building for Hadoop on 64-bit Linux cluster with Maven or Eclipse running on OSX, the command
should be extended to:
mvn clean package -Dsmile.native.platform=linux64 -Dmaven.test.skip=true
The example below executes a Hadoop job loop which learns the parameters of
probability distributions for the kiva.xdsl
network. Note that the jar file
contains the SMILE jar in its lib directory. However, the native library
must be explicitly added to the job's distributed cache with the Hadoop's
-files
option. Additionally, since the specifics of EM require the access
to SMILE functionality locally, the .so
file should be copied to the
$HADOOP_BIN/native
directory.
hadoop jar smile-wide-0.0.1-SNAPSHOT-job.jar smile.wide.algorithms.em.RunDistributedEM \
-files em-tmp.xdsl,libjsmile.so \
-D mapred.max.split.size=250000 -D mapred.reduce.tasks=12 \
em.initial.netfile=kiva.xdsl em.work.netfile=em-tmp.xdsl \
em.data.file=pitt/kiva500k.txt em.stat.file=pitt/em-out \
em.separator=9 em.local.stat.file=em-local.txt
The file kiva.xdsl
is located in the project's input
directory; pitt/kiva500k.txt
is in the compute cluster's HDFS.
The output of the job is the local file named em-tmp.xdsl
, containing the modified kiva.xdsl
network with
learned parameters.
To test the Hive UDFs, execute the normal maven package build followed by runscripts/hivePosteriors.sh.
This
creates the target/hive-test
directory, containing all the files required for UDF test. The command to run test is:
hive -f hivePosteriors.q
Hive will import small data file and perform four queries, each calling into SMILE-WIDE UDFs.
This exception is caused by missing native library. The platform-specific library is placed in target/lib
during the Maven build,
but Hadoop and Hive must be made aware of its existence. This is done with the Hadoop's -files
option or
Hive's 'ADD FILE'. Some of SMILE-WIDE algorithms contain nontrivial local component running within the
Hadoop's client JVM. In such case the shared library should be added to $HADOOP_BIN/native directory
The SMILE-WIDE API Javadoc documentation can be generated from the command line. With 'javadoc' on the path, issue the following command:
javadoc @options.javadoc.text
This will generate HTML documentation in the 'javadocs' directory.


Some of the new features include:
Check out the Introduction for Developers and learn how you can enable Medicare Beneficiaries to connect their data to your application, service or research program.


thumbpdf(1) teTeX thumbpdf(1) NAME thumbpdf - generate thumbnail images for a PDF file created with pdftex SYNOPSIS thumbpdf [ OPTION... ] PDF_FILE DESCRIPTION thumbpdf is used to create thumbnail images of individual pages within a PDF (Portable Document Format) document. USAGE First run pdftex(1) on your document to create a PDF file. Then run thumbpdf to generate the thumbnails, a PDF file containing the thumb‐ nails, and a pdfTeX file to include the thumbnails in the PDF file. Finally, run pdftex(1) on your file again to create the final PDF file. thumbpdf calls gs(1) to generate PNG images of the pages within PDF_FILE, and pdftex(1) to create a PDF file containing the thumbnail images. OPTIONS --help print usage --(no)makepng make PNG thumbnail images (default: true) --(no)makepdf generate new PDF file containing the thumbnails (default: true) --(no)makedef create a TeX file for pdftex(1) to read in (default: true) --(no)quiet suppress messages (default: false) --(no)verbose verbose messages (default: false) --(no)debug print debugging information while parsing (default: false) --resolution res resolution for GhostScript step (default: 9) --compress n \pdfcompresslevel for thumbpdf.pdf (0-9; default: 9) --device | pngdev GhostScript PNG device; dev = `mono´, `gray´, `16´, `256´, `16m´ (default: `png16m´) FILES thumbnn.png PNG thumbnail images thumbpdf.pdf PDF file containing thumbnail images thumbpdf.tex A pdfTeX program to include the thumbnails file thumbpdf.log pdfTeX log file thumbpdf.sty a LaTeX package to be included in files for which a user wants to generate thumbnails SEE ALSO gs(1), pdftex(1). Web page: <http://tug.org/teTeX/> BUGS None known, but report any bugs found to the author. COPYRIGHT Copyright © 1999. thumbpdf is distributed under version 1, or (at your option) a later version of the LaTeX Project Public License. AUTHOR thumbpdf was written by Heiko Oberdiek<EMAIL_ADDRESS>This manual page was written by C.M. Connelly<EMAIL_ADDRESS>for the Debian GNU/Linux system. It may be used by other distributions without contacting the author. Any mistakes or omissions in the manual page are my fault; inquiries about or corrections to this manual page should be directed to me (and not to the primary author). teTeX September 2000 thumbpdf(1)


COMMAND SUMMARY
This section gives a general overview of the available XSI commands.
Subtopics:
AGENDA_COMMANDS
COOL_COMMANDS
DEBUGGING_COMMANDS
DEFFACTS_COMMANDS
DEFFUNCTION_COMMANDS
DEFGLOBAL_COMMANDS
DEFMODULE_COMMANDS
DEFRULE_COMMANDS
DEFTEMPLATE_COMMANDS
ENVIRONMENT_COMMANDS
FACT_COMMANDS
GENERIC_FUNCTION_COMMANDS
MEMORY_COMMANDS
TEXT_PROCESSING_COMMANDS
PROFILING_COMMANDS


{% extends "base.html" %} {% block title %} About {% endblock %} {% macro render_content(contributors) %}
Refurence is a useful tool for storing and showing images+text references to help artists make art
it can be a hassle for an artist and client to easily communicate what they
Email<EMAIL_ADDRESS>for any issues, questions, or comments
- ask for permission to create a folder in your Dropbox via the Dropbox API - create its own folder in your Dropbox Apps folders - upload, delete, and modify files within its own Dropbox folder - in order to make images publicly visible, refurence will automatically "Share so anyone with a link can view" all files in the refurence folder - store text and URLs that you add to your refurence into a database
- store your password. refurence forces users to login with their credentials through Dropbox; this means refurence will never see your password - share your data. not like its very useful anyway :p - show ads or make any money of any kind.
- refurence uses Dropbox for ease of hosting and sharing images for public viewing - refurence does NOT have access to anything other than files in the folder it creates in your Dropbox - this folder is created as "/Apps/refurence" - using Dropbox gives the user more control over which images are hosted and how - using Dropbox simplifies the process of authenticating users


Feel the growth mindset.
Learn-to.code with us.
Learn-to.code is the only school that learns you what you want
A lot of future developers get into coding without too much actual planning.
They enroll in a school or bootcamp at first chance, only to discover that they would prefer a different path.
"I can't belive I enrolled in UX/UI. I want to be a sysadmin!"
That's why we at Learn-to.code don't predefine you.
Learn the foundations, get a feel for different
paths and choose the one that fits you best!
For any aditional questions please read the FAQ. If you don't find an answer there feel free to contact us at support@learn-to.code


Time measurement is carried out using Benchmark.js.
Esprima version .
Please wait...
| Source | Size (KiB) | Esprima | parse-js | ZeParser | Narcissus |
|---|---|---|---|---|---|
| jQuery 1.7.1 | |||||
| Prototype <IP_ADDRESS> | |||||
| MooTools 1.4.1 | |||||
| Ext Core 3.1.0 | |||||
| Total |
Warning: Since each parser has a different format for the syntax tree, the speed is not fully comparable (the cost of constructing different result is not taken into account). These tests exist only to ensure that Esprima parser is not ridiculously slow compare to other parsers.
parse-js is the parser used in UglifyJS. It's a JavaScript port of the Common LISP version. This test uses parse-js
from UglifyJS version 1.2.5 (Jan 13 2011).
ZeParser is from github.com/qfox/ZeParser revision 51e52908 (dated Dec 24 2011). Beside the syntax tree, ZeParser also provides location info for the syntax nodes, as well as the list of all tokens.
Narcissus is Mozilla's JavaScript engine implemented in JavaScript. This test uses the parser from Narcissus, taken from its
code repository revision b5caa7df (dated Oct 26 2011). Narcissus supports many extensions (generators, comprehension, destructuring, etc) and therefore it takes longer to parse JavaScript code. Narcissus parser output also contains the location info for the syntax node. Note: Narcissus will not work if Object.create
and Object.defineProperty
are not available.


{% for post in site.posts %}
{{ post.description }}
{% for line in post.API %}
Powered by {{ line.title }} API
{% endfor %}


YunYon
PH
: Banking Solutions
Dashboard
(current)
Cooperatives
Loans
1
Status
%username%
Log Out
Loan
Cooperative
Address
Loan Amount
Action
{{ loan.cooperative }}
{{ loan.address }}
{{ loan.amount }}
Approve


Take stock of your investments in less than 10 minutes with new show from MarketWatch and Barron’s
by MarketWatchBarron’s and MarketWatch have teamed up to break down the most important business and financial news for investors everywhere.
Every Monday before the opening bell our “MarketBrief” will give investors the information they need to gain an edge in their financial lives.
Our editors and reporters tackle the big financial and economic stories of the week, in order to help viewers make sense of what the news means for their money.
The series, which is produced at Nasdaq’s MarketSite in New York, cuts through the noise and breaks down the most important developments for investors of all levels — from beginners to billionaires.
Watch the first episode below:


RAISE
Section: Linux Programmer's Manual (3)
Updated: 2014-03-10
Index
Return to Main Contents
NAME
raise - send a signal to the caller
SYNOPSIS
#include <signal.h>
int raise(int sig);
DESCRIPTION
The
raise()
function sends a signal to the calling process or thread.
In a single-threaded program it is equivalent to
kill(getpid(), sig);
In a multithreaded program it is equivalent to
pthread_kill(pthread_self(), sig);
If the signal causes a handler to be called,
raise()
will return only after the signal handler has returned.
RETURN VALUE
raise()
returns 0 on success, and nonzero for failure.
ATTRIBUTES
Multithreading (see pthreads(7))
The
raise()
function is thread-safe.
CONFORMING TO
C89, C99, POSIX.1-2001.
NOTES
Since version 2.3.3, glibc implements
raise()
by calling
tgkill(2),
if the kernel supports that system call.
Older glibc versions implemented
raise()
using
kill(2).
SEE ALSO
getpid(2),
kill(2),
sigaction(2),
signal(2),
pthread_kill(3),
signal(7)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ATTRIBUTES
-
- Multithreading (see pthreads(7))
-
- CONFORMING TO
-
- NOTES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:55:02 GMT, September 18, 2014


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
M.Cr.C.No.8237/2008 (Madhya Pradesh Pollution Control Board Vs. M/s Gwalior Distillers Limited Rairu and others) 1 10.7.2014. Petitioner by Shri Harish Dixit, Advocate. Heard. This application under Section 378 (4) of the Cr.P.C., has been filed by the petitioner assailing the judgment of acquittal of the respondents under sections 33, 43, 44 read with sections 47
and 49 of the Water (Prevention and Control of Pollution) Act, 1974 recorded by the Additional Chief Judicial Magistrate, Gwalior in Criminal Complaint No.9856/2008.
Learned counsel for the petitioner submits that the learned Trial Court has not correctly appreciated evidence and material available on record. The learned Trial Court has committed grave error of law in holding that the complaint has not been filed by the competent authority. It is further submitted that the learned Trial Court has committed error in holding that the Industrial Unit is running and discharging effluent under the consent of the complainant Board. The learned Trial Court has also committed an error with regard to sampling procedure and overlooking the provisions of Section 21 of the Act and the evidence in that regard and prayed for grant of leave to prefer an appeal.
I have perused the impugned judgment and copies of the statements of the witnesses R.K. Gupta (CW.1), Sanjeev Kumar Saxena (CW.2) and S.N. Patil (CW.3) along with documents M.Cr.C.No.8237/2008 (Madhya Pradesh Pollution Control Board Vs. M/s Gwalior Distillers Limited Rairu and others) 2 Ex.P.1 to Ex.P.18.
Considering the evidence and material available on record, this application deserves to be allowed and is hereby allowed.
Registry is directed to register the matter under the head of the Criminal Appeal.
This M.Cr.C., is accordingly allowed and disposed of.
(D.K.Paliwal) Judge pawar/-


| ID |
Name |
Business |
Table Type |
Source Type |
Remark |
Created By |
Created Date |
Last Modified By |
Last Modified Date |
|
|---|---|---|---|---|---|---|---|---|---|---|
| {{source.id}} | {{source.name}} | {{source.tableType}} | {{source.sourceType}} | {{source.remark}} | {{source.createdBy}} | {{source.createdDate | date:'medium'}} | {{source.lastModifiedBy}} | {{source.lastModifiedDate | date:'medium'}} |
|


{% extends "header.html" %} {% block body %}
Now that you've decided that you'd like to embark on a Flask development experience, we first have to set up our environment. Depending on where you watch your tutorial, many people might have you first make a local development environment. I do not really see the use in this, as it only creates a lot of headache for you down the road. Moving from a local environment, especially if you were operating in Windows, to a remote environment, which will be Linux most likely, is just plain a massive pain!
So, first we're going to need a domain name and a hosting plan somewhere that gives us root access to the server (this means no shared hosting places like GoDaddy... etc).
At the time of my writing this, I think these three options can be good choices. I've personally used all of these extensively. They all get ~$100 a month from me:
1. Linode
Definitely the best host that I've ever had. No down-time in the few years that I've been with them. I currently use them to host This website, SeaofBTC.com and Sentdex.com.
Second best host in my opinion. Could be the best, but recently the pricing models switched compared to Linode, where you basically get half of what you could get at Linode. I've also had more down-times with Digital Ocean. That said, they have a $5/mo option, which I absolutely love, and I host five different smaller websites on there, as well as a few servers.
These guys can be a great choice as well. You can host your Flask app here for absolutely free. They'll give you a subdomain, which is your name.pythonanywhere.com. I put them as #3 for a few reasons. First, I think it is better to have full control of your server. You will not get that here. It will be far easier to quickly set up your Flask environment, but there is certainly a cost there. Second, I do not think PythonAnywhere is a good place just yet to actually host a website. They have greatly improved over the years that I've been with them, but they do have their issues. I have some strange script freezing glitch that has been ongoing for a while, and they do shutdown for maintenance fairly frequently. All of that said, it's a great place to check out.


Privacy Policy
Absolutely no advertisements, cookies, trackers, or analytics.
Embedded Media Policy
All external media, such as songs and videos must be explicity loaded by the user. By preventing embedded media from loading automatically, users are given a choice of what third party services they trust to connect with.


We aim to create an online platform for patients with cancer to have access to discounted products and services to help maximise their emotional health, well-being and happiness
Dr Anisha Ramessur is a Medical Oncology Specialist Registrar doing a PhD in the Department of Surgery and Cancer at Imperial College London and Ugne Peistaraite is a PhD candidate in Performance Science at the Centre for Performance Science, a partnership of Royal College of Music and Imperial College London. Together we are working on a project that is aimed at maximising the quality of life for patients with cancer.
There is evidence that individuals who have been diagnosed with cancer can experience a range of emotional challenges and their perception of attractiveness can be negatively affected whilst undergoing treatment. Some patients may feel they are not experiencing a full life and in turn can adversely impact their feeling of well-being and happiness. We recognise that whilst the NHS and cancer charities provide a great deal of information and support, there are some services and products which are not provided or are too expensive. The ultimate aim of this project is to create an online platform for patients with cancer to have easy access to tools for better coping strategies, products and services to enhance their feeling of attractiveness and to provide affordable access to experiences to enrich their lives.
We are looking for patients with cancer and their families to interview to understand what emotional challenges they faced and their coping strategies, and what products and services they felt contributed to their well-being and happiness. If you are interested in taking part in our interviews then please leave your name and contact details via this link: https://www.surveymonkey.co.uk/r/T6G78TV
Call to Action »Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente esse necessitatibus neque sequi doloribus.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente esse necessitatibus neque sequi doloribus totam ut praesentium aut.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente esse necessitatibus neque.


Transitions
The jQuery Mobile framework includes a set of CSS-based transition effects that can be applied to any page link or form submission with Ajax navigation.
The jQuery Mobile framework includes a set of CSS-based transition effects that can be applied to any page link or form submission with Ajax navigation.


Top page
Score
Shop
JS World
Form
Map
Anima
Mount Everest
Stupa
Kalinchowk
Sukute Beach
Jiri
Previous
Next


Double Jeopardy **
Rated on a 4-star scale Screening venue: Odeon (Liverpool City Centre) Released in the UK by UIP on January 28, 2000; certificate 15; 105 minutes; country of origin USA; aspect ratio 2.35:1
Directed by Bruce Beresford; produced by Leonard Goldberg. Written by Douglas S Cook, David Weisberg. Photographed by Peter James; edited by Wark Warner.
CAST..... Ashley Judd..... Libby Parsons Tommy Lee Jones..... Travis Lehman Bruce Greenwood..... Nick Parsons Annabeth Gish..... Angie Roma Maffia..... Margaret Davenia McFadden..... Evelyn
"Double Jeopardy" wants us to be amazed at the ingenuity of its gimmick, and enthralled by the emotion of its story. But the gimmick doesn't make any logical sense and the drama has all the power of a soppy TV movie. All that remains is an unremarkable thriller plot, which moves dully and mechanically toward a foregone conclusion.
Ashley Judd stars as Libby Parsons, an affluent young wife and mother who, while on a boating trip, wakes to find that her husband Nick has gone missing, and her cabin is covered in blood. There is a knife on the scene. There is no sign of anyone else's presence. Libby is convicted of Nick's murder and sent down.
While in prison, Libby discovers over the phone that Nick (Bruce Greenwood) is still alive, having faked his own death. So she behaves well, gets released on parole and determines to track her villainous spouse down, to be able to clear her name and get her son back. She steals a car from her parole officer, a sullen ex-law professor named Travis Lehman (Tommy Lee Jones), then dashes across America on her search. She feels comfortable about how to handle Nick when she finds him, because of something she's been told by a fellow jailbird: Under the 'double jeopardy' clause of the US constitution's fifth amendment, nobody can be convicted twice for the exact same crime -- so Libby can kill her husband and the law can't touch her for it.
Yes, this is the gimmick I was referring to, and it's not half as clever as the screenwriters seem to think. Since Nick is has been pronounced dead, you see, Libby would officially be killing someone else, and could of course be convicted. Besides, she would have to serve the remainder of her life sentence for violating her parole conditions -- they do not allow her to leave the state in which she resides or own a weapon of any kind, let alone get away with all the destruction of property she perpetrates over the course of her country-wide trek.
Travis is supposed to be chasing her all the while, but "Double Jeopardy" never develops into an effective game of cat-and-mouse, because we see very little from the pursuer's point of view. Most scenes just show Libby getting a little closer to finding Nick, then almost getting caught by Travis and having to scarper. We're supposed to be engaged by Libby's desire to find her son, but I don't know why -- although the film's opening passages do indeed show her enjoying maternal pastimes, they come across as the typical calm-before-the-storm moments that are present in every Hollywood thriller, rather than something for us to get passionately wrapped up in.
Judd holds her own rather well as the film's heroine, creating body language tough enough to convince us she's really survived an ordeal, yet preserving the tender gaze of a caring parent. Jones is okay, too, but he's played the same role before; in "The Fugitive", which was a great thriller, and its sequel "U.S. Marshals", which was certainly not. "Double Jeopardy" ranks somewhere in between those two films -- it's not amazing or annoying, just a pretty well put-together popcorn flick that's impossible to care a damn about.
COPYRIGHT(c) 2000 Ian Waldron-Mantgani
Please visit, and encourage others to visit, The UK Critic's website, which is located at http://members.aol.com/ukcritic
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Build your Order!
Build your Sandwich and click add to cart to add it. Click Next to proceed to Drinks.
1. Type
Vegetarian
{% for key, value in veg.items() %}
{{key}} - {{value}}
{% endfor %}
Non-Vegetarian
{% for key, value in nonveg.items() %}
{{key}} - {{value}}
{% endfor %}
2. Bread
Select your type of bread
Wheat Bread
Milk Bread
Italian bread
3. Vegetables
Select vegetables of your choice
{% for key, value in vegetables.items() %}
{{key}} - {{value}}
{% endfor %}
4. Condiments
Add your condiments
{% for key, value in condiments.items() %}
{{key}} - {{value}}
{% endfor %}


Using the Freeze Drawings extension, you can save DWG files to a directory on the hard drive. On the Freeze drawings dialog, click Options in order to select the options for copying files and determine all necessary parameters:
The name of a saved file has the following format:
Base name + "-" + View family + "-"+View name
If you do not specify a Base name, the name of the saved file has the following format:
View family + "-"+View name
If the target directory folder contains a file of the specified name, an overwrite dialog displays.


module Concurrent::Concern::Observable
The [observer pattern](en.wikipedia.org/wiki/Observer_pattern) is one of the most useful design patterns.
The workflow is very simple:
-
an `observer` can register itself to a `subject` via a callback
-
many `observers` can be registered to the same `subject`
-
the `subject` notifies all registered observers when its status changes
-
an `observer` can deregister itself when is no more interested to receive
event notifications
In a single threaded environment the whole pattern is very easy: the `subject` can use a simple data structure to manage all its subscribed `observer`s and every `observer` can react directly to every event without caring about synchronization.
In a multi threaded environment things are more complex. The `subject` must synchronize the access to its data structure and to do so currently we're using two specialized ObserverSet: {Concurrent::Concern::CopyOnWriteObserverSet} and {Concurrent::Concern::CopyOnNotifyObserverSet}.
When implementing and `observer` there's a very important rule to remember: **there are no guarantees about the thread that will execute the callback**
Let's take this example “` class Observer
def initialize @count = 0 end def update @count += 1 end
end
obs = Observer.new [obj1, obj2, obj3, obj4].each { |o| o.add_observer(obs) } # execute [obj1, obj2, obj3, obj4] “`
`obs` is wrong because the variable `@count` can be accessed by different threads at the same time, so it should be synchronized (using either a Mutex or an AtomicFixum)
Attributes
Public Instance Methods
@!macro observable_add_observer
Adds an observer to this set. If a block is passed, the observer will be created by this method and no other params should be passed. @param [Object] observer the observer to add @param [Symbol] func the function to call on the observer during notification. Default is :update @return [Object] the added observer
# File lib/concurrent/concern/observable.rb, line 61 def add_observer(observer = nil, func = :update, &block) observers.add_observer(observer, func, &block) end
@!macro observable_count_observers
Return the number of observers associated with this object. @return [Integer] the observers count
# File lib/concurrent/concern/observable.rb, line 101 def count_observers observers.count_observers end
@!macro observable_delete_observer
Remove `observer` as an observer on this object so that it will no longer receive notifications. @param [Object] observer the observer to remove @return [Object] the deleted observer
# File lib/concurrent/concern/observable.rb, line 82 def delete_observer(observer) observers.delete_observer(observer) end
@!macro observable_delete_observers
Remove all observers associated with this object. @return [Observable] self
# File lib/concurrent/concern/observable.rb, line 91 def delete_observers observers.delete_observers self end
As `#add_observer` but can be used for chaining.
@param [Object] observer the observer to add @param [Symbol] func the function to call on the observer during notification. @return [Observable] self
# File lib/concurrent/concern/observable.rb, line 70 def with_observer(observer = nil, func = :update, &block) add_observer(observer, func, &block) self end


--- title: Sample keywords: fastai sidebar: home_sidebar summary: "Create samples from Newspaper Navigator " description: "Create samples from Newspaper Navigator " nb_path: "nbs/01_sample.ipynb" ---
assert (
get_json_url(1860)
== "https://news-navigator.labs.loc.gov/prepackaged/1860_photos.json"
)
assert (
get_json_url(1950)
== "https://news-navigator.labs.loc.gov/prepackaged/1950_photos.json"
)
assert (
get_json_url(1950, "ads")
== "https://news-navigator.labs.loc.gov/prepackaged/1950_ads.json"
)
We can also test that this returns what we think inside the notebook. These tests are often hidden in the documentation. However, inside the notebook, there will usually be a cell below a function definition that includes some tests.
test_json = load_json(
"https://news-navigator.labs.loc.gov/prepackaged/1950_photos.json"
)
assert type(test_json[0]) == dict
assert type(test_json) == list
This works well for a smallish file but if we try this with the 1905_ads.json file which is ~3.3GB we will likely run out of memory. For example running
with requests.get('https://news-navigator.labs.loc.gov/prepackaged/1910_ads.json') as r:
data = json.loads(r.content)
len(data)
on a Google Colab instance with 25GB of RAM causes a crash.
One way to get around this would be to throw more RAM at the problem. However, since we only want to sample the JSON and don't need to work with the whole dataset, this seems wasteful. So instead, we'll use ijson
, a Python library for streaming JSON.
We can see how this works for a URL from Newspaper Navigator if we create a request via Requests using stream=True
to return a streaming version of the response.
r = requests.get(get_json_url(1850, "ads"), stream=True)
We can pass this response to ijson
. In this case we just parse an item at a time. If the JSON is really big this might already be too much. ijson
allows for much more granular parsing of JSON but for what we need, parsing by item is fine. We can see what the return of this looks like
objects = ijson.items(r.raw, "item")
objects
We get back something from _yajl2
this is the underlying parser ijson
is using. See ijson
docs for more on available parsers.
We can call next on this object to start iterating over it, one item at a time. If we look at the keys of the first response, you'll see that this is one entry from the original JSON data.
first = next(objects)
first.keys()
r.close()
data = {"a": "one", "b": "two", "c": "three"}
len(data)
If we try and do this with our objects
we get an error TypeError: object of type '_yajl2.items' has no len()
. This is because the point if of ijson is to avoid loading json into memory so we don't know how long the total data will be.
We can get around this by using the toolz libraries itertoolz.count method. count
is similar to len
except that it can work on lazy sequences, i.e. something with a next
attribute. Unfortunately, this ends up being relatively slow because we still need to go through all of the data, which means that although we can avoid loading the data into memory, we still need to stream it to get the length. We usually won't need to call this repeatedly, but if we call this function multiple times, we cache the results to make sure we don't calculate the length of the same data multiple times.
count_json_iter
counts the length of a json file loaded via URL
.
count_json_iter("https://news-navigator.labs.loc.gov/prepackaged/1850_photos.json")
url = "https://news-navigator.labs.loc.gov/prepackaged/1850_photos.json"
assert type(count_json_iter(url)) == int
assert len(json.loads(requests.get(url).content)) == count_json_iter(url)
get_year_size(1850, "photos")
Returns the year sizes for a given kind, taking a step size step
. For example, to get the number of photos in the news-navigator dataset between 1850 and 1860 for every year:
%%time
get_year_sizes("photos", 1850, 1855, step=1)
assert len(get_year_sizes("photos", 1850, 1860, step=1)) == 11
assert len(get_year_sizes("photos", 1850, 1860, step=2)) == 6
Since we want a subset of the Newspaper Navigator datasets we can either work with for annotation or inference, we want to create samples. Sampling in Python can be complicated depending on the type of population you are working with and your sample's properties. Usually, we can do something relatively simple. For example, if we want to sample from a selection of books, we could do:
import random
books = ["War and Peace", "Frankenstein", "If They Come in the Morning"]
random.sample(books, 1)
However, we run into the same problem as trying to get the length of a JSON dataset that wouldn't fit into memory above. For example, we want to sample $k$ examples from one of our JSON files that we can't load into memory. To get around this, we can use Reservoir_sampling:
Reservoir sampling is a family of randomized algorithms for choosing a simple random sample without replacement of k items from a population of unknown size n in a single pass over the items. The size of the population n is not known to the algorithm and is typically too large to fit all n items into main memory. The population is revealed to the algorithm over time, and the algorithm cannot look back at previous items.
Now we sample whilst only loading a small number of items into memory at one time. This does come at some cost, mainly speed. There are faster ways of sampling from a stream but this isn't the main bottle neck for sampling in this case. We can for example sample from a large range of numbers without memory issues.
sample_stream(range(1, 100000), 5)
We can still sample from lists
names = ["Karl Marx", "Rosa Luxenburg", "Raya Dunayevskaya", "CLR James"]
sample_stream(iter(names), 2)
calc_year_from_total(10, 1850, 18950, 1)
We now start building up a class nnSampler
for doing our proper sampling.
sample_year("photos", 1, 1850)
assert (
len(sample_year("maps", 0.1, 1850)) == 1
) # test we always have a sample size of at least one
create_sample
returns a dataframe which samples from Newspaper Navigator. year_sample
controls whether you want sample_size
to be for each year or for you entire sample. Selecting year_sample
false will return a sample of a size close to what you define in sample_size
. This is useful for example if you plan to annotate your sample with some new labels.
For any years where sample size is larger than the sample available you just get everything for that year.
sampler = nnSampler()
sampler.create_sample(5, step=2, end_year=1852, year_sample=False)
download_sample
is used to download images from a sample
sampler = nnSampler()
sampler
sampler.population
df = sampler.create_sample(
sample_size=10, kind="photos", start_year=1850, end_year=1855, reduce_memory=True
)
df.head(5)
We may want to work with images locally. We can download them using the download_sample
method.
sampler.create_sample(
sample_size=10, kind="ads", start_year=1850, end_year=1850, reduce_memory=True
)
sampler.download_sample("test")
from nbdev.export import notebook2script
notebook2script()


Case registered against Thirumavalavan
by R.KrishnamoorthySpecial CorrespondentPERAMBALUR: The Perambalur police have registered a case against president of Viduthalai Chiruthaigal Katchi Thol.Thirumavalavan based on a complaint lodged by Hindu Munnani Town Secretary Kannan alleging that the former had "uttered words prejudicial to national integration, wounded and outraged the religious feelings of Hindus at Puducherry earlier this month.”
The case was registered on Tuesday under IPC sections 153 B (Imputations, assertions prejudicial to national integration), 295 A (Deliberate and malicious acts, intended to outrage religious feelings of any class by insulting its religion or religious beliefs), 298 (Uttering, words, etc., with deliberate intent to wound the religious feelings of any person) and 504 (Intentional insult with intent to provoke breach of the peace).
Eom


In-Camera Effects are special effects achieved by manipulating the camera or its parts. The effect exists on the original camera negative or video recording before it is sent to a lab or modified. In-Camera effects include using filters like the Gaussian Girl effect, mattes, or lighting artifacts, like lens flares; Camera Tricks like zooms, pans, Forced Perspective, and dolly shots; time/speed effects like time-lapse, slow- or fast-motion, reverse motion, stop-tricks or speed ramping; or specialty films like infrared or negative image.
A number of in-camera tricks were developed in the early days of film when there was not only the obvious lack of CGI but also a lack of film manipulating technology. Of course, then a number will have been replaced by easier, more technologically advanced means but some also died out because they were only applicable to black and white. Coloured filters, for instance, could be used to block out light from red or green, rendering some objects or makeup hidden to the monochrome camera until the filters were removed, creating a reveal.
Many older techniques still remain. Filters are now used but for shifts to the infrared to create surreal lighting effects. Over- or undercranking (where the film is moved faster or slower through the reels) is still used to produce slow or sped up motion.
Some other interesting in-camera effects:
- With older, non-digital cameras, using a black screen or cover so that only part of the film is exposed (and thus the rest can have something else filmed onto it, for instance the image on a TV screen.
- A dark filter could be used to simulate night-time while shooting in daytime. Unfortunately it does nothing to eliminate shadows caused by sunlight, leading to the slightly hilarious effect of having obvious sun-shadow at night.
- A filmmaker could create a "ghost" by exposing the film to the same scene twice, once with and once without the actor.
- Matte paintings were often used as backdrops with the focus kept off them. Bipacking was a method where instead footage was shot of just the matte and then was placed in the camera, overlayed on top of the unexposed film. When the camera ran and the film was exposed, the image of the matte would be imprinted on it.
Examples:
Digital cameras
- Even inexpensive video cameras from 2015 and possibly earlier supported selecting sepia (all shades of brown) and black-and-white through a menu on the camera's viewscreen.
- As of 2019, Sub-$100 video cameras producing 2.7K video can provide sepia, black and white, cool (increased bluing), warm (increased yellowing) as well as shades of all blue, all red, all green, and all purple, plus a black-and-white "blur" effect. A YouTube video demonstrating all of these and some others can be found here.
Film
- Every single effect in Bram Stoker's Dracula (1992), including some quite complicated shots.
- In 2001: A Space Odyssey, the long shot of astronauts in the lunar excavation used bipacking.
- Cinematographer Karl Struss made pioneering work with filters. He would have actors' make-up be done in red or green and then put red or green filters to take them out of the picture. The filter could be slowly changed and the make-up would be changed.
- Dr. Jekyll and Mr. Hyde (1931) had the early stage of the Jekyll to Hyde transformation made entirely on screen with the camera on him, the physical character change being done with the use of filters and decent acting. (He then drops off screen briefly while the finishing touches — a wig and prosthetic fangs — are put in place.)
- In Ben-Hur (the 1925 one), the lepers' sores were done in red make up and then filtered out for the healing scene.
- The Tracking Zoom is made by having a camera on a dolly zoom in while the dolly moves away. The subject stays in the same place but the perspective of everything around it changes. You've probably seen it many times, sometimes the human eye can give this effect but for an example, the distorting zoom in on Sheriff Brody's face in Jaws.
- Traditional matte paintings were used even as recently as the first Terminator movie: the last shot where Sarah drives off into the desert, and A Storm Is Coming.
- An In-Camera example is the "He Plays The Violin" dance in the garden during 1776, seen here, the dolly shot starting at 3:25.
- A modern, digital camera example came in 28 Days Later. All of the scenes of the infected were shot with the shutter speed of the Canon XL-1 camera set very high, resulting in an unsettling and "jumpy" look.
- A hand-cranked camera was used during part of the shootout in Hot Fuzz, allowing both undercranking and overcranking to be used for added dramatic effect.
Live Action Television
- A version of the filter technique was also used in The Twilight Zone episode "The Howling Man" to depict the title character's transformation.
- The TV Star Trek series would achieve the shaking of the bridge when under attack by simply shaking the camera and getting the crew to wobble about. Later SF productions with a bigger budget, such as the Trek films, replaced the cheesy effect with Practical Effects: sets would be placed on top of a large platform and the camera would be still while the entire set was shaken. That would be counted as Practical Effects.
- Spoofed in Top Gear (UK) when Jeremy Clarkson attempted to get a 'dramatic soft focus' effect by smearing petroleum jelly on the camera lens. Didn't go well.
- An in-color version of the filter trick: Zaphod's color-changing sunglasses in the TV version of The Hitchhiker's Guide to the Galaxy were made out of polarizing filters, with another polarizer on the camera lens. When all three were oriented the same way, light passed through freely and the glasses were clear. When the one on the camera was turned, it blocked the light that the glasses let through, turning them black while everything else appeared unchanged.
- Doctor Who used many of these during the Classic era:
- The Hartnell, Troughton and first Pertwee title sequences were used with 'howlaround' feedback (pointing a film camera at a monitor of its own output). The initial light patterns were created with a pen light.
- The TARDIS teleportation is the Stop Trick and a dissolve.
- "The Keys of Marinus" had part of the lens blacked out with a filter and then the footage refilmed, allowing the teleportation effect. A similar effect is used for the shrinking grain in "Planet of the Giants". Attentive viewers may notice that before teleporting the TARDIS crew will always move in front of a completely black object.
- "The Web Planet" used copious filters on the lens to create a misty atmosphere (or maybe obscure some of the more obvious screw holes and bits of operator tshirt on the Zarbi).
- The second Pertwee and first Tom Baker title sequences were generated with slit scan photography, inspired by the travel effect used in 2001: A Space Odyssey. They are also ridiculously beautiful even by modern standards.
- The second Tom Baker title sequence and those of Davison and Colin Baker (the 'starfield') were generated using similar slit scan techniques and a camera filter that gave light a prismatic, rainbow look.
- From the new series, when Bill holds a mirror and the camera pans to reveal to her that she's a Mondasian Cyberman.


Build and test codecov
DSTU OpenSSL engine and key reading library
A dynamically loadable OpenSSL engine that implements DSTU random bit generator, hash, symmetric cipher and digital signature algorithms.
This project is based on dstucrypt/openssl-dstu
repository which is a fork of an outdated version of OpenSSL. I put their changes into an external engine and made them compatible with OpenSSL-1.1.0 and later. GOST-related parts are taken from gost-engine/engine
repository.
keylib
is a library for reading different key containers.
Standards:
DSTU GOST 34.311-95 - hash function.
DSTU GOST 28147:2009 - symmetric cipher, CFB mode.
DSTU 4145-2002 - elliptic curve digital signature algorithm (LE and BE keys) and random bit generator.
Key containers:
Key-6.dat - custom IIT key container with password protection.
Building and installation instructions
mkdir build
cd build
cmake ..
make
sudo make install
Build options:
BUILD_TESTS - enable testing, default OFF.
ENABLE_CODECOV - enable code coverage analysis, default OFF.
Requirements
Documentation
Library reference
Usage examples
With <tt>openssl</tt> utility
Specify -engine dstu
:
$ openssl cms -verify -engine dstu -in tests/cms.pem -inform PEM -noverify
engine "dstu" set.
Verification successful
<?xmlversion="1.0" encoding="windows-1251"?><RQ V="1"><DAT FN="4538765845" TN="345612052809" ZN="" DI="238" V="1"><C T="11"></C><TS>YYYYMMDDHHMMSS</TS></DAT><MAC></MAC></RQ>
With API
Load 'dstu' engine with ENGINE_by_id
and pass it to API functions:
{c++}
// Essential for engine loading
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN | OPENSSL_INIT_LOAD_CONFIG, nullptr);
// Get engine handle
auto* engine = ENGINE_by_id("dstu");
ENGINE_init(engine);
const auto* mdt = ENGINE_get_digest(engine, NID_dstu34311);
std::array<unsigned char, 32> res;
unsigned int s = 0;
EVP_Digest(data, size, res.data(), &s, mdt, engine);
// 'res' now contains the hash
Keylib API
{c++}
// Essential for engine loading
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN | OPENSSL_INIT_LOAD_CONFIG, nullptr);
// Get engine handle
auto* engine = ENGINE_by_id("dstu");
ENGINE_init(engine);
ENGINE_set_default(engine, ENGINE_METHOD_ALL);
auto* fp = fopen(file.c_str(), "r");
// Key-6.dat may contain 1 or 2 keys
EVP_PKEY** keys = nullptr;
size_t numKeys = 0;
readKey6(fp, password.c_str(), password.length(), &keys, &numKeys);
// Delete all keys after use
for (size_t i = 0; i < numKeys; ++i)
EVP_PKEY_free(keys[i]);
OPENSSL_free(keys);
fclose(fp);
Links


Thank you very much for contacting us regarding your issue. We will get back to you as soon as possible.
You can use this ticket number and this email ID to see and take part in the conversation on the ticket here
This was the message we have received:
##############################
{{message}}
##############################


= $group->name ?> :Name
= $group->description ?> :Description
= $group->created_at ?> :Created
= $group->updated_at ?> :Last Updated
= $group->getUsersInGroup()->count() ?> :Users Count
Unassigned Users (Draggable)
Name
Email
Created
Last Seen
user; ?>
= $user->email ?>
= $user->created_at ?>
= $user->last_seen ?>
There are no unassigned users in this group.


I started my journey as a web developer to challenge myself and turn my life around
directions_walk
I love the satisfaction of achieving goals through hard work and collaboration. I believe coding is a great platform that allows me to accomplish and achieve the goals I set for myself.
show_chart
I'm a strong believer there is always room to grow and improve as a person. I strive to always better myself. My conviction in life is to apply that belief in all aspects of my life, professionally and personally.
sentiment_very_satisfied
When not coding, you can find me playing golf or basketball. Experiencing and exploring the world is another passion of mine. I enjoy cooking and yes, I love my steaks medium-rare.
SKILLS
Javascript
Ruby
Java
HTML5
CSS3
LANGUAGES
React.js
Angular
Node.js
Materialize
Bootstrap
FRONT-END
MongoDB
PostgreSQL
Rails
Sinatra
Express.js
BACK-END
Chai
Mocha
Jest
Github
Heroku
OTHER
PROJECTS
Roulette.js
Built With:
Javascript
HTML5
CSS3
Jquery
Roulette created with Javascript and jQuery.
TV/Movie CrudApp
Built With:
Javascript
HTML5
CSS3
Jquery
Express.js
Node.js
Gulp.js
Github
MongoDB
CRUD application for users to review their
favorite movies and television shows
Myer-Briggs ReactApp
Built With:
Javascript
React.js
Node.js
PostgreSQL
Sinatra
Github


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Interface Summary | |
|---|---|
| BinDataSource | Interface for objects that can provide double values to compute bins for a histogram. |
| BlockFileWriter | Interface for class that write data to files in blocks. |
| ChartGuiPanel | |
| DataSource | Interface for data sources whose data is recorded by DataRecorder |
| DataSourceRecorder | Created by IntelliJ IDEA. |
| GuiChartDataSource | Interface for data sources for gui created charts. |
| NumericDataSource | Interface for data sources whose data is recorded by DataRecorder and is numeric. |
| Recorder | Created by IntelliJ IDEA. |
| Sequence | Interface for objects that are the source of data to be plotted by a sequence graph. |
| Class Summary | |
|---|---|
| AbstractChartModel | Model (MVC) class used by the Chart GUI. |
| AbstractDataSourceRecorder | Created by IntelliJ IDEA. |
| AddChartGui | Gui for adding custom charts. |
| AverageDataSource | Dynamically computes the average of a list of values. |
| AverageSequence | Computes the minimum of a sequence of values, based on a list of objects and a method to call on them. |
| ChartArchiver | Saves and loads custom charts via their XML descriptions. |
| ChartSourceFactory | Factory for creating data sources for gui created charts. |
| CustomChartGui | GUI for creating, editing and deleting custom charts. |
| DataCallback | Created by IntelliJ IDEA. |
| DataFileHeader | Given a model and this will create the appropriate header for any data file. |
| DataFileWriter | Writes objects to a file via their toString() method. |
| DataRecorder | Created by IntelliJ IDEA. |
| DataServer | Created by IntelliJ IDEA. |
| DataSourcePropPanel | |
| DataSourcesPanel | |
| DataSourceUtilities | Utility methods for return data. |
| DataWriter | Created by IntelliJ IDEA. |
| DistributedDataRecorder | Created by IntelliJ IDEA. |
| EditChartGui | Gui for editing an AbstractChartModel. |
| ExcelFileWriter | Writes network data to ExcelFiles. |
| Histogram | A histogram plot allowing the user to histogram data from a list of objects. |
| HistogramItem | An item to be displayed in a histogram. |
| ListDataSource | |
| LocalDataRecorder | The primary means of recording data during a simulation. |
| MarkIcon | Icon that represents plot point shape integer constants in the appropriate shape. |
| MarkListRenderer | Renderer for lists that contain the integer constants for plot point shapes. |
| MaxSequence | Computes the maximum of a sequence of values, based on a list of objects and a method to call on them. |
| MinSequence | Computes the minimum of a sequence of values, based on a list of objects and a method to call on them. |
| NetSeqTableRow | Represents a row in the model contained by the table in NetSequenceSetPanel. |
| NetSequenceGraph | A graph that captures a series of points (sequences) specialized for network statistics. |
| NetSequenceSetupPanel | The setup panel displayed on a tab in a NetSequencePlot. |
| ObjectData | Stores simulation data as objects. |
| ObjectDataRecorder | Records Objects to files as Strings. |
| ObjectDataSource | A data source that returns objects. |
| ObjectSequence | A source for sequence data from a single object. |
| OpenArrayData | A collection class used by the Statistic classes to hold their data. |
| OpenHistogram | A dynamic bar chart. |
| OpenHistogramStat | The Statistics class for histogram data. |
| OpenSeqStatistic | The model for a SequenceGraph. |
| OpenSequenceGraph | A graph that displays a connected series of points (a sequence). |
| OpenStats | Statistics: base class for the statistics classes that form the model (MVC) for SimGraphs. |
| Plot | A generic point plotting class. |
| PlotModel | |
| PropertiesPanel | |
| SequenceChartModel | Model (MVC) used for GUI creation of OpenSequenceGraphs. |
| SequenceSource | Data source for a Sequence created via the gui chart creator. |
| SimData | Holds data in tabular format - a vector of vectors. |
| SimDataNew | Holds data in tabular format - a vector of vectors. |
| StatisticUtilities | Statistical utilities. |
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


The Best Man * 1/2 (out of * * * * )
Directed by Malcolm D. Lee. Cast: Taye Diggs, Nia Long, Morris Chestnut, Sanaa Lathan, Terrence Howard, Harold Perrineau, Monica Calhoun, Melissa De Sousa, Regina Hall. 1999 - 121 minutes Rated R (for profanity and sexual situations). Reviewed by Dustin Putman, October 24, 1999.
As "The Best Man" unraveled, it became apparent to me that the large majority of films made about African-American characters either (A) involve crime, drugs, and violence, or (B) are romantic comedy-dramas about family and/or friends who come together for a certain occasion. While the latter is certainly more appealing because it deals with that middle-upper-class section that is rarely dealt with on film, the results are usually botched by stereotypical, often juvenile, characterizations, or exaggerated plotting devices. Such is the case with "The Best Man," directed by Spike Lee's cousin, Malcolm D. Lee, which has so much going for it at the outset that you almost feel cheated when everything begins to revolve squarely around a wedding (this subject has been so overdone) and a scandalous, secretly autobiographical book that one of the character's has written and the others have gotten their hands on. Of course, this premise still easily might have worked had the screenplay, also by Lee, been written with more depth and intelligence, and not resorted to such frequent immature behavior.
Taye Diggs toplines the bright cast as Harper Stewart, a writer in his late-20's, whom has just left his loving girlfriend Robin (Sanaa Lathan) to return to his hometown and act as the best man for his college buddy's wedding. Robin will arrive a few days later to attend the wedding, but right now Harper is most interested in rekindling his friendships with all of his confidants from years gone by. The groom, Lance (Morris Chestnut), is a pro-football player who is madly in love with his bride-to-be, the angelic Mia (Monica Calhoun), and Harper's other best friends from the past include Murch (Harold Perrineau Jr.), a slightly nerdy type who is overrun by his domineering, ice queen girlfriend Shelby (Melissa De Sousa), and Quentin (Terrence Howard), a playful, wise-cracking musician. The plot is set into motion when Harper once again meets his old college flame Jordan (Nia Long), and sparks instantly fly. Jordan, a television executive, has gotten her hands on Harper's upcoming book, "Unfinished Business," and as it gets passed around among the rest of the old gang, they slowly discover that the fictional character names are only a cover-up of themselves, with all the sordid details intact. The pressure is on for Harper, who is propositioned by Jordan to spend the night with her (they never "got together" in school), and is suddenly under fire from everyone for writing about their most personal details, and even some unknown secrets, including a past rendezvous he had with the bride Mia.
With such a minor storyline and characters who are far from three-dimensionally written, "The Best Man," as has been noted before, plays like a distaff version of 1983's classic, "The Big Chill," but without the nostalgic memories, sharp dialogue (the phrase, "You DOG!," has to have been used at least a half-dozen times), and smooth narrative flow. While a movie about friends coming together is all well and good (and was marvelously done in 1996's "Beautiful Girls," in which a 10-year high school reunion was the catalyst that set the plot into motion), "The Best Man" ruins things by adding the insubstantial book subplot into the mix, and not even using it to its fullest capabilities.
While some characters remain stereotypes throughout, without any attempt at further development (Melissa De Sousa's Shelby quickly comes to mind), others are performed with a true-to-life edge that makes them creditable. Taye Diggs is adequate as Harper, the character which everything centers around, but he made a more lasting impression in his supporting role in last spring's flashy "Go." Who should be especially noted, however, are Nia Long, who is so very assured as an actress that I wish she'd break out of this type of role she plays over and over; Terrence Howard, who has loads of fun with the most comedic character of the piece; and Sanaa Lathan, whose neglected girlfriend role of Harper's is the one we most sympathize and identify with. Meanwhile, Regina Hall makes a more-than-memorable appearance as a bright-eyed stripper who Murch is bewitched by at Lance's bachelor party.
If director Malcolm D. Lee really wanted to make a more sophisticated film about a large portion of the population who often times go unnoticed in the world of films, why did he insist on making some of the characters act so childish? At one point, after a dark secret is uncovered by Lance about Harper, instead of having a conversation with him and talking the problem out, he resorts to knocking over the table, grabbing Harper by the collar, and threatening him. When this occurrence takes place in movies over such a petty thing, solely to add some interest and further conflict into the dwindling proceedings, I immediately lose all respect for the character. I know I wouldn't want to be friends with someone who would act like that.
As with 1997's melodramatic, corny "Soul Food," and last summer's "The Wood," which also starred Diggs in a story set around a wedding(!), "The Best Man" aspires to be something more than it actually is. Kudos to Lee for trying his hand at a more knowledgeable picture that all audiences (not just African-Americans) might enjoy, but he also gets more than his share of debits for its severely flawed treatment. At over two hours in length, "The Best Man" thankfully never overstays its welcome and goes by fairly fast, but by the time the Electric Slide was carried out by everyone at the wedding reception over the end credits, I realized that the actors deserved far better. As is, the conclusion plays like an excuse for each of the cast members to give themselves a pat on the back, when they really didn't earn that pat to begin with.
- Copyright 1999 by Dustin Putman Http://www.young-hollywood.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Our vision is to connect clients with audiences using stories that combines the “who” and the “why” in the proper way. We provide public relations advices and strategic communication services by translating tech languages in stories for large public.
We gain the respect of our partners by being Responsible, Trustworthy and Efficient.
“We work together to implement Axis lines for the Romanian market and we are glad to have such a good involvement and knowledge level.”
Bogdan GavrilAxis
“They use to get inform and understand the client specific technology for specific topics.”
Valentina BurciuBergerat
“..solved all activities in our joint action plan demonstrated they can excellent play within a multi task and heterogeneous team.”


--- permalink: /404.html ---
404 Master Mummy's family (still) not found.
Contact the admins or go to the main menu.


CAREFUL A film review by Michael Brooke Copyright 1995 Michael Brooke
Directed by Guy Maddin. Written by George Toles and Guy Maddin. Canada, 1992, colour, 100 mins. Starring Kyle McCulloch, Gosia Dobrowolska, Paul Cox.
There are few film-makers whose work is instantly recognisable from a five-second clip taken out of context, but Canadian director Guy Maddin joined this select group with his very first feature, the black-and-white silent film TALES FROM THE GIMLI HOSPITAL (1988), a series of shaggy-dog stories told by hospital patients suffering from a strange disease that causes their skin to crack. ARCHANGEL (1990) was more ambitious, an epic set in the trenches of World War I, still in black-and-white, but this time with a post-synchronised soundtrack.
On the surface, CAREFUL (1992) is a tribute to German "mountain films" of the late 1920s. Future director Leni Riefenstahl started her career as an actress specialising in this genre (Hitler was a fan), in which strapping young lads and lasses go up Alpine peaks for thrilling adventures. Despite the surface pastiche (including a deliberately crackly soundtrack and colour that looks like hand-tinted monochrome), Maddin's film couldn't be more different from its sources. The opening narration sets the scene: the people of the Alpine village of Tolzbad show obsessive caution at all times, lest a sudden noise or movement cause avalanches to come and destroy them.
Needless to say, this repressed environment is a natural breeding ground for secret passions and obsessions. Johan neglects his studies at the famous Tolzbad Butler Gymnasium (Tolzbad's stifled atmosphere lends itself to servility) because of his incestuous obsession with his mother Zenaida. His fiancee Klara is similarly infatuated with her father, but he spurns her because of his lust for her sister Sieglinde. And Zenaida has a long-standing relationship with the mysterious Count Knotkers, who lives in the remote castle in the mountains, and who hires Grigorss, Johan's brother, as a butler. Watching over all this is Franz, the cobwebbed older brother of Johan and Grigorss, shut up in the attic because of the painful memories he evokes. And he is in turn regularly visited by the ghost of his father, a blind swan-feeder, who gives him premonitions of terrible things. But Franz is both mute and possibly insane, so the ghostly warnings go unheeded--and this melodramatic stew predictably leads to misunderstandings, duels and suicidal plunges galore.
What is fascinating about CAREFUL is the way that director (and co-writer, cinematographer, editor and designer) Maddin shows the same degree of obsession behind the camera that his characters show in front of it. Directors who love old films so much they want to imitate them are nothing new, but Maddin loves them so much he wants his films to look like old prints of old films (where most films deteriorate through repeated projection, CAREFUL improves!)--which is, after all, how Maddin (currently in his thirties) would have seen German mountain films in the first place. It's more than pastiche--you get the impression that Maddin genuinely believes that this is how films should be made, and that cinema hasn't really developed since the late 1920s.
He has a point--1920s directors like Abel Gance (NAPOLEON, LA ROUE) often showed a far greater visual sophistication than most of the film-makers who followed him, and none of Fritz Lang's American films ever recaptured the grandiose excesses of his German epics (DESTINY, SIEGFRIED, METROPOLIS). And although others have picked up on the artificial Expressionism pioneered by the makers of THE CABINET OF DR.CALIGARI, few before Maddin have embraced the techniques so wholeheartedly.
It's almost impossible to imagine him following compatriots David Cronenberg and Atom Egoyan into the mainstream, as his work is so strange it makes the average David Lynch film look like 'Baywatch'. But one hopes that his enlightened backers will continue to fund his bizarre visions. CAREFUL is a giant step forward for Maddin in that it's very accessible and enormously entertaining (the earlier work was often too self-consciously precious, and the budgets painfully low). I for one shall treasure moments like the giant blue Alpenhorns serenading the summer, or Zenaida's instructions to "lower the sheepskins" in order to provide adequate soundproofing before dancing to scratchy violins, or Johan's scrupulous closing of the gate behind him before his fatal plunge, or Grigorss dripping candle-wax onto the face of the dead Countess Knotkers and trying to repair the damage - plus Maddin's frequent mock-Gothic intertitles solemnly announcing "Such is the moonrise in Tolzbad" after one of Franz' father's ghostly visitations. If Hollywood's recent output is just too brain-numbingly repetitive, give Maddin's films a try--at least you can guarantee that there's no-one else out there quite like him.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


KolmoLD allows for delivering the data along with the code to decode it.
That means being able to support custom or brand new files formats in short time without waiting implementation in the browsers.
For example, new modern image format WebP does’t supported in all browsers, insted of jpeg. For that case you can create a WebAssembly transcoder for converting WebP to jpeg on client side in browser there it needed.
{ "opcode": "search4MetaInfo", "doi": "7E1D8D6609499A1A5FB67C6B9E7DD34CF7C6C4355259115FC7161F47266F5F3C" }


com.vividsolutions.jts.geomgraph.index
Class SegmentIntersector
java.lang.Object
com.vividsolutions.jts.geomgraph.index.SegmentIntersector
public class SegmentIntersector
- extends java.lang.Object
Computes the intersection of line segments,
and adds the intersection to the edges containing the segments.
- Version:
- 1.7
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
numTests
public int numTests
SegmentIntersector
public SegmentIntersector(LineIntersector li,
boolean includeProper,
boolean recordIsolated)
isAdjacentSegments
public static boolean isAdjacentSegments(int i1,
int i2)
setBoundaryNodes
public void setBoundaryNodes(java.util.Collection bdyNodes0,
java.util.Collection bdyNodes1)
getProperIntersectionPoint
public Coordinate getProperIntersectionPoint()
- Returns:
- the proper intersection point, or
null
if none was found
hasIntersection
public boolean hasIntersection()
hasProperIntersection
public boolean hasProperIntersection()
- A proper intersection is an intersection which is interior to at least two
line segments. Note that a proper intersection is not necessarily
in the interior of the entire Geometry, since another edge may have
an endpoint equal to the intersection, which according to SFS semantics
can result in the point being on the Boundary of the Geometry.
hasProperInteriorIntersection
public boolean hasProperInteriorIntersection()
- A proper interior intersection is a proper intersection which is not
contained in the set of boundary nodes set for this SegmentIntersector.
addIntersections
public void addIntersections(Edge e0,
int segIndex0,
Edge e1,
int segIndex1)
- This method is called by clients of the EdgeIntersector class to test for and add
intersections for two segments of the edges being intersected.
Note that clients (such as MonotoneChainEdges) may choose not to intersect
certain pairs of segments for efficiency reasons.


Safety data on AstraZeneca anemia drug points to potential use in dialysis
FRANKFURT (Reuters) - AstraZeneca said on Friday that safety data on roxadustat underpinned the British drugmaker’s hopes for the anemia drug to become a standard treatment for patients with kidney disease.
It said pooled data from several late-stage trials showed that roxadustat did not increase the risk of potentially deadly cardiovascular complications like heart attacks and strokes when used instead of epo, which is the standard treatment for dialysis patients against lack of red blood cells from kidney disease.


The purpose of this video is to depict the way different people are spending their time during quarantine. It shows how in different places in the world, people are indulged in their hobbies and gives a representation of how all of us can still come together and make our time to be productive. Just like the four of us got together for a workout. Together We Strive!


About HAW
Established in 1983, the Hmong Association of Washington (H.A.W.) is a 501(c)(3) nonprofit organization that exists to serve the Hmong community in the Puget Sound region (King, Pierce, Snohomish). The Hmong people are an underrepresented minority group within Southeast Asian countries and H.A.W's mission is to serve the Hmong community in the greater Seattle area. Throughout the year, H.A.W holds community events that are open to the public in which they provide cultural and educational activities year round. HAW's mission is to serve the Hmong community in these ways: (1) to preserve and promote the culture, (2) to advocate for the Hmong people, and (3) to promote education in the community. Your donations are tax-deductible and go toward (a) cultural programming for the annual Hmong New Year Festival, (b) educational awards to promote higher education within our community, and (c) educational/cultural community events. We are always accepting volunteers, donations, and ideas to help our community. Email H.A.W. President, Kabao Xiong at<EMAIL_ADDRESS>with any questions or comments.
Officers President -Kabao Xiong
Vice-President - Hua Thao Treasurer - Alice Chang
Secretary/PR Assistant - Kia Vang
Board Members: Kue Moua Zer Vue Chai Chue Moua Dr. Kay Lee Moua Jaylie Txoojzeb Xiong Lia Yang Vamhawj Xiong Yee Xiong
Advisors: Bee Chang Vang Toua Xiong
Hmong Association of Washington P.O. BOX 14492
Seattle, WA 98114
(hello@hmongofwa.org)


dicom_to_cnn.tools.export_segmentation package¶
Submodules¶
dicom_to_cnn.tools.export_segmentation.generate_dict module¶
- dicom_to_cnn.tools.export_segmentation.generate_dict.generate_dict(number_of_roi: int, mode: str) → dict¶
a function to generate a dict with informations to generate DICOM SEG or DICOM RTSTRUCT file ! no more than 16 characters for each informations !
- Args:
number_of_roi ([int]): [Total number of ROI in dicom file ] mode ([str]): [‘rtstruct’ or ‘dicomseg’]
- Returns:
[dict]: [return dict with informations about ROI in it ]
- dicom_to_cnn.tools.export_segmentation.generate_dict.save_dict_as_json(results: dict, directory: str) → str¶
a function to save the dict generated by ‘generate_dict’ function above
- Args:
results ([dict]): [Dictionnary generated by ‘generate_dict’ function ] directory ([str]): [Name of directory to save the dict as json file ]
- Returns:
[str]: [return the path name of the json file]


UTF-8
Section: Linux Programmer's Manual (7)
Updated: 2014-06-13
Index
Return to Main Contents
NAME
UTF-8 - an ASCII compatible multibyte Unicode encoding
DESCRIPTION
The Unicode 3.0 character set occupies a 16-bit code space.
The most obvious
Unicode encoding (known as UCS-2)
consists of a sequence of 16-bit words.
Such strings can contain---as part of many 16-bit characters---bytes
such as '\0' or '/', which have a
special meaning in filenames and other C library function arguments.
In addition, the majority of UNIX tools expect ASCII files and can't
read 16-bit words as characters without major modifications.
For these reasons,
UCS-2 is not a suitable external encoding of Unicode
in filenames, text files, environment variables, and so on.
The ISO 10646 Universal Character Set (UCS),
a superset of Unicode, occupies an even larger code
space---31 bits---and the obvious
UCS-4 encoding for it (a sequence of 32-bit words) has the same problems.
The UTF-8 encoding of Unicode and UCS
does not have these problems and is the common way in which
Unicode is used on UNIX-style operating systems.
Properties
The UTF-8 encoding has the following nice properties:
- *
-
UCS
characters 0x00000000 to 0x0000007f (the classic US-ASCII
characters) are encoded simply as bytes 0x00 to 0x7f (ASCII
compatibility).
This means that files and strings which contain only
7-bit ASCII characters have the same encoding under both
ASCII
and
UTF-8 .
- *
-
All UCS characters greater than 0x7f are encoded as a multibyte sequence
consisting only of bytes in the range 0x80 to 0xfd, so no ASCII
byte can appear as part of another character and there are no
problems with, for example, '\0' or '/'.
- *
-
The lexicographic sorting order of UCS-4 strings is preserved.
- *
-
All possible 2^31 UCS codes can be encoded using UTF-8.
- *
-
The bytes 0xc0, 0xc1, 0xfe, and 0xff are never used in the UTF-8 encoding.
- *
-
The first byte of a multibyte sequence which represents a single non-ASCII
UCS character is always in the range 0xc2 to 0xfd and indicates how long
this multibyte sequence is.
All further bytes in a multibyte sequence
are in the range 0x80 to 0xbf.
This allows easy resynchronization and
makes the encoding stateless and robust against missing bytes.
- *
-
UTF-8 encoded UCS characters may be up to six bytes long, however the
Unicode standard specifies no characters above 0x10ffff, so Unicode characters
can be only up to four bytes long in
UTF-8.
Encoding
The following byte sequences are used to represent a character.
The sequence to be used depends on the UCS code number of the character:
- 0x00000000 - 0x0000007F:
-
0xxxxxxx
- 0x00000080 - 0x000007FF:
-
110xxxxx
10xxxxxx
- 0x00000800 - 0x0000FFFF:
-
1110xxxx
10xxxxxx
10xxxxxx
- 0x00010000 - 0x001FFFFF:
-
11110xxx
10xxxxxx
10xxxxxx
10xxxxxx
- 0x00200000 - 0x03FFFFFF:
-
111110xx
10xxxxxx
10xxxxxx
10xxxxxx
10xxxxxx
- 0x04000000 - 0x7FFFFFFF:
-
1111110x
10xxxxxx
10xxxxxx
10xxxxxx
10xxxxxx
10xxxxxx
The
xxx
bit positions are filled with the bits of the character code number in
binary representation.
Only the shortest possible multibyte sequence
which can represent the code number of the character can be used.
The UCS code values 0xd800-0xdfff (UTF-16 surrogates) as well as 0xfffe and
0xffff (UCS noncharacters) should not appear in conforming UTF-8 streams.
Example
The Unicode character 0xa9 = 1010 1001 (the copyright sign) is encoded
in UTF-8 as
-
11000010 10101001 = 0xc2 0xa9
and character 0x2260 = 0010 0010 0110 0000 (the "not equal" symbol) is
encoded as:
-
11100010 10001001 10100000 = 0xe2 0x89 0xa0
Application notes
Users have to select a UTF-8 locale, for example with
-
export LANG=en_GB.UTF-8
in order to activate the UTF-8 support in applications.
Application software that has to be aware of the used character
encoding should always set the locale with for example
-
setlocale(LC_CTYPE, "")
and programmers can then test the expression
-
strcmp(nl_langinfo(CODESET), "UTF-8") == 0
to determine whether a UTF-8 locale has been selected and whether
therefore all plaintext standard input and output, terminal
communication, plaintext file content, filenames and environment
variables are encoded in UTF-8.
Programmers accustomed to single-byte encodings such as US-ASCII or ISO 8859
have to be aware that two assumptions made so far are no longer valid
in UTF-8 locales.
Firstly, a single byte does not necessarily correspond any
more to a single character.
Secondly, since modern terminal emulators in UTF-8
mode also support Chinese, Japanese, and Korean
double-width characters as well as nonspacing combining characters,
outputting a single character does not necessarily advance the cursor
by one position as it did in ASCII.
Library functions such as
mbsrtowcs(3)
and
wcswidth(3)
should be used today to count characters and cursor positions.
The official ESC sequence to switch from an ISO 2022
encoding scheme (as used for instance by VT100 terminals) to
UTF-8 is ESC % G
("\x1b%G").
The corresponding return sequence from
UTF-8 to ISO 2022 is ESC % @ ("\x1b%@").
Other ISO 2022 sequences (such as
for switching the G0 and G1 sets) are not applicable in UTF-8 mode.
Security
The Unicode and UCS standards require that producers of UTF-8
shall use the shortest form possible, for example, producing a two-byte
sequence with first byte 0xc0 is nonconforming.
Unicode 3.1 has added the requirement that conforming programs must not accept
non-shortest forms in their input.
This is for security reasons: if
user input is checked for possible security violations, a program
might check only for the ASCII
version of "/../" or ";" or NUL and overlook that there are many
non-ASCII ways to represent these things in a non-shortest UTF-8
encoding.
Standards
ISO/IEC 10646-1:2000, Unicode 3.1, RFC 3629, Plan 9.
SEE ALSO
locale(1),
nl_langinfo(3),
setlocale(3),
charsets(7),
unicode(7)
Index
- NAME
-
- DESCRIPTION
-
- Properties
-
- Encoding
-
- Example
-
- Application notes
-
- Security
-
- Standards
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:55:20 GMT, September 18, 2014


ConnectionBuilderFactory
Provides an API for creating an object that is capable of building a connection.
Methods
| Modifier & Type | Method Name | Description |
|---|---|---|
static ConnectionBuilderFactory |
newInstance() |
Acquire a new instance of ConnectionBuilderFactory. |
ConnectionBuilder |
newConnectionBuilder() |
Create a new ConnectionBuilder using the configured settings. |
void |
setBufferSize(int buffSize) |
Set the buffer size to be buffSize bytes. |
void |
setParser(ConnectionResponseParser resParser) |
Set the response parser to be resParser . |
Second section
This class is usable for:
- Connection setup
- Connection buffering
- Transfer protocols
- Network actions
send
recv
Note:
Use the static newInstance()
method since there is no constructor.
Example usage
For simply getting a ConnectionBuilder object, try the following:
ConnectionBuilderFactory cbf = ConnectionBuilderFactory.newInstance();
cbf.setBufferSize(4096);
ConnectionBuilder connBuilder = cbf.newConnectionBuilder();
Summary
| Methods |
|---|
| newInstance |
| newConnectionBuilder |
| setBufferSize |
| setParser |
| Subclasses |
| HttpConnectionBuilderFactory |
| FtpConnectionBuilderFactory |