Package
Class
Tree
Deprecated
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes
A
C
I
L
P
R
S
V
A
addEdge(PVector, PVector)
- Method in class ComputationalGeometry.
IsoSkeleton
addPoint(PVector, float)
- Method in class ComputationalGeometry.
IsoContour
addPoint(PVector)
- Method in class ComputationalGeometry.
IsoContour
addPoint(PVector, float)
- Method in class ComputationalGeometry.
IsoSurface
addPoint(PVector)
- Method in class ComputationalGeometry.
IsoSurface
addPt(PVector)
- Method in class ComputationalGeometry.
IsoWrap
addPts(PVector[])
- Method in class ComputationalGeometry.
IsoWrap
C
clear()
- Method in class ComputationalGeometry.
IsoContour
clear()
- Method in class ComputationalGeometry.
IsoSkeleton
clear()
- Method in class ComputationalGeometry.
IsoSurface
ComputationalGeometry
- package ComputationalGeometry
construct()
- Method in class ComputationalGeometry.
IsoContour
I
IsoContour
- Class in
ComputationalGeometry
IsoContour(PApplet, PVector, PVector, int, int)
- Constructor for class ComputationalGeometry.
IsoContour
IsoSkeleton
- Class in
ComputationalGeometry
IsoSkeleton(PApplet)
- Constructor for class ComputationalGeometry.
IsoSkeleton
IsoSurface
- Class in
ComputationalGeometry
IsoSurface(PApplet, PVector, PVector, int)
- Constructor for class ComputationalGeometry.
IsoSurface
IsoSurface(PApplet, PVector, PVector, int, int, int)
- Constructor for class ComputationalGeometry.
IsoSurface
IsoWrap
- Class in
ComputationalGeometry
IsoWrap(PApplet)
- Constructor for class ComputationalGeometry.
IsoWrap
L
lookUp(float, float[], PVector[])
- Method in class ComputationalGeometry.
IsoSurface
lookUpAndDraw(int, int, int, int, float)
- Method in class ComputationalGeometry.
IsoContour
P
plot(float)
- Method in class ComputationalGeometry.
IsoContour
plot(float, float)
- Method in class ComputationalGeometry.
IsoSkeleton
plot(float)
- Method in class ComputationalGeometry.
IsoSurface
plot()
- Method in class ComputationalGeometry.
IsoWrap
plotCases(float)
- Method in class ComputationalGeometry.
IsoSurface
plotGrid()
- Method in class ComputationalGeometry.
IsoContour
plotVoxels()
- Method in class ComputationalGeometry.
IsoSurface
R
reset()
- Method in class ComputationalGeometry.
IsoSurface
S
setValues(float[])
- Method in class ComputationalGeometry.
IsoSurface
V
values
- Variable in class ComputationalGeometry.
IsoSurface
vertices
- Variable in class ComputationalGeometry.
IsoSurface
A
C
I
L
P
R
S
V
Package
Class
Tree
Deprecated
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes
Processing library ComputationalGeometry by Mark Collins & Toru Hasegawa. (C) 2013


Sharimage
Upload
Log Out
Uploaded by
| Published:
Source:
Some link
×
Personal Gallery
Upload the image real quick here
Choose an image


|
This page last changed on Nov 17, 2004 by casey.
| Situation | Previous (WW-1.4) | Current (WW-2.1) |
| Referring to an object in the PageContext scope | @itemIdOrName | #attr['itemIdOrName'] |
| Referring to an object in the Request scope | itemIdOrName | Same, but use #request['itemIdOrName'] if nested in an iteration. |
| Referring to an object in the Session scope | @itemIdOrName | #session['itemIdOrName'] |
| Referring to an object in the Application scope | @itemIdOrName | #application['itemIdOrName'] |
| Property Setters | foo/bar translates to getFoo().setBar() | foo.bar translates to getFoo().setBar() |
| Property Getters | foo/bar translates to getFoo().getBar() | foo.bar translates to getFoo().getBar() |
| Boolean/boolean Property Getters | foo/bar translates to getFoo().getBar() if bar is java.lang.Boolean, if primitive bar translates to getFoo().isBar() | Same, except uses dot notation instead of a slash (i.e. foo.bar) |
| Collections as Properties | N/A | Collections (including arrays) are similar to other objects, except they allow indexing: foo.bar[indexOrKeyName] translates to getFoo().getBar().get(indexOrKeyName) |
| curly braces - {}, evaluates contents of braces first, and use the result as the property to then evaluate. | <webwork:property value="{'name'}"/> translates to getName() on the curent object. | No longer used. |
Originally written by Jay Bose and sent to the mailing list
|


Data Warehouse is a data storage area that has been tested for security, so you can store your data here safely but not be afraid of being stolen by others.
Don’t worry if your data is very large, the Data Warehoue provides a search engine, which is useful for making it easier to find data effectively saving time.
Don’t worry if your data is very large, the Data Warehoue provides a search engine, which is useful for making it easier to find data effectively saving time.
John Fang
wordfaang.comSuspendisse ultrices at diam lectus nullam. Nisl, sagittis viverra enim erat tortor ultricies massa turpis. Arcu pulvinar aenean nam laoreet nulla.


Marty, are you alright? Oh, you mean how you're supposed to act on a first date. What, I don't get what happened. Oh, yeah, yeah. I know what you're gonna say, son, and you're right, you're right, But Biff just happens to be my supervisor, and I'm afraid I'm not very good at confrontations.
Last night, Darth Vader came down from planet Vulcan. And he told me that if I didn't take Lorraine, that he'd melt my brain. I got enough practical jokes for one evening. Good night, future boy. What? He's a very strange young man. Hey, don't I know you from somewhere?
Y'know this time it wasn't my fault. The Doc set all of his clocks twenty-five minutes slow. Science Fiction Theater. Where were we. They're late. My experiment worked. They're all exactly twenty-five minutes slow. Yeah, it's 8:00.
Yeah, exactly. Listen, woh. Hello, uh excuse me. Sorry about your barn.  Yeah, gimme a Tab. When could weathermen predict the weather, let alone the future.
Right, I got it. Wrecked? He's alright. No. Uh, plutonium, wait a minute, are you telling me that this sucker's nuclear?
 She's crazy about me. Look at this, look what she wrote me, Doc. That says it all. Doc, you're my only hope. I swiped it from the old lady's liquor cabinet. Where?  It means that this damn thing doesn't work at all.
you guys look great. Mom, you look so thin. Wow, you must be rich. Listen, Doc, you know there's something I haven't told you about the night we made that tape. Jennifer. I'm gonna ram him.
 You're coming to a rescue, right? Okay, let's go over the plan again. 8:55, where are you gonna be. Lorraine. I'd like you to meet my good friend George McFly. Hey, hey, Doc, where are you? Why do you keep following me around?
No no no this sucker's electrical, but I need a nuclear reaction to generate the one point twenty-one gigawatts of electricity- I think we need a rematch. How about a ride, Mister? Oh. Uncle Jailbird Joey?
Whoa, wait a minute, Doc, are you telling me that my mother has got the hots for me?  Marty. Marty. Marty. He's absolutely right, Marty. the last thing you need is headaches. Shape up, man.  You wanna be a slacker for the rest of your life?
I haven't He's alright. Hey, hey, Doc, where are you? No, bastards. Ah well, sort of.
What's that thing he's on? Einstein, hey Einstein, where's the Doc, boy, huh? Doc Oh, I've been so worried about you ever since you ran off the other night. Are you okay? I'm sorry I have to go. Isn't he a dream boat? Shape up, man.  You wanna be a slacker for the rest of your life? Thank god I still got my hair. What on Earth is that thing I'm wearing?
Well, they're your parents, you must know them. What are their common interests, what do they like to do together? Let's get him. Chuck, Chuck, its' your cousin. Your cousin Marvin Berry, you know that new sound you're lookin for, well listen to this. Aw yeah, everything is great. Will you take care of that?
Well, safe and sound, now, n good old 1955. What do you mean you've seen this, it's brand new. That's for messing up my hair. Okay. Quiet.
Doc, look, all we need is a little plutonium. What, what, ma? Nothing's coming to my mind. Let me show you my plan for sending you home. Please excuse the crudity of this model, I didn't have time to build it to scale or to paint it. Sit here, Marty.
Oh. Um, well it's a delorean, right? Oh hey, Biff, hey, guys, how are you doing? Right. So what's it to you, butthead.


{{article.type}} {{article.author}} {{article.bdate}} {{article.btitle}} {{article.bSummary}} continue reading


AutoGenda
Login
Username
Password
Login
Forgot Password?
Create an account
Name
Email
Username
Password
Verify password
Choose Your Location
America
Canada
Russia
China
Japan
Germany
urbandictionary.com/define.php?term=sorry">
Forgot Password?


An object to hold the state of a simple registration request.
required: A list of the required fields in this simple registration request
optional: A list of the optional fields in this simple registration request
Located in /Auth/OpenID/SReg.php (line 169)
Auth_OpenID_Extension | --Auth_OpenID_SRegBase | --Auth_OpenID_SRegRequest
A list of all of the simple registration fields that were requested, whether they were required or optional.
Initialize an empty simple registration request.
Was this field in the request?
Create a simple registration request that contains the fields that were requested in the OpenID request with the given arguments
$request: The OpenID authentication request from which to extract an sreg request.
$cls: name of class to use when creating sreg request object. Used for testing.
Returns the newly created simple registration request
Get a dictionary of unqualified simple registration arguments representing this request.
This method is essentially the inverse of C{L{parseExtensionArgs}}. This method serializes the simple registration request fields.
Parse the unqualified simple registration request parameters and add them to this object.
This method is essentially the inverse of getExtensionArgs. This method restores the serialized simple registration request fields.
If you are extracting arguments from a standard OpenID checkid_* request, you probably want to use fromOpenIDRequest, which will extract the sreg namespace and arguments from the OpenID request. This method is intended for cases where the OpenID server needs more control over how the arguments are parsed than that method provides.
$args == $message->getArgs($ns_uri); $request->parseExtensionArgs($args);
$args: The unqualified simple registration arguments
strict: Whether requests with fields that are not defined in the simple registration specification should be tolerated (and ignored)
Request the specified field from the OpenID user
$field_name: the unqualified simple registration field name
required: whether the given field should be presented to the user as being a required to successfully complete the request
strict: whether to raise an exception when a field is added to a request more than once
Add the given list of fields to the request
field_names: The simple registration data fields to request
required: Whether these values should be presented to the user as required
strict: whether to raise an exception when a field is added to a request more than once
Have any simple registration fields been requested?
Inherited From Auth_OpenID_Extension
Auth_OpenID_Extension::getExtensionArgs()
Auth_OpenID_Extension::toMessage()
Documentation generated on Tue, 21 Apr 2009 11:31:33 -0700 by phpDocumentor 1.3.2


Nazar App
Nazar: Astrology & Horoscope
Nazar: Astrology & Horoscope
With Nazar App, you can find interesting answers to your cosmic questions unusually. Nazar app does not just offer you daily horoscope reviews and horoscope compatibility like other astrology apps. Unlike others, he can only give you reliable astrological interpretations and inferences based on your choices. With Point of you, you can make your day more meaningful with an interesting word, an interesting question sentence, and interesting comment.
With Nazar App, you will reach reliable astrological guidance to know yourself and the people around you better.
- Daily Horoscope: Access your daily horoscope and biorhythm chart with its unique style under main headings such as love, career, sociability, health, family, and finance.
- Love Compatibility between Zodiac Signs: We have detailed how compatible you would be your partner and if there are chances of a long term relationship.
- Point Of You: We provide you with daily extraordinary astrological inferences prepared by our experts, based on three photos and one word that you randomly choose.
You deserve the future you desire! Get the chance to connect with your inner self and realize your potential with Nazar App!
Nazar App


GRIDDER CODE FOR MAKING DEMS FROM POINT CLOUDS
INDEX
The code was originally written to create DEMS from very large collections of point-cloud files.
It was used to make maps for Woson North Korea and for Montreal.
It has the capacity to process hundreds of point-cloud files at a time and create very large maps made up of multiple DEM tiles.
The gridding technique used by BuckEye and others was very poor for our purposes and the approach used here is much better
(see various Dammann papers and symposium presentations).
The code has been tested on relatively clean .las point-cloud files (as would be generated by a good linear-mode lidar).
Only points that are very far from the average surface and that are certainly noise are filtered out.
It has also been tested on a few very particular .bpf point-cloud files that have been processed by the FINE algorithm (see below).
It the input filetype is .bpf, it is assumed that it is this subtype and processed accordingly.
I have tested against .las files generated by the BuckEye program, and a variety of other datasets generated by different lidars.
I have also used files generated by Damon Conover of this branch using photogrammetry.
I received a number of .bpf point-cloud files from a government source that was testing an algorithm called FINE.
This algorithm attaches a quality metric to each return in the point cloud.
This is a non-trivial algorithm that attempts to associate points with larger features so generates a better quality metric than
simply counting returns from a spot.
All the points are kept so that a threshold can be adjusted up or down depending on the application.
Adjusting down eliminates noise but may result in losing some faint features.
When gridding it is necessary to turn this threshold pretty far down to eliminate virtually all the noise.
Adjusting up makes more features visible but introduces a lot of noise.
It is most useful for visual display for humans, since we are so good at seeing subtle patterns.
I have only implemented gridder for .bpf files using FINE since those are the only files I have to test against.
If other kinds of .bpf files need to be gridded, then the code must be modified.
thresh_avg = 2.f; // Camp Roberts, NTS probably doesnt matter
thresh_avg = 3.f; // Haiti, elYunque, pender
thresh_tau = 70; // Kabul
thresh_tau = 70; // Village
thresh_tau = 63; // Powerlines
thresh_tau = 85; // Spiderholes
thresh_tau = 80; // Snowfield
The code sometimes crashed when run in Debug mode.
The issue appeared to be with GDAL and have to do with the GDAL class OGRSpatialReference.
There were no issues in Release mode.
GDAL provides executables for Windows only for Release mode, so this may be what causes the problem.
A virtually unlimited number of point-cloud files can be input.
The output must have a coordinate system defined by an EPSG number.
Most input point clouds have metadata that includes an EPSG number.
In this case, the number will just be transferred to the output file.
In the event that the ESPG number is not in the input files, it must be entered from the menu.


V2EX
nope
HN
Hacker News is a work in progress ;-)
Preset modes:
Desktop
iPhone/touch
Item expands (reload needed after changed):
inline
sidebar
stack in sidebar
Width controllers:
Read Items (
0
)
Banned Items (
0
)


Justin Bour signs with Hanshin of Japan (report)
by Matt KellyJustin Bour is taking his powerful bat to Japan.
The lefty slugger has reached an agreement with the Hanshin Tigers of Japan’s Nippon Professional Baseball league, Tigers GM Osamu Tanimoto told the Japan Times on Thursday. The Angels signed the 31-year-old Bour to a one-year, $2.5 million contract for the 2019 season, but he struggled with Los Angeles, batting .172/.259/.364 with eight home runs across 52 games.
Bour’s best Major League season came in 2017, when he participated in the Home Run Derby and finished that year with 25 dingers and a 143 league-adjusted OPS+. Bour has thumped 92 homers and slashed .253/.337/.457 over six big league seasons.


Pointed Interpretation of Clinical Variant Significance
Quick Install
Linux&Mac
sudo pip3 install picus
Windows
pip install picus
Example Uses
Picus examples
picus -i input.csv -o output.json
Evidence Collection Process
PVS1
PVS1 null variant (nonsense, frameshift, canonical ±1 or 2 splice sites, initiation codon, single or multiexon deletion) in a gene where LOF is a known mechanism of disease.
Status
Implemented
Resources
LoF genes list from intervar. https://raw.githubusercontent.com/barslmn/InterVar/master/intervardb/PVS1.LOF.genes.hg19
Null variants defined as HIGH IMPACT by https://www.ensembl.org/info/genome/variation/prediction/predicted_data.html
Conditions
“gene_symbol” is in LoF gene list.
“transcript_consequence_terms” is high impact.
Shortcomings
LoF gene list is only predictive and may be missing some actual LoF genes.
No checks for multiexon deletion.
PS1
Same amino acid change as a previously established pathogenic variant regardless of nucleotide change.
Status
Implemented
Resources
Clinvar xml (ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/)
Annotation Steps
Clinvar data is parsed using https://github.com/barslmn/clinvar.
Sample data and clinvar data is merged based on columns “CHR” and “POS”.
Clinvar feature columns “ALT”, “hgvsp”, and “clinical_significance” added to original annotation.
Conditions
“clinical_significance” is pathogenic.
Sample “hgvsp” and later added clinvar “hgvsp” changes are the same.
Sample “ALT” and clinvar “ALT” are different.
Shortcomings
PS2
De novo (both maternity and paternity confirmed) in a patient with the disease and no family history.
Status
Not Checked
Resources
Conditions
Shortcomings
PS3
Well-established in vitro or in vivo functional studies supportive of a damaging effect on the gene or gene product
Status
Not Checked
Resources
Conditions
Shortcomings
PS4
The prevalence of the variant in affected individuals is significantly increased compared with the prevalence in controls
Located in a mutational hot spot and/or critical and well-established functional domain (e.g., active site of an enzyme) without benign variation
Status
Planned.
Resources
Conditions
Shortcomings
PM2
Absent from controls (or at extremely low frequency if recessive) (Table 6) in Exome Sequencing Project, 1000 Genomes Project, or Exome Aggregation Consortium
Status
Implemented
Resources
VEP
Conditions
“gnomad” less than 0.001.
Shortcomings
PM3
For recessive disorders, detected in trans with a pathogenic variant
Status
Not Checked
Resources
Conditions
Shortcomings
PM4
Protein length changes as a result of in-frame deletions/insertions in a nonrepeat region or stop-loss variants
Status
Implemented
Resources
VEP
Conditions
“transcript_consequence_terms” is “inframe_insertion”, “inframe_deletion”, or “stop_lost”.
Shortcomings
No checks for repeat regions.
PM5
Novel missense change at an amino acid residue where a different missense change determined to be pathogenic has been seen before
Status
Broken.
Resources
Clinvar xml (ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/)
Annotation Steps
Clinvar data is parsed using https://github.com/barslmn/clinvar.
Sample data and clinvar data hgvsp columns parsed till position.
Synonym changes removed from clinvar data.
Clinvar feature columns “hgvsc”, and “clinical_significance” added to original annotation based on protein change position.
Conditions
“gnomad” less then 0.001.
“clinical_significance” is pathogenic.
“transcript_consequence_terms” is missense variant.
“hgvsc” of the variant and clinvar entry dont match.
Shortcomings
PM6
Assumed de novo, but without confirmation of paternity and maternity
Status
Not Checked.
Resources
Conditions
Shortcomings
PP1
Cosegregation with disease in multiple affected family members in a gene definitively known to cause the disease
Status
Not Checked.
Resources
Conditions
Shortcomings
PP2
Missense variant in a gene that has a low rate of benign missense variation and in which missense variants are a common mechanism of disease
Status
Implemented
Resources
Intervar
Conditions
“transcript_consequence_terms” is a missense variant.
“gene_symbol” is in PP2 gene list.
Shortcomings
PP3
Multiple lines of computational evidence support a deleterious effect on the gene or gene product (conservation, evolutionary, splicing impact, etc.)
Status
Implemented
Resources
Vep
Conditions
“sift_score” less than 0.05
“polyphen_score” greater than 0.908
Shortcomings
PP4
Patient’s phenotype or family history is highly specific for a disease with a single genetic etiology
Status
Not Checked.
Resources
Conditions
Shortcomings
PP5
Reputable source recently reports variant as pathogenic, but the evidence is not available to the laboratory to perform an independent evaluation
Status
Implemented.
Resources
Clinvar
Conditions
“clinical_significance” is Pathogenic.
Shortcomings
Benign
BA1
Allele frequency is >5% in Exome Sequencing Project, 1000 Genomes Project, or Exome Aggregation Consortium
Status
Implemented.
Resources
Vep
Conditions
“minor_allele_freq” is greater than 0.05
OR
“gnomad” is greater than 0.05.
Shortcomings
BS1
Allele frequency is greater than expected for disorder
Status
Not Checked.
Resources
Conditions
Shortcomings
BS2
Observed in a healthy adult individual for a recessive (homozygous), dominant (heterozygous), or X-linked (hemizygous) disorder, with full penetrance expected at an early age
Status
Resources
Conditions
Shortcomings
BS3
Well-established in vitro or in vivo functional studies show no damaging effect on protein function or splicing
Status
Not Checked.
Resources
Conditions
Shortcomings
BS4
Lack of segregation in affected members of a family
Status
Not Checked.
Resources
Conditions
Shortcomings
BP1
Missense variant in a gene for which primarily truncating variants are known to cause disease
Status
Implemented.
Resources
Intervar
Conditions
“transcript_consequence_terms” is a missense variant.
“gene_symbol” is in BP1 gene list.
Shortcomings
BP2
Observed in trans with a pathogenic variant for a fully penetrant dominant gene/disorder or observed in cis with a pathogenic variant in any inheritance pattern
Status
Not Checked.
Resources
Conditions
Shortcomings
BP3
In-frame deletions/insertions in a repetitive region without a known function
Status
Resources
Conditions
Shortcomings
BP4
Multiple lines of computational evidence suggest no impact on gene or gene product (conservation, evolutionary, splicing impact, etc.)
Status
Implemented
Resources
VEP
Conditions
“sift_score” greater than or equals to 0.05
“polyphen_score” less than or equals to 0.446
Shortcomings
BP5
Variant found in a case with an alternate molecular basis for disease
Status
Not Checked.
Resources
Conditions
Shortcomings
BP6
Reputable source recently reports variant as benign, but the evidence is not available to the laboratory to perform an independent evaluation
Status
Implemented
Resources
Clinvar
Conditions
“clinical_significance” is benign
Shortcomings
BP7
A synonymous (silent) variant for which splicing prediction algorithms predict no impact to the splice consensus sequence nor the creation of a new splice site AND the nucleotide is not highly conserved


RubySK
Home
Github
Docs
Ruby Skeleton
An easy-to-use lightweight framework for modernizing the web
Learn More


{% extends "projects/project_edit_base.html" %} {% load i18n %} {% block title %}{% trans "Subprojects" %}{% endblock %} {% block nav-dashboard %} class="active"{% endblock %} {% block editing-option-edit-proj %}class="active"{% endblock %} {% block project-subprojects-active %}active{% endblock %} {% block project_edit_content_header %}{% trans "Subprojects" %}{% endblock %} {% block project_edit_content %}
{% blocktrans trimmed %} Subprojects are projects hosted from the same URL as their parent project. This is useful for organizing multiple projects under a custom domain. {% endblocktrans %}
{% if superproject %}{% blocktrans trimmed with project=superproject.name %} This project is already configured as a subproject of {{ project }}. Nested subprojects are not currently supported. {% endblocktrans %}
{% blocktrans trimmed with project=superproject.name %} View subprojects of {{ project }} {% endblocktrans %} {% else %}{% trans 'No subprojects are currently configured' %}


//= templates/aside.html
Items
Add new
{{ items.itemName }}
{{ items.itemComments.length }}
Delete
Comments {{ commentsData[currentItem].itemName }}
Please, select or create an Item
There are no comments yet!
{{ comment.text }}
Comments {{ commentsData[currentItem].itemName }}
Please, select or create an Item
There are no comments yet!
{{ comment.text }}


Software Development
Developing software is in the DNA of the company. Mathematical models need software to live, so we naturally have built up a strong IT and programming profile over the years.
We are interested in programming tasks in general, with a preference for problems involving analytics and mathematical modeling.
Case: TAPLA - The Tanker Planner
In 2016 we started the development of TAPLA, the tanker planner - a software tool to assist expert users in making the optimal tanker plan when coordinating air-to-air refuelings.
The tool was developed in close collaboration with the SMEs, iteratively capturing their knowledge in advanced mathematical models, visualizing the scenarios, incorporating feedback and then reiterating these steps in tight loops...
Features
Reduce cost
- Minimize the tanker consumptions
- Reduce the average number of tankers needed to support an ATO
- Optimize the allocation of tanker types to receiver types based on
- off-load requirements
- compatibilities
- flight times
Increase efficiency
- Reduce the time to make a plan from several hours to minutes
- Automatically satisfy technical constraints (boom / drogue / hard basket / soft basket / flight time)
- Automatically satisfy operational constraints
- Increase the SA of the planner
Integrate
- Use as a stand-alone product or integrated into the existing IT infrastructure
- Facilitate the integration of the planning process with adjacent functions
- Built using best practice & state-of-the art software development principles
- Enable automated performance monitoring and Data-Driven Decisions


--- layout: not_homepage quote: I don’t have time for hobbies. At the end of the day, I treat my job as a hobby. It’s something I love doing. author: David Beckham --- {% include quote.html quote=page.quote author=page.author %}
Hi, my name is Roman and I'm a programmer. My first introduction to programming was during a project in one of my applied math courses that used linear regression to reconstruct pictures based on a huge sample. At first, I was skeptical about the results of this relatively simple mathematical operation to reconstruct right side of a picture based on left but was mindblown by the results. Since then I've learned various languages and frameworks and built more to-do lists then I can count. I've also worked as a teacher assistant in a programming bootcamp. It's always gratifying to help and teach people as well as partaking in a rabbit hole with students because everyone asks different questions that would never occur to me.
I am now looking for my next adventure, so feel free to browse the projects section to check out what I've built, shoot me an email or connect on linkedIn.


Employee Details
{% for message in messages %}{{message}}
{% endfor%}| Employee Number: | {{ employee.employeenumber }} | |
| Username: | {{ employee.username }} | |
| Image: | {% if employee.image %}{% else %} | {% endif %} |
| First name: | {{ employee.firstname }} | |
| Last name: | {{ employee.lastname }} | |
| Other name: | {{ employee.othername }} | |
| Gender | {{ employee.gender }} | |
| Date of birth | {{ employee.dateofbirth }} | |
| Marital status | {{ employee.maritalstatus }} |
| Address: | {{ employee.address }} |
| Post code: | {{ employee.postcode }} |
| Current Residence: | {{ employee.currentresidence }} |
| Phone Number: | {{ employee.phone }} |
| Email: | {{ employee.email }} |
| Department: | {{ employee.department }} |
| Position: | {{ employee.position }} |
| ID Number: | {{ employee.ID_No }} |
| Passport Number: | {{ employee.Passport_No }} |
| NSSF Numnber: | {{ employee.NSSF_No }} |
| NHIF Number: | {{ employee.NHIF_No }} |
| KRA Number: | {{ employee.KRA_No }} |
| Employment Date: | {{ employee.employmentdate }} |
| Employment Type: | {{ employee.employmenttype }} |
| Termination Date: | {{ employee.terminationdate }} |
| Employee Bank Name: | {{ employee.bankname }} |
| Employee Bank Branch: | {{ employee.bankbranch }} |
| Employee Bank Account: | {{ employee.bankaccount }} |


Things we learned at the LUG meet
tags: linux- vimrc comments start with
"
- howdoi would be useful if it worked
xargs -I {}
is handy
Steve Engledow: Senior Solutions Builder at Amazon Web Services
Latest post: Using Git with AWS CodeCommit Across Multiple AWS Accounts — Latest project: git-cube
"
xargs -I {}
is handy


May has been another month of steady progress - mostly on widget testing, but also in some other key areas of the project.
What we've done
- We've completed the audit of the TextInput, PasswordInput, and MultilineTextInput widgets; we've completed the audit of NumberInput, WebView, DateInput, TimeInput, and Selection on macOS, iOS and GTK; and we've begun the audit of ImageView.
- We've added documentation and tests for the input validation API as part of the TextInput audit.
- We've added documentation and tests for ListSource as part of the Selection audit, and modified the implementation of Selection to use a ListSource.
- We refactored the implementation of Dialog so that it is architecturally consistent with the rest of Toga; this will hopefully also lead to an easier testing story.
- We made significant progress in supporting custom fonts on GTK, including adding a GUI test of this capability.
- We completed a refactor of Briefcase's tool integrations. This introduces a consistent API for all tools that Briefcase uses, as well as introducing type annotations for a lot more of the codebase.
- We've introduced conditional coverage to the Briefcase codebase. This means developers who only have access to a single testing platform can get a 100% coverage report on their work before submitting to CI for cross-platform confirmation.
- We've helped triage a number of bugs in the Python 3.12.0b1 release (revealed by our testing for Briefcase and Rubicon-ObjC).
- We've modified Briefcase's Flatpak backend to require an explicit runtime, rather than falling back to a default runtime that is no longer supported.
- We developed a draft implementation of a Briefcase test runner for the Web backend. This is an important first step to being able to unit test Toga's Web backend; however, there's still a couple of technical challenges outstanding before we can complete that work.
- We've begun the process of upgrading Briefcase's Java support from Java 8 to Java 17.
What's next?
June will be another month with a focus on GUI test coverage. We're still hoping that this work will be complete by the end of June - we're averaging 1-2 widgets a week, and we have 8 widgets remaining; however, every widget is throwing up unique challenges (and revealing deep bugs - sometimes in the underlying GUI frameworks), so it's possible the audit work may need to continue into July.
Want to get involved?
Want to get involved? Here are some open issues that would be a great place to get started with contributing to a BeeWare project. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users:
- Filter out a message generated after Xcode updates
- Add the ability to configure the ABIs built by an Android project
- Add support for the ANDROID_HOME environment variable
- Rationalise the application of adhoc signing on macOS
- Detect a failure when trying to install on an Android device that is too old
- Use the on-device clock to filter Android device logs
- Add an APK packaging target for Android
- Provide an option to override app settings from the command line
Pick one of these tickets, drop a comment on the ticket to let others know you're looking at it, and try your hand at a PR! We have a guide on setting up a Briefcase development environment; but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the BeeWare Discord server.
- Next entry
- June 2023 Status Update
- Previous entry
- April 2023 Status Update


IF ONLY YOU WILL BE HONEST AND SINCERE MAKE IT REMAIN CONFIDENTIAL. AND IT IS ALL THE ABOVE MENTION AMOUNT,THAT I DISCOVERED AS AN OUTSTANDING SUM,THAT WAS MISSCALCULATED AND INCLUDED AS PART PAYMENT TO OUR FOREGN CONTRACTORS PAYMENT.  HAMDALA RAHAMA, DUBAI CHAMBER OF COMMERCE


Home
Categorys
Bikes
Finance
Servicing
Parts
Insurance
Store Locator
Dirt Bikes
Dual Sport Bikes
Adventure Bikes
Sports Bikes
Cruise Bikes
Our Store Locations
Haulashore Island
Stewart Island
Adams Island


Q: How can I contact the researchers?
A: Please email Jake Lever at<EMAIL_ADDRESS>Q: Why the focus on drivers, oncogenes and tumor suppressors?
A: When interpreting precision medicine data for an individual patient, it is incredibly important to understand the role of different genes in which somatic mutations occur.
Q: When I type in a gene or cancer, it isn't autocompleted. Why is that?
A: If a gene or cancer doesn't come up, it means that it isn't in CancerMine. Check that the gene/cancer name is the standard name (e.g. ERBB2 not HER2) in the associated ontology (HUGO and the Disease Ontology).
Q: What text is being mined?
A: We are processing the entirety of Pubmed (~22 million abstracts) and Pubmed Central Open Access Subset (~1 million full text articles).
Q: Are you just using co-occurrences?
A: No. Co-occurrences count how many times a gene and a cancer-type appear in the same sentence. We use the Kindred relation extraction package to understand the context of the sentence and only extract sentences that discuss a driver, oncogene or tumor suppressor with high likelihood.
Q: How regularly is this updated?
A: CancerMine is updated monthly (around the 1st of the month) and makes use of the PubRunner package to make it easier and minimise the amount of additional computation on new abstracts and papers in Pubmed and Pubmed Central Open Access subset.
Q: I found a sentence that doesn't say what CancerMine describes. Why?
A: CancerMine is completely automated with no human curation so there will be some mistakes. We've adjusted the precision to make as few false positive mistakes (with a tradeoff of likely higher false negatives). All information offered by CancerMine should be interpreted accordingly.
Q: Could this approach be used to extract other types of biomedical knowledge?
A: It probably could. If you'd like to talk, please get in contact with the main researcher, Jake Lever, by creating a Github issue. Also check out the code at the Github repository to find out more about the project.
Q: Where can I get the raw data to use?
A: The data can be downloaded by clicking on the Download buttons in the app. The complete set is accessible through Zenodo. It is in TSV format with headers. It is licensed under CC0. Once the paper is finalised, we'd appreciate if you would cite it if you use this data.
Q: Where can I find the code used to construct this knowledge base?
A: All the code is available in our Github repository. The project uses various Python libraries for the text mining (e.g. Kindred and PubRunner). The viewer is built using Shiny. The code is also in the repository.
Q: How are the importance measures calculated for the CancerMine profiles used in the clustering heatmap?
A: Each gene role is measured for importance by the number of papers in which it is discussed with the correpsonding cancer type. Hence, if RUNX3 is mentioned in 80 papers as a tumor suppressor in stomach cancer, the base importance value for this gene role in stomach cancer is 80. The base value is then log10-transformed and divided by the most important role for that cancer type (in order to normalize for the number of papers on that cancer). The most important gene role will then have an importance score of 1.0 and all others will have a score below that.
Q: How can I cite this work?
A: Please cite the Nature Methods paper. The preprint is still available on bioRxiv.
Q: Where can I report a bug?
A: Please email Jake Lever or create an issue on the CancerMine Github repo.


Black Gold Bracelet
Gold White Square Bracelet
Checker Bracelet
White/Black Bracelet
Gold Patterned Bracelet
Diamond Bracelet


Personal Details
Exam Details
Exam Instruction
Personal Details
Verify Your Personal Details
Name
Enrollment No
Course
Semester
Email
Prev
Next


--- layout: page permalink: "/community-commissioned/turtle-song/turtle-song005.html" ---
Carolyn Von Stumm – Lead Musician and Education and Participation Consultant previous


The python scripts which periodically check and notifies the user whether the particular vaccine is available on the fly
NOTE: This application is only for educational purpose. Should not use it for any Illegal trades, denial of service and I'm not responsible for the future consequences, all the risk should be taken by yourself. Also please consider the current situation happening in the country. People who first and seriously needed are finding it difficult to get a vaccine so please feel curtesy before using this application.
To Modify you Information, open config.py file in the project directory
| User Name | {{ data.uname }} | |
| {{ data.email }} | ||
| Age | {{ data.age_limit }} | |
| District ID | {{ data.district_id }}Click here for List | |
| Vaccine | {{ data.vaccine_type }} | |
| Price | {{ data.fee_type }} | |
| Days count | {{ data.days_count }} | |
| Recheck in | {{ data.wait_time/60 }} minutes | |
| Process | {% if process == 0 %}No Process Running | {% else %}{{ process }} Process is Running | {% endif %}


Event Location:
Ara Institute of Canterbury
130 Madras Street
Christchurch, Canterbury, New Zealand
Abstract:
Power BI helps you build appealing visualizations of your data. With ever growing footprint of data it is equally important to get real-time insights into your data. It can be as simple as monitoring a single metric or viewing real-time sales performance across multiple locations. Power BI real-time streaming enables you to stream data and update dashboards in real-time. Any time sensitive data can be a source of streaming data set like IoT sensor devices, social media sources, service usage metrics etc. In this session 1. I will dive deep into real-time analytics with Power BI. 2. How to build streaming tiles in Power BI Dashboards. 3. Demo using Power BI REST APIs. 4. Demo using Azure Event Hub and Azure Stream Analytics.
 Your organization wants to exploit their big data along with their day-to-day transactional data. You are now tasked with storing all this in one place and working your analytics magic on it. You start wondering how and where you would store this data, what kind of hardware you would need and and how you would learn everything from storing to processing to analysis in a short time – after all big data is a different type of beast from transactional data. Fear not, all you need to do is look to the heavens; with Azure Data Lake and Azure Data Lake Analytics, you could get started quite fast. After an introduction to Azure Data Lake, we will dive into how you could perform simple yet power analytics using methods that are familiar with Azure Data Lake Analytics.
Speaker(s): Gogula Aryalingam,
Abstract:
It’s almost a daily occurrence to hear about some sort of data breach. But what are the consequences of a data breach – for both the victims and companies involved – and what does that mean for you as a data professional. As governments start to legislate more in an effort to protect the privacy of its citizens the entire concept of data storage become more complex. Exactly what is legislation like the General Data Protection Regulation (GDPR) and how will it affect around the world. We’re seen Microsoft give us tools over the years – like Transparent Data Encryption and Dynamic Data masking - to help with this sort of thing – but is there a better answer? Come along to this session and hear how you and your team can lessen your chances of being the ones responsible for the next data breach.
Speaker(s): Martin Catherall,
Abstract:
Data Visualization is the front end of every BI system, and getting it right is one of the most important tasks in a BI application. Good visualization will affect tremendously on decision making process, bad visualization leads to wrong decisions. In this session, you will learn how to choose the right chart of visual with examples of Line chart, bar/column charts, and some other main charts in Power BI. You will also learn some tips and tricks to control interactivity of visuals in Power BI. You will learn about specific features in Power BI that helps empowering your visualizations. Session is full of demos, and through that you will learn tips and tricks for choosing best colors and best visuals for your solution.
Speaker(s): Reza Rad,
Abstract:
Power BI visualization is a holistic visualization tool. You can draw most of the popular charts with it. However, there is always some needs for specific charts that may not be available in Power BI standard visualizations of the marketplace. There is a possibility to extend the visualization capabilities using R language. There are two ways to use R to extend the visualization possibilities. The approach was introduced in 2015 as “R” custom visual that you can draw chart by writing R scripts. The editor for writing R was not that was good and also the end-user able to see the R code behind the chart. The second approach for using R to have more chart in Power BI has been introduced in 2017 that is about creating Custom visual file (pbiviz file) using R and JASON language. In this seminar, I am going to show how you can create any custom visual by writing R codes. You able to create a custom visual that has a specific icon, name, and parameters.
Speaker(s): Leila Etaati,
Abstract:
What actually happens when you execute a query. This session drills down into how SQL Server and other relational database systems work behind the scenes. We’ll look at the interpreter, optimizer, estimator, storage, memory, locking, blocking, indexes, statistics and everything else that makes it all work.
Speaker(s): Dave Dustin,
Abstract:
Welcome to the dungeon. Yes, SQL Server memory concepts are like entering a dungeon where you are guaranteed to get lost. It’s dark and complex out there and not many have come back alive. This session will help you find your way out of the dungeon. In this deep-dive session you will understand SQL Server memory architecture, how the database engine consumes memory and how to track memory usage. Complex concepts will be made simple and you will see some light beyond the darkness. Finally, you will learn how to troubleshoot common memory issues.
Speaker(s): Amit R S Bansal,
Abstract:
Like a building a bridge that collapses within days of its grand opening (if it even gets finished at all), sometimes our digital projects don't go the way we expect. Productivity initiatives are particularly fickle as we try to change the way that people work. So how do we make sure we can successfully become a digital workplace without it all coming crashing down around our ears? In this session, we will share our stories from our time in the field experiencing the twists and turns that productivity projects take; how to have success in your internal project; and if you choose to bring in external parties, how to make the most of them.
Speaker(s): Vanessa Larsen,
Abstract:
Are you a whizz at SQL and curious about learning more about DAX? This session will be aimed to share some helpful tips and tricks for creating beautiful DAX when building Power BI reports or Tabular Cubes. Most people who learn DAX come from an Excel background, but this session will be tailored to those used to set based approaches such as SQL. We will create data from thin air and show how you can shape your data model using DAX.
Speaker(s): Phillip Seamark,
Abstract:
In SQL 2016, SQL Server Reporting Services (SSRS) underwent massive changes with the addition of many new reporting features. Since that release, there have been many further developments, including the release of Power BI Report Server and SSRS 2017. In this demo laden session, Craig will recap the changes that SSRS has undergone from SSRS 2016 onwards, as well as look at and discuss Power BI Report Server.This session will be valuable for anyone new to SSRS, or anyone who has not had an opportunity to work with the latest versions of SSRS.
Speaker(s): Craig Bryden,
Abstract:
Organisations capture huge volumes of data and they need actionable information to act on them proactively in real-time to stay competitive. This requires a different thinking from the conventional Data Warehouse Architecture to more Cloud based Data Processing Architecture where high volume batch and real-time processing can be achieved using optimal cost. In this session you will learn about 1. Overview of Lambda Architecture 2. How Azure Services implement Lambda Architecture 3. Advantages of leveraging Azure for Lambda Architecture 4. Business Scenarios to consider Lambda Architecture 5. End to End Demo
Speaker(s): Anupama Natarajan,
Abstract:
Powershell has been part of Windows for > 10 years and has been part of SQL Server since 2008. In spite of this the adoption among Database Professionals for use in investigating and managing their environments has been low. With the release of the open source DBA Tools module from DBATools.IO, with its 300+ commands, the time has arrived for Database Professionals to embrace PowerShell and upgrade their skills to support the modern Hybrid environment. In this session we will look how to download, install and begin using the power within both this module and Powershell. No prior experience with Powershell required!
Speaker(s): Patrick Flynn,
Abstract:
Advanced data analytics does not live only in the realm of data scientists. The necessary tools now exist in SQL Server 2017 using the language which is number one on the list of most popular programming languages today, Python. This session will provide and introduction to Python, cover how to integrate the language into SQL Server, demonstrate how to use Python in stored procedures and review how you can determine the resources that Python is using within SQL Server.
Speaker(s): Ginger Grant,
Abstract:
Microsoft Cognitive Services enables developers to augment the next generation of applications with the ability to see, hear, speak, understand, and interpret needs using natural methods of communication. Hear from Sudeep and Amit on how Azure cognitive services is transforming the way we approach to problems.
Speaker(s): Sudeep Ghatak,
Abstract:
Are you interested in getting to know what your customers are thinking about your services? Empower your business with this end to end solution of creating feedback survey, sending and receving the responses and then finally analysing the same. In this session I will show you how to • Initiate customer feedback surveys using Google Forms. • Send the survey emails to the database contacts through data driven subscriptions of Reporting Services (SSRS) • And finally analyse the customer feedback using Power BI
Speaker(s): Indira Bandari,
Abstract:
As more and more businesses are looking to leverage cloud services to move and store their data we’ll take a look at how we can achieve that with ADF v2 and other Azure storage services. For the SSIS developer, we’ll translate some ADF terminology to help get you started as well as demonstrate some real-life examples from our customer engagements. And of course, being automation experts with Biml, we’ll demonstrate how we can automate the creation of ADF v2 assets.
Speaker(s): Simon Peck,
Abstract:
SQLOpsStudio is the new kid in town for the data professional. Is it a replacement for good old SSMS? In this session we will take you on a journey of comparing SSMS and SQLOpsStudio so that you can understand the ins and outs of both these tools, making it easier to know what each brings to the table. In this demo heavy session we not only hear about the differences but we match them up against each other to better learn what each can do.
Speaker(s): Warwick Rudd,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: https://www.linkedin.com/in/steveknutsonnz
Contact: https://onehundredwatt.wordpress.com
Steve is a Microsoft MVP for Office Servers and Services based in Christchurch, New Zealand. Steve brings more than 25 years of IT industry experience to clients’ projects. Past roles have included solutions architecture, systems engineering, business continuity, software development and IT planning and strategy in the local government, finance, legal, state owned enterprise, and education sectors. Steve has a Computer Science degree from Massey University and is a Microsoft Certified Systems Engineer and Microsoft Certified Technology Specialist for SQL Server. Steve is the Managing Director of Stratos Technology Partners and leads consulting work around SharePoint and Office 365.
LinkedIn: http://nz.linkedin.com/in/rezarad/
Contact: http://radacad.com/blog
Reza Rad is a Microsoft Regional Director, MVP, author, trainer, speaker and consultant. He is a Microsoft Data Platform MVP for nine years from 2011. Reza wrote many books on Power BI subjects including the Power BI from Rookie to Rock Star, and Pro Power BI Architecture. Reza is the invited speaker at the world's well-known conferences such as Microsoft Ignite, Microsoft Business Applications Summit, Ignite Tour, PASS Summit, and many other conferences. Reza is an active blogger and writes regularly about Power BI at https://radacad.com.
LinkedIn: https://www.linkedin.com/in/seamark
An accomplished database and business intelligence (BI) professional with an in-depth knowledge of the Microsoft BI stack along with extensive knowledge of data warehouse (DW) methodologies and enterprise data modelling. Expert knowledge in all facets of BI/DW including planning architecture, project management, dimensional modelling, performance tuning, ETL design, development and optimization, report and dashboard design as well as installation and administration. Author of multiple books on DAX. Over 27 years of commercial experience in delivering business applications across a broad range of technologies.
LinkedIn: https://www.linkedin.com/in/ginger-grant-3a177b157/
Contact: http://www.DesertIsleSQL.com
Ginger Grant manages the consultancy Desert Isle Group and shares what she has learned while working with data technology to people around the world. As a Microsoft MVP in Data Platform, Microsoft Certified Trainer and an instructor on DataCamp, she focuses on guiding clients to create solutions using the entire Microsoft Data Stack, which includes SQL Server, Power BI, and Azure Data Cloud components. When not working, she protypes the latest pre-release data technologies, maintains her blog http://www.desertislesql.com, and spends time on twitter @desertislesql.
LinkedIn: https://www.linkedin.com/pub/manohar-punna/15/153/508
Contact: http://www.sqlservergeeks.com/author/manoharpunna/
Manohar Punna is an Data Platform Geek and Vice President of DataPlatformGeeks by passion and a Data Platform Consultant by profession. He is a speaker at various conferences like PASS Summit, SQLBits, DPS. He has authored over 150 blogs and has written a One DMV a Day series which is a longest one day series on any topic on SQL Server till date. Manohar is a product of this community and strongly believes in giving back to the community. So, ask him anything you would like to know and he is happy to learn it with you.
LinkedIn: https://nz.linkedin.com/pub/leila-etaati/36/46/b03
Contact: http://blog.radacad.com
Leila Etaati is the First Microsoft AI MVP in New Zealand and Australia, as well as a Data Platform MVP. She has a Ph.D. from the University of Auckland and is the co-director and data scientist in RADACAD company with many clients around the world. Additionally, she is the co-organizer of Microsoft Business Intelligence and Power BI Use group in Auckland with more than 1300 members. Leila has also co-organized 3 main conferences in Auckland: SQL Saturday Auckland (from 2015), Difinity (from 2017) and Global AI Bootcamp. She is a data scientist, BI consultant, trainer, and speaker. She is a well-known International speaker to many conferences such as MS Ignite, SQL PASS, Data Platform Summit, SQL Saturday, Power BI World Tour and in Europe, USA, Asia, Australia, and NZ. She has over 10 years’ experience with databases and software systems. Leila is an active Technical Microsoft AI blogger in RADACAD.
LinkedIn: http://www.linkedin.com/in/AmitBansal2010
Amit R. S. Bansal is a SQL Server Specialist at SQLMaestros. He leads the SQL Server practice with a focused team providing consulting, training, and content development services to more than 160+ SQL customers globally. He frequently speaks at international conferences on SQL Server performance tuning, which is his core expertise. Amit is also honored with Microsoft Regional Director status, MVP award, and Microsoft Certified Master of SQL Server credential. Amit has been working with SQL Server since 1999 and has been part of countless mission-critical SQL deployments. Performance Tuning in SQL Server is his core area of expertise. To learn more about Amit, visit http://sqlmaestros.com/amit-bansal.
LinkedIn: https://www.linkedin.com/in/martincatherall
Contact: http://martincatherall.com
Martin is a data consultant in Melbourne, Australia, a Microsoft Data Platform MVP, and PASS Regional Mentor for the Asia Pacific (APAC) region. Martin founded the Christchurch, New Zealand PASS Local Group and lead the group for a number of years before relocating to Melbourne. He has been using SQL Server in various roles since 2000. In addition to anything data related, he enjoys playing the guitar and having fun with his family.
LinkedIn: http://au.linkedin.com/pub/warwick-rudd/0/956/718
Contact: http://www.sqlmastersconsulting.com.au/Blog
Warwick Rudd is a Microsoft Certified Master – SQL Server 2008 and Principal Consultant at SQL Master Consulting. He is a frequent speaker at local SQL Server User Groups and SQLSaturday events in Australia. When not playing with the SQL stack, Warwick likes to get away to the cold and spend time snowboarding.
LinkedIn: https://au.linkedin.com/in/heidi-hasting-a068694
Heidi Hasting is a Business Intelligence professional and former software developer with over seven years experience in Microsoft products. She is an ALM/DLM enthusiast and Azure DevOps fan and co-founder and organiser of the Adelaide Power BI User Group. Heidi is a regular attendee at tech events including Azure Bootcamps, DevOps days, SQLSaturdays, Difinity and PASS Summit.
LinkedIn: https://www.linkedin.com/in/craigbryden/
Craig has been working with SQL Server for over 20 years and currently holds several SQL Server based certifications. He has also previously held an MCT certification. Craig's contribution to the SQL Server community was recognised in 2018 with a Microsoft MVP award. He was involved with Microsoft Learning to set some of the current SQL server Exams. Craig is the Chief Data Strategist at BiTQ. Craig is an organiser of the QLD Power BI User Group
LinkedIn: https://nz.linkedin.com/in/hamishwatson8
Contact: http://www.sqlservercentral.com/blogs/the-hybrid-dbas-blog/
Hamish Watson is a Microsoft Data Platform MVP and VMware Expert with a passion for efficient database and application deployment using DevOps methodologies. He has 20+ years of IT experience in managing and deploying large scale databases on SQL Server technologies. He has been managing SQL Server since SQL Server 2000, and pragmatic approaches to delivering business value to clients is his career passion. Educating and helping others learn is a driver for Hamish. He is a Director-At-Large on the PASS Board, international speaker, and a repeat guest lecturer at a local university.
LinkedIn: https://www.linkedin.com/in/sudeepghatak/
I have been working in the SharePoint, Office 365 and Azure space for close to 10 years now. Have spoken at some well known conferences including Digital Workplace Conference. I run the Christchurch Azure meetup.
LinkedIn: http://www.linkedin.com/in/gogula
Contact: http://datamaul.wordpress.com
Gogula is a data analytics professional from Sri Lanka, with 14+ years on the Microsoft data platform. He has worked with many aspects of data analytics and BI solutions from architecting, designing, developing and consulting across various industries and verticals. He is Regional Mentor for PASS South Asia, Data Platform MVP, MCSE, former MCT, and MSc in IT. Gogula's passion revolves data analytics and BI; hence enjoys writing, teaching and speaking about the things he works with. He was also involved as an SME for Microsoft certification development. He currently juggles his full time job as Lead Architect while speaking at local and foreign events, along with regular stints at the Sri Lankan Data Community which he co-founded.
LinkedIn: https://www.linkedin.com/in/indira-bandari/
Contact: http://mytechlearning.blogspot.co.nz/
Indira is a Microsoft Data Platform MVP in New Zealand. She has a Masters degree in Statistics and is passionate about data, analytics and Artificial Intelligence. She is a BI and SQL Lead, an international speaker, mentor and part time trainer with over 15 years of experience in designing and developing data warehouses and analytical solutions. Volunteering and sharing her knowledge is her passion. In her pass time, she runs free game development classes, database concepts and data visualization classes for 9-16 year old kids. She is a Co-organiser for Data, Insights and Power BI User Group , Auckland AI Meetup Group and SQL Saturday Auckland. She speaks at various conferences, Virtual Webinars, PASS events etc
LinkedIn: https://nz.linkedin.com/in/anupama-natarajan-516a107
Contact: http://www.anupamanatarajan.com
Anu Natarajan is a Data and AI Consultant with 15+ years of experience working in design and development of Data Warehouse, Business Intelligence, AI enabled applications, and SaaS integrated solutions. Anu is a Microsoft MVP Data Platform, Microsoft Certified Trainer and passionate in sharing knowledge. She loves solving complex business problems with innovative solutions using technologies. Anu also speaks at conferences including PASS Summit, SQL Saturdays, Data Platform Summit, Difinity, and she organizes local user group meetups.
With more than 35 years industry experience, Dave has worked with organisations and data systems of all sizes. He is currently Principal Engineer at Xero.
LinkedIn: http://nz.linkedin.com/in/rezarad/
Contact: http://radacad.com/blog
Reza Rad is a Microsoft Regional Director, MVP, author, trainer, speaker and consultant. He is a Microsoft Data Platform MVP for nine years from 2011. Reza wrote many books on Power BI subjects including the Power BI from Rookie to Rock Star, and Pro Power BI Architecture. Reza is the invited speaker at the world's well-known conferences such as Microsoft Ignite, Microsoft Business Applications Summit, Ignite Tour, PASS Summit, and many other conferences. Reza is an active blogger and writes regularly about Power BI at https://radacad.com.
LinkedIn: https://www.linkedin.com/in/vanessalarsen/
For over 6 years Vanessa has consulted on a wide range of solutions for clients in both Australia and New Zealand utilizing the features in SharePoint and Office 365. Vanessa specialises in maneuvering SharePoint and Office 365 to the business goals of her clients and is passionate about achieving a more productive digital workplace.
Contact: http://sqllensman.com/blog/
Patrick Flynn is a Senior Database Administrator with 10 years experience in large 24 x 7 enterprise environments. He is a certified master for SQL Server and a regular attendee of the PASS Summit. Has presented at SQLSaturday events in Sydney, Melbourne, Brisbane and Auckland, Edmonton and Calgary, Oslo and Cambridge
LinkedIn: http://au.linkedin.com/in/martincairney
Martin has 20 years’ experience in SQL Server technologies. His experience spans both the Database Engine and infrastructure requirements, and Data Warehousing and BI implementations. He has worked across many industry sectors including London’s global financial institutions and both State and Federal Government Departments. He is a SQL Server MVP, MCT and an experienced conference presenter, having presented at PASS Summit, SQLBits, and SQL Saturday events and User Groups round the world
LinkedIn: https://www.linkedin.com/in/monchopper
Simon is a MCSE in data analytics, certified Biml Expert (BimlHero) and co-author of "The Biml Book" he has been working with SQL Server since the 90's. Simon is a director of Data Engineers a Christchurch based data solutions provider specialising in Microsoft based cloud and on-premise BI and Data Warehousing solutions. Having worked for 50+ organisations worldwide over last 20 years he has a wealth of experience across many business sectors, he is also a co-leader of the Christchurch SQL User Group.
The following is a list of sponsors that helped fund the event.


Build form controls with floating labels via the :placeholder-shown pseudo-element. Works in latest Chrome, Safari, and Firefox.
:placeholder-shown


atom
Read and write Atom 1.0 feeds.
Overview
atom provides the means to read RFC 4287 conforming Atom 1.0 documents, which are either feeds or single entries. Procedures are provided to access child elements of feeds and entries, such as the feed author, and also to access the child elements and contents of these children, such as author name and email.
Elements themselves are returned as plain SXML documents, which are for the most part verbatim copies of the XML input elements. This is true even for the Atom document itself, which is the SXML representation of the original XML document. This means that if desired, you can access elements or the entire document using standard list deconstructors or sxpath rather than the provided accessors.
For example, accessing the feed author returns an atom:author child:
> (feed-author feed) ;=> (atom:author (atom:name "A. Hacker") (atom:uri "http://www.hacker.dim") (atom:email "buzz+off@hacker.dim"))
and you can either use the accessors, or deconstruct the result manually:
> (author-name (feed-author feed)) ;=> "A. Hacker" > (cadr (assq 'atom:name (cdr (feed-author G)))) ;=> "A. Hacker"
Or for a list of all people (authors, contributors, etc.) mentioned in atom:name elements anywhere in the feed:
> (delete-duplicates ((sxpath '(// atom:name *text*)) feed)) ;=> ("A. Hacker" "A. Contributor" "A. Groupie")
Element contents and element attributes are generally returned as text strings. This includes HTML contents, which will be unescaped for you. It also includes RFC3339 datetime strings, which can be deconstructed using the rfc3339 egg, and URIs, which can be manipulated with uri-common. Certain elements may contain XHTML or XML documents; special accessors for these elements are provided, which return their contents as SXML.
The same rules apply when creating a document; elements may be generated using their constructors or created directly in SXML if you understand the format. For example, these two excerpts are equivalent:
> (make-feed authors: (list (make-author name: "Jim" email: "himmy@pimmy.dim")) ...) > (make-feed authors: (list '(atom:author (atom:name "Jim") (atom:email "himmy@pimmy.dim"))) ...)
except that make-author checks its input, ensuring the required name element is present and that all arguments are strings. Other constructors may do more complicated constraint checking or simplify element creation.
Read interface
Atom document
[procedure] (read-atom-doc port)Reads an Atom Feed Document or Atom Entry Document from PORT and returns an SXML document representing the entire XML document, including any processing instructions. If the document is not readable as XML or does not contain a single atom:feed or atom:entry root element, an error is thrown.
[procedure] (atom-doc-root doc)Return the root element of the document, which will be an atom:feed or atom:entry node.
[procedure] (atom-doc-encoding doc)Return XML document encoding as provided in the document; defaults to "utf-8".
[procedure] (read-atom-feed port)Convenience function which reads an Atom Feed Document and returns the root atom:feed element. If this fails, an error is thrown.
[procedure] (read-atom-entry port)Convenience function which reads an Atom Entry Document and returns the root atom:entry element. If this fails, an error is thrown.
Feeds
[record] atom:feedAn atom:feed element, which represents an Atom feed. Records such as atom:feed are just SXML documents (list structures) like
(atom:feed (atom:author ...) (atom:title ...) ...)
and can be queried either via the provided accessors, or directly via list destructuring if desired.
[procedure] (feed? F)Returns true if F is an atom:feed element.
[procedure] (feed-authors F)[procedure] (feed-author F)
feed-authors returns a list of feed authors; that is, atom:author children of the feed. A null list designates no authors.
feed-author returns the first feed author, or #f if none.
Feeds must contain at least one author element unless every feed entry contains one, as the default authorship for entries is that of the feed.
[procedure] (feed-categories F)Returns a list of feed categories (atom:category children), or null.
[procedure] (feed-contributors F)Returns a list of feed contributors (atom:contributor children), or null.
[procedure] (feed-generator F)Returns the feed generator (the atom:generator child), or #f if none.
[procedure] (feed-icon F)Returns the feed icon (the atom:icon child), or #f if none.
[procedure] (feed-id F)Returns the feed ID as a string (the text contents of the atom:id child), or the empty string if no ID. The ID is required in an Atom feed.
[procedure] (feed-links F)Returns a list of feed links (atom:link children), or null.
[procedure] (feed-logo F)Returns the feed logo (atom:logo child), or #f if none.
[procedure] (feed-rights F)Returns the feed rights (atom:rights child), or #f if none.
[procedure] (feed-subtitle F)Returns the feed subtitle (atom:subtitle child), or #f if none.
[procedure] (feed-title F)Returns the feed title (atom:title child), or #f if none. The Atom spec requires a feed title.
[procedure] (feed-updated F)Returns an rfc3339 string representing the last time the feed was updated. The Atom spec requires this field to be present.
[procedure] (feed-entries F)Return a list of feed entries (atom:entry children), or null.
Entries
[record] atom:entryAn atom:entry element, which represents an Atom entry. Records such as atom:entry are just SXML documents (list structures) like
(atom:entry (atom:author ...) (atom:id ...) ...)
and can be queried either via the provided accessors, or directly if desired.
[procedure] (entry? E)Returns true if E is an atom:entry.
[procedure] (entry=? E1 E2)Returns true if E1 and E2 represent the same atom:entry. This tests the entry IDs for equivalence.
[procedure] (entry-authors E)[procedure] (entry-author E)
entry-authors returns a list of entry authors; that is, atom:author children of the entry. A null list designates no authors.
entry-author returns the first entry author, or #f if none.
Each entry must have at least one author. If not present as a child of the entry, it must be present in the entry's source feed element (for aggregated content), or in the feed element itself.
Currently, you must handle this manually. One possibility is:
(or (entry-author E) (feed-author F))[procedure] (entry-categories E)
Returns a list of entry categories (atom:category children), or null.
[procedure] (entry-contributors E)Returns a list of entry contributors (atom:contributor children), or null.
[procedure] (entry-content E)Returns the entry content (the atom:content child), or #f if none. Entries need not contain a content element, but if not, they must contain an atom:link with a link-relation of "alternate".
[procedure] (entry-id E)Returns the entry ID as a string (the text contents of the atom:id child), or the empty string if no ID. Atom entries must contain exactly one atom:id element.
[procedure] (entry-links E)Returns a list of entry links (atom:link children), or null.
[procedure] (entry-published E)Returns an rfc3339 datetime string, typically representing the entry's initial creation time or first availability.
[procedure] (entry-rights E)Returns the entry rights (atom:rights child), or #f if none.
If no entry rights are present, the feed's rights are considered to apply. Currently, you must do this manually:
(or (entry-rights E) (feed-rights F))[procedure] (entry-source E)
Returns the entry's source feed information (atom:source child), or #f if none.
The entry's source feed is used by Atom content aggregators to record information on where the entry came from.
[procedure] (entry-summary E)Returns the entry summary (atom:summary child), or #f if none. The summary must be present if the entry's content is of kind 'external or 'binary.
[procedure] (entry-title E)Returns the entry title (atom:title child), or #f if none. Atom entries must contain exactly one atom:title element.
[procedure] (entry-updated E)Returns an rfc3339 string representing the last time the entry was updated. Atom entries must contain exactly one atom:updated element.
Persons
[record] atom:author[procedure] (author? A)
[procedure] (author-name A)
[procedure] (author-uri A)
[procedure] (author-email A)
Predicate and accessors for atom:author elements, representing the authors of the feed or entry.
- name
- (required by spec) the author's name, a string
- uri
- a URI associated with the author, a string
- the author's email address, a string conforming to RFC2822
Accessors return the empty string if the field is not present.
[record] atom:contributor[procedure] (contributor? A)
[procedure] (contributor-name A)
[procedure] (contributor-uri A)
[procedure] (contributor-email A)
Predicate and accessors for atom:contributor elements, representing contributors to the feed or entry.
- name
- (required by spec) the contributor's name, a string
- uri
- a URI associated with the contributor, a string
- the contributor's email address, a string conforming to RFC2822
Accessors return the empty string if the field is not present.
Rights, Summary, Title, Subtitle
[record] atom:rights[procedure] (rights? A)
[procedure] (rights-type A)
[procedure] (rights-text A)
[procedure] (rights-xhtml A)
Predicate and accessors for atom:rights elements, which represent human-readable rights information for the feed. This element is an atomtextConstruct, so it may contain either text (here meaning either plain text or HTML), or XHTML content.
rights-type will return the type of content as a symbol:
- 'text
- text content
- 'html
- html content (considered to be text)
- 'xhtml
- XHTML content
rights-text returns the contents of the element as a string, and is what you should use for 'text or 'html types. HTML will be unescaped for you, but is still returned as a string. It returns the empty string if no text is present.
rights-xhtml returns the XHTML contents of the element as an SXML document. The root element inside the contents must be an XHTML div (xhtml:div). If such an element is not found, it returns #f. Note that we return the div as the root of the SXML document, but the Atom spec says you must not consider the div itself part of the content.
[record] atom:summary[procedure] (summary? A)
[procedure] (summary-type A)
[procedure] (summary-text A)
[procedure] (summary-xhtml A)
Predicate and accessors for atom:summary elements, representing an excerpt or abstract for an entry. For meaning, see atom:rights.
[record] atom:subtitle[procedure] (subtitle? A)
[procedure] (subtitle-type A)
[procedure] (subtitle-text A)
[procedure] (subtitle-xhtml A)
Predicate and accessors for atom:subtitle elements, representing a subtitle for the feed. For meaning, see atom:rights.
[record] atom:title[procedure] (title? A)
[procedure] (title-type A)
[procedure] (title-text A)
[procedure] (title-xhtml A)
Predicate and accessors for atom:title elements, representing a title for the feed or entry. For meaning, see atom:rights.
Generators
[record] atom:generator[procedure] (generator? G)
[procedure] (generator-agent G)
[procedure] (generator-uri G)
[procedure] (generator-version G)
Predicate and accessors for atom:generator elements, which represent the (machine) agent that generated the feed.
- agent
- a human-readable, plain-text name for the generating agent, as a string
- uri
- URI relevant to the agent, as a string
- version
- version of the generating agent, as a string
Icons & Logos
[record] atom:icon[procedure] (icon? I)
[procedure] (icon-uri I)
Predicate and accessors for atom:icon elements, which represent iconic visual identification for the feed. icon-uri returns a URI string which points to the icon image.
[record] atom:logo[procedure] (logo? I)
[procedure] (logo-uri I)
Predicate and accessors for atom:logo elements, which represent visual identification for the feed. logo-uri returns a URI string which points to the logo image.
Categories
[record] atom:category[procedure] (category? I)
[procedure] (category-term I)
[procedure] (category-scheme I)
[procedure] (category-label I)
[procedure] (category-contents C)
Predicate and accessors for atom:category elements, which represent the categorization of the feed or entry.
- term
- (required by spec) category name, as a string
- scheme
- URI that identifies a categorization scheme, as a string
- label
- human-readable plain-text label for the category, as a string
- contents
- Contents of the category element as an SXML document; undefined by the specification, but it might be useful.
term, scheme and label accessors return #f for missing information instead of the empty string as atom:author and atom:rights accessors do. This inconsistency is probably a bug.
Links
[record] atom:link[procedure] (link? L)
[procedure] (link-uri L)
[procedure] (link-relation L)
[procedure] (link-type L)
[procedure] (link-uri-language L)
[procedure] (link-title L)
[procedure] (link-length L)
[procedure] (link-contents L)
Predicate and accessors for atom:link elements, which represent a reference from an entry or feed to a Web resource.
- uri
- (required by spec) the URI (@href) of the link, as a string
- relation
- the link relation type (@rel) as a string (defaults to "alternate" if not present)
- title
- human-readable, plain-text title for the link, as a string
- type
- advisory MIME media type for the referenced resource, as a string
- length
- advisory length in octets for the referenced resource, as an exact integer
- uri-language
- an RFC3066 language tag (@hreflang) for the referenced resource, as a string
- contents
- Contents of the atom:link element as an SXML document; undefined by the specification, and unlikely to be present
Accessors return #f if the associate attribute is not present in the document, except for link-relation, which returns "alternate".
Source feeds
[record] (source? S)[procedure] (source-authors S)
[procedure] (source-author S)
[procedure] (source-categories S)
[procedure] (source-contributors S)
[procedure] (source-generator S)
[procedure] (source-icon S)
[procedure] (source-id S)
[procedure] (source-links S)
[procedure] (source-logo S)
[procedure] (source-rights S)
[procedure] (source-subtitle S)
[procedure] (source-title S)
[procedure] (source-updated S)
Predicate and accessors for atom:source elements, which represent metadata about the source feed from which the containing entry was taken, and are used for feed aggregators.
Accessors have the same meaning as the corresponding accessors for feeds.
Content
[record] atom:content[procedure] content?
[procedure] (content-kind C)
[procedure] (content-type C)
[procedure] (content-source C)
[procedure] (content-text C)
[procedure] (content-xhtml C)
[procedure] (content-xml C)
[procedure] (content-contents C)
Predicate and accessors for atom:content elements, which represent feed or entry content.
Atom content types may be one of "text", "html", "xhtml", or any valid MIME type; further, the structure and meaning of the content itself depends on the MIME type. To simplify this, we normalize the MIME type and we categorize it by kind:
- type
- The indicated MIME media type of the contents. If the type in the source document is text, html, or xhtml, we normalize this to text/plain, text/html, or application/xhtml+xml respectively. If no type is explicitly indicated, it defaults to text/plain.
- kind
- The computed "kind" of the contents, as a symbol. This determines how you should handle the content.
kind may be one of the following symbols, which represent
- text
- plain text (text/plain), the default
- html
- HTML text (text/html)
- xhtml
- an XHTML div element (application/xhtml+xml)
- xml
- XML; any MIME type string ending with /xml or +xml, or one of the RFC3023 XML media types
- textual
- text data; any other MIME type starting with text/
- binary
- base64-encoded binary data; any other MIME type other than those mentioned above
- external
- external data pointed to by a URI
To obtain the content, you should use the proper accessor based on the kind:
- text
- content-text, returning a string (or empty string, if no content)
- html
- content-text, returning an unescaped HTML string (or empty string)
- xhtml
- content-xhtml, returning the XHTML div element as SXML, or #f
- xml
- content-xml, returning the root element (whatever it is) as SXML, or #f [*]
- textual
- content-text, returning a string (or empty string)
- binary
- content-text, returning a base64-encoded string; use base64 to decode it
- external
- content-source, returning the external URI as a string, or #f
[*] XML contents conventionally consist of a single root element with no siblings, which is returned directly as (node ...). If more than one such element is found, they are all returned wrapped in a *TOP* node, like (*TOP* (node1 ...) (node2 ...) ...).
For xml, textual, binary and external kinds, you will then need to refer to the content media type to actually process it.
And finally the raw content accessor, just in case:
- contents
- Contents of the atom:contents element as a raw list of nodes. Does not try to process the content.
IDs
[record] atom:id[procedure] (id=? id1 id2)
Atom IDs are represented by plain strings in this egg, rather than atom:id elements. ID equality should be tested using id=?, which is aliased to string=?.
Write interface
Producing an Atom document
[procedure] (write-atom-doc doc #!optional (port (current-output-port)))Write the Atom Feed or Atom Entry Document DOC, an SXML document typically created by make-atom-doc, to PORT.
[procedure] (make-atom-doc root #!key (declare-xml? #t) (encoding "utf-8") (headers '()))Create an Atom Feed Document or Atom Entry Document. ROOT is the atom:feed or atom:entry SXML root node, usually created by make-feed or make-entry. Returns a SXML document representing the entire Atom document, which can be written out using write-atom-doc.
- declare-xml?
- Whether to add an XML declaration to the document, as a boolean value.
- encoding
- The encoding to declare in the (optional) XML declaration, as a string.
- headers
- A list of headers to include in the output document; see below.
Arbitrary headers may be added to the output document. These headers should, generally, be XML processing instructions or comments, since the document must consist of only one root node. For example, you can prepend some stylesheet instructions:
(write-atom-doc (make-atom-doc feed headers: '((*PI* xml-stylesheet "type=\"text/xsl\" href=\"http://3e8.org/styles/atom.xsl\"") (*PI* xml-stylesheet "type=\"text/css\" href=\"http://3e8.org/styles/atom.css\""))) <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="http://3e8.org/styles/atom.xsl"?> <?xml-stylesheet type="text/css" href="http://3e8.org/styles/atom.css"?> <atom:feed xmlns:atom="http://www.w3.org/2005/Atom"> ...
Since this procedure just returns a complete SXML document beginning with a *TOP* node, you could instead modify the returned document and add any processing instructions yourself. headers is just a convenient way of doing so.
Feed constructor
[procedure] (make-feed #!key KEYS)Make a new atom:feed element, with KEYS corresponding to child elements. Raises an error if any required elements are missing.
Required elements:
- authors
- a list of atom:author elements, the authors of the feed
- id
- an atom:id string, a permanent, unique absolute IRI identifier
- title
- an atom:title element, a human-readable title for the feed
- updated
- an atom:updated element, an RFC3339 timestamp indicating last update time
Optional elements:
- categories
- a list of atom:category elements, the feed categories
- contributors
- a list of atom:contributor elements, the contributors to the feed
- generator
- an atom:generator element, the feed generator
- icon
- an atom:icon element, the feed icon
- links
- a list of atom:link elements, the feed links
- logo
- an atom:logo element, the feed logo
- rights
- an atom:rights element, a human-readable description of rights held over the feed
- subtitle
- an atom:subtitle element, a human-readable subtitle for the feed
- entries
- a list of atom:entry elements, the feed entries
Notes:
- It's a good idea to provide an "alternate" link for your feed and for each entry, pointing to the source document. See make-link.
- authors may be omitted if all entries contain authorship information (meaning, atom:author elements as direct children). make-feed will detect this case.
- If you omit generator, it defaults to describing this egg. To completely omit the generator element, which would make me sad, pass #f.
Entry constructor
[procedure] (make-entry #!key KEYS)Make a new atom:entry element, with KEYS corresponding to child elements. Raises an error if any required elements are missing.
Required elements:
- id
- an atom:id string, a permanent, unique absolute IRI identifier for the entry
- title
- an atom:title element, a human-readable title for the entry
- updated
- an atom:updated element, an RFC3339 timestamp indicating last update time
Optional elements:
- authors
- a list of atom:author elements, the authors of the entry
- categories
- a list of atom:category elements, the entry categories
- contributors
- a list of atom:contributor elements, the contributors to the entry
- content
- an atom:content element, the entry content
- links
- a list of atom:link elements, the entry links
- published
- an atom:published element, an RFC3339 timestamp indicating initial creation time
- rights
- an atom:rights element, a human-readable description of rights held over the entry
- source
- an atom:source element, information about the feed source for content aggregators
- summary
- an atom:summary element, a human-readable summary, abstract or excerpt of the entry
Additional notes:
Entry author elements are optional as long as the containing feed contains authorship information. If the feed does not, the entry must contain least one author element. This will be checked in make-feed.
Entry elements without a atom:content element must contain an atom:link with link-relation "alternate". This is checked in make-entry.
Entry summary elements are optional unless an atom:content element is present and its content kind is 'external or 'binary. This is checked in make-entry.
It is illegal for entries to contain more than one atom:link element with a link-relation of "alternate" and the same type and uri-language values. This is not checked in make-entry.
Person constructors
[procedure] (make-author #!key name uri email)Create an atom:author element.
- name
- (required) the author's name, a string
- uri
- a URI associated with the author, a string
- the author's email address, a string conforming to RFC2822
Create an atom:contributor element.
- name
- (required) the contributor's name, a string
- uri
- a URI associated with the contributor, a string
- the contributor's email address, a string conforming to RFC2822
Text constructors
[procedure] (make-rights contents #!key (type 'text))[procedure] (make-subtitle contents #!key (type 'text))
[procedure] (make-summary contents #!key (type 'text))
[procedure] (make-title contents #!key (type 'text))
Create a new atom:rights, atom:subtitle, atom:summary, or atom:title element with CONTENTS of type TYPE. The accepted value for CONTENT varies according to TYPE:
- 'text
- (default) a plain text string
- 'html
- an HTML string (it will be escaped for you when written to XML)
- 'xhtml
- an XHTML div element as SXML
> (make-title "Mesoamerican Deities and You") ; => (atom:title (@ (type "text")) "Mesoamerican Deities and You") > (make-rights '(xhtml:div "Copyright (c) 2012 the feathered serpent, " (xhtml:b "Quetzlcoatl")) type: 'xhtml) ; => (atom:rights (@ (type "xhtml")) (xhtml:div "Copyright (c) 2012 the feathered serpent, " (xhtml:b "Quetzlcoatl"))) > (make-summary "<p>Coping strategies for when your best friend is a <a href='http://en.wikipedia.org/wiki/Quetzalcoatl'>mythical god</a> and just <i>won't move out</i> of your cramped apartment</p>" type: 'html) ; => (atom:summary (@ (type "html")) "<p>Coping strategies for when your best friend is a <a href='http://en.wikipedia.org/wiki/Quetzalcoatl'>mythical god</a> and just <i>won't move out</i> of your cramped apartment</p>")
Generator constructor
[procedure] (make-generator agent #!key uri version)Create an atom:generator element representing the feed generator.
- agent
- a human-readable, plain-text name for the generating agent, as a string
- uri
- URI relevant to the agent, as a string
- version
- version of the generating agent, as a string
Icon & Logo constructors
[procedure] (make-icon uri)Create an atom:icon element, which represents iconic visual identification for the feed. URI should be a URI string pointing to the icon image.
[procedure] (make-logo uri)Create an atom:logo element, which represents visual identification for the feed. URI should be a URI string pointing to the logo image. Compare to make-icon.
ID constructor
IDs are plain strings, and will be automatically converted to atom:id elements when passed to make-feed or make-entry. No constructors are currently provided.
Each unique entry and feed must contain a unique atom:id, which must be an absolute URI. One option is to use the permalink of your entry or feed in this field. Another is to use a tag URI, which is generally considered more robust. An example tag URI for an entry might look like:
tag:domain.org,2012-12-21:/blog/the-mayans-are-coming
Also see The "atom:id" Element in RFC 4287 for details on atom:id and e.g. these tutorials for ideas on ID creation. Note that tag URIs have some important restrictions on which characters are valid.
Category constructor
[procedure] (make-category #!key term scheme label)Create an atom:category element representing the feed or entry category.
- term
- (required) category name, as a string
- scheme
- URI that identifies a categorization scheme, as a string
- label
- human-readable plain-text label for the category, as a string
Link constructor
[procedure] (make-link #!key uri relation title ...)Create an atom:link element representing a reference from an entry or feed to a Web resource.
- uri
- (required) the URI (@href) of the link
- relation
- (default "alternate") the link relation type (@rel) as a string; see below
- title
- human-readable, plain-text title for the link, as a string
- type
- advisory MIME media type for the referenced resource, as a string or MIME-type symbol
- length
- advisory length in octets for the referenced resource, as an exact integer
- uri-language
- an RFC3066 language tag (@hreflang) for the referenced resource, as a string
The five common link relations are:
- "alternate"
- an alternate version of this resource. For a feed, it might be a link to your webpage; for an entry, it might be a permalink to your blog entry, with type: 'html. Feed readers work better when you include such a link.
- "self"
- a link to this Atom document, usually the URI to your Atom feed with type: 'atom.
- "related"
- a related link
- "enclosure"
- identifies a "potentially large" external resource; you should provide length:
- "via"
- a link to the source of the information
For type:, the currently known MIME-type symbol shortcuts are 'text, 'html, 'xhtml, and 'atom. Otherwise, use the full type name as a string.
Source constructor
[procedure] (make-source #!key authors categories contributors ...)Create an atom:source element representing the source feed from which the containing entry was taken. This is used by content aggregators to preserve metadata about their source feeds.
See the feed constructor make-feed for the meaning of these elements, and then see RFC 4287 for what metadata you would typically preserve.
Content constructor
[procedure] (make-content content #!key (type 'text) source)Create an atom:content element representing the content of an entry. Acceptable values for CONTENT vary according to the value of TYPE.
- type
- (default 'text) the MIME media type of the content as a string, or one of the shorthand symbols 'text, 'html or 'xhtml. See below.
- source
- a source URI the client must dereference to obtain the content, as a string. In this case, CONTENT is ignored and the element content will be empty. Use a dummy value for content such as #f or the empty string.
The content type may be:
- 'text or "text/plain"
- a human-readable, plain text string
- 'html or "text/html"
- a string containing HTML markup (which will be escaped for you)
- 'xhtml or "application/xhtml+xml"
- an xhtml:div element
- an XML MIME type
- an SXML document consisting of a single root node. An XML MIME type is any MIME type string ending with "/xml" or "+xml", or one of the RFC3023 XML media types
- a textual MIME type
- a text string; a textual MIME type is any MIME type string starting with "text/"
- any other MIME type
- the content is considered binary, and the user must pass a base64 encoded string as the content.
Miscellany
[parameter] (atom-ns-prefixes)An alist of XML namespace prefixes used when reading or writing feeds. Most known namespaces relevant to Atom are included, so it is normally not necessary to touch this unless you come across an unusual namespace.
A symptom of a missing namespace is that on read, some feed elements are qualified with a full URI instead of a prefix abbreviation, and on write that some are qualified with namespace 'prfx1:' or the like.
Examples
Creating the "extensive" example feed from RFC4287:
(use atom rfc3339) (write-atom-doc (make-atom-doc (make-feed title: (make-title "dive into mark") subtitle: (make-subtitle "A <em>lot</em> of effort went into making this effortless" type: 'html) updated: "2005-07-31T12:29:29Z" id: "tag:example.org,2003:3" links: (list (make-link type: 'html uri-language: "en" uri: "http://example.org") (make-link relation: "self" type: "application/atom+xml" uri: "http://example.org/feed.atom")) rights: (make-rights "Copyright (c) 2003, Mark Pilgrim") generator: (make-generator "Example Toolkit" uri: "http://www.example.com" version: "1.0") entries: (list (make-entry title: (make-title "Atom draft-07 snapshot") links: (list (make-link type: 'html uri: "http://example.org/2005/04/02/atom") (make-link relation: "enclosure" type: "audio/mpeg" length: 1337 uri: "http://example.org/audio/ph34r_my_podcast.mp3")) id: "tag:example.org,2003:3.2397" updated: (rfc3339->string (make-rfc3339 2005 07 31 12 29 29 0 0)) published: (rfc3339->string (make-rfc3339 2003 12 13 08 29 29 0 (* 3600 4))) authors: (list (make-author name: "Mark Pilgrim" uri: "http://example.org" email: "f8dy@example.com")) contributors: (list (make-contributor name: "Sam Ruby") (make-contributor name: "Joe Gregorio")) ;; xml:base, xml:lang cannot be handled yet content: (make-content '(xhtml:div (xhtml:p (xhtml:i "[Update: The Atom draft is finished.]"))) type: 'xhtml))))))
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <generator uri="http://www.example.com" version="1.0">Example Toolkit</generator> <id>tag:example.org,2003:3</id> <link href="http://example.org" rel="alternate" type="text/html" hreflang="en" /> <link href="http://example.org/feed.atom" rel="self" type="application/atom+xml" /> <rights type="text">Copyright (c) 2003, Mark Pilgrim</rights> <subtitle type="html">A <em>lot</em> of effort went into making this effortless</subtitle> <title type="text">dive into mark</title> <updated>2005-07-31T12:29:29Z</updated> <entry> <author> <name>Mark Pilgrim</name> <uri>http://example.org</uri><EMAIL_ADDRESS></author> <contributor> <name>Sam Ruby</name> </contributor> <contributor> <name>Joe Gregorio</name> </contributor> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml"> <p> <i>[Update: The Atom draft is finished.]</i> </p> </div> </content> <id>tag:example.org,2003:3.2397</id> <published>2003-12-13T08:29:29-04:00</published> <title type="text">Atom draft-07 snapshot</title> <updated>2005-07-31T12:29:29Z</updated> <link href="http://example.org/2005/04/02/atom" rel="alternate" type="text/html" /> <link href="http://example.org/audio/ph34r_my_podcast.mp3" rel="enclosure" type="audio/mpeg" length="1337" /> </entry> </feed>
Known Issues
- xml:base and xml:lang are not supported, either on reading or writing. You can add these attributes manually to the output document for writing, but for reading the parser will not understand them and relative URLs will not be resolved.
- Elements outside the atom: namespace, such as feedburner:, will repeatedly declare their prefix mapping in the element itself instead of in the root element, leading to a large amount of redundant verbosity.
- Dealing with extension elements and attributes is a bit painful as you must manipulate the SXML directly.
About this egg
Author
Version history
- 0.1.1
- Use default namespace for atom and xhtml
- 0.1
- Initial release
Experimental code may be available via `git clone git://3e8.org/atom.git`.
License
BSD.


---
layout: post
title: Camel fossils found in Canadian Arctic
date: '2013-03-25T13:34:00.002-04:00'
author: Robert Sica
tags:
- arctic
- camel
- nunavut
modified_time: '2013-07-30T14:19:11.620-04:00'
blogger_id: tag:blogger.com,1999:blog-736339229338318027.post-2216946375247167386
blogger_orig_url: http://blog.purplecrowlidar.ca/2013/03/camel-fossils-found-in-canadian-arctic.html
---
Paging Lawrence of Nunavut: Camel fossils found in Canadian Arctic
How completely utterly cool is this, your desert camel’s ancestors were Canadian and lived in Nunavut!
Hey Crow Emily keep your eye out for camel bones up there!


Mubarak Wakaso could feature in Deportivo Alaves clash with Eibar
Ghana midfielder Mubarak Wakaso could be available for selection when Deportivo Alaves travel to Eibar in the La Liga clash on Sunday, according to reports in Spain.
Wakaso suffered a broken hand and sat out of Alaves 3-0 win over Real Valladolid ahead of the international break.
Due to the injury, he was not available as the Black Stars won their double 2021 Africa Cup of Nations qualifiers against South Africa and São Tomé and Príncipe.
Wakaso returned to training this week and manager Asier Geratino is reportedly contemplating including Wakaso in squad for the trip to Eibar.
The 29-year-old has made 11 appearances in La Liga for Alaves this season.