8116Beyond the Basic Stuff with Python 1st Edition Al Sweigart instant download
8116Beyond the Basic Stuff with Python 1st Edition Al Sweigart instant download
Al Sweigart download
https://textbookfull.com/product/beyond-the-basic-stuff-with-
python-1st-edition-al-sweigart/
https://textbookfull.com/product/automate-the-boring-stuff-with-
python-2nd-edition-practical-programming-for-total-beginners-al-
sweigart/
https://textbookfull.com/product/invent-your-own-computer-games-
with-python-al-sweigart/
https://textbookfull.com/product/invent-your-own-computer-games-
with-python-4th-edition-al-sweigart/
https://textbookfull.com/product/basic-exercises-for-competitive-
programming-python-1st-edition-jan-pol/
Programming Microcontrollers with Python: Experience
the Power of Embedded Python 1st Edition Armstrong
Subero
https://textbookfull.com/product/programming-microcontrollers-
with-python-experience-the-power-of-embedded-python-1st-edition-
armstrong-subero/
https://textbookfull.com/product/programming-microcontrollers-
with-python-experience-the-power-of-embedded-python-1st-edition-
armstrong-subero-2/
https://textbookfull.com/product/dealing-with-the-tough-stuff-
how-to-achieve-results-from-key-conversations-hill/
https://textbookfull.com/product/the-python-book-the-ultimate-
guide-to-coding-with-python-imagine-publishing/
https://textbookfull.com/product/good-stuff-1st-edition-salman-
akhtar/
CONTENTS IN DETAIL
ACKNOWLEDGMENTS
INTRODUCTION
Who Should Read This Book and Why
About This Book
Your Programming Journey
Examining Tracebacks
Searching for Error Messages
Paths in Python
The Home Directory
The Current Working Directory
Absolute vs. Relative Paths
Installing Black
Running Black from the
Command Line
Disabling Black for Parts of Your
Code
Summary
CHAPTER 4: CHOOSING
UNDERSTANDABLE NAMES
Casing Styles
PEP 8’s Naming Conventions
Appropriate Name Length
Too Short Names
Too Long Names
Formatting Strings
Use Raw Strings If Your String
Has Many Backslashes
Format Strings with F-Strings
Definitions
Python the Language and Python
the Interpreter
Garbage Collection
Literals
Keywords
Objects, Values, Instances, and
Identities
Items
Mutable and Immutable
Indexes, Keys, and Hashes
Containers, Sequences, Mapping,
and Set Types
Dunder Methods and Magic
Methods
Modules and Packages
Callables and First-Class Objects
Default Arguments
Using * and ** to Pass
Arguments to Functions
Using * to Create Variadic
Functions
Using ** to Create Variadic
Functions
Using * and ** to Create
Wrapper Functions
Functional Programming
Side Effects
Higher-Order Functions
Lambda Functions
Mapping and Filtering with List
Comprehensions
Return Values Should Always Have the
Same Data Type
Raising Exceptions vs. Returning Error
Codes
Summary
CHAPTER 11: COMMENTS, DOCSTRINGS,
AND TYPE HINTS
Comments
Comment Style
Inline Comments
Explanatory Comments
Summary Comments
“Lessons Learned” Comments
Legal Comments
Professional Comments
Codetags and TODO Comments
Magic Comments and Source File
Encoding
Docstrings
Type Hints
Summary
CHAPTER 12: ORGANIZING YOUR CODE
PROJECTS WITH GIT
Git Commits and Repos
Using Cookiecutter to Create New Python
Projects
Installing Git
Configuring Your Git Username
and Email
Installing GUI Git Tools
Summary
INDEX
BEYOND THE BASIC STUFF
WITH PYTHON
San Francisco
BEYOND THE BASIC STUFF WITH PYTHON. Copyright © 2021 by Al
Sweigart.
No Starch Press and the No Starch Press logo are registered trademarks of
No Starch Press, Inc. Other product and company names mentioned herein
may be the trademarks of their respective owners. Rather than use a
trademark symbol with every occurrence of a trademarked name, we are
using the names only in an editorial fashion and to the benefit of the
trademark owner, with no intention of infringement of the trademark.
For my nephew Jack
About the Author
Al Sweigart is a software developer and tech book author living
in Seattle. Python is his favorite programming language, and he
is the developer of several open source modules for it. His other
books are freely available under a Creative Commons license on
his website at https://www.inventwithpython.com/. His cat
Zophie weighs 11 pounds.
One of his shells, however, had passed through the captain's cabin
under the fore bridge, and although it did not burst it started a fire,
which rapidly became worse; unhappily no water was available to
put it out, for the fire main was shot through, while the chemical fire
extinguishers proved of little use. All water had to be carried by
hand, but luckily the fire was prevented from spreading over the ship
by a steel bulkhead, together with an ordinary fire-proof swing door,
which was afterwards found to be all charred on one side.
Nevertheless it got a firm hold of the deck above, which broke into
flame, so the fore-bridge had to be abandoned. The ship had now to
be steered from the stern, and all orders had to be shouted down by
megaphone both to the engine rooms and to this new steering
position in the bowels of the ship, which was connected up and in
operation in fifty-seven seconds! To reduce the effect of the fire the
vessel was kept before the wind, which necessitated turning right
round again, so that the fight resolved itself into a chase.
The action was continued by the gun-layers, the fire-control
position being untenable due to the fire, so each gun had to be
worked and fired independently under the direction of its own
officer. Among the ammunition supply parties there had been several
casualties and the officers, finding it impossible to "spot" the fall of
the shell, owing to the flashes from the enemy's guns obscuring
their view from so low an elevation, lent a hand in carrying the
ammunition from the hoists to the guns. In these big liners the
upper deck, where the guns are mounted, is approximately 70 feet
above the holds, whence the ammunition has to be hoisted and then
carried by hand to the guns—a particularly arduous task.
Crossing, as it were, the enemy was at this time well on the
starboard bow, but firing was continued until the distance was over
9,000 yards, the maximum range of the Carmania's guns. Owing to
his superior speed and a slight divergence between the courses, the
distance was gradually increasing all the time, and at 1.30 he was
out of range. His list had now visibly increased, and his speed began
to diminish, probably on account of the inrush of water through his
coaling ports. It was surmised that there had not been sufficient
time to secure these properly, for he had evidently been coaling at
the time she arrived upon the scene.
Towards the end the Cap Trafalgar's fire had begun to slacken,
though one of her guns continued to fire to the last, in spite of the
fact that she was out of range. It became patent that she was
doomed, and her every movement was eagerly watched through
field-glasses for some minutes by those not occupied in quenching
the fire. Suddenly the great vessel heeled right over; her funnels
being almost parallel to the surface of the sea, looked just like two
gigantic cannon as they pointed towards the Carmania; an instant
later she went down by the bows, the stern remaining poised in mid-
air for a few seconds, and then she abruptly disappeared out of sight
at 1.50 P.M., the duel having lasted an hour and forty minutes.
There were no two opinions about the good fight she had put up,
and all were loud in their praise of the gallant conduct of the
Germans.
One of the enemy's colliers was observed approaching this scene
of desolation in order to pick up survivors, some of whom had got
away from the sinking ship in her boats. The collier had been flying
the United States ensign, evidently as a ruse, in the hope that the
Carmania might be induced to let her pass without stopping her for
examination. It was, however, impossible to interfere with her owing
to the fire that was still raging in the fore part of the ship. This kept
our men at work trying to get it under, and necessitated keeping the
ship running before the wind, the direction of which did not permit
of approaching the spot in order to attempt to pick up survivors.
Smoke was now seen away to the northward, and the signalman
reported that he thought he could make out the funnels of a cruiser.
As the Cap Trafalgar, before sinking, had been in wireless
communication with some German vessel, it was apprehended that
one might be coming to her assistance. As the Carmania was totally
unfit for further action, it was deemed advisable to avoid the risk of
another engagement, so she steamed off at full speed in a southerly
direction.
As soon as the collier and all that remained of the wreckage of the
Cap Trafalgar was lost to view the gallant Cunarder was turned to
the north-westward in the direction of the anchorage. She was
unseaworthy, nearly all her navigational instruments and all the
communications to the engines were destroyed, making the steering
and navigation of the ship difficult and uncertain. When wireless
touch was established, the Cornwall was called up and asked to
meet and escort her in. But as she had only just started coaling she
asked the Bristol to take her place. The next day the Bristol, which
was in the vicinity, took the Carmania along until relieved the same
night by the Cornwall, which escorted her on to the base, where
temporary repairs were effected.
One of the enemy's shells was found to have passed through
three thicknesses of steel plating without exploding, but in spite of
this it set fire to some bedding which caused the conflagration under
the fore bridge. Where projectiles had struck solid iron, such as a
winch, splinters of the latter were to be seen scattered in all
directions. The ship was hit seventy-nine times, causing no fewer
than 304 holes.
There were 38 casualties. Five men were killed outright, 4
subsequently died from wounds, 5 were seriously wounded and 22
wounded—most of the latter were only slightly injured. All the
casualties occurred on deck, chiefly among the guns' crews and
ammunition supply parties. No one below was touched, but a third
of those employed on deck were hit.
The following remarks may be of interest, and are taken from the
author's letters, written on September 16th, after having been
shown over the Carmania:
"When I went on board this morning, I was greatly struck by the
few fatal casualties considering the number of holes here, there, and
everywhere. Not a single part of the upper deck could be crossed
without finding holes. A remarkable fact was that only one officer,
Lieutenant Murray, R.N.R., was hurt or damaged in any way,
although the officers were in the most exposed positions, and the
enemy's point of aim appeared to be the fore bridge.
"They had only three active service ratings on board; some of the
gunlayers were old men, pensioners from the Navy.
"One of the senior officers told me that the first few rounds made
him feel 'a bit dickey,' but that after that he took no notice of the
bigger shells, though, curiously enough, he thoroughly objected to
the smaller pom-poms which were 'most irritating.' He added that
the men fought magnificently, and that the firemen worked 'like hell.'
As flames and smoke from the fire on deck descended to the
stokeholds by the ventilators instead of cool air, the states of things
down below may easily be imagined.
"One chronometer was found to be going in spite of the wooden
box which contained it having been burnt.
"The deeds of heroism were many.
"I liked the story of the little bugler boy, who had no more to do
once the action had commenced, so he stood by one of the guns
refusing to go under cover. As the gun fired he shouted: 'That's one
for the blighters!' And again: 'There's another for the beggars—go
it!' smacking the gunshield the while with his hand.
"Again one of the gunlayers, who lost his hand and also one leg
during the engagement, insisted upon being held up when the
German ship sank, so as to be able to cheer. I talked to him, and he
waggled his stump at me quite cheerily and said, 'It was well worth
losing an arm for.'
"It is good to feel that the spirit of our forefathers is still active in
time of need."
CHAPTER VI
THE ACTION OFF CORONEL
There was little daylight left when Admiral Cradock tried to close
the Germans, hoping that they would accept his challenge in view of
their superior strength.
At 6.18 Admiral Cradock increased speed to 17 knots, making a
wireless message to the Canopus, "I am about to attack enemy
now." Both squadrons were now on parallel courses approximately,
steering south, and about 7½ miles apart. A second light cruiser
joined the German line about this period; according to von Spee's
report the Scharnhorst was leading, followed by the Gneisenau,
Leipzig, and Dresden.
As the sun sank below the horizon (about 6.50 P.M.) the conditions
of light became reversed to our complete disadvantage; our ships
were now lit up by the glow of the sunset, the enemy being
gradually enshrouded in a misty haze as the light waned. Admiral
Cradock's last hope of averting defeat must have vanished as he
watched the enemy turning away; at the best he could only expect
to damage and thus delay the enemy, while it was impossible to
withdraw. He had no choice but to hold on and do his best, trusting
in Providence to aid him. In judging what follows it should be kept in
mind that in the declining light even the outlines of the enemy's
ships rapidly became obliterated, making it quite impossible to see
the fall of our shots in order to correct the range on the gunsights;
on the other hand, our ships showed up sharply against the western
horizon and still provided good targets for the German gunners. Von
Spee in his report says his "guns' crews on the middle decks were
never able to see the sterns of their opponents, and only
occasionally their bows." This certainly implies that the upper deck
gunners could see quite well, whilst we have information from
Captain Luce's report that our ships were unable to see the enemy
early in the action, and were firing at the flashes of his guns.
Accordingly, as soon as the sun disappeared, von Spee lost no
time in approaching our squadron, and opened fire at 7.4 at a range
of 12,000 yards. Our ships at once followed suit with the exception
of the Otranto, whose old guns did not admit of her competing
against men-of-war at this distance. The German Admiral apparently
endeavoured to maintain this range, so as to reap the full advantage
of his newer and heavier armament, for the two 9.2-inch guns in the
Good Hope were the only ones in the whole of our squadron that
were effective at this distance with the possible exception of the two
modern 6-inch guns in the Glasgow. Von Spee had, of course,
calculated this out, and took care not to close until our armoured
cruisers were hors de combat.
The Germans soon found the range, their fire proving very
accurate, which was to be expected in view of the reputation of the
Scharnhorst and Gneisenau for good shooting—the former had won
the gold medal for the best average. These armoured cruisers
concentrated their fire entirely on our two leading ships, doing
considerable execution. In addition, they had a great stroke of luck,
for in the first ten minutes of the engagement a shell struck the fore
turret of the Good Hope, putting that 9.2-inch out of action. The
Monmouth was apparently hit several times in rapid succession, for
she was forced to haul out of the line to the westward, and her
forecastle was seen to be burning furiously, but she continued to
return the enemy's fire valiantly. This manœuvre caused her to drop
astern, and compelled the Glasgow, who now followed on after the
Good Hope, to ease speed to avoid getting into the zone of fire
intended for the Monmouth.
It was now growing dark, but this did not deter both squadrons
from continuing to blaze away as hard as they could; in fact, the
fight was at its height; the German projectiles were falling all round
and about our ships, causing several fires which lit them up with a
ghostly hue. The heavy artillery of the enemy was doing great
damage, and it was evident that both the Good Hope and Monmouth
were in a bad way; the former sheered over unsteadily towards the
Germans, returning their fire spasmodically, whilst the latter had a
slight list and from her erratic movements gave the impression that
her steering arrangements had been damaged. The results of our
shooting could not be distinguished with accuracy, though von Spee
mentions that the Scharnhorst found a 6-inch shell in one of her
storerooms, which had penetrated the side and caused a deal of
havoc below but did not burst, and also that one funnel was hit. The
Gneisenau had two men wounded, and sustained slight damage.
At 7.50 P.M. a sight of the most appalling splendour arrested
everyone, as if spellbound, in his tussle with death. An enormous
sheet of flame suddenly burst from the Good Hope, lighting up the
whole heavens for miles around. This was accompanied by the noise
of a terrific explosion, which hurled up wreckage and sparks at least
a couple of hundred feet in the air from her after funnels. A lucky
shot had penetrated one of her magazines. "It reminded me of
Vesuvius in eruption," said a seaman in describing this spectacle. It
was now pitch dark, making it impossible for the opposing vessels to
distinguish one another. The Good Hope was never heard to fire her
guns again, and could not have long survived such a terrible
explosion, though no one saw her founder.
The moon had risen about 6.30 P.M. and was now well up, but it
was too overcast to see much. According to von Spee the squadrons
had closed in to about 5,400 yards, which caused him to sheer off,
fearing torpedo attack. It seems certain that although firing was
continued it could not have been effective, for three minutes after
the Good Hope blew up the Germans ceased fire altogether. Shortly
afterwards von Spee ordered the Leipzig, Dresden, and Nürnberg—
the last-named having joined the squadron during the action—to
make a torpedo attack.
The Monmouth ceased firing just before the explosion on board
the Good Hope, and was then steering roughly N.W. It was clear she
was on her last legs, as her list had increased and she was down by
the bows. She now suddenly altered course to the N.E. in the
direction of the oncoming enemy. Captain Luce was senior naval
officer, being senior to Captain Brandt, of the Monmouth. He saw the
Germans approaching and signalled the Monmouth at 8.30, "Enemy
following us," but received no reply. Clearly there was no alternative
left him but to save his ship, if he was not to make a needless
sacrifice of his men, as it was obvious that he could be of no further
assistance to his doomed consort. In addition, it was essential that
the Canopus should be warned in time to avert a further calamity, a
task not so simple as it sounds, for the Germans were jamming our
wireless messages. It is said that when last seen the gallant
Monmouth turned and made straight for the enemy in a heroic
attempt to ram one of their ships. Von Spee reports that the
Nürnberg sank the Monmouth at 9.28 P.M. by bombardment at point-
blank range; this accounts for the seventy-five flashes of gunfire as
well as the play of the beams of a search-light, which were observed
by the Glasgow after leaving the scene of action. It must have been
brutal work.
Thus perished Admiral Cradock together with 1,600 gallant officers
and men. In fairness to the Germans it should be stated that our
own officers considered it too rough for boats to be lowered with
any safety.
The Glasgow had been subjected to the combined fire of the
Leipzig and Dresden, whose gunnery was fortunately not very
effective owing to the long range maintained between the two
squadrons before the light failed. That she had withstood this
combined onslaught for fifty-two minutes (von Spee's report) was
remarkable, but that she had suffered no material damage was little
short of a miracle. Her casualties amounted to four men slightly
wounded. She was hit five times, on or near the water line, but not
in vital places. The protection afforded by the coal in her bunkers
saved her on three occasions, as otherwise in the nasty sea running
at the time she would have found herself in a very precarious
position. Of the remaining two hits, one penetrated the deck but did
not explode, while the other wrecked the captain's pantry and cabin.
There was one large hole, which luckily did not prevent her eluding
her pursuers at high speed by steering out to the W.N.W., and
thence in a wide circle to the southward to the Magellan Straits,
finally arriving at Port Stanley in the Falkland Islands.
At the outset of the engagement the Good Hope made a signal
down the line to the Otranto, the only words received being,
"Leaving Otranto." The latter, therefore, hauled out to endeavour to
get this signal direct from the flagship, but as the Good Hope had
been badly hit, nothing further was received. As projectiles were
falling all round her, and it was realised that the Otranto, being a
large ship, would be used by the enemy as a rangefinder to enable
him to calculate the distance of the Glasgow, she hauled out still
farther to upset the accuracy of his gun-fire. The enemy proceeded
to carry this method of ranging into effect; the first salvo passed
over the Otranto's bridge, the second missed the bows by 50 yards,
the third fell 150 yards astern, while others which followed fell, some
over, some short. By this time she had worked out of the line about
1,200 yards, so turned to the same course, as far as could be
judged, as the remainder of the squadron. She was now out of
range. The Otranto ran the gauntlet of the enemy's most
successfully, since she emerged from this storm of shell quite
unscathed, but it must have been touch and go. Moreover—and
hardest of all—she had to submit to this treatment without being in
a position to retaliate. After the flagship blew up, nothing was seen
of the Monmouth; subsequently the Glasgow was reported crossing
her stern. Seeing that she could be of no assistance, the Otranto
dodged her opponents by straining full speed to the westward for
200 miles, and thence to the southward. Rounding Cape Horn, she
passed between the Falklands and the mainland and arrived at
Montevideo. Both she and the Glasgow must have accounted
themselves most fortunate in escaping safely from this unequal
contest.
The Canopus, which had been steaming northward with two
colliers, intercepted a wireless message from the Glasgow to the
Good Hope reporting the enemy in sight. She immediately increased
to her full speed, dispatching the colliers to Juan Fernandez, and
proceeded on her course northward in the hope that she would
arrive in time to engage the enemy. About 9 P.M. she received a
signal from the Glasgow that it was feared the Good Hope and
Monmouth had been sunk, and that the squadron was scattered.
Seeing the hopelessness of continuing on her course, the Canopus
turned round, picked up her colliers, and made for the Magellan
Straits via Smyth's Channel, the successful navigation of which
reflects great credit, since she was probably the first battleship ever
to make use of it. By this means she succeeded in reaching Port
Stanley without molestation, although the German ships were
constantly in close proximity.
Admiral Cradock appears to have had definite orders to prevent
the enemy coming round to the east coast of America. The Canopus
was only 120 miles away when he met the enemy. But had the
Admiral waited for her the Germans might have slipped past him
during the night, and, moreover, her slow speed would have
seriously hampered the mobility of his squadron. Speaking of
Admiral Cradock, Sir Henry Newbolt[7] says, "He had asked for
reinforcements, and the Admiralty had sent him what they thought
sufficient. It was not for him to hold back."
The advantages of speed and modern guns of superior range were
perhaps the outstanding features of the Coronel action. It was not
the vain sacrifice which at first sight it might appear to be, as it
probably saved our ships operating on the east coast of South
America from a similar fate.
Admiral Cradock carried out unflinchingly his search for a force
which he knew would almost certainly be superior to his own. His
unhesitating acceptance of the action and the gallantry of the fight
uphold the finest traditions of the Royal Navy, and will always be
recalled by it with pride. Surely, before God and man, such deeds of
heroism go far to mitigate the infamy of war.
"At set of sun,
Even as below the sea-line the broad disc
Sank like a red-hot cannon-ball through surf
Of seething molten lead, the Santa Maria,
Uttering one cry that split the heart of heaven,
Went down with all hands, roaring into the dark."
Alfred Noyes (Drake).
CHAPTER VII
CONCENTRATION
The various possible courses open to Admiral Count von Spee, both
before and after Coronel, have already been discussed, but the
movements of his squadron have not been subjected to examination
in the light that they bear on the policy which he adopted, nor have
the results of that action been considered from his point of view.
The German squadron sailed from Mas-a-Fuera on October 27th,
and three days later arrived about noon at a position some fifty
miles to the westward of Valparaiso, where it remained for upwards
of twenty-four hours. On October 31st—the same day that the
Glasgow went into Coronel with telegrams and the day before that
action was fought—the squadron steamed off south, leaving the
Nürnberg to wait off Valparaiso for a few hours and probably to get
information of importance. The German Admiral undoubtedly went
to the neighbourhood of Valparaiso with the express intention of
obtaining news and was in communication with the shore, for he
begins his official report on the action fought off Coronel by saying
that his three light cruisers reached on November 1st a point about
twenty "sea miles from the Chilean coast, in order to attack a British
cruiser (Glasgow), which, according to trustworthy information, had
reached the locality on the previous evening."
It is, of course, impossible to know what were von Spee's
intentions at this moment; they can only be surmised from a general
survey of the situation and the means that he had of obtaining
information. The latter was acquired by an organised system, for
there were German agents in every South American port. It may be
taken as certain that any ship calling at or passing Punta Arenas
(Magellan Straits) would be reported to him, and that the names of
the ships and certain of their movements on the south-east coast
would also be known to him.
Easter Island—which was von Spee's original base—is
approximately 2,300 miles from Valparaiso, and therefore out of
range of wireless communication, although it is possible he might
occasionally be able to take in a message under favourable
conditions. However, it is known from an officer survivor of the
Gneisenau that on October 19th the German Admiral received a
message—possibly through a German supply ship—stating that a
British Squadron consisting of "Good Hope, Monmouth, and Glasgow
was to the south." Now we know that this squadron was at Punta
Arenas on September 28th, and leaving on that date was employed
searching inlets and bays round Tierra del Fuego for some days. The
Good Hope then returned to the Falklands, finally leaving them on
October 22nd, whilst the others went on to the coast of Chile and
were there from October 11th onwards, making use of a
sequestered spot as a base. The Glasgow was at Coronel on October
14th and at Valparaiso the day following, so the fact of a British
Squadron being "south" was well known, though the information did
not reach von Spee till the 19th.
On receiving this news von Spee sailed immediately. He knew he
was in superior force to Cradock's squadron, and the presumption is
that he went over to prospect and, if possible, to force an action. He
went straight to Mas-a-Fuera, only remained two days to coal, and
then on to a position off Valparaiso to pick up further information.
Immediately on hearing that the Glasgow was at Coronel on the
31st, he proceeded south to cut her off, and, as was likely to be the
case, to meet Cradock. He must have judged that the rest of the
squadron could not be far behind the Glasgow. The probability was
that he received information of the Good Hope passing through the
Straits about the 24th or 25th, and he might also have heard of the
Canopus doing so a day or two later, in which case he would have
calculated that the latter could scarcely be so far north by this time.
There is no indication that by this date von Spee had made up his
mind to quit the South Pacific. He had hardly had time to make his
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com