Motivation
The Router
component allows to associate a set of URL locations (routes) from a source (called location source) to a component or set of components. When the location source emits a route, the component(s) associated to that route should be activated and be parameterized by the information encoded in the route.
Routing involves a sophisticated form of control flow, and relates strongly to the Switch
component. However, there are specifics to the routing logic, due to the fact that routing in web applications is principally aimed at representing efficiently, concisely, and visually a specific state of the application :
- routing may be nested : a parent-child relationship at component level may be encoded with a parent-child relationship at route level
- the standard mapping is a relationship between sections of the url. For instance
URL : 'x/y/z'
mapped toComponents : A1(x,y) -- B1(z)
- the standard mapping is a relationship between sections of the url. For instance
- If a location source emits twice in sequence the same location, then there should be no update in the application state (i.e. no components activated, or deactivated, or updated)
- If a location source emits twice in sequence the same already mapped segment of url, then the associated component should not be updated.
- In the previous case, this means
URL : 'x/y/a'
should not lead to any change in the state of componentA1
while it might lead to the componentB1(z)
being replaced by the componentB2(a)
- visual representation of state is achieved by incorporating in route sections meaningful words from the application domain (
URL : show/items?all
) - A route may also encode parameter passing in its sections (
URL : add/book?author=John&title=Ahoj
) in a standard way to facilitate parsing by the matching component.
- In the previous case, this means
As one can see, routing, at a simplified level, can be modelized as a two-concerns entity :
- a mapping between a URL (representing the application state) and a tree of components (which compose the application in the given state). In the case of nested routing, we have in fine a mapping between a tree of URL sections and a tree of components. This is generally referred to as deep linking.
- a procedure to match updates of that URL to updates of the component tree as efficiently as possible.
Some applications add extra control-flow requirement to routing by adding another concern :
- accepting/rejecting transition from one route (application state) to another route
The current routing component targets concerns 1 and 2, while leaving the third concern to the rest of the application. While a hierarchical state machine in principle addresses nicely all three concerns (at least for a low number of control states), we went for a simpler implementation in this first draft, which should fully address the most common nested routing cases.
API
OnRoute :: RouteSettings -> [Component] -> RouteComponent
Description
Creates a router component whose behaviour is parameterized via RouteSettings
. Children components are the components to be mapped to the incoming route specified in settings.
The parametrization is as follows :
- an array of sink names must be passed to indicate which sinks are to be extracted from the children components. Sinks produced by any child component which are not in the sink names array will be ignored. It is not necessary, for any sink name in that array, for a child component to return a sink of that name.
- the source from which the urls are emitted may be specified with
routeSource
setting property, in which case urls will be read fromsources[routeSource]
.'route$'
is the default value forrouteSource
- the route matching/parameter parsing is specified by a syntax akin to a regular expression (termed instead a dynamic expression) :
javascript var search = routeMatcher("search/:query/p:page"); search.parse("search/gonna-fail") // null (no match) search.parse("search/cowboy/p5") // {query: "cowboy", page: "5"} search.parse("search/gnarf/p10") // {query: "gnarf", page: "10"}
The behaviour is as follows :
- for every incoming value of the location source, the incoming route is matched against the configured route
- if there is a match, and that match is the same as the previous match, nothing happens, the component(s) was/were already activated previously
- if there is a non-redundant positive match on the configured route, then
- the associated components are executed with
- a location source which is updated to remove the matched path from the current location source
- this is the key mechanism allowing nested routing
- a
matched
property in settings which contain the partial route matching (for instance/section/:capture
will lead to{matched: capture: '...'}
)
- a location source which is updated to remove the matched path from the current location source
- the sinks returned by the associated components are activated (merged into the rest of the application sinks)
- those sinks whose name is not in the
sinkNames
property are discarded - those sinks whose name is in the
sinkNames
property are merged according to settings (default-merged if not)
- those sinks whose name is not in the
- the associated components are executed with
- if there is not a positive match on the configured route, then
null
is emitted onDOM
sinks. This is so under the hypothesis that router’s parent DOM sink will merge its children sinks withcombineLatest
, so we need all DOM sinks to have an initial value to avoid blocking thecombineLatest
operation. We also need to pass on the fact that the DOM is actually empty on that route1, so that previously displayed DOMs are actually erased on route changes. Concretely there are two common cases :- transition [MATCH, INIT] TO NO_MATCH -> EMITS NULL
- transition [MATCH, NO_MATCH] -> MATCH -> ALWAYS STARTS WITH NULL
One can refer to the tests to see this in action.
Types
RouteComponent :: Component
RouteSettings :: Record {
sinkNames :: [String]
Mandatoryroute :: RouteSpec
MandatoryrouteSource :: String
Mandatory}
RouteSpec :: String
syntax
Contracts
- be careful about end slashing
route :: RouteSpec
should not end by a/
or start with a/
(NOTE : for now! this is due to howrouteRemainder
is parsed and passed to children…)- if
routeSource
is specified, thensources[routeSource]
must be defined (and be an observable)
Example
cf. tests
Roadmap
- route parsing
- have the parsing library as a configurable dependency
- switch to more recent and functional https://github.com/rcs/route-parser
Tips
- The null emission mechanism is explained here for reference, and for analyzing output when testing. In a real application, the only impact this should have is that the DOM sink can receive null inputs, and as such must guards against them (filtering them out for instance)
- The current parsing library does not parse query strings but passes all the query string to the component. One can then use a specific query string parsing library. This ensures maximal flexibility for the router component library as any extra parsing library can be plugged in according to the shape of the route.
- when the route changes to a route for which there is no matching component, the displayed DOM does not change. If there is a need for a different treatment in such cases, that should be implemented, by adding a component with a wildcard matching any children route of relevance.
- The core reason is that DOM sink correspond to a behaviour, and hence should always have a value. That not being enforced by cyclejs framework forces us to adjust manually. [return]


UI / UX Design, Frontend Developer
since 2020
for business inquiries,
<EMAIL_ADDRESS>I really love programming when i start to create program until i see problem then solve that problem. i start to be freelance fullstack developer, app developer, and ui/ux design. i create some websites like travel, Online Shopping and etc. it's very interested for me to create website from frontend until backend. some frameworks that I used React JS, React Native, boostrap and etc.
I write about web development like framework, program, ui/ux design, and etc.
11 November 2020
11 November 2020
11 November 2020


About Me:
I am a sophomore student studying at the University Of Georgia, currently seeking a Bachelors of Science in Psychology. I enjoy swimming, programming and tinkering with computers in my free time. If there is one thing in the world I wish existed it would be new battery technology. Li-Po has got to go.
Education
- High School Diploma - Cherokee High School
- May 2017
- Bachelors Of Science - University Of Georgia
- Expected May 2020, Major - Psychology
Skills & Abilities
- Communication - I can communicate well with people one on one or in large groups. I can also deliver presentations and speeches excellently with or without preparation.
- Leadership - I co-founded my High School’s FBLA (Future Business Leaders of America) chapter alongside my friends and maintained leadership positions during my years in the club.
- Practicality - When time is of the essence and things are at stake, I am quick to resolve the situation and implement a functional solution.
- Secondary Languages - German, Spanish
- Technological knowledge - Windows/MacOS/Linux familiarity, knowledge of HTML + CSS, Python
Work Experience
- Oct 2018 - Current | Telephone Grassroots Advocate | Nextwave Advocacy LLC
Volunteering & Extracurriculars
- 1st Chair Clarinet | CHS Marching And Symphonic Band | 2013 – 2015
- Co-Founder/Secretary | FBLA - CHS Chapter | 2015 – 2016
- Member | CHS Beta Club | 2015 – 2016
- Volunteer | Canton Elementary Fallfest | 2016
- Treasurer | FBLA - CHS Chapter | 2016 – 2017
- Member | Spanish Honor Society | 2016 - 2017
- Volunteer | CHS Technology Fair | April 2017
Other Tidbits
- I love to repair old electronics.
- I have skydived before
, and will do it again. - I have won the lottery before. Only $100, but better than nothing.
My favorite genre of music is Eurobeat, of which you can listen to an excellent mix of here.
You can also find me on the Microsoft techcommunity:
Contact:
I can be contacted by phone<PHONE_NUMBER> at any of these days and times.
| Sunday | All Day |
| Monday | After 2 PM |
| Tuesday | After 4 PM |
| Wednesday | After 2 PM |
| Thursday | After 4 PM |
| Friday | All Day |
| Saturday | All Day |


CSS Tools: Reset CSS
The goal of a reset stylesheet is to reduce browser inconsistencies in things like default line heights, margins and font sizes of headings, and so on. The general reasoning behind this was discussed in a May 2007 post, if you're interested. Reset styles quite often appear in CSS frameworks, and the original "meyerweb reset" found its way into Blueprint, among others.
The reset styles given here are intentionally very generic. There isn't any default color or background set for the body
element, for example. I don't particularly recommend that you just use this in its unaltered state in your own projects. It should be tweaked, edited, extended, and otherwise tuned to match your specific reset baseline. Fill in your preferred colors for the page, links, and so on.
In other words, this is a starting point, not a self-contained black box of no-touchiness.
If you want to use my reset styles, then feel free! It's all explicitly in the public domain (I have to formally say that or else people ask me about licensing). You can grab a copy of the file to use and tweak as fits you best. If you're more of the copy-and-paste type, or just want an in-page preview of what you'll be getting, here it is.
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; }
Previous Versions
Acknowledgments
Thanks to Paul Chaplin for the blockquote
/ q
rules.


React Blog Posts
1 posts, page 1 of 1
-
Flux Backbone Todos Example
Nov 25, 2014This didactic Todo app was written to illustrate the Flux DSV (Dispatch Store View) design pattern.
1 posts, page 1 of 1
This didactic Todo app was written to illustrate the Flux DSV (Dispatch Store View) design pattern.


Cross entrpoy measures the difference between two probabilistic distributions and . It can be used to define the loss function in machine learning and optmization, where the true probility is the true label and the given distribution is the predicted value of the currenr model.
For logistic regression where and , the cross entropy measuring the similarity between and is
SigmoidCrossEntropyLoss
The multinomial logistic loss for multinomial logistic regression (also known as softmax regression) is
where is the class number, is the true class.
SoftMaxLoss
The objective of constrative loss is to enhance the constrast between two unsimilar feature vectors by some margin but minimize distance between two similar feature vectors. It is widely used in siamese network. The loss function is written as
where is the binary label and is the Euclidean distance between two feature vectors.
ConstrastiveLoss
每次迭代的梯度下降方向由所有样本决定，精度高，速度慢
将一次迭代的样本分成若干个mini-batch，每次迭代的梯度下降方向由一个mini-batch计算得到，精度低，速度快
Mini-batch GD的特例，每个mini-batch的大小是1
A loss function of an optimization process can be written as
The value is called weight_decay
, which is used to prevent overfitting in which case the weights get very large. It determines how dominant the regularization term will be in gradient computation. Options for selecting regularization type is provided, such as regularization_type: "L1"
or regularization_type: "L2"
(default).


FROM THE DESK OF DAN ASANTE SENIOR STAFF IN FILE DEPARTMENT, INTERNATIONAL COMMERCIAL BANK I.C.B ACCRA,GHANA.WEST AFRICA. PLANE CRASH WEB SITE HTTP://WWW.CNN.COM/2003/WORLD/AFRICA/12/26/BENIN.CRASH/INDEX.HTML ( "REMITTANCE OF $15 MILLION U.S.A DOLLARS CONFIDENTIAL IS THE CASE") COMPLIMENT OF THE SEASON, ON A VERY GOOD DAY.  IN AN ACCOUNT THAT BELONGS TO ONE OF OUR FOREIGN CUSTOMER WHO DIED ALONG WITH HIS ENTIRE FAMILY IN (FRIDAY DECEMBER 26,2003 ) IN A PLANE CRASH. SINCE WE GOT INFORMATION ABOUT HIS DEATH, WE HAVE BEEN EXPECTING HIS NEXT OF KIN TO COME OVER AND CLAIM HIS MONEY BECAUSE WE CANNOT RELEASE IT UNLESS SOMEBODY APPLIES FOR IT AS NEXT OF KIN OR RELATION TO THE DECEASED AS INDICATED IN OUR BANKING GUIDELINES, BUT UNFORTUNATELY WE LEARNT THAT ALL HIS SUPPOSED NEXT OF KIN OR RELATION DIED ALONGSIDE WITH HIM AT THE PLANE CRASH LEAVING NOBODY BEHIND FOR THE CLAIM.  THE BANKING LAW AND GUIDELINE HERE STIPULATES THAT IF SUCH MONEY REMAINED UNCLAMED AFTER FIVE YEARS, THE MONEY WILL BE TRANSFERED INTO THE BANK TREASURY AS UNCLAIMED FUND.    TRUSTING TO HEAR FROM YOUIMMEDIATELY.  _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


Some people unfamiliar with crypto call the industry and Bitcoin, in particular, a ponzi scheme. This claim, fortunately, is far from the truth. This article will help you shed light on what ponzi scheme actually is and what is the concern?
In 1919, the Italian Charles Ponzi moved to America and founded the "The Securities Exchange Company", which issued debt receipts with the obligation to pay $ 1,500 for every $ 1,000 invested in 90 days. In the spring of 1920, Ponzi acquired a great mansion in the prestigious area. In Summer he was detained due to a tax audit revealed a $7 MLN debt.
The scheme Ponzi used was a form of fraud with attractive, at first glance, conditions for investors and profit promises. In fact, the “profit” for the scheme victims derives from the contribution of earlier investors. For an average, non-financially-savvy people, especially in the crypto industry, Ponzi may seem as a sustainable business. In fact, this business only exists as long as there are new investors to contribute and as long as they believe in the dividends they get. Eventually, the Ponzi scheme is doomed to failure in any case.
A Ponzi scheme usually requires to register a legal entity, bank account and obtain a license to accept deposits and create advertisements, thus such schemes are often disguised as a conditional product, such as vouchers or club discount cards.
The crypto itself is promising technology of digital money that, unfortunately, can be used in pyramid schemes like any other means of payment. This is a currency, the operations are protected by mathematical algorithms and registered in the public blockchain distributed in the network. However, crypto can be used for purchasing goods and services used in pyramid schemes. You should know these schemes in order to protect yourself from scams.
A ponzi scheme is far from new, but with the advent of cryptocurrency, it definitely got a second wind because in this area financial activities do not require a legal, bank account, or licenses, and the organizers successfully circumvent many aspects of a legal nature.
The mainstream around the cryptocurrency is an open field for fraudsters who profit from the inexperience of society. Due to the lack of knowledge in society about this topic, it's easy for fraudsters to promote even inadequate projects. The organizers of such schemes take advantage of the fact that more and more people are attracted by fast earnings in the cryptocurrency world, and therefore it's much easier for fraudsters to make unreasonable promises and at the same time get enough interest in their proposal.
In the cryptocurrency world you can distinguish four of the most common types of pyramids:
There are some reg flags helping you determine whether it is a fraudulent scheme or not.
There is a slight difference between a ponzi and traditional pyramid scheme.
A ponzi scheme implies unwinnable fraudulent investments into a fake project. Credulous investors contribute their funds to a “manager” on a ponzi’s side and get revenues which imply the money from other credulous investors.
A pyramid scheme, in turn, implies a self-conducted mechanism, where one investor recruits the other investor and gets a revenue from that investor, who must recruit another one the same way, and so on.
Both schemes involve credulous people taking their revenues from other credulous people.
Some fishy crypto businesses are based on a pyramid scheme. Beware of them and never get involved into their shady activities.
When you see an offer to purchase a computing power or rent an equipment for cloud mining, you should understand that today mining is very different then a couple of years ago. Today, the mining difficulty is much higher, and the profit from mining depends on a range of factors. Buying a share in such a pool costs quite a lot of money, they do not promise any super-high incomes and are unlikely to even set a fixed rate on your investments.
Referral program can be a good tool if only it's not a referral program of the financial pyramid. Such type of doing is called matrix marketing, in which a person needs to attract new investments by himself in to get an income. Such a scheme is probably the easiest for the organizers and sad enough for the participants because in order to get your money back you need to attract 5 people, for example. The 5, in order to get their money back, will have to invite 25 people in total, and then 125 people must throw off their money for the first 25 and so on.
Another common type of pyramid offering to transfer funds “experienced traders”. In the same way, they promise ultra-high returns in a short time and for the long term, although in reality this yield cannot be predicted even for tomorrow. They, of course, trade, and even may gain profit from trading, but this profit won’t concern you. All the payments to investors mainly derive from the means of new deposits, since it's known that even the best traders cannot make profitable trades all the time. Conventional wisdom says that such thing as a "win-only trading" strategy simply doesn't exist.
And another popular type of cryptocurrency pyramids is fake cryptos that declared as an improved version of any of the cryptocurrencies and promise the great potential.
Because most of the cryptocurrency users were attracted by such a perspective, it's not surprising that such offers are in demand. However, such projects, as a rule, have neither public blockchain, nor publicly available code, nor placement on well-known exchanges, which means, most likely, they are nothing more than a manipulation aimed to create the appearance of constantly growing prices and interest in the project.
Ponzi and pyramid are different fraudulent schemes that you may encounter in the crypto world from time to time. You need to abstain from participating in these schemes no matter how appealing their proposal is. By following the simple rules, you’ll always stay protected from such scams and never associate ones with crypto. And remember, you can’t fall prey to fraudulent schemes if you invest wisely.


#!/usr/bin/env python
# -*- coding: utf-8 -*
# Copyright: [CUP] - See LICENSE for details.
# Authors: Guannan Ma (@mythmgn),
"""
:description:
heartbeat related module
"""
from __future__ import print_function
import time
import pickle
import platform
import threading
from cup import log
from cup import net
from cup.util import conf
if platform.system() == 'Linux':
from cup.res import linux
try:
# pylint: disable=W0611
import Queue as queue
except ImportError:
# pylint: disable=F0401
import queue
[docs]class Device(object):
"""
Base class for all devices in heartbeat service
"""
def __init__(self, name):
"""
:param:
the name of the device
"""
self._name = name
self._last_healthy = time.time()
self._dict_info = None
[docs] def get_last_healthy(self):
"""
get last_healthy time of the device
"""
return self._last_healthy
[docs] def set_last_healthy(self):
"""
set last_healthy time
"""
log.debug('device %s set_last_healthy' % self._name)
self._last_healthy = time.time()
[docs] def serilize(self):
"""
serilize device info
"""
return pickle.dumps(self._dict_info)
[docs] def deserilize(self, binary):
"""
deserilize it from binary
"""
try:
self._dict_info = pickle.loads(binary)
return True
# pylint: disable=W0703
except Exception as error:
log.warn('deserilize linux device error, msg:%s' % error)
return False
[docs] def get_dict_resinfo(self):
"""
get dict of resource info
"""
return self._dict_info
[docs] def get_name(self):
"""get name"""
return self._name
[docs]class LinuxHost(Device):
"""
a linux host resource
"""
def __init__(self, name, init_this_host=False, iface='eth0', port=0):
"""
:param name:
name of the LinuxHost
:param init_this_host:
if init_this_host is True, will initialize the object by this linux
. Otherwise, you need to initialize it by yourself.
:exception socket.gaierror :
if we cannot get the ip of the host, the object construction
may raise socket.gaierror exception.
You have to code {try: catch socket.gaierror as err:}
"""
Device.__init__(self, name)
# -1 means initialized
self._dict_info = {
'iface': iface,
'ipaddr': '<IP_ADDRESS>',
'port': 0,
'hostname': net.get_local_hostname(),
'cpu_idle': -1,
'mem_inuse': -1, # MB
'mem_total': -1,
'net_in': -1, # kb
'net_out': -1 # kb
}
if init_this_host:
self._dict_info['ipaddr'] = net.get_hostip()
self._dict_info['port'] = port
cpuinfo = linux.get_cpu_usage(1)
meminfo = linux.get_meminfo()
self._dict_info['net_in'] = linux.get_net_recv_speed(
self._dict_info['iface'], 1
)
self._dict_info['net_out'] = linux.get_net_transmit_speed(
self._dict_info['iface'], 1
)
# pylint: disable=E1101
self._dict_info['cpu_idle'] = cpuinfo.idle
# pylint: disable=E1101
self._dict_info['mem_inuse'] = meminfo.total - meminfo.free
self._dict_info['mem_total'] = meminfo.total
[docs] def set_linux_res_bydict(self, info_dict):
"""
:param info_dict:
::
{
'iface': 'eth0',
'ipaddr': '<IP_ADDRESS>',
'port': 8089,
'cpu_idle': 50,
'mem_inuse': 1024, # MB
'mem_total': 8192,
'net_in': 8192, # kb
'net_out': 102400, # kb
}
"""
for key in info_dict:
if key not in self._dict_info:
log.warn('does not have this key:%s, ignore' % key)
continue
self._dict_info[key] = info_dict[key]
log.debug('linux info:%s updated, %s' % (key, info_dict[key]))
[docs] def set_ip_port(self, ipaddr):
"""
set ip information
:param ipaddr:
ipaddr should be string and something like <IP_ADDRESS>
"""
self._dict_info['ipaddr'] = ipaddr
[docs] def get_ip(self):
"""
return ip information
"""
return self._dict_info['ipaddr']
[docs] def get_ip_port(self):
"""
return ip:port
"""
return self._dict_info['ipaddr'] + ':' + str(self._dict_info['port'])
[docs] def set_cpu_idle(self, idle_rate):
"""
set cpu idle rate
"""
self._dict_info['cpu_idle'] = idle_rate
[docs] def get_cpu_idle(self):
"""
get cpu idle rate
"""
return self._dict_info['cpu_idle']
[docs] def set_mem_usage(self, mem_inuse, mem_total):
"""
set up mem_inuse and mem_total.
Will update any of them if it is not None.
"""
if mem_inuse is not None:
self._dict_info['mem_inuse'] = mem_inuse
if mem_total is not None:
self._dict_info['mem_total'] = mem_total
[docs] def get_mem_info(self):
"""
:return:
(mem_inuse, mem_total), in MB
"""
return (self._dict_info['mem_inuse'], self._dict_info['mem_total'])
[docs] def set_net_usage(self, net_in, net_out):
"""
:param net_in:
net_in in kB/s. If net_in is None, will update nothing.
:param net_out:
net_out in kB/s. If net_out is None, will update nothing.
"""
if net_in is not None:
self._dict_info['net_in'] = net_in
if net_out is not None:
self._dict_info['net_out'] = net_out
[docs] def get_net_usage(self):
"""
:return:
(net_in, net_out)
"""
return (self._dict_info['net_in'], self._dict_info['net_out'])
# class Process(LinuxHost):
# def __init__(self, procname, path):
[docs]class HeartbeatService(object):
"""
HeartBeat service
"""
def __init__(self, judge_lost_in_sec, keep_lost=False):
"""
:param judge_lost_in_sec:
if you call function get_lost() and find that time.time()
minus last_healthy time of the device > judge_lost_in_sec,
the device will be marked as lost.
:param keep_lost:
whether we store lost deivce info
"""
self._lock = threading.Lock()
self._judge_lost = judge_lost_in_sec
self._devices = {}
if keep_lost:
self._lost_devices = {}
else:
self._lost_devices = None
[docs] def is_device_registered(self, key, including_dead=False):
"""
tell if the device is registered
"""
ret = False
self._lock.acquire()
if key in self._devices:
ret = True
if not ret and including_dead and self._lost_devices is not None \
and key in self._lost_devices:
ret = True
self._lock.release()
return ret
[docs] def adjust_judge_lost_time(self, time_in_sec):
"""
adjust judge_lost_in_sec
"""
self._lock.acquire()
log.info(
'heartbeat service judge_lost_in_sec changed, old %d, new %d' % (
self._judge_lost, time_in_sec
)
)
self._lock.release()
self._judge_lost = time_in_sec
return
[docs] def refresh(self, key, device_obj=None):
"""
:param key:
refresh the device by key
:return:
if key does not exist, return False
else, fresh the last_healthy time of the device
"""
assert type(key) == str, 'needs to be a str'
self._lock.acquire()
got_device = self._devices.get(key)
if got_device is None:
log.info(
'New device found:%s. To add it into heartbeat service'
% key
)
new_device = Device(key)
new_device.set_last_healthy()
self._devices[key] = new_device
else:
if device_obj is None:
got_device.set_last_healthy()
log.info(
'Heartbeat: Device %s only refreshed with heartbeat. '
'Resource not refreshed' % key
)
else:
log.info(
'Heartbeat: Device %s refreshed with resource. '
% key
)
self._devices[key] = device_obj
device_obj.set_last_healthy()
self._lock.release()
[docs] def get_lost(self):
"""
get lost devices
"""
now = time.time()
lost_devices = []
self._lock.acquire()
for dkey in self._devices.keys():
device = self._devices[dkey]
if now - device.get_last_healthy() > self._judge_lost:
if self._lost_devices is not None:
self._lost_devices[dkey] = device
del self._devices[dkey]
lost_devices.append(device)
log.warn('heartbeat lost, device:%s' % dkey)
self._lock.release()
return lost_devices
[docs] def cleanup_oldlost(self, dump_file=None):
"""
cleanup old lost devices.
:param dump_file:
if dump_file is not None, we will store devices info into dump_file
Otherwise, we will cleanup the lost devices only.
"""
self._lock.acquire()
log.info('start - empty_lost devices, dump_file:%s' % dump_file)
if self._lost_devices is None:
log.info('end - does not keep_lost devices, return')
self._lock.release()
return
if dump_file is None:
self._lost_devices = {}
log.info('end - does not have dump_file, return')
self._lock.release()
return
info_dict = {}
info_dict['devices'] = {}
if len(self._lost_devices) != 0:
info_dict['devices']['lost'] = []
info_dict['devices']['lost_num'] = len(self._lost_devices)
else:
info_dict['devices']['lost_num'] = 0
for dkey in self._lost_devices.keys():
try:
tmp_dict = {}
tmp_dict['key'] = dkey
tmp_dict['last_healthy'] = self._devices[dkey].get_last_healthy(
)
del self._lost_devices[dkey]
log.info('end - empty_lost devices')
info_dict['devices']['lost'].append(tmp_dict)
except KeyError as error:
log.warn('failed to dump lost_file, error:%s' % str(error))
conf_writer = conf.Dict2Configure(info_dict)
conf_writer.write_conf(dump_file)
self._lock.release()
return
def _test():
localhost = LinuxHost(name='localhost', init_this_host=True)
binary = localhost.serilize()
print('binary:{0}'.format(binary))
print(pickle.loads(binary))
if __name__ == '__main__':
_test()
# vi:set tw=0 ts=4 sw=4 nowrap fdm=indent


Plane 1: $x-y+z=-1$
Plane 2: $4x+y-2z=5$
Plane 3: $-3x-3y-4z=-16$
Which is the point in space located at: $$(1, 3, 1)$$ You can rotate by swiping with your finger or dragging with the mouse. You can zoom by pinching the screen or using the mousewheel. Pressing 'm' will make the window toggle fullscreen mode. Note that the x-axis is green, the y-axis is red and the z-axis is blue.


A quick introductory exercise to familiarize players with the game.
Goes over the basics of what HTML is and why it's important.
"Discusses the body tag."
Discusses the heading tags and how to use them.
Discusses the section tag and how it can break up your code.
Discusses standard coding practice and reviews headings
Discusses the article tag and how it can help organize your content.
A quick introduction to CSS and JavaScript.
A review of all material that has been covered up to this point.


TkApplication module.
MIT. See LICENSE for full details.
Base class of all Tkd gui applications.
import tkd.tkdapplication; class Application : TkdApplication { private void exitCommand(CommandArgs args) { this.exit(); } override protected void initInterface() { auto frame = new Frame(2, ReliefStyle.groove) .pack(10); auto label = new Label(frame, "Hello World!") .pack(10); auto exitButton = new Button(frame, "Exit") .setCommand(&this.exitCommand) .pack(10); } } void main(string[] args) { auto app = new Application(); app.run(); }
constructor.
Exception if Tcl/Tk interpreter cannot be initialised.
Get the main window of the application.
The main window.
Set the overall theme of the user interface.
| string theme | The theme to use. |
Run the application.
This method is used to bring the application 'up to date' by entering the event loop repeatedly until all pending events (including idle callbacks) have been processed.
This widget to aid method chaining.
Exit the application.
Associates the virtual event with the binding, so that the virtual event will trigger whenever the binding occurs. Virtual events may be any string value and binding may have any of the values allowed for the binding argument of the bind method. If the virtual event is already defined, the new binding adds to the existing bindings for the event.
| string virtualEvent | The virtual event to create. |
| string binding | The binding that triggers this event. |
Deletes each of the bindings from those associated with the virtual event. Virtual events may be any string value and binding may have any of the values allowed for the binding argument of the bind method. Any bindings not currently associated with virtual events are ignored. If no binding argument is provided, all bindings are removed for the virtual event, so that the virtual event will not trigger anymore.
| string virtualEvent | The virtual event to create. |
| string binding | The binding that triggers this event. |
All element creation and layout should take place within this method. This method is called by the constructor to create the initial GUI.


Draw for 2020 Davis Cup qualifiers
MADRID (Reuters) - The draw for the 2020 Davis Cup qualifiers was made on Sunday with several standout ties including a South American derby between Colombia and Argentina and an Eastern European tussle featuring neighbors Slovakia and Czech Republic.
Twenty four nations will play off in March in traditional “home and away” ties to decide which 12 go through to the Madrid finals and join this year’s semi-finalists and two wildcards.
Spain face Canada later on Sunday in the first final since the 119-year-old team event was revamped this year.
Britain and Russia were the beaten semi-finalists, while France and Serbia have been handed wildcards.


I create Responsive Web Design with Bootstrap and also custom CSS based on the client needs for different media queries
I implement the technology used in HTML5 & CSS3 like CSS3 animation, transitions, transform, & media queries for different devices. For HTML5 I use the semantic tags for better SEO and other things like iframe and canvas.
Javascript jQuery is the key importance to make beautiful website. It plays an important role for UX/UI design. To create beautiful navigation, modals, Ajax, and many more.
UX/UI Developer, Videographer
Feel free to contact me from one these links..


Our Services
Development career is a continuous process. It needs good exposure and growth
opportunity to help an individual grow.
Development career is a continuous process. It needs good exposure and growth
opportunity to help an individual grow.
We make Web site design creative and responsive which gives better look and feel.
We use advance technology and tools to develop websites & web applications.
We provide flawless support & maintenance at fare price.
Tailor made mobile apps for the android, iOS and windows.
Variable Soft Provides You SEO Services That give you better and long lasting Results That Extend Beyond a Quick Boost In Ranking.
Being the part of Mobile App Development Company, Kousaty has always focused on the product requirements of its clients. Our experts discuss the needs and strategize the whole process of app building in order to help the customers obtain maximum ROI.
We ensure 100% transparency to Clientss by providing our daily update to them about their design.
For front end and backend development we got our dedicated team of designers along with project heads who interact with customers and provide services as per their need and requirment.
For front end and backend development we got our dedicated team of designers along with project heads who interact with customers and provide services as per their need and requirment.
A Web Development Company
With a great team of professional, passionate and talented executives, We, at Kousaty, are determined to develop best in class mobile applications in your budget, as per your business model. We provide app development solutions for all platforms including iPhone, iPad, Android, and Windows among others, and also ensure the use of latest technologies to enhance the user-friendliness and ROI.
It is an overall package that gives out the desired results. Our team is involved in the project strategy at all times of app development phase in order to reap out the best outcome at the end of it. The experienced and knowledge of our developers and designers make them stand apart and deliver the clients with an improved version of what they had asked for.
We are aware of what is needed to be among the top-ranked applications in the app store and hence, we are always ready to deliver more than the expected. Work with us and get -


Creative Coding for the Future
About Me
I am a dedicated web developer who seeks out to develop the best website platform for everyone. I will be able to develop your website at an affordable price and effort. Contact me to find out more!
I am a dedicated web developer who seeks out to develop the best website platform for everyone. I will be able to develop your website at an affordable price and effort. Contact me to find out more!


/**
*
* Copyright 2016 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class Detabinator {
/**
* Helps to maintain a healthy tabulation within the sidebar when it's open, rather than tabulate the whole page
* Usage:
*
* ``` javascript
* const detabinator = new Detabinator(element);
* detabinator.inert = true; // Sets all focusable children of element to tabindex=-1
* detabinator.inert = false; // Restores all focusable children of element
* ```
* @param {HTMLElement} element
*/
constructor(element) {
if (!element) {
throw new Error('Missing required argument. new Detabinator needs an element reference');
}
this._inert = false;
this._focusableElementsString = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframeEl, object, embed, [tabindex], [contenteditable]';
this._focusableElements = Array.from(
element.querySelectorAll(this._focusableElementsString)
);
}
get inert() {
return this._inert;
}
set inert(isInert) {
if (this._inert === isInert) {
return;
}
this._inert = isInert;
this._focusableElements.forEach((child) => {
if (isInert) {
// If the child has an explict tabindex save it
if (child.hasAttribute('tabindex')) {
child.__savedTabindex = child.tabIndex;
}
// Set ALL focusable children to tabindex -1
child.setAttribute('tabindex', -1);
} else {
// If the child has a saved tabindex, restore it
// Because the value could be 0, explicitly check that it's not false
if (child.__savedTabindex === 0 || child.__savedTabindex) {
return child.setAttribute('tabindex', child.__savedTabindex);
} else {
// Remove tabindex from ANY REMAINING children
child.removeAttribute('tabindex');
}
}
});
}
}
export default Detabinator;


Impeachment probe: Trump attacks US diplomat on Twitter as she testifies that his words in Ukraine call made her feel threatened
As Yovanovitch testified, Trump fired off criticism of her on Twitter, saying: "Everywhere Marie Yovanovitch went turned bad. She started off in Somalia, how did that go?"
US President Donald Trump launched an extraordinary Twitter attack on a former US ambassador to Ukraine on Friday (November 15) as she testified to an impeachment hearing in Congress, a move she called "very intimidating."
Marie Yovanovitch, a career diplomat who the Trump administration removed from her post earlier this year, defended her anti-corruption record during the hearing and said her removal had left US policy there in disarray.
As Yovanovitch testified, Trump fired off criticism of her on Twitter, saying: "Everywhere Marie Yovanovitch went turned bad. She started off in Somalia, how did that go?"
In the most dramatic moment of the impeachment hearings so far, the Democratic chairman of the House Intelligence Committee Adam Schiff then asked Yovanovitch for her reaction to the tweet. She said it was "very intimidating."
"I can't speak to what the president is trying to do, but I think the effect is to be intimidating," she said.
The session before the House of Representatives Intelligence Committee is part of the Democratic-led impeachment enquiry that threatens Trump's presidency even as he seeks re-election in November 2020.
Yovanovitch was removed from her post as ambassador to Kiev in May after coming under attack by Trump's personal lawyer, Rudy Giuliani, at a time when he was working to persuade Ukraine to carry out two investigations that would benefit the Republican president politically.
Democrats are looking into whether Trump abused his power by withholding $391 million in US security aid to Ukraine as leverage to pressure Kiev to investigate former Vice President Joe Biden, who is a leading contender for the Democratic nomination to take on Trump in the 2020 election.
The main focus of the impeachment inquiry is a July 25 phone call in which Trump asked Ukrainian President Volodymyr Zelenskiy, who was elected in May, to open the investigations.
Trump denies any wrongdoing.


Lebanon has 8 main Mohafazas or governorates. Please point on the map to see them.
Each Mohafaza is divided into several districts/Qada2. Now Lebanon currently has 26 districts but according to the shapefile that this map is based on some districts belong to multiple govornmates. If anyone has any suggestions, please let me know on twitter @BahoKaram. If it would be possible, please submit it as an issue on the repository with your possible fix.
The map shows all the various villages in Lebanon. I would like to point out specifically that the map shows the various municipalities of Lebanon not the voting districts.
To Illustrate, Baskinta has one Municipality but has 2 voting districts which are north and south Baskinta. As a result, you only see one baskinta.
Another example is Beirut Central District, Beirut Central distric is not a proper district. It's mostly the beirut port and a military base so it does't show up in the civilian votiing list however it is it's own district/village or part of the city.
Please share your input on what is probably wrong with this data and how best to fix it by Tweeting @BahoKaram or submitting an issue to the Github repository
Please note that arabic translation for all villages is a work in progress. If you would like to provide aid, please look into the Lebanese-Villages-List Repository


---
title: Peru, Fall 2017
start_date: 2017-10-14
end_date: 2017-10-22
cities:
- Lima
- Cusco
- Machu Picchu
featured_image: travel/peru/machu-picchu-classic-wide.jpg
hero_image: travel/peru/machu-picchu-classic.jpg
image_roots:
- peru
redirect_from:
- /peru/
---
I've always known that I wanted to visit Peru. Well really, I've always known that I wanted to visit Machu Picchu; I didn't even necessarily know where Machu Picchu was for most of my life, but I knew I wanted to go there. There's something inspirational and magical about the idea of a lost city hidden in the clouds at the top of a mountain. I've always known I've wanted to go there.
What I didn't know is how fantastic Peruvian food is, or how much history there is in Lima, and in Cusco. When our plane took off from New York towards Lima, I only hoped it wouldn't rain on our day at Machu Picchu.
Lima
When we arrived in Lima off a red-eye flight, we had some time to kill. Before heading anywhere, we went to Larcomar shopping mall, situated on a cliff looking out on the Pacific Ocean.
{% include resimg.html src="travel/peru/lima-mall-view.jpg" class="with-viewer" %}
A view of the Pacific ocean from Larcomar.
{% include resimg.html src="travel/peru/lima-mall-breakfast-1.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-mall-breakfast-2.jpg" class="with-viewer" %}
Left: Breakfast at Larcomar. Right: My dish was like lomo saltado with fried eggs on top.
{% include resimg.html src="travel/peru/lima-mall-pano.jpg" class="with-viewer" %}
The Larcomar shopping complex on a foggy Lima day.
After breakfast, we met up with our friend Anastasia and explored Miraflores, the neighborhood in Lima where we were staying. Between delicious ceviche, beautiful murals, and bold architecture, I was surprised by how much I enjoyed spending time in Lima.
{% include resimg.html src="travel/peru/lima-graffiti-anastasia.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-graffiti-rainbow.jpg" class="with-viewer" %}
Anastasia, Daniela, and me in front of some especially impressive murals in Miraflores.
{% include resimg.html src="travel/peru/lima-graffiti-ground.jpg" class="with-viewer" %}
I spotted some cool graffiti on the sidewalk.
{% include resimg.html src="travel/peru/lima-alley.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-street.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-car.jpg" class="with-viewer" %}
Lima strikes this fascinating balance between old and new, playful and serious.
{% include resimg.html src="travel/peru/lima-design-corner.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-design-estate.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-design-parking.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-design-white.jpg" class="with-viewer" %}
I absolutely love the architecture in Miraflores. On the same street you can find ornate palaces next to ultra-modern houses.
{% include resimg.html src="travel/peru/lima-design-yellow.jpg" class="with-viewer" %}
One of my favorite facades of a house in Miraflores.
The next day, we took a series of buses to the Larco Museum a museum and gardens that hosts pre-Columbian artifacts.
{% include resimg.html src="travel/peru/lima-museum-exterior.jpg" class="with-viewer" %}
After you get inside the museum gates, you're greeted with massive walls of bright flowers.
{% include resimg.html src="travel/peru/lima-museum-flowers-anastasia.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-museum-flowers.jpg" class="with-viewer" %}
Anastasia, Daniela, and me with the flowers inside the Larco Museum's walls.
{% include resimg.html src="travel/peru/lima-museum-square-head.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-museum-square-prayer.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-museum-square-skull.jpg" class="with-viewer" %}
The artifacts themselves were stunning. These jugs were shaped like human heads.
{% include resimg.html src="travel/peru/lima-museum-hats.jpg" class="with-viewer" %}
I love these spooky headdresses.
{% include resimg.html src="travel/peru/lima-museum-tall-cat.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-museum-tall-nose.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-museum-tall-statue.jpg" class="with-viewer" %}
The museum also had beautiful sculpture, writings, and other artifacts.
On our last day before heading out to Cusco, we went to Huaca Pucllana, the ruins of a 3rd century stepped pyramid. Made from clay bricks stood vertically, Huaca Pucllana was an administrative center for the Lima Civilization, which came before the Incas.
{% include resimg.html src="travel/peru/lima-huaca-pucllana-buildings.jpg" class="with-viewer" %}
Huaca Pucllana sits in the middle of Miraflores.
{% include resimg.html src="travel/peru/lima-huaca-pucllana-slope.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/lima-huaca-pucllana-mound.jpg" class="with-viewer" %}
Archaeologists discovered Huaca Pucllana under a mound of soil, and their still excavating it.
{% include resimg.html src="travel/peru/lima-huaca-pucllana-texture.jpg" class="with-viewer" %}
The pattern of the bricks is magnificent.
Cusco
After a few days in Lima, we headed to Cusco. While Lima sits along the coast at sea level, Cusco is up in the Andes mountains at 11,000 feet. At that height, elevation sickness is an unfortunate reality, We spent around three days casually exploring the city, while getting acclimated.
The city is absolutely beautiful and the food was delicious, although we had to be careful to not try to pack too much into a single day. Even without any serious hikes or physical activity, we found ourselves sick and tired by the end of the day.
{% include resimg.html src="travel/peru/cusco-houses.jpg" class="with-viewer" %}
Houses in Cusco are built into the surrounding hills.
{% include resimg.html src="travel/peru/cusco-stairs.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-street.jpg" class="with-viewer" %}
Left: We walked up and down a lot of stairs getting around Cusco. Right: The narrow streets barely had room for pedestrians.
{% include resimg.html src="travel/peru/cusco-view.jpg" class="with-viewer" %}
Cusco, from on top of one of the surrounding hills.
On our third day in Cusco, we took a cab up and through the hills to a llama zoo.
{% include resimg.html src="travel/peru/cusco-llama-1.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-2.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-3.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-4.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-5.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-6.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-7.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-8.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/cusco-llama-9.jpg" class="with-viewer" %}
We met a LOT of llamas. So many handsome faces!
{% include resimg.html src="travel/peru/cusco-llamas-all.jpg" class="with-viewer" %}
We got a few of the Llamas to pose with us for a picture
Machu Picchu
After spending a few days acclimating in Cusco, we headed to Machu Picchu. We went from Cusco on a guided tour by a company called Llama Path. They were great! We took a bus and then a train from Cusco, and got off the train a few miles before Aguas Calientes, the town at the base of Machu Picchu. From that stop, we started a day-long hike (6 miles, 2,000 feet) along the Inca trail towards Machu Picchu. They also offer a four-day version of this hike, but we only had time for the shorter version.
{% include resimg.html src="travel/peru/cusco-train.jpg" class="with-viewer" %}
We took a beautiful train from Cusco to the starting point of our hike, 6 miles from Machu Picchu
{% include resimg.html src="travel/peru/machu-picchu-hike-valley-2.jpg" class="with-viewer" %}
The entire hike follows the Urubamba River, which flows north east to become the Amazon river.
{% include resimg.html src="travel/peru/machu-picchu-hike-mountains.jpg" class="with-viewer" %}
For almost the entire hike we were treated with breathtaking views of the surrounding mountains.
{% include resimg.html src="travel/peru/machu-picchu-hike-flower-2.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/machu-picchu-hike-flower.jpg" class="with-viewer" %}
I spotted some beautiful bright pink flowers along our hike, and managed to capture the flowers and the surrounding mountains in a single shot.
{% include resimg.html src="travel/peru/machu-picchu-hike-terraces.jpg" class="with-viewer" %}
Now you might think that this is a picture of Machu Picchu, but it's actually Winay Wayna, one of the dozens of similar sites in the surrounding mountains.
{% include resimg.html src="travel/peru/machu-picchu-hike-ruins.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/machu-picchu-hike-window.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/machu-picchu-hike-terraces-faceoff.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/machu-picchu-hike-terraces-daniela.jpg" class="with-viewer" %}
Winay Wayna was a small agricultural village, located about 3 miles from Machu Picchu.
{% include resimg.html src="travel/peru/machu-picchu-hike-terraces-2.jpg" class="with-viewer" %}
A view of the river valley from Winay Wayna.
Finally, after severals hours and countless steps and slips, we made it to Machu Picchu. By this time, the sun was setting and the site was closed for the day. While we wouldn't enter the city until the next day, we were able to get some amazing photos of it before the sun set but after all the tourists vacated.
{% include resimg.html src="travel/peru/machu-picchu-classic.jpg" class="with-viewer" %}
The classic Machu Picchu shot, captured at golden hour.
{% include resimg.html src="travel/peru/machu-picchu-classic-group.jpg" class="with-viewer" %}
All four of us survived the hike! It was well worth it.
After getting all the photos we could manage, we headed down the mountain to Aguas Calientes, where we spent the night. While we didn't get a lot of time to explore the town, it was certainly beautiful.
{% include resimg.html src="travel/peru/aguas-bridge.jpg" class="with-viewer" %}
Aguas Calientes sits in the river valley below Machu Picchu.
{% include resimg.html src="travel/peru/aguas-apartments.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/aguas-clouds.jpg" class="with-viewer" %}
In the morning, the clouds sat calmly between the surrounding mountains.
{% include resimg.html src="travel/peru/aguas-houses.jpg" class="with-viewer" %}
Many houses here are built directly on top of each other, which brings a characteristic sense of verticality to the town.
The next morning, we took a bus up the winding road back to Machu Picchu. This time, we got to go inside, and explore the terraced fields, narrow streets, and ruined buildings.
{% include resimg.html src="travel/peru/machu-picchu-field.jpg" class="with-viewer" %}
"Machu Picchu" is Quechua for "Old Mountain." However, the iconic mountain you see in pictures is actually the "Young Mountain," adjacent to the city.
{% include resimg.html src="travel/peru/machu-picchu-plant.jpg" class="with-viewer" %}
The Peruvian government decorates and maintains Machu Picchu. This plant is (obviously) not original to the ruin.
{% include resimg.html src="travel/peru/machu-picchu-valley-2.jpg" class="with-viewer" %}
{% include resimg.html src="travel/peru/machu-picchu-valley.jpg" class="with-viewer" %}
The city is truly fantastic from every angle, it's hard not to take a photo every ten seconds.
{% include resimg.html src="travel/peru/machu-picchu-dan.jpg" class="with-viewer" %}
My friend Lily got this photo of me right before we left Machu Picchu for Cusco, then Lima, then New York.


| DOSE: T+ 0:00 |
125 mg |
smoked |
DMT |
(powder / crystals) |
| T+ 2:00 |
5.0 g |
oral |
Mushrooms |
(plant material) |
Copyright August 1985 by Gracie and Zarkov Productions. We believe that in a truly free society the price of packaged information would be driven down to the cost of reproduction and transmission. We, therefore, give blanket permission and encourage photocopy, quotation, reprint or entry into a database of all or part of our articles provided that the copier or quoter does not take credit for our statements.
Introduction
This paper is about the strangest trip that we have ever had. Furthermore, in our discussions with other experienced heads it became clear that this trip was one of the more peculiar trips that we have even heard of! That in and of itself might not warrant an article. However, the possible implications of this trip are such that we have decided to write about our experience to add to the store of 'stubborn empirical fact' that make up psychedelic phenomenology.
We are also aware that this trip was outlandish enough that its retelling may cause our readers to believe that we finally have either lost it or are resorting to creative writing. We would like to assure our readers that what you are about to read happened exactly as described (within the limits of our powers of observation).
In this paper we give a description of the trip, our beliefs concerning the phenomenology, and our tentative conclusions regarding our experience. It seems impractical to reproduce the entire trip narrative written right after the experience since it runs to twenty typewritten pages. Therefore, this paper is a highly condensed version of the trip narrative.
Backqround
The weekend prior to our strange experience, Grace had decided to take 5 grams of potent stropharia mushrooms by herself. While it is common practice for us to trip together, Zarkov's high dose mushroom trips have been uniformly negative ever since he established contact with certain insectoid creatures who claimed to have engineered the mushroom for their own purposes. (See, High Frontiers, Issue no. 2 and Note no. 8). Gracie was going in alone to perform reconaissance. After about an hour and one half of arguing with the voice and being unable to see any visions, she began to 'interview' the voice which seemed quite amenable to questioning. Gracie called in Zarkov and together we interviewed the voice in Gracie's head for about two hours. One of the raps was that Gracie had trouble entering the vision state because she hadn't practiced enough visualization and was afraid to leave her body.
Now it is true that despite how much talk there is about how hard it is to get into the far-out mushroom states, Zarkov would just 'fall down the rabbit hole' on any dose over 3 grams without knowing how he did it, while Gracie had much more elusive contact with the mushroom vision states even at doses in the 10 gram range. However, given Gracie's consistent ability to see the 'visible language' on DMT (which Zarkov has so far only briefly glimpsed) and her other visionary experiences on DMT, this rap seemed rather unlikely.
But, the mushroom voice held out hope. Gracie should practice building a fantasy world in her head and maybe, if we both took mushrooms together, she could 'show' her fantasy world to Zarkov. Zarkov was extremely skeptical of the whole rap. It seemed very enticing and very unlike his experiences with the mushrooms. That week Zarkov went to the East coast on business and left Gracie to work on her fantasy world.
Upon Zarkov's return on Friday, Gracie announced that she had worked diligently on her fantasy world and would like to show it to Zarkov that weekend using mushrooms. The only description she gave of the world was that it was a barbarian bronze age planet run by Goddess-worshipping group of priestesses and that he was cast as a high-tech off-worlder.
Zarkov was apprehensive, since he didn't want another 'alien space wars' trip on the mushroom. The experimental protocol that we agreed on was to do a DMT shot at noon on Saturday and if the experience seemed positive, to take the mushrooms later in the day. The first shot was inconclusive because Zarkov didn't get off but he did get a terrific case of the tryptamine giggles. He decided to take another dose. The visions in the noontime sunlight were exquisite. Over the next half hour, we each consumed betweeen 100 and 150 mg of DMT in four separate 'trips'. The experience for Zarkov had been glorious. His relationship with the DMT over the last four months of regular usage had been uniformly positive even when it had been terrifying. The idea had came into his head (from where?) that by presaturating himself with the DMT, his previous problems with the mushroom could be avoided.
We had fasted since Friday night and had been especially careful with our diets all week. At 2:00 PM, we both took 5 gms of potent stropharia mushrooms. We washed down the 'shrooms with ginger ale. We stayed in the bright sunlight until the closed eye visions began to come on strongly (about 30 mlnutes). We then went into our darkened trip room.
The Trip: Content and Comments
The basic phenomena of the trip were as highlighted below.
- Gracie saw none of the visions described below. In fact, she saw no visions during the trip. She was high and the trip room took on a beautiful jewelled quality. She had no tendency to drift into a trance even though she had taken the same dosage of DMT and mushrooms as Zarkov.
- Zarkov could not resist the trance. Strangely, he could talk with ease but could not maintain any other semblance of contact with reality. Any attempt to do so resulted in overwhelming stomach cramps, full body shivers, vertigo and throbbing headache. All of these body symptoms went away if he paid attention to the trance state.
- Zarkov's first vision was a stadium full of hostile giant insect creatures that he was familiar with from previous mushroom trips. However, immediately the DMT 'banshee' creatures floated in and sang this message, 'Aren't they a dull and pompous bunch! But don't worry, they can't get at you because we are here.' These 'banshee' creatures were a common occurance in Zarkov's DMT trips.
[picture of two smiling banshees]
- The next series of visions were of various aliens that seemed to be trying to sell Zarkov various visions. The banshees continued to accompany the visions and offer comment.
- At about the chemical peak of the trip (one hour), the house had a rash of poltergeist phenomena that were jointly observed by both of us. Furthermore, the cats noticed them and followed them as they made their way through the house. The banshees advised Zarkov not to worry about them because 'things like this happen.' This was the last point in the trip where Zarkov could maintain contact with ordinary reality.
- The banshees formed a gate next to an alien selling visions indicating that Zarkov should 'buy into' this vision.
- By 'going' through the gate, Zarkov found himself someplace else.
- This some place else was another world. It no longer seemed like a psychedelic vision, but rather it seemed like a real world. The sun felt warm; when it went down Zarkov felt cool. To move around it was necessary to walk. Wherever he looked, there was a realistic amount of detail. No insubstantial visions, just a real world wherever Zarkov looked.
- The world was Gracie's fantasy world. Even though she couldn't see it, Zarkov's verbal description matched her world. She could give instructions to Zarkov that he could follow to get around.
- The world was a bronze-age city. In the background were green and fertile mountains. The architecture was of massive granite blocks with a poured concrete look about them. The style was neoclassical crossed with Minoan with a touch of Jack Vance. The mise-en-scene made sense and did not appear contrived. The aesthetic sensibility, while of the wretched excess school, was coherent. It was the most beautiful place Zarkov had ever seen, in shades of pink, mauve, purple and gold.
- The story line was that of the wierdest heavy metal video ever designed. There were barbaric artifacts and luxury items all over. The world was inhabited by buxom, bottom-heavy, voluptuous nymphos. Zarkov found himself in an elaborate caped outfit, somewhere between Darth Vadar and Ming the Merciless. His entourage was a group of cretinous, long-haired sleazos in heavy metal dress and carrying guitars. The trip consisted of a tour through the city from the wharf to the main temple where a three-day orgy took place.
- The world somehow seemed like an isomorphic metaphor to Gracie's personality structure.
- The world was coherent and consistent. It had internal rules as inexorable as the 'natural laws' on earth.
- It had its own linear time. Subjectively, Zarkov spent three days in the world. Yet this voyaqe was encompassed in a normal six-hour mushroom trip. Furthermore, any attempt to reestablish contact with earth left huge gaps in the story since the world proceeded at its own pace, even if Zarkov wasn't paying attention.
- It did not seem like telepathy or a projection from Gracie's head. Rather, we believe that somehow the fantasy world was lifted from Gracie's head and placed in the tryptamine 'library of all time and space' where Zarkov 'read out the diskette .
- The only psychedelic aspect to the world was the continual presence of the DMT banshees, albeit they were 'disguised' as a sort of observer/chorus as bats, orchids, etc., throughout the experience.
- The DMT acted as a tuner of some sort for the mushroom experience. Certain aspects of the vision seemed characteristically DMT, like the banshees, the extreme time dilation, and the bejewelled colors. The mushroom contributed the epic quality, the exfoliating details and the practical joke quality of the whole set-up.
- Such an experience, if controllable, would be extremely useful to a shaman trying to treat mental illness. He could walk through the streets of his patient's mind without the verbal filter of analysis. It might even be possible to make changes in the landscape to effect a cure. The demons lurking in the shadows would be a constant danger, 'You might not come back.'
Conclusion
Zarkov has not attempted to repeat the experience. Gracie, however, has used the DMT predose before a lower dose of mushrooms (3 grams) and found herself in an irresistible trance with a series of faint visions. This was outdoors at night with a friend who did the same mix and also found herself in a trance, although her visions remained state-bound.
We don't know what Zarkov's vision means or how he got there, but we encourage anyone with visionary tendencies to try exploring these modes.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Siemens AG is a global technology powerhouse that has stood for engineering excellence, innovation, quality, reliability and internationality for more than 170 years. Active around the world, the company focuses on intelligent infrastructure for buildings and distributed energy systems and on automation and digitalization in the process and manufacturing industries. Siemens brings together the digital and physical worlds to benefit customers and society. Through Mobility, a leading supplier of intelligent mobility solutions for rail and road transport, Siemens is helping to shape the world market for passenger and freight services. Via its majority stake in the publicly listed company Siemens Healthineers, Siemens is also a world-leading supplier of medical technology and digital health services. In addition, Siemens holds a minority stake in Siemens Energy, a global leader in the transmission and generation of electrical power.


supplychainpy.demand package¶
Submodules¶
supplychainpy.demand.abc_xyz module¶
supplychainpy.demand.analyse_uncertain_demand module¶
-
class
supplychainpy.demand.analyse_uncertain_demand.
UncertainDemand
(orders: dict, sku: str, lead_time: decimal.Decimal, unit_cost: decimal.Decimal, reorder_cost: decimal.Decimal, z_value: decimal.Decimal=Decimal('1.2800000000000000266453525910037569701671600341796875'), holding_cost: decimal.Decimal=0.0, period: str='months')¶ Bases:
object
Models inventory profile calculating economic order quantity, variable cost, reorder quantity and ABCXYZ classification
-
abc_classification
¶
-
abcxyz_classification
¶ Gets ABCXYZ classification as a concatenated string
-
average_order
()¶
-
average_order_row
() → decimal.Decimal¶
-
average_orders
¶
-
cumulative_percentage
¶
-
demand_variability
¶
-
economic_order_qty
¶
-
economic_order_variable_cost
¶
-
fixed_order_quantity
¶
-
lead_time
¶
-
order
¶
-
order_count
¶
-
orders_summary
() → dict¶
-
orders_summary_simple
() → dict¶
-
percentage_revenue
¶
-
reorder_level
¶
-
revenue
¶
-
safety_stock
¶
-
sku_id
¶
-
standard_deviation
¶
-
unit_cost
¶
-
xyz_classification
¶
-
supplychainpy.demand.economic_order_quantity module¶
-
class
supplychainpy.demand.economic_order_quantity.
EconomicOrderQuantity
(reorder_quantity: float, holding_cost: float, reorder_cost: float, average_orders: float, unit_cost: float, total_orders: float)¶ Bases:
supplychainpy.demand.analyse_uncertain_demand.UncertainDemand
-
economic_order_quantity
¶
-
minimum_variable_cost
¶
-
supplychainpy.demand.eoq module¶
supplychainpy.demand.forecast_demand module¶
-
class
supplychainpy.demand.forecast_demand.
Forecast
(orders: list)¶ Bases:
object
-
autoregressive
()¶ Parameters: - forecasts (int) – Number of periods to average.
- base_forecast (bool) – A list of weights that sum up to one.
Returns: np.array
Raises: ValueError
-
genetic_algorithm
()¶ Parameters: - forecasts (int) – Number of periods to average.
- base_forecast (bool) – A list of weights that sum up to one.
Returns: np.array
Raises: ValueError
-
linear_regression
()¶ Parameters: - line (int) – Number of periods to average.
- base_forecast (bool) – A list of weights that sum up to one.
Returns: np.array
Raises: ValueError
-
mean_aboslute_percentage_error
(**forecasts) → list¶ Parameters: - forecasts (int) – Number of periods to average.
- base_forecast (bool) – A list of weights that sum up to one.
Returns: np.array
Raises: ValueError
-
mean_absolute_deviation
(forecasts: list, base_forecast: bool=False, start_period: int=3) → <built-in function array>¶ calculates the mean absolute deviation (MAD) for a given forecast.
Calculates the mean absolute deviation for a forecast. The forecast and
Parameters: - forecasts (list) – A previously calculated forecast.
- base_forecast (bool) – Start a moving average forecast from anywhere in the list.
- start_period (int) – The start period of the forecast.
Returns: np.array
Raises: ValueError
-
mean_forecast_error
()¶ Parameters: - forecasts (int) – Number of periods to average.
- base_forecast (bool) – A list of weights that sum up to one.
Returns: np.array
Raises: ValueError
-
moving_average
¶
-
moving_average_forecast
(average_period: int=3, forecast_length: int=2, base_forecast: bool=False, start_position: int=0) → list¶ Generates a forecast from moving averages.
Generate a forecast from moving averages for as many periods as specified.
Parameters: - average_period (int) – Number of periods to average.
- forecast_length (int) – Number of periods to forecast for.
- base_forecast (bool) – Start a moving average forecast from anywhere in the list. For use when evaluating a forecast.
- start_position (int) – Where to start the forecast in the list when
Returns: - Returns a list of orders including the original and the forecast appended to the end.
The appended forecast is as long as specified by the forecast_length. For example
orders = [1, 3, 5, 67, 4, 65, 242, 50, 48, 24, 34, 20] d = forecast_demand.Forecast(orders) d.calculate_moving_average_forecast(forecast_length=3) print(d.moving_average_forecast)
output:
[1, 3, 5, 67, 4, 65, 242, 50, 48, 24, 34, 20, 26, 27, 24]
orders = [1, 3, 5, 67, 4, 65, 242, 50, 48, 24, 34, 20] d = forecast_demand.Forecast(orders) d.calculate_moving_average_forecast(forecast_length=3, base_forecast=True, start_position=3) print(d.moving_average_forecast):
output:
[3, 67, 65, 45, 60, 80]
Return type: list
Raises: ValueError
– Incorrect number of orders supplied. Please make sure you have enough orders to calculate an average. The average_period is {}, while the number of orders supplied is {}. The number of orders supplied should be equal or greater than the average_period. Either decrease the average_period or increase the start_position in the list.n
-
optimise
()¶ Parameters: - forecasts (int) – Number of periods to average.
- base_forecast (bool) – A list of weights that sum up to one.
Returns: np.array
Raises: ValueError
-
simple_exponential_smoothing
(forecasts: list) → list¶
-
weighted_moving_average
¶
-
weighted_moving_average_forecast
(weights: list, average_period: int=3, forecast_length: int=3, base_forecast: bool=False, start_position=0) → list¶ Generates a forecast from moving averages using user supplied weights.
Generate a forecast from moving averages for as many periods as specified and adjusts the forecast based on the supplied weights.
Parameters: - average_period (int) – Number of periods to average.
- forecast_length (int) – Number of periods to forecast for.
- weights (list) – A list of weights that sum up to one.
- base_forecast (bool) – Start a moving average forecast from anywhere in the list. For use when evaluating a forecast.
- start_position (int) – Start position
Returns: - Returns a list of orders including the original and the forecast appended to the end.
The appended forecast is as long as specified by the forecast_length. For example
orders = [1, 3, 5, 67, 4, 65, 242, 50, 48, 24, 34, 20] d = forecast_demand.Forecast(orders) d.calculate_moving_average_forecast(forecast_length=3) print(d.moving_average_forecast)
output:
[1, 3, 5, 67, 4, 65, 242, 50, 48, 24, 34, 20, 13, 11, 7]
Return type: list
Raises: ValueError
– The weights should equal 1 and be as long as the average period (default 3).’ The supplied weights total {} and is {} members long. Please check the supplied weights.’.format(sum(weights), len(weights)))
-
supplychainpy.demand.summarise_analysis module¶
-
supplychainpy.demand.summarise_analysis.
summary
(abc_xyz: list)¶


Test driven development is a method of writing code that first makes test cases that check to see if a program works as intended with a given input.
This is done for several reasons. First it helps to clearly identify the goal of the problem, because you are forced to break it into smaller tests.
Second, it helps you write better code by making sure that you always pass all tests at once. Finally, good tests help yourself and others to understand what is needed without as many wordy comments. At dev bootcamp we have used both Ruby and Javascript test code as you may remember.
The basic flow of the process is fairly simple:
As you add tests, your code will still be running the older tests, ensuring that your code is written for most cases for the final product.
With more complex programs, you will never be able to write enough tests to cover every possible situation. But if the tests are written well, they should cover a lot. Of course, test driven development does not replace the need for traditional testing.


Recent Corporate Jingle: "Live Life on a Smart Lane!"
Kewl Product/Service: Commcrete Brand Smart Surface
Number of Simmizens Employed: 452
Estimated Annualized Revenue: US$162,912,000
The Smart Lanes Corporation produces specialized road surfaces and materials and "other wheeled-vehicle infrastructure media," according to its latest Annual Report. Nobody actually knows what "infrastructure media" means, but it sounds high-tech, and therefore is a good in and of itself. Analysts suspect that it refers to the 21st century habit of wiring telecomm lines into construction materials that formerly were just big dumb slabs of something, but are now considered "smart" because they can transmit data back to a data warehouse.
Road technology, from 6000 BCE to the modern era, hasn't really changed that much.
Anyway, SLC pioneered in the manufacture of Smart Surface [vP] technology. Typically this is material that is designed for a MTBR (Mean Time Between Replacement) of about 20 years. It is primarily composed of a hydrocarbon/ceramic composite mixed in with plain old sand, quartz, and other trace elements and minerals, all overlaying an inductive copper wire grid and thin-film etched microchips. The material is designed not only to expand or contract according to external temperature variations but also to react electromechanically to internal stimuli as well. If a surface crack develops, for example, it is possible for a piece of Smart Surface to realign its structure to fill in the gap. There is a limit to how far this can go, at at some point a Smart Surface module just sort of gives up the ghost and becomes a hopelessly tangled and inelastic blob. The stuff really isn't repairable, it simply needs replacing.
Later modifications to Smart Surface enabled a thin surface layer to "wrinkle" according to external conditions of ice or water, to "stiffen" under especially heavy loads, or to "soften" to permit channeled run-off or minor variations in subsurface conditions (such as settling or hard freezes).
The latest SLC innovation, its Commcrete Brand [vTmk] product, enables system operators to receive and transmit data to road surfaces. This enables modules to tell other modules statements like "Hey, a really heavy object just pushed me at a velocity of 91 kph -- better stiffen yourself in 0.7 seconds" or "I think I just felt a raindrop -- anybody else around here getting wet? Should we wrinkle?" This is all effected by some pretty nifty firmware deployed at the modular level, because designers quickly discovered that it took too long to get data from a road to a CPU and back again in time to do anything meaningful.
Needless to say, Commcrete Brand [vTmk] is very expensive material to make and deploy. Its chief use is for very specialized applications such as airport runways, bridges, tunnels, and loading docks. Plain old Smart Surface technology is used for the vCity megabahns, and the rest of the vCity transportation system uses the even older 20th century "dumb" technologies such as reinforced concrete & asphalt.
Excellent. The Commcrete Brand [vTmk] is a recognized brand name and SLC's vPatent on Smart Surface technology insures that the corporation will be able to maintain its market advantage against rivals. The major obstacle to full deployment of their products is expense, which may come down over time. Nevertheless it is clear that more primitive technologies will always be more cost-effective for many applications. SLC has shrewdly established a non-profit subsidiary, the Center for Study of Reduction of Traffic-Related Deaths which routinely recommends the use of smart surfaces, among other findings. SLC is also investigating ways of making longer and longer stretches of road function as a kind of telecomm network which, during periods of little or no traffic, can be used as an auxiliary comm system for the vCity Transportation Information Center.


Atx-style headers use 1-6 hash characters at the start of the line, corresponding to header levels 1-6
Setext-style headers can be imported but get exported as Atx-style.


My name is Steve Paton and Insomniac Chopas & Metalcraft is my business. I am a one man operation and I love working with metal and motorcycles. Here at Insomniac, I do the following:
Feel free to pop by for a visit at 13E Port View Crescent, New Plymouth or give me a call on:


| AVR Libc Home Page | AVR Libc Development Pages | ||||
| Main Page | User Manual | Library Reference | FAQ | Alphabetical Index | Example Projects |
Programming tools can take advantage of the lockbit information embedded in the ELF file, by extracting this information and determining if the lockbits need to be programmed after programming the Flash and EEPROM memories. This also allows a single ELF file to contain all the information needed to program an AVR.
To use the Lockbit API, include the <avr/io.h> header file, which in turn automatically includes the individual I/O header file and the <avr/lock.h> file. These other two files provides everything necessary to set the AVR lockbits.
If __LOCK_BITS_EXIST is defined, then two lock bits are available to the user and 3 mode settings are defined for these two bits.
If __BOOT_LOCK_BITS_0_EXIST is defined, then the two BLB0 lock bits are available to the user and 4 mode settings are defined for these two bits.
If __BOOT_LOCK_BITS_1_EXIST is defined, then the two BLB1 lock bits are available to the user and 4 mode settings are defined for these two bits.
If __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST is defined then two lock bits are available to set the locking mode for the Application Table Section (which is used in the XMEGA family).
If __BOOT_LOCK_APPLICATION_BITS_EXIST is defined then two lock bits are available to set the locking mode for the Application Section (which is used in the XMEGA family).
If __BOOT_LOCK_BOOT_BITS_EXIST is defined then two lock bits are available to set the locking mode for the Boot Loader Section (which is used in the XMEGA family).
The AVR lockbit modes have inverted values, logical 1 for an unprogrammed (disabled) bit and logical 0 for a programmed (enabled) bit. The defined macros for each individual lock bit represent this in their definition by a bit-wise inversion of a mask. For example, the LB_MODE_3 macro is defined as:
#define LB_MODE_3 (0xFC) `
To combine the lockbit mode macros together to represent a whole byte, use the bitwise AND operator, like so:
(LB_MODE_3 & BLB0_MODE_2)
<avr/lock.h> also defines a macro that provides a default lockbit value: LOCKBITS_DEFAULT which is defined to be 0xFF.
See the AVR device specific datasheet for more details about these lock bits and the available mode settings.
A convenience macro, LOCKMEM, is defined as a GCC attribute for a custom-named section of ".lock".
A convenience macro, LOCKBITS, is defined that declares a variable, __lock, of type unsigned char with the attribute defined by LOCKMEM. This variable allows the end user to easily set the lockbit data.
#include <avr/io.h> LOCKBITS = (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4); int main(void) { return 0; }
Or:
#include <avr/io.h> unsigned char __lock __attribute__((section (".lock"))) = (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4); int main(void) { return 0; }
However there are a number of caveats that you need to be aware of to use this API properly.
Be sure to include <avr/io.h> to get all of the definitions for the API. The LOCKBITS macro defines a global variable to store the lockbit data. This variable is assigned to its own linker section. Assign the desired lockbit values immediately in the variable initialization.
The .lock section in the ELF file will get its values from the initial variable assignment ONLY. This means that you can NOT assign values to this variable in functions and the new values will not be put into the ELF .lock section.
The global variable is declared in the LOCKBITS macro has two leading underscores, which means that it is reserved for the "implementation", meaning the library, so it will not conflict with a user-named variable.
You must initialize the lockbit variable to some meaningful value, even if it is the default value. This is because the lockbits default to a logical 1, meaning unprogrammed. Normal uninitialized data defaults to all locgial zeros. So it is vital that all lockbits are initialized, even with default data. If they are not, then the lockbits may not programmed to the desired settings and can possibly put your device into an unrecoverable state.
Be sure to have the -mmcu=device flag in your compile command line and your linker command line to have the correct device selected and to have the correct I/O header file included when you include <avr/io.h>.
You can print out the contents of the .lock section in the ELF file by using this command line:
avr-objdump -s -j .lock <ELF file>


Fruit
Co.
Home Page
Shop catalog
Fruit Parlour Location
Connect with us
Our Catalog
List of fruits
Apples
Oranges
Pineapples
Mangoes
Fruit drinks categories
Tropical mix (Mangoes, Apples, Oranges) juice
Every fruit has its own juice (
see fruits above
)
Cocktail drinks
Sign our Guestbook
Enter your name:
Enter your email address:
sign guestbook


Mourinho keen to 'do a Mauricio' with five-year stay at Tottenham
by BeSoccerTottenham gave Jose Mourinho a three-and-a-half-year contract and he would like to stay longer in what he expects to be a final English job.
Jose Mourinho knows Tottenham is probably his last major club job in English football and would love to emulate the length of Mauricio Pochettino's stay in north London.
Spurs sacked Pochettino after five-and-a-half years at the helm on Tuesday, moving swiftly to secure former Chelsea, Real Madrid and Manchester United boss Mourinho as his replacement.
The 56-year-old has penned terms until the end of the 2022-23 season and spoke glowingly of the squad, facilities and wider project he has inherited in north London when facing the media for the first time in his new role.
As such, he has designs on staying in charge even longer and matching Pochettino's longevity.
"I would love to stay many years," he said. "When I say many years, I know realistically how football is. If I could do a Mauricio, five-and-a-half years, it would be amazing."
A three-time Premier League winner across two spells at Chelsea, Mourinho suggested he has 10 years left in the game when pondering his long-term future.
Featured links
- Mourinho replaces Pochettino at Tottenham
- The latest football transfers news and rumours
- Wales, golf, Madrid... in that order
- Luis Enrique returns to Spain national team
That means, if all goes to plan at Spurs, this job will conclude his time in a division with which he will be forever associated.
Other potential stops sketched out for his final years could be boyhood club Vitoria Setubal back in Portugal and his national team, So, I'm 56, 61 [after five years at Tottenham]," he added.
"Ten more years – Vitoria Setubal, Portugal. It's maybe the last [job in England], yeah."
The immediate item on the agenda for Mourinho is a trip to face old foe Manuel Pellegrini and a West Ham side enduring a similarly underwhelming campaign to Spurs.
Tottenham are winless in the Premier League since the end of September, with a return of three draws from their past five matches.
They lie 14th – two places and a point better off than West Ham, who last won six games ago at home to Mourinho's old employers from Old Trafford.


If you're seeing this message, that means
JavaScript has been disabled on your browser
, please
enable JavaScript
to make this app work.


The Brains Behind The Operation
UI Developer WEB20
Front-End Developer WEB19
Back-End Developer WEB18


Útgáfudagur: 9.Júlý 1978
Leikstjóri: George Lucas
Fjárhagsáætlun: 13 million USD
The Imperial Forces are under orders from cruel Darth Vader who holds Princess Leia hostage,
in their efforts to quell the rebellion against the Galactic Empire.
Luke Skywalker and Han Solo, captain of the Millennium Falcon,
work together with the companionable droid duo R2-D2 and C-3PO to rescue the beautiful princess,
help the Rebel Alliance, and restore freedom and justice to the Galaxy.


| |
Methods defined here:
- __init__(self)
- Initialize class.
- cards_remaining(self)
- Check how many cards remain in hand.
- last_war(self)
- Last 4 cards of player.
- recieve_cards(self, cards)
- Add recieved cards to hand.
- war(self)
- Return cards for war.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|


The Cawa project is to designed help local communities in two important wetland areas of Lao PDR to adapt to the impacts of climate change, and contribute to the sustainability of their livelihoods, by supporting the restoration and sustainable management of two globally important Ramsar-designated wetlands on which they depend.
Example Maps Developed by me for CAWAI developed an online data portal to display a number of relevant global open data layers alongside data on projects active in the Xe Champhone wetland. The purpose of the portal is to promote data sharing and awareness between the various projects operating simultaneously. I developed the portal using JavaScript, HTML and CSS and the free map-data hosting service Carto. View the portal online:
CAWA PORTALI identified 150 discrete data sets relevant to the wetland via 17 different providers. To make this large data holding available to provincial and district staff with limited bandwidth I developed a spatial data repository that could fit on a memory stick. The repository includes QGIS software to view and analyse the data. The software can be run directly from the USB stick using Portable GIS or installed. The data is stored in a Geopackage database to retain styling.
I identified 28 separate areas of encroachment totalling 57 hectares through a manual review of high resolution satellite imagery and orthophotography taken four years apart. The results of my analysis were presented at the CAWA Project Steering Committee. I also developed a web map application, with slider, to showcase the changes.
Enchroachment Web MapI used high resolution satellite imagery to create a printable atlas of the CAWA wetlands designed to be taken into the field and used in participatory mapping activities. The results of the participatory mapping were subsequently digitised using control points marked on the atlas. I also developed a prototype M&E survey app using the Open Data Kit software for Android smartphones.
Working closely with a wetlands specialist I developed a methodology to classify river reaches for ecological sensitivity. The method combines data on hydrology, species distribution, protected areas and forest cover to create a sensitivity score for each section of river. Alongside this a pressure score was calculated including factors such as irrigation and hydro-power dams, population, agriculture and mining. To date sensitivity analysis have been carried out for the Nam Ou basin in Laos (International Finance Corporation (IFC) Nam Ou Basin Profile), the Sekong, Sesan and Sre Pok basins in Laos Cambodia and Vietnam (IUCN 3 S Nexus Project and Natural Heritage Institute) and for all the rivers in Myanmar (IFC Strategic Hydropower Assessment). An example of a completed analysis is available as Figures 9 and 10 (pages 60-61) of the Nam Ou River Basin Profile Summary Document.
Nam Ou Basin ProfileThe objective of this study was to examine the watersheds from the Eastern Plains Landscape of Cambodia and to show the type of ecosystem services and economic value that they provide to downstream stakeholders and users. A slideshow of 12 of the maps I made for publication are included at the link below. In addition to these maps I also provided analysis on rates of deforestation, predicted land cover change due to economic land concessions and estimated flood extents.
Map Slide ShowI used the Open Foris Collect Earth application to develop a survey for collecting information about river features uing Google Earth and the CMGO R package to calculate river width and centrelines. The surveys were carried out for the Nam Ou river and stretches of the Mekong mainstream.


Apply additional filtering to hierarchical store
No additional filtering
Additional filtering to remove blue items


Gluster Block Interface
Bangalore, India - February
Agenda
Motivation for block on gluster
Implementation / libgfapi
Benchmarks
Special cases
Why would gluster need a block interface?
Use case #1 : virtual machines
OpenStack already has libgfapi
But theres more out there..
XEN
HyperV
VmWare
Virtual Box
etc. (Apache cloudstack, onapp,...)
Why else would gluster need a block interface?
Database
Backup
Archive
Our backup partner (CommVault) is not open source..
Is gluster a good fit for block storage?
+1 Scale out capacity and performance is desirable.
+1 Unified namespace simplifies admin.
+1 Gluster is affordable.
+1 Block device translator exists for backend.
-1 Gluster aggregates file systems.
-1 RHS strategy is to focus dev efforts on file systems, not block/object
Scale out block storage satisfies a nitch in the marketplace
DELL Equallogic.
Solidfire.
Etc. SCALE computing, SimpliVity, Nutanix..
Note Ceph is well integrated with block storage (rbd driver in Linux kernel)
So how can we support it?
A file or "gluster block device" becomes the LUN
The LBA is an offset within the file.
The Linux Target Driver (tgtd) runs to interpret iSCSI
tgtd's "backing store" is gluster's file
libgfapi plug-in for the Target Driver to skip fuse overhead
This technique used by NetAPP and EMC filesystems
Target Daemon (tgtd) and libgfapi
Example : note the backing store is volname@server:image
$ # define the target
$ tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.01-07.com.redhat
$
$ # define a LUN
$ tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --bstype glfs \
--lun 2 --backing-store="gv0@gprfs023-10ge:disk1"
$
$ # set LUN online
$ tgtadm --lld iscsi --op update --mode logicalunit --tid 1 --lun 2 \
--params online=1
$
$ # set permissions
$ ./tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
The LUN can be attached to by any iSCSI intitiator
libgfapi implementation
Gluster connection init
glfs = glfs_new(volname)
glfs_set_volfile_server (glfs, "tcp", servername, 24007);
// bsoflags may be O_SYNC | O_DIRECT | O_RDWR | O_LARGEFILE
gfd = glfs_open (fs, pathname, bsoflags);
ret = glfs_lstat(glfs, pathname, &st);
datapath interfaces
glfs_pread()
glfs_pwrite()
glfs_discard() for punch hole in file
glfs_fdatasync() for synchronize cache
termination
glfs_fini()
Thread model
synchronous ; thread per/IO.
Number of threads is a configuration option
Asynchronous using glfs_read_async() and glfs_write_async()
Async code written ; in test
Number of async IOs bounded by memory
For async, no context needed to save while IO in flight
Some performance results
Two nodes, 64k transfers, 32 queue depth
LIO - replacement for tgtd in RHEL7
A kernel module (tgtd is user space)
Observed better performance
plug-in suport is planned...
Configuration Choices
What do SAN admins require?
Failover
RAID-0, RAID-1, RAID-10
Change LUN size
Observe SCSI timeout
No buffer cache
SCSI-3 standards (T10 diff, reservations,...)
Configuration iSCSI target on client
Configuration iSCSI targer on server
Conclusion
Use gluster across network if you can.
Use iSCSI across network only if you must.
References
Blog posts
https://mojo.redhat.com/people/dlambrig/blog/2013/11/19/ceph-vs-gluster-block-support-sequential-writes
https://mojo.redhat.com/people/dlambrig/blog/2013/12/11/ceph-vs-gluster-using-plug-ins-to-the-linux-target-driver
http://www.gluster.org/2013/11/a-gluster-block-interface-performance-and-configuration/
https://www.gluster.org/category/iscsi/


Katōmado (火灯窓 or 花頭窓) is a style of window with a bell-shape.
— History
Katōmado date back to the end of the Muromachi period up to the Momoyama period. They were introduced to Japan from China when Zen Buddhism was brought over. This cusped window design is an element of Zen style architecture.
From around 1575 onward, Katōmado were used in shrines and temples, as well as castles and houses. They were very uncommon in rustic Chashitsu. In the early 1600s, the curved design, points, and flares at the bottom were exaggerated.