|
This document is a guide to configuring the Ontopia Navigator Framework. The Navigator Framework offers a large number of configuration options, and this document explains where they can be found and what they do. By looking in the actual configuration files you can find additional advanced configuration options not documented here.
The only configuration you must have in order for the framework to function is a tm-sources.xml file, which tells the framework where to find the topic maps. (How the tm-sources.xml file works is explained in section 2.)
The default is that the tm-sources.xml file is loaded from the classpath. So for this to work, all you need to do is to put such a file on the classpath somewhere. On Tomcat, a good location is in apache-tomcat/common/classes.
If you just want to get the framework running you can stop here, because this is all you need for that. The rest of this document explains alternative approaches for cases where you want to control the setup more.
The Navigator Framework uses this file to find topic maps and enter them into the topic map repository. The file basically contains a collection of sources, where each source can produce references to topic maps. The next sections describe different types of sources that can be configured in the file.
These sources look in a specific directory of the file system for files with a particular suffix. Those found will be made available to the Navigator Framework, which may then choose to load them. Each source class expects files with a different syntax.
Below is shown an example configuration element for the XTM path source. The path parameter tells the source what directory to look in. The ${CWD} is a variable replaced by the path of the directory where the tm-sources.xml file was found. The suffix parameter tells the source what suffixes to look for on files.
Example configuration
<source class="net.ontopia.topicmaps.xml.XTMPathTopicMapSource"> <param name="path" value="${CWD}/../xml"/> <param name="suffix" value=".xtm"/> </source>
The full list of path source classes is:
This source reads XTM 1.0 and 2.0 files.
This source reads LTM files.
This source reads TM/XML files.
This source reads RDF files in the RDF/XML syntax, but can be adjusted to also read RDF files in other syntaxes.
There is also a larger set of parameters to these sources than just the path and suffix ones. Below is a complete list of the parameters, together with an overview over which sources support which parameters.
Table 2.1. Source parameters
| Parameter | Values | Purpose | Sources |
|---|---|---|---|
| path | Path | Path to the directory where the source will look for topic map files. The token ${CWD} can be used to refer to the directory of the source file to specify relative paths. | xtm ltm rdf tmxml |
| suffix | String | The file name extension of files in the path directory which the source will make topic maps from. | xtm ltm rdf tmxml |
| maintainFulltextIndexes | true/false | If true a full-text index for the topic map will be created and automatically kept up to date with changes in the topic map. Setting this to true for sources containing Ontopoly topic maps is highly recommended. | xtm ltm rdf tmxml |
| indexDirectory | Path | Path to the directory where the source will create the full-text index for topic maps from this source. The token ${CWD} can be used to refer to the directory of the source file to specify relative paths. If not specified, the index directory defaults to the current directory of the Java process. | xtm ltm rdf tmxml |
| maintainFulltextIndexes | true/false | If true a full-text index for the topic map will be created and automatically kept up to date with changes in the topic map. Setting this to true for Ontopoly topic maps is highly recommended. | xtm ltm rdf tmxml |
| title | String | The name of the source, to be displayed in the drop-down list on the Ontopoly start screen where the user is asked to specify which source to create the new topic map in. (This list is only displayed if more than one source has supportsCreate set to true.) | xtm ltm rdf tmxml |
| id | String | Unique identifier for this source within the repository. Used by the Ontopoly user interface. If an ID is needed, and none is set explicitly, the source will generate one automatically. | xtm ltm rdf tmxml |
| duplicateSuppression | true/false | If 'true' will cause duplicate information to be removed from the topic map once it has finished loading. | xtm ltm rdf tmxml |
| followTopicRefs | true/false | The default is true, which means that topicRef elements pointing to external files will cause those files to be loaded and merged in. If set to false no action is taken. | xtm |
| validation | true/false | If 'true' any XTM files loaded through this source will be validated against the XTM 1.0 DTD. | xtm |
| mappingFile | Path | References an RDF file which contains the RDF mapping statements to be used when loading RDF files with this source. The ${CWD} token can be used here. | rdf |
| supportsCreate | true/false | Sets whether or not the source allows new topic maps to be created within the source. This is used when creating new topic maps in Ontopoly. | xtm tmxml |
| supportsDelete | true/false | Sets whether or not the source allows topic maps coming from the source to be deleted. This is used when deleting topic maps in Ontopoly. | xtm ltm rdf tmxml |
| syntax | "RDF/XML"/"N3"/"N-TRIPLE" | The name of the RDF syntax to assume RDF files loaded with this source are written in. If not specified defaults to RDF/XML. | rdf |
| generateNames | true/false | If "true" the RDF source will generate names for topics in the topic map which have no names. The names will be based on the URIs of the topics in the original RDF file. | rdf |
| lenient | true/false | If "true" the RDF source allow errors in the RDF mapping that would be reported if the value were "false". | rdf |
If you have the RDBMS Database Backend product you can use this class to make the Navigator Framework find topic maps in your relational database. This source understands these parameters:
Below is shown an example configuration element.
Example configuration
<source class="net.ontopia.topicmaps.impl.rdbms.RDBMSTopicMapSource"> <param name="propertyFile" value="/usr/local/ontopia/jdbc.prop"/> <param name="baseAddress" value="http://www.ontopia.net/topicmaps/foo.ltm"/> </source>
If you have the RDBMS Database Backend product you can use this class to make the Navigator Framework find an individual topic map in your relational database. This source understands these parameters:
Below is shown an example configuration element.
Example configuration
<source class="net.ontopia.topicmaps.impl.rdbms.RDBMSSingleTopicMapSource"> <param name="topicMapId" value="5001"/> <param name="title" value="The Foo Topic Map"/> <param name="referenceId" value="foo"/> <param name="propertyFile" value="/usr/local/ontopia/jdbc.prop"/> <param name="baseAddress" value="http://www.ontopia.net/topicmaps/foo.ltm"/> </source>
A source producing a single topic map with a defined reference ID (Omnigator ID) by searching the RDBMS for a matching topic map. If multiple topic maps match the given search pattern the one with the highest ID is used. This source is useful when you have a topic map in the RDBMS which is frequently deleted and re-imported. You can then use this source to avoid having to change tm-sources.xml every time the topic map is reimported.
These are the parameters supported by the source:
Below is an example configuration for this source:
<source class="net.ontopia.topicmaps.impl.rdbms.RDBMSPatternSingleTopicMapSource"> <param name="id" value="pattern"/> <param name="referenceId" value="mytopicmap.xtm"/> <param name="propertyFile" value="rdbms.properties"/> <param name="match" value="title"/> <param name="pattern" value="mytopicmap.xtm"/> </source>
If, when importing topic maps from file, using the following command will ensure that the title of the topic map is set correctly, so that the source as configured above will pick it up.
java net.ontopia.topicmaps.cmdlineutils.RDBMSImport \ --title mytopicmap.xtm \ rdbms.properties whateverfile.xtm
This source will read a single topic map from a given URL rather than from the local file system. It can be used to get a topic map from a remote web site, for example. It supports exactly the same parameters as the XTM topic map source, but adds a few extra parameters. Below is an example of how to use this source.
Example configuration
<source class="net.ontopia.topicmaps.entry.URLTopicMapSource"> <param name="title" value="Free XML Tools"/> <param name="referenceId" value="xmltools"/> <param name="url" value="http://www.garshol.priv.no/download/xmltools/xmltools-tm.xml"/> <param name="syntax" value="XTM"/> </source>
This example would load the Free XML Tools topic map from the Free XML Tools web site. Note the required syntax parameter, which tells the source what syntax to expect. Possible values for this parameter are XTM, LTM, HyTM, RDF, RDF/XML, N3, and N-TRIPLE. The reference id is set to 'xmltools', so you can retrieve the topic map in your navigator application using this id.
This section explains how the tm-sources.xml file corresponds to the API. Basically, the file contains entries that are used to create TopicMapSourceIF objects (see the entry package javadoc), which can find topic maps by various means and make them available to the Navigator Framework.
In this file, each source element creates an instance of the class named in its class attribute. The class must implement the TopicMapSourceIF interface. The source elements contain param elements, which give configuration information to the source objects using Java bean introspection.
The advantage of this approach is that with this configuration file one can easily make the navigator find topic maps in the file system, in a database, or by any other imaginable means. Each section below documents some TopicMapSourceIF implementations.
Note that if you wish to use this functionality in your own applications you can use the net.ontopia.topicmaps.entry.XMLConfigSource class.
Ontopia uses log4j for its logging. You can also find a little more information on log4j and how Ontopia uses it in the The Ontopia Topic Maps Engine - Developer's Guide. If you want to configure the log4j logging in Navigator Framework applications, just put a log4j.properties file on the classpath, and Ontopia will automatically pick it up.
There are three main ways of connecting an application with a repository of topic maps created by a tm-sources.xml file:
The default approach, described in section 1.
Using JNDI. This requires quite a bit of configuration, and is usually quite painful. We do not recommend this approach, and it is only supported for historical reasons. It is documented in section 4.1.
Using the source_config parameter, which refers directly to the tm-sources.xml file, and makes the application use its own repository of topic maps. (Described in section 5.)
In general, we strongly recommend using the default approach. If you want to use more than one tm-sources.xml file, give the file a different name, or point to it directly, this is all possible. In the standard web.xml configuration file you can specify the topicmaps_repository_id parameter. This parameter references the tm-sources.xml file to be used in one of two ways:
Using a file URL in the normal way, as in file:/Users/larsga/config/tm-sources.xml. This will cause that particular file to be loaded. All applications which reference the same file will share a repository of topic maps.
Using a classpath URL, as in classpath:tm-sources.xml, which is the default setting. This causes a file named tm-sources.xml to be loaded from the classpath. All applications which use the same reference will share a repository of topic maps.
This approach is obsolete, and we do not recommend that you use it. The default approach is much better.
In order to use JNDI your web server must support JNDI and be configured to use it. How this is done is server-dependent. Any number of named shared topic map repositories can be set up, and each web application can choose whether to use its own repository or to use a named shared repository.
To share topic maps between applications there are two steps to be performed:
Configure the web server to make set up the shared repository and make it available via JNDI. Note that all this does is enable the repository; it will not be used before the configurations of individual applications are changed.
Configure each web application you want to use the shared repository to use the repository instead of setting up its own. It's possible to have three applications in the same server where two use the shared repository and one does not, so each application must be configured separately.
The two sections below describe how to perform the two steps.
This section describes how to set up a shared repository as a JNDI resource.
In Tomcat, shared repositories are set up by adding the following to the server.xml file, inside the Host element.
Tomcat 5.0.x:
<DefaultContext override="true"> <Resource name="OmnigatorRegistry" auth="Container" type="net.ontopia.topicmaps.entry.SharedStoreRegistry"/> <ResourceParams name="OmnigatorRegistry"> <parameter> <name>factory</name> <value>org.apache.naming.factory.BeanFactory</value> </parameter> <parameter> <name>registryName</name> <value>OmnigatorRegistry</value> </parameter> </ResourceParams> </DefaultContext>
Tomcat 5.5.x:
<GlobalNamingResources> ... <Resource name="OmnigatorRegistry" auth="Container" type="net.ontopia.topicmaps.entry.SharedStoreRegistry" factory="org.apache.naming.factory.BeanFactory" /> </GlobalNamingResources>
The name given to the resources in this example is OmnigatorRegistry. This name is the name used to refer to the shared repository.
The shared repository will be configured by reading tm-sources.xml from the CLASSPATH as visible to the application server internals. Be aware that there usually are several locations on which one can put resources to make them visible for the application servers' class loaders. In Tomcat one should normally put the tm-sources.xml file in the common/classes directory. In most situations one would put the file in the same class loader context as the ontopia.jar file.
You can make the shared repository read its configuration from another file by specifying the sourceLocation parameter.
Tomcat 5.0.x:
<ResourceParams name="OmnigatorRegistry"> ... <parameter> <name>sourceLocation</name> <value>/tmp/tm-sources.xml</value> </parameter> </ResourceParams>
Tomcat 5.5.x:
<GlobalNamingResources> ... <Resource name="OmnigatorRegistry" auth="Container" type="net.ontopia.topicmaps.entry.SharedStoreRegistry" factory="org.apache.naming.factory.BeanFactory" sourceLocation="/tmp/tm-sources.xml" /> </GlobalNamingResources>
Alternatively you can tell the SharedStoreRegistry resource what the resource name of the source configuration file to load from the CLASSPATH is. This can be done by specifying the resourceName parameter. The default value is tm-sources.xml. If you would like to set up multiple shared repositories where more than one of them is to read their source configuration from the CLASSPATH then the resourceName parameter will have to be given for all except one of them.
Here is an example of how you can set up two shared repositories that both loads their source configuration from the CLASSPATH:
Tomcat 5.0.x:
<ResourceParams name="MyRegistry1"> ... <parameter> <name>resourceName</name> <value>tm-sources1.xml</value> </parameter> </ResourceParams> <ResourceParams name="MyRegistry2"> ... <parameter> <name>resourceName</name> <value>tm-sources2.xml</value> </parameter> </ResourceParams>
Tomcat 5.5.x:
<GlobalNamingResources> <Resource name="MyRepository1" auth="Container" type="net.ontopia.topicmaps.entry.SharedStoreRegistry" factory="org.apache.naming.factory.BeanFactory" resourceName="tm-sources1.xml" /> <Resource name="MyRepository2" auth="Container" type="net.ontopia.topicmaps.entry.SharedStoreRegistry" factory="org.apache.naming.factory.BeanFactory" resourceName="tm-sources2.xml" /> </GlobalNamingResources>
With Tomcat 5.5.x one also has to relate the global naming source with individual web applications. This is how it has been set up for the Omnigator web application:
<Context path="/omnigator"> <ResourceLink name="OmnigatorRegistry" global="OmnigatorRegistry" type="net.ontopia.topicmaps.entry.SharedStoreRegistry"/> </Context>
The <Context> elements can be added just right before the </Host> end-tag. You will need to add one <Context> element per web application. Also make sure that the path attribute point to the correct web application.
Note that any number of shared repositories can be specified. If you set up more than a single shared repository make sure that you give them unique resource names and unique 'registryName' parameters. You would also have to make sure that they load their configuration from different locations. See the description of the sourceLocation parameter above.
Setting up a shared repository in the Resin application server is done by adding the following to the resin.conf file, inside the host element:
<resource-ref> <res-ref-name>OmnigatorRegistry</res-ref-name> <res-type>net.ontopia.topicmaps.entry.SharedStoreRegistry</res-type> </resource-ref>
In order to make a web application use a shared repository, edit the web.xml file of that application to remove the source_config parameter, and replace it by the following:
<context-param> <param-name>jndi_repository</param-name> <param-value>OmnigatorRegistry</param-value> </context-param>
The value of the parameter is the JNDI resource name of the shared repository, as given in the server.xml/resin.conf file.
This file is part of the Java Servlet system and contains information used by the servlet system, as well as simple name/value configuration properties for individual servlet applications.
The following configuration settings are used by the Navigator Framework:
This configuration file stores the configuration for a Navigator web application, and by modifying this file it is possible to control many aspects of how the application behaves.
Note that this file is obsolete. You do not need it.
The Navigator uses the information in the source.xml file (section 2) to populate the topic map registry with topic map references. It does not load any of these topic maps before the user requests it through the manage page, however. The autoloads section can be used to request that some topic maps be loaded when the Navigator starts up, without the user having to explicitly request it.
Below is shown the default autoloads section:
Autoloads
<autoloads> <autoload topicmapid="opera.ltm" /> <!-- autoload topicmapid="xmltools-tm.xtm" /--> </autoloads>
The topic map IDs used here are the file names of the topic maps, including the suffix. The special ID ~all can be used to make the system automatically load all topic maps it finds. (Note that this can cause slow startups, and if you have too many large topic maps it may cause the server to run out of memory during startup.)
With this section you can control what models, views, and skins are to be made available to users (including ones that you develop yourself), and you can also set the default model, view, and skin. The model, view, and skin elements in the mvs element each make available a model, a view, or a skin on the customize page. They can have the following attributes:
In this section one can set a number of configuration options that control how the Navigator Framework behaves. These options are all simple named string values. The ones currently in use are:
Controls whether topic maps are autoloaded when requested or not. If this property is set to true topic maps that have not previously been loaded through the manage page will be loaded automatically when someone tries to access them.
This differs from the autoload section in that topic maps listed there will be loaded when the server starts, before anyone has requested them. If this option is on, any topic maps that have not been loaded but which are requested by a user will be loaded automatically. If this option is turned off the topic maps in the autoloads section will still be loaded on startup.
There are also some properties used by the old Navigator Framework tag libraries that are now deprecated. These are listed below, but note that these apply only to tags that are deprecated.
In several places in the tag libraries classes are referred to. Often the same classes have to be referred to in many different places, and it can quickly get tedious to repeat the same long classnames many times throughout the source code. To help solve this problem we've added a section to the application.xml file called the classmap. Using this shortnames for classes can be defined, and classes can then be referred to in the JSP pages using these shortnames. Below is shown an example of a minimal classmap section, which should show how it is used.
<classmap> <class shortcut="topicComparator" fullname="net.ontopia.topicmaps.nav.utils.comparators.TopicComparator"/> </classmap>


Most qualifications have a difficulty level. The higher the level, the more difficult the qualification is.
If you need to know the level of a qualification, you can:
Qualifications at the same level sometimes cover different amounts of the same subject.
 So you learn more about the subject at A level.
Contact the National Careers Service for advice about qualification levels if you’re in England.
National Careers Service
National Careers Service website
Email a careers adviser
Arrange for a careers adviser to call you
Telephone: 0800 100 900
Monday to Sunday, 8am to 10pm
Find out about call charges
For the rest of the UK, contact:


{% extends "hwam/base.html" %} {% block sub-title %}Add Organizational Unit | {% endblock %} {% block content-main %}
There were some errors.


The above image is based on an angularjs directive, angular-qrcode.
This HTML site is a Duck. Its goal is to demonstrate a working NG + TWBS (or foundation) + ES6 website.


Improve your code-typing speed competitively, either alone or with friends.
Nimblecode is a fun and educational code-typing game. In singleplayer mode, players compete against ghost replays of the best times. In multiplayer, players race against their friends to see who types code the fastest!
Tech Stack: React, Redux, Bootstrap, NodeJS, Express, MySQL, Bookshelf, AWS EC2, Mocha, Webpack
Play Now! GitHub


Select a "20 second" clip of the track. Press "Play" hear the playback.
If you like what you hear, click "I like this clip!" to proceed.
Select a "20 second" clip of the track. Press "Play" hear the playback.
If you like what you hear, click "I like this clip!" to proceed.


Author:
Herbert Schildt
Edition:
April, 2014
ISBN:
978-0071809252
lANGUAGE:
English
Online Store
Java Programming
Informations:
Details website:
www.nakov.com
E-mail:
<EMAIL_ADDRESS>ICQ: 3225187
Platform:
Fully updated for
Java Platform
, Standard Edition 8
Download hypertext book on the following kink:
HTML file (2,37 MB)
Download document bool on the following link:
DOC file (2,72 MB)
DOC file (2,94 MB)
Download errata of the book on the following link:
Errata of the book in PDF format
Product Dimentions:
7.3 x 1.3 x 9.1 inches
Publisher:
McGraw-Hill Osborne Media; 6 edition (April 15, 2014)


We're sorry but wallet doesn't work properly without JavaScript enabled. Please enable it to continue.


Twister A Film Review By Michael Redman Copyright 1996 Michael Redman
*** (out of ****)
As in so many other films, dynamic special effects combine with cardboard people to create a movie that is as much fun to watch as a Twinkie is to eat and just as fulfilling.
The all-winners squad of writer Michael Crichton ("Jurassic Park"), director Jan De Bont ("Speed") and godfather Steven Spielberg (most of the big buck films from the past two decades) have come up with a force of nature that is destined to suck money from the pockets of effects addicts. Count me on board.
Bill Paxton and soon-to-be new wife Jami Gertz drop by the tornado chasers to get Helen Hunt, soon-to-be ex-wife and former partner, to sign final divorce papers. In what would be an amazing coincidence if this were not a movie, the mother of all tornadoes is brewing on the horizon. Paxton can't resist one last hunt.
The bad guys here (besides that evil Mother Nature of course) are a team of corporate tornado researchers out to steal Paxton's thunder while traveling around in brand spankin' new black vans. Guess those black helicopters were all being used by the UN. You don't need to pay much attention to these men. They don't exist for any reason in the film.
The supposed human drama is supplied by the triangle between man, wife and girlfriend.
The tornadoes from Industrial Light and Magic are overwhelming. Most of the storms and debris look real, with the exception of a goofy cow that goes flying by one of the trucks a couple of times. Scary and remarkably forceful stuff. That yellow and green sky that we've all seen around here will never look the same to you.
As with "Jurassic Park", the last blockbuster from Spielberg and Crichton, the monsters are amazing, but the people barely exist. The redeeming factor is that the action scenes are grand and the talking scenes mercifully short.
Hunt does have some type of odd screen appeal, but appears to have been chosen for the part because she wears white t-shirts well. Paxton is well-casted as the obsessive everyman. There is a bit of chemistry between them, but the script doesn't take it anywhere. Gertz disappears into the background.
The only acting stand-outs are Lois Smith as eccentric Aunt Meg and Philip Hoffman as one of the wacky storm-chasing team. There are a couple of good moments with each of them, but only a couple and only moments.
If you're going to see this, make sure you _don't_ wait for the video. On a small screen there will be nothing there.
[This appeared in the 5/16/96 "Bloomington Voice", Bloomington, Indiana. Michael Redman can be contacted at<EMAIL_ADDRESS>--<EMAIL_ADDRESS>This week's film review at http://www.bvoice.com/ Film reviews archive at http://us.imdb.com/M/reviews_by?Michael%20Redman
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


When you work with us,you are part of a team of committed collaborators.All aspects of our software development process are intergrated,interactive
and agile.
Our approach unifies design,development and product management to creat exeptional products.
We start each project by understanding your business goals,the user's needs and the product requirements
then we help translate them into effective and elegant solution.
Before we sign a contract or write a line of code our team will spend necessary time to understand your product vission.
The outcome of this scoping session is proposal or high-
level statement of work.
Based on your requirements,we can provide a complete offering or just the pieces you need.
Our design practice offers a full range of services including brand strategy, interaction and visual design and user experience testing. Throughout your project, our designers create and implement visual design and workflows, solicit user feedback and work with you to make sure what gets built is what is needed.
All engineers are fluent in the latest enterprise, mobile and web development technologies. They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming..
Planning and development is iterative. Because we are constantly coding and testing, the products we build are always ready to go live. This iterative process allows for changes as business requirements evolve.
Come to an
amazing studio.
The pyramid
What an amazing
security!
Here is the place to
you kids
What an amazing one
Don't worry about
calculation
What an amazing one
Here we go,
Food! Food! Food!


Update: In the HN discussion, awalton mentioned you can set CPUID flags in VMWare. Simply adding cpuid.7.ebx = "-----------0--------------------"
to the vmx file will disable SMAP.
Late last year, I upgraded my old MBP to the 2016 model with a Skylake processor.  I wanted to avoid dealing with SMAP, but couldn't figure out how to disable it in Fusion. Luckily, VirtualBox VMs do not support SMAP (yet?).
This post will be a step-by-step guide on how to setup macOS kernel source-level debugging using VirtualBox. Though all the step examples are geared toward VirtualBox, this guide can also be used to setup kernel debugging on VMWare Fusion since it's even more straightforward in Fusion.
Installing VirtualBox and Sierra
If you don't already have a macOS VirtualBox VM, we must first install the target macOS on a VM. You can either provide the vmdk from a VMWare Fusion VM, or create a fresh VM. VirtualBox requires an ISO image to install the OS for newly created VMs. The commands below can be used to create an ISO from the Sierra install app obtained from the Mac app store.
$ hdiutil attach /Applications/Install\ macOS\ Sierra.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/installesd
$ hdiutil create -o /tmp/Sierra -size 8g -type SPARSE -layout SPUD -fs HFS+J
$ hdiutil attach /tmp/Sierra.sparseimage -noverify -nobrowse -mountpoint /Volumes/install
$ asr restore -source /Volumes/installesd/BaseSystem.dmg -target /Volumes/install -noprompt -noverify -erase
$ rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages
$ cp -rp /Volumes/installesd/Packages /Volumes/OS\ X\ Base\ System/System/Installation/
$ cp -rp /Volumes/installesd/BaseSystem.dmg /Volumes/OS\ X\ Base\ System/BaseSystem.dmg
$ cp -rp /Volumes/installesd/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System/BaseSystem.chunklist
$ hdiutil detach /Volumes/installesd
$ hdiutil detach /Volumes/OS\ X\ Base\ System/
$ hdiutil resize -sectors min /tmp/Sierra.sparseimage
$ hdiutil convert /tmp/Sierra.sparseimage -format UDTO -o /tmp/Sierra
$ rm /tmp/Sierra.sparseimage
$ mv /tmp/Sierra.cdr /tmp/Sierra.iso
Networking
If you are using a bridged adapter, there isn't anything special you need to do.
If you decide to go with NAT, you'll need to enable port forwarding for KDP to work with the VM. In the adapter settings, choose Advanced\(\rightarrow\)Port Forwarding. We need to reach 41139/UDP on the debugee VM, so I forward localhost 41139/UDP to the VM's 41139/UDP.
Installing XCode
Install XCode on your host machine. The easiest way is to install it from the Mac app store. After installing, accepting the XCode license is required either by opening XCode and accepting, or through command line.
$ sudo xcodebuild -license accept
Install Kernel Debug Kit (KDK) on
On our host debugger machine, we need to install the KDK from the Apple Developer site corresponding to our debugee macOS version and build. In this guide, I used 10.12 build 16A323.
The KDK installs to /Library/Developer/KDKs
and provides RELEASE,
DEVELOPMENT, and DEBUG kernels for macOS, as well as symbols for these kernels
and various Apple kexts. The difference between the different kernels is that
the DEVELOPMENT and DEBUG kernels have additional assertions and error checking
compared to RELEASE with the DEBUG build having even more than DEVELOPMENT.
Note: The debugee system does not need to have the KDK installed.
Update nvram boot-args
In order to debug the VM, we must set the debug
option of boot-args
in
nvram on our debugee VM. There are numerous options in addition to debug
that
we can use. Below are a few that could be of interest including debug
.
-v
: Always boot the system in verbose mode.kcsuffix
: Specifies which kernel to boot using a given suffix.pmuflags
: Many people still seem to recommend setting this option to 1. However, Apple's Kernel Programming Guide says the power management watchdog timer "is only present in G4 and earlier desktops and laptops and in early G5 desktops", and the other primary watchdog timer is "normally only enabled in OS X Server." Thus, this option doesn't seem to do anything, though setting it doesn't hurt.-zc zlog1=<zone_name>
:zc
in conjunction withzlog#
logs both allocations and frees to the specified zone where # is 1-5.debug
: This option allows us to perform remote kernel debugging. Available flags are listed in the Apple docs. I usually useDB_LOG_PI_SCRN | DB_ARP | DB_NMI
.- Non-maskable interrupts (NMI) can be triggered by pressing control + option + command + shift + escape. Triggering an NMI will break in the debugger which is super convenient. This key combo does not play well with VirtualBox when it covers the host key combo so I rebound the host key to right command + right option.
Modifying nvram
In VMWare Fusion, you modify nvram using the nvram
command like so:
$ sudo nvram boot-args="-v debug=0x144"
On VirtualBox, you'll find it's not so easy. After a reboot, the nvram modifications will have disappeared. VirtualBox User Manual §3.13.2 sheds some light:
It is currently not possible to manipulate EFI variables from within a running guest (e.g., setting the "boot-args" variable by running the nvram tool in a Mac OS X guest will not work). As an alternative way, "VBoxInternal2/EfiBootArgs" extradata can be passed to a VM in order to set the "boot-args" variable. To change the "boot-args" EFI variable:
Thus, we need to shutdown our VM and run the commands below on our host.
$ VBoxManage list vms # take the UUID to use in the next command
"macOS 10.12.0" {9ad936f8-9360-44a6-ba3e-c4d92b4243e8}
$ VBoxManage setextradata 9ad936f8-9360-44a6-ba3e-c4d92b4243e8 VBoxInternal2/EfiBootArgs "-v debug=0x144"
Swapping Kernels
I alluded to debugging different builds of kernels previously, mentioning that
the kcsuffix
option specifies which kernel build to use. The kernel file must
be at /System/Library/Kernels
on the debugee VM. It should not be a surprise
that this directory is protected by System Integrity Protection
(SIP). Therefore, if you want to use
a KDK kernel or a self-compiled kernel, you must
first boot into recovery, copy the target kernel to the above directory,
invalidate the kext cache, and then reboot.
Reliably Booting into Recovery
In Fusion, booting into recovery mode using cmd+R is as easy as doing so on a physical machine. VirtualBox, on the other hand, requires a few more steps.
When booting the VM, hit F12, and select Boot Manager\(\rightarrow\)EFI Internal Shell. You will be greeted by an EFI shell. To boot into recovery, type:
FS2:\com.apple.recovery.boot\boot.efi
Once the recovery GUI loads, launch a terminal, move the target kernels, then invalidate the kextcache.
# mv /path/to/kernels/kernel.development /System/Library/Kernels
# kextcache -invalidate /Volumes/Macintosh\ HD
# reboot
Before reboot, you can optionally disable SIP if desired.
# csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
Source-level Debugging
Download the XNU source code corresponding to
the debuggee XNU version. To gain source-level debugging, LLDB will look in
/Library/Caches/com.apple.xbs/Sources/xnu/xnu-...
for the kernel source. You
can either place the downloaded source there, or create a symlink there that
points to the source. Alternatively, you can also set target.source-map
in
LLDB.
lldb> settings set target.source-map /Library/Caches/com.apple.xbs/Sources/xnu/xnu-3789.1.32 /Users/kedy/Downloads/xnu-3789.1.32
Previous versions of macOS like Yosemite, you had to place source code in
/SourceCache/xnu/
.
Setting up LLDB
Finally now, we can break out the debugger. The example below sets the target file to the RELEASE kernel build.
To use the XNU LLDB macros in Sierra KDK, the macholib
Python module is
required now. A simple pip install macholib
should do the trick. To use the
nifty LLDB macros, copy paste the KDK debug script command that is prompted
when you first set the target file to a KDK kernel.
After triggering an NMI (or waiting for debugger to halt the boot process if
you chose DB_HALT
flag), connect to the debugee with the command kdp-remote
<ip>
where <ip>
is the IP address (localhost if you used the NAT port
forwarding).
$ lldb /Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel
(lldb) target create "/Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel"
warning: 'kernel' contains a debug script. To run this script in this debug session:
command script import "/Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel.dSYM/Contents/Resources/DWARF/../Python/kernel.py"
To run all discovered debug scripts in this session:
settings set target.load-script-from-symbol-file true
Current executable set to '/Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel' (x86_64).
(lldb) command script import "/Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel.dSYM/Contents/Resources/DWARF/../Python/kernel.py"
Loading kernel debugging from /Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel.dSYM/Contents/Resources/DWARF/../Python/kernel.py
LLDB version lldb-370.0.40
Swift-3.1
settings set target.process.python-os-plugin-path "/Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel.dSYM/Contents/Resources/DWARF/../Python/lldbmacros/core/operating_system.py"
settings set target.trap-handler-names hndl_allintrs hndl_alltraps trap_from_kernel hndl_double_fault hndl_machine_check _fleh_prefabt _ExceptionVectorsBase _ExceptionVectorsTable _fleh_undef _fleh_dataabt _fleh_irq _fleh_decirq _fleh_fiq_generic _fleh_dec
command script import "/Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel.dSYM/Contents/Resources/DWARF/../Python/lldbmacros/xnu.py"
xnu debug macros loaded successfully. Run showlldbtypesummaries to enable type summaries.
(lldb) kdp-remote <IP_ADDRESS>
Version: Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64; UUID=17EA3101-D2E4-31BF-BDA9-931F51049F93; stext=0xffffff8007a00000
Kernel UUID: 17EA3101-D2E4-31BF-BDA9-931F51049F93
Load Address: 0xffffff8007a00000
Kernel slid 0x7800000 in memory.
Loaded kernel file /Library/Developer/KDKs/KDK_10.11.2_15C50.kdk/System/Library/Kernels/kernel
Target arch: x86_64
Instantiating threads completely from saved state in memory.
Loading 82 kext modules warning: Can't find binary/dSYM for com.apple.kec.corecrypto (491718F5-B509-31DC-92B5-6BAC95E3F494)
.warning: Can't find binary/dSYM for com.apple.kec.pthread (0888BA0A-49EE-394A-AEB1-1E5C6838A1F2)
(omitted...)
. done.
kernel was compiled with optimization - stepping may behave oddly; variables may not be available.
Process 1 stopped
* thread #2, name = '0xffffff800db8b000', queue = '0x0', stop reason = signal SIGSTOP
frame #0: 0xffffff8007bd655e kernel`Debugger(message=<unavailable>) at model_dep.c:1020 [opt]
1017
1018 doprnt_hide_pointers = old_doprnt_hide_pointers;
1019 __asm__("int3");
-> 1020 hw_atomic_sub(&debug_mode, 1);
1021 }
1022
1023 char *
(lldb)
Voila, source-level debugging macOS kernel!


Resort with a medieval history
Medieval roots
Legend says that Rowy was founded by refugees from Wolin, which was attacked by Vikings. The oldest document is from 1282, which gave the ownership of Rowy to bishops from Gniezno. In the 14th century, Henry Derby landed twice in Rowy during the crusades to Latvia. Like in every town, there was a church built in Rowy. The first church was built in the 14th century near Gardno Lake (which is now part of the Słowiński National Park). Unfortunately, no documents describing the building or its successor remain. The current neoroman church was built between 1844-49.
A pirates' harbour
From its founding, the Slavic population, which was related to the Kashubian, lived in Rowy. In the 14th century, the Witalian Brothers used the village as one of their bases. At first the pirates lived an honest life, but in time decided to change their profession and became known as bloodthirsty Baltic pirates.
Wooden Sculptures
All across Rowy, tourists can find beautiful wooden sculptures that remind everyone of the local legends. One talks about an odd couple - a man in a leather suit and a beautiful woman who demanded the priest to give them a wedding. The man was allegedly the heir of the Swedish throne. Another legend speaks of how the mayor tricked the devil to build him a church in one night. The devil agreed to do it at the cost of the mayor's daughter's soul. The devil carried the rocks to build the church from Garda village flying over Gardno Lake. The mayor pretended to be the rooster and woke up all the other roosters in Rowy which caused the devil's power to vanish and the falling rocks created the Rock Island on Gardno. The devil didn't finish the church, so the mayor's daughter was saved. The angry demon left his devlish mark on the church. The fishermen always check the stone before going to sea. If the stone is dry, the weather will be great, but if it is wet, there will be a storm.


--- layout: documentation title: HashType ---
The HashType type is intended to characterize hash values.
| Field Name | Type | Description |
|---|---|---|
| Type0..1 | ControlledVocabularyStringType |
The Type field utilizes a standardized controlled vocabulary to capture the type of hash used in the Simple_Hash_Value or Fuzzy_Hash_Value elements. This field is implemented through the xsi:type controlled vocabulary extension mechanism. The default vocabulary type is HashNameVocab in the http://cybox.mitre.org/default_vocabularies-2 namespace. This type is defined in the cybox_default_vocabularies.xsd file or at the URL http://cybox.mitre.org/XMLSchema/default_vocabularies/2.0.1/cybox_default_vocabularies.xsd. Users may also define their own vocabulary using the type extension mechanism (by specifying a vocabulary name and/or reference using the vocab_name and vocab_reference attributes, respectively) or simply use this as a string field. |
| Simple_Hash_Value0..1 | SimpleHashValueType |
The Simple_Hash_Value field specifies a single result value of a basic cryptograhic hash function outputting a single hexbinary hash value. |
| Fuzzy_Hash_Value0..1 | FuzzyHashValueType |
The Fuzzy_Hash_Value field specifies a single result value of a cryptograhic fuzzy hash function outputting a single complex string based hash value. (e.g. SSDEEP's Block1hash:Block2hash format). |
| Fuzzy_Hash_Structure0..n | FuzzyHashStructureType |
The Fuzzy_Hash_Structure field is optional and enables the characterization of the key internal components of a fuzzy hash calculation with a given block size. |


Routes leaving Ocean:
North, to Ocean [ay57], The Inner Sea, 6 days
East, to Ocean [az58], 6 days
South, to Ocean [ba57], 6 days
West, to Ocean [az56], 6 days
It is raining.


I'm a 20 year old Information Science and Engineering student from Dayananda Sagar Academy of Technology and Management.
I currently hold the title of "Infy Campus Champ" of my college.
I was always facinated by computers and their power which is why I took up engineering in the above said branch.
I'm based in Bangalore, apart from assignments and coding I watch TV shows and play cricket. I have developed love for antique over the years and I collect currency.
Batch of 2013 - 8.2 CGPA (C.B.S.E)
Batch of 2015 - 81% (PU Board)
Will graduate in 2019. My current aggregate is 7.5 CGPA.
I won the event conducted by Infosys to become Infy Campus Champ of my college. There was 6,783 registrations for this event out of which only 120 were selected all over India. This event had 3 rounds which were Subject of Purpose, Group Discussion and Personal Interview.
Completed an internship at DrumUp for Social Media Marketing and Analysis.
The internship also had tasks like Competitive Analysis, Traffic Analysis, Skyscrapper Content, Influencer Marketing, conducting Expert Interview Series and also creating a Video Tutorial for using DrumUp.
Learnt HTML and CSS from TekFrames. Built my 1st project here.
Name : M.R.YADHAW
Phone : +91-9449369642
E-mail : mr.yadhaw@gmail.com


NBA roundup: Clippers rally past Blazers for Rivers' 900th win
Kawhi Leonard scored 27 points and grabbed 13 rebounds, and the Los Angeles Clippers rallied from an eight-point, fourth-quarter hole to defeat the visiting Portland Trail Blazers 107-101 on Thursday night.
Lou Williams scored 26 points and recorded eight assists while Montrezl Harrell and Ivica Zubac each scored 15 points for the Clippers. Zubac also had 13 rebounds, nine on the offensive end.
Leonard contributed 18 points to the fourth-quarter comeback.
The victory was the 900th of Clippers coach Doc Rivers’ career. He is the 13th coach to reach the milestone.
Celtics 108, Hornets 87
Jayson Tatum scored 23 points, Kemba Walker added 14 in his return to Charlotte, and Boston cruised past host Charlotte.
Gordon Hayward added 20 points and 10 rebounds as the Celtics won their sixth straight. Jaylen Brown chipped in 12 points after missing the team’s previous three games due to an illness.
Miles Bridges had 18 points, and Devonte’ Graham added 15 for the Hornets, who had a three-game winning streak snapped. Terry Rozier, playing against Boston for the first time after four seasons with the Celtics, was held to three points on 1-of-11 shooting.
Spurs 121, Thunder 112
LaMarcus Aldridge scored a season-high 39 points on 19-for-23 shooting as San Antonio snapped a two-game losing streak with a win over visiting Oklahoma City.
The Spurs led by eight heading into the fourth quarter and never allowed the Thunder to get closer than five points the rest of the way.
When Aldridge is on his game, the Spurs win. In San Antonio’s five victories this season, he has averaged 25 points per game; in its three losses, he has managed just nine points per contest. Last season, Aldridge scored a career-high 56 points against Oklahoma City.
Heat 124, Suns 108
Jimmy Butler scored 30 of his 34 points in the first half and Goran Dragic scored 20 of his 25 points in the second half as Miami beat host Phoenix to stop the Suns’ three-game winning streak.
Bam Adebayo had 15 points, 10 rebounds, six assists and five steals, Tyler Herro scored 15 points off the bench, and Kendrick Nunn added 11 for the Heat, who at 6-2 are off to their best start since the 2012-13 team won six of its first eight.
Butler made 11 of 16 field-goal attempts and Dragic made 9 of 16 to help the Heat shoot 54.9 percent from the field and 53.6 percent from the 3-point line, where they made 15 of 28. Dragic tied his season high in points and made 3-pointers (five) as the Heat became the first team to outshoot the Suns this season. The Suns shot 44.0 percent.
—Field Level Media


|
Canvas graphics library
0.1.0
This library is developed to perform canvas graphics in memory buffers
|
Go to the source code of this file.
Classes | |
| struct | SFontHeaderRecord |
| struct | SFixedFontInfo |
| struct | SCharInfo |
| struct | SAppMenu |
Macros | |
| #define | SSD1306_MORE_CHARS_REQUIRED 0xffff |
| #define | RGB_COLOR8(r, g, b) ( (r & 0xE0) | ((g >> 3)&0x1C) | (b>>6) ) |
| #define | GRAY_COLOR4(gray) ( ((gray >> 4) & 0x0F) | (gray & 0xF0) ) |
| #define | RGB_COLOR4(r, g, b) ( (r >> 2) + (g >> 1) + (b >> 2) ) |
| #define | RGB8_TO_GRAY4(rgb) ( (rgb >> 6) + ((rgb >> 2) & 0x07) + (rgb & 0x03) ) |
| #define | RGB_COLOR16(r, g, b) ( ((r<<8) & 0xF800) | ((g << 3)&0x07E0) | (b>>3) ) |
| #define | RGB8_TO_RGB16(c) |
| #define | RGB16_TO_RGB8(c) |
Typedefs | |
| typedef int8_t | lcdint_t |
| typedef uint8_t | lcduint_t |
Enumerations | |
| enum | EFontStyle { STYLE_NORMAL, STYLE_BOLD, STYLE_ITALIC } |
| enum | { CANVAS_MODE_BASIC = 0x00, CANVAS_TEXT_WRAP = 0x01, CANVAS_MODE_TRANSPARENT = 0x02, CANVAS_TEXT_WRAP_LOCAL = 0x04 } |
| enum | EFontSize { FONT_SIZE_NORMAL = 0, FONT_SIZE_2X = 1, FONT_SIZE_4X = 2, FONT_SIZE_8X = 3 } |
Basic structures of canvas gfx library
Definition in file canvas_types.h.
| #define GRAY_COLOR4 | ( | gray | ) | ( ((gray >> 4) & 0x0F) | (gray & 0xF0) ) |
Macro to generate 4-bit monochrome color from gray component
Definition at line 55 of file canvas_types.h.
| #define RGB16_TO_RGB8 | ( | c | ) |
Macro to convert 5-6-5 color to 3-3-2 color
Definition at line 72 of file canvas_types.h.
| #define RGB8_TO_GRAY4 | ( | rgb | ) | ( (rgb >> 6) + ((rgb >> 2) & 0x07) + (rgb & 0x03) ) |
Macro to convert 8-bit RGB to 4-bit monochrome format
Definition at line 61 of file canvas_types.h.
| #define RGB8_TO_RGB16 | ( | c | ) |
Macro to convert 3-3-2 color to 5-6-5 color
Definition at line 67 of file canvas_types.h.
| #define RGB_COLOR16 | ( | r, | |
| g, | |||
| b | |||
| ) | ( ((r<<8) & 0xF800) | ((g << 3)&0x07E0) | (b>>3) ) |
Macro to generate 16-bit RGB color
Definition at line 64 of file canvas_types.h.
| #define RGB_COLOR4 | ( | r, | |
| g, | |||
| b | |||
| ) | ( (r >> 2) + (g >> 1) + (b >> 2) ) |
Macro to generate 4-bit monochrome color from RGB
Definition at line 58 of file canvas_types.h.
| #define RGB_COLOR8 | ( | r, | |
| g, | |||
| b | |||
| ) | ( (r & 0xE0) | ((g >> 3)&0x1C) | (b>>6) ) |
Macro to generate 8-bit color
Definition at line 52 of file canvas_types.h.
| #define SSD1306_MORE_CHARS_REQUIRED 0xffff |
Flag means that more chars are required to decode utf-8
Definition at line 43 of file canvas_types.h.
| typedef int8_t lcdint_t |
internal int type, used by the library. Important for uC with low SRAM
Definition at line 79 of file canvas_types.h.
| typedef uint8_t lcduint_t |
internal int type, used by the library. Important for uC with low SRAM
Definition at line 81 of file canvas_types.h.
| anonymous enum |
Definition at line 97 of file canvas_types.h.
| enum EFontSize |
Supported scale font values
Definition at line 109 of file canvas_types.h.
| enum EFontStyle |
Supported font styles
Definition at line 90 of file canvas_types.h.


The hardest part about this problem is dealing with the strings representing people's names.
We keep an array of Person structures that contain their name and how much money they give/get.
The heart of the program is the lookup() function that, given a person's name, returns their Person structure. We add new people with addperson().
Note that we assume names are reasonably short.
#include <stdio.h> #include <string.h> #include <assert.h> #define MAXPEOPLE 10 #define NAMELEN 32 typedef struct Person Person; struct Person { char name[NAMELEN]; int total; }; Person people[MAXPEOPLE]; int npeople; void addperson(char *name) { assert(npeople < MAXPEOPLE); strcpy(people[npeople].name, name); npeople++; } Person* lookup(char *name) { int i; /* look for name in people table */ for(i=0; i<npeople; i++) if(strcmp(name, people[i].name) == 0) return &people[i]; assert(0); /* should have found name */ } int main(void) { char name[NAMELEN]; FILE *fin, *fout; int i, j, np, amt, ng; Person *giver, *receiver; fin = fopen("gift1.in", "r"); fout = fopen("gift1.out", "w"); fscanf(fin, "%d", &np); assert(np <= MAXPEOPLE); for(i=0; i<np; i++) { fscanf(fin, "%s", name); addperson(name); } /* process gift lines */ for(i=0; i<np; i++) { fscanf(fin, "%s %d %d", name, &amt, &ng); giver = lookup(name); for(j=0; j<ng; j++) { fscanf(fin, "%s", name); receiver = lookup(name); giver->total -= amt/ng; receiver->total += amt/ng; } } /* print gift totals */ for(i=0; i<np; i++) fprintf(fout, "%s %d\n", people[i].name, people[i].total); exit (0); }


The Brooklyn Outdoor Film Festival (BOFF), is an International, competitive festival. BFF mission is to provide a public forum in Brooklyn in order to advance public interest in films and the independent production of films. To draw worldwide attention to Brooklyn as a center for cinema. To encourage the rights of all Brooklyn residents to access and experience the power of independent filmmaking, and to promote artistic excellence and the creative freedom of artists without censure. BFF, inc. is a not-for-profit organization.


The Trinity of Tae Kwon Do consists of the three major aspects of Tae Kwon Do; the Body, the Mind, and the Spirit. In order for an individual to develop into a complete and well-rounded person, he must cultivate each aspect of Tae Kwon Do. If only one or two of the aspects are developed, then a person, no matter how hard he trains, may never become a true Master of Art of Tae Kwon Do.
A huge thanks to Year Up Atlanta allowing us to use the facility to teach others the basics of Tae Kwon do and assisting them in concentration techniques that will aid them in class and work.
Our instruction, mission and vision are all based on the five tenets of TKD: Courtesy, Integrity, Perseverance, Self-Control, and Indomitable Spirit.
We teach Tae Kwon Do with dignity and respect of all students regardless of age, belt rank, gender, race or culture. Learning is best in a positive,supportive environment. Students progress through the rank system learning that not only are positive efforts rewared, but that added rewards also mean added responsibilites to themselves and others. Our instruction, mission and vision are all based on the five tenets of TKD: Courtesy, Intergrity, Perseverance, Self-Control, and Indomitable Spirit.
Our curriculum is equally balanced between conditioning and fitness, basic tecniques, self-defense, forms, sparring and the mental/non physical attributes of TKD.


Feauture
Details
Release Date
Announced 2019, November
Display
6.53 inches, 104.7 cm2 (~84.4% screen-to-body ratio) 1080 x 2340 pixels, 19.5:9 ratio (~395 ppi density)
Dimension
162.2 x 76.5 x 8.9 mm (6.39 x 3.01 x 0.35 in)
Weight
193 g (6.81 oz)
OS
Android 9.0 (Pie); Funtouch 9.2
Chipset
Mediatek MT6768 Helio P65 (12nm)
CPU
Octa-core (2x2.0 GHz Cortex-A75 & 6x1.7 GHz Cortex-A55)
GPU
Mali-G52 MC2
Memory
128GB 4GB
Cameras
Triple 16 MP + 8MP + 2 MP (main) | 16MP (Selfie)
Sensors
Fingerprint (rear-mounted), accelerometer, proximity, compass
Battery
Non-removable Li-Po 5000 mAh battery
Colors
Non-removable Li-Po 5000 mAh battery
Versions
N/A


Buttons
Buttons can contains text, icon or both.
Primary
Secondary
Destructive
Disabled
Primary
Secondary
Destructive
Disabled
Primary
Secondary
Destructive
Disabled
Primary
Secondary
Destructive
Disabled
- size
- tiny | small | large (default)
- color
- primary (default) | secondary | destructive | contrast
- border
- boolean (optional)
- icon
- icon name display an icon, text will be hidden
- iconAndText
- boolean (optional, display both icon and text)
- disabled
- boolean (optional, transform the avatar into a button)
{{code}}


Using the Showcase Apps
Showcase apps demonstrate many features of Mobile Services. To see these features:
-
Set up the appropriate services as described in Setting up Mobile Services to Demonstrate Showcase Apps.

Procedure
-
To demonstrate Mobile Metrics, Provision the Mobile Metrics service For more information about features, see Mobile Metrics Service
-
To demonstrate Identity Management:
For more information about features, see Identity Management Service
-
To demonstrate Push Notifications, Provision the Push Notifications service. For more information about features, see Push Notifications Service
Setting Up the Showcase App
Prerequisites
Procedure
-
Clone the showcase app and checkout the release tag 1.0.0
-
The following steps will help you enable Push Notifications in a showcase application.
Binding the Showcase Mobile Client to Mobile Services
-
Bind the Mobile Client to the Mobile Metrics service if you want to demonstrate the Mobile Metrics service.
-
Bind the Mobile Client to the Identity Management service if you want to demonstrate authentication.
-
Bind the Mobile Client to the Push Notifications service if you want to demonstrate Push Notifications.
This step also creates a variant as described in Push Notifications Service terminology.
Downloading the Mobile Services Configuration File
-
Navigate to your project in OpenShift.
-
On the Overview screen, expand your Mobile Client to view the CLIENT INFO.
-
Copy the configuration to your clipboard.
-
Save the contents of the clipboard to a new file called
mobile-services.json
.The mobile-services.json file is the link between your provisioned services on OpenShift and the mobile app you are developing. This file provides all required configuration to initialise the various SDKs and get them hooked up/connected to the back-end services. -
Follow the next specific additional instructions depending on your platform:


Spawns a new Listener as SYSTEM by leveraging the MS16-135 local exploit. This exploit is for x64 only and only works on unlocked session. Note: the exploit performs fast windows switching, victim\'s desktop may flash. A named pipe is also created. Thus, opsec is not guaranteed'
Does not need Admin
Credit to TinySec (@TinySecEx) for the initial PoC and',
'to Ruben Boonen (@FuzzySec) for PowerShell PoC',
'https://github.com/tinysec/public/tree/master/CVE-2016-7255',
'https://github.com/FuzzySecurity/PSKernel-Primitives/tree/master/Sample-Exploits/MS16-135',
'https://security.googleblog.com/2016/10/disclosing-vulnerabilities-to-protect.html
moduleSource = self.mainMenu.installPath + "/data/module_source/privesc/Invoke-MS16135.ps1
MS16-135 Security Bulletin Security Update for Windows Kernel-Mode Drivers
The most severe of the vulnerabilities could allow elevation of privilege if an attacker logs on to an affected system and runs a specially crafted application that could exploit the vulnerabilities and take control of an affected system.
It can be triggered via the win32k.sys system call NtSetWindowLongPtr() for the index GWLP_ID on a window handle with GWL_STYLE set to WS_CHILD


mentioned
by None at 2023-07-18 18:42:01.subscribed
by None at 2023-07-18 18:42:01.@Phil94comp : thanks! Yes, you will want to ensure that you have ruby, bundler, lando, and yarn installed, then follow those steps. When you get to the rake task, it would be as written (rake dss:servers:start
). The dss
part of that command comes from the rake task namespace in this file, rather than from the name of the directory.
mentioned
by None at 2023-07-18 18:45:15.subscribed
by None at 2023-07-18 18:45:15.assigned
by Liz Garcia at 2023-07-18 13:50:19.review_requested
by Liz Garcia at 2023-07-18 14:19:46.head_ref_force_pushed
by Liz Garcia at 2023-07-18 19:32:55.labeled
by None at 2023-07-18 17:24:35.labeled
by None at 2023-07-18 17:24:35.labeled
by None at 2023-07-18 17:24:35.Looks like they were gone from the database but not the solr index. I've removed them.
assigned
by None at 2023-07-18 17:39:30.closed
by None at 2023-07-18 17:55:55.closed
by Hector Correa at 2023-07-18 14:10:55.Local fixity check ran successfully.
closed
by Trey Pendragon at 2023-07-17 22:53:19.@jpstroop Here's 2023, now that June's over:
mentioned
by Jon Stroop at 2023-07-17 22:55:45.subscribed
by Jon Stroop at 2023-07-17 22:55:45.closed
by Trey Pendragon at 2023-07-17 22:56:25.labeled
by Trey Pendragon at 2023-07-18 15:34:50.labeled
by Trey Pendragon at 2023-07-18 15:34:50.renamed
by None at 2023-07-18 15:35:05.@tpendragon says this will go away when we migrate postgres
mentioned
by Trey Pendragon at 2023-07-18 16:45:11.subscribed
by Trey Pendragon at 2023-07-18 16:45:11.labeled
by Trey Pendragon at 2023-07-18 17:06:50.labeled
by Trey Pendragon at 2023-07-18 17:06:50.renamed
by None at 2023-07-18 17:08:04.assigned
by Shaun Ellis at 2023-07-18 17:38:37.Adding a ref to #5709
head_ref_force_pushed
by None at 2023-07-18 19:54:55.referenced
by Trey Pendragon at 2023-07-18 20:58:17.merged
by Trey Pendragon at 2023-07-18 20:58:17.closed
by Trey Pendragon at 2023-07-18 20:58:17.head_ref_deleted
by Trey Pendragon at 2023-07-18 20:58:17.renamed
by Max Kadel at 2023-07-18 19:19:41.


---
layout: doc_layout
title: Creating a Custom Serialization Adapter
category: Serialization
prev: /docs/serialization/xml.html
next: /docs/hosting/defaultservicehost.html
---
While Wave has support for the major .NET serialization frameworks via NuGet packages, your infrastructure may use a different serialization solution.
Wave provides a interface (Wave.ISerializer
) that all serialization adapters implement. This interface can be used to bridge
between Wave and your custom serialization solution.
This is an example implementation with a fictatious serialization system:
{% highlight c# linenos %}
public class AwesomeSerializationAdapter : ISerializer
{
public string ContentType
{
get
{
// Specify the MIME type of the data here, this is used by the transports
return "application/xml";
}
}
public Encoding Encoding
{
get
{
// This is used by the transports as well
return Encoding.UTF8;
}
}
public object Deserialize(string input, Type type)
{
// Call the Deserializer here and convert the string to an object
return new AwesomeSerializer().Deserialize(input,type);
}
public string Serialize(object input)
{
// Call the Serializer here and convert the object to a string
return new AwesomeSerializer().Serialize(input);
}
}
{% endhighlight %}
Once the serialization adapter is written, you can instruct Wave to use it by using fluent configuration when configuring the host:
{% highlight c# linenos %}
var host = ServiceBus.ConfigureForHosting(c =>
{
c.UsingSerializer();
});
{% endhighlight %}
Or by using XML configuration in the host's configuration file:
{% highlight xml linenos %}
{% endhighlight %}


Tokyo stocks close lower with eyes on US-China trade row
TOKYO, Nov 19 — Tokyo stocks lost ground today as investors warily watched the latest developments in the US-China trade row, with few other fresh market-moving events.
The benchmark Nikkei 225 index fell 0.53 per cent, or 124.11 points, to close at 23,292.65, while the broader Topix index was down 0.23 per cent, or 3.99 points, at 1,696.73.
Investors “remain hostage” to developments in the US-China trade talks, and the latest reports from China “suggest the mood in Beijing was ‘pessimistic’ regarding the trade deal,” Stephen Innes, chief Asia market strategist at AxiTrader, said in a note.
Similarly, Okasan Online Securities chief strategist Yoshihiro Ito said: “It is hard to seek higher share prices (in the Japanese market) unless concrete progress emerges from ongoing US-China trade talks.”
News that the United States granted another 90 days for companies to cease doing business with China’s telecoms giant Huawei was however helping improve the market sentiment, Ito said in a note.
US President Donald Trump in May effectively barred Huawei from American communications networks after Washington found the company had violated US sanctions on Iran and attempted to block a subsequent investigation.
The battle over Huawei has landed squarely in the middle of Trump’s trade battle with Beijing.
US officials initially said the two were unrelated, but Trump has suggested a resolution to the trade conflict could involve reaching some common ground on Huawei.
The dollar fetched ¥108.59 in Asian afternoon trade against ¥108.68 in New York yesterday.
In Tokyo, major exporters were lower, with Toyota losing 1.04 per cent at ¥7,754 and Honda down 0.72 per cent at ¥3,134. Chip-making equipment manufacturer Tokyo Electron dropped 1.25 per cent at ¥22,870.
Z Holdings, formerly known as Yahoo Japan, plunged 8.05 per cent to ¥388 after adding 1.19 per cent in the previous session following its announcement of a merger with mobile messaging app Line.
SoftBank Group, a major shareholder of Z Holdings, dropped 1.33 per cent to ¥4,272. — AFP


khome
/
khome.communicating
/
ServiceCommandResolverImpl
/
resolve
resolve
fun
resolve
(
desiredState
:
S
)
:
ResolvedServiceCommand
Overrides
ServiceCommandResolver.resolve


Working with Plain Text
I’ve spoken before on my use of LaTeX for my thesis. This allowed me to create a great looking thesis, with easy linking, cross referencing and bibliography that users of Microsoft Word struggle with!
As plain text, this allowed me to edit my files on the Mac, Windows and iPad with ease - in fact, I write about my attempts to use the iPad only here, which includes me editing my thesis on the go on the iPad.
However, I’m a fan of plain text files for all other writing as well - in fact, all my writing outside of work where I’m forced to use Microsoft Word, is done in plain text, in the form of Markdown.
Workflow
I think my workflow is fairly similar to most. As a Mac user, I’m spoilt for choice for Markdown editors, though as occasionally I use Windows at work, I’ve also come to realise that Markdown seems to be Mac and iOS user specific (or a number of Windows and Android users don’t want to program anything special).
However, my basic writing starts in nValt as this allows me to search my notes folder. In fact, nValt seems to be slowly replacing Evernote for me, as I seem to be storing more and more data in plain text files, than in Evernote where formatting is kept etc - I’m finding I don’t need all of that. nValt is set to store all my notes in plain text within a folder in my ~/Documents folder.
A few tweaks to the colour scheme and font (I use the Open Dyslexic font in nValt as for some reason it wont use the Mono Dyslexic font that I purchased a few years ago) mean that it makes for a relatively decent writing environment, with autosave and search should I need it. Seems that I’m mainly using it for writing articles and reports, rather than standard notes!
With this setup, I’m able to sync my notes between my computers using Dropbox or Bittorrent Sync. I then use either Textastic or Editorial on the iPad/iPhone to edit the files (depending on what syncing method I’m using at the time). Editorial is better as any changes are automatically synced back to Dropbox but Textastic offers a few more options and offers syntax highlighting for LaTeX documents that I still occasionally use (yet to see a template for a letter written in Markdown).
I occasionally use Byword to edit my files within nValt, using it’s handy external editor function. However, I move between the two, as Byword doesn’t have a spell checker by nValt does. There’s not much reason for swapping between the two, other than I like the typewriter function on Byword - I find it makes it easier to edit documents. It also autosaves as well (something that I had to get used to when it was first brought into the Mac, but now I find has saved me on numerous occasions!)
Marked 2
I don’t think I’d have been quite as successful at using Markdown if I didn’t have Marked (and now Marked 2). This lets me export my Markdown files into almost any other format. Pandoc does the same but it’s command line driven and not as easy to use. Marked 2 lets me export my files into .doc and .rtf files - which I need for writing for Micro Mart as they expect articles in Word compatible formats. Marked allows me to write wherever I am and then convert into almost any other format for sending wherever I need it to go.
This means that the almost all of my writing can be replaced with plain text work as I can edit and use plain text wherever I am.
Conclusion
The benefits of plain text writing is fairly straight forward. In addition to the points mentioned above, plain text files are small on disk space (smaller than Word documents) and can still be opened regardless of if you have the software installed (Notepad is on all Windows systems by default but Word costs money, unless you use the restricted online version).
It helps that some of the other apps I use make use of Markdown - for example, Day One allows me to write in Markdown to format entries, which means I can make use of it to create tables and other information I might want to save.


auracle
Command-line tool used to interact with Arch Linux's User Repository, commonly referred to as the AUR.
More information: home page
- Display AUR packages that match a regular expression:
auracle search 'regular_expression'
- Display package information for a space-separated list of AUR packages:
auracle info package1 package2
- Display the `PKGBUILD` file (build information) for a space-separated list of AUR packages:
auracle show package1 package2
- Display updates for installed AUR packages:
auracle outdated


Excellent talk by Ed Ionides at UC Davis today (led me to miss Weds session of Data to Knowledge).
Ed Ionides
six problems of Bjonstead and Grenfell: an appeal for arbitrary nonlinear partially observed vector valued stochastic models.
POMP doesn’t mix well in the winbugs.
simulation-based algorithm (plug-and-play)
Think of a process being defined by:
rprocess()
dprocess()
rmeasure()
dmeasure()
In general we need some subset of these processes:
| type | rprocess | dprocess | rmeasure | dmeasure |
|---|---|---|---|---|
| iterative filtering | X | X | ||
| Lui-West SCM | X | X | ||
| EM by SCM | X | X | X | |
| MCMC | X | X | ||
| Nonlin forecasting | X | X | ||
| Particle MCMC | X | X | ||
| Probe matching | X | X |
Bayesian plug-and-play
- Artificial parameter evolution (Liu & West 2001)
- Approximate Bayesian Computing (Toni et. al. 2009)
- Particle MCMC (Andrieu et. al. 2010)
Non-Bayesian
- Simulation-based prediction rules “Probe-matching” (Kendall et. al. 1999)
- Simulated likelihood of summary statistics (Wood, 2010)
- Iterated filtering (Ionides et. al. 2006)
- Nonlinear forecasting
“Likelihood-free” inference – i.e. don’t have the likelihood equation unlike MCMC, EM need dprocess()
- Compare to optimization “gradient-free” methods.
- or to Keverkidis “equation-free” (Kevrekidis et. al. 2003) Approximate Bayesian methods and simulated moment methods lead to loss of statistical efficiency Iterated filtering enables almost exact likelihood-based inference.
ODEs have been plug-and-play (numerical) for a long time. We want this to be true for SDEs as well.
Filtering
- Think “Kalman filter”. Particle filter is a simulated approximation approach for the likelihood function.
- Iterative filtering is a much more clever way to search for the best fit model than some traditional optimization routine that wants a smooth likelihood function.
Theorem: derivative of the log-likelihood is the small-noise limit of a weighted average of local filtering. In:
- (Ionides et. al. 2006) (pseudo-code)
- (Ionides et. al. 2011) (proofs)
Scientists like life on the edge of identifiability, > Minimal complexity acceptable to scientsits approx maximimal complexity acceptable to available data
- Ah, Ed’s slides are available online.
- Some good information on the pomp website as well.
References
- Christophe Andrieu, Arnaud Doucet, Roman Holenstein, (2010) Particle Markov Chain Monte Carlo Methods. Journal of The Royal Statistical Society: Series B (Statistical Methodology) 72 10.1111/j.1467-9868.2009.00736.x
- E. L. Ionides, C. Breto, A. A. King, (2006) Inference For Nonlinear Dynamical Systems. Proceedings of The National Academy of Sciences 103 10.1073/pnas.0603181103
- Edward L. Ionides, Anindya Bhadra, Yves Atchadé, Aaron King, (2011) Iterated Filtering. The Annals of Statistics 39 10.1214/11-AOS886
- Bruce E. Kendall, Cheryl J. Briggs, William W. Murdoch, Peter Turchin, Stephen P. Ellner, Edward McCauley, Roger M. Nisbet, Simon N. Wood, (1999) Why do Populations Cycle? A Synthesis of Statistical And Mechanistic Modeling Approaches. Ecology 80 10.1890/0012-9658(1999)080[1789:WDPCAS]2.0.CO;2
Simon N. Wood, (2010) Statistical Inference For Noisy Nonlinear Ecological Dynamic Systems. Nature 466 10.1038/nature09319
- E. L. Ionides, C. Breto, A. A. King, (2006) Inference For Nonlinear Dynamical Systems. Proceedings of The National Academy of Sciences 103 10.1073/pnas.0603181103
- T. Toni, D. Welch, N. Strelkowa, A. Ipsen, M. P.H Stumpf, (2009) Approximate Bayesian Computation Scheme For Parameter Inference And Model Selection in Dynamical Systems. Journal of The Royal Society Interface 6 10.1098/rsif.2008.0172
Ioannis Kevrekidis, William Gear, James Hyman, Panagiotis Kevrekidid, Olof Runborg, Constantinos Theodoropoulos, (2003) Equation-Free, Coarse-Grained Multiscale Computation: Enabling Mocroscopic Simulators to Perform System-Level Analysis. Communications in Mathematical Sciences http://projecteuclid.org/euclid.cms/1119655353
Exploring Iterative Filtering in POMP
my example exploration, following the introductory vignette.
Note that the iterative filtering algorithm took a little over 16 minutes on ten processors on the farm cluster. pomp does not provide any parallelization. Particles must communicate at each iteration. With tight communication loops, could probably get substantial acceleration on MPI or GPU.
(Would be interesting to drive the simulation with Gillespie algorithm, something richer than a crude discritization. Depending on timescale, may result in very computationally intensive requirements).
require(pomp)
gompertz.proc.sim <- function(x, t, params, delta.t, ...) {
r <- params["r"]
K <- params["K"]
sigma <- params["sigma"]
X <- x["X"] # the state at time t:
## generate a log-normal random variable:
eps <- exp(rnorm(n = 1, mean = 0, sd = sigma))
## compute the state at time t+delta.t:
S <- exp(-r * delta.t)
c(X = unname(K^(1 - S) * X^S * eps))
}
gompertz.meas.sim <- function(x, t, params, ...) {
tau <- params["tau"]
X <- x["X"] # state at time t:
y <- c(Y = unname(rlnorm(n = 1, meanlog = log(X), sd = tau)))
}
create a container of class pomp
to hold the model and data.
gompertz <- pomp(data = data.frame(time = 1:100, Y = NA), times = "time",
rprocess = discrete.time.sim(step.fun = gompertz.proc.sim, delta.t = 1),
rmeasure = gompertz.meas.sim, t0 = 0)
Parameters and inital condition:
theta <- c(r = 0.1, K = 1, sigma = 0.1, tau = 0.1, X.0 = 1)
gompertz <- simulate(gompertz, params = theta)
plot(gompertz, variables = "Y")
Likelihood using a particle filter (sequential Monte Carlo) requires the measurement density (but not the process density).
gompertz.meas.dens <- function(y, x, t, params, log, ...) {
tau <- params["tau"]
## state at time t:
X <- x["X"]
## observation at time t:
Y <- y["Y"]
## compute the likelihood of Y|X,tau
dlnorm(x = Y, meanlog = log(X), sdlog = tau, log = log)
}
Stick the new function into our container:
gompertz <- pomp(gompertz, dmeasure = gompertz.meas.dens)
Then we get a point estimate of the likelihood,
pf <- pfilter(gompertz, params = theta, Np = 1000)
logLik(pf)
[1] 49.29
Iterated filtering
We will do this in the transformed variable space, so we add our transformation method to the container:
gompertz <- pomp(gompertz, parameter.transform = function(params,
...) {
exp(params)
}, parameter.inv.transform = function(params, ...) {
log(params)
})
Now we’re ready for an iterated-filtering run. This is gonna be slow, so let’s set up a parallel architecture first:
require(snowfall)
sfInit(parallel = TRUE, cpu = 10)
rep <- function(dummy_index) {
estpars <- c("r", "sigma", "tau")
theta.guess <- coef(gompertz)
theta.guess[estpars] <- rlnorm(n = length(estpars), meanlog = log(theta.guess[estpars]),
sdlog = 1)
mif(gompertz, Nmif = 100, start = theta.guess, transform = TRUE, pars = estpars,
rw.sd = c(r = 0.02, sigma = 0.02, tau = 0.05), Np = 2000, var.factor = 4,
ic.lag = 10, cooling.factor = 0.999, max.fail = 10)
}
sfExportAll()
system.time(mf <- sfSapply(1:10, rep))
user system elapsed
0.02 0.00 1037.39
Average parameter estimates (compare to theta)
theta.mif <- apply(sapply(mf, coef), 1, mean)
theta.mif
r K sigma tau X.0
0.04385 1.00000 0.09647 0.10495 1.00000
Evaluating the log-likelihoods at the convergent parameters requires the particle filter. This line applies the particle filter to each of the parameter estimates
loglik.mif <- replicate(n = 10, logLik(pfilter(mf[[1]], params = theta.mif,
Np = 10000)))
bl <- mean(loglik.mif)
loglik.mif.est <- bl + log(mean(exp(loglik.mif - bl)))
loglik.mif.se <- sd(exp(loglik.mif - bl))/exp(loglik.mif.est - bl)
c(est = loglik.mif.est, se = loglik.mif.se)
est se
51.45397 0.09316
“True” uses the original model and coefficients rather than the estimated one, but still approximates the log.likelihood using particle filtering
loglik.true <- replicate(n = 10, logLik(pfilter(gompertz, params = coef(gompertz),
Np = 10000)))
loglik.true.est <- bl + log(mean(exp(loglik.true - bl)))
loglik.true.se <- sd(exp(loglik.true - bl))/exp(loglik.true.est -
bl)
c(est = loglik.true.est, se = loglik.true.se)
est se
50.0128 0.1062


\
The nuclear forces are almost charge independent. If we assume they are, we can introduce a new quantum number which is conserved. For nucleons only, that is a proton and neutron, we can limit ourselves to two possible values which allow us to distinguish between the two particles. If we assign an isospin value of \( \tau=1/2 \) for protons and neutrons (they belong to an isospin doublet, in the same way as we discussed the spin \( 1/2 \) multiplet), we can define the neutron to have isospin projection \( \tau_z=+1/2 \) and a proton to have \( \tau_z=-1/2 \). These assignements are the standard choices in low-energy nuclear physics.
*Quark cluster models. Begin of effective field theory studies.
Nucleon-nucleon interaction from Lattice QCD, final confirmation of meson hypothesis of Yukawa? See for example Ishii et al, PRL 2007
The aim is to give you an overview over central features of the nucleon-nucleon interaction and how it is constructed, with both technical and theoretical approaches.
Comparison of the binding energies of \( {}^2\mbox{H} \) (deuteron), \( {}^3\mbox{H} \) (triton), \( {}^4\mbox{He} \) (alpha - particle) show that the nuclear force is of finite range (\( 1-2 \) fm) and very strong within that range.
For nuclei with \( A>4 \), the energy saturates: Volume and binding energies of nuclei are proportional to the mass number \( A \) (as we saw from exercise 1).
Nuclei are also bound. The average distance between nucleons in nuclei is about \( 2 \) fm which must roughly correspond to the range of the attractive part.
Charge-symmetry breaking (CSB), after electromagnetic effects have been removed:
Charge-independence breaking (CIB)
Here we display a typical way to parametrize (non-relativistic expression) the nuclear two-body force in terms of some operators, the central part, the spin-spin part and the central force.
$$
V(\mathbf{r})= \left\{ C_c + C_\mathbf{\sigma} \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2
+ C_T \left( 1 + {3\over m_\alpha r} + {3\over\left(m_\alpha r\right)^2}\right) S_{12} (\hat r)\right.
$$
$$
\left. + C_{SL} \left( {1\over m_\alpha r} + {1\over \left( m_\alpha r\right)^2}
\right) \mathbf{L}\cdot \mathbf{S}
\right\} \frac{e^{-m_\alpha r}}{m_\alpha r}
$$
How do we derive such terms? (Note: no isospin dependence and that the above is an approximation)
To derive the above famous form of the nuclear force using field theoretical concepts, we will need some elements from relativistic quantum mechanics. These derivations will be given below. The material here gives some background to this. I know that many of you have not taken a course in quantum field theory. I hope however that you can see the basic ideas leading to the famous non-relativistic expressions for the nuclear force.
Furthermore, when we analyze nuclear data, we will actually try to explain properties like spectra, single-particle energies etc in terms of the various terms of the nuclear force. Moreover, many of you will hear about these terms at various talks, workshops, seminars etc. Then, it is good to have an idea of what people actually mean!!
| Baryons | Mass (MeV) | Mesons | Mass (MeV) |
|---|---|---|---|
| \( p,n \) | 938.926 | \( \pi \) | 138.03 |
| \( \Lambda \) | 1116.0 | \( \eta \) | 548.8 |
| \( \Sigma \) | 1197.3 | \( \sigma \) | \( \approx 550.0 \) |
| \( \Delta \) | 1232.0 | \( \rho \) | 770 |
| \( \omega \) | 782.6 | ||
| \( \delta \) | 983.0 | ||
| \( K \) | 495.8 | ||
| \( K^{\star} \) | 895.0 |
But before we proceed, we will look into specific quantum numbers of the relative system and study expectation vaues of the various terms of
$$
V(\mathbf{r})= \left\{ C_c + C_\mathbf{\sigma} \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2
+ C_T \left( 1 + {3\over m_\alpha r} + {3\over
\left(m_\alpha r\right)^2}\right) S_{12} (\hat r)\right.
$$
$$
\left. + C_{SL} \left( {1\over m_\alpha r} + {1\over \left( m_\alpha r\right)^2}
\right) \mathbf{L}\cdot \mathbf{S}
\right\} \frac{e^{-m_\alpha r}}{m_\alpha r}
$$
When solving the scattering equation or solving the two-nucleon problem, it is convenient to rewrite the Schroedinger equation, due to the spherical symmetry of the Hamiltonian, in relative and center-of-mass coordinates. This will also define the quantum numbers of the relative and center-of-mass system and will aid us later in solving the so-called Lippman-Schwinger equation for the scattering problem.
We define the center-of-mass (CoM) momentum as
$$
\mathbf{K}=\sum_{i=1}^A\mathbf{k}_i,
$$
with \( \hbar=c=1 \) the wave number \( k_i=p_i \), with \( p_i \) the pertinent momentum of a single-particle state.
We have also the relative momentum
$$
\mathbf{k}_{ij}=\frac{1}{2}(\mathbf{k}_i-\mathbf{k}_j).
$$
We will below skip the indices \( ij \) and simply write \( \mathbf{k} \)
In a similar fashion we can define the CoM coordinate
$$
\mathbf{R}=\frac{1}{A}\sum_{i=1}^{A}\mathbf{r}_i,
$$
and the relative distance
$$
\mathbf{r}_{ij}=(\mathbf{r}_i-\mathbf{r}_j).
$$
With the definitions
$$
\mathbf{K}=\sum_{i=1}^A\mathbf{k}_i,
$$
and
$$
\mathbf{k}_{ij}=\frac{1}{2}(\mathbf{k}_i-\mathbf{k}_j).
$$
we can rewrite the two-particle kinetic energy (note that we use \( \hbar=c=1 \) as
$$
\frac{\mathbf{k}_1^2}{2m_n}+\frac{\mathbf{k}_2^2}{2m_n}=\frac{\mathbf{k}^2}{m_n}+\frac{\mathbf{K}^2}{4m_n},
$$
where \( m_n \) is the average of the proton and the neutron masses.
Since the two-nucleon interaction depends only on the relative distance, this means that we can separate Schroedinger's equation in an equation for the center-of-mass motion and one for the relative motion.
With an equation for the relative motion only and a separate one for the center-of-mass motion we need to redefine the two-body quantum numbers.
Previously we had a two-body state vector defined as \( |(j_1j_2)JM_J\rangle \) in a coupled basis. We will now define the quantum numbers for the relative motion. Here we need to define new orbital momenta (since these are the quantum numbers which change). We define
$$
\hat{l}_1+\hat{l}_2=\hat{\lambda}=\hat{l}+\hat{L},
$$
where \( \hat{l} \) is the orbital momentum associated with the relative motion and
\( \hat{L} \) the corresponding one linked with the CoM. The total spin \( S \) is unchanged since it acts in a different space. We have thus that
$$
\hat{J}=\hat{l}+\hat{L}+\hat{S},
$$
which allows us to define the angular momentum of the relative motion
$$
{ \cal J} = \hat{l}+\hat{S},
$$
where \( { \cal J} \) is the total angular momentum of the relative motion.
The total two-nucleon state function has to be anti-symmetric. The total function contains a spatial part, a spin part and an isospin part. If isospin is conserved, this leads to in case we have an \( s \)-wave with spin \( S=0 \) to an isospin two-body state with \( T=1 \) since the spatial part is symmetric and the spin part is anti-symmetric.
Since the projections for \( T \) are \( T_z=-1,0,1 \), we can have a \( pp \), an \( nn \) and a \( pn \) state.
For \( l=0 \) and \( S=1 \), a so-called triplet state, \( ^3S_1 \), we must have \( T=0 \), meaning that we have only one state, a \( pn \) state. For other partial waves, the following table lists states up to \( f \) waves. We can systemize this in a table as follows, recalling that \( |\mathbf{l}-\mathbf{S}| \le |\mathbf{J}| \le |\mathbf{l}+\mathbf{S}| \),
| \( ^{2S+1}l_J \) | \( J \) | \( l \) | \( S \) | \( T \) | \( \vert pp\rangle \) | \( \vert pn\rangle \) | \( \vert nn\rangle \) |
| \( ^{1}S_0 \) | 0 | 0 | 0 | 1 | yes | yes | yes |
| \( ^{3}S_1 \) | 1 | 0 | 1 | 0 | no | yes | no |
| \( ^{3}P_0 \) | 0 | 1 | 1 | 1 | yes | yes | yes |
| \( ^{1}P_1 \) | 1 | 1 | 0 | 0 | no | yes | no |
| \( ^{3}P_1 \) | 1 | 1 | 1 | 1 | yes | yes | yes |
| \( ^{3}P_2 \) | 2 | 1 | 1 | 1 | yes | yes | yes |
| \( ^{3}D_1 \) | 1 | 2 | 1 | 0 | no | yes | no |
| \( ^{3}F_2 \) | 2 | 3 | 1 | 1 | yes | yes | yes |
The tensor force is given by
$$
S_{12} (\hat r) = \frac{3}{r^2}\left(\mathbf{\sigma}_1\cdot \mathbf{r}\right) \left(\mathbf{\sigma}_2\cdot \mathbf{r}\right) -\mathbf{\sigma}_1\cdot\mathbf{\sigma}_2$$
where the Pauli matrices are defined as
$$
\sigma_x =\begin{Bmatrix} 0 & 1 \\ 1 & 0 \end{Bmatrix},
$$
$$
\sigma_y =\begin{Bmatrix} 0 & -\imath \\ \imath & 0 \end{Bmatrix},
$$
and
$$
\sigma_z =\begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix},
$$
with the properties \( \sigma = 2\mathbf{S} \) (the spin of the system, being \( 1/2 \) for nucleons),
\( \sigma^2_x=\sigma^2_y=\sigma_z=\mathbf{1} \) and
obeying the commutation and anti-commutation relations \( \{\sigma_x,\sigma_y\} =0 \)
\( [\sigma_x,\sigma_y] =\imath\sigma_z \) etc.
When we look at the expectation value of \( \langle \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2\rangle \), we can rewrite this expression in terms of the spin \( \mathbf{S}=\mathbf{s}_1+\mathbf{s}_2 \), resulting in
$$
\langle\mathbf{\sigma}_1\cdot\mathbf{\sigma}_2\rangle=2(S^2-s_1^2-s_2^2)=2S(S+1)-3,
$$
where we \( s_1=s_2=1/2 \) leading to
$$
\left\{ \begin{array}{cc} \langle\mathbf{\sigma}_1\cdot\mathbf{\sigma}_2\rangle=1 & \mathrm{if} \hspace{0.2cm} S=1\\
\langle\mathbf{\sigma}_1\cdot\mathbf{\sigma}_2\rangle=-3 & \mathrm{if} \hspace{0.2cm} S=0\\\end{array}\right.
$$
Similarly, the expectation value of the spin-orbit term is
$$
\langle \mathbf{l}\mathbf{S} \rangle = \frac{1}{2}\left( J(J+1)-l(l+1)-S(S+1)\right),
$$
which means that for \( s \)-waves with either \( S=0 \) and thereby \( J=0 \) or \( S=1 \) and \( J=1 \),
the expectation value for the
spin-orbit force is zero. With the above phenomenological model, the
only contributions to the expectation value of the potential energy for \( s \)-waves
stem from the central and the spin-spin components since the
expectation value of the tensor force is also zero.
For \( s=1/2 \) spin values only for two nucleons, the expectation value of the tensor force operator is
| \( l' \) | |||
| \( l \) | \( J+1 \) | \( J \) | \( J-1 \) |
| \( J+1 \) | \( -\frac{2J(J+2)}{2J+1} \) | 0 | \( \frac{6\sqrt{J(J+1)}}{2J+1} \) |
| \( J \) | 0 | 2 | 0 |
| \( J-1 \) | \( \frac{6\sqrt{J(J+1)}}{2J+1} \) | 0 | \( -\frac{2(2J+1)}{2J+1} \) |
We will derive these expressions after we have discussed the Wigner-Eckart theorem.
If we now add isospin to our simple \( V_4 \) interaction model, we end up with \( 8 \) operators, popularly dubbed \( V_8 \) interaction model. The explicit form reads
$$
V(\mathbf{r})= \left\{ C_c + C_\mathbf{\sigma} \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2
+ C_T \left( 1 + {3\over m_\alpha r} + {3\over
\left(m_\alpha r\right)^2}\right) S_{12} (\hat r)\right.
$$
$$
\left. + C_{SL} \left( {1\over m_\alpha r} + {1\over \left( m_\alpha r\right)^2}
\right) \mathbf{L}\cdot \mathbf{S}
\right\} \frac{e^{-m_\alpha r}}{m_\alpha r}
$$
$$
+ \left\{ C_{c\tau} + C_{\sigma\tau}\mathbf{\sigma}_1\cdot\mathbf{\sigma}_2
+ C_{T\tau} \left( 1 + {3\over m_\alpha r} + {3\over
\left(m_\alpha r\right)^2}\right) S_{12} (\hat r)\right.
$$
$$
\left. + C_{SL\tau} \left( {1\over m_\alpha r} + {1\over \left( m_\alpha r\right)^2}
\right) \mathbf{L}\cdot \mathbf{S}
\right\}\mathbf{\tau}_1\cdot\mathbf{\tau}_2 \frac{e^{-m_\alpha r}}{m_\alpha r}
$$
From 1950 till approximately 2000: One-Boson-Exchange (OBE) models dominate. These are models which typically include several low-mass mesons, that is with masses below 1 GeV. Potentials which are based upon the standard non-relativistic operator structure are called "Phenomenological Potentials" Some historically important examples are
Now: models based on chiral perturbation theory. These are effective models with nucleons and pions as degrees of freedom only. The other mesons which appeared in standard one-boson model appear as multi-pion resonances.
The total two-nucleon state function has to be anti-symmetric. The total function contains a spatial part, a spin part and an isospin part. If isospin is conserved, this leads to in case we have an \( s \)-wave with spin \( S=0 \) to an isospin two-body state with \( T=1 \) since the spatial part is symmetric and the spin part is anti-symmetric.
Since the projections for \( T \) are \( T_z=-1,0,1 \), we can have a \( pp \), an \( nn \) and a \( pn \) state.
For \( l=0 \) and \( S=1 \), a so-called triplet state, \( ^3S_1 \), we must have \( T=0 \), meaning that we have only one state, a \( pn \) state. For other partial waves, see exercises below.
The one-pion exchange contribution (see derivation below), can be written as
$$
V_{\pi}(\mathbf{r})= -\frac{f_{\pi}^{2}}{4\pi m_{\pi}^{2}}\mathbf{ \tau}_1\cdot\mathbf{\tau}_2
\frac{1}{3}\left\{\mathbf{ \sigma}_1\cdot\mathbf{ \sigma}_2+\left( 1 + {3\over m_\pi r} + {3\over\left(m_\pi r\right)^2}\right) S_{12} (\hat r)\right\} \frac{e^{-m_\pi r}}{m_\pi r}.
$$
Here the constant \( f_{\pi}^{2}/4\pi\approx 0.08 \) and the mass of the pion is \( m_\pi\approx 140 \) MeV/$\mbox{c}^2$.
Let us look closer at specific partial waves for which one-pion exchange is applicable. If we have \( S=0 \) and \( T=0 \), the orbital momentum has to be an odd number in order for the total anti-symmetry to be obeyed. For \( S=0 \), the tensor force component is zero, meaning that the only contribution is
$$
V_{\pi}(\mathbf{r})=\frac{3f_{\pi}^{2}}{4\pi m_{\pi}^{2}}\frac{e^{-m_\pi r}}{m_\pi r},
$$
since \( \langle\mathbf{ \sigma}_1\cdot\mathbf{ \sigma}_2\rangle=-3 \), that is we obtain a repulsive contribution to partial waves like
\( ^1P_0 \).
Since \( S=0 \) yields always a zero tensor force contribution, for the combination of \( T=1 \) and then even \( l \) values, we get an attractive contribution
$$
V_{\pi}(\mathbf{r})=-\frac{f_{\pi}^{2}}{4\pi m_{\pi}^{2}}\frac{e^{-m_\pi r}}{m_\pi r}.
$$
With \( S=1 \) and \( T=0 \), \( l \) can only take even values in order to obey the anti-symmetry requirements and we get
$$
V_{\pi}(\mathbf{r})= -\frac{f_{\pi}^{2}}{4\pi m_{\pi}^{2}}
\left(1+( 1 + {3\over m_\pi r} + {3\over\left(m_\pi r\right))^2}) S_{12} (\hat r)\right) \frac{e^{-m_\pi r}}{m_\pi r},
$$
while for \( S=1 \) and \( T=1 \), \( l \) can only take odd values, resulting in a repulsive contribution
$$
V_{\pi}(\mathbf{r})= \frac{1}{3}\frac{f_{\pi}^{2}}{4\pi m_{\pi}^{2}}\left(1+( 1 + {3\over m_\pi r} + {3\over\left(m_\pi r\right)^2}) S_{12} (\hat r)\right) \frac{e^{-m_\pi r}}{m_\pi r}.
$$
The central part of one-pion exchange interaction, arising from the spin-spin term, is thus attractive for \( s \)-waves and all even \( l \) values. For \( p \)-waves and all other odd values it is repulsive. However, its overall strength is weak. This is discussed further in one of exercises below.
a) List all allowed according to the Pauli principle partial waves with isospin \( T \), their projection \( T_z \), spin \( S \), orbital angular momentum \( l \) and total spin \( J \) for \( J\le 3 \). Use the standard spectroscopic notation \( ^{2S+1}L_J \) to label different partial waves. A proton-proton state has \( T_Z=-1 \), a proton-neutron state has \( T_z=0 \) and a neutron-neutron state has \( T_z=1 \).
a) Find the closed form expression for the spin-orbit force. Show that the spin-orbit force {\bf LS} gives a zero contribution for \( S \)-waves (orbital angular momentum \( l=0 \)). What is the value of the spin-orbit force for spin-singlet states (\( S=0 \))?
b) Find thereafter the expectation value of \( \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2 \), where \( \mathbf{\sigma}_i \) are so-called Pauli matrices.
c) Add thereafter isospin and find the expectation value of \( \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2\mathbf{\tau}_1\cdot\mathbf{\tau}_2 \), where \( \mathbf{\tau}_i \) are also so-called Pauli matrices. List all the cases with \( S=0,1 \) and \( T=0,1 \).
A simple parametrization of the nucleon-nucleon force is given by what is called the \( V_8 \) potential model, where we have kept eight different operators. These operators contain a central force, a spin-orbit force, a spin-spin force and a tensor force. Several features of the nuclei can be explained in terms of these four components. Without the Pauli matrices for isospin the final form of such an interaction model results in the following form:
$$
V(\mathbf{r})= \left\{ C_c + C_\mathbf{\sigma} \mathbf{\sigma}_1\cdot\mathbf{\sigma}_2
+ C_T \left( 1 + {3\over m_\alpha r} + {3\over\left(m_\alpha r\right)^2}\right) S_{12} (\hat r)\right.
$$
$$
\left. + C_{SL} \left( {1\over m_\alpha r} + {1\over \left( m_\alpha r\right)^2}
\right) \mathbf{L}\cdot \mathbf{S}
\right\} \frac{e^{-m_\alpha r}}{m_\alpha r}
$$
where \( m_{\alpha} \) is the mass of the relevant meson and
\( S_{12} \) is the familiar tensor term. The various coefficients \( C_i \) are normally fitted so that the potential reproduces experimental scattering cross sections. By adding terms which include the isospin Pauli matrices
results in an interaction model with eight operators.
The expectaction value of the tensor operator is non-zero only for \( S=1 \). We will show this in a forthcoming lecture, after that we have derived the Wigner-Eckart theorem. Here it suffices to know that the expectaction value of the tensor force for different partial values is (with \( l \) the orbital angular momentum and \( {\cal J} \) the total angular momentum in the relative and center-of-mass frame of motion)
$$
\langle l {\cal J}S=1| S_{12} | l' {\cal J}S=1\rangle = -\frac{2{\cal J}({\cal J}+2)}{2{\cal J}+1} \hspace{0.5cm} l= {\cal J}+1 \hspace{0.1cm}\mathrm{and} \hspace{0.1cm} l'={\cal J}+1,
$$
$$
\langle l {\cal J}S=1| S_{12} | l' {\cal J}S=1\rangle = \frac{6\sqrt{{\cal J}({\cal J}+1)}}{2{\cal J}+1} \hspace{0.5cm} l= {\cal J}+1 \hspace{0.1cm}\mathrm{and} \hspace{0.1cm} l'={\cal J}-1,
$$
$$
\langle l {\cal J}S=1| S_{12} | l' {\cal J}S=1\rangle = \frac{6\sqrt{{\cal J}({\cal J}+1)}}{2{\cal J}+1} \hspace{0.5cm} l= {\cal J}-1 \hspace{0.1cm}\mathrm{and} \hspace{0.1cm} l'={\cal J}+1,
$$
$$
\langle l {\cal J}S=1| S_{12} | l' {\cal J}S=1\rangle = -\frac{2({\cal J}-1)}{2{\cal J}+1} \hspace{0.5cm} l= {\cal J}-1 \hspace{0.1cm}\mathrm{and} \hspace{0.1cm} l'={\cal J}-1,
$$
$$
\langle l {\cal J}S=1| S_{12} | l' {\cal J}S=1\rangle = 2 \hspace{0.5cm} l= {\cal J} \hspace{0.1cm}\mathrm{and} \hspace{0.1cm} l'={\cal J},
$$
and zero else.
In this exercise we will focus only on the one-pion exchange term of the nuclear force, namely
$$
V_{\pi}(\mathbf{r})= -\frac{f_{\pi}^{2}}{4\pi m_{\pi}^{2}}\mathbf{ \tau}_1\cdot\mathbf{\tau}_2
\frac{1}{3}\left\{\mathbf{ \sigma}_1\cdot\mathbf{ \sigma}_2+\left( 1 + {3\over m_\pi r} + {3\over\left(m_\pi r\right)^2}\right) S_{12} (\hat r)\right\} \frac{e^{-m_\pi r}}{m_\pi r}.
$$
Here the constant \( f_{\pi}^{2}/4\pi\approx 0.08 \) and the mass of the pion is \( m_\pi\approx 140 \) MeV/c${}^{2}$.
a) Compute the expectation value of the tensor force and the spin-spin and isospin operators for the one-pion exchange potential for all partial waves you found in exercise 9. Comment your results. How does the one-pion exchange part behave as function of different \( l \), \( {\cal J} \) and \( S \) values? Do you see some patterns?
b) For the binding energy of the deuteron, with the ground state defined by the quantum numbers \( l=0 \), \( S=1 \) and \( {\cal J}=1 \), the tensor force plays an important role due to the admixture from the \( l=2 \) state. Use the expectation values of the different operators of the one-pion exchange potential and plot the ratio of the tensor force component over the spin-spin component of the one-pion exchange part as function of \( x=m_\pi r \) for the \( l=2 \) state (that is the case \( l,l'={\cal J}+1 \)). Comment your results.


| Path: | doc/README_FOR_APP |
| Last Update: | Thu Dec 02 13:17:37 -0600 2010 |
URTextbook
How to install: First you need to install Ruby and Ruby Gems. Ruby and ruby gems installers/sources can be found rubyonrails.org/download Once RubyGems is installed run: sudo gem install -v=3.0.3 rails —include-dependencies
In the application directory run the command: bundle install This will install gems bundled with the application. If the bundle gem is not installed, you may need to run sudo gem install bundle.
You may run the application using WEBRICK webserver with: rails s
List of bundled gems:
Live Version: urtext.heroku.com
Source Code: github.com/puttputt/urtext


We locate and deliver spare parts for any vehicle in the shortest possible timeframe. We source these parts from suppliers within the country but we also import them if there are none available locally.
Reach out to any of our personnel or send a message from our Contacts Page and we can get the ball rolling.
We will typically require you to identify the make and model of your vehicle and the type of spare part you are looking for. All this will be done via email, or in person at our offices.
Please Note that some deliveries may take longer if the part you need is not currently within our stock.


What is Emotional Intelligence?
Emotion Intelligence relates to the ability of understanding and managing your own emotions, and through this, being able to understand and affect the emotions of others.
How is it Different to IQ?
IQ relates to general intelligence, analytical thinking, logic and reasoning etc...
Why is Emotional Intelligence Important?
Having a good level of emotional intelligence is important as it allows you to better perceive and regulate your own emotional state, and in turn, read other people better. I feel like this hugely important, especially when working with others. In the workplace, you’ll rarely be working alone so being able function in a team is a huge benefit.
In my personal experience I’ve worked in teams where everyone gets along and understands each other, due to this you can get a lot done and enjoy your time at work. When one person is self centered and/or has low emotional intelligence it can negatively impact the dynamics and productivity of a team.