I'm currently focusing on developing and analyzing learning algorithms with Bayesian statistics to make the learning process more flexible and robust to unseen environment.
I'm also interested in interpreting the deep learning algorithms and making them more accountable.
Academia
Xi'an Jiaotong University
2021
- 2014
Ph.D. Machine learning & Computer vision
Studied at Cognitive, Linguistic & Psychological Sciences, Brown University as a visiting student, 2016 -2018.
Deep Conditional Variational Estimation for Depth-Based Hand Poses,
,
In 14th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2019) (Fully oral presentation)
Lu Xu
,
Chen Hu, Yinqi Li, Jianru Xue, and Kuizhi Mei


{% include header.html %} {% include aboutme.html %} {% include experience.html %} {% include achievement.html %} {% include skills.html %} {% include contact.html %} {% include update.html %} {% include footer.html %}


Please allow scripts it will make everything function better on our site
☰
Kerbal kontroller | HD
Open Source Projects
Make your own Kerbal kontroller
More info coming soon


How to Build the Best Sandwich Ever
Convenience & You can buy sandwiches practically anywhere.
Versatility – A sandwich can contain any filling, as long as it's between bread.
Comfort – There's something nostalgic about sandwiches; we grew up eating them!
Mess-Free – They're incredibly easy to eat on the go, without spilling them everywhere.
Delicious recipe
- Bread
- Unsliced loaf of ciabatta
- Mustard
- Meat
- Cheese
- Veggies
- Choose a good bread. Start with an unsliced loaf of ciabatta from a local baker. 👨
- Grab some mustard. After cutting the ciabatta loaf lengthwise, smear mustard on the bottom slice. 🍞 🍮
- Stack up the meat and cheese. 🥓 🧀
- Add your veggies. 🥕
- Put it together. 🤲
- Enjoy! 🥳


Soldier Tenis:
Huh! That seems like a lot of money... Other than that there isn't anything special. Trust me, you're getting a good deal here. But what's done is done.
Of course, there are more boxes; bring me another horn and we can do another trade.


Please enter your email and I'll send you a link to reset your password.
Check your inbox and follow the quick steps to reset your password.


Namespace Dapplo.HttpExtensions.Factory
Classes
HttpClientFactory
Creating a HttpClient is not very straightforward, that is why the logic is capsulated in the HttpClientFactory.
HttpContentFactory
Factory methods to create HttpContent
HttpMessageHandlerFactory
Creating a HttpMessageHandler is not very straightforward, that is why the logic is capsulated in the HttpMessageHandlerFactory.
HttpRequestMessageFactory
Dapplo.HttpExtension uses the HttpRequestMessage to send the requests. This makes it a lot more flexible to use Accept headers and other stuff This is the factory for it.
WebProxyFactory
Creating a proxy is not very straightforward, that is why the logic is capsulated in the ProxyFactory.


Biographical Sketch of Luke H. Frasher
Luke H.
Frasher was the great-grandfather of Cora M. Frasher
From the Fayette Co, PA Records, p 173
LUKE H. FRASHER comes from
one of the old families of Fayette County,
PA. His great grandfather, Peter Frasher, came to
Fayette County,
from Winchester, Virginia, before the old National Road was made. His son Luke, the grandfather of Luke H.
Frasher, came with him. Both were
teamsters on that old thoroughfare, the principal artery for the commerce of
the Country in its day.
James Frasher, the father
of Luke H. Frasher, was born in Fayette County, PA, in 1814 and died in 1878 at
the age of sixty four years, and was a farmer by occupation. He married Miss Eliza J. Wheatley, a native
of Fayette county, and who is now living on the farm in Franklin township. The Wheatley family is an early one in the
county also.
Luke H. Frasher is of the
fourth generation of the Frasher family in Fayette county. He was born December 14, 1853, in Franklin township, Fayette
county, PA. He worked on the farm until
he arrived at the age of seventeen years, and attended the common schools of
his neighborhood. In 1871 he entered the
West Virginia University
at Morgantown, West Virginia, where he remained for five
years and was graduated in the class of 1878.
In 1878 he began the study of law in the office of W H Playford and was
admitted to the bar at Uniontown in 1880.
He immediately began the practice of his profession, and has been successfully
engaged in it ever since. He has gained
a prominent place at the bar, and has quite a large practice for a young man.
June 1, 1889, he was
nominated by the Democratic party as their candidate for the district
attorney. Prior to taking up the study of
law, Mr. Frasher had taught several terms of district schools in this county:
one term at Kingwood, as the principal of the public schools, and one term as
principal of mathematics at the Commercial
College, Wheeling, West Virginia.
Provided by Virginia Hinds
Meek
Click here for the Short-Cut Table of Contents


I recently started reading the book Seven Languages in Seven Days. I thought it would be a good idea to post the homework assignments. Below are the answers to the homework from ruby day one.
#ruby api
www.ruby-doc.org/core/
#free online version of pragmatic guide
http://www.ruby-doc.org/docs/ProgrammingRuby/
#method that substitutes part of a string
phrase = 'Hello World'
puts phrase.gsub('World', 'iamjarvo')
#info about ruby's regular expression
http://www.regular-expressions.info/ruby.html
#print the string "Hello World"
puts 'Hello World'
#find the index of the word Ruby in the string Hello Ruby
phrase = 'Hello Ruby'
puts phrase.index('Ruby') #method is case sensitive
#print name 10 times
i = 0
while i < 10
puts 'iamjarvo'
i = i + 1
end
#print the string this is is sentence number 1, the number 1 changes from 1 to 10
for i in (1..10)
puts "this is sentence number #{i}"
end
#running a ruby program from file
when in the directory type ruby filename
#bonus
#pick a random number then have the user guess. tell them if they are hot or not
rand_num = rand(10)
puts rand_num
puts "Please input your guess"
#guess = gets.chomp
while true
guess = gets.chomp.to_i
#guess > rand_num ? puts 'Too high try again ' : puts 'too low try again'
#puts "Your answer is #{guess < rand_num ? 'low' : 'high'}"
if guess == rand_num
puts 'You are right'
break
elsif guess < rand_num
puts 'too low'
else
puts 'too high'
end
end
Disclaimer: Some of the answers might not be rubyesque but I am using what the book taught so far.
Thanks to @matschaffer for double checking the answers!


Comments
-
Greg Hurrell
Product changed:
- From: wincent.com
- To: wikitext
-
Greg Hurrell
Status changed:
- From: new
- To: open
-
Greg Hurrell
This is one option which wouldn't require any server-side shenanigans; just highlighting done on the client-side in the browser via JavaScript:
Discovered here.
-
Greg Hurrell
See also:
-
Greg Hurrell
Another similar project (much more recent, dated 2009):
-
Greg Hurrell
Would make sense to combine this with automatic line-numbering a well, I think.
-
Greg Hurrell
Ok, the wikitext side of this is now implemented:
- http://git.wincent.com/wikitext.git?a=commitdiff;h=575fca36ac7d11de1db24195a96b6e44c0359e02
- http://git.wincent.com/wikitext.git?a=commitdiff;h=024870e8c715b4da8c2b013c80035d0d1a4c66cb
The rest of the work has to be done in the application layer.
-
Greg Hurrell
Product changed:
- From: wikitext
- To: wincent.com
-
Greg Hurrell
On adding line numbers:
- on line numbers getting copied: http://trac.edgewall.org/ticket/7055
- toggleable numbers: http://www.leancrew.com/all-this/2007/12/source-code-line-numbers-and-javascript/
- http://meddle.dzygn.com/eng/weblog/line.numbers/
- http://drupal.org/node/393500
- http://softwaremaniacs.org/forum/highlightjs/1362/
Check out the source code browser on any code.google.com project (for example) to see an example of a line number implementation which doesn't pollute copied text with unwanted line numbers, at the cost of being unwrapped (which is what my "pre" block CSS does currently anyway).
-
Greg Hurrell
Here's a little test I just did in the Safari snippet editor:

void normalize_options(options_t *options) {  if (options->recurse == -1)  options->recurse = 0;  if (options->regex == -1)  options->regex = 0;  if (options->case_insensitive == -1)  options->case_insensitive = 0;  if (options->global == -1)  options->global = 0;  if (options->preview == -1)  options->preview = 0;  if (options->gui == -1)  options->gui = 0;  if (options->dry_run == -1)  options->dry_run = 0;  if (options->verbose == -1)  options->verbose = 0; }

Works in Firefox too.
-
Greg Hurrell
Ok, line number is now implemented in the app.
-
Greg Hurrell
Ok, the syntax coloring engine is done too.
Here's a preview; bear in mind the colors are quite garish and ugly and are only for debugging purposes, and I've only added a few highlighting rules so there is still quite a bit more to be added:
-
Greg Hurrell
Status changed:
- From: open
- To: closed
Add a comment
Comments are now closed for this issue.


Biden claims at debate that he has the support of 'the only black woman' elected to the Senate, to which Kamala Harris responds, 'the other one is here!'
by Michelle Mark- Former Vice President Joe Biden said at the Democratic debate on Wednesday he had the support of the only black woman elected to the Senate — to which Sen. Kamala Harris replied, "That's not true!"
- Biden was discussing marijuana legalization and criminal justice reform when he sought to highlight how he has earned the support of former Sen. Carol Moseley Braun, the first black female senator.
- But he misspoke, sparking raucous laughter from Sen. Kamala Harris, currently the only black woman elected to the Senate.
- Visit Business Insider's homepage for more stories.
Former Vice President Joe Biden tried during Wednesday's debate to talk up his support among black voters, but ended up accidentally claiming he had the support of the only black woman elected to the Senate — a title that currently belongs to one of his opponents.
Biden was discussing marijuana legalization and criminal justice reform when he sought to highlight how he has earned the support of former Sen. Carol Moseley Braun, the first black female senator.
But Biden mistakenly said he had the support of the "only" black woman elected to the Senate, prompting raucous laughter from Sen. Kamala Harris, a black woman elected to the Senate who happens to be running for president against him.
"I'm part of that Obama coalition. I come out of the black community in terms of my support, if you notice, I have more people supporting me in the black community that have vouched for me because they know who I am… The only African-American woman who's ever been elected to the United States Senate," Biden said.
"No, No," Harris said. "That's not true. The other one is here!"
Biden responded, "I said the first."
It wasn't Biden's first gaffe of the night — not long beforehand, he had drawn stifled laughter from the audience when he suggested combatting domestic violence by "punching at it and punching at it and punching at it."


Ghostbusters: Afterlife trailer drops
by Rob BeschizzaBustin' makes me feel good. Here it is with Finnish subtitles, courtesy of Sony Pictures Finland's YouTube channel.
Bustin' makes me feel good. Here it is with Finnish subtitles, courtesy of Sony Pictures Finland's YouTube channel.


001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.configuration2.builder; 018 019import java.lang.reflect.InvocationHandler; 020import java.lang.reflect.Method; 021import java.lang.reflect.Proxy; 022 023import org.apache.commons.configuration2.ConfigurationUtils; 024import org.apache.commons.configuration2.ImmutableConfiguration; 025import org.apache.commons.configuration2.event.EventSource; 026import org.apache.commons.configuration2.ex.ConfigurationException; 027 028/** 029 *
 030 * A class that allows the creation of configuration objects wrapping a {@link ConfigurationBuilder}. 031 *
 032 *
 033 * Using this class special {@code ImmutableConfiguration} proxies can be created that delegate all method invocations 034 * to another {@code ImmutableConfiguration} obtained from a {@code ConfigurationBuilder}. For instance, if there is a 035 * configuration {@code c} wrapping the builder {@code builder}, the call {@code c.getString(myKey)} is transformed to 036 * {@code builder.getConfiguration().getString(myKey)}. 037 *
 038 *
 039 * There are multiple use cases for such a constellation. One example is that client code can continue working with 040 * {@code ImmutableConfiguration} objects while under the hood builders are used. Another example is that dynamic 041 * configurations can be realized in a transparent way: a client holds a single configuration (proxy) object, but the 042 * underlying builder may return a different data object on each call. 043 *
 044 * 045 * @since 2.0 046 */ 047public class BuilderConfigurationWrapperFactory { 048 049 /** The current {@code EventSourceSupport} value. */ 050 private final EventSourceSupport eventSourceSupport; 051 052 /** 053 * Creates a new instance of {@code BuilderConfigurationWrapperFactory} and sets the property for supporting the 054 * {@code EventSource} interface. 055 * 056 * @param evSrcSupport the level of {@code EventSource} support 057 */ 058 public BuilderConfigurationWrapperFactory(final EventSourceSupport evSrcSupport) { 059 eventSourceSupport = evSrcSupport; 060 } 061 062 /** 063 * Creates a new instance of {@code BuilderConfigurationWrapperFactory} setting the default {@code EventSourceSupport} 064 * NONE. 065 */ 066 public BuilderConfigurationWrapperFactory() { 067 this(EventSourceSupport.NONE); 068 } 069 070 /** 071 * Creates a wrapper {@code ImmutableConfiguration} on top of the specified {@code ConfigurationBuilder}. This 072 * implementation delegates to 073 * {@link #createBuilderConfigurationWrapper(Class, ConfigurationBuilder, EventSourceSupport)} . 074 * 075 * @param <T> the type of the configuration objects returned by this method 076 * @param ifcClass the class of the configuration objects returned by this method; this must be an interface class and 077 * must not be null 078 * @param builder the wrapped {@code ConfigurationBuilder} (must not be null) 079 * @return the wrapper configuration 080 * @throws IllegalArgumentException if a required parameter is missing 081 * @throws org.apache.commons.configuration2.ex.ConfigurationRuntimeException if an error occurs when creating the 082 * result {@code ImmutableConfiguration} 083 */ 084 public <T extends ImmutableConfiguration> T createBuilderConfigurationWrapper(final Class<T> ifcClass, final ConfigurationBuilder<? extends T> builder) { 085 return createBuilderConfigurationWrapper(ifcClass, builder, getEventSourceSupport()); 086 } 087 088 /** 089 * Gets the level of {@code EventSource} support used when generating {@code ImmutableConfiguration} objects. 090 * 091 * @return the level of {@code EventSource} support 092 */ 093 public EventSourceSupport getEventSourceSupport() { 094 return eventSourceSupport; 095 } 096 097 /** 098 * Creates a {@code ImmutableConfiguration} object which wraps the specified {@code ConfigurationBuilder}. Each access 099 * of the configuration is delegated to a corresponding call on the {@code ImmutableConfiguration} object managed by the 100 * builder. This is a convenience method which allows creating wrapper configurations without having to instantiate this 101 * class. 102 * 103 * @param <T> the type of the configuration objects returned by this method 104 * @param ifcClass the class of the configuration objects returned by this method; this must be an interface class and 105 * must not be null 106 * @param builder the wrapped {@code ConfigurationBuilder} (must not be null) 107 * @param evSrcSupport the level of {@code EventSource} support 108 * @return the wrapper configuration 109 * @throws IllegalArgumentException if a required parameter is missing 110 * @throws org.apache.commons.configuration2.ex.ConfigurationRuntimeException if an error occurs when creating the 111 * result {@code ImmutableConfiguration} 112 */ 113 public static <T extends ImmutableConfiguration> T createBuilderConfigurationWrapper(final Class<T> ifcClass, 114 final ConfigurationBuilder<? extends T> builder, final EventSourceSupport evSrcSupport) { 115 if (ifcClass == null) { 116 throw new IllegalArgumentException("Interface class must not be null!"); 117 } 118 if (builder == null) { 119 throw new IllegalArgumentException("Builder must not be null!"); 120 } 121 122 return ifcClass.cast(Proxy.newProxyInstance(BuilderConfigurationWrapperFactory.class.getClassLoader(), getSupportedInterfaces(ifcClass, evSrcSupport), 123 new BuilderConfigurationWrapperInvocationHandler(builder, evSrcSupport))); 124 } 125 126 /** 127 * Gets an array with the classes the generated proxy has to support. 128 * 129 * @param ifcClass the class of the configuration objects returned by this method; this must be an interface class and 130 * must not be null 131 * @param evSrcSupport the level of {@code EventSource} support 132 * @return an array with the interface classes to implement 133 */ 134 private static Class<?>[] getSupportedInterfaces(final Class<?> ifcClass, final EventSourceSupport evSrcSupport) { 135 return EventSourceSupport.NONE == evSrcSupport ? new Class<?>[] {ifcClass} : new Class<?>[] {EventSource.class, ifcClass}; 136 } 137 138 /** 139 *
 140 * An enumeration class with different options for supporting the {@code EventSource} interface in generated 141 * {@code ImmutableConfiguration} proxies. 142 *
 143 *
 144 * Using literals of this class it is possible to specify that a {@code ImmutableConfiguration} object returned by 145 * {@code BuilderConfigurationWrapperFactory} also implements the {@code EventSource} interface and how this 146 * implementation should work. See the documentation of the single constants for more details. 147 *
 148 */ 149 public enum EventSourceSupport { 150 /** 151 * No support of the {@code EventSource} interface. If this option is set, {@code ImmutableConfiguration} objects 152 * generated by {@code BuilderConfigurationWrapperFactory} do not implement the {@code EventSource} interface. 153 */ 154 NONE, 155 156 /** 157 * Dummy support of the {@code EventSource} interface. This option causes {@code ImmutableConfiguration} objects 158 * generated by {@code BuilderConfigurationWrapperFactory} to implement the {@code EventSource} interface, however, this 159 * implementation consists only of empty dummy methods without real functionality. 160 */ 161 DUMMY, 162 163 /** 164 * {@code EventSource} support is implemented by delegating to the associated {@code ConfigurationBuilder} object. If 165 * this option is used, generated {@code ImmutableConfiguration} objects provide a fully functional implementation of 166 * {@code EventSource} by delegating to the builder. Because the {@code ConfigurationBuilder} interface extends 167 * {@code EventSource} this delegation is always possible. 168 */ 169 BUILDER 170 } 171 172 /** 173 * A specialized {@code InvocationHandler} implementation for wrapper configurations. Here the logic of accessing a 174 * wrapped builder is implemented. 175 */ 176 private static class BuilderConfigurationWrapperInvocationHandler implements InvocationHandler { 177 178 /** The wrapped builder. */ 179 private final ConfigurationBuilder<? extends ImmutableConfiguration> builder; 180 181 /** The level of {@code EventSource} support. */ 182 private final EventSourceSupport eventSourceSupport; 183 184 /** 185 * Creates a new instance of {@code BuilderConfigurationWrapperInvocationHandler}. 186 * 187 * @param wrappedBuilder the wrapped builder 188 * @param evSrcSupport the level of {@code EventSource} support 189 */ 190 public BuilderConfigurationWrapperInvocationHandler(final ConfigurationBuilder<? extends ImmutableConfiguration> wrappedBuilder, 191 final EventSourceSupport evSrcSupport) { 192 builder = wrappedBuilder; 193 eventSourceSupport = evSrcSupport; 194 } 195 196 /** 197 * Handles method invocations. This implementation handles methods of two different interfaces: 198 *
 199 *
Methods from the {@code EventSource} interface are handled according to the current support level.
 200 *
Other method calls are delegated to the builder's configuration object.
 201 *
 202 * 203 * @param proxy the proxy object 204 * @param method the method to be invoked 205 * @param args method arguments 206 * @return the return value of the method 207 * @throws ReflectiveOperationException if an error occurs 208 * @throws ConfigurationException if an error occurs 209 */ 210 @Override 211 public Object invoke(final Object proxy, final Method method, final Object[] args) throws ReflectiveOperationException, ConfigurationException { 212 return EventSource.class.equals(method.getDeclaringClass()) ? handleEventSourceInvocation(method, args) 213 : handleConfigurationInvocation(method, args); 214 } 215 216 /** 217 * Handles a method invocation on the associated builder's configuration object. 218 * 219 * @param method the method to be invoked 220 * @param args method arguments 221 * @return the return value of the method 222 * @throws Exception if an error occurs 223 */ 224 private Object handleConfigurationInvocation(final Method method, final Object[] args) throws ReflectiveOperationException, ConfigurationException { 225 return method.invoke(builder.getConfiguration(), args); 226 } 227 228 /** 229 * Handles a method invocation on the {@code EventSource} interface. This method evaluates the current 230 * {@code EventSourceSupport} object in order to find the appropriate target for the invocation. 231 * 232 * @param method the method to be invoked 233 * @param args method arguments 234 * @return the return value of the method 235 * @throws ReflectiveOperationException if an error occurs 236 */ 237 private Object handleEventSourceInvocation(final Method method, final Object... args) throws ReflectiveOperationException { 238 return method.invoke(EventSourceSupport.DUMMY == eventSourceSupport ? ConfigurationUtils.asEventSource(this, true) : builder, args); 239 } 240 } 241}


Class Berry
The main Berry manager source file.
The API's in this source file can be seen as a set of manager methods for using Berry.
Info:
- Copyright: Łukasz Durniat, Jan-2018
- Release: 1.0.0
- License: MIT
- Author: Łukasz Durniat
Methods
| Berry:enableDebugMode () | Enables debug mode so messages are printed to the console when things happen. |
| Berry:disableDebugMode () | Disables debug mode so messages aren't printed to the console. |
| Berry:isDebugModeEnabled () | Checks if debug mode is currently enabled or disabled. |
| Berry:loadMap (filename, tileSetsDirectory) | Loads a map. |
| Berry:createVisual (map) | Creates the visual representation of a map. |
| Berry:buildPhysical (map) | Build a physical representation of a map. |
Methods
- Berry:enableDebugMode ()
- Enables debug mode so messages are printed to the console when things happen.
- Berry:disableDebugMode ()
- Disables debug mode so messages aren't printed to the console. Errors will still be printed.
- Berry:isDebugModeEnabled ()
-
Checks if debug mode is currently enabled or disabled.
Returns:
true
if enabled,false
if not. - Berry:loadMap (filename, tileSetsDirectory)
-
Loads a map.
Parameters:
- filename The filename of the map.
- tileSetsDirectory Path to load the images. Default is baseDirectory.
Returns:
-
The loaded Map object.
Usage:
local ui = berry.loadMap( "scene/menu/ui/title.json", "scene/menu/ui" )
- Berry:createVisual (map)
-
Creates the visual representation of a map.
Parameters:
- map The map to create.
Returns:
-
The display group for the map world.
- Berry:buildPhysical (map)
-
Build a physical representation of a map.
Parameters:
- map The map to build.


EFA enquiries
Contact form https://form.education...
For all enquiries for the Education Funding Agency
Guidance
Detailed guidance for academy trusts and auditors on preparing and auditing academy trusts' annual financial statements.
The Academies Accounts Direction is the reference pack for academy trusts and their auditors to use when preparing and auditing financial statements for the accounting period ending on 31 August annually.
To produce the Accounts Direction, the Education Funding Agency (EFA) takes the requirements set out by the Charity Commission in its Statement of Recommended Practice (SORP) and translates them into a form applicable to academy trusts.
The Accounts Direction outlines the requirements for each academy trust to:
The Accounts Direction explains the elements you must include in your academy trust’s annual report and financial statements and the accounting treatments required. It also provides a model format for the report and the financial statements and ensures consistency of treatment between academy trusts.
All academy trusts must use the Academies Accounts Direction 2015 to 2016 ( PDF , 1.11MB , 152 pages ) when preparing their financial statements for the period ending 31 August 2016.
We have updated our brief guide on SORP 2015 explaining the main actions trusts making the transition need to take.
We have provided editable templates to assist trusts preparing their figures and the notes to their accounts. These are not mandatory but you may find them helpful if your trust has not yet set up its financial reporting templates.
Coketown template (Excel) ( MS Excel Spreadsheet , 158KB )
Coketown template (Open document spreadsheet) ( ODS , 95.9KB )
Coketown template with notes ( MS Word Document , 289KB )
You should refer to the 2015 version of the Academies Financial Handbook .
You will need to:
The guide to submitting your accounts ( PDF , 695KB , 23 pages ) will help you complete the online form, access Document Exchange and submit your audited accounts and auditor’s management letter.
Accounting for business combinations
Academy trusts incorporated before 1 January 2015 used the Academies Accounts Direction 2014 to 2015 (SORP 2005) ( PDF , 2.32MB , 151 pages ) to prepare and submit their financial statements for the period ending 31 August 2015.
Trusts incorporated on or after 1 January 2015 used the Academies Accounts Direction 2014 to 2015 (SORP 2015) ( PDF , 2MB , 149 pages ) for theirs.
The Academies Accounts Direction 2013 to 2014 ( PDF , 1.13MB , 150 pages ) explained to academy trusts how to prepare and submit their financial statements for the period ending 31 August 2014.
Contact form https://form.education...
For all enquiries for the Education Funding Agency
Published: 12 June 2015
Updated: 17 March 2017
From: Education Funding Agency


LottaNotes is a shell company that is designed to smuggle US currency from China to India then back to China. Why you ask? Literally no reason other than we know da wae. Our goal is simple and we think obtainable. We would seek simple world domination through the control of people!
We're glad you asked! You just go ahead and jot all your deepest darkest secrets into this here free application and we will take the ball from there!
You shouldn't be what an invasion of privacy right?? Well if you didnt take the time to read the fine print on most things you install on your device you would know that they are doing this all the time. Unlike the competition LottaNotes will NOT use any personal information for any reason. Period. Even. In fact we don't even require an internet connection other that to update!


THE 6TH MAN A film review by Scott Renshaw Copyright 1997 Scott Renshaw
(Touchstone) Starring: Marlon Wayans, Kadeem Hardison, David Paymer, Michael Michele. Screenplay: Christopher Reed and Cynthia Carle. Producer: David Hoberman. Director: Randall Miller.  Reviewed by Scott Renshaw.
I wasn't sure I would be able to enjoy THE 6TH MAN as a wacky comedy, given the uncomfortable familiarity of the plot. In 1990, All-American forward Hank Gathers of Loyola Marymount University died of a congenital heart ailment in the middle of one of his team's final regular season games, a tragedy which took on even more mythic proportions when his under-manned team went on an improbable run through the NCAA championship tournament before losing to eventual champion Nevada-Las Vegas. Gathers' death affected me as profoundly as any celebrity tragedy ever has, and I cringed at the idea of that event being turned into a source of supernatural hijinks. Perhaps that's why I was so pleasantly surprised to discover how much heart THE 6TH MAN turned out to have. Though slapstick is definitely part of the mix, there is a genuinely affecting human story at the core of this film which outweighs its occasional clumsiness.
THE 6TH MAN is the story of two brothers playing for the University of Washington Huskies basketball team: Antoine Tyler (Kadeem Hardison), the team's senior leader and superstar, and Kenny Tyler (Marlon Wayans), a junior who has lived his life in Antoine's shadow. The Huskies are having one of their best seasons in years, contending for the Pac-10 championship, when tragedy strikes. In the middle of a key game, Antoine suffers a heart attack and dies, leaving the team heart-broken and disoriented. No one is more heart-broken than Kenny, who asks his departed brother for help when he struggles with the new leadership role asked of him. Much to his astonishment, he gets that help: Antoine appears as a ghost visible only to Kenny, offering to help the Kenny and the rest of the team. Thus begins a surge for the NCAA tournament when strange breaks seem to be going the Huskies' way, drawing the attention of sports writer R. C. St. John (Michael Michele).
THE 6TH MAN is a fantasy of course, but close followers of Pac-10 basketball will appreciate that it's not just the presence of ghostly activity which makes the film fantastic. Not only are Washington and Stanford in this film's Final Four, but dismissed head coaches Todd Bozeman of California and Jim Harrick of UCLA are still sitting on their respective teams' benches in game footage; if that doesn't qualify as fantasy, I'm not sure what does. THE 6TH MAN is certainly targeted at college basketball fans given its release during Final Four weekend, but the on-court action is often awkwardly photographed with too many close-ups and choppy editing. For a film about college basketball, THE 6TH MAN generally doesn't try very hard to re-create the fan excitement or game situations of the sport.
Of course, THE 6TH MAN isn't a documentary. It's a comedy, and occasionally it's a very funny one. Marlon Wayans turns in an extremely entertaining and energetic physical performance as Kenny, who has to do a lot of solo acting as though he is being hassled by his invisible older brother -- hugs, head-locks, wrestling matches and other practical jokes. It's fun, if somewhat predictable stuff, mostly because Wayans is able to sell it with enthusiasm. He gets a bit of supporting help from Hardison and from David Paymer (as the Huskies' coach), but with a cast composed largely of former college basketball players (including Lorenzo Orr and Travis Ford), Wayans has to carry the most of the humorous moments on his shoulders.
Fortunately, THE 6TH MAN is actually more enjoyable when it's not a comedy. Some of the character material is unnecessary -- notably the attempt at a romantic relationship between Kenny and R. C. (yes, Michael Michele is a woman) -- but the sibling story-line is extremely effective. A short flashback opening shows Antoine and Kenny as kids on their father's youth league team, setting up a relationship where Kenny always depends on the more talented Antoine to hit the winning shot or make the spectacular play. When Kenny calls on Antoine for help, he believes he doesn't have it in him to be a star, and having his ghostly brother around gives him an excuse not to try. It is only when Antoine begins to go a bit too far on the court that Kenny decides to make an identity for himself apart from being Antoine's brother. One of the nicer touches in THE 6TH MAN is that Antoine isn't made into an angel on the hardwood; he's the same mildly obnoxious ball-hog in death that he was in life, a big brother who thinks he always knows best. The interaction between the two brothers, squabbles and all, is what makes THE 6TH MAN more than the formulaic Disney silliness you might expect. In spite of some erratic pacing and uneven comedy, THE 6TH MAN has the emotional content to give a tragedy the weight it deserves, as well as the entertainment it needs.
On the Renshaw scale of 0 to 10 ghost offenses: 6.
Visit Scott Renshaw's MoviePage http://www-leland.stanford.edu/~srenshaw Subscribe to receive reviews directly via email See details on the MoviePage
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


|
Kill
You
(Eminem) |
|
[Eminem]
When I just a little baby boy, my momma used to tell me these crazy things She used to tell me my daddy was an evil man, she used to tell me he hated me But then I got a little bit older and I realized, she was the crazy one But there was nothin I could do or say to try to change it cause that's just the way she was They said I can't rap about bein broke no more They say I can't rap about coke no more (AHHH!)  (AHHH!)    "Oh, now he's raping his own mother, abusing a whore, snorting coke, and we gave him the Rolling Stone cover?"     You ain't nuttin but a girl to me ..      I'm tryin to develop these pictures of the Devil to sell 'em I ain't ask to rap, but I rap on acid Got a new blow-up doll and just had a strap-on added WHOOPS! Is that a subliminal hint? NO! Just criminal intent to sodomize women again Eminem offend? NO! Eminem insult And if you ever give in to him, you give him an impulse to do it again, THEN, if he does it again you'll probably end up jumpin out of somethin up on the 10th (Ahhhhhhhh!)  Serial killer hidin murder material in a cereal box on top of your stereo Here we go again, we're out of our medicine out of our minds, and we want in yours, let us in Chorus (first line starts "Or I'ma kill you!") [Eminem] Eh-heh, know why I say these things? Cause lady's screams keep creepin in Shady's dreams And the way things seem, I shouldn't have to pay these shrinks this eighty G's a week to say the same things TWEECE! TWICE?  I hope the weed'll outweigh these drinks Motherfuckers want me to come on their radio shows just to argue with 'em cause their ratings stink?      ANSWER ME!  ninth line starts "Bitch I'ma kill you!") [Eminem] Hahaha, I'm just playin ladies You know I love you |


While not an all inclusive list of things about me, there are a few things here and there to learn. Feel free to look around and/or talk to me if there's anything you're dying to know.
Coordinates Internal and External projects for the Technical Services Team.
Communicates with Clients and Client Managers to ensure needs are met.
Processes terminations between Client Managers and UnitedHealth Group.
Incident Manager
Launch Consulting -- March 2015 - March 2016
Member of Escalation Management team at Microsoft. Provided expert customer service and coordination with various Microsoft technical support teams toward the expedient resolution of reported major incidents. Processed tracking of major and priority incidents using ServiceNow Ticketing System.
Assisted Program Manager with tracking/coordination of projects affecting the Escalation Management team.
Launch Communications Management Tool: Personally developed a Business Application using VB to remove Escalation Management team process redundancies and reduce the time of sending quality communications to our customers.
Chief Petty Officer
U.S. Navy -- November 1994 - February 2015
Leader of some of the greatest men and women this country has to offer in the greatest Navy that this world has ever known.
Deployed 9 times on U.S. Naval vessels and to various countries in support of American defense.


| 009:036 Khan | : |
Verily, the number of months with Allah is twelve months (in a year), so was it ordained by Allah on the Day when He created the heavens and the earth; of them four are Sacred, (i.e. the 1st, the 7th, the 11th and the 12th months of the Islamic calendar). That is the right religion, so wrong not yourselves therein, and fight against the Mushrikun (polytheists, pagans, idolaters, disbelievers in the Oneness of Allah) collectively, as they fight against you collectively. But know that Allah is with those who are Al-Muttaqun (the pious - see V.2:2). |
| 009:036 Maulana | : |
Surely the number of months with Allah is twelve months by Allah's ordinance, since the day when He created the heavens and the earth -- of these four are sacred. That is the right religion; so wrong not yourselves therein. And fight the polytheists all together as they fight you all together. And know that Allah is with those who keep their duty. |
| 009:036 Pickthal | : |
Lo! the number of the months with Allah is twelve months by Allah's ordinance in the day that He created the heavens and the earth. Four of them are sacred: that is the right religion. So wrong not yourselves in them. And wage war on all of the idolaters as they are waging war on all of you. And know that Allah is with those who keep their duty (unto Him). |
| 009:036 Rashad | : |
The count of months, as far as GOD is concerned, is twelve. This has been GOD's law, since the day He created the heavens and the earth. Four of them are sacred. This is the perfect religion; you shall not wrong your souls (by fighting) during the Sacred Months. However, you may declare all-out war against the idol worshipers (even during the Sacred Months), when they declare all-out war against you, and know that GOD is on the side of the righteous. |
| 009:036 Sarwar | : |
According to the Book of God, from the day He created the heavens and the earth, the number of months are twelve, four of which are sacred. (This is part of the law) of the religion. Do not commit injustice against your souls during the sacred months but fight all the pagans just as they fight against all of you. Know that God is with the pious ones. |
| 009:036 Shakir | : |
Surely the number of months with Allah is twelve months in Allah's ordinance since the day when He created the heavens and the earth, of these four being sacred; that is the right reckoning; therefore be not unjust to yourselves regarding them, and fight the polytheists all together as they fight you all together; and know that Allah is with those who guard (against evil). |
| 009:036 Sherali | : |
The number of months with ALLAH is twelve months by ALLAH's ordinance since the day when HE created the heavens and the earth. Of these four are sacred. That is the right religion. So wrong not yourselves therein. And fight the idolaters all together; and know that ALLAH is with those who fear HIM. |
| 009:036 Yusufali | : |
The number of months in the sight of Allah is twelve (in a year)- so ordained by Him the day He created the heavens and the earth; of them four are sacred: that is the straight usage. So wrong not yourselves therein, and fight the Pagans all together as they fight you all together. But know that Allah is with those who restrain themselves. |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الشرك والمشركون > براءة الله ورسوله من المشركين Pillars of Islam> Islamic> Polytheism and the Polytheists> The Declaration of Immunity of Allah and His Prophet from the Polytheists الجهاد > (تعليمات حربية (أحكام خاصة > (تعليمات حربية (أحكام خاصة > القتال في الأشهر الحرم Jihad> Warlike Instructions\Special Rules> Warlike Instructions\Special Rules> Fighting during the Sacred Months الجهاد > الجهاد في سبيل الإسلام > مدح الجهاد Jihad> The Call to Jihad>Praising the Holy War العمل > العمل الطالح > القتل والقتال > القتال فى المسجد الحرام و فى الاشهر الحرم Action(Work)> Bad Deeds>Killing and Fighting> Fighting in the Sacred Mosque in the Sacred Months العلوم والفنون > التقويم > الأشهر الحرم Science and Art>Evaluation>The Sacred Months العلوم والفنون > التقويم > عدة الشهور Science and Art>Evaluation>The Number of Months
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Indexes
Introduction
SML Mode
Interaction Mode
Configuration
SML mode is a major mode for Emacs for editing Standard ML. It has some novel bugs, and some nice features:
|
automatically determines if it is used
in a case or fun construct, and indents the next line as appropriate,
inserting =>
or the name of the function.
Contributions to the package are welcome. I have limited time to work on this project, but I will gladly add any code that you contribute to me to this package.
Although the history of sml-mode is obscure, it seems that the following persons have made contributions to sml-mode:
With luck your system administrator will have installed SML mode somewhere convenient, so it will just magically all work—you can skip the rest of this getting started section. Otherwise you will need to tell Emacs where to find all the SML mode .el files, and when to use them. The where is addressed by locating the Lisp code on your Emacs Lisp load path—you may have to create a directory for this, say /home/mjm/elisp, and then insert the following lines in your /home/mjm/.emacs file:
(add-to-list 'load-path "/home/mjm/elisp") (autoload 'sml-mode "sml-mode" "Major mode for editing SML." t) (autoload 'run-sml "sml-proc" "Run an inferior SML process." t)
The first line adjusts Emacs' internal search path so it can locate the Lisp source you have copied to that directory; the second and third lines tell Emacs to load the code automatically when it is needed. You can then switch any Emacs buffer into SML mode by entering the command
M-x sml-mode
It is usually more convenient to have Emacs automatically place the buffer in SML mode whenever you visit a file containing ML programs. The simplest way of achieving this is to put something like
(add-to-list 'auto-mode-alist '("\\.\\(sml\\|sig\\)\\'" . sml-mode))
also in your .emacs file. Subsequently (after a restart), any files with these extensions will be placed in SML mode buffers when you visit them.
You may want to pre-compile the sml-*.el files (M-x byte-compile-file) for greater speed—byte compiled code loads and runs somewhat faster.
You're reading it. Apart from the on-line info tree (C-h i is the
Emacs key to enter the info
system—you should follow the brief
tutorial if this is unfamiliar), there are further details on specific
commands in their documentation strings. Only the most useful
SML mode commands are documented in the info tree: to find out more
use Emacs' help facilities.
Briefly, to get help on a specific function use C-h f and enter
the command name. All (almost all, then) SML mode commands begin
with sml-
, so if you type this and press <TAB> (for
completion) you will get a list of all commands. Another way is to use
C-h a and enter the string sml
. This is command apropos; it
will list all commands with that sub-string in their names, and any key
binding they may have in the current buffer. Command apropos gives a
one-line synopsis of what each command does.
Some commands are also variables—such things are allowed in Lisp, if not in ML! See Command Index, for a list of (info) documented functions. See Variable Index, for a list of user settable variables to control the behaviour of SML mode.
Before accessing this information on-line from within Emacs you may have
to set the variable sml-mode-info
. Put in your .emacs file
something like:
(setq sml-mode-info "/home/mjm/info/sml-mode.info")
When different from the default this variable should be a string giving the absolute name of the .info file. Then C-c C-i in SML mode (i.e., the command M-x sml-mode-info) will bring up the manual. This help is also accessible from the menu. (Resetting this variable will not be necessary if your site administrator has been kind enough to install SML mode and its attendant documentation in the Emacs hierarchy.)
Now SML mode provides just a few additional editing commands. Most of the work has gone into implementing the indentation algorithm which, if you think about it, has to be complicated for a language like ML. See Indentation Defaults, for details on how to control some of the behaviour of the indentation algorithm. Principal goodies are the `electric pipe' feature, and the ability to insert common SML forms (macros or templates).
This switches a buffer into SML mode. This is a major mode in Emacs. To get out of SML mode the buffer's major mode must be set to something else, like text-mode. See Getting Started, for details on how to set this up automatically when visiting an SML file.
Emacs is all hooks of course. A hook is a variable: if the variable is non-nil it binds a list of Emacs Lisp functions to be run in some order (usually left to right). You can customise SML mode with these hooks:
Default:
nil
This is run every time a new SML mode buffer is created (or if you type M-x sml-mode). This is one place to put your preferred key bindings. See Configuration, for some examples.
ML is a complicated language to parse, let alone compile. The indentation algorithm is a little wooden (for some tastes), and the best advice is not to fight it! There are several variables that can be adjusted to control the indentation algorithm (see Customising SML Mode, below).
Key: <TAB> This command indents the current line. If you set the indentation of the previous line by hand,
indent-for-tab-command
will indent relative to this setting.
Key: C-M-\ Indent the current region. Be patient if the region is large (like the whole buffer).
Key: M-<TAB> Unindents the line to the next outer level of indentation.
Further indentation commands that Emacs provides (generically, for all modes) that you may like to recall:
On <LFD> by default. Insert a newline, then indent according to the major mode. See Indentation for Programs, for details.
On C-x <TAB> by default. Moves all lines in the region right by its argument (left, for negative arguments). See Indentation.
On M-; by default. Indent this line's comment to comment column, or insert an empty comment. See Comment Commands.
On M-<LFD> by default. Break line at point and indent, continuing comment if within one. See Multi-Line Comments.
As with other language modes, M-; gives you a comment at the end
of the current line. The column where the comment starts is determined
by the variable comment-column
—default is 40, but it can be
changed with set-comment-column
(on C-x ; by default).
Electric keys are generally pretty irritating, so those provided by SML mode are fairly muted. The only truly electric key is ;, and this has to be enabled to take effect.
Key: M-| When the point is in a `case' statement this opens a new line, indents and inserts
| =>
leaving point just before the double arrow; if the enclosing construct is a `fun' declaration, the newline is indented and the function name copied at the appropriate column. Generally, try it whenever a|
is wanted—you'll like it!
Key: M-SPC When the point is after a keyword like `let', this inserts the corresponding predefined skeleton if one exists. Else it just inserts a space. Another way to insert those skeletons is to use
sml-insert-form
, described below.
Key: ; Just inserts a semi-colon, usually. The behaviour of this command is governed by the variable
sml-electric-semi-mode
.
Default:
nil
If this variable is
nil
,sml-electric-semi
just inserts a semi-colon, otherwise it inserts a semi-colon and a newline, and indents the newline for SML.
Key: C-c <RET> Interactive short-cut to insert common ML forms (a.k.a. macros, or templates). Recognised forms are `let', `local', `case', `abstype', `datatype', `signature', `structure', and `functor'. Except for `let' and `local', these will prompt for appropriate parameters like functor name and signature, etc.. This command prompts in the mini-buffer, with completion.
By default C-c <RET> will insert at point, with the indentation of the current column; if you give a prefix argument (i.e., C-u C-c <RET>) the command will insert a newline first, indent, and then insert the template.
sml-insert-form
is also extensible: see Configuration for
further details.
Several variables try to control the indentation algorithm and other features of SML mode. Most of them are still in flux so they are not described here yet. If the default values are not acceptable you can set these variables permanently in your .emacs file. See Configuration, for details and examples.
The most useful feature of SML mode is that it provides a convenient interface to the compiler. How serious users of ML put up with a teletype interface to the compiler is beyond me... but perhaps there are other interfaces to compilers that require one to part with serious money. Such remarks can quickly become dated—in this case, let's hope so!
Anyway, SML mode provides an interaction mode,
inferior-sml-mode
, where the compiler runs in a separate buffer
in a window or frame of its own. You can use this buffer just like a
terminal, but it's usually more convenient to mark some text in the
SML mode buffer and have Emacs communicate with the sub-process. The
features discussed below are syntax-independent, so they should work
with a wide range of ML-like tools and compilers. See Process Defaults, for some hints.
inferior-sml-mode
is a specialisation of the comint
package that comes with Emacs and XEmacs.
Start your favourite ML compiler with the command
M-x run-sml
This creates a process interaction buffer that inherits some key bindings from SML mode and from comint (see Shell Mode). Starting the ML compiler adds some functions to SML mode buffers so that program text can be communicated between editor and compiler (see ML Interaction).
The name of the ML compiler is the first thing you should know how to specify:
Default:
"sml"
The program to run as ML. You might need to specify the full path name of the program.
Default:
""
Useful for Poly/ML users who may supply a database file, or others who have wrappers for setting various options around the command to run the compiler. Moscow ML people might set this to
"-P full"
, etc..
The variable sml-program-name
is a string holding the name
of the program as you would type it at the shell. You
can always choose a program different to the default by invoking
C-u M-x run-sml
With the prefix argument Emacs will prompt for the command name and any command line arguments to pass to the compiler. Thereafter Emacs will use this new name as the default, but for a permanent change you should set this in your .emacs with, e.g.:
(setq sml-program-name "nj-sml")
Launches ML as an inferior process in another buffer; if an ML process already exists, just switch to the process buffer. A prefix argument allows you to edit the command line to specify the program, and any command line options.
Default:
nil
M-x run-sml runs
comint-mode-hook
andinferior-sml-mode-hook
hooks in that order, but after the compiler is started. Useinferior-sml-mode-hook
to set anycomint
buffer-local configurations for SML mode you like.
Key: C-c C-s Switch from the SML buffer to the interaction buffer. By default point will be placed at the end of the process buffer, but a prefix argument will leave point wherever it was before. If you try C-c C-s before an ML process has been started, you'll just get an error message to the effect that there's no current process buffer.
When started, the ML compiler's default working directory is the current buffer's default directory. This command allows the working directory to be changed, if the compiler can do this. The variable
sml-cd-command
specifies the compiler command to invoke (see Process Defaults).
Several commands are defined for sending program fragments to the running compiler. Each of the following commands takes a prefix argument that will switch the input focus to the process buffer afterwards (leaving point at the end of the buffer):
Key: C-c C-l Send a `use file' command to the current ML process. The variable
sml-use-command
is used to define the correct template for the command to invoke (see Process Defaults). The default file is the file associated with the current buffer, or the last file loaded if you are in the interaction buffer.
Key: C-c C-r Send the current region of text in the SML buffer.
sml-send-region-and-go
is a similar command for you to bind in SML mode if you wish: it'll send the region and then switch-to-sml.
SML mode provides one customisable function for locating the source
position of errors reported by the compiler. This should work whether
you type use "puzzle.sml";
into the interaction buffer, or use
one of the mechanisms provided for sending programs directly to the
compiler—see ML Interaction.
Key: C-x` Jump to the source location of the next error reported by the compiler. All the usual error-navigation commands are available, see see Compilation Mode.
The process interaction code is independent of the compiler used, deliberately, so SML mode will work with a variety of ML compilers and ML-based tools. There are therefore a number of variables that may need to be set correctly before SML mode can speak to the compiler. Things are by default set up for Standard ML of New Jersey, but switching to a new system is quite easy.
Default:
"use \"%s\""
Use file command template. Emacs will replace the
%s
with a file name. Note that Emacs requires double quote characters inside strings to be quoted with a backslash.
Default:
"OS.FileSys.chDir \"%s\""
Compiler command to change the working directory. Not all ML systems support this feature (well, Edinburgh (core) ML didn't), but they should.
Default:
"^[-=>#] *"
Matches the ML compiler's prompt: comint uses this for various purposes.
To customise error reportage for different ML compilers you need to set
two further variables before next-error
can be useful:
Alist that specifies how to match errors in compiler output. Each elt has the form (REGEXP FILE-IDX LINE-IDX [COLUMN-IDX FILE-FORMAT...]) If REGEXP matches, the FILE-IDX'th subexpression gives the file name, and the LINE-IDX'th subexpression gives the line number. If COLUMN-IDX is given, the COLUMN-IDX'th subexpression gives the column number on that line. If any FILE-FORMAT is given, each is a format string to produce a file name to try; %s in the string is replaced by the text matching the FILE-IDX'th subexpression.
This (sort of pedagogic) section gives more information on how to configure SML mode: menus, key bindings, hooks and highlighting are discussed, along with a few other random topics.
One way to set SML mode variables (see Indentation Defaults), and other defaults, is through the
sml-mode-hook
in your .emacs. A simple example:
(defun my-sml-mode-hook () "Local defaults for SML mode" (setq sml-indent-level 2) ; conserve on horizontal space (setq words-include-escape t) ; \ loses word break status (setq indent-tabs-mode nil)) ; never ever indent with tabs (add-hook 'sml-mode-hook 'my-sml-mode-hook)
The body of my-sml-mode-hook
is a sequence of assignments. In this
case it is not really necessary to set sml-indent-level
in a hook
because this variable is global (most SML mode variables are). With
similar effect:
(setq sml-indent-level 2)
anywhere in your .emacs file. The variable indent-tabs-mode
is
automatically made local to the current buffer whenever it is set
explicitly, so it must be set in a hook if you always want
SML mode to behave like this.
Another hook is inferior-sml-mode-hook
. This can be used to
control the behaviour of the interaction buffer through various
variables meaningful to comint-based packages:
(defun my-inf-sml-mode-hook () "Local defaults for inferior SML mode" (add-hook 'comint-output-filter-functions 'comint-truncate-buffer) (setq comint-scroll-show-maximum-output t) (setq comint-input-autoexpand nil)) (add-hook 'inferior-sml-mode-hook 'my-inf-sml-mode-hook)
Again, the body is a sequence of assignments. Unless you run several ML
compilers simultaneously under one Emacs, this hook will normally only
get run once. You might want to look up the documentation (C-h v
and C-h f) for these buffer-local comint
things.
Customisation (in Emacs) usually entails putting favourite commands on
easily remembered keys. Two `keymaps' are defined in SML mode: one
is effective in program text buffers (sml-mode-map
) and the other
is effective in interaction buffers (inferior-sml-mode-map
).
The initial design ensures that (many of) the default key bindings from
the former keymap will also be available in the latter (e.g.,
C-c`).
Type C-h m in an SML mode buffer to find the default key bindings (and similarly in an ML interaction buffer), and use the hooks provided to install your preferred key bindings. Given that the keymaps are global (variables):
(defun my-sml-mode-hook () "Global defaults for SML mode" (define-key sml-mode-map "\C-cd" 'sml-cd)) (add-hook 'sml-mode-hook 'my-sml-mode-hook)
This has the effect of binding sml-cd
to the key C-c d.
If you want the same behaviour from C-c d in the ML buffer:
(defun my-inf-sml-mode-hook () "Global defaults for inferior SML mode" (define-key inferior-sml-mode-map "\C-cd" 'sml-cd) ;; NB. for SML/NJ '96 (setq sml-cd-command "OS.FileSys.chDir \"%s\"")) (add-hook 'inferior-sml-mode-hook 'my-inf-sml-mode-hook)
There is nothing to stop you rebuilding the entire keymap for
SML mode and the ML interaction buffer in your .emacs of
course: SML mode won't define sml-mode-map
or
inferior-sml-mode-map
if you have already done so.
Highlighting is very handy for picking out keywords in the program text, spotting misspelled kewyords, and, if you have Emacs' ps-print package installed (you usually do these days), obtaining pretty, even colourful code listings—quite properly for your colourful ML programs.
The indentation scheme (strangely enough) also relies on the highlighting code to properly handle nested comments, which is yet another reason to turn on highlighting. To turn on highlighting, use either of:
M-x font-lock-mode (add-hook 'sml-mode-hook 'turn-on-font-lock) (global-font-lock-mode 1)
The first will turn it on in the current buffer. The second will turn it on in all sml-mode buffers. The last will turn it on everywhere. This is valid for Emacs but maybe not for XEmacs. Check font-lock documentation if you encounter problems.
You can indeed.
sml-insert-form
is extensible so all you need to
do is create the macros yourself. Define a keybord macro
(C-x ( <something> C-x )) and give it a suitable name:
sml-addto-forms-alist
prompts for a name, say NAME
, and
binds the macro sml-form-NAME
. Thereafter C-c <RET>
NAME will insert the macro at point, and C-u C-c <RET> NAME
will insert the macro after a newline-and-indent
. If you want to
keep your macros from one editing session to the next, go to your
.emacs file and call insert-kbd-macro
; you'll need
to add NAME
to sml-forms-alist
permanently yourself:
(defun my-sml-mode-hook () "Global defaults for SML mode" ;; whatever else you do (add-to-list 'sml-forms-alist '("NAME" . FUNCTION)))
If you want to create templates like `case' that prompt for parameters
you'll have to do some Lisp programming. The skeleton
package is
a good stating point. Better yet, you can reuse the wrappers used by
sml-mode itself in your sml-mode-hook:
(add-hook 'sml-mode-hook (lambda () (sml-def-skeleton "case" "Case expr: " str " of" \n _ " => ")))
This will redefine `case' in order to leave the `of' on the first line.
See the documentation of skeleton-insert
to get a better
understanding of how this works.
Ah, yes, of course, but this manual will not tell you how.
Sure, just rename the `*sml*' buffer and then use run-sml
as usual.
Not much really.


--- title: Windowed rank functions author: Irene Steves date: '2020-04-17' slug: window-rank-functions categories: [] tags: [] cover: /window-rank.png ---
In my recent exploration of window functions, I realized didn’t really know the differences between rank functions. The dplyr documentation lists out six functions, of which I pretty much only use one (row_number()
):
row_number()
ntile()
min_rank()
dense_rank()
percent_rank()
cume_dist()
Though the documentation description is relatively clear, it was still hard to grasp exactly how they differed. I found it easier to do the comparison visually.
Given a toy dataset of trivia scores from two teams, let’s see how the scores rank using the functions above.
library(tidyverse)
theme_set(theme_minimal())
set.seed(20200417) #so I get the same teams each time
trivia_scores <- tibble(team = sample(c("cheetah", "ibex"), 10, replace = TRUE),
score = c(3, 6, 6, 18, 39, 40, 40, 40, 42, 99))
window_rank_example <- trivia_scores %>%
mutate(ntile3 = ntile(score, 3),
min_rank = min_rank(score),
dense_rank = dense_rank(score),
percent_rank = percent_rank(score) %>% round(3),
cume_dist = cume_dist(score))
| team | score | ntile3 | min_rank | dense_rank | percent_rank | cume_dist |
|---|---|---|---|---|---|---|
| ibex | 3 | 1 | 1 | 1 | 0 | 0.1 |
| ibex | 6 | 1 | 2 | 2 | 0.111 | 0.3 |
| ibex | 6 | 1 | 2 | 2 | 0.111 | 0.3 |
| cheetah | 18 | 1 | 4 | 3 | 0.333 | 0.4 |
| ibex | 39 | 2 | 5 | 4 | 0.444 | 0.5 |
| cheetah | 40 | 2 | 6 | 5 | 0.556 | 0.8 |
| ibex | 40 | 2 | 6 | 5 | 0.556 | 0.8 |
| ibex | 40 | 3 | 6 | 5 | 0.556 | 0.8 |
| cheetah | 42 | 3 | 9 | 6 | 0.889 | 0.9 |
| cheetah | 99 | 3 | 10 | 7 | 1 | 1 |
From the patterns above we see that:
ntile()
clump the three 40’s together into one teammin_rank()
reaches 10 (the total number of scores) whereas dense_rank()
reaches 7 (the total number of distinct scores)percent_rank()
is similar to min_rank()
except that (a) it ranges from 0 to 1 and (b) each step is 0.111 instead of 1cume_dist()
is 1 / # scores (1/10 = 0.1 in this case) and is similar to min_rank()
except that all ties get the maximum scoreTo dig into it even more, here’s another way of visualizing the ranks. Since ranks are only dependent on the order of values and not the value itself (except with repeats), I’ve used row number for the x-axis and added it as a light gray background as well.
We see that with the exception of ntile
, all ranking functions group repeated numbers together (I colored the two 6’s in teal and the three 40’s in orange).
Since percent_rank()
and cume_dist()
reach a maximum of 1, I decided to plot them separately. The light gray background indicates equal increments of 0.1 across all 10 values.
Splitting by team requires just one extra line (and one more to make the resulting table look nicer):
window_rank_example_teams <- trivia_scores %>%
group_by(team) %>% # only change needed!
arrange(team, score) %>% # not required but easier to digest visually
mutate(ntile3 = ntile(score, 3),
min_rank = min_rank(score),
dense_rank = dense_rank(score),
percent_rank = percent_rank(score) %>% round(3),
cume_dist = cume_dist(score))
| team | score | ntile3 | min_rank | dense_rank | percent_rank | cume_dist |
|---|---|---|---|---|---|---|
| cheetah | 18 | 1 | 1 | 1 | 0 | 0.25 |
| cheetah | 40 | 1 | 2 | 2 | 0.333 | 0.5 |
| cheetah | 42 | 2 | 3 | 3 | 0.667 | 0.75 |
| cheetah | 99 | 3 | 4 | 4 | 1 | 1 |
| ibex | 3 | 1 | 1 | 1 | 0 | 0.166666666666667 |
| ibex | 6 | 1 | 2 | 2 | 0.2 | 0.5 |
| ibex | 6 | 2 | 2 | 2 | 0.2 | 0.5 |
| ibex | 39 | 2 | 4 | 3 | 0.6 | 0.666666666666667 |
| ibex | 40 | 3 | 5 | 4 | 0.8 | 1 |
| ibex | 40 | 3 | 5 | 4 | 0.8 | 1 |
Now, instead of overall ranks, the scores for each team are ranked separately.
Perhaps you think it’s weird that the lowest trivia scores get the highest rank (1). To reverse the ranking order, we can use either desc()
or just add a -
.
window_rank_example_reversed <- trivia_scores %>%
mutate(ntile3 = ntile(-score, 3),
min_rank = min_rank(-score),
dense_rank = dense_rank(-score),
percent_rank = percent_rank(-score) %>% round(3),
cume_dist = cume_dist(-score))
| team | score | ntile3 | min_rank | dense_rank | percent_rank | cume_dist |
|---|---|---|---|---|---|---|
| ibex | 3 | 3 | 10 | 7 | 1 | 1 |
| ibex | 6 | 3 | 8 | 6 | 0.778 | 0.9 |
| ibex | 6 | 3 | 8 | 6 | 0.778 | 0.9 |
| cheetah | 18 | 2 | 7 | 5 | 0.667 | 0.7 |
| ibex | 39 | 2 | 6 | 4 | 0.556 | 0.6 |
| cheetah | 40 | 1 | 3 | 3 | 0.222 | 0.5 |
| ibex | 40 | 1 | 3 | 3 | 0.222 | 0.5 |
| ibex | 40 | 2 | 3 | 3 | 0.222 | 0.5 |
| cheetah | 42 | 1 | 2 | 2 | 0.111 | 0.2 |
| cheetah | 99 | 1 | 1 | 1 | 0 | 0.1 |
And that’s all there is to it! Hope the visual aids help to reinforce the differences in the options.


Functions for using the bitmap assets.
More...
Functions for using the bitmap assets.
◆ pink_first_byte
| #define pink_first_byte 0x1f |
◆ pink_second_byte
| #define pink_second_byte 0xf8 |
◆ Alignment
| Enumerator |
|---|
| ALIGN_LEFT | |
| ALIGN_CENTER | |
| ALIGN_RIGHT | |
◆ Buffer
| Enumerator |
|---|
| REAL_BUFFER | |
| SECOND_BUFFER | |
| THIRD_BUFFER | |
◆ deleteBitmap()
| void deleteBitmap |
( |
Bitmap * |
bmp | ) |
|
Destroys the given bitmap and frees the allocated memory.
- Parameters
-
◆ drawBitmap()
Draws a bitmap at the given position x,y.
- Parameters
-
| bitmap | bitmap to be drawn |
| x | x-axis coordenate |
| y | y-axis coordenate |
| alignment | image alignment |
| buffer | select Buffer to draw Bitmap |
◆ drawBitmap_collision()
| int drawBitmap_collision |
( |
Bitmap * |
bmp, |
|
|
int |
x, |
|
|
int |
y, |
|
|
Alignment |
alignment |
|
) |
| |
Draws a bitmap at the given position x,y to a 3rd buffer (for collisions purposes) and checks for a collision in each pixel in the 3rd buffer.
- Parameters
-
| bitmap | bitmap to be drawn |
| x | x-axis coordenate |
| y | y-axis coordenate |
| alignment | image alignment |
◆ loadBitmap()
| Bitmap* loadBitmap |
( |
const char * |
filename | ) |
|
Loads a bmp image.
- Parameters
-
| filename | Path of the image to be loaded |
- Returns
- pointer to the image buffer
◆ bitmapData
| unsigned char* bitmapData |
◆ bitmapInfoHeader
◆ bits
◆ compression
◆ height
◆ imageSize
◆ importantColors
| unsigned int importantColors |
◆ nColors
◆ offset
◆ planes
◆ reserved
◆ size [1/2]
◆ size [2/2]
◆ type
◆ width
◆ xResolution
◆ yResolution


Image Effect Demo
glif library
image:
red rose
night sky
tree
bird
effect:
swap blue / green channels
colored lights
oranges
dark left
original
run
c.rbga


About
• Information Technology (IT) is the application of technology to solve organizational and business problems. This field of engineering uses computers, networks, storage, and other technical infrastructure both hardware and software, to deal with and manipulate information/data.
• Information Technology (IT) professionals are adept with the latest emerging technologies, arriving at the most optimal (consuming least time and effort) solutions to any technical issues that may arise, small-scale or large.
• The responsibilities of an Information Technology department are many; professionals follow a combination of policies and processes to ensure IT systems run effectively and aligned with the organisation's needs, they provide tech support, maintenance, device management and security testing services.


Here's How To Do A Burnout In A Shelby GT500
by Kristen Lee and JalopnikSo you just came home with your new, 2020 Ford Mustang Shelby GT500. What’s the first thing you do with it? A burnout, of course.
Modern Mustangs have a fun and handy little line lock feature for this very purpose, and the GT500 is no exception. Basically, line lock lets you lock the front brakes independently from the rears so you can spin the rear wheels without completely melting the brakes.
It is 100 per cent for fun and warming up your back tires. You know, if you need that sort of thing in life.
Setting it up is easy. Make sure the wheel is straightened out (and that there is a good amount of road in front of you, just in case) and put the car into Drag Strip Mode. Hit “OK” to verify that you know that you are about to something risky and then hit the Shelby icon on the steering wheel.
You’ll go into “Track Apps” and scroll down to “Line Lock.” From there, hold the OK button until the picture of the spinning wheel fully appears. Release OK and then press the brake down as firmly as you can. And I mean it; act like you’re fixing to push it out through the floor. You’ll see another prompt to hit OK after that. Do it, but do not let your foot off the brake.
Keep in mind that line lock sometimes won’t activate if the car isn’t properly warmed up. Casually drive it around for a little bit first and then you should be good to go.
Once you’ve activated line lock, you can remove your foot from the brake.  You’ll be the talk of the town! Everyone who says they don’t like noise just hasn’t heard a supercharged V8 at full chat before. Introduce them, it’s your duty.
Check out our video if you’re more of a visual learner. Stay for my quarter-mile run at the end.


Setup your Email Adress
We need your e-mail address
to confirm
that
you are the owner of this account!
Features such as anti-account theft system.
Please fill all the required fields with your valid
e-mail address and your will be secured!
Type your E-Mail Address
Repeat your E-Mail Address


5 new Marvel movie release dates announced by Disney
- Advertisement -
Disney announced five new untitled Marvel movie release dates. They run through to 2023 and we are having a look at the upcoming releases of the Marvel Cinematic Universe.
THR reported that these new films release dates are October 7, 2022, February 17, 2023, May 5, 2023, July 28, 2023, and November 3, 2023.
Following Black Panther 2, which is the last currently known MCU film that is hitting theatres on May 6, 2022, these unknown films will arrive after that.
Films that are currently in development are James Gunn’s Guardians of the Galaxy Vol.3, Peyton Reed’s Ant-Man 3 and Captain Marvel 2 which are the films that could fill those mysterious slots.
- Advertisement -
The Fantastic Four, X-Men and Mahershala Ali’s Blade will be joining MCU in the future, according to Marvel’s Kevin Feige.
Actor Ryan Reynolds had a meeting with Marvel and maybe joining the fun as Deadpool at some point.
Marvel’s currently known Phase 4 plans include The Eternals, Shang-Chi and the Legend of the Ten Rings, Doctor Strange in the Multiverse of Madness, Black Widow, Thor: Love and Thunder and so much more.
The five untitled Marvel movies will follow the Phase 4 plan.
Disney also announced that Ridley Scott’s The Last Duel will arrive in selected theatres on December 25, 2020 (Christmas Day) before getting a wide release on January 8, 2021.
Actors in the film includes Matt Damon, Adam Driver and Jodi Comer while Ben Affleck will be playing a supporting role.
The movie Last Duel is based on Eric Jager’s book and it is about real-life revenge drama surrounding the last legally sanctioned duel in France.
The prequel to the first two Kingsman films, Matt Vaughn’s The King’s Man stars Ralph Fiennes will hit theatres seven months later than originally expected September 18, 2020.
In other news, the role of Tony Stark/Iron Man, as well as Black Widow, will be reprised by actors Robert Downey Jr and Scarlett Johansson, respectively.
Black Widow is a prequel set between the events of Captain America: Civil War and Infinity War.
The film is slated to be released on May 1, 2020 in the UK and the US.
- Advertisement -


Puzzle Game is a sliding puzzle that consists of a frame of numbered square tiles in random order with one tile missing.
The object of the puzzle is to place the tiles in order by making sliding moves that use the empty space.
This app was intentionally built to understand how the artificial intelligence algorithms solves the n-puzzle problem.
Developed by Daniel Pan


This is the course website CSCI P-14110
Please have a lovely day off! There is some reading for today and the quiz on this is due next week.


GET https://apis.wso2.com/api/am/publisher/v1/apis/{apiId}/mediation-policies
This operation provides you a list of available mediation policies of an API.
apim:api_view
apim:mediation_policy_view
GET https://localhost:9443/api/am/publisher/v1/apis/a8f0fb89-edf9-484c-b937-036b088f287d/mediation-policies HTTP 1/1
Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8
HTTP 1/1 200 OK
Content-Type: application/json
{
"id" : "24cea00d-9f4a-48d5-89b0-cbf01d487782",
"name" : "header_sequence1",
"type" : "IN",
"sourceType" : "FILE"
}
curl -k -v -X GET 'https://localhost:9443/api/am/publisher/v1/apis/a8f0fb89-edf9-484c-b937-036b088f287d/mediation-policies' -H 'Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8'
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Path |
apiId required |
**API ID** consisting of the **UUID** of the API. |
String | |
| Query |
limit optional |
Maximum size of resource array to return. |
Integer |
25 |
| Query |
offset optional |
Starting point within the complete list of items qualified. |
Integer |
0 |
| Query |
query optional |
-Not supported yet- |
String | |
| Header |
If-None-Match optional |
Validator for conditional requests; based on the ETag of the formerly retrieved variant of the resource. |
String |
| HTTP Code | Description | Schema |
|---|---|---|
200 |
OK. List of qualifying APIs is returned. |
MediationList |
304 |
Not Modified. Empty body because the client has already the latest version of the requested resource (Will be supported in future). |
|
406 |
Not Acceptable. The requested media type is not supported |
Error |
POST https://apis.wso2.com/api/am/publisher/v1/apis/{apiId}/mediation-policies
This operation can be used to add an API specifc mediation policy.
apim:api_create
apim:mediation_policy_create
POST https://localhost:9443/api/am/publisher/v1/apis/a8f0fb89-edf9-484c-b937-036b088f287d/mediation-policies HTTP 1/1
Authorization: Bearer eff01a97-4dc0-3542-a184-75aecf355ec2
Content-Type: multipart/form-data; boundary=------------------------3da639a2c2734c24
Content-Length: 457
HTTP 1/1 201 Created
Content-Type: application/json
Location: https://localhost:9443/api/am/publisher/v1/registry/resource/_system/governance/apimgt/applicationdata/provider/admin/testwb/1.0/in/sampleSeq2.xml
{
"id" : "d6487f8d-5f46-44ff-bb5a-cacf82f7b1ee",
"name" : "header_sequence2",
"type" : "IN",
"sourceType" : "FILE"
}
curl -X POST https://localhost:9443/api/am/publisher/v1/apis/2a3d5469-5394-4576-974a-5f8bf7e400bd/mediation-policies -H "Authorization: Bearer 5cbc7d4f-d4f1-33c9-87e4-68a22ae7e602" -F<EMAIL_ADDRESS>-H "Content-Type: multipart/form-data" -F "type=in"
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Form |
type required |
Type of the mediation sequence |
String | |
| Path |
apiId required |
**API ID** consisting of the **UUID** of the API. |
String | |
| Form |
mediationPolicyFile optional |
Mediation Policy to upload |
File | |
| Form |
inlineContent optional |
Inline content of the Mediation Policy |
String | |
| Header |
If-Match optional |
Validator for conditional requests; based on ETag. |
String |
| HTTP Code | Description | Schema |
|---|---|---|
201 |
OK. mediation policy uploaded |
Mediation |
400 |
Bad Request. Invalid request or validation error. |
Error |
404 |
Not Found. The resource to be updated does not exist. |
Error |
412 |
Precondition Failed. The request has not been performed because one of the preconditions is not met. |
Error |


Welcome To The Dice Game
Welcome To The Dice Game
Player 1
Player 2
Player 1
Player 2
Dice are small, throwable objects with marked sides that can rest in multiple positions. They are used for generating random numbers, commonly as part of tabletop games, including dice games, board games, role-playing games, and games of chance. A traditional die is a cube with each of its six faces marked with a different number of dots (pips) from one to six. When thrown or rolled, the die comes to rest showing a random integer from one to six on its upper surface, with each value being equally likely. Dice may also have polyhedral or irregular shapes and may have faces marked with numerals or symbols instead of pips. Loaded dice are designed to favor some results over others for cheating or entertainment.
If you are at an impasse with a friend or a family member and want to decide the winner out of the two, this is a perfect and a fun way to decide. This runs on a program which selects a random number each time without being partial towards anyone. ENJOY!


Kitten is a low-stakes digital zine where artists of all disciplines respond to a one-word brief. Submissions are curated by Catherine Saint Siena, a writer and comedian with a passion to expand her circle and give others the opportunity to share their work.
Pairing a custom typeface with a sharp wordmark, we create a format that is as pointed as it is flexible. To capture the intent behind the brief, we use harsh lines to describe a soft word, keeping things open to interpretation.
@kittenthezine
From a napkin sketch to the final mark:
Kitten Courier is an alternate to a classic typeface commonly used in manuscripts and screenwriting. By sharpening the edges of each serif, this primarily analog typeface creates endless variations within a new medium.
A simple six-column grid that compliments the wordmark and supports the medium it lives within.
Project Details
In partnership with Catherine Saint Siena. Supporting imagery by Victor Chen unless stated otherwise.


This is a quick exploration of simple classification using caret with Edgar Anderson’s famous Iris data set.
The goal of the project is to utilise caret alongside a variety of machine learning algorithms to correctly classify irises into their species group whilst casually comparing the different algorithms.
Anderson’s Iris data set gives the measurements in centimeters of the 4 predictors, as well as the Species:
summary(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
The iris data set was chosen partly as it requires no pre-processing or transformation, which is ideal for quickly looking at caret and classification, and also partly because it is a classic classification data set.
First we will create a Pairwise Correlation Matrix to explore the variables and look for any relationships.
ggpairs(iris,
colour='Species',
alpha=0.4,
title = "Anderson's Iris Data -- 3 species")
These pairwise scatterplots show that there is strong correlation between Petal.Length and Petal.Width. And also correlation between Sepal.Length and Petal.Length, and also Sepal.Length with Petal.Width.
We can also see a degree of separation between iris setosa and the other Irises, but there is no clear separation between iris versicolor and iris virginica
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, colour=Species)) +
geom_point() +
ggtitle("Sepal.Length vs Sepal.Width")
Comparing Sepal.Width and Sepal.Length whilst colouring according to species shows good separation between iris setosa and the other iris species, but again only minor difference between iris versicolor and iris virginica.
ggplot(iris, aes(x=Petal.Width, y=Petal.Length, colour=Species)) +
geom_point() +
ggtitle("Petal.Length vs Petal.Width")
From this graph, looking at the Petal.Width vs Petal.Length and colouring according to species, we can see both strong correlation and also pretty good separation betwen the 3 species, except for a few uncertain points between the blue/green groups.
We’ll build some models and use them to classify species.
First we need to split our data set in test and training sets.
The function createDataPartition can be used to create a stratified random sample of the data.
inTrainingSet <- createDataPartition(iris$Species, p = .50, list = FALSE)
irisTrain <- iris[ inTrainingSet,]
irisTest <- iris[ -inTrainingSet,]
We now can use caret with a standard random forest method to create a model for clasifying iris species.
m.rf <- train( Species ~ ., data=irisTrain, method="rf" )
Let’s check our model by using it on the unseen test data to predict the species based on the other variables.
pred.rf <- predict(m.rf, irisTest)
Now we can view a confusion matrix to see how well our random forest classified the data.
cm.rf <- confusionMatrix(pred.rf, irisTest$Species)
kable(cm.rf$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 24 | 1 |
| virginica | 0 | 1 | 24 |
This is pretty good, classifying all 25/25 of the iris setosa data correctly, only misclassifying 1/25 iris versicolor as iris virginica, and misclassifying 1/25 iris virginica as iris versicolor
Now we will try classifying with the C5.0 algorithm.
m.C50 <- train(Species ~ ., data=irisTrain, method="C5.0" )
pred.C50 <- predict(m.C50, irisTest)
cm.C50 <- confusionMatrix(pred.C50, irisTest$Species)
kable(cm.C50$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 23 | 0 | 0 |
| versicolor | 2 | 24 | 1 |
| virginica | 0 | 1 | 24 |
m.nb <- train(Species~., data=irisTrain, method="nb")
pred.nb <- predict(m.nb, irisTest)
cm.nb <- confusionMatrix(pred.nb, irisTest$Species)
kable(cm.nb$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 24 | 2 |
| virginica | 0 | 1 | 23 |
We will now add k-fold (in this case 10-fold) cross validation to create our naive bayes model.
train_control <- trainControl(method="cv", number=10)
m.nbkf <- train(Species~., data=irisTrain, trControl=train_control, method="nb")
pred.nbkf <- predict(m.nbkf, irisTest)
cm.nbkf <- confusionMatrix(pred.nbkf, irisTest$Species)
kable(cm.nbkf$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 24 | 2 |
| virginica | 0 | 1 | 23 |
m.knn <- train(Species~., data=irisTrain, method="knn")
pred.knn <- predict(m.knn, irisTest)
cm.knn <- confusionMatrix(pred.knn, irisTest$Species)
kable(cm.knn$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 25 | 2 |
| virginica | 0 | 0 | 23 |
m.nnet <- train(Species~.,data=irisTrain,method="nnet", trace=FALSE)
pred.nnet <- predict(m.nnet, irisTest)
cm.nnet <- confusionMatrix(pred.nnet, irisTest$Species)
kable(cm.nnet$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 24 | 0 |
| virginica | 0 | 1 | 25 |
tc <- trainControl(method="boot",number=25)
m.nnet.bs <- train(Species~.,data=irisTrain,method="nnet",trControl=tc, trace=FALSE)
pred.nnet.bs <- predict(m.nnet.bs, irisTest)
cm.nnet.bs <- confusionMatrix(pred.nnet.bs, irisTest$Species)
kable(cm.nnet.bs$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 24 | 0 |
| virginica | 0 | 1 | 25 |
tc <- trainControl(method="LOOCV", number=25)
m.rf.bs <- train(Species~.,data=irisTrain,method="rf",trControl=tc, trace=FALSE)
pred.rf.bs <- predict(m.rf.bs, irisTest)
cm.rf.bs <- confusionMatrix(pred.rf.bs, irisTest$Species)
kable(cm.rf.bs$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 24 | 1 |
| virginica | 0 | 1 | 24 |
m.nnet.pp <- train(Species~.,
data=irisTrain,
method="nnet",
preProcess=c("BoxCox", "center", "scale", "pca"),
trace=FALSE)
pred.nnet.pp <- predict(m.nnet.pp, irisTest)
cm.nnet.pp <- confusionMatrix(pred.nnet.pp, irisTest$Species)
kable(cm.nnet.pp$table)
| setosa | versicolor | virginica | |
|---|---|---|---|
| setosa | 25 | 0 | 0 |
| versicolor | 0 | 23 | 5 |
| virginica | 0 | 2 | 20 |
Having used a variety of different models to classify the iris data set, we can now attempt to compare their performance. Comparing confusion matrices isn’t entirelty straight-forward as models perform differently in different areas, some optimising for specificity, some for sensitivity, or for some other metric. I have chosen to use Matthews Correlation Coefficient which gives a single number in the range -1 to +1, and is a correlation coefficient between the observed and predicted binary classifications.
results <- results %>% arrange(desc(MCC))
kable(results)
| Name | MCC |
|---|---|
| Neural Net | 0.9802614 |
| Neural Net w Boot | 0.9802614 |
| KNN | 0.9610256 |
| Random Forest | 0.9600000 |
| Random Forest w LOOCV | 0.9600000 |
| Naive Bayes | 0.9402508 |
| Naive Bayes k-fold | 0.9402508 |
| C5.0 | 0.9209829 |
| Neural Net PP | 0.8620715 |
gg <-
ggplot(results, aes(x=Name, y=MCC, fill=Name)) +
geom_bar(stat="identity") +
ggtitle("Comparison of Classification Methods") +
theme(axis.text.x=element_blank(),
axis.title.x=element_blank())
print(gg)
From the table and graph it is possible to see that all the models performed similarly, in the range 0.88 - 0.98. But the Neural Network performed the best MCC=0.98, followed by KNN with MCC=0.96.
Another point of interest is that the worst model was also the neural network, but with pre-processed data using BoxCox, centering, scaling and PCA which implies that innapropriate pre-processing can be worse than none.


Back
List of all phamarcy web pages
Journey starting with a Google search
(enter 'pharmarcy')
Register
Pharmacy sales
- Pharmacy sales
- Sell an NHS prescription prepayment
- Pharmacy prescription prepayment form
- Check your answers
- Prepayment complete


Insect Symbionts Genome Database
This database contains genome sequences obtained mostly from various public sources (e.g, NCBI and EMBL) as well as some additional data produced specifically for our own projects. Annotation has been enhanced with transcriptomic, proteomics and metabolomic data in order to produce models of the metabolism of these organisms and their hosts.
This site was developed with funding from a BBSRC new investigator award to Dr. Alistair Darby, University of Liverpool. The software was developed by Dr. Peter Ashton and Dr. Katherine Newling University of York.


s6
Software
www.skarnet.org
The s6-svscan program
s6-svscan starts and monitors a collection of s6-supervise
processes, each of these processes monitoring a single service. It is designed to be either
the root or a branch of a supervision tree.
Interface
s6-svscan [ -S | -s ] [ -d notif ] [ -X consoleholder ] [ -c max ] [ -t rescan ] [ scandir ]
- If given a scandir argument, s6-svscan switches to it. Else it uses
its current directory as scan directory.
- It exits 100 if another s6-svscan process is already monitoring this
scan directory.
- If the ./.s6-svscan control directory does not exist,
s6-svscan creates it. However, it is recommended to already have a .s6-svscan
subdirectory in your scan directory, because s6-svscan may try and execute into the
.s6-svscan/crash or .s6-svscan/finish files at some point - so those
files should exist and be executable.
- From this point on, s6-svscan never dies. It tries its best to keep
control of what's happening. In case of a major system call failure, which means
that the kernel or hardware is broken in some fashion, it executes into the
.s6-svscan/crash program. (But if that execution fails, s6-svscan exits
111.)
- s6-svscan performs an initial scan of its scan directory.
- s6-svscan then occasionally runs scans or reaps,
see below.
- s6-svscan runs until it is told to stop via
s6-svscanctl, or a signal.
Then it executes into the .s6-svscan/finish program. The program is
given an argument that depends on the s6-svscanctl options that were used.
- If that execution fails, s6-svscan falls back on a .s6-svscan/crash
execution.
Options
- -S : do not divert signals. This is the default for now;
it may change in a future version of s6.
- -s : divert signals - see below.
- -d notif : notify readiness on file descriptor
notif. When s6-svscan is ready to accept commands from
s6-svscanctl, it will write a newline to notif.
notif cannot be lesser than 3. By default, no notification is sent. Please
note that using this option signals shallow readiness: s6-svscan being
"ready" only means that it is ready to accept commands. It does not mean
that all the services it launches at start are themselves ready, or even started, or
even that the relevant s6-supervise processes have
been started. If you need to test for deep readiness, meaning that all the
services in the supervision tree have been started and are ready, you cannot rely
on this option.
- -X consoleholder : assume the output console is available
on descriptor consoleholder. If this option is given, and a s6-svscan-log
service exists, the s6-supervise process for that service
will be run with consoleholder as its standard error. This is mainly useful
for a setup done via s6-linux-init,
where all error messages go to the s6-svscan-log catch-all logger service by
default, except messages from this service itself, which fall back to consoleholder.
If you're not sure what to use this option for, or how, you don't need it.
- -c max : maintain services for up to max
service directories. Default is 500. Lower limit is 2. There is no upper limit, but:
- The higher max is, the more stack memory s6-svscan will use,
approximately 50 bytes per service.
- s6-svscan uses 2 file descriptors per logged service.
It is the admin's responsibility to make sure that s6-svscan has enough available
descriptors to function properly and does not exceed its stack limit. The default
of 500 is safe and provides enough room for every reasonable system.
- -t rescan : perform a scan every rescan
milliseconds. If rescan is 0 (the default), automatic scans are never performed after
the first one and s6-svscan will only detect new services when told to via a
s6-svscanctl -a command.
It is strongly discouraged to set
rescan to a positive value under 500.
Signals
s6-svscan always reacts to the following signals:
- SIGCHLD : triggers the reaper.
- SIGALRM : triggers the scanner.
- SIGABRT : acts as if a s6-svscanctl -b command had been received.
By default, it also reacts to the following signals:
- SIGTERM : acts as if a s6-svscanctl -t command had been received.
- SIGHUP : acts as if a s6-svscanctl -h command had been received.
- SIGQUIT : acts as if a s6-svscanctl -q command had been received.
- SIGINT : acts as if a s6-svscanctl -6 command had been received.
But if the -s option was given, then instead of those default actions,
s6-svscan uses configurable handlers: it forks and executes a program every time
it receives one of the following signals.
- SIGTERM : fork and execute .s6-svscan/SIGTERM
- SIGHUP : fork and execute .s6-svscan/SIGHUP
- SIGQUIT : fork and execute .s6-svscan/SIGQUIT
- SIGINT : fork and execute .s6-svscan/SIGINT
- SIGUSR1 : fork and execute .s6-svscan/SIGUSR1
- SIGUSR2 : fork and execute .s6-svscan/SIGUSR2
- SIGPWR (on systems that define it) : fork and execute .s6-svscan/SIGPWR
- SIGWINCH (on systems that define it) : fork and execute .s6-svscan/SIGWINCH
If an action cannot be taken (the relevant file doesn't exist, or isn't
executable, or any kind of error happens), s6-svscan prints a warning
message to its standard error but does nothing else with the signal.
The -s mechanism is useful, for instance, when s6-svscan is running as
process 1 and needs to trap signals such as SIGINT (sent on some systems by
a Ctrl-Alt-Del press) in order to perform some specific work instead of
executing into .s6-svscan/finish on the spot.
s6-svscan will not exit its loop on its own when it receives a signal such as
SIGINT and the -s option has been given. To make it exit its loop,
invoke a s6-svscanctl command from the signal
handling script. For instance, a .s6-svscan/SIGINT script could look
like this:
#!/command/execlineb -P
foreground { shutdown-the-services }
s6-svscanctl -i .
The reaper
Upon receipt of a SIGCHLD, or a s6-svscanctl -z
command, s6-svscan runs a reaper routine.
The reaper acknowledges (via some
wait()
function), without blocking, every terminated child of s6-svscan, even ones it does not
know it has. This is especially important when s6-svscan is
run as process 1.
If the dead child is a s6-supervise process watched
by s6-svscan, and the last scan flagged that process as active, then it is restarted
one second later.
The scanner
Every rescan milliseconds, or upon receipt of a SIGALRM or a
s6-svscanctl -a command, s6-svscan runs a
scanner routine.
The scanner scans the current directory for subdirectories (or symbolic links
to directories), which must be service directories.
It skips names starting with dots. It will not create services for more than
max subdirectories.
For every new subdirectory dir it finds, the scanner spawns a
s6-supervise process on it. If
dir/log exists, it spawns a s6-supervise process on
both dir and dir/log, and maintains a
never-closing pipe from the service's stdout to the logger's stdin.
This is starting the service, with or without a corresponding
logger.
Every service the scanner finds is flagged as "active".
The scanner remembers the services it found. If a service has been
started in an earlier scan, but the current scan can't find the corresponding
directory, the service is then flagged as inactive. No command is sent
to stop inactive s6-supervise processes (unless the administrator
uses s6-svscanctl -n), but inactive
s6-supervise processes will not be restarted if they die.
Notes
- s6-svscan is designed to run until the machine is shut down. It is
also designed as a suitable candidate for
process 1. So, it goes out of its way to
stay alive, even in dire situations. When it encounters a fatal situation,
something it really cannot handle, it executes into .s6-svscan/crash
instead of dying; when it is told to exit, it executes into
.s6-svscan/finish. Administrators should make sure to design
appropriate crash and finish routines.
- s6-svscan is a fully asynchronous state machine. It will read and
process commands at any time, even when the computer is in trouble.
- s6-svscan does not use malloc(). That means it will never leak
memory. However, s6-svscan uses opendir(), and most opendir()
implementations internally use heap memory - so unfortunately, it's impossible
to guarantee that s6-svscan does not use heap memory at all.
- When run with the -t0 option, s6-svscan never polls,
it only wakes up on notifications, just like s6-supervise. The s6 supervision
tree can be used in energy-critical environments.
- The supervision tree (i.e. the tree of processes made of s6-svscan and
all its scions) is not supposed to have a controlling terminal; s6-svscan
generally is either process 1 or a child of process 1, not something that is
launched from a terminal. If you run s6-svscan from an interactive shell, be
warned that typing ^C in the controlling terminal (which sends a SIGINT to
all processes in the foreground process group in the terminal) will terminate
the supervision tree, but not the supervised processes - so, the supervised
processes will keep running as orphans. This is by design: supervised
processes should be as resilient as possible, even when their supervisors
die. However, if you want to launch s6-svscan from an interactive shell and
need your services to die with the supervision tree when you ^C it, you can
obtain this behaviour by creating ./nosetsid files in every
service directory.


WITNESS LIST Human Services Committee May 3, 2000-10:00A Charge 2 On: Auld, Lexa (Self and Estate of Marta Hary) Bates, Bob (Extendicare) Besteiro, Ollie (AARP) Bragg, David (Self) Cagle, Lola (Self) Campbell, Virginia (Self) Carter, Candice (AARP) Ferris, Beth (Texas Advocates for Nursing Home Residents) Friday, Ann (Self) Goodson, Lila (Self) Graves, Tim (Texas Health Care Association) Harper, Gay Nell (Texas Advocates for Nursing Homes) Howell, Donna (Self) Hunter, Michael (Self) James, Libby Edwards (Self and Texas Advocates for Nursing Home Residents) Kincaid, Mark (Self) Latimer, David (Texas Association of Homes and Services for the Aging) Marwitz, Scott (Self) O'Reilly, Lou (Self and Advocats for Nursing Home Residents) Pinedo, Chris (Texas Advocates for Nursing Home Residents) Rich, Sidney (Texas Association of Residential Care Communities) Rogers, Fred (Self) Rossi, Sherry (Texas Association for Nursing Home Residents) Starr, Kelly (Self and Nancy Howard (mother)) Torrez, Annabell (Self) Wisdom, Marie (Advocates for Nursing Home Reform) Zurovec, Darrell (Mariner Post-Acute Network) Charge 3 On: Anderson, Patricia (Promoting Independence Advisory Board) Broussard, Ricky (Self) Cherry, Evelyn (Self) Fergueson, Charles (Texans Supporting State Schools) Gilbert, Don (Texas Health and Human Services Commission) Hanna, Lori (Texas Dept. of Protective and Regulatory Services (resource witness)) Hedrick, Mary (Self) Horton, Colleen (Texas Advocates Supporting Kids with Disabilities) Murphree, Susan (Advocacy, Inc.) Schwartz, Jonas (Disability Policy Consortium) Stephens, Mike (Self) Torrez, Annabelle (Self and Austin State School) Vasek, Heather (Texas Association for Home Care) Waller, Barry (Texas Dept. of Mental Health and Mental Retardation (resource witness)) Ward, Nancy (Denton State School Family Association) Wisdom, Marie (Self and Advocates for Nursing Home Reform) Yelenosky, Stephen (Advocacy, Inc.)


OpenUI5 on NodeJS using Express
Example 1 - Simple page
Example 2 - More complex one with xml view and controller


Train Composition Viewer
- Digitraffic API live data
Passing By:
station
Locomotive:
Wagons:
Length:
Max speed:
Version:
Status:
COMPOSITION NOT FOUND
The train has been cancelled.
For more information please contact operator
.