Atlas¶
Atlas of all graphs of 6 nodes or less.
Out:
graph has 779 nodes with 1073 edges
(137, 'connected components')
# Author: Aric Hagberg<EMAIL_ADDRESS># Copyright (C) 2004-2018 by
# Aric Hagberg<EMAIL_ADDRESS># Dan Schult<EMAIL_ADDRESS># Pieter Swart<EMAIL_ADDRESS># All rights reserved.
# BSD license.
import random
try:
import pygraphviz
from networkx.drawing.nx_agraph import graphviz_layout
except ImportError:
try:
import pydot
from networkx.drawing.nx_pydot import graphviz_layout
except ImportError:
raise ImportError("This example needs Graphviz and either "
"PyGraphviz or pydot.")
import matplotlib.pyplot as plt
import networkx as nx
from networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic as isomorphic
from networkx.generators.atlas import graph_atlas_g
def atlas6():
""" Return the atlas of all connected graphs of 6 nodes or less.
Attempt to check for isomorphisms and remove.
"""
Atlas = graph_atlas_g()[0:208] # 208
# remove isolated nodes, only connected graphs are left
U = nx.Graph() # graph for union of all graphs in atlas
for G in Atlas:
zerodegree = [n for n in G if G.degree(n) == 0]
for n in zerodegree:
G.remove_node(n)
U = nx.disjoint_union(U, G)
# list of graphs of all connected components
C = nx.connected_component_subgraphs(U)
UU = nx.Graph()
# do quick isomorphic-like check, not a true isomorphism checker
nlist = [] # list of nonisomorphic graphs
for G in C:
# check against all nonisomorphic graphs so far
if not iso(G, nlist):
nlist.append(G)
UU = nx.disjoint_union(UU, G) # union the nonisomorphic graphs
return UU
def iso(G1, glist):
"""Quick and dirty nonisomorphism checker used to check isomorphisms."""
for G2 in glist:
if isomorphic(G1, G2):
return True
return False
if __name__ == '__main__':
G = atlas6()
print("graph has %d nodes with %d edges"
% (nx.number_of_nodes(G), nx.number_of_edges(G)))
print(nx.number_connected_components(G), "connected components")
plt.figure(1, figsize=(8, 8))
# layout graphs with positions using graphviz neato
pos = graphviz_layout(G, prog="neato")
# color nodes the same in each connected subgraph
C = nx.connected_component_subgraphs(G)
for g in C:
c = [random.random()] * nx.number_of_nodes(g) # random color...
nx.draw(g,
pos,
node_size=40,
node_color=c,
vmin=0.0,
vmax=1.0,
with_labels=False
)
plt.show()
Total running time of the script: ( 0 minutes 11.142 seconds)


Dr.Priscilla Siji, Phd (Researcher in Physical Oceanography)
Dr. Priscilla Siji helped us to locate the data and helped us understand the features in the data set. She was also instrumental in sourcing the formula to calculate the Central Index and Wave Height. She mentored us thoughout the project. She is keen to write a journal article on the findings.
Stephen Milton
A proactive, insightful and high performing Territory Manager with over 15 years' extensive experience in research, data interpretation & analytics, technical processes, corporate reporting, proactive problem solving and implementation of continuous process improvements across IT, contact centre and transport settings. Comprehensive knowledge and experience in developing analysis tools and reporting that drive impactful changes to operations to surpass standards in quality, performance, productivity and efficiency. Equipped with exceptional analytical, problem-solving, conceptual and critical thinking skills as well as effective communication, organisation and interpersonal strengths. A service oriented professional determined to leverage qualifications and past experience to support the strategic and functional objectives of the organisation. You can follow Stephen on:
Ezra Tassone
Experienced Computer Science researcher with a background in computer vision and machine learning, a Bachelor and Master’s degree in Computer Science., and a Postgraduate Diploma in Business (majoring Information Systems). A self-motivated, very keen learner with strong problem-solving abilities. Aspiring Data Analyst with current technical skills in Excel, VBA, Python, SQL and JavaScript along with data analytics and visualisation from the University of Western Australia’s Data Analytics Boot Camp. You can follow Ezra on:


title = "About" url = "/about" layout = "default" is_hidden = 0 == {% partial 'nav-white' %}
Hello, My name is Yosef Zev Jotkowitz, Zev is Wolf in hebrew hence The Website Wolf. A freelance nomad with a home in Israel, slowly making his way, experiencing the wonders of the world and catering websites as my professional practice for locals and clients abroad.
Programing has been a passion of mine since being first exposed to JavaScript as a teenager and the Designer in me found its way into my heart spending long weeks in nature. I've combined the two into designing websites.
Hello, My name is Yosef Zev Jotkowitz, Zev is Wolf in hebrew hence The Website Wolf. A freelance nomad with a home in Israel, slowly making his way, experiencing the wonders of the world and catering websites as my professional practice for locals and clients abroad.
Programing has been a passion of mine since being first exposed to JavaScript as a teenager and the Designer in me found its way into my heart spending long weeks in nature. I've combined the two into designing websites.
My travels have given me an appreciation of quality made projects. I have put much hard work and dedication into the skill of building websites, and have reached a state where I can keep coming back to my projects with the same energy, like a painter stroking his work throughout the days, as his work develops a personality, it becomes a masterpiece.


We analyze the popularity trend of Twitter Hashtags as the coronavirus situation evolves. The following provides the Top-10 emerging hashtags and steady hashtags based on daily usage counts over last 9 days.
The two groups are estimated by Kmeans algorithm on daily usage patterns of 3,000+ hashtags in tweets associated with Covid-19.
Top 10 Emerging Hashtags, 2020/03/20 - 2020/03/28.
coronalockdown(9021) stayathomeandstaysafe(1777) viruscorona(1511) caresact(1324) belgique(759) staysafenigeria(626) conunamanoamiga(573) readytoservethenation(561) saturdaythoughts(495) nationsalutescoronafighters(487) (*hashtag(the sum of daily usage counts over last 9 days))
Top 10 Steady Hashtags, 2020/03/20 - 2020/03/28.
coronavirus (merged)(1649983) covid-india (merged)(42825) covid-china (merged)(41987) stayhome (merged)(34707) trump (merged)(32237) outbreak (merged)(28983) coronavirusupdates (merged)(16974) breaking(15564) lockdown(10513) chloroquine(7012) (*hashtag(the sum of daily usage counts over last 9 days))


--- layout: post status: publish published: true title: Commerce Server 2007 Dev Edition Free author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 89 wordpress_url: http://winterdom.com/2006/07/commerceserver2007deveditionfree date: '2006-07-25 10:36:53 +0000' date_gmt: '2006-07-25 10:36:53 +0000' categories: - Commerce Server tags: [] comments: [] ---
Ryan Donovan announces that the Developer Edition of Commerce Server 2007 is now available and it's now free (for developer work only). Bold move on the Commerce Server team! It will be interesting to see if this gets picked up by some of the other Server teams at Microsoft.


This module is a part of the Pip.Services polyglot microservices toolkit. It provides an inversion-of-control (IoC) container to facilitate the development of services and applications composed of loosely coupled components.
The module containes a basic in-memory container that can be embedded inside a service or application, or can be run by itself. The second container type can run as a system level process and can be configured via command line arguments. Also it can be used to create docker containers.
The containers can read configuration from JSON or YAML files use it as a recipe for instantiating and configuring components. Component factories are used to create components based on their locators (descriptor) defined in the container configuration. The factories shall be registered in containers or dynamically in the container configuration file.
The module contains the following packages:
Install the NPM package as
npm install pip-services3-container-node --save
Create a factory to create components based on their locators (descriptors).
import { Factory } from 'pip-services3-components-node';
import { Descriptor } from 'pip-services3-commons-node';
export class MyFactory extends Factory {
public static MyComponentDescriptor = new Descritor("myservice", "mycomponent", "default", "*", "1.0");
public constructor() {
super();
this.registerAsType(MyFactor.MyComponentDescriptor, MyComponent);
}
}
Then create a process container and register the factory there. You can also register factories defined in other modules if you plan to include external components into your container.
import { ProcessContainer } from 'pip-services3-container-node';
import { DefaultRpcFactory } from 'pip-services3-rpc-node';
export class MyProcess extends ProcessContainer {
public constructor() {
super('myservice', 'My service running as a process');
this._factories.add(new DefaultRpcFactory());
this._factories.add(new MyFactory());
}
}
Define YAML configuration file with components and their descriptors. The configuration file is pre-processed using Handlebars templating engine that allows to inject configuration parameters or dynamically include/exclude components using conditional blocks. The values for the templating engine are defined via process command line arguments or via environment variables. Support for environment variables works well in docker or other containers like AWS Lambda functions.
---
# Context information
- descriptor: "pip-services:context-info:default:default:1.0"
name: myservice
description: My service running in a process container
# Console logger
- descriptor: "pip-services:logger:console:default:1.0"
level: {{LOG_LEVEL}}{{^LOG_LEVEL}}info{{/LOG_LEVEL}}
# Performance counters that posts values to log
- descriptor: "pip-services:counters:log:default:1.0"
# My component
- descriptor: "myservice:mycomponent:default:default:1.0"
param1: XYZ
param2: 987
{{#if HTTP_ENABLED}}
# HTTP endpoint version 1.0
- descriptor: "pip-services:endpoint:http:default:1.0"
connection:
protocol: "http"
host: "<IP_ADDRESS>"
port: {{HTTP_PORT}}{{^HTTP_PORT}}8080{{/HTTP_PORT}}
# Default Status
- descriptor: "pip-services:status-service:http:default:1.0"
# Default Heartbeat
- descriptor: "pip-services:heartbeat-service:http:default:1.0"
{{/if}}
To instantiate and run the container we need a simple process launcher.
let MyProcess = require('./MyProcess').MyProcess;
try {
let proc = new MyProcess();
proc._configPath = "./config/config.yml";
proc.run(process.argv);
} catch (ex) {
console.error(ex);
}
And, finally, you can run your service launcher as
node ./service.js
For development you shall install the following prerequisites:
Install dependencies:
npm install
Compile the code:
tsc
Run automated tests:
npm test
Generate API documentation:
./docgen.ps1
Before committing changes run dockerized build and test as:
./build.ps1
./test.ps1
./clear.ps1
The Node.js version of Pip.Services is created and maintained by:
The documentation is written by:
Generated using TypeDoc


"TRUTH" Used in various senses in Scripture. In Proverbs 12:17, 19, it denotes that which is opposed to falsehood. In Isaiah 59:14, 15, Jeremiah 7:28, it means fidelity or truthfulness. The doctrine of Christ is called “the truth of the gospel” (Galatians 2:5), “the truth” (2 Timothy 3:7; 4:4). Our Lord says of himself, “I am the way, and the truth” (John 14:6).
"TRUTH" Used in various senses in Scripture. In Proverbs 12:17, 19, it denotes that which is opposed to falsehood. In Isaiah 59:14, 15, Jeremiah 7:28, it means fidelity or truthfulness. The doctrine of Christ is called “the truth of the gospel” (Galatians 2:5), “the truth” (2 Timothy 3:7; 4:4). Our Lord says of himself, “I am the way, and the truth” (John 14:6).


The Day The Earth Stood Still
The Earth obligingly stood still for us twice this week, on back-to-back nights. In each, a lone alien man arrives in a spaceship with his giant robot buddy Gort, to tell humans that they must mend their destructive ways or be destroyed.
The 1951 version was very Fifties - intrusively hopeless special effects, and seems to my eyes to be riddled with outlandish social etiquette and hopelessly naive politics. I suppose in the years following World War II any platform for preaching pacifism seemed worth a shot. If only more people considered it worth preaching today. I completely missed the Christian allegory that permeates the movie until it was pointed out to me: The alien comes from the heavens, and lives amongst common people, taking the name 'Carpenter' to blend in. He preaches peace to humankind, or else warns we will suffer a fiery apocalypse. He is our intermediary to 'Gort' (in fact the servant of Gort, in the original script) who later resurrects him from the dead, so that he may deliver his final message before being taken back up into the skies. Cute if you're into that, I guess.
Equally predictably, the 2008 version was very Naughties. Intrusively overblown production values string together a mediochre script. The pacifism and Christian message of the original has been replaced with a more timely environmental message - the writers perhaps intuiting that modern Americans are not so receptive to anti-war talk. Otherwise the scope and potential of the ideas at play are completely wasted - lost amidst the creative wasteland of a budget that could no doubt have fed countries. Once provoked, Gort unleashes self-replicating insectile microbots, which swarm and consume Philly, spreading fast. At the last moment, Keanu / Klaatu sees some humans hugging and crying, and has a big change of heart - the Earth deserves to be spared, after all. What a crock.
So there you have it. Watch this space for more reviews from me - wasting nights of my life, so that you don't have to. Final ratings:
10/10 if you are a stump-sucking mealy-mouthed pig-dog with googly eyes.
0/10 if you have any vestigial glimmers of taste or discernment.


Previous: The data-lens/beta/transducers system, Up: Systems [Contents][Index]
Edward Langley<EMAIL_ADDRESS>MIT
Utilities for building data transformations from composable functions, modeled on lenses and transducers
data-lens.asd (file)


Add Student
First Name
Last Name
Address
Gender
Male
Female
Blood group
State
City
Zip Code
Email
Submit
send
Reset


The center of the PATTERN above is where the TILE will be rendered. Paint the pattern to describe in which situation the tile should be displayed. LEFT CLICK to set "This value is required" in a cell, RIGHT CLICK to set "This value should not be here".


Test cc:attribute with methodType attribute
Submit and Cancel Button are two buttons in a composite component


Note: the tests with Pending transaction states won't be valid any more when full CTP
completely migrates to Initial default transaction state.
See
Release Notes - commercetools platform - Version Release 29 September 2017
| Payment Name | Payment Method | Payment Custom Type | Transaction Type | Transaction State | Cent Amount | Currency Code | Payment ID (for information only) |
|---|---|---|---|---|---|---|---|
| CreditCard Authorization Initial 3ds | CREDIT_CARD | payment-CREDIT_CARD | AUTHORIZATION | INITIAL | 11199 | EUR | |
| CreditCard Authorization Pending 3ds | CREDIT_CARD | payment-CREDIT_CARD | AUTHORIZATION | PENDING | 11299 | EUR | |
| CreditCard Charge Initial 3ds | CREDIT_CARD | payment-CREDIT_CARD | CHARGE | INITIAL | 2800 | EUR | |
| CreditCard Charge Pending 3ds | CREDIT_CARD | payment-CREDIT_CARD | CHARGE | PENDING | 2800 | EUR |
| Payment Name | Payment Method | Payment Custom Type | Transaction Type | Transaction State | Cent Amount | Currency Code | Payment ID (for information only) |
|---|---|---|---|---|---|---|---|
| Paypal Authorization Initial | WALLET-PAYPAL | payment-WALLET | AUTHORIZATION | INITIAL | 211 | EUR | |
| Paypal Authorization Pending | WALLET-PAYPAL | payment-WALLET | AUTHORIZATION | PENDING | 212 | EUR | |
| Paypal Charge Initial | WALLET-PAYPAL | payment-WALLET | CHARGE | INITIAL | 221 | EUR | |
| Paypal Charge Pending | WALLET-PAYPAL | payment-WALLET | CHARGE | PENDING | 111 | EUR |
| Payment Name | Payment Method | Payment Custom Type | Transaction Type | Transaction State | Cent Amount | Currency Code | Payment ID (for information only) |
|---|---|---|---|---|---|---|---|
| BankTransfer Charge Initial | BANK_TRANSFER-ADVANCE | payment-CASH-ADVANCE | CHARGE | INITIAL | 321 | EUR | |
| BankTransfer Charge Pending | BANK_TRANSFER-ADVANCE | payment-CASH-ADVANCE | CHARGE | PENDING | 322 | EUR |
| Payment Name | Transaction Type | Buyer surname[1] | Buyer birth day | IP address | Telephone | Payment ID (for information only) |
|---|---|---|---|---|---|---|
| Klarna Payment 1 | AUTHORIZATION | Approved | 1960-07-07 | <IP_ADDRESS> | 034568557 |
[1]See more information on Klarna test credentials page
| Payment Name | Transaction Type | Response Status Code | Transaction State | Payment Status Code | Redirect URL root | Version (for information only) |
|---|---|---|---|---|---|---|
| CreditCard Authorization Initial 3ds | authorization | 200 | Pending | REDIRECT | https://threedssvc.pay1.de:443/3ds/3ds1/challenge | |
| CreditCard Authorization Pending 3ds | authorization | 200 | Pending | REDIRECT | https://threedssvc.pay1.de:443/3ds/3ds1/challenge | |
| CreditCard Charge Initial 3ds | charge | 200 | Pending | REDIRECT | https://threedssvc.pay1.de:443/3ds/3ds1/challenge | |
| CreditCard Charge Pending 3ds | charge | 200 | Pending | REDIRECT | https://threedssvc.pay1.de:443/3ds/3ds1/challenge |
| Payment Name | Transaction Type | Response Status Code | Transaction State | Payment Status Code | Redirect URL root | Version (for information only) |
|---|---|---|---|---|---|---|
| Paypal Authorization Initial | authorization | 200 | Pending | REDIRECT | https://www.sandbox.paypal.com/webscr | |
| Paypal Authorization Pending | authorization | 200 | Pending | REDIRECT | https://www.sandbox.paypal.com/webscr | |
| Paypal Charge Initial | charge | 200 | Pending | REDIRECT | https://www.sandbox.paypal.com/webscr | |
| Paypal Charge Pending | charge | 200 | Pending | REDIRECT | https://www.sandbox.paypal.com/webscr |
| Payment Name | Transaction Type | Response Status Code | Transaction State | Payment Status Code | Version (for information only) |
|---|---|---|---|---|---|
| BankTransfer Charge Initial | charge | 200 | Pending | APPROVED | |
| BankTransfer Charge Pending | charge | 200 | Pending | APPROVED |
| Payment Name | Transaction Type | Response Status Code | Transaction State | Payment Status Code | Version (for information only) |
|---|---|---|---|---|---|
| Klarna Payment 1 | preauthorization | 200 | Success | APPROVED |


Self-Organized sorting around radioactive particlesBy Carlos Badenes |
Exist some particles, e.g. radioactive particles, that must be isolated to avoid propagate their effects.
Inspired by the biological phenomena of chemotaxis and the distribution model of gas particles a new algorithm is proposed to self-organize radioactive particles.
Two types of agents are initially randomly placed in a toroidal environment, one of them emit radiation and the other one try to isolate them.
These agents self-organise into a complex aggregate consisting of a group of radioactive agents surrounded by insulating agents. This paper describes the self-organized sorting algorithm.


Please select a Control Unit device from the menu.
If no devices are listed, please make sure Bluetooth is enabled or you are using a suitable serial to USB OTG converter cable.


Enter Zip
{{weather.location}}
{{weather.temp}}℉
Today's high: {{weather.high}}°F
Today's low: {{weather.low}}°F
Five day forecast:
{{text.title }}
{{text.fcttext}}


One of the most useful analogies in mathematics is the
fundamental group functor (also known as the Galois Correspondence) which
sends a topological space to its fundamental group while at the same time
sending continuous maps between spaces to corresponding homomorphisms of
groups in such a way that compositions of maps are preserved.
A an obvious question one might ask is whether the fundamental group
functor is "onto", that is: (1) is every group the fundamental group of a
space and (2) every homomorphism the image of a continuous map between
corresponding spaces? The easy answer to (1) is "yes" and the nonobvious
answer to (2) is "it depends on the spaces".
We'll introduce the harmonic archipelago as the shining example of a space
with a strange fundamental group, define an archipelago of groups as a
group theoretic
product operation and finally describe how such products are (almost) all
isomorphic to the fundamental group of the harmonic archipelago.
We will study examples showing that there are group homomorphisms that
cannot be induced by continuous maps on certain spaces and how the
fundamental group of the harmonic archipelago factors through all such
"discontinuous homomorphisms", how none of the examples is constructible
(or even understandable in any reasonable way) and how one might detect
spaces whose fundamental group allows them to be the codomain of such weird
homomorphisms (the conjecture is that they contain the rational numbers or
torsion).
We'll talk a bit about the notion of cotorsion groups from classical
Abelian group theory and how that notion can be generalized to non-Abelian
groups by requiring certain types of systems of equations have solutions
and then mention how countable groups which have solutions to such systems
are always images of the fundamental group of an archipelago.
In the end we're lead to an example of a countable group which we can prove
is either the rational numbers or gives a counterexample to a nearly 50
year old conjecture in number theory: the Kurepa conjecture. So there is
a little topology, a little homotopy theory, some group theory, a pinch of
logic and a wisp of number theory in the talk. This is a distillation of
work I've published recently with Hojka and Meilstrup (Proc AMS) and work
that is still being written up with Hojka and Herfort.


I am an IT Professional, with expertise related to Project Implementation, System Design and Systems/Infrastructure Support.
Currently, I am working as a Solutions Designer for Yondu Inc. (Assigned to Globe Telecom)
Received a Degree in Information Technology with specialization in Software Development and Network Administration
Developed a Patient Record Management System (PRMS) for a local hospital in Pangasinan as my thesis
Also received a Cisco Certified Network Associate (CCNA) certificate
One of the Dean's Listers for SY 2012-2013
June 2011 - April 2015
Dagupan City, Pangasinan
CityNet Central, EDSA Shaw, Mandaluyong City
July 22, 29, August 5, 12, 2018
Provide overall implementation direction.
Review designs of existing solutions to identify improvement plans against the current reference architecture.
Technical implementation of additional services in existing solutions.
Responsible for reviewing and signing-off on respective documentation included in Statement of Compliance, Functional Specifications, SAT Plan, Cut-over Plan, and Project Acceptance.
Working with the other internal teams and business partners on the core propositions, solution, implementation strategy, and associated technical and/or product documentation.
Maintain an understanding of new technologies, architectures and products relevant to solutions/systems.
Maintain sufficient familiarity with the services business and associated application/systems requirements.
Responsible for the technical review of system level changes and provide input to plans/activities for changes to live systems.
Work with technical or business partners to get critical projects delivered.
Maintain great knowledge of the implemented technologies and products.
Provide project implementation support and define/refine practices to meet team's objectives.
Act as end to end technical lead for project implementations.
Provide a point of contact for all technical issues and to determine a course of action for specific deliverables.
August 2021 - Present
Bonifacio Global City, Taguig City, Metro Manila
Focus on deployment, configuration, monitoring, and metrics, freeing up the developer's time to develop the application.
Aim at developing automated solutions for operational aspects such as on-call monitoring, performance and capacity planning.
Collaborate with Development, Quality Assurance and Technical Design teams to resolve issues and ensuring solutions are viable and consistent.
Establish DevOps processes, practices and tools to empower and support Development & Quality Assurance teams in continuous deployment, continuous integration and timely delivery with service guarantee.
Monitor, review and maintain application performance, capacity and availability, providing 3rd level of support for the resolution of application-related incidents and problems.
Focus on rapid service delivery through the adoption of agile, lean practices in the context of an integrated approach.
Complete tasks to automate the monitoring of the health and performance of core services and overall application health.
Responsible for maintaining high availability of production and non-production environments.
Identify issues in the production phase and system and implements monitoring solutions to overcome those issues.
December 2020 - August 2021
Bonifacio Global City, Taguig City, Metro Manila
Works with project management and technical team to get projects developed and implemented
Analyzes and documents requirements, decomposes high level business and user requirements into functional requirements
Translates requirements into technical specifications
Analyzes, and recommends system designs
Applies knowledge of the standards, and disciplines for assigned domain
Assesses and interprets customer needs and requirements
Plans, documents, evaluates, and tracks testing results to ensure system applications are free from defects
Discusses with end users and gathers the high-level project requirements
Supports end users during the UAT of the projects
Validates all the business scenarios along with business users during UAT
Coordinates with Development and QA teams during implementation phase of the project
Provides walk-through to all stakeholders for any business requirement
Defines attributes, interfaces, constraints and other non-functional requirements
Assists Project Manager in monitoring activities and schedules
January 2020 - December 2020
Bonifacio Global City, Taguig City, Metro Manila
Client: TAFE (Technical and Further Education), State of Queensland, Australia
March 2019 - January 2020
Bonifacio Global City, Taguig City, Metro Manila
Client/s: VALVe Corporation, Postmates, Ring.com, Uber
Achievement: Received a Recognition for being one of the top 3% performers for Q3 of 2018
May 2015 - March 2019
Bonifacio Global City, Taguig City, Metro Manila
Civil Service Commission
Date of Examination: August 2019
Credential ID: 13-191115-1321
Arellano St. Dagupan City, Pangasinan
March 2015 - March 2018 (expired)


This is a Demo however the link that was clicked is not functional at this time; that link was functional some time ago however now this is a Demo site that features static code demonstrations with non-functional links.


Preparation time
over 2 hours
Cooking time
10 to 30 mins
Serves
Makes 1 x 1litre/1¾ pints jar
Dietary
These quick pickled mushrooms would be delicious served as part of an antipasto with cured meat, olives and Italian cheeses.
Place all of the ingredients except the mushrooms into a saucepan and add 500ml/18fl oz water.
Bring to the boil and add the mushrooms. Cook for 12-15 minutes, or until cooked through.
Remove the mushrooms from the pan with a slotted spoon and set aside to dry on a clean tea towel for 3-4 hours, or until completely dry.
Pour some olive oil into a 1 litre/1¾ pints sterilised jar, add the mushrooms, then cover with more olive oil. Stir together gently until all of the mushrooms are coated in the olive oil. Cover tightly with a sterilised lid.
The mushrooms will keep for two months unopened. Use within 3-4 days once opened.


Leaflet Polygon Management An Open Source Leaflet Plugin for editing polygons, specifically made for Leaflet 1.0


Login
Welcome back, please login to your account.
Invalid username and password.
You have been logged out.
Login With
Google
Gurustudy


hash table
bucket sort
accumulate
]
Leetcode 0274. H-Index
https://leetcode.com/problems/h-index
Explanations
The main trick is to count for each possible number of citations, how many times we see this number in our citations
. Note, that if number of citations is more than total number of papers N
, we can reduce this numer to N
and nothing will change. Let me explain my solutoin given test example [3,0,6,1,5]
.
- We create array, which I called
buckets = [1, 1, 0, 1, 0, 2]
, wherebuckets[i]
is number of papers withi
citations ifi < N
andbucket[N]
is number of papers with>=N
citations. - Now, we create
accum
array, whereaccum[0]
is number of papers with>=1
citation,accum[1]
is number of papers with>=2
citations and so on. When we evaluate it for our example we can see, that it is equal toaccum = [4,3,3,2,2]
. Note, that we start with 1 citation, not with zero, that is why we need to useaccum[1:]
in our code. - Finally, we need to go through this array and find the bigest number
i
, for whichaccum[i] >= i + 1
and returni + 1
, in our example it is equal to3
.
Complexity
Complexity is O(n), though we traverse our data 4 times, and it is not the optimal solution. We can evaluate cumulative sums in place, and compare them in place with i + 1
and keep the index of maximum reached so far, and interrupt when inequality accum[i] >= i + 1
does not hold anymore. Howerer I like cumulative sums and code is more clean in my way.
Code
class Solution:
def hIndex(self, citations):
N = len(citations)
buckets = [0] * (N + 1)
for elem in citations:
buckets[min(elem, N)] += 1
accum = list(accumulate(buckets[1:][::-1]))[::-1]
compar = [accum[i] >= i + 1 for i in range(N)]
return (compar + [0]).index(0)
If you like the solution, you can upvote it on leetcode discussion section: Problem 0274


This is a paragraph that is bold
This is a paragraph that is strong
This is a paragraph that is italic
This is a paragraph that is emphasized
On the 4th of December
The amount of CO2 is way too high in the atmosphere.


Click the button to get your coordinates.
Click the button to see the counter increase.
Close the browser tab (or window), and try again, and the counter will continue to count (is not reset).
GeolocalisationThese are some of the projects that I have done during the Web Development course. Though I am still a beginner, so feel free to give any advice.
It'll be welcome. Here's the link
This is the Calculatrice work.
This is the Repas Work.
This is the Ninja Work.
This is the Contact Form Work.
This is my CV.


There is one bit state mask for each bit assembly and serves to obstruct the bit state indicator when the bit is in the zero/clear state.
In the picture, the upper bit shown is in the off or zero state and the lower bit is in the on or one state.


added by you
{{selUnit}}
{{bignumber/objvalue | number:1}}
saving to Gist...
{{description}}
{{objDescription}}


Dream Vacation Destination
Take this short quiz to find out what getaway you're most suited for!
Let's get started!
What kind of accomodations would you prefer?
A 5 star resort
Cabin in the woods
A bed and breakfast in the European Countryside
Cottage by the sea
What kind of activities appeal to you most while on vacation?
Taking in all the local sights and cuisine
Being Pampered and waited on
Heading to the nearest Theme Park
Exploring the natural beauty of the area
What kind of Transportation would you prefer?
Walking
Train
Public Transit
Rental Car
What's your favorite season?
Winter
Spring
Summer
Fall
Submit
You got... France!
You got... Aspen!
You got... Kenya!
You got... Mexico!
You got... Japan!


{{#if overview}}
{{{overview}}}
{{else}}
{{!
Find each section, in order.
If there's no markup or modifiers supplied, use a Markdown-only
layout instead.
The "root" element comes first in this loop, and can be detected using
the "#ifDepth 1" block as seen below.
}}
{{#eachSection rootNumber}}
{{ header }}
{{#if description}}


--- layout: post tags: [Dependency Injection, Software Design, Design Patterns] date: 2010-01-20 16:28:03 UTC title: "Rebuttal: Constructor over-injection anti-pattern" description: "Constructor Over-injection isn't an anti-pattern, but it is a code smell." --- {% include JB/setup %}
Jeffrey Palermo recently posted a blog post titled Constructor over-injection anti-pattern - go read his post first if you want to be able to follow my arguments.
His point seems to be that Constructor Injection can be an anti-pattern if applied too much, particularly if a consumer doesn't need a particular dependency in the majority of cases.
The problem is illustrated in this little code snippet:
bool isValid = _validator.Validate(order); if (isValid) { _shipper.Ship(order); }
If the Validate method returns false often, the shipper dependency is never needed.
This, he argues, can lead to inefficiencies if the dependency is costly to create. It's not a good thing to require a costly dependency if you are not going to use it in a lot of cases.
That sounds like a reasonable statement, but is it really? And is the proposed solution a good solution?
No, this isn't a reasonable statement, and the proposed solution isn't a good solution.
It would seem like there's a problem with Constructor Injection, but in reality the problem is that it is being used incorrectly and in too constrained a way.
The proposed solution is problematic because it involves tightly coupling the code to OrderShipperFactory. This is more or less a specialized application of the Service Locator anti-pattern.
Consumers of OrderProcessor have no static type information to warn them that they need to configure the OrderShipperFactory.CreationClosure static member - a completely unrelated type. This may technically work, but creates a very developer-unfriendly API. IntelliSense isn't going to be of much help here, because when you want to create an instance of OrderProcessor, it's not going to remind you that you need to statically configure OrderShipperFactory first. Enter lots of run-time exceptions.
Another issue is that he allows a concrete implementation of an interface to change the design of the OrderProcessor class - that's hardly in the spirit of the Liskov Substitution Principle. I consider this a strong design smell.
One of the commenters (Alwin) suggests instead injecting an IOrderShipperFactory. While this is a better option, it still suffers from letting a concrete implementation influence the design, but there's a better solution.
First of all we should realize that the whole case is a bit construed because although the IOrderShipper implementation may be expensive to create, there's no need to create a new instance for every OrderProcessor. Instead, we can use the so-called Singleton lifetime style where we share or reuse a single IOrderShipper instance between multiple OrderProcessor instances.
The beauty of this is that we can wait making that decision until we wire up the actual dependencies. If we have implementations of IOrderShipper that are inexpensive to create, we may still decide to create a new instance every time.
There may still be a corner case where a shared instance doesn't work for a particular implementation (perhaps because it's not thread-safe). In such cases, we can use Lazy loading to create a LazyOrderShipper like this (for clarity I've omitted making this implementation thread-safe, but that would be trivial to do):
public class LazyOrderShipper : IOrderShipper { private OrderShipper shipper; #region IOrderShipper Members public void Ship(Order order) { if (this.shipper == null) { this.shipper = new OrderShipper(); } this.shipper.Ship(order); } #endregion }
Notice that this implementation of IOrderShipper only creates the expensive OrderShipper instance when it needs it.
Instead of directly injecting the expensive OrderShipper instance directly into OrderProcessor, we wrap it in the LazyOrderShipper class and inject that instead. The following test proves the point:
[TestMethod] public void OrderProcessorIsFast() { // Fixture setup var stopwatch = new Stopwatch(); stopwatch.Start(); var order = new Order(); var validator = new Mock<IOrderValidator>(); validator.Setup(v => v.Validate(order)).Returns(false); var shipper = new LazyOrderShipper(); var sut = new OrderProcessor(validator.Object, shipper); // Exercise system sut.Process(order); // Verify outcome stopwatch.Stop(); Assert.IsTrue(stopwatch.Elapsed < TimeSpan.FromMilliseconds(777)); Console.WriteLine(stopwatch.Elapsed); // Teardown }
This test is significantly faster than 777 milliseconds because the OrderShipper never comes into play. In fact, the stopwatch instance reports that the elapsed time was around 3 ms!
The bottom line is that Constructor Injection is not an anti-pattern. On the contrary, it is the most powerful DI pattern available, and you should think twice before deviating from it.
Comments
It seemed like the need to create a set of factories and have them make calls into the IOC container directly was a bigger smell. And the fact that the OrderShipper would be comming from a factory setup somewhere else, making code maintenance more difficult, and the application more prone to errors.
 I hadn't thought of that solution, but the singleton lifecycle had.
Well done.
The point raised by Phil Haack is valid, so I've addressed it in a second blog post.
When I wrote that, my thinking was that if the Ship method is hit by two or more threads simultaneously, more than one thread may evaluate the member field to null and start creating a new instance of OrderShipper. At least one of those instance will created, but never permanently assigned, since another thread may overwrite the value.
In this case, it may not lead to any exceptions (that I can think of), but it's inefficient use of resources.
However, every time I post something about threading on this blog, someone will point out my errors, so I'm looking forward to learn which mistake I made this time around :)
I'm no threading expert, in case you were wondering :)
Ok, back to DI... :-)
My point is: It is like arguing that my unicorn needs a better saddle, and that saddle will let me ride it better.
I commend you anyways for your effort.


SD file system class for FAT volumes.
More...
#include <SdFs.h>
|
| bool | begin (BlockDevice *dev, bool setCwv=true, uint8_t part=0) |
| |
| bool | begin (uint8_t csPin=SS) |
| |
| bool | begin (uint8_t csPin, SPISettings spiSettings) |
| |
| bool | begin (SdSpiConfig spiConfig) |
| |
| bool | begin (SdioConfig sdioConfig) |
| |
| uint16_t | bytesPerCluster () |
| |
| uint8_t | bytesPerClusterShift () |
| |
| uint16_t | bytesPerSector () |
| |
| uint8_t | bytesPerSectorShift () |
| |
| cache_t * | cacheClear () |
| |
| SdCard * | card () |
| |
| bool | cardBegin (SdSpiConfig spiConfig) |
| |
| bool | cardBegin (SdioConfig sdioConfig) |
| |
| bool | chdir () |
| |
| bool | chdir (const char *path) |
| |
| void | chvol () |
| |
| uint32_t | clusterCount () const |
| |
| uint32_t | dataStartSector () const |
| |
| int8_t | dbgFat (uint32_t n, uint32_t *v) |
| |
| void | errorHalt (Print *pr) |
| |
| void | errorHalt () |
| |
| void | errorHalt (Print *pr, const char *msg) |
| |
| void | errorHalt (Print *pr, const __FlashStringHelper *msg) |
| |
| void | errorHalt (const __FlashStringHelper *msg) |
| |
| void | errorHalt (const char *msg) |
| |
| bool | exists (const char *path) |
| |
| uint8_t | fatCount () |
| |
| uint32_t | fatStartSector () const |
| |
| uint8_t | fatType () const |
| |
| bool | format (print_t *pr=nullptr) |
| |
| int32_t | freeClusterCount () |
| |
| bool | init (BlockDevice *dev, uint8_t part) |
| |
| void | initErrorHalt (Print *pr) |
| |
| void | initErrorHalt () |
| |
| void | ls (uint8_t flags=0) |
| |
| void | ls (const char *path, uint8_t flags=0) |
| |
| void | ls (print_t *pr, uint8_t flags=0) |
| |
| void | ls (print_t *pr, const char *path, uint8_t flags) |
| |
| bool | mkdir (const char *path, bool pFlag=true) |
| |
| File | open (const String &path, uint8_t mode=O_READ) |
| |
| File | open (const char *path, uint8_t mode=O_READ) |
| |
| void | printFatType (Print *pr) |
| |
| void | printSdError (print_t *pr) |
| |
| void | printSdErrorCode (Print *pr) |
| |
| bool | remove (const char *path) |
| |
| bool | rename (const char *oldPath, const char *newPath) |
| |
| bool | rmdir (const char *path) |
| |
| uint16_t | rootDirEntryCount () const |
| |
| uint32_t | rootDirStart () const |
| |
| uint8_t | sdErrorCode () |
| |
| uint8_t | sdErrorData () |
| |
| uint16_t | sectorMask () |
| |
| uint8_t | sectorsPerCluster () const |
| |
| uint8_t | sectorsPerClusterShift () const |
| |
| uint32_t | sectorsPerFat () const |
| |
| bool | truncate (const char *path, uint32_t length) |
| |
| bool | volumeBegin () |
| |
| uint32_t | volumeSectorCount () const |
| |
| bool | wipe (print_t *pr=nullptr) |
| |
SD file system class for FAT volumes.
| bool FatVolume::begin |
( |
BlockDevice * |
dev, |
|
|
bool |
setCwv = true , |
|
|
uint8_t |
part = 0 |
|
) |
| |
|
inlineinherited |
Initialize an FatVolume object.
- Parameters
-
| [in] | dev | Device block driver. |
| [in] | setCwv | Set current working volume if true. |
| [in] | part | partition to initialize. |
- Returns
- The value true is returned for success and the value false is returned for failure.
Initialize SD card and file system.
- Parameters
-
| [in] | csPin | SD card chip select pin. |
- Returns
- true for success else false.
Initialize SD card and file system.
- Parameters
-
| [in] | csPin | SD card chip select pin. |
| [in] | spiSettings | SPI speed, mode, and bit order. |
- Returns
- true for success else false.
Initialize SD card and file system for SPI mode.
- Parameters
-
| [in] | spiConfig | SPI configuration. |
- Returns
- true for success else false.
Initialize SD card and file system for SDIO mode.
- Parameters
-
| [in] | sdioConfig | SDIO configuration. |
- Returns
- true for success else false.
| uint16_t FatPartition::bytesPerCluster |
( |
| ) |
|
|
inlineinherited |
- Returns
- Number of bytes in a cluster.
| uint8_t FatPartition::bytesPerClusterShift |
( |
| ) |
|
|
inlineinherited |
- Returns
- The shift count required to multiply by bytesPerCluster.
| uint16_t FatPartition::bytesPerSector |
( |
| ) |
|
|
inlineinherited |
- Returns
- Number of bytes per sector.
| uint8_t FatPartition::bytesPerSectorShift |
( |
| ) |
|
|
inlineinherited |
- Returns
- The shift count required to multiply by bytesPerCluster.
| cache_t* FatPartition::cacheClear |
( |
| ) |
|
|
inlineinherited |
Clear the cache and returns a pointer to the cache. Not for normal apps.
- Returns
- A pointer to the cache buffer or zero if an error occurs.
- Returns
- Pointer to SD card object.
Initialize SD card in SPI mode.
- Parameters
-
| [in] | spiConfig | SPI configuration. |
- Returns
- true for success else false.
Initialize SD card in SDIO mode.
- Parameters
-
| [in] | sdioConfig | SDIO configuration. |
- Returns
- true for success else false.
| bool FatVolume::chdir |
( |
| ) |
|
|
inlineinherited |
Set volume working directory to root.
- Returns
- true for success else false.
| bool FatVolume::chdir |
( |
const char * |
path | ) |
|
|
inherited |
Set volume working directory.
- Parameters
-
| [in] | path | Path for volume working directory. |
- Returns
- true for success or false for failure.
| void FatVolume::chvol |
( |
| ) |
|
|
inlineinherited |
Change global current working volume to this volume.
| uint32_t FatPartition::clusterCount |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The total number of clusters in the volume.
- Returns
- current working volume.
| uint32_t FatPartition::dataStartSector |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The logical sector number for the start of file data.
| int8_t FatPartition::dbgFat |
( |
uint32_t |
n, |
|
|
uint32_t * |
v |
|
) |
| |
|
inlineinherited |
Debug access to FAT table
- Parameters
-
| [in] | n | cluster number. |
| [out] | v | value of entry |
- Returns
- true for success or false for failure
Print error info and halt.
- Parameters
-
Print error info to Serial and halt.
Print error info and halt.
- Parameters
-
| [in] | pr | Print destination. |
| [in] | msg | Message to print. |
| void SdBase< FatVolume >::errorHalt |
( |
Print * |
pr, |
|
|
const __FlashStringHelper * |
msg |
|
) |
| |
|
inlineinherited |
Print msg and halt.
- Parameters
-
| [in] | pr | Print destination. |
| [in] | msg | Message to print. |
Print msg to Serial and halt.
- Parameters
-
Print error info and halt.
- Parameters
-
| bool FatVolume::exists |
( |
const char * |
path | ) |
|
|
inlineinherited |
Test for the existence of a file.
- Parameters
-
| [in] | path | Path of the file to be tested for. |
- Returns
- true if the file exists else false.
| uint8_t FatPartition::fatCount |
( |
| ) |
|
|
inlineinherited |
- Returns
- The number of File Allocation Tables.
| uint32_t FatPartition::fatStartSector |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The logical sector number for the start of the first FAT.
| uint8_t FatPartition::fatType |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The FAT type of the volume. Values are 12, 16 or 32.
| bool SdFat::format |
( |
print_t * |
pr = nullptr | ) |
|
|
inline |
Format a SD card FAT32/FAT16.
- Parameters
-
| [in] | pr | Optional Print information. |
- Returns
- true for success else false.
| int32_t FatPartition::freeClusterCount |
( |
| ) |
|
|
inherited |
Volume free space in clusters.
- Returns
- Count of free clusters for success or -1 if an error occurs.
| bool FatPartition::init |
( |
BlockDevice * |
dev, |
|
|
uint8_t |
part |
|
) |
| |
|
inherited |
Initialize a FAT partition.
- Parameters
-
| [in] | dev | BlockDevice for this partition. |
| [in] | part | The partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in sector zero. |
- Returns
- The value true is returned for success and the value false is returned for failure.
Print error info and halt.
- Parameters
-
Print error info and halt.
| void FatVolume::ls |
( |
uint8_t |
flags = 0 | ) |
|
|
inlineinherited |
List the directory contents of the root directory to Serial.
- Parameters
-
| [in] | flags | The inclusive OR of |
LS_DATE - Print file modification date
LS_SIZE - Print file size.
LS_R - Recursive list of subdirectories.
| void FatVolume::ls |
( |
const char * |
path, |
|
|
uint8_t |
flags = 0 |
|
) |
| |
|
inlineinherited |
List the directory contents of a directory to Serial.
- Parameters
-
| [in] | path | directory to list. |
| [in] | flags | The inclusive OR of |
LS_DATE - Print file modification date
LS_SIZE - Print file size.
LS_R - Recursive list of subdirectories.
| void FatVolume::ls |
( |
print_t * |
pr, |
|
|
uint8_t |
flags = 0 |
|
) |
| |
|
inlineinherited |
List the directory contents of the volume root directory.
- Parameters
-
| [in] | pr | Print stream for list. |
| [in] | flags | The inclusive OR of |
LS_DATE - Print file modification date
LS_SIZE - Print file size.
LS_R - Recursive list of subdirectories.
| void FatVolume::ls |
( |
print_t * |
pr, |
|
|
const char * |
path, |
|
|
uint8_t |
flags |
|
) |
| |
|
inlineinherited |
List the directory contents of a directory.
- Parameters
-
| [in] | pr | Print stream for list. |
| [in] | path | directory to list. |
| [in] | flags | The inclusive OR of |
LS_DATE - Print file modification date
LS_SIZE - Print file size.
LS_R - Recursive list of subdirectories.
| bool FatVolume::mkdir |
( |
const char * |
path, |
|
|
bool |
pFlag = true |
|
) |
| |
|
inlineinherited |
Make a subdirectory in the volume root directory.
- Parameters
-
| [in] | path | A path with a valid name for the subdirectory. |
| [in] | pFlag | Create missing parent directories if true. |
- Returns
- The value true is returned for success and the value false is returned for failure.
| File FatVolume::open |
( |
const String & |
path, |
|
|
uint8_t |
mode = O_READ |
|
) |
| |
|
inlineinherited |
open a file
- Parameters
-
| [in] | path | location of file to be opened. |
| [in] | mode | open mode flags. |
- Returns
- a File object.
| File FatVolume::open |
( |
const char * |
path, |
|
|
uint8_t |
mode = O_READ |
|
) |
| |
|
inlineinherited |
open a file
- Parameters
-
| [in] | path | location of file to be opened. |
| [in] | mode | open mode flags. |
- Returns
- a File object.
Print volume FAT/exFAT type.
- Parameters
-
Print error info and return.
- Parameters
-
Print SD errorCode and errorData.
- Parameters
-
| bool FatVolume::remove |
( |
const char * |
path | ) |
|
|
inlineinherited |
Remove a file from the volume root directory.
- Parameters
-
| [in] | path | A path with a valid name for the file. |
- Returns
- The value true is returned for success and the value false is returned for failure.
| bool FatVolume::rename |
( |
const char * |
oldPath, |
|
|
const char * |
newPath |
|
) |
| |
|
inlineinherited |
Rename a file or subdirectory.
- Parameters
-
| [in] | oldPath | Path name to the file or subdirectory to be renamed. |
| [in] | newPath | New path name of the file or subdirectory. |
The newPath object must not exist before the rename call.
The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.
- Returns
- The value true is returned for success and the value false is returned for failure.
| bool FatVolume::rmdir |
( |
const char * |
path | ) |
|
|
inlineinherited |
Remove a subdirectory from the volume's working directory.
- Parameters
-
| [in] | path | A path with a valid name for the subdirectory. |
The subdirectory file will be removed only if it is empty.
- Returns
- The value true is returned for success and the value false is returned for failure.
| uint16_t FatPartition::rootDirEntryCount |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The number of entries in the root directory for FAT16 volumes.
| uint32_t FatPartition::rootDirStart |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The logical sector number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- Returns
- SD card error code.
- Returns
- SD card error data.
| uint16_t FatPartition::sectorMask |
( |
| ) |
|
|
inlineinherited |
- Returns
- Mask for sector offset.
| uint8_t FatPartition::sectorsPerCluster |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The volume's cluster size in sectors.
| uint8_t FatPartition::sectorsPerClusterShift |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The shift count required to multiply by sectorsPerCluster.
| uint32_t FatPartition::sectorsPerFat |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The number of sectors in one FAT.
| bool FatVolume::truncate |
( |
const char * |
path, |
|
|
uint32_t |
length |
|
) |
| |
|
inlineinherited |
Truncate a file to a specified length. The current file position will be at the new EOF.
- Parameters
-
| [in] | path | A path with a valid name for the file. |
| [in] | length | The desired length for the file. |
- Returns
- The value true is returned for success and the value false is returned for failure.
Initialize file system after call to cardBegin.
- Returns
- true for success else false.
| uint32_t FatPartition::volumeSectorCount |
( |
| ) |
const |
|
inlineinherited |
- Returns
- The number of sectors in the volume
| bool FatVolume::wipe |
( |
print_t * |
pr = nullptr | ) |
|
|
inlineinherited |
Wipe all data from the volume. You must reinitialize the volume before accessing it again.
- Parameters
-
| [in] | pr | print stream for status dots. |
- Returns
- true for success else false.
The documentation for this class was generated from the following file:
- ArduinoSdFs/libraries/SdFs/src/SdFs.h


In order to win you must win more rounds as the computer (single player game) or your opponent (multiplayer game).
There are two players:
The game consists of more rounds. The overall score is displayed near the "Start new round" button in the "Start Round" Tab.
The game board is a chess board like square grid. You must place 3 planes on the grid and the computer/opponent as well 3 on its own. You will not be able to see where the computer/opponent has placed its/his/her planes. The placed planes should not overlap and should not lie outside the board. Near the allowed area for the planes, 3 more square layers, marked with a different color are added. These will allow you to rotate the plane outside the playable board when positioning it.
The game consists of a set of rounds. In the Single-Player version the first round will start immediately when the program is started. The other rounds are started by clicking on the "Start new round" button in the "Start Round" Tab. In the Multi-Player version the user has to login to the game server and join/create a game before starting to play.
In order to win a round you must guess the position of the heads of the planes placed by the computer/opponent on its/his/her board before the computer/opponent guesses the same for your planes.
A round has two phases: during the first you position the planes on your grid, while during the second you must guess the position of the planes position by the computer/opponent on its/his/her grid. To position your planes you select a desired plane and then with the corresponding buttons in the interface you can translate it to the left, or to the right, upwards or downwards or rotate it. The selected plane can be changed with the help of a selection button. Once you have positioned your planes you can click on the done button to start guessing the computer's planes. Guessing is achieved by clicking on the squares where you think a plane head lies. The computer/opponent will mark the square with a circle when you did not click on a plane, with a rhombus when you have guessed a plane point but not a plane head and with a X when you have guessed a plane head. The statistic of your attempts is given in the left panel near the game board. Similarly a statistic for the computer/opponent's attempts is displayed as well.
In the multiplayer version the player is required to connect to the game server. In the beginning one should register a username and password on the game server. This is achived in the Tab "Login" in the left pane which will be shown immediately after starting the game in multiplayer modus. Once the username and password were registered one can use them to login. After successfull login one can connect to a game or create a game togetheto play with another player.
In the multiplayer version there are two players involved. They should decide upon a game name and fill in the "GameName" field in the "ConnectToGame" Tab. After clicking "Submit" there are three possibilites:
Plane positions are set exactly the same as in the single player version. After deciding where to place the planes the data needs to be sent to the opponent. When clicking on "Done editing" the plane positions are automatically sent to the opponent. However it can be that your opponent has not decided yet where to place the planes. In order to get the data at a later moment you can use the button "Acquire opponent planes positions" or simply wait until the software reads the opponent's positions from the server. Once the opponent planes positions were acquired from server you can start guessing on the opponent's game board.
Guessing on the opponent's board is exactly the same as in the single player version. When you click on the board the chosen position is sent to the server and the server may send all the guesses made by the opponent up to that moment. If you want simply to acquire opponent guesses use the button "Acquire opponent moves".


About me
I am Mutunga,Victor Mutunga. In my 18 years of age I've picked up a bevy of interests, among them a love for computers and a desire to understand how they function. This is ultimately why i chose to enroll in the the Moringa school programming course. I have attained my High School. I have no job experience.
Hobbies
My Github page:


yamdl¶
The Youtube Audio Matcher Download
command line tool yamdl
can be used to efficiently and asynchronously
download the audio from any number of YouTube channels/users as MP3s.
Usage¶
usage: yamdl [-h] [-d <path>] [-L <seconds>] [-S <seconds>] [-i]
[-p <seconds>] [-r <num>] [-y] [--start <seconds>]
[--end <seconds>] [--duration <seconds>] [--debug] [-s]
urls [urls ...]
Efficiently and quickly download the audio from all videos on one or more
YouTube channels, filter based on video length, and extract audio only from
the segments of interest.
positional arguments:
urls One or more space-separated channel/user URLs (e.g.,
www.youtube.com/c/YouTubeCreators). Options apply to
all URLs.
optional arguments:
-h, --help show this help message and exit
download arguments:
-d <path>, --dst-dir <path>
Path to destination directory for downloaded files
(default: .)
-L <seconds>, --exclude-longer-than <seconds>
Do not download/convert videos longer than specified
duration. This does NOT truncate videos to a maximum
desired length; to extract or truncate specific
segments of audio from downloaded videos, use --start,
--end, and/or --duration (default: None)
-S <seconds>, --exclude-shorter-than <seconds>
Do not download/convert videos shorter than specified
duration (default: None)
-i, --ignore-existing
Do not download files that already exist (default:
False)
-p <seconds>, --page-load-wait <seconds>
Time to wait (in seconds) to allow page to load on
initial page load and and after each page scroll
(default: 1)
-r <num>, --retries <num>
Number of times to re-attempt failed downloads. Pass
-1 to retry indefinitely until successful (default: 5)
-y, --youtubedl-verbose
Enable youtube-dl and ffmpeg terminal output (default:
False)
--start <seconds> Extract audio beginning at the specified video time
(in seconds) (default: None)
--end <seconds> Extract audio up to the specified video time (in
seconds) (default: None)
--duration <seconds> Duration (in seconds) of audio to extract beginning at
0 if --start not specified, otherwise at --start. If
--duration is used with --end, --duration takes
precedence. (default: None)
Verbosity arguments:
--debug Print verbose debugging info (default: False)
-s, --silent Suppress youtube-audio-matcher terminal output
(default: False)
Examples¶
The following command downloads all videos from two YouTube channels/users
(youtube.com/user/ytuser
and youtube.com/c/somechannel
) as MP3 files
to the current directory.
yamdl youtube.com/user/ytuser youtube.com/c/somechannel
To specify a destination directory, use the -d
/--dst-dir
option. To
ignore existing files and skip downloading them, use the
-i
/--ignore-existing
switch.
yamdl youtube.com/user/ytuser youtube.com/c/somechannel -d ~/downloads -i
Use the -L
/--exclude-longer-than
option to ignore any videos longer
than the specified number of seconds. Use the -S
/--exclude-shorter-than
option to ignore videos shorter than the specified number of seconds. The
following commands downloads all videos shorter than 15 seconds and longer than
5 minutes:
yamdl youtube.com/user/ytuser youtube.com/c/somechannel -S 15 -L 300
Use --start
, --end
, and/or --duration
options to select a specific
segment of audio from the downloaded files.
Note
--duration
takes precedence over --end
if both are provided (as
defined by the FFmpeg
usage). If both --duration
and --end
are omitted, the whole video
beginning at --start
(or 0, if --start
is also omitted) is converted
to MP3.
Important
--start
, --duration
, and --end
specify which segments of audio to
retain after files have been downloaded. They do not control which videos
are downloaded. In other words, -L
/--exclude-longer-than
prevents
videos longer than the specified duration from being downloaded; it does
not truncate them to that length (use --duration
or --end
to
truncate any downloaded videos to a maximum length).
To download all videos with a duration of at least 15 seconds and less than 5 minutes and truncate them to the first 30 seconds of audio, use the following command:
yamdl youtube.com/user/ytuser youtube.com/c/somechannel -S 15 -L 300 \
--duration 30
YouTube Audio Matcher utilizes Selenium to scrape YouTube channel/user
web pages by scrolling to the bottom of the Videos page and waiting between
each page scroll event to allow the new videos to load. It compares the page
source after each wait/scroll to the last page source and, if they are
identical, assumes the bottom of the videos list has been reached (i.e.,
that we’ve scrolled to the bottom of the page). The wait is set to 1 second by
default. On slower internet connections, this may be insufficient, and the
page may not have enough time to load. In this case, increase the page load
wait time using the -p
/--page-load-wait
option to specify the number
of seconds to wait. The following example sets the between-scroll page load
wait time to 5 seconds:
yamdl youtube.com/user/ytuser youtube.com/c/somechannel -p 5


| MPI_OP_CREATE(function, commute, op) | |
| IN function | user defined function (function) |
| IN commute | true if commutative; false otherwise. |
| OUT op | operation (handle) |
int MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op)
MPI_OP_CREATE( FUNCTION, COMMUTE, OP, IERROR)
The argument function is the user-defined function, which must have thefollowing four arguments: invec, inoutvec, len and datatype.
The
ISO C
prototype for the function is the following.
typedef void MPI_User_function(void *invec, void *inoutvec, int *len, MPI_Datatype *datatype);
SUBROUTINE USER_FUNCTION(INVEC, INOUTVEC, LEN, TYPE)
{ typedef void MPI::User_function(const void* invec, void *inoutvec, int len, const Datatype& datatype); (binding deprecated, see Section Deprecated since MPI-2.2
) }
Informally, we can think of
invec and inoutvec as arrays of len elements that
function
is combining. The result of the reduction over-writes values in
inoutvec, hence the name. Each invocation of the function results in
the pointwise evaluation of the reduce operator on len
elements:
i.e., the function returns in inoutvec[i] the value invec[i] ° inoutvec[i], for i=0, ... , count-1,
where ° is the combining operation computed by the function.
The
len
argument allows
MPI_REDUCE to avoid calling the function for each element
in the input buffer. Rather, the system can choose to apply
the function to chunks of input. In C, it is passed in as
a reference for reasons of compatibility with Fortran.
By internally comparing the value of the datatype argument to
known, global handles,
it is possible to overload the use of a single user-defined function
for several, different data types.
( End of rationale.)
No MPI communication function may be called inside the user function.
MPI_ABORT may be called inside the
function in case of an error.
Suppose one defines a library of user-defined reduce
functions that are overloaded: the datatype argument is used
to select the right execution path at each invocation, according to
the types of the operands.
The user-defined reduce function cannot ``decode'' the
datatype argument that it is passed, and cannot identify,
by itself, the correspondence between the datatype handles and the datatype
they represent. This correspondence was established when the datatypes
were created. Before the library is used, a library initialization
preamble must be executed. This preamble code will define the
datatypes that are used by the library, and store handles to these
datatypes in global, static variables that are shared by the user code and the
library code.
The Fortran version of MPI_REDUCE will invoke a user-defined reduce
function using the Fortran calling conventions and will pass a Fortran-type
datatype argument; the C version will use C calling convention and the C
representation of a datatype handle. Users who plan to mix languages should
define their reduction functions accordingly.
( End of advice to users.)
We outline below a naive and inefficient implementation of MPI_REDUCE
not
supporting the ``in place'' option.
The predefined reduce operations can be implemented as a library of
user-defined operations. However, better performance might be
achieved if MPI_REDUCE handles these functions as a special
case.
( End of advice to implementors.)
int MPI_op_free( MPI_Op *op)
MPI_OP_FREE( OP, IERROR)
It is time for an example of user-defined reduction.
The example in this section uses an intracommunicator.
EXTERNAL FUNCTION
LOGICAL COMMUTE
INTEGER OP, IERROR
{ void MPI::Op::Init(MPI::User_function* function, bool commute) (binding deprecated, see Section Deprecated since MPI-2.2
) }
MPI_OP_CREATE binds a user-defined reduction operationto an op handle that can subsequently be used in
MPI_REDUCE, MPI_ALLREDUCE,
MPI_REDUCE_SCATTER,
MPI_SCAN, and MPI_EXSCAN.
The user-defined operation is assumed to be associative.
If commute = true, then the operation should be both
commutative and associative. If commute = false,
then the order of operands is fixed and is defined to be in ascending, process
rank order, beginning with process zero. The order of evaluation can be
changed, talking advantage of the associativity of the operation. If
commute = true then the order of evaluation can be changed,
taking advantage of commutativity and associativity.
The Fortran declaration of the user-defined function appears below.
<type> INVEC(LEN), INOUTVEC(LEN)
INTEGER LEN, TYPE
The C++ declaration of the user-defined function appears below.
The datatype argument
is a handle to the data type that was passed into the call
to MPI_REDUCE.
The user reduce function should be written such that the following
holds:
Let u[0], ... , u[len-1] be the len elements in the
communication buffer described by the arguments invec, len
and datatype when the function is invoked;
let v[0], ... , v[len-1] be len elements in the
communication buffer described by the arguments inoutvec, len
and datatype when the function is invoked;
let w[0], ... , w[len-1] be len elements in the
communication buffer described by the arguments inoutvec, len
and datatype when the function returns;
then w[i] = u[i]°v[i], for i=0 , ... , len-1,
where ° is the reduce operation that the function computes.
Rationale.
General datatypes may be passed to the user function.
However, use of datatypes that are not contiguous is likely to lead to
inefficiencies.
Advice to users.
Advice
to implementors.
MPI_Comm_size(comm, &groupsize);
MPI_Comm_rank(comm, &rank);
if (rank > 0) {
MPI_Recv(tempbuf, count, datatype, rank-1,...);
User_reduce(tempbuf, sendbuf, count, datatype);
}
if (rank < groupsize-1) {
MPI_Send(sendbuf, count, datatype, rank+1, ...);
}
/* answer now resides in process groupsize-1 ... now send to root
*/
if (rank == root) {
MPI_Irecv(recvbuf, count, datatype, groupsize-1,..., &req);
}
if (rank == groupsize-1) {
MPI_Send(sendbuf, count, datatype, root, ...);
}
if (rank == root) {
MPI_Wait(&req, &status);
}
The reduction computation proceeds, sequentially, from process 0
to process
groupsize-1.
This order is chosen so as to respect
the order of a possibly non-commutative operator defined by the
function User_reduce().
A more efficient implementation is achieved by taking advantage
of associativity and
using a logarithmic tree reduction. Commutativity can be used
to advantage, for those cases in which the commute argument
to MPI_OP_CREATE is true. Also, the amount of temporary buffer
required can be reduced, and communication can be pipelined with
computation, by transferring and reducing the elements in chunks of
size len < count.
MPI_OP_FREE( op) INOUT op operation (handle)
INTEGER OP, IERROR
{ void MPI::Op::Free() (binding deprecated, see Section Deprecated since MPI-2.2
) }
Marks a user-defined reduction operation for deallocation and sets
op to MPI_OP_NULL.
Up: Global Reduction Operations
Next: Example of User-defined Reduce
Previous: MINLOC and MAXLOC
106.1. Example of User-defined Reduce
Up: User-Defined Reduction Operations
Next: All-Reduce
Previous: User-Defined Reduction Operations
Example
Compute the product of an array of complex numbers, in C.
Up: User-Defined Reduction Operations
Next: All-Reduce
Previous: User-Defined Reduction Operations
Return to MPI-2.2 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-2.2 of September 4, 2009
HTML Generated on September 10, 2009


Murder charge dismissed in Alabama State student’s killing
MONTGOMERY, Ala. (AP) - A reckless murder charge has been dismissed against a man accused in the fatal shooting of an Alabama State University student.
The Montgomery Advertiser reports District Judge Tiffany McCord questioned evidence presented against 23-year-old William Slater during a preliminary hearing on Wednesday before ruling there wasn’t probable cause to convict him.
 The state’s investigator testified a shell casing found nearby matched a gun Slater had.
Slater’s attorney argued it couldn’t be proven the defendant acted with a shooter or was the instigator. A deputy district attorney responded that Slater could still be prosecuted as an accomplice without proof he fired the fatal bullet, but McCord dismissed the charge.
Information from: Montgomery Advertiser, http://www.montgomeryadvertiser.com
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


unbuffer disables the output buffering that occurs when program output is redirected from non-interactive programs. For example, suppose you are watching the output from a fifo by running it through od and then more.
od -c /tmp/fifo | more
You will not see anything until a full page of output has been produced.
You can disable this automatic buffering as follows:
unbuffer od -c /tmp/fifo | more
Normally, unbuffer does not read from stdin. This simplifies use of unbuffer in some situations. To use unbuffer in a pipeline, use the -p flag. Example:
process1 | unbuffer -p process2 | process3
unbuffer -p may appear to work incorrectly if a process feeding input to unbuffer exits. Consider:
process1 | unbuffer -p process2 | process3
If process1 exits, process2 may not yet have finished. It is impossible for unbuffer to know long to wait for process2 and process2 may not ever finish, for example, if it is a filter. For expediency, unbuffer simply exits when it encounters an EOF from either its input or process2.
In order to have a version of unbuffer that worked in all situations, an oracle would be necessary. If you want an application-specific solution, workarounds or hand-coded Expect may be more suitable. For example, the following example shows how to allow grep to finish processing when the cat before it finishes first. Using cat to feed grep would never require unbuffer in real life. It is merely a placeholder for some imaginary process that may or may not finish. Similarly, the final cat at the end of the pipeline is also a placeholder for another process.
$ cat /tmp/abcdef.log | grep abc | cat abcdef xxxabc defxxx $ cat /tmp/abcdef.log | unbuffer grep abc | cat $ (cat /tmp/abcdef.log ; sleep 1) | unbuffer grep abc | cat abcdef xxxabc defxxx $
The man page is longer than the program.
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs" by Don Libes, O'Reilly and Associates, January 1995.
Don Libes, National Institute of Standards and Technology


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
yorklab05-Jan-19 01:10 AM
I don't know if it's going lower, but that run before was basically initiated by one person. With low volume it is easy to manipulate if you have more than a few bitcoin. The market may be waiting for Komodo to make the next move now.
1
Of course if someone want's to manipulate the price back up again that would be fine with me.(edited)
ComputerGenie 👴👴👴05-Jan-19 01:32 AM
Are we not all on the same team we all want the best thing for komodo. So I really don't understand the conflict.
I don't understand it either, @hastrup; especially since the wallet that that he's butthurt about isn't even by or involving anyone in this community. From what I gather, there's a loose association between the wallet and 1 or 2 people but it was more that they wanted options for the community than particular "ties" to that wallet. Like I said, this is about far more than a mention in a file and maybe someday he'll tell us what he's really mad about....(edited)
hastrup05-Jan-19 02:08 AM
@ComputerGenie 👴👴👴 don't under play the claim ledger option it have been a request from the community for very long time. You both have said some horrible thing to each other. I just don't get how it went this far. When we all what the best for kmd Sui was flabbergasted that there where any drama. As I know it this community is fact based we don't speculates we producers and help each other. I say we but I can't code or do marketing. But we all want the same thing kmd to make it. I have a whole monolog but I can't translate it. But as Google say "don't be evil" like they even try not the point. All have a great evening good day
so now it should be clear that if your code can be copy-pasted then first you need to get funds to get paid not to feel abused. And so thre must be a group interested in such code. If there is not big enough group there will be no funding. How many people use ledger with Agama? Personally I use Agama on a PC so I see it mostly beneficial to Ledger, not to KMD, as it makes Ledger product better, Agama is good on all default machines.
 I pick my battles. etc.
murica
passcombo.com 🏴☠🏴05-Jan-19 10:31 AM
ok then let's open #talk-licensing if this is getting to be a big issue for KMD
actionslacks05-Jan-19 10:32 AM
please
lets do that
this project is marketcap-wise the equivalent to a company I work for and they have a small strike team of lawyers to deal with ip infractions overseas. it's time to play small ball with this shit.
softball time is over
And I am in no way affiliated with kmd, just saying
c'mon
really?  Nor can you claim rewards with it unless you extract the privkey, which defeats the purpose of the hardware wallet.(edited)
This is a problem that the community has been asking the team to solve for 2 years.
 You should have known.
Anyway that will be my last comment on it. People will not change and i would rather sit here and wait for KMD to moon.
Some magical whales will come with their magical GUI devs and we will all be rich once they are done!  I'm not a coder. But I'll hop on a plane to indonesia to serve you some papers in a heartbeat
ComputerGenie 👴👴👴05-Jan-19 11:03 AM
serving and winning are 3 different creatures
actionslacks05-Jan-19 11:06 AM
I've already won, years ago. money still matters, but not as much. this is my pet project. much like many here. and when an outsider comes in and shits in the house of my brethren, I take offense. it's only natural
I go to bitcoin conferences all over america with my supernet card and shill
I love you guys
passcombo.com 🏴☠🏴05-Jan-19 11:10 AM
@hyperDEX I understand your anger, but can you show me the list of people that requestet the feature ? For me there is never the case that all the people wants sth, and if sth is necessary that requires a lot of work you need to have at least evidence for that. Best evidance is funds raised. Secondary is list of people or a poll. I think I'm part of "this community" but never requested ledger claim button. I dont see how ledger is needed for KMD at all. This is my point of view. To go beyond points of views proofs are needed, like I mention in sentence before. If no proofs we stay on "point of view" discussion level which may be fun for some but mostly useless.
ledger is a steaming pile of shit that is likely hackable by any number of methods but the real metric is adoption and perception
hyperDEX05-Jan-19 11:12 AM
Should i spend the next few days compiling a list of people requesting it to justify my investment?
passcombo.com 🏴☠🏴05-Jan-19 11:12 AM
Regarding licensing @actionslacks maybe Im wrong but it seems people want decentralization as they do not believe in the law or they want to remove it, which means remove licensing needs too, make everything open source and no-rights maybe? So this is also a community of "no complaints" since you participate in it on such rules? IDK, interesting times for sure
@hyperDEX depends if you want to prove sth or not
hyperDEX05-Jan-19 11:13 AM
There are rules even for open source
passcombo.com 🏴☠🏴05-Jan-19 11:13 AM
if those people requested - you could aske them for support
I dont know these people
Crabby Paddy05-Jan-19 11:14 AM
hyperDEX05-Jan-19 11:14 AM
Ask them for support to do what?
actionslacks05-Jan-19 11:14 AM
the point is that luke spent countless hours reverse engineering the motherfucker and magma cam in and said "hurr durr it's not rocket science to steal your code"
hyperDEX05-Jan-19 11:14 AM
Who do you think paid for the countless hours
passcombo.com 🏴☠🏴05-Jan-19 11:14 AM
I think the purpose of you writing here sth is waiting for kind of support?
expecting
hyperDEX05-Jan-19 11:14 AM
To do what?
passcombo.com 🏴☠🏴05-Jan-19 11:15 AM
which is obvious - if I spent much time working on sth that I believe some people wanted from me I would expect some support if I was in trouble
usually the purpose of comunication is to get sth, but I'm sociopath so I may be wrong
hyperDEX05-Jan-19 11:17 AM
Do you see me complaining that i got less than 1 KMD for HyperDEX in terms of donations?

ComputerGenie 👴👴👴05-Jan-19 11:20 AM
I wont be posting in this channel from now on.

That never worked for #tradebots or #dev-tradebots
#JustSayin'
actionslacks05-Jan-19 11:21 AM
I'm just trying to stick my finger in the proverbial dam here @grewalsatinder If you think this will be the last instance of blatant plagarism I'm afraid that we are just getting started here
ComputerGenie 👴👴👴05-Jan-19 11:22 AM
If you think this will be the last instance of blatant plagarism I'm afraid that we are just getting started here
Stop "victim blaming"


Cloud computing is the delivery of on-demand computing services -- from applications to storage and processing power -- typically over the internet and on a pay-as-you-go basis. Everything from storage, networking and processing power can be rented over on the cloud.
When we are using the cloud, we are risking our data by putting it online. It gives more accessibility but at the cost of being vulnerable to hacking. This is the biggest trade-off when thinking of moving to the cloud. When a DDoS (Distributed Denial of Service) attack takes place, the data on the cloud is inaccessible and downtiming can occur.
If the data which you need to access is time sensitive to your customers then this downtiming can affect the users and cause distress to them. The data is unavailable during the DDoS and unless you have a backup you are left with nothing but to wait till the service is back online.
Even the best teams can suffer from downtiming and server outages from time to time. The best example to illustrate this is the event which occurred on May 20, 2015. On this particular day, Apple iCloud had a seven- hour outage that affected the email and other cloud services like iCloud, drives amongst others. Some cloud providers have improved on this by setting up multi-region servers so that if one location gets DDoS’d then there is backup from where the data can be accessed (at least partially so).
If the cloud is being used in a home then the cost is not worth the benefits of accessibility it provides since inside a home the data does not needed everywhere. Even though the cloud service providers use industry best security practices there are still concerns regarding the sensitive data as it can be stolen by hackers. If an organization has signed up for a cloud service and they are not totally satisfied with the service then they would want to move to some other cloud service provider but that is not very easy because clouds are not cross-compatible.
Another issue when using the cloud is that other than downtiming the cloud can have technical issues which might not be resolvable by reading the FAQ and you might want immediate remedy for that but since the technical support is not available 24/7 you might have to wait even days to get a response from the team depending on the quality of customer support the provider is offering.
Furthermore, among the disadvantages of cloud computing is that its network connection dependency. Despite the numerous advantages of cloud computing, if there is no internet, the individual cannot send or retrieve files from the cloud.
Finally, the choice to use cloud services or not depends on the risk appetite of the user. If the user wants to sync his data everywhere and is comfortable with using third party services for personal data then moving to the cloud seems quite reasonable and for organizations it means they can then rent cloud services on a pay-as-you-go basis but at the significant risk of data theft.
Susan Ward. (2019). The Disadvantages of Cloud Computing. Retrieved from: https://www.thebalancesmb.com/disadvantages-of-cloud-computing-4067218
Andrew Larkin. (2019). The Disadvantages of Cloud Computing. Retrieved from: https://cloudacademy.com/blog/disadvantages-of-cloud-computing/ Sarah Lavinski. (2019). 10 Disadvantages & Risks of Cloud Computing. Retrieved from: https://medium.com/faun/10-disadvantages-risks-of-cloud-computing-35111de75611


| TIARA | A Lightweight Annotation Tool for Hierarchical-structured Discourse-relation [Live demo] |
| There are many great annotation tools available out there. However, some (if not many) require complicated steps (and dependencies) to install. That is why we provide this client-side annotation tool. The tool is customizable, by changing the conguration to suit your annotation scheme (explained in the manual). The tool was used in this paper. *) Since it is a client-side tool, your data (essay) will not be uploaded. |


--- layout: default title: sb-admin Jekyll subtitle: A Jekyll Template for a beautiful Bootstrap 4 Theme ---
This site is not yet open to the public. See Getting Started page.
Aim:
A SIMPLE way to replace the current multiple Emails, SMS and phone calls when organise events such as Mountain Bike Rides, Drinks, Water sports, Parties, gathering etc for a small group of friends.
You must sign up first, then be manually authorised before your acount will be activated on this site.
We don't all use FBook or other social networking apps!
If we don't know you (friends of friends), you probably will get rejected.
Having said that, if there is enough demand then I may be open to public in future.
This sites original intention was to be absolutley free of charge, and currently is.
As user limits and threshold raise (number members join, number of entries in database, number of emails sent.
It will start encuring costs to run this site, at which point will no longer be feasable, hence only open to limited group at present.
For this reason (and time constraints) this site has limited functionality and speed.
The only real personal information of members stored in this system is email addresses and first name (optional).
Hence this site is more for the privacy advocates. We don't collect user info or sell it to 3rd parties.
Your informations is yours!


AP Driving School
Home
About
Services
(current)
Contact
Register
First Name
Last Name
P/NO
Rank
Choose the course you want to pursue
elementary driving course
conversion driving course
tactical driving course
refresher driving course
Subject


Sometimes
My awesome web page
Hello there, awesome person!
This
is an
My favorite site is
GitHub
!
this
is an
unorder


ETJump is a modification for Wolfenstein: Enemy Territory. It is actively developed by Aciz, Ryven and Zero.


GENERAL REMARK: Beside the verifcations, which are not able to cover all possible applications of a model, a plausibility check should be performed on each model (e.g. an energy balance). This is specially true if components are used "just a bit" outside their initial verifcation.
The procedure implemented in Carnot version 6 has some basic rules:
verifcations can be reproduced by any user
verifcations compare reference (literature) values to Carnot simulation results
verifcations compare Carnot simulation results of the author of a function or model to simulation resuts on your machine (which may not have the same Matlab or Windows version).
Each
model or function must have a verify_<Function_or_Model_Name>.m function in
its verification folder (see also template_verify_Function.m in the folder
\public\tutorial\templates).
A general verification skript (verify_carnot) calls all
these functions during the verification process.
In the verify_.m function the literature values and initial simulation result are loaded and compared to the results of the call of the function or model. It is recommended to compare several values.
Examples:
1) Temperature dependant functions like material properties should be evaluated over the full range of the valid temperatures.
The result of each temperature value should be compared. You may use the function calculate_verification_error
with a temperature vector and a result vector as input. The
parameter settings 'relative' and 'max' gives the relative error of the data point with
the highest difference.
2) For Simulink models a time-dependant behavior of the power or the temperatures
is often expected whereas the verification has also a criteria of energetic
differences. Create a timeseries output of your model and compare for example
the temperatures. Use calculate_verification_error, 'absolute' and 'average' to
find the mean difference in temperatures. Use calculate_verification_error,
'absolute' and 'last' to compare the energy difference at the end of the
simulation.
calculate_verification_error
Type: Matlab function
Folder: \public\src_m
This folder is on the Matlab path, the function is available directly in the
command window.
A development version is in the folder
\public\library_m\carnot_library_tools\calculate_verification_error
Use this version if you want to modify the function without affecting the
generally available function before a complete test.
The function calculates the absolute or relative error between too simulation or calculation results.
[e ye] = calculate_verification_error(yref, ysim, r, s)
inputs:
yref - scalar od vector with the reference ('correct') values for the result of
the function
ysim - scalar or vector (same length as yref) with the simulated or calculated
results of the function
r - 'relative' error or 'absolute' error
s - 'sum' - e is the sum of the individual errors of ysim
'mean' - e is the mean of the individual errors of ysim
'max' - e is the maximum of the individual errors of
ysim
'last' - e is the last value in ysim
outputs:
e - scalar error (absolute or relative error over the total dataset)
ye - individual error (absolute or relative) of each value in y
function calls:
function is used by: verify_<Function_or_ModelName>>
this function calls: --
display_verification_error
Type: Matlab function
Folder: \public\src_m
This folder is on the Matlab path, the function is available directly in the
command window.
A development version is in the folder
\public\library_m\carnot_library_tools\display_verification_error
Use this version if you want to modify the function without affecting the
generally available function before a complete test.
The function to plot the verification error creates a figure with 2 subplots showing the values and the resulting error.
display_verification_error(x, y, ye, st, sx, sy1, sleg1, sy2, sleg2, stxt)
inputs:
x - vector with x values for the plot
y - matrix with y-values (reference values and result of the function call)
ye - matrix with error values for each y-value
st - string with title for upper window
sx - string for the x-axis label
sy1 - string for the y-axis label in the upper window
sleg1 - strings for the upper legend (number of strings must be equal to number
of columns in y-Matrix, e.g. {'firstline','secondline'}
sy2 - string for the y-label of the lower window
sleg2 - strings for the lower legend (number of strings must be equal to number
of columns in y-Matrix, e.g. {'firstline','secondline'}
stxt - string with the verification result information
function calls:
function is used by: verify_<Function_or_ModelName>
this function calls: --
verify_<Function_or_Model_Name>
Type: Matlab function
Folder: \verification of each function
or model
The function compares 3 results: Reference (literature) values of the function, initial calculation and current calculation. The aim is to verify the function with literature values and with the initial version of the function.
[v, s] = verify_Function_or_ModelName([show])
Inputs:
show - optional flag for display
0
: show results only if verification fails
1
: show results allways
Outputs:
v - true if verification passed, false otherwise
s - text string with verification result
Literature: specific to the verification function
A template for the function is available
template_verify_Function.m
in the folder:
\public\tutorial\templates
This function shows a simple example of the verification of
myM_Function_verificationDemo.m
and a Simulink model
template_verify_SimulinkBlock_mdl.mdl.
verify_carnot
Type: Matlab function
Folder: \public\common\verification
The folder is not on the Matlab path, change to the folder manually and than run
the function.
Calls all verify_*.m functions. It uses dir2 to search for all verification functions (verify_*.m) and than calls the functions.
v = verification_carnot
Input: none
Output:
v - True (1) if verification is ok, False (0) otherwise
Function Calls:
function is used by: --
this function calls: dir2, verify_*.m
Literature: --
The following verification has been reported in papers, theses or other documents:
A comparison of the model with test data of a flat plate collector has been done by Faure 2011.
The model was compared by Middelbeck 2003 (in German language) with field measurements.
The model has been verified by Faure 2010 with the measurements of a brine-water heat pump.
The Simple_House was tested by Wemhoener et al. 2007 and compared to Besttest.
A verification of the Simple_House_ISO_Groundmodel was done by Peter et al. 2014 for the work of the IEA Task 32 and 44.
The Storage_Type_1 (buffer tank with 2 connections) was verified according to
EN 12977 by Lohmann 2012. The data and model
test_EN12977_StorageType1_Strat.mdl is available in the folder
\public\library_simulink\Storage\Thermal\Storage_Type_1\verification.
The general
function storage_Tnodes which is used by all Storage_Type_N models is
verified according to the benchmark of EN 12977 Annex A (thermal losses and
heat exchanger performance). See:
verify_StorageTnodesDataFitHX in folder
\public\library_simulink\Storage\Thermal\Storage_Type_2\verification
verify_StorageTnodesEN12977hx
in folder
\public\library_simulink\Storage\Thermal\Storage_Type_2\verification
verify_StorageTnodesEN12977losses in
folder
\public\library_simulink\Basic\Thermal_Models\sfun_storageTnodes\verification
inclined_surface (function surfrad)
The calculation of the radiation on an inclined surface was compared with Meteonorm by Hafner 2012
fluid property functions in Carlib
The fluid properties were compared to data in the literature. ( Bernd Glueck, VDI Wärmeatlas, Schmidttabelle, Tyforop Data Tables). See also the functions in the verification folder of Carlib (\public\library_c\carlib\verification).
vertical_ground_source_heat_exchanger
The EWS model of the vertical ground source heat exchanger for heat pumps was verified by Ochs 2012.
A template for verification reports is available here.
Faure: Validation of a new heat pump model for Carnot library, Viessmann Faulquemont S.A.S, 2010
Hafner: Validation of the block inclined_surface with Meteonorm data, Viessmann Werke, 2012
Ochs: CARNOT EWS model - Model for vertical ground heat exchanger, University of Innsbruck, 2012


{% extends "base.html" %} {% load staticfiles %} {% block title %}Password Reset Information{% endblock %} {% block head_js %} {% endblock %} {% block body_content %} {% include 'fragments/user_info.html' %}
In order to reset your password, in the event that it is ever forgotten or expired, you must provide either a valid US mobile phone number that is capable of receiving text messages or an alternate (non-PSU) email address to which we can send a password reset code.
If you cannot enter either of these fields, contact us.


Users to be cleansed
Kick the following users
#
Name
Nickname
Joined
Mention
Account age
{% for user in users %}
{{loop.index}}
{{user["name"]}}
{{user["nick"]}}
{{user["joined"]}}
{{user["mention"]}}
{{user["age"]}}
{% endfor %}


While browsing, I came across this excellent whitepaper on MSI 3.0 Patch Sequencing.
--- layout: post title: "Microsoft's Whitepaper on Patch Sequencing" date: 2004-11-23 comments: false ---
While browsing, I came across this excellent whitepaper on MSI 3.0 Patch Sequencing.


haskell-jp / translation #1
Top
Next
masako lee
2018-01-09 14:55:31 +0900
@masako lee has joined the channel
masako lee
2018-01-09 14:55:33 +0900
@masako lee set the channel purpose: Traslation as about question
lotz
2018-01-09 14:55:33 +0900
@lotz has joined the channel
tokoyax
2018-01-09 14:55:33 +0900
@tokoyax has joined the channel
shrynx
2018-01-09 14:55:33 +0900
@shrynx has joined the channel
2018-01-09 14:55:33 +0900
@ has joined the channel
ueda
2018-01-09 14:55:33 +0900
@ueda has joined the channel
hiroki_f
2018-01-09 14:55:33 +0900
@hiroki_f has joined the channel
kazu
2018-01-09 14:55:33 +0900
@kazu has joined the channel
rnons
2018-01-09 14:55:33 +0900
@rnons has joined the channel
Hiroto
2018-01-09 14:55:33 +0900
@Hiroto has joined the channel
tetsuyama
2018-01-09 14:55:33 +0900
@tetsuyama has joined the channel
maru10t
2018-01-09 14:55:33 +0900
@maru10t has joined the channel
yossy52
2018-01-09 14:55:33 +0900
@yossy52 has joined the channel
jabara
2018-01-09 14:55:33 +0900
@jabara has joined the channel
y_taka_23
2018-01-09 14:55:33 +0900
@y_taka_23 has joined the channel
igrep
2018-01-09 14:55:33 +0900
@igrep has joined the channel
reotaso
2018-01-09 14:55:33 +0900
@reotaso has joined the channel
fujiyan18
2018-01-09 14:55:33 +0900
@fujiyan18 has joined the channel
goroii
2018-01-09 14:55:33 +0900
@goroii has joined the channel
hsjoihs
2018-01-09 14:55:33 +0900
@hsjoihs has joined the channel
駒鳥(hxf_vogel)
2018-01-09 14:55:33 +0900
@駒鳥(hxf_vogel) has joined the channel
aiya000
2018-01-09 14:55:33 +0900
@aiya000 has joined the channel
H.Umehara
2018-01-09 14:55:33 +0900
@H.Umehara has joined the channel
hem6
2018-01-09 14:55:33 +0900
@hem6 has joined the channel
hexirp
2018-01-09 14:55:33 +0900
@hexirp has joined the channel
koba-e964
2018-01-09 14:55:33 +0900
@koba-e964 has joined the channel
kaorun343
2018-01-09 14:55:33 +0900
@kaorun343 has joined the channel
colorbox
2018-01-09 14:55:34 +0900
@colorbox has joined the channel
2018-01-09 14:55:34 +0900
@ has joined the channel
haru2036
2018-01-09 14:55:34 +0900
@haru2036 has joined the channel
nnwww
2018-01-09 14:55:34 +0900
@nnwww has joined the channel
2018-01-09 14:55:34 +0900
@ has joined the channel
2018-01-09 14:55:34 +0900
@ has joined the channel
hatsugai
2018-01-09 14:55:34 +0900
@hatsugai has joined the channel
2018-01-09 14:55:34 +0900
@ has joined the channel
khibino
2018-01-09 14:55:34 +0900
@khibino has joined the channel
as_capabl
2018-01-09 14:55:34 +0900
@as_capabl has joined the channel
yagi
2018-01-09 14:55:34 +0900
@yagi has joined the channel
2018-01-09 14:55:34 +0900
@ has joined the channel
himanoa
2018-01-09 14:55:34 +0900
@himanoa has joined the channel
thimura
2018-01-09 14:55:34 +0900
@thimura has joined the channel
hiratara
2018-01-09 14:55:34 +0900
@hiratara has joined the channel
takisawa
2018-01-09 14:55:34 +0900
@takisawa has joined the channel
owen
2018-01-09 14:55:34 +0900
@owen has joined the channel
abc10946
2018-01-09 14:55:34 +0900
@abc10946 has joined the channel
syocy
2018-01-09 14:55:34 +0900
@syocy has joined the channel
kehukef
2018-01-09 14:55:35 +0900
@kehukef has joined the channel
matsubara0507
2018-01-09 14:55:35 +0900
@matsubara0507 has joined the channel
fujiy
2018-01-09 14:55:35 +0900
@fujiy has joined the channel
Top
Next


Class PERSISTENT-CLASS
Method (CLASS-INDEX PERSISTENT-CLASS)
Class PERSISTENT-SLOT-MIXIN
Class PERSISTENT-DIRECT-SLOT-DEFINITION
Class PERSISTENT-EFFECTIVE-SLOT-DEFINITION
Function COPY-SLOT-DEFINITION
Function SLOT-DEFINITION-EQUAL
Function COMPARE-SLOTS Returns three values: a list of added slots, a list of discarded slots and a list of changed (according to SLOT-DEFINITION-EQUAL) slots.
Method (VALIDATE-SUPERCLASS STANDARD-CLASS PERSISTENT-CLASS)
Method (VALIDATE-SUPERCLASS PERSISTENT-CLASS STANDARD-CLASS)
Method (INITIALIZE-INSTANCE AROUND PERSISTENT-CLASS)
Method (REINITIALIZE-INSTANCE AROUND PERSISTENT-CLASS)
Function MAYBE-ADD-PERSISTENT-OBJECT-CLASS
Function UPDATE-INDEXES
Method (FINALIZE-INHERITANCE AFTER PERSISTENT-CLASS)
Function UPDATE-SLOT-INFO
Function MAYBE-UPDATE-SLOT-INFO
Method (DIRECT-SLOT-DEFINITION-CLASS PERSISTENT-CLASS)
Method (EFFECTIVE-SLOT-DEFINITION-CLASS PERSISTENT-CLASS)
Method (COMPUTE-EFFECTIVE-SLOT-DEFINITION PERSISTENT-CLASS T T)


{% extends "base.html" %} {% block content %}
Welcome to Sketch'n'Hit! Draw, hit and have fun with your friends.