|
CCfits
2.4
|
The program cookbook.cxx, analogous to the cookbook.c program supplied with cfitsio, was generated to test the correct functioning of the parts of the library and to provide a demonstration of its usage.
The code for cookbook is reproduced here with commentary as worked example of the usage of the library.
// The CCfits headers are expected to be installed in a subdirectory of // the include path. // The <CCfits> header file contains all that is necessary to use both the CCfits // library and the cfitsio library (for example, it includes fitsio.h) thus making // all of cfitsio's macro definitions available. #ifdef HAVE_CONFIG_H #include "config.h" #endif // this includes 12 of the CCfits headers and will support all CCfits operations. // the installed location of the library headers is $(ROOT)/include/CCfits // to use the library either add -I$(ROOT)/include/CCfits or #include <CCfits/CCfits> // in the compilation target. #include <CCfits> #include <cmath> // The library is enclosed in a namespace. using namespace CCfits; int main(); int writeImage(); int writeAscii(); int writeBinary(); int copyHDU(); int selectRows(); int readHeader(); int readImage(); int readTable(); int readExtendedSyntax(); int main() { FITS::setVerboseMode(true); try { if (!writeImage()) std::cerr << " writeImage() \n"; if (!writeAscii()) std::cerr << " writeAscii() \n"; if (!writeBinary()) std::cerr << " writeBinary() \n"; if (!copyHDU()) std::cerr << " copyHDU() \n"; if (!readHeader()) std::cerr << " readHeader() \n"; if (!readImage()) std::cerr << " readImage() \n"; if (!readTable()) std::cerr << " readTable() \n"; if (!readExtendedSyntax()) std::cerr << " readExtendedSyntax() \n"; if (!selectRows()) std::cerr << " selectRows() \n"; } catch (FitsException&) // will catch all exceptions thrown by CCfits, including errors // found by cfitsio (status != 0) { std::cerr << " Fits Exception Thrown by test function \n"; } return 0; }
The simple driver program illustrates the setting of verbose mode for the library, which makes all internal exceptions visible to the programmer. This is primarily for debugging purposes; exceptions are in some cases used to transfer control in common circumstances (e.g. testing whether a file should be created or appended to in write operations). Most of the exceptions will not produce a message unless this flag is set.
Nearly all of the exceptions thrown by CCfits are derived from FitsException, which is caught by reference in the above example. This includes all nonzero status codes returned by cfitsio by the following construct (recall that in the cfitsio library nearly all functions return a non-zero status code on error, and have a final argument status of type int):
if ( [cfitsio call](args,...,&status)) throw FitsError(status);
FitsError, derived from FitsException, uses a cfitsio library call to convert the status code to a string message.
The few exceptions that are not derived from FitsException indicate fatal conditions implying bugs in the library. These print a message suggesting the user contact HEASARC to report the problem.
Note also the lack of statements for closing files in any of the following routines, The destructor (dtor) for the FITS object does this when it falls out of scope. A call
FITS::destroy() throw()
is provided for closing files explicitly; destroy() is also responsible for cleaning up the FITS object and deallocating its resources.
When the data are being read instead of written, the user is expected to copy the data into other program variables [rather than use references to the data contained in the FITS object].
The routines in this program test the following functionality:
writeImage() Writing Primary Images and Image Extensions
writeAscii() Creating and Writing to an Ascii Table Extension
writeBinary() Creating and Writing to a Binary Table Extension
copyHDU() Copying an Extension between Files
selectRows() Selecting Table Data
readHeader() Reading Header information from a HDU
readImage() Reading an Image
readTable() Reading a Table Extension
readExtendedSyntax() Reading with Extended File Name Syntax


--- layout: post status: publish published: true title: Matrix author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 556 wordpress_url: http://winterdom.com/2003/11/matrix date: '2003-11-09 07:42:51 +0000' date_gmt: '2003-11-09 07:42:51 +0000' categories: - Personal tags: [] comments: [] ---
I was finally able to go last night to the movies and watch Matrix Revolutions. Despite all the flack it's gotten, I gotta admit I enjoyed it quite a bit. Hell, I even liked Reloaded. Guess I'm not that picky about long action scenes :)


WELCOME TO THE WORLD OF GIVING!
This is a website that demonstrates an application I would like to develop in the future. It's solely to help people through donations. There's food that goes to waste everyday but is not used. I would like to make use of the same in order to satisfy hunger of the poor and needy. Every single one of you can contribute, and make a difference in the lives of many people.
Here's how it works:
- The application will have a "sign up" for those interested in taking part.
- Once signed up, a scheduled meeting will be held with the company I run, for official reasons, and also in order to
particularly meet each giving client to share our token of appreciation.
- Any company or even an individual is most welcome.
- Once a contract is set between both parties, it works easy.
- For each time there is a minimal amount of food, a food company wants to share, even an individual, there will be a quick and easy "alert" signal that asks the name of the company or person, and what and how much food they hold at this point.
- Once our company is notified, and the client is verified, a food truck will be sent to collect the food.
- This food will be delivered to those found on streets, homeless and the needy. Shelters for the homeless, and
organisations that help such people, will be given a part of the share in order to serve the hungry.
Application Layout:
Reflections


A glimpse into my world so you can get to know me better. I have through my years of searching embarked upon several career paths. This has enabled me to become a more sophisticated and better person.I started with passion for fixing computer hardware issues at age of 15. i developed the passion further and did my first Diploma in computer science back in 2013. To date i am still seeking to advance my It knowledge on my path to becoming a pen tester
I developed my love for programming along the path to understanding computer issue solving better. In my years of computer repair, most of the issues have been software based and i was struggling to solve these problems without the nessesary knowledge.
I have alot of interests to be honest. Before i started my journey with computers, i was a professional athlete in both professional Boxing and 100 meters sprinting. Due to unprecedented career changing injuries during training, i was forced to quit and shift my goals.During physiotherapy sessions, I got into the field of bodybuilding and became a personal trainer and i still love to do this. Basically just lifting heavy stuff and putting them down.
On my pen testing journey, i have met advanced white hat hackers who have joined forces with myself and other black hat hackers to develop pen testing tools to help secure data for the ever advancing cyber security issues. Here are some of my projects currently under development


CourierChat is our way of providing a self or cloud-hosted chat service that is easy to use and peer to peer utilizing WebRTC.
Necessary? Probably not. There are many chat or instant messaging services out there. CourierChat keeps your data as private as possible while allowing you or a trusted source to host the service.
For more information, please visit our GitHub project!


Welcome the the extension!
The links you want to open will be catched and navigate you to spotify application.


Snarks
Transcript By: Bryan Bishop
Category: Conference
some setup motivating topics:
- practicality
- pcp theorem
- trustless setup
- magic away the trusted setup
- schemes without trusted setup
- pcp theorem is the existent proof that the spherical cow exists.
people:
- Andrew Miller (AM)
- Madars Virza (MV)
- Andrew Poelstra (AP)
- Bryan Bishop (BB)
- Nathan Wilcox
- ZZZZZ: zooko
- gmaxwell’s ghost (only in spirit)
SNARKs always require some sort of setup. PCP-based SNARKs can use random oracle assumption instantiated by hash function, sha256 acts as the random oracle. There are linear-PCP based SNARKs, those are the ones implemented and currently most efficient and require some magic numbers and parameters for the system. Needs to be done only once, but it needs to be done, like setting up RSA keys, product of two numbers, you don’t want anyone to know what those two numbers. It’s more complex than setting up RSA keys.
Is this selecting the ideal elements for greater encoding schemes? Not familiar with multi-linear maps in that detail.
The person has to be trusted by everyone in the system; where are you going to find someone trusted by everyone 20 years down the line. This person doesn’t exist. We hope that we can find a number of people that we can trust that at least one person didn’t give in. You could have a decentralized setup procedure based on multi-party computation, where n parties participate, everyone learns the public parameters at the end and can go on and use the SNARK. You would have to compromise every single one of them, like in the movies where you need every key to light up a console and it doesn’t work without one key.
AM: In other protocols, you need a super majority, and here it’s that only 1 person has to be honest.
MV: It’s much stronger than 51%. Whatever. 97% attack, whatever. It’s vulnerable to 100% attack and nothing else.
AM: You can check after the fact about the correctness; you need actual randomness for your inputs, you also need to securely delete this data. Maybe there’s a SNARK setup with a trust door, but maybe it was so diffuse that a secure delete protocol could remove it.
MV: Probably that would totally shoot efficiency down.
RSA UFOs; RSA keys have the- UFOs an unfactorable object, when building accumulators, you want to have the structure of the RSA key that nobody knows the factor of. Zerocoin uses UFOs they want an accumulator and we don’t know an efficient multi-party computation to construct them, so one heuristically is to pick a large enough number that it’s bound to have prime factors of that size and you hope it’s fine.
AM: There’s a way to do setup for ZKP systems where there’s no trap door, and then there’s large factors that nobody knows. Anoncoin tried doing this. They implemented zerocoin and tried to do UFOs as efficiently as they could. I don’t know if any of this was good, but they helped popularize the UFO technique, but we don’t know how to do this for SNARKs.
MV: You need to have conservative parameters for how .. how to choose conservative parameters? It is fine if many participants have skewed randomness, ideally none of them would have skewed randomness, keys are completely random as long as at least one of them put in real randomness.
AM: how practical are these SNARKs? We think they are super practical, but what did you mean by that?
AP: I didn’t look at this 12 months ago, I think it wasn’t feasible. The proving time was too long.
AM: Even 12 months ago, depends on the circuits. How long does it take?
AP: We want to replace transactions and transaction verifcation with SNARK-replaced blocks.
AM: Is it right to say that a proof for a sha256 still takes a second on one core?
MV: It should be under a second. It sounds about order of magnitude.
AP: The last numbers I heard were like 15 seconds. So that’s huge.
AM: Nope that’s off by an order of magnitude.
MV: In the earlier papres, there was a SHA benchmark, it was compiled not to a circuit but to a program in a .. tree. You had a CPU for each of the steps of the program, and that was the circuit. This was TinyRAM.
AM: There’s another tool called pinocchio, like tinyram it involves compiling from C to a SNARK, but it takes a different route; with tinyram you compile it to instructions, and the SNARK construction is a virtual machine. With pinocchio it compiles down to a circuit directly. Still that compiler is not nearly as good as composing using something like gadget tools.
MV: If you want the best performance, then you really want to use non-deterministic arithmetic tricks that come from the proof system. Discovering those tricks automatically, it’s difficult but we don’t have proof for impossibility. With zerocash we have a factor of 2 increase, with pinocchio it would be twice slower.
AM: I like pinocchio as a protoytyper, because without thought you can take C code and get a SNARK circuit out of it. You could optimize to do better.
MV: Gepetto has a new compiler that compiles C to llvm-IR to a circuit.
AM: That probably supercedes pinocchio.
MV: They released binaries for the compiler, but not the source code.
You could plug the circuits into libsnark.
AM: I have done that with libsnark before.
AP: Can we snark EC operations on dedicated circuits?
MV: Elliptic curves are curves usually over some prime field. You want really the prime field to be the native field provided by your proof system. So SNARKs natively can support arithmetic relationsihp checking over some field, but not necessarily the field oyur curve is defined on. If the fields don’t match up, you have a simulation overhead penalty, it is possible to do it, but it’s 2 or 3 orders of magnitude.
AP: It’s going to be coprime they’re both huge.
nwilcox: Constraints?
MV: There are some constraints. But what’s actually possible and what we did in our Crypto2014 paper is that we have two fields that match up if there’s an elliptic field over one curve, there’s a number of points and it’s prime, and over that you can define another elliptic curve for which one exactly matches the first curve, you can match from the first curve using the second curve. You can keep switching between curves and we keep doing it, we do this for bootstrapping which is unlimited recursive composition. We can support arbitrarily running programs by checking one step at a time, translating the proof using the other curve, checking another step with another curve, it can scale indefinitely, this scales indefinitely.
AP: It means you can run snarks inside snarks. We have a candidate for this. We have both primes about 80 bits.
MV: We have a curve setup for this, at the 80-bit security level. We also have two curves at 128-bit security level that haven’t been published, but we have them. The performance is quite a bit slower for them because the way you want to .. the curves, you need to place additional constraints on those primes. And they place constraints on the pairings. And you can have pairings with less security level, so you need to bump up your prime security. If you want 256-bit security, you’ll just pay for it.
AM: Gepetto found a pair of curves; the inner curve is the saame one as the original pinocchio curve. And then they have a larger outer curve, and you can do efficient operations in the inner curve. You can have checked SNARK proofs for the inner curv,e but nothing talks to the outer curve so you can have 1 layer. Just two. But that’s still helpful for turning your task into a one layer tree.
MV: You can compose a tree of one or two of proofs, with libsnark the cycle of curves you can do arbitrary depths. You pay for this a bit.
nwilcox: How large are the secp256k1 public keys? Can you use snarks to compress a signature by proving that you signed with a public key whose hash is on the blockchain? Or is that bigger than just the public key?
MV: It’s probably that the snark proof is going to be bigger than your original signature.
nwilcox: Signature with pubkey though?
MV: It wouldn’t save much. However, if you’re saying you just want to compress only one signature one public key, but if you want to compress 100 signatures with 100 public keys, you immediately get savings because your SNARK proof is constant size less than 300 bytes. So the numbers come from scale.
nwilcox: MAST?
MV: Not familiar.
AM: Simple concept. If you don’t take all the code paths, you don’t need to load that chunk of code. This is important when you care about the constant factors. Maybe a scriptpubkey where you want a signature from one of the pubkeys, and maybe you have 20; you don’t need to load up all 20 if the merkle branch is the only one you need to care about is the only one you need when checking the MAST root. You usually have much smaller code that runs through it, so you will have loops and you will use most of the code path on your execution, so from that mindpath it doesn’t matter that much which is why I think it hasn’t been explored. But for scriptpubkey stuff, MAST become smore important because size of the code becomes more important.
nwilcox: So if a spender only specifies a MAST root; if the creator of the txout only specifies a MAST root, and the spender provides a portion of the tree which they can prove they control that branch of the tree, then they can spend without going through other branches of the tree. Perhaps there is a SNARK application if they can prove that they satisfy at least one branch for the given MAST root. But they don’t need to reveal which key they used and the set of keys is unknown. So it would provide unlinkability.
MV: This is similar to proof-of-solvency. You want to prove you control X bitcoin; you can have a SNARK proof that the circuit can check that I control that many bitcoin; where they are, the proof doesn’t say, it’s zero knowledge.
AP: Scales linearly with the size of the input to the program?
MV: The verification time of the proof scales linearly with the size of the statement you are trying to proof. The size of the witness of the statement. You can use tricks, you can publish a hash of the statement, and then the SNARK verifier- unhashing it, like checking non-deterministic or something.
AP: I see.
AM: You only incur the cost of that one hash.
AP: It occurred when you were talking about the MAST. I was thinking you’d gain nothing in that case, oops.
MV: You can merklize the entire blockchain.
AP: Yeah.
AM: What else do you got?
AP: Yeah that was a big one.
MV: We have used hashing of the input to bring down the verification cost and also for other reasons. It’s all in libsnark.
AM: Demonstrated?
MV: Academic prototypes.
AM: Do we know anyone who is using snarks in a deployed way?
MV: In theoretical practice, and in practice-practice. I am not aware of large-scale practice-practice deployment. Or any scale practice-practice deployment. I hope however that zerocash will be a practice-practice deployment real soon.
AP: I thought multilinear maps are necessary.
MV: Nope, not at all. You need bilinear groups plus some assumptions. You can do it in the generic group model.
AP: Generic bilinear group is efficient, but not realistic, it’s superstrong model. It’s not more than that. It’s like the whole group in the random oracle.
AM: Hardness assumptions that it relies on?
MV: Computing discrete log in the group is hard, you want assumptions related to-
AM: It’s either in one of the groups or the other, like the target group?
MV: You want computing the discrete group is hard in both source and target, because you could use ~ to compute the in the ~. We added a little bit more. Q power assumption
AM: Q Power knowledge assumption?
MV: Yeah. Basically, it says that if I give you a specific set of group elements like all the powers have to be Q plus one except power Q, which you cannot extract back that power Q, and this assumption and related assumptions have been used at least in the early 90s maybe even in the late 80s in academic literature. They haven’t been broken, they have been used widely.
AM: Used widely in bileanear group construction?
MV: They have been used without bilinear group construction, like for short signatures.
AM: Do you need some extended form of DDH?
MV: This can be viewed essentially as an extended form of- some extension of DDH. There are a couple of assumptions to add on top of them. I think that in theoretical crypto cirlces they are controversial, while random oracles would be controversial, or generic groups, yeah. I don’t know any deployed.
AP: This is several orders of magnitude better than I thought in every dimension.
AM: People are facilitating this; like the libsnark gadget library is good. jsnark alternative to that, which includes some optimizations to that. No good reason that it’s in java instead of just using libsnark. It must have been just randomly convenient. Acknus .. Yawn Carlson? Yin Carlson? snarkfront.
AM: Maybe Microsoft Research has people lined up ready to use this in practice.
MV: ABSOLUTELY NOT
REDACTED REDACTED REDACTED
AM: Microsoft Research does lots of optimization of EC even out of SNARKs, it’s not strange, it’s just something out side of my knowledge.
MV: They used a curve for which EC operations are fast, you can do bit twiddling hacks, they have lots of 0s for certain primes, certain operations are fast because compressed formats and whatnot. For SNARKs there is a problem called polynomial interoperational, which is used using fast fourier transform, if you have arbitrary size, it’s actually quite painful or slow, it’s much slower than just using power of 2 size. We chose our curve so that FFT part would be fast, and if you look in
You can pick primes so that polynomial interperolation is fast. You can match up curves for bootstrapping, where you have cycles about proofs about proofs about proofs. Another thing is choice of hash function, if you are willing to use lattifce assumption (?), you can have hash functions that are extremely fast, don’t use SHA, use knapsack-based hashes. There are a lot of tricks when you go deep enough, and thos etricks can give lots of optimizations.
AM: gmaxwell has an idea of a simplest possible SNARK appslication with bitcoin today, which is where you solve some problem, someone should just do this, it would be the first practical SNARK. You compute a solution to a hard problem, like sudoku or something, perhaps there’s another problem though. You have the solution, the problem, you take the hash of the solution, you put hte hash in the bitcoin transaction, then you would have to reveal the solution in the spending transaction. Out-of-band you would provide a SNARK proof, then you could get people to pay you because once they put enough money into it, they need to claim the bounty to reveal the solution. And that’s very clever.
MV: Bitcoi naddresses that can be spent if you have a hash collision.
AM: Out of brand proof with SNARK. It’s really cool. But sudoku is not a NP-hard problem. It’s polynomial-time solvable. Any bogus SNARK thing is also valid because you can’t proof knowledge if it’s already computable.
MV: I know the private key for the SSL certificate, and that could be a problem because I could prove out of band, for more complex problems, which I know the solution of, I know the private key of, it would be inclined to .. the address.
AP: You’re concerned about sudoku because it’s not precise?
AM: It doesn’t fully exercise.
AP: discrete log RSA factoring are also not NP complete.
AM: It’s not ammenable to it, but to do SHA-2 in a SNARK circuit, it’s.. same with an RSA key or SSL key.
AP: We think that with a classical computer that you have to do it. We think it’s true. Are you talking theoretically or do you mean in practice? Discrete log is not NP-hard, it’s BQP. Bounded quantum polynomial.
AM: No polynomial time solution would be satisfactory for me. … It can’t be something be …
AP: Oh not a security thing, just a triviality of the example.
Hash PCP?
MV: Impossibility result of trustless setup? You can’t have NIZKs without some sort of oracle, the attacker could just enumerate over outputs of your proof, and could just give you one that it accepts. You need cryptographic hardness assumption. There are also results in late 90s I could look up reference that you need a common random string for non-interactive zero knowledge, and common random string we can instatiate in practice, sha256 of 0, of 1, that’s your random string. Just using SHA as a random oracle. But there are papers and there are impossibility results saying that a common random string is a lowest assumption you can make.
AM: This is a disambiguation thing; in CRS- that’s the output of your setup procedure. CRS can mean common random string or common reference string. It could be sampled from a random distribution or even distribution. Common reference string on the other hand has to be some algebraic structure thing, like some RSA thing, has two large prime factors but we don’t know it, or in order for trusted setup with SNARK then a trap door. What you’re saying is that impossibility results say you need at least a common random string.
MV: There is no impossibility result that SNARKs would require common reference strings. In fact, there are some SNARK constructions known that only require common random string, for those - computationally sound proofs of .. probabilistically checkable proof, and then collision resistant hash function. The PCPs haven’t been implemented yet, so the question of deploying them doesn’t arise. Part of SCIPR lab that is working on implementing PCPs and I really hope that we have a PCP. PCP constructions are much more sophisticated than underlying mathematics than linear PCP constructions, implementing them also takes more time. For now, multi-party setup seems to be the best thing we can have for SNARKs, and maybe 1 year down the road we will be using PCP-based SNARKs and essentially no trust, assuming that SHA is the random oracle or something we can use to feasibly deploy them.
AP: Lots of research about PCP-based SNARKs?
MV: There are theoretical constructions. There are implementations in LaTeX of those things. The team at SCIPR lab actually has REDACTED. ………  We should start a SNARK wiki.
MV: Can I submit pull request corrections?
AM: SNARK wiki is good, also we should have standardized explanations among these as well.
AP: Lamport signature is similar in spirit to PCP-based SNARKs. Everything is sort of hashes and revealing hash preimages.


{{theDoc.status}}
Online writers : {{theDoc.notification.nbWriters}}
{{writer}}
Online readers : {{theDoc.notification.nbConnected}}
Process time : {{theDoc.html5.timeToRender}} ms
Signed in as {{theDoc.author}}.
Offline mode. You can work on real-time
writing mode.
{{theDoc.state}}
Last writer : {{theDoc.html5.currentWriter}}


eco
Stockr
Know More
Pricing
Explore
Invest in
everything
Largest stock broker
in
India
Online platform to invest in stocks, derivatives,
mutual funds, and more
get started
Login for
Awesomeness
close
face
Username
lock
Password
Login


See: Description
JobConfigurationParser
// An example to parse and filter out job name
String conf_filename = .. // assume the job configuration filename here
// construct a list of interesting properties
List<String> interestedProperties = new ArrayList<String>();
interestedProperties.add("mapreduce.job.name");
JobConfigurationParser jcp =
new JobConfigurationParser(interestedProperties);
InputStream in = new FileInputStream(conf_filename);
Properties parsedProperties = jcp.parse(in);
Some of the commonly used interesting properties are enumerated in
JobConfPropertyNames
. JobConfigurationParser
can be used to parse multiple job configuration files.
JobHistoryParser
JobHistoryParserFactory
. Note that
RewindableInputStream
InputStream
to make the input
stream rewindable.
// An example to parse a current job history file i.e a job history
// file for which the version is known
String filename = .. // assume the job history filename here
InputStream in = new FileInputStream(filename);
HistoryEvent event = null;
JobHistoryParser parser = new CurrentJHParser(in);
event = parser.nextEvent();
// process all the events
while (event != null) {
// ... process all event
event = parser.nextEvent();
}
// close the parser and the underlying stream
parser.close();
JobHistoryParserFactory
provides a
JobHistoryParserFactory.getParser(org.apache.hadoop.tools.rumen.RewindableInputStream)
API to get a parser for parsing the job history file. Note that this
API can be used if the job history version is unknown.
// An example to parse a job history for which the version is not
// known i.e using JobHistoryParserFactory.getParser()
String filename = .. // assume the job history filename here
InputStream in = new FileInputStream(filename);
RewindableInputStream ris = new RewindableInputStream(in);
// JobHistoryParserFactory will check and return a parser that can
// parse the file
JobHistoryParser parser = JobHistoryParserFactory.getParser(ris);
// now use the parser to parse the events
HistoryEvent event = parser.nextEvent();
while (event != null) {
// ... process the event
event = parser.nextEvent();
}
parser.close();
Note:
Create one instance to parse a job history log and close it after use.
TopologyBuilder
HistoryEvent
.
These events can be passed to TopologyBuilder
using
TopologyBuilder.process(org.apache.hadoop.mapreduce.jobhistory.HistoryEvent)
.
A cluster topology can be represented using LoggedNetworkTopology
.
Once all the job history events are processed, the cluster
topology can be obtained using TopologyBuilder.build()
.
// Building topology for a job history file represented using
// 'filename' and the corresponding configuration file represented
// using 'conf_filename'
String filename = .. // assume the job history filename here
String conf_filename = .. // assume the job configuration filename here
InputStream jobConfInputStream = new FileInputStream(filename);
InputStream jobHistoryInputStream = new FileInputStream(conf_filename);
TopologyBuilder tb = new TopologyBuilder();
// construct a list of interesting properties
List<String> interestingProperties = new ArrayList%lt;String>();
// add the interesting properties here
interestingProperties.add("mapreduce.job.name");
JobConfigurationParser jcp =
new JobConfigurationParser(interestingProperties);
// parse the configuration file
tb.process(jcp.parse(jobConfInputStream));
// read the job history file and pass it to the
// TopologyBuilder.
JobHistoryParser parser = new CurrentJHParser(jobHistoryInputStream);
HistoryEvent e;
// read and process all the job history events
while ((e = parser.nextEvent()) != null) {
tb.process(e);
}
LoggedNetworkTopology topology = tb.build();
JobBuilder
JobHistoryUtils
provides
JobHistoryUtils.extractJobID(String)
API for extracting job id from job history or job configuration files
which can be used for instantiating JobBuilder
.
JobBuilder
generates a
LoggedJob
object via
JobBuilder.build()
.
See LoggedJob
for more details.
// An example to summarize a current job history file 'filename'
// and the corresponding configuration file 'conf_filename'
String filename = .. // assume the job history filename here
String conf_filename = .. // assume the job configuration filename here
InputStream jobConfInputStream = new FileInputStream(job_filename);
InputStream jobHistoryInputStream = new FileInputStream(conf_filename);
String jobID = TraceBuilder.extractJobID(job_filename);
JobBuilder jb = new JobBuilder(jobID);
// construct a list of interesting properties
List<String> interestingProperties = new ArrayList%lt;String>();
// add the interesting properties here
interestingProperties.add("mapreduce.job.name");
JobConfigurationParser jcp =
new JobConfigurationParser(interestingProperties);
// parse the configuration file
jb.process(jcp.parse(jobConfInputStream));
// parse the job history file
JobHistoryParser parser = new CurrentJHParser(jobHistoryInputStream);
try {
HistoryEvent e;
// read and process all the job history events
while ((e = parser.nextEvent()) != null) {
jobBuilder.process(e);
}
} finally {
parser.close();
}
LoggedJob job = jb.build();
Note:
The order of parsing the job configuration file or job history file is
not important. Create one instance to parse the history file and job
configuration.
DefaultOutputter
Outputter
and writes
JSON object in text format to the output file.
DefaultOutputter
can be
initialized with the output filename.
// An example to summarize a current job history file represented by
// 'filename' and the configuration filename represented using
// 'conf_filename'. Also output the job summary to 'out.json' along
// with the cluster topology to 'topology.json'.
String filename = .. // assume the job history filename here
String conf_filename = .. // assume the job configuration filename here
Configuration conf = new Configuration();
DefaultOutputter do = new DefaultOutputter();
do.init("out.json", conf);
InputStream jobConfInputStream = new FileInputStream(filename);
InputStream jobHistoryInputStream = new FileInputStream(conf_filename);
// extract the job-id from the filename
String jobID = TraceBuilder.extractJobID(filename);
JobBuilder jb = new JobBuilder(jobID);
TopologyBuilder tb = new TopologyBuilder();
// construct a list of interesting properties
List<String> interestingProperties = new ArrayList%lt;String>();
// add the interesting properties here
interestingProperties.add("mapreduce.job.name");
JobConfigurationParser jcp =
new JobConfigurationParser(interestingProperties);
// parse the configuration file
tb.process(jcp.parse(jobConfInputStream));
// read the job history file and pass it to the
// TopologyBuilder.
JobHistoryParser parser = new CurrentJHParser(jobHistoryInputStream);
HistoryEvent e;
while ((e = parser.nextEvent()) != null) {
jb.process(e);
tb.process(e);
}
LoggedJob j = jb.build();
// serialize the job summary in json (text) format
do.output(j);
// close
do.close();
do.init("topology.json", conf);
// get the job summary using TopologyBuilder
LoggedNetworkTopology topology = topologyBuilder.build();
// serialize the cluster topology in json (text) format
do.output(topology);
// close
do.close();
JobTraceReader
LoggedJob
serialized using
DefaultOutputter
. LoggedJob
provides various APIs for extracting job details.
JobTraceReader reader = new JobTracerReader("out.json");
LoggedJob job = reader.getNext();
while (job != null) {
// .... process job level information
for (LoggedTask task : job.getMapTasks()) {
// process all the map tasks in the job
for (LoggedTaskAttempt attempt : task.getAttempts()) {
// process all the map task attempts in the job
}
}
// get the next job
job = reader.getNext();
}
reader.close();
ClusterTopologyReader
LoggedNetworkTopology
serialized using
DefaultOutputter
. ClusterTopologyReader
can be
initialized using the serialized topology filename.
ClusterTopologyReader.get()
can
be used to get the
LoggedNetworkTopology
.
// An example to read the cluster topology from a topology output file
// 'topology.json'
ClusterTopologyReader reader = new ClusterTopologyReader("topology.json");
LoggedNetworkTopology topology = reader.get();
for (LoggedNetworkTopology t : topology.getChildren()) {
// process the cluster topology
}
reader.close();
Copyright © 2018 Apache Software Foundation. All rights reserved.


>
This is part of the old website. New website begins at fontforge.github.io
Are you a web developer? Help us migrate this page on Github
Internal
' REQ'
-- tag used for required features
For TeX
I no longer use these. MS has come up with a MATH table which can contain
all the TeX information.
ITLC
-- Italic
correctionTCHL
-- TeX Charlist
TEXL
-- TeX Extension
List
Non standard file formats
(the name is 'PfEd' for historical reasons)
The table begins with a table header containing a version number and a count of sub-tables
uint32 version currently 0x00010000 uint32 count This is followed by a table of contents, there will be count replications of the following structure (ie. a tag and offset for each sub-table
uint32 tag uint32 offset from start of 'PfEd' table The format of the subtable depends on the sub-table's tag. There are currently 3 tags supported, these are
- 'colr' -- per glyph color sub-table (stores the color that appears in the font view)
- 'cmnt' -- per glyph comment sub-table (stores the comment that appears in the Char Info dialog for the character)
- 'fcmt' -- the font comment sub-table (stores the comment that appears in the Font Info dialog)
- 'flog' -- the font log sub-table (looks just like the 'fcmt' subtable)
- 'cvtc' -- the cvt comments subtable
- 'GPOS' -- Save lookup, lookup subtable and anchor class names of GPOS lookups
- 'GSUB' -- Save lookup and lookup subtable names of GSUB lookups
- 'guid' -- Save guideline locations
- 'layr' -- Save background and spiro layers
The sub-table header begins with a version number, and a count of ranges
uint16 version 0 uint16 count of ranges After this will be <count> instances of the following structure
uint16 starting glyph index uint16 ending glyph index uint32 color expressed as a 24bit rgb value
The sub-table header begins with a version number, and a count of ranges
uint16 version 0/1 uint16 count of ranges After this will be <count> instances of the following structure
uint16 starting glyph index uint16 ending glyph index uint32 offset from the start of this sub-table The offset points to an array of offsets (<end>-<start>+1+1) elements in the array, so one element for each glyph index mentioned in the range structure above, with one left over which allows readers to compute the length of the last string.
uint32 offset from start of table ... And each of these offsets points to a unicode (UCS2 for version 0, UTF-8 for version 1) string. The strings are assumed to be consecutive, so the length of each may be calculated by subtracting its offset from the offset to the next string.
The sub-table header begins with a version number, and a count of ranges
uint16 version 0/1 uint16 length number of characters in the string In version 0 this is followed by <length> Unicode (UCS2) characters. In version 1 it is followed by <length> bytes in utf8 encoding.
The sub-table header begins with a version number, and a count of cvt entries which might have comments
uint16 version 0 uint16 count number of entries in the cvt comments array
which might be smaller than the number of entries in the cvt array itself if we want to save spaceuint16 offset[count] offsets to the start of utf8-encoded, NUL terminated strings. Or 0 if this cvt entry has no comment
The sub-table header begins with a version number, and a count of ranges
uint16 version 0 uint16 count of lookups in this table Then there will be an array of count elements (one for each lookup, ordered as the lookups are in the GPOS or GSUB table)
uint16 offset to lookup name uint16 offset to lookup subtable structure These offsets are based on the start of the subtable. The name offset points to a NUL terminated UTF-8 encoded string. The subtable offset points to the following structure:
uint16 count of lookup subtables in this lookup Then there will be an array of count elements (one for each subtable, ordered as the subtables are in the lookup of the GPOS or GSUB table)
uint16 offset to lookup subtable name uint16 offset to anchor class structure These offsets are also based on the start of the subtable. The name offset points to a NUL terminated UTF-8 encoded string. The anchor offset may be 0 if this subtable doesn't have any anchor classes, otherwise it points to the following structure:
uint16 count of anchor classes in this lookupsubtable Then there will be an array of count elements (one for each anchor class)
uint16 offset to anchor class name
The sub-table header begins with a version number, and a count of ranges
uint16 version 1 uint16 vcount number of vertical guidelines uint16 hcount number of horizontal guidelines uint16 mbz At some point this may contain info on diagonal guidelines. For now it is undefined uint16 offset To a full description of the guideline layer I provide the guidelines in two formats. Either may be omitted. The first format simply describes the horizontal and vertical lines used as guidelines. The second format provides a full description of all contours (curved, straight, horizontal or diagonal) which fontforge uses. I provide both since most apps seem to have a simpler guideline layer than ff does.
This table is followed by two arrays, one for vertical guidelines, one for horizontal guides. Both arrays have the same element type (except that the position is for a different coordinate in the horizontal/vertical cases)
int16 position x location of vertical guides, y location of horizontal ones uint16 offset to name, a NUL terminated utf8 string. (offset may be 0 if guideline is unnamed). The offset to the guideline layer points to a variable length structure which is also used in the 'layr' subtable
The sub-table header begins with a version number, and a count of ranges
uint16 count of contours uint16 count of references (not present in version 0 layers) uint16 mbz reserved for a count of images This is followed by an array of structures describing each contour
uint16 offset to start of contour data uint16 offset to a name for the contour, a utf8, NUL terminated string (or 0 if the contour is unnamed) All offsets from the start of the glyph-layer structure.
This is followed by an array of structures describing each reference
fixed16.16 transform[6] A PostScript transformaton matrix where each member is a signed 4 byte integers which should be divided by 32768.0 to allow for non-integral values uint16 gid The Glyph ID of the glyph being referred to Contour data live in a variable length block. It's basic idea is that it is a list of <command>, <data> pairs. Each command is a byte which consists of two parts, a verb which specifies what happens (and how many items of data are needed) and a modifier which specifies how each data item is represented. The verbs are postscript-like drawing operations: moveto, lineto, curveto, (and quadratic curveto), close path, etc. There are also separate verbs for specifying spiro control points -- these are just the standard spiro type bytes ('v', 'o', 'c', '[' and ']'), no modifier is applied to the spiro commands, their data are always 2 coordinates in fixed notation.
The low order two bits of the command (except for the spiro and close commands) specify the data format:
0 signed byte data for values -128 to 127 1 signed short data for values -32768 to 32767 2 A signed 4 byte integer which should be divided by 256.0 for non-integral coordinates (or for big ones) 3 Undefined and erroneous for now Each command will start at the current point and draw to the point specified by its data. The data are relative to the last point specified (except for moveto, which is absolute, there being on previous point).
The verb may be one of the following:
0 MoveTo, takes 2 coordinates (x,y). This must begin each contour and may not appear elsewhere within it 4 LineTo, also takes 2 coordinates 8 HLineTo, draws a horizontal line, so only the new x coordinate need be specified. 12 VLineTo, draws a vertical line, so only the new y coordinate need be specified. 16 QCurveTo, takes one off-curve control point and one on-curve point, 4 coordinates total, to draw a quadratic bezier spline 20 QImplicit, only specifies the control point. The on-curve point will be the average of the control point specified here, and the one specified in the next QCurveTo or Q*Implicit command. 24 QHImplicit, Same as above, except only the x coordinate of the new control point is specified 28 QVImplicit, Same as above except only the y coordinate of the new control point is specified. 32 CurveTo, takes two off-curve control point and one on-curve point, 6 coordinates total, to draw a cubic bezier spline 36 VHCurveTo, The first control point is vertical from the current point, so only its y coordinate is specified. The final point is horizontal from the last control point so only its x coordinate is specified. 4 coordinates total y1, x2,y2, x3. 40 HVCurveTo, Reverse of the above x1, x2,y2, y3 44 Close, No data. Closes (and ends) the current contour. Will draw a line from the start point to the end point if needed. 45 End, No data. Ends the current contour, but leaves it open. These are basically the drawing operators in the type1 charstrings. If my terse descriptions make no sense look there for a more complete description.
examples
suppose we want to draw a box (0,0)->(0,200)->(200,200)->(200,0)->(0,0). Then the glyph-layer would look like:
Header one contour (ushort) 1 Header no images (ushort) 0 First Contour offset to data (ushort) 8 The number of bytes from the start of the glyph-layer to the Contour Data First Contour no name (ushort) 0 Contour Data Move To 0,0 (byte)0, (byte)0, (byte)0 Both coordinates are <127 and can fit in a byte, so the modifier is 0. The command is also 0, and the coordinates are each 0 Contour Data VLine To [0,]200 (byte)(12+1) (short)200 Vertical motion => VLineTo. Only the new y value need be specified. Is relative to the last position, but that was 0 Contour Data HLine To 200[,200] (byte)(8+1) (short)200 Horizontal motion => HLineTo. Only the new x value need be specified. Is relative to the last position, but that was 0 Contour Data VLine To [200,]0 (byte)(12+1) (short)-200 Vertical motion => HLineTo. Only the new y value need be specified. We move from 200 to 0, so the relative change is -200 Contour Data Close (byte)44 We can draw the final line by closing the path
uint16 version 1 uint16 count number of layers in this sub-table This is followed by an array of structures describing each layer
uint16 typeflag Low order byte is the type
2=>quadratic splines, 3=>cubic splines, 1=>spiros, other values not defined
High order byte are the flags
0x100 => foreground layeruint16 offset to the name of this layer, a utf8, NUL terminated string uint32 offset to the data for this layer The layer data is a block of ranges specifying which glyphs (by GID) have data for this layer. (the type field is present so that applications can ignore layers which they do not support).
uint16 count of ranges This is followed by an array of structures one for each range:
uint16 start first GID in the range uint16 last last GID in the range uint32 offset to an array of offsets, one for each GID in the range. The offsets in this array may be 0. These offsets in turn point to a glyph-layer structure All offsets are relative to the start of the 'layr' subtable.
The table begins with a table header containing a version number and a count of sub-tables
uint32 version currently 0x00010000 uint32 count This is followed by a table of contents, there will be count replications of the following structure (ie. a tag and offset for each sub-table
uint32 tag uint32 offset from start of 'PfEd' table The format of the subtable depends on the sub-table's tag. There are currently 3 tags supported, these are
The sub-table header begins with a version number, and a count of glyphs
uint16 version 0 uint16 count of glyphs After this will be <count> instances of the following structure
uint16 height in em-units uint16 depth
I store these values in em-units rather than in the fix_word of a tfm file because em-units make more sense in a sfnt and take up less space.
This sub-table has essentially the same format as the previous one. The sub-table header begins with a version number, and a count of glyphs
uint16 version 0 uint16 count of glyphs After this will be <count> instances of the following structure
uint16 subscript offset in em-units uint16 superscript offset
I store these values in em-units rather than in the fix_word of a tfm file because em-units make more sense in a sfnt and take up less space.
The sub-table header begins with a version number, and a count of parameters
uint16 version 0 uint16 count number of parameters in the font And this is followed by <count> instances of the following structure:
uint32 tag parameter name int32 value I store these values as fix_words and not as em-units because their meaning is not constrained by the spec and the
Slant
parameter (at the least) can not be converted to em-units.I have defined the following 4-letter parameter tags
Tag Meaning traditional font parameter number in tfm file (font dimension number) Slnt Slant 1 Spac Space 2 Stre Stretch 3 Shnk Shrink 4 XHgt XHeight 5 Quad Quad 6 ExSp Extra Space 7 (in text fonts) MtSp Math Space 7 (in math and math extension fonts) Num1 Num1 8 (in math fonts) Num2 Num2 9 Num3 Num2 10 Dnm1 Denom1 11 Dnm2 Denom2 12 Sup1 Sup1 13 Sup2 Sup2 14 Sup3 Sup3 15 Sub1 Sub1 16 Sub2 Sub2 17 SpDp Sup Drop 18 SbDp Sub Drop 19 Dlm1 Delim 1 20 Dlm2 Delim 2 21 AxHt Axis height 22 RlTk Default Rule Thickness 8 (in math extension fonts) BOS1 Big Op Spacing1 9 BOS2 Big Op Spacing2 10 BOS3 Big Op Spacing3 11 BOS4 Big Op Spacing4 12 BOS5 Big Op Spacing5 13
The table begins with a table header containing a version number and a count of strikes
uint16 version currently 0x0001 uint16 strike-count uint32 offset to string table (from start of BDF table) This is followed by an entry for each strike identifying how many properties that strike has.
uint16 ppem uint16 property-count Then there will be the properties, first there with be property-count[1] properties from the first strike, then property-count[2] properties for the second, etc. Each property looks like:
uint32 name offset into the string table of the property's name uint16 type 0=>string
1=>atom
2=>int
3=>uint
0x10 may be ored into one of the above types to indicate a real propertyuint32 value For strings and atoms, this is an offset into the string table
for integers it is the value itselfThe string table is a series of ASCII bytes. Each string is NUL terminated.
The table begins with a table header containing a version number and is followed by a series of timestamps (same format as the timestamps in the head table -- 64 bit times, seconds since 00:00:00, 1-Jan-1904).I don't think this is a duplication of the information in the 'head' table. Neither the Apple nor OpenType spec is clear: Does head.creationtime refer to the creation time of the truetype/opentype file, or of the font itself. After examining various fonts of Apple's, it appears that the 'head' entries contain the dates for the font file and not the font. The times in this table are specifically the creation time of the font (the sfd file), while the times in the 'head' table contain the creation time of the truetype or opentype font file.
uint32 version currently 0x00000001 int64 FontForge's own timestamp (the date of the sources for fontforge) int64 creation date of this font Not the creation date of the tt/ot file,
but the date the sfd file was created.
(not always accurate).int64 last modification date of this font Not the modification date of the file,
but the time a glyph, etc. was last
changed in the font database.
(not always accurate)


Authentication of Network Infrastructure Devices Using Blockchain
List of Discover Devices
| Number | IP_address | Type |
|---|
List of Authenticated Device
| Number | IP_address | Type |
|---|---|---|
| 0 | <IP_ADDRESS> | Router |
| 1 | <IP_ADDRESS> | Router |
| 2 | <IP_ADDRESS> | MultiLayer Switch |
Temp data for current blockchain


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/sub_eq_sub_of_sub_eq_sub.html ---
example (α : Type*) [add_comm_group α] (a b c d : α) : a - b = c - d → a - c = b - d := sorry
abel
turns this into a + gsmul (-1) b = c + gsmul (-1) d → a + gsmul (-1) c = b + gsmul (-1) d
.
I can solve these things, e.g.
example (α : Type*) [add_comm_group α] (a b c d : α) : a - b = c - d → a - c = b - d := λ h, by rw (eq_add_of_sub_eq h); simp
and I can even PR these things to mathlib if there is a need, but I am not sure whether this is the right thing to do. Is there automation which can solve these goals? Should I just be proving them as I need them in the middle of goals? Is the result there already?
so we're looking at the free Z-module <a,b,c,d> and asking whether (a-c)-(b-d) is in the submodule generated by (a-b)-(c-d) or something like that?
is there some normal form of Z matrices that might solve this?
Right, this is the problem.
Smith normal form?
I would not expect ring
to solve this because it's not "this is an identity in all commutative rings", it's "this element is in this ideal"
sure
So for rings we need Groebner bases, which we don't have, and would be a substantial project to write.
But for abelian groups I thought there was a chance it was easier / already there.
and this isn't "this element is in this ideal", it's "this element is in this submodule"
our problem is linear
exactly
No doubt the tactic I want has a name and is already in Coq.
I think we need to buy Coq
I'm sure MS could buy it, I bet it's cheaper than Nokia
I think we need to port it.
you only need to be a nationwide university to pay for it
But we also need the army of people whose job it is to port all the tactics
those cost extra
I think we need to convince Elon Musk to do something
For this theorem, sure you can add it if it's useful. I'd make it a biconditional
(and add @[simp]
)
lolno
another one which might be useful (and we might already have) is a - b = c - d <-> a + d = b + c
<-> a + d = c + b <-> d + a = b + c <-> ...
I think we need to convince Elon Musk to do something
At AITP I'm going to try and get DeepMind interested. I don't know why they're focussing on medicine, we have to get the basics right first.
I thought they were focusing on starcraft now
They finished that last week.
lol my proof doesn't port. I wanted r - ↑⌊r⌋ = s - ↑⌊s⌋ -> r - s = ↑⌊r⌋ - ↑⌊s⌋
but when I rewrite the r
it goes in the floor too :-)
Last updated: Apr 24 2020 at 19:02 UTC


Schools closed in New Delhi as air quality dips further
by The Associated PressNEW DELHI (AP) — Schools in India’s capital are shut after air quality plunged to a severe category for the third consecutive day, enveloping New Delhi in a thick gray haze of noxious air.
According to the state-run Central Pollution Control Board, the air quality index Thursday exceeded 460, nine times the level recommended by the WHO.
Buildings and monuments are largely obscured by the haze and an official health advisory has asked residents to avoid all physical activity outdoors.
Air pollution in northern India, including New Delhi, peaks in the winter due to smoke from agricultural fires.
The smoke from fields mixes with vehicle emissions and construction dust, making it the world’s most polluted capital.
The Associated Press


Dynamic, detail-oriented Data Scientist with over 5-year experience evidencing excellent leadership, analytical and communication skills. Seeking to display both technical and analytical skills
Advanced Excel Works, Microsoft Power BI, Google Analytics, MS Word, MS Outlook, MS Power Point.
SPSS, R, STATA, MYSQL, EPI INFO, EVIEWS, Gretl, Minitab, Python for Data Science.
Data retrieving, merging, and cleaning. Design of data capturing applications. Creating and deploying tablets applications for data entry. Research planning, hypothesis formulation, quantitative methods, basic computer maintenance
Over the past 5-years, I had the opportunity to work with various leading research firms within the republic among others; 'Centre for Global Health Research-KEMRI/CDC', KALRO-Thika, World Vision, Plan International-Kenya and Kenya airways. During my work experience, I gained knowledge in data management ideally in data scrutiny, data processing and analysis. This has increased my proficiency in using diverse statistical software. Additionally, I have demonstrated the ability to solve various analytical issues and research questions with accuracy and ethics. I am seeking to display technical and analytical skills into future challenging roles within research industry.


About
Contact
Ankit Kotnala
Data Science Enthusiat
My Blog
by
Read More
by
Read More
by
Read More
by
Read More
by
Read More
Load
Submit
Subscribe to my weekly newsletter


{% extends "layout.html" %} {% block page_title %} Start page example {% endblock %} {% block proposition_header %} {% endblock %} {% block header_class %} {% endblock %} {% block content %} Home Section Subsection We need to access data about you held by the Department for Work and Pensions (DWP) We need to access data about you held by the . Which department would you like to use? Department for Work and Pensions (DWP) I don't want to use data from a department {% endblock %}


365 Days of Fitness
readtime ~8min
The Proof
| Day 1 @ 180 lbs | Peak weight @ 210 | Day 365 @ 195 lbs |
|---|---|---|
The Background Information
My favorite thing about New Year’s Day is how culturally acceptable it is to stay in the entire day nursing yourself back to health from the madness you put your body through the night before. My second favorite thing is that fresh clean-slate feeling you feel on the day after where you begin to methodically plan out your year. You organize your priorities, and get serious about all the things you were supposed to get serious about the year before. The past is the past; this year is different. 2018 is going to be the year you secure that promotion, take that trip, or finish that writing project. And if the apocalyptic crowds that funnel in the gym during the first few weeks of January are an indicator of anything, it’s that 2018 is also the year you have decided to get in shape. Great. Maybe it is.
For my entire life I struggled with New Year’s Resolution Syndrome. I would commit myself entirely to something, and go all in for up to six months at a time and then stop all at once. Of course, there was always a reason. There had to be. I had a long break from school, had to study for finals, maybe I would get into a new relationship and neglect making time for the gym. Something would happen that hit the reset button for me.
In August 2014 I transferred to a new college, and experienced that unmistakable clean-slate feeling that accompanies my favorite drinking holiday. Only this time I decided it was going to be different when it came to fitness. I decided that I would dedicate the next 365 days to an experiment of getting into “really great” shape. There was just one glaring obstacle that I faced coming out of the gate: I didn’t know anything about fitness.
The next day I started working out, and the day after that I picked up my first book on fitness. I could write my own book about what I learned along the way, however very few people would probably read that, so I’ll trim the fat and leave the meat below.
The Workout
The following is the exact workout I used for the entirety of the experiment. One caveat is that in order to incorporate cardio I signed up for the school’s club Water Polo team, and practiced with them about three times a week for about 2.5 hours on average. Besides that I also did the following:
Day 1: Chest & Triceps
30 pullups
Flat Bench Press: 3 X 6
Incline Bench Press: 3 X 6
Decline Bench Press: 3 X 6
Dumbbell Press: 3 X 6
Overhead Tricep Extension: 3 X 8
Tricep Pushdown: 3 X 8
Ab circuit
Day 2: Back & Biceps
30 pullups
Deadlifts: 5 X 5
Lat Pulldowns: 3 X 8
Dumb Bell Rows: 3 X 6
21's: 3 X 21
Plate Loaded Lat Pulldown: 3 X 6
Day 3: Legs
30 pullups
Back Squat: 5 X 5
Leg Press: 3 X 8
Incline Calf Raises: 3 X 20
Standing Calf Raises: 3 X 20
Hamstring Curls: 3 X 8
Ab circuit
Day 4: Shoulders & Traps
10 pullups, 20 wide grip pullups
Overhead Press: 5 X 5
Arnold Press: 3 X 6
Dumb Bell Shoulder Press: 3 X 6
Lateral Raises: 3 X 10
Front Raises: 3 X 10
Barbell Shrugs: 3 X 10
Facepulls: 3 X 8
Ab circuit
Ab Circuit:
Planks 3 X 60 seconds
Side Planks 3 X 60 seconds
Cable Crunches 20 X 3
Russian Twists 3 X 25
Day 5: Something Fun
Most weeks I would work out an additional day by doing an activity I enjoyed. I swam laps, went for a hike, or played a few games of pickup basketball at the gym. I liked having this as the last day, because it usually landed on a weekend and gave me the excuse to do something I wouldn’t normally do. Over the course of the year I got much faster at swimming, learned what to bring for long hikes the hard way, and figured out how to be a half decent center in a pickup game.
Diet
Dieting was a bit tricky for me mostly because of my circumstances and lack of discipline regarding sugar and alcohol. I was in college with a small budget allotted for food, so for the first nine months I pretty much ate and drank whatever I wanted and generally consumed about two meals a day. The only things I knew for certain was that chicken was to be eaten as much as possible, and that I needed to drink one protein shake a day. Although I saw moderate results, the experiment would have been much more effective had I stuck with a more well rounded diet from day one. Once I had bulked up to 203 pounds I decided to get serious about diet and followed two fundamental rules.
The first thing I did was calculate my Total Daily Energy Expenditure (TDEE) which was the total amount of calories I expended in a single day. Mine turned out to be somewhere around 2950 calories a day. I then used this figure to base my goals around. If I wanted to gain weight I would eat more calories, and less if I wanted to lose weight. I used an app called “Myfitnesspal” to track what I was eating, and continued to do so for the last 3 months of the experiment, and for many months afterwards.
The second thing I did was calculate exactly how much protein I was supposed to be eating. If you’re like me, and your objective is to gain muscle than you should be eating around 90% of your weight in protein. So for me at around 203 pounds, it was somewhere in between 160-180g every day, an intimidating number to be sure. However, I was able to reach this on a regular basis by drinking two protein shakes a day and eating chicken and fish, and carbs for almost every meal.
I didn’t cut anything out necessarily, but rather tried to be more mindful of what I was eating whilst keeping my TDEE and protein goals in mind. And having to log any poor diet choices in Myfitnesspal, usually supplied me with enough guilt to keep me away from whatever that food was in the future.
Parting Thoughts
I do not claim to be any kind of fitness expert or guru, nor do I have any kind of formal education in kinesiology. What I can say is that I’ve devoted countless hours into doing research, and conducting experiments that have proven to be effective. Below are some fitness tips that I’ve found to be especially important along the way.
Diet is as important as exercise, but that doesn’t mean you can’t eat ice cream. One universal truth of fitness is that diet is a key component to being fit, and it is. Getting your diet sorted out has enormous benefits across the board whether your goals are weight gain or weight loss. Most of the time when people hear the word “diet” they assume it means they’re doomed to eating salads for the rest of their life, and that is false. As long as you’re consistently meeting your TDEE and protein goals, I believe it is okay to reward yourself with the occasional treat or cheat meal. Most unhealthy things aren’t harmful with careful moderation, and sometimes you just really want chocolate, or a beer with your dinner.
There are no replacements for compound lifts. Trust me. I’ve tried. I spent years at the gym avoiding free weights, because I was too intimidated to learn proper form, and being frustrated at my lack of results. Here’s the truth: There are no replacements for compound lifts. Deadlifts, Bench Press, Overhead Press, and Squats are your best friends if you’re looking for the fastest results and the strength to go with it.
Cardio. I don’t think it’s 100% necessary to build a great physique, but it’s certainly recommended if your goals align with losing weight or getting down to a low body fat percentage. 30 minutes 3 times a week goes a long way over time, and it doesn’t have to be running.  You can get results without it, but you’ll get them faster if you do it. And if the zombies come early you’ll be able to outrun like 98% of the American population.
 A couple months after I finished this experiment I partially dislocated my shoulder doing incline dumbbell presses that took me out of the gym for about 3-4 months. Not long after I fully recovered from that I tore a few ligaments in my foot and suffered a grade 3 sprain during a pickup basketball game. Injuries can be so demoralizing, especially when you feel like you’re making great progress, but most of the time it’s only temporary. If you do suffer an injury it’s important to take care of your body. Give it time to recover. Don’t push yourself and risk making it worse. The good news is that muscle memory is not a myth. You will work back to whatever point you were at much faster than it originally took to get there. So stay positive and get back to training only after you’re ready to be back.
The last thing I’ll say is that over the course of learning about fitness I discovered that I absolutely love helping other people do the same. Being able to be a source of information for people who want to get started, but don’t know where to start is something I absolutely love doing. If you have any questions or comments regarding this feel free to check out the contact page and shoot me a message. I promise to get back to you as soon as I am able!


All apps are in the folder apps
.
Each application is contained in a folder with the name of the app, eg. sniffapp
.
Inside this folder are:
sniffapp.mk
the Makefilesniffapp.c
the entry point for the appAll apps are built by invoking the master Makefile
.
make APP=sniffapp
make APP=sniffapp clean
To flash a device with an app, using the CCTL bootloader.
make APP=sniffapp install
By default all apps build for CC1110. However, they can all be built for the host PC using PLATFORM=POSIX
. The install
target will run the application. Radio networking is simulated with IP multicast.
make APP=sniffapp PLATFORM=POSIX install
Valid PLATFORM
s are CC1110
and POSIX
.
Each app contains a custom Makefile fragment which is included by Makefile
during the build process.
The job of the app Makefile is to select features for the firmware and set compile time options. A typical app Makefile might say
CONS_ENABLED=Y
ATTR_ENABLED=Y
BUTTONS_ENABLED=Y
LED_P1_1_ENABLED=Y
CRYSTAL32KHZ_ENABLED=Y
SLEEP_ENABLED=Y
MAC_ENABLED=Y
ADC_ENABLED=Y
Where possible, firmware features are selected at compile time. Each feature is select by a line in the app Makefile. These are then processed in Makefile.app
. For example, the SLEEP_ENABLED
option pulls in object code and sets a preprocessor definition.
ifeq ($(SLEEP_ENABLED),Y)
LIBS += os/sleep.$(OBJEXT)
CFLAGS += -DSLEEP_ENABLED
endif
The app Makefile can pull in extra source files. For example, to add the file foo.c
to the build add the following to the app Makefile:
LIBS += $(APP)/foo.$(OBJEXT)
Each device has a small config area at the top of flash, the layout is in flashvars.h
. After building the application, the config area will be patched with settings taken from config.mk
.


I have management and sales experience from other jobs, along with the knowledge acquired on my Bachelor’s in Business Management and associate in Marketing and Advertising and I am now pursuing an degree in Computer Information Systems and a certification in Data Science at UCI. I have strong Administrative and Technical skills, I am very organized, I love to work in a fast paced environment and I am an excellent multi-tasker and team player. I speak fluent Portuguese and English and basic Spanish. I am very detail-oriented, technical, and I excel in customer service.
| Year | School |
|---|---|
| 2018 | UCI |
| 2015 | Fullerton College |
| 2012 | Harold Washington College |


Welcome to the ping pong web page!
Page not supported at this window size!
About my page
Created by:
Yusuf Qedan
Github Username:
yqedan
Enter your word.
Reverse word!
Here are the rules of Ping-Pong:
Numbers divisible by 3 become "ping"
Numbers divisible by 5 become "ping"
Numbers divisible by 15 become "ping-pong"
Enter a number
Play!


Leave Me Alone – Davido’s Chioma Tells Followers
by Oyindamola Olubajo
Davido‘s fiancee, Chioma Rowland, has shunned some of her Instagram followers for telling her how to raise her son, David junior.
Concise News reports that Chioma shared a video of herself bottle feeding her son while listening to a song off Davido’s new album ‘A good time’ when her followers advised her to breastfeed him often.
A follower wrote: “Absolutely beautiful experience, but please let him suck directly for close bonding” after which she replied, saying that she does that often.
Another follower wrote, “bottle feeding does not create a bond, also it is not healthy.”
In her reaction, Chioma, who seemingly lost patience, asked the followers to let her be.

Davido had announced the birth of his son in the early hours of Sunday, October 20.
The DMW chief shared the news on his verified Twitter handle, describing his wife-to-be, Chioma Rowland, as “strong.”
Accompanied with a picture of him carrying the newborn, Davido wrote: “OMOBA TI DE!!! DAVID ADEDEJI ADELEKE Jr I !! D PRINCE IS HERE!!!! 20 – 10 – 2019 !!! Love you my STRONG WIFE!!! I LOVE YOU!!!!!”


- L2D - Static variable in interface org.objectweb.asm.Opcodes
-
- L2F - Static variable in interface org.objectweb.asm.Opcodes
-
- L2I - Static variable in interface org.objectweb.asm.Opcodes
-
- Label - Class in org.objectweb.asm
-
A label represents a position in the bytecode of a method.
- Label() - Constructor for class org.objectweb.asm.Label
-
Constructs a new label.
- LABEL - Static variable in class org.objectweb.asm.tree.AbstractInsnNode
-
- label - Variable in class org.objectweb.asm.tree.JumpInsnNode
-
The operand of this instruction.
- label - Variable in class org.objectweb.asm.tree.LabelNode
-
- LABEL_INSN - Static variable in class org.objectweb.asm.ClassWriter
-
The type of instructions with a 2 bytes bytecode offset label.
- labelNames - Variable in class org.objectweb.asm.util.ASMifier
-
The label names.
- labelNames - Variable in class org.objectweb.asm.util.Textifier
-
The label names.
- labelNames - Variable in class org.objectweb.asm.xml.SAXCodeAdapter
-
- LabelNode - Class in org.objectweb.asm.tree
-
- LabelNode() - Constructor for class org.objectweb.asm.tree.LabelNode
-
- LabelNode(Label) - Constructor for class org.objectweb.asm.tree.LabelNode
-
- labels - Variable in class org.objectweb.asm.commons.AnalyzerAdapter
-
The labels that designate the next instruction to be visited.
- labels - Variable in class org.objectweb.asm.MethodWriter
-
A list of labels.
- labels - Variable in class org.objectweb.asm.tree.LookupSwitchInsnNode
-
Beginnings of the handler blocks.
- labels - Variable in class org.objectweb.asm.tree.TableSwitchInsnNode
-
Beginnings of the handler blocks.
- labels - Variable in class org.objectweb.asm.util.CheckClassAdapter
-
The already visited labels.
- labels - Variable in class org.objectweb.asm.util.CheckMethodAdapter
-
The already visited labels.
- labels - Variable in class org.objectweb.asm.xml.ASMContentHandler
-
Map of the active
Label
instances for current method.
- labelStatusField - Static variable in class org.objectweb.asm.util.CheckMethodAdapter
-
The Label.status field.
- LABELW_INSN - Static variable in class org.objectweb.asm.ClassWriter
-
The type of instructions with a 4 bytes bytecode offset label.
- LADD - Static variable in interface org.objectweb.asm.Opcodes
-
- LALOAD - Static variable in interface org.objectweb.asm.Opcodes
-
- LAND - Static variable in interface org.objectweb.asm.Opcodes
-
- last - Variable in class org.objectweb.asm.tree.InsnList
-
The last instruction in this list.
- lastField - Variable in class org.objectweb.asm.ClassWriter
-
The fields of this class.
- lastFrame - Variable in class org.objectweb.asm.util.CheckMethodAdapter
-
Number of instructions before the last visited frame.
- lastHandler - Variable in class org.objectweb.asm.MethodWriter
-
The last element in the exception handler list.
- lastMethod - Variable in class org.objectweb.asm.ClassWriter
-
The methods of this class.
- LASTORE - Static variable in interface org.objectweb.asm.Opcodes
-
- lcmp() - Method in class org.objectweb.asm.commons.InstructionAdapter
-
- LCMP - Static variable in interface org.objectweb.asm.Opcodes
-
- lconst(long) - Method in class org.objectweb.asm.commons.InstructionAdapter
-
- LCONST_0 - Static variable in interface org.objectweb.asm.Opcodes
-
- LCONST_1 - Static variable in interface org.objectweb.asm.Opcodes
-
- LDC - Static variable in interface org.objectweb.asm.Opcodes
-
- LDC_INSN - Static variable in class org.objectweb.asm.ClassWriter
-
The type of the LDC instruction.
- LDC_INSN - Static variable in class org.objectweb.asm.tree.AbstractInsnNode
-
- LdcInsnNode - Class in org.objectweb.asm.tree
-
A node that represents an LDC instruction.
- LdcInsnNode(Object) - Constructor for class org.objectweb.asm.tree.LdcInsnNode
-
- LDCW_INSN - Static variable in class org.objectweb.asm.ClassWriter
-
The type of the LDC_W and LDC2_W instructions.
- LDIV - Static variable in interface org.objectweb.asm.Opcodes
-
- LE - Static variable in class org.objectweb.asm.commons.GeneratorAdapter
-
Constant for the
ifCmp
method.
- LEFT_BLOCKBRACE - Static variable in class bramspr.BramsprLexer
-
- LEFT_BLOCKBRACE() - Method in class bramspr.BramsprParser.ArrayAccessExpressionContext
-
- LEFT_BLOCKBRACE() - Method in class bramspr.BramsprParser.ArrayLiteralContext
-
- LEFT_BLOCKBRACE() - Method in class bramspr.BramsprParser.ArrayTypeDenoterContext
-
- LEFT_BLOCKBRACE - Static variable in class bramspr.BramsprParser
-
- LEFT_BRACE - Static variable in class bramspr.BramsprLexer
-
- LEFT_BRACE() - Method in class bramspr.BramsprParser.BlockStructureContext
-
- LEFT_BRACE() - Method in class bramspr.BramsprParser.CompositeDeclarationContext
-
- LEFT_BRACE() - Method in class bramspr.BramsprParser.CompositeLiteralContext
-
- LEFT_BRACE() - Method in class bramspr.BramsprParser.EnumerationDeclarationContext
-
- LEFT_BRACE() - Method in class bramspr.BramsprParser.FunctionDeclarationContext
-
- LEFT_BRACE - Static variable in class bramspr.BramsprParser
-
- LEFT_PARENTHESIS - Static variable in class bramspr.BramsprLexer
-
- LEFT_PARENTHESIS() - Method in class bramspr.BramsprParser.AssignmentExpressionContext
-
- LEFT_PARENTHESIS() - Method in class bramspr.BramsprParser.FunctionCallContext
-
- LEFT_PARENTHESIS() - Method in class bramspr.BramsprParser.FunctionDeclarationContext
-
- LEFT_PARENTHESIS() - Method in class bramspr.BramsprParser.IfStructureContext
-
- LEFT_PARENTHESIS - Static variable in class bramspr.BramsprParser
-
- LEFT_PARENTHESIS() - Method in class bramspr.BramsprParser.ParenthesisExpressionContext
-
- LEFT_PARENTHESIS() - Method in class bramspr.BramsprParser.WhileStructureContext
-
- len - Variable in class org.objectweb.asm.Type
-
The length of the internal name of this Java type.
- length - Variable in class org.objectweb.asm.ByteVector
-
Actual number of bytes in this vector.
- line - Variable in class org.objectweb.asm.Label
-
The line number corresponding to this label, if known.
- LINE - Static variable in class org.objectweb.asm.tree.AbstractInsnNode
-
- line - Variable in class org.objectweb.asm.tree.LineNumberNode
-
A line number.
- lineNumber - Variable in class org.objectweb.asm.MethodWriter
-
The LineNumberTable attribute.
- lineNumberCount - Variable in class org.objectweb.asm.MethodWriter
-
Number of entries in the LineNumberTable attribute.
- LineNumberNode - Class in org.objectweb.asm.tree
-
A node that represents a line number declaration.
- LineNumberNode(int, LabelNode) - Constructor for class org.objectweb.asm.tree.LineNumberNode
-
- literal() - Method in class bramspr.BramsprParser
-
- literal() - Method in class bramspr.BramsprParser.LiteralExpressionContext
-
- LLOAD - Static variable in interface org.objectweb.asm.Opcodes
-
- LMUL - Static variable in interface org.objectweb.asm.Opcodes
-
- LNEG - Static variable in interface org.objectweb.asm.Opcodes
-
- load(int, Type) - Method in class org.objectweb.asm.commons.InstructionAdapter
-
- loadArg(int) - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instruction to load the given method argument on the stack.
- loadArgArray() - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instructions to load all the method arguments on the stack,
as a single object array.
- loadArgs(int, int) - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instructions to load the given method arguments on the
stack.
- loadArgs() - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instructions to load all the method arguments on the stack.
- loader - Variable in class org.objectweb.asm.tree.analysis.SimpleVerifier
-
The loader to use for referenced classes.
- loadInsn(Type, int) - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instruction to push a local variable on the stack.
- loadLocal(int) - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instruction to load the given local variable on the stack.
- loadLocal(int, Type) - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instruction to load the given local variable on the stack.
- loadThis() - Method in class org.objectweb.asm.commons.GeneratorAdapter
-
Generates the instruction to load 'this' on the stack.
- local - Variable in class org.objectweb.asm.Context
-
The local values of the latest stack map frame that has been parsed.
- LOCAL - Static variable in class org.objectweb.asm.Frame
-
Kind of the types that are relative to the local variable types of an
input stack map frame.
- local - Variable in class org.objectweb.asm.tree.FrameNode
-
The types of the local variables of this stack map frame.
- localCount - Variable in class org.objectweb.asm.Context
-
The number of locals in the latest stack map frame that has been parsed.
- localDiff - Variable in class org.objectweb.asm.Context
-
The number locals in the latest stack map frame that has been parsed,
minus the number of locals in the previous frame.
- locals - Variable in class org.objectweb.asm.commons.AnalyzerAdapter
-
List
of the local variable slots for current execution
frame.
- locals - Variable in class org.objectweb.asm.tree.analysis.Frame
-
The number of local variables of this frame.
- localTypes - Variable in class org.objectweb.asm.commons.GeneratorAdapter
-
Types of the local variables of the method visited by this adapter.
- localVar - Variable in class org.objectweb.asm.MethodWriter
-
The LocalVariableTable attribute.
- localVarCount - Variable in class org.objectweb.asm.MethodWriter
-
Number of entries in the LocalVariableTable attribute.
- LocalVariableNode - Class in org.objectweb.asm.tree
-
A node that represents a local variable declaration.
- LocalVariableNode(String, String, String, LabelNode, LabelNode, int) - Constructor for class org.objectweb.asm.tree.LocalVariableNode
-
- localVariables - Variable in class org.objectweb.asm.tree.MethodNode
-
The local variables of this method.
- LocalVariablesSorter - Class in org.objectweb.asm.commons
-
A
MethodVisitor
that renumbers local variables in their order of
appearance.
- LocalVariablesSorter(int, String, MethodVisitor) - Constructor for class org.objectweb.asm.commons.LocalVariablesSorter
-
- LocalVariablesSorter(int, int, String, MethodVisitor) - Constructor for class org.objectweb.asm.commons.LocalVariablesSorter
-
- localVarType - Variable in class org.objectweb.asm.MethodWriter
-
The LocalVariableTypeTable attribute.
- localVarTypeCount - Variable in class org.objectweb.asm.MethodWriter
-
Number of entries in the LocalVariableTypeTable attribute.
- log(String) - Static method in class org.objectweb.asm.commons.JSRInlinerAdapter
-
- LOGGING - Static variable in class org.objectweb.asm.commons.JSRInlinerAdapter
-
- LOGIC - Static variable in class bramspr.BramsprLexer
-
- LOGIC - Static variable in class bramspr.BramsprParser
-
- LONG - Static variable in class org.objectweb.asm.ClassWriter
-
The type of CONSTANT_Long constant pool items.
- LONG - Static variable in class org.objectweb.asm.Frame
-
The LONG type.
- LONG - Static variable in interface org.objectweb.asm.Opcodes
-
- LONG - Static variable in class org.objectweb.asm.Type
-
The sort of the long type.
- LONG_TYPE - Static variable in class org.objectweb.asm.commons.GeneratorAdapter
-
- LONG_TYPE - Static variable in class org.objectweb.asm.Type
-
The long type.
- LONG_VALUE - Static variable in class org.objectweb.asm.commons.GeneratorAdapter
-
- LONG_VALUE - Static variable in class org.objectweb.asm.tree.analysis.BasicValue
-
- longVal - Variable in class org.objectweb.asm.Item
-
Value of this item, for a long item.
- LOOK_INSN - Static variable in class org.objectweb.asm.ClassWriter
-
The type of the LOOKUPSWITCH instruction.
- lookupswitch(Label, int[], Label[]) - Method in class org.objectweb.asm.commons.InstructionAdapter
-
- LOOKUPSWITCH - Static variable in interface org.objectweb.asm.Opcodes
-
- LOOKUPSWITCH_INSN - Static variable in class org.objectweb.asm.tree.AbstractInsnNode
-
- LookupSwitchInsnNode - Class in org.objectweb.asm.tree
-
A node that represents a LOOKUPSWITCH instruction.
- LookupSwitchInsnNode(LabelNode, int[], LabelNode[]) - Constructor for class org.objectweb.asm.tree.LookupSwitchInsnNode
-
- LOR - Static variable in interface org.objectweb.asm.Opcodes
-
- lpatterns - Variable in class org.objectweb.asm.xml.ASMContentHandler.RuleSet
-
- LREM - Static variable in interface org.objectweb.asm.Opcodes
-
- LRETURN - Static variable in interface org.objectweb.asm.Opcodes
-
- LSHL - Static variable in interface org.objectweb.asm.Opcodes
-
- LSHR - Static variable in interface org.objectweb.asm.Opcodes
-
- LSTORE - Static variable in interface org.objectweb.asm.Opcodes
-
- LSUB - Static variable in interface org.objectweb.asm.Opcodes
-
- LT - Static variable in class org.objectweb.asm.commons.GeneratorAdapter
-
Constant for the
ifCmp
method.
- ltab - Variable in class org.objectweb.asm.util.Textifier
-
Tab for labels.
- LUSHR - Static variable in interface org.objectweb.asm.Opcodes
-
- LXOR - Static variable in interface org.objectweb.asm.Opcodes
-


| amqp/ |
|
20.43% |
(19 / 93) |
0% |
(0 / 26) |
0% |
(0 / 21) |
20.43% |
(19 / 93) |
| api-requests/ |
|
13.5% |
(27 / 200) |
0% |
(0 / 46) |
0% |
(0 / 51) |
13.5% |
(27 / 200) |
| api-requests/permissions/ |
|
100% |
(6 / 6) |
100% |
(0 / 0) |
100% |
(0 / 0) |
100% |
(6 / 6) |
| api-requests/requests/ |
|
16.13% |
(5 / 31) |
0% |
(0 / 2) |
0% |
(0 / 8) |
16.13% |
(5 / 31) |
| components/ |
|
85.71% |
(12 / 14) |
50% |
(1 / 2) |
100% |
(0 / 0) |
85.71% |
(12 / 14) |
| components/src/definitions/behaviors/ |
|
0.24% |
(1 / 412) |
0% |
(0 / 362) |
0% |
(0 / 81) |
0.24% |
(1 / 412) |
| components/tasks/ |
|
16.22% |
(12 / 74) |
6.67% |
(2 / 30) |
0% |
(0 / 10) |
16.22% |
(12 / 74) |
| components/tasks/build/ |
|
23.53% |
(8 / 34) |
0% |
(0 / 6) |
0% |
(0 / 7) |
23.53% |
(8 / 34) |
| components/tasks/collections/ |
|
51.52% |
(17 / 33) |
50% |
(1 / 2) |
14.29% |
(2 / 14) |
51.52% |
(17 / 33) |
| components/tasks/config/ |
|
37.04% |
(10 / 27) |
8.33% |
(1 / 12) |
0% |
(0 / 3) |
37.04% |
(10 / 27) |
| components/tasks/config/project/ |
|
41.44% |
(46 / 111) |
23.81% |
(20 / 84) |
18.18% |
(4 / 22) |
41.44% |
(46 / 111) |
| components/tasks/docs/ |
|
9.84% |
(12 / 122) |
0% |
(0 / 34) |
0% |
(0 / 17) |
9.92% |
(12 / 121) |
| components/tasks/rtl/ |
|
9.38% |
(6 / 64) |
0% |
(0 / 14) |
0% |
(0 / 11) |
9.38% |
(6 / 64) |
| config/ |
|
100% |
(2 / 2) |
50% |
(9 / 18) |
100% |
(0 / 0) |
100% |
(2 / 2) |
| controllers/subscriptions/ |
|
4.62% |
(6 / 130) |
0% |
(0 / 116) |
0% |
(0 / 39) |
4.62% |
(6 / 130) |
| debug/ |
|
33.33% |
(3 / 9) |
0% |
(0 / 2) |
50% |
(1 / 2) |
33.33% |
(3 / 9) |
| messages/ |
|
20% |
(3 / 15) |
0% |
(0 / 6) |
0% |
(0 / 3) |
20% |
(3 / 15) |
| models/ |
|
100% |
(32 / 32) |
100% |
(0 / 0) |
100% |
(0 / 0) |
100% |
(32 / 32) |
| models/schema/ |
|
100% |
(3 / 3) |
100% |
(0 / 0) |
100% |
(0 / 0) |
100% |
(3 / 3) |


Software tools for the Human-Machine
Interface
Etienne Saliez, version 2021-09-01 /
- Introduction:
- Adaptation and extension of existing software tools to be adapted
in function of the requirement of the GrApH-AI project in healthcare
context.
- As far as possible the essential functionalities should be Open
Source. Availability of Assisted Intelligence will be particularly
useful in developing regions where there are very few doctors.
- Collaborations in the Neo4j community. https://neo4j.com/developer/contributing-code/
.
- Introduction to graph visualization tools: https://neo4j.com/developer/tools-graph-visualization/
,
- Neo4j browser:
- Provide basic way to view a graph and to navigate. Accept cypher
statements which is useful for debugging.
- The " :style " option provide a way to convert systematically
logical information as nodes and relations types into a visual
style.
- Vis-network community:
- Neo4j Arrows:
- Excellent example of interface for:
- The creation of new nodes and relationships.
- The maintenance of the attributes of node and relationships.
- But intended only for discussions about small models.:
- Do not accept multiple instances of the same type.
- Can save a small model but cannot read nor write in an
existing large graph data base.
- https://neo4j.com/labs/arrows/
.
- Neovis:
- Popoto:
- Bloom:
- Intended for the analyse of large Neo4j databases by non IT users.
Question can be formulated in a much easier way than "cypher".
- https://neo4j.com/product/bloom/
. not free Open Source.
- Other softwares still to be explored:
- Cytoscape: https://cytoscape.org/
, focusing on biology and genetics,
- Cambridge-Intelligence: https://cambridge-intelligence.com/keylines/
,
- rageDB: https://github.com/ragedb/ragedb
,
- NeoDash: https://www.nielsdejong.nl/neo4j%20projects/2021/06/06/neodash-1.1-extensible-interactive-dashboards.html
, https://neo4j.com/blog/contributor/niels-de-jong-adam-cowley/
,
- Niels de Jong & Adam Cowley: https://neo4j.com/blog/discovering-hidden-skills-enterprise-knowledge-graph/
,
- Yworks: https://www.yworks.com/blog/neo4j-Custom-Visualization-Solutions
,
- Graphaware Hume: https://linkurio.us/
,
- Linkurious: https://linkurio.us/
, but not Open Source.
- Kineviz: https://www.kineviz.com/
,
- Graphileon: https://graphileon.com/
,
- Semsped: https://www.semspect.de/
,
- ReGraph: https://cambridge-intelligence.com/regraph/
,
- G6: https://g6.antv.vision/en
,
- Graphlytic: https://graphlytic.biz/demo
,
- Network X: https://towardsdatascience.com/python-interactive-network-visualization-using-networkx-plotly-and-dash-e44749161ed7
,
- ...


Cockburn leads way as Illinois holds off Grand Canyon 83-71
by JOHN MARSHALLPHOENIX (AP) - Illinois started its two-game desert road trip in one of the rowdiest environments in college basketball.
Grand Canyon’s purple-clad “Havocs” spent the game bouncing, clapping and screaming, making it hard for the Illini to even hear each other during timeouts.
Illinois survived the road havoc and now faces another, potentially tougher one at Arizona’s McKale Center.
Kofi Cockburn had 23 points and 14 rebounds, Andres Feliz added 21 points and Illinois pulled away late to beat Grand Canyon 83-61 Friday night.
“The homecourt atmosphere was everything it was rumored to be,” Illinois coach Brad Underwood said. “I told our players one of the advantages of a homecourt advantage is not only getting the home team ready, but they’re so disruptive in terms of communication.”
Illinois (2-0) worked the ball inside to Cockburn early and that opened up the rest of the floor. The Illini led by four at halftime and stretched it to 14 with a big run to start the second half.
Riding the energy from one of college basketball’s best home crowds, Grand Canyon (0-2) kept it close in the first half and made a late run to cut the Illini’s lead to four.
Illinois kept the Antelopes at arm’s length from there to open a two-game trip to the desert with a win before facing No. 21 Arizona on Sunday
Grand Canyon spread the floor to make a late run and made 8 of 19 from 3-point range.
The Antelopes were no match for the Illini inside, outrebounded 52-26 while giving up 15 second-chance points on 20 offensive rebounds. Illinois also had a 44-32 advantage in the paint.
Isiah Brown led Grand Canyon with 18 points and Jovan Blacksher Jr. added 14.
“Disappointed, but really proud of my guys,” Grand Canyon coach Dan Majerle said. “They played with a lot of passion and heart, they played hard. It was a big step up in what we played the first game.”
With 85% of their scoring back and a frenetic, turnover-producing defense, the Illini ratcheted up expectations entering their third season under Underwood.
Illinois instead got it off to an inauspicious start, needing overtime to beat Nicholls at home in its opener.
Grand Canyon got its seventh season under Majerle off to a shaky start, losing by 11 at home to Division II Davenport.
The Antelopes have their smallest team under Majerle, so it was no surprise they had trouble stopping Cockburn inside. The 7-foot Jamaican freshman powered his way past GCU defenders throughout the first half, scoring 14 points on 5-of-8 shooting and grabbing seven rebounds by halftime
“He’s an imposing figure,” Underwood said. “We’ve got to take advantage of that and I thought tonight we did.”
When the Antelopes started closing in on Cockburn, Feliz took over, scoring 12 first-half points.
Grand Canyon kept pace from the 3-point arc, where it struggled in the opener. The Lopes made 5 of 9 in the first half - they were 2 for 19 against Davenport - to stay within 41-37 at halftime.
“I thought what did we needed to do early,” Underwood said. “We got a little bit sloppy at the end of the first half when we really had a chance to really take the next step.”
Illinois hit its first six shots to open the second half on a 15-4 run, pushing the lead to 56-41.
The Antelopes kept Illinois from running away with it, hanging around before trimming the lead to 71-67 with four minutes left.
Grand Canyon couldn’t get any closer and had to play without Alessandro Lever after the center fouled out.
“Our guys expected to win this game, so there’s a lot of disappointment in that locker room,” Majerle said.
BIG PICTURE
Illinois played better than its opener and a solid tuneup for the more difficult game of the road trip, at No. 21 Arizona on Saturday.
Grand Canyon had its hands full with Illinois’ size, but put up a better fight than it did in the opener.
FREE THROW WOES
Grand Canyon was good from the free throw line its opening loss, making 15 of 19. The Antelopes were not so good against Illinois, going 9 for 16.
“That’s something we can control and we have to be better,” Majerle said.
UP NEXT
Illinois plays at No. 21 Arizona on Sunday.
Grand Canyon hosts San Diego State on Wednesday.
More AP college basketball: https://apnews.com/Collegebasketball and http://www.twitter.com/AP_Top25
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


connect to the server
my id is :
listen to messages
msg received are:
ID of the other peer to send him a msg :
connect to another peer
send message to another peer


The Quote Analyzer is used to process a bunch of quotes at one time and analyze the lengh, difficulty and uniqueness of letters in order to allow picking quotes which are ideal for a test question.
The process involves three steps
The Analyzer will process all the quotes and generate a table like:
| Length | Chi-Squared | Unique | Grade Level | Likes | Author | Source | Quote | Notes |
|---|---|---|---|---|---|---|---|---|
| 76 | 50.307369620051276 | 20 | 6th and 7th grade | Alcurtis Turner | You shouldn't just give during Christmas and Thanksgiving you should be giving all the time. |
The columns are generated as:
likes
input field for the quote.author
input field for the quote.source
input field for the quote.text
input field for the quote with extra spaces and carriage returns
removed.notes
input field for the quote.The input file is in JSON format, but fortunately there are many online editors which can allow easy edit including:
The file starts with a single [
and ends with a matching ]
.
Each quote is surrounded by a pair of curly braces (e.g. {
quote data }
)
with a single comma between them (but not after the last one).
Here's a simple example with only two quotes in it.
[ { "text": "You shouldn't just give during Christmas and Thanksgiving you should be giving all the time.", "author": "Alcurtis Turner" }, { "text": "Give thanks not just on Thanksgiving Day, but every day of your life. Appreciate and never take for granted all that you have.", "author": "Catherine Pulsifer", "notes": "My notes go here", "source": "Goodreads" } ]
Each entry can have as many pairs of input field strings in double quotes separated by a
colon but there are only 5 that the processor will read, all others will be
silently ignored. Of those 5, only the text
field is actually processed,
the others are simply copied to the output.
text
source
author
notes
likes


Fields on this page can be left blank temporarily, but all must be filled in before clicking the Finish button on the final page of the survey data entry.