public interface IStatistics extends IEventSource
The statistics object is a generic event source for events of type
IPropertyChangeEvent
. Its parent event source is
ITeamRepository
.
This interface is intended to be used for test/debug purposes only as its usage could impact the performance and memory usage of the client APIs.
Statistics will only be collected if listeners are registered against the
IStatistics
event source.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DEBUG_CALLINGFLAG
The
getTotalCacheSize() property represents the total size in
bytes of all currently shared items. |
static java.lang.String |
DEBUG_CONTEXT
The service interface debug context type
|
static java.lang.String |
ITEM_TYPE
The item type context type.
|
static java.lang.String |
ITEM_TYPE_CACHE_COUNT
The
#getItemTypeCacheCount() property represents the total count
of the currently shared items of a given item type. |
static java.lang.String |
ITEM_TYPE_CACHE_HITS
The
#getItemTypeCacheHits() property represents the total count
of cache hits of a given item type. |
static java.lang.String |
ITEM_TYPE_CACHE_MISSES
The
#getItemTypeCacheMisses() property represents the total count
of cache misses of a given item type. |
static java.lang.String |
ITEM_TYPE_CACHE_REFRESHES
The
#getItemTypeCacheRefreshes() property represents the total
count of cache misses of a given item type. |
static java.lang.String |
ITEM_TYPE_CACHE_SIZE
The
#getItemTypeCacheSize() property represents the total size in
bytes of the currently shared items of a given item type. |
static java.lang.String |
SERVICE
The service context type.
|
static java.lang.String |
SERVICE_CALL_COUNT
The
#getServiceCallCount() property represents the cumulative
number of times the given service was called. |
static java.lang.String |
SERVICE_ELAPSED_TIME
The
#getServiceallCount() property represents the cumulative time
the given service had spent running. |
static java.lang.String |
SERVICE_METHOD
The service method context type.
|
static java.lang.String |
SERVICE_METHOD_CALL_COUNT
The
#getServiceMethodCallCount() property represents the
cumulative number of times the given service method was called. |
static java.lang.String |
SERVICE_METHOD_ELAPSED_TIME
The
#getServiceMethodElapsedTime() property represents the
cumulative time the given service method had spent running. |
static java.lang.String |
SERVICE_METHOD_RETRY_COUNT
The
#getServiceMethodRetryCount() property represents the
cumulative number of times the given service method was retried. |
static java.lang.String |
SERVICE_RETRY_COUNT
The
#getServiceRetryCount() property represents the cumulative
number of times the given service was retried. |
static java.lang.String |
TOTAL
The total context type
|
static java.lang.String |
TOTAL_CACHE_COUNT
The
getTotalCacheCount() property represents the total count of
all currently shared items. |
static java.lang.String |
TOTAL_CACHE_HITS
The
getTotalCacheHits() property represents the total count of
all cache hits. |
static java.lang.String |
TOTAL_CACHE_MISSES
The
getTotalCacheMisses() property represents the total count of
all cache misses. |
static java.lang.String |
TOTAL_CACHE_REFRESHES
The
getTotalCacheRefreshes() property represents the total count
of all cache refreshes. |
static java.lang.String |
TOTAL_CACHE_SIZE
The
getTotalCacheSize() property represents the total size in
bytes of all currently shared items. |
static java.lang.String |
TOTAL_SERVICE_CALL_COUNT
The
getTotalServiceCallCount() property represents the
cumulative number of times the underlying services were contacted. |
static java.lang.String |
TOTAL_SERVICE_ELAPSED_TIME
The
getTotalServiceElapsedTime() property represents the
cumulative time the underlying services had spent running. |
static java.lang.String |
TOTAL_SERVICE_RETRY_COUNT
The
getTotalServiceRetryCount() property represents the cumulative
number of times the underlying services were contacted for a retry. |
| Modifier and Type | Method and Description |
|---|---|
void |
clearStatisticValue(java.lang.String contextType,
java.lang.Object context,
java.lang.String statisticName)
Clears the value of the given statistic identified by its name and
context.
|
long |
decStatisticValue(java.lang.String contextType,
java.lang.Object context,
java.lang.String statisticName,
long remove)
Decrements the value of the given statistic identified by its name and
context.
|
void |
enable()
Explicitly enable the receiver.
|
boolean |
enabled()
Returns
true if statistics are being collected. |
java.lang.Object[] |
getContexts(java.lang.String contextType)
Returns all contexts of the given context type.
|
java.lang.String[] |
getContextTypes()
Returns all context types that currently have statistics associated with
them.
|
long |
getItemTypeCacheCount(IItemType itemType)
Returns the total number of the currently shared items of a given item
type.
|
long |
getItemTypeCacheHits(IItemType itemType)
Returns the total number of cache misses of a given item type.
|
long |
getItemTypeCacheMisses(IItemType itemType)
Returns the total number of cache misses of a given item type.
|
long |
getItemTypeCacheRefreshes(IItemType itemType)
Returns the total number of cache refreshes of a given item type.
|
long |
getItemTypeCacheSize(IItemType itemType)
Returns the total size in bytes of the currently shared items of a given
item type.
|
IItemType[] |
getItemTypes()
Returns the item types for which we have gathered statistics.
|
long |
getServiceCallCount(java.lang.String service)
Returns a cumulative number of times the given service was called.
|
long |
getServiceElapsedTime(java.lang.String service)
Returns a cumulative time the given service had spent running.
|
long |
getServiceMethodCallCount(java.lang.reflect.Method method)
Returns a cumulative number of times the given service method was called.
|
long |
getServiceMethodElapsedTime(java.lang.reflect.Method method)
Returns a cumulative time the given service method had spent running.
|
long |
getServiceMethodRetryCount(java.lang.reflect.Method method)
Returns a cumulative number of times the given service method has been retried
after a failure.
|
java.lang.reflect.Method[] |
getServiceMethods()
Returns the service methods for which we have gathered statistics.
|
long |
getServiceRetryCount(java.lang.String service)
Returns a cumulative number of times the given service has been retried.
|
java.lang.String[] |
getServices()
Returns the services for which we have gathered statistics.
|
java.lang.String[] |
getStatisticNames(java.lang.String contextType,
java.lang.Object context)
Returns all available statistic names of the given context.
|
long |
getStatisticValue(java.lang.String contextType,
java.lang.Object context,
java.lang.String statisticName)
Returns the value of the given statistic identified by its name and
context.
|
long |
getTotalCacheCount()
Returns the total number of all currently shared items.
|
long |
getTotalCacheHits()
Returns the total number of all cache hits.
|
long |
getTotalCacheMisses()
Returns the total number of all cache misses.
|
long |
getTotalCacheRefreshes()
Returns the total number of all cache refreshes.
|
long |
getTotalCacheSize()
Returns the total size in bytes of all currently shared items.
|
long |
getTotalServiceCallCount()
Returns a cumulative number of times the underlying services were
contacted.
|
long |
getTotalServiceElapsedTime()
Returns a cumulative time the underlying services had been running.
|
long |
getTotalServiceRetryCount()
Returns a cumulative number of times the underlying services were
retried.
|
long |
incStatisticValue(java.lang.String contextType,
java.lang.Object context,
java.lang.String statisticName,
long add)
Increments the value of the given statistic identified by its name and
context.
|
long |
setStatisticValue(java.lang.String contextType,
java.lang.Object context,
java.lang.String statisticName,
long value)
Sets the value of the given statistic identified by its name and context.
|
ITeamRepository |
teamRepository()
Returns the repository associated with this object.
|
addGenericListener, purgeGenericListener, removeGenericListener
static final java.lang.String ITEM_TYPE
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String ITEM_TYPE_CACHE_SIZE
#getItemTypeCacheSize()
property represents the total size in
bytes of the currently shared items of a given item type. This constant
could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String ITEM_TYPE_CACHE_COUNT
#getItemTypeCacheCount()
property represents the total count
of the currently shared items of a given item type. This constant could
be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String ITEM_TYPE_CACHE_HITS
#getItemTypeCacheHits()
property represents the total count
of cache hits of a given item type. This constant could be used as an
event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String ITEM_TYPE_CACHE_MISSES
#getItemTypeCacheMisses()
property represents the total count
of cache misses of a given item type. This constant could be used as an
event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String ITEM_TYPE_CACHE_REFRESHES
#getItemTypeCacheRefreshes()
property represents the total
count of cache misses of a given item type. This constant could be used
as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_METHOD
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_METHOD_CALL_COUNT
#getServiceMethodCallCount()
property represents the
cumulative number of times the given service method was called. This
constant could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_METHOD_RETRY_COUNT
#getServiceMethodRetryCount()
property represents the
cumulative number of times the given service method was retried. This
constant could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_METHOD_ELAPSED_TIME
#getServiceMethodElapsedTime()
property represents the
cumulative time the given service method had spent running. This constant
could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_CALL_COUNT
#getServiceCallCount()
property represents the cumulative
number of times the given service was called. This constant could be used
as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_RETRY_COUNT
#getServiceRetryCount()
property represents the cumulative
number of times the given service was retried. This constant could be used
as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String SERVICE_ELAPSED_TIME
#getServiceallCount()
property represents the cumulative time
the given service had spent running. This constant could be used as an
event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL
static final java.lang.String TOTAL_CACHE_SIZE
getTotalCacheSize()
property represents the total size in
bytes of all currently shared items. This constant could be used as an
event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_CACHE_COUNT
getTotalCacheCount()
property represents the total count of
all currently shared items. This constant could be used as an event
category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_CACHE_HITS
getTotalCacheHits()
property represents the total count of
all cache hits. This constant could be used as an event category to be
passed to IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_CACHE_MISSES
getTotalCacheMisses()
property represents the total count of
all cache misses. This constant could be used as an event category to be
passed to IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_CACHE_REFRESHES
getTotalCacheRefreshes()
property represents the total count
of all cache refreshes. This constant could be used as an event category
to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_SERVICE_CALL_COUNT
getTotalServiceCallCount()
property represents the
cumulative number of times the underlying services were contacted. This
constant could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_SERVICE_RETRY_COUNT
getTotalServiceRetryCount()
property represents the cumulative
number of times the underlying services were contacted for a retry. This
constant could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String TOTAL_SERVICE_ELAPSED_TIME
getTotalServiceElapsedTime()
property represents the
cumulative time the underlying services had spent running. This constant
could be used as an event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.static final java.lang.String DEBUG_CONTEXT
static final java.lang.String DEBUG_CALLINGFLAG
getTotalCacheSize()
property represents the total size in
bytes of all currently shared items. This constant could be used as an
event category to be passed to
IEventSource.addGenericListener(Object, IListener)
.ITeamRepository teamRepository()
null
ITeamRepository.statistics()
java.lang.String[] getContextTypes()
null
java.lang.Object[] getContexts(java.lang.String contextType)
contextType
- the given context type; must not be null
.null
java.lang.String[] getStatisticNames(java.lang.String contextType, java.lang.Object context)
contextType
- the given context type; must not be null
.context
- the given context; must not be null
.null
long getStatisticValue(java.lang.String contextType, java.lang.Object context, java.lang.String statisticName)
contextType
- the given context type; must not be null
.context
- the given context; must not be null
.statisticName
- the given statistic name ; must not be null
.long setStatisticValue(java.lang.String contextType, java.lang.Object context, java.lang.String statisticName, long value)
contextType
- the given context type; must not be null
.context
- the given context; must not be null
.statisticName
- the given statistic name ; must not be null
.value
- the new value of the statistic.long incStatisticValue(java.lang.String contextType, java.lang.Object context, java.lang.String statisticName, long add)
contextType
- the given context type; must not be null
.context
- the given context; must not be null
.statisticName
- the given statistic name ; must not be null
.add
- the value to add to the current value of the statistic.long decStatisticValue(java.lang.String contextType, java.lang.Object context, java.lang.String statisticName, long remove)
contextType
- the given context type; must not be null
.context
- the given context; must not be null
.statisticName
- the given statistic name ; must not be null
.remove
- the value to subtract from the current value of the statistic.void clearStatisticValue(java.lang.String contextType, java.lang.Object context, java.lang.String statisticName)
contextType
- the given context type; must not be null
.context
- the given context; must not be null
.statisticName
- the given statistic name ; must not be null
.IItemType[] getItemTypes()
null
.ITeamRepository.statistics()
long getItemTypeCacheSize(IItemType itemType)
itemType
- the given item type; must not be null
.long getItemTypeCacheCount(IItemType itemType)
itemType
- the given item type; must not be null
.long getItemTypeCacheHits(IItemType itemType)
itemType
- the given item type; must not be null
.long getItemTypeCacheMisses(IItemType itemType)
itemType
- the given item type; must not be null
.long getItemTypeCacheRefreshes(IItemType itemType)
itemType
- the given item type; must not be null
.java.lang.reflect.Method[] getServiceMethods()
null
.ITeamRepository.statistics()
long getServiceMethodCallCount(java.lang.reflect.Method method)
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call count should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
method
- the service method; must not be null
.long getServiceMethodRetryCount(java.lang.reflect.Method method)
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call count should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
method
- the service method; must not be null
.long getServiceMethodElapsedTime(java.lang.reflect.Method method)
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so elapsed time should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
method
- the service method; must not be null
.java.lang.String[] getServices()
null
.ITeamRepository.statistics()
long getServiceCallCount(java.lang.String service)
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call count should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
service
- the service; must not be null
.long getServiceRetryCount(java.lang.String service)
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call count should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
service
- the service; must not be null
.long getServiceElapsedTime(java.lang.String service)
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so elapsed time should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
service
- the service; must not be null
.long getTotalCacheSize()
long getTotalCacheCount()
long getTotalCacheHits()
long getTotalCacheMisses()
long getTotalCacheRefreshes()
long getTotalServiceCallCount()
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
long getTotalServiceRetryCount()
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
long getTotalServiceElapsedTime()
The counter behaves as a monotonically non-decreasing function over time. Calls to API operations marked "ShortOp" are not supposed to contact the server; so call should remain constant across callCount to those (it would be a bug if it did not). Calls to API operations marked "LongOp" are allowed to contact the server. Typically an operation makes exactly one call to the server.
boolean enabled()
true
if statistics are being collected.
Statistics will only be collected if listeners are registered against the
IStatistics
event source.
true
if statistics are being collected.void enable()
incStatisticValue(String, Object, String, long)
and
decStatisticValue(String, Object, String, long)
will update
the receiver.


Please click bellow to pass protection,
Or you will be automatically redirected to the requested page after {REDIRECT_DELAY} seconds.
To continue working with web-site, please make sure that you have enabled JavaScript.


That looks just like them
These websites are our enemies! They are the sort of things that encourage Jerome's transmogrification.
This gif was sent to us from Jerome's mother.
She also stated:
"In the past months my Jerome kept speaking of reincarnation...always so obsessed about the idea of being able to change state and longing to be somone else or to be someplace else."


The Season Launching
Ideas gathering/hackathon to generate as many ideas as possible to do social good.
Enables data enthusiasts to do social good. Use your technical skills to do ‘Tikkun Olam’!
Our projectsWe use the power of the algorithms to solve social problems. The use-cases where data science can have an impact are endless: education, employment, real estate, immigration, health, etc.
Start a project with usIdeas gathering/hackathon to generate as many ideas as possible to do social good.
Presentation of the best ideas and team building.
Presentation of the results from each team and implementation in production.


Events Log:
Note:
Dragging of "Breve" is disabled.
Dropping of "Frappuccino" is disabled.
Note:
Dragging of "Breve" is disabled.
Dropping of "Frappuccino" is disabled.


Here is a list of possible TheButton scenarios:
how does it feel to reach zero?
: see thebutton counter start at 60 and go down to 0!
flair trainer
: get the flair you want
DISCLAIMER: The original CSS and JS code are owned by Reddit. I've reverse-engineered the JS so it can be extended and customized.
Fork away and add more, Pull Requests are welcome!
Follow @flevour


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.ApplicationConfig @import include._ @import views.html.include.DevMain @import domain.models.developers.DeveloperSession @import domain.models.applications.Application @import domain.models.views.IpAllowlistFeedbackBanner @import model.Crumb @this(devMain: DevMain) @(app: Application)( implicit request: play.api.mvc.Request[Any], loggedIn: DeveloperSession, messages: Messages, applicationConfig: ApplicationConfig) @devMain( title = "Remove IP allow list", userFullName = loggedIn.loggedInName, developerSession = Some(loggedIn), breadcrumbs = Seq( Crumb("Remove IP allow list"), Crumb.ipAllowlist(app), Crumb.application(app), Crumb.viewAllApplications ), feedbackBanner = Some(IpAllowlistFeedbackBanner) ) {
You can set up a new IP allow list at any time.
@helper.form(action = controllers.routes.IpAllowlist.removeIpAllowlistAction(app.id)) { @helper.CSRF.formField Cancel }


way.js is a simple, lightweight, persistent, framework-agnostic javascript library that allows you to bind DOM elements to an in-memory datastore (with no to little JS code).
If you like buzzwords, that means super easy two-way databinding.
Once you tried it here, check the
documentation or play with some code on this
jsFiddle.
Example
This form is binded to the "formData" property and automatically parsed on each change.
Data is set to persistent. Try refreshing the page after changing some of its values.
The only code required) to achieve that is the following.
<form way-data="formData" way-persistent="true">
<input type="text" name="name">
<input type="text" name="picture">
<img way-data="formData.picture" way-default="[some url]">
<input type="checkbox" name="nationality[]" value="french">
<input type="checkbox" name="nationality[]" value="american">
<input type="checkbox" name="nationality[]" value="british">
<input type="checkbox" name="nationality[]" value="chinese">
</form>


BACK IN THE U.S.S.R. A film review by Mark Santora Copyright 1992 Mark Santora
Tonight I had the good fortune to see a preview of this new film. I must admit I was a little turned off by the name, stolen from the Beatle's song, which by the way does not even appear in the film. But from the start you come to realize that this film is not the cheesy- looking film depicted in the horrible advertising campaign.
The film is of high caliber. The script and acting are all first rate. The cinematography is beautiful. The entire film was shot in Russia, which attributes to the look of the film. (We also get a look at the Moscow McDonald's!) I am sure that Roman Polanski's acting forces were also felt behind the camera.
The plot revolves around a missing artwork (icon) that is recovered by the church in the opening minutes. Stolen just minutes later, the film becomes a chase to find it. There are plenty of plot twists and of course, the occasional chase, but it is the story and characters that hold the film together.
As I mentioned before, the film does not feature the Beatle song which shares the same name of the film. In fact, there is no rock music except in the end credits, which is okay with me. The orchestrational score for the film is a must hear. It is a definite purchase for all those soundtrack collectors out there.
In the end, I recommend this film. It is a good time and most importantly it moves along nicely and uses its time wisely. Do not think of this as a simple film. It is not. But I consider it the first film of 1992 that is worth seeing.
.
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


Steven Platt
Infrastructure engineer and researcher. Member IEEE.
Email<EMAIL_ADDRESS>San Francisco, California, US
Technical Skills
- Advanced: Network Protocols, Blockchain, Research
- Intermediate: Python, Kubernetes, Ansible, Infrastructure-as-Code (IaC), Amazon Web Services (AWS)
- Beginner: Java, Javascript, SQL, Puppet, Microsoft Azure, Google Cloud Platform (GCP)
Education
- PhD. Information and Communications Technologies, Pompeu Fabra University, Barcelona, Spain, 2018-2021
- M.S. Wireless Communications, Barcelona School of Telecommunications and Engineering, Polytechnic University of Catalonia, Barcelona, Spain, 2017-2018
- MBA. Business Administration, Illinois State University, Normal, US, 2009-2012
- B.S. Electronic Systems Technology, Southern Illinois University at Carbondale, Carbondale, US, 2004-2007
Experience
Pompeu Fabra University
Doctoral Researcher, Barcelona, Spain, 2018-current
- Thesis: "Towards Generalized Blockchain Enabled Cellular Overlays".
- Wrote network simulations and algorithms in the Python programming language using the NumPy and Pandas libraries for data visualisation.
- Published research at top ranked journals and conferences including MDPI Journal Sensors (SJR Q1) and IEEE GlobeCom.
Twitter.com
Systems Engineer II, San Francisco, US, 2014-2017
- Managed infrastructure deployments on 5 continents including DNS, server virtualization, and storage arrays.
- Service owner for global telephony architecture and IT infrastructure global office expansion.
- Migrated monolith VoIP infrastructure to a microservice design reducing voice carrier costs globally 72%.
- Enabled full remote site deployment in 41 countries while reducing site delivery time from 12 weeks to 2.
- Mentored and trained support engineers as company headcount expanded 100% in 2 years.
- Designed and launched new services testbed using Amazon AWS.
Salesforce.com
Network Engineer, San Francisco, US, 2012-2014
- Principle network deployment engineer; completed network deployment for facilities in the United States, United Kingdom and Australia.
- Global support for Cisco LAN, WAN, Wireless and VPN, Juniper firewall, and F5 Load Balancer systems.
Caterpillar Inc
Information Technology Analyst II, Peoria, US, 2007-2012
- Completed platform design of new satellite connected "field view" industrial camera product with pilot deployments in Canada, Czech Republic, and the United States.
- Deployed Cisco IP Phone and HD Telepresence video conference networks to facilities in Australia, China, Singapore, Thailand, and the United States.
Open Source Contributions
- gnome-shell, 2020
Languages
- English, native
- Spanish, intermediate


The below command is to be run in a powershell window:
$pw= convertto-securestring "EnterPasswordHere" -asplaintext -force
$pp = new-object -typename System.Management.Automation.PSCredential -argumentlist "EnterDomainName\EnterUserName",$pw
$script = "C:\Users\EnterUserName\AppData\Local\Temp\test.bat"
Start-Process powershell -Credential $pp -ArgumentList '-noprofile -command &{Start-Process $script -verb Runas}'
If however you want to run the powershell from a cmd prompt, you can run store the above command in a xyz.ps1 file and run it in cmd as below:
powershell -ExecutionPolicy Bypass -File xyz.ps1


Note: Backgrounds change for users after a song finishes playing.
Backgrounds will attempt to be selected based on a matching mood associated with the song being played.


{{ extends "layouts/index_site" }} {{ import "layouts/partials/helpers/csrf" }} {{ import "layouts/partials/helpers/captcha" }} {{ import "layouts/partials/helpers/flags" }} {{ import "layouts/partials/helpers/rules" }} {{ import "layouts/partials/helpers/tag_form" }} {{block title()}}{{ T("upload")}}{{end}} {{block content_body()}}


$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
...
$ git push origin/patch
(briefly)
psst. the yellow part is a clue.
public == free / private == $
it facilitates productive conversations
kinda like GIS ;)


1 Chronicles 4:39
And they went to the entrance of Gedor, even unto the east side of the valley, to seek pasture for their flocks.


The new WheelCollider is powered by the PhysX3 Vehicles SDK that is basically a completely new vehicle simulation library when compared to PhysX2.
Let’s go through the process of creating a basic functioning car in Unity 5.0.
Start by selecting GameObject -> 3D Object -> Plane. This is the ground the car is going to drive on. Make sure the ground has zero transform (Transform -> Reset) for simplicity. Scale it by putting something like 100 in Transform scale components.
Create a basic car skeleton:
First, add a GameObject as the car root object: GameObject -> Create Empty. Change the name to car_root
.
Add a Physics 3D Rigidbody component to car_root
. The default mass of 1 kg is way too light for the default suspension settings. Change it to 1500 kg.
Now create the car body collider: GameObject -> 3D Object -> Cube. Parent the box under car_root
. Reset the transform to make it perfectly aligned in local space. Since our car is going to be oriented along the Z axis, scale the box along the Z axis by setting z scaling to 3.
Add the wheels root. Select car_root
and GameObject -> Create Empty Child. Change the name to wheels
. Reset the transform on it. This node is not mandatory, but it is for tuning convenience later.
Create the first wheel: select the wheels
object, GameObject -> Create Empty Child, and name it frontLeft
. Reset the transform on it. Set the position to (–1, 0, 1). Add Physics component -> wheel collider to the wheel.
Duplicate the frontLeft
object (Cmd-D or Control-D). Change the x position to 1. Change the name to frontRight
.
Select both the frontLeft
and frontRight
objects. Duplicate them. Change the z position of both objects to –1. Change the names to rearLeft
and rearRight
respectively.
Finally, select the car_root
object and using the transform manipulators, raise it slightly above the ground.
Now you should be able to see something like this:
To make this car actually drivable we need to write a controller for it. Let’s dive into some scripting:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class SimpleCarController : MonoBehaviour {
public List<AxleInfo> axleInfos; // the information about each individual axle
public float maxMotorTorque; // maximum torque the motor can apply to wheel
public float maxSteeringAngle; // maximum steer angle the wheel can have
public void FixedUpdate()
{
float motor = maxMotorTorque * Input.GetAxis("Vertical");
float steering = maxSteeringAngle * Input.GetAxis("Horizontal");
foreach (AxleInfo axleInfo in axleInfos) {
if (axleInfo.steering) {
axleInfo.leftWheel.steerAngle = steering;
axleInfo.rightWheel.steerAngle = steering;
}
if (axleInfo.motor) {
axleInfo.leftWheel.motorTorque = motor;
axleInfo.rightWheel.motorTorque = motor;
}
}
}
}
[System.Serializable]
public class AxleInfo {
public WheelCollider leftWheel;
public WheelCollider rightWheel;
public bool motor; // is this wheel attached to motor?
public bool steering; // does this wheel apply steer angle?
}
Just drop this snippet on the `car_root` object, tune the script parameters as shown below and kick off to play mode. Play around with the settings, Those shown below seem to work reasonably well:
![](../uploads/Main/WheelColliderSettings.png)
You can have up to 20 wheels on a single vehicle instance with each of them applying steering, motor or braking torque.
Now we will move on to visual wheels. As can see, WheelCollider doesn’t apply the simulated wheel position and rotation back to WheelCollider’s transform. So adding visual wheel requires some tricks.
We need some wheel geometry here. we can make a simple wheel shape out of a cylinder.
Now there could be several approaches to adding visual wheels: making it so that we have to assign visual wheels manually in script properties or writing some logic to find the corresponding visual wheel automatically. We’ll follow the second approach.
Attach the visual wheels to wheel collider objects.
Now change the controller script:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class AxleInfo {
public WheelCollider leftWheel;
public WheelCollider rightWheel;
public bool motor;
public bool steering;
}
public class SimpleCarController : MonoBehaviour {
public List<AxleInfo> axleInfos;
public float maxMotorTorque;
public float maxSteeringAngle;
// finds the corresponding visual wheel
// correctly applies the transform
public void ApplyLocalPositionToVisuals(WheelCollider collider)
{
if (collider.transform.childCount == 0) {
return;
}
Transform visualWheel = collider.transform.GetChild(0);
Vector3 position;
Quaternion rotation;
collider.GetWorldPose(out position, out rotation);
visualWheel.transform.position = position;
visualWheel.transform.rotation = rotation;
}
public void FixedUpdate()
{
float motor = maxMotorTorque * Input.GetAxis("Vertical");
float steering = maxSteeringAngle * Input.GetAxis("Horizontal");
foreach (AxleInfo axleInfo in axleInfos) {
if (axleInfo.steering) {
axleInfo.leftWheel.steerAngle = steering;
axleInfo.rightWheel.steerAngle = steering;
}
if (axleInfo.motor) {
axleInfo.leftWheel.motorTorque = motor;
axleInfo.rightWheel.motorTorque = motor;
}
ApplyLocalPositionToVisuals(axleInfo.leftWheel);
ApplyLocalPositionToVisuals(axleInfo.rightWheel);
}
}
}


PB and Marceline is one of the most poignant love stories in modern fiction. Beautifully told, through hints and so much left unsaid.
Poor Finn. He thinks she’s talking about him. He has no idea.
That last gif. Wow, that gets me. Maybe Princess Bubblegum’s first sentient action was to save Marceline’s life in the aftermath of the Mushroom War.


|
Trainee
|
{{assessment.skill.skillName}} {{assessment.type}} ({{getPercentage(assessment)}}%)
|
Notes |
|---|---|---|
| {{trainee.name}} | ||
| Average | {{getAssessmentAverage(assessment) | number:'1.2-2'}}% | Weekly Batch Average: {{getOverallAverage() | number:'1.2-2'}}% |
Add a new week?
This process cannot be undone.


Prince Andrew regrets not cutting ties with Epstein earlier
Prince Andrew denies allegations had relations with underage girl trafficked by Jeffrey Epstein, but says it was 'wrong' to visit Epstein.
by Marcy Oster, JTABritain’s Prince Andrew denied having sex with an underage girl trafficked by Jeffrey Epstein and said he regrets not cutting ties with Epstein after the millionaire financier’s 2008 legal trouble for soliciting a minor.
Prince Andrew discussed his relationship with Epstein and addressed the accusations of Virginia Giuffre in a BBC interview on Saturday.
Giuffre claims she was forced by Epstein to have sex with the prince three times, in London, New York and the U.S. Virgin Islands. The prince provided an alibi for one of the encounters and poked holes in her memories of the other two.
The prince saw Epstein following his release from custody in Florida and stayed at his New York mansion for several days. It was then that he said he ended his friendship with Epstein. They had no further contact.
“It was the wrong decision to go and see him in 2010,” Andrew said. “I kick myself for (it) on a daily basis because it was not something that was becoming of a member of the royal family.”
Prince Andrew acknowledged he had stayed on Epstein’s private island, visited his home in Palm Beach, Florida, and traveled on his private plane.
Epstein was found dead in early on Aug. 10 at the Metropolitan Correction Center in Manhattan while awaiting trial for sex trafficking charges for allegedly abusing dozens of minor girls. His death was ruled a suicide.


Credit card processing is handled securely by Stripe. Credit card data is managed by Stripe’s high-security servers. Read more about Stripe’s security.


{% extends "base.html" %} {% block header_title %}Merging {{ tag.category }} ID {{ merging.pk }}{% endblock %} {% block content %} {% load static %} {% load crispy_forms_tags %}
You're about to merge this {{ tag_category }}:
This will reassign the following to a new {{ tag_category }}:
{% for work in sample_elements %}
Choose the {{ tag_category }} to reassign all these works to:


Before saving the file, create a backup. If the save operation is successful, the backup is deleted. If not, the
contents of the original file are restored from backup. This behavior is known as "safe write" and it prevents
losing your file in case of a faulty save operation.


Game Over! "{{currentPlayer}}" has won the Game!
You are player {{player}}
It is {{currentPlayer}} 's turn
There is no other player in this session


Tablet of Vision:
Countless thoughts beyond comprehension sear painfully into your brain. You see a vision of a woman in a blue dress...
I know where the next Stone of Commune is!
I know that
Guard Bayard of Goddard Castle Town
has it! Find him!


Timeout-dialog.js is a JQuery plugin that displays a timeout popover after a certain period of time. The timeout dialog should be used whenever you want to display to the user that the logged in session is about to expire. It creates a light box with a countdown and options to stay signed in or sign out.
You can download the timeout-dialog.js project from GitHub.
$.timeoutDialog();
| Name | Type | Default | Description |
|---|---|---|---|
| timeout | number | 1200 | The number of your session timeout (in seconds). The timeout value minus the countdown value determines how long until the dialog appears. |
| countdown | number | 60 | The countdown total value (in seconds). |
| title | string | 'Your session is about to expire!' | The title message in the dialog box. |
| message | string | 'You will be logged out in {0} seconds.' | The countdown message where {0} will be used to enter the countdown value. |
| question | string | 'Do you want to stay signed in?' | The question message if they want to continue using the site or not. |
| keep_alive_button_text | string | 'Yes, Keep me signed in' | The text of the YES button to keep the session alive. |
| sign_out_button_text | string | 'No, Sign me out' | The text of the NO button to kill the session. |
| keep_alive_url | string | /keep-alive | The url that will perform a GET request to keep the session alive. This GET expects a 'OK' plain HTTP response. |
| logout_url | string | null | The url that will perform a POST request to kill the session. If no logout_url is defined it will just redirect to the url defined in logout_redirect_url. |
| logout_redirect_url | string | / | The redirect url after the logout happens, usually back to the login url. It will also contain a next query param with the url that they were when timedout and a timeout=t query param indicating if it was from a timeout, this value will not be set if the user clicked the 'No, Sign me out' button. |
| restart_on_yes | boolean | true | A boolean value that indicates if the countdown will restart when the user clicks the 'keep session alive' button. |
| dialog_width | number | 350 | The width of the dialog box. |
Written by @rigoneri


Contenta CMS
Decoupled Drupal Starter Kit
Stephan @
Ramsalt.com
What is Decoupled Drupal?
Drupal used as a content hub / backend
Can be
consumed
and
manipulated
by other applications
What is Decoupled Drupal?
Data will be exposed via…
Reservoir vs. Contenta CMS
Oh no! Can't we just work together?
Puh… indeed they are.
Both distributions are utilizing the same contrib modules!
Contenta CMS
The community-driven decoupled distribution
Decoupled challenges
And how Contenta CMS solves them…
How to provide data?
JSON API
Can i get rid off Drupalism's?
JSON API Extras
Where is my API documentation?
OpenAPI
Can I restrict access to my API?
Simple oAuth
Consumers
Original images are huge! Can I get image styles?
Consumer Image Styles
The client wants to define the frontend routes
Decoupled Router
Demo time…
Should I use Decoupled Drupal?
Well, it depends…
Should I use Decoupled Drupal?
Source:
https://dri.es/how-to-decouple-drupal-in-2018
Questions?


View, Modify, Update, Delete in Database and Server.... Anytime... Anywhere...
Features
- Upload Files to Server
- Edit and Modify Data in Database
Features
- Upload Files to Server
- Edit and Modify Data in Database
Features
- Upload Files to Server
- Edit and Modify Data in Database
Upload and Modify contents under a specific date with new file, data etc..
New Features
- Create New Names
- Edit and Delete Existing Names
Features
- Create New Names
- Edit and Delete Existing Names


↑
Home
Moss examples
Table of contents
Functional programming
Data structures
Sorting
Numerical analysis
Linear algebra
Differential geometry
Statistics
Combinatorics
Integer sequences
Number theory
Syntactic analysis
One-liners
Project Euler
Sudoku
Cellular automata
Turmites
Fractals
Shell scripting
Grep
A lisp interpreter


A little about myself...
My IT journey began when I was a student at Swiss Cottage Secondary School. I was first introduced to programming by a friend when I was in Secondary one that had beginner classes in his school for C++. Thinking it was pretty cool, I then began to teach myself how to code using online learning resources such as codecademy. Then when I was in Secondary 3, I began to work on some more practical programs, to help me in my school work, especially for maths. Then when it came to my O levels in Sec 4, after I got back my results, I realised I qualified for the Common IT course in Singapore Polytechnic and thus I decided that I wanted to pursue my passion in It and applied for the course and managed to get in.
What I'm doing right now...
Currently, I'm a student enrolled in Singapore's Polytechnic Common Infocomm course. I'm still trying to experience as much of the field as I can before I decide to specialise in a certain field. Some fields that I have yet to try include game development, cybersecurity and full-stack web development just to name a few.
For fun, I..
To relax, I usually like to play some games with my friends. To this end, I have set up my own discord server where I usually invite my friends over to chill and hang out. Occasionally, when we have enough people, we would host party games on discord and generally have a fun time.


Before Change
if parent_job_ids is None:
parent_job_ids = []
full_command = ["run_rv", branch_name]
full_command.extend(command.split())
client = boto3.client("batch")
job_name = "{}_{}".format(command_type, uuid.uuid4())
depends_on = [{"jobId": job_id} for job_id in parent_job_ids]
kwargs = {
"jobName": job_name,
"jobQueue": job_queue,
"jobDefinition": job_definition,
"containerOverrides": {
"command": full_command
},
"retryStrategy": {
"attempts": attempts
},
"dependsOn": depends_on
}
if array_size is not None:
kwargs["arrayProperties"] = {"size": array_size}
job_id = client.submit_job(**kwargs)["jobId"]
click.echo("Submitted job with jobName={} and jobId={}".format(
job_name, job_id))
return job_id
After Change
if parent_job_ids is None:
parent_job_ids = []
full_command = command.split()
client = boto3.client("batch")
job_name = "{}_{}".format(command_type, uuid.uuid4())
depends_on = [{"jobId": job_id} for job_id in parent_job_ids]
kwargs = {
"jobName": job_name,
"jobQueue": job_queue,
"jobDefinition": job_definition,
"containerOverrides": {
"command": full_command
},
"retryStrategy": {
"attempts": attempts
},
"dependsOn": depends_on
}
if array_size is not None:
kwargs["arrayProperties"] = {"size": array_size}
job_id = client.submit_job(**kwargs)["jobId"]
msg = "{} command submitted job with jobName={} and jobId={}".format(
command_type, job_name, job_id)
click.echo(click.style(msg, fg="green"))
return job_id


Hello Codepen, click each link away then a new one will appear; magic style.
Links Header:
Test 1
Test 2
Test 3


|
Vienna Vulkan Engine
|
A VESubrender instance manages and draws its entities. More...
#include <VESubrender.h>
Public Types | |
| enum | veSubrenderClass { VE_SUBRENDERER_CLASS_BACKGROUND, VE_SUBRENDERER_CLASS_OBJECT, VE_SUBRENDERER_CLASS_SHADOW, VE_SUBRENDERER_CLASS_OVERLAY } |
| enums the subrenderers that are registered More... | |
| enum | veSubrenderType { VE_SUBRENDERER_TYPE_NONE, VE_SUBRENDERER_TYPE_COLOR1, VE_SUBRENDERER_TYPE_DIFFUSEMAP, VE_SUBRENDERER_TYPE_DIFFUSEMAP_NORMALMAP, VE_SUBRENDERER_TYPE_CUBEMAP, VE_SUBRENDERER_TYPE_CUBEMAP2, VE_SUBRENDERER_TYPE_SKYPLANE, VE_SUBRENDERER_TYPE_TERRAIN_WITH_HEIGHTMAP, VE_SUBRENDERER_TYPE_NUKLEAR, VE_SUBRENDERER_TYPE_SHADOW } |
| enums the subrenderers that are registered More... | |
Public Member Functions | |
| VESubrender () | |
| Constructor of subrender class. | |
| virtual | ~VESubrender () |
| Destructor of subrender class. | |
| virtual veSubrenderClass | getClass ()=0 |
| virtual veSubrenderType | getType ()=0 |
| virtual void | initSubrenderer () |
| Initialize the subrenderer. | |
| virtual void | closeSubrenderer () |
| close the subrenderer - empty base class function | |
| virtual void | recreateResources () |
| recreate subrenderer resources - empty base class function | |
| virtual void | addEntity (VEEntity *pEntity) |
| Add an entity to the list of associated entities. More... | |
| virtual void | removeEntity (VEEntity *pEntity) |
| remove an entity from the subrenderer - empty base class function | |
| std::vector< VEEntity * > & | getEntities () |
| virtual void | prepareDraw () |
| Prepare to perform draw operation, e.g. for an overlay. | |
| virtual void | afterDrawFinished () |
| Called after all draw calls have been recorded. Used for incremental recording. | |
| virtual void | draw (VkCommandBuffer commandBuffer, uint32_t imageIndex, uint32_t numPass, VECamera *pCamera, VELight *pLight, std::vector< VkDescriptorSet > descriptorSetsShadow) |
| Draw all entities that are managed by this subrenderer. | |
| virtual VkSemaphore | draw (uint32_t imageIndex, VkSemaphore wait_semaphore) |
| virtual void | drawEntity (VkCommandBuffer commandBuffer, uint32_t imageIndex, VEEntity *entity) |
| draw a specific entity | |
Protected Member Functions | |
| std::vector< VESubrender * > & | getSubrenderers () |
| return a list with the current subrenderers, used for shadows More... | |
Protected Attributes | |
| std::vector< VEEntity * > | m_entities |
| List of associated entities. | |
A VESubrender instance manages and draws its entities.
Subrenderers understand the data that is attached to entities and create and manage the according Vulkan resources. The also create PSOs and use them to draw entities. Subrenderers maintain a list of entities associated with them.
enums the subrenderers that are registered
|
virtual |
Add an entity to the list of associated entities.
| [in] | pEntity | Pointer to the entity to include into the list. |
Reimplemented in ve::VESubrenderFW, ve::VESubrenderFW_D, ve::VESubrenderFW_Shadow, ve::VESubrenderFW_Skyplane, and ve::VESubrenderFW_DN.
|
inlinevirtual |
Perform an arbitrary draw operation
Reimplemented in ve::VESubrenderFW, and ve::VESubrenderFW_Nuklear.
|
pure virtual |
Implemented in ve::VESubrenderFW, ve::VESubrenderFW_Nuklear, ve::VESubrenderFW_C1, ve::VESubrenderFW_Shadow, ve::VESubrenderFW_Skyplane, ve::VESubrenderFW_D, and ve::VESubrenderFW_DN.
|
inline |
|
protected |
return a list with the current subrenderers, used for shadows
|
pure virtual |
Implemented in ve::VESubrenderFW, ve::VESubrenderFW_Nuklear, ve::VESubrenderFW_C1, ve::VESubrenderFW_Shadow, ve::VESubrenderFW_Skyplane, ve::VESubrenderFW_D, and ve::VESubrenderFW_DN.


{% extends "base.html" %} {% block content %}
Planing Trip To Anywhere !
Make a Plan
The traveler sees what he sees, the tourist sees what he has come to see.
Be the first to know about the new templates.


Malware-Classificaion-using-Deep-Learning-and-Maihine-Learning-approaih.
Malware Classificaion using Deep Learning and Machine Learning approah.


Mrs. Meyer has coached VEX for 5 years and has watched our teams go to worlds 3 times. She provides us with all the materials we need to build our robots. She is a great support to all ACPO members.
Krish started teaching VEX this year. He is in high school and has been a part of the ACPO VEX team when he was younger. He knows a lot about VEX and has gone to worlds several times. He helps provide a great insight about VEX and how to do certain difficult tasks. Both of our instructors have helped us out a lot and we hope that they continue to coach teams in the future.
Mrs. Moss and Mrs.Meyer
With the team
At the Booth
Over the years, ACPO has won many awards from various competitions. Here is a list of the awards we have won (They are sorted by game).


An introduction to curl using GitHub’s API.
An introduction to curl using GitHub’s API.
An introduction to
curl
using
GitHub's API.
CURL GIT REPO
The Basics
Makes a basic GET request to the specifed URI
curl https://api.github.com/users/bgoonz
Includes HTTP-Header information in the output
curl --include https://api.github.com/users/bgoonz
Pass user credential to basic auth to access protected resources like a users starred gists, or private info associated with their profile
curl --user "bgoonz:PASSWD" https://api.github.com/gists/starred
curl --user "bgoonz:PASSWD" https://api.github.com/users/bgoonz
Passing just the username without the colon (:
) will cause you to be prompted for your account password. This
avoids having your password in your command line history
curl --user "bgoonz" https://api.github.com/users/bgoonz
POST
Use the
--request
(-X
) flag along
with
--data
(-d
) to POST data
curl --user "bgoonz" --request POST --data '{"description":"Created via API","public":"true","files":{"file1.txt":{"content":"Demo"}}' https://api.github.com/gists
curl --user "bgoonz" -X POST --data '{"description":"Created via API","public":"true","files":{"file1.txt":{"content":"Demo"}}' https://api.github.com/gists
Of course
--data
implies
POST so you don't have to also specify the
--request
flag
curl --user "bgoonz" --data '{"description":"Created via API","public":"true","files":{"file1.txt":{"content":"Demo"}}' https://api.github.com/gists
Here is an example that uses the old GitHub API (v2). You can
use multiple
--data
flags
curl --data "login=bgoonz" --data "token=TOKEN" https://github.com/api/v2/json/user/show/bgoonz
The post data gets combined into one so you can also just
combine them yourself into a single
--data
flag
curl --data "login=bgoonz&token=TOKEN" https://github.com/api/v2/json/user/show/bgoonz
You can tell curl to read from a file (@
) to POST data
curl --user "bgoonz" --data @data.txt https://api.github.com/gists
Or it can read from STDIN (@-
)
curl --user "bgoonz" --data @- https://api.github.com/gists
{
"description":"Test",
"public":false,
"files": {
"file1.txt": {
"content":"Demo"
}
}
}
end with ctrl+d
Headers
Often when POSTing data you’ll need to add headers for things
like auth tokens or setting the content type. You can set a
header using
-H
.
curl -H "Content-Type: application/json" -H "authToken: 349ab29a-xtab-423b-a5hc-5623bc39b8c8" --data '{}' https://api.example.com/endpoint
Dealing with HTTPS
If an API doens’t have an SSL cert but is using HTTPS you can
tell curl to ignore the security by using
--insecure
. Be
warned this is a very "insecure" thing to do and is
only listed here for "educational purposes".
curl --insecure https://api.example.com/endpoint
For my own reference mostly, here is where I first learned about
using
--insecure
https://github.com/wayneeseguin/rvm/issues/1684
OAuth
The first thing to know is that your API Token (found in https://github.com/settings/admin) is not the same token used by OAuth. They are different tokens and you will need to generate an OAuth token to be authorized.
Follow the API’s instructions at http://developer.github.com/v3/oauth/ under the sections “Non-Web Application Flow” and “Create a new authorization” to become authorized.
Note: Use Basic Auth once to create an OAuth2 token http://developer.github.com/v3/oauth/#oauth-authorizations-api
curl https://api.github.com/authorizations \
--user "bgoonz" \
--data '{"scopes":["gist"],"note":"Demo"}'
This will prompt you for your GitHub password and return your OAuth token in the response. It will also create a new Authorized application in your account settings https://github.com/settings/applications
Now that you have the OAuth token there are two ways to use the token to make requests that require authentication (replace “OAUTH-TOKEN” with your actual token)
curl https://api.github.com/gists/starred?access_token=OAUTH-TOKEN
curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com/gists/starred
List the authorizations you already have
curl --user "bgoonz" https://api.github.com/authorizations
Resources
- HTTParty — Ruby library that makes it easy to create HTTP requests https://github.com/jnunemaker/httparty
- Hurl IT — An open source web application to play with curl options http://hurl.it


SanDisk Extreme 512GB MicroSD Card On Sale for 45% Off [Deal]
by iClarifiedThe SanDisk Extreme 512GB MicroSDXC UHS-I Memory Card is on sale for 45% off today. That drops its price down from $199 to just $109.99, a record low.
The super-fast SanDisk Extreme microSDXC memory card reads up to 160MB/s and writes up to 90MB/s. Plus, it’s A2-rated, so you can get fast application performance for an exceptional smartphone experience.
Features:
● Up to 160MB/s read speeds to save time transferring high res images and 4K UHD videos; Requires compatible devices capable of reaching such speeds
● Up to 90MB/s write speeds for fast shooting; Requires compatible devices capable of reaching such speeds
● 4K UHD and Full HD ready with UHS Speed Class 3 (U3) and Video Speed Class 30 (V30)
Rated A2 for faster loading and in app performance
● Built for and tested in harsh conditions: temperature proof, water proof, shock proof and x ray proof
● Get the SanDisk Memory Zone app for easy file management (available on Google Play)
● Manufacturer lifetime warranty (30 year warranty in Germany and regions not recognizing lifetime; See official SanDisk website for more details regarding warranty in your region)
Grab the deal while you can at the link below!
Get Deal


While empty catch block statements do not violate the language, they do not provide meaningful feedback and can make it harder to debug issues.
try{ throwableCall(); }catch(Exception ex){ //I am not doing anything here }
try{ throwableCall(); }catch(Exception ex){ System.debug('I am handling this'); }


Application to manage IOU's. Use them to incentivise oneself, give up or start something, or just plain bribery to get the kids to do what you want... test page
Can set the following types


Carolina Quiel
Menu
About
Portfolio
Contact
Contact Me
Name
Email Address
Message
Submit
Connect with Me


Vim documentation: os_390
main help file*os_390.txt* For Vim version 7.2. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Ralf Schandl *zOS* *z/OS* *OS390* *os390* *MVS* This file contains the particulars for the z/OS UNIX version of Vim. 1. Open source on z/OS UNIX |zOS-open-source| 2. Your feedback is needed |zOS-feedback| 3. Building VIM for z/OS UNIX |zOS-building| 4. ASCII/EBCDIC dependent scripts |zOS-has-ebcdic| 5. XTerm Problems |zOS-xterm| 6. Motif Problems |zOS-Motif| 7. Bugs |zOS-Bugs| 8. Known weaknesses |zOS-weaknesses| 9. Changes |zOS-changes| DISCLAIMER: We are IBM employees, but IBM is not responsible for this port. This is our private fun, and is provided in the hopes that it may be useful to others. Please note that this software has NOT been submitted to any formal IBM testing and is published AS IS. Please do not contact IBM for support for this software, as it is not an official component of any IBM product. IT IS NOT SUPPORTED, GUARANTEED, OR RELATED WHATSOEVER TO IBM. Contributors: The port to z/OS UNIX was done by Ralf Schandl for the Redbook mentioned below. Changes, bug-reports, or both by: David Moore Anthony Giorgio<EMAIL_ADDRESS>and others This document was written by Ralf Schandl and revised by Anthony Giorgio.
1. Open source on z/OS UNIX *OS390-open-source* *zOS-open-source* If you are interested in other Open Source Software on z/OS UNIX, have a look at the following Redbook: Mike MacIsaac et al "Open Source Software for z/OS and OS/390 UNIX" IBM Form Number: SG24-5944-01 ISBN:<PHONE_NUMBER> You can find out more information, order a hard copy, or download a PDF version of these Redbooks at: http://www.redbooks.ibm.com
2. Your feedback is needed *OS390-feedback* *zOS-feedback* Vim should compile, link, and run right out of the box on a standard IBM z/OS UNIX mainframe. I've personally run it on z/OS V1R2 and V1R3 machines without problems. Many changes had to be done to the code to port Vim to z/OS UNIX. As like most UNIX programs, Vim contained heavy ASCII dependencies. I might have missed an ASCII dependency, or it is possible that a new one has been added with a feature or bug fix. Most programmers are simply not aware of possible ASCII/EBCDIC conversion issues. If you hit a problem that seems related to this, feel free to contact us at the email addresses above. One indication of ASCII/EBCDIC conversion problems is screen corruption with "unprintable" characters. For example, at one point the errorbell was broken in Vim. Any time Vim tried to ring the terminal bell an ASCII character 0x07 would be printed. This works fine on most terminals, but is broken on an EBCDIC one. The correct solution was to define a different value for the bell character on EBCDIC systems. Remember, it's only possible to fix a bug if the community knows about it. Don't rely on someone else to report it! See the section |bug-reports|.
3. Building VIM for z/OS UNIX *OS390-building* *zOS-building* A word on debugging code first: The normal run of configure adds the flag '-g' to the compiler options, to include debugging information into the executable. This information are normally removed from the executable with the strip command during installation. On z/OS UNIX, it is not possible to remove this from the executable. The strip command exists on z/OS UNIX and is called during the installation, but it does nothing. It is equivalent to the 'touch' command. This is due to the way debug symbols are stored in the objects generated by the compiler. If you want to build Vim without debugging code, export the environment variable CFLAGS set to an empty string before you call the configure script. export CFLAGS="" Building without X11: Note: Use cc to build Vim. The c89 compiler has stricter syntax checking and will not compile Vim cleanly. If you build VIM without X11 support, compiling and building is straightforward. Don't forget to export _CC_CCMODE=1 before calling configure and make. $ export _CC_CCMODE=1 $./configure --with-features=big --without-x --enable-gui=no $ make $ make test Test notes: Test 11 will fail if you do not have gzip installed. Test 42 will fail, as VIM on z/OS UNIX doesn't support the multibyte feature. (David Moore: "Doesn't work _yet_! :-) I'll see what I can do.") $ make install Building with X11: There are two ways for building Vim with X11 support. You can link it statically with the X11 libraries or can bind it with the X11 DLLs. The statically linked version results in a huge executable (~13MB), while the dynamically linked executable is much smaller (~4.5MB). Here is what you do, if you want Motif: a) Static link $ configure --with-features=big --enable-gui=motif $ make VIM is now linked statically with the X11 libraries. b) Dynamic link: Make VIM as described for the static link. Then change the contents of the 'auto/link.sed' file by appending: s%-lXm *%/usr/lib/Xm.x %g s%-lX11 *%/usr/lib/X11.x %g s%-lSM *%/usr/lib/SM.x %g s%-lICE *%/usr/lib/ICE.x %g Then do: $ rm vim $ make Now Vim is linked with the X11-DLLs. See the Makefile and the file link.sh on how link.sed is used.
4. ASCII/EBCDIC dependent scripts *OS390-has-ebcdic* *zOS-has-ebcdic* For the internal script language the feature "ebcdic" was added. With this you can fix ASCII dependent scripts like this: if has("ebcdic") let space = 64 else let space = 32 endif
5. XTerm problems *OS390-xterm* *zOS-xterm* Note: This problem was resolved in version 6.1b. I saw one problem with XTerm on z/OS UNIX. The terminal code for moving the cursor to the left is wrong in the termlib database. Perhaps not wrong, but it didn't work with VIM syntax highlighting and command line cursor movement. If the highlighting is messed up while you type, but is okay after you refreshed the screen with <C-L> or if you can't move to the left with the cursor key on the command line, try adding :set t_le=^H to your .vimrc. Note: '^H' is one character, hit <C-V><C-H> to get it.
6. Motif Problems *OS390-Motif* *zOS-Motif* It seems that in porting the Motif library to z/OS, a translation from EBCDIC to ASCII for the accelerator characters of the pull-down menus was forgotten. Even after I tried to hand convert the menus, the accelerator keys continued to only work for the opening of menus (like <Alt-F> to open the file menu). They still do not work for the menu items themselves (like <Alt-F>O to open the file browser). There is no solution for this as of yet.
7. Bugs *OS390-bugs* *zOS-Bugs* - Vim will consistently hang when a large amount of text is selected in visual block mode. This may be due to a memory corruption issue. Note that this occurs in both the terminal and gui versions.
8. Known weaknesses *OS390-weaknesses* *zOS-weaknesses* - No binary search in tag files. The program /bin/sort sorts by ASCII value by default. This program is normally used by ctags to sort the tags. There might be a version of ctags out there, that does it right, but we can't be sure. So this seems to be a permanent restriction. - Multibyte support (utf-8) doesn't work, it's disabled at compile time. (|multibyte|) - The cscope interface (|cscope|) doesn't work for the version of cscope that we use on our mainframe. We have a copy of version 15.0b12, and it causes Vim to hang when using the "cscope add" command. I'm guessing that the binary format of the cscope database isn't quite what Vim is expecting. I've tried to port the current version of cscope (15.3) to z/OS, without much success. If anyone is interested in trying, drop me a line if you make any progress. - No glib/gtk support. I have not been able to successfully compile glib on z/OS UNIX. This means you'll have to live without the pretty gtk toolbar. Never tested: - Perl interface (|perl|) - Hangul input (|hangul|) - Encryption support (|encryption|) - Langmap (|'langmap'|) - Python support (|Python|) - Right-to-left mode (|'rightleft'|) - SNiFF+ interface (|sniff|) - TCL interface (|tcl|) ... If you try any of these features and they work, drop us a note!
9. Changes *OS390-changes* *zOS-changes* This is a small reference of the changes made to the z/OS port of Vim. It is not an exhaustive summary of all the modifications made to the code base. 6.1b (beta): Changed KS_LE in term.c to be "\b" instead of "\010" This fixed the screen corruption problems in gVim reported by Anthony Giorgio. Anthony Giorgio updated this document: - Changed OS/390 to z/OS where appropriate. IBM decided to rename all of its servers and operating systems. z/OS and OS/390 are the same product, but the version numbering system was reset for the name change (e.g. OS/390 V2R11 == z/OS V1R1). - Added information about second edition of the Open Source Redbook. - Moved Redbook information to a separate section. - Various tweaks and changes. - Updated testing section. 6.0au: Changed configure.in Changed documentation. Anthony Giorgio fixed the errorbell. David Moore found some problems, which were fixed by Bram and/or David for 6.0au. 6.0q (alpha): Minor changes for nrformats=alpha (see |'nrformats'|). Problem with hard-coded keycode for the English pound sign. Added a define in ascii.h Disabled multibyte for EBCDIC in feature.h 6.0f (alpha): First compile of Vim 6 on z/OS UNIX. Some minor changes were needed. Finally found the reason why make from the top level didn't work (I must have been blind before!). The Makefile contained a list of targets in one target line. On all other UNIX's the macro $@ evaluates to the first target in this list, only on z/OS UNIX it evaluates to the last one :-(. 5.6-390d: Cleaned up some hacks. 5.6-390c: I grepped through the source and examined every spot with a character involved in a operation (+-). I hope I now found all EBCDIC/ASCII stuff, but .... Fixed: - fixed warning message in do_fixdel() - fixed translation from Ctrl-Char to symbolic name (like ^h to CTRL-H) for :help - fixed yank/delete/... into register - fixed :register command - fixed viminfo register storing - fixed quick-access table in findoptions() - fixed 'g^H' select mode - fixed tgetstr() 'get terminal capability string', ESC and Ctrl chars where wrong. (Not used on OS/390 UNIX) ctags: - added trigraphs support (used in prolog of system header files) (get.c) - fixed sorting order with LC_COLLATE=S390 to force EBCDIC sorting. (sort.c) 5.6-390b: Changed: - configure.in: - added test for OS/390 UNIX - added special compiler and linker options if building with X11 - configure: - after created via autoconf hand-edited it to make the test for ICEConnectionNumber work. This is a autoconf problem. OS/390 UNIX needs -lX11 for this. - Makefile - Don't include the lib directories ('-L...') into the variable ALL_LIBS. Use own variable ALL_LIB_DIRS instead. A fully POSIX compliant compiler must not accept objects/libraries and options mixed. Now we can call the linker like this: $(CC) $(LDFLAGS) $(ALL_LIB_DIRS) $(OBJ) $(ALL_LIBS) Fixed: - Double quote couldn't be entered Missed ASCII dependencies while setting up terminal In ASCII 127 is the delete char, in EBCDIC codepage 1047 the value 127 is the double quote. - fixed ':fixdel' 5.6-390a: first alpha release for OS/390 UNIX. Addition: - For the internal script language I added the feature "ebcdic". This can be queried with the has()-function of the internal script language. ------------------------------------------------------------------------------ top - main help file


If you want to find a high quality constructor for your project, get a free quote from our expert team
Services
Gib Stopping/Coving
Give a smooth touch when renovating, refurbishing or redecorating your home, our professional team will make sure that your surface are expertly plastered.
Tiling
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum rideta zanox satirente madera
Supply & Fix
Get expert on site inspection from our team for GIb Board to internal wall framing, to determine the correct amount of Gib needed to reduce waste of the your project
Painting
We offer high-quality painting services to residential and commercial customers. Expect the job to be done on time by our team of friendly contractors. We have a fine level of service and at times we are stretched to be available at a specific time.
Our Portfolio
Contact Us
If you would like to know more about our services, please do not hesitate to contact one of our friendly customer service representatives.


DEPTH OF REVENGE
Richard Golden
Fast-Paced and Realistic
"The novel was hard to put down. The fast pace helped me to stay focused on the plot, where other books of this genre can side track the reader with subplots and too much minute detail" Read full review...
Armageddon has been thrust upon the Holy Land
"Golden delivers an extremely thorough accounting of the weapons and submarine systems, lacking nothing in clarity and detail. Techno-nerds will revel the in the deployment of scutter torpedo decoys, submarine operating procedures, and the way Golden weaves the hardware into the action without bogging down the storyline. Depth of Revenge is very much a submarine story, with all the tensions and tactics that are attendant with submarine battles, set against a backdrop so realistic, one might wonder if Golden has a visit from Homeland Security in his future."


This contains the timestamp and metadata from a {_program}. It also includes five {_parameter parameters} that describe the relationships among programs. It begins with 15 bytes:
This may be followed by one or more lines of text, using only ASCII blanks and printables, and each line must end with a newline (ASCII 10). Any violation of this renders the sysex invalid.
Typically, the text metadata contains lines in the form name=value. The Toolkit uses the following three:
| name | The name of the program. This is the only metadata the Digital Chroma understands; it displays the name briefly when the program is selected. | |
| descr | The description of the program. There can be more than one of these, to represent a multi-line description. | |
| gangs | An 8-digit hex number using lower-case letters (00000000 to ffffffff), where each set bit indicates that the corresponding A/B pair of parameter {_cluster clusters} is ganged. The lsb refers to Glide, and the msb refers to Pan. |
Other tools could add other text metadata; the Digital Chroma and the Toolkit both preserve metadata they don't understand.


| Metric | Tag | Overall | Per Function |
|---|---|---|---|
| Lines of Code | LOC | 23 | ****** |
| McCabe's Cyclomatic Number | MVG | 4 | ****** |
| Lines of Comment | COM | 4 | ******** |
| LOC/COM | L_C | 5.750 | |
| MVG/COM | M_C | ------ | |
| Weighted Methods per Class ( weighting = unity ) | WMC1 | 6 | |
| Weighted Methods per Class ( weighting = visible ) | WMCv | 0 | |
| Depth of Inheritance Tree | DIT | 0 | |
| Number of Children | NOC | 0 | |
| Coupling between objects | CBO | 4 | |
| Information Flow measure ( inclusive ) | IF4 | 9 | ******** |
| Information Flow measure ( visible ) | IF4v | 9 | ******** |
| Information Flow measure ( concrete ) | IF4c | 0 | ******** |
| Description | LOC | MVG | COM | L_C | M_C |
|---|---|---|---|---|---|
| No module extents have been identified for this module | |||||
| Function prototype | LOC | MVG | COM | L_C | M_C |
|---|---|---|---|---|---|
| IBinder( ) definition ./binder/Binder.cpp:31 | 4 | 0 | 1 | ------ | ------ |
| checkSubclass( const void * ) definition ./binder/Binder.cpp:57 | 4 | 1 | 1 | ------ | ------ |
| localBinder( ) definition ./binder/Binder.cpp:47 | 4 | 1 | 0 | ------ | ------ |
| queryLocalInterface( const String16 & ) definition ./binder/Binder.cpp:42 | 4 | 1 | 2 | ------ | ------ |
| remoteBinder( ) definition ./binder/Binder.cpp:52 | 4 | 1 | 0 | ------ | ------ |
| ~IBinder( ) definition ./binder/Binder.cpp:36 | 3 | 0 | 0 | ------ | ------ |
| Clients | Suppliers |
|---|---|
|
IPCThreadState [V] pass by reference ./binder/IPCThreadState.cpp:641 Parcel [V] pass by reference ./binder/Parcel.cpp:510 ProcessState [V] pass by reference ./binder/ProcessState.cpp:266 |
String16 [V] pass by reference ./binder/Binder.cpp:42 |


Open Angel Arena 4.0.0 Update
General Changes
New Map
Attack and spell projectiles are now disjointed when duel starts.
This doesn't affect undisjointable projectiles like Alchemist's Unstable Concoction, Witch Doctor's Paralyzing Cask, Oracle's Fortune's End, Lich Chain Frost etc.
Item Changes
Armlet of Mordiggian:
Bonus HP regen increased from 4/6/9/12/16 to 4/8/12/16/20.
Unholy Strength: Strength bonus increased from 25/45/65/90/120 to 25/55/85/110/140.
Unholy Strength: Health drain per second increased from 54/63/90/135/180 to 54/100/140/175/200.
Guardian Greaves:
Heal increased from 250 to 275.
Greater Guardian Greaves heal is unchanged: 300/475/750/1100.
Mekansm:
Level 1 Heal increased from 250 to 275.
Phase Boots:
Movement speed bonus for ranged heroes reduced from 16% to 13%.
Greater Phase Boots movement speed bonus for ranged heroes is unchanged: 22%/25%/28%/31%.
Ring of Aquila:
Bonus damage reduced from 10 to 7.
Sonic:
New Item
Requires:
Drums of Endurance Level 2 (3115)
Upgrade Core 2 (3500)
Recipe (3500)
Total: 6615 (10115 with a core)
Has 3 levels.
Provides:
+32/48/64 Strength
+30/45/60 Intelligence
+15/30/40 Agility
+3/4.5/6.25 Mana Regen
Active:
Transformation: Flight. When toggled on, Sonic gives it's user 30/60/90 bonus movement speed and flying movement. But decreases status resistance by 10/15/20%.
Cooldown: 8 seconds.
Spirit Vessel:
Level 1 Soul Release: Health regen bonus reduced from 35 to 30.
Movement speed bonus reduced from 30 to 20.
Stout Shield:
Damage block for melee heroes increased from 18 to 20.
Hero Changes
Bloodseeker:
Bloodrage max hp as heal reduced from 19/21/23/25/35/70% to 16/19/22/25/35/70%.
Crystal Maiden:
Crystal Nova mana cost increased from 130/140/150/160/200/240 to 130/145/160/175/200/240.
Dark Willow:
Cursed Crown cast point increased from 0.1 to 0.2
Io:
Spirits cooldown from 20/18/16/14/14/14 to 26/22/18/14/14/14 seconds.
Silencer:
Arcane Curse mana cost increased from 75/95/115/135/235/335 to 105/115/125/135/235/335.
Spectre:
Spectral Dagger buff linger duration reduced from 2 to 1 second.
Dispersion max reflection radius reduced from 1000 to 700.
Desolate single hero range check increased from 325 to 375.
Tiny:
Tree Grab mana cost increased from 20/30/40/50/110/170 to 50/50/50/50/110/170.
Avalanche cooldown increased from 20/19/18/17/17/17 to 23/21/19/17/17/17 seconds.
Ursa:
Overpower mana cost increased from 45/55/65/75/125/170 to 75/75/75/75/125/170.
Vengeful Spirit:
Wave of Terror cooldown rescaled from 10 to 16/14/12/10/9.5/9 seconds.
Weaver:
The Swarm mana cost increased from 70/80/90/100/150/200 to 110/110/110/110/150/200.
Wraith King:
Wraithfire Blast cooldown increased from 11/10/9/8/7.8/7.5 to 14/12/10/8/7.8/7.5 seconds.
Return to Home Page


Page Transitions with CSS3
Home
Portfolio
About Me
Contact
Home
Some content
Portfolio
Some content
About
Some content
Contact
Some content


Question1
Given an input of
const arr = [1, 2, 4,591, 392, 391, 2, 5, 10,
2, 1, 1, 1, 20, 20];
Make a function that organize this into
individual array that is ordered answer
answer arrayFromAbove should return
[[1, 1, 1],[2, 2, 2],4, 5, 10,[20, 20], 391, 392, 591];
Question1 Bonus
Make the above function that it organizes
strings differently from numbers.
[1, "2", "3", 2]
should return
[[1, 2], ["2", "3"]]


LVDISPLAY
Section: Maintenance Commands (8)Updated: LVM TOOLS 2.02.95(2)-RHEL6 (2012-10-16)
Index Return to Main Contents
NAME
lvdisplay - display attributes of a logical volumeSYNOPSIS
lvdisplay [-a|--all] [-c|--colon] [-d|--debug] [-h|-?|--help] [--ignorelockingfailure] [--maps] [--nosuffix] [-P|--partial] [--units hHbBsSkKmMgGtTpPeE] [-v|--verbose] [--version] [LogicalVolumePath [LogicalVolumePath...]]
lvdisplay --columns | -C
[--aligned]
[-a|--all]
[-d|--debug] [-h|-?|--help]
[--ignorelockingfailure]
[--noheadings]
[--nosuffix]
[-o|--options [+]Field[,Field]]
[-O|--sort [+|-]Key1[,[+|-]Key2[,...]]]
[-P|--partial]
[--segments]
[--separator Separator]
[--unbuffered]
[--units hHbBsSkKmMgGtTpPeE]
[-v|--verbose]
[--version] [LogicalVolumePath [LogicalVolumePath...]]
DESCRIPTION
lvdisplay allows you to see the attributes of a logical volume like size, read/write status, snapshot information etc. lvs (8) is an alternative that provides the same information in the style of ps (1). lvs is recommended over lvdisplay.OPTIONS
See lvm for common options and lvs for options given with --columns.- --all
- Include information in the output about internal Logical Volumes that are components of normally-accessible Logical Volumes, such as mirrors, but which are not independently accessible (e.g. not mountable). For example, after creating a mirror using 'lvcreate -m1 --mirrorlog disk', this option will reveal three internal Logical Volumes, with suffixes mimage_0, mimage_1, and mlog.
- -c, --colon
-
Generate colon separated output for easier parsing in scripts or programs.
N.B. lvs (8) provides considerably more control over the output.
The values are: * logical volume name * volume group name * logical volume access * logical volume status * internal logical volume number * open count of logical volume * logical volume size in sectors * current logical extents associated to logical volume * allocated logical extents of logical volume * allocation policy of logical volume * read ahead sectors of logical volume * major device number of logical volume * minor device number of logical volume
- -m, --maps
- Display the mapping of logical extents to physical volumes and physical extents. To map physical extents to logical extents use pvs--segments-o+lv_name,seg_start_pe,segtype.
- --columns | -C
- Display output in columns, the equivalent of lvs. Options listed are the same as options given in lvs (8).
Examples
"lvdisplay -v /dev/vg00/lvol2" shows attributes of that logical volume. If snapshot logical volumes have been created for this original logical volume, this command shows a list of all snapshot logical volumes and their status (active or inactive) as well."lvdisplay /dev/vg00/snapshot" shows the attributes of this snapshot logical volume and also which original logical volume it is associated with.
SEE ALSO
lvm(8), lvcreate(8), lvscan(8), pvs(8)
Index
This document was created by man2html, using the manual pages.
Time: 05:34:27 GMT, December 24, 2015


Pass Attractions
Home
(current)
Add customer
Passes
New Customer
My Passes
Vendor
Email address
Submit


(TODO: translate) Aggrégation autour des centres mobiles
Hierarchical Classification (dendogram)
Comparing those two methods
Density estimation
We now consider the problem of classifying the observation or the subjects into several groups, several classes. For instance, we have weighted and measured animals and we would like to know if there are several species: do the data form a single cluster or several?
This is called "unsuervised" learning, because we do not know the classes nor even their number. When we know the classes and try to find criteria to assign new observations to a class, we call that "supervised learning" -- it is a regression, with a qualitative variable to predict.
We choose k points, the "centers", and we cluster the data into k classes, assigning each point to its nearest center. We then replace the centers by the center of gravity of the points in their class. And we iterate.
This method has several problems: the result depends on the first centers chosen (we can start again with new centers and compare -- or even adapt the algorithm with genetic algorithms); it is not well-adapted to noisy data; we have to know the number of clusters; the algorithm implicitely assumes that the clusters have the same size (while one application of clustering is "outlier detection", with two classes: one, large, with most of the data, another, smaller, with the outliers); it assigns each point to a class, even if there is some ambiguity (we would like to know if the classification of a new point is ambiguous).
The k-means algorith is very similar.
Explain what the k-means algorithm is. "the nonhierarchical k means or iterative relocation algorithm. Each case is initially placed in one of k clusters, cases are then moved between clusters if it minimises the differences between cases within a cluster." x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2)) cl <- kmeans(x, 2, 20) plot(x, col = cl$cluster, pch=3, lwd=1) points(cl$centers, col = 1:2, pch = 7, lwd=3) segments( x[cl$cluster==1,][,1], x[cl$cluster==1,][,2], cl$centers[1,1], cl$centers[1,2]) segments( x[cl$cluster==2,][,1], x[cl$cluster==2,][,2], cl$centers[2,1], cl$centers[2,2], col=2)
Let us try this with my pupils' marks (I spent one year as a high school teacher -- a dreadful experience, that I would not advise to anyone).
# This is not what we want... load(file="data_notes.Rda") # reads in the "notes" matrix, defined # in a preceding chapter. cl <- kmeans(notes, 6, 20) plot(notes, col = cl$cluster, pch=3, lwd=3) points(cl$centers, col = 1:6, pch=7, lwd=3)
This is not what we want: we got the plot in the first two coordinates of the data set instead of the first two coordinates of the Principal Component Analysis of the data set.
n <- 6 cl <- kmeans(notes, n, 20) p <- princomp(notes) u <- p$loadings x <- (t(u) %*% t(notes))[1:2,] x <- t(x) plot(x, col=cl$cluster, pch=3, lwd=3) c <- (t(u) %*% t(cl$center))[1:2,] c <- t(c) points(c, col = 1:n, pch=7, lwd=3) for (i in 1:n) { print(paste("Cluster", i)) for (j in (1:length(notes[,1]))[cl$cluster==i]) { print(paste("Point", j)) segments( x[j,1], x[j,2], c[i,1], c[i,2], col=i ) } } text( x[,1], x[,2], attr(x, "dimnames")[[1]] )
In fact, the "clusplot" already does this. We give it the result of one of the following functions, that are variants of the k-means algorithm.
pam partitionning around medoids (more robust) clara other partitionning, well-suited for large data sets (the idea is just to sample from the large data set) daisy dissimilarity matrix: qualitative or quantitative variables dist dissimilarity matrix: quantitative variables only fanny fuzzy clustering
TODO: explain (here or elsewhere, the assumed properties of the clusters for these different methods: same size or not, same shape (variance) or not, etc.)
Here are a few sample results.
library(cluster) clusplot( notes, pam(notes, 6)$clustering )
clusplot( notes, pam(notes, 2)$clustering )
clusplot( daisy(notes), pam(notes,2)$clustering, diss=T )
clusplot( daisy(notes), pam(notes,6)$clustering, diss=T )
clusplot(fanny(notes,2))
clusplot(fanny(notes,10))
We start with a cloud of n points and we put each point in a class of its own (so we have n classes, each containing a single point). Then, we look for the closest two classes (for a given distance, for instance the distance between their center of gravity -- but other distances will give other results, perhaps more appropriate for some data sets) and we join them into a new class. We now have n-1 classes, all but one containing a single element. Then we iterate. The result can be presented as a dendogram: the leaves are the initial 1-element classes and the various "cuts" (by a horizontal line in the following plot) of the dendogram are various clusterings of the data, into a decreasing number of classes.
data(USArrests) hc <- hclust(dist(USArrests), "ave") plot(hc)
plot(hc, hang = -1)
Here is the result with my pupils' marks: I try to plot the tree onto the first two components of the PCA.
plot(hclust(dist(notes)))
p <- princomp(notes) u <- p$loadings x <- (t(u) %*% t(notes))[1:2,] x <- t(x) plot(x, col="red") c <- hclust(dist(notes))$merge y <- NULL n <- NULL for (i in (1:(length(notes[,1])-1))) { print(paste("Step", i)) if( c[i,1]>0 ){ a <- y[ c[i,1], ] a.n <- n[ c[i,1] ] } else { a <- x[ -c[i,1], ] a.n <- 1 } if( c[i,2]>0 ){ b <- y[ c[i,2], ] b.n <- n[ c[i,2] ] } else { b <- x[ -c[i,2], ] b.n <- 1 } n <- append(n, a.n+b.n) m <- ( a.n * a + b.n * b )/( a.n + b.n ) y <- rbind(y, m) segments( m[1], m[2], a[1], a[2], col="red" ) segments( m[1], m[2], b[1], b[2], col="red" ) if( i> length(notes[,1])-1-6 ){ op=par(ps=30) text( m[1], m[2], paste(length(notes[,1])-i), col="red" ) par(op) } } text( x[,1], x[,2], attr(x, "dimnames")[[1]] )
Conclusion: either choose the representation as a tree (and forget about PCA, at least for a moment), or only plot the first two or three levels of the tree -- as we did above.
Also see the "mclust" package (Model-based clustering) that models the data as a mixture of gaussians (i.e., as a superposition of clusters).
library(help=mclust)
Hierarchical classification requires you to choose a notion of distance between points and a notion of distance between clusters.
There might be several reasonable choices of a distance between points: for instance, to perform a hierarchical analysis on protein sequences, we can, after aligning them, count the number of differences. We can also weight those differences: if the physico-chemical properties of the amino-acids are similar, the distance will be short, if they are very different, the distance will be higher. (For further analyses, we also have another notion of distance, only available after hierarchical classification: we can measure the distance on the dendogram.)
TODO: give an alignment example
TODO: other distance examples
Cosine distance: scalar product of two (unit) vectors, i.e., the correlation. It is a similarity measure. TODO: define "similarity measure". Count data: Chi2 : Chi2 of the test for equality. Phi2 : ??? This measure is equal to the chi-square measure normalized by the square root of the combined frequency. Binary (or qualitative) data: there are more than a dozen notions of distance or similarity. TODO: a reference. We already mentionned them when dealing with supervised classification, to assess the quality of the results: we were comparing the real classes and the predicted classes.
The notion of distance between clusters is slightly trickier. Here are a few examples of such a distance.
d(A,B) = Max { d(a,b) ; a \in A and b \in B } d(A,B) = Min { d(a,b) ; a \in A and b \in B } d(A,B) = d(center of gravity of A, center of gravity of B) (actually used?) d(A,B) = mean of the d(a,b) where a \in A and b \in B (UPGMA: Unweighted Pair-Groups Method Average)
TODO: plots illustrating those notions.
TODO: Ward's method
Ward's method Cluster membership is assessed by calculating the total sum of squared deviations from the mean of a cluster. The criterion for fusion is that it should produce the smallest possible increase in the error sum of squares.
Remark: the same data, with different algorithms and/or distances, can produce completely unrelated dendograms.
TODO Detecting outliers (they form one or several small clusters, isolated from the rest of the data) TODO Non-supervised learning, when you do not know the number of classes.
The k-means algorithm algorithm and its variants are very fast, well-suited to large data sets, but non-deterministic -- hierarchical clustering is just the opposite.
That is why we sometimes mix those two approaches (hybrid clustering): we start with the k-means algorithm to get a few tens or hundreds of classes; then hierarchical clustering on those classes (not on the initial data, too large) to find the number of classes; finally, we can refine, with the k-means algorithm on the newly obtained classes.
TODO Example: do this, following this example (from the manual)
## Do the same with centroid clustering and squared Euclidean distance, ## cut the tree into ten clusters and reconstruct the upper part of the ## tree from the cluster centers. hc <- hclust(dist(USArrests)^2, "cen") memb <- cutree(hc, k = 10) cent <- NULL for(k in 1:10){ cent <- rbind(cent, colMeans(USArrests[memb == k, , drop = FALSE])) } hc1 <- hclust(dist(cent)^2, method = "cen", members = table(memb)) opar <- par(mfrow = c(1, 2)) plot(hc, labels = FALSE, hang = -1, main = "Original Tree")
plot(hc1, labels = FALSE, hang = -1, main = "Re-start from 10 clusters")
The preceding methods assumed that the clusters were convex, or even spherical. But this is not always the case.
In the following example, we would like the computer to find two clusters...
n <- 1000 x <- runif(n,-1,1) y <- ifelse(runif(n)>.5,-.1,.1) + .02*rnorm(n) d <- data.frame(x=x, y=y) plot(d,type='p', xlim=c(-1,1), ylim=c(-1,1))
With k-means:
test.kmeans <- function (d, ...) { cl <- kmeans(d,2) plot(d, col=cl$cluster, main="kmeans", ...) points(cl$centers, col=1:2, pch=7, lwd=3) } test.kmeans(d, xlim=c(-1,1), ylim=c(-1,1))
With hierarchical clustering:
test.hclust <- function (d, ...) { hc <- hclust(dist(d)) remplir <- function (m, i, res=NULL) { if(i<0) { return( c(res, -i) ) } else { return( c(res, remplir(m, m[i,1], NULL), remplir(m, m[i,2], NULL) ) ) } } a <- remplir(hc$merge, hc$merge[n-1,1]) b <- remplir(hc$merge, hc$merge[n-1,2]) co <- rep(1,n) co[b] <- 2 plot(d, col=co, main="hclust", ...) } test.hclust(d, xlim=c(-1,1), ylim=c(-1,1))
We can also imagine other pathologies, with non-convex clusters.
get.sample <- function (n=1000, p=.7) { x1 <- rnorm(n) y1 <- rnorm(n) r2 <- 7+rnorm(n) t2 <- runif(n,0,2*pi) x2 <- r2*cos(t2) y2 <- r2*sin(t2) r <- runif(n)>p x <- ifelse(r,x1,x2) y <- ifelse(r,y1,y2) d <- data.frame(x=x, y=y) d } d <- get.sample() plot(d,type='p', xlim=c(-10,10), ylim=c(-10,10))
test.kmeans(d, xlim=c(-10,10), ylim=c(-10,10))
test.hclust(d, xlim=c(-10,10), ylim=c(-10,10))
y <- abs(y) d <- data.frame(x=x, y=y) plot(d,type='p', xlim=c(-10,10), ylim=c(0,10))
test.kmeans(d)
test.hclust(d)
You can try to add variables (this is the same idea that leads to polynomial regression -- or kernel methods).
d <- get.sample() x <- d$x; y <- d$y d <- data.frame(x=x, y=y, xx=x*x, yy=y*y, xy=x*y) test.kmeans(d)
test.hclust(d)
But it does not work, unless we add the "right" variables.
d <- data.frame(x=x, y=y, xx=x*x, yy=y*y, xy=x*y, xpy=x*x+y*y) test.kmeans(d)
test.hclust(d)
In that kind of situation, if there are only two dimensions, we can try to estimate the corresponding probability density and hope to see two peaks.
help.search("density") # Suggests: # KernSur(GenKern) Bivariate kernel density estimation # bkde2D(KernSmooth) Compute a 2D Binned Kernel Density Estimate # kde2d(MASS) Two-Dimensional Kernel Density Estimation # density(mclust) Kernel Density Estimation # sm.density(sm) Nonparametric density estimation in 1, 2 or 3 dimensions. library(KernSmooth) r <- bkde2D(d, bandwidth=c(.5,.5)) persp(r$fhat)
n <- length(r$x1) plot( matrix(r$x1, nr=n, nc=n, byrow=F), matrix(r$x2, nr=n, nc=n, byrow=T), col=r$fhat>.001 )
TODO: a similar plot with hexbin?
(We leave it as an exercise to the reader to finish this example, by telling the computer how to find the connected components of the preceding plot and how to use them for forecasting.)
You can use the same idea in a more algorithmitic way as follows: for each observation x, we count the number of observations at a distance at most 0.1 (you can change this value) from x; if there are more than 5 (you can change this value), we say that the observation x is dense, i.e., inside a cluster. We then define an equivalence relation between dense observations by saying that they are in the same cluster if their distance is under 0.1.
http://www.genopole-lille.fr/fr/formation/cib/doc/datamining/DM-Bio.pps (page 66)
You can implement this idea as follows.
density.classification.plot <- function (x,y,d.lim=.5,n.lim=5) { n <- length(x) # Distance computation a <- matrix(x, nr=n, nc=n, byrow=F) - matrix(x, nr=n, nc=n, byrow=T) b <- matrix(y, nr=n, nc=n, byrow=F) - matrix(y, nr=n, nc=n, byrow=T) a <- a*a + b*b # Which observations are dense (i.e., in a cluster)? b <- apply(a<d.lim, 1, sum)>=n.lim plot(x, y, col=b) points(x,y,pch='.') } density.classification.plot(d$x,d$y)
We then have to identify the various clusters.
# Beware: the following code is very recursive -- but, by default, # R limits the size of the function calls stack to 500 elements. # We first increment this value. options(expressions=10000) density.classification.plot <- function (x,y,d.lim=.5,n.lim=5) { n <- length(x) # Distance computations a <- matrix(x, nr=n, nc=n, byrow=F) - matrix(x, nr=n, nc=n, byrow=T) b <- matrix(y, nr=n, nc=n, byrow=F) - matrix(y, nr=n, nc=n, byrow=T) a <- a*a + b*b # Which observations are dense (in a cluster)? b <- apply(a<d.lim, 1, sum)>=n.lim # We sort the observations cl <- rep(0,n) m <- 1 numerote <- function (i,co,cl) { print(paste(co, i)) for (j in (1:n)[ a[i,]<d.lim & b & cl==0 ]) { #print(paste(" ",j)) cl[j] <- co try( cl <- numerote(j,co,cl) ) # Too recursive... } cl } for (i in 1:n) { if (b[i]) { # Are we in a cluster? # Cluster number if (cl[i] == 0) { co <- m cl[i] <- co m <- m+1 } else { co <- cl[i] } # We number the nearby points #print(co) cl <- numerote(i,co,cl) } } plot(x, y, col=cl) points(x,y,pch='.') } density.classification.plot(d$x,d$y)
Let us try again, in a more iterative way.
density.classification.plot <- function (x,y,d.lim=.5,n.lim=5, ...) { n <- length(x) # Distance computation a <- matrix(x, nr=n, nc=n, byrow=F) - matrix(x, nr=n, nc=n, byrow=T) b <- matrix(y, nr=n, nc=n, byrow=F) - matrix(y, nr=n, nc=n, byrow=T) a <- a*a + b*b # Which observations are dense (in a cluster)? b <- apply(a<d.lim, 1, sum)>=n.lim # We sort the observations cl <- rep(0,n) m <- 0 for (i in 1:n) { if (b[i]) { # Are we in a cluster? # Cluster number if (cl[i] == 0) { m <- m+1 co <- m cl[i] <- co print(paste("Processing cluster", co)) done <- F while (!done) { done <- T for (j in (1:n)[cl==co]) { l <- (1:n)[ a[j,]<d.lim & b & cl==0 ] if( length(l)>0 ) { done <- F for (k in l) { cl[k] <- co #print(k) } } } } } else { # Already processed cluster: pass } } } plot(x, y, col=cl, ...) points(x,y,pch='.') } density.classification.plot(d$x,d$y)
Let us play with the parameters.
op <- par(mfrow=c(3,3)) for (d.lim in c(.2,1,2)) { for (n.lim in c(3,5,10)) { density.classification.plot(d$x,d$y,d.lim,n.lim, main=paste("d.lim = ",d.lim, ", n.lim = ",n.lim, sep='')) } } par(op)
Vincent Zoonekynd
<EMAIL_ADDRESS>latest
modification on Sun Aug 28 02:45:24 BST 2005


Home
Projects
Contact Me
Contact Me
Phone
949-000-1111
Email
<EMAIL_ADDRESS>LinkedIn
My profile


These are the roads closed in Nottinghamshire because of flooding
See the full list here
by David WhitfieldFlooding is causing significant disruption across Notts today, Thursday, November 14, with roads closed following heavy rain.
In the city centre buses are being diverted because of flooding in the Mansfield Road and Shakespeare Street area.
But there are also a number of road closures in the wider county, as follows:
Bestwood: Moor Road (near Goosedale Lane)
Caunton: Ford Lane
Farndon: Chapel Lane
Hockerton: Main Road
Newark: Tinkers Lane
Normanton on Soar: Main Street
Oxton: Blind Lane
Retford: Blackstope Lane, Grove Lane
Shireoaks: Shireoaks Road
Southwell: Nottingham Road (off Westgate past Minster School)
Tollerton: Tollerton Lane (approx. 100m north of Cotgrave Lane)
West Bridgford: Abbey Circus, Gordon Road,
West Drayton: Old London Road
Woodborough: Road closure scheme in effect
The county council said: "As the rain continues to fall across the county, a number of roads have been closed due to flooding.
"Please take care on the roads and never drive through flood water or ignore warning signs."
See here for live flooding updates.
In addition there are a number of roads which are severely affected but not closed, including Candleby Lane, Plumtree Road and Cotgrave Lane in Cotgrave.
And Worksop Library and Worksop Registration Office remain closed because of earlier flooding.


CMR ARCHEOLOGICAL RECORD
ARCHEOLOGICAL SITES
ABOUT
BLOG
MORE...
Filter by region, standing, number of rooms
STANDING:*
Region:
NONE
Centre
Littoral
Ouest/West
Sud/South
Nord/North
South-West
North-West
TYPE:
NONE
ARCHITECTURE
ART MUSUEM
NATIONAL MUSUEM
KINGDOM
ZOOS
GUIDE?
YES
NO
Places found that may suit your needs
BAMUM KINGDOM
LOCATION: FOUMBAN, WEST REGION
BAMUM KINGDOM
LOCATION: FOUMBAN, WEST REGION
BAMUM KINGDOM
LOCATION: FOUMBAN, WEST REGION
BAMUM KINGDOM
LOCATION: FOUMBAN, WEST REGION
BAMUM KINGDOM
LOCATION: FOUMBAN, WEST REGION
BAMUM KINGDOM
LOCATION: FOUMBAN, WEST REGION