Changelog
All notable changes will be documented in this file. This project
sort of conforms to Semantic Versioning. Since we’re still pre-1.0,
it’s like the Wild West up in here!
Unreleased
Added (not started)
- Still planning out how to include i18n data and functionality.
Deprecated (not started)
- Incorrect usage of the word “meridian” will be deprecated. It should
be “meridiem”.
showWidgetOnAddonClick
‘s current behavior is not intuitive. Clicking
the input addon should toggle the widget instead of showing it.
0.5.2 - 2016-01-02
Added
- Tabbing out of the timepicker widget will now close it.
- You can specify your own icon classes. See docs for the option.
Changed
- Cleaned up
package.json
and bower.json
files. The npm/bower package
should be cleaner now.
timepicker.less
now lives in the css/
directory of the package.
- bootstrap-timepicker now uses the latest minor releases for jQuery 2 and
Bootstrap 3
Fixed
- Fixed bad interaction between
setTime("12:00 AM")
and showMeridian
- Various documentation issues were fixed.
0.5.1 - 2015-08-06
Changed
- Critical fix (#279) for bootstrap initialization. If you happened to
list your timepicker’s classes in an order other than “input-group
bootstrap-timepicker”, you’d be out of luck. Now we use jQuery’s
hasClass
method correctly. Yay!
0.5 - 2015-07-31
Changed
- Bootstrap 3 support. No more Bootstrap 2 support.
- setTime sets time better
- more tests, and they exercise Bootstrap 3 support!
- snapToStep is a new option, off by default, which snaps times to the
nearest step or overflows to 0 if it would otherwise snap to 60 or
more.
- explicitMode is a new option, off by default, which lets you leave
out colons when typing times.
- shift+tab now correctly moves the cursor to the previously
highlighted unit, and blurs the timepicker when expected.
- We have cut out significant amounts of old cruft from the
repository.
- Minified/Uglified code is no longer kept in the repo. Please
download a release tarball or zip file to get the compiled and
minified CSS and Javascript files.


|
SideCar
|
#include <iosfwd>
#include <memory>
#include <sstream>
#include <stdexcept>
#include <string>
Go to the source code of this file.
Data Structures | |
| struct | Utils::ExceptionInserter< T > |
| Define a stream inserter operator to use for Exception objects that returns the appropriate type. More... | |
| class | Utils::Exception |
| Base exception class. More... | |
Namespaces | |
| Utils | |
| Namespace for utility classes and such used by other components. | |


- unregisterAllUsers() - Static method in class com.cmput301f19t09.vibes.models.UserManager
-
Unregister all users currently held.
- unregisterUser(String) - Static method in class com.cmput301f19t09.vibes.models.UserManager
-
Remove a User from registeredUsers and remove the SnapshotListener from the User
- update(Observable, Object) - Method in class com.cmput301f19t09.vibes.fragments.mapfragment.MapFragment
-
- update(Observable, Object) - Method in class com.cmput301f19t09.vibes.fragments.profilefragment.ProfileFragment
-
Updates the fragment with new values if there was an update from the database.
- update(Observable, Object) - Method in class com.cmput301f19t09.vibes.fragments.searchfragment.SearchListAdapter
-
Clears the list on update
- User - Class in com.cmput301f19t09.vibes.models
-
User class interacts with the Firebase instance.
- User(String) - Constructor for class com.cmput301f19t09.vibes.models.User
-
Constructs the user object, sets the UID to the passed in UID, and checks if the connection
was started before to prevent multiple connections
- User() - Constructor for class com.cmput301f19t09.vibes.models.User
-
An empty constructor which does nothing and doesn't set attributes properly.
- User.FirebaseCallback - Interface in com.cmput301f19t09.vibes.models
-
Callback listener when data from the database is retrieved
- UserManager - Class in com.cmput301f19t09.vibes.models
-
This class manages a list of all Users that have been used in components of the app.
- UserManager() - Constructor for class com.cmput301f19t09.vibes.models.UserManager
-
- UserMangerTests - Class in com.cmput301f19t09.vibes
-
- UserMangerTests() - Constructor for class com.cmput301f19t09.vibes.UserMangerTests
-
- UserTests - Class in com.cmput301f19t09.vibes
-
- UserTests() - Constructor for class com.cmput301f19t09.vibes.UserTests
-
- UserUnitTests - Class in com.cmput301f19t09.vibes
-
- UserUnitTests() - Constructor for class com.cmput301f19t09.vibes.UserUnitTests
-


Note
Click here to download the full example code
Compares implementations of ReduceSumSquare#
This example compares the numpy for the operator ReduceSumSquare to onnxruntime implementation. If available, tensorflow and pytorch are included as well.
Available optimisation#
The code shows which parallelisation optimisation could be used, AVX or SSE and the number of available processors.
import numpy
import pandas
import matplotlib.pyplot as plt
from onnxruntime import InferenceSession
from skl2onnx.common.data_types import FloatTensorType
from skl2onnx.algebra.onnx_ops import OnnxReduceSumSquare
from cpyquickhelper.numbers import measure_time
from tqdm import tqdm
from mlprodict.testing.experimental_c_impl.experimental_c import code_optimisation
print(code_optimisation())
Out:
AVX-omp=8
ReduceSumSquare implementations#
try:
from tensorflow.math import reduce_sum as tf_reduce_sum
from tensorflow import convert_to_tensor
except ImportError:
tf_reduce_sum = None
try:
from torch import sum as torch_sum, from_numpy
except ImportError:
torch_sum = None
def build_ort_reducesumsquare(axes, op_version=14): # opset=13, 14, ...
node = OnnxReduceSumSquare('x', axes=axes, op_version=op_version,
output_names=['z'])
onx = node.to_onnx(inputs=[('x', FloatTensorType())],
target_opset=op_version)
sess = InferenceSession(onx.SerializeToString())
return lambda x, y: sess.run(None, {'x': x})
def loop_fct(fct, xs, ys):
for x, y in zip(xs, ys):
fct(x, y)
def benchmark_op(axes, repeat=2, number=5, name="ReduceSumSquare", shape_fct=None):
if shape_fct is None:
def shape_fct(dim):
return (3, dim, 1, 128, 64)
ort_fct = build_ort_reducesumsquare(axes)
res = []
for dim in tqdm([8, 16, 32, 64, 100, 128, 200,
256, 400, 512, 1024]):
shape = shape_fct(dim)
n_arrays = 10 if dim < 512 else 4
xs = [numpy.random.rand(*shape).astype(numpy.float32)
for _ in range(n_arrays)]
ys = [numpy.array(axes, dtype=numpy.int64)
for _ in range(n_arrays)]
info = dict(axes=axes, shape=shape)
# numpy
ctx = dict(
xs=xs, ys=ys,
fct=lambda x, y: numpy.sum(x ** 2, *y),
loop_fct=loop_fct)
obs = measure_time(
"loop_fct(fct, xs, ys)",
div_by_number=True, context=ctx, repeat=repeat, number=number)
obs['dim'] = dim
obs['fct'] = 'numpy'
obs.update(info)
res.append(obs)
# onnxruntime
ctx['fct'] = ort_fct
obs = measure_time(
"loop_fct(fct, xs, ys)",
div_by_number=True, context=ctx, repeat=repeat, number=number)
obs['dim'] = dim
obs['fct'] = 'ort'
obs.update(info)
res.append(obs)
if tf_reduce_sum is not None:
# tensorflow
ctx['fct'] = lambda x, y: tf_reduce_sum(x ** 2, y)
ctx['xs'] = [convert_to_tensor(x) for x in xs]
ctx['ys'] = ys
obs = measure_time(
"loop_fct(fct, xs, ys)",
div_by_number=True, context=ctx, repeat=repeat, number=number)
obs['dim'] = dim
obs['fct'] = 'tf'
obs.update(info)
res.append(obs)
if torch_sum is not None:
def torch_sum1(x, y):
return torch_sum(x ** 2, y[0])
def torch_sum2(x, y):
return torch_sum(torch_sum(x ** 2, y[1]), y[0])
# torch
ctx['fct'] = torch_sum1 if len(axes) == 1 else torch_sum2
ctx['xs'] = [from_numpy(x) for x in xs]
ctx['ys'] = ys # [from_numpy(y) for y in ys]
obs = measure_time(
"loop_fct(fct, xs, ys)",
div_by_number=True, context=ctx, repeat=repeat, number=number)
obs['dim'] = dim
obs['fct'] = 'torch'
obs.update(info)
res.append(obs)
# Dataframes
shape_name = str(shape).replace(str(dim), "N")
df = pandas.DataFrame(res)
df.columns = [_.replace('dim', 'N') for _ in df.columns]
piv = df.pivot('N', 'fct', 'average')
rs = piv.copy()
for c in ['ort', 'torch', 'tf', 'tf_copy']:
if c in rs.columns:
rs[c] = rs['numpy'] / rs[c]
rs['numpy'] = 1.
# Graphs.
fig, ax = plt.subplots(1, 2, figsize=(12, 4))
piv.plot(logx=True, logy=True, ax=ax[0],
title="%s benchmark\n%r - %r"
" lower better" % (name, shape_name, axes))
ax[0].legend(prop={"size": 9})
rs.plot(logx=True, logy=True, ax=ax[1],
title="%s Speedup, baseline=numpy\n%r - %r"
" higher better" % (name, shape_name, axes))
ax[1].plot([min(rs.index), max(rs.index)], [0.5, 0.5], 'g--')
ax[1].plot([min(rs.index), max(rs.index)], [2., 2.], 'g--')
ax[1].legend(prop={"size": 9})
return df, rs, ax
dfs = []
Reduction on a particular case KR#
Consecutive axis not reduced and consecutive reduced axis are merged. KRK means kept axis - reduced axis - kept axis,
(8, 24, 48, N), axis=(3, )#
axes = (3, )
df, piv, ax = benchmark_op(axes, shape_fct=lambda dim: (8, 24, 48, dim))
dfs.append(df)
df.pivot("fct", "N", "average")
Out:
0%| | 0/11 [00:00<?, ?it/s]
9%|9 | 1/11 [00:01<00:15, 1.58s/it]
18%|#8 | 2/11 [00:02<00:13, 1.45s/it]
27%|##7 | 3/11 [00:04<00:13, 1.67s/it]
36%|###6 | 4/11 [00:06<00:12, 1.74s/it]
45%|####5 | 5/11 [00:09<00:12, 2.01s/it]
55%|#####4 | 6/11 [00:11<00:10, 2.14s/it]
64%|######3 | 7/11 [00:14<00:09, 2.37s/it]
73%|#######2 | 8/11 [00:17<00:08, 2.74s/it]
82%|########1 | 9/11 [00:22<00:06, 3.27s/it]
91%|######### | 10/11 [00:24<00:02, 2.90s/it]
100%|##########| 11/11 [00:27<00:00, 3.07s/it]
100%|##########| 11/11 [00:27<00:00, 2.54s/it]
Reduction on a particular case RK#
Consecutive axis not reduced and consecutive reduced axis are merged. KRK means kept axis - reduced axis - kept axis,
(8, 24, 48, N), axis=(0, )#
axes = (0, )
df, piv, ax = benchmark_op(axes, shape_fct=lambda dim: (8, 24, 48, dim))
dfs.append(df)
df.pivot("fct", "N", "average")
Out:
0%| | 0/11 [00:00<?, ?it/s]
9%|9 | 1/11 [00:00<00:08, 1.12it/s]
18%|#8 | 2/11 [00:02<00:09, 1.11s/it]
27%|##7 | 3/11 [00:03<00:11, 1.42s/it]
36%|###6 | 4/11 [00:06<00:14, 2.03s/it]
45%|####5 | 5/11 [00:10<00:14, 2.45s/it]
55%|#####4 | 6/11 [00:13<00:13, 2.67s/it]
64%|######3 | 7/11 [00:17<00:12, 3.12s/it]
73%|#######2 | 8/11 [00:22<00:11, 3.70s/it]
82%|########1 | 9/11 [00:28<00:08, 4.42s/it]
91%|######### | 10/11 [00:30<00:03, 3.87s/it]
100%|##########| 11/11 [00:35<00:00, 4.01s/it]
100%|##########| 11/11 [00:35<00:00, 3.20s/it]
Reduction on a particular case KRK#
Consecutive axis not reduced and consecutive reduced axis are merged. KRK means kept axis - reduced axis - kept axis,
(8, 24, 48, N), axis=(1, 2)#
axes = (1, 2)
df, piv, ax = benchmark_op(axes, shape_fct=lambda dim: (8, 24, 48, dim))
dfs.append(df)
df.pivot("fct", "N", "average")
Out:
0%| | 0/11 [00:00<?, ?it/s]
9%|9 | 1/11 [00:00<00:07, 1.26it/s]
18%|#8 | 2/11 [00:01<00:08, 1.08it/s]
27%|##7 | 3/11 [00:03<00:09, 1.20s/it]
36%|###6 | 4/11 [00:05<00:11, 1.70s/it]
45%|####5 | 5/11 [00:08<00:12, 2.15s/it]
55%|#####4 | 6/11 [00:11<00:12, 2.44s/it]
64%|######3 | 7/11 [00:17<00:13, 3.44s/it]
73%|#######2 | 8/11 [00:24<00:14, 4.74s/it]
82%|########1 | 9/11 [00:32<00:11, 5.72s/it]
91%|######### | 10/11 [00:37<00:05, 5.41s/it]
100%|##########| 11/11 [00:45<00:00, 6.30s/it]
100%|##########| 11/11 [00:45<00:00, 4.15s/it]
(8, 24 * 48, N), axis=1#
axes = (1, )
df, piv, ax = benchmark_op(axes, shape_fct=lambda dim: (8, 24 * 48, dim))
dfs.append(df)
df.pivot("fct", "N", "average")
Out:
0%| | 0/11 [00:00<?, ?it/s]
9%|9 | 1/11 [00:01<00:18, 1.85s/it]
18%|#8 | 2/11 [00:03<00:16, 1.89s/it]
27%|##7 | 3/11 [00:05<00:12, 1.60s/it]
36%|###6 | 4/11 [00:07<00:13, 1.90s/it]
45%|####5 | 5/11 [00:10<00:13, 2.19s/it]
55%|#####4 | 6/11 [00:13<00:12, 2.47s/it]
64%|######3 | 7/11 [00:16<00:10, 2.74s/it]
73%|#######2 | 8/11 [00:21<00:10, 3.41s/it]
82%|########1 | 9/11 [00:26<00:07, 3.89s/it]
91%|######### | 10/11 [00:29<00:03, 3.73s/it]
100%|##########| 11/11 [00:36<00:00, 4.58s/it]
100%|##########| 11/11 [00:36<00:00, 3.28s/it]
(2, 8, 12, 24, 2, N), axis=(2, 3)#
axes = (2, 3)
df, piv, ax = benchmark_op(axes, shape_fct=lambda dim: (2, 8, 12, 24, 2, dim))
dfs.append(df)
df.pivot("fct", "N", "average")
Out:
0%| | 0/11 [00:00<?, ?it/s]
9%|9 | 1/11 [00:01<00:18, 1.81s/it]
18%|#8 | 2/11 [00:03<00:16, 1.89s/it]
27%|##7 | 3/11 [00:05<00:15, 1.99s/it]
36%|###6 | 4/11 [00:08<00:15, 2.21s/it]
45%|####5 | 5/11 [00:12<00:18, 3.04s/it]
55%|#####4 | 6/11 [00:17<00:18, 3.71s/it]
64%|######3 | 7/11 [00:23<00:17, 4.28s/it]
73%|#######2 | 8/11 [00:29<00:14, 4.97s/it]
82%|########1 | 9/11 [00:37<00:11, 5.96s/it]
91%|######### | 10/11 [00:42<00:05, 5.55s/it]
100%|##########| 11/11 [00:50<00:00, 6.36s/it]
100%|##########| 11/11 [00:50<00:00, 4.62s/it]
Reduction on a particular case RKR#
(N, 64, 16, 16), axis=(0, 2, 3)#
axes = (0, 2, 3)
df, piv, ax = benchmark_op(
axes, shape_fct=lambda dim: (dim, 64, 16, 16))
dfs.append(df)
df.pivot("fct", "N", "average")
Traceback (most recent call last):
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_doc/examples/plot_op_reducesumsquare.py", line 234, in <module>
df, piv, ax = benchmark_op(
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_doc/examples/plot_op_reducesumsquare.py", line 81, in benchmark_op
obs = measure_time(
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_venv/lib/python3.9/site-packages/cpyquickhelper/numbers/speed_measure.py", line 86, in measure_time
res = numpy.array(tim.repeat(repeat=repeat, number=number))
File "/usr/local/lib/python3.9/timeit.py", line 205, in repeat
t = self.timeit(number)
File "/usr/local/lib/python3.9/timeit.py", line 177, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_doc/examples/plot_op_reducesumsquare.py", line 57, in loop_fct
fct(x, y)
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_doc/examples/plot_op_reducesumsquare.py", line 79, in <lambda>
fct=lambda x, y: numpy.sum(x ** 2, *y),
File "<__array_function__ internals>", line 5, in sum
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_venv/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 2259, in sum
return _wrapreduction(a, np.add, 'sum', axis, dtype, out, keepdims=keepdims,
File "/var/lib/jenkins/workspace/mlprodict/mlprodict_UT_39_std/_venv/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 86, in _wrapreduction
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
TypeError: output must be an array
Reduction on a particular case RKRK#
(8, 24, 48, N), axis=(0, 2)#
axes = (0, 2)
df, piv, ax = benchmark_op(axes, shape_fct=lambda dim: (8, 24, 48, dim))
dfs.append(df)
df.pivot("fct", "N", "average")
Conclusion#
Some of the configurations should be investigated. l-reducesum-problem1. The reduction on tensorflow in one dimension seems to be lazy.
merged = pandas.concat(dfs)
name = "reducesumsquare"
merged.to_csv("plot_%s.csv" % name, index=False)
merged.to_excel("plot_%s.xlsx" % name, index=False)
plt.savefig("plot_%s.png" % name)
plt.show()
Total running time of the script: ( 3 minutes 27.433 seconds)


This intention is available in the editor if external annotations are enabled in your code style settings.


About
HopLog is an android app that helps users share their thoughts and preferences of beers online with friends.
The user is able to discover new beers and rank already drank beers, share beers with friends and help them with their choice.
HopLog is an Open Source Project. To find out more about this project and how you can
contribute click here.
Team
KATIE CHONG
EMILE FERNAND
DAVID PAN
DARREL SCHREINER
DOMINIQUE SCHREINER
VICKY ZHUANG
Team
Good news! We've implemented a user profile so you can login and keep track of your personal beer preferences.
Team
Is HopLog open source?
Yes, HopLog is licensed under the MIT license.
Is HopLog free?
Yes, HopLog is available for download free of charge for everyone.
What platforms does HopLog run on?
HopLog is an android app and runs on android mobile devices.
How do I get in touch?
If you have a question or would like to get in touch, please fill out our contact form
and a team member will be in reach out soon.
Contact
Elements
Text
This is bold and this is strong. This is italic and this is emphasized.
This is superscript text and this is subscript text.
This is underlined and this is code: for (;;) { ... }
. Finally, this is a link.
Heading Level 2
Heading Level 3
Heading Level 4
Heading Level 5
Heading Level 6
Blockquote
Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.
Preformatted
i = 0;
while (!deck.isInOrder()) {
print 'Iteration ' + i;
deck.shuffle();
i++;
}
print 'It took ' + i + ' iterations to sort the deck.';
Lists
Unordered
- Dolor pulvinar etiam.
- Sagittis adipiscing.
- Felis enim feugiat.
Alternate
- Dolor pulvinar etiam.
- Sagittis adipiscing.
- Felis enim feugiat.
Ordered
- Dolor pulvinar etiam.
- Etiam vel felis viverra.
- Felis enim feugiat.
- Dolor pulvinar etiam.
- Etiam vel felis lorem.
- Felis enim et feugiat.
Icons
Actions
Table
Default
| Name |
Description |
Price |
| Item One |
Ante turpis integer aliquet porttitor. |
29.99 |
| Item Two |
Vis ac commodo adipiscing arcu aliquet. |
19.99 |
| Item Three |
Morbi faucibus arcu accumsan lorem. |
29.99 |
| Item Four |
Vitae integer tempus condimentum. |
19.99 |
| Item Five |
Ante turpis integer aliquet porttitor. |
29.99 |
|
100.00 |
Alternate
| Name |
Description |
Price |
| Item One |
Ante turpis integer aliquet porttitor. |
29.99 |
| Item Two |
Vis ac commodo adipiscing arcu aliquet. |
19.99 |
| Item Three |
Morbi faucibus arcu accumsan lorem. |
29.99 |
| Item Four |
Vitae integer tempus condimentum. |
19.99 |
| Item Five |
Ante turpis integer aliquet porttitor. |
29.99 |
|
100.00 |


§76-6 Chapter inoperative, when. If any provision of this chapter jeopardizes the receipt by the State or any county of any federal grant-in-aid or other federal allotment of money, the provision shall, insofar as the fund is jeopardized, be deemed to be inoperative. [L 1955, c 274, §12; RL 1955, §3-7; HRS §76-6; am L 2000, c 253, §7]


Nu kan du e-maile mig på<EMAIL_ADDRESS>Dear Friend,
I am Mr.israel egobia senior manager accounts/audit department, in Standard Trust bank Nigeria Plc. Mr. Mark Cin a national of your country, who was a consultant with Shell-development Company in Nigeria and a personal friend Died and left behind his deposit in this bank (STANDARD TRUST BANK NIGERIA PLC) valued $18,723,822.90.
My relationship with Mr. Mark started in 1992 when I was a supervisor in first bank marina branch.We met in my social club annual end of the year party and I introduced him to my bank where he opened this account some few weeks later making me the account officer to the account and he operated this account until his death.
On the 21st of April 2001, Mr. Mark, his wife and their three children were involved in a car accident along sagamu express road. All occupants of the vehicle unfortunately lost their lives. Since then I have made several enquiries through your Embassy to locate any of Mr. Mark's extended relatives this has also proved unsuccessful. After these several unsuccessful attempts, to locate any member of his family hence I contacted you.I am contacting you to assist in repatriating the money left behind by Mr. Mark before they get confiscated since the bank has decleared the account unserviceable.I have been unsuccessful in locating the relatives for over 3years since I was recalled back to marina branch as a senior manager from a transfer that took me to another branch of the bank.
I therefore seek your consent to present you as the next of kin
of the deceased , so that the proceeds of this account valued at $18,723,822.90 can be paid to you and then you and me can share the money. 60% to me and 40% to you.
I have access to necessary legal documents that can be used to back up any claim we may make. All I require is your honest cooperation to enable us see this deal through.
I guarantee that this will be executed under a legitimate arrangement that will protect you from any breach of the law. Please get in touch with me through my email or phone and send to me your full name telephone and fax numbers to enable us discuss further about this transaction. You can call me on telephone number 234 1 4735117 or by email<EMAIL_ADDRESS>Best regards,
Mr.Israel Egobia
- ISRAEL EGOBIA


Function syntax is one of:
letter open letter close
letter open 'j*' letter close
letter open 'e^(j*' letter ')' close
letter '_' open? letter close?
with:
letter
open
close


The East African marks its 25th anniversary
by The Citizen ReporterDar es Salaam. The EastAfrican, a publication of the Nation Media Group (NMG), has marked its 25th anniversary with celebrations at its Nairobi, Kampala, Dar es Salaam and Kigali offices.
The weekly newspaper, which covers regional politics, business, diplomatic and policy news, was started in November 1994. After a quarter century of being at the forefront of documenting the East Africa Community (EAC) integration journey, the publication is renewing its commitment to spearhead member countries’ understanding of the region.
“Our commitment to continue delivering factual, timely and relevant news to our readers remains our key objective for years to come,” said the NMG managing director for the Newspaper Division, Mr Francis Munywoki.
“We truly value our external partners who have supported the paper for many years and used it as an avenue to reach out to their consumers across the East African region,” Mr Munywoki added.
The EastAfrican has documented EAC’s key milestones including the revival of the trading bloc in November 2000. The publication is marking its anniversary in the same month when the EAC marks 20 years of reunification.
“The EastAfrican has won admiration and also attracted criticism along the way but never has there been any temptation to veer off the straight and narrow path of professional, balanced and objective journalism,” said Washington Gikunju, The EastAfrican managing editor.
Advertisement


Start by being informed. Fantasy News
"An investment in knowledge pays the best interest." - Ben Franklin
"The best predictor of future behavior is past behavior."" - Mark Twain
"Logic is the technique by which we add conviction to truth" - Jean Bruyere
"We're going to win so much, you're going to be so sick and tired of winning" - Donald J. Trump


Four Bucknell University seniors studying Computer Science
Stephanie Garboski is a senior at Bucknell University, majoring in both Computer Science and Comparative Humanities. She is currently a Teacher's Assistant for the Comparative Humanities Department, the events planner for the Chi Omega Sorority on campus, and is also working on an Honors Thesis within the Comparative Humanities department. Her interests vary widely, from creative writing to web application security, and she is hoping to eventually retire early from her career in web security to pursue a career in fiction writing from the safety and comfort of her farm in rural New England.
Natalie Altman is a senior pursuing her BA in Computer Science with a minor in Women and Gender Studies at Bucknell University. She is also the Executive Vice President for the Theta Iota chapter of Alpha Delta Pi, and a student monitor at the Bucknell University Student Calling Program. After graduation she is hoping to combine her roots of being raised in New York City with her fascination in fashion, design and programming.
Aleksandar Antonov is a senior at Bucknell University pursuing a BS in Computer Science. With interests spanning Literature, Social Justice, ‘The Great Outdoors’, graphics, and security engineering. Aleksandar aims to bring his skills in computer science to interface with paths intersecting with those interests. You’re likely to find Aleksandar whizzing around on his bike, tumbling through the woods, creating lists for whatever whimsy, and deliberating his future with his soon-to-be dog.
Danny Toback is a senior Computer Science major at Bucknell University, minoring in Spanish and Economics. He has strong interests in the areas of cyber security, game design, and software engineering, and has taken classes in Human Computer Interaction, Software Engineering, and Compiler Optimization. In 2017, he worked outside of Washington DC for a government defense contractor. In his spare time, he tries his best to impress his friends while playing the drums, embarrasses strangers in the art of video games over Xbox live, and complains about poor officiating in New York Yankees, Islanders, Giants and Knicks sporting events.


Sorry. Your browser doesn't support the Media Stream API. Try Chrome or Firefox.
Your camera is not connected. Reload this page and allow access to your camera when prompted.


Sep 26 Senior Backend Ruby on Rails Developer - (Santa Monica, CA)
Sep 26 Ruby on Rails Developer - (Downtown Seattle)
Sep 26 Ruby on Rails Developer - (Chicago,IL)
Sep 26 Front-End Ruby on Rails Developer located - ( Santa Monica, CA)
Sep 25 Seeking talented Ruby on Rails Developer - (mission district)
Sep 25 Ruby on Rails Guru - available to teach - (North Austin)
Sep 24 Seeking Ruby on Rails Developer and Host - (Chicagoland)
Sep 24 Ruby on Rails, Web Development Tutors Wanted - (NYC area) img
Sep 24 Need Help with Programming - (Ruby on Rails) MyShopify - (Santa Barbara)
Sep 21 iOS and Android Developers Wanted (Rails would be great too) - (Chicago)
Sep 20 Senior Web Developer - JavaScript, CSS, HTML, Rails - (Seattle)
Sep 20 Ruby/Rails Software Engineer for Ed Tech Startup - (Telecommute)
Sep 20 Ruby on Rails or CSS3 HTML5 JavaScript-entry level training - (Boulder County)
Sep 20 RUBY ON RAILS - (NYC)
Sep 19 Ruby on Rails Pro Needed - (AZ Only)
Sep 18 Ruby On Rails, Heroku, GitHub - (Ridgewood, NJ)
Sep 17 Local Rails Ruby Developer / Mentor - (Cambridge)
Sep 16 Ruby/Rails Software Engineer for Ed Tech Startup - (Telecommute)
Sep 16 Ruby/Rails Software Engineer for Ed Tech Startup - (Telecommute)
Sep 14 Ruby/Rails Software Engineer for Ed Tech Startup - (Telecommute)
Sep 14 Ruby/Rails Software Engineer for Ed Tech Startup - (Telecommute)
Sep 13 Ruby on Rails App - (Little Silver)
Sep 10 Ruby on Rails Developer - (Columbus )
Sep 10 Cutting Edge Rails Development, Flexible Job, Great Team - (Louisville, CO)
Sep 10 Cutting Edge Rails Development, Flexible Job, Great Team - (Louisville, CO)
Sep 08 New .com startup are seeking Grails Web Developers - (Remote login)
Sep 05 Teach Me Ruby on Rails - (Portland)
Sep 05 Rails Web Developer - (Grand Rapids)
Aug 28 Ruby on Rails - (Boulder, CO)
Aug 25 Ruby on Rails developer - (Vero Beach)
Aug 21 Ruby on Rails Developer - (Superior)
Aug 20 Junior Ruby on Rails Developer - (Greensboro, NC)
Aug 16 Front End Web Development Needed - Ruby On Rails - (Park Ave)
Aug 15 Rails Engineer - Direct Hire - (Boston, MA 02116)
Aug 14 Ruby/Rails, JS/CoffeeScript Developer - Flexible Hours, Work From Home - (Anywhere)
Aug 14 Ruby, Rails, CoffeeScript Developer - Flexible Hours, Work From Home - (Anywhere)
Aug 12 Ruby / Rails Engineer - (Relo to Boston)


TraceHelper
This module contains function which allow to trace build output
Functions and values
| Function or value | Description |
closeAllOpenTags ()
Signature:unit -> unit
|
Go to GitHub source |
closeTag tag
Signature:tag:string -> unit
|
Removes an opening tag from the internal tag stack Go to GitHub source |
console
Signature:ITraceListener
|
Go to GitHub source |
fakePath
Signature:string
|
Gets the path of the current FAKE instance Go to GitHub source |
fakeVersion
Signature:string
|
Gets the FAKE version no. Go to GitHub source |
fakeVersionStr
Signature:string
|
Gets the FAKE Version string Go to GitHub source |
log message
Signature:message:string -> unit
|
Logs the specified string Go to GitHub source |
logf fmt
Signature:fmt:StringFormat<'?6304,unit> -> '?6304
Type parameters: '?6304 |
Logs the specified message (without line break) Go to GitHub source |
logfn fmt
Signature:fmt:StringFormat<'?6302,unit> -> '?6302
Type parameters: '?6302 |
Logs the specified message Go to GitHub source |
logToConsole (msg, eventLogEntry)
Signature:(msg:string * eventLogEntry:EventLogEntryType) -> unit
|
Traces the message to the console Go to GitHub source |
logVerbosefn fmt
Signature:fmt:StringFormat<'?6306,unit> -> '?6306
Type parameters: '?6306 |
Logs the specified string if the verbose mode is activated. Go to GitHub source |
openTag tag
Signature:tag:string -> unit
|
Puts an opening tag on the internal tag stack Go to GitHub source |
trace message
Signature:message:string -> unit
|
Writes a trace to the command line (in green) Go to GitHub source |
traceEndBuild ()
Signature:unit -> unit
|
Traces the end of the build Go to GitHub source |
traceEndTarget name
Signature:name:string -> unit
|
Traces the end of a target Go to GitHub source |
traceEndTask task description
Signature:task:string -> description:string -> unit
|
Traces the end of a task Go to GitHub source |
TraceEnvironmentVariables ()
Signature:unit -> unit
|
Traces the EnvironmentVariables Go to GitHub source |
traceError error
Signature:error:string -> unit
|
Traces an error (in red) Go to GitHub source |
tracef fmt
Signature:fmt:StringFormat<'?6311,unit> -> '?6311
Type parameters: '?6311 |
Writes a message to the command line (in green) and without a line break Go to GitHub source |
traceFAKE fmt
Signature:fmt:StringFormat<'?6315,unit> -> '?6315
Type parameters: '?6315 |
Writes a trace to the command line (in yellow) Go to GitHub source |
tracefn fmt
Signature:fmt:StringFormat<'?6309,unit> -> '?6309
Type parameters: '?6309 |
Writes a message to the command line (in green) Go to GitHub source |
traceHeader name
Signature:name:string -> unit
|
Traces a header Go to GitHub source |
traceImportant text
Signature:text:string -> unit
|
Writes a trace to stderr (in yellow) Go to GitHub source |
traceLine ()
Signature:unit -> unit
|
Traces a line Go to GitHub source |
traceStartBuild ()
Signature:unit -> unit
|
Traces the begin of the build Go to GitHub source |
traceStartTarget (...)
Signature:name:string -> description:string -> dependencyString:string -> unit
|
Traces the begin of a target Go to GitHub source |
traceStartTask task description
Signature:task:string -> description:string -> unit
|
Traces the begin of a task Go to GitHub source |
traceVerbose s
Signature:s:string -> unit
|
Writes a trace to the command line (in green) if the verbose mode is activated. Go to GitHub source |


Chief Mercenary Sophya:
The Map! This is good information. Where did you get it?
"From Pet Manager Waters."


Audio Class
Item Index
Methods
Methods
create
(
Node
-
config
This is a utility method to create an HTML 5 Audio element. Each browser has a different level of support for playing different audio formats. If an audio file is hosted in multple formats, this will select the one most likely to play in the current browser. If the browser does not support any of the available audio formats, null is returned.
Parameters:
-
config
ObjectThe config object has the following optional properties:
- autoplay
- Boolean. If the audio should begin playing immediately.
- baseUrl
- String. URL of the audio file, minus the extension. Works together with the format property to pick the best audio file to play.
- controls
- Boolean. If the browser should render a user interface. (The audio node must be attached to the DOM for the controls to appear)
- format
- Array or Object. List of hosted formats. Defaults to ['ogg', 'mp3', 'm4a', 'wav']. The best supported format will be determined and the file extension will be appended to baseUrl. If all four formats are not being hosted, only list the formats that are. For example, ['mp3', 'ogg'] will not try to find an m4a or wav file. If the four formats aren't named the same, or are hosted at different locations, or have unusual file extensions, set the baseUrl property to any common URL fragment, or leave the baseUrl property undefined if there isn't one. Then set the format property to an object which has the individual formats as keys and a strings as values that will be appended to the baseUrl. For example, baseUrl could be set to 'http://domain.com/' and format could be set to {m4a: 'music/file.m4a', mp3: 'mp3s/cool/file.mp4', ogg: 'vorbis/file.ogg'}
- loop
- Boolean. If the audio should loop forever.
- preload
- String. This value should be either 'auto', 'metadata', or 'none'. Defaults to 'auto'.
Returns:
Node:


species range climate distribution change koreana habitat suitability Karsenia Korean suitable {border-style px;} #ffffff;} current RCP area areas Bio Climate salamanders plethodontid variables potential used Korea Nature ecological future known model presence using Kim Biol Maxent amphibian amphibians increase models populations salamander scenarios shift Ecol IUCN Wake analysis data global modelling px; spatial {font-family ./j.-...x Change RCPs based breeding distributions environmental factors font-size loss predicted shifts (Fig. ./s--- BIO Ecological Herpetol bioclimatic conservation double; ecology endangered higher indicate projections results species, species’ variations (reviewed American Borzée Figure Jang National North Science Vol. [], border-color border-width high impact important jackknife koreana, koreana. large likely new observed prediction projected response result resulting size solid; use water {font-style {font-weight (Table (precipitation -percentile ./journal.pone. Amphibians Asian Batrachochytrium Biological Commons Creative Dryophytes Ecology However, Kim, Modelling Panel Park Peterman Press, Republic Research SDMs Sci South Spatial Table behaviour body bold change, changes courier; described em; habitats highest impacts included instance, land landscape larval lungless month), morphology natural niche occurrence points potentially pt;} ranges relationships resulted temperature training


UK PM Johnson's Conservatives extend lead over Labour: ICM poll
LONDON (Reuters) - British Prime Minister Boris Johnson’s Conservative Party has extended its lead over the opposition Labour Party during the past week, an opinion poll by ICM for Reuters showed on Monday, ahead of a Dec. 12 election.
Support for the Conservatives rose three points to 42% while the Labour Party was up one point at 32%.
The pro-European Union Liberal Democrats fell two points to 13% and the Brexit Party was down 3 points at 5%.
ICM surveyed 2,010 people online between Nov. 15 and 18.
The poll did not show the Brexit Party as an option to respondents if they lived in areas where the party will not field a candidate.


Here you can trade the FIXED token we discuss during our course. The Solidity Contract is not limited to a single token and new tokens can be easily added.


3
1 While he was still a boy, Samuel was working at the shrine of Yahweh while Eli supervised him. At that time there were very few messages that anyone received from Yahweh, and very few people saw visions that Yahweh gave them.
2 By that time Eli's eyes were very weak; he was almost blind. One night he was sleeping in his room,
3 and Samuel was sleeping in the shrine, where the sacred chest was kept. While the sacred lamp was still burning,
4 Yahweh called, "Samuel! Samuel!" Samuel replied, "I am here!"
5 Then he got up and ran to Eli. He said to him, "I am here, because you called me!" But Eli replied, "No, I did not call you. Go back to your bed." So Samuel went and lay down again.
6 Then Yahweh called again, "Samuel!" So Samuel got up again and went to Eli and said, "I am here, because you called me!" But Eli said, "No, my son, I did not call you. Go back and lie down."
7 At that time Samuel had not yet known what it was like for Yahweh to speak to him, because Yahweh had not previously revealed anything to him.
8 After Samuel lay down again, Yahweh called him a third time. So again Samuel got up and went to Eli and said, "I am here, because you called me!"
Then Eli realized that it was Yahweh who was calling the boy.
9 So he said to Samuel, "Go and lie down again. If someone calls you again, say 'Speak to me, Yahweh, because I am listening!'~" So Samuel went and lay down again.
10 Then Yahweh came and stood and called as he had done the other times, "Samuel! Samuel!" Then Samuel said, "Speak to me, because I am listening!"
11 Then Yahweh said to Samuel, "Listen carefully. I am about to do something here in Israel that will shock everyone who hears about it.
12 When that happens, I will punish Eli and his family. I will do to them everything that I said that I would do.
13 His sons have shown great disrespect for me by the disgraceful things they have done, and Eli did not keep them back from doing it. So I told him that I would punish his family forever.
14 I solemnly promised to Eli's family, 'You will never be able to avoid the consequences for your sin, even if you give me sacrifices or offerings.'~"
15 Samuel lay down again until morning. Then he got up and opened the doors of the building as usual. He was afraid to tell Eli about the vision that Yahweh had given him.
16 But Eli called him and said, "Samuel, my son!" Samuel answered, "I am here!"
17 Eli asked him, "What was it that Yahweh told you? Do not conceal it!
18 So Samuel told him everything. He did not refuse to tell him anything. Then Eli said, "He is Yahweh. I am willing for him to do what he thinks is best."
19 As Samuel grew up, Yahweh helped him; he made everything that Samuel predicted to come true.
20 So all the people of Israel, from the northern end of the country to the southern end, realized that Samuel was truly a prophet of Yahweh.
21 Yahweh continued to appear to Samuel in Shiloh and give messages to him.


EUR/USD: Focus on new ECB President Lagarde's first policy speech
by Omkar Godbole- EUR/USD looks heavy with the weekly candle showing buyer exhaustion.
- ECB's Lagarde is unlikely to talk dovish in her first major policy speech.
- The focus is also on the preliminary Eurozone and Germany PMI numbers.
EUR/USD is looking heavy as per technical studies and may drop sharply if the new European Central Bank President Christine Lagarde sounds dovish in her first policy speech.
The pair is currently trading at 1.1063, representing a 0.12% gain on a week-to-date basis, having hit a high of 1.1097 on Thursday. The long upper wick attached to the weekly candle indicates buyer exhaustion. Therefore, the pair appears on track to pierce support at 1.1052. That will likely invite stronger selling pressure, as discussed in the Asian session.
Lagarde speech due at 08:30 GMT
The new ECB President will be delivering her first big policy speech at a banking conference in Frankfurt, having refrained from commenting on the monetary policy during her Nov. 4 speech in Berlin.
Dovish comments will likely drive EUR/USD to 1.10, according to Kathy Lien, Managing Director Of FX Strategy For BK Asset Management. The EUR will likely invalidate the immediate bearish set up with a convincing move above 1.11 if Lagarde sounds optimistic about the economy and calls for more effort on the fiscal front.
Recent reports have a very deep and wide rift within the ECB. Many board members had opposed former President Draghi's decision to announce a fresh stimulus in September. Therefore, Lagarde has little room to raise hopes for more stimulus. Further, Germany avoided recession in the third quarter.
All-in-all, the probability of Lagarde sounding neutral-to-hawkish is high. The resulting gains in the EUR, however, could be erased if the preliminary Eurozone and German PMI, scheduled for release after Lagarde's speech, disappoint expectations. The final reading for Germany's third-quarter GDP, due at 07:00 GMT, is unlikely to move the pair.
Technical levels
EUR/USD
| Overview | |
|---|---|
| Today last price | 1.1063 |
| Today Daily Change | 0.0006 |
| Today Daily Change % | 0.05 |
| Today daily open | 1.1057 |
| Trends | |
|---|---|
| Daily SMA20 | 1.1075 |
| Daily SMA50 | 1.1044 |
| Daily SMA100 | 1.1089 |
| Daily SMA200 | 1.1175 |
| Levels | |
|---|---|
| Previous Daily High | 1.1098 |
| Previous Daily Low | 1.1052 |
| Previous Weekly High | 1.1058 |
| Previous Weekly Low | 1.0989 |
| Previous Monthly High | 1.118 |
| Previous Monthly Low | 1.0879 |
| Daily Fibonacci 38.2% | 1.1069 |
| Daily Fibonacci 61.8% | 1.108 |
| Daily Pivot Point S1 | 1.104 |
| Daily Pivot Point S2 | 1.1023 |
| Daily Pivot Point S3 | 1.0995 |
| Daily Pivot Point R1 | 1.1086 |
| Daily Pivot Point R2 | 1.1114 |
| Daily Pivot Point R3 | 1.1131 |


Asteroids
The Asteroids example demonstrates how Tcl code is embedded in Common Lisp.
Common Lisp Package Viewer
The Common Lisp Package Viewer shows how to use the basic functionalily of clTcl.
Fourier Series Demo
The Fourier series example demonstrates graphics. It uses PlotChart to display harmonics of the Fourier series.
You need PlotChart. The binaries from the installation page have PlotChart already in them.
ASDF Viewer
The ASDF viewer is a more elaborate example. Shows various ways to call Tcl/Tk or post events and handle errors.
Only works for SBCL and LispWorks but porting to other Lisps with multiprocessing capabilities should not be difficult.


Johnson's Brexit fight and NHS waiting times 'cover up' lead the papers
The future of Brexit and last-ditch voting drives for the leaders of the major parties dominate the front pages of most of the nation’s newspapers to kick-off election week.
The Daily Mail and The Daily Telegraph lead off with Boris Johnson’s rallying cry to Leave voters ahead of Thursday’s election.
Sorry, this content isn't available on your device.
Sorry, this content isn't available on your device.
In the Daily Express, Mr Johnson warns that the fate of Brexit is on the line.
Sorry, this content isn't available on your device.
The Guardian and The Times have focused on both leaders’ last-ditch efforts to drum up votes.
Sorry, this content isn't available on your device.
Sorry, this content isn't available on your device.
Meanwhile The Independent leads with the Royal College of Physicians’ slamming both parties’ NHS promises as “undeliverable”.
Sorry, this content isn't available on your device.
Staying on the NHS, the i leads with accusations that NHS England has used misleading and flawed data to misrepresent patient waiting times.
Sorry, this content isn't available on your device.
The Daily Mirror reports on a four-year-old boy who had to be treated for suspected pneumonia on the hospital floor due to a lack of beds.
Sorry, this content isn't available on your device.
Leading the Financial Times is a story on Mr Johnson’s plans for a points-based immigration system and a tale on Beijing calling on the Chinese public sector to remove foreign computer equipment and software.
Sorry, this content isn't available on your device.

Sorry, this content isn't available on your device.
And the Daily Star has led with controversy for the BBC’s new streaming service.
Sorry, this content isn't available on your device.


See: Description
| Interface | Description |
|---|---|
| Json | |
| PgClient |
Defines the client operations with a Postgres Database.
|
| PgConnection |
A connection to Postgres.
|
| PgCursor |
A cursor that reads progressively the rows from Postgres, it is usefull for reading very large result.
|
| PgIterator<T> |
An iterator for processing postgres items synchronously.
|
| PgPool |
A pool of connection.
|
| PgPreparedQuery |
A prepared query.
|
| PgResult<T> |
Represents the result of an operation on database.
|
| PgStream<T> | |
| PgTransaction |
A transaction that allows to control the transaction and receive events.
|
| Row | |
| Tuple |
A general purpose tuple.
|
| Class | Description |
|---|---|
| Numeric |
The Postgres NUMERIC type.
|
| PgConnectOptions | |
| PgConnectOptionsConverter |
Converter for
PgConnectOptions . |
| PgNotification |
A notification emited by Postgres.
|
| PgNotificationConverter |
Converter for
PgNotification . |
| PgPoolOptions |
The options for configuring a connection pool.
|
| PgPoolOptionsConverter |
Converter for
PgPoolOptions . |
| Exception | Description |
|---|---|
| PgException |
examples.Examples#gettingStarted()
----
== Connecting to Postgres
Most of the time you will use a pool to connect to Postgres:
[source,$lang]
----
examples.Examples#connecting01
----
The pooled client uses a connection pool and any operation will borrow a connection from the pool
to execute the operation and release it to the pool.
If you are running with Vert.x you can pass it your Vertx instance:
[source,$lang]
----
examples.Examples#connecting02
----
You need to release the pool when you don't need it anymore:
[source,$lang]
----
examples.Examples#connecting03
----
When you need to execute several operations on the same connection, you need to use a client
connection
.
You can easily get one from the pool:
[source,$lang]
----
examples.Examples#connecting04
----
Once you are done with the connection you must close it to release it to the pool, so it can be reused.
Sometimes you want to improve performance via Unix domain socket connection, we achieve this with Vert.x Native transports.
Make sure you have added the required `netty-transport-native` dependency in your classpath and enabled the Unix domain socket option.
[source,$lang]
----
examples.Examples#connecting06
----
More information can be found in the https://vertx.io/docs/vertx-core/java/#_native_transports[Vert.x documentation].
== Configuration
There are several options for you to configure the client.
Apart from configuring with a `PgPoolOptions` data object, We also provide you an alternative way to connect when you want to configure with a connection URI:
[source,$lang]
----
examples.Examples#configureFromUri(io.vertx.core.Vertx)
----
More information about connection string formats can be found in the https://www.postgresql.org/docs/9.6/static/libpq-connect.html#LIBPQ-CONNSTRING[PostgreSQL Manuals].
You can also use environment variables to set default connection setting values, this is useful
when you want to avoid hard-coding database connection information. You can refer to the https://www.postgresql.org/docs/9.6/static/libpq-envars.html[official documentation]
for more details. The following parameters are supported:
* `PGHOST`
* `PGHOSTADDR`
* `PGPORT`
* `PGDATABASE`
* `PGUSER`
* `PGPASSWORD`
If you don't specify a data object or a connection URI string to connect, environment variables will take precedence over them.
----
$ PGUSER=user \
PGHOST=the-host \
PGPASSWORD=secret \
PGDATABASE=the-db \
PGPORT=5432
----
[source,$lang]
----
examples.Examples#configureFromEnv(io.vertx.core.Vertx)
----
== Running queries
When you don't need a transaction or run single queries, you can run queries directly on the pool; the pool
will use one of its connection to run the query and return the result to you.
Here is how to run simple queries:
[source,$lang]
----
examples.Examples#queries01(io.reactiverse.pgclient.PgClient)
----
You can do the same with prepared queries.
The SQL string can refer to parameters by position, using `$1`, `$2`, etc…
[source,$lang]
----
examples.Examples#queries02(io.reactiverse.pgclient.PgClient)
----
Query methods provides an asynchronous PgResult
instance that works for _SELECT_ queries
[source,$lang]
----
examples.Examples#queries03(io.reactiverse.pgclient.PgClient)
----
or _UPDATE_/_INSERT_ queries:
[source,$lang]
----
examples.Examples#queries04(io.reactiverse.pgclient.PgClient)
----
The Row
gives you access to your data by index
[source,$lang]
----
examples.Examples#queries05(Row)
----
or by name
[source,$lang]
----
examples.Examples#queries06(Row)
----
You can access a wide variety of of types
[source,$lang]
----
examples.Examples#queries07(Row)
----
You can execute prepared batch
[source,$lang]
----
examples.Examples#queries08(io.reactiverse.pgclient.PgClient)
----
You can cache prepared queries:
[source,$lang]
----
examples.Examples#queries09(io.vertx.core.Vertx, PgPoolOptions)
----
== Using connections
When you need to execute sequential queries (without a transaction), you can create a new connection
or borrow one from the pool:
[source,$lang]
----
examples.Examples#usingConnections01(io.vertx.core.Vertx, io.reactiverse.pgclient.PgPool)
----
Prepared queries can be created:
[source,$lang]
----
examples.Examples#usingConnections02(io.reactiverse.pgclient.PgConnection)
----
NOTE: prepared query caching depends on the PgConnectOptions.setCachePreparedStatements(boolean)
and
does not depend on whether you are creating prepared queries or use direct prepared queries
By default prepared query executions fetch all results, you can use a PgCursor
to control the amount of rows you want to read:
[source,$lang]
----
examples.Examples#usingConnections03(io.reactiverse.pgclient.PgConnection)
----
Cursors shall be closed when they are released prematurely:
[source,$lang]
----
examples.Examples#usingConnections04(io.reactiverse.pgclient.PgConnection)
----
A stream API is also available for cursors, which can be more convenient, specially with the Rxified version.
[source,$lang]
----
examples.Examples#usingConnections05(io.reactiverse.pgclient.PgConnection)
----
The stream read the rows by batch of `50` and stream them, when the rows have been passed to the handler,
a new batch of `50` is read and so on.
The stream can be resumed or paused, the loaded rows will remain in memory until they are delivered and the cursor
will stop iterating.
PgPreparedQuery
can perform efficient batching:
[source,$lang]
----
examples.Examples#usingConnections06(io.reactiverse.pgclient.PgConnection)
----
== Using transactions
You can execute transaction using SQL `BEGIN`/`COMMIT`/`ROLLBACK`, if you do so you must use
a PgConnection
and manage it yourself.
Or you can use the transaction API of PgConnection
:
[source,$lang]
----
examples.Examples#transaction01(io.reactiverse.pgclient.PgPool)
----
When Postgres reports the current transaction is failed (e.g the infamous _current transaction is aborted, commands ignored until
end of transaction block_), the transaction is rollbacked and the PgTransaction.abortHandler(io.vertx.core.Handler)
is called:
[source,$lang]
----
examples.Examples#transaction02(io.reactiverse.pgclient.PgPool)
----
== Postgres type mapping
=== Handling JSON
The Json
Java type is used to represent the Postgres `JSON` and `JSONB` type.
The main reason of this type is handling null
JSON values.
[source,$lang]
----
examples.Examples#jsonExample()
----
=== Handling NUMERIC
The Numeric
Java type is used to represent the Postgres `NUMERIC` type.
[source,$lang]
----
examples.Examples#numericExample(Row)
----
=== Handling arrays
You can map java arrays to Postgres arrays.
[source,$lang]
----
examples.Examples#stringArrayExample(io.reactiverse.pgclient.Row)
----
Primitive arrays are used whenever possible.
[source,$lang]
----
examples.Examples#intArrayExample(io.reactiverse.pgclient.Row)
----
== Pub/sub
Postgres supports pub/sub communication channels.
You can set a PgConnection.notificationHandler(io.vertx.core.Handler)
to receive
Postgres notifications:
[source,$lang]
----
examples.Examples#pubsub01(io.reactiverse.pgclient.PgConnection)
----
The PgSubscriber
is a channel manager managing a single connection that
provides per channel subscription:
[source,$lang]
----
examples.Examples#pubsub02(io.vertx.core.Vertx)
----
You can provide a reconnect policy as a function that takes the number of `retries` as argument and returns an `amountOfTime`
value:
* when `amountOfTime < 0`: the subscriber is closed and there is no retry
* when `amountOfTime == 0`: the subscriber retries to connect immediately
* when `amountOfTime > 0`: the subscriber retries after `amountOfTime` milliseconds
[source,$lang]
----
examples.Examples#pubsub03(io.vertx.core.Vertx)
----
The default policy is to not reconnect.
== Using SSL/TLS
To configure the client to use SSL connection, you can configure the PgConnectOptions
like a Vert.x NetClient
.
[source,$lang]
----
examples.Examples#ex10
----
More information can be found in the http://vertx.io/docs/vertx-core/java/#ssl[Vert.x documentation].
== Using a proxy
You can also configure the client to use an HTTP/1.x CONNECT, SOCKS4a or SOCKS5 proxy.
More information can be found in the http://vertx.io/docs/vertx-core/java/#_using_a_proxy_for_client_connections[Vert.x documentation].Copyright © 2018 Eclipse. All rights reserved.


This documentation relates to Opera's now deprecated .oex Extension API framework for Opera versions <= 12.15 and also provided by our OEX2NEX shim library.
For the latest Opera Extensions API documentation for Opera versions > 12.15 please consult the latest Opera Extensions API documentation online.
Registers a listener for an event specific to the injected script side. The listener needs to use the standard EventListener
interface - a function with an Event
object as its first argment, e.g. var myListener = function(event) {alert(event.type)};
type
: The type of event to listen to; see the list of event types below.listener
: The function that will be called.useCapture
: Boolean. If true, the event listener is only added for the capture phase and target.void addEventListener (<DOMString> type, <EventListener> listener, useCapture)
opera.addEventListener('BeforeScript', function(userJSEvent) {
userJSEvent.element.text = userJSEvent.element.text.replace(/function\s+window\.onload\(/g, 'window.onload = function(');
}, false);
Fired when a script
element with a src
attribute is encountered. The script
element is available in the element
attribute of the UserJSEvent
. If cancelled, the external source is not loaded and the script
element is not executed. In addition, if it is cancelled, the BeforeScript
event will not fire.
Fired before a script
element is executed. The script
element is available in the element
attribute of the UserJSEvent
. The content of the script is available in the text
property of the script
element, and is also writable:
UserJSEvent.element.text = UserJSEvent.element.text.replace(/!=\s*null/,'');The
BeforeScript
event is fired for inline scripts as well as external scripts, including scripts with a type that Opera normally does not execute (such as VBScript). If cancelled, the script
element is not executed.
Fired after a script
element has finished executing. The script
element is available in the element
attribute of the UserJSEvent
. Modifying the text
property of the event object has no effect, unlike the BeforeScript
event.
Fired before a regular event is fired, regardless of whether or not an event handler has been registered for that event. The regular event is available in the event
attribute of the UserJSEvent
. If cancelled, the regular event is not fired, its default action is performed, and any associated BeforeEventListener
events are not fired.
Like BeforeEvent
, but fired only for events of the specified type (e.g., BeforeEvent.click
). As shown by the example, the {type} needs to be substituted for the type of event you want to listen for. See the Event handlers on elements, Document objects, and Window objects of the HTML5 specificaton for a complete list of events. Note: at present, not all event types are supported.
Fired after a regular event has been fired and handled but before its default action has been performed. The regular event is available in the event
attribute of the UserJSEvent
. If cancelled, any attempts by a regular event handler to cancel the regular event will be ignored. The UserJSEvent
object will also have a eventCancelled
property, which will be set to true
if any regular event handlers have cancelled the event.
Like AfterEvent
, but fired only for events of the specified type (e.g., AfterEvent.click
).
As shown by the example, the {type} needs to be substituted for the type of event you want to listen for. See the
Event handlers on elements, Document objects, and Window objects of the HTML5 specificaton for a complete list of events
you can listen for. Note: at present, not all event types are supported.
Fired before a listener for a regular event is called. The regular event is available in the event
attribute of the UserJSEvent
, and its regular listener is available in the listener
attribute of the UserJSEvent
. If cancelled, the regular event listener will not be called.
Like BeforeEventListener
, but fired only for events of the specified type (for example, BeforeEventListener.click
).
Fired after a listener
for regular events is called. The UserJSEvent
object contains references to the original event
and listener
that were defined on the page. If cancelled, any attempts by a regular event handler to cancel the regular event propagation will be ignored. The UserJSEvent
object will also have the propagationStopped
property, which will be set to true
if any regular event handlers have cancelled the event propagation.
Like AfterEventListener
, but fired only for events of the specified type (for example, AfterEventListener.click
). As shown by the example, the {type} needs to be substituted for the type of event you want to listen for. See the Event handlers on elements, Document objects, and Window objects of the HTML5 specificaton for a complete list of events. Note: At present, not all event types are supported.
Fired before a javascript:
URL is executed. The JavaScript code to be executed (everything after the javascript:
in the URL) is available in the source
attribute of the UserJSEvent
, and is also writable. If cancelled, the javascript:
URL is not executed.
Fired after a javascript:
URL is executed. The JavaScript code that was executed (everything after the javascript:
in the URL) is available in the source
attribute of the UserJSEvent
, and any value returned by that code is available in the returnValue
attribute of the UserJSEvent
. The returnValue
is also writable. If cancelled, any returned value will not be used as the source of a new page.
Fired after a plug-in instance has been initialized. The element which represents the plug-in instance is available in the element
attribute of the UserJSEvent
.


Adrian Peterson throws Bills defender to ground with brutal stiff-arm (Video)
by TSD StaffRedskins veteran running back Adrian Peterson may currently be 34 years old, but he still has some gas left in his tank, as he’s shown this season.
Not only that, he’s still strong enough to impose his will physically on his opponents.
Peterson showed that during Sunday’s game against the Bills, even going up against the stout Buffalo defense. He received a handoff on one particular play in the game, but was immediately met in the backfield by Bills cornerback Levi Wallace.
No problem, though, as AP used a stiff-arm to throw the poor guy to the ground, then just kept running.
AP is still one strong fellow.


Hello! my name is Annette my goal with Coding is to be a web developer and create various websites for individuals and companies in the upcoming future. I am very determined and passionate about my work and will strive to get any work done in time especially when under pressure. I'm very easy to communicate with and will take the time to understand the clients needs and wants for their website.


Toggle Navigation
Nothing To See Here
Go!
Link
(current)
Link 2
Dropdown
Action 1.1
Action 1.2
Action 1.3
Action 2.1
Action 3.1
Action 3.2
First Slide!
This is about the first slide
Second Slide!
This is about the second slide
Third Slide!
This is about the Third slide
Previous
Next
Column One
Column Two
Column Three
©2016 Something Else


Politico
Login
Register Now to Get Started
Full Name
firstname lastname othername(s)
Phone Number
Email
Password
Confirm Password
Upload Passport
Already have an acount?
Login
instead.


Nigerian Newspapers: Top 10 Headlines Today Thursday, Nov. 21st, 2019
by Donatus AnichukwuezeGood day, and welcome to the Concise News roundup of the top 10 Nigerian newspapers headlines for today Thursday, November 21st, 2019.
1. Sex Tape: Babcock University Releases Statement, Reveals Where Act Took Place
Babcock University, Ilishan-Remo, Ogun State, has described a viral sex tape of ex-students as a “sad commentary on the moral decadence that has assailed our society at large”. It added that it is a manner of behaviour that is alien and unethical to the values of the University.
2. Buhari Signs Executive Order To End Open Defecation By 2025
President Muhammadu Buhari on Wednesday signed Executive Order 009 to end open defecation in the country by 2025. The new order states, among others, “That by this Order, Nigeria is committed to being open defecation-free by 2025.”
3. What President Buhari Told Jonathan On 62nd Birthday
President Muhammadu Buhari has congratulated former President Goodluck Jonathan on the occasion of his 62nd birthday. In a special birthday message to his predecessor on Wednesday, President Buhari said Jonathan’s humility will continue to resonate and inspire and inspire generations of Nigerians.
4. Why I’m Ready To Die, Obasanjo Speaks
Former President Olusegun Obasanjo said the fear of death cannot stop him from airing his opinions on national issues whenever there is a need to do so. Obasanjo said that as an elder statesman in Nigeria and Africa as a whole, his concern over the years is to build leaders of the continent.
5. Social Media Bill Passes Second Reading At Senate
The Nigerian Senate has read for the second time a bill seeking to regulate social media. The bill entitled, ‘Protection from Internet Falsehood and Manipulation 2019’, passed second reading after Sani Musa, senator representing Niger east and its sponsor, moved a motion for a debate on the proposed law.
6. Commissioner Reveals Reason Behind Current Heavy Traffic Across Lagos
The Commissioner for Information in Lagos, Gbenga Omotoso, says the traffic situation in the state is being worsened by the ongoing repair of roads. The recent gridlock across the state has left residents complaining about the man-hour loss on the road.
7. Kogi Election Violence: Melaye Presents 21 Video Evidence At INEC Office
Senator Dino Melaye was at the headquarters of the Independent National Electoral Commission (INEC) on Wednesday in Abuja to demand the cancellation of the Kogi West Senatorial election. It was learned that Melaye was received by INEC Secretary, Rose Orianran-Anthony, and National Commissioner and Chairman of its Information and Voter Education Committee, Festus Okoye.
8. Kaduna: Gov. El-Rufai Makes New Appointments (See Full List)
The Kaduna State Governor Nasir El-Rufai has made some new appointments on Wednesday. Concise News understands that El-Rufai approved eight appointments and in a statement signed by his Senior Special Assistant and Kaduna State focal person for Social Investments, the appointment is with immediate effect.
9. Sagay Confirms Arrest Of Ex-AGF, Adoke In Dubai
The Chairman, Presidential Advisory Committee against Corruption, Prof. Itse Sagay, on Tuesday confirmed the arrest of former Attorney-General of the Federation and Minister of Justice, Mohammed Adoke in Dubai. He was said to have confirmed Adoke’s arrest during a visit to the headquarters of the Economic and Financial Crimes Commission (EFCC).
10. What Sports Minister Says About Rohr’s Contract With Super Eagles
The Minister of Youth and Sports Development, Sunday Dare says the issue of contract extension for Super Eagles coach, Gernot Rohr lies with the Nigeria Football Federation (NFF). Concise News reports that the minister gave the clarification on Wednesday in Abuja at a brief meeting with Rohr before dashing for the weekly Federal Executive Council (FEC) meeting at the presidential villa.
That’s the roundup of the top 10 Nigerian newspapers headlines this morning. More Nigerian newspapers headlines are available on Concise News website.


This diagnostic will test the heating and cooling performance of your Open qPCR's heat block, as well as its lid heater.
Before continuing, remove all tubes from your Open qPCR, and ensure the lid is closed.


Toggle navigation
Kuehne+Nagel Logistics Grid
John Smith
Yesterday
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...
Task 1
40% Complete
40% Complete (success)
See All Tasks
New Comment
4 minutes ago
User Profile
Settings
Logout
Welcome to KN Grid Log
Carrier Dashboard
Carrier Dashboard
New Orders Available!

Delivery date
Quantity
Your rank
Your price
Bid!
×
Order Details
Order Number
Pickup Location
Pickup Date
Delivery Location
Delivery Date
Quantity
Open Auctions Chart


After the release of Real Farm, two more DLCs were released. These DLC packs included a new map, new types of crops and several new vehicles. It was my responsibility to assist the artists with implementing this new content.
Real Farm is a game that I worked on during my internship at Triangle Studios. Components that I created for this game include:
Economic simulation of a stock market.
Weather simulation.
Traffic simulation.
World- and minimap.
I also assisted another programmer with creating builds for the Playstation 4. After the release of the game I was made responsible for delivering a new patch each week with several bug fixes.
Together with a Pixel Artist and Music Composer I've created a dynamic
Playstation 4 Theme for Snap Finger Click, a UK based game studio. My
job was to put everything that was delivered to me together into a fully
functional dynamic Playstation 4 theme.
During my minor at the NHL Hogeschool I created a MOBA cosisting of one single lane. I did this in Unity
together with two other students who had never worked with Unity before.
The things that I created include:
All 3D-models (besides the tower and the keep).
Everything that had to do with online multiplayer including a server written
in JavaScript using Node.js and JSON.
A Bombcart that the players can push to destroy the enemy's buildings.
A WordArt like drawing program made with C#. This program is made by using multiple design
patterns. The design patterns that are used for this program are:
Command Pattern; for unlimited undo and redo functionality.
Composite Pattern; to put multiple figures into the same group.
Visitor Pattern; for replacing, resizing and saving data.
Strategy Pattern and
Singleton Pattern; for drawing the figures.
A promotional game with an Easter theme which I created during my internship at 8D-Games.
The game was created with C# in the Unity3D engine.
I created this game together with another intern who created all the sprites for the game.
And I was responsible for all the technical aspects of it.
It's a Bejeweled like puzzle game where the user has to swap objects with adjacent objects to
create chains of three or more of the same object. When the timer reaches zero the user is
game over and can send his score and email address to a database.
A promotional game for the Dutch holiday Sinterklaas which I created during my internship at
8D-Games.
The game was created with the Phaser Framework in JavaScript.
I created this game together with another intern who created all the sprites for the game.
And I was responsible for all the technical aspects of it.
It's a Zuma like puzzle game where the user has to shoot colored presents at a moving line
of presents to create matches of three or more of the same color. When the presents reach
the water the user is game over and can send his score and email address to a database.
A Serious Game in which elderly people can practice their balance and prevent injuries, by
playing a game about ice skating in combination with Microsoft's Kinect.
I got to create an update tool for the game during my internship at 8D-Games. It will
automatically check for updates when the user starts the game. And give the user the option
to download the latest version.
To bring more variety to the game I also created the possibility to place markers on the
tiles that the game consists of. For each marker the developer can select multiple objects
that can spawn at those locations and also set their direction. This feature gives the user
always another experience when they play the game.
For a project during my second year at the NHL Hogeschool we created a simulation of
the port of Rotterdam, together with five other students.
The project consisted of a 3D simulation and a server that would send XML data to the
simulator.
My main tasks consisted of:
Placement of all 3D models in the simulation.
Creating fully functional cranes
Filling and emptying of the boats.
Filling and emptying of the trains.
First in, first out(FIFO) filling and emptying of the storage.
During my first year of Software Engineering at the NHL Hogeschool we had to program an
application in C# that makes use of Backtracking.
I decided to create an application that can solve Sudoku puzzles.


RDF Patch is a file format for recording changes made to an RDF dataset. It can be used for replicating changes between multiple copies of the same dataset or as an incremental backups format.
RDF Patch is a file format for recording changes made to an RDF dataset. It can be used for replicating changes between multiple copies of the same dataset or as an incremental backups format.
The design emphasizes deployment concerns such as scalability and efficient processing.
This section outlines some use cases for RDF patch.
The HTTP PATCH method, introduced in RFC 5789 (March 2010), is for modification of a web resource by sending a description of the changes to the resource. Changes are limited to that resource.
SPARQL Update may not be suitable and follows a service oriented model of operation. A more focused and light weight solution is given by RDF Patch. For example, where the web resource is an RDF graph, not an RDF dataset.
No new web resources can be created by RDF patch. Data can only be added and removed from an existing graph or dataset.
With a large dataset, a full backups can take a significant amount of time and space; if taken on a live, then it may introduce significant load. By keeping an RDF Patch file to record changes, there is an incremental backup that can be applied to the last full backup. Such a record can be much smaller, and not a significant load on the system during peak times.
By taking periodic full backups and recording changes as an RDF Patch as incremental backups between the full backup points, an up-to-date version of the data can be restored, including the latest changes.
Suppose an SPARQL server is replicated for performance or resilience reasons. Each server has a complete copy of the database. While there are many other issues to consider, one aspect is to be able to update both databases in a consistent manner - that is, blank nodes within the dataset are treated identically.
One deployment architecture is to have a master database for staging the data which is not available to the public/application-facing publication servers. The master database is updated, then the changes propagated to replicas that support the public/application-facing read-only workload. The staging database may be subject to checking and validation of changes before release to the production publishing servers. In order to keep the production servers exactly as the master database, an RDF Patch file can be used because it allows blank nodes to be replicated.
This examples delta adds a foaf:knows relationship, and changes the foaf:name triple for Bob.
A <http://example.org/bob> <http://xmlns.com/foaf/0.1/name> "Robert" . A <http://example.org/bob> <http://xmlns.com/foaf/0.1/knows> <http://example/alice> . A <http://example.org/alice> <http://xmlns.com/foaf/0.1/name> "Alice" . D <http://example.org/bob> <http://xmlns.com/foaf/0.1/name> "Robert" . A <http://example.org/bob> <http://xmlns.com/foaf/0.1/name> "Bob" .
In RDF patch, the first column is the operation marker. A means "add" and D means "delete".
The order in the file is significant - the changes happened in the order given so the first triple added with "Robert" as Bob's name is removed by the later delete when the name is changed from "Robert" to "Bob".
An RDF Dataset is defined as a a set of a unnamed graph and zero or more named graphs. For recording changes to these graphs, we record triples added or deleted to the default graph, and the quad for a named graph. The "RDF Patch" format is based on a general format for "RDF tuples", which is not another serialization format for RDF or RDF Datasets.
The format is rows of RDF terms (URIs, literals, bNodes), with each row ending in a "." (DOT). Prefix names, SPARQL-styles variables and keywords (bare word without a ":" in them) are allowed.
Variables are not used by RDF Patch but other uses of RDF Tuples may define their use.
# starts a comment and it runs until the end of line. Note that RDF Tuple rows are delimited by DOT and may have white space between the RDF terms, including newlines.
RDF Tuples uses the following keywords:
| Keyword | Meaning |
|---|---|
| R | Repeat term from previous row |
| U | Term undefined (not used by RDF Tuples) |
RDF Patch puts a keyword in the first item of each row:
| Keyword | Meaning |
|---|---|
| A | Add |
| D | Delete |
This is followed by 3 or 4 RDF terms; 3 for a triple, 4 for a quad.
Using RDF Tuples, RDF Patch, has the following characteristics:
To remove repetition, the value of an element in a row can be the keyword R, meaning it is the same as the previous row. It is an error if there is no such row. This means repeated subjects, predicates or objects of changes do not need to re-output for each quad. This may allow significant compression at very low CPU-cost. General compression, like gzip streams, may still be usefully applied.
If a element in a row is undefined in some row, a U is used to mark this (not used in RDF Patch)
Prefixed names are allowed (e.g. rdf:type) using Turtle style @prefix and expansion rules.
Relative URIs are not allowed. There is no @base.
@@Make formal
Outline grammar
This uses the grammar and tokens from RDF 1.1 Turtle and SPARQL 1.1.
White space is allowed between tokens and may be needed to distinguish tokens.
Comments are start with '#' and run to the end of the line.
Term = iri | BlankNode | literal RowItem = WORD | Term | VAR Row = RowItem* DOT WORD = PN_CHARS_BASE PN_LOCAL without allowing ':' # Must start with a letter. VAR = (from SPARQL)
@@Make formal
RDF patch uses RDF Tuples for triples or quads (N-Quad order). It requires the first item in a row to be a keyword (A or D).
After the first keyword RowItem, there are 3 or 4 RowItems which are either RDF Terms or the keyword R, for an RDF term repeated from the last use in this row position.
Blank node labels are treated as encoded internal system identifiers. System may refuse to perform changes if they do not recognize the label format.
RDF Patch does not allow VAR.
A <http://example/bob> <http://xmlns.com/foaf/0.1/name> "Bob" .
This is the same as:
@prefix foaf: <http://xmlns.com/foaf/0.1/> . A <http://example/bob> foaf:name "bob" .
A slightly longer change: To add multiple triples:
@prefix foaf: <http://xmlns.com/foaf/0.1/> . D <http://example/bob> foaf:name "bob" . A <http://example/bob> foaf:name "Bob" . A R foaf:knows <http://example/alice> . A R R <http://example/charlie> .
In the last row, we add a triple
<http://example/bob> <http://xmlns.com/foaf/0.1/knows> <http://example/charlie> .
The repeat marker can be used in any position and across adds and deletes
@prefix foaf: <http://xmlns.com/foaf/0.1/> . A <http://example/alice> foaf:knows <http://example/charlie> . A <http://example/bob> R R .
@prefix foaf: <http://xmlns.com/foaf/0.1/> . D <http://example/bob> foaf:name "Robert" . A R R "Bob" .
HTTP PATCH (RFC 578) introduced a mechanism for sending changes to a web resources. The SPARQL Graph Store Protocol mentions the use of HTTP Patch. RDF Patch is a suitable alternative to full SPARQL Update for the HTTP request body.
PATCH /resource HTTP/1.1 Host: example.org Content-Type: application/rdf-patch A <http://example.org/bob> <http://xmlns.com/foaf/0.1/name> "Robert" . A <http://example.org/bob> <http://xmlns.com/foaf/0.1/knows> <http://example/alice> . A <http://example.org/alice> <http://xmlns.com/foaf/0.1/name> "Alice" . D <http://example.org/bob> R "Robert" . A R R "Bob" .
Named graphs are changed by specifying quads
A <http://example/bob> foaf:name "Bob" <http://example/graphName> .
A further way in which the size of a diff file can be reduced is to only record changes that do have an effect of a change. An RDF Dataset is set of quads, no duplicates, so if a quad is added that is already in the dataset, then no record is needed as no effective change occurs. Similarly for deletes, if the quad does not exist, a delete action has no effect.
A RDF patch that only records actual changes is said to be a canonical patch.
However, testing before every insert or delete can be expensive or otherwise impractical and so this style is not required:
A <http://example/s> <http://example/p> <http://example/o> <http://example/g> . A <http://example/s> <http://example/p> <http://example/o> <http://example/g> .
Has the same effect as:
A <http://example/s> <http://example/p> <http://example/o> <http://example/g> .
If there was no such quad in the dataset before the delta started.
The quads don't need to be adjacent:
A <http://example/s> <http://example/p> <http://example/o> <http://example/g> . A <http://example/other> <http://example/p> 123 <http://example/g2> . A <http://example/s> <http://example/p> <http://example/o> <http://example/g> .
becomes
A <http://example/s> <http://example/p> <http://example/o> <http://example/g> . A <http://example/other> <http://example/p> 123 <http://example/g2> .
When written in canonical form the RDF Patch can be run backwards, to undo a change. This only works when real changes are recorded because otherwise knowing a triple is added does not mean it was not there before.
Both RDF-syntax-style (document scoped labels, new blank nodes created) and store-scoped (existing blank nodes) are needed. RDF provides skolemization as a mechanism to reference specific blank nodes when needed.
RDF Patch uses the special URI-like encoding <_:label> for directly identifying a blank node in a store.
This section contains working notes for the development of this document.
Simplicity of design leads to widespread adoption, which is important for the core use of managing chanage to RDF data. All features need to balance their utility for a partcular use case with the increase in complexity and implementation costs.
The grammar does not specific that tuples must be one per line. Long lines can be split. If there is no reason to require one tuple per line this is convenient even in a machine oriented format.
But there some advantages in a strictly one-line-erp-tuple format.
Bulk processing with command line text processing tools is also much simpler if one tuples per line is required.
Some features below require markers in the data stream so requiring them at the start-on-line is convenient.
Proposal: One tuple per line.
There are two metadata needs: linking and inline.
Linking can be achieved with an L (orLINK) record. However, the link may be unavailable or is subject to change after the patch is created.
See this discussion
Inline metadata is not subject to such changes. It is made a little more complicated because RDF-patch is not an RDF syntax (the handling of blank nodes is different).
Proposal: A single line of METADATA starts or stops a block of characters that is passed to a Turtle parser. Blank nodes are handled as per RDF; full Turtle readability idioms apply. The block must not contain the string METADATA at the start of line.
The RDF patch format can be used to record one set of related changes, a group of related changes or as a stream of changes. When used to record one set of relate changes, the changes should be applied atomically - they all happen or none of them happen.
@@ As part of a section in a more formal style, add the atomicity requirement.
We define atomicity as a "SHOULD" because we do not exclude the use of a data format just because of specific system sisues such as light-weight implementation or usages that do not need this feature.
While (ACID) transactions do give atomicity, they are not the only way and are apprropriate for large systems.
The requirement on the RDF Patch format is to have markers for the beginning and end of sections of changes.
Proposal: Add BEGIN and END to indicate a block of changes. A block should be applied atomically. This maybe a transaction - it depends on the nature of the destination.
The start of file is an implicit BEGIN and the end of file is an implicit END.
Error handling : from tweet
Need to define what happens when R does not align to the previous tuple (presumable an error - define recovery for stream use).
An alternative wire format for efficient processing.
(Need to quantify the gains, if any).
In addition to D operations on a single quad, have a "bulk delete", either as a different operation or as, for example, D <http://example/s> ANY ANY ANY ..
c.f. SPARQL DROP ALL and DELETE WHERE {...}.
The Internet Media Type / MIME Type for RDF Patch is "application/rdf-patch".
The character set RDF Patch is "UTF-8".
It is recommended that RDF Patch files have the extension ".rdfp" (all lowercase) on all platforms.
It is recommended that RDF Patch files stored on Macintosh HFS file systems be given a file type of "TEXT".


{% load i18n %}
{% trans "Do I need to know anything about websites or programming?" %}
{% blocktrans trimmed %} No! Workshops are for beginners. You don’t need to know anything about it. However, if you have a little bit of technical knowledge (i.e. you know what HTML or CSS are) you still can apply! {% endblocktrans %}
{% trans "I am not living in Germany, can I attend?" %}
{% blocktrans trimmed %} Of course! Workshops will be in English, so if you have no troubles with speaking and understanding English - you should apply. If you need financial aid to get to Berlin or you need assistance with booking flights or hotel in Berlin - let us know. We are willing to help you! {% endblocktrans %}
{% trans "Should I bring my own laptop?" %}
{% blocktrans trimmed %} Yes. We have no hardware, so we expect you to bring your computer with you. It is also important for us that you will take home everything you’ll write and create during workshops. {% endblocktrans %}
{% trans "Do I need to have something installed on my laptop?" %}
{% blocktrans trimmed %} It would be helpful to have Django installed before workshops, but wouldn't expect you to install anything on your own.We will make sure that one of our coaches will help you out with this task. {% endblocktrans %}
{% trans "Is EuroPython conference good for a total beginner?" %}
{% blocktrans trimmed %} As a workshop attendee you will get a free ticket to EuroPython - conference for Python programmers. Even though you are new to programming,conference is a good place to meet many interesting people in the industry and find inspiration. {% endblocktrans %}
{% trans "Is food provided?" %}
{% trans "Yes. Thanks to EuroPython, snacks and lunch will be served during workshops." %}


ELLIPSIS
DESIGN
COMMENTS
Thank's for visiting EllipsisDesign.com. How about you
Add
to our comment book...
Back to Ellipsis home
©2003 Ellipsis Design. All rights reserved


--- layout: archive title: Lean Prover Zulip Chat Archive permalink: archive/116395maths/47413hello.html ---
Welcome to #maffs.
Description: mathlib / maths
is this better?
No. I would have no idea what "maffs" means if I hadn't seen Sebastian question
it's a meme
Kenny, did you create it yourself?
yes
I thought only admins could do that
I vote you rename it to math
It's less specific than mathlib
I'm afraid I can't rename it
What about deleting it?
I can't do it either
From https://www.urbandictionary.com/define.php?term=Maffs it seems you need to have been a student in an English speaking country to understand this word
@Sebastian Ullrich Can you delete this stream?
I renamed it. Do tell me if you decide on a different name.
oh for god's sake
it's called maths :P
Okay okay, I'll trust the native speaker :P
I'm not a native speaker lol
Now we can bikeshed about maths vs math forever.
yes we can
maybe "math(s)"?
@Moses Schönfinkel will be happy
the nativer speaker...?
confirmed ™
The bikesheder
math(ε|s)
maths?
Although this whole chat sometimes gets frivolous, I think "maffs" is taking a bit too far. I don't care either way between maths (UK English) and math (US English) but either of them are infinitely preferable to the meme IMO.
long live meme
{% endraw %} {% include archive_update.html %}


Step 9 of test for Controllers, uses an EditStoreRefListController with holdModelUntilCommit: true
Select the Shipping Address to use.
New Address
New copy of selected.
Enter the Shipping Address
Address Name:
Full Name:
Address Line1:
Address Line2:
City:
State:
Zipcode:
Reset
Save
Verify the shipping address for:
%{this.value},


---
layout: page
title: "About"
description: "Xiangyu \"Borelset\" Zou"
header-img: "img/about-bg.jpg"
---
Research Interests
- Storage System / Data Deduplication
- Distributed System
- Lossy Compression
- Key/Value Store
Education Experience
Publications
- 2023
- Yanqi Pan, Yifeng Zhang, Wen Xia, Xiangyu Zou and Cai Deng.
"HUNTER: Releasing Persistent Memory Write Performance with A Novel PM-DRAM Collaboration Architecture",
in Proceedings of the 60th ACM/IEEE Design Automation Conference (DAC, CCF-A),
San Francisco, CA, USA, Jun. 2023.
- Wenkai Liang, Hao Hu, Xiangyu Zou, Wen Xia and Yanqi Pan.
"DRPTM: A Decoupled Read-efficient High-scalable Persistent Transactional Memory",
in Proceedings of the 60th ACM/IEEE Design Automation Conference (DAC, CCF-A),
San Francisco, CA, USA, Jun. 2023.
- Wen Xia, Lifeng Pu, Xiangyu Zou*, Philip Shilane, Shiyi Li, Haijun Zhang, and Xuan Wang.
"The Design of Fast and Lightweight Resemblance Detection for Efficient Post-Deduplication Delta Compression",
ACM Transactions on Storage (TOS, CCF-A), in press.
- Haoyu Jin, Donglei Wu, Shuyu Zhang, Xiangyu Zou, Sian Jin, Dingwen Tao, Qing Liao, and Wen Xia,
"Design of a Quantization-Based DNN Delta Compression Framework for Model Snapshots and Federated Learning",
IEEE Transactions on Parallel and Distributed Systems (TPDS, CCF-A),
vol. 34, no. 3, pp. 923-937, Jan. 2023.
- 2022
- Jingsong Yuan, Xiangyu Zou, Han Xu, Zhichao Cao, Shiyi Li, Wen Xia, Peng Wang and Li Chen,
"A Focused Garbage Collection Approach for Primary Deduplicated Storage with Low Memory Overhead",
in Proceedings of the 40th IEEE International Conference on Computer Design (ICCD, CCF-B),
Lake Tahoe, USA, Otc. 2022.
- Binzhaoshuo Wan, Lifeng Pu, Xiangyu Zou, Shiyi Li, Wen Xia and Peng Wang,
"SuperCDC: A Hybrid Design of High-performance Content-Defined Chunking for Fast Deduplication",
in Proceedings of the 40th IEEE International Conference on Computer Design (ICCD, CCF-B),
Lake Tahoe, USA, Otc. 2022.
- Xiangyu Zou, Wen Xia, Philip Shilane, Haijun Zhang and Xuan Wang,
"Building a High-performance Fine-grained Deduplication Framework for Backup Storage with High Deduplication Ratio",
in Proceedings of the 2022 USENIX Annual Technical Conference (USENIX ATC'22, CCF-A),
Carlsbad, CA, USA, Jul. 2022.
- Wen Xia, Can Wei, Zhenhua Li, Xuan Wang, and Xiangyu Zou,
"NetSync: a Network Adaptive and Deduplication-Inspired Delta Synchronization Approach for Cloud Storage Services",
IEEE Transactions on Parallel and Distributed Systems (TPDS, CCF-A),
vol. 33, no. 19, pp. 2554-2570, Oct. 2022.
- Xiangyu Zou, Jingsong Yuan, Philip Shilane, Wen Xia, Haijun Zhang, and Xuan Wang,
"From Hyper-Dimensional Structure to Linear Structure: Maintaining Deduplicated Data's Locality",
ACM Transactions on Storage (TOS, CCF-A),
vol. 18(3), no. 25, pp.1-28, Aug. 2022.
- Donglei Wu, Xiangyu Zou, Shuyu Zhang, Haoyu Jin, Wen Xia, and Binxing Fang
"SmartIdx: Reducing Communication Cost in Federated Learning by Exploiting the CNNs Structures"
in Proceedings of the 36th AAAI Conference on Artificial Intelligence (AAAI '22, CCF-A),
Vancouver, Canada, Feb. 2022.
- Cai Deng, Qi Chen, Xiangyu Zou, Eric Xu, Bo Tang and Wen Xia,
"imDedup: a Lossless Deduplication Scheme to Eliminate Fine-grained Redundancy among Images,"
in Proceedings of the 38th IEEE International Conference on Data Engineering (ICDE '22, CCF-A),
Kuala Lumpur, Malaysia, May. 2022.
- 2021
- Shuyu Zhang, Donglei Wu, Haoyu Jin, Xiangyu Zou, Wen Xia and Xiaojia Huang,
"QD-Compressor: a Quantization-based Delta Compression Framework for Deep Neural Networks,"
in Proceedings of the 39th IEEE International Conference on Computer Design (ICCD '21, CCF-B),
Oct. 2021.
- Zhenbo Hu, Xiangyu Zou, Wen Xia, Yuhong Zhao, Weizhe Zhang and Donglei Wu,
"Smart-DNN: Efficiently Reducing the Memory Requirements of Running Deep Neural Networks on Resource-constrained Platforms,"
in Proceedings of the 39th IEEE International Conference on Computer Design (ICCD '21, CCF-B),
Oct. 2021.
- Xiangyu Zou, Cai Deng, Wen Xia, Philip Shilane, Haoliang Tan, Haijun Zhang, and Xuan Wang,
"Odess: Speeding up Resemblance Detection for Redundancy Elimination by Fast Content-Defined Sampling,"
in Proceedings of the 37th IEEE International Conference on Data Engineering (ICDE '21, CCF-A),
Chania, Greece, Apr. 2021.
- Xiangyu Zou, Jingsong Yuan, Philip Shilane, Wen Xia, Haijun Zhang, and Xuan Wang,
"The Dilemma between Deduplication and Locality: Can Both be Achieved?,"
in Proceedings of the 19th USENIX Conference on File and Storage Technologies (FAST '21, CCF-A),
Santa Clara, CA, USA, Feb. 2021.
- 2020
- Haoliang Tan, Zhiyuan Zhang, Xiangyu Zou, Qing Liao, and Wen Xia,
"Exploring the Potential of Fast Delta Encoding: Marching to a Higher Compression Ratio,"
in Proceedings of IEEE International Conference on Cluster Computing (Cluster '20, CCF-B),
Kobe, Japan, Sep. 2020.
- Zhenbo Hu, Xiangyu Zou, Wen Xia, Sian Jin, Dingwen Tao, Yang Liu, Weizhe Zhang, Zheng Zhang,
"Delta-DNN: Efficiently Compressing Deep Neural Networks via Exploiting Floats Similarity,"
in Proceedings of 49th International Conference on Parallel Processing (ICPP '20, CCF-B),
Edmonton, AB, Canada, Aug. 2020.
- Lingfeng Xiang, Yuan He, Wen Xia, Hong Jiang, Zhenhua Li, Xuan Wang, and Xiangyu Zou,
"Dsync: a Lightweight Delta Synchronization Approach for Cloud Storage Services,"
in Proceedings of the 36th International Conference on Massive Storage Systems and Technology (MSST '20, CCF-B),
Santa Clara, CA, USA, Oct. 2020.
- Tao Lu, Wen Xia, Xiangyu Zou, and Qianbin Xia,
"Adaptively Compressing IoT Data on the Resource-constrained Edge,"
in Proceedings of the 3rd USENIX Workshop on Hot Topics in Edge Computing (HotEdge '20),
Boston, MA, USA, Jul. 2020.
- Wen Xia, Xiangyu Zou, Yukun Zhou, Hong Jiang, Chuanyi Liu, Dan Feng, Yu Hua, Yuchong Hu, and Yucheng Zhang,
"The Design of Fast Content-Defined Chunking for Data Deduplication based Storage Systems,"
IEEE Transactions on Parallel and Distributed Systems (TPDS, CCF-A),
vol. 31, no. 9, pp. 2017-2031, Sept. 2020.
- Xiangyu Zou, Tao Lu, Wen Xia, Xuan Wang, Weizhe Zhang, Haijun Zhang, Sheng Di, Dingwen Tao and Franck Cappello,
"Performance Optimization for Relative-Error-Bounded Lossy Compression on Scientific Data,"
IEEE Transactions on Parallel and Distributed Systems (TPDS, CCF-A),
vol.31, no.7, pp.1665-1680, Jul. 2020.
- 2019
- Xiangyu Zou, Tao Lu, Sheng Di, Dingwen Tao, Wen Xia, Xuan Wang, Weizhe Zhang and Qing Liao,
"Accelerating Lossy Compression on HPC datasets via Partitioning Computation for Parallel Processing,"
in Proceedings of the 21st IEEE International Conference on High Performance Computing and Communication (HPCC '19, CCF-C), Zhangjiajie, China, August. 2019.
- Xiangyu Zou, Tao Lu, Wen Xia, Xuan Wang, Weizhe Zhang, Sheng Di, Dingwen Tao and Franck Cappello,
"Accelerating Relative-error Bounded Lossy Compression for HPC datasets with Precomputation-Based Mechanisms,"
in Proceedings of the 35th International Conference on Massive Storage Systems and Technology (MSST '19, CCF-B),
Santa Clara, CA, USA, May. 2019.
- Wen Xia, Dan Feng, Hong Jiang, Yucheng Zhang, Victor Chang and Xiangyu Zou
"Accelerating Content-Defined-Chunking based Data Deduplication by Exploiting Parallelism,"
Future Generation Computer Systems (FGCS, CCF-C), Vol.98:406-418, 2019.
Awards
- 2022 哈尔滨工业大学 计算学部 学生优秀论文奖
- 2021 博士研究生国家奖学金
- 2020 哈尔滨工业大学 计算学部 学生优秀论文奖
- 2019-2021 哈尔滨工业大学(深圳) 计算应用研究中心 个人科研奖
- 2019 阿里云-中国计算机学会存储专委会 优秀论文奖