The IHwi interface specifies APIs for globally enabling, disabling, and
restoring interrupts.
Additionally, management of individual, device-specific hardware
interrupts is provided.
The user can statically or dynamically assign routines that run when
specific hardware interrupts occur.
Dynamic assignment of Hwi routines to interrupts at run-time is done
using the Hwi_create function.
Interrupt routines can be written completely in C, completely in
assembly, or in a mix of C and assembly. In order to support interrupt
routines
written completely in C, an interrupt dispatcher is provided that performs
the requisite prolog and epilog for an interrupt routine.
Some routines are assigned to interrupts by the other SYS/BIOS
modules. For example, the Clock module configures its own timer interrupt
handler. See the Clock Module for more details.
Below is an example of configuring an interrupt at runtime.
Usually this code would be placed in main().
Sets of hook functions can be specified for the Hwi module
using the configuration tool. Each set contains these hook
functions:
The create and delete functions are called whenever a Hwi is created
or deleted. They are called with interrupts enabled (unless called
at boot time or from main()).
The beginFxn and endFxn function hooks are called with interrupts
globally disabled, therefore any hook processing function will contribute
to the overall system interrupt response latency. In order to minimize
this impact, carefully consider the processing time spent in an Hwi
beginFxn or endFxn function hook.
Hook functions can only be configured statically.
| enum IHwi.MaskingOption |
|
Shorthand interrupt masking options
enum MaskingOption {
MaskingOption_NONE,
MaskingOption_ALL,
MaskingOption_SELF,
MaskingOption_BITMASK,
MaskingOption_LOWER
};
VALUES
MaskingOption_NONE
No interrupts are disabled
MaskingOption_ALL
All interrupts are disabled
MaskingOption_SELF
Only this interrupt is disabled
MaskingOption_BITMASK
User supplies interrupt enable masks
MaskingOption_LOWER
All current and lower priority
interrupts are disabled.
Only a few targets/devices truly
support this masking option. For those
that don't, this setting is treated
the same as MaskingOption_SELF.
| typedef IHwi.FuncPtr |
|
Hwi create function type definition
typedef Void (*FuncPtr)(UArg);
| typedef IHwi.Irp |
|
Interrupt Return Pointer
DETAILS
This is the address of the interrupted instruction.
| struct IHwi.HookSet |
|
Hwi hook set type definition
struct HookSet {
Void (*registerFxn)(Int);
};
DETAILS
The functions that make up a hookSet have certain restrictions. They
cannot call any Hwi instance functions other than Hwi_getHookContext()
and Hwi_setHookContext(). For all practical purposes, they should treat
the Hwi_Handle passed to these functions as an opaque handle.
| struct IHwi.StackInfo |
|
Structure contains Hwi stack usage info
struct StackInfo {
SizeT hwiStackPeak;
SizeT hwiStackSize;
Ptr hwiStackBase;
};
DETAILS
Used by getStackInfo() and viewGetStackInfo() functions
| config IHwi.dispatcherAutoNestingSupport // module-wide |
|
Include interrupt nesting logic in interrupt dispatcher?
config Bool dispatcherAutoNestingSupport = true;
DETAILS
Default is true.
This option provides the user with the ability to optimize
interrupt dispatcher performance when support for interrupt
nesting is not required.
Setting this parameter to false will disable the logic in
the interrupt dispatcher that manipulates interrupt mask
registers and enables and disables interrupts before and
after invoking the user's Hwi function.
Set this parameter to false if you don't need interrupts
enabled during the execution of your Hwi functions.
| config IHwi.dispatcherIrpTrackingSupport // module-wide |
|
Controls whether the
dispatcher retains the interrupted thread's return address
config Bool dispatcherIrpTrackingSupport = true;
DETAILS
This option is enabled by default.
Setting this parameter to false will disable the logic in
the interrupt dispatcher that keeps track of the interrupt's
return address and provide a small savings in interrupt latency.
The application can get an interrupt's most recent return
address using the
getIrp API.
| config IHwi.dispatcherSwiSupport // module-wide |
|
Include Swi scheduling logic in interrupt dispatcher?
config Bool dispatcherSwiSupport;
DETAILS
Default is inherited from
BIOS.swiEnabled, which is true by default.
This option provides the user with the ability to optimize
interrupt dispatcher performance when it is known that Swis
will not be posted from any of their Hwi threads.
WARNING
Setting this parameter to false will disable the logic in
the interrupt dispatcher that invokes the Swi scheduler
prior to returning from an interrupt.
With this setting, Swis MUST NOT be posted from Hwi functions!
| config IHwi.dispatcherTaskSupport // module-wide |
|
Include Task scheduling logic in interrupt dispatcher?
config Bool dispatcherTaskSupport;
DETAILS
Default is inherited from
BIOS.taskEnabled, which is true by default.
This option provides the user with the ability to optimize
interrupt dispatcher performance when it is known that no
Task scheduling APIs (ie
Semaphore_post()) will be executed from any of their Hwi threads.
Setting this parameter to false will disable the logic in
the interrupt dispatcher that invokes the Task scheduler
prior to returning from an interrupt.
| metaonly config IHwi.common$ // module-wide |
|
Common module configuration parameters
DETAILS
All modules have this configuration parameter. Its name contains the '$'
character to ensure it does not conflict with configuration parameters
declared by the module. This allows new configuration parameters to be
added in the future without any chance of breaking existing modules.
| IHwi.clearInterrupt() // module-wide |
|
Clear a specific interrupt
Void clearInterrupt(UInt intNum);
ARGUMENTS
intNum
interrupt number to clear
DETAILS
Clears a specific interrupt's pending status.
The implementation is family-specific.
| IHwi.disable() // module-wide |
|
| IHwi.disableInterrupt() // module-wide |
|
Disable a specific interrupt
UInt disableInterrupt(UInt intNum);
ARGUMENTS
intNum
interrupt number to disable
RETURNS
key to restore previous enable/disable state
DETAILS
Disable a specific interrupt identified by an interrupt number.
| IHwi.enable() // module-wide |
|
Globally enable interrupts
RETURNS
opaque key for use by Hwi_restore()
DETAILS
Hwi_enable globally enables hardware interrupts and returns an
opaque key indicating whether interrupts were globally enabled or
disabled on entry to Hwi_enable().
The actual value of the key is target/device specific and is meant
to be passed to Hwi_restore().
This function is
called as part of SYS/BIOS Startup_POST_APP_MAIN phase.
Hardware interrupts are enabled unless a call to Hwi_disable disables
them.
Servicing of interrupts that occur while interrupts are disabled is
postponed until interrupts are reenabled. However, if the same type
of interrupt occurs several times while interrupts are disabled,
the interrupt's function is executed only once when interrupts are
reenabled.
A context switch can occur when calling Hwi_enable or Hwi_restore if
an enabled interrupt occurred while interrupts are disabled.
Any call to Hwi_enable enables interrupts, even if Hwi_disable has
been called several times.
Hwi_enable must not be called from main().
| IHwi.enableInterrupt() // module-wide |
|
Enable a specific interrupt
UInt enableInterrupt(UInt intNum);
ARGUMENTS
intNum
interrupt number to enable
RETURNS
key to restore previous enable/disable state
DETAILS
Enables a specific interrupt identified by an interrupt number.
| IHwi.getCoreStackInfo() // module-wide |
|
Get Hwi stack usage Info for the specified coreId
Bool getCoreStackInfo(
IHwi.StackInfo *
stkInfo,
Bool computeStackDepth,
UInt coreId);
ARGUMENTS
stkInfo
pointer to structure of type StackInfo
computeStackDepth
decides whether to compute stack depth
coreId
core whose stack info needs to be retrieved
RETURNS
boolean to indicate a stack overflow
DETAILS
getCoreStackInfo returns the Hwi stack usage info for the specified
coreId to its calling function by filling stack base address,
stack size and stack peak fields in the
StackInfo structure.
This function should be used only in applications built with
ti.sysbios.BIOS.smpEnabled set to true.
getCoreStackInfo accepts three arguments, a pointer to a structure
of type
StackInfo, a boolean and a coreId. If the boolean
is set to true, the function computes the stack depth and fills the
stack peak field in the StackInfo structure. If a stack overflow
is detected, the stack depth is not computed. If the boolean is
set to false, the function only checks for a stack overflow.
The isr stack is always checked for an overflow and a boolean
is returned to indicate whether an overflow occured.
Below is an example of calling getCoreStackInfo() API:
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/hal/Hwi.h>
#include <ti/sysbios/hal/Core.h>
#include <ti/sysbios/knl/Task.h>
...
Void idleTask()
{
UInt idx;
Hwi_StackInfo stkInfo;
Bool stackOverflow = FALSE;
// Request stack depth for each core's Hwi stack and check for
// overflow
for (idx = 0; idx < Core_numCores; idx++) {
stackOverflow = Hwi_getCoreStackInfo(&stkInfo, TRUE, idx);
// Alternately, we can omit the request for stack depth and
// request only the stack base and stack size (the check for
// stack overflow is always performed):
//
// stackOverflow = Hwi_getCoreStackInfo(&stkInfo, FALSE, idx);
if (stackOverflow) {
// isr Stack Overflow detected
}
}
}
Int main(Int argc, char* argv[])
{
...
BIOS_start();
return (0);
}
| IHwi.getStackInfo() // module-wide |
|
Get Hwi stack usage Info
ARGUMENTS
stkInfo
pointer to structure of type StackInfo
computeStackDepth
decides whether to compute stack depth
RETURNS
boolean to indicate a stack overflow
DETAILS
getStackInfo returns the Hwi stack usage info to its calling
function by filling stack base address, stack size and stack
peak fields in the
StackInfo structure.
getStackInfo accepts two arguments, a pointer to a structure
of type
StackInfo and a boolean. If the boolean is set
to true, the function computes the stack depth and fills the
stack peak field in the StackInfo structure. If a stack overflow
is detected, the stack depth is not computed. If the boolean is
set to false, the function only checks for a stack overflow.
The isr stack is always checked for an overflow and a boolean
is returned to indicate whether an overflow occured.
Below is an example of calling getStackInfo() API:
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/hal/Hwi.h>
#include <ti/sysbios/knl/Swi.h>
#include <ti/sysbios/knl/Task.h>
Swi_Handle swi0;
volatile Bool swiStackOverflow = FALSE;
Void swi0Fxn(UArg arg1, UArg arg2)
{
Hwi_StackInfo stkInfo;
// Request stack depth
swiStackOverflow = Hwi_getStackInfo(&stkInfo, TRUE);
// Alternately, we can omit the request for stack depth and
// request only the stack base and stack size (the check for
// stack overflow is always performed):
//
// swiStackOverflow = Hwi_getStackInfo(&stkInfo, FALSE);
if (swiStackOverflow) {
// isr Stack Overflow detected
}
}
Void idleTask()
{
Swi_post(swi0);
}
Int main(Int argc, char* argv[])
{
swi0 = Swi_create(swi0Fxn, NULL, NULL);
BIOS_start();
return (0);
}
| IHwi.post() // module-wide |
|
Generate an interrupt for test purposes
ARGUMENTS
intNum
ID of interrupt to generate
| IHwi.restore() // module-wide |
|
Globally restore interrupts
ARGUMENTS
key
enable/disable state to restore
DETAILS
Hwi_restore globally restores interrupts to the state determined
by the key argument provided by a previous invocation of Hwi_disable.
A context switch may occur when calling Hwi_restore if Hwi_restore
reenables interrupts and another Hwi occurred while interrupts were
disabled.
Hwi_restore may be called from main(). However, since Hwi_enable
cannot be called from main(), interrupts are always disabled in
main(), and a call to Hwi_restore has no effect.
| IHwi.restoreInterrupt() // module-wide |
|
Restore a specific interrupt's enabled/disabled state
Void restoreInterrupt(UInt intNum, UInt key);
ARGUMENTS
intNum
interrupt number to restore
key
key returned from enableInt or disableInt
DETAILS
Restores a specific interrupt identified by an interrupt number.
restoreInterrupt is generally used to restore an interrupt to its state
before
disableInterrupt or
enableInterrupt was
invoked
| IHwi.startup() // module-wide |
|
Initially enable interrupts
DETAILS
Called within BIOS_start
| metaonly IHwi.addHookSet() // module-wide |
|
addHookSet is used in a config file to add a hook set (defined
by struct HookSet)
ARGUMENTS
hook
structure of type HookSet
DETAILS
HookSet structure elements may be omitted, in which case those
elements will not exist.
| config IHwi.Params.arg // instance |
|
ISR function argument. Default is 0
| config IHwi.Params.enableInt // instance |
|
Enable this interrupt when object is created? Default is true
config Bool enableInt = true;
| config IHwi.Params.eventId // instance |
|
Interrupt event ID (Interrupt Selection Number)
DETAILS
Default is -1.
Not all targets/devices support this instance parameter.
On those that don't, this parameter is ignored.
| config IHwi.Params.maskSetting // instance |
|
maskSetting. Default is Hwi_MaskingOption_SELF
| config IHwi.Params.priority // instance |
|
Interrupt priority
config Int priority = -1;
DETAILS
The default value of -1 is used as a flag to indicate
the lowest (logical) device-specific priority value.
Not all targets/devices support this instance parameter.
On those that don't, this parameter is ignored.
| Static Instance Creation |
|
// Create an instance-object
ARGUMENTS
intNum
interrupt number
hwiFxn
pointer to ISR function
DETAILS
A Hwi dispatcher table entry is created and filled with the
function specified by the fxn parameter and the attributes
specified by the params parameter.
If params is NULL, the Hwi's dispatcher properties are assigned a
default set of values. Otherwise, the following properties
are specified by a structure of type Hwi_Params.
- The arg element is a generic argument that is passed to the plugged
function as its only parameter. The default value is 0.
- The enableInt element determines whether the interrupt should be
enabled in the IER by create.
- The maskSetting element defines the dispatcherAutoNestingSupport
behavior of the interrupt.
Hwi_create returns a pointer to the created Hwi object.
| IHwi.getFunc() // instance |
|
Get Hwi function and arg
ARGUMENTS
arg
pointer for returning hwi's ISR function argument
RETURNS
hwi's ISR function
| IHwi.getHookContext() // instance |
|
Get hook instance's context for a Hwi
Ptr getHookContext(Int id);
RETURNS
hook instance's context for hwi
| IHwi.getIrp() // instance |
|
Get address of interrupted instruction
RETURNS
most current IRP of a Hwi
| IHwi.setFunc() // instance |
|
Overwrite Hwi function and arg
ARGUMENTS
fxn
pointer to ISR function
arg
argument to ISR function
DETAILS
Replaces a Hwi object's hwiFxn function originally
provided in
create.
CONSTRAINTS
Hwi_setFunc() is not thread safe. This means that the new value for
for 'fxn' may be temporarily paired with the previous value for 'arg'
if pre-emption occurs within the execution of Hwi_setFunc().
To guard against this condition, surround the Hwi_setFunc() call with
calls to Hwi_disable() and Hwi_restore():
key = Hwi_disable();
Hwi_setFunc(newFunc, newArg);
Hwi_restore(key);
| IHwi.setHookContext() // instance |
|
Set hook instance's context for a Hwi
Void setHookContext(Int id, Ptr hookContext);
ARGUMENTS
id
hook instance's ID
hookContext
value to write to context


Members
CSV_DATASET_OPTIONS :Object
A map of valid options for CSV datasets with option descriptions and validation functions
Type:
- Object
Properties:
| Name | Type | Description |
|---|---|---|
autoDetect |
Object | When true, tries to infer other options based on the structure of the dataset (slow). |
hasHeader |
Object | When true, interprets the first row of the dataset as column labels. |
nameColumn |
Object | Index of a column of the dataset that contains data point names. |
columnLabels |
Object | An array of column labels, or a function that takes the column index as input and returns the column label. |
imageFilenames |
Object | An array of image URLs, or a function that takes a row of data and the row index as input and returns a URL to an image of the data point. |
Type Definitions
onLassoSelectionCallback(dataset, selection, lassoArea)
Parameters:
| Name | Type | Description |
|---|---|---|
dataset |
Dataset | |
selection |
Array.<number> | Array of indices of all selected points |
lassoArea |
Object | Array.<Array.<number>> | Rectangle or list of 2D points of the area selected by the lasso relative to the location of the plot |
onMouseDownCallback(event)
Parameters:
| Name | Type | Description |
|---|---|---|
event |
Object |
onMouseOverAxisLabelCallback(dataVector, labelRect)
Parameters:
| Name | Type | Description |
|---|---|---|
dataVector |
DataVector | Data vector whose axis label the mouse cursor is hovering over |
labelRect |
Object | Area of the label relative to the location of the plot |
onMouseOverDatapointCallback(dataset, mouseOverDatapoint)
Parameters:
| Name | Type | Description |
|---|---|---|
dataset |
Dataset | |
mouseOverDatapoint |
number | Index of the point the mouse cursor is hovering over |
onSelectionChangedCallback(dataset, selection)
Parameters:
| Name | Type | Description |
|---|---|---|
dataset |
Dataset | |
selection |
Array.<number> | Array of indices of all selected points |
OptionDescription
Type:
- Object


qwertyoruiop • On January 25, 2017, Todesco released the incomplete source code to a new version of Yalu, one supporting every version from iOS 10.0 through 10.2, onto GitHub. On January 26, he formally released an "alpha, beta 1" version of yalu102 on his site in the form of an IPA (also sideloaded using Cydia Impactor) to jailbreak semi-untethered iOS 10.0 through 10.2. The first beta supported Cydia Substrate, and works on the iPad Pro, iPhone 6s and iPhone SE.
On January 29, yalu102 was officially updated to support all 64-bit devices on iOS 10.2, excluding the iPad Air 2, iPad mini 4, and all iPhone 7 models.
On January 30, yalu102 was officially updated to support all 64-bit devices on iOS 10.2, excluding the iPhone 7 and iPhone 7 Plus.
On February 26, yalu102 was unofficially ported to support tvOS (up to and including 10.1), as the first semi-untethered jailbreak for tvOS 10 and demonstrating the universality of the Mach voucher bug, upon which it was based. This jailbreak was released as LiberTV.
On March 27, 2017, Luca Todesco announced he was officially "done with jailbreaking" on Twitter. He has abandoned all versions of yalu. Leaving them in a theoretical "beta" state forever.


**Installation and Usage**
The following page provides informations about how to retrieve, install and use **EVE**.
(insert crumbs.html here)
# Setting up EVE
## Retrieving the source
**EVE** is available on GitHub and can be retrieved via the following command:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ git clone -b master https://github.com/jfalcou/eve.git
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This retrieves the `master` branch which contains the latest stable version.
You can also use the `develop`branch if you prefer using bleeding edge unstable vesion
or any tagged versions.
Once retrieved, you should have a ``eve`` folder which contains the whole source code.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ cd eve
$ ls
benchmarks cmake CMakeLists.txt docs include LICENSE.md README.md test tools
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Installing
Create a ``build`` directory here and enter it. Once in the ``build`` directory,
you can use **CMake** to generate the build system for **EVE**. We recommend using
Ninja but any build system is fine.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ mkdir build
$ cd build
$ cmake .. -G Ninja
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once **CMake** completes, you can use the ``install`` target to build and install **EVE**.
By default, the library will be installed in the ``/usr/local`` directory, thus requiring
root privileges.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ sudo ninja install
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can select an alternative installation path by specifying the ``CMAKE_INSTALL_PREFIX``
option at configuration time.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX=path/to/install
$ ninja install
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Advanced options
If you want to dig a bit further, you can pass additional options to `cmake` to activate additional
features.
| Option | Effect | Target |
|-------------------------|-------------------------------------------------------------|---------------------|
| `EVE_BUILD_TEST` | Enable unit tests for **EVE**. This is `ON` by default | `ninja unit` |
| `EVE_BUILD_BENCHMARKS` | Enable unit tests for **EVE**. This is `OFF` by default | `ninja benchmarks` |
There is currently over 5000 tests, so compiling all unit tests may require a large machine or
some time.
# Using EVE
## Compilation
Once installed, you can compile the following code to check if everything is alright.
To do so, use your C++20 aware favorite compiler, for example g++ 10.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ g++-10 test.cpp -std=c++20 -march=native -O3 -DNDEBUG -I/path/to/install/include -o output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Don't forget the `--std=c++20` option to be sure to activate C++20 support. If you use a different
compiler, check your compiler user's manual to use the proper option.
You can notice we use the `-O3 -DNEDBUG` options. This is required if you want to be sure to
get the best performance out of **EVE**. The `-DNDEBUG` settings can be omitted but then additional
asserts will be inserted into the code to prevent logic errors.
## Instruction Set Selection
The SIMD instruction sets that **EVE** used is decided at compile time. You can use `-march=native`
of you're sure your code won't be executed anywhere else. You can also select a specific instructions
set by using the proper options from your compiler. For example, let's compile for exactly SSE4.1.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ g++-10 test.cpp -std=c++20 -msse41 -O3 -DNDEBUG -I/path/to/install/include -o output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Execution
Once done, execute the binary. If you compiled for SSE4.1 for example, you'll end up with the
following results:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bash
$ ./output
x = (1, 2, 3, 4)
2*x = (2, 4, 6, 8)
x^0.5 = (1, 1.41421, 1.73205, 2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That's it, **EVE** is properly installed and ready to use.
----------------------------------------------------------------------------------------------------


--- layout: post title: Kraftwork and the Ultimate Man-Machine date: '2007-12-19T06:10:48+00:00' tags: [] tumblr_url: http://backlog.robbevan.com/post/21937617/kraftwork-and-the-ultimate-man-machine --- Kraftwork and the Ultimate Man-Machine


Class sakai.listpeople
Version
0.0.1.
listpeople
Defined in: listpeople.js.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
sakai.listpeople(tuid, showSettings)
People Lister widget
This is a general widget which aims to display an arbitriary number of people, loading dynamically if the list is very long. |
| Method Attributes | Method Name and Description |
|---|---|
| <inner> |
addToList(object)
addToList
Takes an object/array of users and adds them to the list to be rendered.
|
| <static> |
sakai.listpeople.getSelection(iListType)
getSelection
Returns an array of selected items
|
| <static> |
sakai.listpeople.removeFromList()
removeFromList
Removes selected items from the list and re-renders list
|
| <inner> |
render(iConfig, url, id, id)
Render
Renders the people lister with a specified set of data.
|
| <inner> |
renderList(pageNumber, objects)
renderList
Renders the list of objects the user can select from
|
| <inner> |
reset()
Reset
Resets the people lister to a default state
|
| <inner> |
sortList(pageNumber, sortOrder)
sortList
Returns an array of selected items
|
Class Detail
sakai.listpeople(tuid, showSettings)
People Lister widget
This is a general widget which aims to display an arbitriary number of people, loading dynamically if the list is very long. Also this is a first attempt at implementing a general UI component which needs to be part of the frontend API as a widget.
This is a general widget which aims to display an arbitriary number of people, loading dynamically if the list is very long. Also this is a first attempt at implementing a general UI component which needs to be part of the frontend API as a widget.
- Parameters:
- {String} tuid
- Unique id of the widget
- {Boolean} showSettings
- Show the settings of the widget or not
Method Detail
<inner>
addToList(object)
addToList
Takes an object/array of users and adds them to the list to be rendered.
- Parameters:
- object
- {Object} The object of users to add
- Returns:
- viod
<static>
sakai.listpeople.getSelection(iListType)
getSelection
Returns an array of selected items
- Parameters:
- iListType
- Returns:
- array
<static>
sakai.listpeople.removeFromList()
removeFromList
Removes selected items from the list and re-renders list
- Returns:
- viod
<inner>
render(iConfig, url, id, id)
Render
Renders the people lister with a specified set of data. The function uses
a search query initially, then does the paginating and subsequent requests
for data automatically
- Parameters:
- iConfig
- {Object} Optional sakai.config.listpeople[listType] overrides
- url
- {String} URL to request data from
- id
- {String} Unique id related to the data we're listing
- id
- Returns:
- void
<inner>
renderList(pageNumber, objects)
renderList
Renders the list of objects the user can select from
- Parameters:
- pageNumber
- objects
- Returns:
- void
<inner>
reset()
Reset
Resets the people lister to a default state
- Returns:
- void
<inner>
sortList(pageNumber, sortOrder)
sortList
Returns an array of selected items
- Parameters:
- pageNumber
- {String} Number of the page to sort
- sortOrder
- {String} Order to sort the list by
- Returns:
- void


closed
by Max Kadel at 2023-04-10 15:12:02.I see one active instance of this error in honeybadger from a different block of code https://app.honeybadger.io/projects/54497/faults/94190454 and agree that is likely a ctrl-c. Closing.
closed
by Kevin Reiss at 2023-04-10 13:45:38.1241 has been closed moving to backlog.
Add this to a page in https://github.com/pulibrary/bibdata/tree/main/docs
The error is actively being logged in just the staging environment, not production.
Working on this under https://github.com/PrincetonUniversityLibrary/alma-config/issues/427
I noticed this was closed, but it continues to happen. Re-opening as it seems like something we can address.
reopened
by Shaun Ellis at 2023-04-10 15:52:51.assigned
by Eliot Jordan at 2023-04-10 15:32:02.Here's another generation failure: https://figgy.princeton.edu/concern/scanned_resources/8b01ee9b-d156-4d5a-8cb5-a8066750bd6d/pdf
How does one fix these PDFs?
This seems like something we can do something about, so I'm creating a ticket.
labeled
by Trey Pendragon at 2023-04-10 16:04:20.labeled
by Trey Pendragon at 2023-04-10 16:04:20.@eliotjordan Still failing CI for some reason.
@tpendragon Missed a few includes. Ready now.
mentioned
by Eliot Jordan at 2023-04-10 16:54:00.subscribed
by Eliot Jordan at 2023-04-10 16:54:00.head_ref_force_pushed
by Eliot Jordan at 2023-04-10 17:48:18.mentioned
by Trey Pendragon at 2023-04-10 18:14:12.subscribed
by Trey Pendragon at 2023-04-10 18:14:12.referenced
by Trey Pendragon at 2023-04-10 18:53:39.merged
by Trey Pendragon at 2023-04-10 18:53:39.closed
by Trey Pendragon at 2023-04-10 18:53:39.head_ref_deleted
by Trey Pendragon at 2023-04-10 18:53:40.I tested this in staging without upgrading Ruby and it worked fine, should make it pretty easy to upgrade.
head_ref_force_pushed
by Trey Pendragon at 2023-04-10 22:19:09.ready_for_review
by Trey Pendragon at 2023-04-10 22:42:28.deployed
by None at 2023-04-10 22:43:12.referenced
by None at 2023-04-10 13:33:01.merged
by None at 2023-04-10 13:33:01.closed
by None at 2023-04-10 13:33:01.head_ref_deleted
by None at 2023-04-10 13:33:02.labeled
by Kevin Reiss at 2023-04-10 13:48:04.Let's look at this post Blacklight 8
labeled
by Kevin Reiss at 2023-04-10 13:52:46.labeled
by Kevin Reiss at 2023-04-10 13:52:52.labeled
by Kevin Reiss at 2023-04-10 16:55:55.labeled
by Kevin Reiss at 2023-04-10 16:55:55.labeled
by Kevin Reiss at 2023-04-10 17:28:22.assigned
by Max Kadel at 2023-04-10 19:29:20.mentioned
by Hector Correa at 2023-04-10 20:41:11.subscribed
by Hector Correa at 2023-04-10 20:41:11.The problem is because our two replicas are out of synch: * lib-solr-prod5 reports 362 documents total * lib-solr-prod6 reports 231 documents total I am not sure how they got out of synch...still troubleshooting.
The problem is because our two replicas are out of synch:
- lib-solr-prod5 reports 362 documents total
- lib-solr-prod6 reports 231 documents total I am not sure how they got out of synch...still troubleshooting.
Thanks for investigating.
@jrgriffiniii and I identified an issue with the replication configuration for PDC Describe and fixed it via this PR https://github.com/pulibrary/pul_solr/pull/357.
After that we created a new Solr collection pdc-discovery-production-2
(with 1 shard, 2 replicas) and reindexed the data there to confirm that the replication works as expected. Once we confirmed it is working we created a new alias to point to to this new collection.
Tomorrow we'll delete the old collection (see https://github.com/pulibrary/pdc_discovery/issues/414)
See also our incident notes
assigned
by Hector Correa at 2023-04-10 14:34:08.mentioned
by James R. Griffin III at 2023-04-10 20:47:33.subscribed
by James R. Griffin III at 2023-04-10 20:47:33.head_ref_force_pushed
by Alicia Cozine at 2023-04-10 15:04:05.closed
by Max Kadel at 2023-04-10 15:06:35.referenced
by Max Kadel at 2023-04-10 16:21:50.merged
by Max Kadel at 2023-04-10 16:21:51.closed
by Max Kadel at 2023-04-10 16:21:51.head_ref_deleted
by Max Kadel at 2023-04-10 16:21:52.Waiting on the firewall rules in order to allow us to mount the nfs production on lib-jobs production, per @kayiwa
mentioned
by Francis Kayiwa at 2023-04-10 18:00:22.subscribed
by Francis Kayiwa at 2023-04-10 18:00:22.ready_for_review
by Kevin Reiss at 2023-04-10 19:22:39.head_ref_force_pushed
by Kevin Reiss at 2023-04-10 19:53:20.referenced
by Max Kadel at 2023-04-10 20:18:09.merged
by Max Kadel at 2023-04-10 20:18:09.closed
by Max Kadel at 2023-04-10 20:18:09.head_ref_deleted
by Max Kadel at 2023-04-10 20:18:10.page has been removed.
closed
by Kevin Reiss at 2023-04-10 19:09:07.closed
by Max Kadel at 2023-04-10 20:18:46.the guide assets are now sync'ed up with the website. When the lib_jobs ticket 486 is done we can put a daily sync'd of the systems into production.
referenced
by None at 2023-04-10 20:08:19.merged
by None at 2023-04-10 20:08:19.closed
by None at 2023-04-10 20:08:19.head_ref_deleted
by None at 2023-04-10 20:08:21.Is there any way that we can filter these query string params so they don't report errors?
labeled
by Eliot Jordan at 2023-04-10 15:57:05.labeled
by Eliot Jordan at 2023-04-10 15:57:05.^ We went back to the generator approach today, packaging the template as a gem: https://github.com/pulibrary/dls_template
Abandoning this PR and moving to a new repo to make this rails template into a gem: https://github.com/pulibrary/dls_template
The plan now is to maintain the gem at the new repo and periodically generate example template apps (like this one) for reference, without having to maintain both.
I could not immediately diagnose the errors with these deployments. I am trying to restart the applications currently, but I keep encountering the following:
[thesiscentralsu@libtc201l Vireo]$ :: loading settings :: url = jar:file:/home/thesiscentralsu/play1-1.3.0/framework/lib/ivy-2.3.0.jar!/org/apache/ivy/core/sett
ings/ivysettings.xml
Exception in thread "main" play.exceptions.DatabaseException: Cannot connected t
o the database[default], Connections could not be acquired from the underlying d
atabase!
at play.db.DBPlugin.onApplicationStart(DBPlugin.java:196)
at play.plugins.PluginCollection.onApplicationStart(PluginCollection.jav
a:515)
at play.Play.start(Play.java:537)
at play.Play.init(Play.java:309)
at play.server.Server.main(Server.java:160)
Caused by: java.sql.SQLException: Connections could not be acquired from the und
erlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)
at play.db.DBPlugin.onApplicationStart(DBPlugin.java:179)
... 4 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A Resourc
ePool could not acquire a resource from its primary factory or source.
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicRes
ourcePool.java:1463)
I truly do not understand why the connection is failing from inside of the application:
[thesiscentralsu@libtc201l Vireo]$ psql -h theses-central-2020.ct9hnzmkuoct.us-e
ast-1.rds.amazonaws.com -W -U thesis-prod thesis-prod-db
Password for user thesis-prod:
psql (9.6.20, server 12.9)
WARNING: psql major version 9.6, server major version 12.
Some psql features might not work.
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
thesis-prod-db=> \q
The database URL and credentials are being properly passed to the application here:
I have been checking this within the stack traces, and my fear is that this may be related to an out-of-date Java dependency.
This needs to be addressed before April 16 when the next forced upgrade will take place. Currently blocked/on hold until we have access to the EC2 instances from OIT where we can set up Postgres, import data, and test connectivity.
assigned
by James R. Griffin III at 2023-04-10 11:44:07.mentioned
by James R. Griffin III at 2023-04-10 15:14:52.subscribed
by James R. Griffin III at 2023-04-10 15:14:52.mentioned
by Bess Sadler at 2023-04-10 15:14:52.subscribed
by Bess Sadler at 2023-04-10 15:14:52.mentioned
by James R. Griffin III at 2023-04-10 15:15:24.subscribed
by James R. Griffin III at 2023-04-10 15:15:24.mentioned
by Bess Sadler at 2023-04-10 15:15:24.subscribed
by Bess Sadler at 2023-04-10 15:15:24.transferred
by Bess Sadler at 2023-04-10 15:15:26.assigned
by Bess Sadler at 2023-04-10 15:15:57.labeled
by Bess Sadler at 2023-04-10 15:16:09.labeled
by Kate Lynch at 2023-04-10 20:17:25.Staff pages removed some years ago.
closed
by Kevin Reiss at 2023-04-10 19:07:29.closed
by Kevin Reiss at 2023-04-10 19:28:08.Notes for deploying are here: https://docs.google.com/document/d/14-z3v_vUMLTAVw-g1OlSfqCicQb2BKd9q3RYQqoi4z4/edit
td-meta1 is slower: No HTOP, not ubuntu 1. Experiment on creating many tokens 1. Timing performance on local vs on td-meta1 1. network? 1. server load?
I've marked my PR as ready for review (https://github.com/pulibrary/tiger-data-app/pull/129) I didn't realize it was still in draft mode.
head_ref_force_pushed
by None at 2023-04-10 16:55:27.mentioned
by Hector Correa at 2023-04-10 17:55:48.subscribed
by Hector Correa at 2023-04-10 17:55:48.head_ref_force_pushed
by None at 2023-04-10 18:46:03.ready_for_review
by Hector Correa at 2023-04-10 18:47:05.referenced
by None at 2023-04-10 18:57:45.merged
by None at 2023-04-10 18:57:46.closed
by None at 2023-04-10 18:57:46.head_ref_deleted
by None at 2023-04-10 18:57:47.head_ref_force_pushed
by None at 2023-04-10 19:51:20.


-[ disclaimer ]-
Content and opinions expressed on stevemyles.site and steve.mylesandmyles.info are mine alone unless otherwise specified and do not reflect the opinions of, nor do they constitute an official statement by, my current or former employers.
-[ license ]-
Unless otherwise specified, content on stevemyles.site is provided with the following licenses:
Content on steve.mylesandmyles.info, which comes from a variety of sources, is not covered by these licenses unless stated otherwise.


C/C++ Preferences
The C/C++ preference panel allows you to make changes to your C/C++ environment. Click Window > Preferences > C/C++ to view.
| Option | Description |
|---|---|
| Follow unindexed header files when producing the outline view | Activate to do a more exhaustive search of header paths to build a more complete outline view. |
| Build active configuration in each project | Activate to always build only the active configuration within a project. |
| Build all configurations in each project | Activate to always build all the configurations within a project. |
| Build configurations only when there are Eclipse resource changes within the project and its resources | Activate to build only when there are have been changes to any project and Eclipse resources. |
| Clear all 'do not show again' settings and show all hidden dialogs again | Activate to reset all alert settings and show all hidden dialogs. |


The Latest
Lionsgate deal brings big-name movies to Steam
You can watch 'The Hunger Games' in between rounds of 'Rocket League.'
Microsoft's mobile Windows keyboard arrives on iOS
iPhone Word Flow users get a new one-handed option.
Tesla's Destination Charging network expands to Europe
There are 150 locations spread across 14 countries at launch.
'Rock Band 4' to get online multiplayer later this year
Jam with your friends, even when you're miles apart.
Huawei P9 review: New phone, familiar tricks
A fun camera doesn't save the P9 from being another iterative smartphone.
Raspberry Pi gets an 8-megapixel Sony camera upgrade
As always, the price stays the same.
Report: Bank network flaw helped hackers steal $80 million
Thieves may have attacked the SWIFT transfer system to cover their tracks.
Google will soon bring the Android Play Store to Chromebooks
Some Chromebook users are already being shown the new option.
Logitech made this retro game display from 160 light-up keyboards
The peripheral maker teamed up with Iam8bit at Boston's PAX East.
Paramount agrees to offer Sky UK content across Europe
The European Commission will likely drop its claims against the studio.
Exploit gets around Windows' app security safeguards
Microsoft's AppLocker is defenseless if you point to a remote file.
Make your own hand-controlled robot with a crowdfunded kit
After a sneak peek in January, you can back Ziro's gesture-based robotics gear.
NASA conducts the toughest test yet for drone traffic control
It and the FAA had to juggle 22 drones at once.
Qualcomm says it's fine to fast-charge your phone over USB-C
Your HTC 10 or LG G5 isn't about to melt, despite worries about the USB-C spec.
Google is creating a startup haven to prevent staff from leaving
The Area 120 incubator would let curious Googlers work on new ideas full-time.
Astronaut becomes the first man to finish a marathon in space (updated)
Tim Peake wasn't about to set a London Marathon record, though.
Ben Heck's mechanical TV, part 2
This two-episode project reaches its conclusion.
Dutch police seize a secure communications network
They're concerned the business was really being used for organized crime.
Beyoncé's 'Lemonade' could be a permanent Tidal streaming exclusive (updated)
Reports suggest the album might never hit other streaming services.
US Air Force sets a new maglev speed record
Editor’s Picks
San Francisco mandates rooftop solar panels starting in 2017
But there are definite hurdles to clear first.
Study: we can ditch fossil fuels in 10 years, if we want to
Patterns show that the move to cleaner energy would be quick if there was a concerted effort.
Drones will help scientists find the best plant for biofuel
The machines will speed up intel gathering on researchers' crops.
From the arcade to the silver screen
'Warcraft' among Universal's first Ultra HD Blu-ray offerings
Nintendo teases 'Star Fox Zero: The Battle Begins' animated film
'The Last of Us' and 'Uncharted' movies could be in trouble
'Final Fantasy XV' is getting a movie and an anime series
Sonic to star in a 'live-action and animation hybrid' movie
'Dragons Lair' movie project leaves Kickstarter, heads to Indiegogo
Featured Video
Product Reviews
HTC 10 review: The flagship the company should have made years ago
HTC got its groove back.
Samsung's thin and light Notebook 9 harks back to simpler times
It's not flashy, but it gets most of the important stuff right.
LG G5 review: Bolder doesn't always mean better
The company's big comeback still feels like a work in progress.


The dataset IIIb consists of the three recordings S4, X11 and O3VR with 1080, 1080 and 640 trials, respectively.
Due to a mistake, the trials 1-160 and 161-320 in O3VR are equal. This means, in 2x75 (out of 640) trials one can obtain the labels of the test set by looking at the label of the corresponding trials. In order to remove the repetition of testing data, the first 160 trials (containing another 43 testing trials) will not be considered in the final evaluation. Accordingly, the number of testing trials in O3VR will be reduced to 202 (out of 480) trials.
For more information contact Alois Schlögl 〈alois.schloegl@tugraz.at〉


Precursor to experience:
My first REAL experience with psilocybin mushrooms was a few nights ago, and only now can I retell this experience with a bit more clarity. As far as my previous experiences with drugs, I have been a daily marijuana smoker for about 6 months, I have smoked Salvia once, and tried mushrooms twice in high school (a few years ago, I'm a college student now). In addition, I finally worked up the courage to try LSD, but there were little to no physical effects, just minor visual distortions and a bad headache.
When word spread across campus that someone (a friend of mine) had acquired some mushrooms I was instantly intrigued. Though I had tried them in high school, the effects were not what I had envisioned. In stark contrast to most experiences, they were very mellow and simply produced a body high and a few minor visuals, not nearly the eye-opening experience I had hoped for. In retrospect, I believe this was due to their being mixed in chocolate, and for those wishing to be introduced to mushrooms this might be a moderately safe route to take.
The trip:
My two friends of relatively similar stature ate what was 'eyed-out' to be a half-eighth of an ounce, a 16'th in theory, though I think it was much more than that, as the 'eighths' looked much like the halves of marijuana I am quite familiar with. This was around 7:15 PM or so, and I had to finish some schoolwork, so while they ate their bags relatively slowly, I ate my '16'th' around 7:40, consuming all of the shrooms except maybe a half gram in about 3 minutes. There were a lot in the bag, I consumed maybe 4 or 5 full mushrooms, with assorted stems and caps mixed within. The full mushrooms were about an inch to two inches tall, and primarily brown with a bit of white.
After about a half hour of hanging out in the dorms with some kids who were just drinking, the three of us decided to go for a walk around campus. Our campus is a very serene place, I wish I could disclose where it is, but it is relatively wooded, with a few open spaces with large, old, beautiful buildings making for great nighttime scenery on this slightly-cloudy evening.
First we walked behind the largest (and oldest) building on campus, where it is very secluded and wooded. At this point I was beginning to feel a bit different, and suddenly was reminded of the 'upswing,' anxious feeling I got when I had done mushrooms in high school. The treeline comes to an edge behind the building where there is a 4 foot stone wall that we looked off of at the nighttime city below. While at this point there were no visuals or anything of that nature, it must have been about 20 after 8 or so, and I was definitely feeling numbness and a strong, marijuana-like body high. I had an increased appreciation for what I was seeing in the city lights and the cool temperature became less-important, replaced by a warm feeling telling me the inevitable: Something BIG is about to happen.
As we stood staring off at the big sky and city below, my friends started tripping. They were noticing patterns in the lights and the clouds, and admittedly I was a little jealous as they kept repeating they were on the same wavelength, and I definitely was not. Little did I know my turn would come. Around the courtyard we were in was a brick facade, with a side-door made of wrought-iron on either side. When I say courtyard, I mean this thing is probably a square mile, and we were in a less-traveled part, so we were pretty secluded and felt very safe, or at least I did. As we exited the courtyard, and after my friends climbed off of the brick wall, I closed the wrought-iron gate behind us and 'R' noted that 'You just closed a chapter to the book.'
Well my book was actually opened shortly thereafter this, because I took about 10 or 15 steps after that and my body was overcome by some indescribable sensation.  I felt the long grass all around me and it felt silky and smooth, suddenly my entire perception was changed. It was more subtle than I describe, because my dropping to my knees and then getting up to move on was actually about a minute long, but it seemed like a half hour.
 I ate the rest, after a little difficulty with the lock to my trunk, and we went to a walking path that runs along the outside wall of our campus. On one side is the train tracks, and on the other is the wall, and both sides are flanked by trees. As we started down the path, I definitely started tripping. Out of nowhere, everything began to disappear around me and the concrete path I was walking on turned white, and the scenery around turned white. I was in a dimension of stark white wonder, at this point my sense of reality began to disappear.
After some reassurance from a fourth person who had (somewhere, at some point?!) joined our party on the path, we agreed that he would drive us to a friend's house, where she lived with a few other people that go to my school, two of whom were also 'shrooming.' As we piled into the car, the visuals began. Suddenly all sense of feeling and time were gone, it just felt as if I were floating along, the car carrying me effortlessly on a pillow to the house. When we arrived, we received some funny looks from a few of those who weren't shrooming, and we sat down on a couple of couches.
At this point, all 3 of us started tripping REALLY hard. R began asking all sorts of rhetorical, philosophical questions such as, 'Where is God?' 'Are you guys on the same page as me right now?' Gradually communication became less and less feasible, and we started getting quiet with moments of sporadic, unusually deep conversation. I remember remarking of how unfathomable it was that nations have boundaries, that we divide the Earth amongst ourselves when we should be living in unity. R continued talking, some of it made sense and some of it didn't, but at the time I believed most of what he was saying.
I remember some intense visuals at this point. I didn't want to look at Z because he was turning into a lizard of some sort, reminding me of Reptile from Mortal Kombat 2 fatalities. Random, I know. Also, in the middle of the room was a glass coffee table with a red carpet around it. The more I looked at the carpet, the more I was sure there were red waves in it, and after awhile it was completely fluid. We all agreed on feeling very enlightened, like we found out the meaning of life, everything we could ever want to know. I kept facing everything in my soul that had burdened me face to face, one at a time. My thoughts were racing so much, my mouth couldn't keep up. I would say something but I was already thinking of something else, so I would stop mid-sentence when I became bored with my current speech. I noticed this the most when I attempted calling a high school friend, and he seemed a bit confused. I realized that speaking to someone not on mushrooms was pretty unreal.
As the visual distortions became more vivid, I started getting 'the fear.' I was feeling very, very scared, wondering if my mind and body would ever come out of this altered state. It was like I was another person, it was another self I had never known that was walking and talking and looked like me, but wasn't. I was a complete virgin to reality, like I was reborn. The world was a new place, and I remember writing 'Everything is so old, but so new.'
Since I was tripping with a couple of guys, when one (sober) girl came down into the basement who was very pretty I felt overwhelmingly relieved for some reason. I kept asking 'Am I going to be okay? Is everything all right?' to which she replied 'Yes, everything's okay, you're safe here.' At this point we agreed that the female gender was very soothing, comforting, and gentle. We were all speaking to her like we were children and she just sort of laughed at our absurdity. At this house, most of (if not all) the people had tripped before, so as weird as we were acting the remaining people (4 or 5) that weren't tripping were very, very welcome and supportive.
At various times during the evening we attempted smoking some weed, but it was pretty impossible. Our sober friend 'S' rolled up a blunt, so I hit it two or three times but felt nothing really so I left the room in a state of confusion. I vowed (for some crazy reason) that marijuana was pointless, and that it was unnecessary to smoke anymore. The three of us agreed that from now on, we would go out and be productive, that we wouldn't waste our potential. R noted our presence in a humorously and accurately-titled 'drug den,' though the house is actually a 2-story, well-furnished and adorned suburban cookie-cutter house, just inhabited by stoners and e-droppers.
Gradually we split up at various points, at one of which I retreated to the seclusion of the den and by chance there was a blank envelope and a pen on the table, and being an avid writer, musician, and lyricist I began writing what was for the most part, complete nonsense, but never have I written anything straight from the soul. From reading this 'letter' I have learned a lot about myself and what I want to accomplish in my life, and as it is a little vague now, at the time it seemed as if every second was bringing a new and different epiphany about myself and mankind and the world. The entire experience was deeply spiritual, more so than any church, synagogue, mosque, or any religious temple could offer.
As the most intense portion of the trip wore down, I remember feeling REAL bad, while the upswing was wonderfully anticipatory, the coming down was very scary, as I was unsure of what I would be like when it was over. Would I retain the knowledge attained, or would I forget everything? Fortunately, I remember bits and pieces very well, but the vast majority was a mental illusion courtesy of the mushrooms. For awhile we were up in 'S''s room as she and 'Z' and I played with some change, throwing it all around the room.
At one point I attempted to eat a homemade candy apple (R unsuccessfully attempted this earlier) and after a few tries, finally got it, which felt pretty good as food was unappealing just an hour before. I started coming back to reality a little bit, or so I thought, but just when I thought I was sober I would get a surge through my body, or a crazy thought, or the fibers of the couch would move in and out of each other. So I came to the conclusion I would need sleep if I wanted to sober up.
Fortunately, one person who had their license on them was there (and sober) so he drove us back to campus where we passed out. For the next day I was really uneasy and unable to put together any impartial recollection of the previous night, but after a good night's sleep the next night I was back to normal and now am in the state I right in at the moment.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


meghan kline tuls
Post #8: The Internet
How does it work?
July 16, 2015
About Me
Blog Spot
My Projects
Being that I am a visual learner, here is my representation of...


{# This template receives the following context: login_link - the link that should be fetched (GET) to reset login_token - this token is part of reset link - but can be used to construct arbitrary URLs for redirecting. user - the entire user model object username - username security - the Flask-Security configuration #}
{{ _fsdomain("Welcome") }} {{ username }}!
{{ _fsdomain("You can sign into your account using the following code:") }} {{ token }}
{% if login_link %}{{ _fsdomain("Or use the link below:") }}
{% endif %}


Man City record Pep Guardiola's lowest possession percentage in 381 games while beating Chelsea
by BeSoccerNo Pep Guardiola side has ever managed less possession in a top-flight game than Manchester City did in their win over Chelsea.
Manchester City claimed a valuable Premier League victory over Chelsea on Saturday, despite recording the lowest share of possession any Pep Guardiola side has managed in a top-flight game.
During his stints in charge of Barcelona, Bayern Munich and City, Guardiola has become synonymous with dominance of the ball.
Yet his side's 2-1 win against Chelsea at the Etihad Stadium, secured by goals from Kevin De Bruyne and Riyad Mahrez after N'Golo Kante had given the visitors the lead, was notable for City managing a possesion figure of just 46.74 per cent, according to official Opta data.
That represents the lowest figure any Guardiola side has registered in 381 top-flight games.
Featured links
- Mourinho replaces Pochettino at Tottenham
- The latest football transfers news and rumours
- Wales, golf, Madrid... in that order
- Luis Enrique returns to Spain national team
"It's not that easy, people expect us to have 70 per cent of the possession, but these guys [Chelsea] have a lot of quality," said ex-Blues midfielder De Bruyne in a post-match interview with Sky Sports.
"It shows the other side we have, that we can control the game while defending and that's also good for us."


Housing Minister urged to quit as homelessness total exceeds 10,000
The number of people in emergency accommodation increased again in September, with almost 10,400 adults and children experiencing homelessness.
Department of Housing figures released yesterday show 10,397 people, including 6,524 adults and 3,873 children, accessed emergency accommodation in September.
The homelessness total passed the 10,000 mark for the first time in March this year.
Among adults, the biggest proportion of people accessing emergency accommodation was those aged between 25 and 44.
There were also almost 1,000 more men than women who were homeless.
The figures show there were 1,756 families experiencing homelessness last month.
Some 76% of people accessed emergency accommodation in Dublin, followed by Cork, Galway, Limerick and Kildare.
Anthony Flynn, CEO of homelessness charity Inner City Helping Homeless, called on Housing Minister Eoghan Murphy to consider his position and step down in light of the figures.
“Further increases in the number of families, children and adults that are now homeless in the State have made the Minister’s position untenable. He needs to leave his post as the relentless persistence in expecting the private markets to resolve the homeless crisis have clearly failed,” he said.
Wayne Stanley, national spokesman for the homelessness charity Simon Communities, said the figures do not capture the full extent of homelessness in Ireland because rough sleepers, those in squats, people in direct provision and women’s shelters are not included.
He said it is “crucial that we remind ourselves that this is not normal”.
Mr Stanley said: “Homelessness is not normal and as a society we long ago set out that it should not be acceptable.”
He criticised the Government’s approach to solving the homelessness crisis and said it is not working.
“The current programme cannot be allowed to drift on as if it was succeeding,” he said.
“To move forward, the Government has to accept the failings of Rebuilding Ireland to provide affordable and secure housing across the country, particularly one and two-bed units, and act to improve levels of availability of suitable and secure accommodation for those currently experiencing homelessness.”
Focus Ireland director of advocacy Mike Allen said the figures show that the problem “cannot be solved unless the Government moves to stop families being evicted from their homes by landlords who wish to sell up”.


Home
Education
Skills
Coding Skills
HTML 5
CSS 3
Javascript
Ruby
Web Design
Photoshop
XD
InDesign
Figma


The SKY UX continuous integration layer supports unit tests and end-to-end tests, and the SKY UX CLI includes commands to run tests in multiple platforms and browsers when the SPA code changes or when a SPA dependency releases a new version.
Unit tests scrutinize the smallest testable parts of an application. For information about unit tests in SKY UX, see the tests reference. For information about how to test modals in SKY UX, see write unit tests for modals. And for tips and techniques on testing Angular applications, see the Angular testing guidelines.
When you create a SKY UX project, the template includes sample unit tests in the new project. You can follow the steps in this tutorial to run the unit tests for the default single-page application.
To view the unit test spec files in a local editor, open the project's
In the command prompt, enter
The tests run, and the command prompt displays the results. Code coverage results for
End-to-end tests identify system dependencies and ensure that an application flows as expected from start to finish. You can follow the steps in this tutorial to run any end-to-end tests that you create.
For information about end-to-end tests in SKY UX, see the tests reference. For tips and techniques on testing Angular applications, see the Angular testing guidelines. And for guidance on troubleshooting e2e tests, see Debugging Protractor Tests.
When you create SKY UX end-to-end tests, use the same name as the components or services that they test, but they should end with
In the command prompt, enter
The test runs, and the command prompt displays the results.
During development, you can use the following steps to control which tests to include in a test run.
To exclude tests from a test run, change
To limit a test run to only include a subset of tests, change


Our Achievers have many opportunities to expose themselves to new experiences and knowledge. Here are some of our most memorable ones!
An entertaining workshop hosted by our corporate sponsor, DELL. Our hosts were friendly and cheerful, sharing sessions were really fun and interactive, food was great too! All of us at Spark Enterprise are super grateful for the team building activities to foster a close-knit and productive relationship between our Achievers. Lots of joyful laughter and friendly banter could be heard - very loudly! We tookk many funny photos too!
Date: 24th April 2019
An educational experience for us all. Through this event, our Achievers realised the importance of analytical skills and preparation while preparing for their simulated product pitching session. One of our two teams from Spark Enterprise managed to stand out amidst the strong competition, being the overall winner of the challenge! However, the most important thing is that we gained a lot from participating in the ITC 2019. (Huge shoutout to JA for giving Spark Enterprise this opportunity!)
Date: 19th June 2019
For Spark Enterprise's CSR project, we decided to take on a unprecedented task - distributing food to the homeless. Our Achievers did everything from packing the food, giving them out, and even the cleaning duties that followed. This activity made us realise that we should all be grateful for the things we have at the moment and not want more. We would also like to sincerely thank Kechara Soup Kitchen for their selfless contributions.
Like our pictures? Check out more of them via the following links!
Facebook: Spark Enterprise
Instagram: @sparkenterprise_
Links in our "Contact Us Page" -
Date: 14th April 2019


collect url route resultsPredicate
Signature: url:string -> route:HttpRouter -> resultsPredicate:(HttpRequest list -> bool) -> HttpPollTarget<HttpRequest list>
|
Starts a HTTP server on the specified url, receiving requests when the specified routing function holds,
collecting a series of received requests until the specified results predicate succeeds.
|
collectCount url route count
Signature: url:string -> route:HttpRouter -> count:int -> HttpPollTarget<HttpRequest list>
|
Starts a HTTP server on the specified url, receiving an specified amout of requests when the specified routing function holds.
|
collectCustom(...)
Signature: url:string -> route:HttpRouter -> handler:HttpHandler -> resultMapper:((type) -> '?9731) -> resultsPredicate:('?9731 list -> bool) -> unit -> Async<'?9731 list>
Type parameters: '?9731
|
Starts a HTTP server on the specified url, handling the received request with the specified handler when the specified route holds,
collecting a series of received requests all mapped to a type via the specified mapper function until the specified results predicate succeeds.
|
receive(url)
Signature: url:string -> HttpPollTarget<HttpRequest option>
|
Starts a HTTP server on the specified url, receiving a single request for any kind of routing.
|
respondContent content ctx
Signature: content:(type) -> ctx:(type) -> Async<unit>
|
Creates a handling function that adds a specified generic HTTP content to the HTTP response.
|
respondContentString content ctx
Signature: content:string -> ctx:(type) -> Async<unit>
|
Creates a handling function that adds a specified string content to the HTTP response.
|
respondStatus status ctx
Signature: status:(type) -> ctx:(type) -> Async<unit>
|
Creates a handling function that adds a specified status code to the HTTP response.
|
respondStatusCode status ctx
Signature: status:int -> ctx:(type) -> Async<unit>
|
Creates a handling function that adds a specified status code to the HTTP response.
|
respondStream(stream)
Signature: stream:(type) -> (type) -> Async<unit>
|
Creates a handling function that adds a specified stream content to the HTTP response.
|
route url predicate handler
Signature: url:string -> predicate:HttpRouter -> handler:HttpHandler -> (type)
|
Starts a HTTP server on the specified url, handling the received request with the specified handler when the specified predicate holds.
|
routes url table
Signature: url:string -> table:seq<HttpRouter * HttpHandler> -> (type)
|
Starts a HTTP server on the specified url, handling the received request with the specified handler when the specified predicate holds.
|
server(url)
Signature: url:string -> (type)
|
Starts a HTTP server on the specified url, returning a successful 'OK' for received requests.
|
serverCustom url custom
Signature: url:string -> custom:((type) -> (type) -> unit) -> (type)
|
Starts a HTTP server on the specified url, handling the received request with the specified handler when the specified predicate holds.
|
simulate url route handlers
Signature: url:string -> route:HttpRouter -> handlers:HttpHandler list -> (type)
|
Starts a HTTP server on the specified url, simulating a series of respond messages when the specified routing function holds.
|
simulates url table
Signature: url:string -> table:(HttpRouter * HttpHandler list) list -> (type)
|
Starts a HTTP server on the specified url, simulating a series of respond messages when the specified routing function holds.
|


Q: What is P2Pool?
A: P2Pool is a decentralized mining pool that works by creating a peer-to-peer network of miner nodes making the pool as a whole highly resistant to malicious attacks, and preserving and protecting the decentralized nature of Bitcoin and other Altcoins.
You can find more useful information at
p2pool.org, the
P2Pool WiKi and
Guide for mining efficiently on P2Pool.
Q: How is P2Pool different?
A: P2Pool has it's own sharechain with a fast target speed of 10 seconds per share. This sharechain is used between nodes to distibute the work. Do not confuse the P2Pool sharechain with the coin blockchain. Since the P2Pool sharechain has such a rapid expiration of work you will notice a lot of restart messages to the miner.
It may take some time for smaller miners to obtain a share. This will result in an increase of variance but over time you should experience higher payouts when compared to other pools.
Orphans/DOAs on the P2Pool sharechain are common because of the fast target speed. Do not confuse this with orphaned blocks on the coin blockchain. DOA shares can actually still be valid blocks so do not use --no-submit-stale
Q: How do I tune for P2Pool?
A: P2Pool has very rapid expiration of work. It is suggested you decrease your intensity by 1 from your optimal value and [possibly] set GPU threads to 1. If you have non-p2pool backup pools it is recommended to use --failover-only since the work is effectively like a different block chain. Do not use --no-submit-stale since what cgminer considers stale may be valid with P2Pool.
Q: Why is my Dead rate so high?
A: Dead rate is the amount of shares that were stale or DOA. Very high dead rates can indicate miner misconfiguration. If you are mining on a coin that is not showing the correct date then the share difficulty will be low until it catches up. This will cause the graphs to display higher dead rates. It should be noted that dead shares are still submitted and can solve a block. Do not use --no-submit-stale
Q: Why does my miner report so many longpoll/stratum from pool request work restarts?
A: This is normal. It is how often P2Pool shares are generated.
Q: How do I get paid?
A: P2Pool miners are paid every time a block is found by the pool for any confirmed shares they currently have in the P2Pool sharechain.
This is known as a Pay Per Last N Shares (PPLNS) payout system, and is the mechanism P2Pool uses to both determine payouts and discourage pool hopping. In P2Pool the N in PPLNS is 8,640 for most coins. Each of the last 8,640 shares are paid each time a block is found. A share in the P2Pool sharechain can be expected to last between 1 to 3 days depending on the coin.
Confirmed shares are valid, and paid whenever a block is found, for as long as they remain in the sharechain. Payouts in P2Pool are made immediately, directly from the block generation transaction.
As a miner on P2Pool you are competing with other P2Pool miners for a portion of the 8,640 active shares. The more shares (and the higher the difficulty of those shares) you have in the sharechain, the greater your reward when a block is found.
Q: How does the pool fee work?
A: The fee's on P2Pools are a bit different than other pools. Any fees that a P2Pool has is
probabilistic. In other words if the P2Pool has a 1% fee then 1% of the shares go to the pool not 1% of every share. The pool can have periods of bad luck in relation to the fee and get nothing at all...but it averages out over time.
Q: Why are the stats not updating?
A: Internet Explorer may not display current data after a browser refresh. Please try using Chrome instead.
Q: Can I set my own share difficulty?
A: There are two different difficulty setting you can specify. Share Difficulty and Pseudo Share Difficulty. It is important you understand the difference. Share Difficulty by address is shown in the Miners tab.
Share Difficulty: address/<number>
Sets the share difficulty for shares that count towards a payout.
P2Pool takes the total hashrate on each node and assigns a share difficulty for that node based on that number. This means that large miners may increase the share difficulty on a node to a point where smaller miners are working on shares too difficult for their speed.
The maximum a node can raise the share difficulty is 30x the P2Pool share difficulty. To determine the maximum share difficulty find the P2Pool share difficulty displayed on the Stats page and multiply by 30.
The P2Pool share difficulty displayed on the Stats page is the lowest share difficulty that can be assigned to a miner. If you would like to provide your miner with the lowest P2Pool share difficulty use:
address/0
CAUTION: Setting your share difficulty to the lowest P2Pool share difficulty may decrease your per block payout to a point where you may encounter large transacion fees. Try to keep your per block payout above the coins minimum transaction fee as setting your own share difficulty overrides the minimum payout threshold.
Pseudo Share Difficulty: address+<number>
Pseudo Share Difficulty is what a P2Pool node sends to your miner to keep it busy waiting for a share that attempts to solve a block and count towards a payout. It does this so you can verify the miner is hashing correctly and make adjustments as necessary. P2Pool nodes also use pseudo shares to populate graphs and hashrate display.
Setting pseudo share difficulty allows you to set the quantity and difficulty of pseudo shares in-between share used to solve blocks. Setting the pseudo share difficulty will help minimize the amount of traffic from your miner to the P2Pool node.
To set the pseudo share difficulty for your specific hash rate multiply by 0.00000116
For example, if your miner is capable of 1440 Mh/s:
1440 * 0.00116 = 1.6704
You can set both share and pseudo share diffuculty settings together by using:
address/<number>+<number>
Example Connection String for a miner choosing the minimum P2Pool share difficulty with 1440 Mh/s:
sgminer --darkcoin-mod --no-extranonce -o stratum+tcp://<IP_ADDRESS>:7903 -u Xbon36F261wXDL4p1CEZAX28t8U4ayR9uu/0+1.6704 -p x


|
DESERT
3.0
|
#include <uwUFetch_AUV.h>
Public Member Functions | |
| uwUFetch_FIRST_DATA_timer (uwUFetch_AUV *m) | |
| virtual | ~uwUFetch_FIRST_DATA_timer () |
| Public Member Functions inherited from uwUFetch_AUV::uwUFetch_timer | |
| uwUFetch_timer (uwUFetch_AUV *m) | |
| virtual | ~uwUFetch_timer () |
| virtual void | freeze () |
| virtual void | unFreeze () |
| virtual void | stop () |
| virtual void | schedule (double val) |
| bool | isIdle () |
| bool | isRunning () |
| bool | isFroozen () |
| bool | isExpired () |
| bool | isActive () |
| void | resetCounter () |
| void | incrCounter () |
| int | getCounter () |
| double | getDuration () |
Protected Member Functions | |
| virtual void | expire (Event *e) |
Additional Inherited Members | |
| Protected Attributes inherited from uwUFetch_AUV::uwUFetch_timer | |
| double | start_time |
| double | left_duration |
| int | counter |
| uwUFetch_AUV * | module |
| UWUFETCH_TIMER_STATUS | timer_status |
Class inherited the method and variable of uwUFetch_timer that handle the timer of DATA packets.
After the transmission of CTS or TRIGGER packet, the AUV node enter in a waiting state in which It wait a sequence of DATA packets requests from HN. This timer wait the reception of first DATA packet from the specific HN. It is used only if the communication come without RTS and CTS The uwUFetch_DATA_timer schedule this waiting interval time
Definition at line 482 of file uwUFetch_AUV.h.
|
inline |
Constructor of uwUFetch_FIRST_DATA_timer class.
| m | a pointer to an object of type uwUFetch_AUV |
Definition at line 489 of file uwUFetch_AUV.h.
|
inlinevirtual |
Definition at line 497 of file uwUFetch_AUV.h.
|
protectedvirtual |
Method called when the timer expire.
| Event* | pointer to an object of type Event |
Definition at line 1824 of file uwUFetch_AUV_mod_1.cpp.


Here is how you do the same using ngx-valdemort:
And here is the same complete small form.
This is already much better. The code is much easier to read and write, and the probability of introducing a bug is much smaller than before. But we can do better, and avoid repeating the same error messages over and over.


Current Player: {{ currentPlayer }} Player {{ currentPlayer }} won! Oops! its a draw This space is taken, please choose again!


Iraqi prime minister says he will resign
BAGHDAD, Nov 29 — Iraqi Prime Minister Adel Abdul Mahdi said today he would offer his resignation to parliament to allow lawmakers to choose a new government, in a move that follows weeks of violent anti-government protests.
Abdul Mahdi’s decision came in response to a call for a change of leadership today by Iraq’s top Shi’ite Muslim cleric Grand Ayatollah Ali al-Sistani, his office said in a statement.
“In response to this call, and in order to facilitate it as quickly as possible, I will present to parliament a demand (to accept) my resignation from the leadership of the current government,” said the statement, signed by Abdul Mahdi.
The statement did not specify when he would tender his resignation. Parliament is due to convene on Sunday.
The announcement came after weeks of anti-government unrest in which security forces have killed around 400 mostly peaceful demonstrators and the country has careered towards a serious escalation of violence. — Reuters


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
RILEY SCOTT
05.30.19
If you are looking to make new friends doing something that you already love, or if you just want to try something new, student organizations are a great place to start.
Around the time of Welcome Weekend, Ohio University will throw an Involvement Fair on College Green where representatives from different student organizations will be present to recruit and encourage people to join.
OU has over 600 student organizations, and their profiles can be viewed on the OrgSync website. There are plenty of choices for students to branch out and find their niche, or they can join one of these unique student organizations:
ILLUSTRATION | TAYLOR JOHNSTON
This organization is centered around the sport of AcroYoga, which is a type of yoga that combines traditional yoga with acrobatics. It features the use of gravity to promote stretching and stress relief.

Students don’t have to be an engineer to join the Hovercraft Club. Members can use their problem solving skills to design and build hovercrafts and use them in different events or games.
OU’s only swing dance club, the Jitterbug Club meets every week during the school year to teach lessons and host occasional social dance events.
Learn the art of archery in OU’s Archery Club. This organization even has a team that travels and competes at the collegiate, local, state and national levels.
Visit the Combative Arts room on the second floor of Ping Recreation Center to witness some martial arts. Kendo is based on samurai sword-fighting and teaches mental and physical discipline.
Hang out and casually play video games with the members of the OU Gaming Association. Utilize one of the provided gaming consoles or bring your own. You can also bring some friends to game competitively.
Learn more about magic or simply be entertained in the OU Magician’s Association. With weekly meetings, members discuss new happenings in the magic community as well as practice routines in front of fellow magicians.
Sail on Lake Snowden competitively or recreationally with OU’s Sailing Team. Students can join the team with or without any sailing knowledge.
Learn to play and meet others in the OU Ukulele Club. Members can learn popular songs on their ukulele and play in small gatherings or at open-mic venues like Front Room Coffeehouse.
Attend bouldering trips around Athens or climbing nights at Ping’s rock wall with OU Climbers. Members with no experience are also encouraged to join.
BackLanding Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Real-Time Data Viewer
COM Status: Socket Not Yet Opened...
☰ Signals
×
Clear Selection
DAQ Control
Start
Stop
Home
State Data
Calibration
Driver View
Plot View
Pose View
Controller Map


The incident occurred on the Obosi-Nkpor road in the Idemili North Local Area Government Area of the state.
The deceased were identified as Chibuzor Nwobodo and Chinedu Ohaeri.
A resident, who spoke to our correspondent on condition of anonymity said the vigilantes were crushed to death by an unmarked vehicle before their guns were taken away.
“It is likely to be armed robbery attack because immediately they were crushed, their killers took away their guns, showing it wasn’t a mere accident”, the source stated.
The Police Public Relations Officer in the state, Haruna Mohammed confirmed the story to our correspondent.
Mohammed, however, said the deceased persons were crushed to death by a hit-and-run driver.
He said their corpses have been deposited at Edward mortuary Obosi for autopsy.
He added, “At about 06.00 a.m., one Chidebe Emodi, commander, central vigilante group, Obosi reported at Obosi Division that two of his vigilante operatives namely Chibuzor Nwobodo and Chinedu Ohaeri both males posted to Oduzor along Obosi-Ukpor road were allegedly knocked down by a hit-and-run Toyota Avalon car.
“Two of their pump actions guns, Mossberg P990624 and Federal manual 15-1317 were carted away to an unknown destination.”
He said the scene was visited by a police patrol team led by DPO Obosi, Usman Ibrahim, adding that the victims were rushed to Chukwurah Hospital Obosi where they were confirmed dead.
“The Commissioner of Police John Abang has ordered a discreet investigation to ascertain circumstances surrounding the incident and bring perpetrators to justice”.


{% macro form_field(field, help=None) %}
people could maybe use welp to search for restaurants that have things like cooked food or water and sometimes bread. try it if you want.
"i mean they had cool pots and stuff."
you don't need to worry about this
just kidding it's not actually food
it doesn't count as food


jl777c
12-Nov-19 01:17 PM
unless, we make specific set of initial deposits to cover the startup case
with a daily rebalancing, the msig nodes can just spend all the 8 balances to the 8 addresses in a single rebalancing transaction, i guess skipping any pending withraws
if an incremental method can be made, it would be better
maybe a just in time process where funds are kept in the main msig address and only transferred to the 8 withdraw balance addresses, as needed. it is an extra transaction, but if we can do this, then it handles the case when there are not enough funds in the 1/8th address
once that case is handled, if we notice that there are already enough funds in the 1/8th address, then the transfer from main address can be skipped
i think it is a matter to carefully track the 9 balances, and 8 pending withdraws


Resume | CV | Senior Thesis | LinkedIn | Github | Transcript | Mail me | Google Scholar
I'm Arpandeep (Arpan) Khatua, a senior majoring in Computer Engineering with minor in Mathematics at University of Illinois at Urbana-Champaign (UIUC). I am passionate about building systems for curbing misinformation and improving healthcare. I interned with Facebook Inc (Menlo Park,CA) in Summer 2021 and Meta Inc (NYC) in Summer 2022 working on NLP & Fullstack Dev.
My research interest focuses broadly on graph neural networks (GNNs) and natural language processing (NLP) with an emphasis on optimizing language models, long text generation, bias-free event understanding, and information retrieval. I completed my senior thesis on Graph Neural Networks advised by Prof. Wen-mei Hwu and Dr. Vikram Sharma Mailthody. I am also working on information retrieval and ranking with Prof. Kevin Chen-Chuan Chang in the Forward Data Lab.
Reviewed paper for a conference and submitted papers! @ICWSM '23 and @KDD '23.
I'm joining Meta as a Software Engineer. 👨💻
Completed my senior thesis on massive GNN datasets. 🎉
|
|
Arpandeep Khatua, Vikram Sharma Mailthody, Bhagyashree Taleka, Xiang Song, Tengfei Ma, Piotr Bigaj, Wen-mei Hwu. (Submitted at KDD 2023) [code] [paper] Largest public graph dataset for testing GNN models at scale and sytem optimization. |
|
|
Pingjing Yang, Ly Dinh, Hamiz Anjum, Alex Stratton, Arpandeep Khatua, Jana Diesner, Richard Sowers. (Submitted at ICWSM 2023) [code] [paper] In this study, we use Twitter data to automatically identify who needs what and how types of needs, that we categorized and standardized, have evolved throughout the Ukraine-Russia conflict. |
|
|
Arpandeep Khatua, Adit Agarwal, Kevin CC Chang. (In Prep for ACL 2023) [code] Multi-stage subtopic generator for long text generation and richer search results. |
|
|
Arpandeep Khatua, Xiatong Li, Efstathios Garitsis, AJ Hildebrand. (Experimental Mathematics Journal) [code] Strong statistical proof for randomness of π continued fraction digits. |
|
Hamiz Anjum*, Arpandeep Khatua*, Alex Stratton*, Pingjing Yang, Jana Diesner. (Illinois Geometry Lab Open House 2022) [code] This will enable us to take more informed precautions for similar unforeseen situations in the future. |
|
|
Alex Jin*, Arpandeep Khatua*, Xiatong Li*, Shreyas Singh*, Zhuo Zhang*, Efstathios Garitsis, AJ Hildebrand. (MAA MathFest 2022) [code] Studying the continued fraction digits of π to find patterns. |
|
|
Arpandeep Khatua,Vikram Sharma Mailthody, Wen-mei Hwu. (Illinois Undergraduate Research Symposium 2022) [code] GNN datasets will promote research to improve system efficiency and model accuracy, which may be used for recommendation systems and citation prediction. |
|
|
Arpandeep Khatua, Glen Worthey, Boris Capitanu, J. Stephen Downie. (Engineering Open house 2022) [code] This will allow users to search specific terms and non text objects from massive digital records. |
|
Software Engineering Intern @ Meta Inc. |
FB Live Video Experience, managed by Mr. Gabriel Ochoa
|
|
Software Engineering Intern @ Facebook Inc. |
FB Shops Ranking Team, managed by Mr. Artem Zinchenko
|
|
Undergraduate Research @ IBM-ILLINOIS Center for Cognitive Computing Systems Research (C3SR) |
IMPACT Lab, advised by Prof. Wen-mei Hwu and Dr. Vikram Sharma Mailthody
|
|
Undergraduate Research |
Forward Data Lab, advised by Prof.
Kevin Chen-Chuan Chang
|
|
IGL Fellow @ |
Hildebrand Research Group, advised by Prof. AJ Hildebrand
|
|
SPIN Intern @ |
HathiTrust Digital Library, advised by Prof. J. Stephen Downie and Dr. Glen Layne-Worthey
|
|
IGL Fellow @ |
Social Computing Lab, advised by Prof. Jana Diesner
|
|
Undergraduate Research |
Koyejo Lab, advised by Prof. Sanmi Koyejo
|
|
Undergraduate Research @ |
Health Care Engineering Systems Center (HCESC), advised by Dr. Inki Kim
|
|
Undergraduate Research |
Caesar Lab, advised by Prof. Matthew Caesar
|
|
Undergraduate Research @ |
FRESH Lab, advised by Prof. Girish Chowdhary
|
Auto-grading on text extracted from PDF assignments with an OCR pipeline, using NLP in python with 98%+ accuracy in 1 week. Reduced auto-grading time by 50% utilizing better algorithms and libraries.
Built a custom NLP model to classify text based on mental health conditions and a web page for easier access by patients and health-care professionals with an OCR and voice to text functionality.
Job search portal by scraping real time information from google and linkedin to help curb increasing unemployement rates due to COVID-19 in developiing countries.
|
|
CS coursework: Natural Language Processing, Artificial Intelligence, Machine Learning, Deep Learning, Algorithms & Models of Computation, Data Structures Honors, Discrete Structure, Databases.
ECE coursework: Analog Signal Processing, Computer Systems & Programming, Digital Signal Processing, Computer Systems Engineering, Digital Systems Laboratory.
Math coursework: Differential Equations Plus, Fundamental Math, Probability with Engineering, Applied Linear Algebra, Number Theory.
Computer Systems Engineering (ECE 391): Creating new course material and internal grading scripts and conducting office hours to help students debug codes and provide machine problem overviews for intensive upper-level OS kernel-building class.
Probability with Engg Applications (ECE 313): Graded and provided feedback for students on weekly home-works and exams in upper-level probability and statistic class for signal processing and control systems.
Analog Signal Processing (ECE 210): Graded and provided feedback for students on weekly homeworks and exams for a sophomore-level class covering circuit analysis, Fourier, and Laplace transform.
Intro to Electronics and Computing Honors Lab (ECE 110H/ECE120H): Mentored freshmen and sophomores to work on projects involving robotics path planning, computer vision, NLP, FPGAs, and power systems in the honors lab. Conducted office hours and discussion sections for intro-level electrical and computer classes.
The IBM-ILLINOIS Center for Cognitive Computing Systems Research (C3SR) is a multi-year joint venture between IBM Research and the University of Illinois at Urbana-Champaign to solve the most pressing issues facing the new computing era of artificial intelligence (AI).
The National Center for Supercomputing Applications (NCSA) needs talented, creative Illinois undergraduate students to participate in hands-on research and development projects in areas including supercomputing, data analytics, visualization, and more. Students Pushing Innovation (SPIN) fellows work on a research project for one academic year.
Awarded to 2 students out of 2000 to recognize outstanding students in Electrical and Computer Engineering at UIUC. These scholarships are given by O. Thomas Purl and his wife Martha to recognize outstanding students in Electrical and Computer Engineering. The recipient(s) are recognized at the annual spring ECE Awards and Recognition Banquet. All student recipients are featured on the second floor of the ECE Building's Student Honors Wall.
Merit-Based Scholarships.
An OSF HealthCare, University of Illinois Urbana-Champaign, and University of Illinois College of Medicine Peoria Collaboration funding interdisciplinary research between engineers, clinicians, and social scientists to improve the future of health care for all. Scholars work on a research project for one academic year.
In late 2020, The Grainger College of Engineering asked its faculty and staff to nominate people who had gone “above and beyond” in their response to the COVID-19 pandemic. Students who helped in new, unexpected ways. The response to our request was massive—just like the hours, attention, and skill that our college offered the face of a global catastrophe. Hundreds of people’s names were submitted. A plaque recognizing all of them will be installed in Engineering Hall.
At the lab, undergraduate students work closely with graduate students and faculty on visualization projects set forth by faculty members, as well as to bring mathematics to the community through school visits and other activities. IGL research is supported by the Department of Mathematics and the Office of Public Engagement at the University of Illinois at Urbana-Champaign.
PURE is a student-run program that connects freshmen and sophomores with graduate students for semester-long engineering research projects.
The James Scholar Honors Program in the Grainger College of Engineering recognizes the talents of academically outstanding students promoting curricular/co-curricular activities.
|
|
Eta Kappa Nu Alpha Chapter (IEEE-Honor Society)
|
|
|
Promoting Undergraduate Research in Engineering (PURE)
|
🎨 Painting: I enjoy painting with oil on canvas. 🎙 Debating: I'm always down for a lively debate and I led my highschool debate team. I was the President of the local Toastmasters International Gavel Club. 🥾 Hiking: Looking forward to recreate the macOS wallpaper pictures at Yosemite and Big Sur next year. 🥘 Cooking: I'm a huge food afficianado and gastronome. Unfortunately trying out too many new dishes has put a strain on my gym membership. 🍿 Watching shows: "If I can't scuba what's this all about?"
Prof. Wen-mei Hwu - AMD Jerry Sanders Chair Emeritus Professor, UIUC & Senior Distinguished Research Scientist, NVIDIA
Prof. Kevin Chenchuan Chang - Professor, UIUC
Dr. Vikram Sharma Mailthody - Research Scientist, NVIDIA Research
Dr. Xiang Song - Senior Applied Scientist, Amazon AWS
Mr. Gabriel Ochoa - Software Engineering Team Lead, Facebook, Meta Inc.
Please click here to get the contact information of the referrers.


Before Change
self._text_field_embedder = text_field_embedder
self._attend_feedforward = TimeDistributed(attend_feedforward)
self._matrix_attention = LegacyMatrixAttention(similarity_function)
self._compare_feedforward = TimeDistributed(compare_feedforward)
self._aggregate_feedforward = aggregate_feedforward
self._premise_encoder = premise_encoder
self._hypothesis_encoder = hypothesis_encoder or premise_encoder
After Change
text_field_embedder: TextFieldEmbedder,
attend_feedforward: FeedForward,
similarity_function: SimilarityFunction,
compare_feedforward: FeedForward,
aggregate_feedforward: FeedForward,
premise_encoder: Optional[Seq2SeqEncoder] = None,
hypothesis_encoder: Optional[Seq2SeqEncoder] = None,


Words
f1 b1 b2 if
Condition
Do b1 if f1 is true, otherwise do b2.
n1 n2 <=>
Compare
Returns -1 if n1 < n2, 0 if n1 = n2, +1 if n1 > n2.
n1 n2 <
Less than
Returns -1 if n1 < n2, 0 otherwise.
n1 n2 <=
Less than or equal to
Returns -1 if n1 <= n2, 0 otherwise.
n1 n2 <>
Not equal to
Returns -1 if n1 <> n2, 0 otherwise.
n1 n2 =
Equal to
Returns -1 if n1=n2, 0 otherwise.
n1 n2 >
Greater than
Returns -1 if n1 > n2, 0 otherwise. (flag?)
n1 n2 >=
Greater than or equal
Returns -1 if n1 >= n2, 0 otherwise.
n1 n2 + -- n
Addition
Adds number n1 and number n2 and leaves sum on stack.
n1 n2 -
Subtraction
Subtracts number n2 from n1 and leaves difference on stack.
n1 n2 *
Multiplication
Multiplies n1 and n2 and leaves product on stack.
n1 n2 /
Division
Divides n1 by n2 and leaves quotient on stack.
s1 s2 +
Concat
Concats string s1 and string s2 into a new string.
s1 s2 add
Concat
Concats string s1 and string s2 into a new string.
s1 s2 sub
Subtract
Subtracts the substring s2 from the string s1 wherever it occurs.
s1 s2 -
Subtract
Subtracts the substring s2 from the string s1 wherever it occurs.
o1 print
Print
Convert object o1 to string via its .string method and pushes it to the console device.
o1 print
Print
Convert object o1 to string via its .string method and pushes it to the console device.
Print constant
Immediately prints the string that follows in the input stream.
l1 l2 +
Concats elements of l2 to l1.
l1 l2 +
Concats elements of l2 to l1.
dump
Dump stack
caddr w1
Obtain compilation address
Places the compilation address of the following word on the stack.
' w1
Obtain compilation address
Places the compilation address of the following word on the stack.
w1 :
Print immediate string
Prints the string literal that follows in line.
w1 :
Begin definition
Begins compilation of a word named w.
i1 !
Print indirect
Prints the value at the address at the top of the stack.
Store into address
Stores the value n into the address addr.
n1 +!
Add indirect
Adds n1 to the word at address addr.
i1 @
Load address
Loads the value at i1 and leave it at the top of the stack.
i1 addr
Load address
Loads the value at i1 and leave it at the top of the stack.
Set interpretive state
Within a compilation, returns to the interpretive state.
Push next word
Places the compile address of the following word in a definition onto the stack.


The DocBook XSL Stylesheets package contains XSL stylesheets. These are useful for performing transformations on XML DocBook files.
This package is known to build and work properly using an LFS-9.1 platform.
Download (HTTP): https://github.com/docbook/xslt10-stylesheets/releases/download/release/1.79.2/docbook-xsl-nons-1.79.2.tar.bz2
Download MD5 sum: 2666d1488d6ced1551d15f31d7ed8c38
Download size: 22 MB
Estimated disk space required: 58 MB (includes installing optional documentation)
Estimated build time: less than 0.1 SBU
Optional documentation
Download (HTTP): https://github.com/docbook/xslt10-stylesheets/releases/download/release/1.79.2/docbook-xsl-doc-1.79.2.tar.bz2
Download MD5 sum: 62375ca864fc198cb2b17d98209d0b8c
Download size: 522 KB
apache-ant-1.10.7 (to produce “webhelp” documents), libxslt-1.1.34 (or any other XSLT processor), to process Docbook documents - the Python2 modules libxml2 and libxslt can be used, Python-2.7.17 (at runtime), Ruby-2.7.1 (to utilize the “epub” stylesheets), Zip-3.0 (to produce “epub3” documents), and Saxon6 and Xerces2 Java (used with apache-ant-1.10.7 to produce “webhelp” documents)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-xsl
First, fix a problem that causes stack overflows when doing recursion:
patch -Np1 -i ../docbook-xsl-nons-1.79.2-stack_fix-1.patch
If you downloaded the optional documentation tarball, unpack it with the following command:
tar -xf ../docbook-xsl-doc-1.79.2.tar.bz2 --strip-components=1
BLFS does not install the required packages to run the test suite and provide meaningful results.
Install DocBook XSL Stylesheets by
running the following commands as the root
user:
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 && cp -v -R VERSION assembly common eclipse epub epub3 extensions fo \ highlighting html htmlhelp images javahelp lib manpages params \ profiling roundtrip slides template tests tools webhelp website \ xhtml xhtml-1_1 xhtml5 \ /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 && ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2/VERSION.xsl && install -v -m644 -D README \ /usr/share/doc/docbook-xsl-nons-1.79.2/README.txt && install -v -m644 RELEASE-NOTES* NEWS* \ /usr/share/doc/docbook-xsl-nons-1.79.2
If you downloaded the optional documentation tarball, install the
documentation by issuing the following command as the root
user:
cp -v -R doc/* /usr/share/doc/docbook-xsl-nons-1.79.2
If you are installing the current version of docbook-xsl-nons
over a previous version of docbook-xsl, then remove the old
rewrite entries in the catalog as the root
user:
sed -i '/rewrite/d' /etc/xml/catalog
Create (or append) and populate the XML catalog file using the
following commands as the root
user:
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi && if [ ! -f /etc/xml/catalog ]; then xmlcatalog --noout --create /etc/xml/catalog fi && xmlcatalog --noout --add "rewriteSystem" \ "https://cdn.docbook.org/release/xsl-nons/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "https://cdn.docbook.org/release/xsl-nons/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "https://cdn.docbook.org/release/xsl-nons/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "https://cdn.docbook.org/release/xsl-nons/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog
Occasionally, you may find the need to install other versions of
the XSL stylesheets as some projects reference a specific
version. One example is BLFS-6.0, which required the 1.67.2
version. In these instances you should install any other required
version in its own versioned directory and create catalog entries
as follows (substitute the desired version number for <version>
):
xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/<version>
" \ "/usr/share/xml/docbook/xsl-stylesheets-<version>
" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/<version>
" \ "/usr/share/xml/docbook/xsl-stylesheets-<version>
" \ /etc/xml/catalog
Last updated on 2020-03-24 14:19:44 -0500


{% include blocks/header.html %} {% include blocks/menu.html %} {% include blocks/logo-and-quote.html %}


#include <netdb.h> int getnetent_r(struct netent *result_buf, char *buf, size_t buflen, struct netent **result, int *h_errnop); int getnetbyname_r(const char *name, struct netent *result_buf, char *buf, size_t buflen, struct netent **result, int *h_errnop); int getnetbyaddr_r(uint32_t net, int type, struct netent *result_buf, char *buf, size_t buflen, struct netent **result, int *h_errnop);Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
getnetent_r(), getnetbyname_r(), getnetbyaddr_r():
Instead of returning a pointer to a statically allocated netent structure as the function result, these functions copy the structure into the location pointed to by result_buf.
The buf array is used to store the string fields pointed to by the returned netent structure. (The nonreentrant functions allocate these strings in static storage.) The size of this array is specified in buflen. If buf is too small, the call fails with the error ERANGE, and the caller must try again with a larger buffer. (A buffer of length 1024 bytes should be sufficient for most applications.)
If the function call successfully obtains a network record, then *result is set pointing to result_buf; otherwise, *result is set to NULL.
The buffer pointed to by h_errnop is used to return the value that would be stored in the global variable h_errno by the nonreentrant versions of these functions.
On error, record not found (getnetbyname_r(), getnetbyaddr_r()), or end of input (getnetent_r()) result is set to NULL.


Genocide’s Legacy: A Museum in a Khmer Rouge Prison
Spring 2017, I took Jason Maloney's GlobalBeat video course at NYU, which Jason builds each year around an international reporting trip. Our class traveled to Cambodia and collaboratively reported out several different stories. This one, for the New York Times, is a 360 (i.e., click and drag) video documenting how Cambodia memorializes the millions who died during Pol Pot's genocidal regime.


Resources > Books
This is a listing of useful printed resources on testing.
-
Beck, Kent.
Test-Driven Development: by example.
Addison-Wesley: Boston, 2003.
-
Link, Johannes.
Unit Testing In Java: how tests drive the code.
Morgan Kaufmann: San Francisco, 2002.
-
Hamill, Paul.
Unit Test Frameworks.
O'Reilly Media, Inc.: Sebastopol, CA, 2005.
-
Massol, Vincent.
JUnit in Action.
Manning Publications Co.: Greenwich, CT, 2004.
-
Rainsberger, J. B..
JUnit Recipes: Practical Methods for Programmer Testing.
Manning Publications Co.: Greenwich, CT, 2005.