|
M4521 BSP V3.01.000
The Board Support Package for M4521
|
Macros | |
| #define | GET_TIMEOUT 1000 |
| #define | SET_TIMEOUT 100 |
Functions | |
| int32_t | USBH_Open (void) |
| Open USB Host controller function. More... | |
| int | USBH_ProcessHubEvents () |
| Processed USB hub device events. User application must invoke this routine in the main while loop. Device enumeration is done in this routine. More... | |
| URB_T * | USBH_AllocUrb (void) |
| Allocate an URB from USB Core driver internal URB pool. More... | |
| void | USBH_FreeUrb (URB_T *) |
| Free the URB allocated from USBH_AllocUrb() More... | |
| int32_t | USBH_SubmitUrb (URB_T *urb) |
| Submit an URB to USB core for transfer data. More... | |
| int32_t | USBH_UnlinkUrb (URB_T *urb) |
| Cancel an URB which has been submit to USB core. More... | |
| int32_t | USBH_SendCtrlMsg (USB_DEV_T *dev, uint32_t pipe, uint8_t request, uint8_t requesttype, uint16_t value, uint16_t index, void *data, uint16_t size, int timeout) |
| Execute a control transfer. More... | |
| int32_t | USBH_SendBulkMsg (USB_DEV_T *usb_dev, uint32_t pipe, void *data, int len, int *actual_length, int timeout) |
| Execute a bulk transfer. More... | |
| int32_t | USBH_RegisterDriver (USB_DRIVER_T *new_driver) |
| Register a device driver to USB Host Core driver. More... | |
| int32_t | USBH_GetDescriptor (USB_DEV_T *dev, uint8_t type, uint8_t index, void *buf, int size) |
| Get a descriptor from device. More... | |
| int32_t | USBH_SetConfiguration (USB_DEV_T *dev, int configuration) |
| Select USB device configuration. More... | |
| int32_t | USBH_SetInterface (USB_DEV_T *dev, char interface, char alternate) |
| Set USB device interface. More... | |
| int32_t | USBH_ClearHalt (USB_DEV_T *dev, int pipe) |
| Clear the halt state of an endpoint. More... | |
| int32_t | USBH_Suspend (void) |
| Suspend USB Host Controller and devices. More... | |
| int32_t | USBH_Resume (void) |
| Resume USB Host controller and devices. More... | |
| int32_t | USBH_Close (void) |
| Disable USB Host controller function. More... | |
| static void | ctrl_msg_complete (URB_T *urb) |
| static int | get_ctrl_msg_signal () |
| static void | clr_ctrl_msg_signal () |
| static int | usb_start_wait_urb (URB_T *urb, int timeout, int *actual_length) |
| static int | usb_internal_control_msg (USB_DEV_T *usb_dev, uint32_t pipe, DEV_REQ_T *cmd, void *data, int len, int timeout) |
| static int | usbh_settle_configuration (USB_DEV_T *dev) |
| #define GET_TIMEOUT 1000 |
USB transfer time-out setting
Definition at line 798 of file usbh_core.c.
| #define SET_TIMEOUT 100 |
USB transfer time-out setting
Definition at line 799 of file usbh_core.c.
|
static |
|
static |
|
static |
|
static |
Definition at line 333 of file usbh_core.c.
|
static |
Definition at line 275 of file usbh_core.c.
| URB_T * USBH_AllocUrb | ( | void | ) |
Allocate an URB from USB Core driver internal URB pool.
| NULL | Out of URB. |
| Otherwise | The pointer refer to the newly allocated URB. |
Definition at line 76 of file usbh_support.c.
| int32_t USBH_ClearHalt | ( | USB_DEV_T * | dev, |
| int | pipe | ||
| ) |
Clear the halt state of an endpoint.
| [in] | dev | The USB device. |
| [in] | pipe | Pipe description of the endpoint. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 900 of file usbh_core.c.
| int32_t USBH_Close | ( | void | ) |
Disable USB Host controller function.
| 0 | Success |
| Otherwise | Failed |
Definition at line 1318 of file usbh_core.c.
| void USBH_FreeUrb | ( | URB_T * | urb | ) |
Free the URB allocated from USBH_AllocUrb()
| urb | The URB to be freed |
| None |
Definition at line 99 of file usbh_support.c.
| int32_t USBH_GetDescriptor | ( | USB_DEV_T * | dev, |
| uint8_t | type, | ||
| uint8_t | index, | ||
| void * | buf, | ||
| int | size | ||
| ) |
Get a descriptor from device.
| [in] | dev | The USB devise. |
| [in] | type | Descriptor type. |
| [in] | index | Index of the descriptor. |
| [out] | buf | Buffer to store the descriptor. |
| [in] | size | Available size of buf. |
| >=0 | Length of the descriptor. |
| Otherwise | Failed |
Definition at line 822 of file usbh_core.c.
| int32_t USBH_Open | ( | void | ) |
Open USB Host controller function.
| 0 | Success |
| Otherwise | Failed |
Definition at line 1269 of file usbh_core.c.
| int USBH_ProcessHubEvents | ( | void | ) |
Processed USB hub device events. User application must invoke this routine in the main while loop. Device enumeration is done in this routine.
| 0 | No hub events |
| 1 | Had hub events |
Definition at line 117 of file usbh_hub.c.
| int32_t USBH_RegisterDriver | ( | USB_DRIVER_T * | new_driver | ) |
Register a device driver to USB Host Core driver.
| [in] | new_driver | The USB device driver. |
| 0 | Success |
| otherwise | Failed |
Definition at line 78 of file usbh_core.c.
| int32_t USBH_Resume | ( | void | ) |
Resume USB Host controller and devices.
| 0 | Success |
| Otherwise | Failed |
Definition at line 1377 of file usbh_core.c.
| int32_t USBH_SendBulkMsg | ( | USB_DEV_T * | usb_dev, |
| uint32_t | pipe, | ||
| void * | data, | ||
| int | len, | ||
| int * | actual_length, | ||
| int | timeout | ||
| ) |
Execute a bulk transfer.
| [in] | usb_dev | Pointer to the usb device to send the message to. |
| [in] | pipe | Endpoint pipe to send the message to. |
| [in,out] | data | Pointer to the data to send or to receive. |
| [in] | len | Length in bytes of the data to send or receive. |
| [out] | actual_length | Actual length of data transferred. |
| [in] | timeout | Time in millisecond to wait for the message to complete before timing out (if 0 the wait is forever). |
| >=0 | The actual bytes of data be transferred. |
| Otherwise | Failed |
This function sends a simple bulk message to a specified endpoint and waits for the message to complete, or timeout.
If successful, it returns 0, otherwise a negative error number. The number of actual bytes transferred will be placed in the actual_timeout parameter.
Don't use this function from within an interrupt context, like a bottom half handler. If you need a asynchronous message, or need to send a message from within interrupt context, use USBH_SubmitUrb()
Definition at line 413 of file usbh_core.c.
| int32_t USBH_SendCtrlMsg | ( | USB_DEV_T * | dev, |
| uint32_t | pipe, | ||
| uint8_t | request, | ||
| uint8_t | requesttype, | ||
| uint16_t | value, | ||
| uint16_t | index, | ||
| void * | data, | ||
| uint16_t | size, | ||
| int | timeout | ||
| ) |
Execute a control transfer.
| [in] | dev | Pointer to the usb device to send the message to. |
| [in] | pipe | Endpoint pipe to send the message to. |
| [in] | request | USB message request value |
| [in] | requesttype | USB message request type value |
| [in] | value | USB message value |
| [in] | index | USB message index value |
| [in,out] | data | Memory buffer of the data to be send with this transfer or to hold the data received from this transfer. |
| [in] | size | Length in bytes of the data to send. |
| [in] | timeout | Time in millisecond to wait for the message to complete before timing out (if 0 the wait is forever). |
| >=0 | The actual bytes of data be transferred. |
| Otherwise | Failed |
This function sends a simple control message to a specified endpoint and waits for the message to complete, or timeout.
If successful, it returns 0, otherwise a negative error number.
Don't use this function from within an interrupt context, like a bottom half handler. If you need a asynchronous message, or need to send a message from within interrupt context, use USBH_SubmitUrb()
Definition at line 375 of file usbh_core.c.
| int32_t USBH_SetConfiguration | ( | USB_DEV_T * | dev, |
| int | configuration | ||
| ) |
Select USB device configuration.
| [in] | dev | The USB device. |
| [in] | configuration | Configuration number. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 973 of file usbh_core.c.
| int32_t USBH_SetInterface | ( | USB_DEV_T * | dev, |
| char | interface, | ||
| char | alternate | ||
| ) |
Set USB device interface.
| [in] | dev | The USB device. |
| [in] | interface | Interface number. |
| [in] | alternate | Interface alternate setting number. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 948 of file usbh_core.c.
|
static |
| int32_t USBH_SubmitUrb | ( | URB_T * | urb | ) |
Submit an URB to USB core for transfer data.
| [in] | urb | The USB transfer request to be processed. |
| 0 | Success |
| otherwise | Failed |
Definition at line 219 of file usbh_core.c.
| int32_t USBH_Suspend | ( | void | ) |
Suspend USB Host Controller and devices.
| 0 | Success |
| Otherwise | Failed |
Definition at line 1336 of file usbh_core.c.
| int32_t USBH_UnlinkUrb | ( | URB_T * | urb | ) |
Cancel an URB which has been submit to USB core.
| [in] | urb | The USB to be canceled. |
| 0 | Success |
| otherwise | Failed |
Definition at line 237 of file usbh_core.c.
|
static |
Definition at line 250 of file usbh_core.c.
| signed char usb_device::act_config |
Active configuration number
Definition at line 659 of file usbh_core.h.
| char usb_device::act_iface |
Active interface number
Definition at line 660 of file usbh_core.h.
| uint32_t ISO_PACKET_DESCRIPTOR_T::actual_length |
Actual transfer length
Definition at line 507 of file usbh_core.h.
| int urb_t::actual_length |
actual data buffer length
Definition at line 525 of file usbh_core.h.
| USB_BUS_T* usb_device::bus |
Bus we're part of
Definition at line 657 of file usbh_core.h.
| struct usb_device* usb_device::children[USB_MAXCHILDREN] |
Child device list
Definition at line 680 of file usbh_core.h.
| void(* urb_t::complete) (struct urb_t *) |
USB transfer complete callback function
Definition at line 533 of file usbh_core.h.
| void* urb_t::context |
USB Driver internal used
Definition at line 532 of file usbh_core.h.
| USB_DEV_DESC_T usb_device::descriptor |
Device descriptor.
Definition at line 645 of file usbh_core.h.
| struct usb_device* urb_t::dev |
pointer to associated USB device
Definition at line 519 of file usbh_core.h.
| int usb_device::devnum |
Device number on USB bus
Definition at line 647 of file usbh_core.h.
| USB_DRIVER_T* usb_device::driver[MAX_DRIVER_PER_DEV] |
Driver list
Definition at line 682 of file usbh_core.h.
| int usb_device::driver_cnt |
Total number of driver list
Definition at line 683 of file usbh_core.h.
| EP_INFO_T usb_device::ep_list[MAX_ENDPOINTS] |
Endpoint list
Definition at line 663 of file usbh_core.h.
| int usb_device::ep_list_cnt |
Total number of ep_list[]
Definition at line 664 of file usbh_core.h.
| int urb_t::error_count |
number of errors in this transfer (iso only)
Definition at line 530 of file usbh_core.h.
| uint32_t usb_device::halted[2] |
endpoint halts; one bit per endpoint # & direction;
Definition at line 652 of file usbh_core.h.
| int usb_device::have_langid |
whether string_langid is valid yet
Definition at line 666 of file usbh_core.h.
| void* usb_device::hcpriv |
Host Controller private data
Definition at line 669 of file usbh_core.h.
| int usb_device::hub_port |
The hub port that this device connected on
Definition at line 656 of file usbh_core.h.
| char usb_device::iface_alternate |
Active interface alternate setting
Definition at line 661 of file usbh_core.h.
| int urb_t::interval |
polling interval (irq only)
Definition at line 529 of file usbh_core.h.
| ISO_PACKET_DESCRIPTOR_T urb_t::iso_frame_desc[8] |
isochronous transfer descriptor
Definition at line 534 of file usbh_core.h.
| uint32_t ISO_PACKET_DESCRIPTOR_T::length |
Length in transfer buffer
Definition at line 506 of file usbh_core.h.
| int usb_device::maxchild |
Number of ports if hub
Definition at line 679 of file usbh_core.h.
| struct urb_t* urb_t::next |
pointer to next URB
Definition at line 518 of file usbh_core.h.
| int urb_t::number_of_packets |
number of packets in this request (iso)
Definition at line 528 of file usbh_core.h.
| uint32_t ISO_PACKET_DESCRIPTOR_T::offset |
Start offset in transfer buffer
Definition at line 505 of file usbh_core.h.
| struct usb_device* usb_device::parent |
parent device
Definition at line 655 of file usbh_core.h.
| uint32_t urb_t::pipe |
pipe information
Definition at line 520 of file usbh_core.h.
| uint8_t* urb_t::setup_packet |
setup packet (control only)
Definition at line 526 of file usbh_core.h.
| int usb_device::slow |
Is slow device.
Definition at line 648 of file usbh_core.h.
| int usb_device::speed |
Device speed.
Definition at line 649 of file usbh_core.h.
| int urb_t::start_frame |
start frame (iso/irq only)
Definition at line 527 of file usbh_core.h.
| int ISO_PACKET_DESCRIPTOR_T::status |
Transfer status
Definition at line 508 of file usbh_core.h.
| int urb_t::status |
returned status
Definition at line 521 of file usbh_core.h.
| int usb_device::string_langid |
language ID for strings
Definition at line 667 of file usbh_core.h.
| int urb_t::timeout |
timeout (in jiffies)
Definition at line 531 of file usbh_core.h.
| uint32_t usb_device::toggle[2] |
toggle bit ([0] = IN, [1] = OUT)
Definition at line 651 of file usbh_core.h.
| void* urb_t::transfer_buffer |
associated data buffer
Definition at line 523 of file usbh_core.h.
| int urb_t::transfer_buffer_length |
data buffer length
Definition at line 524 of file usbh_core.h.
| uint32_t urb_t::transfer_flags |
USB_DISABLE_SPD | USB_ISO_ASAP | etc.
Definition at line 522 of file usbh_core.h.
| URB_PRIV_T urb_t::urb_hcpriv |
private data for host controller
Definition at line 516 of file usbh_core.h.
| USB_LIST_T urb_t::urb_list |
list pointer to all active urbs
Definition at line 517 of file usbh_core.h.


org.fusesource.scalate
Base class for parsers which use indentation to define structure.
Generates a scala class given a HAML document
Parses a HAML/Scala based document.
no summary matey


Designer
While I spend a lot of time writing source code, I spend even more time designing test cases, creating extensive documentation, and orchestrating sprints.
Test Driven Development
Unit testing, Test-first Development
Dev Tools:
- Neovim
- Tmux / Tmuxinator
- iPDB
- PUDB
- Pycharm debugger
- ngrok
- git/svn
- Zsh
- Terminal
Design Tools:
- Photoshop
- After Effects
- Premier
- Gimp
- Sketch
Full-stack Developer
I tend to code things from scratch, and enjoy bringing ideas to life.
Languages I speak
Python, Javascript, C, C++, Java, SQL, PHP, Lua, SourcePawn, HTML, CSS, R
Frameworks
- Django
- DjangoREST
- GeoDjango
- DjangoNinja
- FastAPI
- Flast
- Tornado
- Celery
- Jekyll
- Hugo
This web application is deployed entirely for free and Serverless to Github Pages using Jekyll as a static site generator.
Deployer
Platform Engineering is one of my favorite aspects of application construction. Deploying services to whichever infrasructure fits their requirements best is one of the most fun things on earth.
Deployment Tools:
Now with 100% less
Feature Toggles
in Canary deployments.
- Kubernetes
- Istio
- Envoy
- Docker
- Canary Deployments
- Datadog / Dynatrace
- Jenkins / CircleCI
- RabbitMQ
- Redis
- AWS / GCP


|
Test Case
|
STARTUP-0020 |
|
Title
|
Application startup with podcasts in the podcast directory |
|
Objective
|
This test case is intended to verify the following implied or specified requirements:
- When the app is started by selecting from the Android app selection menu, the app shall do the following:
- If podcasts do exist in the directory, the app shall display a list of the podcasts that can be played.
- The app shall require no special provisioning however the podcast settings may be required to be adjusted by the Android OS.
- sfwiAudio shall display and play only podcasts that are in the podcast directory.
- sfwiAudio shall have a main menu that displays a list of podcasts available for play.
When the podcast directory has podcast files, the podcasts will be displayed in a list. |
|
Setup
|
- App is installed on an Android phone
- Podcasts are in the podcast directory of the phone
|
|
Actions
|
- Start the application.
- Verify a list of podcasts are displayed that match the contents of the podcast directory.
|
|
Expected
|
The main menu will present a list of podcasts. |
|
Results
|
PASSED |
|
Cleanup
|
|
|
Requirements
|
SFWIAUDIO-PR-INIT-010, SFWIAUDIO-PR-INIT-010.002, SFWIAUDIO-PROV-010, SFWIAUDIO-EXT-IF-010, SFWIAUDIO-EXT-IF-020 |


How we made our app real-time in 6 lines of code
Kwinten Pisman and me were working on a workshop this weekend with the focus on Reactive applications with Angular 2, RXJS and @ngrx. Something that can’t miss in a reactive workshop are real-time updates. The application we are trying to make real-time is the winecellar app (you can register an account here if you want to test it).
To make this application real-time we changed some code in the node.js backend, but that’s out of scope for this post. The cool thing is, that we only needed 6 lines of code to make the frontend completely real-time.
Here’s a small demo. Both computers are signed in with the same account. At the left screen, wines are being added and removed, and in the right screen you’ll see the changes happening real-time.
The winecellar app
The winecellar application is a simple application with only a few features, but we overengineered it on purpose to make it work for largescale applications. You can find the open-source code of the winecellar project here: frontend, (realtime branch) and backend. Beware, the backend might be a little quick and dirty ;)
Technology stack
- Angular 2
- RXJS
- @ngrx/store as redux implementation
- Typescript
- We will use socket.io to make the real-time connection with the backend
features
- Authentication
- Add, update, remove wines
- Searching in a public wine database (wine.com)
- Filtering wines
- Update the stock of wines
- Setting ratings for wines
What part of the application should be real-time?
- All the actions that will update the content in the database eventually should push notifications to all clients except the one sending them.
- Even the filter should be real-time. (Eg. when filtering on "Chateau pomerol", and somebody adds that wine, we want to update our filtered results real-time)
But why did we made something like that real-time? Actually, just because we can! It doesn’t really make sense that a user is logged in twice right? We did it for the purpose of the workshop.
How did we manage to make it real-time?
First, let me give you a little bit of information about how the winecellar really works.
Like said before we use @ngrx/store as our redux implementation. It is a redux library that we use to maintain the state of our application. Basically, you can see it as a client-side store of all our wines and other state. We use that particular store as a single-source-of-truth. We will send actions towards that store which will update the state with pure functions called reducers.
In the following scheme you can see the unidirectional dataflow of redux: The view sends actions to the store which will update the state and then update the view.
Let’s say that we want to add a wine. when we add a wine, we send a XHR request to the backend and send an action to the store, like you can see in the snippet below. That is already how to wine application works
add(wine: Wine): void {
this.http.post(`${API_URL}/wines`, wine, this.authorizedHttpOptions())
.map((res: Response) => res.json())
.subscribe(resp =>
this.store.dispatch({type: DATA_WINES_ADD, payload: {wine:resp}})
);
}
This doesn’t have anything to do with real-time, right?! You are right, it doesn’t… But what if our backend can send Redux actions as well? If the backend can push redux actions to the frontend, then we can make it real-time with very little effort.
For every REST call where something in the database gets updated, we can send a redux action to all the clients which are logged in with the same username (except for ourselves)
These are the 6 lines of code, that we need to make our frontend 100% real-time.
import * as io from "socket.io-client";
// connect with socket.io and listen to redux actions
connect(): void {
this.store.select(state => state.data.authentication.jwtToken)
.take(1).subscribe((token: string) => {
let socket = io(BACKEND, {query: "jwttoken=" + token});
socket.on("UPDATE_REDUX", action => this.store.dispatch(action));
});
}
This is a simplified example of what happens on the backend when we add a wine, for instance.
@Post("/")
public post(@Req()req: Request, @Res() res: Response): void {
let userId = handleAuth(req, res);
new Wine(req.body).save((error, response) => {
...
// emit a socket.io event to the client
// which contains the redux action
this.pushToClient(userId, req, {type: DATA_WINES_ADD, payload: {wine: response}});
// return the new user
res.send(response);
});
}
Check the devtools
In The devtools below you’ll see the actions being dispatched during the lifecycle of the application. These actions can be triggered manually or real-time. Be sure to check them out at https://github.com/ngrx/store-devtools
Conclusion
The data that is managed by redux can be easily made real-time by making the backend dispatch redux actions to the frontend. That way, we can make our application real-time in matter of minutes. If you want to learn more about these technologies: Be sure to checkout our workshop at ngbe.


This a tool where you can do Matrix Operations. You can also print out your results. For more info press help or click here.


Entity Still Active
You tried to delete something that could not be deleted in its current state. Further information about the error is displayed below:
Organizations
Must have zero published APIs
Must have zero registered clients
APIs
All versions must be retired (or not yet published)
Clients
All versions must be retired (or not yet registered)


About
Malik Mukhtar is a tech enthusiast and a Fullstack Developer with good experience on Interactive Web Applications and Enterprise Applications, Superb Leadership Skills, Communication and Good Listening skills. An Individual that loves using tech to solve problems.
Skills
Resume
Sumary
Malik Mukhtar
Performance driven Individual who enjoys working in fast-paced, challenging environments. Resourceful, analytic and quick in understanding complex issues and solving problems. Able to work with people of diverse backgrounds. Effective Advocacy, Communication and Presentation skills.
- Abuja, Nigeria
- +234-7067288453
-<EMAIL_ADDRESS>Education
Mechanical Engineering
2008 - 2013
Ahmadu Bello University, Zaria, KD
Backend Development
2020
TiideLab Academy, Abuja, NG
Frontend Development
2018
Web Development Zero to Mastery Academy, RM
Professional Experience
Full-Stack Developer
2021 - Present
Enterprise Insight, Abuja, NG
- Design client-side and server-side architecture
- Build the front-end of applications through appealing visual design
- Write effective APIs
- Troubleshoot, debug and upgrade software
- Write technical documentation
Backend Developer (Freelancer)
2020
FCZ Media, Lagos, NG
- Participate in the entire application lifecycle, focusing on coding and debugging
- Write effective APIs, Perform UI tests to optimize performance
- Manage cutting-edge technologies to improve legacy applications
- Collaborate with Front-end developers to integrate user-facing elements with server side logic


EDIT-PATCH(1) EDIT-PATCH(1) NAME edit-patch, add-patch - tool for preparing patches for Debian source packages SYNOPSIS edit-patch path/to/patch add-patch path/to/patch DESCRIPTION edit-patch is a wrapper script around the Quilt, CDBS, and dpatch patch systems. It simplifies the process of preparing and editing patches to Debian source packages and allows the user to not have to be concerned with which patch system is in use. Run from inside the root directory of the source package, edit-patch can be used to edit existing patches located in debian/patches. It can also be used to incorporate new patches. If pointed at a patch not already present, it will copy the patch to debian/patches in the cor‐ rect format for the patch system in use. Next, the patch is applied and a subshell is opened in order to edit the patch. Typing exit or pressing Ctrl-d will close the subshell and launch an editor to record the debian/changelog entry. edit-patch is integrated with the Bazaar and Git version control systems. The patch will be automatically added to the tree, and the debian/changelog entry will be used as the commit message. If no patch system is present, the patch is applied inline, and a copy is stored in debian/patches-applied. add-patch is the non-interactive version of edit-patch. The patch will be incorporated but no editor or subshell will be spawned. AUTHORS edit-patch was written by Daniel Holbach<EMAIL_ADDRESS>Michael Vogt<EMAIL_ADDRESS>and David Futcher<EMAIL_ADDRESS>This manual page was written by Andrew Starr-Bochicchio<EMAIL_ADDRESS>Both are released under the terms of the GNU General Public License, ver‐ sion 3. DEBIAN Debian Utilities EDIT-PATCH(1)


F | |
| Formula [Smt] | |
H | |
| H [Hstring] |
Hash-tables indexed by hash-consed strings
|
| HMap [Hstring] |
Maps indexed by hash-consed strings
|
| HSet [Hstring] |
Sets of hash-consed strings
|
| Hstring |
Hash-consed strings
|
M | |
| Make [Smt] |
Functor to create several instances of the solver
|
S | |
| Smt |
The Alt-Ergo Zero SMT library
|
| Symbol [Smt] |
Function symbols
|
T | |
| Term [Smt] | |
| Type [Smt] |
Typing
|
V | |
| Variant [Smt] |
Variants
|


Copyright © 2014 Coaching By Aida · All rights reserved · Created by Nikola Kujaca · Code licensed under the Apache License v2.0 · Based on Bootstrap · Icons by Font Awesome


{% set area = 'policy' %} {% extends "layout.html" %} {% import 'forms.html' as forms %} {% block title %} {% trans %}DevFest Vienna - Conduct Policy{% endtrans %} {% endblock %} {% block content %}
{% trans %} DevFest Vienna is dedicated to being open to everyone and making the conference a safe place for all. We do not discriminate based on ethnic background, religion, gender, sexuality, body shape, or disability. We do not tolerate harassment based on discrimination. {% endtrans %}
{% trans %} We insist that all participants and attendees adhere to a civil demeanor at all times. This includes refraining from inappropriate language, comments and behaviour. This includes, but is not limited to: sexually oriented language and images, unwanted attention, threatening behaviour, physical assault, theft. {% endtrans %}
{% trans %} Participants, sponsors, speakers or attendees who are being harassed, intimidated, or are dealing with otherwise improper behaviour are encouraged to report it immediately to an official DevFest organizer team member. Organizer team members are identified by the red highlighted badges. {% endtrans %}
{% trans %} Alternate methods of reporting issues include: {% endtrans %}
{% trans %} Anyone who is found to be in violation of this policy may be handled in any one or more of these methods, depending on the offense: {% endtrans %}
{% trans %} Actions stronger than a warning will be taken at the discretion of two or more members of the DevFest organizer team. {% endtrans %}
{% trans %} False reports will be treated harshly. Personal disputes should be handled privately, unless actual harassment occurs. {% endtrans %}
{% trans %} DevFest Vienna reserves the right to remove any participant, sponsor or attendee at any time for any reason. {% endtrans %}
{% trans %} This policy covers all organized events for the DevFest Vienna, including social events. {% endtrans %}


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/categories.html ---
This new functor arrow doesn't seem to have an abbreviation in emacs.
'to input: type "C-x 8 RET 2964" or "C-x 8 RET RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN"'
Scott, I see in the latest version of limits, is_limit
and so on have become classes. I'm not sure how workable that will be because there are so many different ways to obtain new (co)limits from old ones. Right now I'm proving that restriction along a cofinal functor preserves colimit cones, but also consider that a left adjoint preserves colimits, and pushout squares glue together, and the other stuff I proved in my colimit_lemmas.lean file. I think this is too much to ask of the class system, and I worry that making the is_*
types classes will make it more difficult to apply all these facts about (co)limits.
We still don't have is_singleton
do we?
variables (C : Type u) [𝒞 : category.{u v} C] include 𝒞 def is_connected : Type u := is_singleton (quot (λ (a b : C), nonempty (a ⟶ b)))
Lean taught me that this is the True Definition.
so the empty graph isn't connected?
You missed a discussion on this topic in Orsay.
https://ncatlab.org/nlab/show/connected+category
Shouldn't is_singleton
be a Prop
?
That is an interesting question. If I make it constructive, then I can prove the result about cofinal functors preserving colimits constructively as well. It's actually a bit subtle--you need to get your hands on an inhabitant of C, but if you define connectedness in terms of the existence of zigzags, then you don't need the zigzags constructively, because they are only used to prove equalities.
Currently, I simply have def is_singleton (α : Type*) := α ≃ unit
.
This plus the above definition gives the correct amount of constructiveness.
is_colimit
is not a Prop (it is a subsingleton though), because it includes the data of how to construct the map given by the universal property. In order to build that map in my setting, I need to know that certain categories are connected in the above constructive sense.
I'm still not sure whether these distinctions between Prop and subsingletons are worth making in the context of category theory.
For context, I proved basically the implication 1 => 3 at https://ncatlab.org/nlab/show/final+functor#properties.
There it is stated as "a map ... is an isomorphism", which is also a proposition classically which has constructive content.
It's kind of fun to see how all these constructive aspects relate to one another, but I'm not sure how useful it is and there are some associated minor annoyances.
So: I don't know. :)
Probably either the name or the definition is wrong though.
yeah, that's definitely path-connected ;-)
Haha :) The distinction doesn't exist to a homotopy theorist.
I remember being very confused when I couldn't prove that an arbitrary product of discrete topological spaces is discrete. Then I realized it was only true up to weak homotopy equivalence...
I think it's relatively painless to turn is_limit
and friends back into structures (not classes). I guess what I desired was that the fact that is_limit c
is a subsingleton should imply that it's okay that there are different ways to construct it. But I understand that Lean is not actually that clever, and we will run into problems where two typeclass instances look different, even though a subsingleton
instance is available.
I do wonder if it could be a plausible addition to the typeclass mechanism: whenever we find that we using two instances that don't agree, first check for an instance of subsingleton
before complaining about it.
So, @Reid Barton, I guess I don't really understand what the problem is with having is_limit
being a typeclass. Certainly there is a problem with having too many instances (because we'll get colliding instances), but nothing particularly forces us to mark constructions as instances.
Having "really canonical" ones, like the one that has_limits
provides, seems quite helpful.
As you point out, we'll certainly want to use non-instance instances of is_limit
and friends, so I agree a good change could be to change it back to a structure
and just add the class
attribute afterwards, so the syntax is as usual for structures.
I'm also open to being convinced it just shouldn't be a class at all.
I think the structure + attribute [class] option will probably address my concerns. I do see the use of instance lookup for common cases.
The problem with just a class is that it's useful to handle these is_limit
values manually, as you say, and maybe I am just bad at dealing with classes, but I find there's more friction there. For example maybe you have a cone which is only propositionally equal to one which you have a lemma about. Then it's easier to convert
the lemma application and fix up the resulting subgoals.
I tried making my is_colimit_of_is_cofinal
into an instance and it did work in the simple use case later... provided I made is_cofinal
an instance too. It's infectious!
Made is_cofinal
a class, I mean.
That's automation, man!
For example maybe you have a cone which is only propositionally equal to one which you have a lemma about.
I guess the point here is that being a limit cone is a property of a diagram, and diagrams have morphisms in them, and it's really common to have non-syntactic or even non-definitional equalities between morphisms (we call them commutative diagrams). Whereas for the class group
, for instance, it's much less common to have non-syntactic equalities between groups.
Okay: for now I will try out having them as structure
with class
added after the fact. If that doesn't go well, complain and we can just go back to bare structures. I think you're making more use of limits than I am, so I'm happy to follow your direction.
Also on the topic of categories, I'd be curious @Reid Barton and @Johan Commelin if you have any thought about my concerns re: @Johannes Hölzl's nice framework for building concrete categories from typeclasses.
https://github.com/leanprover/mathlib/pull/316#issuecomment-419039990
My main concern is that it boxes us in to using lots of sigma types and subtypes, where my instinct had been to define lots of custom structures. :-)
hmmm... ring_homs don't form an additive group... but never mind
@Scott Morrison One of the reasons I was asking about definitions by meta code yesterday was for this sort of thing. If we make concrete_category
meta, then it could make all those bundled defintions for us, couldn't it?
But I'm still too much of an amateur to know what the pros and cons are of these approaches.
My gut feeling is that if Johannes writes something, I won't be able to improve it. (Maybe next year :smiley:)
oh I hadn't seen those comments yet, thanks.
I also had the same, vague concern about your point 1. I hadn't thought of your point 2, will have to think about that one some more.
I think the example you gave of homeomorphisms isn't that compelling, because you could also build (Top, homeos) as the category- (or groupoid-)of-isomorphisms-in the concrete-category Top. Maybe we can come up with a more interesting example?
I commented about point 1 on the issue.
I guess what I desired was that the fact that
is_limit c
is a subsingleton should imply that it's okay that there are different ways to construct it. But I understand that Lean is not actually that clever, and we will run into problems where two typeclass instances look different, even though asubsingleton
instance is available.
Chris Hughes had typeclass problems with fintype
even though it's a subsingleton -- he would occasionally get two instances kicking around and then rewrites would start to fail. He even talked at some point about writing a tactic which might solve his problems, but somehow tactic-writing is not our fort\'e in London, nobody can do it yet, and he just ended up with too many questions which nobody could answer.
Even more interesting -- is_linear_map
is a Prop
but Johannes made it a structure not a class. I talked to him about this a bit in Orsay. My impression was that he couldn't see the point of adding it to the type class inference system, because the instance that you want to trigger -- composition of two linear maps is a linear map -- tends not to trigger, because in functional languages people compose functions by writing them next to each other rather than using function.comp
. We now have a hybrid system where is_group_hom
is a class and is_linear_map
is not.
hmmm... ring_homs don't form an additive group... but never mind
Ooops. :flushed: I'll remove the evidence of that one. :-) There are plenty of less-wrong examples, of course.
The question about is_linear_map
being problematic, because people write their functions using lambdas, could be solved by educating everyone to not use lambdas when you're hoping to use typeclass inference, I guess. It's not totally unreasonable. :-)
And here I have been wondering how hard it would be to get something like lambda syntax for functors...
I actually engaged with Scott's category theory library for the first time yesterday, thanks to @Ned Summers peppering me with questions, and I must say it was a bit scary having to do all the morphism composition using some morphism composition operator...
I tried writing down just the expression "colim_{j in J} lim_{i in I} F(i, j)" and it turned into something ugly like colimit ((curry.map F).comp lim)
Kevin, that's why most of my files contain the magic words local notation f ` ∘ `:80 g:80 := g ≫ f
:)
@Kevin Buzzard, were you referring to having to write some composition operator, rather than a lambda, or to the fact that the composition operator is "backwards"?
(I've been thinking a lot recently about monoidal categories enriched in a braided category, and here it really matters that you write composition "correctly", because every time you move symbols past each other you have to keep track of a braiding.)
I can handle "backwards", it was the shock of having to do it at all.
@Reid Barton, unfortunately I'm having trouble with the structure
+ attribute [class]
approach: I can't ever get it to infer the is_limit
instances, making it pretty useless.
I guess I will go back to just structures.
If it's any help, I think this (structure + attribute [class]
) is how topological spaces are set up.
Hey guys,
I've got a situation where I have two objects of a category X and Y, and a theorem that says X = Y. Obviously there then is a f : X ⟶ Y corresponding to the identity morphism on X (or the identity morphism on Y). I was wondering if writing/using this has been dealt with so far in the mathlib category theory content?
(this is in the context of lean asking for something of type Y ⟶ Y. I have one of type X ⟶ X in mind but lean is not happy if I give it that here (except using cast or eq.rec and these have already caused a lot of trouble). Kevin and I figured it might be easier to instead compose on either side of this choice these morphisms X ⟶ Y and Y ⟶ X corresponding to those identities. Any ideas about that also welcomed!)
Thanks!
Yes, there is something for exactly this situation. See eq_to_iso
in category_theory.isomorphism
.
And there are a couple simp lemmas there which are supposed to make proving things about composition with these morphisms easier than proving things about eq.rec
.
@Scott Morrison, do you have some conversions between equiv
and iso
in Set somewhere?
No, I don't have that conversion, but it should be added!
"equiv is iso to iso"? :-)
@Scott Morrison Do we have Yoneda? :D
Sure, it's in <https://github.com/semorrison/lean-category-theory/blob/master/src/category_theory/yoneda.lean>. It's slowly getting towards the head of the queue for PR'ing into mathlib...
Mario, do you have an opinion on whether "the category C is connected" and "the functor F is cofinal" should be props or subsingletons?
I have a version using subsingletons and it means you can prove cofinal functors preserve colimits constructively (e.g., produce an inverse to the induced map) which is kind of cool, but now I feel it's probably not worth the hassle
https://ncatlab.org/nlab/show/final+functor
A functor F:C→DF : C \to D is final (often called cofinal)
WHYY
Dually, a functor is initial (sometimes called co-cofinal)
wtf
I think I'm co-confused
To me, "connected" sounds like a Prop, I'm not sure how to state it naturally as a subsingleton without using trunc
The definition of cofinal appears to use "nonempty and connected", which sounds like an "is_singleton" statement, which I can see usefully as a type. Is there a natural choice of inhabitant in this case?
I think that being able to construct inverses to given maps is one of the more relevant uses of doing category theory constructively
Yeah the terminology is unfortunate. The "co-" is not the dualizing "co-", but the "together" one, like the categories have the same behavior as you go towards the "end". In practice people only care about (co)final functors and not the other side I think.
Is there a natural choice of inhabitant in this case?
There isn't automatically one in general but typically when you prove a functor is cofinal there will be an obvious way to choose an inhabitant.
Oh yes, by connected I mean to include nonempty. That's the only part which is data
The connected components are quot (λ (a b : C), nonempty (a ⟶ b))
(for some reason I don't remember ever seeing this very simple and Lean-friendly definition), and then you need to say this type has exactly one inhabitant, which can be constructively or not.
I guess I'll continue to try with the constructive definition if you don't have a strong opinion. The pros and cons of both approaches are pretty minor
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


FunctionPass
public enum FunctionPass
A subset of supported LLVM IR optimizer passes.
-
This pass uses the SSA based Aggressive DCE algorithm. This algorithm assumes instructions are dead until proven otherwise, which makes it more successful are removing non-obviously dead instructions.
Declaration
Swift
case aggressiveDCE
-
This pass uses a bit-tracking DCE algorithm in order to remove computations of dead bits.
Declaration
Swift
case bitTrackingDCE
-
Use assume intrinsics to set load/store alignments.
Declaration
Swift
case alignmentFromAssumptions
-
Merge basic blocks, eliminate unreachable blocks, simplify terminator instructions, etc.
Declaration
Swift
case cfgSimplification
-
This pass deletes stores that are post-dominated by must-aliased stores and are not loaded used between the stores.
Declaration
Swift
case deadStoreElimination
-
Converts vector operations into scalar operations.
Declaration
Swift
case scalarizer
-
This pass merges loads and stores in diamonds. Loads are hoisted into the header, while stores sink into the footer.
Declaration
Swift
case mergedLoadStoreMotion
-
This pass performs global value numbering and redundant load elimination cotemporaneously.
Declaration
Swift
case gvn
-
Transform induction variables in a program to all use a single canonical induction variable per loop.
Declaration
Swift
case indVarSimplify
-
Combine instructions to form fewer, simple instructions. This pass does not modify the CFG, and has a tendency to make instructions dead, so a subsequent DCE pass is useful.
This pass combines things like:
%Y = add int 1, %X %Z = add int 1, %Y
into:
%Z = add int 2, %X
Declaration
Swift
case instructionCombining
-
Thread control through mult-pred/multi-succ blocks where some preds always go to some succ. Thresholds other than minus one override the internal BB duplication default threshold.
Declaration
Swift
case jumpThreading
-
This pass is a loop invariant code motion and memory promotion pass.
Declaration
Swift
case licm
-
This pass performs DCE of non-infinite loops that it can prove are dead.
Declaration
Swift
case loopDeletion
-
This pass recognizes and replaces idioms in loops.
Declaration
Swift
case loopIdiom
-
This pass is a simple loop rotating pass.
Declaration
Swift
case loopRotate
-
This pass is a simple loop rerolling pass.
Declaration
Swift
case loopReroll
-
This pass is a simple loop unrolling pass.
Declaration
Swift
case loopUnroll
-
This pass is a simple loop unroll-and-jam pass.
Declaration
Swift
case loopUnrollAndJam
-
This pass is a simple loop unswitching pass.
Declaration
Swift
case loopUnswitch
-
This pass lowers atomic intrinsics to non-atomic form for use in a known non-preemptible environment.
Declaration
Swift
case lowerAtomic
-
This pass performs optimizations related to eliminating
memcpy
calls and/or combining multiple stores into memset’s.Declaration
Swift
case memCpyOpt
-
Tries to inline the fast path of library calls such as sqrt.
Declaration
Swift
case partiallyInlineLibCalls
-
This pass converts SwitchInst instructions into a sequence of chained binary branch instructions.
Declaration
Swift
case lowerSwitch
-
This pass is used to promote memory references to be register references. A simple example of the transformation performed by this pass is going from code like this:
%X = alloca i32, i32 1 store i32 42, i32 *%X %Y = load i32* %X ret i32 %Y
To code like this:
ret i32 42
Declaration
Swift
case promoteMemoryToRegister
-
This pass reassociates commutative expressions in an order that is designed to promote better constant propagation, GCSE, LICM, PRE, etc.
For example:
4 + (x + 5) -> x + (4 + 5)
Declaration
Swift
case reassociate
-
Sparse conditional constant propagation.
Declaration
Swift
case sccp
-
Replace aggregates or pieces of aggregates with scalar SSA values.
Declaration
Swift
case scalarReplAggregates
-
Replace aggregates or pieces of aggregates with scalar SSA values.
Declaration
Swift
case scalarReplAggregatesSSA
-
Tries to inline the fast path of library calls such as sqrt.
Declaration
Swift
case simplifyLibCalls
-
This pass eliminates call instructions to the current function which occur immediately before return instructions.
Declaration
Swift
case tailCallElimination
-
A worklist driven constant propagation pass.
Declaration
Swift
case constantPropagation
-
This pass is used to demote registers to memory references. It basically undoes the
.promoteMemoryToRegister
pass to make CFG hacking easier.Declaration
Swift
case demoteMemoryToRegister
-
Propagate CFG-derived value information
Declaration
Swift
case correlatedValuePropagation
-
This pass performs a simple and fast CSE pass over the dominator tree.
Declaration
Swift
case earlyCSE
-
Removes
llvm.expect
intrinsics and createsblock_weights
metadata.Declaration
Swift
case lowerExpectIntrinsic
-
Adds metadata to LLVM IR types and performs metadata-based TBAA.
Declaration
Swift
case typeBasedAliasAnalysis
-
Adds metadata to LLVM IR types and performs metadata-based scoped no-alias analysis.
Declaration
Swift
case scopedNoAliasAA
-
LLVM’s primary stateless and local alias analysis.
Declaration
Swift
case basicAliasAnalysis
-
This pass is used to ensure that functions have at most one return instruction in them. Additionally, it keeps track of which node is the new exit node of the CFG.
Declaration
Swift
case unifyFunctionExitNodes
-
Runs the LLVM IR Verifier to sanity check the results of passes.
Declaration
Swift
case verifier
-
A pass to inline and remove functions marked as
always_inline
.Declaration
Swift
case alwaysInliner
-
This pass promotes
by reference
arguments to be passed by value if the number of elements passed is less than or equal to 3.Declaration
Swift
case argumentPromotion
-
This function returns a new pass that merges duplicate global constants together into a single constant that is shared. This is useful because some passes (ie TraceValues) insert a lot of string constants into the program, regardless of whether or not they duplicate an existing string.
Declaration
Swift
case constantMerge
-
This pass removes arguments from functions which are not used by the body of the function.
Declaration
Swift
case deadArgElimination
-
This pass walks SCCs of the call graph in RPO to deduce and propagate function attributes. Currently it only handles synthesizing
norecurse
attributes.Declaration
Swift
case functionAttrs
-
Uses a heuristic to inline direct function calls to small functions.
Declaration
Swift
case functionInlining
-
This transform is designed to eliminate unreachable internal globals (functions or global variables)
Declaration
Swift
case globalDCE
-
This function returns a new pass that optimizes non-address taken internal globals.
Declaration
Swift
case globalOptimizer
-
This pass propagates constants from call sites into the bodies of functions.
Declaration
Swift
case ipConstantPropagation
-
This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process.
Declaration
Swift
case ipscc
-
Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack.
Declaration
Swift
case pruneEH
-
This pass removes any function declarations (prototypes) that are not used.
Declaration
Swift
case stripDeadPrototypes
-
These functions removes symbols from functions and modules without touching symbols for debugging information.
Declaration
Swift
case stripSymbols
-
Performs a loop vectorization pass to widen instructions in loops to operate on multiple consecutive iterations.
Declaration
Swift
case loopVectorize
-
This pass performs a superword-level parallelism pass to combine similar independent instructions into vector instructions.
Declaration
Swift
case slpVectorize


peculiar-certificates-viewer
Introduction
Examples
GitHub
Root CAs
See the Pen
Root CAs
by Dmitriy Donskov (
@donskov
) on
CodePen
.
Subordinate CAs
See the Pen
Subordinate CAs
by Dmitriy Donskov (
@donskov
) on
CodePen
.
Certificate details
See the Pen
Certificate viewer
by Dmitriy Donskov (
@donskov
) on
CodePen
.


Inform the post that you are interested in buying this art piece. Please contact the post
ArtShop.com does not sell or buy anything directly. It just provides a platform for artists and art
lovers to communicate. All kinds of buying and selling are done from artists to customer
directly without Artshops involvment.
Artshop.com is not responsible for the sale, packaging, transport or any other aspect related
to the sale of the art piece what so ever.


Taxonomic dictionary contains a taxonomic tree and NCBI taxonomy data for all taxonomic IDs.
# S4 method for TaxDict as.character(x) # S4 method for TaxDict show(object) # S4 method for TaxDict print(x) # S4 method for TaxDict str(object, max.level = 2L, ...) # S4 method for TaxDict summary(object)
| x |
|
|---|---|
| object |
|
| max.level | Maximum level of nesting for str() |
| ... | Further arguments for str() |
txids
Taxonomic IDs of taxon records
recs
Environment of records
prnt
Parent taxonomic ID
txtr
Taxonomic tree
Other run-public: ClstrArc-class
,
ClstrRec-class
,
Phylota-class
, SeqArc-class
,
SeqRec-class
, TaxRec-class
,
clusters2_run
, clusters_run
,
parameters_reset
, reset
,
restart
, run
,
setup
, taxise_run
data('aotus') txdct <- aotus@txdct # this is a TaxDict object # it contains taxonomic information, including records and tree show(txdct)#> Taxonomic dictionary [21] recs, parent [id 9504]# you can access its different data slots with @ txdct@txids # taxonomic IDs#> [1] "1263727" "1230482" "1090913" "1002694" "940829" "867331" "413234" #> [8] "361674" "292213" "280755" "261316" "231953" "222417" "120088" #> [15] "57176" "57175" "43147" "37293" "30591" "9505" "9504"txdct@recs # taxonomic records environment#> <environment: 0x11dd01788>txdct@txtr # taxonomic tree#> TreeMan Object of [19] tipstxdct@prnt # MRCA#> [1] "9504"# access any record through the records environment txdct@recs[[txdct@txids[[1]]]]#> TaxRec [id 1263727 (Aotus zonalis)]#> Length Class Mode #> 1 TreeMan S4


Contact
Email
We would like to hear from you if you have bug reports, feature requests, or any other feedback on RnBeads. Just send an email to<EMAIL_ADDRESS>Team
The RnBeads team currently includes:
- Fabian Müller (Saarland University, previously Max Planck Institute for Informatics and Stanford University)
- Michael Scherer (Centre for Genomic Regulation, previously Saarland University and Max Planck Institute for Informatics)
- Pavlo Lutsik (German Cancer Research Center, previously Saarland University)
- Yassen Assenov (previously German Cancer Research Center and Max Planck Institute for Informatics)
- Christoph Bock (CeMM Research Center for Molecular Medicine, previously Max Planck Institute for Informatics)
Forum Activity
We also keep an eye on the Epigenomics Forum as well as Seqanswers and Biostar, and we encourage posting RnBeads-related questions of broader interest in one of these places. If you want us to respond quickly to a relevant posting there, please also send us an email notification.


I’m writing this post in support of chapter 8 in my book Spring in Practice, which deals with Spring/JavaMail integration, since it’s not always straightforward to configure an app to use SMTP.
The problem
Suppose that you’ve configured your JavaMail app to send e-mail via an SMTP server, but you get the following error:
HTTP ERROR 500 Problem accessing /sip/contact.html. Reason: Mail server connection failed; nested exception is javax.mail.MessagingException: Can't send command to SMTP host; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Failed messages: javax.mail.MessagingException: Can't send command to SMTP host; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Can't send command to SMTP host; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Failed messages: javax.mail.MessagingException: Can't send command to SMTP host; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; message exception details (1) are: Failed message 1: javax.mail.MessagingException: Can't send command to SMTP host; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1420) at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1408) at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:847) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:384) at javax.mail.Service.connect(Service.java:297) at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336) ... snip ...
What’s going on, and how do you fix it?
What’s going on
Your Java runtime doesn’t trust the certificate.
Normally Java verifies certificates through the standard chain of trust mechanism. But if that chain terminates with a certificate that Java doesn’t trust, then Java will complain in the way described above.
How you fix it
Step 1. Decide whether you want to “fix” it at all
Before you tell Java to trust the cert, make sure that that’s actually the right thing to do. I don’t have any guidance to offer on that particular point, but if you’re trying to connect to a well-known service (say Google) and your Java runtime gives you the PKIX issue, that’s a red flag.
Step 2. Download the certificate from the remote SMTP server
You can use openssl
to get the cert, at least on Unix/Linux and MacOS. I think Cygwin provides openssl
on Windows too.
Here’s an example for mail.kattare.com, which is the SMTP server I happen to be using. Kattare uses STARTTLS so I’m using the -starttls smtp
flag:
openssl s_client -connect mail.kattare.com:2525 -starttls smtp > kattare-smtp.cer
The call will look like it’s hung for a little while, but it hasn’t. You can either wait it out or else just hit Ctrl-C, as the part of the response that we’re actually interested in returns immediately.
Now open the file with your favorite text editor and strip out everything other than the certificate itself. Here’s what the result looks like for the mail.kattare.com cert:
-----BEGIN CERTIFICATE----- MIIDfjCCAuegAwIBAgIDFJoPMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0 aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwOTE5MDEzMDUxWhcNMTIxMTIwMTQ0MjI4 WjCB4TEpMCcGA1UEBRMgRFZxc0c5bkIxUGNleTNZVUFzY3otOFNWV0ZnL2Y1aU8x CzAJBgNVBAYTAlVTMRYwFAYDVQQKDA0qLmthdHRhcmUuY29tMRMwEQYDVQQLEwpH VDE3NDM3OTM5MTEwLwYDVQQLEyhTZWUgd3d3LnJhcGlkc3NsLmNvbS9yZXNvdXJj ZXMvY3BzIChjKTEwMS8wLQYDVQQLEyZEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQg LSBSYXBpZFNTTChSKTEWMBQGA1UEAwwNKi5rYXR0YXJlLmNvbTCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEA3E9EOUrXoPLgz/N1MFB4xtld2NyDJK5jzPk313VQ dldvYY8SOd6XqnO/WAmm/2FaFRjhEZ7HcNPAauVeMXW2YQVGSkimeWd8ZDbKU8o6 vJuFJmnRpfxIIZxS1gzJanFrv7v+TtlIQRDP/YI5OnXkZ0sSLVBb2MK7wHLDbtej dhECAwEAAaOB1TCB0jAfBgNVHSMEGDAWgBRI5mj5K9KylddH2CMgEE8zmJCf1DAO BgNVHQ8BAf8EBAMCBPAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCUG A1UdEQQeMByCDSoua2F0dGFyZS5jb22CC2thdHRhcmUuY29tMDoGA1UdHwQzMDEw L6AtoCuGKWh0dHA6Ly9jcmwuZ2VvdHJ1c3QuY29tL2NybHMvc2VjdXJlY2EuY3Js MB0GA1UdDgQWBBRCAb04OmdhLLLRIAtJGNgYnJKQcjANBgkqhkiG9w0BAQUFAAOB gQCZQVc8nNHGo5Sr1hh9ZMBK2bcivXqLeJkOVt2pQ0OoMWDsq7/ei4njcN5QJXf0 mK3Qb4bUkdJUemS3QITRXVqNnBZaP0XUAKBxK5htwHJLuQ83q71Td6NkqSj4yS35 jM3JXG7LRkr/G6M24RCxBKONckQy+3j1wdy/jZwfisilPg== -----END CERTIFICATE-----
Step 3. Import the certificate into your local truststore
You’ll want to import the cert into the truststore in your Java home directory. My Java home is at
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
but yours is probably somewhere else. Anyway, once you find it, the truststore is at /lib/security/jssecacerts
, at least if you’re using JSSE.
sudo keytool -import -alias [alias] -file [cert_file] -keystore [java_home]/lib/security/jssecacerts
For example, for me it’s:
sudo keytool -import -alias mail.kattare.com -file kattare-smtp.cer -keystore /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/jssecacerts
Enter your sudo
password and then your keystore password, and then answer yes when it asks you whether to trust the certificate. This will import the cert into the keystore (which doubles as a truststore).
Step 4. Restart your app and try again
Hopefully this time it works, or at least gets rid of the PKIX error.
References
- How to inspect remote SMTP server’s TLS certificate? [serverfault]: Explains how to get the remote certificate.
- Digital Certificate: How to import .cer file in to .truststore file using? [stackoverflow]: Explains how to import the certificate into your truststore.
- STARTTLS [Wikipedia]: Background material on STARTTLS.


My name is Britt Cerny. I am a recreational photographer from Los Angeles. I originally began photograhing nautre but now work w models.
For information about my work, collaborations, etc.
Close


Welcome Maties!
Rowy is a small seaside village in northern Poland. It is in the administrative district of Gmina Ustka, withing Słupsk County, Pomeranian Voivodship. It is situated between three seaside cities - Ustka, Słupsk and Łeba. In the villege is the west entrance to the Słowiński National Park. The village has a proximate population of 350. The village is now a summer resort but it has a very interesting history which dates up to the Middle Ages.


welcome To Salmon Cookies
Back To the home page
The Countres and Open Hours
ADD New Location:
Location Name:
minCusPerHour
maxCusPerHour
avgCusPerHour


Outbox Event Router
The outbox pattern is a way to safely and reliably exchange data between multiple (micro) services. An outbox pattern implementation avoids inconsistencies between a service’s internal state (as typically persisted in its database) and state in events consumed by services that need the same data.
To implement the outbox pattern in a Debezium application, configure a Debezium connector to:
-
Capture changes in an outbox table
-
Apply the Debezium outbox event router single message transformation (SMT)
A Debezium connector that is configured to apply the outbox SMT should capture changes in only an outbox table. A connector can capture changes in more than one outbox table only if each outbox table has the same structure.
|
The outbox event router SMT is under active development. The structure of the emitted message or other details might change as development progresses. |
See Reliable Microservices Data Exchange With the Outbox Pattern to learn about why the outbox pattern is useful and how it works.
For an example that you can run, see the outbox pattern demo, which is in the Debezium examples repository. It includes an example of how to configure a Debezium connector to run the outbox event router SMT.
|
The outbox event router SMT does not support the MongoDB connector. |
Example outbox message
To learn about how to configure the Debezium outbox event router SMT, consider the following example of a Debezium outbox message:
# Kafka Topic: outbox.event.order
# Kafka Message key: "1"
# Kafka Message Headers: "id=4d47e190-0402-4048-bc2c-89dd54343cdc"
# Kafka Message Timestamp:<PHONE_NUMBER>484
{
"{\"id\": 1, \"lineItems\": [{\"id\": 1, \"item\": \"Debezium in Action\", \"status\": \"ENTERED\", \"quantity\": 2, \"totalPrice\": 39.98}, {\"id\": 2, \"item\": \"Debezium for Dummies\", \"status\": \"ENTERED\", \"quantity\": 1, \"totalPrice\": 29.99}], \"orderDate\": \"2019-01-31T12:13:01\", \"customerId\": 123}"
}
A Debezium connector that is configured to apply the outbox event router SMT generates the above message by transforming a Debezium raw message like this:
# Kafka Message key: "406c07f3-26f0-4eea-a50c-109940064b8f"
# Kafka Message Headers: ""
# Kafka Message Timestamp:<PHONE_NUMBER>484
{
"before": null,
"after": {
"id": "406c07f3-26f0-4eea-a50c-109940064b8f",
"aggregateid": "1",
"aggregatetype": "Order",
"payload": "{\"id\": 1, \"lineItems\": [{\"id\": 1, \"item\": \"Debezium in Action\", \"status\": \"ENTERED\", \"quantity\": 2, \"totalPrice\": 39.98}, {\"id\": 2, \"item\": \"Debezium for Dummies\", \"status\": \"ENTERED\", \"quantity\": 1, \"totalPrice\": 29.99}], \"orderDate\": \"2019-01-31T12:13:01\", \"customerId\": 123}",
"timestamp":<PHONE_NUMBER>344,
"type": "OrderCreated"
},
"source": {
"version": "0.9.3.Final",
"connector": "postgresql",
"name": "dbserver1-bare",
"db": "orderdb",
"ts_usec":<PHONE_NUMBER>448870,
"txId": 584,
"lsn": 24064704,
"schema": "inventory",
"table": "outboxevent",
"snapshot": false,
"last_snapshot_record": null,
"xmin": null
},
"op": "c",
"ts_ms":<PHONE_NUMBER>484
}
This example of a Debezium outbox message is based on the default outbox event router configuration, which assumes an outbox table structure and event routing based on aggregates. To customize behavior, the outbox event router SMT provides numerous configuration options.
Basic outbox table
To apply the default outbox event router SMT configuration, your outbox table is assumed to have the following columns:
Column | Type | Modifiers
--------------+------------------------+-----------
id | uuid | not null
aggregatetype | character varying(255) | not null
aggregateid | character varying(255) | not null
type | character varying(255) | not null
payload | jsonb |
| Column | Effect |
|---|---|
|
Contains the unique ID of the event. In an outbox message, this value is a header. You can use this ID, for example, to remove duplicate messages. |
Contains a value that the SMT appends to the name of the topic to which the connector emits an outbox message. The default behavior is that this value replaces the default |
|
|
Contains the event key, which provides an ID for the payload. The SMT uses this value as the key in the emitted outbox message. This is important for maintaining correct order in Kafka partitions. |
|
A user-defined value that helps categorize or organize events. |
|
The representation of the event itself. The default structure is JSON. The content in this field becomes one of these:
To obtain the event payload from a different outbox table column, set the |
Basic configuration
To configure a Debezium connector to support the outbox pattern, configure the outbox.EventRouter
SMT. For example, the basic configuration in a .properties
file looks like this:
transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
Using Avro as the payload format
The outbox event router SMT supports arbitrary payload formats. The payload
column value in an outbox table is passed on transparently. An alternative to working with JSON is to use Avro.
This can be beneficial for message format governance and for ensuring that outbox event schemas evolve in a backwards-compatible way.
How a source application produces Avro formatted content for outbox message payloads is out of the scope of this documentation.
One possibility is to leverage the KafkaAvroSerializer
class to serialize GenericRecord
instances.
To ensure that the Kafka message value is the exact Avro binary data,
apply the following configuration to the connector:
transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
value.converter=io.debezium.converters.ByteBufferConverter
By default, the payload
column value (the Avro data) is the only message value.
Configuration of ByteBufferConverter
as the value converter propagates the payload
column value as-is into the Kafka message value.
The Debezium connectors may be configured to emit heartbeat, transaction metadata, or schema change events (support varies by connector).
These events cannot be serialized by the ByteBufferConverter
so additional configuration must be provided so the converter knows how to serialize these events.
As an example, the following configuration illustrates using the Apache Kafka JsonConverter
with no schemas:
transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
value.converter=io.debezium.converters.ByteBufferConverter
value.converter.delegate.converter.type=org.apache.kafka.connect.json.JsonConverter
value.converter.delegate.converter.type.schemas.enable=false
The delegate Converter
implementation is specified by the delegate.converter.type
option.
If any extra configuration options are needed by the converter, they can also be specified, such as the disablement of schemas shown above using schemas.enable=false
.
Emitting messages with additional fields
Your outbox table might contain columns whose values you want to add to the emitted outbox messages. For example, consider an outbox table that has a value of purchase-order
in the aggregatetype
column and another column, eventType
, whose possible values are order-created
and order-shipped
.
To emit the eventType
column value in the outbox message header, configure the SMT like this:
transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
transforms.outbox.table.fields.additional.placement=type:header:eventType
To emit the eventType
column value in the outbox message envelope, configure the SMT like this:
transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
transforms.outbox.table.fields.additional.placement=type:envelope:eventType
Configuration options
The following table describes the options that you can specify for the outbox event router SMT. In the table, the Group column indicates a configuration option classification for Kafka.
| Option | Default | Group | Description |
|---|---|---|---|
|
Table |
Specifies the outbox table column that contains the unique event ID. |
|
|
Table |
Specifies the outbox table column that contains the event key. When this column contains a value, the SMT uses that value as the key in the emitted outbox message. This is important for maintaining correct order in Kafka partitions. |
|
Table |
By default, the timestamp in the emitted outbox message is the Debezium event timestamp. To use a different timestamp in outbox messages, set this option to an outbox table column that contains the timestamp that you want to be in emitted outbox messages. |
||
|
Table |
Specifies the outbox table column that contains the event payload. |
|
|
Table |
Specifies the outbox table column that contains the payload ID. |
|
Table, Envelope |
Specifies one or more outbox table columns that you want to add to outbox message headers or envelopes. Specify a comma-separated list of pairs. In each pair, specify the name of a column and whether you want the value to be in the header or the envelope. Separate the values in the pair with a colon, for example:
To specify an alias for the column, specify a trio with the alias as the third value, for example:
The second value is the placement and it must always be Configuration examples are in emitting additional fields in Debezium outbox messages. |
||
Table, Schema |
When set, this value is used as the schema version as described in the Kafka Connect Schema Javadoc. |
||
|
Router |
Specifies the name of a column in the outbox table. The default behavior is that the value in this column becomes a part of the name of the topic to which the connector emits the outbox messages. An example is in the description of the expected outbox table. |
|
|
Router |
Specifies a regular expression that the outbox SMT applies in the RegexRouter to outbox table records. This regular expression is part of the setting of the |
|
|
Router |
Specifies the name of the topic to which the connector emits outbox messages.
The default topic name is
|
|
|
Router |
Indicates whether an empty or |
|
|
Debezium |
Determines the behavior of the SMT when there is an
All changes in an outbox table are expected to be |


| addTheme | Add a Custom Editor Theme |
| applyTheme | Apply an Editor Theme to RStudio |
| as.document_position | Create a Document Position |
| as.document_range | Create a Range |
| askForPassword | Ask the user for a password interactively |
| askForSecret | Show Prompt for Secret Dialog |
| build-tools | Build Tools |
| buildToolsCheck | Build Tools |
| buildToolsExec | Build Tools |
| buildToolsInstall | Build Tools |
| callFun | Call an RStudio API function |
| convertTheme | Convert a tmTheme to an RStudio Theme |
| createProjectTemplate | Create a Project Template |
| dictionaries | Interact with RStudio's Dictionaries |
| dictionariesPath | Interact with RStudio's Dictionaries |
| documentNew | Interact with Documents open in RStudio |
| documentSave | Interact with Documents open in RStudio |
| documentSaveAll | Interact with Documents open in RStudio |
| document_position | Create a Document Position |
| document_range | Create a Range |
| file-dialogs | Select a File / Folder |
| findFun | Exists/get for RStudio functions |
| getActiveDocumentContext | Retrieve Information about an RStudio Editor |
| getActiveProject | Path to Active RStudio Project |
| getConsoleEditorContext | Retrieve Information about an RStudio Editor |
| getPersistentValue | Persistent Keys and Values |
| getSourceEditorContext | Retrieve Information about an RStudio Editor |
| getThemeInfo | Retrieve Themes |
| getThemes | Get Theme List |
| getVersion | Return the current version of the RStudio API |
| hasColorConsole | Check if Console Supports ANSI Color Escapes |
| hasFun | Exists/get for RStudio functions |
| initializeProject | Open a Project in RStudio |
| insertText | Interact with Documents open in RStudio |
| is.document_position | Create a Document Position |
| is.document_range | Create a Range |
| isAvailable | Check if RStudio is running. |
| jobAdd | Add a Job |
| jobAddOutput | Add Job Output |
| jobAddProgress | Add Job Progress |
| jobRemove | Remove a Job |
| jobRunScript | Run R Script As Job |
| jobSetProgress | Set Job Progress |
| jobSetState | Set Job State |
| jobSetStatus | Set Job Status |
| modifyRange | Interact with Documents open in RStudio |
| navigateToFile | Navigate to File |
| openProject | Open a Project in RStudio |
| persistent-values | Persistent Keys and Values |
| previewRd | Preview an Rd topic in the Help pane |
| previewSql | Preview SQL statement |
| primary_selection | Extract the Primary Selection |
| projects | Open a Project in RStudio |
| readPreference | Read Preference |
| removeTheme | Remove a custom theme from RStudio. |
| restartSession | Restart the R Session |
| rstudio-documents | Interact with Documents open in RStudio |
| rstudio-editors | Retrieve Information about an RStudio Editor |
| savePlotAsImage | Save Active RStudio Plot as an Image |
| selectDirectory | Select a File / Folder |
| selectFile | Select a File / Folder |
| sendToConsole | Send Code to the R Console |
| setCursorPosition | Interact with Documents open in RStudio |
| setDocumentContents | Interact with Documents open in RStudio |
| setPersistentValue | Persistent Keys and Values |
| setSelectionRanges | Interact with Documents open in RStudio |
| showDialog | Show Dialog Box |
| showPrompt | Show Prompt Dialog Box |
| showQuestion | Show Question Dialog Box |
| sourceMarkers | Display Source Markers |
| terminalActivate | Activate Terminal |
| terminalBuffer | Get Terminal Buffer |
| terminalBusy | Is Terminal Busy |
| terminalClear | Clear Terminal Buffer |
| terminalContext | Retrieve Information about RStudio Terminals |
| terminalCreate | Create a Terminal |
| terminalExecute | Execute Command |
| terminalExitCode | Terminal Exit Code |
| terminalKill | Kill Terminal |
| terminalList | Get All Terminal Ids |
| terminalRunning | Is Terminal Running |
| terminalSend | Send Text to a Terminal |
| terminalVisible | Get Visible Terminal |
| translateLocalUrl | Translate Local URL |
| updateDialog | Updates a Dialog Box |
| userDictionariesPath | Interact with RStudio's Dictionaries |
| verifyAvailable | Check if RStudio is running. |
| versionInfo | RStudio Version Information |
| viewer | View local web content within RStudio |
| writePreference | Write Preference |


Freelance Business Software
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis eius nihil in quisquam voluptate!
A few words from our clients:
Recent Activities
-
Last reply mosaicpro3
-
-
-
Categories
- Discussion Board
- Questions & Answers
- Support


In India there is no other event that is anticipated with as much eagerness as the monsoons. The look out begins late in March or if we are lucky in mid April. By this time, in most parts of the country the remaining hint of cool wintry air is replaced by the warm summer wind which gets hotter by the day. The source of this heat are the great northern plains which absorb considerable sunlight during the day and raise the temperature of the surrounding air. The Thar desert on the western end becomes the hottest place in the country. The rest of the plains though comparatively cooler consistently record temperatures >40C.
The heat affects everyone. Now there are no more flowers in the parks, the grass needs to be watered at least three times a day and the sales of ice cream goes up. People are reluctant to step out in the noon and the evenings see an increased activity in the streets. The air conditioned malls become a popular hangout spot and the membership of the swimming pools are all sold out within a week. In these hard times the strained Indian populace needs a little help. We do not ask for much you see, just a little cloud here, a cool breeze there, to soothe the simmering land. And who better to listen to our pleas than the mighty seas.
As it happens we've got one on the west, on one the east and one on the south. And all three of them are quite willing to help us out. The generally accepted principle behind the monsoons is simple. To understand it let us take the example of a balloon:-
Imagine that you've a balloon in your hand. Breathe some air into it, hold it for a while to appreciate the work you've done and then let it escape. Hear how it makes a whooshing sound as it goes out. This escaping of air from the balloon to the outside air is similar to how the monsoon winds work. When the balloon is filled up with air, the pressure inside is greater than the pressure outside. When you let go the air rushes out to fill that gap in pressure.
In the case of monsoon winds as the temperature of the surrounding land gets higher, the air heats up which in turn creates a low pressure scenario. The heavy, moisture laden high pressure winds from the sea rush in to fill this gap in pressure. The land being higher than the sea level causes the winds to rise. As they rise the winds cool and the water vapour condenses to form water droplets which cause rain. So the essential conditions to causing monsoon rains are
Gods willing the monsoon arrives at the southernmost tip of the country on the first day of June. The V shaped Indian peninsula distributes the winds into two directions.
The Arabian sea branch heads westwards, causing rainfall along the western ghats and on-wards. The western ghats are hilly regions that cause the monsoonal winds to rise up along it's slope. As the winds rise they cool down and the vapor condenses to cause rain. Many coastal areas along the western ghats including popular tourist destinations:Goa,kochi and Mumbai receive heavy rainfall during this period.
The bay of Bengal branch moves towards north-east and is responsible for precipitation in the eastern parts of the country. Cherrapunji and Mawsynram in meghalya which are the two of the wettest places on earth receive rainfall due to the bay of Bengal branch of the monsoons.
During this time the dry plains and valleys are transformed into lush green scenic vistas. The change is remarkable. Such total transformation of the land has to be seen to be believed.
Advancing and retreating monsoon
The period of June to September is the period of advancing monsoons. The winds from the sea rush to the hot plains. While it accounts for most of the rainfall within the country the coverage is not complete. Some parts of the country like Tamil Nadu don't receive as much rainfall during the first half of monsoons but average our during the retreating monsoons.
During the winter seasons the temperature of the northern plains decreases considerably. The air pressure builds up causing it to rush from the plains towards the Indian ocean. Along the way it picks up moisture and pours it over the southern states which were left behind during the advancing monsoons. The monsoon winds are quite fair and just for most part of the country. The only region where it fails to deliver is in the western most end of Rajasthan which is desert area.
As I mentioned before the geography of the country plays a big part in the rainfall. The Arabian sea Branch advancing monsoon rapidly cools off the western ghats causing immediate precipitation. The Bay of Bengal branch flows over Bangladesh and is trapped by the eastern Himalayas in Meghalaya where it is responsible for the highest recorded rainfall in the world. The winds that reach further north are blocked by the Himalayas and prevent them to escape the country, cool and cause rainfall.
Of course in monsoons flooding of rivers is quite common. The streams that seemed gentle and playful during the summers turn into raging torrents. Kosi river is infamous for the flood it threatens to cause every moonsson. The river is so consistent in this task that it has been dubbed as "The sorrow of Bihar" for causing widespread destruction in the state of Bihar.
Life: Before, during and after monsoons
Depending upon where you live in the country the life pre monsoon can be either compared to living next to an iron furnace or to a pleasant English country summer. The northern plains including the capital Delhi become unbearably hot. Higher up in north the valley dusts off it's snow to present itself in all of it's green glory. These spots become a popular tourist destination for carefree people.
In some cities like my own power cuts during extreme summers are quite common. The heavy use of electricity in homes for AC's becomes too much to handle and it s not uncommon to have power cuts for up to 8 hrs a day. The preservation of water becomes essential. Gurgaon has no natural (continuous) water supply. Though Haryana has a few seasonal rivers and a drainage system that is responsible for supplying water.
Married couples blessed with off springs have to wait until June before they can think about a holiday. 'cause it's in June that the schools offer a summer break. And with monsoon rapidly advancing on them they only have a few weeks before the rain dampens every tourist location. Ah well such are the sorrows of married life! it's in monsoons that us ole life-without-a-care bachelors have our sweet revenge.
Being an agricultural country monsoon has a great impact on Indian economy. The farmers eagerly await their arrival. The artificial irrigation methods are no substitute for nature's blessing. The importance of monsoons have even been recognized in parliamentary discourse where it has been dubbed as the "real finance minister of India".
While the rains close off many beaches and hampers water sports it opens a whole new door for exploration. The valleys which seemed melancholy during the summer start bursting with life. Now there are innumerable waterfalls, dozens of streams and flowers. The air fresh, the surroundings calm and clean. Strolling through the lush plains and green valleys is an experience like no other.
The month of October marks the onset of winters. The slight coolness in the air promises the wintry chill in the coming months. This period is generally regarded as the best time to travel in India the months are dry, the temperature is cooler.
October? Who cares about October? No one I tell you. Why? It's may, 1 in the morning and the room temperature is 35! For me the the rains can't come soon enough. Until they do I've got the beautiful song of Jane Morgan as a consolation.


| Package | Description |
|---|---|
| org.joda.time |
Provides support for dates, times, time zones, durations, intervals, and
partials.
|
| org.joda.time.base |
Implementation package providing abstract and base time classes.
|
| org.joda.time.chrono |
Package containing the chronology classes which define the calendar systems.
|
| org.joda.time.field |
Implementation package providing abstract and standard field classes.
|
| org.joda.time.format |
Provides printing and parsing support for instants and durations.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
ReadableDateTime
Defines an instant in time that can be queried using datetime fields.
|
interface |
ReadWritableDateTime
Defines an instant in time that can be queried and modified using datetime fields.
|
interface |
ReadWritableInstant
Defines an instant in the datetime continuum that can be queried and modified.
|
| Modifier and Type | Class and Description |
|---|---|
class |
DateMidnight
Deprecated.
The time of midnight does not exist in some time zones
where the daylight saving time forward shift skips the midnight hour.
Use
LocalDate to represent a date without a time zone.
Or use DateTime to represent a full date and time, perhaps
using DateTime.withTimeAtStartOfDay() to get an instant at the
start of a day. |
class |
DateTime
DateTime is the standard implementation of an unmodifiable datetime class.
|
class |
Instant
Instant is the standard implementation of a fully immutable instant in time.
|
class |
MutableDateTime
MutableDateTime is the standard implementation of a modifiable datetime class.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
ReadableInterval.contains(ReadableInstant instant)
Does this time interval contain the specified instant.
|
static Days |
Days.daysBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Days representing the number of whole days
between the two specified datetimes. |
static Chronology |
DateTimeUtils.getInstantChronology(ReadableInstant instant)
Gets the chronology from the specified instant object handling null.
|
static long |
DateTimeUtils.getInstantMillis(ReadableInstant instant)
Gets the millisecond instant from the specified instant object handling null.
|
static Chronology |
DateTimeUtils.getIntervalChronology(ReadableInstant start,
ReadableInstant end)
Gets the chronology from the specified instant based interval handling null.
|
int |
DateTimeZone.getOffset(ReadableInstant instant)
Gets the millisecond offset to add to UTC to get local time.
|
static Hours |
Hours.hoursBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Hours representing the number of whole hours
between the two specified datetimes. |
boolean |
ReadableInstant.isAfter(ReadableInstant instant)
Is this instant after the instant passed in
comparing solely by millisecond.
|
boolean |
ReadableInterval.isAfter(ReadableInstant instant)
Is this time interval after the specified instant.
|
boolean |
ReadableInstant.isBefore(ReadableInstant instant)
Is this instant before the instant passed in
comparing solely by millisecond.
|
boolean |
ReadableInterval.isBefore(ReadableInstant instant)
Is this time interval before the specified instant.
|
boolean |
ReadableInstant.isEqual(ReadableInstant instant)
Is this instant equal to the instant passed in
comparing solely by millisecond.
|
boolean |
Partial.isMatch(ReadableInstant instant)
Does this partial match the specified instant.
|
static Minutes |
Minutes.minutesBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Minutes representing the number of whole minutes
between the two specified datetimes. |
static Months |
Months.monthsBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Months representing the number of whole months
between the two specified datetimes. |
static Seconds |
Seconds.secondsBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Seconds representing the number of whole seconds
between the two specified datetimes. |
void |
MutableDateTime.setDate(ReadableInstant instant)
Set the date from another instant.
|
void |
MutableInterval.setEnd(ReadableInstant end)
Sets the end of this time interval as an Instant.
|
void |
ReadWritableInterval.setEnd(ReadableInstant instant)
Sets the end of this time interval as an Instant.
|
void |
MutableInterval.setInterval(ReadableInstant start,
ReadableInstant end)
Sets this interval from two instants, replacing the chronology with
that from the start instant.
|
void |
ReadWritableInterval.setInterval(ReadableInstant startInstant,
ReadableInstant endInstant)
Sets this interval from two instants.
|
void |
ReadWritableInstant.setMillis(ReadableInstant instant)
Sets the millisecond instant of this instant from another.
|
void |
MutableDateTime.setMillis(ReadableInstant instant)
Sets the millisecond instant of this instant from another.
|
void |
MutablePeriod.setPeriod(ReadableInstant start,
ReadableInstant end)
Sets all the fields in one go from two instants representing an interval.
|
void |
MutableInterval.setStart(ReadableInstant start)
Sets the start of this time interval as an Instant.
|
void |
ReadWritableInterval.setStart(ReadableInstant instant)
Sets the start of this time interval as an Instant.
|
void |
MutableDateTime.setTime(ReadableInstant instant)
Set the time from another instant.
|
DateTime |
ReadablePartial.toDateTime(ReadableInstant baseInstant)
Converts this partial to a full datetime by resolving it against another
datetime.
|
static Weeks |
Weeks.weeksBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Weeks representing the number of whole weeks
between the two specified datetimes. |
Interval |
Interval.withEnd(ReadableInstant end)
Creates a new interval with the specified end instant.
|
Interval |
Interval.withStart(ReadableInstant start)
Creates a new interval with the specified start instant.
|
static Years |
Years.yearsBetween(ReadableInstant start,
ReadableInstant end)
Creates a
Years representing the number of whole years
between the two specified datetimes. |
| Constructor and Description |
|---|
Duration(ReadableInstant start,
ReadableInstant end)
Creates a duration from the given interval endpoints.
|
Interval(ReadableDuration duration,
ReadableInstant end)
Constructs an interval from a millisecond duration and an end instant.
|
Interval(ReadableInstant start,
ReadableDuration duration)
Constructs an interval from a start instant and a duration.
|
Interval(ReadableInstant start,
ReadableInstant end)
Constructs an interval from a start and end instant.
|
Interval(ReadableInstant start,
ReadablePeriod period)
Constructs an interval from a start instant and a time period.
|
Interval(ReadablePeriod period,
ReadableInstant end)
Constructs an interval from a time period and an end instant.
|
MutableInterval(ReadableDuration duration,
ReadableInstant end)
Constructs an interval from a millisecond duration and an end instant.
|
MutableInterval(ReadableInstant start,
ReadableDuration duration)
Constructs an interval from a start instant and a duration.
|
MutableInterval(ReadableInstant start,
ReadableInstant end)
Constructs an interval from a start and end instant.
|
MutableInterval(ReadableInstant start,
ReadablePeriod period)
Constructs an interval from a start instant and a time period.
|
MutableInterval(ReadablePeriod period,
ReadableInstant end)
Constructs an interval from a time period and an end instant.
|
MutablePeriod(ReadableDuration duration,
ReadableInstant endInstant)
Creates a period from the given duration and end point.
|
MutablePeriod(ReadableDuration duration,
ReadableInstant endInstant,
PeriodType type)
Creates a period from the given duration and end point.
|
MutablePeriod(ReadableInstant startInstant,
ReadableDuration duration)
Creates a period from the given start point and the duration.
|
MutablePeriod(ReadableInstant startInstant,
ReadableDuration duration,
PeriodType type)
Creates a period from the given start point and the duration.
|
MutablePeriod(ReadableInstant startInstant,
ReadableInstant endInstant)
Creates a period from the given interval endpoints using the standard
set of fields.
|
MutablePeriod(ReadableInstant startInstant,
ReadableInstant endInstant,
PeriodType type)
Creates a period from the given interval endpoints.
|
Period(ReadableDuration duration,
ReadableInstant endInstant)
Creates a period from the given duration and end point.
|
Period(ReadableDuration duration,
ReadableInstant endInstant,
PeriodType type)
Creates a period from the given duration and end point.
|
Period(ReadableInstant startInstant,
ReadableDuration duration)
Creates a period from the given start point and the duration.
|
Period(ReadableInstant startInstant,
ReadableDuration duration,
PeriodType type)
Creates a period from the given start point and the duration.
|
Period(ReadableInstant startInstant,
ReadableInstant endInstant)
Creates a period between the given instants using the standard set of fields.
|
Period(ReadableInstant startInstant,
ReadableInstant endInstant,
PeriodType type)
Creates a period between the given instants.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractDateTime
AbstractDateTime provides the common behaviour for datetime classes.
|
class |
AbstractInstant
AbstractInstant provides the common behaviour for instant classes.
|
class |
BaseDateTime
BaseDateTime is an abstract implementation of ReadableDateTime that stores
data in
long and Chronology fields. |
| Modifier and Type | Method and Description |
|---|---|
protected static int |
BaseSingleFieldPeriod.between(ReadableInstant start,
ReadableInstant end,
DurationFieldType field)
Calculates the number of whole units between the two specified datetimes.
|
int |
AbstractInstant.compareTo(ReadableInstant other)
Compares this object with the specified object for ascending
millisecond instant order.
|
boolean |
AbstractInterval.contains(ReadableInstant instant)
Does this time interval contain the specified instant.
|
boolean |
AbstractInterval.isAfter(ReadableInstant instant)
Is this time interval after the specified instant.
|
boolean |
AbstractInstant.isAfter(ReadableInstant instant)
Is this instant strictly after the instant passed in
comparing solely by millisecond.
|
boolean |
AbstractInterval.isBefore(ReadableInstant instant)
Is this time interval before the specified instant.
|
boolean |
AbstractInstant.isBefore(ReadableInstant instant)
Is this instant strictly before the instant passed in
comparing solely by millisecond.
|
boolean |
AbstractInstant.isEqual(ReadableInstant instant)
Is this instant equal to the instant passed in
comparing solely by millisecond.
|
DateTime |
AbstractPartial.toDateTime(ReadableInstant baseInstant)
Resolves this partial against another complete instant to create a new
full instant.
|
Duration |
BasePeriod.toDurationFrom(ReadableInstant startInstant)
Gets the total millisecond duration of this period relative to a start instant.
|
Duration |
BasePeriod.toDurationTo(ReadableInstant endInstant)
Gets the total millisecond duration of this period relative to an
end instant.
|
Interval |
BaseDuration.toIntervalFrom(ReadableInstant startInstant)
Converts this duration to an Interval starting at the specified instant.
|
Interval |
BaseDuration.toIntervalTo(ReadableInstant endInstant)
Converts this duration to an Interval ending at the specified instant.
|
Period |
BaseDuration.toPeriodFrom(ReadableInstant startInstant)
Converts this duration to a Period instance by adding the duration to a start
instant to obtain an interval using the standard period type.
|
Period |
BaseDuration.toPeriodFrom(ReadableInstant startInstant,
PeriodType type)
Converts this duration to a Period instance by adding the duration to a start
instant to obtain an interval.
|
Period |
BaseDuration.toPeriodTo(ReadableInstant endInstant)
Converts this duration to a Period instance by subtracting the duration
from an end instant to obtain an interval using the standard period
type.
|
Period |
BaseDuration.toPeriodTo(ReadableInstant endInstant,
PeriodType type)
Converts this duration to a Period instance by subtracting the duration
from an end instant to obtain an interval using the standard period
type.
|
| Constructor and Description |
|---|
BaseDuration(ReadableInstant start,
ReadableInstant end)
Creates a duration from the given interval endpoints.
|
BaseInterval(ReadableDuration duration,
ReadableInstant end)
Constructs an interval from a millisecond duration and an end instant.
|
BaseInterval(ReadableInstant start,
ReadableDuration duration)
Constructs an interval from a start instant and a duration.
|
BaseInterval(ReadableInstant start,
ReadableInstant end)
Constructs an interval from a start and end instant.
|
BaseInterval(ReadableInstant start,
ReadablePeriod period)
Constructs an interval from a start instant and a time period.
|
BaseInterval(ReadablePeriod period,
ReadableInstant end)
Constructs an interval from a time period and an end instant.
|
BasePeriod(ReadableDuration duration,
ReadableInstant endInstant,
PeriodType type)
Creates a period from the given duration and end point.
|
BasePeriod(ReadableInstant startInstant,
ReadableDuration duration,
PeriodType type)
Creates a period from the given start point and duration.
|
BasePeriod(ReadableInstant startInstant,
ReadableInstant endInstant,
PeriodType type)
Creates a period from the given interval endpoints.
|
| Modifier and Type | Method and Description |
|---|---|
static GJChronology |
GJChronology.getInstance(DateTimeZone zone,
ReadableInstant gregorianCutover)
Factory method returns instances of the GJ cutover chronology.
|
static GJChronology |
GJChronology.getInstance(DateTimeZone zone,
ReadableInstant gregorianCutover,
int minDaysInFirstWeek)
Factory method returns instances of the GJ cutover chronology.
|
| Modifier and Type | Method and Description |
|---|---|
int |
AbstractReadableInstantFieldProperty.compareTo(ReadableInstant instant)
Compare this field to the same field on another instant.
|
int |
AbstractPartialFieldProperty.compareTo(ReadableInstant instant)
Compare this field to the same field on another instant.
|
int |
AbstractReadableInstantFieldProperty.getDifference(ReadableInstant instant)
Returns the difference between this field property instant and the one
passed in, in the units of this field.
|
long |
AbstractReadableInstantFieldProperty.getDifferenceAsLong(ReadableInstant instant)
Returns the difference between this field property instant and the one
passed in, in the units of this field.
|
| Modifier and Type | Method and Description |
|---|---|
String |
DateTimeFormatter.print(ReadableInstant instant)
Prints a ReadableInstant to a String.
|
void |
DateTimeFormatter.printTo(Appendable appendable,
ReadableInstant instant)
Prints a ReadableInstant, using the chronology supplied by the instant.
|
void |
DateTimeFormatter.printTo(StringBuffer buf,
ReadableInstant instant)
Prints a ReadableInstant, using the chronology supplied by the instant.
|
void |
DateTimeFormatter.printTo(StringBuilder buf,
ReadableInstant instant)
Prints a ReadableInstant, using the chronology supplied by the instant.
|
void |
DateTimeFormatter.printTo(Writer out,
ReadableInstant instant)
Prints a ReadableInstant, using the chronology supplied by the instant.
|
Copyright © 2002–2020 Joda.org. All rights reserved.


Home
Add a Book
Edit a Book
Paul and Travis Book App
Add a new book
Title:
Author:
ISBN:
Image URL:
Description:
Submit a new book
Well Something sure as shit went wrong
No idea what it is though. We're not THAT sophisticated


--- layout: post status: publish published: true title: save your pc from being hacked author: display_name: vishvendra login: vishvendra email<EMAIL_ADDRESS>url: '' author_login: vishvendra author_email<EMAIL_ADDRESS>wordpress_id: 486 wordpress_url: https://vishvendrasingh.com/?p=486 date: '2017-02-15 15:48:46 +0530' date_gmt: '2017-02-15 15:48:46 +0530' categories: - Hacking - web tags: [] comments: [] ---
install this addon and save your pc from being hacked from WebRTC type exploit.
https://addons.mozilla.org/en-US/firefox/addon/happy-bonobo-disable-webrtc/
verify over here this website can show your local IP, and this should not be the case.