What's with the blog's name?
Ah, the Pythagorean theorem, one of the most ubiquitous and useful formulas in all of math. If you have a right triangle with side lengths \(a\), \(b\), and \(c\), they are related by the following formula:
\[a^2 + b^2 = c^2\]If \(a\), \(b\), and \(c\) are all integers, this is known as a “Pythagorean triple”. Two examples are the 3-4-5 and 5-12-13 triangles. It’s relatively simple to prove that there are an infinite number of these Pythagorean triples, and there are formulas to produce all of them from the set of positive integers. But what if I change the formula to instead be:
\[a^n + b^n = c^n\] \[n \geq 3\]Are there any integer solutions to this equation?
Enter Pierre de Fermat, a 17th century mathematician specializing in number theory and infintesimal calculus. While reading a copy of Arithmetica by Diophantus, he came across problem II.8, which considers solving the Pythagorean theorem for a known \(c\). Around 1637, he wrote the following statement in Latin next to the problem:
Cubum autem in duos cubos, aut quadratoquadratum in duos quadratoquadratos & generaliter nullam in infinitum ultra quadratum potestatem in duos eiusdem nominis fas est dividere cuius rei demonstrationem mirabilem sane detexi. Hanc marginis exiguitas non caperet.
or in English:
It is impossible to separate a cube into two cubes, or a fourth power into two fourth powers, or in general, any power higher than the second, into two like powers. I have discovered a truly marvelous proof of this, which this margin is too narrow to contain.
Fermat died in 1665 without ever publishing a proof of the statement (although he did send the problem to his friends as a challenge). After his death, his son published a new version of Arithmetica with Fermat’s comments, as well as his proof of the \(a^4 + b^4 = c^4\) case. However, the cubic version consistently perplexed mathematicians for the next couple hundred years, so much so that the Guiness Book of World Records labeled it the “most difficult mathematical problem”… until the 1980s came around.
In 1986, mathematician Gerhard Frey suggested that proving the modularity theorem (then known as the Taniyama–Shimura-Weil conjecture) would imply Fermat’s Last Theorem, and by 1990, Jean-Pierre Serre and Ken Ribet assisted in proving this notion. So then it’s simple, right? Just prove the modularity theorem and you have the solution to a 300 year old unsolved problem! The issue is that most mathematicians at the time thought the conjecture would be extremely difficult, if not impossible to prove. One of them was even Ken Ribet.
After learning about the advancements made in Fermat’s Last Theorem, Cambridge professor Andrew Wiles began working on a proof of the modularity theorem for semistable elliptic curves, and in turn, Fermat’s Last Theorem. After years of hard work, on June 23rd, 1993 Wiles presented his findings in three lectures at the Isaac Newton Institute for Mathematical Sciences in Cambridge. However, there was a problem. During review, referees raised some questions to Wiles that made him realize his proof was actually incomplete. Rumors began to spread about the proof, and there was mounting pressure in the mathematical community for him to release his current work, as it was still useful without proving Fermat’s Last Theorem. Wiles spent the next year attempting to fix his proof with one of his former students to no avail.
September 19, 1994 was a Monday morning. Wiles was on the edge of giving up and publishing his current work. Suddenly, he came to a realization, which is best defined in his own words:
I was sitting at my desk examining the Kolyvagin–Flach method. It wasn’t that I believed I could make it work, but I thought that at least I could explain why it didn’t work. Suddenly I had this incredible revelation. I realised that, the Kolyvagin–Flach method wasn’t working, but it was all I needed to make my original Iwasawa theory work from three years earlier. So out of the ashes of Kolyvagin–Flach seemed to rise the true answer to the problem. It was so indescribably beautiful; it was so simple and so elegant. I couldn’t understand how I’d missed it and I just stared at it in disbelief for twenty minutes. Then during the day I walked around the department, and I’d keep coming back to my desk looking to see if it was still there. It was still there. I couldn’t contain myself, I was so excited. It was the most important moment of my working life. Nothing I ever do again will mean as much.
The final result was over one hundred pages and almost incomprehensible, except to the highest level mathematicians. The Wikipedia page that has a summary of the proof says “This section needs attention from an expert in mathematics,” which is a bit of an understatement. Ribet later stated that he believed Andrew Wiles was one of the only people on Earth that could have created the proof. Although he was too old to win a Fields Medal (the equivalent to a Nobel Prize in Mathematics) for his work, he was knighted, fittingly won the Fermat Prize for the year, and a received a variety of other awards.
The question that mathematicians are still wondering about now is whether Fermat ever actually had a proof for the cubic case. He probably didn’t have working knowledge of the modularity of semistable elliptic curves, as they hadn’t really been discovered yet. Perhaps Fermat had created an incorrect demonstration for the \(n = 3\) case that he was convinced was right, similar to Wiles’s original 1993 proof. We’ll probably never know what actually happened, but it’s certainly fun to think about.
Surprisingly, this isn’t the only 300 year old problem solved at the turn of the millenium. University of Pittsburgh’s own Thomas Hales announced a proof of the Kepler conjecture, first proposed in 1611, in 1998. However, he used a computer-assisted proof, so it took until 2017 to be formalized and accepted into a journal. If you’re one of my students in Big Ideas (CMPINF 0010) this semester, you might even be lucky enough to get a speech from him about computer-assisted proofs and the future of computers in solving difficult mathematical problems.
Now, if you’re a budding mathematician yourself and now concerned that all the good problems have been solved already, fear not! The Millenium Problems are a set of seven unsolved mathematical questions with a one-million dollar reward to anyone who can find answers. Only one has been solved so far: the Poincaré conjecture covering the characterization of the 3-sphere (think sphere in 4 dimensions) was proven by Grigori Perelman in 2002. The story of Perelman’s proof of the Poincaré conjecture is worth a whole blog post in itself, so I’ll just file that away for another time. Until then, keep working hard.
- Griffin
Sources:
- https://en.wikipedia.org/wiki/Modularity_theorem
- https://en.wikipedia.org/wiki/Wiles%27s_proof_of_Fermat%27s_Last_Theorem
- https://en.wikipedia.org/wiki/Fermat_Prize
- https://en.wikipedia.org/wiki/Andrew_Wiles
- https://en.wikipedia.org/wiki/Kepler_conjecture
- https://en.wikipedia.org/wiki/Millennium_Prize_Problems
(Yes, I know Wikipedia is not a scholarly source, but this is just meant to be a fun blog post. Take it with a grain of salt.)


PMS
Backlog
Board
Report
Repository
New Task / Issue
Settings
My Profile
Logout
New Issue/Task
Back
What needs to be done?
Issue type
Story
Task
Bug
Epic
Priority
Highest
High
Medium
Low
Lowest
Story points


|
SGCoreCs
v1.3.1
SenseGlove C# API
|
Singleton class that reports debug messages. Can be subscribed to by other programs. More...
Public Member Functions | |
| delegate void | MessageRecievedEventHandler (object source, DebugArgs args) |
| Delegate for the DebugMessageRecieved event. More... | |
Static Public Member Functions | |
| static void | Log (string message, DebugLevel level) |
| Attempt to post output to the System.Console class. If that fails, try to write to the System.Diagnostics.Debug class. More... | |
| static void | SetConnectionLibCollection (bool active) |
| Enable / Disable debug queueing on the SGConnect library. More... | |
| static bool | GetConnectionLibMessages (out string messages) |
| Gte queued messages from the Connection library, provided it is running from this same main thread. More... | |
Static Public Attributes | |
| static readonly DebugLevel | defaultDebugLvl = DebugLevel.ErrorsOnly |
| The Default debug level for any application More... | |
Properties | |
| static Debugger | Instance [get] |
| Access the Debugger instance. More... | |
| static DebugLevel | DebugLevel [get, set] |
| The debug level of the Debugger More... | |
Events | |
| MessageRecievedEventHandler | DebugMessageRecieved |
| Fires when a new message is recieved by the Debugger. More... | |
Singleton class that reports debug messages. Can be subscribed to by other programs.
|
static |
Gte queued messages from the Connection library, provided it is running from this same main thread.
| messages |
|
static |
Attempt to post output to the System.Console class. If that fails, try to write to the System.Diagnostics.Debug class.
| message | The message to write to the user. |
| level |
| delegate void SGCore.Diagnostics.Debugger.MessageRecievedEventHandler | ( | object | source, |
| DebugArgs | args | ||
| ) |
Delegate for the DebugMessageRecieved event.
| source | |
| args |
|
static |
Enable / Disable debug queueing on the SGConnect library.
| active |
|
static |
The Default debug level for any application
|
staticgetset |
The debug level of the Debugger
| MessageRecievedEventHandler SGCore.Diagnostics.Debugger.DebugMessageRecieved |
Fires when a new message is recieved by the Debugger.


The tool consists of a table, where each row is a school in Kibera, in OpenStreetMap, and each column is a tag.
At the start, only two columns are shown, osm:name and osm:_timestamp. You can click on the column header, and the results will be sorted (click twice reverse sort).
There are four groups of tags, which can be shown/hidden by clicking the filter buttons at the top.
The number below the tag name, in the column, is the percentage of schools which validate correctly for each tag.
For each school and each tag, a number of validation tests are run.
For instance, for osm:name, it checks that the first letter of each word is capitalized, and that no underscores are in the name.
For education:type, it checks that the value is either pre_primary, primary, or secondary.
Our goal is to get as close as possible to 100% for every tag for every school.
This is a work in progress. There may need to be more validation tests implemented, if problems are discovered. Or certain tests may be failing, but they shouldn't be (for instance, if an option is missing from an allowed value list). There are usability improvements I have in mind also, to make it easier to use.
Note, the data in the tool doesn't update automatically every time you edit; it requires that I run a process on my computer.


To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video


Christian Gregory
CEO - FounderJelly topping halvah caramels sweet cake gummi bears toffee.
{% load static %}
144-146, Jalan Taming Sari, 34000 Taiping, Perak - Hotline: 05-8073354
{{ hot_cake.description }}
{% if hot_cake.after_discount %}
RM {{hot_cake.price}}RM
{{hot_cake.after_discount}}
RM {{hot_cake.price}}
Order now {% endif %}{{new_cake.description}}
{% if new_cake.after_discount %}
RM {{new_cake.price}}RM
{{new_cake.after_discount}}
RM {{new_cake.price}}
Order now {% endif %}We all have those moments in our lives when we feel as if everything needs to be exactly rigt.
Dessert tiramisu tart donut macaroon. Gummi bears lollipop marzipan. Caramels gummi bears icing jelly beans cheesecake brownie topping candy sugaplum.


Short Link to Editor
Short Link to Publish
Long Link to Publish
Copy Code
Download Code
Encoded Input
Clear Editor
Refresh Page


The name of several ml-lpt-lib modules has changed:
Repair => AntlrRepair StreamPos => AntlrStreamPos ErrHandlerFn => AntlrErrHandler EBNF => AntlrEBNFThe ml-antlr specification format has changed: declarations such as %tokens and nonterminal definitions can occur *multiple* times in the same specification. The semantics are such that each new declaration extends the previous ones. This does not apply to %start or %name, of course.
Importing a grammar via %import now includes *all* declarations in from the imported grammar, except for %name, %entry, and %start. Tokens and nonterminals can be dropped using the new %dropping clause of the %import directive; the separate %drop and %extend have been removed.
We now allow optional type annotations on nonterminals, using the %nonterms directive as in ml-yacc.
The refcell construct is now implemented using SML's regular reference cells, so the :== and !! notation has been deprecated.
The ml-antlr tool now does much more checking of specifications, and its error messages have been greatly improved. Error repair for generated parsers has been completely rewritten, and is now both much faster and more accurate.
ml-ulex is now more lenient with escape codes (non-SML-standard escape codes are now interpreted literally, so e.g. \| denotes "|"). Also, character classes may now include a "-" character at the beginning as is standard in most other regexp tools. All of these changes are documented in the user guide, which has been updated and improved with this merge.


Built a web app with a map to show curated routes with points of interest and tips for exploration of the natural world for electric vehicles.
See moreA project to do cross-platform app development in Flutter and experiment various features, like maps, location, camera, cloud messaging, storage and animation.
See moreBuilt a SaaS platform where large public sector landowners can simply upload their under-utilised sites and supply chain partners can review, assess and deliver homes at scale. The platform enables clients to analyse and progress sites for development at a click of a button.
See moreFun New Outdoors Escape Game in London. Rebuilt website with a new design and developed two game apps based on what I have done for Mission Camden.
See moreFree adventure games are built for residents in Camden. On a mission to give everyone easy access to fun, social and active experiences that enhance mental and physical health.
See moreThis app is built based on Geovation Photos open-source project. Allow user to simply take a photo and provide information of collected platic which will later show on the map.
See moreThe app is to help people find gyms, hotels and other spaces to get showered and changed. I integrated the Stripe payment system and Selenium automation testing.
See moreA game for learning CSS grid layout 🥕. I contributed Chinese Traditional translation and also a bit of the simplified one.
See moreLighting data for every minute of one year gathered at Halley VI Research Base on the Brunt Ice Shelf by the British Antarctic Survey is presented in the BRINK Polar Light App for use with the Philips Hue lighting system.
See moreA street-smart app to navigate you based on crime, lighting and crowdsourced experiences of street harassment to make informed decisions about your safety while planning & taking a walk.
See moreOn a mission to help the UK fall in love with tap water again and preventing plastic pollution at source by making reusing a bottle easier than buying a new one. The refill app is to show nearby or any free Refill water stations across the UK and over all world.
See moreA mobile app with a mission to get more people cycling in London by pairing up new and experienced cyclists on the same routes.
See moreMade pull request to Tippecanoe project by adding directory support, including its 'tile-join' tool. It can be beneficial to adopt a directory structure and merging process for handling vector tiles, which can be further used for rendering.
See moreA command line orientied pipeline for taking vector data in formats such as GeoJSON and Shapefiles, and transforming them into raw Vector Tiles and MBTiles files.
See more


---
layout: home
title: Hi, I'm Menghan Zhang
description: I am a Product Designer with a background in Software Engineering. Currently studying Integrated Innovation at CMU. Previously, I was a product designer at Zhihu. When I'm not designing, I recharge myself by reading or cooking.
---


This section will detail some tips and best practices on the art of Query/Category building to help you get the most out of VoiceBase’s powerful Voice Analytics tools. Query WHERE Clause Tips When you want to search your Media data for specific terms and phrases, the WHERE clause is how you will do that. As a reminder, the WHERE clause looks like this: SELECT mediaId, hits() FROM media WHERE "Agent" SAYS "may be recorded"/1 LIMIT 100 Eventually, when you want to start building robust and comprehensive Categories, one way you can do so is by chaining together a series of search terms and phrases using the WHERE clause. When you do this approach, it is recommended that you search for phrases that are no more than 2-3 words long, and that you use the wildcard and slop capabilities of VBQL to anticipate variance in words, tenses and different speech patterns. Let’s walk through what we mean with the following example: SELECT * FROM media WHERE "Customer" SAYS (("price drop*"/2 || "price change*"/2) && ("refund*" || "reimburs*")) www.voicebase.com |<EMAIL_ADDRESS>43 Let’s break down each part of this Query: The SELECT Statement This SELECT statement is selecting all available columns/Fields that we have setup in our VoiceBase system. SELECT * The FROM Statement This FROM statement is selecting all available Media files from our default Media database called ‘media’. FROM media The WHERE Statement WHERE "Customer" SAYS ( ("price drop*"/2 || "price change*"/2) && ("refund*" || "reimburs*") ) Note: We’ve added some additional spacing to the WHERE clause from before to show more clearly all that is happening. This extra ‘whitespace’ is ignored by the Analytics workbench, so if writing your Queries and Categories this way is easy for you, then feel free to space things out to show nesting more clearly! This WHERE statement is saying the following: - When a Customer says any of the following things, then that Media file is qualified as a result for this query: o The following rules are first grouped in a parenthesis so that the Customer has to say at least one phrase from this group (which we will dive deeper into below): ("price drop*"/2 || "price change*"/2) AND at least one phrase from this group (which we will also dive deeper into below): ("refund*" || "reimburs*") Finally, the customer must say the qualifying phrases in the same speaking turn (meaning before the agent speaks again) because it is using the ‘&&’ operator. o Then, diving deeper into this sub-group: ("price drop*"/2 || "price change*"/2) the customer must say either: ▪ ‘Price drop’, ‘price drops’, ‘price dropping’, ‘price dropped’, ‘price may have dropped’, ‘price has dropped’, etc. ● This is due to using the Wildcard at the end of ‘drop’ which tells VoiceBase to search for any endings and tenses for the word ‘drop’. ● This is also due to the ‘/2’ Slop indicator, telling VoiceBase to search for any phrases up to 4 words long, where up to two of the words are unknown and may be between or around the words ‘price’ and ‘drop’ ▪ OR (because of the ‘||’) ‘Price change, ‘price changes, ‘price changing, ‘price changed, ‘price may have changed, ‘price has changed, etc. ● This is due to using the Wildcard at the end of ‘change’ which tells VoiceBase to search for any endings and tenses for the word ‘change’. ● This is also due to the ‘/2’ Slop indicator, telling VoiceBase to search for any phrases up to 4 words long, where up to two of the words are unknown and may be between or around the words ‘price’ and ‘change’ o Finally, diving deeper into this sub-group: ("refund*" || "reimburs*") www.voicebase.com |<EMAIL_ADDRESS>45 the customer must say either: ▪ ‘refund’, ‘refunds’, ‘refunding’, ‘refunded’, etc. ● This is due to using the Wildcard at the end of ‘refund’ which tells VoiceBase to search for any endings and tenses for the word ‘refund’. ▪ OR (thanks to the ‘||’) ‘reimburse’, ‘reimburses’, ‘reimbursing’, ‘reimbursed’, etc. ● This is due to using the Wildcard at the end of ‘reimburs’ which tells VoiceBase to search for any endings and tenses for the word ‘reimburs’. Note: in this case, due to the way the word ‘reimburse’ works in English, the ‘e’ is left off the end since depending on the tense of the word, the vowel may be an ‘e’ or an ‘i’ in the transcript. You’ll note that rather than write a series of phrases exactly as we’d expect them to be said in the conversation, we instead used the WHERE clause to build smaller keywords and phrases that could be combined in many ways. We also utilized the flexibility of the Wildcard and Slop Operators to allow VoiceBase to find as many variants of these keywords and phrases as possible, without us having to write them all out or anticipate things like filler words and regional speech patterns.


Your phone number will not be displayed publicly
Your full date of birth will not be displayed publicly
Only your postcode will be displayed publicly
For more information about how to apply for an ABN, please visit https://www.business.gov.au
By signing up, you agree to Eden Woolf
Terms of use and Privacy policy.


|
C++ Actor Framework 0.19
|
Contains wrappers for convenient access to SSL. More...
Classes | |
| class | connection |
| SSL state for a single connections. More... | |
| class | context |
| SSL state, shared by multiple connections. More... | |
| class | tcp_acceptor |
| Wraps a TCP accept socket and an SSL context. More... | |
| class | transport |
| Implements a octet stream transport that manages a stream socket with encrypted communication over TLS. More... | |
Enumerations | |
| enum class | dtls { any , v1_0 , v1_2 } |
| Configures the allowed DTLS versions on a context. | |
| enum class | errc : uint8_t { none = 0 , closed , want_read , want_write , want_connect , want_accept , want_x509_lookup , want_async , want_async_job , want_client_hello , syscall_failed , fatal , unspecified } |
| SSL error code for I/O operations on a connection. More... | |
| enum class | format { pem , asn1 } |
| Format of keys and certificates. More... | |
| enum class | tls { any , v1_0 , v1_1 , v1_2 , v1_3 } |
| Configures the allowed TLS versions on a context. | |
| enum class | verify_t |
| Bitmask type for the SSL verification mode. | |
Functions | |
| bool | valid (const connection &conn) |
| auto | emplace_context (tls min_version, tls max_version=tls::any) |
| auto | emplace_server (tls min_version, tls max_version=tls::any) |
| auto | emplace_client (tls min_version, tls max_version=tls::any) |
| auto | emplace_context (dtls min_version, dtls max_version=dtls::any) |
| auto | emplace_server (dtls min_version, dtls max_version=dtls::any) |
| auto | emplace_client (dtls min_version, dtls max_version=dtls::any) |
| auto | new_connection (stream_socket fd) |
Creates a new SSL connection on fd . | |
| auto | new_connection (stream_socket fd, close_on_shutdown_t) |
Creates a new SSL connection on fd . | |
| auto | enable_default_verify_paths () |
| Configure a context to use the default locations for loading CA certificates. | |
| auto | add_verify_path (dsl::arg::cstring path) |
| Configures the context to load CA certificate from a directory. | |
| auto | add_verify_path_if (dsl::arg::cstring path) |
| Configures the context to load CA certificate from a directory if all arguments are non-null. | |
| auto | load_verify_file (dsl::arg::cstring path) |
| Loads a CA certificate file. | |
| auto | load_verify_file_if (dsl::arg::cstring path) |
| Loads a CA certificate file if all arguments are non-null. | |
| auto | use_certificate_file (dsl::arg::cstring path, dsl::arg::val< format > file_format) |
| Loads the first certificate found in given file. | |
| auto | use_certificate_file_if (dsl::arg::cstring path, dsl::arg::val< format > file_format) |
| Loads the first certificate found in given file if all arguments are non-null. | |
| auto | use_certificate_chain_file (dsl::arg::cstring path) |
| Loads a certificate chain from a PEM-formatted file. | |
| auto | use_certificate_chain_file_if (dsl::arg::cstring path) |
| Loads a certificate chain from a PEM-formatted file if all arguments are non-null. | |
| auto | use_private_key_file (dsl::arg::cstring path, dsl::arg::val< format > file_format) |
| Loads the first private key found in given file. | |
| auto | use_private_key_file_if (dsl::arg::cstring path, dsl::arg::val< format > file_format) |
| Loads the first private key found in given file if all arguments are non-null. | |
| CAF_NET_EXPORT void | startup () |
| Initializes the SSL layer. | |
| CAF_NET_EXPORT void | cleanup () |
| Cleans up any state for the SSL layer. | |
| bool CAF_NET_EXPORT | valid (const tcp_acceptor &acc) |
Checks whether acc has a valid socket descriptor. | |
| void CAF_NET_EXPORT | close (tcp_acceptor &acc) |
Closes the socket of obj . | |
| expected< connection > CAF_NET_EXPORT | accept (tcp_acceptor &acc) |
Tries to accept a new connection on acc . | |
| constexpr int | to_integer (verify_t x) |
| verify_t & | operator|= (verify_t &x, verify_t y) noexcept |
| constexpr verify_t | operator| (verify_t x, verify_t y) noexcept |
Variables | |
| constexpr close_on_shutdown_t | close_on_shutdown = close_on_shutdown_t{} |
Contains wrappers for convenient access to SSL.
|
strong |
SSL error code for I/O operations on a connection.
|
strong |
| expected< connection > CAF_NET_EXPORT caf::net::ssl::accept | ( | tcp_acceptor & | acc | ) |
Tries to accept a new connection on acc
.
On success, wraps the new socket into an SSL connection and returns it.
| auto caf::net::ssl::add_verify_path | ( | dsl::arg::cstring | path | ) |
Configures the context to load CA certificate from a directory.
| path | Null-terminated string with a path to a directory. Files in the directory must use the CA subject name hash value as file name with a suffix to disambiguate multiple certificates, e.g., 9d66eef0.0 and 9d66eef0.1 . |
expected<T>::and_then()
. | auto caf::net::ssl::add_verify_path_if | ( | dsl::arg::cstring | path | ) |
Configures the context to load CA certificate from a directory if all arguments are non-null.
Otherwise, does nothing.
| path | Null-terminated string with a path to a directory. Files in the directory must use the CA subject name hash value as file name with a suffix to disambiguate multiple certificates, e.g., 9d66eef0.0 and 9d66eef0.1 . |
expected<T>::and_then()
. | CAF_NET_EXPORT void caf::net::ssl::cleanup | ( | ) |
Cleans up any state for the SSL layer.
Like startup, this step is mandatory for some versions of the linked SSL library.
| auto caf::net::ssl::enable_default_verify_paths | ( | ) |
Configure a context to use the default locations for loading CA certificates.
expected<T>::and_then()
. | auto caf::net::ssl::load_verify_file | ( | dsl::arg::cstring | path | ) |
Loads a CA certificate file.
| path | String with a path to a single PEM file. |
true
on success, false
otherwise and last_error
can be used to retrieve a human-readable error representation. expected<T>::and_then()
. | auto caf::net::ssl::load_verify_file_if | ( | dsl::arg::cstring | path | ) |
Loads a CA certificate file if all arguments are non-null.
Otherwise, does nothing.
| path | String with a path to a single PEM file. |
true
on success, false
otherwise and last_error
can be used to retrieve a human-readable error representation. expected<T>::and_then()
. | auto caf::net::ssl::new_connection | ( | stream_socket | fd | ) |
Creates a new SSL connection on fd
.
The connection does not take ownership of the socket, i.e., does not close the socket when the SSL session end or on error.
| fd | the stream socket for adding encryption. |
expected<T>::and_then()
. | auto caf::net::ssl::new_connection | ( | stream_socket | fd, |
| close_on_shutdown_t | |||
| ) |
Creates a new SSL connection on fd
.
The connection takes ownership of the socket, i.e., closes the socket when the SSL session ends.
| fd | the stream socket for adding encryption. |
expected<T>::and_then()
. | CAF_NET_EXPORT void caf::net::ssl::startup | ( | ) |
Initializes the SSL layer.
Depending on the version, this may be mandatory to call before accessing any SSL functions (OpenSSL prior to version 1.1) or it may have no effect (newer versions of OpenSSL).
| auto caf::net::ssl::use_certificate_chain_file | ( | dsl::arg::cstring | path | ) |
Loads a certificate chain from a PEM-formatted file.
SSL_CTX_use_certificate_chain_file
expected<T>::and_then()
. | auto caf::net::ssl::use_certificate_chain_file_if | ( | dsl::arg::cstring | path | ) |
Loads a certificate chain from a PEM-formatted file if all arguments are non-null.
Otherwise, does nothing.
SSL_CTX_use_certificate_chain_file
expected<T>::and_then()
. | auto caf::net::ssl::use_certificate_file | ( | dsl::arg::cstring | path, |
| dsl::arg::val< format > | file_format | ||
| ) |
Loads the first certificate found in given file.
| path | Null-terminated string with a path to a single file. |
| file_format | Denotes the format of the certificate file. |
expected<T>::and_then()
. | auto caf::net::ssl::use_certificate_file_if | ( | dsl::arg::cstring | path, |
| dsl::arg::val< format > | file_format | ||
| ) |
Loads the first certificate found in given file if all arguments are non-null.
Otherwise, does nothing.
| path | Null-terminated string with a path to a single file. |
| file_format | Denotes the format of the certificate file. |
expected<T>::and_then()
. | auto caf::net::ssl::use_private_key_file | ( | dsl::arg::cstring | path, |
| dsl::arg::val< format > | file_format | ||
| ) |
Loads the first private key found in given file.
expected<T>::and_then()
. | auto caf::net::ssl::use_private_key_file_if | ( | dsl::arg::cstring | path, |
| dsl::arg::val< format > | file_format | ||
| ) |
Loads the first private key found in given file if all arguments are non-null.
Otherwise, does nothing.
expected<T>::and_then()
.


java.util.Collections
unmodifiable collection calls,
that can be converted to newer collection factory methods.
These can be replaced with e.g. List.of()
or Set.of()
introduced in Java 9,
or List.copyOf()
introduced in Java 10.
Note that, in contrast to java.util.Collections
methods, the Java 9 collection factory methods
null
values
null
arguments to query methods like List.contains()
or Map.get()
of the collections returned.
Example:
List<Integer> even = Collections.unmodifiableList(
Arrays.asList(2, 4, 6, 8, 10, 2));
List<Integer> evenCopy = Collections.unmodifiableList(
new ArrayList<>(list1));
After the quick fix is applied the result looks like:
List<Integer> even = List.of(2, 4, 6, 8, 10, 2);
List<Integer> evenCopy = List.copyOf(list);
This inspection only reports if the configured language level is 9 or higher.
Use the first checkbox below to only report if the supplied arguments are compile-time constants.
This reduces the chance of changes in behaviour,
because it's not always possible to statically check whether original elements are unique and not null
.
Use the second checkbox to suggest a Map.ofEntries()
replacement for unmodifiable maps with more than 10 entries.
New in 2017.2


§38-8 Additional responsibility. The State through its director shall be chargeable with the safekeeping of the securities deposited with the director by the treasurers of the several counties under section 46-52. [L 1970, c 51, pt of §1; gen ch 1985]


--- layout: post title: "The Business of Ed-Tech: April 2018 Funding Data" date: 2018-04-30 17:00:00 +0000 tags: image: https://s3.amazonaws.com/hackedu/2017-03-01-money.jpg imagecredits: https://www.flickr.com/photos/chrisdlugosz/3403776466 ---
Here is the latest data on “the business of education” for XXX:
Money continues to flow into ed-tech, although – as we have seen in the past few months – the amount of money is somewhat skewed by a handful of big deals. This month, there were two $100+ million deals – Knowbox and Connexeo – accounting for about two-thirds of the total amount of investment.
Also notable this month: two major acquisitions. One was a fire sale – Edmodo, which was sold for $137.5 million (of which just $15 million was cash) and General Assembly, which sold for a much more health $412 million.
The companies that have raised the most money so far this year:
As part of this project, you can review information from the last few years who’s received funding, who’s been acquired, who’s IPO’d, which startups have closed, and who’s investing in the stories that Edsurge tells you about the shape of the education technology industry.
I have created separate GitHub repositories for all areas of funding that I monitor:
These sites include human- and machine-readable versions of this funding data. For more ed-tech data sets, visit Hack Education Data on GitHub.
If you see an error or omission, please file a GitHub issue. You’re welcome to fork or download the repositories too, of course.


{% from "_formhelpers.html" import render_error %} {% extends "base.html" %} {% block style %} {% endblock %} {% block content %}
All information associated with the class will be deleted and the action is irrevocable.
To confirm deletion, enter the class code.


click me to center header
Behold, the Kings and Queens that Dominate the Earth
click below to view or hide images
Hide
Show


| status | SLOC | Effort in person-hour | id | |
|---|---|---|---|---|
| {{projectService.status(project)}} | {{project.sloc}} ({{project.sloc / project.sloc | percentage: 2}}) | {{project.effort | number:4}} ({{project.effort / project.effort | percentage: 2}}) | {{project.id}} |
| status | SLOC | Effort in person-hour | id | |
|---|---|---|---|---|
| Iteration | ||||
| {{iterationIndex + 1}} | {{projectService.status(iteration)}} | {{iteration.sloc}} ({{iteration.sloc / project.sloc | percentage: 2}}) | {{iteration.effort | number:4}} ({{iteration.effort / project.effort | percentage: 2}}) | {{iteration.id}} |
| Phase | {{projectService.status(phase)}} | {{phase.sloc}} ({{phase.sloc / project.sloc | percentage: 2}}) | {{phase.effort | number:4}} ({{phase.effort / project.effort | percentage: 2}}) | {{phase.id}} |
Only available if project ended
| Removed | Injected | Yield | Injection Rate | Removal Rate | Density |
|---|---|---|---|---|---|
| {{project.num_defects_removed}} | {{project.total_defects_injected | number: 2}} | {{project.yield | percentage: 2}} | {{project.total_defects_injected / project.effort | number:2}} | {{project.num_defects_removed / project.effort | number:2}} | {{project.total_defects_injected / (project.sloc / 1000) | number:2}} |
| Iteration | Removed | Injected | Escaped | Yield | Injection Rate | Removal Rate | Density |
|---|---|---|---|---|---|---|---|
| {{iterationIndex + 1}} | {{iteration.num_defects_removed}} | {{iteration.total_defects_injected | number: 2}} | {{iteration.escaped | number: 2}} | {{iteration.yield | percentage: 2}} | {{iteration.total_defects_injected / iteration.effort | number:2}} | {{iteration.num_defects_removed / iteration.effort | number:2}} | {{iteration.total_defects_injected / (iteration.additional_sloc / 1000) | number:2}} |
| Phase | {{phase.num_defects_removed}} | {{phase.total_defects_injected | number:2}} | {{phase.yield | percentage: 2}} | {{phase.total_defects_injected / phase.effort | number:2}} | {{phase.num_defects_removed / phase.effort | number:2}} | {{phase.total_defects_injected / (phase.additional_sloc / 1000) | number:2}} |
| id | Username | Display name | ||
|---|---|---|---|---|
| {{dev.id}} | {{dev.username}} | {{dev.display_name}} | {{dev.email}} | Remove |


WITNESS LIST Public School-S/C on Cost Adjustments Committee (SUBCOMMITTEE ON Cost Adjustments) October 22, 2003-9:00A Cost Adjustments On: Colbert, Paul (El Paso ISD) Durant, Ivonne (Dallas ISD) Hanushek, Eric (Stanford University and the National Bureau of Economic Research) Lavine, Dick (Center for Public Policy Priorities) Martinez, Elaine (TEA) Neely, Carmyn (Dallas ISD)


class Cor
- Cor
- Reference
- Object
Overview
Cor (which means color in Portuguese) is a library for more easily
working with colors in Crystal. You can think of it as a more
powerful version of Colorize
. Cor allows you to very
easily convert RGB(A) values to hex and back again for
use in CSS and HTML. It also provides a set of
chainable methods for creting colorful strings
for the terminal using truecolor.
For full usage instructions see the README.
Included Modules
- Comparable(Cor)
- Cor::Colors
Defined in:
cor/colors.crcor/cor.cr
cor.cr
cor/version.cr
Constant Summary
-
VERSION =
"0.1.0"
Constructors
- .new(red, green, blue, alpha = 255)
-
.new(hex : String)
Creates a new
Cor
instance from a hex string.
Class Method Summary
- .color(color)
-
.from_hsb(h, s, b)
Create a new
Cor
instance from hue, saturation, and brightness. -
.from_hsl(h, s, l)
Create a new
Cor
instance from hue, saturation, and lightness. -
.from_hsv(h, s, v)
Create a new
Cor
instance from hue, saturation, and value. -
.truecolor_string(string : String, fore = nil, back = nil, bold = false, faint = false, italic = false, underline = false, blink = false, strike = false, overline = false)
Converts
string
to an ANSI escape sequence for use with truecolor enabled terminals.
Instance Method Summary
- #*(other : Cor)
- #+(other : Cor)
- #-(other : Cor)
- #/(other : Cor)
-
#<=>(other)
Implements the comparison operator for
Cor
. -
#alpha : Int32
alpha (opacity) value for this color
-
#alpha=(value)
Set the alpha value for this color.
-
#blue : Int32
blue value for this color
-
#blue=(value)
Set the blue value for this color
-
#green : Int32
green value for this color
-
#green=(value)
Set the green value for this color
-
#hex_string(prefix = false, alpha = false, upcase = false)
Outputs this
Cor
instance as ahex
string. -
#inverse
Returns a new
Cor
that's the inverse of self. -
#pretty_print(pp)
Pretty print (it's a rainbow!)
-
#red : Int32
red value for this color
-
#red=(value)
Set the red value for this color
-
#rgb_string(alpha = false)
Outputs this
Cor
instance as a cssrgb(a)
string. -
#to_a
Convert the
Cor
to an array. -
#to_h
Convert the
Cor
to a hash. -
#to_hsb
The HSb (hue / saturation / brightness) of the color
-
#to_hsl
The HSV (hue / saturation / lightness) of the color
-
#to_hsv
The HSV (hue / saturation / value) of the color
-
#to_s
Convert to a string
-
#to_tuple
Convert the
Cor
to a tuple.
Constructor Detail
Class Method Detail
Converts string
to an ANSI escape sequence for use with
truecolor enabled terminals. fore
and
back
can be either a Cor
instance or
a symbol representing a COLORS
value.
Instance Method Detail
Set the alpha value for this color. Can be either a float between 0 and 1, or a integer value between 0 and 255.
Outputs this Cor
instance as a hex
string.


3
1 Hear this word that Yahweh has spoken against you, people of Israel, against the whole family that I brought up out of the land of Egypt,
2 I have chosen only you
from all the families of the earth.
Therefore I will punish you
for all your sins.
3 Will two walk together
unless they have agreed?
4 Will a lion roar in the forest
when he has no victim?
Will a young lion growl from his den
if he has caught nothing?
5 Can a bird fall in a trap on the ground
when no bait is set for him?
Will a trap spring up from the ground
when it has not caught anything?
6 Will the trumpet sound in a city
and the people not tremble?
Will disaster come on a city
and Yahweh has not sent it?
7 Surely the Lord Yahweh will do nothing
unless he reveals his plan to his servants the prophets.
8 The lion has roared;
who will not fear?
The Lord Yahweh has spoken;
who will not prophesy?
9 Proclaim this in the fortresses at Ashdod,
and in the fortresses in the land of Egypt;
say: "Assemble yourselves on the mountains of Samaria
and see what great confusion is in her,
and what oppression is in her.
10 For they do not know how to do right"
—this is the declaration of Yahweh—
"They store up violence
and destruction in their fortresses."
11 Therefore, this is what the Lord Yahweh says:
"An enemy will surround the land.
He will pull down your strongholds
and plunder your fortresses."
12 This is that Yahweh says:
"As the shepherd rescues out of the mouth of the lion
two legs only,
or a piece of an ear,
so will the people of Israel be rescued who live in Samaria,
with only the corner of a couch,
or just a piece of a bed covering."
13 Hear and testify
against the house of Jacob
—this is the declaration of the Lord Yahweh, the God of hosts.
14 "For in the day that I punish the sins of Israel,
I will also punish the altars of Bethel.
The horns of the altar will be cut off
and fall to the ground.
15 I will destroy the winter house
with the summer house.
The houses of ivory will perish,
and the large houses will vanish,"
—this is the declaration of Yahweh.


03.Write a script that finds the max and min number from a sequence of numbers
Input comma or space separated list of numbers:
Calculate


|
Ext.NET
5.3.0
.NET Component Framework for Enterprise Level Apps
|
Base Writer class used by most subclasses of Ext.data.proxy.Server. This class is responsible for taking a set of Ext.data.Operation objects and a Ext.data.Request object and modifying that request based on the Operations. More...
Classes | |
| class | Builder |
| class | Config |
Properties | |
| override string | InstanceOf [get] |
| abstract string | Type [get] |
| Alias More... | |
| virtual DataOptions?? | AllDataOptions [get] |
| This object contains the options passed to Ext.data.Model.getData when writing Ext.data.Model.phantom records or when writeAllFields is set to true. NOTE: The serialize option cannot be used here. Defaults to: {persist: true} More... | |
| virtual string | AllDataOptionsProxy [get] |
| A proxy to serialize AllDataOptions More... | |
| virtual string | NameProperty [get, set] |
| This property is used to read the key for each value that will be sent to the server. For example: More... | |
| virtual bool | WriteAllFields [get, set] |
| True to write all fields from the record to the server. If set to false it will only send the fields that were modified. Defaults to false. More... | |
| virtual JFunction | GetRecordData [get] |
| Formats the data for each record before sending it to the server. This method should be overridden to format the data in a way that differs from the default. Parameters record : Object The record that we are writing to the server. Returns An object literal of name/value keys to be written to the server. By default this method returns the data property on the record. More... | |
| virtual JFunction | FilterRecord [get] |
| virtual JFunction | FilterField [get] |
| virtual JFunction | Prepare [get] |
| virtual bool | ExcludeId [get, set] |
| virtual bool | SkipIdForPhantomRecords [get, set] |
| virtual bool | SkipPhantomId [get, set] |
| virtual bool | HtmlEncode [get, set] |
Configure true to encode html in record data before sending More... | |
| virtual string | ClientIdProperty [get, set] |
| When specified this property causes the Ext.data.Model.idProperty of newly created records to be sent to the server as this name instead of the value of the idProperty. More... | |
| virtual string | DateFormat [get, set] |
| string | PropertyName [get] |
| virtual DataOptions?? | PartialDataOptions [get] |
| This object contains the options passed to Ext.data.Model.getData when writing non Ext.data.Model.phantom records or when writeAllFields is set to false. NOTE: The serialize option cannot be used here. Defaults to: {changes: true, critical: true} More... | |
| virtual string | PartialDataOptionsProxy [get] |
| A proxy to serialize PartialDataOptions More... | |
| virtual TransformFunction | Transform [get] |
| If a transform function is set, it will be invoked just before writeRecords executes. It is passed the unserialized data object and the request object. The transform function returns a data object, which can be a modified version of the original data object, or a completely new data object. The transform can be a function, or an object with a 'fn' key and an optional 'scope' key. Example usage: Ext.create('Ext.data.Store', { model: 'User', proxy: { type: 'ajax', url : 'users.json', writer: { type: 'json', transform: { fn: function(data, request) { /// do some manipulation of the unserialized data object return data; }, scope: this } } } }); More... | |
| virtual string | TransformProxy [get] |
| A proxy to render .Transform to client More... | |
| virtual bool | WriteRecordId [get, set] |
| By default, each record's id is always included in the output for non-phantom records since in most cases the id will be required on the server to process the record action. This is helpful since the id will normally not be modified, and so would not be sent to the server unless writeAllFields was explicitly enabled. However, there are cases where it is not desirable for the record id to be passed in the data directly. For example, when using a RESTful API the record id would typically be appended to the url instead. Defaults to: true More... | |
| override ConfigOptionsCollection | ConfigOptions [get] |
| Properties inherited from Ext.Net.BaseItem | |
| virtual string | InstanceOf [get] |
| ItemState | State [get] |
| virtual DefaultValueMode | DefaultValueMode [get, set] |
| virtual bool | DesignMode [get] |
| bool | AutoDataBind [get, set] |
| ResourceManager | ResourceManager [get] |
| virtual Control | Owner [get, set] |
| The Owner Control for this Listener. More... | |
| virtual bool | IsDefault [get] |
| Does this object currently represent it's default state. More... | |
| bool | IsTrackingViewState [get] |
| EventHandlerList | Events [get] |
| EventHandler | DataBinding |
| Control?? | BindingContainer [get] |
| virtual ConfigItemCollection?? | CustomConfig [get] |
| Collection of custom js config More... | |
| virtual ConfigOptionsCollection | ConfigOptions [get] |
| virtual ConfigOptionsExtraction | ConfigOptionsExtraction [get] |
| System.Web.Mvc.HtmlHelper?? | HtmlHelper [get, set] |
| Properties inherited from Ext.Net.IXObject | |
| ConfigOptionsCollection | ConfigOptions [get] |
| ConfigOptionsExtraction | ConfigOptionsExtraction [get] |
| DefaultValueMode | DefaultValueMode [get, set] |
| Properties inherited from Ext.Net.IAlias | |
| string | PropertyName [get] |
Additional Inherited Members | |
| Public Member Functions inherited from Ext.Net.BaseItem | |
| virtual bool | HasExplicitValue (string name) |
| void | EnsureDataBind () |
| virtual void | Call (string name) |
| virtual void | Call (string name, params object[] args) |
| virtual void | AddScript (string script) |
| virtual void | AddScript (string script, params object[] args) |
| virtual bool | IsEmptyObject () |
| T | Apply< T > (IApply config) |
| BaseItem | Apply (object config) |
| virtual void | LoadViewState (object state) |
| virtual object | SaveViewState () |
| virtual void | TrackViewState () |
| void | SetDirty () |
| virtual void | DataBind () |
| virtual IControlBuilder | ToNativeBuilder () |
| Protected Member Functions inherited from Ext.Net.BaseItem | |
| BaseItem (Control owner) | |
| BaseItem () | |
| virtual void | OwnerUpdate (Control owner) |
| virtual void | OnDataBinding (EventArgs e) |
Base Writer class used by most subclasses of Ext.data.proxy.Server. This class is responsible for taking a set of Ext.data.Operation objects and a Ext.data.Request object and modifying that request based on the Operations.
For example a Ext.data.writer.Json would format the Operations and their Ext.data.Model instances based on the config options passed to the JsonWriter's constructor.
Writers are not needed for any kind of local storage - whether via a Web Storage proxy (see localStorage and sessionStorage) or just in memory via a MemoryProxy.
|
get |
This object contains the options passed to Ext.data.Model.getData when writing Ext.data.Model.phantom records or when writeAllFields is set to true. NOTE: The serialize option cannot be used here. Defaults to: {persist: true}
|
getprotected |
A proxy to serialize AllDataOptions
|
getset |
When specified this property causes the Ext.data.Model.idProperty of newly created records to be sent to the server as this name instead of the value of the idProperty.
For example, by default, the following code:
Ext.define('Person', { idProperty: 'id', /// this is the default value (for clarity)
fields: [ 'name' ] });
var person = new Person({ /// no id provided, so one is generated name: 'Clark Kent' });
Will send this to the server:
{ id: 'Person-1', name: 'Clark Kent' }
This can be an issue if the server expects an integer for the "id" property. You can use Ext.data.Model.identifier to produce identifiers that the server would recognize or use this config to send the client's id in a different property.
Ext.define('Person', { idProperty: 'id', /// this is the default value (for clarity)
proxy: { writer: { clientIdProperty: 'clientId' } },
fields: [ 'name' ] });
Given the above, the server is sent this data now:
{ clientId: 'Person-1', name: 'Clark Kent' }
While this config provides the behavior of Ext.data.Model.clientIdProperty from previous releases, this property is not as useful as a suitable Ext.data.Model.identifier due to id's appearing in foreign-key fields and in Ext.data.Model.manyToMany associations.
See Ext.data.Model.identifier for more on id generation.
|
get |
|
getset |
|
getset |
|
get |
|
get |
|
get |
Formats the data for each record before sending it to the server. This method should be overridden to format the data in a way that differs from the default. Parameters record : Object The record that we are writing to the server. Returns An object literal of name/value keys to be written to the server. By default this method returns the data property on the record.
|
getset |
Configure true
to encode html in record data before sending
|
get |
|
getset |
This property is used to read the key for each value that will be sent to the server. For example:
Ext.regModel('Person', { fields: [{ name: 'first', mapping: 'firstName' }, { name: 'last', mapping: 'lastName' }, { name: 'age' }] }); new Ext.data.writer.Writer({ writeAllFields: true, nameProperty: 'mapping' });
// This will be sent to the server { firstName: 'first name value', lastName: 'last name value', age: 1 }
Defaults to name. If the value is not present, the field name will always be used.
|
get |
This object contains the options passed to Ext.data.Model.getData when writing non Ext.data.Model.phantom records or when writeAllFields is set to false. NOTE: The serialize option cannot be used here. Defaults to: {changes: true, critical: true}
|
getprotected |
A proxy to serialize PartialDataOptions
|
get |
|
get |
|
getset |
|
getset |
|
get |
If a transform function is set, it will be invoked just before writeRecords executes. It is passed the unserialized data object and the request object. The transform function returns a data object, which can be a modified version of the original data object, or a completely new data object. The transform can be a function, or an object with a 'fn' key and an optional 'scope' key. Example usage: Ext.create('Ext.data.Store', { model: 'User', proxy: { type: 'ajax', url : 'users.json', writer: { type: 'json', transform: { fn: function(data, request) { /// do some manipulation of the unserialized data object return data; }, scope: this } } } });
|
getprotected |
A proxy to render .Transform to client
|
getprotected |
Alias
|
getset |
True to write all fields from the record to the server. If set to false it will only send the fields that were modified. Defaults to false.
|
getset |
By default, each record's id is always included in the output for non-phantom records since in most cases the id will be required on the server to process the record action. This is helpful since the id will normally not be modified, and so would not be sent to the server unless writeAllFields was explicitly enabled. However, there are cases where it is not desirable for the record id to be passed in the data directly. For example, when using a RESTful API the record id would typically be appended to the url instead. Defaults to: true


Prelates hail Tagle’s appointment to a Vatican post
by Leslie Ann AquinoCatholic prelates welcomed the appointment of Cardinal Luis Antonio Cardinal Tagle of Manila to a Vatican post, saying it was a “blessing” to our country.
“For his appointment, we glorify our God, we are grateful to His Holiness,” Bishop Ruperto Santos of Balanga said in an interview.
“It is an immense blessing to our country, overflowing grace to His Eminence,” he added.
His appointment, Santos said, showed the trust and confidence of Pope Francis on Cardinal Tagle.
“He makes us proud as Filipinos, and our country as beacon for new Evangelization,” he said.
Santos assured the cardinal of their collaboration and services.
Manila Auxiliary Bishop Broderick Pabillo also welcomed the appointment of Tagle as the country will again have a Filipino cardinal working in the Vatican.
“That would be good. We have again a Filipino Cardinal who is working in the Vatican. He can bring his wisdom to the work of evangelization,” he said.
“We wish him success in this heavy responsibility and we pray for him,” added Pabillo.
The Vatican announced the appointment of Tagle as the new Prefect of the Congregation for the Evangelization of Peoples on Sunday.
It is still unclear if the cardinal will have to leave his post as archbishop of Manila since members of the Roman Curia are usually based in Rome.
Cubao Bishop Honesto Ongtioco, meantime, explained that as servants of the Church, they are always ready to go where they are assigned by the Holy Father.
“We obey and we know the Lord will give us strength and graces plus heavenly wisdom,” he said.
The Archdiocese of Manila is expected to release a statement on the appointment, Monday.


Overview
The UA Java SDK is a set of interfaces, libraries
and executables that allow developers to create UA applications in the Java
programming environment.
This release of the Java SDK includes:
| Snapshot | Snapshot builds are only minimally tested and are used to give developers quick access to new features and bug fixes. There may be backward compatibility issues and some features may be broken. Developers should not migrate to a snapshot build unless they need the feature and/or bug fixes. |
| Testing | Testing builds are put through basic tests to ensure that nothing is broken but have not been tested for backward compatibility. All Stable and Final builds are posted first as Testing builds which gives developers a chance to check for issues which can be corrected quickly. Any changes will incorporated into a new revision and posted immediately. If no issues come up the last revision of a Testing build will be re-labeled as Stable or Final. Developers are encouraged to look at Testing builds and see if there are issues. Developers should not migrate to Testing builds unless they absolutely need the functionality or are participating in the testing process. |
| Stable | Stable builds are put through basic tests to ensure that nothing is broken but have not been tested for backward compatibility. Stable builds are posted to give vendors a chance to verify that it works with existing products. Vendors who have products under development should migrate to stable builds as quickly as possible. If a vendor is already distributing products they may wish to use the sample applications to test for compatibility problems. |
| Final | Final builds are stable builds that have been verified by one or more vendors. Patches required to fix issues discovered while testing the stable build are applied but no other features are added. Vendors who have products under development should migrate to stable builds as quickly as possible. |
| OPC UA Java SDK 1.00 Redistributables | Contains the JAR files required by applications that use the SDK. |
| OPC UA Java SDK 1.00 Source Code | Contains the source for the Java SDK |
| OPC UA Java SDK 1.00 Samples | Contains the simple client and server applications. |
Sample Applications
There are 1 server and 4 client
sample applications bundled with the SDK.
The samples only implement a
single Test service.
The ClientExample1 and ClientExample2 are to be run
with ServerExamples1.
The ClientExample3 and
ClientExample4 with UA Sample Server of the UA SDK.
Note that the client
certificate (ClientCert.der) must be installed in the trusted certificate store used by the
UA Sample Server before connecting.
Contributors
The OPC Foundation would like to
acknowledge the contributions made by the following companies towards the
development of this deliverable.


JasperStarter distribution files have the following naming convention:
JasperStarter-<version>-<type>.<archiveTye>
Version number for production releases:
<major>.<minor>.<bugfix>
Version number for release candidates - should be ready for production but needs some testing from YOU ;-) :
<major>.<minor>-RC<N>
Version number for testing releases - not for production use:
<major>.<minor>-SNAPSHOT-<git-short-commit-id>
Types:
Choose your favorit archive type. The content is equal in each archive.
Content of a distribution archive:
bin/ - executable binaries for Windows, Mac OSX, Linux, etc. docs/ - JasperStarter documentation in html format jdbc/ - place for your jdbc drivers (jar files) lib/ - needed libraries CHANGES LICENSE NOTICE README.md
Please don’t touch the structure of the directories or JasperStarter will not work.
For further information see README.md inside the distribution archive.


Source code for tarski.write
"""
This module is for writing the formal structure or the block world in different formats. This is
done by defining abstract base classes for Writers, which can then be implemented by Writers for
specific formats.
If you want to support additional formats, you can use the `tarski.writers` entry point in your
`setup.py`.
"""
from abc import ABC, abstractmethod
import sys
[docs]class AbstractModelWriter(ABC):
"""
The abstract class that defines the interface in use for `Writer` s.
.. py:attribute:: format_name
The name of the output format as a string. Must be overridden by implementations and has a
maximum length of 20.
.. py:attribute:: format_description
A short description of this output format as a string. Must be overridden by implementations
and have a maximum lenght of 60.
"""
def __init__(self, stream=sys.stdout):
"""
:param stream: The stream to write to. Can be any object that has `write` implemented.
"""
self.stream = stream
[docs] @abstractmethod
def write_domain(self, domain):
"""
Write the domain of the model. Must be overwritten by implementations.
:param domain: The domain to write.
"""
[docs] @abstractmethod
def write_constant(self, constant, identifier):
"""
Write a single constant to the stream. Must be overwritten by implementations.
:param str constant: The name of the constant to write.
:param identifier: The value of the constant.
"""
[docs] def write_constants(self, constants):
"""
Write all the constant from the model on their own line in order of appereance. Can be
overwritten if the implementation needs a special behaviour.
:param constants: The constants to write
:type constants: dict[str, Block]
"""
for constant, entity in constants.items():
self.write_constant(constant, entity)
self.stream.write('\n')
[docs] @abstractmethod
def write_predicate(self, name, extension):
"""
Write a predicate and its extension to the stream. Must be overwritten by definitions
:param str name: The name of this predicate.
:param tuple[Block] extension: The set which defines this predicate.
"""
[docs] def write_predicates(self, predicates):
"""
Write all the predicates in `predicates` to the stream on their own line in order of
appereance. Can be overwritten of other behaviour is required.
:param predicates: The predicates to write to the stream.
:type predicates: dict[str, tuple[Block]]
"""
for predicate, extension in predicates.items():
self.write_predicate(predicate, extension)
self.stream.write('\n')
[docs] def write_model(self, model):
"""
Write the model to the stream. By default, it first writes the domain, then the constants,
and it ends with the predicates. Can be overwritten if an other order is prefered.
:param Model model: The model to write to the stream.
"""
self.write_domain(model.domain)
self.stream.write('\n')
self.write_constants(model.constants)
self.write_predicates(model.predicates)


Can one of these kitties come home with you?
The Everett Animal Shelter has the three cats available for adoption.
The Everett Animal Shelter hosts thousands of stray and unwanted animals every year. Some are adopted right away, but some sit in the shelter for weeks at a time, waiting for a home. The shelter has dogs and cats, as well as some rabbits and birds, all looking for a loving home.
All pets are vaccinated, spayed or neutered, and given a identifying microchip before they are adopted. Take a look at some of the dogs, cats and other animals that are available for adoption at the shelter now.
If you’re interested in adopting an animal, the shelter is open daily from 10 a.m. to 5 p.m. For more information, call<PHONE_NUMBER>.
Gallery
Ariel is a quiet, 5 year old, who is looking for a quiet home to call her own. She has lived with other cats but will still need a proper introduction to any resident cats. (Arleigh Movitz/Everett Animal Shelter)
5 year old Tux is looking for a quiet home. Loud noises scare him. Even though he is 10 lbs, he would rather hide than face a loud noise! (Arleigh Movitz/Everett Animal Shelter)


{% extends "base.html" %} {% load url from future %} {% load i18n %} {% block content %}
{% blocktrans count expiration_days as days %}This may be because it is already active or because you waited over {{ days }} day to activate it.{% plural %}This may be because it is already active or because you waited over {{ days }} days to activate it.{% endblocktrans %} {% url 'registration_register' as reg_url %} {% url 'contact' as contact_url %} {% blocktrans %}If this is not the case, please contact the website administrator. Otherwise, you may register again.{% endblocktrans %}
{% endblock %}


Last update on 19 April 2017.
Parts needed
| Name | Quantity | Where to use |
|---|---|---|
| Base side | 4 | bottom, top leg |
| Knee side | 2 | Knee |
| Bone | 8 | |
| Sigma profile 130x30x30 | 5 | Spacer for knee, top, bottom |
| Linear stepper motor 50mm stroke, 1500N | 2 | Expand, compress leg |
| Radial bearing 608rs | 32 | End of bones |
| Radial bearing 608rs housing | 32 | End of bones |
| M4x55 | 128 | End of bones |
| M4 autolock nut | 128 | End of bones |
| 4x9 washer | 256 | End of bones |
| M8x160 fully tapped | 8 | End of bones |
| M8 autolock nut | 8 | Nuts for M8x160 screws |
| M8 nut | 32 | Fixer for bones |
| 8x16 washer | 96 | Spacer for bones |
| M8x30 screw | 10 | Fixer for sigma spacers |
Base side
Size = 320, 40, 10
Material = aluminium
Quantity: 4
first bone hole position = 22, 32; radius = 4mm.
second bone hole position = 110, 32; radius = 4mm.
first spacer hole position = 70, 15; radius = 4mm.
second spacer hole position = 165, 15; radius = 4mm.
motor support hole position = 312, 32; radius = 4mm.
Knee side
Size = 132, 10, 60
Material = aluminium
Quantity: 2
knee side holes =
[22, 0, 8], "radius = 4"
[22, 0, 52], "radius = 4"
[110, 0, 8], "radius = 4"
[110, 0, 52], "radius = 4"
[66, 0, 30], "radius = 4"
Bone (aluminium)
Length = 400
30x30mm profile, wall thickness = 2mm
Quantity: 8
middle hole bearing = (14, 15), radius = 6.5 (minimum)
holes for screws holes bearing housing (4, 5), radius = 2mm
holes for screws holes bearing housing (4, 25), radius = 2mm
holes for screws holes bearing housing (24, 5), radius = 2mm
holes for screws holes bearing housing (24, 25), radius = 2mm
Do the same for the other side(s) - in total you must perform 4 sets of holes for each bone.
Final assembly


In order to keep configuration as simple as possible, a "Registry" will be built into Pedigree. While having the same name as the Windows concept, internally it is totally unique.
Configuration is managed by a central manager, which provides a consistent interface that can be used without requiring knowledge of the configuration method. Backends can be plugged in quickly by subclassing the backend class, and ensuring the backend is added to the configuration manager before it is used.
All configuration backends must subclass class ConfigurationBackend
.
class ConfigurationManager
{
public:
ConfigurationManager &instance();
size_t write(String configStore, String Table, String KeyName, String KeyValue, String ValueName, uintptr_t buffer, size_t nBytes);
size_t read(String configStore, String Table, String KeyName, String KeyValue, String ValueName, uintptr_t buffer, size_t maxBytes);
bool installBackend(ConfigurationBackend *pBackend, String configStore = "");
void removeBackend(String configStore);
bool backendExists(String configStore);
};
This class interface is designed to hide as much of the internal configuration methods
from the programmer. The most important concept to grasp is that of the configStore
parameters. Each backend, when installed, specifies a configStore
which is used
from then on to uniquely identify the backend. Should configStore
not be passed to
installBackend, the name of the store will be obtained from the ConfigurationBackend::getConfigStore
method.
class ConfigurationBackend
{
public:
ConfigurationBackend(String configStore);
virtual ~ConfiguratonBackend();
virtual size_t write(String Table, String KeyName, String KeyValue, String ValueName, uintptr_t buffer, size_t nBytes);
virtual size_t read(String Table, String KeyName, String KeyValue, String ValueName, uintptr_t buffer, size_t maxBytes) = 0;
virtual String getConfigStore();
virtual String getTypeName();
};
The interface for a ConfigurationBackend
is relatively simple, as it is merely
a layer of abstraction between the ConfigurationManager and different methods of storing configuration
data. It is not compulsory to override write
, as the store may be read-only.
It is however compulsory to override read
. It is not compulsory, but highly
recommended for ease of implementation, to override getConfigStore
The destructor for ConfigurationBackend
automatically removes the backend from the
ConfigurationManager
. The constructor will not add the backend automatically.
To make the concept easier to understand, the following code shows an example of the use of this design. Note that this is more like psuedocode, it will not compile on Pedigree (casting and lack of String constructor calls, mainly).
/** SqlConfigBackend: implementation of a configuration backend for an SQL database */
class SqlConfigBackend : public ConfigurationBackend
{
public:
/** Default constructor, should not be called */
SqlConfigBackend();
/** Constructor - defines the database file (uses the name of the database file for configStore) */
SqlConfigBackend(String fileName);
/** Destructor */
virtual ~SqlConfigBackend();
/** This will run a query of the form "SELECT valueName FROM Table WHERE keyName=keyValue;"
* For instance, to obtain the IP address for an interface managed with this backend:
* read("net-interfaces", "iface", "interface0", "ipAddr", myBuffer, maxSize);
*/
size_t read(String Table, String KeyName, String KeyValue, String ValueName, uintptr_t buffer, size_t maxBytes);
/** Updates the database (will execute an SQL SELECT, then an UPDATE or INSERT query) */
size_t write(String Table, String KeyName, String KeyValue, String ValueName, uintptr_t buffer, size_t nBytes);
/** Will return "SqlBackend" */
String getTypeName();
};
/** NetworkStack initialisation */
void NetworkStack::initialise()
{
...
SqlConfigBackend *sqlConfig = new SqlConfigBackend("root:/config/net-data");
if(sqlConfig)
ConfigurationManager::instance().installBackend(sqlConfig); // configStore = "net-data"
...
}
/** Some network card */
int NetworkCard::setStationInfo()
{
...
String Ipv4; // set above
uint8_t *ipAddr = new uint8_t[Ipv4.length() + 1];
strcpy(ipAddr, static_cast(Ipv4));
ConfigurationManager::instance().write("net-data", "interfaces", "interface", "interface0" /* Probably created by getting the NIC ID */, "ipv4", ipAddr, Ipv4.length());
...
}


I am a developer with a background in music and education currently seeking opportunities in Front or Back End Web Development. I'm passionate about solving problems and working in small groups to help build tools to empower and enrich communities and lives.


Notebooks
Story: Flood at Victoria West
Flood at Victoria West
Title
Flood at Victoria West
Collection
Summary
|han≠kass'o relates the story of the flood at Victoria West, observed by ≠kuken-an and |han≠kass'o's wife, Ssuobba-||ken (Sara), who were both at Victoria West at the time it happened. The rain carried all the things and the people away down the river bed and some where crushed by collapsing houses.
Comments
1) This story is found in Book VIII-23
Contributors
|han≠kass'o (Klein Jantje) (VIII)
Date
24 November 1878
Categories
History (personal), The Rain and Rain's water
Keywords
rain (darkness's) , rain (that comes at night) , rain (its 'bell' that kills people) , rain (caused by sorcery) , rain (its 'pot' which fell on Victoria West) , rain (and the flood at Victoria West) , rain (its body) , rain (its body parts) , rain (angry) , rain (killing) , rain (which kills people) , rain (and 'sorcery's bell') , rain (which carried away houses, people, animals and things in Victoria West) , sorcery's bell (a rain which kills people) , sorcery's bell (and the flood at Victoria West) , place (Victoria West) , place (flood at Victoria West) , flood (and the rain's 'pot' which fell on Victoria West) , flood (caused by sorcery) , flood (sorcery's bell) , flood (at Victoria West) , |han≠kass'o (his personal history) , |han≠kass'o (his late wife, Ssuobba-||ken, and the flood at Victoria West) , water (people say that it 'runs carrying away all the things') , water (and the flood at Victoria West) , water (carried away houses, people, animals and things in Victoria West) , sorcery (sorcery's bell and the flood at Victoria West) , personal history (|han≠kass'o's late wife, Ssuobba-||ken, and the flood at Victoria West) , names (of |xam who experienced the flood at Victoria West) , names (|han≠kass'o's late wife was Ssuobba-||ken or Sara)
Story Pages
8011-8017


THE HIDDEN CRISIS IN AMERICA'S JAILS
Visualization
Documentation
Presentation
Project demonstration video


Main title
Here are some details
Item 1
Visit shakebuild.com. There is lots ofcode on this site
. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1.
Item 1
here are a few lines
of code
Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1. Stuff about item 1.


Tag Statistic
Node.js package to parse HTML and show rule defects
Installation
Install Tag Statistic globally using npm:
npm install -g tag-statistic
To install the latest version on npm locally and save it in your package's package.json file:
npm install --save-dev tag-statistic
Usage & Examples
var Filter = require('tag-statistic');
//simple HTML file parsing and printing defects on console
var filter = new Filter("console");
filter.parseFile("home.html");
//input stream and parse data by reading stream. Print results on console
var fs = require('fs');
var filter = new Filter("console");
var s = fs.createReadStream("home.html");
filter.parseStream(s);
//simple HTML file parsing and write result in output file
var filter = new Filter("file");
var settings = filter.getSettings();
settings.outputFile = "output.txt";
filter.setSettings(settings);
filter.parseFile("home.html");
//simple HTML file parsing and get result on write stream
var filter = new Filter("stream");
var wStream = filter.outputWriteStream;
wStream.write = function(data, _, done) {
console.log(data);
done();
}
filter.parseFile("home.html");
//Disable, Override, Define new rules and match conditions
var filter = new Filter("console");
var settings = filter.getSettings();
settings.filters[0].isEnabled = false; //disable default rule
settings.filters[3].rules[0].condition[0].args = 3; //Overwrite default rule
settings.filters[3].rules[0].error = "There are more than 3 <strong> tag in HTML";
settings.filters.push( //add custom rule
{
"isEnabled": true,
"rules": [
{
"parent": "head",
"tag": "meta",
"assessMode": "batch",
"condition": [
{
"method": "to.containSubset",
"args": [
{
"name": "meta",
"attribs": {
"name": "robots"
}
}
]
}
],
"error": "<head> without <meta name='robots'/> tag"
},
]
});
filter.setSettings(settings); //apply new settings
filter.parseFile("home.html");
//Use your fully customized rules at first
var filter = new Filter("console",
{
"output": "console",
"outputFile": "result.txt",
"filters": [
{
"isEnabled": true,
"rules": [
{
"tag": "a",
"assessMode": "single",
"condition": [
{
"method": "to.have.deep.property",
"args": "attribs.href"
},
{
"method": "that.is.not.match",
"args": /^#/
}
],
"error": "There are %d <a> tag with # URLs"
}
]
}
]
});
filter.parseFile("home.html");
Development
Copy git repository and run:
npm install
This should setup development environment.
Once satisfied with code changes, update tests and run:
npm test
To update the documentation, edit jsDoc comments and run:
npm run-script doc
License
MIT


{% extends "layout.html" %} {% block content %}
{{ user.email }} | {{ user.is_role }}
Role
Brand Name
Company Name
About you
Web URL
Are you available for sponsorship ?
User Name
Phone No
Email


The WSK-Angular project is an implementation of Material Design with AngularDart and Googles Web Starter Kit.
This project provides a set of reusable and accessible UI components
based on the Material Design system.
The source code is hosted on GitHub
There is also a version without Angular available. Check it out on http://wsk.mikemitterer.at
Last update: {{lastupdate}}


Select an entire table
SELECT * FROM * table_name;
Select column from table
SELECT column_name1,column_name2 FROM table_name;
Select columns and sort by ascending or descending
SELECT column_name1,column_name2 FROM table_name ORDER BY column_name2 DESC;
Note: ORDER BY defaults to ascending order
Select items in a column based on criteria
SELECT column_name1 from table_name WHERE column_name2 operator value;
Note: Operate value can equal: =, <> (not equal), <, >, <=, >=, BETWEEN, LIKE, IN.
Select items in a column that contain certain characters
SELECT column_name1 from table_name WHERE column_name1 LIKE 'desired_text'
Note: Wildcards: % = substitute for zero or more characters, _ = substitute for single character
SQL Resources


Use predefined application-URIs (for either maven or docker) for all the out-of-the-box stream and task/batch apps.


Dominic Raab says 'no-one gives a toss' about fake Tory fact-check Twitter
Dominic Raab today defended changing the official Tory Twitter account to appear as a fact-checking account by saying it was ‘a really good instant rebuttal mechanism’.
The foreign secretary told the BBC: ‘No-one gives a toss about the social media cut and thrust.’
When questioned on the response of legitimate fact-checking charity Full Fact, who tweeted that it was ‘inappropriate and misleading’ for the Conservative press office to rename their account, Mr Raab said: ‘It doesn’t sound to me like they like competition.’
Advertisement Advertisement
The @CCHQpress account is verified by Twitter, displaying a blue tick which is intended to denote that a user is genuine.
During the leaders debate live on ITV last night, CCHQ changed it’s name to ‘factcheckUK’ as well as its profile and header pictures.
It then retweeted tweets supporting the prime minister, questioned statements made by Labour leader Jeremy Corbyn and sent a tweet saying Boris Johnson was the ‘clear winner’.
The move was widely condemned for being misleading to the public, including by Twitter, who issued a statement warning: ‘Any further attempts to mislead people by editing verified profile information will result in decisive corrective action.’
But Mr Raab said the Conservatives ‘will make no apology for having an instant rebuttal of the nonsense and lies’ spread by opposition parties.
Earlier he told BBC Radio 4’s Today programme: ‘We’ll always abide by the rules with these things and if there’s advice that comes out, look at it very carefully.’
Asked whether the Conservatives would do it again, he said: ‘The handle of the Twitter account was very clearly linked to the Conservative Party, but we make no apologies for having an instant rebuttal for all the nonsense and lies put out, and Jeremy Corbyn repeating it last night, saying we want to sell off the NHS.’
Advertisement Advertisement
Mr Raab continued: ‘Look, we’ll look at the advice from Twitter, but we will make no apology for having an instant rebuttal of the nonsense and lies.’
He added: ‘Well, I’m not in charge of social media, but actually I think the account was very clearly linked to the CCHQ, it was on the face of it, but we’re rebutting the nonsense that systematically gets put out about the Conservative position so that voters and so that your listeners know the truth.’
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


--- layout: post title: Choosing a Non-Fiction Book date: 2011-01-09 12:35:34.000000000 -08:00 type: post parent_id: '0' published: true pd: '' status: publish categories: - Classroom Talk - Guest Posts tags: - choosing non-fiction books - non-fiction children's books - reading author: login: k email: k@k display_name: mcary first_name: '' last_name: '' ---
Guest Post by Lori Ferguson
Kids are by nature curious…who hasn’t made a remark to a child only to be met with the quizzical “WHY?!” Their young minds are growing and the “what, why and how” of things are perpetual sources of fascination.
So why not harness that energy and enrich their minds with a great non-fiction book? When choosing non-fiction for children in the 3-7 age range, think about:
Lori Ferguson is the author of a series of environmentally conscious eBooks for children and a partner in Bookpx. She also offers writing and public relations support to clients through her consulting business, In Your Words.


Thyssenkrupp shares plunge as future looks grim for industrial giant
by Edward ThicknesseShares in Thyssenkrupp fell over 14 per cent today as the German industrial group's new chief executive Martina Merz scrapped its dividend, warning that deeper losses were still to come.
Merz, who took over last month in an emergency move, asked investors to be patient after the company’s half year results showed net losses had widened to €304m (£260.2m) from €62m a year earlier.
Read more: German steel giant Thyssenkrupp looking to sell elevator division
Thyssenkrupp's adjusted earnings before interest and tax tumbled 44 per cent to €802m and the company said it expected a similar level for 2019/20.
It reported negative free cash flow before mergers and acquisitions of €1.1bn and warned that the situation would get worse this financial year.
Net debt at the industrial megalith stood at $3.7bn at the end of September.
She added that the turnaround would take two to three years to take effect, saying: “We will not leave any stone unturned.”
The company’s elevator business, one of its most prized assets, is up for sale in an attempt to begin fixing the conglomerate’s finances. The division could fetch as much as €17bn, with multiple bidders expected.
Since July 2018 Thyssenkrupp has issued four profit warnings and made two failed attempts to restructure. It is also aiming to slash 6,000 jobs and spin off businesses where it is clear it cannot catch up with rivals.
The proposed job losses will not play well with labour representatives, a stakeholder group that controls half of the firm’s supervisory board.
It was the first time in six years that the company had proposed scrapping its dividend, a move that met with approval from top investor the Alfried Krupp von Bohlen und Halbach Foundation.
Read more: Thyssenkrupp pushes back against EU's steel merger block
Michael Muders of Union Investment, a top-10 shareholder, told Reuters: "Thyssenkrupp needs to focus on the comprehensive and sustainable restructuring of the business areas, in the interest of safeguarding the future of the company,"
Shares earlier touched an 11-week low of €11.54.
Main image credit: Getty


Header1
Header2
Header3
Header4
Header5
Detail1
Detail2
Detail3
Detail4
Detail5
Detail1
Detail2
Detail3
Detail4
Detail5
Detail1
Detail2
Detail3
Detail4
Detail5
Detail1
Detail2
Detail3
Detail4
Detail5


My Movie List
New Movie
Movie Name
category
Action
Adventure
Animation
Comedy
Detective
Fantasy
History
Horror
Musical
Pirate
Romantic
SCI-FI
War
Western
Movie Year
Save


[[ package gen;
import se.rupy.http.*;
import java.util.*;
import java.net.*;
import java.io.*;
public class fuse extends Service {
String red = "#ff3300";
String orange = "#ff9900";
String blue = "#6699ff";
String green = "#00cc33";
String black = "#000000";
String white = "#ffffff";
public String path() { return "/fuse.html:/about.html"; }
public void filter(Event event) throws Event, Exception {
event.query().parse();
final String name = event.string("name");
final String mail = event.string("mail");
String done = event.query().string("done");
String back = "";
if(event.push()) {
if(done.equals("OK")) {
back = "We'll get back in touch shortly!";
}
else {
back = "Something broke! Could not send mail.";
}
event.output().finish();
}
else if(name.length() > 0 && mail.length() > 0 && mail.contains("@")) {
Async.Work work = new Async.Work(event) {
public void send(Async.Call call) throws Exception {
<EMAIL_ADDRESS>+ mail + "&title=" + URLEncoder.encode("Fuse Contact") + "&body=" + URLEncoder.encode("Please tell me more about Fuse!
" + name) + "&send", "Head:less\r\nHost:host.rupy.se");
}
public void read(String host, final String body) throws Exception {
event.query().put("done", body);
System.out.println(body);
event.reply().wakeup(true);
}
public void fail(String host, Exception e) throws Exception {
System.out.println("mail " + e);
}
};
event.daemon().client().send("localhost", work, 0);
throw event;
}
Output out = event.output(); ]]
Multiplayer Online Standard
Reference Implementation
- C# (client)
- C++ (client)
- Java (server uses rupy)
- HTML5 (client)
- Generic: User - Item - Room
- JSON: Distributed async. database
- HTTP:
- - Triplex TCP (2 sockets)
- - Comet-Stream / Server-Sent Events
- - Traverses all firewalls
-
- Async. hot-deploy to the global cluster.
- Completely Joint Parallel Non-Blocking Async.
- Global 100% Read Uptime (registered users
will always be able to login and play)
-
- Low internal latency: statistics (Raspberry Pi 2)
- Open-Source: https://github.com/tinspin/fuse
- Integrated Forum: http://talk.binarytask.com
-
- Physics: Client predicts everything
- Movement: Events instead of ticks
Examples:
Performance: (Meadow)
- 150 concurrent users ~30% CPU on AWS T2 Micro (3 ECU burst?)
- Then we upgraded because CPU credits were
running low and not replenishing at night:
- 200 concurrent users ~12.5% CPU on AWS T2 Medium (10 ECU burst?)
- 250 concurrent users ~15% CPU on AWS T2 Medium (10 ECU burst?)
- 450 concurrent users ~25% CPU on AWS T2 Medium (10 ECU burst?)
- 450 concurrent users ~40% CPU on AWS M4 Large (6.5 ECU)
- At peak the 3x node intercontinental cluster ran with
1100 concurrent players for ~20$/day.
- This was during a 3 day surge where we added 50.000 players
which meant a revenue of ~50.000$/day.
- When at 450 concurrent users each server receives 2.000
and sends 100.000 move messages per second while
keeping internal latency low enough for FPS games.
- scales linearly / zero io-wait
- 100% stable / zero leakage
Advantages:
- Scalable - 1000 mess.in+out/s on Raspberry Pi 1 / Distr. Async. DB
- Simple - Virtual Host Hotdeploy / HTTP JSON File DB / HTTP API
- Stable - Infinite Uptime / No Maintenance / 8 Years Old
- Secure - One-Time Salt Password Hash Login
- One process for C#, C++ and HTML5 cross play, website and database!
- 200KB total size (excl. Java)
- Global 100% Read Uptime
- Commercial License starting at 20$/Month
Flaws (2018-11-30):
- 759 out of 205.875 customers refunded because their antivirus blocks the pull HTTP stream
- You need large database hard-drives; Meadow uses 100KB per user, also inodes run out
before disk space if you don't configure the /app mount with 'mkfs.ext4 -T small'
- Peak garbage collect is 7ms once per minute on AWS T2 Micro instance
Roadmap (2020-02-02):
- Update 2020-11-02: Preview Teaser!
- Update 2020-12-02: A bold prediction!
- Update 2020-12-04: Integrate drag'n drop scripting?
- Khronos (OpenGL/AL and Collada) C+ (C syntax compiled with g++/cl.exe) 3D Engine.
- Github License & Sponsorship / Itch Prepaid & Subscription (VAT)
-
-
Rendered vertex skinned characters at 60 FPS and GPU 100% saturated:
| Device | GW | CGW | C% | Total | Year | NM | GL |
| 400x | 3770S/4000HD | 57x | 11x | 1% | 35W | 2012 | 22 | 3 |
| 100x | Raspberry 4 | 100x | 20x | 45% | 5W | 2019 | 28 | ES 3 |
| 600x | Jetson Nano 2GB | 150x | 60x | 65% | 10W | 2020 | 16 | ES 3 |
| ?x | Human Brain | ?x | ?x | ?% | 12W | ! | ? | ? |
| 3.500x | 6600/1050Ti | 233x | 166x | 100% | 105W | 2016 | 14 | 3 |
GW = x Per GPU Watt.
CGW = x Per CPU + GPU Watt.
C% = Render single CPU core usage.
-
- Physics: Distributed collision, server validation on disagreement
and/or random 3rd party authority selection, report election
for performance burst.
-
- Movement: Polar ADC - DAC compression for input over network.
Delay precision correction until delta is (s)low enough.
-
Competition:
- None of the competition has an integrated
async-to-async distributed database or web
server that can scale across continents
or hot-deploy in under 2 seconds.
- SpatialOS (Java, uses netty/akka) 80MB total size = x400!
- Goto & Play (Java)
None of the systems below can scale on
multiple cores across the same room
instance:
- Much Different (C#) Defunct
- Exit Games (C++/C#) Only Windows
- Nakama (Go)
Tutorial:
-
Server
1) Install JDK (See below for my own backups of free Java) and Ant, add their /bin folders to OS path.
2) Download/clone fuse-master from github, all instructions below are from inside the fuse-master folder.
Local (single developer; testing, learning, prototype)
3a) Start the server with run.sh or run.bat.
3b) Run "ant local".
By default the project will use root.rupy.se as database.
Remote (global cluster, multiple developers; separate domains for test and live etc.)
4a) Register on binarytask. Pick any available <name>.binarytask.com or use your own domain.
4b) Edit the root property (at the top) in build.xml to the domain you registered.
4c) Replace ${fuse.rupy.se} in the remote target (at the bottom) with the password.
4d) Run "ant remote".
By default the project will use base.binarytask.com as database.
Client
5) Copy Fuse.cs/Fuse.cpp to your client project.
6) Edit host and port depending on local/remote.
Hosting:
- Dedicated: Minimum equivalent of two micro instances, last free Oracle Java (8u181):
- "Cloud": We host and maintain on globally redundant hybrid cloud: host.binarytask.com
- Taipei & Hong Kong in Asia
- Omaha & Kansas City in US
- Zürich & Berlin in Europe
License MIT but:
- You have to show the logo on startup. (also availiable with
white outline: )
- You have to sponsor my Fuse Commercial tier (according to your company yearly revenue)
on github during the time you are developing/using this commercially.
- Last but not least the .html files (including content in them) are
proprietary and cannot be used commercially as is, from the play.html
you can reuse the platform specific javascript though!
Documentation:
Contact:
[[ }
} ]]


public class HardwareMap
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
HardwareMap.DeviceMapping<DEVICE_TYPE> |
| Constructor and Description |
|---|
HardwareMap() |
| Modifier and Type | Method and Description |
|---|---|
void |
logDevices() |
public HardwareMap.DeviceMapping<DcMotorController> dcMotorController
public HardwareMap.DeviceMapping<DcMotor> dcMotor
public HardwareMap.DeviceMapping<ServoController> servoController
public HardwareMap.DeviceMapping<Servo> servo
public HardwareMap.DeviceMapping<LegacyModule> legacyModule
public HardwareMap.DeviceMapping<TouchSensorMultiplexer> touchSensorMultiplexer
public HardwareMap.DeviceMapping<DeviceInterfaceModule> deviceInterfaceModule
public HardwareMap.DeviceMapping<AnalogInput> analogInput
public HardwareMap.DeviceMapping<DigitalChannel> digitalChannel
public HardwareMap.DeviceMapping<OpticalDistanceSensor> opticalDistanceSensor
public HardwareMap.DeviceMapping<TouchSensor> touchSensor
public HardwareMap.DeviceMapping<PWMOutput> pwmOutput
public HardwareMap.DeviceMapping<I2cDevice> i2cDevice
public HardwareMap.DeviceMapping<AnalogOutput> analogOutput
public HardwareMap.DeviceMapping<ColorSensor> colorSensor
public HardwareMap.DeviceMapping<LED> led
public HardwareMap.DeviceMapping<AccelerationSensor> accelerationSensor
public HardwareMap.DeviceMapping<CompassSensor> compassSensor
public HardwareMap.DeviceMapping<GyroSensor> gyroSensor
public HardwareMap.DeviceMapping<IrSeekerSensor> irSeekerSensor
public HardwareMap.DeviceMapping<LightSensor> lightSensor
public HardwareMap.DeviceMapping<UltrasonicSensor> ultrasonicSensor
public HardwareMap.DeviceMapping<VoltageSensor> voltageSensor
public Context appContext


es6-module-archetype
This is a project archetype for simple es6 modules
Read the API documentation for further details on how to use this library.
Installation
Run the install command:
npm install --save es6-module-archetype
Development
During the development to create the dist package, run either:
npm run build
or use
npm run test:watch
Update the documentation:
npm run docs
Check the source code:
npm run test
npm run lint
Gain test coverage report:
npm run coverage


General recommendations¶
Finding the source¶
Looking at the original F* files allows the user to identify any preconditions or remarks that may have been left in there (work is in progress to forward source-level comments to the generated C code). Indeed, our C code is generated; as such, some information is lost in the translation process.
Note
It is almost always a good idea to look at F* interface files (.fsti
) rather
than implementations (.fst
). These typically have the most up-to-date
comments, as well as a wealth of information regarding preconditions, such as
length of arrays, disjointness, etc. that C clients MUST obey.
There are some general rules for mapping a .h
file to an .fsti
file.
Files that start with
Hacl_
are found in thecode/
subdirectory; for instance,Hacl_HKDF.h
comes fromcode/hkdf/Hacl.HKDF.fsti
. Some.h
files may combine multiple source F* files (known as “bundling”); for instance,Hacl_Hash.h
combines all files fromcode/hash
along withcode/sha3
.Files that start with
Lib_
are found in thelib/c
directory; they are hand-written and are assumed to faithfully implement a given F* signature; these should be carefully reviewed before any integration. In particular, for zero-ing out memory and randomness, we only have basic implementations; pull requests welcome.Files that start with
EverCrypt_
are found in theproviders/evercrypt
directory.
In case finding a particular declaration is important: if a function is named
Foo_Bar_baz
, then you want to find Foo.Bar.fst{,i}
.
Reading F* preconditions¶
It is important to be able to read some amount of F* code in order to successfully use an API. For instance, looking at AEAD encryption, there are various pre-conditions that client must satisfy, related to liveness, disjointness and array lengths. We expect unverified C clients to abide by these preconditions; otherwise, none of our verification guarantees hold! As such, it is up to the user to read the preconditions and make sure they are satisfied.
As an example, consider EverCrypt_AEAD_encrypt
. Per the section above, we
look up providers/evercrypt/EverCrypt.AEAD.fsti
. The encrypt_pre
definition lists all the properties that must hold for a call to encrypt
to
be valid.
let encrypt_pre (a: supported_alg)
(s:B.pointer_or_null (state_s a))
(iv:iv_p a)
(iv_len: UInt32.t)
(ad:ad_p a)
(ad_len: UInt32.t)
(plain: plain_p a)
(plain_len: UInt32.t)
(cipher: B.buffer uint8)
(tag: B.buffer uint8)
(h0: HS.mem)
=
v iv_len = B.length iv /\ v iv_len > 0 /\
v ad_len = B.length ad /\ v ad_len <= pow2 31 /\
v plain_len = B.length plain /\ v plain_len <= max_length a /\
B.length cipher = B.length plain /\
B.length tag = tag_length a /\ (
not (B.g_is_null s) ==>
invariant h0 s /\
B.(loc_disjoint (footprint h0 s) (loc_buffer iv)) /\
B.(loc_disjoint (footprint h0 s) (loc_buffer ad)) /\
B.(loc_disjoint (footprint h0 s) (loc_buffer tag)) /\
B.(loc_disjoint (footprint h0 s) (loc_buffer plain)) /\
B.(loc_disjoint (footprint h0 s) (loc_buffer cipher)) /\
MB.(all_live h0 [ buf iv; buf ad; buf plain; buf cipher; buf tag ]) /\
(B.disjoint plain cipher \/ plain == cipher) /\
B.disjoint cipher tag /\
B.disjoint iv cipher /\ B.disjoint iv tag /\
B.disjoint plain tag /\
B.disjoint plain ad /\
B.disjoint ad cipher /\ B.disjoint ad tag)
Here are some examples:
B.length
denotes the length of a C array; we see thativ_len
must be the length of the pointeriv
, and that this length must be strictly positiveloc_disjoint
orB.disjoint
state that memory chunks shall not overlap; we see that no overlap is tolerated betweencipher
andtag
, but thatplain
andcipher
must be either the same pointer, or non-overlapping memory allocationsall_live
means that all of the pointers in the list must be valid allocations that have not yet been freed
A few lines below, we see from the signature of encrypt
that the only two
possible errors are Success
and InvalidKey
.
Static vs. run-time checks¶
We sometimes perform additional run-time checks for violations of the API that
are ruled out for verified clients; for instance, continuing with the
encrypt
example, we do perform a check at run-time for zero-length IVs,
even though no F* client would be allowed to do that.
C clients should not rely on those details, since i) this is best-effort and we do not offer any guarantee as to which preconditions we check for and ii) the error that is returned is not captured in the post-condition, since it cannot happen for verified clients.
Which API to use¶
HACL* APIs are specialized for a given architecture revision and do not have any
agility overhead. Consider, for instance, Chacha-Poly encryption from
Hacl_Chacha20Poly1305_256.h
:
void
Hacl_Chacha20Poly1305_256_aead_encrypt(
uint8_t *k,
uint8_t *n1,
uint32_t aadlen,
uint8_t *aad,
uint32_t mlen,
uint8_t *m,
uint8_t *cipher,
uint8_t *mac
);
In order to use this function, you must ascertain that the architecture you’re running on supports 256-bit vector instructions (AVX2 + SSE4); furthermore, your code will have to be changed if you need another AEAD algorithm such as AES-GCM. This is an efficient API, as it does not require any extra API calls and does not allocate any intermediary state.
EverCrypt APIs, on the other hand, can do CPU detection for clients, via a helper
function found in EverCrypt_AutoConfig2.h
.
void EverCrypt_AutoConfig2_init();
EverCrypt APIs are generally agile, i.e. clients only need to change one argument to a function call in order to use a different algorithm; furthermore, those APIs are multiplexing, i.e. they automatically pick the most suitable implementation based ont he results of target CPU detection.
This means that the EverCrypt API for Chacha-Poly is found in
EverCrypt_AEAD.h
; clients are expected to first allocate state, passing in
the desired AEAD algorithm as a parameter (agility):
EverCrypt_Error_error_code
EverCrypt_AEAD_create_in(Spec_Agile_AEAD_alg a, EverCrypt_AEAD_state_s **dst, uint8_t *k1);
Then, will clients be able to encrypt:
EverCrypt_Error_error_code
EverCrypt_AEAD_encrypt(
EverCrypt_AEAD_state_s *s,
uint8_t *iv,
uint32_t iv_len,
uint8_t *ad,
uint32_t ad_len,
uint8_t *plain,
uint32_t plain_len,
uint8_t *cipher,
uint8_t *tag
);


Home
About Me
My Work
How To Reach Me
My
Work
Checkout Some Of My Projects ...
Project
Github
Project
Github
Project
Github
Project
Github
Project
Github


Name:
First number:
Second number:
Third number:
Fourth number:
Fifth number:
Sixth number:
Number of draws:
Submit
statistics
back to homepage


|
tiffdump displays directory information from files
created according to the Tag Image File Format, Revision
6.0. The header of each TIFF file (magic
number, version, and first directory offset) is displayed,
followed by the tag contents of each directory in the file.
For each tag, the name, datatype, count, and value(s) is
displayed. When the symbolic name for a tag or datatype is
known, the symbolic name is displayed followed by it's
numeric (decimal) value. Tag values are displayed enclosed
in ``<>'' characters immediately preceded by the value
of the count field. For example, an ImageWidth tag
might be displayed as ``ImageWidth (256) SHORT (3)
1<800>''. |


{% include head.html %} {% comment %} This collects all the site tags and assigns to `tags`.{% endcomment %} {% include collect_tags.html %}