Welcome to my WebAssembly sandbox! This page is meant to be used as a very simple way to quickly test how much faster WebAssembly modules are compared to (minified) JavaScript.
This "application" is able to perform calculations on a big dataset. How big this dataset is going to be will depend on the options you select in the tool down below.
Once you're done, check out the section at the bottom of the page where you can run the business logic on your dataset. Please do keep in mind that it's impossible to change the way the business logic works. You can only change the size of your input dataset.
Lastly, make sure to check out https://github.com/tntmeijs/wasm_sandbox to inspect the source code of this application. Everything is open-source and licensed under the MIT license. :)
Install the Rust programming language
Install wasm-pack to help us compile Rust into WebAssembly
Install any webserver so we can serve this website - I like to use http-server
cd wasm_sandbox/rs_parser
wasm-pack build --target web
Run the HTTP server and serve everything in the repository's root folder


Here are some additional supplimentary pictures and images about the material on this page
{{item.description}}


OWASP The Open Web Application Security Project is an international non-profit organization dedicated to web application security. They’re best know by OWASP Top 10, a curated list of top 10 most critical security risks. This post will highlight some of the practices we are following at Solus while building our systems.
SQL injection
This is one of the very common and the first item in OWASP Top 10. In it’s simplest form, it is about sending a sql code through e.g., HTML Form input field. For this to work, the server must be enabling executing such an action. Let’s take this simple example (using Python):
form = request.form()
username = form["username"] # there's an form field called username
sql.exec(username) # This is a _sql injection_
It is almost always bad to execute raw sql queries. In fact, unless you DB is read-only, there’s no need at ALL to allow raw sql queries execution.
The solution is: Don’t allow raw sql execution.
Broken Authentication
This can be broken into two categories: - you’re either building an insecure authentication system that exposes your users’ data, - or, your login system allows repeated logins attempts (brute-forcing)
We are using the industry standard practice here. We are using JWT for most of our authorization, while planning to use session cookies for browser based ones. There are huge debates about JWT and session cookies, but it is all boils down to your whole system design. Sometimes, JWT fits to the whole system (if your target clients are Android/iOS), and sometimes session cookies are great, esp if you target clients are browser based.
For this, we have two solutions: - We are using HSTS (HTTP Strict Transport Security).
HSTS causes compliant browsers to strictly enforce web security practices. Specifically, it automatically turns all HTTP links into HTTPS links within an application, and it upgrades all SSL errors from warnings or bypassable errors into non-bypassable errors.
XSS (Cross-site scription)
An attacker can send a malicious JS code (in the client code). It can be as bad as copying the user’s cookies and gain control access to their session.
Suppose that you have an HTML form that allows your users to write some notes about their transactions, here is a sample code:
<form>
<input type="text">
Type your note here
</form>
The user’s form will be submitted and rendered in a new page! Now this is very dangerous and it what leads to XSS security breaches. Let’s see this in action. The next HTML page which will render the form result is like this:

We expect our users to input stuff like time, text data BUT NOT JS CODE! What happens, if the users submitted
. This will launch a JS code from suspecious user’s input. Now, this code can be even worse and accesses the user’s cookies.
How the attacker can log your cookies
It is quite simply actually. You can access your website cookie by accessing the cookie property of document class: - use your browser inspector and go to console - print document.cookie and now you can access your cookies!
Now if the attacker wants to get that cookie, they will need to send it somewhere (most likey to a server/website they own)
- the attacker submits an unsafe js code that redirects the users to a new website (where they will log the cookie)
- now, the attacker does have access to your session and can do whatever they want while they are there (they can see your payment card info for instance, they can even submit a transaction assuming that your PIN is 0000 or your birthday)
The JS code to get your cookie is just this:

This can be even smarter by redirecting the user back to their original website!
And now, when the user submits that un-sanitized inputs, it will:
- redirect them to a new website http://mybadwebsite.com
- it submits their cookie document.cookie
to that website!
Here are a few steps you can follow to be safe against these types of attacks:
- Sanitize your users’ inputs! In GO template/html
library (the templating engine in GO, much like jinja2), it by default scapes HTML and JS tags
- If your website is something is form-like, there are a few things you can adopt:
- let your users use markdown (it is safer)
- you can specify some HTML elements as safe (e.g.,
, ), and escape the rest. In this case, you will allow your users to have rich text experience
The solution to all of the above issues is very simple: USE A FRAMEWORK!
The solution to all of the above issues is very simple, use a web framework! All of the modern web frameworks solves these rather naive secruity issues! I have worked with Python (Django and Flask and Starlette) and I’ve also worked with GO, all of them have built-in support for these common security issues! So, in practice, adapting any of modern web framework will save you from all of these issues, for free!
Security Misconfigurations
I have seen this in the wild very recently in a payment system. We as developers love to have excessive stack trace and error reports while developing our services. Because there are so many errors we ought to face, it is very important that we get the whole stack trace so we get more insights into our error and fix it. However, that must stay in the development face ONLY! These stack traces (and perhaps other info) are very useful for attackers to gain access to your server.
Many of web frameworks (Django for instance) have DEBUG mode where instead of returing 500 INTERNAL SERVER ERROR, they also include the stack trace (when DEBUG=True) in Django settings.py
. While this is very important while developing, it is very catastrophic in real life!
Sensitive data exposure and MITM
We work in payment systems and it is very important to secure our user’s data (their payment card info). These systems must adhere to even strictier rules than what OWASP offers as they have VERY sensitive data. PCI-DSS compliancy should be a #1 target for such systems and they shoud monitor and audit their systems and upgrade them regularly. Security should be a profound part of their system design!
While getting EBS certificate is quite enough to have a secure system, we know that vendors often tend to modify their EBS-certified systems. This is a huge issue and it renders the whole EBS certification part useless.
What we do in noebs to secure your data
- KISS (keeping it simple, stupid!). We are keeping it simple: we are only storing your PAN and expiration date, we don’t store anything else!
- We had long discussions about storing PAN and expiration date, but we plan to change the way we store them VERY SOON!
- We have a Zero-log policy, so even if an attacker has breached our system, they will find no useful data!
MITM Attacks
Man in the middle attacks are a very special and interesting class of attacks. - You are using https for securing your system - You have successfully solved CSRF, XSS and SQL Injections (hooray!) - and now everything is fine, right?
As we know, TLS certificates are used to encrypt our request and make it secure. They are to be unbroken since the protocol is a public-private key exchange to decypher the http request. Meaning that, there’s only one private key (in the server), and each client has their unique public key. So what could possibly go wrong? Telecos (or MITM attackers) inject a tampered root CA in the host machine and replace their original one. When you send your “secure” request, it is being encrypted using the new root CA and sent to the server. The attacker, having acquired your root CA, can then decypher your network traffic and have access to all of it.


Use technology to keep in touch, share best practice, learn, collaborate, evolve.
It is not always the people who start out the smartest who end up the smartest.
Destroy what destroys you!

Trust, but verify.
There is no sustainability without transparency!
Take small steps.
I only needed the money for my mindset to free myself from the fear of failure.
If you build something for everyone, it works for no one.


Results Summary
Type
Name
Info
Timestamp
Duration
Status
Impact
On Error
Results (
)
Logs (
)
Defects (
)
Summary


--- layout: home title: Free Compiler Camp ---
FreeCompilerCamp.org is a free and open online training platform aimed to automate the training of compiler developers. Our platform is open source and allows anyone who is interested in developing compilers to learn the necessary skills for free. The platform is built on top of Play-With-Docker, a docker playground for users to conduct experiments in a sandbox. We welcome anyone to try out our system, give us feedback, contribute new training courses, or enhance the training platform to make it an effective learning resource for the compiler community.
While this platform can be used to host any compiler tutorials, we specially collect some tutorials for OpenMP compilers. We have created some initial tutorials to train users to learn how to use the ROSE or Clang/LLVM compiler to support OpenMP.
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. The Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
Goto: Clang/LLVM Tutorials »ROSE is a robust, open source, compiler-based infrastructure for building program transformation and analysis tools, developed at Lawrence Livermore National Laboratory. ROSE Tools can process large C, C++, Fortran, OpenMP, and UPC source codes, as well as binary executables. ROSE is particularly well suited for building custom tools for static analysis, program optimization, arbitrary program transformation, domain-specific optimizations, complex loop optimizations, performance analysis, and cyber-security analysis.
Goto: ROSE Tutorials »


Bradlee Speice, Wed 08 June 2016, Blog
Or, being suspicious of market insiders.
Use the button below to show the code I've used to generate this article. Because there is a significant amount more code involved than most other posts I've written, it's hidden by default to allow people to concentrate on the important bits.
from IPython.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')
I recently saw two examples of stock charts that have kept me thinking for a while. And now that the semester is complete, I finally have enough time to really look at them and give them the treatment they deserve. The first is good old Apple:
from secrets import QUANDL_KEY
import matplotlib.pyplot as plt
from matplotlib.dates import date2num
from matplotlib.finance import candlestick_ohlc
from matplotlib.dates import DateFormatter, WeekdayLocator,\
DayLocator, MONDAY
import quandl
from datetime import datetime
import pandas as pd
%matplotlib inline
def fetch_ticker(ticker, start, end):
# Quandl is currently giving me issues with returning
# the entire dataset and not slicing server-side.
# So instead, we'll do it client-side!
q_format = '%Y-%m-%d'
ticker_data = quandl.get('YAHOO/' + ticker,
start_date=start.strftime(q_format),
end_date=end.strftime(q_format),
authtoken=QUANDL_KEY)
return ticker_data
def ohlc_dataframe(data, ax=None):
# Much of this code re-used from:
# http://matplotlib.org/examples/pylab_examples/finance_demo.html
if ax is None:
f, ax = plt.subplots()
vals = [(date2num(date), *(data.loc[date]))
for date in data.index]
candlestick_ohlc(ax, vals)
mondays = WeekdayLocator(MONDAY)
alldays = DayLocator()
weekFormatter = DateFormatter('%b %d')
ax.xaxis.set_major_locator(mondays)
ax.xaxis.set_minor_locator(alldays)
ax.xaxis.set_major_formatter(weekFormatter)
return ax
AAPL = fetch_ticker('AAPL', datetime(2016, 3, 1), datetime(2016, 5, 1))
ax = ohlc_dataframe(AAPL)
plt.vlines(date2num(datetime(2016, 4, 26, 12)),
ax.get_ylim()[0], ax.get_ylim()[1],
color='b',
label='Earnings Release')
plt.legend(loc=3)
plt.title("Apple Price 3/1/2016 - 5/1/2016");
The second chart is from Facebook:
FB = fetch_ticker('FB', datetime(2016, 3, 1), datetime(2016, 5, 5))
ax = ohlc_dataframe(FB)
plt.vlines(date2num(datetime(2016, 4, 27, 12)),
ax.get_ylim()[0], ax.get_ylim()[1],
color='b', label='Earnings Release')
plt.title('Facebook Price 3/5/2016 - 5/5/2016')
plt.legend(loc=2);
These two charts demonstrate two very specific phonomena: how the market prepares for earnings releases. Let's look at those charts again, but with some extra information. As we're about the see, the market "knew" in advance that Apple was going to perform poorly. The market expected that Facebook was going to perform poorly, and instead shot the lights out. Let's see that trend in action:
def plot_hilo(ax, start, end, data):
ax.plot([date2num(start), date2num(end)],
[data.loc[start]['High'], data.loc[end]['High']],
color='b')
ax.plot([date2num(start), date2num(end)],
[data.loc[start]['Low'], data.loc[end]['Low']],
color='b')
f, axarr = plt.subplots(1, 2)
ax_aapl = axarr[0]
ax_fb = axarr[1]
# Plot the AAPL trend up and down
ohlc_dataframe(AAPL, ax=ax_aapl)
plot_hilo(ax_aapl, datetime(2016, 3, 1), datetime(2016, 4, 15), AAPL)
plot_hilo(ax_aapl, datetime(2016, 4, 18), datetime(2016, 4, 26), AAPL)
ax_aapl.vlines(date2num(datetime(2016, 4, 26, 12)),
ax_aapl.get_ylim()[0], ax_aapl.get_ylim()[1],
color='g', label='Earnings Release')
ax_aapl.legend(loc=2)
ax_aapl.set_title('AAPL Price History')
# Plot the FB trend down and up
ohlc_dataframe(FB, ax=ax_fb)
plot_hilo(ax_fb, datetime(2016, 3, 30), datetime(2016, 4, 27), FB)
plot_hilo(ax_fb, datetime(2016, 4, 28), datetime(2016, 5, 5), FB)
ax_fb.vlines(date2num(datetime(2016, 4, 27, 12)),
ax_fb.get_ylim()[0], ax_fb.get_ylim()[1],
color='g', label='Earnings Release')
ax_fb.legend(loc=2)
ax_fb.set_title('FB Price History')
f.set_size_inches(18, 6)
As we can see above, the market broke a prevailing trend on Apple in order to go down, and ultimately predict the earnings release. For Facebook, the opposite happened. While the trend was down, the earnings were fantastic and the market corrected itself much higher.
While these are two specific examples, there are plenty of other examples you could cite one way or another. Even if the preponderance of evidence shows that the market correctly predicts earnings releases, we need not accuse people of collusion; for a company like Apple with many suppliers we can generally forecast how Apple has done based on those same suppliers.
The question then, is this: how well does the market predict the earnings releases? It's an incredibly broad question that I want to disect in a couple of different ways:
I want to especially thank Alejandro Saltiel for helping me retrieve the data. He's great. And now for all of the interesting bits.
Before we go too much further, I want to introduce the actual event study. Each chart intends to capture a lot of information and present an easy-to-understand pattern:
import numpy as np
import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar
from pandas.tseries.offsets import CustomBusinessDay
from datetime import datetime, timedelta
# If you remove rules, it removes them from *all* calendars
# To ensure we don't pop rules we don't want to, first make
# sure to fully copy the object
trade_calendar = USFederalHolidayCalendar()
trade_calendar.rules.pop(6) # Remove Columbus day
trade_calendar.rules.pop(7) # Remove Veteran's day
TradeDay = lambda days: CustomBusinessDay(days, calendar=trade_calendar)
def plot_study(array):
# Given a 2-d array, we assume the event happens at index `lookback`,
# and create all of our summary statistics from there.
lookback = int((array.shape[1] - 1) / 2)
norm_factor = np.repeat(array[:,lookback].reshape(-1, 1), array.shape[1], axis=1)
centered_data = array / norm_factor - 1
lookforward = centered_data.shape[1] - lookback
means = centered_data.mean(axis=0)
lookforward_data = centered_data[:,lookforward:]
std_dev = np.hstack([0, lookforward_data.std(axis=0)])
maxes = lookforward_data.max(axis=0)
mins = lookforward_data.min(axis=0)
f, axarr = plt.subplots(1, 2)
range_begin = -lookback
range_end = lookforward
axarr[0].plot(range(range_begin, range_end), means)
axarr[1].plot(range(range_begin, range_end), means)
axarr[0].fill_between(range(0, range_end),
means[-lookforward:] + std_dev,
means[-lookforward:] - std_dev,
alpha=.5, label="$\pm$ 1 s.d.")
axarr[1].fill_between(range(0, range_end),
means[-lookforward:] + std_dev,
means[-lookforward:] - std_dev,
alpha=.5, label="$\pm$ 1 s.d.")
max_err = maxes - means[-lookforward+1:]
min_err = means[-lookforward+1:] - mins
axarr[0].errorbar(range(1, range_end),
means[-lookforward+1:],
yerr=[min_err, max_err], label='Max & Min')
axarr[0].legend(loc=2)
axarr[1].legend(loc=2)
axarr[0].set_xlim((-lookback-1, lookback+1))
axarr[1].set_xlim((-lookback-1, lookback+1))
def plot_study_small(array):
# Given a 2-d array, we assume the event happens at index `lookback`,
# and create all of our summary statistics from there.
lookback = int((array.shape[1] - 1) / 2)
norm_factor = np.repeat(array[:,lookback].reshape(-1, 1), array.shape[1], axis=1)
centered_data = array / norm_factor - 1
lookforward = centered_data.shape[1] - lookback
means = centered_data.mean(axis=0)
lookforward_data = centered_data[:,lookforward:]
std_dev = np.hstack([0, lookforward_data.std(axis=0)])
maxes = lookforward_data.max(axis=0)
mins = lookforward_data.min(axis=0)
range_begin = -lookback
range_end = lookforward
plt.plot(range(range_begin, range_end), means)
plt.fill_between(range(0, range_end),
means[-lookforward:] + std_dev,
means[-lookforward:] - std_dev,
alpha=.5, label="$\pm$ 1 s.d.")
max_err = maxes - means[-lookforward+1:]
min_err = means[-lookforward+1:] - mins
plt.errorbar(range(1, range_end),
means[-lookforward+1:],
yerr=[min_err, max_err], label='Max & Min')
plt.legend(loc=2)
plt.xlim((-lookback-1, lookback+1))
def fetch_event_data(ticker, events, horizon=5):
# Use horizon+1 to account for including the day of the event,
# and half-open interval - that is, for a horizon of 5,
# we should be including 11 events. Additionally, using the
# CustomBusinessDay means we automatically handle issues if
# for example a company reports Friday afternoon - the date
# calculator will turn this into a "Saturday" release, but
# we effectively shift that to Monday with the logic below.
td_back = TradeDay(horizon+1)
td_forward = TradeDay(horizon+1)
start_date = min(events) - td_back
end_date = max(events) + td_forward
total_data = fetch_ticker(ticker, start_date, end_date)
event_data = [total_data.ix[event-td_back:event+td_forward]\
[0:horizon*2+1]\
['Adjusted Close']
for event in events]
return np.array(event_data)
# Generate a couple of random events
event_dates = [datetime(2016, 5, 27) - timedelta(days=1) - TradeDay(x*20) for x in range(1, 40)]
data = fetch_event_data('CELG', event_dates)
plot_study_small(data)
plt.legend(loc=3)
plt.gcf().set_size_inches(12, 6);
plt.annotate('Mean price for days leading up to each event',
(-5, -.01), (-4.5, .025),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.annotate('', (-.1, .005), (-.5, .02),
arrowprops={'facecolor': 'black', 'shrink': .05})
plt.annotate('$\pm$ 1 std. dev. each day', (5, .055), (2.5, .085),
arrowprops={'facecolor': 'black', 'shrink': .05})
plt.annotate('Min/Max each day', (.9, -.07), (-1, -.1),
arrowprops={'facecolor': 'black', 'shrink': .05});
And as a quick textual explanation as well:
The blue line represents the mean price for each day, represented as a percentage of the price on the '0-day'. For example, if we defined an 'event' as whenever the stock price dropped for three days, we would see a decreasing blue line to the left of the 0-day.
The blue shaded area represents one standard deviation above and below the mean price for each day following an event. This is intended to give us an idea of what the stock price does in general following an event.
The green bars are the minimum and maximum price for each day following an event. This instructs us as to how much it's possible for the stock to move.
The first type of event I want to study is how stocks perform when they've been trending down over the past couple of days prior to a release. However, we need to clarify what exactly is meant by "trending down." To do so, we'll use the following metric: the midpoint between each day's opening and closing price goes down over a period of N days.
It's probably helpful to have an example:
f, axarr = plt.subplots(1, 2)
f.set_size_inches(18, 6)
FB_plot = axarr[0]
ohlc_dataframe(FB[datetime(2016, 4, 18):], FB_plot)
FB_truncated = FB[datetime(2016, 4, 18):datetime(2016, 4, 27)]
midpoint = FB_truncated['Open']/2 + FB_truncated['Close']/2
FB_plot.plot(FB_truncated.index, midpoint, label='Midpoint')
FB_plot.vlines(date2num(datetime(2016, 4, 27, 12)),
ax_fb.get_ylim()[0], ax_fb.get_ylim()[1],
color='g', label='Earnings Release')
FB_plot.legend(loc=2)
FB_plot.set_title('FB Midpoint Plot')
AAPL_plot = axarr[1]
ohlc_dataframe(AAPL[datetime(2016, 4, 10):], AAPL_plot)
AAPL_truncated = AAPL[datetime(2016, 4, 10):datetime(2016, 4, 26)]
midpoint = AAPL_truncated['Open']/2 + AAPL_truncated['Close']/2
AAPL_plot.plot(AAPL_truncated.index, midpoint, label='Midpoint')
AAPL_plot.vlines(date2num(datetime(2016, 4, 26, 12)),
ax_aapl.get_ylim()[0], ax_aapl.get_ylim()[1],
color='g', label='Earnings Release')
AAPL_plot.legend(loc=3)
AAPL_plot.set_title('AAPL Midpoint Plot');
Given these charts, we can see that FB was trending down for the four days preceding the earnings release, and AAPL was trending down for a whopping 8 days (we don't count the peak day). This will define the methodology that we will use for the study.
So what are the results? For a given horizon, how well does the market actually perform?
# Read in the events for each stock;
# The file was created using the first code block in the Appendix
import yaml
from dateutil.parser import parse
from progressbar import ProgressBar
data_str = open('earnings_dates.yaml', 'r').read()
# Need to remove invalid lines
filtered = filter(lambda x: '{' not in x, data_str.split('\n'))
earnings_data = yaml.load('\n'.join(filtered))
# Convert our earnings data into a list of (ticker, date) pairs
# to make it easy to work with.
# This is horribly inefficient, but should get us what we need
ticker_dates = []
for ticker, date_list in earnings_data.items():
for iso_str in date_list:
ticker_dates.append((ticker, parse(iso_str)))
def does_trend_down(ticker, event, horizon):
# Figure out if the `event` has a downtrend for
# the `horizon` days preceding it
# As an interpretation note: it is assumed that
# the closing price of day `event` is the reference
# point, and we want `horizon` days before that.
# The price_data.hdf was created in the second appendix code block
try:
ticker_data = pd.read_hdf('price_data.hdf', ticker)
data = ticker_data[event-TradeDay(horizon):event]
midpoints = data['Open']/2 + data['Close']/2
# Shift dates one forward into the future and subtract
# Effectively: do we trend down over all days?
elems = midpoints - midpoints.shift(1)
return len(elems)-1 == len(elems.dropna()[elems <= 0])
except KeyError:
# If the stock doesn't exist, it doesn't qualify as trending down
# Mostly this is here to make sure the entire analysis doesn't
# blow up if there were issues in data retrieval
return False
def study_trend(horizon, trend_function):
five_day_events = np.zeros((1, horizon*2 + 1))
invalid_events = []
for ticker, event in ProgressBar()(ticker_dates):
if trend_function(ticker, event, horizon):
ticker_data = pd.read_hdf('price_data.hdf', ticker)
event_data = ticker_data[event-TradeDay(horizon):event+TradeDay(horizon)]['Close']
try:
five_day_events = np.vstack([five_day_events, event_data])
except ValueError:
# Sometimes we don't get exactly the right number of values due to calendar
# issues. I've fixed most everything I can, and the few issues that are left
# I assume don't systemically bias the results (i.e. data could be missing
# because it doesn't exist, etc.). After running through, ~1% of events get
# discarded this way
invalid_events.append((ticker, event))
# Remove our initial zero row
five_day_events = five_day_events[1:,:]
plot_study(five_day_events)
plt.gcf().suptitle('Action over {} days: {} events'
.format(horizon,five_day_events.shape[0]))
plt.gcf().set_size_inches(18, 6)
# Start with a 5 day study
study_trend(5, does_trend_down)
When a stock has been trending down for 5 days, once the earnings are announced it really doesn't move on average. However, the variability is incredible. This implies two important things:
Let's repeat the same study, but over a time horizon of 8 days and 3 days. Presumably if a stock has been going down for 8 days at a time before the earnings, the market should be more accurate.
# 8 day study next
study_trend(8, does_trend_down)
However, looking only at stocks that trended down for 8 days prior to a release, the same pattern emerges: on average, the stock doesn't move, but the market reaction is often incredibly violent.
# 3 day study after that
study_trend(3, does_trend_down)
Finally, when we look at a 3-day horizon, we start getting some incredible outliers. Stocks have a potential to move over ~300% up, and the standard deviation width is again, incredible. The results for a 3-day horizon follow the same pattern we've seen in the 5- and 8-day horizons.
We're now going to repeat the analysis, but do it for uptrends instead. That is, instead of looking at stocks that have been trending down over the past number of days, we focus only on stocks that have been trending up.
def does_trend_up(ticker, event, horizon):
# Figure out if the `event` has an uptrend for
# the `horizon` days preceding it
# As an interpretation note: it is assumed that
# the closing price of day `event` is the reference
# point, and we want `horizon` days before that.
# The price_data.hdf was created in the second appendix code block
try:
ticker_data = pd.read_hdf('price_data.hdf', ticker)
data = ticker_data[event-TradeDay(horizon):event]
midpoints = data['Open']/2 + data['Close']/2
# Shift dates one forward into the future and subtract
# Effectively: do we trend down over all days?
elems = midpoints - midpoints.shift(1)
return len(elems)-1 == len(elems.dropna()[elems >= 0])
except KeyError:
# If the stock doesn't exist, it doesn't qualify as trending down
# Mostly this is here to make sure the entire analysis doesn't
# blow up if there were issues in data retrieval
return False
study_trend(5, does_trend_up)
The patterns here are very similar. With the exception of noting that stocks can go to nearly 400% after an earnings announcement (most likely this included a takeover announcement, etc.), we still see large min/max bars and wide standard deviation of returns.
We'll repeat the pattern for stocks going up for both 8 and 3 days straight, but at this point, the results should be very predictable:
study_trend(8, does_trend_up)
study_trend(3, does_trend_up)
I guess the most important thing to summarize with is this: looking at the entire market, stock performance prior to an earnings release has no bearing on the stock's performance. Honestly: given the huge variability of returns after an earnings release, even when the stock has been trending for a long time, you're best off divesting before an earnings release and letting the market sort itself out.
However, there is a big caveat. These results are taken when we look at the entire market. So while we can say that the market as a whole knows nothing and just reacts violently, I want to take a closer look into this data. Does the market typically perform poorly on large-cap/high liquidity stocks? Do smaller companies have investors that know them better and can thus predict performance better? Are specific market sectors better at prediction? Presumably technology stocks are more volatile than the industrials.
So there are some more interesting questions I still want to ask with this data. Knowing that the hard work of data processing is largely already done, it should be fairly simple to continue this analysis and get much more refined with it. Until next time.
Export event data for Russell 3000 companies:
import pandas as pd
from html.parser import HTMLParser
from datetime import datetime, timedelta
import requests
import re
from dateutil import parser
import progressbar
from concurrent import futures
import yaml
class EarningsParser(HTMLParser):
store_dates = False
earnings_offset = None
dates = []
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.dates = []
def handle_starttag(self, tag, attrs):
if tag == 'table':
self.store_dates = True
def handle_data(self, data):
if self.store_dates:
match = re.match(r'\d+/\d+/\d+', data)
if match:
self.dates.append(match.group(0))
# If a company reports before the bell, record the earnings date
# being at midnight the day before. Ex: WMT reports 5/19/2016,
# but we want the reference point to be the closing price on 5/18/2016
if 'After Close' in data:
self.earnings_offset = timedelta(days=0)
elif 'Before Open' in data:
self.earnings_offset = timedelta(days=-1)
def handle_endtag(self, tag):
if tag == 'table':
self.store_dates = False
def earnings_releases(ticker):
#print("Looking up ticker {}".format(ticker))
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) '\
'Gecko/20100101 Firefox/46.0'
headers = {'user-agent': user_agent}
base_url = 'http://www.streetinsider.com/ec_earnings.php?q={}'\
.format(ticker)
e = EarningsParser()
s = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=0)
s.mount('http://', a)
e.feed(str(s.get(base_url, headers=headers).content))
if e.earnings_offset is not None:
dates = map(lambda x: parser.parse(x) + e.earnings_offset, e.dates)
past = filter(lambda x: x < datetime.now(), dates)
return list(map(lambda d: d.isoformat(), past))
# Use a Russell-3000 ETF tracker (ticker IWV) to get a list of holdings
r3000 = pd.read_csv('https://www.ishares.com/us/products/239714/'
'ishares-russell-3000-etf/1449138789749.ajax?'
'fileType=csv&fileName=IWV_holdings&dataType=fund',
header=10)
r3000_equities = r3000[(r3000['Exchange'] == 'NASDAQ') |
(r3000['Exchange'] == 'New York Stock Exchange Inc.')]
dates_file = open('earnings_dates.yaml', 'w')
with futures.ThreadPoolExecutor(max_workers=8) as pool:
fs = {pool.submit(earnings_releases, r3000_equities.ix[t]['Ticker']): t
for t in r3000_equities.index}
pbar = progressbar.ProgressBar(term_width=80,
max_value=r3000_equities.index.max())
for future in futures.as_completed(fs):
i = fs[future]
pbar.update(i)
dates_file.write(yaml.dump({r3000_equities.ix[i]['Ticker']:
future.result()}))
Downloading stock price data needed for the event studies:
from secrets import QUANDL_KEY
import pandas as pd
import yaml
from dateutil.parser import parse
from datetime import timedelta
import quandl
from progressbar import ProgressBar
def fetch_ticker(ticker, start, end):
# Quandl is currently giving me issues with returning
# the entire dataset and not slicing server-side.
# So instead, we'll do it client-side!
q_format = '%Y-%m-%d'
ticker_data = quandl.get('YAHOO/' + ticker,
start_date=start.strftime(q_format),
end_date=end.strftime(q_format),
authtoken=QUANDL_KEY)
return ticker_data
data_str = open('earnings_dates.yaml', 'r').read()
# Need to remove invalid lines
filtered = filter(lambda x: '{' not in x, data_str.split('\n'))
earnings_data = yaml.load('\n'.join(filtered))
# Get the first 1500 keys - split up into two statements
# because of Quandl rate limits
tickers = list(earnings_data.keys())
price_dict = {}
invalid_tickers = []
for ticker in ProgressBar()(tickers[0:1500]):
try:
# Replace '.' with '-' in name for some tickers
fixed = ticker.replace('.', '-')
event_strs = earnings_data[ticker]
events = [parse(event) for event in event_strs]
td = timedelta(days=20)
price_dict[ticker] = fetch_ticker(fixed,
min(events)-td, max(events)+td)
except quandl.NotFoundError:
invalid_tickers.append(ticker)
# Execute this after 10 minutes have passed
for ticker in ProgressBar()(tickers[1500:]):
try:
# Replace '.' with '-' in name for some tickers
fixed = ticker.replace('.', '-')
event_strs = earnings_data[ticker]
events = [parse(event) for event in event_strs]
td = timedelta(days=20)
price_dict[ticker] = fetch_ticker(fixed,
min(events)-td, max(events)+td)
except quandl.NotFoundError:
invalid_tickers.append(ticker)
prices_store = pd.HDFStore('price_data.hdf')
for ticker, prices in price_dict.items():
prices_store[ticker] = prices


Item #: SCP-ES-048
Object Classification: Euclid
Special Containment Procedures: The manifestations of SCP-ES-048 must be documented and the data will be sent to the Foundation's Site-██. An event SCP-ES-048 will invariably generate the appearance of SCP-ES-048-1 in the area, for which a team of Field Agents will be dispatched for the effective containment of SCP-ES-048-1.
The termination of subjects affected by SCP-ES-048 is allowed. Two instances must be recovered for study in each manifestation of SCP-ES-048, one of the specimens must remain alive while the other must be a corpse. Copies of SCP-ES-048-1 will be stored for study, and once completed they should be incinerated and processed as industrial waste.
Records of local law enforcement agencies must be modified and reported as missing to specimens of SCP-ES-048-1.
Description: SCP-ES-048 is a neurological and biological phenomenon that affects human subjects, especially those individuals with reduced cognitive and motor abilities. This anomaly has been documented over time, being the first sighting of humans affected in June 1919, although documents recently recovered by the Foundation date the occurrence of this anomaly since 1904.
Despite that SCP-ES-048 affects the psychomotor abilities of human subjects, it does not leave observable sequelae in the structure and CNS function of the subjects'1, nor will it result in a vegetative state of affected individuals if they are given amnestic or sedative SCP-ES-048 has been shown to be lethal in individuals who are treated by specialized medical teams, behaving in a hostile manner, having to resort to the application of lethal force for the neutralization of individuals affected by SCP-ES-048 (hereinafter referred to as SCP-ES-048-1).
SCP-ES-048-1 is not able to sustain verbal communication, although its vocal cords are intact. SCP-ES-048-1 seems to move in groups of 50 to 80 individuals who are attracted to each other by unknown means (see Addendum-048-Alpha) and are not able to accept and fulfill verbal, written or visual commands of other human subjects. In contrast, SCP-ES-048-1 seems to act erratically and without apparent meaning, only react to specific individuals, these incidents are always characterized by a sequence of attacks of rage and anger towards the objective identified by the group of SCP-ES-048-1.
Once the individual causing the hostile reaction on the part of SCP-ES-048-1 is neutralized or leaves his field of vision (See Addendum-048-Alpha) SCP-ES-048-1 will enter another once in an erratic state of inaction. SCP-ES-048-1 mumbles incoherent words, the only phrase he is able to vocalize is: "Silence and Loyalty, Loyalty and Union" - this sentence is the official slogan of the ultra-right party of Austrian origin La Gekare2.
The spreading method of SCP-ES-048 continues to be unknown to the research staff of the Foundation, but it has been assumed that SCP-ES-048 is transmitted using memetic agents (See Addendum-048-Beta).
Update 19/06/201█: During a raid at a Gekare Meeting Center in ███████, Hungary, local police forces found documents related to SCP-ES-048. Undercover agents of the Foundation infiltrated the police department copied the documents, replacing the originals in duplicates, ignoring sensitive information. (See Addendum-048-Alpha)
Discovery: SCP-ES-048 and SCP-ES-048-1 were registered on June 24, 1919, in an area of ███████, on the Austrian border with Italy, during an incident where units of the Austro-Hungarian Empire were faced with an army of the Kingdom of Italy. During this hostile exchange between both sides, after the official end of the First World War, SCP-ES-048-1 was used massively on the battlefield as cannon fodder by the imperial forces.
Foundation agents were dispatched to the area to study this anomaly, resulting in the discovery of SCP-ES-048 and its object classification as Euclid. This report was added by Agent D. Rupert:


Class SortOrder
Class SortOrder playing the role of an Enum
Abstract
Namespace: App\Http\Requests
Package: App\Http\Requests
Located at Http/Requests/SortableRequest.php
Namespace: App\Http\Requests
Package: App\Http\Requests
Located at Http/Requests/SortableRequest.php
public static
string
|
string |
Ascending
|
#
'asc'
|
string |
Ascending_Friendly
|
#
'Ascending'
|
string |
Descending
|
#
'desc'
|
string |
Descending_Friendly
|
#
'Descending'
|


Jakkur Lake
The Jakkur Lake is in the north-eastern part of the city and is one of the largest and cleanest water bodies in Bangalore. It is the main lake in the chain of lakes comprising of the Yelahanka Lake upstream and the Rachenahalli Lake downstream. It is about 140 acres large and has recently been rejuvenated by the Bangalore Development Authority (BDA).
Kaikondrahalli Lake
Kaikondrahalli Lake spread over 48 acres, 23 guntas on Sarjapur Road, is a bio-diverse ecosystem. The Lake rejuvenation works were funded and carried out by BBMP in close association with Mahadevapura Parisara Samrakshane Mattu Abhivrudhi Samiti (MAPSAS) . The lake is currently managed by MAPSAS trust with support from the surrounding communities. The lake is part of the Parappana Agrahara series, Kasavanahalli lake is upstream of this lake Soul Kere is downstream The lake is well maintained by the consistent efforts of MAPSAS along with its volunteers and attracts students, ecologists, bird watchers as well as runners and other fitness enthusiasts. The lake has a gazebo, amphitheatre and a small butterfly park
About Project
The Citizen Lakes Dashboard Project is a joint project undertaken by ATREE, Yuktix Technology and Biome Environmental Solutions. The objective is to create an open source platform on lake data that can inform citizens groups on how much water is actually entering and leaving lakes and real-time information on lake water quality. How can citizens engage?
- Be a citizen scientist.
- Connect with your lake group.
Citizen Lakes Dashboard Project Context on Urban Lakes Bengaluru city has experienced unprecedented growth in recent decades. If the city is to sustain growth and claim its position as a global high-tech city, it must be able to secure sufficient water supply and also create a healthy livable environment with opportunities for recreation.
At present, the bulk of Bengaluru's public water supply is from the Cauvery, but it is supplied mainly to within the BBMP boundary; whereas many of the newly developing peri-urban areas remain borewell dependent and groundwater there is depleting quickly. Similarly, many parts of the greater Bengaluru metropolitan area lack underground sewerage and functioning storm water drain networks. So, untreated sewage enters lakes, creating huge unsanitary water bodies, which are public health hazards. During heavy rain events, low lying parts of the city get flooded causing damage to life and property.
In this context, the restoration of Bengaluru lakes has been promoted as a panacea for its flooding, water stress, and wastewater problems. They are the receptacles of storm water and sewage, but also serve as storage and recharge structures. It has been argued that lakes can store storm water and recycled wastewater and avoid the need for potentially destructive, expensive schemes that may destroy biodiversity rich aquatic ecosystems and forests. In recent years there has been a groundswell of citizen's movements in and around Bengaluru to conserve and protect its lakes, for largely aesthetic reasons. In fact, the lakes are some of the last remaining public "green spaces" in the city greatly improving the quality of life of citizens. In the last few years, many of Bengaluru's lakes have been officially handed over to citizen groups who have been appointed trustees of the lake.
Historically, lakes have played a major cultural role and even served as drinking water sources. But despite their central role, Bangalore lakes are getting degraded due to discharge of domestic sewage, industrial effluents, surface runoff carrying pesticides, immersion of idols etc. This has resulted in deterioration of water quality, sedimentation, decrease in aquatic flora and fauna, loss of aesthetic value and tourism potential. There is also some evidence that deteriorating quality in lakes is contaminating groundwater with adverse impact on the health of residents in nearby localities, which depend on groundwater.
Contact
Veena Srinivasan,atree
http://www.atree.org/veena_srinivasan
<EMAIL_ADDRESS><EMAIL_ADDRESS>twitter: @veenas_water
Shubha Ramachandran Biome Solutions 1022, 6th Block, 1st Floor, HMT Layout Vidyaranyapura Main Road Vidyaranyapura, Bangalore 560 097 INDIA


Must Watch: Kanye West Performs Surprise ‘Worship Service’ Concert At Texas Jail
Officers brought to tears, inmates pray on their knees during moving choir performance
by Jamie WhiteRap superstar Kanye West made a surprise visit to a Texas jail to perform a pro-God concert that left attendees speechless.
“You know, it really was like a worship service,” Harris County Sheriff Ed Gonzalez said Friday.
“Very uplifting, not only for the inmates that are in here, you could see some, you know, down on their knees in prayer, to even some of our teammates that were brought to tears, even his choir.”
“It was a very powerful moment,” Gonzalez added.
Harris County Sheriff’s Office spokesman Jason Spencer also tweeted in support of West’s thoughtful gesture, saying the rap icon “brought some light” to people who needed it.
“This is a mission, not a show,” West said during the performance.
West has been performing his “Sunday service” concerts regularly since the release of his album “Jesus Is King” last month.
He’s even coordinated with renowned pastor Joel Osteen to perform at his megachurch in Houston on Sunday.
This religious musical outreach to the black community is precisely why the left has been demonizing West in recent weeks, such as Comedy Central host Trevor Noah bashing the rapper for exposing the Democratic Party plantation and encouraging free thought.
Twitter: Follow @WhiteIsTheFury
Gab: https://gab.com/WhiteIsTheFury
Minds: https://www.minds.com/whiteisthefury
Kanye West has rocked the religious world with his extremely popular “Sunday Service” invite only events. Leo Zagami gives his take on Kanye.
“The Black Friday sales have arrived early! Get up to 70% off our hottest products as well as free-shipping and double Patriot Points while the sale lasts!”


7.CONTEXT
Contextually, the Virtual Harvester project is situated within my South African background. Living in South Africa, one is reminded every day -- just by looking around oneself -- of Africa's immense social and economic problems, having at its base a.o. dealing with mass poverty. In post-apartheid South Africa the divide between the rich and the poor, "the have and the have-nots", is perhaps in the long run the biggest issue to solve.
However, "the have and the have-nots" issue is of global importance, relating very much to post-industrial society and modern information technology. As such the project continues with the themes developed in An Electronic Laager, evoking thoughts on how the information structures of society control human behaviour and action. It is informed by the concept of the panopticon, serving as metaphor for the anonymous centralisation of power, which accumulates in today's global communication networks. An analogy can be drawn between the 'panopticon' [29] principle as explained by Foucault in Discipline and Punish and Baudrillard's phrase "neo-capitalist cybernetic order". [30]
The Virtual Harvester proceeds to question the motives of the Western world's immersion in information technology, supposedly constructing the global village. The work asks if the Western world is not paradoxically isolating itself even further from the social and economic realities of their impoverished neighbours. "Alongside the ever-widening social divisions, another apartheid is being created between the 'information-rich' and the 'information-poor.'"(Barbrook and Cameron 1995)
7.1. Into the darkness
"In the twenty-first century, Africa, like Europe in the twentieth, will have to be confronted. In my rucksack I carried a letter from a friend, a U.S diplomat in the region. He writes: 'The greatest threat to our value system comes from Africa. Can we continue to believe in universal principles as Africa declines to levels better described by Dante than by development economists? Our domestic attitudes on race and ethnicity suffers as Africa becomes a continent-wide 'Wreck of the Medusa.'"(Kaplan 1996:4)
In the section to follow I've taken random quotes from Robert Kaplan's travelogue The Ends of the Earth: A journey to the frontiers of Anarchy as well as from his article "The Coming Anarchy " appearing in the Atlantic Monthly, February 1994. Having travelled extensively through Africa and Asia, Kaplan's views and insight corresponds greatly to and informed anew, many of my own personal views regarding the current situation in sub-Saharan Africa and the rest of the developing world.
Although I cannot claim to have travelled, read or experienced as much as he has regarding the subject, I've grown up and lived in South Africa for most of my life. I have travelled through most of South Africa and through large parts of the rest of sub-Saharan Africa (Zimbabwe, Namibia, Botswana, Zambia, Malawi, Kenya). Many of the sights and impressions I got from these trips are echoed and informed by Kaplan's writings. My aim is thus to provide a few pages of 'impressions' regarding the state of the developing world, particularly sub-Saharan Africa, in the wake of the Twenty-first Century.
7.1.1 A Stretched Limo
"I recalled a vision propounded to me by Thomas F. Homer-Dixon's , head of the Peace and Conflict Studies Programme at the University of Toronto [31]: 'Think of a stretch limo in the potholed streets of New York City, where homeless beggars live. Inside the limo are the air-conditioned post-industrial regions of North America, Europe, the emerging Pacific Rim, and a few other isolated places, with their trade summitry and computer-information highways. Outside is the rest of mankind, going in a completely different direction.'"(1996:10) [Figure 30]
7.1.2 The Statistics
"The industrialized countries, which accounted for 40 percent of the world's population after World War II, now account for only 20 percent, though they earn 85 percent of the world's income. In coming decades, the industrialized world is expected to make up only 12 to 15 percent of the planetary population, [32] as 90 to 95 percent of all births take place in the poorest countries. The fact that this is happening at a time when income and life expectancy rates worldwide are moving up illustrates just how uneven this material growth has been, and how what is really growing is the disparity between rich and poor. Never before -- not at the time of various democratic revolutions in Central Europe in 1848 or at the conclusion of World War I -- has wealth disparity been so great as after the Cold War. And never before, because of the global communications revolution, has this disparity been so visible." (1996: 435)
"The rich nations of the industrialized world consume 70 percent of the planets energy, 75 percent of its metals, and 85 percent of its woods, according to the UN." (1996: 435)
"With 719,202,000 inhabitants out of a world population of 5,692,210,000 in 1995, Africans represented nearly 13 percent of humanity. But this 13 percent contributed only 1.2 percent of the world's gross domestic product, down from 1.8 percent in the 1980s. Thus, as Africa's population relative to the rest of the world has continued to soar, its contribution to the world's wealth has dropped by a third in the past decade. Meanwhile, Africa's share of world trade has fallen from 4 percent to near 2 percent. As per capita food production in the rest of the developing world rose by 9 percent in the 1980s, it decreased by 6 percent in Africa." (1996:11) [33]
When one looks at sub-Saharan Africa rather than Africa as a whole, the situation becomes even more alarming. Sub-Saharan Africa's population is growing at over 3 percent per year. That is nearly double the planet's mean growth rate of 1.6 percent. [34] With little economic growth, sub-Saharan Africa's growing population is sustained by slash-and-burn agriculture and the creation of shanty towns that erode the continent's environmental base. (1996:12)
7.1.3 Urbanization
To top it all, sub-Saharan Africa has the highest urban growth rate of any region on the globe: 5.8 percent from 1965 to 1980, and 5.9 percent from 1980-1990, according to the World Bank. By the early 1980s, Kinshasa had a population of around 3 million, while Johannesburg had over 1 million. Dakar, Nairobi, Dar es Selaam, and Harare were not far behind. By 1990 one quarter of all Africans lived in towns; by the end of the century the proportion will have risen to one half.(1996:10) [35]
"For these newly urbanized peasants -- not just in Turkey, but in Africa, in the Arab world, in India, and so many other places -- 'the world was new,' writes V. S. Naipaul in India: A Wounded Civilization. 'They saw themselves at the beginning of things: unaccommodated men making a claim on their land for the first time, and out of the chaos evolving their own philosophy of community and self-help. For them the past was dead; they had left it behind in the villages. Everywhere in the developing world at the end of the twentieth century these new men and woman -- flowing into the cities, turning them into grotesque villages -- were remaking civilization. To these empowered millions, national borders, nations themselves, even the idea of a nation, were vague. To them the real borders were the most tangible and intractable ones -- those of culture. They knew, for example, that the Christian Orthodox Greeks had once been their enemy." (1996: 132)
In his book War in the Age of Intelligent Machines, Manuel De Landa writes how the demographic turbulence produced by large scale migration can in turn have a direct influence on warfare. "Critical points in the growth of the urban masses are known to have played a role in triggering wars throughout modern history. Whether we consider demographic pressures as having 'creative' or 'destructive' effects will depend on our point of view. They are creative to the extent that they influence the assembly of armies and of war-related technology, but destructive in their ultimate consequences." (De Landa 1991: 9)
7.1.4 Crime and Violent Conflict
This massive migration to cities in turn leads to a proliferation of crime, conflict and violence. "Africa shows how the urban environment may come to represent the locus of future conflict in the developing world. The perpetrators of future violence will likely be urban born, with no rural experience from which to draw." (1996: 12)
"In many cases, it is precisely the unevenness of economic growth within societies that is inflaming violent conflict. Karl Magyar, professor of national security affairs at the U.S. military's Air Command and Staff College, told an officers gathering in Boston in 1994 that much of the violence to unfold over the coming decades will be ‘fuelled by rising expectations' rather than by mere poverty. In a sense, the world economy has become a large version of prerevolutionary Iran's, where in the 1960s and 1970s per capita income rose from $200 to $1,000. But the rise was unevenly distributed, and a large subproletariat was created in the process. The result was upheaval." (1996: 387) [Figure 31]
"...where there has always been mass poverty, people find liberation in violence....Physical aggression is a part of being human. Only when people attain a certain economic, educational, and cultural standard is this trait tranquilized. In the light of the fact that 95 percent of the earth's population growth will be in the poorest areas of the globe, the question is not whether there will be war (there will be a lot of it) but what kind of war. And who will fight whom ?" (1994: 16)
"As small-scale violence multiplies at home and abroad, state armies will continue to shrink, being gradually replaced by a booming private security business, as in West Africa, and by urban mafias, especially in the former communist world, who may be better equipped than municipal police forces to grant physical protection to local inhabitants." (Kaplin 1994: 18) [Figure 32]
"The intense savagery of the fighting in such diverse cultural settings as Liberia, Bosnia, the Caucasus, and Sri Lanka -- to say nothing of what obtains in American inner cities -- indicates something very troubling that those of us inside the stretch limo, concerned with issues like middle-class entitlements and the future of interactive cable television, lack the stomach to contemplate. It is this: a large number of people on this planet, to whom the comfort and stability of a middle-class life is utterly unknown, find war and barracks existence a step up rather than a step down." (1994: 16)
7.1.5 Internet
"Here were two people who understood that there were large swaths of the earth at the end of the twentieth century that were not linked by the Internet. In the course of my journeys in Africa and Asia, I have gone into so many banks and hotels that had neither computers nor typewriters that I no longer even noticed. The vast disparities in the world following the collapse of communism and the end of the Cold War, symbolized by a computer revolution in some parts of the globe and the absence of reliable electric current in other parts, was something that I took for granted because I was constantly experiencing it." (1996: 320)
7.1.6 Versions of Reality
"Africa offered several realities, I noticed. One was what I term the 'VIP bubble,' within which the highest-ranking diplomats and visiting emissaries experienced Africa.  Then a late-model air-conditioned car, protected from soldiers by diplomatic license plates, takes you to a five-star hotel or the ambassador's residence." (1996: 41)
7.1.7 A New Aesthetic
"At the end of the twentieth century I find almost nothing left to photograph in my city. There are no aesthetics left here. Look at this scene out of the car window. It's not a village, it's not a city. It's just shit." -- Ara Gulger, a local Istanbul photojournalist (1996: 131)
"To see the twenty-first century truly, one's eyes must learn a different set of aesthetics. One must reject the overly stylized images of travel magazines, with their inviting photographs of exotic villages and glamourous downtowns. There are far too many millions whose dreams are more vulgar, more real – whose raw energies and desires will overwhelm the visions of the elites, remaking the future into something frighteningly new." (1994: 11)
"West Africa is reverting to the Africa of the Victorian Atlas. It consists now of a series of coastal trading posts, such as Freetown and Conakry, and an interior that, owning to violence, volatility, and disease, is again becoming, as Graham Greene once observed, 'blank' and 'unexplored.' However, whereas Greene's vision implies a certain romance, as in the somnolent and charmingly seedy Freetown of his celebrated novel The Heart of the Matter, it is Thomas Malthus, the philosopher of demographic doomsday, who is now the prophet of West Africa's future. And West Africa's future, eventually, will also be that of most of the rest of the world." (1994: 3)
7.1.8 Human Ingenuity
"Optimists, like Wall Street strategist Barton Biggs, consider all of this 'doom-and-gloom' stuff. Perhaps he's right. But what if he's wrong, even partly wrong ?" (1996: 300)
"Homer-Dixon believes the world is headed for a split between 'those societies that can maintain an adequate supply of ingenuity and those that cannot....We will probably see, for example, falling grain prices and regional food surpluses in Western countries occurring simultaneously with scarcity-induced civil strife in parts of Africa and Asia.' He concludes that ''the optimism of neoclassical economics...who have great faith in the potential of human ingenuity when spurred by need is deceptive and imprudent. We are taking a huge gamble if we follow the path they suggest, which is to wait till scarcities are critical and watch human ingenuity burst forth in response. Should it turn out, in the end, that this strategy was wrong, we will not be able to return to a world resembling anything like the one we have today...the soils, waters, and forests will be irreversibly damaged, and our societies, especially the poorest ones, will be so riven with discord that even heroic effort at social renovation will fail." (1996: 350)
Another 'Doomslayer' as Wired Magazine [36] enthusiastically labelled him, is Julian Simon. According to Simon additional human beings are good, not because it poses a problem of additional mouths to feed, but because they grow up to be creative adults who contribute and achieve and come up with creative new ideas. "Resources come out of people’s minds more than out of the ground or air", says Simon. "Minds matter economically as much as or more than hands or mouths. Human beings create more than they use, on average." (Regis 1997: 198) One example Simon gives is of the fertile Midwestern prairie of America that was a malarial swamp before settlers drained it.
The counter argument from Kaplan's book reads as follow: "There is a new, fourth, school of environmental-population strategists, one with which I felt increasingly comfortable as I travelled from Africa to Asia. This school, which includes Toronto University's Thomas Homer Dixon and others, agrees with neo-Malthusians that there are limits to population growth beyond which poverty and social breakdown result. It also agrees with neoclassical economists that the products of human ingenuity can expand those limits to take people beyond mere subsistence level, as in the case of the Industrial Revolution. But this school believes that human ingenuity does not materialize automatically and that some societies and cultures are more ingenious than others. 'By definition,' writes Homer Dixon, developing countries 'do not have the financial, material, or intellectual resources of the developed world; furthermore, their social and political institutions tend to be fragile and riven with discord.'" (Kaplin 1996: 348)
"Though optimists have hopes for new resource technologies and free-market development in the global village, they fail to note that, as the National Academy of Sciences has pointed out, 95 percent of the population increase will be in the poorest regions of the world, where governments now -- just look at Africa -- show little ability to function, let alone to implement even marginal improvements." (1994: 8)
7.1.9 Western Response
Kaplan makes an analogy between our progress today and the progress of the ship in Joseph Conrad's The Nigger of the "Narcissus". Referring to the illness of one of the deck hands, James Wait -- an African man dying of tuberculosis -- he says: "Like the crew's confused and divided response to Wait's illness, our own failure to respond intelligently to the issues raised by Africa's decline betrays our own inner weaknesses."(1996:35)
"But I would be unfaithful to my experience if I thought we had a general solution to these problems. We are not in control. As societies grow more populous and complex, the idea that a global elite like the UN can engineer reality from above is just as absurd as the idea that political 'scientists' can reduce any of this to a science." (Kaplin 1996: 436)
"Writing these words now, I am sure of one thing: that even as some nations including the United States, may be retreating into a fortresslike nationalism, this is only a temporary stage before the world tide of population and poverty forces us all to realize that we inhabit one increasingly small and crowded earth." (1996:9)
7.2. The Virtual Class
In the introduction to their controversial article, The Californian Ideology, [37] Richard Barbrook and Andy Cameron (members of the Hypermedia Research Centre of the University of Westminster, London) writes: "On the West Coast, skilled workers and entrepreneurs in the hypermedia industries form the 'virtual class'. Like the 'labour aristocracy' of the last century, core personnel in the media, computing and telecoms experience both the insecurities and rewards of the marketplace. The Californian Ideology reflects this ambiguity by simultaneously advocating the New Left utopia of the electronic agora and the New Right's vision of the electronic marketplace." (1995)
Under the heading "Cyborg Masters and Robot Slaves" Barbrook and Cameron question the belief in the emancipatory potentiality of the new information technologies made popular by McLuhan's dictum of the global village. "Electronic media...abolish the spatial dimension... By electricity, we everywhere resume person-to-person relations as if on the smallest village scale. It is a relation in depth, and without delegation of functions or powers... Dialogue supersedes the lecture." (McLuhan 1968)
Instead Barbrook and Cameron envision the possibility of a more oppressive version of our digital future, not unlike cyberpunk fiction, where the technologies of freedom are turning into the machines of dominance and control. To illustrate their concern they refer to the man who embodies the right to democracy and freedom in America: "At his estate at Monticello, Jefferson invented many clever gadgets for his house, such as a 'dumb waiter' to deliver food from the kitchen into the dining room. By mediating his contacts with his slaves through technology, this revolutionary individualist spared himself from facing the reality of his dependence upon the forced labour of his fellow human beings. In the late-twentieth century, technology is once again being used to reinforce the difference between the masters and the slaves." (1995)
Barbrook and Cameron concludes their article, arguing that in a time of increasing globalization of the world economy, serious debate regarding our shared information future has never been more possible or more necessary. Any programme dealing with the development of new information technologies must ensure that the whole population are included within the digital future and have access to the new on-line services.
I share their belief in a mixed economy, thereby not letting to the fluctuations of market forces determine everything. The digital future in the developing world will probably be a hybrid of state intervention, capitalist entrepreneurship and do-it-yourself culture. "This alternative understanding of the future starts from a rejection of any form of social apartheid -- both inside and outside cyberspace." (1995)


|
CSTOR
Server-less, Embeddable NoSQL Document Store
|
C Bindings for collection.h. More...
Go to the source code of this file.
Typedefs | |
| typedef struct esft_stor_collection_t | esft_stor_collection_t |
| typedef struct esft_stor_document_t | esft_stor_document_t |
Functions | |
| CSTOR_API const char * | esft_stor_collection_name (esft_stor_collection_t *c) |
Returns the name of the collection c . More... | |
| CSTOR_API bool | esft_stor_collection_index_add (esft_stor_collection_t *c, const char *index_path) |
Adds the index index_path to collection c . More... | |
| CSTOR_API void | esft_stor_collection_indices_add (esft_stor_collection_t *c, const char **index_paths, size_t len) |
Adds len index_paths provided by array index_paths . | |
| CSTOR_API char ** | esft_stor_collection_index_list (esft_stor_collection_t *c, size_t *result_len, esft_stor_error_t *err) |
Returns an array of indices that the collection holds. The length of the array is written to result_len If the operation fails, NULL is returned, result_len is set to 0 and err code err is set accordingly. More... | |
| CSTOR_API void | esft_stor_collection_index_list_delete (char **index_paths, size_t len) |
deletes teh array of index_paths index_paths with len len | |
| CSTOR_API bool | esft_stor_collection_index_remove_all (esft_stor_collection_t *c) |
Removes all index paths set on collection . More... | |
| CSTOR_API void | esft_stor_collection_document_put (esft_stor_collection_t *c, esft_stor_document_t *doc, esft_stor_error_t *err) |
Puts (insert/replace) document doc in the collection c . If the operation fails, the error code err is set accordingly. | |
| CSTOR_API bool | esft_stor_collection_document_exists (esft_stor_collection_t *c, const char *doc_id) |
Checks whether document with id doc_id is in the collection. More... | |
| CSTOR_API esft_stor_document_t * | esft_stor_collection_document_get (esft_stor_collection_t *c, const char *doc_id, esft_stor_error_t *err) |
Returns the document with id doc_id in the collection c or NULL if such document does not exist. If the operation fails, the error code err is set accordingly. More... | |
| CSTOR_API bool | esft_stor_collection_document_remove (esft_stor_collection_t *c, const char *doc_id) |
Removes a document with id doc_id from the collection if it exists. More... | |
| CSTOR_API esft_stor_document_t ** | esft_stor_collection_query (esft_stor_collection_t *c, const char *query, size_t *result_len, esft_stor_error_t *err) |
Returns an array of documents as result of the query query executed against the collection c . The array size is written in result_len . If something goes wrong, NULL is returned and err is set accordingly. More... | |
| CSTOR_API void | esft_stor_collection_query_result_delete (esft_stor_document_t **qr, size_t qr_len) |
releases the resources of array of query result qr which has size qr_len | |
| CSTOR_API void | esft_stor_collection_delete (esft_stor_collection_t *c) |
releases the resources of collection c | |
C Bindings for collection.h.
| CSTOR_API bool esft_stor_collection_document_exists | ( | esft_stor_collection_t * | c, |
| const char * | doc_id | ||
| ) |
Checks whether document with id doc_id
is in the collection.
doc_id
exists, false if not | CSTOR_API esft_stor_document_t* esft_stor_collection_document_get | ( | esft_stor_collection_t * | c, |
| const char * | doc_id, | ||
| esft_stor_error_t * | err | ||
| ) |
Returns the document with id doc_id
in the collection c
or NULL if such document does not exist. If the operation fails, the error code err
is set accordingly.
TRANSFER OWNERSHIP ON SUCCESS: YES RESOURCE RELEASE FUNCTION: esft_stor_document_delete
doc_id
if it exists, NULL if it doesn't. | CSTOR_API bool esft_stor_collection_document_remove | ( | esft_stor_collection_t * | c, |
| const char * | doc_id | ||
| ) |
Removes a document with id doc_id
from the collection if
it exists.
The document's memory the id doc_id
refers to is not freed by this function.
| CSTOR_API bool esft_stor_collection_index_add | ( | esft_stor_collection_t * | c, |
| const char * | index_path | ||
| ) |
Adds the index index_path
to collection c
.
index_path syntax:
i.e. Given the following JSON: {"a":{"b":1}} , the path to value 1 is "a.b"
| CSTOR_API char** esft_stor_collection_index_list | ( | esft_stor_collection_t * | c, |
| size_t * | result_len, | ||
| esft_stor_error_t * | err | ||
| ) |
Returns an array of indices that the collection holds. The length of the array is written to result_len
If the operation fails, NULL is returned, result_len is set to 0 and err code err
is set accordingly.
TRANSFER OWNERSHIP ON SUCCESS: YES RESOURCE RELEASE FUNCTION: esft_stor_collection_index_list_delete
| CSTOR_API bool esft_stor_collection_index_remove_all | ( | esft_stor_collection_t * | c | ) |
Removes all index paths set on collection .
| CSTOR_API const char* esft_stor_collection_name | ( | esft_stor_collection_t * | c | ) |
Returns the name of the collection c
.
TRANSFER OWNERSHIP ON SUCCESS: NO
| CSTOR_API esft_stor_document_t** esft_stor_collection_query | ( | esft_stor_collection_t * | c, |
| const char * | query, | ||
| size_t * | result_len, | ||
| esft_stor_error_t * | err | ||
| ) |
Returns an array of documents as result of the query query
executed against the collection c
. The array size is written in result_len
. If something goes wrong, NULL is returned and err
is set accordingly.
TRANSFER OWNERSHIP ON SUCCESS: YES RESOURCE RELEASE FUNCTION: esft_stor_collection_query_result_delete


Class Role
Role representation on LeanCloud
A role represents a group of users in ACL, where a role can be
assigned read/write permissions. If a role was granted write
permission, then users belongs to this role will all inherit the
write permission.
All users of a role could be queried by $role->getUsers()
, which
is an instance of Relation, where users can be added or
removed.
Roles can belong to role as well, which can be got by
$role->getRoles()
, where roles can be added or removed.
-
LeanCloud\LeanObject
-
LeanCloud\Role
Methods summary
public
LeanCloud\Role
|
#
setName( $name )
Set name of role
The name can contain only alphanumeric characters, _, -, and
space. It cannot be changed after being saved.
Returns
|
public
string
|
#
getName( )
Get name of role
Returns
string
|
public
LeanCloud\Relation
|
#
getUsers( )
Get a relation of users that belongs to this role
Get a relation of users that belongs to this role
Returns
|
public
LeanCloud\Relation
|
#
getRoles( )
Get a relation of roles that belongs to this role
Get a relation of roles that belongs to this role
Returns
|
Methods inherited from LeanCloud\LeanObject
__construct(),
addIn(),
addUniqueIn(),
create(),
delete(),
destroy(),
destroyAll(),
disableAfterHook(),
disableBeforeHook(),
fetch(),
fetchAll(),
findUnsavedChildren(),
get(),
getACL(),
getClassName(),
getCreatedAt(),
getObjectId(),
getPointer(),
getQuery(),
getRelation(),
getUpdatedAt(),
hasData(),
increment(),
isDirty(),
mergeAfterFetch(),
mergeAfterSave(),
registerClass(),
removeIn(),
save(),
saveAll(),
set(),
setACL(),
toFullJSON(),
toJSON(),
traverse()
|
Properties summary
protected static
string
|
$className
|
|


--- layout: post title: gfxCardStatus and 2009 MacBook Pros with NVIDIA 9400/9600 GPUs published: true comments: true ---
Many users have reported that gfxCardStatus works even on the 2009 MacBook Pros! I don't have one to test with, but I can only assume that this is indeed the case. It wil continually show the "n," as the detection for which GPU is in use isn't built in yet, but switching works, without logging out. I'll build the detection into a future version, hopefully sooner rather than later! I envision an icon change: "d" for discrete, and "i" for integrated. This will provide greater consistency across all platforms.
Check back soon!
ck


|
Keyword
|
Description
|
Default
|
|
WARMUP_STEPS
|
Number of stochastic boltzmann steps (reaction firings) to take before
starting the record loop. When used from biocellion this may as well be
0 as the only difference between warmup and record steps is the printing.
|
1000
|
|
RECORD_STEPS
|
Number of stochastic boltzmann steps (reaction firings) to take while
periodically printing out intermediate information about concentrations
and likelihoods.
|
1000
|
|
USE_DEQ
|
|
1:
|
Before performing warmup steps use an ODE solver to approach steady state.
|
|
0:
|
Do not use an ODE solver before the warmup steps.
|
|
0
|
|
USE_PSEUDOISOMERS
|
|
1:
|
Use the pseudoisomer database to compute reaction energies of formation.
|
|
0:
|
Use the user supplied energy of formation in the reactions file.
|
|
1
|
|
USE_DGZERO
|
|
1:
|
Use the pseudoisomer database to compute reaction energies of formation
only when a delta g0 was not supplied.
|
|
0:
|
Always use the pseudoisomer database to compute energies of formation.
|
|
0
|
|
USE_BULK_WATER
|
|
1:
|
Fix the concentration of the solvent moleucles in all compartments.
|
|
0:
|
Allow the solvent concentration to vary in some compartments.
|
|
1
|
|
USE_METROPOLIS
|
|
1:
|
Use the metropolis method to accept or reject a reaction
choice based on its likelihood.
|
|
0:
|
Don't Use the metropolis method to accept or reject a reaction
choice based on its likelihood.
|
|
1
|
|
USE_ACTIVITIES
|
|
1:
|
Allow the user to modify the likelihoods of reactions by ACTIVITY/ENZYME_LEVEL
lines in the reactions file.
|
|
0:
|
Reaction likelihoods are not allowed to be modified, and activities are all set to 1.0.
|
|
0
|
|
USE_ENZYME_LEVELS
|
Synonymous with USE_ACTIVITIES, they both have the same effect.
|
0
|
|
USE_REGULATION
|
|
1:
|
Modify the likelihoods of reactions by up or down regulation
as specified by PREGULATION and NREGULATION lines in the reactions file.
|
|
0:
|
Do not allow regulation of reaction likelihoods based on the
regulation lines in the reactions file.
|
|
1
|
|
USE_STEADY_STATE
|
|
1:
|
Adust the likelihoods of reactions by the steady state adjustoments in
compute_kss.c
|
|
0:
|
Do not adjust the reaction likelihoods by the steady state adjustments in
compute_kss.c
|
|
1
|
|
MAX_REGS_PER_RXN
|
Maximum number of regulations (P and/or N) allowed to be given
per reaction.
|
4
|
|
RSEED0
|
Fibonacci seed 0 for the first random number generator.
|
6765109461
|
|
RSEED1
|
Fibonacci seed 1 for the first random number generator.
|
1771128657
|
|
RSEED2
|
Linear congruential seed for the first random number generator.
|
4636875025
|
|
RSEED3
|
Fibonacci seed 0 for the second random number generator.
|
1649015676
|
|
RSEED4
|
Fibonacci seed 1 for the second random number generator.
|
7568311771
|
|
RSEED5
|
Linear congruential seed for the second random number generator.
|
5205784363
|


@(title: String, bodyClass: String = "", scripts: Html = Html(""), styles: Html = Html(""))(header: Html)(content: Html)(footer: Html)(implicit lang: Lang)
@title
@styles
Sorry, but this is not a real donut store. This is a free template for subscription ecommerce sites and it's built on top of the APIs of SPHERE.IO, Pactas and Paymill.


Municipalities to receive 5% instead of 25% from gambling tax revenue
by LETAOn Wednesday, 13 November, Latvia’s Saeima approved amendments in the final reading to the Law on Lotteries and Gambling Fee and Tax. Amendments include a new proportion for the division of the aforementioned tax between the state and municipal budgets.
During the review of the legislative draft, deputies argued over the fight against gambling. Opposition members criticized the New Conservative Party for its failure to move from word to action in this area.
The majority of Saeima deputies did not support the proposal from the Union of Greens and Farmers member Viktors Valainis to refuse changing the ratio of revenue for the state and municipal budgets.
According to Finance Ministry, amendments to the law, which are added to the state budget for 2020, were developed to divert the tax burden from labour force to consumption and capital, as well as increase revenue for the state budget to help cover certain state expenditures.
Read also: Counselling provided to 127 gambling addicts in Latvia in past four months
Until now the law stated that the state budget received 75% from gambling tax revenue and 25% went to budgets of municipalities in which gambling is organized.
In the first reading it was initially suggested increasing the state budget’s portion of revenue to 90%, reducing the portion that would go to municipal budgets.
In search of funding to increase wages for doctors, the coalition reached an agreement to increase the state budget’s portion from the tax even more.
This means the state budget will receive 95% of revenue from the gambling tax, whereas municipalities will receive 5%.
Approved amendments to the law also state that starting with 2020, gambling tax rate for roulette games , card and dice games will be increased from EUR 23 400 to EUR 28 080 a year.
The tax will also be increased for gambling machines – from EUR 4 164 to EUR 5 172 per calendar year.


Continuous thinking: How your MBTI type can help you
Introduction
I just finished commenting someone's opinion on the MBTI personality type in a linkedin status update.
As you might have read in my previous post regarding "The secret sauce of great leadership - IMO ;)/" I am an avid fan of determining your own personality type in order to improve yourself.
Because this person had seen a presentation by Patrick Vermeren on the myth of MBTI, he retweeted the following:
I wish there was a test to take to find out how much you hate Meyers-Briggs (MBTI). I'd score off the charts.
Since I most certainly do not agree, I commented some things on the linkedin thread. As I think the comment might have some value for my blog readers as well, I decided to post it here as well:
Here is my opinion
I believe your personality can change during puberty, but afterwards it is pretty much fixed.
MBTI made me aware of my personality, and how to bridge to other types of personalities, by making the differences explicit.
While the test might not be spot on for some (f.e. my sister), it was spot on for me; the description matched me in both positive and negative ways. Since then I have learned to accept my personality, and being aware of your shortcomings and strengths helps you to improve yourself (i.e. self-awareness is key here). Once you master handling yourself, you can attempt to guess your discussion partner's MBTI type, which is quite obvious for the first letters, but harder for the next:
- Introvert or Extravert ? (easy)
- Sensing or iNtuitive (i.e. perception by facts or intuition)
- Feeling or Thinking (i.e. emotion vs ratio)
- Judging or Percepting (i.e. judge and get done with it vs constantly looking for alternative options/possibilities)
Once you realize the type of your conversation partner, you should know how to talk to him/her...
Conclusion
While the MBTI test is certainly not a solution to everything, it can increase your self-awareness, and in the next phase also the awareness on how to interact with your discussion partner. You could compare this to level 3 and level 4 thinking in poker.
In my opinion anything that builds your self-awareness can be a good tool to expand your personal horizon.


Preparation time
1-2 hours
Cooking time
10 to 30 mins
Serves
Makes 8
Dietary
There’s little else as tempting as a fresh batch of homemade doughnuts, especially topped with a zingy thick lemon icing.
Equipment and preparation: you will need a 8cm/3¼in straight sided round cutter and a 2cm/¾in cutter.
For the doughnuts, place all the ingredients into a large bowl (except the sunflower oil) with three tablespoons of water.
Stir with your hands to make a dough.
Gradually add another another tablespoon of water and massage in the bowl for four minutes.
Tip the dough onto a lightly floured surface and knead well for 10 minutes, or until the dough is smooth and elastic.
Place into a bowl and leave to rise for 40 minutes, covered with a damp tea towel.
Tip the dough out, again onto a very lightly floured surface.
Divide the dough in half.
With a floured rolling pin, roll out the dough quite thinly to about 1cm/½in thick. Cut into rounds using an 8cm/3¼in straight sided round cutter, then use a 2cm/¾in cutter to cut holes out of the middle.
Spin each doughnut on your index finger to expand the hole.
You should be able to cut out about eight doughnuts from this dough. Place all circles onto an oiled baking tray, loosely cover with cling film, not allowing it to touch the top of the doughnuts and leave to rise for 30 minutes.

Drop each doughnut in separately, cooking each side for about a minute or until golden-brown. Remove with a slotted spoon and place onto a plate lined with kitchen towel to soak up the excess oil.
Leave to cool.
For the icing, gradually add 25ml/1fl oz of cold water to the icing sugar. It will eventually turn into a thick paste. Stir in the lemon zest.
When the whole doughnuts have cooled, brush the tops of the doughnuts with the icing. Sprinkle over a little more lemon zest.
Leave to set on a cooling rack, to cool completely.


Webcam Porn with Pikara
Online
Online
Online
Offline
Offline
Viciosasamateur.com webcam porn, amateur girls in porn chat
ViciosasAmateur.com is a high quality video chat where you are getting not only spectacular, and fun loving girls, but also find the best amateur girls with porn webcams. Here you can see all the information and preferences of our girls and plenty of photos so that you know better, before seeing them live in their porn chat.
I'm Lady Pikara, one of the most sensual and slutty girls videochat. I belong to the group of outstanding women. It will be a real pleasure enjoy a moment with you. Wanna have fun?
FEATURED GIRL
I'm Monica Bcn, one of the most sensual and slutty girls videochat. I belong to the group of outstanding women. It will be a real pleasure enjoy a moment with you. Wanna have fun?
FEATURED GIRL
I'm Gala Barcelona, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Nina Madrid, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Sophia Leon, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Sarasexy Valencia, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Pelirrojasexy Huelva, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Tamarax Huelva, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Lidia Barcelona, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Cris Barcelona, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Paty4u Madrid, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
I'm Vera Madrid, one of the most sensual and slutty girls videochat. I belong to the group of Girls ViciosasAmateur.com. It will be a real pleasure enjoy a moment with you. Wanna have fun?
GIRL VICIOSASAMATEUR.COM
Besides the ViciosasAmateur.com girls we have more friends who can also fulfill your fantasies in their porn webcams. 24 hours a day you can enjoy these wonderful girls seeing them live in their porn chat.
I'm Violetahot, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Sexy Dayana, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Silvana Hot, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Sweet Hot Milk, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Big Princes, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Diosapeliroja, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Bombonsex, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Perverters22, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Sheila, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Rubia Cachondita, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Sofia Ponce, it will be a real pleasure enjoy a moment with you. Wanna have fun?
I'm Leydi Moon, it will be a real pleasure enjoy a moment with you. Wanna have fun?
Besides the ViciosasAmateur.com girls we have more friends, the Torbe Girls, can also fulfill your fantasies in their porn webcams. 24 hours a day you can enjoy these wonderful girls seeing them live in their porn chat.
I am Andrea Neri, one of the Torbe Girls. Enjoy with me!
I am Evita Madurita, one of the Torbe Girls. Enjoy with me!
I am Naya Morbo, one of the Torbe Girls. Enjoy with me!
I am Kiara Madrid, one of the Torbe Girls. Enjoy with me!
I am Violeta Black, one of the Torbe Girls. Enjoy with me!
I am Niky Hard, one of the Torbe Girls. Enjoy with me!
I am Cielo Sensual, one of the Torbe Girls. Enjoy with me!
I am Crisbabe Y Machox, one of the Torbe Girls. Enjoy with me!
I am Silvia Teen, one of the Torbe Girls. Enjoy with me!
I am Alexia Love, one of the Torbe Girls. Enjoy with me!
I am Marta Pitufilla, one of the Torbe Girls. Enjoy with me!
I am Anita Deluxe, one of the Torbe Girls. Enjoy with me!
Besides the ViciosasAmateur.com girls, you can enjoy the best PornoStars, they can also fulfill your fantasies in their porn webcams. 24 hours a day you can enjoy these wonderful girls seeing them live in their porn chat.
I am Zazel Paradise, one of the best PornoStars. You play with me?
I am Soraya Wells, one of the best PornoStars. You play with me?
I am Treicy, one of the best PornoStars. You play with me?
I am Lulita, one of the best PornoStars. You play with me?
I am Luana, one of the best PornoStars. You play with me?
I am Violeta Sex, one of the best PornoStars. You play with me?
I am Stefany, one of the best PornoStars. You play with me?
I am Brujita Golosa, one of the best PornoStars. You play with me?
I am Esa Morenita, one of the best PornoStars. You play with me?
I am Danna Valencia, one of the best PornoStars. You play with me?
I am Onix Babe, one of the best PornoStars. You play with me?
I am Salma De Nora, one of the best PornoStars. You play with me?
We present you the Top Ranking of the most popular girls in ViciosasAmateur.com. They are the most visited our website, sensual, provocative and funny girls. Encourage you to visit them, do not leave indifferent!
Click here to see the entire ranking!
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.
I am one of the most popular video chat girls.


[gecode-users] diffn constraint for Gecode
Sandro Pirkwieser
pirkwieser at gmail.com
Thu May 26 21:34:10 CEST 2011
Dear Christian,
> Co-incidence: I have been adding a naïve (but better than the decomposition)
> version of the constraint to Gecode recently. I will move that code to the
> trunk this week (there are still some glitches to fix before that).
now that's convenient!
On which algorithm is it based?
> The plan is to eventually improve to a state-of-the-art implementation.
This sounds good.
Would you consider the sweep algorithm proposed by Beldiceanu and
Carlsson as state-of-the-art, or are there any alternatives? Btw do you
know which one is applied in JaCoP?
> Taking code directly from Jacop into Gecode will not work due to their
> license.
The intention was more to get an inspiration. Anyway, both frameworks
probably differ too much.
> Maybe you would even be interested to contribute? At least you
> would have a nice structure to start from.
Yes, we can indeed think about this. Though I am not yet in a state
where I can "hack" something into Gecode, it would be a good opportunity
to start doing so.
Best regards,
Sandro
> We will release soonish a new version that will incorporate that but there
> are more things to be done before a release.
>
> Best
> Christian
>
> --
> Christian Schulte, KTH, web.it.kth.se/~cschulte/
>
>
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
> Of Sandro Pirkwieser
> Sent: Wednesday, May 25, 2011 9:01 PM
> To: users at gecode.org
> Subject: [gecode-users] diffn constraint for Gecode
>
> Hello,
>
> I'm using Gecode to tackle a 2D packing subproblem inside an optimization
> problem. The subproblem is about packing rectangles (for the meantime
> without rotation) into a given larger rectangle and many instances of
> moderate size need to be solved. Fortunately I was able to start with the
> perfect-square example, where the adapted variant already performs quite
> good (using the cumulatives constraint). Also enabling branching on
> intervals yielded a speed-up. Now I was wondering if someone of you already
> implemented a suitable diffn constraint (see
> http://www.emn.fr/z-info/sdemasse/gccat/Cdiffn.html) in Gecode. In this way
> the non-overlapping part would (presumably) be tackled more efficiently and
> give an additional performance boost. Do you think having a look at the
> diff/diff2 implementation in JaCoP is useful for implementing it in Gecode?
> Thanks!
>
> Best regards,
> Sandro
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
More information about the users
mailing list


We understand that successfully executing a space mission is dufficult and resource draining. - we're here to help and make space simple for you!
We're the only partner you'll need to execute your mission.
Our service will make your life easier by working for you to make your space mission a reality. We like to keep things simple and convenient for our customers.
Access2Space is the only partner you'll need to make your space mission a reality.
You get your data from the payload exactly as required, so you can simply use it.
We (and our partners) take the liability of integrating, launching and operating your payload from cradle-to-grave.
We combine established industry processes from our partners with robust testing and quality control techniques from automotive and aerospace.
We work with our customers as partners for their mission, and leverage our partner's and suppliers' expertise to provide the most convenient and bespoke service possible. Furthermore, we are more flexible than other similar service providers as we are:


2016
Concrete Brick, Gravel, Inkjet Print, LED, Six Channel Audio Track, Halogen Light, Microcontroller, Digital Print, Steel
I
The viewer is confronted by a large structure constructed of concrete bricks, located on the floor in the initial exhibition space. Its structure is a six-square grid, orthogonally misaligned from the urban grid, instead aligning to the compass north. Its form evokes the excavation or reconstruction of an unknown past or the foundations of a possible future structure. It contains an embedded network of choreographed programmed lights casting inwardly to illuminate the thin space of questioning, sequenced to constantly shift over approximately one hour, changing the conversational logics, slipping through internal cracks, and modeling the limits of the space. Small pieces of gravel are loosely formed into probabilistic patterns and cast shifting shadows across the sunken area. It is unclear to what the structure corresponds, and it is embedded within a large structural concrete pillar, including it in its modeling of the space and unsteadying possible scale and historical referents. Part of a triad of works which considered the obfuscated view, semiotics of the image, historical reconstruction of the architectural site, and ways of thinking through unhinged subjectivities and embedded histories. A key interest was around light and the conditions of visibility and invisibility inside the space of the gallery.
II
A darkened subterranean space contains shifting multi-channel resonant audio directing a viewer’s attention into the elongated room. Infrequent brief bursts for 300 microseconds of high-intensity light can be anticipated by audible frequency shifts, briefly impressing after- images onto the retina of viewers from photographic plates installed in three locations. Attached to the walls in these points are large metal plates affixed with large digital prints orthogonally aligned 29° to counteract the Manhattan Street grid. Considering their reception in time the images exist primarily as retinal after-images, slowly revealing themselves after the perception of several flashes to be digital reconstructions of the space of the gallery, with an added palimpsest of all other structures historically present on the site of exhibition – momentary virtual mirrors created through simulated 3D reconstructions of archival documents. Unlike optical mirrors these devices render the viewer invisible, replaced by the visual presence of past structures including the boiler room of a 1912 university building, and the retaining wall of a significant 19th Century New York market hall which once divided the space. The natural light moves through the uninterrupted space of the virtual reconstruction and encounters its past, proposing an engine of historical resuscitation powered by light.
III
Oriented to leave the exhibition, the viewer notices a sliver of cold light projecting from an opened hatch in the ceiling. Suspended in the infrastructural space between the ceiling and the floor above is a printed image caught on a structural beam, fluttering in the wind of the HVAC system. The print depicts a grid of sidewalk panels photographed from across the city which together reveal a chalk drawing which mimics the directionality of the unseen light source. It is communicated to the viewer that an unspecified number of similar images have been permanently affixed to hidden structural elements throughout the institution. These images remain hidden, and the work will remain extant for the duration of its architectural host. The work draws on cross-cultural ritual practices in which the placement of symbolic objects into the foundations and structural elements of buildings was believed to pass on their spirits and lend stability.


{% extends "layout.html" %} {% block main %}
{{ _("Send a TrueNTH email invite by filling in the form below.") }}


--- layout: page title: About header-img: "img/about-bg.png" ---
Greetings! My name is Jesse and I am an aspiring software developer. Officially my journey began at FlatIron School, as I embrace the coding Bootcamp culture. Despite the countless error messages and long nights ahead, this journey grows more exciting with each passing day. The bigger the challenge, the larger the reward.


You have cancelled your log in to PRIME
For assistance with PRIME, contact
For assistance logging in with the BC Services Card app, contact the Help Desk here.
for health professionals of British Columbia
Set up the BC Services Card app on a mobile device if you haven’t done so already. Once finished, come back
to PRIME and complete your enrolment.
How to set up the BC Services Card app.
Complete PRIME enrolment by answering a set of questions. It usually only takes a few minutes. If you are a registrant of a B.C. health college, you will need your college information (licence number/ registration number/ CPSID/ BCCNM ID) and next renewal date.
Once you are approved to use PharmaNet, you will enter the email of the person in your workplace who sets up PharmaNet accounts. They will get you connected to PharmaNet.
Questions about PRIME should be directed to:


"x" "1" "CHARLES,JM CUNNY,HC WILSON,RD BUS,JS LAWLOR,TE CIFONE,MA FELLOWS,M ANDGOLAPUDI,B, AMES ASSAYS AND UNSCHEDULED DNA SYNTHESIS ASSAYS ON2,4-DICHLOROPHENOXYACETIC ACID AND ITS DERIVATIVES, MUTAT. RES. 444 __ (1):207-216,1999"


Home
Hotels
Car Rental
Contact Us
Premiere Room
Breakfast Included
Rs.3000.00
Free Parking
Free Internet
Queen Bed
Superior Room
Breakfast Included
Rs.7000.00
Free Parking
Free Internet
Twin Bed
Executive Room
Breakfast and Dinner Included
Rs.11000.00
Free Parking
Free Internet
King Bed
Royal Room
Breakfast and Dinner Included
Rs.15000.00
Free Parking
Free Internet
King Bed