|
SX126x-Arduino
2.0.1
|
Radio driver API definition. More...
#include <math.h>
#include <string.h>
#include "boards/mcu/board.h"
#include "radio/radio.h"
#include "sx126x.h"
#include "boards/sx126x/sx126x-board.h"
#include "boards/mcu/timer.h"
Data Structures | |
| struct | FskBandwidth_t |
| struct | RadioPublicNetwork_t |
Functions | |
| void | RadioInit (RadioEvents_t *events) |
| Initializes the radio. More... | |
| void | RadioReInit (RadioEvents_t *events) |
| Initializes the radio after deep sleep of the CPU. More... | |
| RadioState_t | RadioGetStatus (void) |
| void | RadioSetModem (RadioModems_t modem) |
| Configures the radio with the given modem. More... | |
| void | RadioSetChannel (uint32_t freq) |
| Sets the channel frequency. More... | |
| bool | RadioIsChannelFree (RadioModems_t modem, uint32_t freq, int16_t rssiThresh, uint32_t maxCarrierSenseTime) |
| Checks if the channel is free for the given time. More... | |
| uint32_t | RadioRandom (void) |
| Generates a 32 bits random value based on the RSSI readings. More... | |
| void | RadioSetRxConfig (RadioModems_t modem, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint32_t bandwidthAfc, uint16_t preambleLen, uint16_t symbTimeout, bool fixLen, uint8_t payloadLen, bool crcOn, bool FreqHopOn, uint8_t HopPeriod, bool iqInverted, bool rxContinuous) |
| Sets the reception parameters. More... | |
| void | RadioSetTxConfig (RadioModems_t modem, int8_t power, uint32_t fdev, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint16_t preambleLen, bool fixLen, bool crcOn, bool FreqHopOn, uint8_t HopPeriod, bool iqInverted, uint32_t timeout) |
| Sets the transmission parameters. More... | |
| bool | RadioCheckRfFrequency (uint32_t frequency) |
| Checks if the given RF frequency is supported by the hardware. More... | |
| uint32_t | RadioTimeOnAir (RadioModems_t modem, uint8_t pktLen) |
| Computes the packet time on air in ms for the given payload. More... | |
| void | RadioSend (uint8_t *buffer, uint8_t size) |
| Sends the buffer of size. Prepares the packet to be sent and sets the radio in transmission. More... | |
| void | RadioSleep (void) |
| Sets the radio in sleep mode. More... | |
| void | RadioStandby (void) |
| Sets the radio in standby mode. More... | |
| void | RadioRx (uint32_t timeout) |
| Sets the radio in reception mode for the given time. More... | |
| void | RadioSetCadParams (uint8_t cadSymbolNum, uint8_t cadDetPeak, uint8_t cadDetMin, uint8_t cadExitMode, uint32_t cadTimeout) |
| Set Channel Activity Detection parameters. More... | |
| void | RadioStartCad (void) |
| Start a Channel Activity Detection. More... | |
| void | RadioSetTxContinuousWave (uint32_t freq, int8_t power, uint16_t time) |
| Sets the radio in continuous wave transmission mode. More... | |
| int16_t | RadioRssi (RadioModems_t modem) |
| Reads the current RSSI value. More... | |
| void | RadioWrite (uint16_t addr, uint8_t data) |
| Writes the radio register at the specified address. More... | |
| uint8_t | RadioRead (uint16_t addr) |
| Reads the radio register at the specified address. More... | |
| void | RadioWriteBuffer (uint16_t addr, uint8_t *buffer, uint8_t size) |
| Writes multiple radio registers starting at address. More... | |
| void | RadioReadBuffer (uint16_t addr, uint8_t *buffer, uint8_t size) |
| Reads multiple radio registers starting at address. More... | |
| void | RadioSetMaxPayloadLength (RadioModems_t modem, uint8_t max) |
| Sets the maximum payload length. More... | |
| void | RadioSetPublicNetwork (bool enable) |
| Sets the network to public or private. Updates the sync byte. More... | |
| uint32_t | RadioGetWakeupTime (void) |
| Gets the time required for the board plus radio to get out of sleep.[ms]. More... | |
| void | RadioBgIrqProcess (void) |
| Process radio irq in background task (nRF52 & ESP32) More... | |
| void | RadioIrqProcess (void) |
| Process radio irq. More... | |
| void | RadioIrqProcessAfterDeepSleep (void) |
| Process radio irq after deep sleep of the CPU. More... | |
| void | RadioRxBoosted (uint32_t timeout) |
| Sets the radio in reception mode with Max LNA gain for the given time. More... | |
| void | RadioSetRxDutyCycle (uint32_t rxTime, uint32_t sleepTime) |
| Sets the Rx duty cycle management parameters. More... | |
| void | RadioOnDioIrq (void) |
| DIO 0 IRQ callback. More... | |
| void | RadioOnTxTimeoutIrq (void) |
| Tx timeout timer callback. More... | |
| void | RadioOnRxTimeoutIrq (void) |
| Rx timeout timer callback. More... | |
| static uint8_t | RadioGetFskBandwidthRegValue (uint32_t bandwidth) |
| void | RadioTx (uint32_t timeout) |
| void | RadioWriteFifo (uint8_t *buffer, uint8_t size) |
| void | RadioReadFifo (uint8_t *buffer, uint8_t size) |
Variables | |
| TimerEvent_t | TxTimeoutTimer |
| TimerEvent_t | RxTimeoutTimer |
| const struct Radio_s | Radio |
| Radio driver. More... | |
| const FskBandwidth_t | FskBandwidths [] |
| const RadioLoRaBandwidths_t | Bandwidths [] = {LORA_BW_125, LORA_BW_250, LORA_BW_500} |
| static double | RadioLoRaSymbTime [3][6] |
| uint8_t | MaxPayloadLength = 0xFF |
| uint32_t | TxTimeout = 0 |
| uint32_t | RxTimeout = 0 |
| bool | RxContinuous = false |
| PacketStatus_t | RadioPktStatus |
| uint8_t | RadioRxPayload [255] |
| bool | IrqFired = false |
| bool | TimerRxTimeout = false |
| bool | TimerTxTimeout = false |
| RadioModems_t | _modem |
| static RadioPublicNetwork_t | RadioPublicNetwork = {false} |
| static RadioEvents_t * | RadioEvents |
| SX126x_t | SX126x |
| Radio hardware and global parameters. More... | |
Radio driver API definition.
| void RadioInit | ( | RadioEvents_t * | events | ) |
Initializes the radio.
| events | Structure containing the driver callback functions |
| void RadioReInit | ( | RadioEvents_t * | events | ) |
Initializes the radio after deep sleep of the CPU.
| events | Structure containing the driver callback functions |
| RadioState_t RadioGetStatus | ( | void | ) |
Return current radio status
| Radio | status.[RF_IDLE, RF_RX_RUNNING, RF_TX_RUNNING] |
| void RadioSetModem | ( | RadioModems_t | modem | ) |
Configures the radio with the given modem.
| modem | Modem to be used [0: FSK, 1: LoRa] |
| void RadioSetChannel | ( | uint32_t | freq | ) |
Sets the channel frequency.
| freq | Channel RF frequency |
| bool RadioIsChannelFree | ( | RadioModems_t | modem, |
| uint32_t | freq, | ||
| int16_t | rssiThresh, | ||
| uint32_t | maxCarrierSenseTime | ||
| ) |
Checks if the channel is free for the given time.
| modem | Radio modem to be used [0: FSK, 1: LoRa] |
| freq | Channel RF frequency |
| rssiThresh | RSSI threshold |
| maxCarrierSenseTime | Max time while the RSSI is measured |
| isFree | [true: Channel is free, false: Channel is not free] |
| uint32_t RadioRandom | ( | void | ) |
Generates a 32 bits random value based on the RSSI readings.
| randomValue | 32 bits random value |
| void RadioSetRxConfig | ( | RadioModems_t | modem, |
| uint32_t | bandwidth, | ||
| uint32_t | datarate, | ||
| uint8_t | coderate, | ||
| uint32_t | bandwidthAfc, | ||
| uint16_t | preambleLen, | ||
| uint16_t | symbTimeout, | ||
| bool | fixLen, | ||
| uint8_t | payloadLen, | ||
| bool | crcOn, | ||
| bool | FreqHopOn, | ||
| uint8_t | HopPeriod, | ||
| bool | iqInverted, | ||
| bool | rxContinuous | ||
| ) |
Sets the reception parameters.
| modem | Radio modem to be used [0: FSK, 1: LoRa] |
| bandwidth | Sets the bandwidth FSK : >= 2600 and <= 250000 Hz LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] |
| datarate | Sets the Datarate FSK : 600..300000 bits/s LoRa: [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips] |
| coderate | Sets the coding rate (LoRa only) FSK : N/A ( set to 0 ) LoRa: [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] |
| bandwidthAfc | Sets the AFC Bandwidth (FSK only) FSK : >= 2600 and <= 250000 Hz LoRa: N/A ( set to 0 ) |
| preambleLen | Sets the Preamble length FSK : Number of bytes LoRa: Length in symbols (the hardware adds 4 more symbols) |
| symbTimeout | Sets the RxSingle timeout value FSK : timeout in number of bytes LoRa: timeout in symbols |
| fixLen | Fixed length packets [0: variable, 1: fixed] |
| payloadLen | Sets payload length when fixed length is used |
| crcOn | Enables/Disables the CRC [0: OFF, 1: ON] |
| FreqHopOn | Enables disables the intra-packet frequency hopping FSK : N/A ( set to 0 ) LoRa: [0: OFF, 1: ON] |
| HopPeriod | Number of symbols between each hop FSK : N/A ( set to 0 ) LoRa: Number of symbols |
| iqInverted | Inverts IQ signals (LoRa only) FSK : N/A ( set to 0 ) LoRa: [0: not inverted, 1: inverted] |
| rxContinuous | Sets the reception in continuous mode [false: single mode, true: continuous mode] |
| void RadioSetTxConfig | ( | RadioModems_t | modem, |
| int8_t | power, | ||
| uint32_t | fdev, | ||
| uint32_t | bandwidth, | ||
| uint32_t | datarate, | ||
| uint8_t | coderate, | ||
| uint16_t | preambleLen, | ||
| bool | fixLen, | ||
| bool | crcOn, | ||
| bool | FreqHopOn, | ||
| uint8_t | HopPeriod, | ||
| bool | iqInverted, | ||
| uint32_t | timeout | ||
| ) |
Sets the transmission parameters.
| modem | Radio modem to be used [0: FSK, 1: LoRa] |
| power | Sets the output power [dBm] |
| fdev | Sets the frequency deviation (FSK only) FSK : [Hz] LoRa: 0 |
| bandwidth | Sets the bandwidth (LoRa only) FSK : 0 LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] |
| datarate | Sets the Datarate FSK : 600..300000 bits/s LoRa: [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips] |
| coderate | Sets the coding rate (LoRa only) FSK : N/A ( set to 0 ) LoRa: [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] |
| preambleLen | Sets the preamble length FSK : Number of bytes LoRa: Length in symbols (the hardware adds 4 more symbols) |
| fixLen | Fixed length packets [0: variable, 1: fixed] |
| crcOn | Enables disables the CRC [0: OFF, 1: ON] |
| FreqHopOn | Enables disables the intra-packet frequency hopping FSK : N/A ( set to 0 ) LoRa: [0: OFF, 1: ON] |
| HopPeriod | Number of symbols between each hop FSK : N/A ( set to 0 ) LoRa: Number of symbols |
| iqInverted | Inverts IQ signals (LoRa only) FSK : N/A ( set to 0 ) LoRa: [0: not inverted, 1: inverted] |
| timeout | Transmission timeout [ms] |
| bool RadioCheckRfFrequency | ( | uint32_t | frequency | ) |
Checks if the given RF frequency is supported by the hardware.
| frequency | RF frequency to be checked |
| isSupported | [true: supported, false: unsupported] |
| uint32_t RadioTimeOnAir | ( | RadioModems_t | modem, |
| uint8_t | pktLen | ||
| ) |
Computes the packet time on air in ms for the given payload.
| modem | Radio modem to be used [0: FSK, 1: LoRa] |
| pktLen | Packet payload length |
| airTime | Computed airTime (ms) for the given packet payload length |
| void RadioSend | ( | uint8_t * | buffer, |
| uint8_t | size | ||
| ) |
Sends the buffer of size. Prepares the packet to be sent and sets the radio in transmission.
| buffer Buffer pointer | |
| size Buffer size | |
| buffer | Buffer pointer |
| size | Buffer size |
| void RadioSleep | ( | void | ) |
Sets the radio in sleep mode.
| void RadioStandby | ( | void | ) |
Sets the radio in standby mode.
| void RadioRx | ( | uint32_t | timeout | ) |
Sets the radio in reception mode for the given time.
| timeout | Reception timeout [ms] [0: continuous, others timeout] |
| void RadioSetCadParams | ( | uint8_t | cadSymbolNum, |
| uint8_t | cadDetPeak, | ||
| uint8_t | cadDetMin, | ||
| uint8_t | cadExitMode, | ||
| uint32_t | cadTimeout | ||
| ) |
Set Channel Activity Detection parameters.
| cadSymbolNum | The number of symbol to use for CAD operations [LORA_CAD_01_SYMBOL, LORA_CAD_02_SYMBOL, LORA_CAD_04_SYMBOL, LORA_CAD_08_SYMBOL, LORA_CAD_16_SYMBOL] |
| cadDetPeak | Limit for detection of SNR peak used in the CAD |
| cadDetMin | Set the minimum symbol recognition for CAD |
| cadExitMode | Operation to be done at the end of CAD action [LORA_CAD_ONLY, LORA_CAD_RX, LORA_CAD_LBT] |
| cadTimeout | Defines the timeout value to abort the CAD activity |
| void RadioStartCad | ( | void | ) |
Start a Channel Activity Detection.
| void RadioSetTxContinuousWave | ( | uint32_t | freq, |
| int8_t | power, | ||
| uint16_t | time | ||
| ) |
Sets the radio in continuous wave transmission mode.
| freq Channel RF frequency | |
| power Sets the output power [dBm] | |
| time Transmission mode timeout [s] | |
| freq | Channel RF frequency |
| power | Sets the output power [dBm] |
| time | Transmission mode timeout [s] |
| int16_t RadioRssi | ( | RadioModems_t | modem | ) |
Reads the current RSSI value.
| rssiValue | Current RSSI value in [dBm] |
| void RadioWrite | ( | uint16_t | addr, |
| uint8_t | data | ||
| ) |
Writes the radio register at the specified address.
| addr Register address | |
| data New register value | |
| addr | Register address |
| data | New register value |
| uint8_t RadioRead | ( | uint16_t | addr | ) |
Reads the radio register at the specified address.
| addr Register address |
| data | Register value |
| addr | Register address |
| void RadioWriteBuffer | ( | uint16_t | addr, |
| uint8_t * | buffer, | ||
| uint8_t | size | ||
| ) |
Writes multiple radio registers starting at address.
| addr | First Radio register address |
| buffer | Buffer containing the new register's values |
| size | Number of registers to be written |
| void RadioReadBuffer | ( | uint16_t | addr, |
| uint8_t * | buffer, | ||
| uint8_t | size | ||
| ) |
Reads multiple radio registers starting at address.
| addr | First Radio register address |
| buffer | Buffer where to copy the registers data |
| size | Number of registers to be read |
| void RadioSetMaxPayloadLength | ( | RadioModems_t | modem, |
| uint8_t | max | ||
| ) |
Sets the maximum payload length.
| modem | Radio modem to be used [0: FSK, 1: LoRa] |
| max | Maximum payload length in bytes |
| void RadioSetPublicNetwork | ( | bool | enable | ) |
Sets the network to public or private. Updates the sync byte.
| enable | if true, it enables a public network |
| uint32_t RadioGetWakeupTime | ( | void | ) |
Gets the time required for the board plus radio to get out of sleep.[ms].
| time | Radio plus board wakeup time in ms. |
| void RadioBgIrqProcess | ( | void | ) |
Process radio irq in background task (nRF52 & ESP32)
< Update operating mode state to a value lower than MODE_STDBY_XOSC
< Update operating mode state to a value lower than MODE_STDBY_XOSC
< Update operating mode state to a value lower than MODE_STDBY_XOSC
< Update operating mode state to a value lower than MODE_STDBY_XOSC
< Update operating mode state to a value lower than MODE_STDBY_XOSC
< Update operating mode state to a value lower than MODE_STDBY_XOSC
| void RadioIrqProcess | ( | void | ) |
Process radio irq.
| void RadioIrqProcessAfterDeepSleep | ( | void | ) |
Process radio irq after deep sleep of the CPU.
| void RadioRxBoosted | ( | uint32_t | timeout | ) |
Sets the radio in reception mode with Max LNA gain for the given time.
| timeout | Reception timeout [ms] [0: continuous, others timeout] |
| void RadioSetRxDutyCycle | ( | uint32_t | rxTime, |
| uint32_t | sleepTime | ||
| ) |
Sets the Rx duty cycle management parameters.
| rxTime | Structure describing reception timeout value |
| sleepTime | Structure describing sleep timeout value |
| void RadioOnDioIrq | ( | void | ) |
DIO 0 IRQ callback.
| void RadioOnTxTimeoutIrq | ( | void | ) |
Tx timeout timer callback.
| void RadioOnRxTimeoutIrq | ( | void | ) |
Rx timeout timer callback.
|
static |
Returns the known FSK bandwidth registers value
| bandwidth | Bandwidth value in Hz |
| regValue | Bandwidth register value. |
| void RadioTx | ( | uint32_t | timeout | ) |
| void RadioWriteFifo | ( | uint8_t * | buffer, |
| uint8_t | size | ||
| ) |
| void RadioReadFifo | ( | uint8_t * | buffer, |
| uint8_t | size | ||
| ) |
| TimerEvent_t TxTimeoutTimer |
| TimerEvent_t RxTimeoutTimer |
| const struct Radio_s Radio |
Radio driver.
Radio driver structure initialization
| const FskBandwidth_t FskBandwidths[] |
Precomputed FSK bandwidth registers values
| const RadioLoRaBandwidths_t Bandwidths[] = {LORA_BW_125, LORA_BW_250, LORA_BW_500} |
|
static |
| uint8_t MaxPayloadLength = 0xFF |
| uint32_t TxTimeout = 0 |
| uint32_t RxTimeout = 0 |
| bool RxContinuous = false |
| PacketStatus_t RadioPktStatus |
| uint8_t RadioRxPayload[255] |
| bool IrqFired = false |
| bool TimerRxTimeout = false |
| bool TimerTxTimeout = false |
| RadioModems_t _modem |
|
static |
|
static |
Radio callbacks variable
| SX126x_t SX126x |
Radio hardware and global parameters.
Radio hardware and global parameters


---
layout: post
title: Storyboard frame
date: '2013-11-10T07:30:28+01:00'
categories:
- Storyboards
picture_url: https://film-Storyboards.tumblr.com/post/66565725545/Storyboards-extract-from-the-hot-potato
---
Storyboard extract from The Hot Potato


com.aliyun.oss.model
接口
Grantee
类
AbortMultipartUploadRequest
AccessControlList
AppendObjectRequest
AppendObjectResult
Bucket
BucketList
BucketLoggingResult
BucketReferer
BucketWebsiteResult
CompleteMultipartUploadRequest
CompleteMultipartUploadResult
CopyObjectRequest
CopyObjectResult
CreateBucketRequest
DeleteObjectsRequest
DeleteObjectsResult
GeneratePresignedUrlRequest
GetObjectRequest
Grant
HeadObjectRequest
InitiateMultipartUploadRequest
InitiateMultipartUploadResult
LifecycleRule
ListBucketsRequest
ListMultipartUploadsRequest
ListObjectsRequest
ListPartsRequest
LocationConstraint
MultipartUpload
MultipartUploadListing
ObjectAcl
ObjectListing
ObjectMetadata
OptionsRequest
OSSObject
OSSObjectSummary
Owner
PartETag
PartListing
PartSummary
PolicyConditions
PutObjectRequest
PutObjectResult
ResponseHeaderOverrides
SetBucketCORSRequest
SetBucketCORSRequest.CORSRule
SetBucketLifecycleRequest
SetBucketLoggingRequest
SetBucketWebsiteRequest
UploadPartCopyRequest
UploadPartCopyResult
UploadPartRequest
UploadPartResult
WebServiceRequest
枚举
CannedAccessControlList
GroupGrantee
LifecycleRule.RuleStatus
MatchMode
ObjectPermission
Permission


abstract fun onLost(message: String): Unit
Called when a successful connection has been lost. Could because peer device closes the connection or that the connection has been lost.
message
- message that described the reason why the connection has been lost.


{% extends 'base.html' %} {% load i18n %} {% load crispy_forms_tags %} {% block title %}{% trans "Welcome"%}{% endblock %} {% block content %}
{% trans "Still a beta version. Try at your own risk."%}
{% trans "A very small and lightweight project management tool."%}


Behavioral Ecology Submission 2019
Supplementary Code
Individual signatures outweigh social group identity in contact calls of the communally nesting monk parakeet
Supplementary Code 01: Data Pre-processing
Supplementary Code 02: Sound Analysis
Supplementary Code 03: Mantel Tests & Spatial Autocorrelation
Supplementary Code 04: Validation of Our Random Forests Analytical Approach
Supplementary Code 05: Additional Validation of Our Analytical Approach and Findings


Emperor is a local full-browser enabled scatter plots visual tool. Its modern user interface, allows you to customize the appearance of your plot by controlling things like: opacity, sphere scaling, coloring, dimensions being presented among many others.
This document tries to go through an overview of the controls that can be found in the graphical user interface as well as some of the common use cases that Emperor allows you to work with.
Emperor's graphical user interface is mainly composed of a visualization canvas (left side) and a set of settings controllers (right side). Figure 1 highlights the (a) total number of points being displayed; (b) main display with the first three dimensions of this dataset; (c) tool-tabs to manipulate features of the plot; (d) visualization type selector to switch between parallel plots and three dimensional plots. Figure 2 presents the same dataset but using a parallel plot display.
Figure 1. Emperor’s graphical user interface. (a) Sample counter; shows the total number of samples in the dataset and the number of samples that are currently visible. (b) Canvas; main plot scene where the data is displayed. (c) Tool tabs; controls that allow you to modify and interact with your data.
Figure 2. Parallel plot visualization of the dataset presented in Figure 1. Parallel plots are particularly useful to get an overview of the distribution of other dimensions in a given set of points.
Emperor presents multiple tabs on the right sidebar, each of these tabs perform different tasks over the data presented in the visualization canvas.
Shows a list of the sample identifiers that are contained in the current dataset and a box with the color that the sample is currently colored by on screen. Double-clicking each square, will make an indicator, white arrow, appear on screen.
Shows a list of the categories listed under the mapping file column selected in the menu of this tab (for this example DOB). Each category has a color box where you can modify the current color of the samples that belong to this category.
Shows a list of the categories listed under the mapping file column selected in the menu of this tab, for each of these categories a checkbox and a slider is presented. The checkbox will allow you to hide (unchecked) or show (checked) samples that belong to each category. The slider controls the opacity of the samples defined under this category.
Similar to visibility but controls the scale of the spheres. The values range from 0.2 to 4, when the slider is located at a value of 2, the spheres will be twice as bigger as in the beginning. By default all sliders are set to a value of 1.
Similar to Visibility but controls the appearance of the labels. The checkbox at the top of this tab will add or remove the labels from the plot.
Although Emperor is only capable of displaying three dimensions at a time, the dimensions that are being displayed can be selected from this menu. To update the plot to reflect the latest changes, you’ll have to click the refresh button.
General features of a plot as presented by Emperor, are modified from this menu; by default Emperor will try to color samples along a continuous color gradient, to turn this option off, select “Use discrete colors”. The sphere opacity and sphere scale controls override the options in Scaling and Visibility tabs.
The different options that will affect the overall plot as it is are listed under this tab. Scaling the coordinates by the percent explained, will re-scale the data by multiplying all the values in that dimension by the ratio explained. By default, Emperor will color the samples in a discrete way, each group is independent, but you can select “Use gradient colors” to create a gradient in the values of the columns. This is helpful when we are trying to display categories that behave this way, like time, age, or ph.


Item 3.
Before turning the BrailleNote on
Explain that when the rocker switch is indented toward the user, the BrailleNote is on
When the on off switch is indented away from the user, the BrailleNote is of
Before turning the BrailleNote on
Explain that when the rocker switch is indented toward the user, the BrailleNote is on
When the on off switch is indented away from the user, the BrailleNote is of


1 March 2019
Raymond Nijssen, Terglobo
<EMAIL_ADDRESS>Den Bosch
GIS Freelancer
Open source developer
Python, SQL, JS, C++, ...
Name?
Job?
Git experience so far?
Anything you'd like to add?
| 09:30 | Introduction |
| 10:00 | Distributed Version Control |
| 10:30 | Hands on |
| 12:30 | lunch break |
| 13:30 | Distributed Version Control |
| 14:00 | Hands on |
| 16:00 | Questions, discussions and wrap up |
| 17:00 | weekend |
A distributed version-control system for tracking changes in source code during software development.
It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.
Its goals include speed, data integrity, and support for distributed, non-linear workflows.
Download it at git-scm.org
Maintain multiple versions
Revert mistakes
View history
Find code differences
Know who did what
git, svn, bitkeeper, mercurial, ...
raymond@xps9370:~/git/ihe$
Creates a local git repository, or turns a local directory into a git repository.
$ git init ihe Initialized empty Git repository in /home/raymond/git/ihe/.git/
Shows the status of the repository
$ touch file1.txt $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) file1.txt nothing added to commit but untracked files present (use "git add" to track)
Puts current working files into the stage (aka index or cache).
$ git add file1.txt $ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..."  to unstage) new file: file2.txt new file: file3.txt $ git reset aac0bc $ git status On branch adding_files Untracked files: (use "git add <file>..." to include in what will be committed) file2.txt file3.txt nothing added to commit but untracked files present (use "git add" to track)
Merges files from a given branch into the current branch.
$ git add . $ git commit -m 'files 2 and 3 added' [adding_files 7b94a0b] files 2 and 3 added 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 file2.txt create mode 100644 file3.txt $ git checkout master Switched to branch 'master' $ git merge adding_files Updating aac0bc8..7b94a0b Fast-forward file2.txt | 0 file3.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 file2.txt create mode 100644 file3.txt $ ll total 12 drwxr-xr-x 3 raymond raymond 4096 feb 28 18:39 ./ drwxr-xr-x 32 raymond raymond 4096 feb 28 15:30 ../ -rw-r--r-- 1 raymond raymond 0 feb 28 17:10 file1.txt -rw-r--r-- 1 raymond raymond 0 feb 28 18:39 file2.txt -rw-r--r-- 1 raymond raymond 0 feb 28 18:39 file3.txt drwxr-xr-x 8 raymond raymond 4096 feb 28 18:39 .git/
Git cannot always automatically merge branches.
Show differences between files.
$ git diff
Display help for every individual git command.
$ git help merge
GIT-MERGE(1) Git Manual GIT-MERGE(1)
NAME
git-merge - Join two or more development histories together
SYNOPSIS
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
[--[no-]allow-unrelated-histories]
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>...]
git merge --abort
git merge --continue
Manual page git-merge(1) line 1 (press h for help or q to quit)
<space> for Next Page
"q" to Quit
Knowing who is doing what, where and when?
Sharing your code
Changing someone else's code
Back up
$ git remote -v
$ git clone
Retrieving commits from another branch in another repository and merging them into your current branch.
$ git pull origin master
Shows for every line of code in a file who has changed it for the last time.
$ git blame file2.txt
Commercial companies offer public and private git repositaries and additional services.
Good looking website
User acounts
Pull requests
Statistics
Issue trackers
Compiling and testing
git rm
git tag
git stash
git squash
git cherry-pick
git prune
git ...


Chapter 7 Poverty
7.1 What this chapter is about
In the last chapter we discussed how we could quantify the distribution of resources. This chapter is about quantifying the degree of poverty.
Indended learning outcomes
After reading this chapter you should be able to
- Describe the difference between relative and absolute poverty
- Create data visualizations of poverty over time and across regions.
7.2 Measuring global development
Quantifying global development is a challenging task. First, it challenging to obtain data covering the globe. Administrative data is only available for a small number of selected countries, global censuses would be very expensive, and it is challenging to create representative surveys across the world (but it is done). Second, as we already discussed, even within one single country, there is a lot of work involved in measuring and standardizing concepts such as unemployment and GDP. Third, countries differ substantially in their institutional setting.
Despite these challenges, we have quite good indicators of the direction of global development. Let us consider the graphs from Our World In Data shown Figure 7.1 (again). What data is required to create these charts? Poverty measures, education measures, literacy rates, democracy, vaccination data, and child mortality rates. None of these variables are easy to collect, and behind these simple illustrations of global development there is an enormous amount of work. To get an idea of the amount of work, you can go to the website of the source ourworldindata.org, and search for one of these indicators. You will find that all these Figures are based on an extensive set of sources.
But measuring global development is not only challenging because it is difficult to obtain the important variables. It is also challenging, because is difficult to decide which variables we should focus on. Figure 7.1 does, for example, not include any measures on crime, environment or corruption.
One approach to decide which measures to include is to focus on variables that capture stated policy targets. At the United Nations Millennium Summit in 2000, all member states committed to the eight Millennium Development Goals (MDG). These eight goals were all linked to specific target dates. Should we just measure progress on these stated goals and follow global development? This is not ideal, as these goals are not linked to any analytical framework or economic principles. And even given these goals, it is unclear how measure each goal. How would you for example measure “Global Partnership for Development”? The MDG were replaced by the 17 Sustainable Development Goals (SDQ) in 2015 with a target of achieving these goals by
Compared to the MDG, the SDQ headlines are somewhat more general, but SDGs are linked to 169 specific targets with concrete indicators. For example behind the first goal, “No Poverty”, there are four targets. You can read about all 169 indicators on the following website: globalgoals.org.
7.3 Measuring poverty
Eradicating poverty was the first goal both in the MDG and SDG list. Global development on poverty is also the first statistic shown in Figure 7.1. This is no surprise: Poverty is a core measure of global development. And even though numbers have improved substantially, we still observe that 1 out of 10 people live in extreme poverty. This is much better than when I was born, where 4 out of 10 people lived in extreme poverty, or in the 1960ies where more than 6 out of 10 people lived in extreme poverty. But how do we define poverty?
The poverty line is the core in defining poverty. People below this line are defined as being poor, people above this line are defined as non-poor. The line thereby represents a threshold, below which an “acceptable” life is not possible. One way to define this level is to quantify the food intake required for an adequate diet (say 2000-2500 calories per day for an adult), and calculate the costs of this intake. To this we would add the costs of shelter and clothing. People with a consumption below this level or an income below this level are then defined as being poor. The level will differ substantially from country to country. Moreover country differences in institutional setting also affect which other factors we would consider important. For example, is health care publicly provided or should that be included in minimum cost calculation?
Basing poverty levels on the minimum costs for an adequate food intake is actually not uncommon. The official poverty measure in the US is for example based on estimates from the 1960ies, based on the cost of a minimum food diet.3
An alternative to minimum costs of diet based measures is a relative poverty line, where we specify the poverty line relative to the income distribution in the country, for example by defining households with an income less than 60 percent of the median income as in poverty. Below we’ll discuss some of the key issues in measuring poverty.
Income or consumption?
We could define poverty both by what individuals and households consume and by their consumption possibilities, i.e. their income. Observing actual consumption is much harder than observing income, which makes the latter approach much more attractive simply based on a practical point of view. Moreover, if an individual had the option to consume a sufficiently healthy diet, but for some reasons decided not to, should this person be defined as poor? Moreover, actual nutritional intake might not be monotonically increasing in expenditure. Some more expensive and enjoyable food might have a lower nutritive values. So in practice, poverty measures based on income are much more common than poverty measures based on consumption.
Relative or absolute measures?
Given the introduction above, an absolute level of income seems like a natural threshold for poverty. Below this line, a household cannot afford sufficient nutrients, cannot afford clothing and cannot afford shelter. Such an absolute poverty line is based on what is “required to survive”.
An alternative approach is to think of a poverty line reflecting the ability to participate in the society. What is required to participate in the society will vary from country to country. In some countries owning a means of transportation might be crucial, in other countries access to the internet might be more important. Identifying the exact level of income necessary for participating in the society is very difficult. Instead, we can define the poverty threshold relative to the median income in the economy.
It is important not to define poverty by the mean of the income distribution, because this would imply that if an extremely rich person moves out of the country, the poverty rates would be reduced considerably. Finally, it is important to stress that relative poverty measures never can replace absolute measures completely. At some low level of median income the relative poverty line might below the absolute poverty line and thereby not allow people to survive.
Poverty definitions
The OECD Definition
- The OECD defines people as being in poverty if their income is less than 50 percent of the median income.
The EU Definition * The EU defines people as being in poverty if their income is less than 60 percent of the median income. The group of people below this threshold are defined as being “at-risk-of-poverty”.
Extreme Poverty * The concept of “Extreme Poverty” was introduced by the United Nations in mid 1990ies. This definition is an absolute measure of poverty, and refers to the minimum level of income that a person needs to survive. This poverty measure is known as the “1 dollar a day” measure. The 1 (US) dollar a day refers to the 1996 price level in the US. In terms of 2005 price levels the threshold is 1.25 USD a day. This is the measure used in the Figure
UK poverty measures Various poverty measures are in use and have been used in the UK. In the Child Poverty Act of 2010, an income of 60 percent of the median income is used. The Joseph Rowntree Foundation has defined a minimum income standard, which is “based on what people think is required for an acceptable living”. In 2016 the minimum income standard threshold for a single person was 17,100 GBP (before taxes). For two adults with two children, the threshold was 37,600 GBP (total across the two parents).
- Other indicators
There are a wide range of poverty definitions and indicators in addition to those discussed above. Some of these indicators have very different approaches to measuring poverty. One alternative is the Multidimensional Poverty Index, which is based on ten indicators covering schooling (years of schooling and school attendance), child mortality, nutrition, electricity, sanitation, drinking water, the condition of the floor, cooking fuel, and assets.
For each person, a weighted average (measured in terms of percentages) across these indicators is constructed and added. The total index is then the product of the number of people who are poor and the intensity.
<IP_ADDRESS> Challenges with poverty line
Poverty lines are very useful because they allow us to track progress, however, poverty lines can also be “dangerous”, as they might lead policy makers to focus on people close to the line, while ignoring people far away from the line, because they will have a lower impact on the numbers. However, people further below the poverty line might need the support more than those just below the poverty line.


This is a default, unconfigured instance of the ZEIT ONLINE Briefkasten.
Important! Do not upload any information here, as this instance is obviously not yet configured properly!


ISBN Search
ISBN-13:<PHONE_NUMBER>759
ISBN-10: 185788275X
Author: Bill Lucas
Binding: Paperback
Publisher: Nicholas Brealey
Published: June 2001
List Price: $34.95
$19.35
+3.99 shipping
Ready to ship
Notes
$33.84
Free shipping
Ships 2-3 days
$34.95
$34.74
Pre Order
$36.11
+3.95 shipping
$38.06
Ships 3+ Days
$40.99
+5.99 shipping
$49.80
+6.00 shipping
$4.96
$1.33
$1.99
$1.42
+6.95 shipping
$7.95
$29.99


Application is initializing (
%):
Web socket support
Spring MVC
Metrics
Actuator
MongoDB
Database
Hibernate
JPA
Redis
Elasticsearch
Spring integration
JMX support
JMS
User component


--- layout: base --- {% include header.html %}
Here's our officially supported API wrappers:
pip3 install linode-api
If you've made a new API wrapper, tell us about it!


2020 Genesis G90 Arrives With Even More Luxury
The G90 gets an extensive makeover for the new model year.
by Ian WrightGenesis' flagship model, the elegant and well-engineered G90, impressed us when we drove it earlier this year. Make no mistake, the Genesis G90 is already a high-end car for less money than others would charge for. Now, for 2020 Genesis has gone to town on the G90 to bring an even better experience to the luxury car market. Something we were waiting to hear about was the engine options, and we're pleased to see that Genesis is remaining committed to its smooth 5.0-liter V8 engine making 420 horsepower and 383 lb-ft. of torque. The 3.3-liter turbocharged V6 also carries on, still making 365 horsepower.
Design-wise, Genesis has applied its G-Matrix design language, inspired by light reflecting from an illuminating diamond, heavily. It's there in the headlights and taillights and the optional, 19-inch wheels. Genesis is seeking to launch a "product offensive" with emotive design and exceptional design, and it's impossible to deny the new "Crest Grille" isn't emotive as it's flanked by the "Quad Lamps." Something we also see on the outside is how Genesis has emphasized the low and wide stance and used different lines to create an even more stately silhouette than the 2019 model. Genesis is also promising an extended color palette inside and out.
Inside, Genesis is touting what it calls the Horizontal Architecture ethos, based on a "harmonious flow of horizontal surfaces". The elegant lines are capped with open-pore wood, authentic chrome plating, leather wrapping, and double stitching and piping throughout the cabin.
Technology is also key to the Genesis flagship, and the G90 is the first Genesis vehicle to offer over-the-air wireless updates for maps and software. Those maps are shown on a 12.3-inch display, and the infotainment system comes standard with Apple CarPlay and Android Auto. The G90 also uses Active Noise Cancellation along with the adaptive control suspension to minimize noise and vibration in the cabin.
Something that impressed us on the 2019 Genesis model was the sheer wealth of standard features that would be expensive boxes to tick on similar cars. This year is no different, and on top of the features mentioned above, new driver assistance features debut on the G90, including lane follow assist, rear cross-traffic collision-avoidance, forward collision-avoidance, safe exit assist, and lane-keep assist.
Genesis is also offering 3 years/36,000 miles of complimentary scheduled maintenance and valet service, as well as 3 years of Genesis Connected Services, SiriusXM Travel Link, and a lifetime of its traffic data service. No price has been announced just yet, but we expect it to creep just above the $70,000 mark.


Before Change
optimizer = optim.SGD(model, lr=1e-2, momentum=0.9)
def train(epoch):
batch_data = Variable(torch.cuda.FloatTensor(BATCH_SIZE, 1, 28, 28), requires_grad=False)
batch_targets = Variable(torch.cuda.FloatTensor(BATCH_SIZE), requires_grad=False)
for i in range(0, training_data.size(0), BATCH_SIZE):
batch_data.data[:] = training_data[i:i+BATCH_SIZE]
batch_targets.data[:] = training_labels[i:i+BATCH_SIZE]
After Change
optimizer = optim.SGD(model, lr=1e-2, momentum=0.9)
def train(epoch):
batch_data_t = torch.FloatTensor(BATCH_SIZE, 1, 28, 28)
batch_targets_t = torch.LongTensor(BATCH_SIZE)
if cuda:
batch_data_t = batch_data_t.cuda()
batch_targets_t = batch_targets_t.cuda()
batch_data = Variable(batch_data_t, requires_grad=False)
batch_targets = Variable(batch_targets_t, requires_grad=False)
for i in range(0, training_data.size(0), BATCH_SIZE):
batch_data.data[:] = training_data[i:i+BATCH_SIZE]
batch_targets.data[:] = training_labels[i:i+BATCH_SIZE]


Antoine Noreau
Home
(current)
About
Projects
Contact me!
Download CV
Outdoors, always
Biomedical Engineering Student Committee 2018-2019
The boys, Class of 2020
Previous
Next


You may not have 100% control of your environment, but you do have some
What inputs are you accepting? (Facebook, IM, news, email etc?) – are they critical for what you are trying to achieve? How often do you need to check these?
Learn to say no
Getting Things Done (GTD)
A methodology for running your life
A system for collecting and tracking all your tasks, ideas, and projects
Designed to stop you from worrying about all the things you could or should be doing
Defines a basic workflow to manage all your obligations
Tip - Don't try to keep anything in your head
Tip: Don't try to keep ANYTHING in your head, other than knowledge!
Track EVERYTHING in external systems
Mind like water
Inbox
The moment you think of something that needs doing (or that you could do), write it down
Have an inbox where you dump these things, and review every so often (at least a few times a week)


Toggle navigation
Project Auditor
Courses
Projects
Log In
Log In
Dramatically Engage
100% Proactively Envisioned
80% Objectively Innovated
45% Portalled
35% Done


Tilesets
Tilesets add graphics to DF, simple as that. You can still play in ASCII, in a dozen ascii-like sets, which use a similar style but different icons, or with any of 10 different graphical sets. Installation is very straight forward, you simply pick it in the GUI. You need to generate a new world after this.
MDF currently offers 20 tilesets, the previews of which you can see here.Some of the tilesets come with custom creatures sprites and custom color schemes as well, which are automatically installed by the GUI. You can still change the color schemes to any you like. Try it out, they really do make a difference!
Aesomatica
Ascii
Cheepicus
CLA
Crazy88
Dawn Fortress
Goofy12
GrimDark
Ironhand
Jolly Bastion
Matrix
Mayday
Masterwork DF
Nordic
Obsidian Soul
Phoebus
Rogue12
Spacefox
Storyteller Gothic
Taffer
Vherid


1
2
3
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
10.4.f delete action and repeat element
You must see the correct values for each output control below.
You must see the number 0 :
You must see the number 2 :
You must see the number 1 :
You must see the number 2 :
You must see the number 1 :


--- layout: post title: "No Title" ---
170. Know the proper time to chew gum. It’s less often than you think.Many of the rules at 1001 Rules for my Unborn Son are too difficult, impractical or contrary plus 1001 rules is just too many. It’s the simple, achievable ones like this that I enjoy and appreciate the most.


Profile
User Profile Form
User Id
User Name
User First Name
Save changing
User Last Name
Save changing
Delivery Address
country
city
address
Save changing
Close form


Each year we meticulously vet and select remarkable speakers to deliver the best talks on web development. Whether it's Frontend, Backend, DevOps or Mobile that you care about, join us to learn about the most modern practices and techniques. A truly 360° conference!


Ten bust for EC 'toilet scam'
by Algoa FMThe Hawks have arrested ten people in four provinces who are believed to be linked to a R600 million toilet scam in the Eastern Cape.
Colonel Katlego Mogale, said that the arrests were made during intelligence-driven operations in the Eastern Cape, Gauteng, Mpumalanga and Kwazulu Natal by a multi-disciplinary team early Thursday morning.
She said the operation was the culmination of an investigation into a complaint from National Treasury that the suspects had allegedly colluded to flaunt procurement processes to obtain a massive tender from the Amathole District Municipality for the provision of toilets in the Eastern Cape.
"The Hawks’ preliminary investigation discovered that over R600 million was to be awarded for the contract, of which R286 million had already be paid to the suspects," Mogale said.
She said the ten will be appearing in the East London Magistrate’s Court on Friday on charges of fraud, corruption and money laundering while moves are also afoot to seize their assets.
Mogale said the outstanding collaboration with the office of the Director Public Prosecutions in the Eastern Cape made it possible for the case to proceed.
The Acting National Head of the Directorate for Priority Crime Investigation, Lieutenant General Yolisa Matakata, has applauded the team for the arrests.


Glow load
Ordered loading events.
This is manual test shows that Glow can load multiple versions of the library
at the same time and will eveluate all modules in the correct order.
- Wait a few seconds.
- Do the numbered events appear in order?
- Reload the page a few times, try it with a clean cache.


{{sc.wallet.status}}
{{sc.bitlox.status}}
Click to refresh
No BitLox device detected.
Please connect BitLox in USB mode and
click here
Initializing


| DOSE: |
600 ug |
oral |
DXM |
(capsule) |
This is a short story based on my first experience with DXM. It is basically a conglomeration of all my experiences from 1995 to 2000.
I'd never thought about it before, but for some reason I felt compelled to try it. I'm on leave, so, damn it, I'm gonna do it.
'Damn it. I'm gonna do it.'
'Well, if you're gonna go, I'm gonna have to go with you,' he retorted.
It was cloudlessly bright in the early late afternoon, driving around in Jeremy's Civic. The hotly determined Tucson sun beat down on us as we began our search. We drove over to the ABCO, got out and floated over the searing blacktop on the way in. WHOOSH!! Ahh! The lovely arctic blast from the freon driven industrial-sized bliss machines. Aisle. Aisle. Aisle. Coffee. Diapers. Freeze-dried.
Cough and Cold. Bingo.
'What are we looking for?'
'Drixoral's with just straight Dextromethorphan Hydrobromide.'
'What?'
'DXM, the main ingredient.'
'Oh.'
Hmmm. '…Pseudoephedrine 60 mg. Acetaminophen 250 mg. Guafenesin 60 mg.' Nope.
'Got it.'
Yeah!!!
The lady at the checkout counter had an icy smirk on her face, eyeing two fine looking, healthy young airmen buying five boxes of cough caps with neither even pretending to have a cold. I was actually pretty stoked; bolts of crisp electrical excitement raced up my spine like on a chilly Christmas morning.
'Damn, dude. We don't have enough.'
Five boxes at five bucks a pop was quite a bit of bread. Shit. Hmmm. 'Could we open these and use the Drix dollars?' She nodded, so we ripped open the boxes, gave her the coupons, paid, shoved all the liquicaps and boxes into the bags and promptly left the store. We waded back through the shimmering heat to Jeremy's car; got in, melted into the seats, and took off.
We stopped at the Burger King on base and each got two fat whoppers, then went back to Jeremy's comfortably cool dorm room. As I was grubbing down, listening to '58 Miles, I was perplexed, looking, intrigued, around the curious room.
'Dude, I've seen some weird things from that poster,' he says, looking at the Day-Glo jungle affixed to the wall. Perplexed. It's strange that I'm here right now, in this room, at this moment. When I left for tech school a couple of years ago, I had no thoughts about ever coming back to Tucson. But, after watching the Shawshank Redemption, I knew I had to make a trip down. I didn't know why, but I had to go. I left Colorado Springs, thinking, remembering, replaying The Shank in my head, as Red was getting ready to cross the border: 'I find I'm so excited, I can barely sit still or hold a thought in my head. I think it's the excitement only a free man can feel, a free man at the start of a long journey whose conclusion is uncertain.'
Intrigued. What's it gonna be like? Is it just gonna be a drunk-like buzz, or what? Am I gonna go insane? I had no idea. Being in the Air Force, I'd never even thought about doing anything like this. Not just because of the piss tests, but just because the thought had never entered my head.
Curious. What happened to Jeremy? Why drugs? I never asked, but I was kinda disappointed; drugs were such a departure from the Jeremy I thought I knew; the Jeremy I met at the Navigator's Bible Study on base; the quiet, handsome, assuredly easygoing, erratically erratic, but dependable Jeremy; the Jeremy I would skate, laugh, and pray with.
And now we were sitting here amidst 1500 mg. of DXM.
____
'How many do I have to take?'
'Twenty.'
'Twenty?!'
'Yeah. Choke ‘em down 5 at a time. It's easier.'
Hmmm. Well, here goes.
Why did they have to be red? I remember having to wretch down little red bedwetting pills when I was a kid, and they always made me gag. But these fellatio-sized pills were the worst. Oh well, down the hatch; I wash down the last of ‘em with a swig of Dr. Pepper. And wait.
And wait.
And wait.
 I felt let down, kinda like with God. I can't hang around anymore. I bolt.
'Let's go see what's going on outside,' I say to myself.
I step out into the smoldering dusk and step along the second floor walkway of the motel style dorm admiring the cool violets, pinks, blues as the persistent sun swims along the horizon, dipping like a bobber being tugged at by a deceived bottom feeder.
Step. Turn.  Multiple levels of planes of being- stairs. I descend, winding and winding in endless circles of blissful and sideways frivolity, reeling out into the simmering parking lot.
'Dude!'
'Hmmm?'
'Dude, could you help me with these brakes?'
I can't remember where I know this guy from, but I know VW's, so I go take a look.
'Hmmm. Yeah. These things can be a pain sometimes. Why,' (Why?
Uh oh.
I could feel a subterranean shudder in my gut. The Leviathan, red and menacing, was loose and clawing its way to the surface.
'I gotta go.'
Full sprint to the anxious, wobbling dorm. Now up up up the planes of existence, spiraling to the second floor running running flowing to jjerreemmmiees seething room of (infinite glacial) bliss…
Coltrane greets me at the door with a frigid glance.
Slam! Sprint! Fling!
Ancient swords jamming down my throat; imbedding in my thoraxically oriented stomach. Great gushing waves of pain red whopper flow past my blushing lips and into the shivering commode.
'goddamit; I drank too much.' Heave.
'I'M SOOO DRUNK. goddamn burger king.' Heave.
'I'VE HAD WAAAYYY TOO MUCH TO DRINK' I had to make it clear to anyone who happened to be listening that I was drunk, and not frying out of my deliciously omnipresent mind.
'plllease, Father, help me, I know not what I do,' I whisper to mySelves, wiping the spray of hamburger and gel from around my mouth, staggering to my feet; out of the corner of my eye I see the last of a red, jagged tail slide down the flushing toilet.
I stumble out of the bathroom on stilts of guilt and regret.
'…has iiit kicked in?'
'I think so'
'…hmmm. well, mmmy ffriend, the best part of my trip just landed in the toy. Let.'
 I lie. Down. What is that…
SOUND.
Lying on the thin carpet floor. Eyes closed. It's the only position that doesn't make me sick. Then it comes- my body expands, expands, miles wide and I am
floatwirlingeringaroundtheroseycoloredthornsinthemindof
CHRRRIIISSSTTTAAASSSEEEVVVEEERRRYYYTTTHHHIIINNNGGGSSSS
LLLL
IIIII
PPPP
SSS
D
O
W
N
SNAP!
Then the mind is free.
The CD changer whirs into action, faithfully performing its appointed task,delivering uninterrupted musical landscapes. Tribal Tech crashes into the room, shoving
Coltrane aside and pushing me forward, headlong, drowning me under the BiG WAVE SwervI ng through the notes that pull me 2 and fro and I breathe in pure experience and the song becomes my universe, and my eyes ascend to the ceiling and look down at my simple body then gently descend and
settle into a comfortable orbit around my head as I exhale my childhood.
The Big Wave washes back out to sea, pulling along with it the scales that have fallen from my eyes.
'…whoa!…' I blurt out, opening my previously orbiting eyes, but not moving.
'I know…I forgot how good this stuff is'
'…ohmyGod…'
'Just…chill…and go with it.'
I close my eyes and spill across the carpet and a purple goddess swims up from under the ornately gleaming rocks and we t
iw
ts
i
n
g
l y
d
i
v
e
through the clouds of mysterious
green smoke that pour from the orange hell's angels' gigantic chrome exhaust pipes that morphleap over me with one shiny black tire entangled in saturn's rings as the rest of his magnificent whirling machine vaporizes into icicles filled with minute civilizations with endless mazes of televised monsters trying to blast me into oblivion, so I ask them to dance…
'…i played too muuuuch doom. all i'm doing issss dancing through mazes…'
'Open up'
What do you mean 'open up'?  If I open up any more, I'll flip clean out.
'Open up'
Nudge. My eyes pop, open, and I see Jeremy standing above me.
'Open up'
'…duuuude, IIIII don't think I neeeeed anymooore…'
'Dude, you're barely at the threshold. Take five more.'
'…ok…'
He drops ‘em in my mouth and pours water at me from a distance to wash them down, and its coldness splashes into my face; I instinctively close my eyes, and find myself submerged and plummeting down toward the cold red beast's eyes swallow me and I see through its eyes as time telescopes into inconsequence and miles davis strolls into my ear, pries it open with his trumpet and I am creamy coolness and I squeeze in, then explode outward- joy, body, flying with sparkling kodachrome pinwheels as wings, up and up; noxious rumblings shake and tear at this consciousness.
Churning, I lurch to a choppy stance as the fresh-frozen, dripping jungle around me bursts and drips down the walls and I Frankenstein back to the severe commode.
Fling? Poised beside the bowl, open up echoes through my head,
'…yeah, right…,'
The Leviathan leaps up from the toilet, intertwining with itself inside my mouth.
I rouse and slither off the rocks and through the tall green grass out to Jeremy, lying on the sandy bank, and I lay my head on his chest.
Tenderly, '…iii can…heeear…two hearts; …Christ is iiin you…'
'I know'
'…how did weeee get here?..'
'I don't know'
We are rudely interrupted as Tribal Tech again crashes into the room.
'…go get the music ooout of your caaar…'
'Alright'
He rises, rises, shimmers through the trees and is gone. I lie back in the shifting grass, adrift.
'FREEZE!!!'
My heart stops as the Military Police burst into the room.
'STAY DOWN!!! ROLLOVER!!! PUT YOUR HANDS WHERE WE CAN SEE THEM!!! DO IT!!
DO IT NOW!!'
'… iiit's not my fault…'
'BULLSHIT, BOY!!
Jeremy. 'What?' Pondering. 'Oh. Yeah,' sliding Edie Brickell into the changer, 'I forgot to tell you. Dissociatives and paranoia don't mix well'
'…hmmm…'
I close my eyes again, lock jawed and teeth chattering. I plunge inwards, leaving sense and cold condemnation at the surface, inwards to where the self lessens, lessens and I am able to step outside and away from my pains and mispreconceptions and griefs' self and look inside and see that Life is much bigger and better than anything I could have imagined.

Laid out face up; hovering. I float up, up through the brisk blue immersion to the surface and come back to my senses.
'Dude, I'm tired. I'm sacking out.'
Opening my eyes,'…me too. could you turn off the ac? I'm freezing.' He clicks the lights and AC off as I crawl into bed and drift away. The room was already warming under the rising of the tenacious, blazing sun.
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.