Section 77 of the Complete Poetical Works. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Recording by Samari. The Complete Poetical Works by Edgar Allan Poe. Section 77. The Philosophy of Composition. Charles Dickens, in a note now lying before me, alluding to an examination I once made of the mechanism of Barnaby-Rudge, says, By the way, are you aware that Godwin wrote his Caleb Williams backwards? He first involved his hero in a web of difficulties, forming the second volume, and then, for the first, cast about him for some mode of accounting for what had been done. I cannot think this the precise mode of procedure on the part of Godwin, and indeed, what he himself acknowledges is not altogether in accordance with Mr. Dickens' idea. But the author of Caleb Williams was too good an artist not to perceive the advantage derivable from at least a somewhat similar process. Nothing is more clear than that every plot, worth the name, must be elaborated to its denouement before anything be attempted with the pen. It is only with the denouement constantly in view that we can give a plot its indispensable air of consequence, or causation, by making the incidents, and especially the tone at all points, tend to the development of the intention. There is a radical error, I think, in the usual mode of constructing a story. Either a history affords a thesis, or one is suggested by an incident of the day, or at best, the author sets himself to work in the combination of striking events to form merely the basis of his narrative, designing, generally, to fill in with description, dialogue, or authorial comment, whatever crevices of fact or action may, from page to page, render themselves apparent. I prefer commencing with the consideration of an effect, keeping originality always in view, for he is false to himself who ventures to dispense with so obvious and so easily attainable a source of interest. I say to myself, in the first place, of the innumerable effects or impressions of which the heart, the intellect, or, more generally, the soul, is susceptible, what one shall I, on the present occasion, select? Having chosen a novel first, and secondly, a vivid effect, I consider whether it can be best wrought by an incident or tone, whether by ordinary incidents and peculiar tone, or the converse, or by peculiarity both of incident and tone, afterwards looking about me, or rather within, for such combinations of events or tone as shall best aid me in the construction of the effect. I have often thought how interesting a magazine paper might be written by any author who would, that is to say, who could, detail step by step the processes by which any one of his compositions attained its ultimate point of completion. Why such a paper has never been given to the world, I am much at a loss to say, but perhaps the autorial vanity has had more to do with the omission than any one other cause. Most writers, poets in a special, prefer having it understood that they compose by a species of fine frenzy, an ecstatic intuition, and would positively shudder at letting the public take a peep behind the scenes, at the elaborate and vacillating crudities of thought, at the true purposes seized only at the last moment, at the innumerable glimpses of idea that arrived not at the maturity of full view, at the fully matured fancies discarded and despair as unmanageable, at the cautious selections and rejections, at the painful erasures and interpolations, in a word, at the wheels and pinions, tackle for scene shifting, the step ladders and demon traps, the cox feathers, the red paint, and the black patches, which, in 99 cases out of the hundred, constitute the properties of the literary history. I am aware, on the other hand, that the case is by no means common, in which an author is at all in condition to retrace the steps by which his conclusions have been attained. In general, suggestions, having arisen pal mel, are pursued and forgotten in a similar manner. For my own part, I have neither sympathy with the repugnance alluded to, nor, at any time, the least difficulty in recalling to mind the progressive steps of any of my compositions. And, since the interest of an analysis or reconstruction, such as I have considered a desideratum, is quite independent of any real or fancied interest in the thing analyzed, it will not be regarded as a breach of decorum on my part to show the modus operandi by which someone of my own works was put together. I select the raven as most generally known. It is my design to render it manifest that no one point in its composition is referable either to accident or intuition, that the work proceeded, step by step, to its completion with the precision and rigid consequence of a mathematical problem. Let us dismiss as irrelevant to the poem per se, the circumstance, or say the necessity, which in the first place gave rise to the intention of composing a poem that should suit at once the popular and the critical taste. We commence then with this intention. The initial consideration was that of extent. If any literary work is too long to be read at one sitting, we must be content to dispense with the immensely important effect derivable from unity of impression. Four, if two sittings be required, the affairs of the world interfere, and everything like totality as it once destroyed. But since Ceteris Paribus, no poet can afford to dispense with anything that may advance his design, it but remains to be seen whether there is, in extent, any advantage to counterbalance the loss of unity which attends it. Here I say no at once. What we term a long poem is in fact merely a succession of brief ones, that is to say, of brief poetical effects. It is needless to demonstrate that a poem is such only in as much as it intensely excites by elevating the soul, and all intense excitements are, through a cycle necessity, brief. For this reason, at least one half of the Paradise Lost is essentially prose, a succession of poetical excitements interspersed inevitably with corresponding depressions, the whole being deprived, through the extremeness of its length, of the vastly important artistic element totality or unity of effect. It appears evident then that there is a distinct limit as regards length to all works of literary art, the limit of a single sitting, and that, although in certain classes of prose composition, such as Robinson Crusoe, demanding no unity, this limit may be advantageously overpassed, it can never properly be overpassed in a poem. Within this limit, the extent of a poem may be made to bear mathematical relation to its merit, in other words, to the excitement or elevation, again, in other words, to the degree of the true poetical effect, which is capable of inducing, for it is clear that the brevity must be in direct ratio of the intensity of the intended effect. This, with one proviso, that a certain degree of duration is absolutely requisite for the production of any effect at all. Holding in view these considerations, as well as that degree of excitement which I deemed not above the popular, while not below the critical taste, I reached at once what I conceived the proper length for my intended poem, a length of about 100 lines. It is, in fact, 108. My next thought concerned the choice of an impression or effect to be conveyed, and here I may as well observe that, throughout the construction, I kept steadily in view the design of rendering the work universally appreciable. I should be carried too far out of my immediate topic where I to demonstrate a point upon which I have repeatedly insisted, and which, with the poetical, stands not in the slightest need of demonstration. The point, I mean, that beauty is the sole legitimate province of the poem. A few words, however, an elucidation of my real meaning, which some of my friends have evinced a disposition to misrepresent. That pleasure, which is at once the most intense, the most elevating, and the most pure, is, I believe, found in the contemplation of the beautiful. When, indeed, men speak of beauty, they mean precisely not a quality, as is supposed, but an effect. They refer, in short, just to that intense and pure elevation of soul, not of intellect or of heart, upon which I have commented, and which is experienced in consequence of contemplating the beautiful. Now, I designate beauty as the province of the poem, merely because it is an obvious rule of art that effects should be made to spring from direct causes, that objects should be attained through means best adapted for their attainment. No one, as yet having been weak enough to deny, that the peculiar elevation alluded to its most readily attained in the poem. Now the object truth, or the satisfaction of the intellect, and the object passion, or the excitement of the heart, are, although attainable to a certain extent in poetry, far more readily attainable in prose. Truth, in fact, demands a precision, and passion a homeliness. The truly passionate will comprehend me, which are absolutely antagonistic to that beauty, which I maintain is the excitement or pleasurable elevation of the soul. It by no means follows from anything here said, that passion, or even truth, may not be introduced, and even profitably introduced, into a poem. For they may serve an elucidation, or aid the general effect, as do discords in music by contrast. But the true artist will always contrive first, to tone them into proper subservience to the predominant aim, and secondly, to unveil them as far as possible, in that beauty which is the atmosphere and the essence of the poem. Regarding then beauty as my province, my next question referred to the tone of its highest manifestation, and all experience has shown that this tone is one of sadness. Beauty of whatever kind, in its supreme development, invariably excites the sensitive soul to tears. Melancholy is thus the most legitimate of all the poetical tones. The length, the province, and the tone being thus determined, I betook myself to ordinary induction, with the view of obtaining some artistic pickwency, which might serve me as a keynote in the construction of the poem. Some pivot upon which the whole structure might turn. In carefully thinking over all the usual artistic effects, or more properly points in the theatrical sense, I did not fail to perceive immediately that no one had been so universally employed as that of the refrain. The universality of its employment sufficed to assure me of its intrinsic value, and spared me the necessity of submitting it to analysis. I considered it, however, with regard to its susceptibility of improvement, and soon saw it to be in a primitive condition. As commonly used, the refrain, or burden, not only is limited to lyric verse, but depends for its impression upon the force of monotone, both in sound and thought. The pleasure is deduced solely from the sense of identity, of repetition. I resolved to diversify, and so heighten the effect, by adhering in general to the monotone of sound, while I continually varied that of thought. That is to say, I determined to produce continuously novel effects by the variation of the application of the refrain, the refrain itself remaining, for the most part, unvaried. These points being settled, I next befought me of the nature of my refrain. Since its application was to be repeatedly varied, it was clear that the refrain itself must be brief, for there would have been an insurmountable difficulty in frequent variations of application in any sentence of length. In proportion to the brevity of the sentence, would of course be the facility of the variation. This led me at once to a single word as the best refrain. The question now arose as to the character of the word. Having made up my mind to a refrain, the division of the poem into stanzas was of course a corollary, the refrain forming the close to each stanza. That such a close to have force must be sonorous and susceptible of protracted emphasis admitted no doubt, and these considerations inevitably led me to the long O, as the most sonorous vowel in connection with R, as the most producible consonant. The sound of the refrain being thus determined, it became necessary to select a word embodying this sound, and at the same time in the fullest possible keeping with that melancholy which I had predetermined as the tone of the poem. In such a search it would have been absolutely impossible to overlook the word nevermore. In fact, it was the very first which presented itself. The next desiteratum was a pretext for the continuous use of the one word nevermore. In observing the difficulty which I at once found in inventing a sufficiently plausible reason for its continuous repetition, I did not fail to perceive that this difficulty arose solely from the pre-assumption that the word was to be so continuously or monotonously spoken by a human being. I did not fail to perceive, in short, that the difficulty lay in the reconciliation of this monotony with the exercise of reason on the part of the creature repeating the word. Here, then, immediately arose the idea of a non-reasoning creature capable of speech and very naturally, a parrot in the first instance suggested itself, but was superseded forthwith by a raven, as equally capable of speech and infinitely more in keeping with the intended tone. I had now gone so far as the conception of a raven, the bird of Il-Omen, monotonously repeating the one word nevermore at the conclusion of each stanza in a poem of melancholy tone and in length of about 100 lines. Now, never losing sight of the object's supremeness or perfection at all points, I asked myself, of all melancholy topics, what, according to the universal understanding of mankind, is the most melancholy? Death was the obvious reply. And when, I said, is this most melancholy of topics most poetical? From what I have already explained at some length, the answer here is also obvious. When it most closely allies itself to beauty, the death, then, of a beautiful woman is unquestionably the most poetical topic in the world, and equally is it beyond doubt that the lips best suited for such topic are those of a bereaved lover. I had now to combine the two ideas of a lover lamenting his deceased mistress and a raven continuously repeating the word nevermore. I had to combine these, bearing in mind my design of varying at every turn the application of the word repeated. But the only intelligible mode of such combination is that of imagining the raven, employing the word in answer to the queries of the lover. And here it was that I saw it once the opportunity afforded for the effect on which I had been depending. That is to say, the effect of the variation of application. I saw that I could make the first query propounded by the lover, the first query to which the raven should reply, nevermore, that I could make this first query a commonplace one, the second less so, the third still less, and so on, until at length the lover startled from his original nonchalance by the melancholy character of the word itself, by its frequent repetition, and by a consideration of the ominous reputation of the fowl that uttered it, is at length excited to superstition and wildly propounds queries of a far different character. In queries whose solution he is passionately at heart, propounds them half in superstition and half in that species of despair which delights in self-torture, propounds them not altogether because he believes in the prophetic, or demoniac character of the bird, which reason assures him is merely repeating a lesson learned by rote, but because he experiences a frenzied pleasure in so modeling his questions as to receive from the expected nevermore the most delicious because the most intolerable of sorrow. Proceeding the opportunity thus afforded me, or more strictly, thus forced upon me in the progress of the construction, I first established in mind the climax or concluding query, that query to which nevermore should be in the last place an answer, that query in reply to which this word, nevermore, should involve the utmost conceivable amount of sorrow and despair. Here, then, the poem may be said to have its beginning, at the end where all works of art should begin, for it was here at this point of my pre-considerations that I first put pen to paper in the composition of the stanza. Prophet, said I, thing of evil, prophet still if bird or devil, by that heaven that bends above us, by that God we both adore, tell this soul with sorrow laden if within the distant aiden, it shall clasp a sainted maiden whom the angels name Lenore. Clasp a rare and radiant maiden whom the angels name Lenore. Quote the raven, nevermore. I composed this stanza at this point, first that by establishing the climax, I might the better vary and graduate as regards seriousness and importance the preceding queries of the lover, and secondly, that I might definitely settle the rhythm, the meter, and the length and general arrangement of the stanza, as well as graduate the stanzas which were to proceed, so that none of them might surpass this in rhythmical effect. Had I been able in the subsequent composition to construct more vigorous stanzas, I should without scruple have purposefully enfeebled them, so as not to interfere with the climacteric effect. And here I may as well say a few words of the versification. My first object, as usual, was originality. The extent to which this has been neglected in versification is one of the most unaccountable things in the world. Admitting that there is little possibility of variety in mere rhythm, it is still clear that the possible varieties of meter and stanza are absolutely infinite, and yet for centuries, no man in verse has ever done or ever seemed to think of doing an original thing. The fact is that originality, unless in minds of very unusual force, is by no means a matter as some suppose of impulse or intuition. In general, to be found, it must be elaborately sought, and although a positive merit of the highest class demands in its attainment less of invention than negation. Of course, I pretend to know originality in either the rhythm or meter of the raven. The former is trochaic, the latter is octameter a catalectic, alternating with heptameter catalectic, repeated in the refrain of the fifth verse, and terminating with heptameter catalectic. Less pedantically, the feet employed throughout, trochaic, consists of a long syllable followed by a short. The first line of the stanza consists of eight of these feet, the second of seven and a half, in effect two thirds, the third of eight, the fourth of seven and a half, the fifth the same, the sixth, three and a half. Now each of these lines taken individually has been employed before, and what originality the raven has is in their combinations into stanzas. Nothing even remotely approaching this combination has ever been attempted. The effect of this originality of combination is aided by other unusual and some altogether novel effects, arising from an extension of the application of the principles of rhyme and alliteration. The next point to be considered was the mode of bringing together the lover and the raven, and the first branch of this consideration was the locale. For this the most natural suggestion might seem to be a forest or the fields, but it has always appeared to me that a close circumscription of space is absolutely necessary to the effect of insulated incident. It has the force of a frame to a picture. It has an indisputable moral power in keeping concentrated the attention, and of course, must not be confounded with mere unity of place. I determined then to place the lover in his chamber, in a chamber rendered sacred to him by memories of her who had frequented it. The rooms represented as richly furnished, this in mere pursuance of the ideas I have already explained on the subject of beauty, as the sole true poetical thesis. The locale being thus determined, I had now to introduce the bird, and the thought of introducing him through the window was inevitable. The idea of making the lover suppose, in the first instance, that the flapping of the wings of the bird against the shutter is a tapping at the door, originated in a wish to increase, by prolonging, the reader's curiosity, and in a desire to admit the incidental effect arising from the lover's throwing open the door, finding all dark, and thence adopting the half fancy that it was the spirit of his mistress that knocked. I made the night tempestuous first to account for the raven seeking admission, and secondly, for the effect of contrast with the physical serenity within the chamber. I made the bird a light on the bust of palace, also for the effect of contrast between the marble and the plumage, it being understood that the bust was absolutely suggested by the bird, the bust of palace being chosen first, as most in keeping with the scholarship of the lover, and secondly, for the sonorousness of the word palace itself. About the middle of the poem, also, I have availed myself of the force of contrast, with the view of deepening the ultimate impression. For example, an air of the fantastic, approaching as nearly to the ludicrous as was admissible, is given to the raven's entrance. He comes in with many a flirt and flutter. Not the least obeisance made he, not a moment stopped or stayed he, but with mean of lord or lady, perched above my chamber door. In the two stanzas which follow, the design is more obviously carried out. Then this ebony bird beguiling, my sad fancy into smiling, by the grave and stern decorum of the countenance at war. Though thy crest be shorn and shaven thou, I said, art sure no craven, ghastly grim in ancient raven, wandering from the nightly shore. Tell me what thy lordly name is, on the night's plutonian shore. Quote the raven, nevermore. Much I marveled this ungainly, foul to hear discourse so plainly, though its answer little meaning, little relevancy bore. For we cannot help agreeing that no living human being, ever yet was blessed with seeing bird above his chamber door. Bird or beast upon the sculptured bust above his chamber door, with such name as nevermore. The effect of the denouement being thus provided for, I immediately dropped the fantastic for a tone of the most profound seriousness. This tone commencing in the stanza directly following the one last quoted, with the line, but the raven sitting lonely on that placid bust spoke only, etc. From this epoch the lover no longer jests, no longer sees anything, even of the fantastic in the raven's demeanor. He speaks of him as a grim, ungainly, ghastly, gaunt, and ominous bird of yore, and feels the fiery eyes burning into his bosom's core. This revolution of thought or fancy on the lover's part is intended to induce a similar one on the part of the reader, to bring the mind into a proper frame for the denouement, which is now brought about as rapidly and as directly as possible. With the denouement proper, with the raven's reply, nevermore, to the lover's final demand if he shall meet his mistress in another world, the poem in its obvious phase that of a simple narrative may be said to have its completion. So far everything is within the limits of the accountable, of the real. A raven having learned by rote the single word nevermore, and having escaped from the custody of its owner, is driven at midnight through the violence of a storm, to seek admission at a window from which a light still gleams. The chamber window of a student occupied half in pouring over a volume, half in dreaming of a beloved mistress deceased. The casement being thrown open at the fluttering of the bird's wings, the bird itself perches on the most convenient seat out of the immediate reach of the student, who, amused by the incident and the oddity of the visitor's demeanor, demands of it ingest, and without looking for a reply, its name. The raven addressed answers with its customary word, nevermore. A word which finds immediate echo in the melancholy heart of the student, who giving utterance allowed to certain thoughts suggested by the occasion, is again startled by the foul's repetition of nevermore. The student now guesses the state of the case, but is impelled, as I have before explained, by the human thirst for self-torture, and in part by superstition, to propound such queries to the bird, as will bring him, the lover, the most of the luxury of sorrow, to the anticipated answer, nevermore. With the indulgence to the extreme of this self-torture, the narration, in what I have termed its first or obvious phase, has a natural termination, and so far there has been no overstepping of the limits of the real. But in subjects so handled, however skillfully, or with however vivid an array of incident, there is always a certain hardness or nakedness, which repels the artistical eye. Two things are invariably required. First, some amount of complexity, or more properly adaptation, and secondly, some amount of suggestiveness, some undercurrent, however indefinite of meaning. It is this latter in a special, parts to a work of art so much of that richness to borrow from colloquy a forcible term, which we are too fond of confounding with the ideal. It is the excess of the suggested meaning. It is the rendering this the upper instead of the undercurrent of the theme, which turns into prose, and that of the very flattest kind, the so-called poetry of the so-called transcendentalists. Holding these opinions, I added the two concluding stances of the poem. Their suggestiveness being thus made to pervade all the narrative which has preceded them. The undercurrent of meaning is rendered first apparent in the lines. Take thy beak from out my heart and take thy form from off my door quote the raven, nevermore. It will be observed that the words from out my heart involve the first metaphorical expression in the poem. They, with the answer nevermore, disposed the mind to seek a moral in all that has been previously narrated. The reader begins now to regard the raven as emblematical, but it is not until the very last line of the very last stanza that the intention of making him emblematical of mournful and never-ending remembrance is permitted distinctly to be seen. And the raven, never flitting, still is sitting, still is sitting on the pallid bust of palace just above my chamber door. And his eyes have all the seeming and the lamp-light o'er him streaming throws his shadow on the floor. And my soul from out that shadow that lies floating on the floor shall be lifted, nevermore. End of Section 77 The Complete Poetical Works by Edgar Allan Poe Section 78 Old English Poetry Footnote, The Book of Gems edited by S. C. Hall and a footnote It should not be doubted that at least one-third of the affection with which we regard the elder poets of Great Britain should be attributed to what is, in itself, a thing apart from poetry. We mean to the simple love of the antique that, again, a third of even the proper poetic sentiment inspired by their writings should be ascribed to a fact which, while it has strict connection with poetry in the abstract and with the old British poems themselves, should not be looked upon as a merit appertaining to the authors of the poems. Almost every devout admirer of the old bards if demanded his opinion of their productions would mention vaguely, yet with perfect sincerity, a sense of dreamy, wild, indefinite, and, he would perhaps say, indefinable delight on being required to point out the source of this so shadowy pleasure he would be apt to speak of the quaint in phraseology and in general handling. This quaintness is, in fact, a very powerful adjunct to ideality but, in the case in question, it arises independently of the author's will and is altogether apart from his intention. Words and their rhythm have varied which affect us today with a vivid delight and which delight in many instances may be traced to the one source quaintness must have worn in the days of their construction a very commonplace air. This is, of course, no argument against the poems now. We mean it only as against the poets then. There is a growing desire to overrate them. The old English muse was frank, guileless, sincere, and although very learned, still learned without art. No general error evinces a more thorough confusion of ideas than the error of supposing Don and Cowley metaphysical in the sense where in Wordsworth and Coleridge are so. With the two former, ethics were the end. With the two latter, the means. The poet of the creation wished by highly artificial verse to inculcate what he supposed to be moral truth. The poet of the ancient mariner used the poetic sentiment through channels suggested by analysis. The one finished by complete failure what he commenced in the grossest misconception. The other by a path which could not possibly lead him astray, arrived at a triumph which is not the less glorious because hidden from the profane eyes of the multitude. But in this view even the metaphysical verse of Cowley is but evidence of the simplicity and single-heartedness of the man. And he was in this type of his school, for we may as well designate in this way the entire class of writers whose poems are bound up in the volume before us and throughout all of whom there runs a very perceptible general character. They used little art in composition. Their writings sprang immediately from the soul and partook intensely of that soul's nature. Nor is it difficult to perceive the tendency of this abandon to elevate immeasurably all the energies of mind, but again so to mingle the greatest possible fire, force, delicacy and all good things with the lowest possible bathos, baldness and imbecility as to render it not a matter of doubt that the average results of mind in such a school will be found inferior to those results in one ceteris paribus, more artificial. We cannot bring ourselves to believe that the selections of the book of gems are such as will impart to a poetical reader the clearest possible idea of the beauty of the school, but if the intention had been merely to show the school's character, the attempt might have been considered successful in the highest degree. There are long passages now before us of the most despicable trash, with no merit whatever beyond that of their antiquity. The criticisms of the editor do not particularly please us. His enthusiasm is too general and too vivid not to be false. His opinion, for example, of Sir Henry's Wattons versus on the Queen of Bohemia that, quote there are few finer things in our language, unquote, is untenable and absurd. In such lines we can perceive not one of those higher attributes of poetry which belong to her in all circumstances and throughout all time. Here everything is art, nakedly or but awkwardly concealed. No pre-possession for the mere antique and in this case we can imagine no other pre-possession should induce us to dignify with the sacred name of poetry, a series such as this of elaborate and threadbare compliments stitched apparently together without fancy, without plausibility and without even an attempt at adaptation. In common with all the world we have been much delighted with The Shepherd's Hunting by Withers, a poem partaking in a remarkable degree of the peculiarities of Il Penzeroso. Speaking of poetry, the author says, quote, by the murmur of a spring or the leased boughs rustling by a daisy whose leaves spread shut when Titan goes to bed or a shady bush or tree she could more infuse in me than all nature's beauties con in some other wiser man. By her help I also now make this cherlish place allow something that may sweeten gladness in the very gall of sadness, the dull loneliness, the black shade that these hanging vaults have made, the strange music of the waves beating on these hollow caves, this black den which rocks emboss, overgrown with eldest moss, the rude portals that give light more to terror than delight. This, my chamber of neglect, walled about with disrespect from all these and this dull air, a fit object for despair she hath taught me by her might to draw comfort and delight, unquote. But these lines, however good, do not bear with them much of the general character of the English antique. Something more of this will be found in Corbett's farewell to the fairies. We copy a portion of Marvell's maiden lamenting for her fawn which we prefer, not only as a specimen of the elder poets, but in itself as a beautiful poem abounding in pathos exquisitely delicate imagination and truthfulness to anything of its species, quote, it is a wondrous thing how fleet twars on those little silver feet with what a pretty skipping grace it oft would challenge me the race and when had left me far away it would stay and run again and stay for it was nimbler much than hints and trod as if on the four winds. I have a garden of my own, but so with roses overgrown and lilies that you would at guess to be a little wilderness and all the springtime of the year it only loved to be there. Among the beds of lilies I have sorted off to where it should lie yet could not till itself would rise find it although before mine eyes for in the flaxen lilies shade it like a bank of lilies laid upon the roses it would feed until its lips even seemed to bleed and then to me it would boldly trip and print those roses on my lip but all its chief delight still with roses thus itself to fill and its pure virgin limbs to fold in whitest sheets of lilies cold had it lived long it would have been lilies without roses within. How truthful an air of lamentations hangs here upon every syllable it pervades all it comes over the sweet melody of the words over the gentleness and grace which we fancy in the little maiden herself even over the half playful half petulant air with which she lingers on the beauties and good qualities of her favourite like the cool shadow of a summer cloud over a bed of lilies and violets and all sweet flowers. The whole is redolent with poetry of a very lofty order. Every line is an idea conveying either the beauty and playfulness of the fawn or the artlessness of the maiden or her laugh or her adoration or her grief or the fragrance and warmth of the little nest like bed of lilies and roses which the fawn devoured as it lay upon them and could scarcely be distinguished from them by the once happy little damsel who went to seek her pet with an arch and rosy smile on her face. Consider the great variety of truthful and delicate thought in the few lines we have quoted the wonder of the little maiden at the fleetness of her favourite the little silver feet the fawn challenging his mistress a pretty skipping grace running on before and then with head turned back awaiting her approach only to fly from it again. Can we not distinctly perceive all these things? How exceedingly vigorous too is the line and trod as if on the four winds a vigour apparent only when we keep in mind the artless character of the speaker and the four feet of the favourite one for each wind then consider the garden of my own so overgrown entangled with roses and lilies as to be a little wilderness the fawn loving to be there and there only the maiden seeking it where it should lie and not being able to distinguish it from the flowers until itself would rise the lying among the lilies like a bank of lilies the loving to fill itself with roses and its pure virgin limbs to fold in whitest sheets of lilies cold and these things being its chief delights and then the preeminent beauty and naturalness of the concluding lines who's very hyperbole only renders the more true to nature when we consider the innocence the artlessness the enthusiasm the passionate girl and more passionate admiration of the bereaved child had it lived long it would have been lilies without roses within End of section 78 End of the complete poetical works of Edgar Allan Poe by Edgar Allan Poe


Hello and welcome. This is SMART 8 Update, a permissively licensed alternative to SMART control presented by Chuck Tuffley and Michael Dexter for EuroBSDCon 2021. I am Michael and you should also see Chuck in the video. So I will give a quick little overview of how we got to this point and Chuck will take over for the technical difficulties. In my day job, I help with storage systems and I see a lot of disks and I talk to a lot of disks. And the general conversation is a bit like at play school where it's like, hey, how old are you? How are you feeling? Give a temperature. And that's it. It's a nice quick exchange. But using the de facto standard tools that the whole world uses, no one's ever been fired for using them, SMART control, part of the SMART MONTools project, some pronounce it SMART cuddle, some spell it out SMART CTL, but I'll try to be consistent. It's a bit like getting a full medical record every time. So it's like, oh, hey, you haven't contracted malaria since yesterday and your hemoglobin levels are still good and a whole bunch of things that don't make sense to the user. So in all practicality, I often want to know, okay, here's a new disk. It is from a large popular vendor. Let's see how many hours are on it. Because if it's new, it should have between like one and a zero and two hours. If it is not in fact new, it could have say 30,000 hours on it. And I've seen that. And so asking those simple questions and getting unambiguous answers is in fact really important. And related asking for a temperature may indicate if say a fan has failed. And if you have an array of like 16 drives and four are really hot in one corner. Well, maybe this has nothing to do with drive health, but you've lost a fan and you have that those tea leaves to work with for diagnosing that. So in looking at the tools we have, part of the problem and I forgive the SMART control team for this is that the vendors have not been very good about the information they provide. There is secret information. There are fields that make sense to them and no one else. And that's just life. There is misleading information. If you use a Seagate Barracuda, one of the first entries is this huge value of errors. Well, those are internal and you should ignore those. But if you ask a new user to sit down and check for errors with this utility, suddenly it's like, my disk is dead. It's like, no, no, ignore that. Like, well, but you said, okay, fine, then you go very carefully read the tea leaves between a few other values. So that's been frustrating. That's not helpful. And so if you've ever watched one of my talks, it was a bit of a theme of sort of eunuch's visceral epiphanies. And my epiphany with SMART control was, wow, this tool is not optimized for either human readable output or machine readable output, which leaves the question like, who is this tailored to? Because I'm not feeling quite where that's headed. So I suppose developers can be like that, where they implement a spec and one thing leads to another and we arrive at this point. But that's been frustrating. And SMART control to its credit finally over the years received JSON output. So you can further parse it. And I touched on that in another talk where with a bunch of JQ and other things, you can finally more or less unambiguously get that one piece of information you want. But that's a whole lot of steps for what can be a very simple value. Just one little integer that's like, hey, how old is this? So I started having experience that I started looking into, well, what are the options? What's out there? What's built into the OS's and found things like, wow, that you can use cam control to throw values added on the slide here. I have an example of if you throw this carefully crafted string at a drive, you might get back results that are machine readable, but with a little help can somewhat give you the information you want, which is promising, I suppose. It's not super user friendly, but if it's unambiguous and consistent, fine, I will wrap that up in other tools and it tells me what I want to know. OpenBSD and NetBSD have ATA control, which does have some rudimentary SMART control and SMART information. And I looked at that now that freeBSD is relying on, say, the cam nifty geom structure and cam. It's not necessarily compatible with anything on another operating system. So on freeBSD specifically, it takes a bit of a fresh look at things. And so in that research, I compiled like a dozen pages of everything I could find on the subject. That led to a paper I wrote on the subject and go ahead, Chuck, next slide, and eventually a presentation at AsiaBSD.com. So in looking at, well, first, what's terrible? We want unambiguous information and sometimes very little information. And if we fast forward from whenever it was that SMART control was looking at ATA drives, pre-SATA, pre-you name it, there has been progress in the world, such as OpenZFS, which has a lovely syntax for very specifically and perfectly walking the line between human readable and machine readable, specifying a specific parameter. And I'd be example of like a dash o for option this. I want that or maybe comma separated and you can remove the header from the output or tab delineate it and just many niceties that probably didn't occur to the original developers. And for years prior to the JSON output, one would maybe do a few passes with regex to first get rid of those commas that they put in two places between the size of the block device values or a few commas there and a few elsewhere and a few parentheses here and you strip those out and it was like, no, not cool. So from a usability perspective, okay, I daily use something that has a better output. And in the big picture, it's like, well, okay, everyone uses SMART control, fine, but everyone used gross and along came mandoc and it's like, well, let's rethink the problem. Let's understand the problem first, address it and dive in. Now, fundamentally, when it comes to say importing SMART control into say ZFS so that you could have values presented on demand about the health of a drive, there are some very convoluted external scripts to do that. But what if the license permitted it to be included seamlessly and it did one thing well rather than all the things that that package does. So I screamed from the bell tower, hey, I think there's a room for improvement. I am not a developer. I cannot implement that short of those scripts to throw a few raw commands that drives and get them back and hope for the best. So that set the stage for this. I put that out into the world. And Chuck kindly responded to my cry for help. And in the big picture also, hey, no amount of turd polishing on SMART control will change the license, such that if you want it to be in base, if you want to be integrated in other projects, not going to happen. There's no amount of optimism, no amount of horse trading that will make that happen. And early on, I thought, okay, fine, let's talk UNIX. What if SIS controls were there for device name and then the SMART value by a numeric value? And so I pretty much put everything on the table and said, okay, let's rethink this and moved on to like, well, should a virtual machine have synthetic SMART data from the host so that it has some insight if it's on safe and reliable storage or that's something to reach out about and then we're going to have trouble. So that was the context I established. And again, Chuck kindly came to the rescue and I'll let him take over for the technical details. Thanks, Michael. So, yes, I was one of the people that was listening to Michael's talk and to give some context to it at the time I was working on a product that tested ATA drives. And one of the features was it retrieved SMART data for it. My job was to then support NVMe. And when I went to look at how NVMe did SMART data and compared it to the ATA infrastructure, they just differed wildly. And in the name of getting something shipped, I kind of shook my head, held my nose and said, okay, we'll just do a totally separate interface for NVMe because I don't have time for this. But with Michael's talk, the question came up again is, so would something like a live SMART be possible? And so in the course of that investigation, this program that we're going to talk today about called SMART is the code platform for me to test out my ideas. And for better or worse, it became a little bit useful. And so I've been adding features to it. So you want to play along at home, there's code up at the GitHub. My apologies, it's not quite current. I'm having some sort of weird get issue, or I could just say get issue. And there's also something available in previous deports. All right, so let's talk about SMART. So SMART, if you aren't aware of it, stands for self monitoring, analysis, and reporting technology. This gained popularity with ATA drives. And the 30,000 foot view of this capability is to have the device provide information to you as the user that as you look at it over time gives you the ability to predict drive failures. Now, when you look at what data comes back, it doesn't look anything like what you see in the output of something like SMART control. At its very fundamental, the data is either a list, or a structure, or some number of log pages, all of numerical values. And just to keep things interesting, ATA vendors do not agree on what a lot of these values are. But still, when you look at it as a whole, it's all providing health data. And so I started to believe that actually getting ATA and SCSI and NVMe to report similar, or to present the health data in a similar way should be mostly possible. How hard could it do? All right, so to understand kind of some of the complexities here, we're going to need to dive a little bit into the various protocols that SMART supports. And you'll get a very good sense of why ATA is not the same as NVMe, which is not the same as SCSI. Like I said, at a high level, all of these protocols support returning health data from the drive, but you get that data in different ways. So with ATA, you're going to issue this smart read data command. On NVMe, on the other hand, they have a smart health information log page that you would issue a get log page to get back. SCSI is a little bit similar in that it provides all the data in log pages. But instead of having one log page, it feels like a billion. It's more like seven. Now that we have this data, we can start looking at it. And the content is mostly different, although if you squint hard, it starts to look a little bit the same. For example, ATA has this concept of a right error rate. On NVMe, you have these media and data integrity errors, which include rights, but they also include other things, and it's a raw count and not a rate. And then on SCSI, you have the total uncorrected errors for rights. So while they're all talking about rights, they all kind of talk about it in a very different sort of way. The other thing that gets interesting here is whether these protocols, the health reporting is standardized or not. Both NVMe and SCSI, the contents of the log pages are defined by the standards group. So for NVMe, that's the NVM Express Technical Working Group, and for SCSI, it's T10. ATA, on the other hand, doesn't have a standard for the contents. They define the mechanism to retrieve this data, but the contents are completely up to the vendor.  So this fundamentally means that if vendor A supports attribute 174, it can mean something entirely different than vendor B who also supports attribute 174. So in trying to digest all of this, I started thinking about, well, what would I want? And so naively, you look at these as very different things, and so it would be very easy to fall into this trap of saying, well, if the protocol of the device is ATA, then I'm going to need one of these ATA buffers. If it's NVMe, I'm going to need an NVMe kind of buffer and so on. But when you look at what would I do to create a library, this sort of, if you went this route, this code would end up expanding everywhere, and everything would end up having to special case each of the different protocols. And this felt kind of unwieldy and terrible. So instead, what I came up with was a protocol independent structure for this data, what I am calling a data model for smart. And the data that you get back is in these self-describing buffers, I'm calling maps. And the other part of this is if you didn't want to actually incorporate a live smart into something like ZFS, it would need to support multiple different operating systems. So being able to split this code into OS dependent and OS independent was going to be important. That has other advantages in that it lets you take advantages of system specific capabilities. All right. So let's take a look at each one of these things. So for this data model that I'm calling dumb, to kind of understand how we got there, let's take a look at each of the protocols in a little more detail. So for ATA, you're going to issue this smart read data command. That is going to return you a list of attribute IDs. And each of these attributes are composed of some raw values, flags that tell you how to interpret some of the data, the min and max seen for that, and some threshold values. And each of these elements that gets returned are between 8 and 48 bits. NVMe, on the other hand, has a smart health information log page. So you would issue a get log page. But the data that comes back is not a list. It's this packed data structure. If you're familiar with C programming, it looks a whole lot like a C struct, and that each element has a position in the structure and a byte size. And the data that comes in each of these elements are numbers. And they vary between one bit for flags that tell you whether something has happened or not to really big things like that are 128 bits. For example, the number of blocks that have been read and written over the lifetime of the device. SCSI is a little bit like NVMe in that it reports information in log page, but instead of having a single log page, it has seven or eight. So you have errors for reads, writes, verifies, the last in errors. It can also report temperature and start-stop cycle counts. And then finally, there's this informational exceptions log page, which is supposed to tell you whether or not one of these exceptions occurred. Now, when you get this data back for one of these individual log page reads, it doesn't have attributes, but it sort of feels a little bit similar. It's listed as a bunch of parameters, and each of these parameters has a code. And in that code, you have a packed data structure, which SCSI has is a little bit self-describing. Now, the data that each of these has are either numbers, they're big end-in, by the way, so that's fun, or they're strings. And just to keep things interesting, all of these things are variable length and size. So when you boil all that down and you try to come up with this common unified model for health data, the thing that made sense was health data is now a list of log pages. Log page will have an ID and a description. And inside the log page, it consists of a list of unique attribute IDs. And the attributes have things like a value, description, size, et cetera. And in thinking back about the previous slide, you might say, hey, that looks a lot like SCSI, and you'd be right. So here on the slide, you can see that I have kind of an example. So this, the health data for this device has consists of three pages. They have attribute IDs and some values. And in some cases, they also have text descriptions for each of those attributes. So now that we have this generalized model, let's look at how that applies to each of the different protocols. So for ATA, it doesn't have a concept of log pages. So to get that page ID that we're using, we're going to actually use the value from the command feature field. So when you issue a command to an ATA drive, that's how it tells what kind of command it is. So for the smart read data command, that common feature value is 208 or hex 0x D0. Now, ATA does have attribute IDs. Who knows what they are, but it does have them and they're unique. So that's good. And then we're going to use the returned raw value and some guesses as to what the descriptions actually mean. So then when we run smart against an ATA drive, in this case, ATA0, you can see these three things. So that first column shows 208. That's the page that we just read. That middle column are the attribute IDs. So you can see that the first three are 512 and 175. And that last column are the raw values. NDME has log pages, so we can actually use the log page ID of two, which is corresponds to the smart health informational log page. Now, it doesn't have attribute IDs per say. So instead what we do is we use the byte offset to each field as the attribute ID. And being a byte offset into a structure, that'll be unique. So we're all set there. And then we use the value in description as defined by the NDME spec. So here when we run smart against NDME drive, in this case NDA0, and we look at it, we can see that we have the log page ID two in that first column. The middle column is the attribute IDs. And to help you understand how that works, I've printed a subset of the NDME specification that describes what comes back in the smart log page. So you can see that the critical warnings are at byte zero. The composite temperature starts at byte one and is a couple of bytes long. So that's that attribute one. And the available spare starts at byte three. So that gets an attribute ID of three. And so we can see that my available spare is 100%, which means I can abuse this device for many years to come. For FreeBSD people, note that this is NDA0. FreeBSD actually has two NDME disc drivers. There's NVD and NDA smart requires CAM, which we'll talk about a little bit later. And so it needs to use the NDA. See your NDA man page for more details. All right, then for SCSI, it has the same concept of a log page ID. So we can go ahead and use that. And then instead of using attribute IDs, we'll use the parameter code to uniquely identify the health elements. And one thing to note here is that parameter codes in SCSI are numbered from zero to N. And they are that for every single log page. So every single log page will have a parameter code zero. And a lot of them will also have a parameter code one, which means that you can't actually use this attribute ID to uniquely identify a health element like you could for NVME or for ATA. And then finally, we use the value in the description as defined by the SCSI spec. So when we run smart against a SCSI drive here, DA0, you can see in that first column, we have a list of the different log pages. I printed out a subset of the SCSI spec that showed how to map the page codes to the log page name. So you can see we have the writer, counter here, the verify, non-medium errors, and the temperature. So let's take a look at the temperature a little bit. When you go over to its section in the spec on table 351, you can see that parameter code zero is the temperature in Celsius. So that first line of data says that this is the temperature log page, and that 31 is the degrees in Celsius of your drive, which means that it's running very cool. I think if I'm doing my Celsius math right, and should be just fine. Okay, so now that we understand how this model works, that we have these list of pages, pages are filled with attributes and attributes have these values, let's talk about how that translates to the mechanics of LibSmart itself. So as a user of the library, you need to establish a connection to your drive. So if you want to be able to retrieve data, you need to be able to refer to it. So what LibSmart does is it abstracts out that connection to the lower layer stuff and keeps you fairly oblivious to what is the contents of that R. And that was a fairly intentional decision to try to mitigate ABI issues. So my belief was that as this tool progressed, I would learn things and be smarter about it. And so I didn't want to expose too much of the inner workings and break things like ABI. Now this is where the device independent dependent layer kicks in. So the handle actually translates into these two pieces. And the thing to note here is this is actually allocated by the very lowest layer, the device layer. So here we can see the code on the right hand side at the very top level, you as an application would allocate one of these handles. It's a void pointer. So there's really nothing your application can infer from it. But this is the handle that you would pass back to every subsequent LibSmart call to let it know about the underlying details. Now internally in the device independent layer, so at the library level, this smart handle turns into three different things. So one, it tells you what protocol this is, is this ATA, SCSI and NVMe. It stores some information about the device. So what's the name of the device, who's the vendor, firmware revision, that sort of thing. And then finally it gives a list of pages. And the pages are really, these are the pages that the lower layer needs to go query to return all of the smart data. So for example, in NVMe, we saw there was a single log page, so this page list would have a single entry. For SCSI with seven pages, this page list would have seven entries. And then finally, the device dependent layer, it's allowed to define its structure in the way that it wants. But what it does is it uses that smart, that common smart structure as the first element. And then it hides all of its device dependent stuff after that, such that when it allocates this and passes it back to the higher layers, they can just operate on the smart data and not really worry about the internal low level details. So now that you have this connection to the drive, you want to go and read data. And the data that gets returned is returned in something called a map. So this map is a self-describing buffer of attributes. So this includes both the raw data that's returned by the device, the number of attributes in that buffer, as well as an array of attributes. And the latter one is sort of a predigested version of the machine version. So here we can take a look at the map structure and that smart buffer, that's the raw data that's returned by the device, the count, and then this array of attributes. The attributes themselves, so the high level goal is that once you return this map, you have this array of attributes that you as a consumer can then go through, be able to identify which attribute you want and get some information about it all without understanding anything other than how to traverse an array. So what allows you to do that is the contents of each of these attribute structures. So this gives you a way to uniquely identify them. This is the tuple of the page ID and the attribute ID. And it also gives you a pointer to the data. One of the things that I was sensitive to was when I retrieved data from the device, I didn't want to make a second copy of it just for the application. So instead what you have in each of these attributes is a pointer to the original data buffer where this data resides. And then some information about how to decode it. So this will give you the number of bytes in that field, some flags to help you determine how to interpret it. So for example, is the data in big Indian format? Is the data actually a string and not a number? And then finally, we have this raw pointer that gets you access to the actual data. ATA has this concept of thresholds that I don't really want to get into, but long story short, it turns out that this map structure can actually help you interpret that as well. So at the lowest level, the device or OS abstraction, this is currently only implemented for FreeBSD. And besides being a FreeBSD developer, one of the reasons that I picked this is because FreeBSD has this storage device interface called CAM that makes this whole process easy. It simplifies a lot of the details of opening up a device and passing commands back and forth to it. But I did want to make sure that I had gotten the abstraction right. So I did do a proof of concept for Windows using a really cool library from CK called OpenSeachest, which allows you to do various disk operations across a variety of operating systems. And so while it wasn't straightforward to use, it was useful enough to convince me that my abstraction was correct. So at the lowest layer, there's very little that needs to happen in terms of an API. You can open the device, you can close the device, and then you can read a particular log page. So moving up to the device, the OS independent portion of this, we look at the lib smart. So this is the thing that would actually be interacting with the device abstraction. So here, again, that kind of forces some of the same sort of API decisions and that you're going to be able to open and close the device. The library will also tell you if smart is supported by the device. So while many ATA drives do actually support smart, it's optional. You have the ability to read the health data. This returns that map that we were talking about earlier. It gives you a way to free that and then some helper functions to print out the smart data as well as some of the device information. And then at the very top layer, we have the application smart itself. It actually does very, very little. So it's responsible for the command line option processing. It does all of the lib XO, set up and tear down. And then it's the thing that makes those API calls to the smart library to open and print and that sort of thing. And here on the side, you can see the health output from the smart command and the various options that it gives you. So let's talk a little bit about the output format. Now keep in mind that the original motivation was to collect values over time. So imagine that you have a fleet of servers and you want to be able to predict when those drives in the various servers might fail. So you're going to know the specific attribute IDs that are good indicators or that you think are good indicators of drive health. And you really don't need all of the decoding and other attributes that don't have anything to do with that. And you just need to store the raw value. And you're going to look at this over time to understand trends. This would be called via cron, something like cron or perhaps you have a fancier monitoring framework like Prometheus. So here we can see that with smart, I can say, hey, I only want attribute ID five from device ADA zero. And all it does is returns that value. Easy peasy. Now I referred, I mentioned lib XO earlier, all of the output formatting is driven by lib XO and they describe themselves as a library for generating text, XML, JSON and HTML output. So again, if we go back to our previous example of looking at attribute ID five, I can actually tell it, hey, use lib XO. And this time I want to see that output in JSON for ADA zero. And what we get back is some ADA is some JSON output that shows that attribute. So at the top level, you can see we have a drive drives have attributes and this particular attribute that we're looking at has a raw value of zero. Now you can picture lib XO as instead of using print outs in my underlying code, I'm telling XO, this is how to describe the data. And it knows how to translate that to the various different formats. So here we have a little bit more detailed version of what that JSON output could look like this time with some of the device information. So you can see that this is a Samsung drive, the revision for it, serial number and then the attributes. And each of these attributes now you can see that we have the page ID, which is the 208 that we know and love, the attribute ID itself of five and a raw value of zero. So after a fair amount of arm twisting by Michael and Alan, I caved and added some attribute decode because mostly because I got tired of explaining what attribute ID five was. So smart now can actually decode some of these attribute IDs. So for SCSI, the text comes from the specification. NVMe is very similar with the caveat that it's smart enough to look at the drive spec revision and it filters the output according to what should be there. And then for ATA, it's complicated. So here you can see we've told smart to do some decode and instead of seeing attribute ID five, hey, now we know that that's the reallocated sector cap. So now let's let's go back to why I keep waffling on ATA decodes. So again, remember that the smart attribute structure for ATA is specified but not the attributes themselves. So if the spec doesn't tell you what each of these attributes are, what is that? How do you decode them? Well, you end up having to get the definitions from each vendor. And just keep in mind that that vendor A can decide that attribute 174 is a temperature thing and vendor B can decide that attribute 174 is for flash health. And really the only way that you can tell what attribute ID 174 means is by doing a match on the drive model in the firmware. And so things like SmartMon have formalized this into these regular expressions that take both the drive model and the firmware vision, apply this regular expression to it and then have a table that maps that to what these values mean. So inside of SmartMon tools, this is something that they call the drive database. It's about 6,200 lines of code and it compiles down to about just over 28 k bytes. And one thing to note is that it is GPL. So if you go back to one of the earlier tenants that this should be, have a permissible license, this means that using SmartMon's DriveDB directly wasn't really an option. So what do you do? Well, okay, funny story. So the ATA vendors were very frustrated by the Wikipedia page that describes Smart because at the end of that page there is an extensive amount of decoding of what each of the attribute IDs mean and by and large, they're wrong. So the vendors tried to get those definitions changed but the sticking point was there was no authoritative source of authoritative source of what those definitions should mean. So smash cut to IN CITS-TR54 or Smart Attribute Descriptions. This was basically 8 or 10 of the ATA vendors getting together and documenting the agreed upon definitions. So for all the vendors that agreed on what attribute ID 5 meant, that spec says that's a reallocated sector count. And since that's a publicly available document, that's actually what Smart is using to do the ATA decodes. And the future, I hope to have a text-based Drive database probably similar to what SmartMon does, but that's a future TBD. And here you can see that in the case where the IDs aren't agreed upon by all of the vendors that it just prints the raw values. That was what I had. Thank you for listening to our talk. Thank you for EuroBSDCon for letting me babble about this for a while. If you're interested in the code, the main development is done on Heptapod, which is graciously hosted by Octobus. Like I said, there is a GitHub mirror of this data, and you can get it through ports and packages if you're so inclined. Here are a couple ways to get a whole of us on email and Twitter, and now I will throw it open to questions. I have a question. Go ahead. Chuck, at this very moment in time, what is the best way to get, say, two or three attributes at once? Does one rerun it, or is there a comma-separated request on individual attributes or something else? Yeah. Yes. So the eventual goal is for that attribute to be a comma-separated list of page and ID values. That will happen real soon now. So that is one outstanding thing, but that is the eventual goal to make it a little bit more like CFS. Cool. How did I find LibxO? Actually, it was fairly easy to incorporate into the app. So initially, I used straight-up printfs to do all of the outputting, but the documentation for LibxO is good, and it's fairly straightforward to get it to do the right thing. Someone in the chat is re-litigating using, oh, smart control and JQ and all the little things that I'd conclude are still not super user-friendly, given that it took me hours upon hours to just get the syntax right to get a simple parse to get one value. So hopefully this relieves some pain. Yes, and I apologize. I have a fairly good-looking patch queue that I'm trying to push, and I've done something done. So I will work on that after this talk, and that's basically going to consist of all of the decodes. I wrote a man page because I was feeling very guilty about that, and probably something that will happen fairly soon is being able to list more than one attribute on the command line. Chuck, has anyone stepped forward as an individual or organization to say, hey, that looks cool. We could use that, be it large streaming companies or otherwise? As with most open source tools, I don't really know how many people use it. I know I've gotten some specific requests. So one of the features that I got pestered about at a MeetBSD was to add JSON output, and so that's where the libxo came from. And I do know that there's another package in FreeBSD that actually uses smart to collect information about SSDs. Oh, cool. Is that a name you recall off the top of your head? No, but it has SSD in it. Okay, I like that. Have you seen any contributions from the outside world? Yeah, actually, I've had a couple of full requests to fix a couple of things, and some bug reports. Awesome. Yes. Contributions, welcome. If you find this useful, let me know. If you think it's the worst thing you've ever seen, let me know. I'll field the hate mail, you can get the kindness. So chat room, any questions? We're at your disposal. I do see a perhaps it is SSD report, SSD underscore report in fresh ports, which mentioned smart and SSDs. Alan's asking read questions. I'm going to ignore them. So you touched on your proof of concept to Windows. What plumbing would be needed for other operating systems? Should this take off? Really, it comes down to a way to read data from all of the different protocols. And like I touched on, CAN makes that very easy. They have a common interface for sending all three commands. At one point, I looked at what it would take to port this to Linux, which has three different libraries depending on which protocol you're trying to get at. And that seemed a little, that wasn't the thing that I wanted to focus on, but Linux would probably be the next thing to go tackle to see if I couldn't get this running on Linux as well. A few typing indicators. Rhymon, don't be shy. And Chuck, what's the number one thing people can do? Easy, test it, pound on it. Please test it and let me know what I did wrong. Unless, of course, you have a good relationship with SSD vendors and want to get me specs so that I can actually come up with a drive database that won't leave missing values. Indeed, vendors are very shy about sharing, say, those specs on consumer drives and quite a few people run consumer drives, such that if you are in a position to obtain any of that, hopefully properly, please do reach out. Awesome. Great. Well, thank you very much. I think we're out of time, right? Yep. Thank you very much, both of you. And pleasure. Thank you, Chuck, for all your work on this. Is it off to the social event from here? And does one do that on the... There's the closing session starting in about 12 minutes. And the closing session is here or it's in... That, I don't know. It's on the schedule as in here, but they don't know. Well, it's kind of vague. Yeah, okay. Ending you there. And I'm posting a list of space just in case. Which is a cool tool, I admit. Yeah, it's going to be interesting. But yeah, for the SMR drives, disc info can tell you about what the size of the SMR chunks are and so on if the drive doesn't try to hide the fact that it's SMR. I've managed to avoid getting any of the drives that were, you know, submarine into the channel as it were.  I guess it was... I was saved by the fact that I was buying Seagate drives and they promised not to ever make an SMR NAS drive. Well, perhaps make it but leave it as such. Right, but like the ones they sell specifically for NASs, because SMR is like the antithesis of NAS. They're like, yeah, NAS drives are meant to be used in RAID and SMR is not. And so we will never put the wrong labels on stuff. Because did you see the Freakus more recently with the SSD vendors changing up the flash without changing the model number and being like, here, this is actually quad level now, not tri-level. And it'll be much worse. But we didn't change the model number. We have Kingston to thank for setting the stage on that years ago when a really nice low-latency drive changed firmware and you had to carefully watch the version number to get the right one. And it was just cool. And I trust the recording will kick us all out before the final session. I think so. I don't know if they did it for the final one, but okay, I'm happy to answer questions until then and reminisce or cry on shoulders about disc output. But the too long didn't read the smart control utility does not simply concatenate some giant text file hiding in the drive that tells you all this information that it's far more complicated than yeah. Otherwise, somebody would have written a replacement a long time ago. Exactly. We wouldn't have had to trick Chuck into doing it. Motive, not arm twist or trick. Inspire, that's the word. Inspire. Anyhow, let's see who's... Good turnout. Hey, all. Yes, I can. A quick answer. Look for Peltor, I believe, but let's see three. You are welcome. And when you're shopping for that hearing protection, note which ones fold into themselves and which ones do not because that's handy when traveling. Should you ever go to another conference in person? Someday, hopefully not too far in the future. And pro tip, earbud earphones underneath those are like studio quality alternatives to big fancy recording studio earmuffs. So that works. Yes, I've done that on an airplane where they provided the big ones with noise canceling that plug into the airplane, but then my little earbuds inside them playing my audiobook to fall asleep. Exactly. I don't know if they're that foldable. There was the decibel, the DD, look for DD. Think that one did it. I could maybe run up and get those during the next social break, especially that's on the other platform. Decibel Defense was another one, but they're pretty rigid, not as comfortable for a few hours of work. But that's another one of those things that's a small investment. So even if you just grab a few or if you have a local industrial supply company, you can go try a few of them and just feel how soft that pad is, see how they collapse and look at the decibel rating. That's from there, it's purely subjective. And also sometimes the weight, if they're too heavy, they can be uncomfortable. That's true. But if they're too light, they might break too easy. Yep. So confession, 90% of my podcast listening is on a lawn tractor mowing the lawn with the earbuds and the massive flight crew hearing protection. So all of my associations with like 2.5 admins and BSD now are somehow visually related to lawn.


are you talking about something? important just grabbed a one-one-hundred footer so you can measure the distance alright, we have to help you with yours I hate those powder he's inside there from the other side he has a number give it to me give it to me if you want to go there, we can go there alright, let's go so that we can go inside here I have to get it he's gonna put the charge on the other side because you are moving down the line on the red


Going to give it to Harris. No, he keeps it. He's in trouble. Rothless Burger, sack! Jones and Molden. Play fake. Rothless Burger, he's grabbed. He is sacked! But Dupree has seen it before.


to wanting to ride bikes all over the valley, but My suggestions been frowned upon We have a bike path between here in North Hampton. I thought we could do ours and then ride over to North Hampton, but That might be okay. They are electric assist bikes. I'll meet you there Oh That's all right You just turn off the electric assist They're not compatible with the motorized And then there is the Sunderland parade Coming up on the 16th It's Saturday's 16th is a Saturday it's Saturday Saturday at 11. I have it in my calendar It's more like we said we do it. What are we doing? So that you said the 20th is a Saturday 16 16th. I'm sorry I'm available, but I Think it's according to my calendar. I am anyway Did we really have any conversation beyond let's hold a place in line and then figure it out later? And I guess this now qualifies as figuring it out later because I don't believe we ever talked about it at length Other than to say we don't have a float that we pull out for these things We have a banner that says town of Amherst. Okay, good if we can find it At least it makes more sense than if we try and carried in our own parade but beyond that I mean We literally have spent say we didn't have a conversation, but we evidently did respond According to email it just so we respond to the affirmative, but you did hold a place in mind Yes, exactly. That's exactly what's a son title that So I guess the question is is are more than once available Do we walk in the parade door? Do we find some motorized transport that might convey us down the way? I'm just gonna if we can't find the town banner, then I would suggest we order If there's time to order one to be made like from Right, but I think we should be well But somebody should be able to find it. That's the most immediate question It's do we are doing on the banner of it all there, but we need something like the other ways the five of us walking down the street Really doesn't do it, right? I'm actually not going to be available And I suspect mr. Wall doesn't back in I can I can oh you can So I was excited to I said I can So I think the first Question is just do we have can we locate the banner quickly? There is a banner there. There is a banner that says town of Amherst Yes, that's it. I believe it's like Navy blue or black Or the the other option would be if if the banner can be found is to is if We could ride in a vehicle potentially if That the banner could be yeah draped from I'm not saying we need a fire truck. I'm not saying you're right. You're right assist your biker bikes Yeah, they're not in yet. That's the thing I think the trolleys tied up getting painted. How is one of the town's electric vehicles I do that We could do that. That's the message and has a logo. It has a very good-sized logo on it or the electric school bus But would like would one of us be allowed to to drive it Absolutely, I have driven it actually, okay, I mean sure I like I think we could reserve Maybe it would be more appealing to us if we didn't have to march around it probably be hot that day Or it could be raining All right, so with or without banner Banner if not car look for the have both options. Yes both options The car couldn't hold all five of us six of us with two there's your there's your out You can't make it. I made the sacrifice No, I'm pre-making sacrifice. He's off the iron situation Having been in the car. Mr. Bachman and I feel it pretty full I don't plan on participating to say, you know For those of us that can make it so there's three of us that can make it that would be Yeah, we would fit in the car the only so just to wrap this up We would meet there or we would meet here in carpool to we meet here with and get in the vehicle So we would need to meet here like a 1030. Yeah, at least yeah And I don't know did they give us any direction like if you're gonna be in the parade be here by X There was a pretty long thing there was but we'll up for logistics on that and okay and Reach out to you guys about okay. What time to me right here when we need to be where this happened, but but if we can Be a much more pleasant way to do it is I agree. What was it right along? Walking would be fine, too But well and get out of the cramped the vehicle and carried the banner He turns have the banner above the car with one person hanging out of the Like a mattress We could put one of those on top, too, because I'm sure there's one floating around Anyway, all right. Just tell me I'm not really free. I think that'll be fine. I'm free by 10 o'clock. I Will question when we're done talking about mattresses and banners and cars and electric assist and all kinds of things Which is just being a note about just make your note So backing up, I don't know about eight items on the town managers report I heard something fly by maybe about June 24th at 3 p.m. A groundbreaking on North Pleasant. What wait? What are we talking about? Not groundbreaking. What did I write? That's what I wrote What did I hear dedication? I thought I sent it to you Amherst Community Land Trust. Yeah, I think their habitat house on North Pleasant is being is finished Right, because we went we went to it when it wasn't when it was just the groundbreaking. I went to it then and so So June 24th at 3 p.m. Yeah Sight is the rip sort of the dedication of the duplex on North Pleasant Street. I Don't remember seeing that but I'm not saying 73 intense of me five Because some of us went to the ground no, no, I don't know what Thank you if you had forwarded that would be great There are other questions for the manager relative to this report or or he probably has 20 or 30 more things that was only You have what I have now Tell us what this is So This is a rate increase from Berkshire gas and I was asked to include this in your packet. So it was a Registered in your packet. So that's what's in your packet To notice the filing for the rate here rate changes, right the nearest hearing to us if I read it correctly is in green field Is that correct? I think and I may have I skimmed this a while ago but I think one of the reasons they gave for needing to increase the rates was because of the volume of of Customers they had which I thought was a bit Disingenuous disingenuous. Yeah, given that they've had a moratorium on Customers in our area, but they had that listed and perhaps that relates to other parts of their coverage area, but That one struck me a bit odd. I don't know if it was in that particular letter a different announcement of the of the same thing But you know they have to list reasons why they're asking for a rate increase and they included You know an increase in number of customers, but So without trying to be too pejorative about that ongoing situation with Berkshire gas and moratorium wise So yeah, we get letters from Comcast every couple weeks telling us how many channels they have or don't have at any given moment, too but in terms of a Hearing for this is this something that we are looking at from an economic development standpoint that we think it is Appropriate given our partnerships with the business community the colleges or whatever I'm just wondering are we planning to do anything or are we asking the town manager? I'm asking the town manager if he was planning to do anything, and I guess I'm asking the board if we hoped we would do anything I don't have a dog in the fight. I'm just concerned about the on you know the ongoing Moratorium issue the town manager and our staff are not planning to do anything the hearing in Greenfield was tonight They've been one at Pittsfield is next week This is a rate increase that happens periodically unless there was some issue that This helps provide public notice to people because we receive it as the sort of recipients for the town He gets publicized in a newspaper that nobody sees he adds So this is just a way to air that they're looking for a rate increase usually It's really up to the Attorney General's office to make a decision or DPU. So it's it's actually July 11th So we've got a month So that so it's public hearings to receive comments on the company's proposal as follows And then it's July 11th and July 23rd. So you've got a month to Get fired up about it. I guess so go ahead So my question then I'm sorry. I'm still not communicating this effective. We are still in a moratorium situation So wouldn't this be the opportunity to say? And we don't have to be sarcastic about it when we feel sarcastic about it We don't have to be though to just say this is our chance while they're asking for something to say We remain really concerned about the moratorium because it's negatively impacting our community both residential and and I Mean that's part of what the Attorney General's office or Utilities take into account when they do these things and I there's always a big hubbub when they do it and then they always get What they want is what it seems to feel like but Would we not? Bother mentioning this again. I mean we've had no other opportunity to mention the moratorium officially any place else I mean, I'm normally not one to say let's just tack on our idea, but this is an ongoing Problem for our community. Mr. Simer. Yeah, I mean it's sort of I did think about that too and the problem is is that They were talking about a very specific plan that in the last round that had to do with the approval of sort of a Distribution plan and that was a time when it was a ripe issue. It was relevant to the what they were granting this has to do is purely rate and so It would be raising an issue that if they were going to be responding to it. They would say It's not relevant and They would be right. I think that the only question is whether we would want to issue a statement and send the letter just for the Say hey, we're still concerned about it, but it isn't going to have any effect whatsoever on their right decision, right? I Think to be consistent with the idea of there's limited staff resources that Because it would be pretty symbolic and not that useful to us Although our citizens our residents might like it. We went. Yes thought about rate That I would I would not make it a high priority to add to the list of things that would need to do on our behalf Are there other questions for the manager relative to his report or other things? if not then Select board member reports anyone Mr. Timer, do you have the only thing that I would mention is that last Saturday there was a program that was put on by Mothers out front who had been the group that brought the Bylaw and zero energy buildings to town meeting and worked with us for revised by revisions to the bylaw revised bylaw and then we Presented a town meeting in the revised bylaw it was adopted in place of the original and What they did is they organized a tour of four zero energy buildings in the town of Amherst and The tours were generally done by pupil who were either the architects or very involved with the the project themselves and they presented presented a lot of information about it it was a Interesting tour I did two of the four. It wasn't set up. Did you had to do all four? I actually had seen two of the buildings already One was actually a renovation and then Solarization on top of renovation to achieve zero energy at the South Congregational Church And that was very impressive because the original church building is dates back to like 1824 or something like You know, it's a very old building And then the bridge all of the other ones were brand new things and I think the most recent one being Crotty Hall at UMass Which is the other one I went to? on Saturday, it was very interesting presentations It made me feel that We have at least an opportunity here with the bylaw and the expertise in the community To achieve what the intent of the bylaw is we don't know until we try the question Ultimately is I think one that we've been aware of and I Just have to deal with when we get there as a community in that is the additional cost to build a Zero energy ready building as opposed to a building and We don't know the answer to that, but I think that the thing that I found was is that the photovoltaics We're not that expensive that it has been successful and That all of the buildings have the same questions that we identified throughout the discussions that we had which is How the building is utilized and managed is important. So that's sharing what my One thing is The League of Women Voters has what was worked with Mr. Moreing associated with the signage associated with their book donations for their big book sale It's going to be at the Fort River School Fort River schools again providing them space for that So I'll start seeing those around town I said not on the common not on the parks and don't put signs there and they said yes We talked to mr. Moreing and he told us that he will pull them out if they are if they are doing that and We had mr. Slaughter is probably going to talk about the fact that he did a lovely job reading the annual Select board proclamation that we did so early this year. We almost forgot about it For the June 10th celebration yesterday celebration of race amity day as always I'm a little frustrated that town meeting which is very fond of resolutions past this four years ago And very few town meeting members seem to be aware of it But the League of Women Voters also helped promote this as well as town staff jumping on getting it onto the town website and showing The proclamations of both town meeting and the updated one that we do with the select board each year So that was a lovely time and included some recognition of Wildwood students who are also talking about the issue And I'd made a lovely poster so that was very nice And it was nice of you you to host that For our community and thank you to Ray Elliott and all the people who work with him to make that happen And the senior center had its 50th anniversary celebration by having a dinner at the Lord Jeff on Friday night And there were presentations from Senator Rosenberg and from representative Goldstein Rose And then they called me up there and anything to hand them So I talked for a few minutes and that was lovely and a lovely celebration There was a very lengthy slideshow that showed some of the iterations of things over time and how people had Viewed the senior center when it first started et cetera and the different names that had gone through it So that was quite lovely and congratulations to them for that a Completely separate topic although we touched on it earlier associated with our June 25th parking hearing So one of the things we talked about and we and we knew Ms. Pupple was we're tying up so many loose ends before her well-deserved retirement is It was said at Agenda setting that maybe mr. Moring would be the one who would be talking with the neighbors on Fisher and Harris and Then any legal notice would get copied at the select board which hasn't happened yet but I believe it probably showed up in the paper over the weekend since it has to appear twice, but maybe it hasn't and To be reminded so we need that but we also need to be reminded Was the material that we talked about at our pre-town meeting session the downtown parking working group recommendations Or is there something else we're gonna have for the 25th So could we please reissue that this week by email and so and then attach a copy of you know If it's just a photocopy of what was in the paper, you know the online version or whatever makes sense Just so as we're going about our days We can also remind people that it's coming up and that if they have anything to say they better do it at the Hearing rather than complain afterwards that would be super helpful While we're talking about the hearing I'm going to be clear that there's three very specific things on that. No, we're not talking about Changing the hours changing the rates. We're talking about having 13 Spaces behind the end whale and parking lot that are Behind that metered and we're talking about I think adding one more 15 minute free space over by what was share coffee and it's now going to be something else and maybe moving the other 15 minute or putting it next to that I can't you know have the materials here and then changing the signs for the taxi stand because we don't have any taxi businesses it's not Come and talk about anything you want to talk about. I mean about parking a minute that might happen, but please these are very specific Recommendations to just those three points. That's what we're considering also So there are more than three points. Yeah, there's also a Olympia Drive Okay, and then and then Fisher Street and so you exactly right but yeah in terms of if we're saying come and talk about Parking it's Fisher Olympia Drive and then these recommendations not but it's not some people might think it's like Anything to do? No, that was why I was hoping the legal notice would be made available to us. So what the legal notice says is It's a solicit public public comment on proposed new and or review of existing parking regulations One lot off of Kellogg Avenue adjacent to the Ann Wayland apartment parking area to East side of boltwood lot off of Kellogg Avenue three South Pleasant Street For Fisher Street and five Olympia Drive The select board will be considering changes to parking regulations including but not limited to parking restrictions Toe zones and or the addition or illumination restricted for your metered parallel parking spaces Yes, yes Which I remember Ms. Puppa worked very carefully on to make it as broad as possible to give us alternate choices in case We came up with something that night that would still fit within the legal notice because it did also include Increasing the duration of the time on Olympia Drive as opposed to the whole idea of doing Fisher Street So and the no parking notices that are there now so you'll just forward that to us because obviously you have it right there and re-forward us the Downtown parking working groups recommendation sometime before the packet that's due for the 25th would be helpful Yes, we just can't include in the packet I Don't remember where it is So I want to be able to tell people this is what we're doing I mean, I yeah because they're not going to see the legal notice and we've got people talking about parking so Re-forward it's in the board packet. I can just yeah reference the board packet. Yeah, if you could if you can find which packet was in That'd be great, but I can help you know, it's thank you That's helpful Other items in your report I think for me as far as the select board member report. Yes. I was at although I had to leave early I was at the race amity days celebration. It was in the utilitarian University Church universe list Meeting house, I guess that's what it's called on a church It was a nice event. I did not get to stay for that all all of it. Did you want to mention this shit? All right, so I'll mention it The we're going to have a third I believe economic Amherst economic development forum From 3 to 5 p.m. On Wednesday, June 27th right here in this room in the town room of Town Hall and so it is a the idea is for people to come together and hear about Amherst economy and of course share ideas about the future of our economy and where we want to go and that sort of thing So as many people as possible that can make it to that would be Really appreciate it Three to five p.m. On Wednesday the 27th of June And I'm I don't believe I have anything else relative to my own report I wondered if we should also preview week because we have gotten out of the habit of doing this because it gets late and we're really tired is In terms of things coming up on upcoming agendas and so in addition to that hearing The other thing that will be coming up is we will be talking about local licensing of marijuana and whether or and to Talk about whether we are interested in issuing additional letters of support or not a position for medical marijuana at our meeting on the 25th And so there's a meeting of the internal working group on the 18th That will then talk about materials to be provided for that But if you have thoughts as select board members as to what those materials include like me saying, okay Can you find that thing? That would be helpful for that meeting on the 18th and then but the other part of it is that it's not specifically about a specific place on the 25th as to whether or not we're going to issue a letter of Opposition or support not opposition or support. It's to talk about talking about it Preview any other items because if not, I think we've exhausted our agenda for the evening So I move to adjourn. Thank you, sir There's a second All those in favor, please say aye. Hi. And so we're adjourned at 926