Class for sequentially numbered files on an SD card.
More...
#include <SdFatSequentialFileRK.h>
|
|
SdFat & | sd |
| | The SdFat object (typically a globally allocated object passed into the constructor for this object.
|
| |
|
uint8_t | csPin |
| | The CS/SS pin for the SD card reader passed into the constructor for this object.
|
| |
|
SPISettings | spiSettings |
| | SPI_FULL_SPEED or SPI_HALF_SPEED passed into the constructor for this object.
|
| |
|
const char * | dirName = "files" |
| | Name of the logs directory, override using withDirName()
|
| |
|
size_t | maxFilesToKeep = 0 |
| | Maximum number of files to keep, override using withMaxFilesToKeep() (0 = keep all)
|
| |
|
const char * | namePattern = "%06d.txt" |
| | Pattern (used by snprintf) to format the name in getName().
|
| |
|
char | nameBuf [12] |
| | Shared buffer returned by getName()
|
| |
|
bool | lastBeginResult = false |
| | Last result from sd.begin(). Will be false if there's not a valid SD card inserted.
|
| |
|
int | lastFileNum = 1 |
| | Last file number found, and the one we're writing to.
|
| |
|
FatFile | logsDir |
| | FatFile for the logs directory (dirName, default is "files")
|
| |
|
FatFile | curLogFile |
| | FatFile for the file we're currently writing to.
|
| |
|
std::set< int > | fileNums |
| | set of file numbers in the logs directory
|
| |
|
bool | needsScanCard = true |
| | True if the SD card needs to be scanned again.
|
| |
Class for sequentially numbered files on an SD card.
You typically instantiate one of these objects as a global variable. If you have different directories with different sequentially number files you can inc
◆ SdFatSequentialFile()
| SdFatSequentialFile::SdFatSequentialFile |
( |
SdFat & |
sd, |
|
|
uint8_t |
csPin, |
|
|
SPISettings |
spiSettings |
|
) |
| |
Constructor.
- Parameters
-
| sd | The SdFat object for the SD card |
| csPin | The GPIO pin used for the SD card CS pin |
| spiSettings | Normally pass SPI_FULL_SPEED. |
◆ checkMaxFiles()
| void SdFatSequentialFile::checkMaxFiles |
( |
| ) |
|
Check to make sure there aren't too many files.
If withMaxFilesToKeep() is used to set the maximum number of files, when that number of files is exceeded, the oldest (smallest filename sequential number) is deleted. The default is to keep all files.
◆ dateTimeCallback()
| void SdFatSequentialFile::dateTimeCallback |
( |
uint16_t * |
date, |
|
|
uint16_t * |
time |
|
) |
| |
|
static |
Callback passed to SdFat so it can determine the time for file timestamps
Note: Timestamps will be in UTC not local time, and are unaffected by daylight saving.
◆ getName()
| const char * SdFatSequentialFile::getName |
( |
int |
num | ) |
|
|
virtual |
Convert a file number to a name using namePattern.
- Parameters
-
| num | The file number (positive integer) |
The default pattern is "%06d.txt" which allows for numbers 0 - 999999 while still staying in a valid 8.3 filename pattern. You don't need to add the leading zeros, but since since the numbers are sequential and increasing, it keeps numeric and alphabetical order the same.
The name pattern must contain a number. It can have a prefix, like "f%07d.txt" which would generate f0000000.txt, f0000001.txt, ...
◆ openFile()
| bool SdFatSequentialFile::openFile |
( |
FatFile * |
pFile, |
|
|
bool |
nextFile = false |
|
) |
| |
Open a log file.
- Parameters
-
| pFile | the file is opened on this object. You can pass either a FatFile or PrintFile object pointer here; PrintFile is handy because it supports Wiring things like println and printlnf. |
| nextFile | Pass true to use the next higher numbered file. Pass false to use the current highest numbered file. |
◆ scanCard()
| bool SdFatSequentialFile::scanCard |
( |
| ) |
|
Open and scan the SD card.
You don't need to call this; if the card has not yet been scanned it will scan on openFile. The card will also be scanned again if an error occurs; this is common when the card is ejected.
◆ withMaxFilesToKeep()
Sets the maximum number of files to keep. Default is all files (0).
- Parameters
-
| maxFilesToKeep | For example, if 10 then 10 file are kept and when the 11th is created, the lowest numbered is deleted so there are still 10. Set to 0 to keep all files (limited by disk space). |
◆ withNamePattern()
Sets the sprintf-style name pattern to use for filename generation. Default: "%06d.txt".
- Parameters
-
| namePattern | The name pattern to use |
The name must be an 8.3 DOS filename. Also, namePattern is not copied. The intention is that you'd pass a string constant. If you dynamically generate the pattern, make sure the buffer does not go away (don't allocate it on the stack).
The documentation for this class was generated from the following files:


Contact
Portfolio
(current)
About
Andrew Siegel
Portfolio
Work Day Planner
Github link
How's the weather?
Github link
National Park Search by interests
Github link
Seekr Job Application Tracker
Github link


Laboratory 1
1. How to use tasm, tlink, td?
tasm - assemble a program with embedded DEBUG information
This is done using he following TASM command line syntax : tasm example or tasm example.asm
- important options: /l, /zi
tlink - linking with debug information in order ro create an executable file
- fis1.obj + fis2.obj + ... -> fisier.exe (or fisier.com)
This is done by entering the following command : tlink example or tlink example.obj
- important options: /v, /t
td - running debug
- This is done by entering the following command: td example or td example.exe
Observation
Without options:
...> tasm example
...> tlink example
...> td example
With options:
...> tasm /zi example
...> tlink /v example
...> td example
As with the other programs, the extension .exe is optional and will be assumed if not specified. AT this point you need to explore the different windows and options in TD. Notice that because of the embedded debug information, the screen shows the actual program commands, labels and arguments.
Notice the function keys at the bottom of the screen. The most useful of these will be the step (F8) and trace (F7) commands. Using the mouse, we can display information such as the content of the various registers. Under the VIEW menu, open the CPU Registers window.
The register information is of great use when stepping through a program and trying to determine whether the program is working correctly or where there might be an error in program control. The final screen below shows what the register contents are and where the program currently is executing when we have single stepped (F7) through several instructions. Note that the triangular cursor on the left of the screen points to the next line to be executed.
2. Example
An assembly language program should be entered with any text editor and have the extension fname.asm. The format of the program is illustrated in the following example. For practice, enter this program using the notepad editor.
ASSUME cs: code, ds:data
; we tell to the assembler which segments we will use in the program
data SEGMENT
;data - place holder for start of data segment
data ENDS
code SEGMENT
;code - place holder for start of code segment
start:
mov ax,data ; the data segment address will be copied in ax
mov ds,ax ; ax's content will be copied into ds
; .......
; here will be our instructions
;........
mov ax,4C00h
int 21h ; the end of the execution
code ENDS
END start


3D constant-density acoustic frequency-domain modeling: Gradient Test
The aim of this script is to verify that the function MisfitFD function in fact returns the proper misfit and gradient of the objective function for FWI.
Author: Rafael Lago
Contents
Theory
Consider the misfit function for a fixed dataset . From Taylor's theorem we know that
That means that the second order perturbation
(1)
should be of the same order of magnitude as for any model and a small enough perturbation .
To ensure that this is always valid, we generate a random velocity mode, a random perturbation and a random dataset, and then we test the relation
(2)
for varying values of , from to . We also impose that a chosen minimum and maximal value for the velocity of m and of dm, and that the velocity in the boundaries is constant (due to complications in the boundary conditions).
Generate random velocity model
clear flog = fopen('../results/test_gradient_log','w'); % Dimensions % ------------- nv = [31 31 11]; model.nv = nv; dv = [100 100 100]; model.dv = dv; model.ov = [0 0 0]; model.unit = 'm/s'; % % Make up random model % ----------------------- % We make sure that the boundaries of dm are homogeneous (but not zero) % otherwise when extending for the PML the domain we may obtain strange results. % In this example we force the velocity to be 1500 m/s; this is just a % convenient choice that allows smaller PMLs, it could be any other value. % % We also bound the min and max values to make sure that the domain will not % have crazy-high wavelengths. % We let dm to be as large as m a priory, but later we will shrink it. % rng(90085); %This is the random seed! Feel free to change it! min_dm = 1500; max_dm = 4500; tmp = randn(model.nv-2); tmp = (max_dm - min_dm) + (tmp./max(tmp(:)))*min_dm; m = 1500*ones(model.nv); m(2:end-1,2:end-1,2:end-1) = tmp; % % Random perturbation % -------------------- tmp = randn(model.nv-2); tmp = (max_dm - min_dm) + (tmp./max(tmp(:)))*min_dm; dm = 1500*ones(model.nv); dm(2:end-1,2:end-1,2:end-1) = tmp; if strcmp(model.unit,'s2/m2') % Convert now to slowness squared % We want [m+dm] to be [1/(v+dv)^2], and not [1/v^2 + 1/dv^2]!!! m = 1./(m.^2); dm = 1./(m+dm).^2 - m; end
Random data
We choose the magnitude of the data more or less arbitrarily; source estimation is used, so this is not particularly important.
% [xrec yrec zrec xsrc ysrc zsrc freq] acq.nd = [nv(1)-2 nv(2)-2 1 2 2 1 2 ]; acq.dd = [dv(1) dv(2) 1 500 500 1 2 ]; acq.od = [dv(1) dv(2) 2*dv(3) 1000 1000 200 2 ]; min_d = .5*prod(acq.nd(1:3)); max_d = .6*prod(acq.nd(1:3)); acq.data = randn(acq.nd); acq.data = (max_d - min_d) + (acq.data/norm(acq.data(:)))*min_d; [ acq.xrec,acq.yrec,acq.zrec,... acq.xsrc,acq.ysrc,acq.zsrc, acq.freq] = odn2grid(acq.od,acq.dd,acq.nd); acq.sources = speye( prod(acq.nd(4:6)) );
Defining the misfit function
From now on, this will be our misfit function; we create a function handle to hide all the unnecessary parameters. The "setfield" is just to avoid having to write model.v = m+h(i)*dm; before every single call of the function f.
To make sure that the gradient is being computed with maximum accuracy, we do not rescale the model for lower frequencies and we use a direct solver.
opts.par_helm.d = model.dv; opts.par_solver.name = '\'; opts.par_helm.pml_max = 8; f = @(v)(MisfitFD(setfield(model,'v',v),acq,opts,0)); plog(flog,'Computing the misfit f(m)...\n'); [misfit_0, g] = f(m); plog(flog,'=========================================================================\n\n'); gdm = g(:)' * dm(:);
Computing the misfit f(m)... =========================================================================
Testing
The following script performs the test while writing the progress on the screen
h = 10.^([0:-1:-6]); plog(flog,'Initial misfit f(m) = ', misfit_0,'\n'); plog(flog,'Norm of model perturbation ||dm|| = ', norm(dm(:)),'\n'); plog(flog,'Computing the misfit f(m+h*dm)...\n'); for i = 1:length(h) misfit(i) = f(m+h(i)*dm); plog(flog,'Perturbation - |h| = ', h(i),'\n'); plog(flog,'Misfit value - f(m+h*dm) = ', misfit(i),'\n'); error1(i) = abs(misfit(i)-misfit_0); plog(flog,'First order error - |f(m) - f(m+h*dm)| = ', error1(i),'\n'); error2(i) = abs(misfit(i)-misfit_0-h(i)*gdm); plog(flog,'Second order correction - |h*g(m)''*dm| = ', abs(h(i)*gdm),'\n'); plog(flog,'Second order error - |f(m) - f(m+h*dm) - h*g(m)''*dm| = ', error2(i),'\n'); plog(flog,'=========================================================================\n\n'); end plog(flog,'Saving results into files...'); save('test_gradient.mat'); plog(flog,'done!\n');
Initial misfit f(m) = 2.38e+07 Norm of model perturbation ||dm|| = 2.76e+05 Computing the misfit f(m+h*dm)... Perturbation - |h| = 1 Misfit value - f(m+h*dm) = 2.33e+07 First order error - |f(m) - f(m+h*dm)| = 4.44e+05 Second order correction - |h*g(m)'*dm| = 1.14e+05 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 3.3e+05 ========================================================================= Perturbation - |h| = 0.1 Misfit value - f(m+h*dm) = 2.37e+07 First order error - |f(m) - f(m+h*dm)| = 6.81e+04 Second order correction - |h*g(m)'*dm| = 1.14e+04 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 5.67e+04 ========================================================================= Perturbation - |h| = 0.01 Misfit value - f(m+h*dm) = 2.38e+07 First order error - |f(m) - f(m+h*dm)| = 1.58e+03 Second order correction - |h*g(m)'*dm| = 1.14e+03 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 433 ========================================================================= Perturbation - |h| = 0.001 Misfit value - f(m+h*dm) = 2.38e+07 First order error - |f(m) - f(m+h*dm)| = 119 Second order correction - |h*g(m)'*dm| = 114 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 4.46 ========================================================================= Perturbation - |h| = 0.0001 Misfit value - f(m+h*dm) = 2.38e+07 First order error - |f(m) - f(m+h*dm)| = 11.5 Second order correction - |h*g(m)'*dm| = 11.4 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 0.0441 ========================================================================= Perturbation - |h| = 1e-05 Misfit value - f(m+h*dm) = 2.38e+07 First order error - |f(m) - f(m+h*dm)| = 1.14 Second order correction - |h*g(m)'*dm| = 1.14 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 0.000377 ========================================================================= Perturbation - |h| = 1e-06 Misfit value - f(m+h*dm) = 2.38e+07 First order error - |f(m) - f(m+h*dm)| = 0.114 Second order correction - |h*g(m)'*dm| = 0.114 Second order error - |f(m) - f(m+h*dm) - h*g(m)'*dm| = 2.66e-06 ========================================================================= Saving results into files...done!
Results
As previously mentioned, we expect the second order error (1) to behave like . The following plot clearly shows that the as h decreases, the second order approximation follows the same behaviour (i.e. the lines are more or less parallel).
Likewise, we show the first order error as well. As expected, it behaves like (i.e. the lines are parallel).
plog(flog,'Plotting...\n'); figid = figure; line1 = loglog(h,abs(error1/misfit_0),'linewidth',1); hold all; line2 = loglog(h,h,'linewidth',1); line3 = loglog(h,abs(error2/misfit_0),'linewidth',1); line4 = loglog(h,h.^2,'linewidth',1); legend([line1,line2,line3,line4],{'Zeroth order Taylor Error','O(h)','First order Taylor Error' ... ,'O(h^2)'},'Location','SouthEast'); set(figid,'Position',[0 0 500 500]); xlim([h(end) h(1)]); axis image fclose(flog);
Plotting...


When you visit any website, it may store or retrieve information on your browser, mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer. To find out more, read our updated Cookie Policy


DENV virus QML mosquitoes aegypti infection sylvatic dengue Ae. Aedes infected transmission {border-style strain mosquito px;} #ffffff;} strains []. Australia viruses competence using Trop containing divergent saliva wings Med cell dissemination fed highly transmit vector blood detected rates Australian QML, isolated legs px; salivary susceptible titres {font-family (Fig. Medical West antibody colonies days font-size mosquitoes. observed proportion study urban Townsville able bodies cells culture described double; dpi lower meals midgut monoclonal placed previously stocks Commons Creative DENV, Fig. However, Hyg./ajtmh... Innisfail PBST Senegal article barriers border-color border-width data determine different epidemic feeding fever glands infectious maintained northern patient rate samples sections similar solid; species staining studies tissues v/v {font-style {font-weight CCELISA Institute Queensland, Sections USA) [], albopictus assay b). bold colony contrast, courier; distribution em; endemic/epidemic engorged escape established expectorates human infect inoculated min new populations pt;} relative removed respectively. returning times type used vectors washed °C,


Your Ride
[driver.name]
Start
person_pin
End
add
911 Assistance
Your current location will be shared with authorities when you call 911.


|
Perl Weekly
Issue #73 - 2012-12-17 - The 3rd annual Perl 6 Coding Competition
latest | archive | by Gabor Szabo
|
|
Hi,
Christmas is only a week away so it is just appropriate to mention the 3rd Perl 6 Coding Competition run by Carl Masak.
Enjoy
|
|
|
Advent Calendars
|
|
|
|
|
Code Quality
|
Statement Toggler for Vim
Yanick Champoux wrote a simple perl script that can switch between 'if (cond) {statement}' and 'statement if cond', one of the possible refactorings in Perl. He hooked it up to vim, but if the code is released both as a stand-alone script, and as a module, then it could be used in other editors and IDEs as well.
|
|
Beware the file lock, my son!
Upon reading the Perl Advent Calendar entry of today, Oylenshpeegul adds a cautionary note on wrapping gifts in exotically-doored laundry rooms lock_nfs (and locking file on NFS partitions), recommending the use of File::NFSLock for those cases.
|
|
Fun
|
Identifying CPAN distributions you could help out with
Every once in a while people come along various Perl channels, mailing lists and forums and ask what perl project they could be involved. Neil Bowers is now trying to set up some metric that will show which CPAN modules need the most attention. Some metric based on the number of bugs, the age of bugs, the date of most recent release etc. Among the comments you can also find the process, to take over maintainership of a module.
|
|
Grants
|
|
|
Tutorial
|
How to sort faster in Perl?
As a follow-up to my previous article introducing sorting, in this article I introduced the Schwartzian transform. It is not some bleading edge material, but I hope it will be useful for the people reading the Perl Maven materials.
|
|
Perl 6
|
The 2012 Perl 6 Coding Contest
The 3rd edition of the Perl 6 coding contest has started a few days ago, but it is still not too late to join. There are 5 tasks to do till 18th January. So you have a full month to learn Perl 6 and implement the tasks.
|
|
Weekly collections
|
|
|
|
|
|
|
|
|
Events
I usually list the next 3-4 events here. The list of all the events can be found on the web site. If your Perl event is not listed there, please let me know.
|
|
|
|
|
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|


Example multiple subplot ensemble figure of equidistantly interpolated speed. In this example each subplot represents the level of independent conditions.
The Script:
from __future__ import print_function
# Copyright (c) 2013, Roger Lew
# All rights reserved.
import os
import glob
from operator import attrgetter
import time
from matplotlib import rcParams
rcParams['font.family'] = 'serif'
import matplotlib.pyplot as plt
import numpy as np
from undaqTools import Daq, fslice, findex
def mult_ado_by_pid_plot(pids, page):
global hdf5_files, scenario_names, latin_square, get_pid
# initialize plot
fig = plt.figure(figsize=(11*1.75, 8.5*1.75))
fig.subplots_adjust(left=.04, right=.96,
bottom=.05, top=.97,
wspace=.04, hspace=.04)
# plot will have 2 axis. One is for Vehicle Speed, the other is
# for relative distance of the DynObjs
xticks = np.linspace(660,5280*1.25,10)
xlim = [0, 5280*1.25]
# speed in MPH
yticks1 = np.linspace(35,75,5)
ylim1 = [30,80]
# relative distance in Feet
yticks2 = np.linspace(-1500,1500,7)
ylim2 = [-1750,1750]
# loop through the hdf5_files that contain
# data for the requested participants
for hdf5_file in [hd for hd in hdf5_files if get_pid(hd) in pids]:
print('analyzing "%s"'%hdf5_file)
daq = Daq()
daq.read_hd5(hdf5_file)
pid = daq.etc['pid']
# figure out row number
rnum = pids.index(pid)
# find the relevant dynamic objects to plot
platoon = [do for do in daq.dynobjs.values() if 'Ado' in do.name]
platoon = sorted(platoon, key=attrgetter('name'))
# for each trial...
for i in xrange(10):
if not ( i*10+1 in daq.etc['epochs'] and \
i*10+3 in daq.etc['epochs']):
# encountered partial trial
continue
scenario = daq.etc['scen_order'][i]
scenario_name = scenario_names[scenario]
print(' PID: %03i, Passing zone: %i (%s)'%(pid, i, scenario_name))
# unpack the start frame of the 1-to-2 lane addition transition
# and the stop frame of the 2-to-1 lane reduction transition
f0 = daq.etc['epochs'][i*10+1].start
fend = daq.etc['epochs'][i*10+3].stop
# get axis handle
ax1 = plt.subplot(8, 10, rnum*10 + scenario + 1)
distance = daq['VDS_Veh_Dist'][0, fslice(f0, fend)].flatten()
distance -= distance[0]
speed = daq['VDS_Veh_Speed'][0, fslice(f0, fend)].flatten()
ax1.plot(distance, speed, 'b')
ax2 = ax1.twinx()
# we need to figure out when the Ados enter the passing lane
# and exit the passing lane. To do this we need to know where
# the passing lane starts and ends
pos0 = daq['VDS_Chassis_CG_Position'][:,findex(f0)]
posend = daq['VDS_Chassis_CG_Position'][:,findex(fend)]
# loop through and plot ados
for j, do in enumerate(platoon):
# each passing zone has its own set of Ados. This
# sorts out which are actually defined (should be
# defined) for this trial.
if i*10 <= int(do.name[-2:]) < (i+1)*10:
# figure out when the ado enters the
d0 = np.sum((do.pos - pos0)**2., axis=0)**.5
dend = np.sum((do.pos - posend)**2., axis=0)**.5
# indexes relative to do arrays
imin0 = d0.argmin()
iminend = dend.argmin()
# now we can plot the Ados relative distance to the
# vehicle as a function of distance over the passing
# lane
# with this dataset the thrid vehicle in the platoon
# was systematically manipulate
if 'L' in do.name:
color = 'm'
alpha = 1.
elif 'S' in do.name:
color = 'g'
alpha = 1.
else:
color = 'g'
alpha = .4
if iminend-imin0 > 0:
distance = do.distance[0, imin0:iminend]
distance -= distance[0]
rel_distance = do.relative_distance[0, imin0:iminend]
ax2.plot(distance, rel_distance, color=color, alpha=alpha)
else:
print(' %s did not drive '
'through passing zone'%do.name)
# make things pretty
ax1.set_ylim(ylim1)
ax1.set_yticks(yticks1)
if scenario:
ax1.set_yticklabels(['' for y in yticks1])
else:
ax1.set_yticklabels(yticks1, color='b')
ax2.axhline(0, color='k', linestyle=':')
ax2.set_ylim(ylim2)
ax2.set_yticks(yticks2)
if scenario != 9:
ax2.set_yticklabels(['' for y in yticks2])
else:
ax2.set_yticklabels(yticks2, color='g')
ax2.set_xlim(xlim)
ax2.set_xticks(xticks)
if rnum == 0:
ax1.set_title(scenario_names[scenario])
if rnum == len(pids)-1:
ax1.set_xticklabels(['%i'%x for x in xticks],
rotation='vertical')
else:
ax1.set_xticklabels(['' for x in xticks])
if not scenario:
ax1.text(660,35,'Participant: %03i =>'%pids[rnum],
size='small')
img_name = 'do_passing_behavior__PAGE%i.png'%page
fig.savefig(img_name, dpi=300)
plt.close()
if __name__ == '__main__':
t0 = time.time()
scenario_names = ['Baseline',
'Advisory',
'Reg',
'Reg + Adv',
'Chevrons',
'Lines',
'Narrowing',
'Parallax',
'Force Rh',
'Lines w/ mid']
n = 7 # number of pids per page
# data is on a local SSD drive. This is very important for performance.
data_dir = 'C:\\LocalData\\Left Lane\\'
# change the directory of the kernel
print("Changing wd to '%s'"%data_dir)
os.chdir(data_dir)
get_pid = lambda fname : int(fname.split('\\')[0][4:])
hdf5_files = glob.glob('*/*.hdf5')
pids = sorted(list(set([get_pid(hf) for hf in hdf5_files])))
print(pids)
for i in xrange(len(pids)/n+1):
mult_ado_by_pid_plot(pids[i*n:i*n+n], i+1)
print('\nDone.\n\nMaking multipanel plot took %.1f s'%(time.time()-t0))
The plots
Download [hi-res]
Download [hi-res]
Download [hi-res]
Example Output:
Changing wd to 'C:\LocalData\Left Lane\'
analyzing "Part01\Left_01_20130424102744.hdf5"
PID: 001, Passing zone: 0 (Baseline)
PID: 001, Passing zone: 1 (Advisory)
PID: 001, Passing zone: 2 (Lines w/ mid)
Ado28 did not drive through passing zone
PID: 001, Passing zone: 3 (Reg)
PID: 001, Passing zone: 4 (Force Rh)
PID: 001, Passing zone: 5 (Reg + Adv)
PID: 001, Passing zone: 6 (Parallax)
PID: 001, Passing zone: 7 (Chevrons)
PID: 001, Passing zone: 8 (Narrowing)
PID: 001, Passing zone: 9 (Lines)
analyzing "Part02\Left_02_20130425084730.hdf5"
PID: 002, Passing zone: 0 (Advisory)
PID: 002, Passing zone: 1 (Reg)
PID: 002, Passing zone: 2 (Baseline)
PID: 002, Passing zone: 3 (Reg + Adv)
PID: 002, Passing zone: 4 (Lines w/ mid)
PID: 002, Passing zone: 5 (Chevrons)
PID: 002, Passing zone: 6 (Force Rh)
PID: 002, Passing zone: 7 (Lines)
PID: 002, Passing zone: 8 (Parallax)
PID: 002, Passing zone: 9 (Narrowing)
analyzing "Part03\Left_03_20130425102301.hdf5"
PID: 003, Passing zone: 0 (Reg)
PID: 003, Passing zone: 1 (Reg + Adv)
PID: 003, Passing zone: 2 (Advisory)
PID: 003, Passing zone: 3 (Chevrons)
PID: 003, Passing zone: 4 (Baseline)
PID: 003, Passing zone: 5 (Lines)
PID: 003, Passing zone: 6 (Lines w/ mid)
PID: 003, Passing zone: 7 (Narrowing)
PID: 003, Passing zone: 8 (Force Rh)
PID: 003, Passing zone: 9 (Parallax)
analyzing "Part04\Left_04_20130425142804.hdf5"
PID: 004, Passing zone: 0 (Reg + Adv)
PID: 004, Passing zone: 1 (Chevrons)
PID: 004, Passing zone: 2 (Reg)
PID: 004, Passing zone: 3 (Lines)
PID: 004, Passing zone: 4 (Advisory)
PID: 004, Passing zone: 5 (Narrowing)
PID: 004, Passing zone: 6 (Baseline)
PID: 004, Passing zone: 7 (Parallax)
PID: 004, Passing zone: 8 (Lines w/ mid)
PID: 004, Passing zone: 9 (Force Rh)
analyzing "Part05\Left_05_20130425161122.hdf5"
PID: 005, Passing zone: 0 (Chevrons)
PID: 005, Passing zone: 1 (Lines)
PID: 005, Passing zone: 2 (Reg + Adv)
PID: 005, Passing zone: 3 (Narrowing)
PID: 005, Passing zone: 4 (Reg)
PID: 005, Passing zone: 5 (Parallax)
PID: 005, Passing zone: 6 (Advisory)
PID: 005, Passing zone: 7 (Force Rh)
PID: 005, Passing zone: 8 (Baseline)
PID: 005, Passing zone: 9 (Lines w/ mid)
analyzing "Part06\Left_06_20130426111502.hdf5"
PID: 006, Passing zone: 0 (Lines)
PID: 006, Passing zone: 1 (Narrowing)
PID: 006, Passing zone: 2 (Chevrons)
PID: 006, Passing zone: 3 (Parallax)
PID: 006, Passing zone: 4 (Reg + Adv)
PID: 006, Passing zone: 5 (Force Rh)
PID: 006, Passing zone: 6 (Reg)
PID: 006, Passing zone: 7 (Lines w/ mid)
PID: 006, Passing zone: 8 (Advisory)
PID: 006, Passing zone: 9 (Baseline)
analyzing "Part07\Left_07_20130426143846.hdf5"
PID: 007, Passing zone: 0 (Narrowing)
PID: 007, Passing zone: 1 (Parallax)
PID: 007, Passing zone: 2 (Lines)
PID: 007, Passing zone: 3 (Force Rh)
PID: 007, Passing zone: 4 (Chevrons)
PID: 007, Passing zone: 5 (Lines w/ mid)
PID: 007, Passing zone: 6 (Reg + Adv)
PID: 007, Passing zone: 7 (Baseline)
PID: 007, Passing zone: 8 (Reg)
Ado82 did not drive through passing zone
PID: 007, Passing zone: 9 (Advisory)
analyzing "Part08\Left_08_20130426164114.hdf5"
analyzing "Part08\Left_08_20130426164301.hdf5"
PID: 008, Passing zone: 0 (Parallax)
PID: 008, Passing zone: 1 (Force Rh)
PID: 008, Passing zone: 2 (Narrowing)
PID: 008, Passing zone: 3 (Lines w/ mid)
PID: 008, Passing zone: 4 (Lines)
PID: 008, Passing zone: 5 (Baseline)
PID: 008, Passing zone: 6 (Chevrons)
PID: 008, Passing zone: 7 (Advisory)
PID: 008, Passing zone: 8 (Reg + Adv)
PID: 008, Passing zone: 9 (Reg)
analyzing "Part09\Left09_20130423155149.hdf5"
PID: 009, Passing zone: 0 (Force Rh)
PID: 009, Passing zone: 1 (Lines w/ mid)
PID: 009, Passing zone: 2 (Parallax)
PID: 009, Passing zone: 3 (Baseline)
PID: 009, Passing zone: 4 (Narrowing)
PID: 009, Passing zone: 5 (Advisory)
PID: 009, Passing zone: 6 (Lines)
PID: 009, Passing zone: 7 (Reg)
PID: 009, Passing zone: 8 (Chevrons)
PID: 009, Passing zone: 9 (Reg + Adv)
analyzing "Part10\Left10_20130423155149.hdf5"
PID: 010, Passing zone: 0 (Lines w/ mid)
PID: 010, Passing zone: 1 (Baseline)
PID: 010, Passing zone: 2 (Force Rh)
PID: 010, Passing zone: 3 (Advisory)
PID: 010, Passing zone: 4 (Parallax)
PID: 010, Passing zone: 5 (Reg)
PID: 010, Passing zone: 6 (Narrowing)
PID: 010, Passing zone: 7 (Reg + Adv)
PID: 010, Passing zone: 8 (Lines)
PID: 010, Passing zone: 9 (Chevrons)
analyzing "Part12\Left_12_20130429163745.hdf5"
PID: 012, Passing zone: 0 (Advisory)
PID: 012, Passing zone: 1 (Reg)
PID: 012, Passing zone: 2 (Baseline)
PID: 012, Passing zone: 3 (Reg + Adv)
PID: 012, Passing zone: 4 (Lines w/ mid)
PID: 012, Passing zone: 5 (Chevrons)
PID: 012, Passing zone: 6 (Force Rh)
PID: 012, Passing zone: 7 (Lines)
PID: 012, Passing zone: 8 (Parallax)
PID: 012, Passing zone: 9 (Narrowing)
analyzing "Part13\Left_13_20130429182923.hdf5"
PID: 013, Passing zone: 0 (Reg)
PID: 013, Passing zone: 1 (Reg + Adv)
PID: 013, Passing zone: 2 (Advisory)
PID: 013, Passing zone: 3 (Chevrons)
PID: 013, Passing zone: 4 (Baseline)
PID: 013, Passing zone: 5 (Lines)
PID: 013, Passing zone: 6 (Lines w/ mid)
PID: 013, Passing zone: 7 (Narrowing)
PID: 013, Passing zone: 8 (Force Rh)
PID: 013, Passing zone: 9 (Parallax)
analyzing "Part14\Left_14_20130430102504.hdf5"
PID: 014, Passing zone: 0 (Reg + Adv)
PID: 014, Passing zone: 1 (Chevrons)
PID: 014, Passing zone: 2 (Reg)
PID: 014, Passing zone: 3 (Lines)
PID: 014, Passing zone: 4 (Advisory)
PID: 014, Passing zone: 5 (Narrowing)
PID: 014, Passing zone: 6 (Baseline)
PID: 014, Passing zone: 7 (Parallax)
PID: 014, Passing zone: 8 (Lines w/ mid)
PID: 014, Passing zone: 9 (Force Rh)
analyzing "Part15\Left_15_20130430171947.hdf5"
PID: 015, Passing zone: 0 (Chevrons)
PID: 015, Passing zone: 1 (Lines)
PID: 015, Passing zone: 2 (Reg + Adv)
PID: 015, Passing zone: 3 (Narrowing)
PID: 015, Passing zone: 4 (Reg)
PID: 015, Passing zone: 5 (Parallax)
PID: 015, Passing zone: 6 (Advisory)
PID: 015, Passing zone: 7 (Force Rh)
PID: 015, Passing zone: 8 (Baseline)
PID: 015, Passing zone: 9 (Lines w/ mid)
analyzing "Part16\Left_16_20130501103917.hdf5"
PID: 016, Passing zone: 0 (Lines)
PID: 016, Passing zone: 1 (Narrowing)
PID: 016, Passing zone: 2 (Chevrons)
PID: 016, Passing zone: 3 (Parallax)
PID: 016, Passing zone: 4 (Reg + Adv)
PID: 016, Passing zone: 5 (Force Rh)
PID: 016, Passing zone: 6 (Reg)
PID: 016, Passing zone: 7 (Lines w/ mid)
PID: 016, Passing zone: 8 (Advisory)
PID: 016, Passing zone: 9 (Baseline)
analyzing "Part18\Left_18_20130502084422.hdf5"
PID: 018, Passing zone: 0 (Parallax)
PID: 018, Passing zone: 1 (Force Rh)
PID: 018, Passing zone: 2 (Narrowing)
analyzing "Part18\Left_18_reset_20130502090909.hdf5"
PID: 018, Passing zone: 3 (Lines w/ mid)
PID: 018, Passing zone: 4 (Lines)
PID: 018, Passing zone: 5 (Baseline)
PID: 018, Passing zone: 6 (Chevrons)
PID: 018, Passing zone: 7 (Advisory)
PID: 018, Passing zone: 8 (Reg + Adv)
PID: 018, Passing zone: 9 (Reg)
analyzing "Part111\Left_11_20130430081052.hdf5"
PID: 111, Passing zone: 0 (Baseline)
PID: 111, Passing zone: 1 (Advisory)
PID: 111, Passing zone: 2 (Lines w/ mid)
PID: 111, Passing zone: 3 (Reg)
PID: 111, Passing zone: 4 (Force Rh)
PID: 111, Passing zone: 5 (Reg + Adv)
PID: 111, Passing zone: 6 (Parallax)
PID: 111, Passing zone: 7 (Chevrons)
PID: 111, Passing zone: 8 (Narrowing)
PID: 111, Passing zone: 9 (Lines)
analyzing "Part170\Left_17_20130501163745.hdf5"
PID: 170, Passing zone: 0 (Lines w/ mid)
PID: 170, Passing zone: 1 (Baseline)
PID: 170, Passing zone: 2 (Force Rh)
PID: 170, Passing zone: 3 (Advisory)
PID: 170, Passing zone: 4 (Parallax)
PID: 170, Passing zone: 5 (Reg)
PID: 170, Passing zone: 6 (Narrowing)
PID: 170, Passing zone: 7 (Reg + Adv)
PID: 170, Passing zone: 8 (Lines)
PID: 170, Passing zone: 9 (Chevrons)
analyzing "Part19\Left_19_20130502153547.hdf5"
PID: 019, Passing zone: 0 (Force Rh)
PID: 019, Passing zone: 1 (Lines w/ mid)
PID: 019, Passing zone: 2 (Parallax)
PID: 019, Passing zone: 3 (Baseline)
PID: 019, Passing zone: 4 (Narrowing)
PID: 019, Passing zone: 5 (Advisory)
PID: 019, Passing zone: 6 (Lines)
PID: 019, Passing zone: 7 (Reg)
PID: 019, Passing zone: 8 (Chevrons)
PID: 019, Passing zone: 9 (Reg + Adv)
analyzing "Part200\Left_20_20130509094509.hdf5"
PID: 200, Passing zone: 0 (Lines w/ mid)
PID: 200, Passing zone: 1 (Baseline)
PID: 200, Passing zone: 2 (Force Rh)
PID: 200, Passing zone: 3 (Advisory)
PID: 200, Passing zone: 4 (Parallax)
PID: 200, Passing zone: 5 (Reg)
PID: 200, Passing zone: 6 (Narrowing)
PID: 200, Passing zone: 7 (Reg + Adv)
PID: 200, Passing zone: 8 (Lines)
PID: 200, Passing zone: 9 (Chevrons)
Done.
Making multipanel plot took 205.4 s


statsmodels.robust.robust_linear_model.RLM.fit¶
-
RLM.
fit
(maxiter=50, tol=1e-08, scale_est='mad', init=None, cov='H1', update_scale=True, conv='dev')[source]¶ Fits the model using iteratively reweighted least squares.
The IRLS routine runs until the specified objective converges to tol or maxiter has been reached.
Parameters: conv : string
Indicates the convergence criteria. Available options are “coefs” (the coefficients), “weights” (the weights in the iteration), “sresid” (the standardized residuals), and “dev” (the un-normalized log-likelihood for the M estimator). The default is “dev”.
cov : string, optional
‘H1’, ‘H2’, or ‘H3’ Indicates how the covariance matrix is estimated. Default is ‘H1’. See rlm.RLMResults for more information.
init : string
Specifies method for the initial estimates of the parameters. Default is None, which means that the least squares estimate is used. Currently it is the only available choice.
maxiter : int
The maximum number of iterations to try. Default is 50.
scale_est : string or HuberScale()
‘mad’ or HuberScale() Indicates the estimate to use for scaling the weights in the IRLS. The default is ‘mad’ (median absolute deviation. Other options are ‘HuberScale’ for Huber’s proposal 2. Huber’s proposal 2 has optional keyword arguments d, tol, and maxiter for specifying the tuning constant, the convergence tolerance, and the maximum number of iterations. See statsmodels.robust.scale for more information.
tol : float
The convergence tolerance of the estimate. Default is 1e-8.
update_scale : Bool
If update_scale is False then the scale estimate for the weights is held constant over the iteration. Otherwise, it is updated for each fit in the iteration. Default is True.
Returns: results : object
statsmodels.rlm.RLMresults


The Digital Second Edition of Judaica Americana, an Omeka bibliographic database, draws from Robert Singerman’s Judaica Americana, a bibliography chronicling American Jewish book production until 1900. Visitors can search the database’s 9,600+ bibliographic entries for author, language, holding institution, and various tags, as well as find open-access links to digitized Jewish monographs, serials, and periodicals. Judaica Americana authoritatively chronicles American Jewish book production from the seventeenth century to the beginning of the twentieth century. The second edition contains an additional 3,000 entries. Taken as a whole, Singerman’s bibliography provides extensive documentation of American Jewish communal activity and growth before 1901.
I was responsible for the data preparation and project methodology. As the developer and designer, I designed the look and feel of the site, editing the Omeka theme that is used for the navigation and user interaction with the site.
Esten, Emily. “Digital Second Edition of Judaica Americana: A Bibliography of Publications to 1900” Journal of Open Humanities Data 6, no. 4, (2020). DOI: https://doi.org/10.5334/johd.15
We have a repository on ScholarlyCommons, University of Pennsylvania’s open access institutional repository, dedicated to resources for the project:
Esten, Emily. “Dataset for Judaica Americana: A Bibliography of Publications to 1900”. Scribes of the Cairo Geniza, Scholarly Commons, 2019. Web.
Esten, Emily. “Dataset for Union List of Nineteenth-Century Jewish Serials Published in the United States”. Judaica Americana, Scholarly Commons, 2020. Web.
Singerman, Robert. “Judaica Americana: A Bibliography of Publications to 1900”. Judaica Americana, Scholarly Commons, 2019. Web.
The Python scripts used in this project are maintained in a GitHub repository, including:
Esten, Emily. “Extract_singerman.py.” ja2-scripts, Github, accessed May 15, 2020, https://github.com/judaicadh/ja2-cleaning DOI: 10.5281/zenodo.3894691
Enderle, Jonathan Scott. “tess.py.” ja2-scripts, Github, accessed May 15, 2020, https://github.com/judaicadh/ja2-cleaning. (Forked from its original repository) DOI: 10.5281/zenodo.3894691
Esten, Emily. “flip-index-headers.py.” ja2-scripts, Github, accessed May 15, 2020,https://github.com/judaicadh/ja2-cleaning DOI: 10.5281/zenodo.3894691
Esten, Emily. “extract-singerman-serials.py.” ja2-scripts, Github, accessed May 15, 2020, https://github.com/judaicadh/ja2-cleaning DOI: 10.5281/zenodo.3894691


Name:
Year in College (1=Freshman --> 4=Senior):
Male
Female
Computer Choice
Mac
Linux
PC
Other
Do you agree to the terms and conditions?
Press this please


Ever since late 2016 Mirai has been streaming Listen.moe to voice channels. Since Mirai didn't make enough money to afford voice servers, we needed a way to do this with minimal CPU and memory impact. The solution: Eris's SharedStream
module. With this we could send the stream to as many channels as we wanted with only one ffmpeg process.
SharedStream required only a few lines of code, and ran in the same process as the bot:
let sharedStream = new (require('eris')).SharedStream();
sharedStream.on('error', error => /* Error handler */);
// Add connection
bot.joinVoiceChannel(channel.id, { shared: true }).then(connection => {
sharedStream.add(connection);
if (!sharedStream.playing)
sharedStream.play('https://listen.moe/stream', { inputArgs: ['-user-agent', `Your Bot v${version} (example.com)`] });
connection.on('error', error => /* Error handler */)
}).catch(e => /* Error handler */);
// Remove connection
bot.leaveVoiceChannel(channel.id);
sharedStream.voiceConnections.delete(channel.id);
This was fine back then since Mirai didn't use much CPU, but as more features were added, CPU usage increased. Now we get CPU spikes when certain tasks (such as twitch notifications) run.
CPU usage spikes blocking voice sending
Everyone listening to the stream would be able to hear the music stuttering or freezing when CPU usage was high. The simple solution would be to reduce CPU usage by staggering resource hungry tasks, but that would only be temporary. Music would have to move to another process. The problem is that SharedStream
doesn't work when it's disconnected from the bot. I wasn't going to write my own voice service either.
Our CPU restriction also meant we had to disable volume modification, since it heavily increases CPU usage. Because of this Mirai was way too loud, even at a low volume percent.
Recently I was made aware of Lavalink. Lavalink describes itself as a "Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards." In it's features it lists a minimal CPU/memory footprint among other appealing items. It's also used in production by other large bots. While this doesn't have everything we want (like shared streams), it was decided to be the best option.
Since the Lavalink nodes will be detached from the process we will also need eris-lavalink. This will handle the connection to nodes and manage voice connections. It can also load balance if we need more nodes in the future.
Installing:
# Install Java
sudo apt-get update
sudo apt-get install default-jre
# Get Lavalink
mkdir ~/lavalink
cd lavalink
wget download_url_for_latest_lavalink
# Create Config based on sample config
nano application.yml
# Allow configured ports
sudo ufw allow 2333 # HTTP API
sudo ufw allow 8080 # WS
Running as a service:
# Create run.sh, which will run lavalink
nano run.sh
# Then write this inside
java -jar /home/user/lavalink/Lavalink.X.X.jar
# Make executable
chmod +x run.sh
# Create service
sudo nano /lib/systemd/system/lavalink.service
The service:
[Unit]
Description=LavalinkServer
[Service]
WorkingDirectory=/home/user/lavalink
ExecStart=/home/user/lavalink/run.sh
Type=simple
Restart=always
[Install]
WantedBy=multi-user.target
Starting:
sudo systemctl daemon-reload
sudo systemctl start lavalink
sudo systemctl enable lavalink
First we need to setup eris-lavalink (briantanner/eris-lavalink
).
In the following code, a config
object will be referenced. The object should look similar to this:
{
"lavalink": {
"nodes": [
{ "host": "<IP_ADDRESS>", "port": 8080, "region": "us", "password": "youshallnotpass" }
],
"regions": {
"eu": ["eu", "amsterdam", "frankfurt", "russia", "hongkong", "singapore", "sydney"],
"us": ["us", "brazil"]
}
}
}
First we need to replace eris.voiceConnections
with eris-lavalink.PlayerManager
:
mirai.once('ready', () => {
const { PlayerManager } = require('eris-lavalink');
if (!(mirai.voiceConnections instanceof PlayerManager)) {
mirai.voiceConnections = new PlayerManager(mirai, config.lavalink.nodes, {
numShards: config.eris.maxShards,
userId: mirai.user.id,
regions: config.lavalink.regions,
defaultRegion: 'us',
});
}
})
Now we'll create two helper functions to use with music commands
async function resolveTracks(node, search) {
let result = await axios.get(`http://${node.host}:2333/loadtracks?identifier=${search}`, {
headers: {
'Authorization': node.password,
'Accept': 'application/json'
}
});
if (!result)
throw 'Unable play that video.';
return result.data; // array of tracks resolved from lavalink
}
async function getPlayer(channel, allowCreate = false) {
if (!channel || !channel.guild)
throw 'Not a guild channel';
let player = mirai.voiceConnections.get(channel.guild.id);
if (player)
return player;
if (!allowCreate) // Stop if not joining voice
return null;
let options = { };
// enable this if you have nodes for each region
// if (channel.guild.region)
// options.region = channel.guild.region;
return await mirai.voiceConnections.join(channel.guild.id, channel.id, options);
}
resolveTracks
will take user-inputted URLs and return a base64 string for Lavaplayer and metadata for the track.
getPlayer
will allow us to get the current voice player, and create new ones if one doesn't already exist.
By setting the region
in options
, eris-lavalink will create a player on the node for that region. This allows for minimal latency between Lavalink nodes and Discord's voice servers.
With all of this we can now send audio to voice channels. An example play function is shown below.
async function play(channel, url) {
try {
let isNew = !mirai.voiceConnections.has(channel.guild.id),
player = await getPlayer(channel, true),
tracks = await resolveTracks(nodes[0], url);
if (isNew) {
player.setVolume(20);
player.on('disconnect', err => {
if (err)
return logger.error('Lavalink plyer disconnected with error:', err);
return logger.info('Lavalink player disconnected');
});
player.on('error', err => logger.error('Lavalink plyer error:', err.toString()));
player.on('end', data => {
// REPLACED reason is emitted when playing without stopping
if (data.reason && data.reason === 'REPLACED')
return;
// Play next in queue
});
}
player.play(tracks[0].track);
return tracks[0]; // Use this to tell the user "Now playing {title} ({length})"
} catch (error) {
logger.warn('Error playing music:', error);
throw error;
}
}
This is fine for playing listen.moe, but we can do so much more! Using this we can add a fully-featured music module to Mirai. Currently Lavalink supports the following sources:
What a waste using it for just one http stream! It was decided to open up the module for certain sources. After that planned features kept stacking up: User-made radios/playlists, queue commands, skipping, pausing, seeking, etc. They'll all be making their way into the music module after the beta launches in December.
That's all for now. Hopefully you're excited for the launch of Mirai Music Beta in update 4.11 (Coming Soon™). For questions or extra leeks go to discord.gg/rkWPSdu.


'Breakbone fever': Dengue cases soar to record high
by AFPISLAMABAD: A record-breaking 44,000 people have been infected with mosquito-borne dengue in Pakistan this year, a senior health official said on Wednesday, as increased outbreaks linked to rising temperatures and erratic rainfall ravage other parts of Asia.
Dr Rana Safdar, a senior official at the National Institute of Health (NIH) said that the figure is a huge leap from the previous record of 27,000 infections in 2011.
Safdar said 66 people had been killed by the disease so far in 2019, compared to 370 in 2011.
He blamed climate change for the surge, but would not elaborate. The government was “employing all available resources at its disposal to contain the problem”, he said.
Physician Dr Mahseema Siddique, who treats dengue patients, blamed the government for the rise in cases, saying local authorities in Punjab and Islamabad in particular had failed to take precautions such as covering up water reservoirs or spraying anti-dengue chemicals.
“They woke up only after hundreds of people got infected and that was too late. There are a large number of areas where spray teams could not make it,” he said.
The highest number of patients was recorded in Islamabad and Rawalpindi, where 12,433 people were found infected with the virus.
Dengue is transmitted mainly by the Aedes Aegypti mosquito, which thrives in densely-populated tropical climates and breeds in stagnant pools of water.
Mosquitoes pick up the virus from infected humans — even asymptomatic ones — and pass it along to other people through bites.
Infections have steadily climbed across the globe since the 1970s due to rising temperatures and irregular monsoon rains linked to climate change, which allow for ideal mosquito breeding conditions.
But this year outbreaks have rampaged through Southeast Asia in particular, infecting hundreds of thousands, killing hundreds, and crippling health care systems as governments struggle to contain the untreatable virus.
Dengue is mostly found in crowded areas, and breakneck urbanisation across the globe has helped the virus thrive.
Dubbed “breakbone fever”, it inflicts suffers with intense flu-like symptoms: severe headache, pain behind the eyes, full-body aches, high fever, nausea, vomiting, swollen glands or rash.


Asmodai Moderator (396258 WTM bucks)
∞
Asmodai
- Add Asmodai to your Movie Fellows
- Asmodai was last seen 18 minutes ago
Asmodai´s Gallery
Favourite Snapshots
Sorry, no favourite snapshots yet.
Asmodai's Memorabilia
Asmodai's Quiz Stats
Asmodai has solved 34169 Feature Films and 61184 Snapshots in total. Asmodai's Snapshots received an overall Rating of 7.18 and were favourited an average 1.96 times. Asmodai has 34 SotDs.
Feature Film Score
- 212.(187)
15.68 %
zglurb - 213.(186)
15.6 %
Winouz - 214.(180)
15.59 %
Asmodai - 215.(185)
15.52 %
thitske - 216.(184)
15.44 %
hellonearth
Upload Score
Asmodai's Movie Reviews
-
Author:
Asmodai
Ack!
for Mars Attacks!
- Author: Asmodai A Clockwork Orange
-
Author:
Asmodai
Err... I forgot
for Memento


Name: enter your org nickname
Example: Production
Host (optional): enter your server
Example: na1.salesforce.com
ID (optional): enter your org ID
Example: 00Dd00000001111
To find it, log into salesforce, view the page source and search the string "Theme3/0". The "0" is the first digit of your org ID
Tag: 1 or 2 characters tat will be added to salesforce.com favicon
Example: P


{% extends "layout-noback.html" %} {% block page_title %} Child Benefit - GOV.UK {% endblock %} {% block content_with_banner %}
You can claim Child Benefit if:
You need your National Insurance number and your bank account details.
You can apply for Child Benefit on behalf of someone else, as long as you have access to their details.


Lesson #2
All rights reserved. No part of this presentation may be reproduced or utilized in form or by any electronic means, including photocopying, without permission in writing from the author.


Started studying BSIT at Polytechic University of the Philippines. I became one of the top students and an active organization officer.
I started working for a web development company here in the Philippines as an OJT and continued to work as a regular employee after my graduation. I have gathered experience about wordpress and handled many foreign clients.
It's such a nice feeling delivering best output to my clients, I really like to make them happy.


The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind. The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained systems: from simple embedded environmental sensors and LED wearables to sophisticated smart watches and IoT wireless gateways. The Zephyr kernel supports multiple architectures, including ARM Cortex-M, Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of `supported boards`_. .. below included in doc/introduction/introduction.rst .. start_include_here Getting Started *************** Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview, and the documentation's `Getting Started Guide`_ to start developing. Community Support ***************** Community support is provided via mailing lists and Slack; see the Resources below for details. Resources ********* Here's a quick summary of resources to help you find your way around: * **Help**: `Asking for Help Tips`_ * **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_) * **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main repository; https://elixir.bootlin.com/zephyr/latest/source contains a searchable index * **Releases**: https://zephyrproject.org/developers/#downloads * **Samples and example code**: see `Sample and Demo Code Examples`_ * **Mailing Lists**<EMAIL_ADDRESS>and<EMAIL_ADDRESS>are the main user and developer mailing lists, respectively. You can join the developer's list and search its archives at `Zephyr Development mailing list`_. The other `Zephyr mailing list subgroups`_ have their own archives and sign-up pages. * **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds The<EMAIL_ADDRESS>mailing list archives the CI (shippable) nightly build results. * **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com. Use this `Slack Invite`_ to register. * **Contributing**: see the `Contribution Guide`_ * **Wiki**: `Zephyr GitHub wiki`_ * **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues * **Security Issues**: Email<EMAIL_ADDRESS>to report security issues; also see our `Security`_ documentation. Security issues are tracked separately at https://zephyrprojectsec.atlassian.net. * **Zephyr Project Website**: https://zephyrproject.org .. _Slack Invite: https://tinyurl.com/y5glwylp .. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html .. _Zephyr Documentation: http://docs.zephyrproject.org .. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html .. _Getting Started Guide: http://docs.zephyrproject.org/latest/getting_started/index.html .. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html .. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki .. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel .. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups .. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html .. _Security: http://docs.zephyrproject.org/latest/security/index.html .. _Asking for Help Tips: https://docs.zephyrproject.org/latest/guides/getting-help.html


My blog
Home
(current)
About
Services
Contact
{{item[field.name].value}}
Load more...
Prev
{{pageNumber}}
Next


The main admin settings page consists of:
For information on the Server Registry settings see remoteservers.html.
Specify the RAMADDA administator email for when RAMADDA sends email to users. The Mail Server is the smtp mail server that RAMADDA can use to send email. If this is not defined then user's cannot reset their passwords via email.
The anonymous uploads Max Directory Size is the maximum size of the files that are uploaded through the anonymous upload facility. This cap keeps rogue users from filling up the disk via anonymous uploads.
The Cache Size is the size of the cached files that RAMADDA generates (e.g., ftp files). The cache is in: <ramadda home>/tmp/cache
If you are running the Unidata LDM system on the server machine you can allow RAMADDA services to inject files into the LDM queue by specifying the path to the pqinsert program and the queue location.
The File System Access field under the Access admin section is the list of server directories that can RAMADDA can serve files from. For security any files that RAMADDA provides access to must be either in the locally managed storage area under the RAMADDA home directory or they must be under the directory tree or trees specified in this field. For example, when you have a harvester that does not move the files to RAMADDA storage then the directory you are harvesting needs to be listed here. Likewise, any Local File View entry needs to be listed here as well.The Translations field is a quick way to define new phrases to use in place of the default phrases that RAMADDA uses.
The Facebook Comments key allows you to integerate the Facebook comments facility. Contact RAMADDA support for more information.
If the Google Maps Key is defined then there is a Google Earth plugin display capability provided. You need to get an API key for each domain name and port you might be running RAMADDA under. The format of the admin setting is (one per line):
hostname1;API key1;premier_opts1 hostname2;API key2;premier_opts2 hostname2:<port>;API key3The premier_opts is optional. e.g.:
localhost;ABQIAAAA-JXA0-.... ramadda.org;ZXQIAAAA-JXA0-.... yourhost.org:9090;ZXQIAAAA-JXA0-.... noaa.gov;;client=gme-yourclientid&sensor=falseNotes:
ramadda.master.enabled=trueOnce enabled and with RAMADDA restarted there should be a "Local Repositories" section in the Admin pages. This page will list all of the children repositories and their status and allow you to create new repositories. When you create a new repository you need to specify an ID (e.g. "testrepos"), and an admin account password. This results in a repository that can be accessed through the URL:
http://hostname/repository/repos/testrepos/...Web login session is not shared among virtual repositories but you should be able to login with the user name and password from the parent repository as well as with the account information specified for the new repository. Note, the children repositories themselves can contain virtual repositories. It is easy to move a child repository into its own RAMADDA server. First, from the Admin Local Repositories page stop the RAMADDA that you want to move. On the file system of the server under the RAMADDA home directory there should be a sub-directory "repositories". The RAMADDA home directories for each virtual repository is placed there (e.g., "repository_testrepos"). Simply move the virtual repository home directory to another machine and use it as the main RAMADDA home dir. Note, for space reasons, when moving the directory you can delete the plugins, resources, and tmp sub-directories. If you delete the plugins directory you will need to re-install the plugins on the new machine. You can also move a virtual repository into another RAMADDA as a new virtual repository. Simply copy (or move) the virtual repository home directory into the "repositories" sub-directory (create it if needed) of the target RAMADDA. Then, through the target RAMADDA's admin screen add the new repository. RAMADDA will note that there is already a home directory with a database, etc., and will use that instead of creating a new one.


A simple sequential scheduler for the RC80 telescope at Piszkéstető. It uses the astroplan package and a modified class of SequentialScheduler. Besides the default constrains it uses the ForbiddenPositionConstraint and ForestConstraint especially designed for this telescope. Performs a very primitive input file check. If a line is not valid, it will be rejected from the input. If plotting is enabled it creates two plots with the scheduled objects. The modified SequentialScheduler Class and the plot_constraints (in debug mode) uses multiprocessing, to speed up schedule and plot generation.
For the quasi robotic use of the RC80 telescope an automatic observing script generator pipeline was made. The main part of this was written in bash, by Levente Kriskovics and this bash pipeline uses the scheduler script for determining the final list of obejcts for the telescope.
You usually don't have to do anything to get it work on m51. In case there is an installation needed, follow these steps:
Usually you don't have to run the scheduler on its own. Run the full pipeline with the TCS80_generate.sh --start now --sequential --focus 7.95 --plot command on m51. If you want a more detaild output you can use the --verbose switch, or if you suspect an error, use the --debug switch too. You can find more information about the usage of these scripts here


|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This interface describes the AXIS Deserializer. A compliant implementiation must extend either the AXIS SoapHandler (org.apache.axis.message.SOAPHandler) or the AXIS DeserializerImpl (org.apache.axis.encoding.DeserializerImpl) The DeserializerImpl provides a lot of the default behavior including the support for id/href. So you may want to try extending it as opposed to extending SoapHandler. An Axis compliant Deserializer must provide one or more of the following methods: public <constructor>(Class javaType, QName xmlType) public <constructo>() This will allow for construction of generic factories that introspect the class to determine how to construct a deserializer. The xmlType, javaType arguments are filled in with the values known by the factory.
| Method Summary | |
boolean |
componentsReady()
Some deserializers (ArrayDeserializer) require all of the component values to be known before the value is complete. |
void |
endElement(java.lang.String namespace,
java.lang.String localName,
DeserializationContext context)
endElement is called when the end element tag is reached. |
QName |
getDefaultType()
|
java.lang.Object |
getValue()
Get the deserialized value. |
java.lang.Object |
getValue(java.lang.Object hint)
If the deserializer has component values (like ArrayDeserializer) this method gets the specific component via the hint. |
java.util.Vector |
getValueTargets()
Get the Value Targets of the Deserializer. |
void |
moveValueTargets(Deserializer other)
Move someone else's targets to our own (see DeserializationContext) The DeserializationContext only allows one Deserializer to wait for a unknown multi-ref'ed value. |
void |
onEndElement(java.lang.String namespace,
java.lang.String localName,
DeserializationContext context)
onEndElement is called by endElement. |
SOAPHandler |
onStartChild(java.lang.String namespace,
java.lang.String localName,
java.lang.String prefix,
org.xml.sax.Attributes attributes,
DeserializationContext context)
onStartChild is called on each child element. |
void |
onStartElement(java.lang.String namespace,
java.lang.String localName,
java.lang.String prefix,
org.xml.sax.Attributes attributes,
DeserializationContext context)
This method is invoked after startElement when the element requires deserialization (i.e. |
void |
registerValueTarget(Target target)
For deserializers of non-primitives, the value may not be known until later (due to multi-referencing). |
void |
removeValueTargets()
Remove the Value Targets of the Deserializer. |
void |
setChildValue(java.lang.Object value,
java.lang.Object hint)
If the deserializer has component values (like ArrayDeserializer) this method sets the specific component via the hint. |
void |
setDefaultType(QName qName)
In some circumstances an element may not have a type attribute, but a default type qname is known from information in the container. |
void |
setValue(java.lang.Object value)
Set the deserialized value. |
void |
startElement(java.lang.String namespace,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attributes,
DeserializationContext context)
This method is invoked when an element start tag is encountered. |
void |
valueComplete()
The valueComplete() method is invoked when the end tag of the element is read. |
| Methods inherited from interface javax.xml.rpc.encoding.Deserializer |
getMechanismType |
| Methods inherited from interface org.apache.axis.encoding.Callback |
setValue |
| Method Detail |
public java.lang.Object getValue()
public void setValue(java.lang.Object value)
value
- Object representing deserialized valuepublic java.lang.Object getValue(java.lang.Object hint)
public void setChildValue(java.lang.Object value, java.lang.Object hint) throws org.xml.sax.SAXException
value
- Object representing deserialized value or null
org.xml.sax.SAXException
public void setDefaultType(QName qName)
public QName getDefaultType()
public void registerValueTarget(Target target)
target
- Targetpublic java.util.Vector getValueTargets()
public void removeValueTargets()
public void moveValueTargets(Deserializer other)
other
- is the Deserializer to copy targets from.public boolean componentsReady()
public void valueComplete() throws org.xml.sax.SAXException
org.xml.sax.SAXException
public void startElement(java.lang.String namespace, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes, DeserializationContext context) throws org.xml.sax.SAXException
namespace
- is the namespace of the elementlocalName
- is the name of the elementqName
- is the prefixed qName of the elementattributes
- are the attributes on the element...used to get the typecontext
- is the DeserializationContext
Normally a specific Deserializer (FooDeserializer) should extend DeserializerImpl.
Here is the flow that will occur in such cases:
1) DeserializerImpl.startElement(...) will be called and do the id/href/nill stuff.
2) If real deserialization needs to take place DeserializerImpl.onStartElement will be
invoked, which will attempt to install the specific Deserializer (FooDeserializer)
3) The FooDeserializer.startElement(...) will be called to do the Foo specific stuff.
This results in a call to FooDeserializer.onStartElement(...) if startElement was
not overridden.
4) The onChildElement(...) method is called for each child element. Nothing occurs
if not overridden. The FooDeserializer.onStartChild(...) method should return
the deserializer for the child element.
5) When the end tag is reached, the endElement(..) method is invoked. The default
behavior is to handle hrefs/ids, call onEndElement and then call the Deserializer
valueComplete method.
So the methods that you potentially want to override are:
onStartElement, onStartChild, componentsReady, set(object, hint)
You probably should not override startElement or endElement.
If you need specific behaviour at the end of the element consider overriding
onEndElement.
See the pre-existing Deserializers for more information.
org.xml.sax.SAXException
public void onStartElement(java.lang.String namespace, java.lang.String localName, java.lang.String prefix, org.xml.sax.Attributes attributes, DeserializationContext context) throws org.xml.sax.SAXException
namespace
- is the namespace of the elementlocalName
- is the name of the elementprefix
- is the prefix of the elementattributes
- are the attributes on the element...used to get the typecontext
- is the DeserializationContext
org.xml.sax.SAXException
public SOAPHandler onStartChild(java.lang.String namespace, java.lang.String localName, java.lang.String prefix, org.xml.sax.Attributes attributes, DeserializationContext context) throws org.xml.sax.SAXException
namespace
- is the namespace of the child elementlocalName
- is the local name of the child elementprefix
- is the prefix used on the name of the child elementattributes
- are the attributes of the child elementcontext
- is the deserialization context.
org.xml.sax.SAXException
public void endElement(java.lang.String namespace, java.lang.String localName, DeserializationContext context) throws org.xml.sax.SAXException
namespace
- is the namespace of the child elementlocalName
- is the local name of the child elementcontext
- is the deserialization context
org.xml.sax.SAXException
public void onEndElement(java.lang.String namespace, java.lang.String localName, DeserializationContext context) throws org.xml.sax.SAXException
namespace
- is the namespace of the child elementlocalName
- is the local name of the child elementcontext
- is the deserialization context
org.xml.sax.SAXException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


--- layout: post title: Rejected sketch date: '2015-01-26T07:30:17+01:00' categories: - Sketches - Ello Mobile picture_url: https://film-Storyboards.tumblr.com/post/109200455722 ---


Array of object for context menu.
Array, default = []
User this property if you want to define context menu for the grid. In your .onMenuClick
event you will selected menu item in the event object.
This property can be set during object creation:
Or any time during run-time:


From the newsletter ... |
|
Death -> New LifeThe word "EASTER" for most people associates automatically with "EGGS" - foil wrapped chocolate, cream filled or sugar coated - but all symbols of new life. During the half-term the children of Blake School have enjoyed seeing the new life of baby chicks, hatching from eggs and growing fast. Spring is a time when we enjoy the new life so evident all around us. But at Easter we are not just celebrating the new life of Spring, but the new life given by our Father God - first to his Son, Jesus, by raising him from the dead, and then to those who are his people. For Jesus, that new life had to be preceded by an excruciatingly painful death. There was the physical pain of crucifixion, but even more significant, the pain of being separated from his Father as he took the punishment for our sin. Death -> New Life. As a family we have experienced the mixed emotions of death and new life deeply in the last few weeks. On the day of the funeral for my mother-in-law, the last of our parents, the death of that generation, our first grandchild was born - new life for our family. In the funeral we read from the Psalms "from everlasting to everlasting the Lord's love is with those who fear him, and his righteousness with their children's children - with those who keep his covenant and remember to obey his precepts." Death -> New Life. As the church in Cogges and South Leigh we are also experiencing the gift of new life. Last summer we said goodbye to Stephen Bessent and his family as they moved from Witney. Many of us have mourned their loss as we have missed the joy of our friendship with them, but with the induction of Andrew Sweeney as our new vicar, we anticipate the opportunities of new life and growth. Death -> New Life. But what about you? Have you experienced the joy of a real personal relationship with God, through the salvation from sin that Jesus made possible by his death that first Easter? Have you put to death the sinful life and embraced new life in Jesus? It's the most important life-changing thing you can do. Death -> New Life ....... in JESUS. Cogges Parish | Other articles | Previous issue | Feedback © 2002; Published in Cogges Parish monthly newsletter, April 2002 |


|
scp-bot
0.9
Application to synchronize files and folders across computer systems using SCP.
|
Files | |
| file | ArgParser.cpp |
| file | ArgParser.h [code] |
| file | Client.cpp |
| file | Client.h [code] |
| file | FileUtils.cpp |
| file | FileUtils.h [code] |
| file | logging.cpp |
| file | logging.h [code] |
| file | main.cpp |
| file | OctoSyncArgs.cpp |
| file | OctoSyncArgs.h [code] |
| file | run.cpp |
| file | run.h [code] |
| file | Server.cpp |
| file | Server.h [code] |
| file | Socket.cpp |
| file | Socket.h [code] |
| file | StringQueue.cpp |
| file | StringQueue.h [code] |
| file | SyncBot.cpp |
| file | SyncBot.h [code] |
| file | SyncDir.cpp |
| file | SyncDir.h [code] |


Status of the nomadbase
* Going to Lisbon
* Looking for the place
* Open
more details..
Hello
, welcome to
Nomadbase
Lisbon
hopefully opened till end of January 2016


Alan Browne starts as Mick McCarthy names Ireland team to face Denmark
Alan Browne is the surprise inclusion in the Republic of Ireland team to face Denmark tonight.
Although the Corkman played in the 2-0 loss to Switzerland, his inclusion in the starting team for last Thursday's friendly against New Zealand appeared to rule him out of the running.
However, the Preston midfielder is included on the right of a 4-5-1, which sees Conor Hourihane return alongside Glenn Whelan and Jeff Hendrick in the centre of the park.
The other two changes from the Switzerland game see Matt Doherty come in at right-back and David McGoldrick return up front.
The suspended Seamus Coleman, the injured Aaron Connolly, and James Collins are the three to drop out of the team.
Shane Duffy will captain the team in Coleman's absence.
Ireland need a win to seal their place at Euro 2020, although they are guaranteed a play-off should they fail to do so.


The Real Time Tracking Protocol (RTTrP) is a suite of protocols developed to transmit tracked motion information between systems.
RTTrP is comprised of two separate protocols which share a common header:
Note: As of August 19th, 2014, Tracking Protocol is renamed to RTTrPM, On-the-Fly Merging (OTFM) is renamed to RTTrPL and common elements shared between the protocols are now named RTTrP.
RTTrP is simply a packet header, which encapsulates RTTrPL, and RTTrPM packets. An RTTrP Packet contains any number of packet modules, either Output modules (RTTrPL) or Trackable modules (RTTrPM), but not both. Each type contains other packet modules nested within, which contain further information.
For RTTrPL, Output modules contain a number of nested modules which contain information about specific DMX universes and the channels being controlled. Whereas for RTTrPM, Trackable modules contain other modules which provide information about the motion of a specific tracked object.
RTTrPM is the protocol that is used to stream to third party listeners that are interested in the position and orientation of a tracking point, relative to the origin of the coordinate system (as defined by the user). The RTTrPM protocol should be sent at a fixed rate. However, if there is no motion data available, then RTTrPM should stop sending (unless a form of heartbeat is implemented).
Likewise, the Zone Collision Detection module should only send Zones that the Trackable is actively colliding (inside) with. If a Zone is not sent, it is assumed the collision is not happening and the Trackable is outside of the Zone.
RTTrPL is used to stream lighting fixture and DMX information to third parties interested in overwriting fixture DMX values sent from a lighting console, for control over said fixtures. RTTrPL output should be triggered by motion data, DMX input, show starting/stopping, and third party requests. As such, it should not send at a fixed rate like the RTTrPM protocol.
The Integer Signature field is always one of two values to define Endianness of the integer type fields in a packet. To distinguish an RTTrPL packet from an RTTrPM packet, the Floating Point Signature Fields should be set to the following:
Lastly, the context field is a user definable field that can be used for any purpose.
The RTTrP Repository has stub code available which contains packet definitions of both RTTrPM and RTTrPL. Please visit the following for Python and C++ code respectively:
| Field | Name | Type | Size (bytes) | Description |
|---|---|---|---|---|
| 0 | Header / Integer Signature | UInt16 | 2 | Big Endian: 0x4154, Little Endian: 0x5441 |
| 1 | Header / Float Signature | UInt16 | 2 | Big Endian: 0x4434 (RTTrPL) / 0x4334 (RTTrPM), Little Endian: 0x3444 (RTTrPL) / 0x3443 (RTTrPM) |
| 2 | Header Version | UInt16 | 2 | Value = 0x0002, will increase if header changes |
| 3 | Packet ID | UInt32 | 4 | Packet sequence number |
| 4 | Packet Format | UInt8 | 1 | Value = 0x00 (Raw), 0x01 (Protobuf), 0x02 (Thrift) |
| 5 | Size | UInt16 | 2 | Size of packet in bytes including header |
| 6 | Context | UInt32 | 4 | User definable |
| 7 | Number of Packet Modules | UInt8 | 1 | |
| 8 | Packet Module 0 | Packet Module | Variable | |
| 9 | Packet Module 1 | Packet Module | Variable | |
| ... | ... |
A protocol version number is included in the RTTrP packet header. Users of previous versions of the protocol should always check the “type” field of modules, and ignore new or unrecognized module types. There can be multiple levels of modules within modules and the order of module types within a module is not guaranteed.
For application specific use cases and systems which have implemented RTTrP, please visit the Systems and Applications page.
If you have written to RTTrP and would like to have a description of your implementation included under the Systems and Applications section of this website, please submit the RTTrP Implementation Form.
If you have any questions about the protocol or any information on this site, please send an e-mail using the contact form.


An American multinational technology company based in Seattle, Washington, which focuses on e-commerce, cloud computing, digital streaming, and artificial intelligence.
Check it outAn American multinational technology company headquartered in Cupertino, California, that designs, develops and sells consumer electronics, computer software, and online services.
Check it outAn American multinational technology company with headquarters in Redmond, Washington. It develops, manufactures, licenses, supports, and sells computer software, consumer electronics, personal computers, and related services.
Check it outA Japanese multinational consumer electronics and video game company headquartered in Kyoto. The company was founded in 1889 as Nintendo Karuta by craftsman Fusajiro Yamauchi and originally produced handmade hanafuda playing cards.
Check it outAn American multinational computer software company. Incorporated in Delaware and headquartered in San Jose, California, it has historically focused upon the creation of multimedia and creativity software products, with a more recent foray into digital marketing software.
Check it out


Before Change
unlabeled_uncertainty = np.concatenate((unlabeled, np.expand_dims(uncertainty_scores, axis=1)), axis=1)
unlabeled_uncertainty_copy = np.copy(unlabeled_uncertainty)
instance_index_ranking = deque()
ceiling = np.minimum(unlabeled.shape[0], n_instances)
// TODO (dataframing) there must be a better way...maybe?
for _ in range(ceiling):
After Change
unlabeled_uncertainty_copy = np.copy(unlabeled_uncertainty)
// Define our record container and the maximum number of records to sample.
instance_index_ranking = []
ceiling = np.minimum(unlabeled.shape[0], n_instances)
// TODO (dataframing) is there a better way to do this? Inherently sequential.
for _ in range(ceiling):


Notes
Regular Expressions
- Regular Expression is a Pattern-Matching Machine
URLS
- URL : Uniform Resource Locator.
- There are two important acronyms to understanding how the internet works: IETF & RFC.
- IETF : Internet Engineering Task Force.
- Open standards organization that creates voluntary standards to maintain and improve the usability and interoperability of the Internet.
- RFC : Request for Comments.
- Document created by programmers, engineers, and scientists in the form of a memorandum.
- When enough people have reviewed the RFC, the IETF will change it’s status to ‘Internet Standard’ which means that everyone should comply with if they decide to implement the standard.
What is this “resource" thing?
- The term resource is always used in a general sense for whatever might be identified by a URI.
- Common examples include an electronic document, an aimge or a source of information with a consistnet purpose.
The components of a URL
Reading RFCs
- RFC’s are basically unappealing and technical, not fun to read at all.


--- layout: page title: Let's Connect! menu_name: Contact Me image: /images/banner-02.jpg permalink: /contact ---


A Line chart with color bands
This goes in the documents header:
<script src="RGraph.common.core.js"></script>
<script src="RGraph.line.js"></script>
Put this where you want the chart to show up:
<canvas id="cvs" width="950" height="350">
[No canvas support]
</canvas>
This is the code that generates the chart:
<script>
// Data for the chart
data = [80,90,70,90,80,80,70,20,10,60,95,97,90,50,20,85,70,80,80,70,90,80,90,90];
// Configuration for the chart
conf = {
linewidth: 3,
// These are an alternate set of colors (that aren't currently used
fills: ['#F2D8D9','#F9E7D3','#DCEAD9','#D9E7F4'],
// Comment this line out to use the colors above instead
fills: ['rgba(255,0,0,0.25)','rgba(255,255,0,0.25)','rgba(0,255,0,0.25)','rgba(0,0,255,0.25)'],
labels: [
'','Q1\n2014','',
'','Q2\n2014','',
'','Q3\n2014','',
'','Q4\n2014','',
'','Q1\n2015','',
'','Q2\n2015','',
'','Q3\n2015','',
'','Q4\n2015',''
],
filled: true,
backgroundGridColor: '#eee',
backgroundGridVlines: false,
backgroundGridBorder: false,
backgroundGridAutofitNumhlines: 4,
noaxes: true,
tickmarks: 'circle',
spline: true,
unitsPost: '%',
gutterLeft: 50,
numxticks: 7,
ylabelsCount: 4,
scaleDecimals: 1,
textColor: 'gray'
};
// Get references to the canvas and context
ca = document.getElementById('cvs');
co = ca.getContext('2d');
// First draw the chart so we can get the scale points
line = drawChart({
data: data,
conf: conf,
clipX: 0,
clipY: 0,
clipW: 1500,
clipH: 500
});
// These are the coordinates that are used for the color bands
y0 = 0;
y1 = line.getYCoord(75);
y2 = line.getYCoord(50);
y3 = line.getYCoord(25);
// Start with a fresh, clear canvas
RGraph.clear(line.canvas);
//
// This is the function that draws a line chart based on the
// configuration that is passed to it.
//
function drawChart (opt)
{
co.save();
// Draw the clipping region
co.rect(
opt.clipX,
opt.clipY,
opt.clipW,
opt.clipH
);
co.clip();
// Draw a chart (because the canvas is clipped only part of it
// is visible)
var line = new RGraph.Line({
id: 'cvs',
data: opt.data,
options: opt.conf
}).set({
colors: ['black'],
fillstyle: opt.conf.fills[opt.index]
}).draw();
co.restore();
return line;
}
// Draw the red area
drawChart({data: data, conf: conf, index: 0, clipX: 0, clipY: y0, clipW: 1000, clipH: y1});
// Draw the yellow area
drawChart({data: data, conf: conf, index: 1, clipX: 0, clipY: y1, clipW: 1000, clipH: y2 - y1});
// Draw the green area
drawChart({data: data, conf: conf, index: 2, clipX: 0, clipY: y2, clipW: 1000, clipH: y3 - y2});
// Draw the blue area
drawChart({data: data, conf: conf, index: 2, clipX: 0, clipY: y3, clipW: 1000, clipH: ca.height - y3});</script>


SRFI 19: Time Data Types and Procedures
This is a Chibi Scheme port of
the Standard Implementation
of SRFI 19.
The bulk of the code is from the standard implementation, with only a few tweaks to
make it work under Chibi Scheme. The test suite has been expanded so that each exported
function is exercised at least once.
The full source of this version is available
on GitHub.
Many thanks to Will Fitzgerald and the SRFI Editors for providing the SRFI and the standard
implementation code.
Extensions to SRFI 19
This implementation has two new format directives that I'd really rather were better supported
everywhere.
-
~g - day of month. It just outputs the day of the month (1...31). The other two
standard directives both specify either blank padding or zero padding but there's no option
for no padding.
-
~u - day ordinal suffix. Outputs the locale-specific suffix for the day of the
month. For example "rd" for 3, "th" for 6, or "st" for 21. This allows you to format dates
as "Sunday, 1st of January 2017". It's possible to insert the "st" in such a format string
manually but that doesn't seem a clean approach.


Go to the source code of this file.
|
| void | le_info_ConnectService (void) |
| |
| void | le_info_DisconnectService (void) |
| |
| le_result_t | le_info_GetImei (char *imei, size_t imeiNumElements) |
| |
| le_result_t | le_info_GetFirmwareVersion (char *version, size_t versionNumElements) |
| |
| le_result_t | le_info_GetBootloaderVersion (char *version, size_t versionNumElements) |
| |
| le_result_t | le_info_GetDeviceModel (char *modelPtr, size_t modelPtrNumElements) |
| |
| le_result_t | le_info_GetMeid (char *meidStr, size_t meidStrNumElements) |
| |
| le_result_t | le_info_GetEsn (char *esnStr, size_t esnStrNumElements) |
| |
| le_result_t | le_info_GetMdn (char *mdnStr, size_t mdnStrNumElements) |
| |
| le_result_t | le_info_GetPrlVersion (uint16_t *prlVersionPtr) |
| |
| le_result_t | le_info_GetPrlOnlyPreference (bool *prlOnlyPreferencePtr) |
| |
| le_result_t | le_info_GetMin (char *msisdnStr, size_t msisdnStrNumElements) |
| |
| le_result_t | le_info_GetNai (char *naiStr, size_t naiStrNumElements) |
| |
| le_result_t | le_info_GetManufacturerName (char *mfrNameStr, size_t mfrNameStrNumElements) |
| |
| le_result_t | le_info_GetPriId (char *priIdPnStr, size_t priIdPnStrNumElements, char *priIdRevStr, size_t priIdRevStrNumElements) |
| |
| le_result_t | le_info_GetPlatformSerialNumber (char *platformSerialNumberStr, size_t platformSerialNumberStrNumElements) |
| |
Legato Modem Information include file.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.
| #define LE_INFO_IMEI_MAX_BYTES 16 |
Maximum IMEI length (15 digits) One extra byte is added for the null character.
| #define LE_INFO_IMEI_MAX_LEN 15 |
Maximum IMEI length (15 digits), excluding any termination character.
| #define LE_INFO_MAX_ESN_BYTES 33 |
Maximum length of an Electronic Serial Number (ESN) string. One extra byte is added for the null character.
| #define LE_INFO_MAX_ESN_LEN 32 |
Maximum length of an Electronic Serial Number (ESN) string, excluding any termination character.
| #define LE_INFO_MAX_MDN_BYTES 33 |
Maximum length of an Mobile Directory Number (MDN) string. One extra byte is added for the null character.
| #define LE_INFO_MAX_MDN_LEN 32 |
Maximum length of an Mobile Directory Number (MDN) string, excluding any termination character.
| #define LE_INFO_MAX_MEID_BYTES 33 |
Maximum length of an Mobile Equipment Identifier (MEID) string. One extra byte is added for the null character.
| #define LE_INFO_MAX_MEID_LEN 32 |
Maximum length of an Mobile Equipment Identifier (MEID) string, excluding any termination character.
| #define LE_INFO_MAX_MFR_NAME_BYTES 129 |
Maximum length of an Manufacturer Name string. One extra byte is added for the null character.
| #define LE_INFO_MAX_MFR_NAME_LEN 128 |
Maximum length of an Manufacturer Name string, excluding any termination character.
| #define LE_INFO_MAX_MIN_BYTES 33 |
Maximum length of an Mobile Station ISDN Number (MSISDN) string. One extra byte is added for the null character.
| #define LE_INFO_MAX_MIN_LEN 32 |
Maximum length of an Mobile Station ISDN Number (MSISDN) string, excluding any termination character.
| #define LE_INFO_MAX_MODEL_BYTES 257 |
Maximum length of a model string One extra byte is added for the null character.
| #define LE_INFO_MAX_MODEL_LEN 256 |
Maximum length of a model string, excluding any termination character.
| #define LE_INFO_MAX_NAI_BYTES 73 |
Maximum length of an Mobile Station ISDN Number (NAI) string. One extra byte is added for the null character.
| #define LE_INFO_MAX_NAI_LEN 72 |
Maximum length of an Mobile Station ISDN Number (NAI) string, excluding any termination character.
| #define LE_INFO_MAX_PRIID_PN_BYTES 8 |
Maximum length of the Product Requirement Information Identifier (PRI ID) Part Number string. One extra byte is added for the null character.
| #define LE_INFO_MAX_PRIID_PN_LEN 7 |
Maximum length of the Product Requirement Information Identifier (PRI ID) Part Number string , excluding any termination character.
| #define LE_INFO_MAX_PRIID_REV_BYTES 6 |
Maximum length of the Product Requirement Information Identifier (PRI ID) Revision Number string. One extra byte is added for the null character.
| #define LE_INFO_MAX_PRIID_REV_LEN 5 |
Maximum length of the Product Requirement Information Identifier (PRI ID) Revision Number string , excluding any termination character.
| #define LE_INFO_MAX_PSN_BYTES 15 |
Maximum length of an Platform Serial Number (PSN) string. One extra byte is added for the null character.
| #define LE_INFO_MAX_PSN_LEN 14 |
Maximum length of an Platform Serial Number (PSN) string, excluding any termination character.
| #define LE_INFO_MAX_VERS_BYTES 257 |
Maximum length of a version string One extra byte is added for the null character.
| #define LE_INFO_MAX_VERS_LEN 256 |
Maximum length of a version string, excluding any termination character.
| void le_info_ConnectService |
( |
void |
| ) |
|
Connect the current client thread to the service providing this API.
This function must be called before any other functions in this API. Normally, it's automatically called for the main thread, but must be explicitly called for other threads. For details, see Client-specific Functions.
This function is created automatically.
| void le_info_DisconnectService |
( |
void |
| ) |
|
Disconnect the current client thread from the service providing this API.
Normally, this function doesn't need to be called. After this function is called, there's no longer a connection to the service, and the functions in this API can't be used. For details, see Client-specific Functions.
This function is created automatically.
| le_result_t le_info_GetBootloaderVersion |
( |
char * |
version, |
|
|
size_t |
versionNumElements |
|
) |
| |
Get the bootloader version string
- Returns
- LE_OK on success
- LE_NOT_FOUND if the version string is not available
- LE_OVERFLOW if version string to big to fit in provided buffer
- LE_FAULT for any other errors
- Parameters
-
| [out] | version | Bootloader version string |
| [in] | versionNumElements | |
| le_result_t le_info_GetDeviceModel |
( |
char * |
modelPtr, |
|
|
size_t |
modelPtrNumElements |
|
) |
| |
Get the device model identity (Target Hardware Platform).
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The device model identity length exceed the maximum length.
- Parameters
-
| [out] | modelPtr | The model identity string (null-terminated). |
| [in] | modelPtrNumElements | |
| le_result_t le_info_GetEsn |
( |
char * |
esnStr, |
|
|
size_t |
esnStrNumElements |
|
) |
| |
Get the CDMA Electronic Serial Number (ESN) of the device.
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The Electronic Serial Number length exceed the maximum length.
- Parameters
-
| [out] | esnStr | The Electronic Serial Number (ESN) of the device. string (null-terminated). |
| [in] | esnStrNumElements | |
| le_result_t le_info_GetFirmwareVersion |
( |
char * |
version, |
|
|
size_t |
versionNumElements |
|
) |
| |
Get the firmware version string
- Returns
- LE_OK on success
- LE_NOT_FOUND if the version string is not available
- LE_OVERFLOW if version string to big to fit in provided buffer
- LE_FAULT for any other errors
- Parameters
-
| [out] | version | Firmware version string |
| [in] | versionNumElements | |
| le_result_t le_info_GetImei |
( |
char * |
imei, |
|
|
size_t |
imeiNumElements |
|
) |
| |
Retrieve the International Mobile Equipment Identity (IMEI).
- Returns
- LE_FAULT Function failed to retrieve the IMEI.
-
LE_OVERFLOW IMEI length exceed the maximum length.
-
LE_OK Function succeeded.
- Note
- If the caller passes a bad pointer into this function, it's a fatal error; the function will not return.
- Parameters
-
| [out] | imei | IMEI string. |
| [in] | imeiNumElements | |
| le_result_t le_info_GetManufacturerName |
( |
char * |
mfrNameStr, |
|
|
size_t |
mfrNameStrNumElements |
|
) |
| |
Get the Manufacturer Name string in ASCII text.
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The Manufacturer Name length exceed the maximum length.
- Parameters
-
| [out] | mfrNameStr | The Manufacturer Name string (null-terminated). |
| [in] | mfrNameStrNumElements | |
| le_result_t le_info_GetMdn |
( |
char * |
mdnStr, |
|
|
size_t |
mdnStrNumElements |
|
) |
| |
Get the CDMA Mobile Directory Number (MDN) of the device.
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The Mobile Directory Number length exceed the maximum length.
- Parameters
-
| [out] | mdnStr | The Mobile Directory Number (MDN) string (null-terminated). |
| [in] | mdnStrNumElements | |
| le_result_t le_info_GetMeid |
( |
char * |
meidStr, |
|
|
size_t |
meidStrNumElements |
|
) |
| |
Get the CDMA device Mobile Equipment Identifier (MEID).
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The device Mobile Equipment identifier length exceed the maximum length.
- Parameters
-
| [out] | meidStr | The Mobile Equipment identifier (MEID) string (null-terminated). |
| [in] | meidStrNumElements | |
| le_result_t le_info_GetMin |
( |
char * |
msisdnStr, |
|
|
size_t |
msisdnStrNumElements |
|
) |
| |
Get the CDMA Mobile Identification Number (MIN).
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The CDMA Mobile Identification Number length exceed the maximum length.
- Parameters
-
| [out] | msisdnStr | The Mobile Identification Number (MIN) string (null-terminated). |
| [in] | msisdnStrNumElements | |
| le_result_t le_info_GetNai |
( |
char * |
naiStr, |
|
|
size_t |
naiStrNumElements |
|
) |
| |
Get the CDMA Network Access Identifier (NAI) string in ASCII text.
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The Network Access Identifier (NAI) length exceed the maximum length.
- Parameters
-
| [out] | naiStr | The Network Access Identifier (NAI) string (null-terminated). |
| [in] | naiStrNumElements | |
| le_result_t le_info_GetPlatformSerialNumber |
( |
char * |
platformSerialNumberStr, |
|
|
size_t |
platformSerialNumberStrNumElements |
|
) |
| |
Get the Platform Serial Number (PSN) string.
- Returns
- LE_OK on success
- LE_OVERFLOW if Platform Serial Number to big to fit in provided buffer
- LE_FAULT for any other errors
- Parameters
-
| [out] | platformSerialNumberStr | Platform Serial Number string. |
| [in] | platformSerialNumberStrNumElements | |
| le_result_t le_info_GetPriId |
( |
char * |
priIdPnStr, |
|
|
size_t |
priIdPnStrNumElements, |
|
|
char * |
priIdRevStr, |
|
|
size_t |
priIdRevStrNumElements |
|
) |
| |
Get the Product Requirement Information Part Number and Revision Number strings in ASCII text.
- Returns
- LE_OK The function succeeded.
- LE_FAULT The function failed to get the value.
- LE_OVERFLOW The Part or the Revision Number strings length exceed the maximum length.
- Parameters
-
| [out] | priIdPnStr | The Product Requirement Information Identifier (PRI ID) Part Number string (null-terminated). |
| [in] | priIdPnStrNumElements | |
| [out] | priIdRevStr | The Product Requirement Information Identifier (PRI ID) Revision Number string (null-terminated). |
| [in] | priIdRevStrNumElements | |
| le_result_t le_info_GetPrlOnlyPreference |
( |
bool * |
prlOnlyPreferencePtr | ) |
|
Get the CDMA Preferred Roaming List (PRL) only preferences status.
- Returns
- LE_OK The function succeeded.
- LE_NOT_FOUND The information is not availble.
- LE_FAULT The function failed to get the value.
- Parameters
-
| [out] | prlOnlyPreferencePtr | The CDMA Preferred Roaming List only preferences status. |
| le_result_t le_info_GetPrlVersion |
( |
uint16_t * |
prlVersionPtr | ) |
|
Get the CDMA version of Preferred Roaming List (PRL).
- Returns
- LE_OK The function succeeded.
- LE_NOT_FOUND The information is not availble.
- LE_FAULT The function failed to get the value.
- Parameters
-
| [out] | prlVersionPtr | The Preferred Roaming List (PRL) version. |


--- sort_order: 7 tei_id: rdx_v6n07.p.idm140456912647216 annotation_count: 0 images: small-thumbnail: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6n07/mini-thumbnail/ json: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6n07/info/ full: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6n07/fs/ page: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6n07/single-page/ thumbnail: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6n07/thumbnail/ title: Page 3 number: 3 permalink: "/pages/3/" ---