'Soon we came to the cave, but we found him not within; he was shepherding his fat flocks in the pastures. So we went into the cave, and gazed on all that was therein. The baskets were well laden with cheeses, and the folds were thronged with lambs and kids; each kind was penned by itself, the firstlings apart, and the summer lambs apart, apart too the younglings of the flock. Now all the vessels swam with whey, the milk-pails and the bowls, the well-wrought vessels whereinto he milked. My company then spake and besought me first of all to take of the cheeses and to return, and afterwards to make haste and drive off the kids and lambs to the swift ships from out the pens, and to sail over the salt sea water. Howbeit I hearkened not (and far better would it have been), but waited to see the giant himself, and whether he would give me gifts as a stranger's due. Yet was not his coming to be with joy to my company.
'Then we kindled a fire, and made burnt-offering, and ourselves likewise took of the cheeses, and did eat, and sat waiting for him within till he came back, shepherding his flocks. And he bore a grievous weight of dry wood, against supper time. This log he cast down with a din inside the cave, and in fear we fled to the secret place of the rock. As for him, he drave his fat flocks into the wide cavern, even all that he was wont to milk; but the males both of the sheep and of the goats he left without in the deep yard. Thereafter he lifted a huge doorstone and weighty, and set it in the mouth of the cave, such an one as two and twenty good four-wheeled wains could not raise from the ground, so mighty a sheer rock did he set against the doorway. Then he sat down and milked the ewes and bleating goats, all orderly, and beneath each ewe he placed her young. And anon he curdled one half of the white milk, and massed it together, and stored it in wicker-baskets, and the other half he let stand in pails, that he might have it to take and drink against supper time. Now when he had done all his work busily, then he kindled the fire anew, and espied us, and made question:
'"Strangers, who are ye? Whence sail ye over the wet ways? On some trading enterprise or at adventure do ye rove, even as sea-robbers over the brine, for at hazard of their own lives they wander, bringing bale to alien men."
'So spake he, but as for us our heart within us was broken for terror of the deep voice and his own monstrous shape; yet despite all I answered and spake unto him, saying:
'"Lo, we are Achaeans, driven wandering from Troy, by all manner of winds over the great gulf of the sea; seeking our homes we fare, but another path have we come, by other ways: even such, methinks, was the will and the counsel of Zeus. And we avow us to be the men of Agamemnon, son of Atreus, whose fame is even now the mightiest under heaven, so great a city did he sack, and destroyed many people; but as for us we have lighted here, and come to these thy knees, if perchance thou wilt give us a stranger's gift, or make any present, as is the due of strangers. Nay, lord, have regard to the gods, for we are thy suppliants; and Zeus is the avenger of suppliants and sojourners, Zeus, the god of the stranger, who fareth in the company of reverend strangers."
'So I spake, and anon he answered out of his pitiless heart: "Thou art witless, my stranger, or thou hast come from afar, who biddest me either to fear or shun the gods. For the Cyclopes pay no heed to Zeus, lord of the aegis, nor to the blessed gods, for verily we are better men than they. Nor would I, to shun the enmity of Zeus, spare either thee or thy company, unless my spirit bade me. But tell me where thou didst stay thy well-wrought ship on thy coming? Was it perchance at the far end of the island, or hard by, that I may know?"
'So he spake, tempting me, but he cheated me not, who knew full much, and I answered him again with words of guile:
'"As for my ship, Poseidon, the shaker of the earth, brake it to pieces, for he cast it upon the rocks at the border of your country, and brought it nigh the headland, and a wind bare it thither from the sea. But I with these my men escaped from utter doom."
'So I spake, and out of his pitiless heart he answered me not a word, but sprang up, and laid his hands upon my fellows, and clutching two together dashed them, as they had been whelps, to the earth, and the brain flowed forth upon the ground, and the earth was wet. Then cut he them up piecemeal, and made ready his supper. So he ate even as a mountain-bred lion, and ceased not, devouring entrails and flesh and bones with their marrow. And we wept and raised our hands to Zeus, beholding the cruel deeds; and we were at our wits' end. And after the Cyclops had filled his huge maw with human flesh and the milk he drank thereafter, he lay within the cave, stretched out among his sheep.
'So I took counsel in my great heart, whether I should draw near, and pluck my sharp sword from my thigh, and stab him in the breast, where the midriff holds the liver, feeling for the place with my hand. But my second thought withheld me, for so should we too have perished even there with utter doom. For we should not have prevailed to roll away with our hands from the lofty door the heavy stone which he set there. So for that time we made moan, awaiting the bright Dawn.
'Now when early Dawn shone forth, the rosy-fingered, again he kindled the fire and milked his goodly flocks all orderly, and beneath each ewe set her lamb. Anon when he had done all his work busily, again he seized yet other two men and made ready his midday meal. And after the meal, lightly he moved away the great door-stone, and drave his fat flocks forth from the cave, and afterwards he set it in his place again, as one might set the lid on a quiver. Then with a loud whoop, the Cyclops turned his fat flocks towards the hills; but I was left devising evil in the deep of my heart, if in any wise I might avenge me, and Athene grant me renown.
'And this was the counsel that showed best in my sight. There lay by a sheep-fold a great club of the Cyclops, a club of olive wood, yet green, which he had cut to carry with him when it should be seasoned. Now when we saw it we likened it in size to the mast of a black ship of twenty oars, a wide merchant vessel that traverses the great sea gulf, so huge it was to view in bulk and length. I stood thereby and cut off from it a portion as it were a fathom's length, and set it by my fellows, and bade them fine it down, and they made it even, while I stood by and sharpened it to a point, and straightway I took it and hardened it in the bright fire. Then I laid it well away, and hid it beneath the dung, which was scattered in great heaps in the depths of the cave. And I bade my company cast lots among them, which of them should risk the adventure with me, and lift the bar and turn it about in his eye, when sweet sleep came upon him. And the lot fell upon those four whom I myself would have been fain to choose, and I appointed myself to be the fifth among them. In the evening he came shepherding his flocks of goodly fleece, and presently he drave his fat flocks into the cave each and all, nor left he any without in the deep courtyard, whether through some foreboding, or perchance that the god so bade him do. Thereafter he lifted the huge door-stone and set it in the mouth of the cave, and sitting down he milked the ewes and bleating goats, all orderly, and beneath each ewe he placed her young. Now when he had done all his work busily, again he seized yet other two and made ready his supper. Then I stood by the Cyclops and spake to him, holding in my hands an ivy bowl of the dark wine:
'"Cyclops, take and drink wine after thy feast of man's meat, that thou mayest know what manner of drink this was that our ship held. And lo, I was bringing it thee as a drink offering, if haply thou mayest take pity and send me on my way home, but thy mad rage is past all sufferance. O hard of heart, how may another of the many men there be come ever to thee again, seeing that thy deeds have been lawless?"
 Yea for the earth, the grain-giver, bears for the Cyclopes the mighty clusters of the juice of the grape, and the rain of Zeus gives them increase, but this is a rill of very nectar and ambrosia."
'So he spake, and again I handed him the dark wine. Thrice I bare and gave it him, and thrice in his folly he drank it to the lees. Now when the wine had got about the wits of the Cyclops, then did I speak to him with soft words:
'"Cyclops, thou askest me my renowned name, and I will declare it unto thee, and do thou grant me a stranger's gift, as thou didst promise. Noman is my name, and Noman they call me, my father and my mother and all my fellows."
'So I spake, and straightway he answered me out of his pitiless heart:
'"Noman will I eat last in the number of his fellows, and the others before him: that shall be thy gift."
'Therewith he sank backwards and fell with face upturned, and there he lay with his great neck bent round, and sleep, that conquers all men, overcame him. And the wine and the fragments of men's flesh issued forth from his mouth, and he vomited, being heavy with wine. Then I thrust in that stake under the deep ashes, until it should grow hot, and I spake to my companions comfortable words, lest any should hang back from me in fear. But when that bar of olive wood was just about to catch fire in the flame, green though it was, and began to glow terribly, even then I came nigh, and drew it from the coals, and my fellows gathered about me, and some god breathed great courage into us. For their part they seized the bar of olive wood, that was sharpened at the point, and thrust it into his eye, while I from my place aloft turned it about, as when a man bores a ship's beam with a drill while his fellows below spin it with a strap, which they hold at either end, and the auger runs round continually. Even so did we seize the fiery-pointed brand and whirled it round in his eye, and the blood flowed about the heated bar. And the breath of the flame singed his eyelids and brows all about, as the ball of the eye burnt away, and the roots thereof crackled in the flame. And as when a smith dips an axe or adze in chill water with a great hissing, when he would temper it — for hereby anon comes the strength of iron — even so did his eye hiss round the stake of olive. And he raised a great and terrible cry, that the rock rang around, and we fled away in fear, while he plucked forth from his eye the brand bedabbled in much blood. Then maddened with pain he cast it from him with his hands, and called with a loud voice on the Cyclopes, who dwelt about him in the caves along the windy heights. And they heard the cry and flocked together from every side, and gathering round the cave asked him what ailed him:
'"What hath so distressed thee, Polyphemus, that thou criest thus aloud through the immortal night, and makest us sleepless? Surely no mortal driveth off thy flocks against thy will: surely none slayeth thyself by force or craft?"
'And the strong Polyphemus spake to them again from out the cave: "My friends, Noman is slaying me by guile, nor at all by force."
'And they answered and spake winged words: "If then no man is violently handling thee in thy solitude, it can in no wise be that thou shouldest escape the sickness sent by mighty Zeus. Nay, pray thou to thy father, the lord Poseidon."
'On this wise they spake and departed; and my heart within me laughed to see how my name and cunning counsel had beguiled them. But the Cyclops, groaning and travailing in pain, groped with his hands, and lifted away the stone from the door of the cave, and himself sat in the entry, with arms outstretched to catch, if he might, any one that was going forth with his sheep, so witless, methinks, did he hope to find me. But I advised me how all might be for the very best, if perchance I might find a way of escape from death for my companions and myself, and I wove all manner of craft and counsel, as a man will for his life, seeing that great mischief was nigh. And this was the counsel that showed best in my sight. The rams of the flock were well nurtured and thick of fleece, great and goodly, with wool dark as the violet. Quietly I lashed them together with twisted withies, whereon the Cyclops slept, that lawless monster. Three together I took: now the middle one of the three would bear each a man, but the other twain went on either side, saving my fellows. Thus every three sheep bare their man. But as for me I laid hold of the back of a young ram who was far the best and the goodliest of all the flock, and curled beneath his shaggy belly there I lay, and so clung face upward, grasping the wondrous fleece with a steadfast heart. So for that time making moan we awaited the bright Dawn.
'So soon as early Dawn shone forth, the rosy-fingered, then did the rams of the flock hasten forth to pasture, but the ewes bleated unmilked about the pens, for their udders were swollen to bursting. Then their lord, sore stricken with pain, felt along the backs of all the sheep as they stood up before him, and guessed not in his folly how that my men were bound beneath the breasts of his thick-fleeced flocks. Last of all the sheep came forth the ram, cumbered with his wool and the weight of me and my cunning. And the strong Polyphemus laid his hands on him and spake to him saying:
'"Dear ram, wherefore, I pray thee, art thou the last of all the flocks to go forth from the cave, who of old wast not wont to lag behind the sheep, but wert ever the foremost to pluck the tender blossom of the pasture, faring with long strides, and wert still the first to come to the streams of the rivers, and first did long to return to the homestead in the evening? But now art thou the very last.  Ah, if thou couldst feel as I, and be endued with speech, to tell me where he shifts about to shun my wrath; then should he be smitten, and his brains be dashed against the floor here and there about the cave, and my heart be lightened of the sorrows which Noman, nothing worth, hath brought me!"
'Therewith he sent the ram forth from him, and when we had gone but a little way from the cave and from the yard, first I loosed myself from under the ram and then I set my fellows free. And swiftly we drave on those stiff-shanked sheep, so rich in fat, and often turned to look about, till we came to the ship. And a glad sight to our fellows were we that had fled from death, but the others they would have bemoaned with tears; howbeit I suffered it not, but with frowning brows forbade each man to weep. Rather I bade them to cast on board the many sheep with goodly fleece, and to sail over the salt sea water. So they embarked forthwith, and sate upon the benches, and sitting orderly smote the grey sea water with their oars. But when I had not gone so far, but that a man's shout might be heard, then I spoke unto the Cyclops taunting him:
'"Cyclops, so thou wert not to eat the company of a weakling by main might in thy hollow cave!
'So I spake, and he was mightily angered at heart, and he brake off the peak of a great hill and threw it at us, and it fell in front of the dark-prowed ship.' And the sea heaved beneath the fall of the rock, and the backward flow of the wave bare the ship quickly to the dry land, with the wash from the deep sea, and drave it to the shore. Then I caught up a long pole in my hands, and thrust the ship from off the land, and roused my company, and with a motion of the head bade them dash in with their oars, that so we might escape our evil plight. So they bent to their oars and rowed on. But when we had now made twice the distance over the brine, I would fain have spoken to the Cyclops, but my company stayed me on every side with soft words, saying:
'"Foolhardy that thou art, why wouldst thou rouse a wild man to wrath, who even now hath cast so mighty a throw towards the deep and brought our ship back to land, yea and we thought that we had perished even there? If he had heard any of us utter sound or speech he would have crushed our heads and our ship timbers with a cast of a rugged stone, so mightily he hurls."
'So spake they, but they prevailed not on my lordly spirit, and I answered him again from out an angry heart:
'"Cyclops, if any one of mortal men shall ask thee of the unsightly blinding of thine eye, say that it was Odysseus that blinded it, the waster of cities, son of Laertes, whose dwelling is in Ithaca."
'So I spake, and with a moan he answered me, saying:
'"Lo now, in very truth the ancient oracles have come upon me. There lived here a soothsayer, a noble man and a mighty, Telemus, son of Eurymus, who surpassed all men in soothsaying, and waxed old as a seer among the Cyclopes. He told me that all these things should come to pass in the aftertime, even that I should lose my eyesight at the hand of Odysseus. But I ever looked for some tall and goodly man to come hither, clad in great might, but behold now one that is a dwarf, a man of no worth and a weakling, hath blinded me of my eye after subduing me with wine. Nay come hither, Odysseus, that I may set by thee a stranger's cheer, and speed thy parting hence, that so the Earth-shaker may vouchsafe it thee, for his son am I, and he avows him for my father. And he himself will heal me, if it be his will; and none other of the blessed gods or of mortal men."
'Even so he spake, but I answered him, and said: "Would god that I were as sure to rob thee of soul and life, and send thee within the house of Hades, as I am that not even the Earth-shaker will heal thine eye!"
'So I spake, and then he prayed to the lord Poseidon stretching forth his hands to the starry heaven: "Hear me, Poseidon, girdler of the earth, god of the dark hair, if indeed I be thine, and thou avowest thee my sire, — grant that he may never come to his home, even Odysseus, waster of cities, the son of Laertes, whose dwelling is in Ithaca; yet if he is ordained to see his friends and come unto his well-builded house, and his own country, late may he come in evil case, with the loss of all his company, in the ship of strangers, and find sorrows in his house."
'So he spake in prayer, and the god of the dark locks heard him. And once again he lifted a stone, far greater than the first, and with one swing he hurled it, and he put forth a measureless strength, and cast it but a little space behind the dark-prowed ship, and all but struck the end of the rudder. And the sea heaved beneath the fall of the rock, but the wave bare on the ship and drave it to the further shore.
'But when we had now reached that island, where all our other decked ships abode together, and our company were gathered sorrowing, expecting us evermore, on our coming thither we ran our ship ashore upon the sand, and ourselves too stept forth upon the sea beach. Next we took forth the sheep of the Cyclops from out the hollow ship, and divided them, that none through me might go lacking his proper share. But the ram for me alone my goodlygreaved company chose out, in the dividing of the sheep, and on the shore I offered him up to Zeus, even to the son of Cronos, who dwells in the dark clouds, and is lord of all, and I burnt the slices of the thighs. But he heeded not the sacrifice, but was devising how my decked ships and my dear company might perish utterly. Thus for that time we sat the livelong day, until the going down of the sun, feasting on abundant flesh and sweet wine. And when the sun had sunk and darkness had come on, then we laid us to rest upon the sea beach. So soon as early Dawn shone forth, the rosy-fingered, I called to my company, and commanded them that they should themselves climb the ship and loose the hawsers. So they soon embarked and sat upon the benches, and sitting orderly smote the grey sea water with their oars.
'Thence we sailed onward stricken at heart, yet glad as men saved from death, albeit we had lost our dear companions.


|
Panda3D
|
Defines a single collision event. More...
Public Member Functions | |
| bool | collided () |
| returns true if this represents an actual collision as opposed to a potential collision, needed for iterative collision resolution where path of collider changes mid-frame More... | |
| bool | getAll (const NodePath space, LPoint3 surface_point, LVector3 surface_normal, LPoint3 interior_point) |
| Simultaneously transforms the surface point, surface normal, and interior point of the collision into the indicated coordinate space. More... | |
| bool | getAllContactInfo (const NodePath space, LPoint3 contact_pos, LVector3 contact_normal) |
| Simultaneously transforms the contact position and contact normal of the collision into the indicated coordinate space. More... | |
| LVector3 | getContactNormal (const NodePath space) |
| Returns the surface normal of the "into" object at the contact position. More... | |
| LPoint3 | getContactPos (const NodePath space) |
| Returns the position of the "from" object at the instant that a collision is first detected. More... | |
| const CollisionSolid | getFrom () |
| Returns the CollisionSolid pointer for the particular solid that triggered this collision. More... | |
| CollisionNode | getFromNode () |
| Returns the node that contains the CollisionSolid that triggered this collision. More... | |
| NodePath | getFromNodePath () |
| Returns the NodePath that represents the CollisionNode that contains the CollisionSolid that triggered this collision. More... | |
| LPoint3 | getInteriorPoint (const NodePath space) |
| Returns the point, within the interior of the "into" object, which represents the depth to which the "from" object has penetrated. More... | |
| const CollisionSolid | getInto () |
| Returns the CollisionSolid pointer for the particular solid was collided into. More... | |
| PandaNode | getIntoNode () |
| Returns the node that contains the CollisionSolid that was collided into. More... | |
| NodePath | getIntoNodePath () |
| Returns the NodePath that represents the specific CollisionNode or GeomNode instance that was collided into. More... | |
| bool | getRespectPrevTransform () |
| Returns true if the collision was detected by a CollisionTraverser whose respect_prev_transform flag was set true, meaning we should consider motion significant in evaluating collisions. More... | |
| LVector3 | getSurfaceNormal (const NodePath space) |
| Returns the surface normal of the "into" object at the point at which a collision is detected. More... | |
| LPoint3 | getSurfacePoint (const NodePath space) |
| Returns the point, on the surface of the "into" object, at which a collision is detected. More... | |
| float | getT () |
| returns time value for this collision relative to other CollisionEntries More... | |
| bool | hasContactNormal () |
| Returns true if the contact normal has been specified, false otherwise. More... | |
| bool | hasContactPos () |
| Returns true if the contact position has been specified, false otherwise. More... | |
| bool | hasInteriorPoint () |
| Returns true if the interior point has been specified, false otherwise. More... | |
| bool | hasInto () |
| Returns true if the "into" solid is, in fact, a CollisionSolid, and its pointer is known (in which case get_into() may be called to retrieve it). More... | |
| bool | hasSurfaceNormal () |
| Returns true if the surface normal has been specified, false otherwise. More... | |
| bool | hasSurfacePoint () |
| Returns true if the surface point has been specified, false otherwise. More... | |
| output (Ostream out) | |
| resetCollided () | |
| prepare for another collision test More... | |
| setContactNormal (const LVector3 normal) | |
| Stores the surface normal of the "into" object at the contact pos. More... | |
| setContactPos (const LPoint3 pos) | |
| Stores the position of the "from" object at the instant at which the collision is first detected. More... | |
| setInteriorPoint (const LPoint3 point) | |
| Stores the point, within the interior of the "into" object, which represents the depth to which the "from" object has penetrated. More... | |
| setSurfaceNormal (const LVector3 normal) | |
| Stores the surface normal of the "into" object at the point of the intersection. More... | |
| setSurfacePoint (const LPoint3 point) | |
| Stores the point, on the surface of the "into" object, at which a collision is detected. More... | |
| setT (float t) | |
| Sets a time value for this collision relative to other CollisionEntries. More... | |
| write (Ostream out, int indent_level) | |
| Public Member Functions inherited from TypedWritable | |
| object | __reduce__ () |
| object | __reduce_persist__ (object pickler) |
| VectorUchar | encodeToBamStream () |
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More... | |
| bool | encodeToBamStream (VectorUchar data, BamWriter writer) |
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More... | |
| fillin (DatagramIterator scan, BamReader manager) | |
| This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More... | |
| UpdateSeq | getBamModified () |
| Returns the current bam_modified counter. More... | |
| markBamModified () | |
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More... | |
| Public Member Functions inherited from TypedObject | |
| TypeHandle | getType () |
| int | getTypeIndex () |
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
| bool | isExactType (TypeHandle handle) |
| Returns true if the current object is the indicated type exactly. More... | |
| bool | isOfType (TypeHandle handle) |
| Returns true if the current object is or derives from the indicated type. More... | |
| Public Member Functions inherited from ReferenceCount | |
| int | getRefCount () |
| Returns the current reference count. More... | |
| ref () | |
| Explicitly increments the reference count. More... | |
| bool | testRefCountIntegrity () |
| Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
| bool | testRefCountNonzero () |
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
| bool | unref () |
| Explicitly decrements the reference count. More... | |
Static Public Member Functions | |
| static TypeHandle | getClassType () |
| Static Public Member Functions inherited from TypedWritableReferenceCount | |
| static TypedWritableReferenceCount | decodeFromBamStream (VectorUchar data, BamReader reader) |
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More... | |
| static TypeHandle | getClassType () |
| Static Public Member Functions inherited from TypedWritable | |
| static TypeHandle | getClassType () |
| Static Public Member Functions inherited from TypedObject | |
| static TypeHandle | getClassType () |
| Static Public Member Functions inherited from ReferenceCount | |
| static TypeHandle | getClassType () |
Public Attributes | |
| CollisionNode | from_node |
| Returns the node that contains the CollisionSolid that triggered this collision. More... | |
| NodePath | from_node_path |
| Returns the NodePath that represents the CollisionNode that contains the CollisionSolid that triggered this collision. More... | |
| const CollisionSolid | from_solid |
| Returns the CollisionSolid pointer for the particular solid that triggered this collision. More... | |
| PandaNode | into_node |
| Returns the node that contains the CollisionSolid that was collided into. More... | |
| NodePath | into_node_path |
| Returns the NodePath that represents the specific CollisionNode or GeomNode instance that was collided into. More... | |
| const CollisionSolid | into_solid |
| Returns the CollisionSolid pointer for the particular solid was collided into. More... | |
| bool | respect_prev_transform |
| Returns true if the collision was detected by a CollisionTraverser whose respect_prev_transform flag was set true, meaning we should consider motion significant in evaluating collisions. More... | |
| float | t |
| returns time value for this collision relative to other CollisionEntries More... | |
| Public Attributes inherited from TypedObject | |
| TypeHandle | type |
| Returns the TypeHandle representing this object's type. More... | |
| Public Attributes inherited from ReferenceCount | |
| int | ref_count |
| The current reference count. More... | |
Defines a single collision event.
One of these is created for each collision detected by a CollisionTraverser, to be dealt with by the CollisionHandler.
A CollisionEntry provides slots for a number of data values (such as intersection point and normal) that might or might not be known for each collision. It is up to the handler to determine what information is known and to do the right thing with it.
| bool collided | ( | ) |
returns true if this represents an actual collision as opposed to a potential collision, needed for iterative collision resolution where path of collider changes mid-frame
| bool getAll | ( | const NodePath | space, |
| LPoint3 | surface_point, | ||
| LVector3 | surface_normal, | ||
| LPoint3 | interior_point | ||
| ) |
Simultaneously transforms the surface point, surface normal, and interior point of the collision into the indicated coordinate space.
Returns true if all three properties are available, or false if any one of them is not.
Simultaneously transforms the contact position and contact normal of the collision into the indicated coordinate space.
Returns true if all three properties are available, or false if any one of them is not.
|
static |
Returns the surface normal of the "into" object at the contact position.
The normal will be converted into whichever coordinate space the caller specifies.
Returns the position of the "from" object at the instant that a collision is first detected.
The position will be converted into whichever coordinate space the caller specifies.
| const CollisionSolid getFrom | ( | ) |
Returns the CollisionSolid pointer for the particular solid that triggered this collision.
| CollisionNode getFromNode | ( | ) |
Returns the node that contains the CollisionSolid that triggered this collision.
This will be a node that has been added to a CollisionTraverser via add_collider().
| NodePath getFromNodePath | ( | ) |
Returns the NodePath that represents the CollisionNode that contains the CollisionSolid that triggered this collision.
This will be a NodePath that has been added to a CollisionTraverser via add_collider().
Returns the point, within the interior of the "into" object, which represents the depth to which the "from" object has penetrated.
This can also be described as the intersection point on the surface of the "from" object (which is inside the "into" object). It can be thought of as the deepest point of intersection.
The point will be converted into whichever coordinate space the caller specifies.
| const CollisionSolid getInto | ( | ) |
Returns the CollisionSolid pointer for the particular solid was collided into.
This pointer might be NULL if the collision was into a piece of visible geometry, instead of a normal CollisionSolid collision; see has_into().
| PandaNode getIntoNode | ( | ) |
Returns the node that contains the CollisionSolid that was collided into.
This returns a PandaNode pointer instead of something more specific, because it might be either a CollisionNode or a GeomNode.
Also see get_into_node_path().
| NodePath getIntoNodePath | ( | ) |
Returns the NodePath that represents the specific CollisionNode or GeomNode instance that was collided into.
This is the same node returned by get_into_node(), represented as a NodePath; however, it may be more useful because the NodePath can resolve the particular instance of the node, if there is more than one.
| bool getRespectPrevTransform | ( | ) |
Returns true if the collision was detected by a CollisionTraverser whose respect_prev_transform flag was set true, meaning we should consider motion significant in evaluating collisions.
Returns the surface normal of the "into" object at the point at which a collision is detected.
The normal will be converted into whichever coordinate space the caller specifies.
Returns the point, on the surface of the "into" object, at which a collision is detected.
This can be thought of as the first point of intersection. However the contact point is the actual first point of intersection.
The point will be converted into whichever coordinate space the caller specifies.
| float getT | ( | ) |
returns time value for this collision relative to other CollisionEntries
| bool hasContactNormal | ( | ) |
Returns true if the contact normal has been specified, false otherwise.
See get_contact_normal(). Some types of collisions may not compute the contact normal.
| bool hasContactPos | ( | ) |
Returns true if the contact position has been specified, false otherwise.
See get_contact_pos(). Some types of collisions may not compute the contact pos.
| bool hasInteriorPoint | ( | ) |
Returns true if the interior point has been specified, false otherwise.
See get_interior_point(). Some types of collisions may not compute the interior point.
| bool hasInto | ( | ) |
Returns true if the "into" solid is, in fact, a CollisionSolid, and its pointer is known (in which case get_into() may be called to retrieve it).
If this returns false, the collision was detected into a GeomNode, and there is no CollisionSolid pointer to be retrieved.
| bool hasSurfaceNormal | ( | ) |
Returns true if the surface normal has been specified, false otherwise.
See get_surface_normal(). Some types of collisions may not compute the surface normal.
| bool hasSurfacePoint | ( | ) |
Returns true if the surface point has been specified, false otherwise.
See get_surface_point(). Some types of collisions may not compute the surface point.
| output | ( | Ostream | out | ) |
| resetCollided | ( | ) |
prepare for another collision test
| setContactNormal | ( | const LVector3 | normal | ) |
Stores the surface normal of the "into" object at the contact pos.
This normal is specified in the coordinate space of the "into" object.
| setContactPos | ( | const LPoint3 | pos | ) |
Stores the position of the "from" object at the instant at which the collision is first detected.
This position is specified in the coordinate space of the "into" object.
| setInteriorPoint | ( | const LPoint3 | point | ) |
Stores the point, within the interior of the "into" object, which represents the depth to which the "from" object has penetrated.
This can also be described as the intersection point on the surface of the "from" object (which is inside the "into" object).
This point is specified in the coordinate space of the "into" object.
| setSurfaceNormal | ( | const LVector3 | normal | ) |
Stores the surface normal of the "into" object at the point of the intersection.
This normal is specified in the coordinate space of the "into" object.
| setSurfacePoint | ( | const LPoint3 | point | ) |
Stores the point, on the surface of the "into" object, at which a collision is detected.
This point is specified in the coordinate space of the "into" object.
| setT | ( | float | t | ) |
Sets a time value for this collision relative to other CollisionEntries.
| write | ( | Ostream | out, |
| int | indent_level | ||
| ) |
| CollisionNode from_node |
Returns the node that contains the CollisionSolid that triggered this collision.
This will be a node that has been added to a CollisionTraverser via add_collider().
| NodePath from_node_path |
Returns the NodePath that represents the CollisionNode that contains the CollisionSolid that triggered this collision.
This will be a NodePath that has been added to a CollisionTraverser via add_collider().
| const CollisionSolid from_solid |
Returns the CollisionSolid pointer for the particular solid that triggered this collision.
| PandaNode into_node |
Returns the node that contains the CollisionSolid that was collided into.
This returns a PandaNode pointer instead of something more specific, because it might be either a CollisionNode or a GeomNode.
Also see get_into_node_path().
| NodePath into_node_path |
Returns the NodePath that represents the specific CollisionNode or GeomNode instance that was collided into.
This is the same node returned by get_into_node(), represented as a NodePath; however, it may be more useful because the NodePath can resolve the particular instance of the node, if there is more than one.
| const CollisionSolid into_solid |
Returns the CollisionSolid pointer for the particular solid was collided into.
This pointer might be NULL if the collision was into a piece of visible geometry, instead of a normal CollisionSolid collision; see has_into().
| bool respect_prev_transform |
Returns true if the collision was detected by a CollisionTraverser whose respect_prev_transform flag was set true, meaning we should consider motion significant in evaluating collisions.
| float t |
returns time value for this collision relative to other CollisionEntries


First, the basics.
Headings set your default page size
Add your four mochi images from your tutorial here.
Let's make an unordered list.
And now, one in order.
Sometimes you want to draw attention to something in a line of text.
Sometimes you want to strongly emphasize something in the text.
Sometimes you want to do both.
Soft line breaks can't wrap anything.
Neither can image tags, or hard lines.
Add a hard line under here.


Drake responds after getting booed off stage at Camp Flog Gnaw
by Andrew SacherAs you may have heard, Drake was booed off stage during his surprise set at Tyler, the Creator’s Camp Flog Gnaw Carnival, because there were rumors that Frank Ocean would be the surprise headliner and Drake is not Frank Ocean. Tyler responded with a series of tweets, and now Drake himself has also responded on Instagram. It seems like he’s taking it well: “Plot twist…just signed a 10 year residency at Camp Flog Gnaw sorry kids see you EVERY SINGLE YEAR till you are 30,” Drake joked.


17. Internals¶
Because some horrible hacks of PythonForWindows
are hidden and I wanted to talk about it.
17.1. remotectypes.py¶
Performing parsing of PEB / PE in remote process may be painful and i didn’t want to have two versions of all my parsing code.
So I made a wrapper around ctypes
that is able to do two things:
- Transform a 32bits ctypes structure into a 64bits one and reverse
This is done by replacing the
c_void_p
/c_char_p
byDWORD
orQWORD
and rewriting a wrapper around thectypes
POINTER
and other stuff. It might not works for every structure by i didn’t have any problem for now.
- Read the memory in another process
For this one I rewrote a class that use the standard
ctypes
structure offset-size calculation, extracts those information when asked for a field and read it from the target process. We just need to take care of special cases:POINTER
/ARRAY
/STRING
/ ..
We also need to be carreful about the inheritance, we need to inherit from “hidden”
ctypes
classes to keep the magic working.
This module exports the following API:
Both functions return a class that represent the structure in a remote process. The class.__init__ accept two arguments:
base_addr
: the address of the object in the remote processtarget
: an object with a methodread_memory
(so awindows.winobject.WinProcess
in our case)
Example WinProcess.peb
:
def peb(self):
if windows.current_process.bitness == 32 and self.bitness == 64:
return RemotePEB64(self.peb_addr, self)
if windows.current_process.bitness == 64 and self.bitness == 32:
return RemotePEB32(self.peb_addr, self)
return RemotePEB(self.peb_addr, self)
I am pretty sure that this code does NOT handle all the cases, so it might break some day.
17.2. syswow64.py – Crossing the heaven gate¶
One of my goal with PythonForWindows
is to have some abstraction of the bitness of the processes.
It means being able to work on a 32bits Python
or a 64bits Python
.
In the case of a 32bits python on a 64bits
system (SysWow64
) it’s not trivial to perform operation on
other 64bits
processes. For example directly calling CreateRemoteThread()
will not work.
To be able to perform those operation we must be able to execute code in the 64bits
part of our
SysWow64
process.
For that we need to jump to the 64bits segment of our process, execute some code then return.
To do so, we need to use some far jump
/ far ret
with the segments selector 0x23
(CS_32bits) and 0x33
(CS_64bits).
 This code is in:
Once we are able to execute some code in the 64bits
part we need to create the code that will call our API (in NTDLL).
To do that, I rely on the type information already present in the function of windows.winproxy
.
With these information we are able to know
- The name of the API
- The number of arguments
Then I generate the correct x64 stub (using windows.native_exec.simple_x64
) with the function:
One problem I encountered is that our function must be able to pass values of 64bits, so passing arguments by register is not possible.
For now I allocate a buffer where a python wrapper copy the parameters and the x64 stub retrieves them from here.
(It might be possible to do something by creating a WINCFUNC with only ULONG64 parameters).
The final result is a Python
function like the one in windows.winproxy
- It copies the arguments in the buffer
- Jumps on the 32->64 stub
- X64 bits code retrieves the arguments in the buffer and setup the registers and the stack for the call
- Calls the API
- Returns to 32bits mode.
Existing function are:


The fires burn in the surface and ground fuels with greater fire intensity than the other timber litter models. Dead-down fuels include greater quantities of 3-inch (7.6-cm) or larger limbwood resulting from overmaturity or natural events that create a large load of dead material on the forest floor. Crowning out, spotting, and torching of individual trees are more frequent in this fuel situation, leading to potential fire control difficulties. Any forest type may be considered if heavy down material is present; examples are insect- or disease-ridden stands, windthrown stands, overmature situations with deadfall, and aged light thinning or partial-cut slash. The fuel model G is depicted in photographs 28, 29, and 30.
Photo 28. Old-growth Douglas-fir with heavy ground fuels.
Photo 29. Mixed conifer stand with deaddown woody fuels.
Photo 30. Spruce habitat type where succession or natural disturbance
can produce a heavy downed fuel load.


PyTorch is gaining popularity in the Deep Learning community and is widely being used by deep learning practitioners, PyTorch is a Python-based library that provides Tensor computations. Furthermore, tensors are multidimensional arrays just like NumPy’s ndarrays which can run on GPU as well.
PyTorch provides functionalities such as:PyTorch provides a framework for us to build computational graphs as we go, and even change them during runtime. Particularly, this is valuable for situations where we don’t know how much memory for creating a neural network. You can work on all sorts of deep learning challenges using PyTorch.
The following are some of the challenges:The CIFAR-10 dataset consists of 60000 32×32 colour images in 10 classes, with 6000 images per class. There are 50000 training images and 10000 test images.
The dataset is divided into five training batches and one test batch, each with 10000 images. The test batch contains exactly 1000 randomly-selected images from each class. The training batches contain the remaining images in random order, but some training batches may contain more images from one class than another. Between them, the training batches contain exactly 5000 images from each class.
Here are the classes in the dataset, as well as 10 random images from each:
The Conv2d layer transforms a 3-channel image to a 16-channel feature map, and the MaxPool2d layer halves the height and width. The feature map gets smaller as we add more layers, until we are finally left with a small feature map, which can be flattened into a vector. We can then add some fully connected layers at the end to get vector of size 10 for each image.
After preparing dataset and defining network model, the next step is to setup the training system. To be more specific, we need to define Loss function, Optimizer and some other Hyper-parameters that support the training procedure.
Loss function is the component of the training system quantifying the badness of the model. The choice of Loss function depends heavily on the the problem type. For numerical values, the most common cost functions is Square Error. For classification task, Cross-Entropy is commonly preferred. In this dataset, there are 10 classes, the proper loss function is clearly the Cross-Entropy loss. Softmax operation is also applied to map the result to range [0, 1] as related to probability.
After calculating the current loss of training’s specific state, a mechanism is needed to search and update the parameters for minimizing the loss value. As widely known, the most popular optimization algorithm for Neural Networks is Gradient Descent. Briefly, at a state, for each parameter, the optimizer will determined how to change its value to reach the lowest minima for the cost function.


?6
7
8
9
10
ã
The
New
York
copyright
reserved
botanical
Garden
Anthurium
gracile
(Rudge)
Lindl.
Determined
by
Thomas
BÈ
Croat,
1975
Missouri
Botanical
Gardcn
N¡
FlC.
PéRE
DUSS,
HERBIER
DE
LA
MARTINIQUE.
ÇV
Ctiƒ&Uti
^0+4
1622477
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


EXCL: Infinite Crisis Shows How Blue Beetle Survived in the Dark Multiverse
by L.D. NolanThe original Infinite Crisis saw Ted Kord/Blue Beetle -- in one of the darkest moments in DC history -- murdered by Max Lord. However, Tales from the Dark Multiverse -- a series of one-shots set in the titular place first introduced in Dark Nights: Metal -- imagines a world in which Blue Beetle survived.
DC has given CBR an exclusive preview of Tales from the Dark Multiverse: Infinite Crisis #1 in which Kord and Lord face-off. In the original, Blue Beetle refused to even entertain the notion of joining Lord and Checkmate. However, in this new retelling, Beetle pretends to join Lord, though a previous first look revealed that the hero goes on to turn the tables and kill his attempted murderer.
You can see CBR's exclusive preview of Infinite Crisis #1 below along with solicitation information for the book.
TALES FROM THE DARK MULTIVERSE: INFINITE CRISIS #1
- written by JAMES TYNION IV
- art by AARON LOPRESTI and MATT RYAN
- cover by LEE WEEKS
- DC’s mega-event “Infinite Crisis” saw the destruction of the Trinity, the rise of Alexander Luthor and Superboy-Prime, and the rebirth of the Multiverse...but it all started with Ted Kord, the Blue Beetle, who saw it all coming and died with secrets that could’ve saved the world. But...things happened differently in the Dark Multiverse! Not only does Blue Beetle survive— he thrives! And after killing Maxwell Lord himself, Ted sets off a chain of events that irreversibly alters the lives of the Justice League and his best friend, Booster Gold. In trying to prevent a crisis, Blue Beetle becomes the Crisis...and the Dark Multiverse will never be the same.
- ONE-SHOT
- PRESTIGE FORMAT
- ON SALE 11.27.19
- $5.99 US | 48 PAGES
- FC|DC
Tales from the Dark Multiverse: Infinite Crisis #1 releases November 27.
https://schema.orgBreadcrumbListListItem1Homehttps://www.cbr.com/ListItem2Comicshttps://www.cbr.com/category/comics/ListItem3Comic Newshttps://www.cbr.com/category/comics/news/ListItem4EXCL: Infinite Crisis Shows How Blue Beetle Survived in the Dark Multiversehttps://www.cbr.com/infinite-crisis-shocking-twist-booster-gold/


flutter_device_information
Introduction
A plugin for using Android devices information in Flutter. You can use it to get Android release version,Android API version,board name,brand name,model name, cpu ABI etc.
Features
Supports in Android now.
- get release version.
- get API version(SDKINT).
- get board name.
- get brand name.
- get model name.
- get CPUABI.
Getting Started
For help getting started with Flutter, view the online Flutter Documentation.
1.In your flutter project add the dependency:
dependencies:
...
flutter_devices_information: any
2.import flutter_device_information.dart
import 'package:flutter_device_information/flutter_device_information.dart';
///
Your code here.
///
3.Use methods in library.
Future<void> getInfos() async {
String platformVersion = await FlutterDeviceInformation.platformVersion;
String sdkInt = await FlutterDeviceInformation.sdkInt;
String board = await FlutterDeviceInformation.board;
String brand = await FlutterDeviceInformation.brand;
String model = await FlutterDeviceInformation.model;
String cpuABI = await FlutterDeviceInformation.cpuAbi;
}
Examples
Here is Examples. You can find the sample codes and the screenshot in it.
More documentations
For help getting started with the library, view the online documentation.
Request issues
Please request bugs at the issue tracker.
License
More infomation here: License.


date
(filter in module ng
)
Formats date
to a string based on the requested format
.
format
string can be composed of the following elements:
'yyyy'
: 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010)'yy'
: 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)'y'
: 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199)'MMMM'
: Month in year (January-December)'MMM'
: Month in year (Jan-Dec)'MM'
: Month in year, padded (01-12)'M'
: Month in year (1-12)'dd'
: Day in month, padded (01-31)'d'
: Day in month (1-31)'EEEE'
: Day in Week,(Sunday-Saturday)'EEE'
: Day in Week, (Sun-Sat)'HH'
: Hour in day, padded (00-23)'H'
: Hour in day (0-23)'hh'
: Hour in am/pm, padded (01-12)'h'
: Hour in am/pm, (1-12)'mm'
: Minute in hour, padded (00-59)'m'
: Minute in hour (0-59)'ss'
: Second in minute, padded (00-59)'s'
: Second in minute (0-59)'.sss' or ',sss'
: Millisecond in second, padded (000-999)'a'
: am/pm marker'Z'
: 4 digit (+sign) representation of the timezone offset (-1200-+1200)format
string can also be one of the following predefined
localizable formats:
'medium'
: equivalent to 'MMM d, y h:mm:ss a'
for en_US locale
(e.g. Sep 3, 2010 12:05:08 pm)'short'
: equivalent to 'M/d/yy h:mm a'
for en_US locale (e.g. 9/3/10 12:05 pm)'fullDate'
: equivalent to 'EEEE, MMMM d,y'
for en_US locale
(e.g. Friday, September 3, 2010)'longDate'
: equivalent to 'MMMM d, y'
for en_US locale (e.g. September 3, 2010'mediumDate'
: equivalent to 'MMM d, y'
for en_US locale (e.g. Sep 3, 2010)'shortDate'
: equivalent to 'M/d/yy'
for en_US locale (e.g. 9/3/10)'mediumTime'
: equivalent to 'h:mm:ss a'
for en_US locale (e.g. 12:05:08 pm)'shortTime'
: equivalent to 'h:mm a'
for en_US locale (e.g. 12:05 pm)format
string can contain literal values. These need to be quoted with single quotes (e.g.
"h 'in the morning'"
). In order to output single quote, use two single quotes in a sequence
(e.g. "h o''clock"
).
{{ date_expression | date[:format] }}
$filter('date')(date[, format])
date – {(Date|number|string)} –
Date to format either as Date object, milliseconds (string or number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.SSSZ and it's shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ). If no timezone is specified in the string input, the time is considered to be in the local timezone.
format(optional) – {string=} –
Formatting rules (see Description). If not specified,
mediumDate
is used.
{string}
– Formatted string or the input if input is not recognized as date/millis.


Title
Save
cancel
List of blogs
new
no blogs to show yet!
{{blog.title}}
Posted:{{ blog.createdAt | date:'mediumDate'}}
delete
edit


HEAD

FAQ Download Source
© 2014 TBD - MIT License
Download
Looking for something else? Select other options:
Verifying Signatures Donate


A section defining tools to auto-install and put on the PATH. This is ignored if agent none is specified.
PATH
agent none
Required
No
Parameters
None
Allowed
Inside the pipeline block or a stage block.
pipeline
stage
pipeline { agent any tools { maven 'apache-maven-3.0.1' (1) } stages { stage('Example') { steps { sh 'mvn --version' } } } }


Add Personal Link |
add_circle |
Add Link Set |
add_circle |
Manage Links |
build |
|
Add Custom Link
|
add_circle |
|
Add Link Set
|
add_circle |
|
Manage Links
|
build |
| BYU Sets | Other Sets |
| BYU Homepage Menus |
| BYU Homepage Favorites |
| Current RouteY Menus |
| BYU Sets | Other Sets |
| Sports |
| Academics |
| News |
| Admin |
| Finance |


Mac OSX setup
Mac
Step 1: Learn your Mac OS X Version
- Click on the Apple icon in the top left of your screen.
- Select “About This Mac”
- In the window that comes up, under the title “Mac OS X” there will be a version number.
If you have 10.9 or above, you’re good to go. Otherwise, flag down a volunteer, and they’ll help you with the next steps. If you’re reading this in advance, now is a good time to upgrade.
Step 2: Install Xcode Command Line tools
Xcode Command Line Tools include lots of tools your computer needs to set up new software.
Step 2.1: Open the Terminal
Open your Applications folder, then look for the Utilities folder and open it. Open the Terminal application.
We’ll be using Terminal a lot so you may want to add it to your dock. You can also launch Terminal using Spotlight search and searching for “terminal”.
Step 2.2: Check to see if you have the tools installed already
Type this in the terminal:
gcc --version
Expected result:
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
If you see something about Darwin and LLVM, you are good to go. If not, use one of the steps below to install the tools. Come back afterwords and run this command to make sure it works!
Step 2.3: Run the xcode-select command
You can install these tools by trying to run a command that requires them.
Type this in the terminal:
xcode-select --install
Step 2.4: Install the tools
Click on the “Install” button. When the download finishes, go back and run the test to make sure it works.
Step 3: Install Homebrew
Type this in your terminal to see if you already have homebrew:
brew -v
If you see a response like this (your version number might be different):
Homebrew 0.9.9
then you already have Homebrew and you can skip this section! If you do not see a response with a version of Homebrew, and instead see something like “Command not found”, then you should install Homebrew. To do so, type this in the terminal:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
You may have to press ‘ENTER’ when prompted and type in your password.
If that doesn’t work, visit https://github.com/Homebrew/homebrew/wiki/installation and follow the instructions there.
Check:
Type this in the terminal:
brew -v
Approximate expected result:
Homebrew 0.9.9
Step 4: Install Postgres
Type this in the terminal:
brew install postgresql
If this is your first time installing Postgres with Homebrew, you’ll need to create a database.
Type this into the terminal:
initdb /usr/local/var/postgres -E utf8
Now you will need to create a user for your Database
Type the following into the terminal:
createuser -s postgres
Next type this into the terminal:
brew services start postgresql
Next step:
Go on to Windows setup.
Or:
Go back to Choose your own operating system.


| Class | Description |
|---|---|
| Address |
The type Address.
|
| AddressField |
The type Address field.
|
| AmountedCurrency |
Created by eugene.goltsev on 26.05.2018.
|
| AmountModificator |
The type Amount modificator.
|
| Authenticate |
The type Authenticate.
|
| Authorize |
The type Authorize.
|
| AuthorizeAction |
The type Authorize action.
|
| AuthorizeActionResponse |
The type Authorize action response.
|
| BillingAddressField |
The type Billing address field.
|
| BillingAddressFormat |
The type Billing address format.
|
| BINLookupResponse |
The type Bin lookup response.
|
| Card |
Created by eugene.goltsev on 27.04.2018.
|
| CardRawData |
Created by eugene.goltsev on 14.02.2018.
|
| Charge |
Created by eugene.goltsev on 14.02.2018.
|
| CreateTokenCard |
The type Create token card.
|
| CreateTokenSavedCard |
The type Create token saved card.
|
| EmailAddress |
The type Email address.
|
| ExpirationDate |
The type Expiration date.
|
| ExtraFee |
Created by eugene.goltsev on 27.04.2018.
|
| Order |
The type Order.
|
| PaymentOption |
Created by eugene.goltsev on 27.04.2018.
|
| PhoneNumber |
The type Phone number.
|
| Quantity |
The type Quantity.
|
| Receipt |
The type Receipt.
|
| Reference |
The type Reference.
|
| Response |
The type Response.
|
| SaveCard |
The type Save card.
|
| SavedCard |
The type Saved card.
|
| Shipping |
The type Shipping.
|
| Source |
Created by eugene.goltsev on 14.02.2018.
|
| SourceRequest |
The type Source request.
|
| Tax |
The type Tax.
|
| Token |
Created by eugene.goltsev on 12.02.2018.
|
| TokenizedCard |
The type Tokenized card.
|
| TrackingURL |
The type Tracking url.
|
| TransactionDetails |
The type Transaction details.
|


{{.URN}}
Significant distance set to: {{.Distance}}
Important Topics:
{{.BestTopics}}
Text:
{{.Text}}


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Lean.2C.20machine.20learning.2C.20and.20internships.html ---
Hi everyone,
Last summer, Koundinya (Kody) Vajjha, Joseph Tassarotti, and I have been using Lean to formally prove a (very basic) result
in machine learning theory: that decision stumps are PAC learnable. I'm a machine learning researcher working in the industry and
increasingly I have been feeling the need for more trustworthy machine learning applications. I started this project as an experiment
to see how far we could get in a summer. We chose Lean because I had prior experience with Coq and we needed to build on the
measure theory available in mathlib. It was a very positive experience, we finished the proof, and I really enjoyed working with Lean.
If you're interested, you can find the proof: https://github.com/jtristan/stump-learnable/wiki/A-formal-proof-that-decisions-stumps-are-PAC-learnable. It was my first experience with Lean and I had not used a proof assistant in many years so I am aware that my proofs could use a lot of cleaning. The part of the development written by Kody is of course in much better shape.
We also put a paper on arxiv describing our work: https://arxiv.org/pdf/1911.00385.pdf
As a side note, I'm thinking of doing some more work on using Lean for machine learning and I am looking for an intern.
(to join me at Oracle Labs in Boston in the summer of 2020)
Things we could work on include:
If you're interested please send me an email! (https://jtristan.github.io/)
Nice work! Are you considering PRing the mathematical bits of your repo to mathlib?
There's a to_mathlib
file in the repo.
Yes, we would certainly like to do so.
We split the proof in two folders for that reason. The results in the lib folder are more general and could potentially be contributed. The results in the stump folder are very specific to the machine learning result.
The to_mathlib
file contains a few lemmas on integration, the Markov and Chebyshev inequalities, lemmas about the Giry monad on probability measures.
I also used the Dynkin pi-lambda theorem to prove that the product measure constructed out of the Giry monad is in fact a product measure.
None of this would have been possible without Johannes' work. Many thanks to him!
i'm amused thatflypitch
's library on dvector
s has been replicated verbatim and copyrighted by Oracle: https://github.com/jtristan/stump-learnable/blob/master/src/lib/dvector.lean
That file is from the formalabstracts
repo. https://github.com/formalabstracts/formalabstracts/blob/master/src/data/dvector.lean
NOT flypitch.
I am a contributing member of formalabstracts
and the license for formalabstracts
allows reuse.
yes, that file is also copied verbatim from flypitch
I don't think apache license supports copying without attribution (and relicensing under oracle seems especially problematic)
ah, correction, it seems stump-learnable is apache licensed but oracle copyrighted
Relicensing seems allowed:
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)#fulltext
Well, this is a mistake on our part and we will fix it. I didn't realize that some code was copied from another project (I didn't work on that file), but granted, I should have. I will work with Kody to clearly separate the code that was copied and give it the proper attribution.
This wouldn't have been a problem if dvector
was PR'd to mathlib :P
@John Tristan , maybe it's standard in your area, but in the sentence in the paper
The concept class
C
is the subset ofX^{0,1}
it took me a while to realise thatX^{0,1}
meant functions fromX
to{0,1}
(the indicator function notation was not a problem, the lambda gave me no clues as to the domain :-). As written it usually means functions{0,1}
toX
, in mathematical contexts.
John Tristan , maybe it's standard in your area, but in the sentence in the paper
The concept class
C
is the subset ofX^{0,1}
it took me a while to realise thatX^{0,1}
meant functions fromX
to{0,1}
(the indicator function notation was not a problem, the lambda gave me no clues as to the domain :-). As written it usually means functions{0,1}
toX
, in mathematical contexts.
Indeed, that's a very confusing typo, thanks!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Use the gear ^ to see the code documentation
WeMips Usage Guide
Features
Supported Operations
Mips Arithmetic Instructions
- ADD
- ADDI
- ADDU
- ADDIU Unimplemented
- SUB Unimplemented
- SUBU
- LUI
Mips Logical Instructions
- AND
- ANDI
- NOR
- OR
- ORI
- SLL
- SRL
- BEQ
- BNE
- J
- JAL
- JR Unimplemented
Mips Memory Access Instructions
- LW Unimplemented
- SW Unimplemented
- LH Unimplemented
- LHU Unimplemented
- SH Unimplemented
- LB
- LBU
- SB
Mips Comparison Instructions
- SLT Unimplemented
- SLTI Unimplemented
- SLTU Unimplemented
- SLTIU Unimplemented


Are you studying for your Citizenship interview and test? Watch these videos where each question is read and answered in English and Spanish, for you to practice.


OBFundsConfirmationConsentResponse1_Data
- ConsentId : String
Unique identification as assigned to identify the funds confirmation consent resource.
- CreationDateTime : Date
Date and time at which the resource was created.All dates in the JSON payloads are represented in ISO 8601 date-time format. \\nAll date-time fields in responses must include the timezone. An example is below:\\n2017-04-05T10:43:07+00:00
- DebtorAccount : OBFundsConfirmationConsentResponse1_Data_DebtorAccount
- ExpirationDateTime : Date
Specified date and time the funds confirmation authorisation will expire.\\nIf this is not populated, the authorisation will be open ended.All dates in the JSON payloads are represented in ISO 8601 date-time format. \\nAll date-time fields in responses must include the timezone. An example is below:\\n2017-04-05T10:43:07+00:00
- Status : String
Specifies the status of consent resource in code form.
- Enum:
- Authorised
- AwaitingAuthorisation
- Rejected
- Revoked
- StatusUpdateDateTime : Date
Date and time at which the resource status was updated.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00


<PaymentCardTextField />
A text field component specialized for collecting credit/debit card
information.
It manages multiple text fields under the hood to collect this information.
It’s designed to fit on a single line.
Props
| Key | Type | Description |
|---|---|---|
| style | Object | Accepts all View styles, also supports the color param |
| cursorColor (iOS) | String | The cursor color for the text field |
| textErrorColor (iOS) | String | The text color to be used when the user has entered invalid information, such as an invalid card number |
| placeholderColor (iOS) | String | The text placeholder color used in each child field |
| keyboardAppearance (iOS) | String | Determines the color of the keyboard. One of default, light, dark |
| numberPlaceholder | String | The placeholder for the card number field |
| expirationPlaceholder | String | The placeholder for the expiration field |
| cvcPlaceholder | String | The placeholder for the cvc field |
| disabled (iOS) | Bool | Enable/disable selecting or editing the field. Useful when submitting card details to Stripe |
| enabled (Android) | Bool | Enable/disable selecting or editing the field. Useful when submitting card details to Stripe |
| onChange | Func | This function will be called each input change |
| onParamsChange(valid Bool, params: Object) | Func | This function will be called each input change, it takes two arguments |
Instance Methods (Available via ref)
| Method Name | Arguments | Description |
|---|---|---|
| isFocused | Check if the PaymentCardTextField is focus or not | |
| focus | Focus the PaymentCardTextField (open Keyboard) | |
| blur | Blur the PaymentCardTextField (close Keyboard) | |
| setParams (iOS) |
params: { number, expMonth, expYear, cvc }
|
Set the PaymentCardTextField value |
onParamsChange params
| Key | Type | Description |
|---|---|---|
| valid | Bool | Whether or not the form currently contains a valid card number, expiration date, and CVC |
| params | Object | Contains entered card params: number, expMonth, expYear and cvc |
Initial Params
To set initial params you can use the
<instance>.setParams(params)
method which is available via
ref
. For example, if you’re using another library to scan your
user’s credit card with a camera, you can assemble that data into an object
and set this property to that object to prefill the fields you’ve collected.
You can also access the valid
and params
info via
<instance>.valid
and
<instance>.params
respectively.
Component Example
import React, { Component } from 'react'
import { StyleSheet } from 'react-native'
import { PaymentCardTextField } from 'tipsi-stripe'
const styles = StyleSheet.create({
field: {
width: 300,
color: '#449aeb',
borderColor: '#000',
borderWidth: 1,
borderRadius: 5,
}
})
class FieldExample extends Component {
handleFieldParamsChange = (valid, params) => {
console.log(`
Valid: ${valid}
Number: ${params.number || '-'}
Month: ${params.expMonth || '-'}
Year: ${params.expYear || '-'}
CVC: ${params.cvc || '-'}
`)
}
isPaymentCardTextFieldFocused = () => this.paymentCardInput.isFocused()
focusPaymentCardTextField = () => this.paymentCardInput.focus()
blurPaymentCardTextField = () => this.paymentCardInput.blur()
resetPaymentCardTextField = () => this.paymentCardInput.setParams({})
render() {
return (
<PaymentCardTextField
ref={ (ref) => {
this.paymentCardInput = ref;
}}
style={styles.field}
cursorColor={...}
textErrorColor={...}
placeholderColor={...}
numberPlaceholder={...}
expirationPlaceholder={...}
cvcPlaceholder={...}
disabled={false}
onParamsChange={this.handleFieldParamsChange}
/>
)
}
}


Thank you for contacting Mo Foods, your message has been received and we will reply you within 24hours. Return Home


Bot
A Discord bot that has its own command registry, storage, utilities, etc.
Constructor Summary
| Public Constructor | ||
| public |
constructor(config: ConfigObject) |
Member Summary
| Public Members | ||
| public |
|
|
| public |
|
|
| public |
|
|
| public |
|
|
| public |
|
|
| public get |
|
|
| public |
|
|
| public get |
|
|
| public |
|
|
| public |
|
Method Summary
| Public Methods | ||
| public |
buildCommand(info: CommandInfo, funcs: CommandBuilderFunctions): CommandBuilder Create a command builder |
|
| public |
Instantiates all bot classes and storages, and creates the client |
|
| public |
registerCommand(command: Command | function): Bot Registers a single command to the bot's registry |
|
| public |
registerCommands(commands: Command[] | function[]): Bot Registers multiple commands to the bot's registry |
|
| public |
registerDefaultCommands(options: Object): Bot Registers the default commands to the bot's registry |
|
| public |
Registers the default modules to the bot's registry |
|
| public |
Registers both the default modules and commands to the bot's registry |
|
| public |
registerEvalObject(key: string, obj: Object): Bot Registers a single object to be usable by the eval command |
|
| public |
registerEvalObjects(obj: Object): Bot Registers multiple objects to be usable by the eval command |
|
| public |
registerModule(module: Module | function | string[]): Bot Registers a single module to the bot's registry |
|
| public |
registerModules(modules: Module[] | function[] | Array[]): Bot Registers multiple modules to the bot's registry |
Public Constructors
public constructor(config: ConfigObject) source
Params:
| Name | Type | Attribute | Description |
| config | ConfigObject | The configuration to use |
Public Members
public dispatcher: CommandDispatcher source
public localStorage: LocalStorage source
public permissions: BotPermissions source
public get registry: CommandRegistry source
public storage: Object source
Properties:
| Name | Type | Attribute | Description |
| settings | SettingStorage | ||
| modRoles | ModRoleStorage | ||
| allowedChannels | AllowedChannelStorage |
Public Methods
public buildCommand(info: CommandInfo, funcs: CommandBuilderFunctions): CommandBuilder source
Create a command builder
Params:
| Name | Type | Attribute | Description |
| info | CommandInfo |
|
The command information |
| funcs | CommandBuilderFunctions |
|
The command functions to set |
public createClient(): Client source
Instantiates all bot classes and storages, and creates the client
public registerCommand(command: Command | function): Bot source
Registers a single command to the bot's registry
public registerCommands(commands: Command[] | function[]): Bot source
Registers multiple commands to the bot's registry
public registerDefaultCommands(options: Object): Bot source
Registers the default commands to the bot's registry
Params:
| Name | Type | Attribute | Description |
| options | Object |
|
Object specifying what commands to register |
| options.about | boolean |
|
Whether or not to register the built-in about command |
| options.modRoles | boolean |
|
Whether or not to register the built-in mod roles commands |
| options.channels | boolean |
|
Whether or not to register the built-in channels commands |
| options.blacklist | boolean |
|
Whether or not to register the built-in blacklist commands |
public registerDefaults(): Bot source
Registers both the default modules and commands to the bot's registry
public registerEvalObject(key: string, obj: Object): Bot source
Registers a single object to be usable by the eval command
public registerEvalObjects(obj: Object): Bot source
Registers multiple objects to be usable by the eval command
Params:
| Name | Type | Attribute | Description |
| obj | Object | An object of keys: values |


libSMCE
0.0
SmartCar Platform Emulator library
include
SMCE
Macros
SMCE_iface.h File Reference
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Macros
#define
SMCE_API
#define
SMCE_INTERNAL
Macro Definition Documentation
◆
SMCE_API
#define SMCE_API
◆
SMCE_INTERNAL
#define SMCE_INTERNAL
Generated by
1.9.2


Engineering Computation
fundamentals of computational thinking and data science in engineering computation
Abel Sanchez and John R. Williams
Perfect Storm
~1994 Browsers
2004 First Web Apps
Very Complex
2004 W3C Vote
HTML5’s Birth
- 2 days later …
- Schism with W3C
- WHATWG (web hypertext application technology working group)
- All major browser vendors except IE
2004 W3C Vote
JavaScript Challenges
Firefox Growth
2006
- Browsers were believed to be fast enough
- Heavy apps like Gmail, Google Maps, ran well
- JavaScript was not perceived as a bottleneck
- JavaScript too slow for heavy client side computation
V8 Design Goals
- Optimize for the apps of the future
- Support heavy client side computation
- Transform browser into a scalable application platform
- Enable a new class of web applications
Performance Leap
- 2006 – 2013
- JavaScript 100x faster
- Heap sizes up and GC pauses down
- Every generation improves
- Not just V8
- All major browsers
- Mozilla, IE, Opera, Safari
V8 Score on V8Bench (version7)
V8 Benchmark Suite – Version 7
Mobile Performance
New Generation of Huge Web Apps
- Web apps are really REALLY big
- ~500,000 loc JavaScript - gmail
- ~600,000 loc JavaScript - amazon.com
- ~900,000 loc JavaScript - espn.com
- ~1,500,000 loc JavaScript - cnn.com
Execution Time Today
Today’s Applications
- Long Running
- Heavy
- Data Rich
- Communications Rich
- Multimedia Rich
- Graphically Heavy
- Heavy Interactivity
Asm.js
JavaScript is Huge
Video Games
Big Data
Internet Minute
Jet engine 10TB of data in 30 minutes
Internet of Things
Internet of Things
Institute for Data, Systems, and Society
Data Stores
City Data
City Data
Energy Systems
Traffic Systems
In Closing
In Closing


{% extends 'dashboard/base/base.html' %} {% block body %}
You have {{post_count}} Posts in total
Someone bookmarked your listing!
| Date | Post Title |
|---|---|
| {{ post.created_at| date}} | {{ post.title}} |
| Date | Post Title |
|---|---|
| {{ post.created_at| date}} | {{ post.title}} |
2019 Suchana by Cyclone Themes
--> {% endblock %}


Me and a friend had heard of salvia and it sounded like a good experience so we went to the local head shop and purchased 20x purple sticky salvia. $82.00 for about a gram. I thought to myself this better be worth it.
So first of all I should explain this to you. When I try new drugs I find it best not to research them so Iím not expecting a certain trip. I guess I just like to go into it not knowing what will happen I have a better time this way. I definitely learned my lesson with salvia! Okay so I basically had no clue what effect the salvia would have on me and I was very excited to find out. I was also very nervous. We decided to have my girlfriend come along as a sitter which was definitely a good idea. We decided to go to a near by lake and try the salvia outdoors in a very beautiful setting surrounded by pine trees and having a spectacular view of the lake and mountains.
We walked to a small clearing in the woods about 25 feet from the lake. We set the 3 foot bong on the picnic bench and packed a bowl of half cannibus half salvia. My friend tried it first, all I can remember was he started giggling and walking around lifting his legs very high off the ground. I quickly said 'hold on Iím coming' and started giggling myself. I pinched a large amount of salvia and smooshed it on the salvia and cannibus that was left the bowl. I milked it up exhaled, and laughed at something my girlfriend had said about my friend. I quickly cleared the bong and decided to take another rip.
I had initially planned on holding the hit in for as long as possible but I really had no choice when it came down to it. All I remember was looking up at a gigantic red and blue lego building I had no clue what was going on or where I was. This gigantic building was the 3 foot bong that I had just smoked out of 2 seconds ago!   I was in a different world!!!
Time seemed to slow down to the point where I could see every layer in any object that I looked at sort of like pages in a book. The layers appeared to be rolled up news papers with the words 'Keech up' clearly printed on every newspaper in red. I was extremely scared at this point! My body stood up but I wasn't controlling myself. Just like everything else there I could see billions of tiny microscopic layers to my body and they all looked like tiny versions of me. While my body stood up I remember being one of those tiny layers except I was stuck in my right hand. It was definately terrifying not being in control of my own body, I thought that I would be stuck in my hand forever. My body walked towards the table and for some reason waved at my girlfriend. As my hand passed by her I said 'helloí. I was sad because whatever part of me that was controlling my body had taken my life from me. I thought that I would be living in my hand forever!!
A few seconds later I was sitting at the table with some control over my self. As I looked around all I saw were billions of rolled up newspapers with the words 'keech up' printed on them in red. I closed my eyes hoping to fall asleep which greatly intensified the whole situation. Really weird things started happening! I found my self living in a book. Not like a story in a book just a book. But I wasn't alone my whole family was there with me. Everywhere I looked there were billions of books and when my book would collide with another I would somehow be transfered to that book. All the time seeing my family and different versions of myself living in each of the books. I'm not sure how I got out of the books but when I did I found myself falling into the living room of the house I grew up in.
I saw my family once again standing in a circle. As I approached the carpeted floor in my living room I suddenly landed in the mantle of my fire place once again with the rest of my family living there right beside me. I wanted to tell them that they had been living in a fireplace mantle for there whole life but I didn't want them to be sad or scared like I was. I can't quite remember what other random objects I had fallen into but I know there were more then two. And every object that I was living in I really thought that I was going to live in that object for the rest of my life!
I now opened my eyes and managed to ask my friend what was going on. I wanted to know if he was in the same world as me. He kept saying yeah Iím here to man. But later on I found out he was just trying to keep me from going nuts. I felt relieved that I wasn't the only one in this crazy world.  I remember looking at the lake. It looked different, I could see every layer and particle that made the water what it was and I thought I could walk right into the lake and be totally fine. Like the water appeared to be blue air. I am almost positive that I would have attempted to walk through the water if my girlfriend hadn't stopped me.
After about 20 minutes things became slightly less scary. Just as I started to feel happy something crashed through the trees near by. Although it was extremely hard I managed to focus on whatever had made all the noise. It was a small deer. I remember looking right into it's eyes like it was trying to talk to me. I then turned around and saw the same deer right behind me. I found this to be very weird but interesting. The deer left and I started to feel a little better.  This made me have a better time.
Eventually I felt well enough to walk back up the path and get into my friends S-10 blazer which made me feel very safe. My friend asked if I felt like I was okay to drive I laughed and told him I would crash on the first turn, I was still feeling the salvia quite strongly. Luckily my friend was able to drive and after about another 20 minutes the salvia had finally wore off.
What a strange experience this was. I have done shrooms and acid a few times so I wasn't to scared of trying salvia, I thought it would be completely different then it was. It was definately more intense then acid for about 15 minutes. I definately should have researched the salvia before I tried it. The same day that I tried the salvia I vouched to never try it again! I was amazed by it's power! But I was glad to have tried it and to have such a crazy experience with it.
The whole time I was tripping my girlfriend had been videotaping 15 second intervals of me with her cell phone. Later on I watched these clips and it was absolutely insane to see myself like I was! Like I was possessed! what a freaky look I had on my face!  Haha what a crazy day this was I have tried salvia once since then in a powder form but did not experience such an intense trip. Just felt weird like I was about to fall into the world that I was in the first time but I kept myself from doing so. All I can say is Salvia is a very powerful substance and you should not underestimate it's power!
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.


--- ---
Your application may use several approaches to databases depending on what is installed on the user's computer. Before you use the BDE you may want to check if it has been installed. If not then you may either ask the user to do so first, else just use something else. The function below (roughly a couple lines of code) checks for BDE presence.
uses Bde; function BDEInstalled: Boolean; begin Result := (dbiInit(nil) = 0); end;
A version of this function is available in the DelphiDabbler Code Snippets Database as CheckBDEInstalled.
function isbdepresent: boolean; var IdapiPath: array[0..255] of Char; IdapiHandle: THandle; begin result := false; GetProfileString('IDAPI', 'DLLPath', 'C:\', IdapiPath, 255); {next lines isolates the first directory path from the IdapiPath in case there are more} if Pos(';', StrPas(IdapiPath)) <> 0 then begin StrPCopy( IdapiPath, Copy(StrPas(IdapiPath), 1, Pred(Pos(';', StrPas(IdapiPath)))) ); end; IdapiHandle := LoadLibrary(StrCat(IdapiPath, '\IDAPI01.DLL')); if IdapiHandle < HINSTANCE_ERROR then result := false {IDAPI is not present on this system} else begin FreeLibrary(IdapiHandle); result := true; {IDAPI is present on this system} end; end;
Tip by Brian Bushay, formerly published on the defunct Delphi Pool web site.
Try to check the registry for the presence of the BDE:
with TRegistry.create do try Rootkey := HKEY_LOCAL_MACHINE; OpenKey('SOFTWARE\BORLAND\DATABASE ENGINE', false); CFGFile := ReadString('CONFIGFILE01'); finally Free; end; end;
The BDE is installed if CFGFile is not ''.
Tip based on anonymous code formerly published on the defunct Delphi Pool web site.


It is June and with impending rains, there is hope in the air. And we at Ayushman are all geared up to send you the latest issue of AyushPatrika. Continuing our series on the Human body, in our main topic---we get to know how to take care of our eyes. We overwork our eyes and give them little rest.
It is May and I am happy to inform you that this is our anniversary issue. Yes--- we have been together for 12 months now. It has been an enjoyable journey so far creating a health bulletin for you that carries some useful information, a bit of learning and a bit of fun too. Since this is our anniversary issue
The CoEP, which is the third oldest technical institution in the country with a history of more than 150 years, has joined hands with a private healthcare agency for developing an updated electronic medical record of all hostel students. This can be accessed over the web in a secure manner.
Excellent, user-friendly clinic management software. Even computer non-savvy persons (like me) can use it.
One of the best place where you can search and book appointment at one go, helps you to find clinics and doctors of different specialities in your nearby location.
Helps to maintain and track data of yourself & your relatives, created an account for my mother now I can track her health regularly.


Titanium.Database.DB.remove
remove the database files for this instance from disk. WARNING: this is a destructive operation and cannot be reversed. All data in the database will be lost upon calling this function. Use with caution.
Arguments
This function takes no arguments.
Return Type
void


Gardaí investigating body found in burning car in Lucan
Gardaí were alerted to the incident at approximately 8.15pm on Monday
by Shauna BowersGardaí are investigating an incident in Co Dublin after a body was found in a burning car on Monday evening.
The discovery was made at Mount Andrew Rise in Lucan at approximately 8.15pm.
Dublin Fire Brigade and An Garda Síochána were called to deal with a car that had been lit on fire and discovered a body in the passenger seat when the fire was extinguished.
Gardaí are currently treating the incident as suspicious.
The scene has been preserved and the State Pathologist and the Garda Forensics Bureau have been informed.


--- title: Your BitTorrent Client is Probably Defective by Design layout: post tags: [rant, debian] uuid: 6044435b-c026-3f19-0044-3204e1d60648 ---
Your BitTorrent client probably has DRM in it, even if it's Free
software. Torrent files (.torrent
) may contain a special,
but unofficial, "private" flag. When it does, clients are supposed to
disable decentralized tracking features, regardless of the user's
desires. This is a direct analog to the copy-prevention flag that PDFs
may have set, which tell PDF viewers to cripple themselves, except
that your Free PDF reader is actually more likely to ignore it.
It's impossible to simply open the torrent file and turn off the flag. The client has to be modified, fixing the purposeful defect, to ignore it. Note, simpler clients that don't have these features in the first place don't have this problem, since they don't have any features to disable.
The private flag exists because modern BitTorrent trackers can function without a central tracker. If the central tracker is down, or if the user doesn't want to use it, the client can fetch a list of peers in the torrent from a worldwide distributed hash table. It's one big decentralized BitTorrent tracker (though any arbitrary data can be inserted into it). Clients also have the ability to tell each other about peers when they are doing their normal data exchange. Thanks to this, clients can transcend central trackers and join the larger global torrent of peers. It makes for healthier torrents.
Anyone who knows a few peers involved with a torrent can join in, regardless of their ability to talk to the central tracker. But private tracker sites don't want their torrents to be available outside to those outside of their control, so they proposed an addition to the BitTorrent spec for a "private" flag. Clients with decentralized capabilities are advised cripple that ability when the flag is on, so no peer lists will leak outside the private tracker. This flag was never accepted into the official spec, and I hope it never is.
Unfortunately the private trackers set an ultimatum: obey the private flag or find your client banned. The client developers fell in line and, and as far as I am aware, no publicly available clients will use decentralized tracking while the flag is on. At one point, the BitComet client ignored the flag and was banned for some time until it was "fixed".
The private flag wasn't placed in front with the rest of the metadata where it belonged. It's intentionally placed at the end of the torrent file inside of the info section. This means that the flag is part of the info_hash property of the torrent, which is the global identifier for the torrent. Unset or remove the private flag and the hash changes, creating a whole new torrent without any seeds.
This is DRM, an artificial restriction imposed on the user. It's insulting. Users should be the ones that control what happens with their computers. The reasonable approach to a private flag is that, when the private flag is enabled, decentralized tracking is turned off by default, but can be re-enabled by the user should they desire. That way the desired behavior is indicated but the user has the final say, not some unrelated website operator.
I rarely use private trackers, since they are nearly pointless, but I still find this private flag set on public torrents, probably from someone simply reposting the torrent file from a private site. It's annoying to run into. It makes the torrents weaker.
Debian, which is my distribution of choice, is generally good about removing DRM from the software it distributes. For example, the PDF readers in the repositories have their DRM disabled (i.e. xpdf). So why not do the same thing for all the intentionally defective BitTorrent clients?
I went on the Debian IRC channel and brought up the issue only to find out that everyone thought a little DRM was reasonable. So then I filed a bug report on it, which was simply closed citing that the DRM is a beneficial "feature" and that removing the intentional defect would make the clients "poorer". They also insisted that it's part of the spec when it's not. I'm really disappointed in Debian now.
Now, I could modify a client to ignore the flag, but it's not useful if I am the only one not running DRM. It takes two to tango. A client used by many people would have to be fixed before it becomes beneficial.
So when someone asks for an example of Free Software or Open Source software with DRM in it, you can point to BitTorrent clients.


An automatic personality predictor that uses users’ publicly available information on their twitter profile in order to generate powerful insights which can in turn be used to predict attributes that determine the user’s personality.
Predicted scores for each trait is displayed below
describes a person's tendency to think abstractly. Those who are high in Openness tend to be creative, adventurous, and intellectual. They enjoy playing with ideas and discovering novel experiences. Those who are low in Openness tend to be practical, traditional, and focused on the concrete. They tend to avoid the unknown and follow traditional ways.
describes a person's level of goal orientation and persistence. Those who are high in Conscientiousness are organized and determined, and are able to forego immediate gratification for the sake of long-term achievement. Those who are low in this trait are impulsive and easily sidetracked.
describes a person’s inclination to seek stimulation from the outside world, especially in the form of attention from other people. Extraverts engage actively with others to earn friendship, admiration, power, status, excitement, and romance. Introverts, on the other hand, conserve their energy, and do not work as hard to earn these social rewards.
describes the extent to which a person prioritizes the needs of others over their own needs. People who are high in Agreeableness experience a great deal of empathy and tend to get pleasure out of serving and taking care of others. People who are low in Agreeableness tend to experience less empathy and put their own concerns ahead of others.
describes a person's tendency to respond to stressors with negative emotions, including fear, sadness, anxiety, guilt, and shame. This trait can be thought of as an alarm system. People experience negative emotions as a sign that something is wrong in the world. Fear is a response to danger, guilt a response to having done something wrong. However, not everyone has the same reaction to a given situation. High Neuroticism scorers are more likely to react to a situation with strong negative emotions. Low Neuroticism scorers are more likely to brush off their misfortune and move on.


All bids close at 7:30 AM Central Standard Time on the stated closing date
FOR SALE BY SEALED BID
Year: 2013
Item: DODGE CHARGER
VIN Number: 2C3CDXBG9DH668731
Stock #: M132533
Kilometers: 24724
Particulars:
4 Dr, 3.6L, Automatic, Blue ***UNIT MAY NOT BE EXACTLY AS DESCRIBED OR AS IT APPEARS IN PHOTOS.***
***SUCCESSFUL BIDDERS WILL BE NOTIFIED BY EMAIL ONLY. ***
Type of Damage: FRONT
Location: MAPLE CREEK - C&G COLLISION
Type of Inspection: Requires Structural & Mechanical Inspections
Reserve Bid: $ 4,000.00
Sales Taxes (PST & GST) – will be added if applicable.
Closing Date: Jan 08 2014
All VEHICLES are sold AS IS, and SGI specifically makes no guarantee as to the vehicle's condition or accuracy of the odometer reading.
For steps to follow for inspections click here.
On-Line bidding only, bids will not be accepted at the branch:
SGI Salvage
320 North Service Road
Moose Jaw, Sask.
Phone:<PHONE_NUMBER>
Toll Free: 1-800-667-5133
Payment types accepted:
Note: It Is the bidder's responsibility to ensure that their bid is entered by reviewing the confirmation e-mail.
HIGHEST OR ANY OFFER NOT NECESSARILY ACCEPTED


View this message online.
http://archives.subscribermail.com/msg/df3f313d3ea049e19014f1a8d1df0917.htm
Visit our site at http://www.entertainmentcruises.com
See the skyline illuminate under the fireworks display!
LISTEN, THERE’S NOTHING MORE AMERICAN THAN FIREWORKS.
Except, you know, watching fireworks while you’re on a yacht. With
access to unlimited food and beer in your hand.
This Saturday is your last chance to catch the Navy Pier fireworks
aboard Mystic Blue.You don’t want to miss this. Saturday, October
25th
(http://www.mysticbluecruises.com/chicago/search?timeOfDay=DN&metro=Chicago&startDate=10%2F25%2F2014&paxSize=1-19&brands=Mystic)
Check it out!
Book Now
(http://www.mysticbluecruises.com/Chicago/new-years-eve-chicago-dinner) | Pricing
(http://reservations.entertainmentcruises.com/search/?metro=Chicago&pax=1-19&tod=Any&product=Mystic
| Photo Gallery (http://www.mysticbluecruises.com/Chicago/ship) |
FAQs
(http://www.mysticbluecruises.com/Chicago/frequently-asked-questions)
Cruises
Photos
Menus
Mystic
Connect:
Don’t miss the last fireworks of the season!
Safely Unsubscribe
http://localapp/unsub.cfm?tempid=df3f313d3ea049e19014f1a8d1df0917&mailId=52e165471d4e49dfa7ffeb6f30de375e
Send this mail to your friend.
http://localapp/send_friend.cfm?template=df3f313d3ea049e19014f1a8d1df0917&mailid=52e165471d4e49dfa7ffeb6f30de375e
Powered by SubscriberMail http://www.subscribermail.com
Entertainment Cruises401 E. Illinois StreetChicago, Illinois 60611


Elder Casian:
A preacher carrying the Sealed Prophecy - Path of the God was attacked in this wilderness by ants. He is missing, and without him we do not know how to determine the location of the angel...
Perhaps you can recover some pieces of the Prophecy from the ants in the Ant Nest.
Provided, of course, that the vicious, machine-like ants leave you alone...
If you are so convinced of the rightness of your course, why not see if the gods will bless your attempt?


“Man is formed from a species of mussel. If made of the hard mussel he lives long—it is difficult for him to die. But if he happens to be made of the poisonous mussel, he is fragile, easily upset, and does not live long. The soul of man is called his anganga, or that which goes or comes. It is said to be the daughter of Taufanuu, or vapour of lands, which forms clouds, and as the dark cloudy covering of night comes on, man feels sleepy, because his soul wishes to go and visit its mother.” — George Turner, Samoa, A Hundred Years Ago And Long Before


ATLANT is a global real estate blockchain platform.
ATLANT is addressing two of the most pertinent problems in real estate with its decentralized solution: Tokenized Ownership and P2P Rentals.
The platform is being developed as an open source framework which will provide both P2P rental network features (example: Airbnb) and tokenized ownership features, which will operate and trade on the Ethereum network, independent of the platform's contributors.
ATL tokens are essentially membership certificates in the ATLANT Platform, which give rights and privileges to their owners, as outlined in the ATLANT White Paper.
ATP is a pre-sale token, which will be automatically converted to ATL tokens after the ICO.
ICO Soft cap is USD $1.5 million. Hard cap is 225,403 ETH.
Any unsold tokens will be burned.
IMPORTANT: Please don't use exchanges. Use personal wallets like MyEtherWallet, Jaxx, and Mist. If you're sending ETH from exchanges ATLANT won’t be able to recognise you and send you tokens.
You can easily check your ATP purchase using MyEtherWallet:
1. Click “Add Custom Token”.
2. Add this address to the “Contract Address” field: 0x6D85320c086aeE2eCD2693855fb2164c494fd251
3. Type “ATP” in the “Token Symbol” field and the number “18” in “Decimals”. Click ‘Save’.
SpaceBTC and BTC-UP will be the first exchanges to list the ATL tokens once the ICO is over. Liqui and HitBTC are likely to follow. ATLANT is also in active discussions with the other primary exchanges.
You will be able to trade ATL after the ICO.
ADEX stands for the ATLANT Decentralized Exchange. We have developed ADEX to allow for a safe and secure token trading. ADEX supports Bitcoin, Ether and many ERC20 tokens.
ADEX connects token buyers and sellers by creating an organized market. It is powered by Ethereum smart contracts under the hood, allowing for a safe and secure way to transact between parties.
Please click "SIGN UP" and proceed with your Email to set up an account in one minute. After verifying, you can fund your account with any token and start trading right away.
Please refer to the Fees page. It contains both trading fees (fee per trade) and transaction fees (fee per token deposit or withdrawal).
If you intend to change tokens quickly, you are welcome to use the Token Swap form.
This form allows you to exchange tokens at the market price without any special knowledge. For instance, you can change BTC for ATL in a single click after specifying amount of bitcoins to sell and vice versa.
ADEX follows best security practices and takes all necessary precautions in its operations. Smart contract code is audited and well-tested.
We facilitate user account security by providing 2-factor authentication (2FA) via SMS and Telegram. 2FA is an additional layer of security above password and an effective way to protect your account. We recommend turning on 2FA option to increase your account security.
You can turn on 2-factor authentication by clicking "ACTIVATE" at 2FA section on the Settings page
Yes, we do have a legal structure. The company behind ATLANT is TENSIGMA company, incorporated as LTD. in the jurisdiction of British Virgin Islands.
We have HQ in New York and dev office in Moscow.
The fastest way to get support is to contact us directly on Telegram or Slack.
Alternatively you can reach us via help@atlant.io.