The recent release of the ggraph package for visualising networks in R got me interested in learning a little more about graph analysis and visualisation. My first thought was about what data I could use. I have a twitter account but twitter has been written about quite extensively so I searched for something different. Outside of my data-science interests I am a keen runner and use a website called Strava to manage my workouts. Strava allows you to connect with fellow athletes creating a perfect data set for my purposes.
The first thing to do is to register an app on the site and get hold of an app client id and app secret.
Prep
Lets start by loading some packages and connecting to the API:
Download the data
Once connected and authenticated we can access anything that is available on the api. Here is a link for further reading https://strava.github.io/api/.
First lets download a list of friends and list of followers.
And then a list of friend’s friends and friend’s followers:
The data is downloaded in JSON format that R has ingested as lists of lists. Each element has the following information:
Out interest is mainly in id but we can use the other fields to segment the network. Before we can do any analysis we will need to flatten/reshape this into a tidy data set.
Tidy the data
The strategy here is to flatten each list in to a row in a data frame. This works fairly well except for friends who don’t follow anyone. These are removed. A note on terminology: a follower follows a followee (very elegant).
Finally we have all the information we need to create our network. Note how we re-ordered the all_friends data.frame so that the first two columns indicate each edge or relationship.
Create graph
Now let’s use igraph to create a graph object
Our graph data set contains 16,861 vertices and 23,537 edges. If we try to plot this, it will take a very long time. Let us rather focus on a subset of the graph called a neighourhood. Here we will subset the graph such that we only see my first order neighbours or friends/followers.
We now only have 102 nodes and 799 edges. Now we can plot with ggraph.
Plot Network
The plot shows each follower and followee in my network as a node or circle whilst the relationships are depicted by the edges or lines. We can clean this up a bit:
Then, let’s plot all edges with their directions as arrows:
Finally, lets colour the nodes by type.
The chart shows that in most cases, my connections are both friend and follower however there are people that follow me that I don’t follow back. Similarly, I am following people that don’t follow me back.
ggraph is quite easy to use and fits in nicely with the existing tidyverse toolkit.


The Orionids is an average shower producing up to 20 meteors
per
hour at its peak. It is produced by dust grains left behind by
comet
hour at its peak. It is produced by dust grains left behind by
comet
Halley, which has been known and observed since ancient
times.The
shower runs annually from October 2 to November 7.
It peaks this year
on the night of October 21 and the morning of
October 22.The second
quarter moon will block some of the fainter
meteors this year,but the
Orionids tend to be fairly bright so it could
still be a good show. Best
viewing will be from a dark location after
midnight. Meteors will radiate
from the constellation Orion,
but can appear anywhere in the sky.
Learn More


Mike Bao and Timothy Li are both current students at Harvard University studying computer science. Mutual interests include coding, climbing, basketball, modeling, and music.


Frontend Mentor | Huddle landing page with single introductory section
Build The Community Your Fans Will Love
Huddle re-imagines the way we build communities. You have a voice, but so does your audience.
Create connections with your users as you engage in genuine discussion.


Mad Libs Assignment
View Mad Libs output in your browser console. No output will display on this page.


POLL
signature
signature POLL
The Unsafe.Poll structure provides an interface to automatic software polling. The pollEvent flag is watched (with user-specified frequency), and when it becomes true
, a user-specified function is invoked. This is all done without hardware interrupts; it is useful where the operating system does not provide an interface to hardware signals, or where the cost of hardware signal-handling is too high.
Polling does not slow down user code very much, because the polling code is integrated with the "heap exhausted?" tests that are used to invoke the garbage collector.
In SML/NJ version 110, polling works on the MIPS, Sparc, and Intel x86 architectures.
Soft polling is used to support garbage collection for the MP thread library; fully follow only steps 1 and 2 for MP. For custom application, follow all steps.
1) build a runtime system for polling by adding "-DSOFT_POLL" to the appropriate mk.<arch$GT;-<os$GT; make script in src/runtime/objs (see, for example, mk.x86-linux-poll) then, do a "make clean" followed by a "make -f mk.<arch$GT;-<os$GT;"
2) use the resulting runtime (src/runtime/objs/run.<arch>-<os>) for the following steps
3) start the compiler and set it to emit polling checks:
Compiler.Control.CG.pollChecks := true;For MP support: One may now want to build an entire compiler that checks for poll events: if retargeting, after the retarget do
<ARCH>VisComp.Control.CG.pollChecks := true; CMB.make();otherwise,
Compiler.Control.CG.pollChecks := true; CMB.make()
4) polling is now available in the freshly compiled compiler to use, install a polling handler, e.g.:
Unsafe.Poll.setHandler (SOME(fn x => (print "in handler\n"; x)));or,
Unsafe.Poll.setHandler (SOME(fn x => (print "in handler\n"; Unsafe.Poll.pollEvent := false; x)));
5) set a polling frequency: Unsafe.Poll.setFreq (SOME 50);
Frequency (SOME x)
sets the polling interval to approximately x*1000 instructions; frequency NONE
disables polling.
6) the installed poll handler will be called after Unsafe.Poll.pollEvent := true;
occurs.
exception BadPollFreq
val pollEvent : bool ref
val setHandler : (unit cont -> unit cont) option -> unit
val inqHandler : unit -> (unit cont -> unit cont) option
val setFreq : int option -> unit
val inqFreq : unit -> int option
exception BadPollFreq
pollEvent
NONE
), the hander will be invoked. pollEvent is accessible to the runtime system and may (of course) be set asynchronously by other threads.
setHandler a
a=f, install f as the event handler. When pollEvent becomes true, the current continuation
k
will be saved, pollEvent will be set to false, and f(k
) will be called. No polling will occur during the execution of f. When f returns some continuation k'
, then polling will resume and k'
will be invoked.
If
a=NONE, disable polling.
inqHandler ()
setFreq a
a=(SOME i), sets the polling frequency to
i; that is, approximately every
i*1000instructions, the pollEvent variable will be checked.
When
a=NONE, disables polling.
inqFreq ()
Posix.Signal, SMLofNJ.SysInfo.hasSoftwarePolling
Last Modified October 28, 1997
Comments to<EMAIL_ADDRESS>Copyright © 1998 Bell Labs, Lucent Technologies


Learn basic Flexbox in just 10 minutes
Justin Yek
Flexbox, short for “flexible box,” is a layout mode introduced in CSS3 that determines how elements are arranged on a page so that they behave predictably under different screen sizes and devices. It is called Flexbox because of its ability to expand and shrink elements inside the the flex box to best fill the available space.
Why striving for perfection might be holding you back as a newbie web developer
Rick West
Done is better than perfect. When you’re learning, build something until it works correctly and looks decent, and then forget it and move on. Don’t look for perfection. There are bigger and better things for you to be learning and working on than tweaking the padding on your.
How to simplify your app’s authentication by using JSON Web Token
Sudheesh Shetty
Every application we come across today implements security measures so that the user data is not misused. Security is always something that is changing and evolving. Authentication is one of the essential part of every application.
How to create visual variants for React components using styled-components
Gilad Dayagi
Styled-components is a library for styling React components that took the React world by storm when it was introduced at the end of 2016. The library is powerful and flexible. And solves most of the problems that classic CSS has in the so-called Component Age.
How to host lightweight apps for free
Pubs Abayasiri
When you look for web hosting services, there are many free options available. But there aren’t that many places where you can host full stack web apps that involve APIs, CGI, or AJAX backend queries — especially if you want to use something other than PHP.
Before you can master design, you must first master the fundamentals
Jonathan Z. White
Last week, one of my readers sent in a question: How do I become a better visual designer? As I was thinking about how to answer this question, my mind wandered to my experience with learning Mandarin Chinese. Recently, I decided to teach myself Mandarin. When it comes to learning a new language, you first have to start with the fundamentals. Nouns, pronouns, and verbs form the basis for conveying more complex ideas.
A million requests per second with Python
Paweł Piotr Przeradowski
Is it possible to hit a million requests per second with Python? Probably not until recently. A lot of companies are migrating away from Python and to other programming languages so that they can boost their operation performance and save on server prices, but there’s no need really. Python can be right tool for the job.
REST in Peace: Microservices vs monoliths in real-life examples
RDX
I’ve consulted on a dozen microservice projects. Some were awesome (this is the future!) and some were equally frustrating (who invented this crap?) It’s the execution that matters, not the approach. You can succeed or fail with either. Don’t just accept the love/hate propaganda out there.
Which programming language should you learn first? ʇdıɹɔsɐʌɐɾ :ɹǝʍsuɐ
Quincy Larson
Most people’s journey toward learning to program starts with a single late-night Google search. Usually it’s something like “Learn ______”. But how do they decide which language to search for?
Designing a styleguide: elements that go into building compelling products
If you look at companies like Dropbox, Google, and Twitter you’ll notice that they each have their own unique aesthetic. Across all their products, both mobile and web, there is a sense of consistency and uniformity in their design. The way that companies and products achieve consistency is through styleguides.


Here We Go!
Hello, My name is Su Kim, and I'm the Campus Director at our new DC/Arlington campus. I'm coming to The Iron Yard after years of policy advocacy in human rights and immigration reform. My passions are people and removing barriers that stand in the way of people being the best they are. I'm excited to see how we at The Iron Yard can showcase the best of technology through passionate, driven, creative, and well-equipped individuals that go on to tackle the world's problems or to realize an amazing idea.
A little introduction to our space & neighbors:
The Iron Yard is so thrilled to be among brilliant and creative minds on the 10th floor of 2231 Crystal Drive. The space where The Iron Yard will occupy is still being built out, so I've being hanging out on the other side. Here is a bit of the awesomeness of every day at Disruption Corporation HQ.
The 10th floor has an incredible view of the Ronald Reagan National Airport and is a short walking distance from Crystal City Metro Station and bus stops.
And of course, great coffee is a must!
The space is a great reminder that we are a part of something bigger, and I'm excited to see The Iron Yard and our students play a role in making DC and Crystal City an increasingly tech-friendly and tech-inspiring neighborhood.
Stay tuned for more news as we get closer to launch of our inaugural cohort. And reminder, you can still apply for our January classes! We're offering 3 courses in Mobile, Rails, and Front End Engineering.


HOME PAGE
PRODUCTS
Shirts
Skirts
Frocks
P.T. T-shirts
P.T. short
P.T. track-pants
Belts
Ties
Logos
Socks
SUPPORT
ABOUT US
FEEDBACK
ACCOUNT
Login
Register
Logout
see product
Skirts Uniform 01
$39
$45
see product
Skirts Uniform 02
$39
$45
See product
Skirts Uniform 03
$39
$45
See product
Skirts Uniform 04
$39
$45
see product
Skirts Uniform 05
$39
$45
see product
Skirts Uniform 06
$39
$45
See product
Skirts Uniform 07
$39
$45
See product
Skirts Uniform 08
$39
$45


This method is used to convert a pdf file or content, into the images.
public static List<System.Drawing.Image> Convert(byte() PdfData, string EventId = Nothing, bool DontThrowEvent = false, int32 xDpi = 200, int32 yDpi = 200)
public static List<System.Drawing.Image> Convert(string PdfFile, string EventId = Nothing, bool DontThrowEvent = false, int32 xDpi = 200, int32 yDpi = 200)
Public Shared Function Convert(PdfData As Byte(), EventId As String = Nothing, DontThrowEvent As Boolean = False, xDpi As Integer = 200, yDpi As Integer = 200) As List(Of System.Drawing.Image)
Public Shared Function Convert(PdfFile As String, EventId As String = Nothing, DontThrowEvent As Boolean = False, xDpi As Integer = 200, yDpi As Integer = 200) As List(Of System.Drawing.Image)
| Parameters | Description |
|---|---|
| PdfData | is the content to be converted in to image(s). |
| EventId | is optional. This parameter is used for callback events. If this parameter is leave nothing then it is accepted as Now.Ticks |
| DontThrowEvent | is optional. If events are not wanted to be thrown; must specify false. Otherwise parameter value is true by default. |
| xDpi, yDpi | is optional. is the unit (dot per inch) of resolution for conversion operation. |


{{ template "snippets/header.html" . }}
Protocol uses P2PKH addresses. Actions are saved using OP_RETURN.
Message data is UTF-8 encoded. For example, this action would set your name to "memo":
OP_RETURN 6d01 6d656d6f
| Action | Prefix | Values | Status | Example |
|---|---|---|---|---|
| Set name | 0x6d01 | name(77) | Implemented | Block Explorer |
| Post memo | 0x6d02 | message(77) | Implemented | Block Explorer |
| Reply to memo | 0x6d03 | txhash(30), message(45) | Implemented | Block Explorer |
| Like / tip memo | 0x6d04 | txhash(30) | Implemented | Block Explorer |
| Set profile text | 0x6d05 | message(77) | Implemented | Block Explorer |
| Follow user | 0x6d06 | address(35) | Implemented | Block Explorer |
| Unfollow user | 0x6d07 | address(35) | Implemented | Block Explorer |
| Set image base url | 0x6d08 | url(77) | Planned | |
| Attach picture | 0x6d09 | txhash(20), imghash(20), url(34) | Planned | |
| Set profile picture | 0x6d0A | imghash(16), url(61) | Planned | |
| Repost memo | 0x6d0B | txhash(20), message(63) | Planned | |
| Post topic message | 0x6d0C | topic(variable), message(74 - topic length) | Implemented | Block Explorer |
Additional actions being considered:
Note: Actions that have not been implemented are subject to change.


#include <featurerect.h>
Inherits FeatureOutputData.
The geometry of the rectangle is output in normalised image coordinates. This means that (0,0) corresponds to the top-left corner of the image, and (1,1) corresponds to the bottom-right. Note that the top-left corner of the rectangle may lie outside the image boundary, so the normalised values for the rectangles position may be outside the range [0..1]. If this rectangle is invalid (i.e. the region it represents does not exist in the image), then both width() and height() will return -1.
Definition at line 36 of file featurerect.h.
Public Member Functions | |
| FeatureRect * | clone () const |
| COREDATA_DECLARE_NAMED_OBJECT_ID (MOUTH_RECT_ID, 28) | |
| COREDATA_DECLARE_NAMED_OBJECT_ID (LEFT_EYE_RECT_ID, 27) | |
| COREDATA_DECLARE_NAMED_OBJECT_ID (RIGHT_EYE_RECT_ID, 26) | |
| COREDATA_DECLARE_NAMED_OBJECT_ID (FACE_RECT_ID, 25) | |
| FeatureRect (const FeatureRect &rhs) | |
| FeatureRect (ObjectID object_id) | |
| float | height () const |
| FeatureRect & | operator= (const FeatureRect &rhs) |
| void | printHeader (std::ostream &s) const |
| void | printLine (std::ostream &s) const |
| void | setRect (float x, float y, float width, float height) |
| float | width () const |
| float | x () const |
| float | y () const |
Protected Member Functions | |
| virtual void | appendBuffer (std::vector< uint8 > &buffer) const |
| virtual uint32 | numDataBytes () const |
| virtual void | readFromBuffer (const std::vector< uint8 > &buffer, int &read_pos_inout) |
Static Protected Member Functions | |
| static std::string | IDToName (ObjectID object_id) |
| FeatureRect | ( | ObjectID | object_id | ) | [explicit] |
| object_id | The Serializable ID of this object |
Sets the name of this object to be that returned by IDToHeaderPrefix for the supplied object_id
| virtual void appendBuffer | ( | std::vector< uint8 > & | buffer | ) | const [protected, virtual] |
| FeatureRect* clone | ( | ) | const [virtual] |
| COREDATA_DECLARE_NAMED_OBJECT_ID | ( | MOUTH_RECT_ID | , | |
| 28 | ||||
| ) |
The ID that identifies the FeaturePoint representing the mouth.
| COREDATA_DECLARE_NAMED_OBJECT_ID | ( | LEFT_EYE_RECT_ID | , | |
| 27 | ||||
| ) |
The ID that identifies the FeaturePoint representing the left eye.
| COREDATA_DECLARE_NAMED_OBJECT_ID | ( | RIGHT_EYE_RECT_ID | , | |
| 26 | ||||
| ) |
The ID that identifies the FeaturePoint representing the right eye.
| COREDATA_DECLARE_NAMED_OBJECT_ID | ( | FACE_RECT_ID | , | |
| 25 | ||||
| ) |
The ID that identifies the FeatureRect representing the face.
| float height | ( | ) | const |
| static std::string IDToName | ( | ObjectID | object_id | ) | [static, protected] |
| virtual uint32 numDataBytes | ( | ) | const [protected, virtual] |
| void printHeader | ( | std::ostream & | s | ) | const [virtual] |
| void printLine | ( | std::ostream & | s | ) | const [virtual] |
| virtual void readFromBuffer | ( | const std::vector< uint8 > & | buffer, | |
| int & | read_pos_inout | |||
| ) | [protected, virtual] |
| void setRect | ( | float | x, | |
| float | y, | |||
| float | width, | |||
| float | height | |||
| ) |
Set the bounds of the rectangle.
| x | X-coordinate of the top-left hand corner in normalised image coordinates | |
| y | Y-coordinate of the top-left hand corner in normalised image coordinates | |
| width | The width of the rectangle in normalised image coordinates | |
| height | The height of the rectangle in normalised image coordinates |
| float width | ( | ) | const |
| float x | ( | ) | const |
| float y | ( | ) | const |


Security vs. Compatibility - Fight!
How do you secure a web page for private use? Easy if you ask me, use client certificates and a secure connection over TLS, preferably with a signed certificate.
So far so great, the website is pretty secure know as only someone with the right certificate can visit it. But what about compatibility with client programs? Well - fuck!
Turns out, most endpoint clients don't really support additional authentication mechanisms. In a best case scenario, one login with a strong password should be sufficient to secure something. However, I like to add additional layers of security to prevent possible flaws in the web application from ruining my day.
Here are some additional layers we could use to increase security.
- HTTP Proxy - Add additional authentication running the webapp behind a web proxy
- Client Certificates - The secure connection to the server requires the client to provide a valid certificate before browsing the site
- Basic Auth - Webservers often offer a basic authentication mechanism, requiring a valid login to connect to the requested site
- VPN - Running the web application inside a private network, forcing users to be connected to the network either physically or virtually.
The first three share the same problem, not all client software supports these authentication mechanisms. If any is supported at all it would be the proxy, but even that's not available everywhere. Plus, you'd need to set a rule in your browser to only use the proxy for that single domain, otherwise you're browsing everywhere via proxy, which can have a pretty hefty impact on your browsing performance.
Client certificates and basic-auth are easy to setup and also pretty secure, providing that the underlying connection is not flawed. However, they enjoy even less support in client software except for common browsers, which can put you in the situation of having to choose between the client or the security layer.
"You could always use SSH and open a tunnel between the web application and the client!" - that's a dirty hack! We're not going to talk about that! It works, yes. But I don't see it as a good, permanent solution.
It seems to me, that VPN is the clear winner here. It's independent of client software and can be run in split-tunnel mode. This is pretty much all theory though, spun together in that head of mine. I would like to know If any of my potential readers have thoughts (or dare I even say opinions) on this, especially the use of VPN as alternative to the other solutions.
Tweet to @HashtagsSecurity or use the comment system below.


This dialog lets you to tweak the logging level of java.util.logger.Logger
in the server process. This is often useful for getting more information out of Jenkins for trouble-shooting.
In Java, loggers are identified by their names, such as "hudson.model.Project", which designates the name of the class where the logging message comes from. Loggers are also organized into a hierarchy in the same way classes are organized into packages, so "hudson.model" and "hudson" are the ancestor loggers for "hudson.model.Project".
Logging level is a property for individual logger, but most loggers are by default configured to inherit its logging level from the parent. This means that except the loggers where the logging levels are configured, you can affect the logging level of a whole package by simplying setting the logging level for that package.
Refer to Jenkins source code or the mailing list archive for what logger corresponds to what feature.
See Java Logging Overview for more about the java.util.logging
package.


Discord
Sign in complete.
If you're not already signed into the server use the link below to get invited. (or right click and copy-link
for the Windows/OSX Client)
Once you're in chat copy and paste the entire line below to have the bot add you to the correct roles.
!{{ .Name }} {{ .Auth }}


Companies
application-Level Profile Semantics (ALPS) for companies
JSON schema companies
All companies (first page)
All companies with sorting (by id), paging (first page with size 20)
All companies with sorting (by name), paging (first page with size 20)
A single company by its internal id (c07d7015-4c44-470a-aa6c-5a048a719260)
Find one by external ID (s-00006204)
Find all (JSON query) by postal code (91234)
Employees
application-Level Profile Semantics (ALPS) for employees
JSON schema employees
All employees (first page)
All employees with sorting (by surname), paging (first page with size 100)
All employees with sorting (by dateOfBirth), paging (first page with size 100)
A single employee by his/her internal id (f977c2ff-eb95-40e7-8264-f73d9bae9934)
A company of an employee by his/her internal id (f977c2ff-eb95-40e7-8264-f73d9bae9934)
Find all by company (m-00000776)
Find all by company (m-00000776) and surname (Fischer)
Find all (JSON query) by numberOfChildren (2)
Actuator
metrics
prometheus
http.server.requests


Marid is a music platform that beautifully showcases the works of independent artists.
Enter your email below to get notified when we launch.


ColorPicker is an input component to select a color.
ColorPicker uses ngModel directive to bind a value.
Default color format to use in value binding is "hex" and other possible values are "rgb" and "hsb". Example below has 3 colorpickers having default values with different formats.
ColorPicker can be displayed as inline or as an overlay (default) using the "inline" property.
Colorpicker can be used in a model driven form as well.
Transition of the open and hide animations can be customized using the showTransitionOptions and hideTransitionOptions properties, example below disables the animations altogether.
| Name | Type | Default | Description |
|---|---|---|---|
| style | string | null | Inline style of the component. |
| styleClass | string | null | Style class of the component. |
| inline | boolean | false | Whether to display as an overlay or not. |
| format | string | hex | Format to use in value binding, supported formats are "hex", "rgb" and "hsb". |
| appendTo | any | null | Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name). |
| tabindex | number | null | Index of the element in tabbing order. |
| disabled | boolean | false | When present, it specifies that the component should be disabled. |
| inputId | string | null | Identifier of the focus input to match a label defined for the dropdown. |
| baseZIndex | number | 0 | Base zIndex value to use in layering. |
| autoZIndex | boolean | true | Whether to automatically manage layering. |
| showTransitionOptions | string | .12s cubic-bezier(0, 0, 0.2, 1) | Transition options of the show animation. |
| hideTransitionOptions | string | .1s linear | Transition options of the hide animation. |
| Name | Parameters | Description |
|---|---|---|
| onChange | event.originalEvent: Browser event event.value: Selected color |
Callback to invoke when a color is selected. |
| onShow | event: Event object | Callback to invoke when popup is shown. |
| onHide | event: Event object | Callback to invoke when popup is hidden. |
Following is the list of structural style classes, for theming classes visit theming page.
| Name | Element |
|---|---|
| p-colorpicker | Container element. |
| p-colorpicker-overlay | Container element in overlay mode. |
| p-colorpicker-preview | Preview input in overlay mode. |
| p-colorpicker-panel | Panel element of the colorpicker. |
| p-colorpicker-content | Wrapper that contains color and hue sections. |
| p-colorpicker-color-selector | Color selector container. |
| p-colorpicker-color | Color element. |
| p-colorpicker-color-handle | Handle of the color element. |
| p-colorpicker-hue | Hue slider. |
| p-colorpicker-hue-handle | Handle of the hue slider. |
None.


Looks like the page you were looking for isn't here.
Maybe you should try going back to the previous page?
Or, if you'd like, you can go to the index.


person
Profile
Display Name
Authentication Method
Profile Picture
Amend Details
home
Institution
Link an Institution
Set Default Insitution
settings
Preferences
Default Infratructure
Newsletters
Region of Interest
Domain
Default Themes
room_service
Services
Request Personal Profile
Delete Personal Data
Display Name
This will be a little widget helping you to set your display name.
Suggest a Name
Name History


Yamaha 4-Operator FM Synthesizer Family
Single Patch Editor
This patch editor is meant to work with a variety of Yamaha 4-Op FM synthesizers. However it has only been tested with certain ones. If you try it with your synthesizer and it doesn't work, please contact me<EMAIL_ADDRESS>and I will work with you to modify it to get it working. Status:
- DX9 Incompatible. Instead, use the DX7 Editor.
- FB-01 Incompatible. Instead, use the FB-01 Editor.
- DX21 Should work, but untested.
- DX27, DX100 Should work, but untested.
- TX81Z Works.
- DX11/V2 Works. (The V2 was the Japanese brand name of the DX11).
- TQ5 Works.
- YS100, YS200, B200 Should work, but untested.
- V50 Works, mostly. Shifting to Lo doesn't change the displayed frequency values to LO values instantly, but moving the dials still does the right thing.
- WT11, DS55 Unknown.
Communicating with Edisyn
Set your synthesizer's receive and transmit channel to the same thing (perhaps Channel 1), and set Edisyn's Send and Receive channels to that as well. Set the program change to be Com (Common). Make sure that Sysex reception and transmission are turned on and that memory protect is off.
Setting the Synthesizer Type
The 4-Op synthesizers differ from one another in how their memory is organized (banks, patches, etc.), and how they respond to change-patch requests. You have to let Edisyn know what kind of synthesizer you're using or else it'll make the wrong kind of requests.
It's also important to set the right synthesizer type before uploading or saving a patch, particularly if you have the V50; or otherwise not all patch information may be uploaded or saved.
About the TQ-5, YS100, YS200 and B200
These units have their own special effects units. Some effects have legal time values from 0 to 40. Others (echoes and delays) extend these time values from 0 to 75. Edisyn does not try to change the bounds of the values depending on the effect you have chosen: instead if you choose a value from 41 to 75, Edisyn will display a little statement that this is for echoes and delays only.
Additionally, there is one special effect that is not available from the front panel, but is available over sysex: OFF! Incredibly this is only an option over sysex. Don't ask.
About the V50
The V50 editor is not completed yet, and is in a partial state. In particular, if you Shift to Lo, Fixed frequency mode needs to be selected too, and the proper frequencies are not shown instantly. However, if you change the knobs, they'll affect the Lo parameters appropriately.
Per-Synthesizer Parameters
Some 4-Op synthesizers have parameters and options that others do not. Various parameters in this patch editor are labeled to indicate this. You may see: 21 for the DX21, 27 for the DX27, 100 for the DX100, 11 for the DX11/V2, TX for the TX81Z, the symbol > which indicates a group of later synthesizers, notably the TQ5, YS100, YS200, and B200, and finally V for the V50.
Bank Sysex
This patch editor knows about bank sysex messages (which group together multiple patches) as well as single-patch sysex messages. If Edisyn loads or receives a bank sysex message, you will be given the option to edit a patch from it, to save the whole bank sysex, or to upload the whole bank sysex.
About the Menu
If you mutate or recombine patches (using randomize, merge, hill-climb, or nudge) it may result in unfortunate operator frequency results. The Restrict Mutated Frequency Ratios... menu lets you restrict mutation or recombination of operator frequecies so that they only result in integer values or only to coarse-tune settings (either way, no fine tune). I suggest integers. I strongly suggest you also edit the mutation parameters to remove Fixed Frequency, Detune, and Frequency Ratio Fine from every operator, and also Transpose from the global settings.
Selecting a Patch Bank and Number
Different 4-Op synths have different organizations of memory, and so differ in the banks and patch numbers you can access. Specifically:
- DX21 Single internal bank, 32 patches, plus 128 voice ROM memory. The bank is divided on the front panel into "Bank A" and "Bank B", but it's really just one bank. The ROM cannot be accessed without loading it into internal memory, erasing an existing internal patch (or all of them), so I have elected not to do that automatically. You will have to manually load a ROM patch into internal memory in order for Edisyn to access it.
- DX27, DX100 Single internal bank + 4 "banks" (A B C D), 24 patches each. The "banks" are just links to either internal patches or to a set of 192 presets in ROM. Edisyn can't directly access a ROM patch: to download a ROM patch, you'll have to manually set up slot in a "bank" which points to it.
- DX11/V2, TX81Z Single internal bank + 4 ROM preset banks, 32 patches each.
- TQ5, YS100, YS200, B200 Single internal bank + preset bank + card bank, 100 patches each.
- V50 Single internal bank + preset bank + card bank, 100 patches each.
- WT11, DS55 Unknown.
Gotchas
-
Most 4-op synthesizers have no way to write individual patches from sysex: you will have to send to the current patch from Edisyn, then manually save it to your desired patch location on the synthesizer itself.
- The 4-op family is very unusual in that patches aren't expressed with single sysex commands, but a sequence of them (so-called VCED, ACED, ACED2, ACED3, and EFEDS sysex commands). Thus when you save a patch to a file in Edisyn, you'll actually be saving multiple sysex commands concatenated together. You should be aware of this in case you try sending this patch later from some librarian software or editor (it shouldn't be a problem).
Additionally, if another editor has saved to a single file multiple single patches broken out as these sequences, Edisyn cannot read any more than the first one. Thankfully this is unusual; normally groups of patches are saved to a file in "bank" (or "VMEM") format. Edisyn can read files with multiple VMEM patches.
- On the TX81Z and DX11/V2 (but not other 4-op synths) changing patches has bugs. I think I have a method which should work, but if strange things happen, let me know.
- When changing patches, the TX81Z will read "MIDI Buffer Full" and not change its display even if the patch has changed. Press almost any button and it'll reset the display.
Librarian Support
The bank structure in the librarian will depend on the kind of 4-op machine you have set Edisyn to. Once you have opened the librarian, it is locked to that kind of machine -- to use a librarian for a different kind of machine, you'll need to open a new patch editor.
The TQ5 and later machines have 100-patch banks: but I do not know any way to upload more than the first 32 patches to them.
The Yamaha 4-Op machines cannot write individual patches: if you attempt to do so from the librarian you'll be told that you cannot. Instead, you should write the entire bank.
Edisyn can quick-request a bank from some 4-Op machines (notably the TX81Z) via Request Bank from Synth. This is a lot faster than the patch-by-patch request method in Download Bank from Synth. So try it out; it might work!
Microtuning
The TX81Z can store microtuning information from the user, and it also has several preset tuning. Though it does not discuss this in the manual, it is my understanding that the DX11/V2 also has the user tuning slot as well. Edisyn's MIDI Tuning Standard editor has a special facility to send and receive tuning information to these synths.
Thanks
Thanks to Matt Gregory<EMAIL_ADDRESS>for his considerable help in debugging this patch editor. Thanks also to Jesse Guessford and the GMU School of Music. And thanks to Thor Zollinger<EMAIL_ADDRESS>for his help in getting the DX11 editor working properly. Thanks to Vasilis<EMAIL_ADDRESS>for reporting and testing bugs in the TQ-5. Thanks to Martin Tarenskeen<EMAIL_ADDRESS>for envelope revisions. Finally, thanks to Jay Lifton<EMAIL_ADDRESS>for help on the V50.
| By
| Sean Luke
|
| Date
| TX81Z Version: September 2017
4-Op Version: December 2019
|


I'm off to PloneConf today. If you see me there say hi. The word on the street is that the talk on "Open Sourcing Activism" is going to be the bomb.
Since I said "Hi" at the conference, I'll say "Hi, again" here in your blog. That Eben Moglen talk was definitely set up the bomb.
Looking forward to having you at the BBQ Sprint in March.


CodeName maps the codes in this packages to human-readable strings
var CodeName = map[int32]string{ 0: "OK", 1: "UNKNOWN", 2: "CONNECTION_FAILED", 3: "ENDORSEMENT_MISMATCH", 4: "EMPTY_CERT", 5: "TIMEOUT", 6: "NO_PEERS_FOUND", 7: "MULTIPLE_ERRORS", 8: "SIGNATURE_VERIFICATION_FAILED", 9: "MISSING_ENDORSEMENT", 11: "QUERY_ENDORSERS", 12: "GENERIC_TRANSIENT", 21: "PREMATURE_CHAINCODE_EXECUTION", 22: "CHAINCODE_ALREADY_LAUNCHING", 23: "CHAINCODE_NAME_NOT_FOUND", }
GroupName maps the groups in this packages to human-readable strings
var GroupName = map[int32]string{ 0: "Unknown", 1: "gRPC Transport Status", 2: "HTTP Transport Status", 3: "Endorser Server Status", 4: "Event Server Status", 5: "Orderer Server Status", 6: "Fabric CA Server Status", 7: "Endorser Client Status", 8: "Orderer Client Status", 9: "Client Status", 10: "Chaincode status", 11: "Discovery status", 12: "Test status", }
func ToFabricCommonStatusCode(c int32) common.Status
ToFabricCommonStatusCode cast to common.Status
func ToGRPCStatusCode(c int32) grpcCodes.Code
ToGRPCStatusCode cast to gRPC status code
func ToOrdererStatusCode(c int32) common.Status
ToOrdererStatusCode cast to peer status
func ToPeerStatusCode(c int32) common.Status
ToPeerStatusCode cast to peer status
func ToTransactionValidationCode(c int32) pb.TxValidationCode
ToTransactionValidationCode cast to transaction validation status code
Code represents a status code
type Code uint32
const ( // OK is returned on success. OK Code = 0 // Unknown represents status codes that are uncategorized or unknown to the SDK Unknown Code = 1 // ConnectionFailed is returned when a network connection attempt from the SDK fails ConnectionFailed Code = 2 // EndorsementMismatch is returned when there is a mismatch in endorsements received by the SDK EndorsementMismatch Code = 3 // EmptyCert is return when an empty cert is returned EmptyCert Code = 4 // Timeout operation timed out Timeout Code = 5 // NoPeersFound No peers were discovered/configured NoPeersFound Code = 6 // MultipleErrors multiple errors occurred MultipleErrors Code = 7 // SignatureVerificationFailed is when signature fails verification SignatureVerificationFailed Code = 8 // MissingEndorsement is if an endorsement is missing MissingEndorsement Code = 9 // QueryEndorsers error indicates that no endorser group was found that would // satisfy the chaincode policy QueryEndorsers Code = 11 // GenericTransient is generally used by tests to indicate that a retry is possible GenericTransient Code = 12 // PrematureChaincodeExecution indicates that an attempt was made to invoke a chaincode that's // in the process of being launched. PrematureChaincodeExecution Code = 21 // ChaincodeAlreadyLaunching indicates that an attempt for multiple simultaneous invokes was made to launch chaincode ChaincodeAlreadyLaunching Code = 22 // ChaincodeNameNotFound indicates that an that an attempt was made to invoke a chaincode that's not yet initialized ChaincodeNameNotFound Code = 23 )
func ToSDKStatusCode(c int32) Code
ToSDKStatusCode cast to fabric-sdk-go status code
func (c Code) String() string
String representation of the code
func (c Code) ToInt32() int32
ToInt32 cast to int32
Group of status to help users infer status codes from various components
type Group int32
const ( // UnknownStatus unknown status group UnknownStatus Group = iota // GRPCTransportStatus is the status associated with requests made over // gRPC connections GRPCTransportStatus // HTTPTransportStatus is the status associated with requests made over HTTP // connections HTTPTransportStatus // EndorserServerStatus status returned by the endorser server EndorserServerStatus // EventServerStatus status returned by the event service EventServerStatus // OrdererServerStatus status returned by the ordering service OrdererServerStatus // FabricCAServerStatus status returned by the Fabric CA server FabricCAServerStatus // EndorserClientStatus status returned from the endorser client EndorserClientStatus // OrdererClientStatus status returned from the orderer client OrdererClientStatus // ClientStatus is a generic client status ClientStatus // ChaincodeStatus defines the status codes returned by chaincode ChaincodeStatus // DiscoveryServerStatus status returned by the Discovery Server DiscoveryServerStatus // TestStatus is used by tests to create retry codes. TestStatus )
func (g Group) String() string
Status provides additional information about an unsuccessful operation performed by fabric-sdk-go. Essentially, this object contains metadata about an error returned by the SDK.
type Status struct { // Group status group Group Group // Code status code Code int32 // Message status message Message string // Details any additional status details Details []interface{} }
func FromError(err error) (s *Status, ok bool)
FromError returns a Status representing err if available, otherwise it returns nil, false.
func New(group Group, code int32, msg string, details []interface{}) *Status
New returns a Status with the given parameters
func NewFromExtractedChaincodeError(code int, message string) *Status
NewFromExtractedChaincodeError returns Status when a chaincode error occurs
func NewFromGRPCStatus(s *grpcstatus.Status) *Status
NewFromGRPCStatus new Status from gRPC status response
func NewFromProposalResponse(res *pb.ProposalResponse, endorser string) *Status
NewFromProposalResponse creates a status created from the given ProposalResponse
func (s *Status) Error() string


User Name
OFS
Document Management System
Tracking System
OFS
DASHBOARD
MANAGE
Item1
Item2
Item3
REPORTS
10
Notifications
#17 Hard Copy Requests
Delivery Challan
Purchase Order
View All
Welcome
MANAGE PENDING C FORMS
Please select a Date Range
From:
To:
Please search by entering any of customer name, number or order number
Customer Name:
Number:
Order Number:
Search
Sales Order Number
Delivery Challan Created
Upload/Download C Form
SO/1617/123
#5
Document Type
Option 1
Option 2
Option 3
Upload
Download
SO/1617/123
#5
Document Type
Option 1
Option 2
Option 3
Upload
Download
SO/1617/123
#5
Document Type
Option 1
Option 2
Option 3
Upload
Download
SO/1617/123
#5
Document Type
Option 1
Option 2
Option 3
Upload
Download
SO/1617/123
#5
Document Type
Option 1
Option 2
Option 3
Upload
Download
Export to Excel


Antidote provides a library of CRDTs. The interface of these CRDTs specify the operations and the parameters that can be
used for inspection and modification of shared objects. In the following, we specify the supported
{operation(), op_param()}
pair for each of the supported CRDTs. The first element in the tuple specifies the update operation, and the second
item indicates the corresponding parameters.
{increment}
{decrement}
{add,any()}
{remove,any()}
{assign}
{reset}


MSGFMT(1) GNU MSGFMT(1) NAME msgfmt - compile message catalog to binary format SYNOPSIS msgfmt [OPTION] filename.po ... DESCRIPTION Generate binary message catalog from textual translation description. Mandatory arguments to long options are mandatory for short options too. Similarly for optional arguments. Input file location: filename.po ... input files -D, --directory=DIRECTORY add DIRECTORY to list for input files search If input file is -, standard input is read. Operation mode: -j, --java Java mode: generate a Java ResourceBundle class --java2 like --java, and assume Java2 (JDK 1.2 or higher) --csharp C# mode: generate a .NET .dll file --csharp-resources C# resources mode: generate a .NET .resources file --tcl Tcl mode: generate a tcl/msgcat .msg file --qt Qt mode: generate a Qt .qm file Output file location: -o, --output-file=FILE write output to specified file --strict enable strict Uniforum mode If output file is -, output is written to standard output. Output file location in Java mode: -r, --resource=RESOURCE resource name -l, --locale=LOCALE locale name, either language or language_COUNTRY -d DIRECTORY base directory of classes directory hierarchy The class name is determined by appending the locale name to the resource name, separated with an underscore. The -d option is mandatory. The class is written under the specified directory. Output file location in C# mode: -r, --resource=RESOURCE resource name -l, --locale=LOCALE locale name, either language or language_COUNTRY -d DIRECTORY base directory for locale dependent .dll files The -l and -d options are mandatory. The .dll file is written in a sub‐ directory of the specified directory whose name depends on the locale. Output file location in Tcl mode: -l, --locale=LOCALE locale name, either language or language_COUNTRY -d DIRECTORY base directory of .msg message catalogs The -l and -d options are mandatory. The .msg file is written in the specified directory. Input file syntax: -P, --properties-input input files are in Java .properties syntax --stringtable-input input files are in NeXTstep/GNUstep .strings syntax Input file interpretation: -c, --check perform all the checks implied by --check-format, --check-header, --check-domain --check-format check language dependent format strings --check-header verify presence and contents of the header entry --check-domain check for conflicts between domain directives and the --out‐ put-file option -C, --check-compatibility check that GNU msgfmt behaves like X/Open msgfmt --check-accelerators[=CHAR] check presence of keyboard accelerators for menu items -f, --use-fuzzy use fuzzy entries in output Output details: -a, --alignment=NUMBER align strings to NUMBER bytes (default: 1) --no-hash binary file will not include the hash table Informative output: -h, --help display this help and exit -V, --version output version information and exit --statistics print statistics about translations -v, --verbose increase verbosity level AUTHOR Written by Ulrich Drepper. REPORTING BUGS Report bugs to<EMAIL_ADDRESS>COPYRIGHT Copyright © 1995-1998, 2000-2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO The full documentation for msgfmt is maintained as a Texinfo manual. If the info and msgfmt programs are properly installed at your site, the command info msgfmt should give you access to the complete manual. GNU gettext-tools 0.18.1 June 2010 MSGFMT(1)


https://networkx.github.io/
NetworkX. Software for complex networks.
PIP (in a virtual environment) pip install networkx APT (for the entire computer) Debian packages: python-networkx, python3-networkx, and dependencies.
NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
import networkx as nx G = nx.Graph() # an empty undirected graph # https://mathworld.wolfram.com/LollipopGraph.html # 1---2 (3,1)-lollipop graph # | / # 3---4 for node in (1, 2, 3, 4): G.add_node(node) for (a, b) in [(1, 2), (1, 3), (2, 3), (3, 4)]: G.add_edge(a, b) G.number_of_nodes() # 4 G.number_of_edges() # 4 G.nodes # NodeView((1, 2, 3, 4)) G.nodes() # NodeView((1, 2, 3, 4)) list(G.nodes) # [1, 2, 3, 4] G.nodes(data=True) # NodeDataView({1: {}, 2: {}, 3: {}, 4: {}}) G.nodes.data() # NodeDataView({1: {}, 2: {}, 3: {}, 4: {}}) list(G.nodes.data()) # [(1, {}), (2, {}), (3, {}), (4, {})] G.edges # EdgeView([(1, 2), (1, 3), (2, 3), (3, 4)]) G.edges() # EdgeView([(1, 2), (1, 3), (2, 3), (3, 4)]) list(G.edges) # [(1, 2), (1, 3), (2, 3), (3, 4)] G.edges(data=True) # EdgeDataView([(1, 2, {}), (1, 3, {}), (2, 3, {}), (3, 4, {})]) G.edges.data() # EdgeDataView([(1, 2, {}), (1, 3, {}), (2, 3, {}), (3, 4, {})]) list(G.edges.data()) # [(1, 2, {}), (1, 3, {}), (2, 3, {}), (3, 4, {})] G[3] # AtlasView({1: {}, 2: {}, 4: {}}) list(G[3]) # [1, 2, 4] G.degree # DegreeView({1: 2, 2: 2, 3: 3, 4: 1}) G.degree() # DegreeView({1: 2, 2: 2, 3: 3, 4: 1}) list(G.degree) # [(1, 2), (2, 2), (3, 3), (4, 1)] G.degree[3] # 3 deg_max = max(deg for (node, deg) in G.degree()) # 3 deg_max_list = [node for (node, deg) in G.degree() if deg == deg_max] # [3]
import matplotlib.pyplot as plt nx.draw(G) #nx.draw(G, with_labels=True, font_weight='bold') # Selected keywords: # with_labels=True - draw labels on the nodes # node_size=300 - size of nodes (scalar or array) # node_shape='o' - the shape of the node (string), one of ‘so^>v<dph8’ # node_color='r' - color or array of colors [node_color=(0.5,0.5,0.5)] # edge_color='k' - color or array of colors # width=1.0 - line width of edges (float) # style='solid' - edge line style (solid|dashed|dotted|dashdot) # cmap=None - colormap for mapping intensities of nodes # edge_cmap=None - colormap for mapping intensities of edges # font_size=12 - font size for text labels (int) # font_color='k' - font color (string) # font_weight='normal' - font weight (string) # font_family='sans-serif' - font family (string) plt.show()
https://networkx.org/documentation/stable/reference/generators.html
P_6 = nx.path_graph(6) C_7 = nx.cycle_graph(7) K_5 = nx.complete_graph(5) K_3_5 = nx.complete_bipartite_graph(3, 5) barbell = nx.barbell_graph(10, 10) lollipop = nx.lollipop_graph(10, 20) gnm = nx.gnm_random_graph(n=10, m=20) # n nodes, m edges regular = nx.random_regular_graph(d=5, n=10) # random d-regular graph on n nodes petersen = nx.petersen_graph() tutte = nx.tutte_graph() maze = nx.sedgewick_maze_graph() tetra = nx.tetrahedral_graph()


Lake Saif-ul-Malook
Saiful Muluk (Urdu: جھیل سیف الملوک) is a mountainous lake located at the northern end of the Kaghan Valley, about eight kilometers north of Naran. It is in the north east of Mansehra District in the Khyber-Pakhtunkhwa province, Pakistan. At an elevation of 3,224 m (10,578 feet) above sea level, it is well above the tree line, and is one of the highest lakes in Pakistan.
Saiful Muluk was framed by glacial moraines that hindered the water of the stream going through the valley. The Kaghan Valley was formed in the greater Pleistocene Period going back very nearly 300,000 years when the area was covered with ice. Rising temperatures and retreating icy masses left a huge sorrow where icy masses once stood. Liquefying water gathered into the lake.
The lake has rich eco-assorted qualities and holds numerous types of blue green algae. Large trout are found in the lake, weighing up to around seven kilograms. Around 26 types of vascular plant exist in the territory, with Asteraceae the most normally discovered specie. Different species regularly found in the area are: Ranunculaceae, Compositae, Cruciferae, Gramineae, Apiaceae, Leguminosae, Scrophulariaceae and Polygonaceae.


| 1 | package fr.sii.ogham.assertion.email; | |
| 2 | ||
| 3 | import static fr.sii.ogham.assertion.AssertionHelper.assertThat; | |
| 4 | import static fr.sii.ogham.assertion.OghamAssertions.usingContext; | |
| 5 | import static fr.sii.ogham.helper.email.EmailUtils.getAlternativePart; | |
| 6 | import static fr.sii.ogham.helper.email.EmailUtils.getAttachments; | |
| 7 | import static fr.sii.ogham.helper.email.EmailUtils.getBodyPart; | |
| 8 | import static java.util.Arrays.asList; | |
| 9 | ||
| 10 | import java.io.IOException; | |
| 11 | import java.util.ArrayList; | |
| 12 | import java.util.Arrays; | |
| 13 | import java.util.Collection; | |
| 14 | import java.util.List; | |
| 15 | import java.util.function.Predicate; | |
| 16 | ||
| 17 | import javax.mail.BodyPart; | |
| 18 | import javax.mail.Message; | |
| 19 | import javax.mail.MessagingException; | |
| 20 | import javax.mail.Multipart; | |
| 21 | import javax.mail.Part; | |
| 22 | import javax.mail.internet.InternetAddress; | |
| 23 | import javax.mail.internet.MimeMessage.RecipientType; | |
| 24 | ||
| 25 | import org.hamcrest.Matcher; | |
| 26 | import org.junit.Assert; | |
| 27 | ||
| 28 | import fr.sii.ogham.assertion.HasParent; | |
| 29 | import fr.sii.ogham.assertion.context.SingleMessageContext; | |
| 30 | import fr.sii.ogham.helper.email.AnyPredicate; | |
| 31 | import fr.sii.ogham.helper.email.FileNamePredicate; | |
| 32 | ||
| 33 | public class EmailAssert
 extends HasParent
 { | |
| 34 | /** | |
| 35 | * The list of messages that will be used for assertions | |
| 36 | */ | |
| 37 | private final List<? extends Message> actual; | |
| 38 | ||
| 39 | public EmailAssert(Message actual, P parent) { | |
| 40 | this(Arrays.asList(actual), parent); | |
| 41 | } | |
| 42 | ||
| 43 | public EmailAssert(List<? extends Message> actual, P parent) { | |
| 44 | super(parent); | |
| 45 | this.actual = actual; | |
| 46 | } | |
| 47 | ||
| 48 | /** | |
| 49 | * Make assertions on the subject of the message(s). | |
| 50 | * | |
| 51 | *
 | |
| 52 | * .receivedMessages().message(0) | |
| 53 | * .subject(is("foobar")) | |
| 54 | *
 | |
| 55 | * | |
| 56 | * Will check if the subject of the first message is exactly "foobar". | |
| 57 | * | |
| 58 | *
 | |
| 59 | * .receivedMessages().forEach() | |
| 60 | * .subject(is("foobar")) | |
| 61 | *
 | |
| 62 | * | |
| 63 | * Will check that the subject of every message is exactly "foobar". | |
| 64 | * | |
| 65 | * @param matcher | |
| 66 | * the assertion to apply on subject | |
| 67 | * @return the fluent API for chaining assertions on received message(s) | |
| 68 | */ | |
| 69 | public EmailAssert
 subject(Matcher<String> matcher) { | |
| 70 | try { | |
| 71 |
2
1. subject : All methods instructions replaced by: return null; → NO_COVERAGE 2. subject : All methods instructions replaced by: return null; → KILLED |
String desc = "subject of message ${messageIndex}"; |
| 72 | int index = 0; | |
| 73 | for (Message message : actual) { | |
| 74 | assertThat(message.getSubject(), usingContext(desc, new SingleMessageContext(index++), matcher)); | |
| 75 | } | |
| 76 | return this; | |
| 77 | } catch (MessagingException e) { | |
| 78 | throw new AssertionError("Failed to get subject of messsage", e); | |
| 79 | } | |
| 80 | } | |
| 81 | ||
| 82 | /** | |
| 83 | * Make assertions on the body of the message(s) using fluent API. The body | |
| 84 | * of the message is either: | |
| 85 | *
 | |
| 86 | *
The part of the message when it contains only one part
 | |
| 87 | *
The part with text or HTML mimetype if only one part with one of that | |
| 88 | * mimetype
 | |
| 89 | *
The second part with text or HTML mimetype if there are two text or | |
| 90 | * HTML parts
 | |
| 91 | *
 | |
| 92 | * | |
| 93 | *
 | |
| 94 | * .receivedMessages().message(0).body() | |
| 95 | * .contentAsString(is("email body")) | |
| 96 | * .contentType(is("text/plain")) | |
| 97 | *
 | |
| 98 | * | |
| 99 | * Will check if the body content of the first message is "email body" and | |
| 100 | * content-type of the first message is "text/plain". | |
| 101 | * | |
| 102 | *
 | |
| 103 | * .receivedMessages().forEach().body() | |
| 104 | * .contentAsString(is("email body")) | |
| 105 | * .contentType(is("text/plain")) | |
| 106 | *
 | |
| 107 | * | |
| 108 | * Will check that the body content of every message is "email body" and | |
| 109 | * content-type of every message is "text/plain". | |
| 110 | * | |
| 111 | * @return the fluent API for chaining assertions on received message(s) | |
| 112 | */ | |
| 113 | public PartAssert<EmailAssert
> body() { | |
| 114 | try { | |
| 115 |
2
1. body : All methods instructions replaced by: return null; → NO_COVERAGE 2. body : All methods instructions replaced by: return null; → KILLED |
int index = 0; |
| 116 | List<PartWithContext> bodies = new ArrayList<>(); | |
| 117 | for (Message message : actual) { | |
| 118 | bodies.add(new PartWithContext(getBodyPart(message), "body", new SingleMessageContext(index++))); | |
| 119 | } | |
| 120 | return new PartAssert<>(bodies, this); | |
| 121 | } catch (MessagingException e) { | |
| 122 | throw new AssertionError("Failed to get body of messsage", e); | |
| 123 | } | |
| 124 | } | |
| 125 | ||
| 126 | /** | |
| 127 | * Make assertions on the alternative part of the message(s) using fluent | |
| 128 | * API. The alternative is useful when sending HTML email that may be | |
| 129 | * unreadable on some email clients. For example, a smartphone will display | |
| 130 | * the 2 or 3 first lines as a summary. Many smartphones will take the HTML | |
| 131 | * message as-is and will display HTML tags instead of content of email. | |
| 132 | * Alternative is used to provide a textual visualization of the message | |
| 133 | * that will be readable by any system. | |
| 134 | * | |
| 135 | *
 | |
| 136 | * The alternative of the message is either: | |
| 137 | *
 | |
| 138 | *
null if there is only one part
 | |
| 139 | *
null if there is only one text or HTML part
 | |
| 140 | *
the first part if there are more than one text or HTML part
 | |
| 141 | *
 | |
| 142 | * | |
| 143 | *
 | |
| 144 | * .receivedMessages().message(0).alternative() | |
| 145 | * .contentAsString(is("email alternative")) | |
| 146 | * .contentType(is("text/plain")) | |
| 147 | *
 | |
| 148 | * | |
| 149 | * Will check if the body content of the first message is "email | |
| 150 | * alternative" and content-type of the first message is "text/plain". | |
| 151 | * | |
| 152 | *
 | |
| 153 | * .receivedMessages().forEach().alternative() | |
| 154 | * .contentAsString(is("email alternative")) | |
| 155 | * .contentType(is("text/plain")) | |
| 156 | *
 | |
| 157 | * | |
| 158 | * Will check that the body content of every message is "email alternative" | |
| 159 | * and content-type of every message is "text/plain". | |
| 160 | * | |
| 161 | * @return the fluent API for chaining assertions on received message(s) | |
| 162 | */ | |
| 163 | public PartAssert<EmailAssert
> alternative() { | |
| 164 | try { | |
| 165 |
2
1. alternative : All methods instructions replaced by: return null; → NO_COVERAGE 2. alternative : All methods instructions replaced by: return null; → KILLED |
int index = 0; |
| 166 | List<PartWithContext> bodies = new ArrayList<>(); | |
| 167 | for (Message message : actual) { | |
| 168 | bodies.add(new PartWithContext(getAlternativePart(message), "alternative", new SingleMessageContext(index++))); | |
| 169 | } | |
| 170 | return new PartAssert<>(bodies, this); | |
| 171 | } catch (MessagingException e) { | |
| 172 | throw new AssertionError("Failed to get body of messsage", e); | |
| 173 | } | |
| 174 | } | |
| 175 | ||
| 176 | /** | |
| 177 | * Make assertions on the body of the message(s). The body of the message is | |
| 178 | * either: | |
| 179 | *
 | |
| 180 | *
The part of the message when it contains only one part
 | |
| 181 | *
The part with text or HTML mimetype if only one part with one of that | |
| 182 | * mimetype
 | |
| 183 | *
The second part with text or HTML mimetype if there are two text or | |
| 184 | * HTML parts
 | |
| 185 | *
 | |
| 186 | * | |
| 187 | *
 | |
| 188 | * .receivedMessages().message(0) | |
| 189 | * .body(allOf(notNullValue(), instanceOf(MimeBodyPart.class)) | |
| 190 | *
 | |
| 191 | * | |
| 192 | * Will check if the body of the first message is not null and is a | |
| 193 | * MimeBodyPart instance. | |
| 194 | * | |
| 195 | *
 | |
| 196 | * .receivedMessages().forEach() | |
| 197 | * .body(allOf(notNullValue(), instanceOf(MimeBodyPart.class)) | |
| 198 | *
 | |
| 199 | * | |
| 200 | * Will check that the body of every message is not null and is a | |
| 201 | * MimeBodyPart instance. | |
| 202 | * | |
| 203 | *
 | |
| 204 | * You can use the {@link #body()} variant to make more powerful assertions. | |
| 205 | * | |
| 206 | * @param matcher | |
| 207 | * the assertion to apply on body | |
| 208 | * @param <T> | |
| 209 | * the type used for the matcher | |
| 210 | * @return the fluent API for chaining assertions on received message(s) | |
| 211 | */ | |
| 212 | public <T extends Part> EmailAssert
 body(Matcher<? super Part> matcher) { // NOSONAR | |
| 213 | try { | |
| 214 |
1
1. body : All methods instructions replaced by: return null; → NO_COVERAGE |
String desc = "body of message ${messageIndex}"; |
| 215 | int index = 0; | |
| 216 | for (Message message : actual) { | |
| 217 | assertThat(getBodyPart(message), usingContext(desc, new SingleMessageContext(index++), matcher)); | |
| 218 | } | |
| 219 | return this; | |
| 220 | } catch (MessagingException e) { | |
| 221 | throw new AssertionError("Failed to access attachments of messsage", e); | |
| 222 | } | |
| 223 | } | |
| 224 | ||
| 225 | /** | |
| 226 | * Make assertions on the alternative part of the message(s). The | |
| 227 | * alternative is useful when sending HTML email that may be unreadable on | |
| 228 | * some email clients. For example, a smartphone will display the 2 or 3 | |
| 229 | * first lines as a summary. Many smartphones will take the HTML message | |
| 230 | * as-is and will display HTML tags instead of content of email. Alternative | |
| 231 | * is used to provide a textual visualization of the message that will be | |
| 232 | * readable by any system. | |
| 233 | * | |
| 234 | *
 | |
| 235 | * The alternative of the message is either: | |
| 236 | *
 | |
| 237 | *
null if there is only one part
 | |
| 238 | *
null if there is only one text or HTML part
 | |
| 239 | *
the first part if there are more than one text or HTML part
 | |
| 240 | *
 | |
| 241 | * | |
| 242 | *
 | |
| 243 | * .receivedMessages().message(0) | |
| 244 | * .alternative(allOf(notNullValue(), instanceOf(MimeBodyPart.class)) | |
| 245 | *
 | |
| 246 | * | |
| 247 | * Will check if the alternative of the first message is not null and is a | |
| 248 | * MimeBodyPart instance. | |
| 249 | * | |
| 250 | *
 | |
| 251 | * .receivedMessages().forEach() | |
| 252 | * .alternative(allOf(notNullValue(), instanceOf(MimeBodyPart.class)) | |
| 253 | *
 | |
| 254 | * | |
| 255 | * Will check that the alternative of every message is not null and is a | |
| 256 | * MimeBodyPart instance. | |
| 257 | * | |
| 258 | *
 | |
| 259 | * You can use the {@link #alternative()} variant to make more powerful | |
| 260 | * assertions. | |
| 261 | * | |
| 262 | * @param matcher | |
| 263 | * the assertion to apply on alternative | |
| 264 | * @param <T> | |
| 265 | * the type used for the matcher | |
| 266 | * @return the fluent API for chaining assertions on received message(s) | |
| 267 | */ | |
| 268 | public <T extends Part> EmailAssert
 alternative(Matcher<? super Part> matcher) { // NOSONAR | |
| 269 | try { | |
| 270 |
2
1. alternative : All methods instructions replaced by: return null; → NO_COVERAGE 2. alternative : All methods instructions replaced by: return null; → KILLED |
String desc = "alternative of message ${messageIndex}"; |
| 271 | int index = 0; | |
| 272 | for (Message message : actual) { | |
| 273 | assertThat(getAlternativePart(message), usingContext(desc, new SingleMessageContext(index++), matcher)); | |
| 274 | } | |
| 275 | return this; | |
| 276 | } catch (MessagingException e) { | |
| 277 | throw new AssertionError("Failed to access attachments of messsage", e); | |
| 278 | } | |
| 279 | } | |
| 280 | ||
| 281 | /** | |
| 282 | * Make assertions on the sender of the message(s) using fluent API. | |
| 283 | * | |
| 284 | *
 | |
| 285 | * .receivedMessages().message(0).from() | |
| 286 | * .address(hasItems("noreply@sii.fr")) | |
| 287 | * .personal(hasItems("Groupe SII")) | |
| 288 | *
 | |
| 289 | * | |
| 290 | * Will check if the sender email address of the first message is exactly | |
| 291 | *<EMAIL_ADDRESS>and sender displayed address of the first message is | |
| 292 | * exactly "Groupe SII". | |
| 293 | * | |
| 294 | *
 | |
| 295 | * .receivedMessages().forEach().from() | |
| 296 | * .address(hasItems("noreply@sii.fr")) | |
| 297 | * .personal(hasItems("Groupe SII")) | |
| 298 | *
 | |
| 299 | * | |
| 300 | * Will check if the sender email address of every message is exactly | |
| 301 | *<EMAIL_ADDRESS>and sender displayed address of every message is exactly | |
| 302 | * "Groupe SII". | |
| 303 | * | |
| 304 | * @return the fluent API for chaining assertions on received message(s) | |
| 305 | */ | |
| 306 | public AddressListAssert<EmailAssert
> from() { | |
| 307 | try { | |
| 308 |
2
1. from : All methods instructions replaced by: return null; → NO_COVERAGE 2. from : All methods instructions replaced by: return null; → KILLED |
int index = 0; |
| 309 | List<AddressesWithContext> addresses = new ArrayList<>(); | |
| 310 | for (Message message : actual) { | |
| 311 | addresses.add(new AddressesWithContext(asList((InternetAddress[]) message.getFrom()), "from", new SingleMessageContext(index++))); | |
| 312 | } | |
| 313 | return new AddressListAssert<>(addresses, this); | |
| 314 | } catch (MessagingException e) { | |
| 315 | throw new AssertionError("Failed to get from field of messsage", e); | |
| 316 | } | |
| 317 | } | |
| 318 | ||
| 319 | /** | |
| 320 | * Make assertions on the sender of the message(s) using fluent API. | |
| 321 | * | |
| 322 | *
 | |
| 323 | * .receivedMessages().message(0).to() | |
| 324 | *<EMAIL_ADDRESS>"recipient2@sii.fr")) | |
| 325 | * .personal(hasItems("Foo", "Bar")) | |
| 326 | *
 | |
| 327 | * | |
| 328 | * Will check if the list of email addresses of direct recipients (TO) of | |
| 329 | * the first message are exactly<EMAIL_ADDRESS><EMAIL_ADDRESS>| |
| 330 | * and the list of displayed address of direct recipients (TO) of the first | |
| 331 | * message are exactly "Foo", "Bar". | |
| 332 | * | |
| 333 | *
 | |
| 334 | * .receivedMessages().forEach().to() | |
| 335 | *<EMAIL_ADDRESS>"recipient2@sii.fr")) | |
| 336 | * .personal(hasItems("Foo", "Bar")) | |
| 337 | *
 | |
| 338 | * | |
| 339 | * Will check if the list of email addresses of direct recipients (TO) of | |
| 340 | * every message are exactly<EMAIL_ADDRESS><EMAIL_ADDRESS>and | |
| 341 | * the list of displayed address of direct recipients (TO) of every message | |
| 342 | * are exactly "Foo", "Bar". | |
| 343 | * | |
| 344 | * @return the fluent API for chaining assertions on received message(s) | |
| 345 | */ | |
| 346 | public AddressListAssert<EmailAssert
> to() { | |
| 347 | try { | |
| 348 |
2
1. to : All methods instructions replaced by: return null; → NO_COVERAGE 2. to : All methods instructions replaced by: return null; → KILLED |
int index = 0; |
| 349 | List<AddressesWithContext> addresses = new ArrayList<>(); | |
| 350 | for (Message message : actual) { | |
| 351 | addresses.add(new AddressesWithContext(asList((InternetAddress[]) message.getRecipients(RecipientType.TO)), "to", new SingleMessageContext(index++))); | |
| 352 | } | |
| 353 | return new AddressListAssert<>(addresses, this); | |
| 354 | } catch (MessagingException e) { | |
| 355 | throw new AssertionError("Failed to get to field of messsage", e); | |
| 356 | } | |
| 357 | } | |
| 358 | ||
| 359 | /** | |
| 360 | * Make assertions on the sender of the message(s) using fluent API. | |
| 361 | * | |
| 362 | *
 | |
| 363 | * .receivedMessages().message(0).cc() | |
| 364 | *<EMAIL_ADDRESS>"recipient2@sii.fr")) | |
| 365 | * .personal(hasItems("Foo", "Bar")) | |
| 366 | *
 | |
| 367 | * | |
| 368 | * Will check if the list of email addresses of copy recipients (CC) of the | |
| 369 | * first message are exactly<EMAIL_ADDRESS><EMAIL_ADDRESS>and | |
| 370 | * the list of displayed address of copy recipients (CC) of the first | |
| 371 | * message are exactly "Foo", "Bar". | |
| 372 | * | |
| 373 | *
 | |
| 374 | * .receivedMessages().forEach().cc() | |
| 375 | *<EMAIL_ADDRESS>"recipient2@sii.fr")) | |
| 376 | * .personal(hasItems("Foo", "Bar")) | |
| 377 | *
 | |
| 378 | * | |
| 379 | * Will check if the list of email addresses of copy recipients (CC) of | |
| 380 | * every message are exactly<EMAIL_ADDRESS><EMAIL_ADDRESS>and | |
| 381 | * the list of displayed address of copy recipients (CC) of every message | |
| 382 | * are exactly "Foo", "Bar". | |
| 383 | * | |
| 384 | * @return the fluent API for chaining assertions on received message(s) | |
| 385 | */ | |
| 386 | public AddressListAssert<EmailAssert
> cc() { | |
| 387 | try { | |
| 388 |
2
1. cc : All methods instructions replaced by: return null; → NO_COVERAGE 2. cc : All methods instructions replaced by: return null; → KILLED |
int index = 0; |
| 389 | List<AddressesWithContext> addresses = new ArrayList<>(); | |
| 390 | for (Message message : actual) { | |
| 391 | addresses.add(new AddressesWithContext(asList((InternetAddress[]) message.getRecipients(RecipientType.CC)), "cc", new SingleMessageContext(index++))); | |
| 392 | } | |
| 393 | return new AddressListAssert<>(addresses, this); | |
| 394 | } catch (MessagingException e) { | |
| 395 | throw new AssertionError("Failed to get cc field of messsage", e); | |
| 396 | } | |
| 397 | } | |
| 398 | ||
| 399 | /** | |
| 400 | * Make assertions on the list of attachments of the message(s). | |
| 401 | * | |
| 402 | *
 | |
| 403 | * .receivedMessages().message(0) | |
| 404 | * .attachments(hasSize(1)) | |
| 405 | *
 | |
| 406 | * | |
| 407 | * Will check if the number of attachments of the first message is exactly | |
| 408 | * 1. | |
| 409 | * | |
| 410 | *
 | |
| 411 | * .receivedMessages().forEach() | |
| 412 | * .attachments(hasSize(1)) | |
| 413 | *
 | |
| 414 | * | |
| 415 | * Will check that the number of attachments of every message is exactly 1. | |
| 416 | * | |
| 417 | *
 | |
| 418 | * You can use the {@link #attachment(String)} or | |
| 419 | * {@link #attachments(Predicate)} variants to make more powerful assertions | |
| 420 | * on a particular attachment. | |
| 421 | * | |
| 422 | * @param matcher | |
| 423 | * the assertion to apply on list of attachments | |
| 424 | * @param <T> | |
| 425 | * the type used for the matcher | |
| 426 | * @return the fluent API for chaining assertions on received message(s) | |
| 427 | */ | |
| 428 | public <T extends Collection<? extends BodyPart>> EmailAssert
 attachments(Matcher<? super Collection<? extends BodyPart>> matcher) { // NOSONAR | |
| 429 | try { | |
| 430 |
3
1. attachments : All methods instructions replaced by: return null; → NO_COVERAGE 2. attachments : All methods instructions replaced by: return null; → SURVIVED 3. attachments : All methods instructions replaced by: return null; → KILLED |
String desc = "attachments of message ${messageIndex}"; |
| 431 | int index = 0; | |
| 432 | for (Message message : actual) { | |
| 433 | Object content = message.getContent(); | |
| 434 | Assert.assertTrue("should be multipart message", content instanceof Multipart); | |
| 435 | assertThat(getAttachments((Multipart) content), usingContext(desc, new SingleMessageContext(index++), matcher)); | |
| 436 | } | |
| 437 | return this; | |
| 438 | } catch (MessagingException | IOException e) { | |
| 439 | throw new AssertionError("Failed to access attachments of messsage", e); | |
| 440 | } | |
| 441 | } | |
| 442 | ||
| 443 | /** | |
| 444 | * Make assertions on a particular attachment of the message(s) using fluent | |
| 445 | * API. The attachment is identified by its filename. | |
| 446 | * | |
| 447 | *
 | |
| 448 | * .receivedMessages().message(0).attachment("foo.pdf") | |
| 449 | * .contentType(is("application/pdf")) | |
| 450 | *
 | |
| 451 | * | |
| 452 | * Will check if the content-type of the attachment named "foo.pdf" of the | |
| 453 | * first message is exactly "application/pdf". | |
| 454 | * | |
| 455 | *
 | |
| 456 | * .receivedMessages().forEach().attachment("foo.pdf") | |
| 457 | * .contentType(is("application/pdf")) | |
| 458 | *
 | |
| 459 | * | |
| 460 | * Will check that the content-type of attachment named "foo.pdf" of every | |
| 461 | * message is exactly "application/pdf". | |
| 462 | * | |
| 463 | *
 | |
| 464 | * This is a shortcut to {@link #attachments(Predicate)} with | |
| 465 | * {@link FileNamePredicate}; | |
| 466 | * | |
| 467 | * @param filename | |
| 468 | * the name of the attachment to make assertions on it | |
| 469 | * @return the fluent API for chaining assertions on received message(s) | |
| 470 | */ | |
| 471 | public PartAssert<EmailAssert
> attachment(String filename) { | |
| 472 |
2
1. attachment : All methods instructions replaced by: return null; → NO_COVERAGE 2. attachment : All methods instructions replaced by: return null; → KILLED |
return attachments(new FileNamePredicate(filename)); |
| 473 | } | |
| 474 | ||
| 475 | /** | |
| 476 | * Make assertions on a particular attachment of the message(s). | |
| 477 | * | |
| 478 | *
 | |
| 479 | * .receivedMessages().message(0).attachment(0) | |
| 480 | * .contentType(is("application/pdf")) | |
| 481 | *
 | |
| 482 | * | |
| 483 | * Will check if the content-type of the first attachment of the first | |
| 484 | * message is exactly "application/pdf". | |
| 485 | * | |
| 486 | *
 | |
| 487 | * .receivedMessages().forEach().attachment(0) | |
| 488 | * .contentType(is("application/pdf")) | |
| 489 | *
 | |
| 490 | * | |
| 491 | * Will check if the content-type of the first attachment of every message | |
| 492 | * is exactly "application/pdf". | |
| 493 | * | |
| 494 | * @param index | |
| 495 | * the index of the attachment | |
| 496 | * @return the fluent API for chaining assertions on received message(s) | |
| 497 | */ | |
| 498 | public PartAssert<EmailAssert
> attachment(int index) { | |
| 499 | try { | |
| 500 |
1
1. attachment : All methods instructions replaced by: return null; → NO_COVERAGE |
int msgIndex = 0; |
| 501 | List<PartWithContext> attachments = new ArrayList<>(); | |
| 502 | for (Message message : actual) { | |
| 503 | Object content = message.getContent(); | |
| 504 | Assert.assertTrue("should be multipart message", content instanceof Multipart); | |
| 505 | List<BodyPart> found = getAttachments((Multipart) content, new AnyPredicate<BodyPart>()); | |
| 506 | BodyPart attachment = index >= found.size() ? null : found.get(index); | |
| 507 | attachments.add(new PartWithContext(attachment, "attachment with index " + index, new SingleMessageContext(msgIndex++))); | |
| 508 | } | |
| 509 | return new PartAssert<>(attachments, this); | |
| 510 | } catch (MessagingException | IOException e) { | |
| 511 | throw new AssertionError("Failed to get attachment with index " + index + " of messsage", e); | |
| 512 | } | |
| 513 | } | |
| 514 | ||
| 515 | /** | |
| 516 | * Make assertions on a one or several attachments of the message(s) using | |
| 517 | * fluent API. The attachments are identified using provided predicate. | |
| 518 | * | |
| 519 | *
 | |
| 520 | * .receivedMessages().message(0) | |
| 521 | * .attachments(new PdfFilter()).filename(endsWith(".pdf")) | |
| 522 | *
 | |
| 523 | * | |
| 524 | * Will check if the name of every PDF attachments of the first message are | |
| 525 | * named "foo.pdf". | |
| 526 | * | |
| 527 | *
 | |
| 528 | * .receivedMessages().forEach() | |
| 529 | * .attachments(new PdfFilter()).filename(endsWith(".pdf")) | |
| 530 | *
 | |
| 531 | * | |
| 532 | * Will check if the name of every PDF attachments of every message are | |
| 533 | * named "foo.pdf". | |
| 534 | * | |
| 535 | * | |
| 536 | * @param filter | |
| 537 | * the filter used to find attachments | |
| 538 | * @return the fluent API for chaining assertions on received message(s) | |
| 539 | */ | |
| 540 | public PartAssert<EmailAssert
> attachments(Predicate<BodyPart> filter) { | |
| 541 | try { | |
| 542 |
2
1. attachments : All methods instructions replaced by: return null; → NO_COVERAGE 2. attachments : All methods instructions replaced by: return null; → KILLED |
int index = 0; |
| 543 | List<PartWithContext> attachments = new ArrayList<>(); | |
| 544 | for (Message message : actual) { | |
| 545 | Object content = message.getContent(); | |
| 546 | Assert.assertTrue("should be multipart message", content instanceof Multipart); | |
| 547 | int attachmentIdx = 0; | |
| 548 | for (BodyPart attachment : getAttachments((Multipart) content, filter)) { | |
| 549 | attachments.add(new PartWithContext(attachment, "attachment " + filter + "(" + attachmentIdx + ")", new SingleMessageContext(index))); | |
| 550 | attachmentIdx++; | |
| 551 | } | |
| 552 | index++; | |
| 553 | } | |
| 554 | return new PartAssert<>(attachments, this); | |
| 555 | } catch (MessagingException | IOException e) { | |
| 556 | throw new AssertionError("Failed to get attachment " + filter + " of messsage", e); | |
| 557 | } | |
| 558 | } | |
| 559 | ||
| 560 | } | |
Mutations | ||
| 71 |
1.1 2.2 |
|
| 115 |
1.1 2.2 |
|
| 165 |
1.1 2.2 |
|
| 214 |
1.1 |
|
| 270 |
1.1 2.2 |
|
| 308 |
1.1 2.2 |
|
| 348 |
1.1 2.2 |
|
| 388 |
1.1 2.2 |
|
| 430 |
1.1 2.2 3.3 |
|
| 472 |
1.1 2.2 |
|
| 500 |
1.1 |
|
| 542 |
1.1 2.2 |


FAQ
- What is ?
is a free file hosting provider, and it's mainly used to share files that are too big to be sent via e-mail.
With you can host files, images, videos, audio and flash on the same place and as long as they remain active they can be downloaded unlimited times.
- Can I search for files other people uploaded?
No, because not everyone wishes to share the files they upload with everyone else. This way can be used to share files with anyone you choose to, as well as keep it for yourself as a backup or to download from anywhere in the world.
- What kind of files can be uploaded?
All kinds: from your party photos to an important document.
 Please refer to our TOS for more info on terms of service.
- How to delete a file I uploaded?
To delete a file you uploaded you must use Delete Link that was provided to you after the upload proccess.
If you lost your removal code you can simply wait until the file expires so it will be automatically removed from our site.
- Can I hotlink the stuff I upload?
No. Hotlinking is not allowed on any kind of files uploaded to our servers.
- I still have questions, what should I do?
If you still have questions regarding our services don't hesitate to contact us using our contact form.


Drug
Home
(current)
search
Search2
das
WHAT ARE YOU LOOKING FOR?
{{ prescription.InsuranceType }}
New Invoice
Customer Name
*
{{req.FirstName}} {{req.LastName}} {{req.PersianBirthDate}} {{req.NationalCode}} {{req.FatherName}} {{prescription}}
Payee Name
*
Address
Date
*
Item Information
*
Batch
*
Ava.Qty
Expiry
Unit
Qty
*
Price
*
Discount / Pcs.
Total
Action
Select option
Delete
Total Tax:
Invoice Details
Total Discount:
Sub Total:
Invoice Discount:
Grand Total:
Paid Amount:
Due:
Change:


Augmented Reality experience that visualize Atoms on AR marker.
You can see animated visualizations 3D of some atoms in real space, just by using the camera on your smartphone.
Was designed and built using : Three.js - Ar.js - Artoolkit ...


Success(value: V)
Operation was successful and return a associated value of type V
value - associated to the sucessful operation
value


Programming with Ada
Contents:
Overview
Feature Overview
The Big Five Structural Elements
Note on Terminology
Packages, the Building Blocks of Ada
Advanced Techniques
Being More Terse
Comparing Ada to Other Languages
Terminology
Clearing the Air
About
Ray Tracing in One Weekend… in Ada
Summary after Four Months with Ada
Programming with Ada
»
Index
Index
Symbols
|
A
|
D
|
I
|
L
|
P
|
S
|
T
Symbols
'
<>
A
ABE
access type
ATC
D
definite type
I
indefinite type
L
limited type
P
parent
progenitor
S
subprogram
T
tagged type


Selected: {{ctrl.personAsync.selected | json }}
{{ctrl.personAsync.selected | json }}
List Count: {{ (ctrl.peopleAsync || []).length }}
{{ (ctrl.peopleAsync || []).length }}
Data will be populated in 3 secs


When I play my Stratocaster, Shooting the circles of sound, When I'm looking in the mirror, A creature so ugly and wild,


You live in Bulgaria?

No body gives you credit for it? We won't too. We can just give you points. And who doesn't like points
Join the quest now.
Change the world and inspire today. And so on ...


|
libpqxx 4.0
|
Reference to a field in a result set. More...
#include <field.hxx>
Public Types | |
| typedef size_t | size_type |
Public Member Functions | |
| field (const tuple &T, tuple_size_type C) throw () | |
| Constructor. | |
| template<> | |
| bool | to (const char *&Obj) const |
Specialization: to(const char *&) . | |
Comparison | |
| bool | operator== (const field &) const |
| Byte-by-byte comparison of two fields (all nulls are considered equal) | |
| bool | operator!= (const field &rhs) const |
| Byte-by-byte comparison (all nulls are considered equal) | |
Column information | |
| const char * | name () const |
| Column name. | |
| oid | type () const |
| Column type. | |
| oid | table () const |
| What table did this column come from? | |
| tuple_size_type | num () const |
| tuple_size_type | table_column () const |
| What column number in its originating table did this column come from? | |
Content access | |
| const char * | c_str () const |
| Read as plain C string. | |
| template<typename T > | |
| bool | to (T &Obj) const |
Read value into Obj; or leave Obj untouched and return false if null. | |
| template<typename T > | |
| bool | operator>> (T &Obj) const |
Read value into Obj; or leave Obj untouched and return false if null. | |
| template<typename T > | |
| bool | to (T &Obj, const T &Default) const |
Read value into Obj; or use Default & return false if null. | |
| template<typename T > | |
| T | as (const T &Default) const |
| Return value as object of given type, or Default if null. | |
| template<typename T > | |
| T | as () const |
| Return value as object of given type, or throw exception if null. | |
| bool | is_null () const throw () |
| size_type | size () const throw () |
Protected Member Functions | |
| const result * | home () const throw () |
| size_t | idx () const throw () |
| tuple_size_type | col () const throw () |
Protected Attributes | |
| tuple_size_type | m_col |
Reference to a field in a result set.
A field represents one entry in a tuple. It represents an actual value in the result set, and can be converted to various types.
| typedef size_t pqxx::field::size_type |
Reimplemented in pqxx::const_tuple_iterator.
| pqxx::field::field | ( | const tuple & | T, |
| tuple_size_type | C | ||
| ) | throw () |
Constructor.
Create field as reference to a field in a result set.
| T | Tuple that this field is part of. |
| C | Column number of this field. |
| T pqxx::field::as | ( | const T & | Default | ) | const |
Return value as object of given type, or Default if null.
Note that unless the function is instantiated with an explicit template argument, the Default value's type also determines the result type.
| T pqxx::field::as | ( | ) | const |
Return value as object of given type, or throw exception if null.
| const char * pqxx::field::c_str | ( | ) | const |
Read as plain C string.
Since the field's data is stored internally in the form of a zero-terminated C string, this is the fastest way to read it. Use the to() or as() functions to convert the string to other types such as int
, or to C++ strings.
Referenced by pqxx::binarystring::binarystring(), pqxx::from_string(), pqxx::operator<<(), operator==(), and pqxx::to_string().
| tuple_size_type pqxx::field::col | ( | ) | const throw () [protected] |
| const result* pqxx::field::home | ( | ) | const throw () [protected] |
| size_t pqxx::field::idx | ( | ) | const throw () [protected] |
| bool pqxx::field::is_null | ( | ) | const throw () |
Referenced by operator==().
| const char * pqxx::field::name | ( | ) | const |
Column name.
| tuple_size_type pqxx::field::num | ( | ) | const |
Referenced by pqxx::const_tuple_iterator::operator-().
| bool pqxx::field::operator!= | ( | const field & | rhs | ) | const |
Byte-by-byte comparison (all nulls are considered equal)
| bool pqxx::field::operator== | ( | const field & | rhs | ) | const |
Byte-by-byte comparison of two fields (all nulls are considered equal)
Handling of null values differs from that in SQL where a comparison involving a null value yields null, so nulls are never considered equal to one another or even to themselves.
Null handling also probably differs from the closest equivalent in C++, which is the NaN (Not-a-Number) value, a singularity comparable to SQL's null. This is because the builtin == operator demands that a == a.
The usefulness of this operator is questionable. No interpretation whatsoever is imposed on the data; 0 and 0.0 are considered different, as are null vs. the empty string, or even different (but possibly equivalent and equally valid) encodings of the same Unicode character etc.
| bool pqxx::field::operator>> | ( | T & | Obj | ) | const |
Read value into Obj; or leave Obj untouched and return false
if null.
| pqxx::field::size_type pqxx::field::size | ( | ) | const throw () |
Referenced by pqxx::binarystring::binarystring(), pqxx::from_string(), pqxx::operator<<(), operator==(), and pqxx::to_string().
| pqxx::oid pqxx::field::table | ( | ) | const |
What table did this column come from?
| pqxx::tuple::size_type pqxx::field::table_column | ( | ) | const |
What column number in its originating table did this column come from?
| bool pqxx::field::to | ( | T & | Obj | ) | const |
Read value into Obj; or leave Obj untouched and return false
if null.
References pqxx::from_string().
| bool pqxx::field::to | ( | const char *& | Obj | ) | const |
Specialization: to(const char *&)
.
The buffer has the same lifetime as the data in this result (i.e. of this result object, or the last remaining one copied from it etc.), so take care not to use it after the last result object referring to this query result is destroyed.
| bool pqxx::field::to | ( | T & | Obj, |
| const T & | Default | ||
| ) | const |
Read value into Obj; or use Default & return false
if null.
| pqxx::oid pqxx::field::type | ( | ) | const |
Column type.
tuple_size_type pqxx::field::m_col [protected] |


| DOSE: |
0.5 joints/cigs |
smoked |
Cannabis |
(plant material) |
| |
1 cup |
oral |
Coffee |
(liquid) |
Well,
Let me first start by telling you I am 35 years old and have been a fairly 'heavy' marijuana user for about 15 years. I have been diagnosed with Marfans Syndrome, a connective tissue disorder, in 2002 that required an Aortic Graft (open heart surgery). I couldn't even stop smoking two weeks prior to the surgery as suggested by my doctors, though I did manage to quit a week before the surgery, so I guess you could call me a pot head. I have been seriously thinking about quiting lately and going away on business trips has helped this cause. I go away for about three days at a time and went from smoking about 5 joints a day to zero while away.
Well, on my last return home, after a 20 minute argument with my bi-polar dad, I rolled a much anticipated joint and drank a cup of coffee. About a half hour later I started feeling dizzy and felt my heart pounding BIG TIME. I managed to put my heart-monitor wrist-watch on (used for working out) and found my pulse was at 160. I felt very bad and asked my dad to call an ambulance before I passed out. When the EMT's arrived my pulse was at 145 and they transported me to the ER. On the way to the hospital my pulse went to 125 then back up to 160. All the while I couldn't concentrate, find the right words, and was very confused and scared. I had no idea if I was having a heart-attack or stroke or something. After an Adavan IV and several blood work-ups, my pulse went down to 105 and they sent me home.
As soon as I got outside from the ER my pulse went back up to 135.  My cardiologist says that it may be from the combo of caffeine and cannabis, yet he doesn't understand why due to my prolonged use, or an electrical problem from the surgery (two years ago?). At any rate, a heart monitor is presently being fed-exed to me for further testing. This is the scariest thing that has ever happened to me in my life, even scarier than the surgery, and I miss my daily smoke VERY much but, it's not worth dying over. It has been two days and my pulse has not returned to normal yet, when I rest it is 80-100 and if I go down the stairs it jumps to 135.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


| Opcode/Instruction | Op /En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
|---|---|---|---|---|
|
66 0F 2E /r UCOMISD xmm1, xmm2/m64 |
RM | V/V | SSE2 | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
|
VEX.128.66.0F.WIG 2E /r VUCOMISD xmm1, xmm2/m64 |
RM | V/V | AVX | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
|
EVEX.LIG.66.0F.W1 2E /r VUCOMISD xmm1, xmm2/m64{sae} |
T1S | V/V | AVX512F | Compare low double-precision floating-point values in xmm1 and xmm2/m64 and set the EFLAGS flags accordingly. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| RM | ModRM:reg (r) | ModRM:r/m (r) | NA | NA |
| T1S | ModRM:reg (w) | ModRM:r/m (r) | NA | NA |
Description
Performs an unordered compare of the double-precision floating-point values in the low quadwords of operand 1 (first operand) and operand 2 (second operand), and sets the ZF, PF, and CF flags in the EFLAGS register according to the result (unordered, greater than, less than, or equal). The OF, SF and AF flags in the EFLAGS register are set to 0. The unordered result is returned if either source operand is a NaN (QNaN or SNaN).
Operand 1 is an XMM register; operand 2 can be an XMM register or a 64 bit memory
location.
The UCOMISD instruction differs from the COMISD instruction in that it signals a SIMD floating-point invalid oper-ation exception (#I) only when a source operand is an SNaN. The COMISD instruction signals an invalid numeric exception only if a source operand is either an SNaN or a QNaN.
The EFLAGS register is not updated if an unmasked SIMD floating-point exception is generated.
Note: VEX.vvvv and EVEX.vvvv are reserved and must be 1111b, otherwise instructions will #UD.
Software should ensure VCOMISD is encoded with VEX.L=0. Encoding VCOMISD with VEX.L=1 may encounter unpredictable behavior across different processor generations.
Operation
(V)UCOMISD (all versions)
RESULT (cid:197)(cid:3)UnorderedCompare(DEST[63:0] <> SRC[63:0]) {
(* Set EFLAGS *) CASE (RESULT) OF
UNORDERED: ZF,PF,CF (cid:197) 111;
GREATER_THAN: ZF,PF,CF (cid:197) 000;
LESS_THAN: ZF,PF,CF (cid:197) 001;
EQUAL: ZF,PF,CF (cid:197) 100;
ESAC;
OF, AF, SF (cid:197) 0; }
Intel C/C++ Compiler Intrinsic Equivalent
VUCOMISD int _mm_comi_round_sd(__m128d a, __m128d b, int imm, int sae);
UCOMISD int _mm_ucomieq_sd(__m128d a, __m128d b)
UCOMISD int _mm_ucomilt_sd(__m128d a, __m128d b)
UCOMISD int _mm_ucomile_sd(__m128d a, __m128d b)
UCOMISD int _mm_ucomigt_sd(__m128d a, __m128d b)
UCOMISD int _mm_ucomige_sd(__m128d a, __m128d b)
UCOMISD int _mm_ucomineq_sd(__m128d a, __m128d b)
SIMD Floating-Point Exceptions
Invalid (if SNaN operands), Denormal
Other Exceptions
| VEX-encoded instructions, see Exceptions Type 3; additionally |
| If VEX.vvvv != 1111B. |
| EVEX-encoded instructions, see Exceptions Type E3NF. |


Computer vision is a field of computer science that works on enabling computers to see, identify and process images in the same way that human vision does, and then provide appropriate output. It is like imparting human intelligence and instincts to a computer. Image processing and computer vision are a little different from each other. Image processing means applying some algorithms for transforming image from one form to the other like smoothing, contrasting, stretching, etc. While computer vision comes from modelling image processing using the techniques of machine learning, computer vision applies machine learning to recognize patterns for interpretation of images (much like the process of visual reasoning of human vision).


West Indian duo Deandra Dottin and Stafanie Taylor to join The Hundred
Stafanie Taylor and Deandra Dottin are among the latest batch of star signings.
West Indian stars Deandra Dottin and Stafanie Taylor are among the latest raft of signings for next year’s inaugural season of The Hundred.
Dottin, the first woman to score a Twenty20 International century, is heading to London Spirit while Southern Brave have landed Windies captain Taylor, who currently sits second in the ICC’s one-day batting rankings.
The pair were announced alongside six other ‘marquee players’, bringing each of the eight women’s squads to four players.
Jess Jonassen, the top ODI bowler in the world, joins Australia team-mate Meg Lanning and their international coach Matthew Mott at the Cardiff-based Welsh Fire.
Fellow Australians Rachael Haynes and Elyse Villani will play at Oval Invincibles and Trent Rockets respectively and South Africa’s Mignon Du Preez joins fellow Proteas player Lizelle Lee at Manchester Originals.
Two franchises opted for homegrown talent as their latest acquisition, with one-time Yorkshire Diamonds player Alice Davidson-Richards agreeing terms with Northern Superchargers and Wolverhampton local Georgia Elwiss donning the colours of Birmingham Phoenix.
Taylor said: “I can’t wait to join Southern Brave. I’m really looking forward to working under Charlotte Edwards again.
“There’s also a strong Caribbean vibe in the men’s team at Southern Brave – with Andre Russell, Jofra Archer and Chris Jordan – so it will be nice to play alongside them and hopefully both teams can have success.”
Du Preez is eager to try her hand at the new 100-ball competition and hopes to find new fans along the way.
“It’s going to be something a bit different but it’s obviously all about trying to take cricket to as many people as possible and as players that’s something we want to support,” she said.
The remaining nine 11 places on each playing roster must be filled by May 31.


To be perfectly honest the best thing I can say I have is the most invisible thing there is a good intention. With that being said in preparation I've been saving since initially meeting Jack last year. I bought a new Mac specifically to attend Dev and a new car so that I can move to Wellington for bootcamp. Currently I haven't made plans for accomodation but I gotta worry about s3 etc before bootcamp but in saying that I must harken back to my opening statement. I whole heartily intend for the next five years of my life working with code, beyond that I wouldn't dare to speculate at this point in time. Nobody has every accused my of asking for help lol, it's a condition I need to remedy no doubt thats also what was appealing about Dev to me. My word is my commitment yes but just like asking for help nobodies every accused my of striking them as being saintly either, though again I must harken back to my original statement but now I'll amend it to this, the only intention I have is not to waste mine or Dev's time. I understand this will be a tremendous undertaking on my part but am as of right now still fully committed to this endeavour.
Hard to say what I expect from the tutors, I mean I just want everything to go well obviously, in my mind I come to you, my jobs to learn, their job is to facilitate that learning, best way I can put it. I mean I just want them to help me in the confidence department as I litterally feel 13 and not 30 here. Let's go with this flipped learning buzz, seems like a good idea lets give it a go anyway but sometimes I feel like I need some old fashioned instruction face to face. I do want to try and get into campus during foundations but it's a far trip and I just got the fibre optics installed for foundations. It would be better though if I could get in and get a feel for things but I need to get ahead time-wise on the sprints so I can make the trip. No luck in that department yet nor for the foreseeable duration of foundations more than likely will be working into the week break before bootcamp I hope not ,will try to but yeah. Conceptually I can see & kind of understand the methodology behind how & why the components fit & work together I generally think in terms of cause & effect.
I just need to familiarise myself more with the format and in my experience that best comes with practical experience it reminds me of trying to memorise log-specification sheets, grades, lengths, attributes etc. Everything can be defined as a process. I've worked with, trained & been trained by various different personalities in various different industries & occupations. Some good, some bad, some unbelievable, some indescribable and some unconscionable but no matter what theres always a lesson to learn even in failure, maybe especially so trial & error. Of course I will seek help if I truly feel it's necessary but I don't mind people just watching and saying what they think without me asking for an opinion if they should so feel the need. I like to reflect on how intimidated I felt at the beginning of everything I am currently qualified to do. It reminds me that nobody know’s until they know, I couldn't cut a tree down before I could, I didn't think I'd be able to spend up to three months at a time out deep-sea fishing before I did. I've come to believe that simple & genuine enthusiasm is the best recipe to undertake new challenges. In the end I guess it's a cliche, I know and I do so hate how platitudes are so often too easily mistook for wisdom but to iterate my point "I will get out what I put in".
What is your long term goal and/or career pathway? : I have a few thing's I have been, and intent to run simultaneously moving forward. I want to gain a new career in tech hopefully this year and next year my primary goal will be my physical health, mentally I feel strong but also combustible, a secondary issue I have been working on for the past 3 years and should be right by this time next coinciding with what has been a plan 3 years in the making.
What do you think your biggest strengths and limitations will be in Bootcamp? : I've had regimental routines before just not in a long time but am looking forward to this immensely . I find being able to articulate precisely how I feel about something and plus I believe I'm quite intuitive already in aspects such as emotional E.Q in person though I'm better with others than I am with myself in terms of co-operation. I also belive I have a firm girp on the principle of cause and effect how I learnt my prior professions, I'm determined with a single focus to becoming a computer programmer. My short comings are, in an odd way a proclivty for single minded, single handed share determination, a kind of body on the line kind of attitude. Also My biggest challenge and the thing I will require the most help in is the logic.
What do you think your biggest non-technical challenge at Bootcamp will be? : Asking for help.
What non-technical skills - human skills - would you like to see developed in yourself while at EDA? : Patience. To me the sum of man's problem's come from his inability to sit alone quietly in a room. Those are not my word's and forgive me I can no longer remember where it came from but I have contemplated those words for a very long time as if it was an equatiion in desperate need of an answer.
What are your expectations from the Bootcamp team? : To help me become competent in computer programming and a more patient person.
What are your expectations of yourself on Bootcamp : To aquire a new technical skill-set, so long as I finish Bootcamp feeling myself like I know what I'm doing.
TACTICAL PLAN : During class I will try as hard as I can to keep pace with the peer programming but after 5pm & before 8.45am I will be trying to complete everything I have missed thus far and continually too. I intend to devote as much time as possible to Dev.


Click on two different cards and if they match they stay turned up. The object of the game is to turn over all pairs of matching cards.