(set-connection!
{
:connection-url "http://localhost:8529/"
:db-name "my-db"
:collection-name "my-collection"
})
(set-default-db! :my-db)
(set-default-collection! :my-collection)
;; more code ...
(with-db :my-db
(with-collection :my-collection
;; ... pass your body of code here ...
))
;; create
(document/create {:desc "some test document"})
(document/create-with-key {:desc "some test document"} :test-doc)
;; read
(document/get-by-key :test-doc)
(document/get-by-example {:desc "some test document"})
;; update
(document/update-by-key {:add "more info"} :test-doc)
(document/update-by-example {:add "more info"} {:desc "some test document"})
;; delete
(document/delete-by-key :test-doc)
(document/delete-by-example {:desc "some test document"})
(with-db (database/create :my-db [])
(document/create-with-key {:description "nice stuff"} :my-doc
(collection/create :my-collection)))
(graph/create :test-graph
(collection/create :people {"type" 2})
(collection/create :friendships {"type" 3}))
(collection/get-delayed-collection :my-collection :my-db)
(keys (collection/get-delayed-collection :my-collection :my-db))
(let [delayed-collection (get-delayed-collection :my-collection :my-db)]
(doseq [k (keys delayed-collection)]
(pprint @(get delayed-collection k))))
(conj [] {:name "a test document"})
(assoc {} :my-doc {:name "a test document"})
(cla-assoc! "test-collection" :test-doc {:name "a test document"})
(cla-conj! "test-collection" {:name "a test document"}))


|
Embedded Artistry Framework
Embedded Systems C++ Framework
|
Directories | |
| directory | aarch64 |
| directory | amd64 |
| directory | arm |
| directory | bsdsrc |
| directory | i387 |
| directory | include |
| directory | ld128 |
| directory | ld80 |
| directory | mips |
| directory | powerpc |
| directory | s390 |
| directory | src |
| directory | test |
| directory | wasm32 |
Files | |
| file | Make.inc |


Historic Gatekeepers Cottage restored as education, history hub
by Rochelle KirkhamThe restoration of the Ballarat Botanical Gardens' Gatekeepers Cottage was revealed at an official opening on Thursday night.
Major work on the historic building was completed earlier this year and the space has been used as a history and education centre since May.
This would be a great headquarters for learning in this precinct.Julie Bradby, Gatekeepers Cottage
Friends of the Ballarat Botanical Gardens Gatekeepers Cottage and BotaniKIDS program convener Julie Bradby said she was feeling 'blessed' to be able to develop the site as a hub for education.
"If we start getting a strong program we can grow this as a wonderful place for children to learn beyond the school gate," she said.
"This would be a great headquarters for learning in this precinct."
The Gatekeepers Cottage has hosted children's nature education program BotaniKIDS around twice a week since May.
Volunteers also open the doors of the cottage to members of the general public at least once a week.
The front room is being set up for interpretation of the botanical gardens, with information on the evolution of plants and how it links with plants in the gardens and fernery. It will soon feature an exhibition of work by the Friends group's botanical artists.
Another room of the cottage is being dedicated to history displays, currently featuring information on World War I with plans for exhibits on the old zoo.
READ MORE: Cottage refurbishment restores memories of a life past
"The interpretation part is really important for visitors to the gardens and the community," Ms Bradby said.
"We have found a lot of visitors to the gardens are knocking on the door wanting to come in.
"We are encouraging visitors and school groups to enjoy the precinct, not just the gardens; there's the wetlands, the lake, the tramway, the gardens, the Prisoner's Of War Memorial, Olympic area and now the cottage."
RELATED COVERAGE: Botanical Gardens gatekeepers cottage restoration close to completion date
The Friends of the Ballarat Botanical Gardens is in conversation with The Field Naturalists Ballarat who are looking to start a junior club and there are plans to start an after school botany club at the site.
"That's the sort of thing we can do now we have our own space," Ms Bradby said.
READ MORE: Begonia Festival BotaniKIDS potting program engages young gardeners
The official opening on Thursday night was a time to celebrate and thank the work of key stakeholders who made the cottage restoration happen, including City of Ballarat, Sue Guthrie and her family who were the last owners, Friends of the Ballarat Botanical Gardens members and donors who contributed to funding the project.
"It has been a fantastic story," Ms Bradby said.
The Gatekeepers Cottage was first erected in the Ballarat Botanical Gardens in the late 19th century.
It spent almost 85 years situated at 1414 Gregory Street as a residence before it was returned to its original home at the gardens in June 2017.
City of Ballarat funded the refurbishment works while Friends of the Ballarat Botanical Gardens funded the internal fit out of furniture and education fixtures.
The historical building was gifted to the community through the Friends of the Ballarat Botanical Gardens by its previous owners.


DEV Crit DC - I have a few builds with DEV crit and my dc is anywhere from 42-47. I see people getting DC's of over 50. What do i need to do to achive that high of a DC.
I forgot the calculations on getting a higher dc, From what im thinking, the earlier in the build you get Dev Crit the higher the DC (please correct me if im wrong)
I would search on it but my job blocks it somehow.
Dev Crit DC = 10 + (1/2 character level) + STR modifier. The only way to increase it is to get more levels, if you're not already level 40, and raise STR. _________________ It's rogue, dammit, ROGUE!!!
Use RDD levels if you want your DC over 50.
Half-Orc with 20 starting str at level 40, having taken all boosts to str, 6 great str feats, and 10 RDD levels, with +12 to str, will have a Dev Crit DC of 53. I think the highest a non-RDD can get is 49.


Looking for a way to track your childs eating habits? Then Gigapet is a fun and interactive way to do that. Your child gets to watch their pet evolve based on their food intake while developing good habits.
Samir is currently a Lambda School student and Team Lead who lives in North Carolina. His energy and desire to learn is paramount to Gigapet's growth.
Tim is a currently attending Lambda School where he hopes to become a Full Stack Web Developer while also taking on a Team Lead role. He resides in the famously weird city of Portland, Oregon. Tim's personal motto is "Keep Tim weird"!
Anita is studying at Lambda School and she lives in the beautiful city of Denver, Colorado. Her words inspire us all, "Learning is a project onto itself. I enjoy the journey of learning and all of its bumps in the road".
Steven is a Lambda School student with a sharp mind and a desire to excel. He currently lives on the East Coast where he works and attends school. Steven's work drive inspires us all.
Adric is a current student at Lambda School where he studies Web Development while traveling the Galaxy. He is known for telling everyone he meets "You are the brightest star in my sky".
Jeris is attending Lambda School while living in Missoula, Montana. He is well on his way to becoming the greatest web developer Lambda has ever seen!
Amanda is a current student at Lambda School. She lives in Bend, Oregon where she is a full time mom and a part time student.


Artificial Rain: A solution to Air pollution?
Air Pollution has been one of the biggest offenders when it comes to Air Quality in Delhi. With reported deaths surpassing 30,000 in a year, Air Pollution can no longer be ignored. Beijing has been going through a huge crisis regarding this issue. In fact, Los Angeles and London have been struggling to cope with air pollution too. This is clearly not a third world problem.
May 3, 2017


If only I were an Illinois resident.
“Is there a student discount?” I gingerly asked, presenting my battered U.C. Irvine ID.
“Illinois residents get in free today,” she replied.
“Right, but-…okay. Thanks!”
I hurriedly collected the ticket and walked away confused, only realizing later that she may have thought U.C. stood for University of Chicago.
Not that I would mind paying the $19 student fee (or the $25 general fee that I should be paying). It truly is a privilege to gaze upon some of the most recognizable works of art in the world, admiring and absorbing the genius, emotion, and technique of their artists.
Or something like that. Honestly, I don’t know how to appreciate art. I can read the placards, I can relate the artists’ context and influences to the paintings, but I don’t feel anything as profound as you would expect from paintings held in such high regard. Gazing upon the series of Van Gogh’s iconic The Bedroom, their juxtaposition representing his gradually skewing perception of “home,” the only thought going through my head was “this would make for a good Snapchat video.” I panned my phone across the triad, only to end at the gentle but disapproving look of the attendant, gesturing to the “no video” sign for probably the thousandth time that day.
Am I just emotionless, or another millennial in search of meaning and Instagram likes? Has my life been so shallow that I can’t relate to any of the artists’ struggles and feelings? It’s not that I don’t get artwork, I took an introductory art history course in college, so I know what I speak of.
Does the value of art lie in how effectively the artist depicted an emotion—froze it in time, preserving that exact moment? Or how well i t tells the artists’ story or message? Perhaps the artists’ technique and skill with a brush engender admiration and create the value?
At this point I think it’s fairly obvious that it’s a combination of all of these factors and maybe more. No amount of looking for museum tour groups/stalking SAIC professors can tell us what the art means to us.
But the question that arises is—if art is so subjective, why do some artists become so famous and revered? There has to be some formula, some combination of the above attributes, that creates the perfect piece.
You’re probably thinking, “wow this guy does not know what he’s talking about.”
And you’re right.
Confused,
-Wilbur


Some code inside a paragraph
code
Flexible replacement
Flexible
Flexible replacement again
again
Check that you have added Ubuntu main, restricted, universe and multiverse repositories in the file /etc/apt/sources.list.
main
restricted
universe
multiverse
/etc/apt/sources.list


{% extends "base.html" %} {% block content %}
Welcome! {{ username }}, we are really glad you signed up!


LAUTECH crisis unfortunate but surmountable –Minister
by Agency ReportThe Minister of Youth and Sports Development, Mr Sunday Dare, has said the crisis rocking Ladoke Akintola University of Technology, Ogbomoso is unfortunate but surmountable.
Dare made the disclosure during a courtesy call on the Vice-Chancellor of the institution, Prof. Michael Ologunde, on Saturday in Ogbomoso.
According to the News Agency of Nigeria, the institution co-owned by Oyo and Osun States had been battling with a crisis over the ownership.
Dare said the problems bedeviling the institution were surmountable, assuring them that the university would rise again.
The minister described the recent meeting of Gov. Seyi Makinde and his Osun State counterpart, Gboyega Oyetola in Abuja as apt.
He said that LAUTECH had consolidated on its leadership position as a University of Technology.
Dare called on stakeholders to collectively work towards returning the institution to the period of uninterrupted academic activities.
The minister promised to play active role in finding lasting solution to the incessant closure of the university, which he described as a model.
Earlier, Ologunde lauded President Muhammadu Buhari on the appointment of Dare as a Minister, saying his choice was an indication that government truly believed in the youths.
Ologunde admonished the minister to use his good office to help humanity and assist educational institutions as moulders of the nation’s future leaders to achieve their mandates.
NAN reports that the minister later delivered the 13th annual lecture of the LAUTECH Alumni Association.


Perform local realignment of reads around indels
The local realignment process is designed to consume one or more BAM files and to locally realign reads such that the number of mismatching bases is minimized across all the reads. In general, a large percent of regions requiring local realignment are due to the presence of an insertion or deletion (indels) in the individual's genome with respect to the reference genome. Such alignment artifacts result in many bases mismatching the reference near the misalignment, which are easily mistaken as SNPs. Moreover, since read mapping algorithms operate on each read independently, it is impossible to place reads on the reference genome such at mismatches are minimized across all reads. Consequently, even when some reads are correctly mapped with indels, reads covering the indel near just the start or end of the read are often incorrectly mapped with respect the true indel, also requiring realignment. Local realignment serves to transform regions with misalignments due to indels into clean reads containing a consensus indel suitable for standard variant discovery approaches.
Note that indel realignment is no longer necessary for variant discovery if you plan to use a variant caller that performs a haplotype assembly step, such as HaplotypeCaller or MuTect2. However it is still required when using legacy callers such as UnifiedGenotyper or the original MuTect.
There are 2 steps to the realignment process:
For more details, see the indel realignment method documentation.
One or more aligned BAM files and optionally one or more lists of known indels.
A realigned version of your input BAM file(s).
java -jar GenomeAnalysisTK.jar \ -T IndelRealigner \ -R reference.fasta \ -I input.bam \ -known indels.vcf \ -targetIntervals intervalListFromRTC.intervals \ -o realignedBam.bam
These Read Filters are automatically applied to the data by the Engine before processing by IndelRealigner.
This tool does not apply any downsampling by default.
All tools inherit arguments from the GATK Engine' "CommandLineGATK" argument collection, which can be used to modify various aspects of the tool's function. For example, the -L argument directs the GATK engine to restrict processing to specific genomic intervals; or the -rf argument allows you to apply certain read filters to exclude some of the data from the analysis.
This table summarizes the command-line arguments that are specific to this tool. For more details on each argument, see the list further down below the table or click on an argument name to jump directly to that entry in the list.
| Argument name(s) | Default value | Summary | |
|---|---|---|---|
| Required Inputs | |||
| --targetIntervals |
NA | Intervals file output from RealignerTargetCreator | |
| Optional Inputs | |||
| --knownAlleles -known |
[] | Input VCF file(s) with known indels | |
| Optional Outputs | |||
| --out -o |
NA | Output bam | |
| Optional Parameters | |||
| --consensusDeterminationModel -model |
USE_READS | Determines how to compute the possible alternate consenses | |
| --LODThresholdForCleaning -LOD |
5.0 | LOD threshold above which the cleaner will clean | |
| --nWayOut |
NA | Generate one output file for each input (-I) bam file (not compatible with -output) | |
| Advanced Parameters | |||
| --entropyThreshold -entropy |
0.15 | Percentage of mismatches at a locus to be considered having high entropy (0.0 < entropy <= 1.0) | |
| --maxConsensuses |
30 | Max alternate consensuses to try (necessary to improve performance in deep coverage) | |
| --maxIsizeForMovement -maxIsize |
3000 | maximum insert size of read pairs that we attempt to realign | |
| --maxPositionalMoveAllowed -maxPosMove |
200 | Maximum positional move in basepairs that a read can be adjusted during realignment | |
| --maxReadsForConsensuses -greedy |
120 | Max reads used for finding the alternate consensuses (necessary to improve performance in deep coverage) | |
| --maxReadsForRealignment -maxReads |
20000 | Max reads allowed at an interval for realignment | |
| --maxReadsInMemory -maxInMemory |
150000 | max reads allowed to be kept in memory at a time by the SAMFileWriter | |
| Advanced Flags | |||
| --noOriginalAlignmentTags -noTags |
false | Don't output the original cigar or alignment start tags for each realigned read in the output bam |
Arguments in this list are specific to this tool. Keep in mind that other arguments are available that are shared with other tools (e.g. command-line GATK arguments); see Inherited arguments above.
Determines how to compute the possible alternate consenses
We recommend that users run with USE_READS when trying to realign high quality longer read data mapped with a gapped aligner;
Smith-Waterman is really only necessary when using an ungapped aligner (e.g. MAQ in the case of single-end read data).
The --consensusDeterminationModel argument is an enumerated type (ConsensusDeterminationModel), which can have one of the following values:
ConsensusDeterminationModel USE_READS
Percentage of mismatches at a locus to be considered having high entropy (0.0 < entropy <= 1.0)
For expert users only! This is similar to the argument in the RealignerTargetCreator walker. The point here is that the realigner
will only proceed with the realignment (even above the given threshold) if it minimizes entropy among the reads (and doesn't simply
push the mismatch column to another position). This parameter is just a heuristic and should be adjusted based on your particular data set.
double 0.15 [ [ -∞ ∞ ] ]
Input VCF file(s) with known indels
Any number of VCF files representing known indels to be used for constructing alternate consenses.
Could be e.g. dbSNP and/or official 1000 Genomes indel calls. Non-indel variants in these files will be ignored.
This argument supports reference-ordered data (ROD) files in the following formats: BCF2, VCF, VCF3
List[RodBinding[VariantContext]] []
LOD threshold above which the cleaner will clean
This term is equivalent to "significance" - i.e. is the improvement significant enough to merit realignment? Note that this number
should be adjusted based on your particular data set. For low coverage and/or when looking for indels with low allele frequency,
this number should be smaller.
double 5.0 [ [ -∞ ∞ ] ]
Max alternate consensuses to try (necessary to improve performance in deep coverage)
For expert users only! If you need to find the optimal solution regardless of running time, use a higher number.
int 30 [ [ -∞ ∞ ] ]
maximum insert size of read pairs that we attempt to realign
For expert users only!
int 3000 [ [ -∞ ∞ ] ]
Maximum positional move in basepairs that a read can be adjusted during realignment
For expert users only!
int 200 [ [ -∞ ∞ ] ]
Max reads used for finding the alternate consensuses (necessary to improve performance in deep coverage)
For expert users only! If you need to find the optimal solution regardless of running time, use a higher number.
int 120 [ [ -∞ ∞ ] ]
Max reads allowed at an interval for realignment
For expert users only! If this value is exceeded at a given interval, realignment is not attempted and the reads are passed to the output file(s) as-is.
If you need to allow more reads (e.g. with very deep coverage) regardless of memory, use a higher number.
int 20000 [ [ -∞ ∞ ] ]
max reads allowed to be kept in memory at a time by the SAMFileWriter
For expert users only! To minimize memory consumption you can lower this number (but then the tool may skip realignment on regions with too much coverage;
and if the number is too low, it may generate errors during realignment). Just make sure to give Java enough memory! 4Gb should be enough with the default value.
int 150000 [ [ -∞ ∞ ] ]
Don't output the original cigar or alignment start tags for each realigned read in the output bam
boolean false
Generate one output file for each input (-I) bam file (not compatible with -output)
Reads from all input files will be realigned together, but then each read will be saved in the output file corresponding to the input file that
the read came from. There are two ways to generate output bam file names: 1) if the value of this argument is a general string (e.g. '.cleaned.bam'),
then extensions (".bam" or ".sam") will be stripped from the input file names and the provided string value will be pasted on instead; 2) if the
value ends with a '.map' (e.g. input_output.map), then the two-column tab-separated file with the specified name must exist and list unique output
file name (2nd column) for each input file name (1st column).
Note that some GATK arguments do NOT work in conjunction with nWayOut (e.g. --disable_bam_indexing).
String NA
Output bam
The realigned bam file.
GATKSAMFileWriter NA
Intervals file output from RealignerTargetCreator
The interval list output from the RealignerTargetCreator tool using the same bam(s), reference, and known indel file(s).
R IntervalBinding[Feature] NA


Huisiyu Yu
Northeastern University
Sophomore
Computer Science combined Math
My name is Huisiyu Yu. I am a sophomore in Northeastern University studying computer science and math.
I have learnt OOD, algorithm and web development for computer science courses. I mainly use Java.
For math courses, I have learnt probability, linaer algebra, calculus and differential equations.
In my free time, I like to explore aroung the city for good food. I also go for an adventure or travelling around the world during holidays.
This is a food delivery website.
The website allows the user to browse anonymous or login as customer/ restaurant manager/ delievery man.
Customers can search reastaurants and order the food from the restaurant.
Managers can manage their own reastaurants, edit the menu and edit the order.
Deliverymen can accept the order and change the order status.


| Home | Trees | Indices | Help |
|---|
|
|
object --+ | PiecewisePowerlaw
A piecewise powerlaw function.
You can specify the intervals and power indices, and this class will figure out the coefficients needed to make the function continuous and normalized to unit integral.
Intervals are defined by an array l
Powerlaw indicies by and array p
a_n are the coefficients.
f(x) = a_n x^{p_n} for l_{n-1} <= x < l_n
Recursion relation for continuity:
a_n = a_{n-1} l_n^{p_{n-1} - p_n}
Integral of a piece:
I_n = a_n p_n (l_{n+1}^{p_n - 1} - l_n^{p_n - 1})
Total integral:
I_tot = Sum_0^N I_n
| Instance Methods | |||
|
|||
|
|||
|
|||
|
Inherited from |
| Properties | |
|
Inherited from |
| Method Details |
Defined a piecewise powerlaw. If coefficients is None then the coefficients are determined by requiring the function to be continuous and normalized to an integral of one. The function is composed of N powerlaws, where N = len(powers). len(limits) must be one greated than len(powers) Parameters
The resulting function takes a single, one-dimensional array of values on which to operate.
|
Integrate the function from low to high. Optionally weight the integral by x^weight_power. |
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Tue Mar 27 20:49:15 2012 | http://epydoc.sourceforge.net |


--- layout: default ---
Rolling Mountain Kush represents a cannabis horticulture lifestyle that embraces a wide range of genetics, various growing methods, and nutrient products. There are various uses for different types of products that depend on several factors for determining which is best. From liquid nutrients, dry amendments, coco, rockwool, and soil there are plenty of different methods to grow excellent bud.
It is important to experiment with several techniques for cannabis cultivation including training, various levels of defoliation, topping, transplanting, foliar sprays, laying trellis, and overall pest management on a variety of cannabis strains. Often times as cannabis cultivators we look for the gauranteed solution, but we must adapt to our environment and overcome obstacles that are somewhat unique to the grow environment.
In a market where there are many competitors means you must compete. RMK is about producing cannabis that is safe to consume and of high quality, growing a variety of cannabis genetics from different breeders. After cultivating a great product it should be marketed well through print and online services.


This is the online presence of Full-Stack Web Developer and Visual Designer Scott Coons. Having designed for just about every medium that exists including website, print, packaging, film, video, outdoor, and trade show, Scott is ready to work for you.
In addition to visual design, Scott has written a novel, executed the engineering for several products, and is a long time musician.
For your consideration, a curated collection of work.
Drop me a note if you have a project you’d like me to consider, or want to talk about a more permanent arrangement. I look forward to hearing from you.


--- layout: post title: Today's Run date: 2010-01-06 16:25:56.000000000 +00:00 tags: - barefoot - run - snow type: post published: true ---
I've just popped out for a short run and thought I'd document it for everyone to share.
First, the planned route:
As you can see, it's not a popular route today, so it should be a nice quiet run.
I set off with good intentions, sadly any chances of actually running were soon stifled by the 9 inches of snow I quickly encountered...

Yes folks, I went for a run (read trudge) barefoot in the snow. Sadly, it wasn't a long one - all of 5 meters at the very most - and not really running, but it was enjoyable none-the-less. One thing is for sure, I thought my feet were cold before I went out, now they feel positively roasting now I'm back.


Register¶
API Specification¶
Summary: The register API is used to register devices and apps with the middleware. They can register as either devices or subscribers, the difference being that subscribers do not publish any data. Every device can have its own schema, or in other words, meta information about the nature of the information that the device publishes. For more information on schemas visit here
Endpoint:
https://localhost:8443/api/1.0.0/register
Method:
POST
Required Headers:
Header Name Description apikey API key of the provider Optional Headers:
Header Name Description security_level An integer between 1-5 Body: A valid catalogue item as mentioned here
Example request:
curl -X POST \ http://localhost/api/1.0.0/register \ -H 'apikey: guest' \ -H 'content-type: application/json' \ -k -d '{ "entitySchema": { "refCatalogueSchema": "generic_iotdevice_schema.json", "resourceType": "streetlight", "tags": [ "onstreet", "Energy", "still under development!" ], "refCatalogueSchemaRelease": "0.1.0", "latitude": { "value": 13.0143335, "ontologyRef": "http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#" }, "longitude": { "value": 77.5678424, "ontologyRef": "http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#" }, "owner": { "name": "IISC", "website": "http:\/\/www.iisc.ac.in" }, "provider": { "name": "Robert Bosch Centre for Cyber Physical Systems, IISc", "website": "http:\/\/rbccps.org" }, "geoLocation": { "address": "80 ft Road, Bangalore, 560012" }, "data_schema": { "type": "object", "properties": { "dataSamplingInstant": { "type": "number", "description": "Sampling Time in EPOCH format", "units": "seconds", "permissions": "read", "accessModifier": "public" }, "caseTemperature": { "type": "number", "description": "Temperature of the device casing", "units": "degreeCelsius", "permissions": "read", "accessModifier": "public" }, "powerConsumption": { "type": "number", "description": "Power consumption of the device", "units": "watts", "permissions": "read", "accessModifier": "public" }, "luxOutput": { "type": "number", "description": "lux output of LED measured at LED", "units": "lux", "permissions": "read", "accessModifier": "public" }, "ambientLux": { "type": "number", "description": "lux value of ambient", "units": "lux", "permissions": "read", "accessModifier": "public" }, "targetPowerState": { "type": "string", "enum": [ "ON", "OFF" ], "units": "dimensionless", "description": "If set to ON, turns ON the device.  Writeable parameter. Writeable only allowed for authorized apps", "permissions": "read-write", "accessModifier": "protected" }, "targetBrightnessLevel": { "type": "number", "description": "Number between 0 to 100 to indicate the percentage brightness level. Writeable only allowed for authorized apps", "units": "percent", "permissions": "read-write", "accessModifier": "protected" }, "targetControlPolicy": { "enum": [ "AUTO_TIMER", "AUTO_LUX", "MANUAL" ], "units": "dimensionless", "permissions": "read-write", "description": "Indicates which of the behaviours the device should implement. AUTO_TIMER is timer based, AUTO_LUX uses ambient light and MANUAL is controlled by app. Writeable only allowed for authorized apps", "accessModifier": "protected" }, "targetAutoTimerParams": { "type": "object", "permissions": "read-write", "properties": { "targetOnTime": { "type": "number", "description": "Indicates time of day in seconds from 12 midnight when device turns ON in AUTO_TIMER. Writeable only allowed for authorized apps", "units": "seconds", "accessModifier": "protected" }, "targetOffTime": { "type": "number", "description": "Indicates time of day in seconds from 12 midnight when device turns OFF in AUTO_TIMER. Writeable only allowed for authorized apps", "units": "seconds", "accessModifier": "protected" } } }, "targetAutoLuxParams": { "type": "object", "permissions": "read-write", "properties": { "targetOnLux": { "type": "number", "description": "Indicates ambient lux when device turns ON in AUTO_LUX. Writeable only allowed for authorized apps", "units": "lux", "accessModifier": "protected" }, "targetOffLux": { "type": "number", "description": "Indicates ambient lux when device turns OFF in AUTO_LUX. Writeable only allowed for authorized apps", "units": "lux", "accessModifier": "protected" } } } }, "additionalProperties": false }, "serialization_from_device": { "format": "protocol-buffers", "schema_ref": { "type": "proto 2", "mainMessageName": "sensor_values", "link": "https:\/\/raw.githubusercontent.com\/rbccps-iisc\/applications-streetlight\/master\/proto_stm\/txmsg\/sensed.proto" } }, "serialization_to_device": { "format": "protocol-buffers", "schema_ref": { "type": "proto 2", "mainMessageName": "targetConfigurations", "link": "https:\/\/raw.githubusercontent.com\/rbccps-iisc\/applications-streetlight\/master\/proto_stm\/rxmsg\/actuated.proto" } }, "id": "streetlight" }}'
API key¶
The API key is a globally unique identifier that is tied specifically to a device. It is non-temporal and used to identify one particular device only unless otherwise needed. (See <Group API key>) Once a device is registered, all further communications with the middleware from the device must use the API key.
API key can be requested in five security levels. They are as follows:
- Level 1: 64 bit
- Level 2: 128 bit
- Level 3: 256 bit
- Level 4: 512 bit
- Level 5: 1024 bit
Depending upon the criticality of the device in the infrastructure, the desired security level can be requested for. The default level in the absence of an explicit header mentioning it, will be 3 i.e. 256 bit security.
Success Response¶
Code:
200 OK
Response Body
{ "Registration": "success", "entityID": "streetlight", "apiKey": "MZW68JGDCbxFVTUndReIUTNIC5cEIS3Glho14XZfZhp", "subscriptionEndPoint": "https://smartcity.rbccps.org/api/{version}/follow?id=streetlight", "accessEndPoint": "https://smartcity.rbccps.org/api/{version}/db?id=streetlight", "publicationEndPoint": "https://smartcity.rbccps.org/api/{version}/publish?id=streetlight", "resourceAPIInfo": "https://rbccps-iisc.github.io" }
This API key will be used to uniquely identify this device. It is recommended that the obtained key is “burnt” into the device after registration.
Error Responses¶
Problem: If the provider key is wrong
{ "message": "Invalid authentication credentials" }
Solution: Use a valid provider API key (Refer <Konga>)
Problem: If the schema does not conform to any of the base schemas or if the catalogue server refuses to accept the schema in its present form
{ "Registration": "failure", "Reason": "uCat update Failure" }
Solution: Please revisit the link on how to construct meaningful schemas.
Problem: If the ID you are using has already been used previously
{ "Registration": "failure", "Reason": "ID already used. Please Use a Unique ID for Registration." }
Solution: Try using another ID for the device and register again
Problem: If the schema is not a valid JSON
{ "Registration": "Failure", "Reason": "JSON parse error" }
Solution: Use a tool like JSONLint to validate your JSON
Problem: If the security level used is outside the valid range
{ "Registration": "Failure", "Reason": "Security level must be between 1-5" }
Solution: Use a security level between 1-5


Connecting to Device
Hello phoneGap~
Capture Photo
Capture Editable Photo
From Photo Library
From Photo Album


Production data
This is where the line data will be placed
Previous data
previous production data
connect_error) echo "Error: Unexpected connection error. Please retry the operation."; else { $result = $conn->query("SELECT * FROM test"); if (($result !=0) && ($result ->num_rows > 0)) { $row = $result->fetch_assoc(); $A = $row['Product']; $B = $row['Quantity']; $C = $row['Build']; $D = $row['Cost']; echo "Products Produced:
"; echo "| Product | "; echo "Quantity | "; echo "Build | "; echo "Cost |
|---|---|---|---|
| ".$A['Product']." | "; echo "".$B['Quantity']." | "; echo "".$C['Build']." | "; echo "".$D['Cost']." |
| Part Number | Quanity | Elapsed Time |
|---|---|---|
| 1234567 | 125 | 1:00:22 |
| 7142234 | 44 | 1:33:25 |
| 7118991 | 87 | 1:23:25 |
| 6767891 | 77 | 0:33:25 |
| 5555555 | 2345 | 4:13:55 |
| 7654321 | 12 | 3:33:33 |


About the artist:
Eileen Myles is a poet who lives in New York and Marfa, TX. Their books include I Must Be Living Twice, selected poems and Chelsea Girls (a novel). Myles's many awards include a Guggenheim, the Clark prize for excellence in art writing, The Foundation for Contemporary Art and a Creative Capital grant. Their poems appear in Seasons 2 & 3 of the Emmy-winning show, Transparent.


Wanna build something insanely great?
We consult on iOS, Mac and web application development.
Let us help you on your way to success. We specialise in the following areas of software development.
Rapid mobile app prototyping
We are experts at combining web and native technologies for fast iterations on mobile apps.
Especially during the prototyping stage, fast iteration is key, since there are lots of user experience nuances and problems which can be cheap to address if you find them prior to committing to a design.
Let us help you leverage your web programming expertise, to rapidly build out native apps.
WebKit integration / in-app browser
WebKit lets your app leverage a decade of hard work from the open source community and major browser vendors. It allows your app to tap into vast amounts of content already available on the web, and minimises platform risk for new content for your software product.
It's also far from trivial to work with — WebKit integration is its own art with a sizable learning curve and subtle gotchas. It's only fair — it's the result of a decade's worth of real-world engineering.
Focus on the features that make your app unique. Leave us with nitty-gritty of making your app's in-app browser or other WebKit-based features.
RubyMotion workshops / coaching
We've been working on iOS since the beta came out in 2008. We've been working with RubyMotion since its first version, and with MacRuby before then. We've made a lot of the mistakes you'll make as you set out to build your RubyMotion app.
Over a couple of days, we help you build the basics of your RubyMotion app that runs on your iOS device. Need to ship to iOS fast? If you're a web shop, we'll get you up and running quickly on your delivery roadmap using our native + web prototyping strategy.
In-app stores
Can you just snap your fingers, and get a beautiful and engaging in-app store? Well, we've found things are not quite that easy. But we can help you in your long journey to a working, profitable in-app store.
We'll start with a base design and an up-to-date review of the tools to pick. Within a few days, you'll be able to prototype a store, collect payments using a payments API, and ship a UI for transactions right in your app.
Client-server integration
We'll share our experience in working with complex stacks of technology, and work with you for API design, data transformations, modeling and reuse maximisation.
Got servers based on Java, Ruby, Python, Go, or Node.js, and need to get a mobile app running fast? We're good at hooking them up with a variety of clients.


COVID info for {{ area|title }}
{{ area|title }} COVID related graphs
Covid Cumulative Deaths:
New Deaths by Date:
{{ area|title }} COVID related news
{% for article in articles.hits %}
{% endfor %}
{% endblock content %}
{% block javascript %}
{% endblock javascript %}


--- layout: post title: SQLitePCLRaw and open source sustainability date: 2023-01-05 12:00:00 keywords: front sqlite teaser: Reflections on why I maintain an open source library ---
SQLite is an extremely popular database library used by almost everything. It is written in C, so many languages require some sort of wrapper library.
SQLitePCLRaw is an open source library (which I maintain) that provides a low-level .NET wrapper for SQLite.
Hopefully we can agree that there is no open source library with a worse name than "SQLitePCLRaw", but there are historical reasons for the name and its 3 components:
"SQLite": for obvious reasons
"PCL": because it dates back to the days of Portable Class Libraries, which were the thing before .NET Standard.
"Raw": because of the low-level nature of this library.
SQLitePCLRaw is not user friendly. It is intended to be a low-level core upon
which other libraries can be built.
For example, it is used by the popular nuget package sqlite-net,
by Frank Krueger aka @praeclarum
.
And, perhaps most relevant here, SQLitePCLRaw is a dependency of Microsoft.Data.Sqlite, which is used for Entity Framework Core, developed and maintained by Microsoft.
SQLitePCLRaw is widely used.
The core package has about 125 million nuget downloads.
There are 7 copies of SQLitePCLRaw inside Visual Studio.
As far as I can tell, in one way or another, nearly all current .NET usage of SQLite is based on my work. (Edit: Am I correct here? I'm not sure about System.Data.SQLite.)
I've never been to Nebraska, but the classic xkcd comic hits home for me:
I have never received any financial compensation for maintaining SQLitePCLRaw.
It has been interesting to watch various other popular open source projects wrestle with sustainability issues, including IdentityServer, ImageSharp, etc. To be clear, I intend no criticism here of any decisions made by these projects, or of Microsoft's handling of such situations. I mention them simply because they have made me think.
I don't actually see much appeal in being the person who triggers the next wave of "drama" in the .NET ecosystem. But I'll confess that every year on April Fools Day, I consider posting an absurd and farcical announcement of a change to a proprietary license, just to see how much trouble I could stir up.
Anyway, I sometimes find myself reflecting on why I do maintain this library, and in the interest of transparency, I am sharing some of those thoughts here. I am making no announcements or changes. This is simply my attempt at an honest and completely objective discussion of the issues.
The situation with SQLitePCLRaw has been about the same for quite a few years. I must therefore conclude that the status quo "kinda works" for everyone involved.
Sometimes it seems like this isn't working. But it apparently is. Nobody is forcing me to maintain this package. Nobody is forcing people to use it. I mean, if this weren't basically okay, somebody would opt out, right?.
So this (kinda) works. But why? If the xkcd comic is relevant here, it is not usually interpreted to have healthy connotations.
I'll limit my conjecture about the motivation of others and speak for myself. Why do I do this? I suppose people do things because the positives outweigh the negatives.
In terms of positives, even though I get no money for this, I am aware that there are certain non-monetary benefits. I'll mention those in a bit.
But I suspect the real key for me is limiting the negatives (stress, time investment, etc).
The most important way that I limit the negatives is to carefully keep my commitments to a minimum. I usually describe this as an effort to "underpromise and overdeliver".
And when I say "underpromise", what I mean is that I promise basically nothing at all.
Somebody asked me recently if I had a written security policy for SQLitePCLRaw. I said no. And I have no intention of creating one.
Isn't that kind of unprofessional? Darn right. The word "professional" implies payment. As maintainer of this library, I have amateur status.
Nobody is entitled to my time or attention, even if I choose to give them some.
Helping you with a problem? Sure, I've got some time. Let's figure this out.
Promising to help you? This relationship is getting too serious.
I also have complete control over how and when I spend time working on this library. I tend to do my maintenance work in bursts. Some weeks this gig is full time. Some weeks I do nothing at all.
 Those boundaries are important.
And then there are the positives.
Despite the importance I place on boundaries, I do value providing service to the community. The satisfaction from that effort is an intangible benefit.
Microsoft takes a dependency on my library. Their choice is an expression of trust in me. My reputation in the community is enhanced.
I am a Microsoft MVP, and I assume my work on SQLitePCLRaw is part of the reason why I have been selected.
Finally, it is always nice to work on something people actually use. I am a serial product entrepreneur. I fail a lot. SQLitePCLRaw is a reminder that I do build something that is widely used, even if it is non-commercial.
My work on SQLitePCLRaw is connected to my role as one of the owners of SourceGear, and to some extent, these intangibles indirectly benefit my company as well. Nonetheless, I am accountable to my business partner and my coworkers. Whether the situation makes sense for SourceGear is an important and ongoing consideration.
(Some might observe that most of "my" 125 M downloads came through Microsoft. Just how much right do I have to brag about them? I will happily concede that I am like a basketball player who can't get his own shot, but I score 30 pts a game because the point guard keeps feeding me assists.)
So, what if I wanted something better than the status quo? How might I change things to get fewer negatives or more positives? There are a few ideas that keep coming up for consideration.
Some would look at my situation and suggest that I try to recruit other maintainers to share the load. But I tend to think that would make things harder, not easier.
Joining the .NET Foundation is another idea in the same bucket. I support the Foundation and its goals, and I very much appreciate the efforts of those who serve there. But in my case, I think joining would likely increase the time I have to "work and play well with others".
I can see how users of this library might prefer that it had more than one maintainer or Foundation membership, but nobody has pushed me in that direction, and working on this as a solo endeavor is just easier.
"Never let it be said I didn't do the least I could do."
-- Hawkeye Pierce, M*A*S*H
There are some good possibilities here. In fact, I've
taken measured steps in this direction by placing
lower priority on things like support for packages.config
.
Sometimes I wonder when I can discontinue support
for .NET Framework or Mono.
At some point I might stop providing builds of SQLCipher. I ended up accepting responsibility for that chore somewhat accidentally. In fact, my regrets there are part of the "lessons learned" that taught me to be more careful about making commitments.
I tend to think that most of the ideas in this bucket just wouldn't work.
If there was a way to make truckloads of cash from this project, I would probably do it. I just don't think there is. If I changed the license to something non-open-source, it would probably backfire. If I tried charging for support or special builds or features, most people wouldn't pay.
Part of what's going on here is that I'm only interested in money if it's significant.
Sometimes people offer to pay for an hour of my time to sort out their problem. I appreciate that, but frankly, it's not worth the trouble. Our company isn't well configured to deal with single-hour engagements. Keep the money, I'll probably try to help you anyway.
This is the same reason I haven't tried GitHub Sponsors. That model seems like it could end up being the worst of both worlds, increasing my obligations, but not for enough money to make a difference. I am quite willing to be convinced I am wrong about this.
I generally prefer to keep my amateur status unless there is real money on the table.
Some would say that Microsoft should be compensating me for maintaining SQLitePCLRaw.
And to be clear, they are welcome to do so. I've told various folks at Microsoft that if they ever want more structure or assurances, just let me know. After all, SourceGear is (at least partially) in the business of selling my time and attention.
But nobody at Microsoft has ever expressed an interest in that, and I assume there are good reasons why.
Yes, if I didn't maintain this library, then somebody at Microsoft would probably have to do it, and that person would need to be paid, which means it comes out of somebody's budget.
But the other side of the coin is that dealing with budget issues might be simpler for them than dealing with an external dependency. I'm applying some conjecture here, but I think Microsoft's structure probably makes it hard to deal with a situation like mine.
For my part, my working relationship with the EF Core team is extremely positive. That's the team with whom I coordinate most closely, and they're great folks.
But on their side, I bet there is at least some awkwardness that I can't see. For example, I speculate that they get complaints from enterprise customers about their use of my library.
Similarly, Microsoft doesn't control my time, and that probably makes their project planning more difficult sometimes. Whenever they want something about SQLitePCLRaw to change, they have to ask me instead of assigning me tasks.
All I'm saying here is if we assume that my maintenance of this library is of some benefit to Microsoft (and I think it is), it is also reasonable to assume that it presents them with certain challenges as well. I tend to believe that there are interesting ways that Microsoft could use financial resources to improve the health of the .NET ecosystem, but I don't want to approach that issue from a perspective of entitlement or ignorance.
One final thought here: People often criticize Microsoft for (what they see as) a need to control everything. Their dependency on my library is a counter-example of this claim. Let's give them some credit for that.
Looking at all these possible changes I might try to make, it's just not clear that any of them would make things better, and some would make things worse.
In general, that's another reason people accept their status quo -- when they believe they are in the best (or least-bad) available option.
People who choose to take a dependency on SQLitePCLRaw are doing so voluntarily. Why would they do that when I'm making so few promises?
A dependency can be a terrible thing. In my own work, I approach every potential dependency with a degree of cynicism that is downright unfair. Every library I meet is guilty until proven innocent.
And there are risks in play when depending on a library that is maintained by one person. What if I get hit by a bus?
In the sections above, I have enumerated several ways that I am difficult and uncooperative. I mean, whether your product is free or paid, folks usually work hard to attract users, whereas I have emphasized the boundaries I use to protect myself from those users. This is not a typical recipe for a project that lots of people actually want to adopt. And yet they do. Why?
I assume the reason is that even though I promise nothing, in practice, I tend to do a little better than that.
I try to "underpromise and overdeliver".
I spend a fair amount of time helping people work through problems using SQLite.
I try to fix bugs promptly. If somebody asks me for a feature, I do at least give it serious consideration, and I usually implement the stuff that makes sense.
I coordinate with the #dotnet team each time they have a release cycle.
Obviously, if I did not overdeliver, people would stop using this library. And I would lose my intangible benefits.
There is a symmetry here. Just as the benefits I receive are intangible (not monetary), the benefits I provide are intangible (not promised).
Apparently a lot of people using SQLitePCLRaw are okay with that. So far, I am too.


DCC Network
AS207716
Fast. Easy. Reliable. Pick any three.
Excellent worldwide connectivity.
Robust networking services.
-
The larger the network, the better performance and security we can deliver to our customers.
-
Each location improves the performance, security and reliability of millions of Internet properties, as we expand our surface area to fight growing attacks and serve web requests even closer to the Internet user.


Spicy jalapeno bacon ipsum dolor amet sausage kielbasa spare ribs venison ribeye ground round bresaola jerky turducken picanha. Ground round pork tenderloin pastrami. Bresaola ball tip pork drumstick, strip steak meatball andouille pastrami salami alcatra short loin. Meatball meatloaf tail pork loin.  Short ribs filet mignon pastrami bresaola turducken tongue turkey burgdoggen pork flank. Prosciutto meatloaf pastrami corned beef capicola fatback leberkas chuck, cow ball tip chicken.
Spicy jalapeno bacon ipsum dolor amet sausage kielbasa spare ribs venison ribeye ground round bresaola jerky turducken picanha. Ground round pork tenderloin pastrami. Bresaola ball tip pork drumstick, strip steak meatball andouille pastrami salami alcatra short loin. Meatball meatloaf tail pork loin.  Short ribs filet mignon pastrami bresaola turducken tongue turkey burgdoggen pork flank. Prosciutto meatloaf pastrami corned beef capicola fatback leberkas chuck, cow ball tip chicken.


Status
All
New
Solved
Search
Add Issue
Id
Name
Status
Priority
Creation Date
Author
1
TomEE
New
High
12-01-2012
Teo
Edit
Delete
2
IntelliJ
Solved
Low
12-01-2013
Teo
Edit
Delete
3
CSS
New
Medium
12-01-2013
Teo
Edit
Delete


Run some code first.
Settings
Tab Type
Tabs
Spaces
Tab/Indent Block Size
2
4
6
8
"Smart" Indentation
On
Off
Line Wrapping
Off
On
Font Size (px)
10
12
14
16
18
File
Run
Vars
Settings
Help
Raw
Editor
Scene:
New...
Delete
Save
Load
Export
Export Scenes
>


CameraFlash QML Type
An interface for flash related camera settings. More...
| Import Statement: | import QtMultimedia 5.8 |
Properties
- mode : enumeration
- ready : bool
- supportedModes : list<FlashMode>
Signals
- flashModeChanged(int)
- flashReady(bool)
Detailed Description
This type allows you to operate the camera flash hardware and control the flash mode used. Not all cameras have flash hardware (and in some cases it is shared with the torch hardware).
It should not be constructed separately, instead the flash
property of a Camera should be used.
Camera { id: camera exposure.exposureCompensation: -1.0 flash.mode: Camera.FlashRedEyeReduction }
Property Documentation
This property holds the camera flash mode.
The mode can be one of the following:
| Value | Description |
|---|---|
| Camera.FlashOff | Flash is Off. |
| Camera.FlashOn | Flash is On. |
| Camera.FlashAuto | Automatic flash. |
| Camera.FlashRedEyeReduction | Red eye reduction flash. |
| Camera.FlashFill | Use flash to fillin shadows. |
| Camera.FlashTorch | Constant light source. If supported, torch can be enabled without loading the camera. |
| Camera.FlashVideoLight | Constant light source, useful for video capture. The light is turned on only while the camera is active. |
| Camera.FlashSlowSyncFrontCurtain | Use the flash in conjunction with a slow shutter speed. This mode allows better exposure of distant objects and/or motion blur effect. |
| Camera.FlashSlowSyncRearCurtain | The similar mode to FlashSlowSyncFrontCurtain but flash is fired at the end of exposure. |
| Camera.FlashManual | Flash power is manually set. |
This property holds the supported flash modes of the camera. If the list only contains Camera.FlashOff, no flash is supported.
Camera { id: camera flash { onSupportedModesChanged { if (flash.supportedModes.length == 1) { // no flash supported } else { // some flash is supported } } } }
This QML property was introduced in Qt 5.9.
See also mode.
Signal Documentation
This signal is emitted when the flashMode
property is changed. The corresponding handler is onFlashModeChanged
.
This signal is emitted when QCameraExposure indicates that the flash is ready to use. The corresponding handler is onFlashReadyChanged
.


This script is able to fill in the label's text gradually, giving the effect of someone typing or fading in the content over time.
More...
|
| void | ResetToBeginning () |
| | Reset the typewriter effect to the beginning of the label. More...
|
| |
| void | Finish () |
| | Finish the typewriter operation and show all the text right away. More...
|
| |
|
| bool | isActive [get] |
| | Whether the typewriter effect is currently active or not. More...
|
| |
This script is able to fill in the label's text gradually, giving the effect of someone typing or fading in the content over time.
| void TypewriterEffect.Finish |
( |
| ) |
|
Finish the typewriter operation and show all the text right away.
| void TypewriterEffect.ResetToBeginning |
( |
| ) |
|
Reset the typewriter effect to the beginning of the label.
| int TypewriterEffect.charsPerSecond = 20 |
How many characters will be printed per second.
| float TypewriterEffect.delayOnNewLine = 0f |
How long to pause when a new line character is encountered (in seconds).
| float TypewriterEffect.delayOnPeriod = 0f |
How long to pause when a period is encountered (in seconds).
| float TypewriterEffect.fadeInTime = 0f |
How long it takes for each character to fade in.
| bool TypewriterEffect.keepFullDimensions = false |
If set to 'true', the label's dimensions will be that of a fully faded-in content.
Event delegate triggered when the typewriter effect finishes.
If a scroll view is specified, its UpdatePosition() function will be called every time the text is updated.
| bool TypewriterEffect.isActive |
|
get |
Whether the typewriter effect is currently active or not.
The documentation for this class was generated from the following file:


I'm in the IT industry for more than 15 years. I built up my career to become a System/Network administrator. However, I have begun my journey to become a Software Developer in 2020. I finished my ICT course Level 7 in January 2021 and I am looking forward to an opportunity to develop my knowledge working as a Junior Software Developer.


---
layout: default
title: BitByteBit
---
{% include header.html %}
{{page.title}}
Tutorials about a variety of technologies. Click on the Tutorials link on the left side of the page to see a list of all tutorials sorted by date
posted. Click on the Tags link on the left side of the page to see a list of all categories for the tutorials.
{% include footer.html %}


}
User classes are mapped to:
Entity
ValueObject
Value
Java types are mapped to:
Primitive
Value
(ex BigDecimal
)Array, Set, List, Map
Karma
Spock, Groovy, Pico, Gson, Gradle, MongoDB
def "should append newObjects to diff"() {
given:
def left = buildLiveGraph(dummyUser().withName("1")
.build())
def right = buildLiveGraph(dummyUser().withName("1").withDetails(5)
.build())
when:
def changes = new NewObjectAppender()
.getChangeSet(new GraphPair(left, right))
then:
changes.size() == 1
assertThat(changes[0]).isNewObject()
}
| Paweł Szymczyk | javers.org | @p_szymczyk |
| Bartosz Walacik | javers.org | @BartoszWalacik |


9 RDF Integration with Property Graph Data Stored in Oracle Database
The property graph data model is supported in Oracle Spatial and Graph. Oracle Spatial and Graph provides built-in support for RDF views of property graph data stored in Oracle Database.
Topics:
- About RDF Integration with Property Graph Data
The property graph data model is simpler than the RDF data model in that it has no concept of global resource identification (that is, no URIs) or formal semantics and entailment. - R2RML Mapping for the Property Graph Relational Schema
You can use the built-in R2RML mapping to construct an RDF view from the property graph relational schema. - PL/SQL API for Creating and Maintaining Property Graph RDF Views
Subprograms in the SEM_APIS package simplify the creation and maintenance of property graph RDF views. - Sample RDF Workflow with Property Graph Data
This topic presents a sample RDF workflow with property graph data. - Special Considerations When Using Property Graph RDF Views
The following special considerations apply when using property graph RDF views.
9.1 About RDF Integration with Property Graph Data
Oracle Spatial and Graph provides built-in support for RDF views of property graph data stored in Oracle Database. These RDF views serve as an integration point between property graph data and RDF data. RDF views of property graph data behave the same way as other RDF views; you can run SPARQL queries against them and materialize them as native RDF models. Support for RDF views of property graphs is provided through the following components:
-
A built-in R2RML mapping for the relational schema used to store property graph data [ref to schema].
-
A PL/SQL API for creating and maintaining RDF views using the built-in R2RML mapping for property graph data.
There are two main considerations when representing property graph data in RDF:
-
How to generate syntactically valid RDF terms (URIs, literals, and so on) from property graph identifiers and values
-
How to represent edge properties (key-value pairs for edges)
Oracle Spatial and Graph uses specific prefixes to generate URIs from property graph identifiers, and uses XML Schema typed literals for property values. Named graphs are used to model edge properties.
The example shown in the following figure illustrates a property graph to RDF mapping. Note that edges in the property graph model become an RDF quad, where the predicate is the edge label and the named graph is a URI constructed from the edge identifier. Edge properties are then modeled as RDF quads within the named graph for the edge. As an illustration, the Trig serialization for RDF graph in the following figure is as follows:
@PREFIX edge: <http://xmlns.oracle.com/pg/edge/> .
@PREFIX vertex: <http://xmlns.oracle.com/pg/vertex/> .
@PREFIX ep: <http://xmlns.oracle.com/pg/property/edge/> .
@PREFIX vp: <http://xmlns.oracle.com/pg/property/vertex/> .
@PREFIX label: <http://xmlns.oracle.com/pg/property/edge/label/> .
vertex:v1 vp:name "John";
vp:age 40 .
vertex:v2 vp:name "Jill"
vp:age 35 .
vertex:v3 vp:name "Frank";
vp:age 23 .
vertex:v4 vp:name "Susan";
vp:age 50 .
edge:e5 { vertex:v1 label:friend_of vertex:v2 .
edge:e5 ep:weight 1.0 . }
edge:e6 { vertex:v1 label:friend_of vertex:v3 .
edge:e6 ep:weight 2.0 . }
edge:e7 { vertex:v2 label:friend_of vertex:v3 .
edge:e7 ep:weight 1.5 . }
edge:e8 { vertex:v2 label:friend_of vertex:v4 .
edge:e8 ep:weight 1.0 . }
Figure 9-1 Equivalent Property Graph and RDF Representations of the Same Graph
Description of "Figure 9-1 Equivalent Property Graph and RDF Representations of the Same Graph"
In the preceding figure, the property graph model at the top is simpler than the RDF model at the bottom. Both models show four vertices (nodes) representing four people (John, Jill, Frank, Susan), but the property graph model shows simple boxes for name and label information. The property graph model shows many edges with properties represented using the following prefixes:
-
PREFIX edge: <http://xminx,oracle.com/pg/edge/>
-
PREFIX vertex: <http://xminx,oracle.com/pg/vertex/>
-
PREFIX ep: <http://xminx,oracle.com/pg/property/edge/>
-
PREFIX vp http://xminx,oracle.com/pg/property/vertex/>
-
PREFIX label: <http://xminx,oracle.com/pg/property/edge/label/>
9.2 R2RML Mapping for the Property Graph Relational Schema
You can use the built-in R2RML mapping to construct an RDF view from the property graph relational schema.
Several helper views are created to simplify the R2RML mapping and to convert values from NVARCHAR to VARCHAR. These views are shown in the following output (assuming RDF view model name M1
, property graph name G1
, and user name USER
). Note that substring length for edge label and property name can be customized, and the M1$GT view will select directly from the G1GT$ table if you indicate that this table is populated (with options=>'GT_TABLE=T'
).
-- 5 VT$ views --
-- Varchar --
create or replace view "USER"."M1$V1" as
select
"VID",
to_char(substr("K",1,200)) KC,
"T",
to_char("V") VC,
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1VT$"
where T=1;
-- Number --
create or replace view "USER"."M1$V2" as
select
"VID",
to_char(substr("K",1,200)) KC,
"T",
"VN",
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1VT$"
where T IN (2,3,4);
-- DateTime --
create or replace view "USER"."M1$V3" as
select
"VID",
to_char(substr("K",1,200)) KC,
"T",
"VT",
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1VT$"
where T=5;
-- Boolean --
create or replace view "USER"."M1$V4" as
select
"VID",
to_char(substr("K",1,200)) KC,
"T",
DECODE("V",'y',to_char('true'),
'Y',to_char('true'),
'n',to_char('false'),
'N',to_char('false')) VB,
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1VT$"
where T=6;
-- ID View –
create or replace view "USER"."M1$VT" as
select DISTINCT
"VID"
from "USER"."G1VT$";
-- 4 GE$ Views --
-- Varchar --
create or replace view "USER"."M1$G1" as
select
"EID",
"SVID",
"DVID",
"EL",
to_char(substr("K",1,200)) KC,
"T",
to_char("V") VC,
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1GE$"
where T=1;
-- Number --
create or replace view "USER"."M1$G2" as
select
"EID",
"SVID",
"DVID",
"EL",
to_char(substr("K",1,200)) KC,
"T",
"VN",
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1GE$"
where T IN (2,3,4);
-- DateTime --
create or replace view "USER"."M1$G3" as
select
"EID",
"SVID",
"DVID",
"EL",
to_char(substr("K",1,200)) KC,
"T",
"VT",
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1GE$"
where T=5;
-- Boolean --
create or replace view "USER"."M1$G4" as
select
"EID",
"SVID",
"DVID",
"EL",
to_char(substr("K",1,200)) KC,
"T",
DECODE("V",'y',to_char('true'),
'Y',to_char('true'),
'n',to_char('false'),
'N',to_char('false')) VB,
"SL",
"VTS",
"VTE",
"FE"
from "USER"."G1GE$"
where T=6;
-- GT$ View –
create or replace view "USER"."M1$GT" as
select DISTINCT
"EID",
"SVID",
"DVID",
to_char(substr("EL",1,200)) LC
from "USER"."G1GE$";
The built-in R2RML mapping that uses these views is shown in the following output in turtle format.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix rr: <http://www.w3.org/ns/r2rml#>. @prefix xsd: <http://www.w3.org/2001/XMLSchema#>. @prefix pg: <http://xmlns.oracle.com/pg/>. @prefix pgvtpr: <http://xmlns.oracle.com/pg/property/vertex/>. @prefix pgedpr: <http://xmlns.oracle.com/pg/property/edge/>. # Vertex Property views =============================================== pg:TMap_VERTEXPR_VC_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$V1\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{VID}" ; rr:class pg:VERTEX ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/vertex/{KC}" ] ; rr:objectMap [ rr:column "VC" ] ] . pg:TMap_VERTEXPR_VN_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$V2\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{VID}" ; rr:class pg:VERTEX ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/vertex/{KC}" ] ; rr:objectMap [ rr:column "VN" ; rr:datatype xsd:decimal ] ] . pg:TMap_VERTEXPR_VT_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$V3\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{VID}" ; rr:class pg:VERTEX ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/vertex/{KC}" ] ; rr:objectMap [ rr:column "VT" ; rr:datatype xsd:dateTime ] ] . pg:TMap_VERTEXPR_VB_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$V4\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{VID}" ; rr:class pg:VERTEX ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/vertex/{KC}" ] ; rr:objectMap [ rr:column "VB" ; rr:datatype xsd:boolean ] ] . # VERTEX ID view ============================================== pg:TMap_VERTEXID_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$VT\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{VID}" ; rr:class pg:VERTEX ] ; rr:predicateObjectMap [ rr:predicate pgvtpr:id ; rr:objectMap [ rr:column "VID" ] ] . # Edge Property views =============================================== pg:TMap_EDGEPR_VC_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$G1\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ; rr:graphMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ] ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/edge/{KC}" ] ; rr:objectMap [ rr:column "VC" ] ] . pg:TMap_EDGEPR_VN_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$G2\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ; rr:graphMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ] ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/edge/{KC}" ] ; rr:objectMap [ rr:column "VN" ; rr:datatype xsd:decimal ] ] . pg:TMap_EDGEPR_VT_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$G3\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ; rr:graphMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ] ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/edge/{KC}" ] ; rr:objectMap [ rr:column "VT" ; rr:datatype xsd:dateTime ] ] . pg:TMap_EDGEPR_VB_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$G4\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ; rr:graphMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ] ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/property/edge/{KC}" ] ; rr:objectMap [ rr:column "VB" ; rr:datatype xsd:boolean ] ] . # Edge IDLABEL views ========================================== pg:TMap_EDGEIDLABEL_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$GT\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ; rr:class pg:EDGE ; rr:graphMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ] ] ; rr:predicateObjectMap [ rr:predicate pgedpr:id ; rr:objectMap [ rr:column "EID" ] ] ; rr:predicateObjectMap [ rr:predicate pgedpr:label ; rr:objectMap [ rr:column "LC" ] ] . # Edge views =================================================== pg:TMap_EDGE_TAB rr:logicalTable [ rr:tableName "\"USER\".\"M1$GT\"" ] ; rr:subjectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{SVID}" ; rr:graphMap [ rr:template "http://xmlns.oracle.com/pg/edge/e{EID}" ] ] ; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://xmlns.oracle.com/pg/label/{LC}" ] ; rr:objectMap [ rr:template "http://xmlns.oracle.com/pg/vertex/v{DVID}" ; rr:termType rr:IRI ] ] .
9.3 PL/SQL API for Creating and Maintaining Property Graph RDF Views
Subprograms in the SEM_APIS package simplify the creation and maintenance of property graph RDF views.
Reference and usage information for these subprograms is included in the SEM_APIS Package Subprograms chapter.
To create an property graph view from an existing model, use the SEM_APIS.CREATE_PG_RDFVIEW procedure.
To drop a property graph RDF view, use the SEM_APIS.DROP_PG_RDFVIEW.
Indexes should be created on the property graph tables for improved performance of RDF view queries. You can create any number of index schemes on these tables, but the SEM_APIS.BUILD_PG_RDFVIEW_INDEXESprocedure is provided for convenience. (To drop all indexes created by that procedure, you can use the SEM_APIS.DROP_PG_RDFVIEW_INDEXES procedure.)
To return the VALUE_ID value for the canonical version of an RDF term (or NULL if the term does not exist), you can use the SEM_APIS.RES2VID function.
9.4 Sample RDF Workflow with Property Graph Data
This topic presents a sample RDF workflow with property graph data.
The first example creates an RDF view named M1 from a property graph named G1 stored in Oracle Database, and creates indexes on that view. The other examples run SPARQL queries using the SEM_MATCH table function.
Example 9-1 Creating the RDF View and Indexes
-- Create a property graph RDF view
EXECUTE sem_apis.create_pg_rdfview('M1','G1');
-- Create indexes
EXECUTE sem_apis.build_pg_rdfview_indexes('G1');
Example 9-2 Find the Names and Ages of All of John’s Friends
SELECT name$rdfterm, age$rdfterm
FROM TABLE(SEM_MATCH(
'PREFIX edge: <http://xmlns.oracle.com/pg/edge/>
PREFIX vertex: <http://xmlns.oracle.com/pg/vertex/>
PREFIX ep: <http://xmlns.oracle.com/pg/property/edge/>
PREFIX vp: <http://xmlns.oracle.com/pg/property/vertex/>
PREFIX label: <http://xmlns.oracle.com/pg/property/edge/label/>
SELECT ?name ?age
WHERE {
?v1 vp:name "John" .
?v1 label:friend_of ?v2 .
?v2 vp:name ?name .
?v2 vp:age ?age . }'
, sem_models('M1')
, null, null, null, null
, ' PLUS_RDFT=VC '));
Example 9-3 Find the Names and Ages of All of John’s Good Friends (Weight > 1.5)
SELECT name$rdfterm, age$rdfterm
FROM TABLE(SEM_MATCH(
'PREFIX edge: <http://xmlns.oracle.com/pg/edge/>
PREFIX vertex: <http://xmlns.oracle.com/pg/vertex/>
PREFIX ep: <http://xmlns.oracle.com/pg/property/edge/>
PREFIX vp: <http://xmlns.oracle.com/pg/property/vertex/>
PREFIX label: <http://xmlns.oracle.com/pg/property/edge/label/>
SELECT ?name ?age
WHERE {
?v1 vp:name "John" .
GRAPH ?e {
?v1 label:friend_of ?v2 .
?e ep:weight ?w .
FILTER (?w > 1.5)
}
?v2 vp:name ?name .
?v2 vp:age ?age . }'
, sem_models('M1')
, null, null, null, null
, ' PLUS_RDFT=VC '));
Example 9-4 Find John’s Best Friend (Highest Edge Weight)
SELECT name$rdfterm
FROM TABLE(SEM_MATCH(
'PREFIX edge: <http://xmlns.oracle.com/pg/edge/>
PREFIX vertex: <http://xmlns.oracle.com/pg/vertex/>
PREFIX ep: <http://xmlns.oracle.com/pg/property/edge/>
PREFIX vp: <http://xmlns.oracle.com/pg/property/vertex/>
PREFIX label: <http://xmlns.oracle.com/pg/property/edge/label/>
SELECT ?name
WHERE {
?v1 vp:name "John" .
GRAPH ?e {
?v1 label:friend_of ?v2 .
?e ep:weight ?w .
}
?v2 vp:name ?name . }
ORDER BY DESC(?w)
LIMIT 1'
, sem_models('M1')
, null, null, null, null
, ' PLUS_RDFT=VC '));
9.5 Special Considerations When Using Property Graph RDF Views
The following special considerations apply when using property graph RDF views.
-
Vertex and edge property values greater than 4000 bytes in length are not supported.
-
Edge label values will be replaced with the IRI-safe form (as described in the W3C R2RML specification) when generating edge label URIs.
-
Vertex and edge property names will be replaced with the IRI-safe form (as described in the W3C R2RML specification) when generating vertex and edge property name URIs.
-
Special characters and non-ASCII characters in string-valued vertex and edge property values will be escaped (as described in the per the W3C N-Triples specification).


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 116395maths/79663coesortforfinset.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/116395-maths/topic/coe_sort.20for.20finset.html


{{{url}}}
Clear your scene
Copy site to clipboard
Paste site from clipboard
Open the locally saved scene
Save this site locally
by @{{{user}}}
Your home space
Global shared world
Create a new shared space


| ddmatrix-constructors {pbdDMAT} | R Documentation |
Methods for simple construction of distributed matrices.
ddmatrix(data, ...) ## S4 method for signature 'ddmatrix' ddmatrix(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ## S4 method for signature 'missing' ddmatrix(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ## S4 method for signature 'vector' ddmatrix(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ## S4 method for signature 'matrix' ddmatrix(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ## S4 method for signature 'character' ddmatrix(data, nrow = 1, ncol = 1, byrow = FALSE, ..., min = 0, max = 1, mean = 0, sd = 1, rate = 1, shape, scale = 1, bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ddmatrix.local(data, ...) ## S4 method for signature 'missing' ddmatrix.local(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$BLDIM) ## S4 method for signature 'vector' ddmatrix.local(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ## S4 method for signature 'matrix' ddmatrix.local(data, nrow = 1, ncol = 1, byrow = FALSE, ..., bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT) ## S4 method for signature 'character' ddmatrix.local(data, nrow = 1, ncol = 1, byrow = FALSE, ..., min = 0, max = 1, mean = 0, sd = 1, rate = 1, shape, scale = 1, bldim = .pbd_env$BLDIM, ICTXT = .pbd_env$ICTXT)
data |
optional data vector. |
... |
Extra arguments |
nrow |
number of rows. Global rows for |
ncol |
number of columns. Global columns for |
byrow |
logical. If |
bldim |
blocking dimension. |
ICTXT |
BLACS context number. |
min, max |
Min and max values for random uniform generation. |
mean, sd |
Mean and standard deviation for random normal generation. |
rate |
Rate for random exponential generation. |
shape, scale |
Shape and scale parameters for random weibull generation. |
These methods are simplified methods of creating distributed matrices,
including random ones. These methods involve only local computations, i.e.,
no communication is performed in the construction of a ddmatrix
using
these methods (in contrast to using as.ddmatrix()
et al).
For non-character inputs, the methods attempt to mimic R as closely as
possible. So ddmatrix(1:3, 5, 7)
produces the distributed analogue
of matrix(1:3, 5, 7)
.
For character inputs, you may also specify additional parametric family information.
The functions predicated with .local
generate data with a fixed local
dimension, i.e., each processor gets an identical amount of data. Likewise,
the remaining functions generate a fixed global amount of data, and each
processor may or may not have an identical amount of local data.
To ensure good random number generation, you should only consider using the
character methods with the comm.set.seed()
function from pbdMPI which
uses the method of L'Ecuyer via the rlecuyer package.
Returns a distributed matrix.
## Not run: # Save code in a file "demo.r" and run with 2 processors by # > mpiexec -np 2 Rscript demo.r library(pbdDMAT, quiet = TRUE) init.grid() dx <- ddmatrix(data="rnorm", nrow=5, ncol=6, mean=10, sd=100, bldim=2) dx dy <- ddmatrix(data=1:4, nrow=7, ncol=5, bldim=2) dy finalize() ## End(Not run)


Input a number in the box below and this application will calculate whether an amount of consecutive numbers based on that number add up to a multiple of that original number
Input a number in the box below and this application will calculate whether an amount of consecutive numbers based on that number add up to a multiple of that original number
Using 3 as the starting number
An array of consecutive numbers could be 1, 2, 3 or 7, 8, 9 or 84, 85, 86
If these numbers are added up are they a multiple of the original number of 3?
This application will work this out // futher explanation within the javaScript file


Status
Subject
Original author
Last updated
<[getHumanReadableStatus(thread.status)]>
<[thread.subject | truncate:40]>
<[thread.originalAuthorName]>
<[getLocaleAbbreviatedDatetimeString(thread.lastUpdated)]>


×
Periodicity
Period Type:
Yearly
Monthly
Start Year
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
End Year
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
Start Month
Jan
Feb
March
April
May
June
Jul
August
Sep
Oct
Nov
Dec
End Month
Jan
Feb
March
April
May
June
Jul
August
Sep
Oct
Nov
Dec
Indicator
Value
Average
None
Filter Levels
Indicator Group
max
List 1
List 2
Indicator
max
List 1
List 2
Facility
Count
Average
Use as filter
None
Filter Levels
Facility Type
max
List 1
List 2
Facility Keph Level
max
List 1
List 2
Commodity
Count
Average
None
Human Resource
Count
Average
None
Filter Levels
Cadre Groups
max
Cascade to cadres
Do not Cascade to cadres
List 1
List 2
Cadre
max
List 1
List 2
Locality
Data
Indicator
Select indicator group
Service delivery
UHC
Human workforce
Health infrastructure
Health products
Periods
period
Organisation units
Org units
Update Data
Table
GIS
Pivot
Loading
Loading map…


NVL Expression
An NVL expression is identical to a COALESCE expression. NVL and COALESCE are synonyms.
Syntax
NVL | COALESCE ( expression, expression, ... )
An NVL or COALESCE expression returns the value of the first expression in the list that is not null. If all expressions are null, the result is null. When a non-null value is found, the remaining expressions in the list are not evaluated.
This type of expression is useful when you want to return a backup value for something when the preferred value is missing or null. For example, a query might return one of three phone numbers (cell, home, or work, in that order), whichever is found first in the table (not null).
Examples
Create a table with START_DATE and END_DATE columns, insert some rows that include null values, then apply an NVL expression to the two columns.
create table datetable (start_date date, end_date date);
insert into datetable values ('2008-06-01','2008-12-31'); insert into datetable values (null,'2008-12-31'); insert into datetable values ('2008-12-31',null);
select nvl(start_date, end_date) from datetable order by 1; coalesce ------------ 2008-06-01 2008-12-31 2008-12-31
The default column name for an NVL expression is COALESCE. The following query would return the same results:
select coalesce(start_date, end_date) from datetable order by 1;
If you expect a query to return null values for certain functions or columns, you
can use an NVL expression to replace the nulls with some other value. For example,
aggregate functions, such as SUM, return null values instead of zeroes when they have
no rows to evaluate. You can use an NVL expression to replace these null values with
0.0
:
select nvl(sum(sales), 0.0) as sumresult, ...


CoolGroup Newsletter Generator Version 3:
The Return Of The GUI
Sort Names?
Add Announcement?
Add Comic?
Software Copyright © Lizzy Hatfield 2018


Closable List Items
Click on the "x" symbol to the right of the list item to close/hide it.
Adele
Agnes
×
Billy
×
Bob
×
Calvin
×
Christina
×
Cindy


| Command | Format (with some examples) | Alternate Formats | Description |
|---|---|---|---|
| Add | add NAME [r/REMARKS] [s/STARTDATE] [s/ENDDATE] [l/LOCATION] [t/TAG]...
Example: add Meet John s/tomorrow 3pm e/tomorrow 5pm r/regarding project l/canteen t/work |
- | Adds a task to KIT with specifications from the user. |
| Clear | clear | Clears all tasks. | |
| Delete | delete INDEX
Example: delete 1 |
Deletes the specified task. | |
| Done | done INDEX
Example: done 1 |
d INDEX | Marks the specified task as done. |
| Edit | edit INDEX [NAME] [r/REMARKS] [s/STARTDATE] [e/ENDDATE] [l/LOCATION] [t/TAG]...
Example: edit 1 s/Friday morning e/friday afternoon |
Edits an existing task. | |
| Exit | exit | Exits the program. | |
| Find | find KEYWORD...and/or DATE
Example: find meeting |
f KEYWORD...and/or DATE | Finds tasks that contains all of the keywords. Finds tasks with the queried dates along with all the keywords if dates are given. |
| Find Exact | findexact KEYWORD...
Example: findexact meet john |
fexact KEYWORD..., finde KEYWORD..., fe KEYWORD... |
Finds tasks that contains all keywords. |
| Import Events from Google Calendar | getgoogle | gg | Get upcoming events from your Google Calendar and add them as tasks. |
| Help | help [COMMANDNAME]
Example: help add man edit |
h, man, manual | If COMMANDNAME not entered, brings up user guide in another window.
If COMMANDNAME entered, shows help message for that command only. |
| Help Format | helpformat | helpf, summary, hf, man, manual | Shows a quick summary of the command formats |
| List | list | ls, l | Lists all tasks in KIT. |
| List Done | list done | ls done, l done | Lists all completed tasks. |
| List Not Done | list notdone | list undone, ls notdone, ls undone, l notdone, l undone | Lists all ongoing tasks. |
| List Tag | list tag TAGNAME
Example: list tag work |
ls tag TAGNAME, l tag TAGNAME | Lists all tasks of a certain tag. |
| Load | load PATHNAME
Example: load C:/Users/User/Documents/kit.xml |
Loads data from the specified file. | |
| Post Event to Google Calendar | postgoogle [INDEX]
Example: pg 1 |
pg [INDEX] | Posts the specified task to your Google Calendar.
Posts all task if INDEX no specified. |
| Redo | Redo | Reverts the last undo. | |
| Save | save PATHNAME
Example: save C:/Users/User/Documents/kit.xml |
Saves the file to a specified location. | |
| Undo | undo | uhoh | Undo the previous command. |
| Undone | undone INDEX
Example: undone 1 |
notdone INDEX, ud INDEX, nd INDEX | Marks the specified task as not done. |


{{ post.title }}
{{ post.excerpt }}
Read More
--- layout: default --- Welcome to my website where I document the various projects I am pursing. Looking for code? Checkout my github profile for my most recent activity or browse below.


GWT Tk Controller Design
Introduction
I've been exploring a different way to handle events in GWT. In a nutshell, the design combines traits of Swing event handling and classic MVC controllers.
This all began when I encountered the following problems:
- different platforms require different event handling
- event handlers need access to event objects (e.g. for preventDefault() & stopPropagation())
Analysis
Browser specific event handling
In GWT, the basic recipe for accommodating browser differences is to delegate variations in code to "impl" classes. When you need to handle variations in behavior you can delegate events to the impl classes. If you have two widgets that require the same event handling you can create a class encapsulating the behavior and delegate events to it from the impl classes, e.g. Widget.onBrowserEvent() -> WidgetImplMozilla.doEvent() -> BehaviorImplMozilla.doEvent(). After coding this delegation pattern several times will want to add delegation support to a base class to limit code duplication.
DOM event object access
GWT event interfaces do not provide access to the event objects. I am unsure whether this was a design goal, or just a side-effect of keeping the design simple. Some classes (e.g. TextBoxBase) provide methods to act on the current event to address anticipated needs (e.g. cancelKey(), setKey()). However, GWT does not meet all the needs of users (e.g. canceling a "Tab" keypress on a button).
Approaches to access event objects:
- Modify the source for listener collections and listener interfaces
to expose the events.
Requires continual maintenance as GWT is released.
Limits reuse in the GWT community. - Subclass the widget and move listener code into onBrowserEvent().
Results in a proliferation of classes. - Create duplicate listener interfaces which expose the event object;
subclass widgets as needed to add extended event listener support.
Results in a proliferation of classes.
If you need to handle additional event types on a 3rd party widget that employs this approach you have to subclass again or modify the source. - Create a generic event listener facility which exposes the event object and notifies for all event types. Rather than create a listener interface with a method for every possible event, you can declare a generic onBrowserEvent() handler. The widget class can ask the listener which events it is interested in and only notify for those events. Switching on the event type in the listener.onBrowserEvent() method can be lessened by creating a separate listener for each event type.
Design
This design combines traits of Swing event handling and classic MVC controllers.
Class responsibilities
Widget
- provides a public interface for view state (e.g. isOpen(), isShowing())
- creates and maintains HTML structure
- handles browser structural differences by delegating to a view implementation class instantiated via GWT.create()
- supports listeners for high level events (e.g. PopupListener, TableListener)
Controller
- responds to DOM events, cancels events
- coordinates with other widgets
- installs hooks for browser-specific events (e.g. onselectstart)
- encapsulates browser behavioral differences (controller implementation is instantiated via GWT.create())
- tracks state of input operations (e.g. mouse state for drag operation)
- modifies data model
Structural overview (click to
zoom)
Design features and details
- Behavior can be tailored to each platform by instantiating controllers via deferred binding (GWT.create(Class))
- Multiple controllers for each widget. Logic can be separated into minimal, reusable classes.
- Controllers can be added and removed after the widget is constructed
- Subclasses can override controller creation via a factory method. This avoids unnecessary instantiation if a special implementation needed.
- A single controller can respond to multiple events and maintain state (e.g. drag operation)
- Stateless controllers may be shared between widgets
- Controller life cycle: Controller.plugIn() called via Widget.attach(), Controller.unplug() called via Widget.detach()
- Controllers can add platform-specific event hooks via plugIn()/unplug() (e.g. IE6 onselectstart)
- Controllers can be added/removed after Widget is attached (plugIn()/unplug() will be called)
Static structure (click to
zoom)
Controller instantiation (click
to zoom)
Controller activation (click
to zoom)
Event processing (click to
zoom)
Consequences
- As with Swing listeners, controller notification order is not necessarily determinate
- Composite widgets (e.g. DialogBox) have to decide whether to expose subwidgets for configuration (e.g. getCaptionWidget()) or add controller accessor methods (e.g. setCaptionControllers()) to the interface.
- Deferred binding support necessitates default constructor; controllers are initialized via plugIn()
- A controller can cause the widget to be detached from the DOM, which unplugs the controller mid-operation (e.g. DialogBox.hide()). Controllers can work around this by detaching the widget via DeferredCommand.
- Widgets which wish to mix controllers and conventional event listeners must do additional bookkeeping to ensure events are properly sunk. This can be done in a base class or delegated to a helper class.
- Widget properties on which controllers are dependent must be made part of the widget interface. Controllers defined as nested member classes can access private properties, but this practice limits 3rd party reuse and configuration.
- Widget configurability can be improved by breaking down behavior into separate controllers. However, this strategy may result in unacceptable memory impact if applied to widgets which are used frequently (such as inputs or labels). Memory impact can be limited by sharing stateless controllers.
Legacy event support (click to
zoom)
Looking Forward
Controller injection
It may be possible to write a custom generator which parses annotations in the class doc and injects a controller into the generated class. Widgets would be instantiated via GWT.create(). Controllers typically have a default constructor.
Legacy listener implementations could also be injected this way. The listener interface would be inherited, but not implemented (the class would be abstract).


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
I
L
N
O
P
R
S
T
U
V
W
T
toApikey(String)
- Static method in class Cosm.
CosmFactory
toApikeys(String)
- Static method in class Cosm.
CosmFactory
toDatapoint(String)
- Static method in class Cosm.
CosmFactory
toDatapoints(String)
- Static method in class Cosm.
CosmFactory
toDatastream(String)
- Static method in class Cosm.
CosmFactory
toFeed(String)
- Static method in class Cosm.
CosmFactory
toFeeds(String)
- Static method in class Cosm.
CosmFactory
toGroup(String)
- Static method in class Cosm.
CosmFactory
toGroups(String)
- Static method in class Cosm.
CosmFactory
toJSONObject()
- Method in class Cosm.
Datapoint
toJSONObject()
- Method in class Cosm.
Datastream
toJSONObject()
- Method in class Cosm.
Feed
toJSONObject()
- Method in class Cosm.
Group
toJSONObject()
- Method in class Cosm.
Location
toJSONObject()
- Method in class Cosm.
Permission
toJSONObject()
- Method in class Cosm.
Resource
toJSONObject()
- Method in class Cosm.
Trigger
toJSONObject()
- Method in class Cosm.
Unit
toJSONObject()
- Method in class Cosm.
User
toString()
- Method in class Cosm.
Datastream
toString()
- Method in class Cosm.
Feed
toString()
- Method in class Cosm.
Group
toString()
- Method in class Cosm.
Location
toTrigger(String)
- Static method in class Cosm.
CosmFactory
toTriggers(String)
- Static method in class Cosm.
CosmFactory
toUser(String)
- Static method in class Cosm.
CosmFactory
toUsers(String)
- Static method in class Cosm.
CosmFactory
Trigger
- Class in
Cosm
Trigger()
- Constructor for class Cosm.
Trigger
TriggerType
- Enum in
Cosm
This Enum models the accepted operators for the Trigger
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
I
L
N
O
P
R
S
T
U
V
W


Farmers asked to insure paddy crops
by Staff ReporterSince crop loss due to unforeseen circumstances is compensated, farmers have been asked to apply for crop insurance for the samba paddy crop under the Pradhan Mantri Fasal Bima Yojana (Prime Minister’s Crop Insurance Scheme) in the district.
Successful implementation
In a press release, K. Premalatha, Joint Director of Agriculture, said the scheme introduced in 2016 by the Centre had been successfully implemented in the district, encouraging more farmers to pay premium.
She said that currently paddy was being cultivated in about 63,000 acre in the district that were irrigated by Lower Bhavani Project canal, Thadapalli and Arakankottai canals, Mettur East Bank Canal and Kalingarayan Canal.
Information related to insurance had been disseminated to farmers in 192 revenue villages in the district and farmers can contact Assistant Directors of Agriculture at the following numbers: Ammapettai 70100-09141, Anthiyur 99526-97911, Bhavani 97885-19522, Bhavani Sagar 99408-1830, Chennimalai 94438-65485, Erode 99449-10101, Gobichettipalayam 94438-52710, Kodumudi 94885-76435, Modakurichi 99764-80379, Nambiyur 79048-93500, Perundurai 99764-95153, Sathyamangalam 94430-62463 and Thuckanaickenpalayam 80725-77227.
Premium
She said that Oriental Insurance Company had been permitted to collect a premium of ₹ 478.50 per acre from the farmers and the coverage was ₹ 31,800.
The last date for submitting application was November 30.


A nature-inspired metaheuristic algorithm based on the echolocation behavior of microbats that uses frequency tuning to optimize problems in both continuous and discrete dimensions. This R package makes it easy to implement the standard bat algorithm on any user-supplied function. The algorithm was first developed by Xin-She Yang in 2010 (<doi:10.1007/978-3-642-12538-6_6>, <doi:10.1109/CINTI.2014.7028669>).
| Version: | 0.1-1 |
| Depends: | R (≥ 3.2.1) |
| Published: | 2016-02-18 |
| Author: | Seong Hyun Hwang with contributions from Rachel Myoung Moon |
| Maintainer: | Seong Hyun Hwang <krshh1412 at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | https://github.com/stathwang/microbats |
| NeedsCompilation: | no |
| CRAN checks: | microbats results |
| Reference manual: | microbats.pdf |
| Package source: | microbats_0.1-1.tar.gz |
| Windows binaries: | r-devel: microbats_0.1-1.zip, r-release: microbats_0.1-1.zip, r-oldrel: microbats_0.1-1.zip |
| OS X binaries: | r-release: microbats_0.1-1.tgz, r-oldrel: microbats_0.1-1.tgz |
Please use the canonical form https://CRAN.R-project.org/package=microbats to link to this page.


'I don’t know if he’s going to play again': Xhaka's Arsenal future in doubt – video
Unai Emery admitted Granit Xhaka may not play for Arsenal again as he confirmed that Arsenal's former captain will miss a fourth consecutive match since his stormy departure from the Emirates Stadium pitch against Crystal Palace in October and will not travel to Leicester on Saturday evening. Emery said: 'As a coach I have a responsibility for the team: we need a player like Granit Xhaka. But also, I don’t know if he’s going to play [for us] again.'


Nadam
Optimizer that implements the NAdam algorithm.
Inherits From: Optimizer
tf.compat.v1.keras.optimizers.Nadam
tf.compat.v2.keras.optimizers.Nadam
tf.compat.v2.optimizers.Nadam
tf.optimizers.Nadam
Much like Adam is essentially RMSprop with momentum, Nadam is Adam with Nesterov momentum.
$$m_0 := 0 \text{(Initialize 1st moment vector)}$$ $$v_0 := 0 \text{(Initialize 2nd moment vector)}$$ $$mu_0 := 1$$ $$t := 0 \text{(Initialize timestep)}$$
$$t := t + 1$$ $$\mu_t := \beta_1 * (1 - 0.5 * 0.96^{0.004 * t})$$ $$g' := g / (1 - \prod_{i=1}^{t}{\mu_i})$$ $$m_t := \beta_1 * m_{t-1} + (1 - \beta_1) * g$$ $$m' := m_t / (1 - \prod_{i=1}^{t+1}{\mu_i})$$ $$v_t := \beta_2 * v_{t-1} + (1 - \beta_2) * g * g$$ $$v' := v_t / (1 - \beta_2^t)$$ $$\bar{m} := (1 - \mu_t) * g' + \mu_{t+1} * m'$$ $$\theta_t := \theta_{t-1} - lr * \bar{m} / (\sqrt{v'} + \epsilon)$$
gradient is evaluated at theta(t) + momentum * v(t), and the variables always store theta + beta_1 * m / sqrt(v) instead of theta.
References See Dozat, T., 2015.
__init__
__init__( learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, name='Nadam', **kwargs )
Construct a new Nadam optimizer.
learning_rate
: A Tensor or a floating point value. The learning rate.beta_1
: A float value or a constant float tensor. The exponential decay
rate for the 1st moment estimates.beta_2
: A float value or a constant float tensor. The exponential decay
rate for the exponentially weighted infinity norm.epsilon
: A small constant for numerical stability.name
: Optional name for the operations created when applying gradients.
Defaults to "Adamax".**kwargs
: keyword arguments. Allowed to be {clipnorm
, clipvalue
, lr
,
decay
}. clipnorm
is clip gradients by norm; clipvalue
is clip
gradients by value, decay
is included for backward compatibility to
allow time inverse decay of learning rate. lr
is included for backward
compatibility, recommended to use learning_rate
instead.iterations
Variable. The number of training steps this Optimizer has run.
weights
Returns variables of this Optimizer based on the order created.
add_slot
add_slot( var, slot_name, initializer='zeros' )
Add a new slot variable for var
.
add_weight
add_weight( name, shape, dtype=None, initializer='zeros', trainable=None, synchronization=tf.VariableSynchronization.AUTO, aggregation=tf.compat.v1.VariableAggregation.NONE )
apply_gradients
apply_gradients( grads_and_vars, name=None )
Apply gradients to variables.
This is the second part of minimize()
. It returns an Operation
that
applies gradients.
grads_and_vars
: List of (gradient, variable) pairs.name
: Optional name for the returned operation. Default to the name
passed to the Optimizer
constructor.An Operation
that applies the specified gradients. If global_step
was not None, that operation also increments global_step
.
TypeError
: If grads_and_vars
is malformed.ValueError
: If none of the variables have gradients.from_config
from_config( cls, config, custom_objects=None )
Creates an optimizer from its config.
This method is the reverse of get_config
,
capable of instantiating the same optimizer from the config
dictionary.
config
: A Python dictionary, typically the output of get_config.custom_objects
: A Python dictionary mapping names to additional Python
objects used to create this optimizer, such as a function used for a
hyperparameter.An optimizer instance.
get_config
get_config()
Returns the config of the optimimizer.
An optimizer config is a Python dictionary (serializable) containing the configuration of an optimizer. The same optimizer can be reinstantiated later (without any saved state) from this configuration.
Python dictionary.
get_gradients
get_gradients( loss, params )
Returns gradients of loss
with respect to params
.
loss
: Loss tensor.params
: List of variables.List of gradient tensors.
ValueError
: In case any gradient cannot be computed (e.g. if gradient
function not implemented).get_slot
get_slot( var, slot_name )
get_slot_names
get_slot_names()
A list of names for this optimizer's slots.
get_updates
get_updates( loss, params )
get_weights
get_weights()
minimize
minimize( loss, var_list, grad_loss=None, name=None )
Minimize loss
by updating var_list
.
This method simply computes gradient using tf.GradientTape
and calls
apply_gradients()
. If you want to process the gradient before applying
then call tf.GradientTape
and apply_gradients()
explicitly instead
of using this function.
loss
: A callable taking no arguments which returns the value to minimize.var_list
: list or tuple of Variable
objects to update to minimize
loss
, or a callable returning the list or tuple of Variable
objects.
Use callable when the variable list would otherwise be incomplete before
minimize
since the variables are created at the first time loss
is
called.grad_loss
: Optional. A Tensor
holding the gradient computed for loss
.name
: Optional name for the returned operation.An Operation that updates the variables in var_list
. If global_step
was not None
, that operation also increments global_step
.
ValueError
: If some of the variables are not Variable
objects.set_weights
set_weights(weights)
variables
variables()
Returns variables of this Optimizer based on the order created.


{% extends 'layout.html' %} {% block body %}
A detailed message about this event will be sent to the site owners. In the mean time, if you could send a short message about what you were doing right before this error occurred, it would be very beneficial to us!