#I got accepted to a local craft vendor group
Explore tagged Tumblr posts
Text
#kirby#kirbear#plushies#daily kirby#my art#digital#hal laboratory#nintendo#I got accepted to a local craft vendor group#so in addition to the annual craftageddon and the kirb2k stuff I'll probably also have a table at a craft fair :x#which I wanna do! but also wow that's a lot of stuff to do!
160 notes
·
View notes
Text
Oh I had a great time! ❤️❤️ Now, For the story.
So, blanket fact- I am no longer Christian but was raised in the church as a child. I really enjoyed the ritual of mass, it would bring me a lot of tranquility.
So as an adult who has definitely gone very strongly in another direction, I've been known to seek that structure. So, finding one of the local UU groups was great! There was a good number of us under 50 years old, and there was talks about making a CUUPs chapter here in town.
And then, the person in charge did a racism. I won't get specific because it would be identifying, but he sure pulled a big racism and I left that place, along with most of the other younger folks in their right minds. This was in 2019. Unfortunately, the land and building itself is often used for events because they claim to be welcome and open despite their pastor's gross beliefs.
Last year, some folks I know and circle with held an outdoor event there! It was cramped, but lots of fun, save for the spectre of knowing who was benifiting from some of the rental costs. So next time I was with the organizers, I mentioned how much fun the first event was, But how nice it would be to have more space!
They agreed, lamented that lack, and I casually mentioned a place I know that is just as open and accepting... and does rentals for events. I know people there, so I could pretty much promise there wouldn't be any judgement. :)
Over the next months leading up to this last weekend, I heard how they got in touch with the folks, got everything set up and here we are, having had the event.
And it was a spectacular outdoor Faire. :) there was all sorts of vendors and a craft tent and live music and it was a perfect fall day for many many folks to be out wandering around a beautiful area full of trees.
And that former church of mine got not one single damn cent this year. :)))))
3 notes
·
View notes
Text
Merry Christmas, the-prophet-lemonade!
For @the-prophet-lemonade. So, I honestly panicked when I received the name of my giftee. Lucy, I did my best to put as many tropes as you like here. I hope it's not too crazy or confusing. I've never written space opera before, and it was a big challenge. I hope you like it 🙈
Read On AO3
*****
I’m gonna hold you (like I’m saying goodbye)
“Alexander!”
“On it!” Alec shouted back, sprinting through the busy, narrow alley. They’d been tailing the dragonfly-shaped creature for fifteen space jumps and through three galaxies, and they didn’t have the luxury of time to keep playing tag.
At least, Magnus didn’t have it.
Groaning, Alec saw the moment their target rose its wings and took flight.
Oh no.
That motherfucker wouldn’t.
Activating his runes, Alec jumped to his right and landed briefly on a barrel before launching himself upwards. He sprang from a windowsill on the left to a roof on the right, and pushed himself far enough to grab the creature’s tail and force them both back down.
With the natural grace of a Nephil – a blessed warrior crafted from the Creation’s purest energy – Alec landed graciously on the ground; or, more specifically, over his target’s body. Without wasting a beat, Alec unsheathed his Seraph blade and held it to the other figure’s neck.
“No more games. Where is the egg?” he asked with as much authority as he could muster, a dangerous threat lacing his voice.
The dragonfly-creature groaned, but relented, giving Alec the coordinates for the Dragon egg’s location.
“Alexander,” Magnus called again, finally reaching the Nephil. He stopped to catch his breath, having to sit for a moment. He was exhausted. The amount of power needed to keep his glamour up, hiding his scales, has been very taxing to his body lately.
Turning his head in Magnus’ direction, Alec’s face softened instantaneously. Glancing down to the robotic cat at Magnus’ feet, Alec spoke kindly. “Chairman, can you send a message to Isabelle Lightwood at the 987th octant of Idris galaxy? Tell her to come to the Seelie Planet. I got another illegal dealer.”
Chairman Meow’s face lit up in an affirmative, a rush of numbers and coordinates passing through the screen as the message was sent. Meanwhile, Alec pressed his knee more forcefully against the criminal who was still hissing and cursing him.
“For your cooperation, I’m going to request a lenient sentence for you. But if you are trying to mislead me, I swear I’ll personally throw you into the nearest black hole,” Alec growled, making Magnus snicker. He knew Alec would never do that to another living being, it was too cruel a move for his big-hearted friend; but the criminals didn’t know that, so they always complied.
Well, at least they now knew where to get the seventh Dragon egg.
~*~
The 5 th Draconic Rule – Mates
Gift – Every Dragon has a bonded mate; a soul created exclusively for their care, protection, and devotion. The bond is sacred, and its strength ensures the power and mental stability of a Dragon.
Curse – A Dragon who is without a mate on their thousandth supernoval cycle is fated to meet one of only two ends: complete madness, or death.
~*~
When the first translucent scales appeared, tiny ones near his hip, Magnus knew the clock was ticking. He would have to decide soon, and although he already knew which option it was going to be, it didn’t make taking the final leap less daunting.
His father was one of the most powerful dragons to ever exist, coming from royal lineage and with an entire planet under his claws. But his power came with a price - always a price - and his reign was tainted with blood and death.
Magnus refused to be part of it, to continue a kingdom built on pain and tears. His refusal also came with a price - when he was finally able to break free from Asmodeus, his father used one last trick.
He cursed Magnus' soul to never recognize his counterpart. Without the guide for his fated bond, he would never find his rider.
Asmodeus condemned Magnus to a lonely life with a sad end.
~*~
While waiting for the magnetic storm that would enable the space jump they needed to get to their next location, Magnus and Alec decided to venture through the heavily decorated town, full of warm lights and oddly curved, red-and-white striped decorations. The townspeople were apparently celebrating some kind of deity which was dear to their small planet, so the festivities were expected to go on for two whole weeks. A lot of visitors from other planets made the crowded streets busier than ever, the local merchants thriving as they sold their domestic goods and traditional food.
Holding each other’s hand to not get lost within the busy streets – though both knew better than to believe in that weak excuse – Magnus and Alec enjoyed the proximity and warmth of their interlaced fingers.
They had lost so much time, avoiding any attempt at something besides friendship due to their fear of an expected separation. After all, if Magnus did miraculously find his mate, their time together would end, and it would be too painful to accept that reality. All right, maybe the bond could be platonic – it had happened in other cases. But what if it wasn’t? By now, Alec knew about Magnus’ feelings for him; but what if the bond was stronger? What if Magnus fell in love at first sight with his rider?
Of course Alec would let him go, but it would hurt so much. And Magnus also knew what Alec felt, and would never want to inflict that kind of pain on him.
Their separation had maybe always been inevitable - but if they were going to save Magnus’ life, it would have to be soon, too. So, as a small mercy to themselves, they’d finally agreed to make the most of the time they still had together before…
Before whatever ending waited for them – Magnus’ salvation, or his death.
They wouldn’t put a name or label on their brief, joyful time together.
They would just be them.
Just Magnus and Alec.
They tried to have some fun, at least - and this festival was no exception. They played some of the games and won a few good prizes – which they didn’t mind giving to some of the children who looked at them with pleading eyes. They ate and drank and laughed. It was good. It didn’t feel like a big disaster was just waiting to fall on their heads at any time.
When night started to set and thousands of moonlight orbs floated in the growing light to illuminate the festival, Alec pulled Magnus aside to put something on his hand. It was a small, rectangular charm, made of red silk and golden thread.
“What is this?” There were awe and wonder in Magnus’ eyes, making them sparkle even more.
He is so beautiful. Alec smiled bashfully.
“It’s called an omamori. They are sacred to the feathered race, and I’ve heard that only those from the Phoenix constellation can make this. Each color and each thread are carefully chosen as they have different meanings, and ultimately the charm is bathed in blessed ashes mixed with powdered moonstone to strengthen its power.”
Magnus nodded slowly, taking in every detail and tracing the omamori with reverent fingers.
“What does this one mean?”
While Magnus was distracted by some silk scarves, Alec was drawn to the mystic power of a stall full of charms, which were being sold by a humanoid, copper-feathered bird wearing more jewels and chains than clothes.
The kind vendor explained the basics of omamori magic to Alec, and he felt more compelled than ever to buy one. He was torn between two – a blue and silver one, and a red and golden one, but when the vendor told him the blue and silver omamori was for success and longevity, oh… Alec felt a pang in his heart.
It would be clinging to something that would almost certainly never happen.
But the other option…
“Luck and protection.” Because if things went well? It would be by sheer luck. And protection… “Because I swore to always protect you, and I meant it - this way, if something happens and I’m not there, you’ll still be guarded.”
“Oh…” Magnus breathed softly, a small and genuine smile lighting up his face. He touched the omamori gently to his lips, his draconic eyes shining. “Thank you, Alexander.”
The soldier ducked his head and smiled, before nodding towards the food court.
“What do you say to some sweets from the Orion constellation?” They were some of Magnus’ favorites, he knew.
Magnus grinned. “You really know the way to a dragon’s heart,” he declared with a wink.
That Alec already lived in one was left unsaid.
~*~
The 9 th Draconic Rule – Scales
Gift – Every Dragon is born with silver scales, representing their purity of soul and a whole canvas of possibilities. They sing in gold when the ritual of mating is complete, and will then shift into a new color, signifying the Dragon’s new identity.
Curse – Bondless Dragons will surrender to red or black scales. Red scales for an eternal feral state and solitude. Black scales for the grief of death.
~*~
“Approaching the Dragon Sanctuary.” Alec announced through his communicator, unable to contain the excitement in his voice.
“Again?” Jace teased through the same communicator. “I don’t know why you still bother to come back to Idris at all. It’s clear you have a new home now.” Alec didn’t dignify his brother with an answer, mostly because that would mean admitting he was half-right.
Because no, Alec didn’t see Alicante as home anymore, even though he’d grown up there. But home wasn’t the Dragon Sanctuary either.
Home was a breathing thing. A person.
Or, in better terms, home was a dragon.
Alec first met Magnus when he was only sixteen. It was an odd situation, but somehow they saved each other while fighting against a group of mercenary hunters. After that, Magnus accompanied Alec for some time to make sure he would get back home without any more problems.
From there, they never stopped seeing each other. Ten years later and their visits had continued all the while. It was hard sometimes, since they lived in different galaxies; but Alec was one of the best warriors and pilots from Idris galaxy, and it wasn’t a problem for him to escape sometimes to go and see the one who made his heart beat a little faster and his mind spin.
Turning off the communicator once more, Alec finished the landing procedures, and stepped out of the craft onto the grass surrounding Magnus’ nest.
When he felt something quickly curl around his body, he didn’t even flinch. He would recognize that warmth and sandalwood scent anywhere.
“Hey,” Alec grinned, petting the dragon’s head as it kept nuzzling his cheek. Magnus’ true form was much, much bigger than this one, but he liked to say that this was the perfect size to cuddle Alec.
“Hello, pretty boy.” Magnus’ voice in his draconic form was a bit deeper, but still soft, with a musical lilt. “Missed my eyes?” As if to make his point, he lifted his head and golden, slitted eyes bored into Alec’s hazel ones, until a flirtatious wink broke the spell.
“Actually, I missed all of you, not only the eyes.” Alec answered bluntly as always, making Magnus pause in surprise and then burst out in delighted laughter.
A second later, Magnus shifted back into his human form, magic already wrapping him in clothes. Still, he didn’t let go of Alec and hugged the Nephil for a little longer.
Magnus wasn’t one to hug much – that was more Alec’s department – so when the dragon lingered longer and actually tightened the embrace a bit desperately, Alec knew something was wrong.
“What is it?” Alec pulled gently away so that he could turn and look at Magnus, and his smile faltered when he saw the dragon’s crestfallen face.
Instead of replying, Magnus just pulled back part of his cloak, showing his collarbones. And showing the translucent scales that glinted on his skin.
Translucent scales, on his human form.
Alec felt his face drain of color, and he grabbed urgently at Magnus’ shoulders. “When?”
“Last week,” Magnus mumbled. “This is why I asked you to come a little earlier. You… you know what this means.”
“Magnus…” Alec felt his heart ready to combust from sheer panic. “Your choice… What choice have you made?”
Magnus flinched at that, and right then Alec had his answer. He closed his eyes, willing the tears to not come.
Of course. Of course Magnus would want that.
Without his soulmate, spending the rest of his eternal life as a barely-sentient, feral creature would be Magnus’ worst nightmare.
Of course he would choose death.
But Alec had barely opened his mouth to protest when two other dragons landed beside them.
“Cat, Ragnor, good of you to join the party.” Magnus smiled, putting on that happy façade which Alec absolutely hated to see on his friend’s face.
Catarina and Ragnor were Magnus’ best friends, and together they formed a trio of unshakable loyalty and care. However, unlike Magnus, those two already had riders with platonic bonds. Ragnor, whose scales were the beautiful green of a forest touched by the first rays of light after dawn and whose horns had a curvature bigger than his head, was bonded to a priest called Raphael. And Cat, whose scales were the fresh blue of the clearest ocean, was bonded to a little girl called Madzie who was still learning how to be a rider.
As for Magnus…
Alec thought about Magnus’ silver scales. Usually they were a dragon’s version of ‘plain’, but Magnus was always adorning them with jewelry, until he not only shined but sparkled like a gemstone in the sun. But still, all the decoration in the world didn’t change the message a silver scale sent.
Magnus was bondless.
He was alone.
He had no one to care for him, to love him.
Alec sighed inwardly. What an ugly lie. If he could…
But that thought was quickly interrupted by Cat dropping yet another bombshell.
“We found a solution,” she began, speaking as soon as she shifted back into her human form. “It was hard, but the Elders finally yielded. Have you ever heard of the Journey of Eight?”
“Isn’t that a myth?” Magnus frowned.
“All myths are real, dumbass.” Ragnor grumbled, also shifting. Then, he turned to Alec, who presumably looked very lost. “Dragon eggs are rare and very precious for us,” he explained, “but they also emanate a lot of power, which unfortunately serves to draw untowards attention.”
Alec nodded, already aware of that fact. Dragon eggs were on the top of mercenary hunters’ list to acquire. A small piece was worth a fortune capable of sustaining a family for three generations.
“When a Dragon is born, no matter where it is in the Universe, it’s imperative that the remnants of the egg should be destroyed, or else anyone could get their hands on it.” Cat continued. “But there are rumors of Dragons who didn’t have the chance to do that, so some of their egg remains.”
“There is even one in a fucking museum,” Ragnor grumbled.
Catarina grimaced. “Yes, there is. But our point is - Magnus, if you collect one piece of eight different eggs, their power would be enough to fuel a ritual that will point in the direction of your rider, no matter how far away they are.”
“What?” Magnus spluttered, and Alec felt the same, torn between shock and hope.
Magnus could be saved.
“Do you know the coordinates for those pieces? I can go take them right now!” Alec stood at attention, a soldier more than eager to take orders and act.
“Alexander!” Now Magnus was the shocked one. “My thousandth cycle is in a month's time. It’s impossible to search through millions of galaxies in that time.”
“But we have to at least try,” Alec insisted. “Listen, my ship is fast. I’m a good pilot. If I have the coordinates? I don’t care if I have to make five hundred jumps, or five thousand jumps, Magnus. I won’t miss this opportunity to help you.”
Magnus’ Adam’s apple bobbed painfully as he swallowed. That sweet, sweet man.
Biting his lower lip, Magnus nodded, a fierce expression crossing his face.
“I’m coming with you.”
“Magnus, I can handle–”
“No, this is non-negotiable. The Dragon eggs are for me, so I decide that. Besides…” Bringing a hand to his lips, Magnus whistled loudly.
Seconds later, his robotic cat – Chairman Meow – came running from Magnus’ nest. As cute and small Chairman looked, Alec knew better.
That robot knew one hundred ways to kill and hide the body without anyone knowing.
“Chairman only goes where I go.” Magnus grinned. “And my intuition tells me he will be a very useful addition to our team.”
~*~
The snow drifted slowly, dancing and tumbling in the air like fireflies. It was beautiful, especially when the scarce light caught it and reflected a fleeting, pocket-sized aurora. However, as pretty as it might be, it was also a sign of the steely and dangerous cold. The situation of sharing a single bed seemed less ‘odd’ and more like an obviously excellent idea, the two of them bundling up under the same blanket to keep themselves warm.
Alec didn’t mind, especially since he would do anything to stop Magnus’ shivering body from shutting down. The fire in the hearth wasn’t enough anymore, hadn’t been for hours. Chairman Meow had already needed to activate one of his survival mode settings, too, turning into a small space heater to keep the chill at bay.
Magnus was running out of time.
Not only his body was starting to freeze from inside out, his blood running sluggishly, but more scales were blooming and darkening. They’d already advanced over his neck and reached his chin, and by now they were half-covering his forearms and thighs, too.
They were killing him.
Alec let out a shuddering breath and held Magnus more tightly against his own body, earning a weak, content sigh from the dragon. Looking out of the window, past the snow and lights, Alec sent up a prayer - or just a desperate plea - to the stars hidden up above, or whatever power lurked behind them.
Please, don’t take him away from me. Give us more time. Please, please.
~*~
Fuck, fuck, fuck.
This wasn’t supposed to happen. The last Dragon egg was said to be inside a cave that only other dragons could locate, and Magnus found it easily - but they hadn't expected to also find mercenary hunters. It was unbelievable that even after Valentine’s demise, his goons were still out there causing havoc, enacting his toxic and distorted vision.
Fucking dammit.
Nothing was easy, huh?
When they’d retrieved the first few egg fragments, fights hadn’t been a problem - Alec and Magnus worked well as partners in battle. But now, with Magnus growing ever weaker, the only way they stood half a chance was if Chairman Meow was also actively helping them fight.
Which meant it was a good thing the cat was programmed to spit fire. Bless Magnus for having insisted on bringing him with them - a portable flamethrower was exactly what they needed, especially after Alec’s second Seraph blade fell into the river of lava below.
After all, going for a swim to retrieve it was hardly an option.
Magnus finally reached the eggshell fragment - the last piece they needed, hidden in a glamoured nest. Alec was still finishing off the last hunters, struggling without Magnus’ help and his increasing fatigue. By now, he’d lost not only both blades, but also his bow - he was using his arrows as last-resort weapons, now. Eventually, though, one of them struck home in the eye of the last hunter standing, and Alec slumped, catching his breath.
It was too soon.
One of the hunters who was already down – an elemental demon, who despite his half-burned body suddenly seemed to find a last burst of energy - struck out, launching a ball of raw elemental power at Alec.
Alec barely had time to blink before Magnus pushed him out of the way and took the brunt of it.
“NO!” Alec screamed, crashing to his knees. “You fucking stupid, fucking idiot…” He crawled over to Magnus and cradled his limp form, anguish threatening to swallow him whole even as he brought the dragon as close as possible.
“Not… charming, darling…” Magnus coughed, blinking sluggishly.
“Don’t care. How many times have we talked about your dumb self-sacrificing tendencies? You are not a fucking living shield!”
“You’re one to talk. Also, you are saying the word ‘fucking’ far too much, Alexander. Is there some kind of urge you’re trying to hint at right now?” Magnus gave a wobbly smile, as well as a bleary, poor attempt at a wink.
“Stop flirting,” Alec chastised, a lopsided grin slowly blooming on his own lips despite his rising fear.
Magnus hummed in acknowledgment, but no other quip came forth. Instead, his eyes closed and didn’t open again.
“Magnus?” Nothing. “Magnus, hey-” He shook the dragon a little bit, Magnus staying unresponsive - but the change in position illuminated black scales, new ones, growing on his face.
They were out of time.
Resisting the urge to break down right there, Alec lifted Magnus up and strode towards his ship.
They had to go back to the Dragon Sanctuary now.
~*~
Alec could count on only one hand how many times he left his ship to navigate by autopilot. It’s not that the AI wasn’t efficient; Alicante’s technology was undeniably some of the best in the known Universe. Most of his people still believed it to be their divine right, as they were the chosen ones from the Creation itself.
There was a time Alec also believed in that natural, just superiority. Until...
A weak tremor caught his attention and he looked back down at the man still cradled in his arms. Magnus’ human form was fading. His breathing was ragged and his pulse was weak.
“Fuck,” Alec cursed, his eyes blowing wide in panic. “Church, go faster!”
“We are already at maximum speed, sir.”
Alec cursed again. He needed to pilot the ship manually, so he could break past the damn protocols and force the system to crash its primary settings. Without the restraints implanted by the Clave, he could burn up all of the stamina core in minutes and increase their speed tenfold.
He’d be in big trouble for it, of course, but he didn’t care. Magnus was his priority.
He had been for a long time.
AIs weren’t made to enter a gravitational field by themselves, the unpredictable shifts in G making the systems unstable to the point of shutdown. Always, always turning off the autopilot and navigating manually through gravitational fields was one of the first things Alec had learned at Alicante Academy.
But right now, he either piloted or held Magnus. He couldn’t do both, and maybe they needed the speed, but putting Magnus down away from his warmth and posture support was out of the question.
So, Alec made his choice.
And he could only pray it was the right one.
ATTENTION
ATTENTION
SAFETY PROTOCOL MALFUNCTION
CRASH LANDING IMMINENT
“Chairman, secure us!” Alec yelled amidst the blaring alarms, and the robot promptly leaped into action. Elongating his tail, he fastened it around Alec and Magnus, pinning them on the makeshift bed. His claws also grew and penetrated the metal floor, firmly holding onto it.
Alec closed his eyes and waited, hoping for the best. And if the worst happened instead?
Well, Magnus was already dying.
At least he wouldn’t die alone.
ATTENTION
ATTENTION
TRAJECTORY UNSAFE
CRASH LANDING IMMI-
~*~
The 6 th Draconic Rule – Bonds
Gift – The bonds have two different natures; they can be either platonic or romantic. The platonic bond is more common, but the romantic bond is more powerful. Combined with partnership, the soul bond allows for total connection and shared strength.
Curse – A rider can reject a bond if they do not desire to be by their Dragon’s side. The pain of rejection is visceral. Death is considered a far kinder fate.
~*~
“…wood. Lightwood! Bloody hell, boy! Where did you learn to pilot? Your ship is a goddamned wreck-”
“Ragnor, if you aren’t going to help, do be quiet. Concussions don’t heal themselves, I have work to do.”
“Just wake him, for fuck’s sake! Concussion or not, he’s the only one here who can take Magnus to the fountain, and if he doesn’t damn well hurry up-”
Alec’s eyes snapped open, his body jackknifing upwards. Instinct kicked in before recognition, his frantic heart threatening to escape from his chest, and he reached for Magnus – who was still unconscious and laying beside him.
With trembling fingers, he pressed down on the pulse point at Magnus’.
It was so faint…
“Alec, we’re nearly out of time.” His attention finally snapped upwards to the two other dragons present, his brain kicking back into gear with a spike of hope. If Catarina and Ragnor were there, that meant they did it, they reached the Dragon Sanctuary. “Did you get all eight pieces?”
Alec nodded, grabbing at the small satchel attached to the cord on his neck.
“Perfect. We have to go.” Cat opened a portal and stepped through it without missing a beat. Ragnor followed, looking back at Alec one last time with a worried glare that quite clearly meant hurry the fuck up.
Alec didn’t need to be told twice. He lifted Magnus into his arms once more, and the two of them disappeared through the portal.
On the other side, Alec stepped out into the most majestic scenery he’d ever seen. They were inside some kind of cavern, what looked like the base of a mountain with how high it was, the ceiling barely visible. The walls and whole swathes of the floor were covered with stalagmites so clear, they seemed made of pure crystal.
A moment later, the torches around them flared to life, and produced a whole spectrum of colors and magic and sound.
Alec didn’t know how that was possible, but it was like the stones were humming some kind of melody.
In the center of everything, there was a fountain – the water so crystal blue, it was easy to see the sigils and marks on the bottom of it. Around it, exactly eight bowls – equally distanced from each other – with eight black candles already alight, burning gold as Cat or Ragnor threw a piece of dragon egg into each flame.
When the last piece was burned, the entire fountain began to shine.
“Put him in the water, now!” Ragnor practically roared, but Alec was already in motion, leaping straight into the center of the water; Magnus floated freely, but Alec couldn’t step away, opened his mouth to ask if the ritual would work with him there and-
The water pulsed.
No, wait - it was Magnus’ body pulsing, his soul looking for its counterpart.
Three beats later, everything stilled.
Alec waited with bated breath, expecting at any moment to see some kind of magical arrow appear, pointing to where Magnus’ soulmate was.
But absolutely nothing happened.
Alec’s heart plummeted. They were too late, they- “No, no, no,” he mumbled, his hands twitching at his sides. “Why didn't it work? He needs his rider. Why–”
“Alec,” Cat interrupted him, but not unkindly. “Look down.”
Blinking hard, he did exactly that.
There was a gold thread coming out from Magnus’ chest and connecting to…
Oh.
Connecting to his own chest.
It was him? He was Magnus’ rider?
Another pulse, and something – something ancient and powerful – whispered in his ear.
And suddenly, Alec knew exactly what to do.
Lowering himself further into the water and bringing Magnus into his arms once more, he kissed his dragon’s forehead, and then began to chant in a strong, quiet voice.
“Thee and me ever entwin'd
Dragon of mine, heart of blissful shine
I bond myself to thee, now and forever
Dragon of mine, mine own eternal shrine”
A pulse.
The water shone silver.
Another pulse.
And like molten obsidian, Magnus’ scales turned from black to gold.
Another pulse, and another, and another and another-
The cave was coming alive like a dormant heart, beating against long-worn stillness. And then it breathed - and Magnus transformed, his bones shifting under blinding light, stretching into a dragon form that was so big, he ended up occupying almost the entire fountain.
When the light dissipated, his scales weren’t gold anymore.
Nor – thankfully – black.
They were a mesmerizing azure blue.
Alec bit back a cry of joy, and relief, and excitement. Magnus was saved.
Magnus was going to be alright.
“My rider,” Magnus rumbled, lowering his head – so big, just his eye was bigger than Alec’s head – and nuzzled against Alec’s chest. “My darling Alexander. It has always been you.”
“Yeah…” Alec closed his eyes, feeling all the tension leave him at once, and letting himself snuggle against Magnus. Suddenly, a chuckle slipped free. “I can’t believe that damn curse prevented us from seeing the obvious.”
“I can’t believe it worked; I was almost certain that the eggs wouldn’t help,” Magnus hummed. “Even if they pointed to the direction where my rider was supposed to be, there was still the possibility of them being too far away for me to get there in time. Or they could have been dead. Or… or they could have rejected me.”
Now that they were bonded, Alec could feel the fear bleeding from Magnus’ words, and it made his own heart ache. “So why did you want to go through all that trouble just to get them?” he asked, frowning.
“To be with you,” the dragon replied simply. “If I was going to die, I wanted to spend my last moments with the person who made me the happiest.”
“Magnus…” Alec felt a lump rise to his throat, and held his dragon a little tighter. Just thinking about Magnus’ demise was enough to make him shiver. He hoped to never feel that fear again.
“Oddly enough, Magnus is right,” Catarina suddenly said, drawing their attention. “The eggs didn’t help at all, really.” She grinned at their clear confusion. “I’m sorry for the deception, but it was the only way. The truth is, it was never about the eggs. It was about the journey - your journey.” Her smile softened. “You two already had a natural bond in place, but Asmodeus’ curse was messing with the nature of it. You fell in love without knowing you were soulmates.”
Alec blushed. Love… Even if they had never put a label on what they were, on what they felt for the other…
Love felt very right.
“That’s also why Magnus didn’t fade so fast,” Ragnor added. “Had he spent that length of time alone, he never would have stood a chance. He could only hold on because you were always together.”
At that moment, Magnus returned to his human form, and for the first time in months, he looked healthy. Alec was so relieved, he felt like crying.
Naturally, Magnus immediately broke the moment. “Now you don’t have an excuse not to ride me, Alexander,” he declared with a smirk.
Alec snorted, but the sound was too close to a sob. He thought he was going to lose that, too. Magnus’ terrible jokes and shameless flirtations. Unable to stand even a tiny distance any longer, he practically threw himself at Magnus, hugging him firmly and burying his face in the crook of his neck.
“I promise to always protect you,” he said fiercely. “Nothing bad will happen to you again. I’ll be by your side every step of the way.”
“This sounds awfully like a wedding vow, darling,” Magnus teased - but there was a note of insecurity in his voice, too.
“I mean, we can get married, can’t we?” Still holding his soulmate, Alec turned to Cat and Ragnor, as if looking for their blessing. After getting a nod and appreciative smiles from both, Alec turned back to Magnus and held his face with the utmost care and affection.
Then, he leaned in and finally, finally kissed Magnus.
Magnus kissed back with equal fervor, yearning for the sweet contact he’d craved for so long. They only pulled apart to finally say what could no longer be contained - the only words that really mattered, the ones they needed to pronounce and hear more than they needed air to breathe.
“I love you.”
I love you, I love you, I love you.
5 notes
·
View notes
Text
Sneak Peak
Sneak peek in everyone’s life. How did they feel about the unprecedented pandemic and what have they been up to during the lockdown. Some emotions and feelings we would like to share
Bharathy Sivan
Our husbands’ being soldiers, they do not have the option of Work from Home. When they come back home, they are quarantined in a room. But then this is how we, ladies supported each other and quarantined our families as a community with our own volunteered group efforts.
The families of Raksha Nagar decided NOT to step out for at least 45 days. But luckily, we got used to the system and its been continued successfully for the past 3 months.
Even before the lockdown 1.0 was announced our volunteers for main and sub teams were ready. We divided the families into groups (approximately 30-40 members each) according to the location and one member administrate each group through WhatsApp.
We tied up with an agricultural farm and two vegetable vendors.
We convinced and trained the two grocery shops outside the camp and liaisoned with a FMCG dealer & a medical shop owner.
We have ties with Godrej chicken company of Pune who can deliver our order at Nashik.
We started supporting a cold press oil business started recently.
To simplify the process, we ladies discussed the approximate grocery requirement to be stocked up for 45 days for a 4-member family. And created template lists with 4 options. And the grocery shop packed them for all after their rush hours. We appointed 4 guys as delivery boys. After They door delivered them through the small electric vehicle available in the camp.
The choices for vegetables, non veg and other perishables are forwarded by the individuals to the WhatsApp administrator, 2 days in advance and she compiles and forwards to the chief coordinator (me). And I Forward it to the farms and shops. We staggered distribution by groups in different days to avoid cluttering and confusions.
The bill copies are sent on WhatsApp and the amount is compiled as an excel sheet and posted in groups. The families are paying it through digital means and send the screen shot on WhatsApp. End of the day the payment from the families are verified and order closed.
It appeared like a chaotic task in first week. There were raised eyebrows that is it going to work? But once the templates are ready and the system of payment got regularised it became a simple and smoother operation.
In fact with group communication, digital transaction and door delivery administration in place, we could actually do wonders. We adapted an orphanage which was in struggle without support. The migrant walkers had food collected from our homes group wise. Women turned entrepreneurs by baking cakes and crafting gifts for birthdays as shops were closed. Few prepare food material for long storage with traditional methods and supply everyone on payment.
We share, care and remain happy and safe as a community with just little more efforts on our day today life. It’s is not tough. It just requires an attitude.
Household chaos, cooking for kids, and I have some social responsibilities here as a military wife. I’m in charge of arranging essentials for 300 families, plus my business.
Literally tongues out…!
Saravanan Subramanian
As it all happened so suddenly, we happened to work from home. I chose to stay in my village, away from the city chaos in pursuit of peace and calm. I moved away from Chennai, went to my small remote village, where I was born. Here no shops, no cars, no bikes, even no small shops available. Entirely agriculture-based village.
After moving away from Chennai, settling in a small village, and continuing to WFH was a massive challenge for me for one month due to inferior internet quality... Later I managed to get a fiber net connection, which was very surprising for me even to find it here.
Due to COVID 19, My Company, Ford India, planned a massive purchase pipeline, so I am managing my team sitting from this village...
Significant reasons why I moved away from city life-
1) No worry about social distancing in my village. A very remote place with limited population
2) In Chennai, after a few days, we need to depend on supermarkets for groceries and vegetables. Here everything is available in the house for the next year or forever.
3) I am happy that I am spending more days with my parents after my schooling in my village. I was reminiscing all my childhood memories like sleeping on the terrace under the sky, cooking dinner with fresh homegrown vegetables, taking a walk with my kids in the village roads breathing clean air.
Fortunately, I got an opportunity to relive the life I always missed, and that is so close to my heart.
Divya Kulkarni
MY INSPIRATION ABYSS
There she stood - with a beaming and powerful smile on her face - honoring our country with that prestigious tiara!
As I watched a recording of this historical moment, my jaw dropped!
The first-ever Indian woman to be crowned Miss Universe (1994); that’s right, the gorgeous Sushmita Sen for you :)
Soon after, Sen adopted not one, but two daughters eventually, and won my (& million others’) respect once again!
And she wouldn’t stop -- a few years later, I joined social media only to learn she is a Yogini. Inspired by her dedication and progress, I took to Yoga in 2018 and became an Internationally Accredited Yoga Instructor and also recognized by the Ayush Ministry, the Government of India.
P.S. I had lost touch with Yoga for a long time, but 2020 and this lady have given me a chance to bounce back and upgrade myself through such beautiful balance poses🙏🏽
You may find more of me and #everydaystories on a yoga-full life at @divyoham_om on Instagram. Because Yoga is for everyone! XOXO
Dipan Kumar Rout
*During the Lockdown*
Well, the lockdown started with numerous things and my effort to inculcate things that I saw on social media. While some people started the so-called 30 Day challenges and posting their workout routines, I was struggling with the basic push-ups. The good part of this is, once you start doing it and do it regularly, you will begin to realize the amount of strength you had in you.
Oh, that new coding language, I was yearning to learn but could never find the time. I finally started and completed the entire learning too. Crazy how a unified and focused effort can bring change in two months. I got into this habit of jotting down things I learned and made sure that I learned at least five new things a day. You will be amazed by the end of the year how to have 2000 new things in your head that you never knew. Good that I started.
This lockdown made me way nearer to myself than I ever was. The path to self-discovery might be different to different people. For me, it was more of accepting myself for who I’m—that feeling of being comfortable in your skin. Sometimes acceptance got me over these body complexes I had, being the skinny guy I’m.
I began to develop habits, specifically, the ones that can be life-changing or something as simple as taking a daily walk in the evening or washing the dishes as soon as you’re done with eating. I began to develop new tastes. Suddenly Jazz felt like never before. I started listening to a lot of Indie music. I came across this band, “That Boy Roby.” The track name was “Lost in Shimla,” and damn, you just can’t help yourself feeling lost in the melody of the guitar. As the name suggests, the track takes you on those untrodden, meandering, mountain tracks of snow-laden Shimla.
Self-discovery took me through a path I had never considered before—the path of getting connected to people you love and care about. I started talking to dad about things we never discussed. I asked him about his memoirs of his old man and how he felt about him, how he felt when mom passed away and what he went through when I was a rebellious teen and started getting into bad habits. He spoke about his youth days and gave me advice about things that I should do in life. Damn, I realized how less I knew about him and how much he loved me.
I went through all my love letters and began pondering about the ups and downs, my wife and I have gone through the last ten years of our relationship. Let me tell you something that I realized, and most men wouldn’t admit. No, not the fact that we are all trash ;) but we put so much effort into winning over someone and return to our own(lazy) selves after we have them in life. Sometimes this awareness is necessary, and it makes you realize that relationships are not a one-time thing, rather a continuous effort to keep things kindled. I learned that sometimes saying “I Love You” in person means much more than writing essays about your never-ending love on social media (funny how we live life and behave everything as if it were a recording to be put in social media and forget about actually living the moment). I began to have more and more of those 2 am conversations. I understood the fact that our lives need not be a long narrative, and it’s best when it’s filled with small random bursts of happiness. To summarize, I started living life again.
Ravi Kollipara
I planned to visit my hometown before the lockdown started as I could never have gotten this opportunity to spend so much time with my family and wfh parallelly. I coincidently happened to meet my childhood friends. We were sitting and chatting, and it was appeasing to know how they were contributing to help the small business in Machilipatnam during a difficult time. I immediately joined them in this cause. Five of us found that it was logistically impossible for a retail business to keep running due to zero movement during the lockdown. It was difficult to generate demand and move stock from one place to another. We created a Facebook business group for a targeted set of audience, mostly local retail businesses. The critical aspect is to have genuine people joining the group for which we allowed only those who had proof of running a retail shop. We added 300 people in the last 15 days. It covered mostly all retail businesses like cement, hotel (food), groceries, professional services, etc. Our place was constantly fluctuating from the RedZone to the orange zone and back to RedZone. The administration was changing rules dynamically. Our Facebook group happened to be one information source for these retailers to know the regulations and amendments announced by the government now and then.
Help is two-folded. it served as a
Channel to provide latest updates on rules and traffic adjustments to the retailers
It is attracting even the customers to the group that would help us to generate demand for the businesses. What was required from the businesses is to publish product rates that have demand.
Once the order is confirmed, we were also helping them to get appropriate permission from the government for the transportations for the goods.
We instantly had 300 businesses registered to this group and saw decent demands coming in too. It is still a small initiative but makes a lot of difference to those small businesses who would die if they do not get some direction during this time. It gives us immense pleasure to become a helping hand to the local businesses that are the strength of our country at this time. Cheers!
0 notes
Text
October Destiel AU Challenge: Day 13 - Would You Like to Buy Some Honey?
31 Days of Destiel Drabbles: Day 21 Day 13 - Farmer’s Market
Of all the places that Dean wants to be on a Saturday morning, this place is just about last on the list. For starters, it’s nine o’ clock and he doesn’t have to work today, so he could still be sleeping right now. Hell, if he’s going to be awake anyway, he’d almost rather be at work. At least he enjoys working on cars.
This…this is a different story entirely. He eyes the scene in front of him with suspicion. There’s vendors everywhere and far more people than Dean thinks is reasonable for what’s basically a glorified grocery store. A group of people picks that moment to pass by them, nearly running him over in the process. Looks to be the rich, hipster type. Same as probably literally everyone here, because who else would spend this much money on goddamn vegetables? He scowls at them and then turns the look on Sam. Sam, the whole reason he’s out of bed and here this early in the morning on a precious day off.
“There’s supermarkets for a reason, Sam.”
Sam just gives Dean one of his patented you uncultured swine how are we even related looks. “Yeah, but farmer’s markets are better, because all the stuff is fresh and local and handmade and you can’t get that at Walmart. It’s better for you, it tastes better, and it supports the local economy.”
In response, Dean rolls his eyes and makes an unconvinced grunt. “Okay, I get it, you’re a tree-hugging hippy, but the food at real stores tastes fine, hasn’t killed me yet, and it doesn’t cost half my paycheck.”
“You didn’t have to come with me,” Sam says in that passive-aggressive tone of his. Like Dean actually had a choice in the matter. Like he chose to come of his own free will. Like Dean’s constitution is any match for Sam’s puppy eyes and incessant pleading, even after all these years. Especially when he had to go and involve his ridiculous and disgusting crush on Eileen and then proceed to stroke Dean’s ego by complimenting his cooking skills. So of course Dean is going to help his little brother impress Eileen by helping him cook an epic dinner for their weekly get-together. And if that means Sam wants to cook with all this fancy, organic crap, then Dean will grin and bear it. Doesn’t mean he has to like it, though.
“I was promised pie,” Dean replies skeptically, because he sure as hell doesn’t see any pie so far. “Of course I had to come if there’s pie involved.”
Sam makes an annoyed huffing sound. “You’ll get your pie,” he says, beckoning Dean forward. “Now come on, you’re the one who insisted I shouldn’t be let near a kitchen, so help me pick stuff.”
Dean sighs, but follows after Sam, anyway. It’s going to be a long day.
--
Sam may be right to some extent when he talks about how Dean is the one with all the natural talent in the kitchen, but even he can only do so much when he’s never even heard of half of this shit, before. What even is arugula? It sounds like a Harry Potter spell.
Although, he has to admit that he’s seen some pretty nice stuff. Maybe not so superior in quality that he’d come all the way across town and pay twice as much, but still. He’s snatched up some nice lettuce and tomatoes because that stuff always goes good on burgers and he’s still hoping he might convince Sam to let him make his famous burgers for dinner.
But he still stands by his thought that a farmer’s market is a hipster’s wet dream. Not only are there countless stands with produce and nuts and other foods, but he’s seen several vendors selling those hippie bags and paintings and even some hats, to name a few of the crafts. He doesn’t keep up with what kids do these days, but he can imagine this is the kind of place the kids might “Instagram” about. It’s…kind of disgustingly cute, if he’s being honest.
Still no pie though. Maybe he’s supposed to buy apples or pecans or whatever and make his own pie, but he feels that’s definitely cheating the rules and he doesn’t intend to let Sam get away with that.
It’s been about half an hour since he got separated from Sam, and he never imagined this place would be big enough that finding a giant like his brother would be an issue. Somehow, he has a feeling Sam’s avoiding him on purpose, because Sam is a big nerd who’s probably having the time of his life here.
“Can I help you find something?” a deep voice calls out to him, making Dean realize he’s been standing in front of this tent without moving for longer than is probably socially acceptable. Turning towards the voice, he sees a dark-haired man sitting under a yellow awning, and regarding him with a pleasant smile and curious, blue eyes. He’s actually young, and pretty damn good-looking, if Dean does say so himself, which kind of breaks his (admittedly unfair and untrue) stereotype of all these vendors being old farmers and lonely, rich housewives. At least he doesn’t look one of these new-age hippie types.
Dean clears his throat, embarrassed to be caught standing around like an idiot. “Nah, man, just looking for my brother. He dragged me here and sent me on a mission to help him find the perfect ingredients for a dinner he wants to make to impress his girlfriend. And he ran away from me, and now I kinda have no idea what I’m doing.” Why on earth he feels compelled to overshare is beyond him, but fortunately the guy just nods along like he’s interested, saving Dean some degree of awkwardness, and then he smiles.
“Well, if you’re at a loss for ingredients, I could suggest something,” he says, gesturing to the table in front of him, “but you might think it big-headed of me.”
Only now does Dean take the time to actually look and see what this guy’s selling. He doesn’t seem like the super artsy and crafty kind of guy, but he doesn’t necessarily seem like a farmer, either. Of course, in all fairness, there’s not a specific “type” these kinds of people have to fit into, so Dean can’t really judge by looks alone.
Turns out, there’s a whole army of jars, arranged in a few neat little lines along the table, from bigger sizes in the back to smaller sizes in the front. Each jar is filled with a thick amber liquid, which Dean recognizes after a moment.
“Honey?” He raises an eyebrow. The label reads ‘Castiel Novak Apiaries,’ and has a phone number and address written underneath, with a little cartoon bee drawn off to the side. “You made all this?”
The man—Castiel or Casteel or however the hell he pronounces it—chuckles. “Well, technically, I didn’t make it. The bees get the credit for that. I just harvested it. But yes, I’m Castiel, which is what I assume you were getting at.” He sticks his hand out across the table in kind of an awkward motion.
“Of course.” Dean snorts, but takes the offered hand and shakes it. “Dean. And as tempting as it is, I don’t think my brother would appreciate me coming back with nothing but honey. Can’t really do much with it, you know?”
Castiel tilts his head and gives Dean what can only be described as a challenging look. “On the contrary. I’m told my honey makes very good apple pies.”
He perks up at the mention of pie. “Now you’re just trying to bribe me, I swear.”
Castiel grins and leans forward, resting his elbows on the table, before letting his eyes very obviously rove over Dean’s body. “You look like the kind of guy who appreciates pie.”
“So you are trying to bribe me.” If Dean didn’t know any better, he’d say that was a flirtatious remark. Not that he’s opposed to the idea, of course, but why would this guy even be interested?
Castiel shrugs innocently. “I am trying to sell a commodity, here. Is it working, or do I need to discuss other benefits of honey?” Okay, that was definitely an attempt at flirting.
Dean tries to resist the urge to roll his eyes. So maybe the guy isn’t a hippie or hipster or an old farmer, but he is kind of weird. Weird in an awkward, dorky way. Weird in an almost endearing way. He leans closer to the table and picks up one of the jars, turning it over in his hands. He decides to try his own form of Winchester charm and see how that does. “I don’t know, man, the mention of pie has almost got me sold, but how do I know you’re telling the truth? You don’t have any pie to prove it.”
There’s a beat of silence, then Castiel raises an eyebrow and the corner of his lips pull up into a little smile. He crosses his arms. “I suppose I’ll just have to make you one.”
Dean mirrors Castiel’s smile, and his eyes are probably lighting up at the prospect of a maybe-date and pie. “Oh, is that so? You’re quite the dedicated salesman.”
By the time Sam finally finds Dean, Dean’s gotten a number, a time and place, and another probably addition to their family dinners in the future. Sam spends the rest of the day bemoaning Dean’s ability to forget what he’s supposed to be doing in favor of picking up a hot guy or girl at any chance he gets. Dean know that Sam isn’t mad, though, because it turns out that Castiel—or Cas, as Dean finds out he prefers—is actually a damn good cook.
#destiel#destiel fic#deancas#deancas fic#destiel fanfic#Supernatural#Mandy's writing#october destiel au challenge#damn I suck so bad at this#but I'm going to do 31 of them before the end of october if it fucking kills me#going to try and crank out as many as I can today while I'm off from work#to the people who read these--thank you for your patience! you're awesome
6 notes
·
View notes
Text
Pragmatic programmer - Andrew Hunt
This is my summary of the The Pragmatic Programmer, by Andrew Hunt and David Thomas. I use it while learning and as quick reference. It is not intended to be an standalone substitution of the book so if you really want to learn the concepts here presented, buy and read the book and use this repository as a reference and guide.
If you are the publisher and think this repository should not be public, just write me an email at hugomatilla [at] gmail [dot] com and I will make it private.
Contributions: Issues, comments and pull requests are super welcome There is a Quick Reference at the end.
Table of Contents
Table of Contents
Chapter 1. A Pragmatic Philosophy
Chapter 2. A Pragmatic Approach
Chapter 3. The Basic Tools
Chapter 4. A Pragmatic Paranoia
Chapter 5. Bend or Break
Chapter 6. While you are coding
Chapter 7. Before the project
Chapter 8. Pragmatic Projects
Quick Reference
1.-The Cat Ate My Source Code
2.-Software Entropy
3.-Stone Soup and Boiled Frogs
4.-Good enough soup
5.-Your Knowledge Portfolio
6.-Communicate
7.-The Evils of Duplication
8.-Orthogonality
9.-Reversibility
10-Tracer Bullets
11.-Prototypes and Post-it Notes
12.-Domain Languages
13.-Estimating
14.-The Power of Plain Text
15.-Shell Games
16.-Power Editing
17.-Source Code Control
18.-Debugging
19.-Text Manipulation
20.-Code Generators
21.-Design by Contract
22.-Dead Programs Tell No Lies
23.-Assertive Programming
24.-When to Use Exceptions
25.-How to Balance Resources
26.-Decoupling and the Law of Demeter
27.-Metaprogramming
28.- Temporal Coupling
29.-It's Just a View
30.-Blackboards
31.-Program by Coincidence
32.-Algorithm Speed
33.-Refactoring
34.-Code That's Easy to Test
35.-Evil Wizards
36.-The Requirements Pit
37.-Solving Impossible Puzzles
38.-Not Until You're Ready
39.-The Specification Trap
40.-Circles and Arrows
41.-Pragmatic Teams
42.-Ubiquitous Automation
43.-Ruthless testing
44.-It's All Writing
45.- Great Expectations
Tips
CheckList
Languages To Learn
The WISDOM Acrostic
How to Maintain Orthogonality
Things to prototype
Architectural Questions
Debugging Checklist
Law of Demeter for Functions
How to Program Deliberately
When to Refactor
Cutting the Gordian Knot
Aspects of Testing
Chapter 1. A Pragmatic Philosophy
Tip 1: Care About Your Craft
Why spend your life developing software unless you care about doing it well?
Tip 2: Think! About Your Work
Turn off the autopilot and take control. Constantly critique and appraise your work.
1.-The Cat Ate My Source Code
Tip 3: Provide Options, Don't Make Lame Excuses
Instead of excuses, provide options. Don't say it can't be done; explain what can be done to salvage the situation.
2.-Software Entropy
One broken window, left unrepaired for any substantial length of time, instills in the inhabitants of the building a sense of abandonment—a sense that the powers that be don't care about the building. So another window gets broken. People start littering. Graffiti appears. Serious structural damage begins. In a relatively short space of time, the building becomes damaged beyond the owner's desire to fix it, and the sense of abandonment becomes reality.
Tip 4: Don't Live with Broken Windows
Don't mess up the carpet when fixing the broken window.
3.-Stone Soup and Boiled Frogs
It's time to bring out the stones. Work out what you can reasonably ask for. Develop it well. Once you've got it, show people, and let them marvel. Then say "of course, it would be better if we added…."
People find it easier to join an ongoing success.
Tip 5: Be a Catalyst for Change
Most software disasters start out too small to notice, and most project overruns happen a day at a time.
If you take a frog and drop it into boiling water, it will jump straight back out again. However, if you place the frog in a pan of cold water, then gradually heat it, the frog won't notice the slow increase in temperature and will stay put until cooked.
Don't be like the frog. Keep an eye on the big picture.
Tip 6: Remember the Big Picture
4.-Good enough soup
The scope and quality of the system you produce should be specified as part of that system's requirements.
Tip 7: Make Quality a Requirements Issue
Great software today is often preferable to perfect software tomorrow. Know When to Stop
5.-Your Knowledge Portfolio
An investment in knowledge always pays the best interest.
Serious investors invest regularly—as a habit.
Diversification is the key to long-term success.
Smart investors balance their portfolios between conservative and high-risk,high-reward investments.
Investors try to buy low and sell high for maximum return.
Portfolios should be reviewed and rebalanced periodically
Building Your Portfolio
Invest regularly
Diversify
Manage risk
Buy low, sell High
Review and rebalance
Tip 8: Invest Regularly in Your Knowledge Portfolio
Goals
Learn at least one new language every year.
Read a technical book each quarter.
Read nontechnical books, too.
Take classes.
Participate in local user groups.
Experiment with different environments.
Stay current.
Get wired.
You need to ensure that the knowledge in your portfolio is accurate and unswayed by either vendor or media hype. Tip 9: Critically Analyze What You Read and Hear
6.-Communicate
Know what you want to say. Plan what you want to say. Write an outline.
Know your audience. (WISDOM acrostic)
Choose your moment: Understanding when your audience needs to hear your information.
Choose a style: Just the facts, large bound reports, a simple memo.
Make it look good: Add good-looking vehicle to your important ideas and engage your audience.
Involve your audience: Get their feedback, and pick their brains.
Be a listener: Encourage people to talk by asking questions.
Get back to people: Keep people informed afterwards. Tip 10: It's Both What You Say and the Way You Say It
What they Want?
What is their Interest?
How Sophisticated are they?
How much Detail they want?
Who do you want to Own the information?
How can you Motivate them to listen?
Chapter 2. A Pragmatic Approach
7.-The Evils of Duplication
The problem arises when you need to change a representation of things that are across all the code base. Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
Tip 11: DRY—Don't Repeat Yourself
Types of duplication:
Imposed duplication Developers feel they have no choice—the environment seems to require duplication.
Inadvertent duplication Developers don't realize that they are duplicating information.
Impatient duplication Developers get lazy and duplicate because it seems easier.
Interdeveloper duplication Multiple people on a team (or on different teams) duplicate a piece of information.
Tip 12: Make it easy to reuse
8.-Orthogonality
Two or more things are orthogonal if changes in one do not affect any of the others. Also called cohesion. Write "shy" code.
Tip 13: Eliminate Effects Between Unrelated Things
Benefits:
Gain Productivity
Reduce Risk
Project Teams: Functionality is divided
Design: Easier to design a complete project through its components
Toolkits and Libraries: Choose wisely to keep orthogonality
Coding: In order to keep orthogonality when adding code do:
Testing: Orthogonal systems are easier to test.
Documentation: Also gain quality
Changes are localized
Promotes reuse
M x N orthogonal components do more than M x N non orthogonal components
Diseased sections or code are isolated
Are better tested
Not tied to a product or platform
Keep your code decoupled
Avoid global data
Avoid similar functions
9.-Reversibility
Be prepared for changes.
Tip 14: There are no Final Decisions.
10-Tracer Bullets
In new projects your users requirements may be vague. Use of new algorithms, techniques, languages, or libraries unknowns will come. And environment will change over time before you are done. We're looking for something that gets us from a requirement to some aspect of the final system quickly, visibly, and repeatably.
Tip 15: Use Tracer Bullets to Find the Target
Advantages:
Users get to see something working early
Developers build a structure to work in
You have an integration platform
You have something to demonstrate
You have a better feel for progress
Tracer Bullets Don't Always Hit Their Target
Tracer bullets show what you're hitting. This may not always be the target. You then adjust your aim until they're on target. That's the point.
Tracer Code versus Prototyping
With a prototype, you're aiming to explore specific aspects of the final system. Tracer code is used to know how the application as a whole hangs together.
Prototyping generates disposable code. Tracer code is lean but complete, and forms part of the skeleton of the final system.
11.-Prototypes and Post-it Notes
We build software prototypes to analyze and expose risk, and to offer chances for correction at a greatly reduced cost.
Prototype anything that:
carries risk
hasn't been tried before
is absolutely critical to the final system
is unproven
is experimental
is doubtful
Samples:
Architecture
New functionality in an existing system
Structure or contents of external data
Third-party tools or components
Performance issues
User interface design
Tip 16: Prototype to Learn
Avoid details:
Correctness
Completeness
Robustness
Style
Prototyping Architecture:
Are the responsibilities of the major components well defined and appropriate?
Are the collaborations between major components well defined?
Is coupling minimized?
Can you identify potential sources of duplication?
Are interface definitions and constraints acceptable?
Does every module have an access path to the data it needs during execution?
Never deploy the prototype
12.-Domain Languages
Tip 17: Program Close to the Problem domain
13.-Estimating
Tip 18: Estimate to Avoid Surprises
How Accurate Is Accurate Enough?
First: Do they need high accuracy, or are they looking for a ballpark figure?
Second: Scale time estimates properly
Duration
Quote estimate in
1-15 days
days
3-8 weeks
weeks
8-30 weeks
months
30+ weeks
think hard before giving an estimate
Where Do Estimates Come From?
Ask someone who's been in a similar situation in the past.
Understand What's Being Asked
Build a Model of the System
Break the Model into Components
Give Each Parameter a Value
Calculate the Answers
Keep Track of Your Estimating Prowess
Estimating Project Schedules
The only way to determine the timetable for a project is by gaining experience on that same project. Practice incremental development, repeating the following steps:
Guess estimation
Check requirements
Analyze risk
Design, implement, integrate
Validate with the users
Repeat
The refinement and confidence in the schedule gets better and better each iteration
Tip 19: Iterate the Schedule with the Code
What to Say When Asked for an Estimate
"I'll get back to you."
Challenges
Start keeping a log of your estimates. For each, track how accurate you turned out to be. If your error was greater than 50%, try to find out where your estimate went wrong.
Chapter 3. The Basic Tools
Tip 20: Keep Knowledge in plain text
14.-The Power of Plain Text
Drawbacks
more space
computationally more expensive
The Power of Text
Insurance against obsolescence: you will always have a chance to be able to use text.
Leverage: Virtually every tool in the computing can operate on plain text.
Easier testing
15.-Shell Games
Tip 21: Use the power of command Shells
Can't you do everything equally well by pointing and clicking in a GUI? No. A benefit of GUIs is WYSIWYG—what you see is what you get. The disadvantage is WYSIAYG—what you see is all you get.
16.-Power Editing
Tip 22: Use a Single Editor Well
Editor "must" features
Configurable
Extensible
Programmable
Syntax highlighting
Auto-completion
Auto-indentation
Initial code or document boilerplate
Tie-in to help systems
IDE-like features (compile, debug, and so on)
17.-Source Code Control
Tip 23: Always Use Source Code Control
18.-Debugging
Tip 24: Fix the Problem, Not the Blame Tip 25: Don't Panic
A Debugging Mindset
Don't waste a single neuron on the train of thought that begins "but that can't happen" because quite clearly it can, and has. Try to discover the root cause of a problem, not just this particular appearance of it.
Where to Start
Before you start, check the warnings or better remove all of them.
You first need to be accurate in your observations and data.
Debugging Strategies
Bug Reproduction
The best way to start fixing a bug is to make it reproducible.
The second best way is to make it reproducible with a single command.
Visualize Your Data
Use the tools that the debugger offers you. Pen and paper can also help.
Tracing
Now what happens before and after.
Rubber Ducking
Explain the bug to someone else.
Process of Elimination
It is possible that a bug exists in the OS, the compiler, or a third-party product—but this should not be your first thought. Tip 26: "select" Isn't Broken
The Element of Surprise
Tip 27: Don't Assume It—Prove It
Debugging Checklist
Is the problem being reported a direct result of the underlying bug, or merely asymptom?
Is the bug really in the compiler? Is it in the OS? Or is it in your code?
If you explained this problem in detail to a coworker, what would you say?
If the suspect code passes its unit tests, are the tests complete enough? What happens if you run the unit test with this data?
Do the conditions that caused this bug exist anywhere else in the system?
19.-Text Manipulation
Tip 28: Learn a Text Manipulation Language
20.-Code Generators
Tip 29: Write Code That Writes Code Two main types of code generators:
Passive code generators are run once to produce a result. They are basically parameterized templates, generating a given output from a set of inputs.
Active code generators are used each time their results are required. Take a single representation of some piece of knowledge and convert it into all the forms your application needs.
Code Generators Needn't Be Complex
Keep the input format simple, and the code generator becomes simple.
Code Generators Needn't Generate Code
You can use code generators to write just about any output: HTML, XML, plain text - any text that might be an input somewhere else in your project.
Chapter 4. A Pragmatic Paranoia
Tip 30: You can't write Perfect Software No one in the brief history of computing has ever written a piece of perfect software. Pragmatic Programmers don't trust themselves, either.
21.-Design by Contract
A correct program is one that does no more and no less than it claims to do. Use:
Preconditions
Postconditions
Invariants
Tip 31: Design with Contracts
Write "lazy" code: be strict in what you will accept before you begin, and promise as little as possible in return.
Implementing DBC
Simply enumerating at design time:
what the input domain range is
what the boundary conditions are
what the routine promises to deliver (and what it doesn't)
Assertions
You can use assertions to apply DBC in some range. (Assertions are not propagated in subclasses)
DBC enforce Crashing Early
Invariants
Loop Invariants: Is true before and during the loop therefore also when the loop finishes
Semantic Invariants: ie the error should be on the side of not processing a transaction rather than processing a duplicate transaction.
22.-Dead Programs Tell No Lies
All errors give you information. Pragmatic Programmers tell themselves that if there is an error, something very, very bad has happened.
Tip 32: Crash Early
A dead program normally does a lot less damage than a crippled one.
When your code discovers that something that was supposed to be impossible just happened, your program is no longer viable.
23.-Assertive Programming
Tip 33: If It Can't Happen, Use Assertions to Ensure That It Won't
Assertions are also useful checks on an algorithm's operation.
Don't use assertions in place of real error handling.
Leave Assertions Turned On, unless you have critical performance issues.
24.-When to Use Exceptions
Tip 34: Use Exceptions for Exceptional Problems
What Is Exceptional?
The program must run if all the exception handlers are removed If your code tries to open a file for reading and that file does not exist, should an exception be raised
Yes: If the file should have been there
No: If you have no idea whether the file should exist or not
25.-How to Balance Resources
When managing resources: memory, transactions, threads, flies, timers—all kinds of things with limited availability, we have to close, finish, delete, deallocate them when we are done. Tip 35: Finish What You Start
Nest Allocations
1.-Deallocate resources in the opposite order to that in which you allocate them
2.-When allocating the same set of resources in different places in your code, always allocate them in the same order (prevent deadlocks)
Objects and Exceptions
Use finally to free resources.
Chapter 5. Bend or Break
26.-Decoupling and the Law of Demeter
Minimize Coupling
Be careful about how many other modules you interact with and how you came to interact with them.
Traversing relationships between objects directly can quickly lead to a combinatorial explosion.
book.pages().last().text(). // Instead, we're supposed to go with: book.textOfLastPage()
Symptoms:
Large projects where the command to link a unit test is longer than the test program itself
"Simple" changes to one module that propagate through unrelated modules in the system
Developers who are afraid to change code because they aren't sure what might be affected
The Law of Demeter for Functions
The Law of Demeter for functions states that any method of an object should call only methods belonging to:
class Demeter { private A a; void m(B b) { a.hello(); //itself b.hello(); //any parameters that were passed to the method new Z().hello(); // any object it created Singleton.INSTANCE.hello(); // any directly held component } }
Tip 36: Minimize Coupling Between Modules
Does It Really Make a Difference?
Using The Law of Demeter will make your code more adaptable and robust, but at a cost: you will be writing a large number of wrapper methods that simply forward the request on to a delegate. imposing both a runtime cost and a space overhead. Balance the pros and cons for your particular application.
27.-Metaprogramming
"Out with the details!" Get them out of the code. While we're at it, we can make our code highly configurable and "soft"—that is, easily adaptable to changes.
Dynamic Configuration
Tip 37: Configure, Don't Integrate
Metadata-Driven Applications
We want to configure and drive the application via metadata as much as possible. Program for the general case, and put the specifics somewhere else —outside the compiled code base Tip 38: Put Abstractions in Code Details in Metadata
Benefits:
It forces you to decouple your design, which results in a more flexible and adaptable program.
It forces you to create a more robust, abstract design by deferring details—deferring them all the way out of the program.
You can customize the application without recompiling it.
Metadata can be expressed in a manner that's much closer to the problem domain than a general-purpose programming language might be.
You may even be able to implement several different projects using the same application engine, but with different metadata.
When to Configure
A flexible approach is to write programs that can reload their configuration while they're running.
long-running server process: provide some way to reread and apply metadata while the program is running.
small client GUI application: if restarts quickly no problem.
28.- Temporal Coupling
Two aspects of time:
Concurrency: things happening at the same time
Ordering: the relative positions of things in time
We need to allow for concurrency and to think about decoupling any time or order dependencies. Reduce any time-based dependencies
Workflow
Use activity diagrams to maximize parallelism by identifying activities that could be performed in parallel, but aren't.
Tip 39: Analyze Workflow to Improve Concurrency
Architecture
Balance load among multiple consumer processes: the hungry consumer model.
In a hungry consumer model, you replace the central scheduler with a number of independent consumer tasks and a centralized work queue. Each consumer task grabs a piece from the work queue and goes on about the business of processing it. As each task finishes its work, it goes back to the queue for some more. This way, if any particular task gets bogged down, the others can pick up the slack, and each individual component can proceed at its own pace. Each component is temporally decoupled from the others.
Tip 40: Design Using Services
Design for Concurrency
Programming with threads imposes some design constraints—and that's a good thing.
Global or static variables must be protected from concurrent access
Check if you need a global variable in the first place.
Consistent state information, regardless of the order of calls
Objects must always be in a valid state when called, and they can be called at the most awkward times. Use class invariants, discussed in Design by Contract.
Cleaner Interfaces
Thinking about concurrency and time-ordered dependencies can lead you to design cleaner interfaces as well.
Tip 41: Always Design for Concurrency
Deployment
You can be flexible as to how the application is deployed: standalone, client-server, or n-tier.
If we design to allow for concurrency, we can more easily meet scalability or performance requirements when the time comes—and if the time never comes, we still have the benefit of a cleaner design.
29.-It's Just a View
Publish/Subscribe
Objects should be able to register to receive only the events they need, and should never be sent events they don't need.
Use this publish/subscribe mechanism to implement a very important design concept: the separation of a model from views of the model.
Model-View-Controller
Separates the model from both the GUI that represents it and the controls that manage the view.
Advantage:
Support multiple views of the same data model.
Use common viewers on many different data models.
Support multiple controllers to provide nontraditional input mechanisms.
Tip 42: Separate Views from Models
Beyond GUIs
The controller is more of a coordination mechanism, and doesn't have to be related to any sort of input device.
Model The abstract data model representing the target object. The model has no direct knowledge of any views or controllers.
View A way to interpret the model. It subscribes to changes in the model and logical events from the controller.
Controller A way to control the view and provide the model with new data. It publishes events to both the model and the view.
30.-Blackboards
A blackboard system lets us decouple our objects from each other completely, providing a forum where knowledge consumers and producers can exchange data anonymously and asynchronously.
Blackboard Implementations
With Blackboard systems, you can store active objects—not just data—on the blackboard, and retrieve them by partial matching of fields (via templates and wildcards) or by subtypes.
Functions that a Blackboard system should have:
read Search for and retrieve data from the space.
write Put an item into the space.
take Similar to read, but removes the item from the space as well.
notify Set up a notification to occur whenever an object is written that matches the template.
Organizing Your Blackboard by partitioning it when working on large cases.
Tip 43: Use Blackboards to Coordinate Workflow
Chapter 6. While you are coding
31.-Program by Coincidence
We should avoid programming by coincidence—relying on luck and accidental successes— in favor of programming deliberately. Tip 44: Don't Program by Coincidence
How to Program Deliberately
Always be aware of what you are doing.
Don't code blindfolded.
Proceed from a plan.
Rely only on reliable things.
Document your assumptions. Design by Contract.
Don't just test your code, but test your assumptions as well. Don't guess Assertive Programming
Prioritize your effort.
Don't be a slave to history. Don't let existing code dictate future code. Refactoring
32.-Algorithm Speed
Pragmatic Programmers estimate the resources that algorithms use—time, processor, memory, and so on.
Use: Big O Notation
O(1): Constant (access element in array, simple statements)
bool IsFirstElementNull(IList<string> elements) { return elements[0] == null; }
O(lg(n)): Logarithmic (binary search) lg(n) = lg2(n)
Int BinarySearch(list, target) { lo = 1, hi = size(list) while (lo <= hi){ mid = lo + (hi-lo)/2 if (list[mid] == target) return mid else if (list[mid] < target) lo = mid+1 else hi = mid-1 } }
O(n): Linear: Sequential search
bool ContainsValue(IList<string> elements, string value) { foreach (var element in elements) { if (element == value) return true; } return false; }
O(n lg(n)): Worse than linear but not much worse(average runtime of quickshort, headsort)
O(n²): Square law (selection and insertion sorts)
bool ContainsDuplicates(IList<string> elements) { for (var outer = 0; outer < elements.Count; outer++) { for (var inner = 0; inner < elements.Count; inner++) { // Don't compare with self if (outer == inner) continue; if (elements[outer] == elements[inner]) return true; } } return false; }
O(n³): Cubic (multiplication of 2 n x n matrices)
O(Cⁿ): Exponential (travelling salesman problem, set partitioning)
int Fibonacci(int number) { if (number <= 1) return number; return Fibonacci(number - 2) + Fibonacci(number - 1); }
Common Sense Estimation
Simple loops: O(n)
Nested loops: O(n²)
Binary chop: O(lg(n))
Divide and conquer: O(n lg(n)). Algorithms that partition their input, work on the two halves independently, and then combine the result.
Combinatoric: O(Cⁿ)
Tip 45: Estimate the Order of Your Algorithms
Tip 46: Test Your Estimates
Best Isn't Always Best
Be pragmatic about choosing appropriate algorithms—the fastest one is not always the best for the job.
Be wary of premature optimization. Make sure an algorithm really is a bottleneck before investing time improving it.
33.-Refactoring
Code needs to evolve; it's not a static thing.
When Should You Refactor?
Duplication. You've discovered a violation of the DRY principle (The Evils of Duplication).
Nonorthogonal design. You've discovered some code or design that could be made more orthogonal (Orthogonality).
Outdated knowledge. Things change, requirements drift, and your knowledge of the problem increases. Code needs to keep up.
Performance. You need to move functionality from one area of the system to another to improve performance.
Tip 47: Refactor Early, Refactor Often
How Do You Refactor?
Don't try to refactor and add functionality at the same time.
Make sure you have good tests before you begin refactoring.
Take short, deliberate steps.
34.-Code That's Easy to Test
Build testability into the software from the very beginning, and test each piece thoroughly before trying to wire them together.
Unit Testing
Testing done on each module, in isolation, to verify its behavior. A software unit test is code that exercises a module.
Testing Against Contract
This will tell us two things:
Whether the code meet the contract
Whether the contract means what we think it means.
Tip 48: Design to Test
There's no better way to fix errors than by avoiding them in the first place. Build the tests before you implement the code.
Writing Unit Tests
By making the test code readily accessible, you are providing developers who may use your code with two invaluable resources:
Examples of how to use all the functionality of your module
A means to build regression tests to validate any future changes to the code
You must run them, and run them often.
Using Test Harnesses
Test harnesses should include the following capabilities:
A standard way to specify setup and cleanup
A method for selecting individual tests or all available tests
A means of analyzing output for expected (or unexpected) results
A standardized form of failure reporting
Build a Test Window
Log files.
Hot-key sequence.
Built-in Web server.
A Culture of Testing
Tip 49: Test Your Software, or Your Users Will
35.-Evil Wizards
If you do use a wizard, and you don't understand all the code that it produces, you won't be in control of your own application.
Tip 50: Don't Use Wizard Code You Don't Understand
Chapter 7. Before the project
36.-The Requirements Pit
Perfection is achieved, not when there is nothing left to add, but when there is nothing left to take away….
Tip 51: Don't Gather Requirements—Dig for Them
Digging for Requirements
Policy may end up as metadata in the application.
Gathering requirements in this way naturally leads you to a system that is well factored to support metadata.
Tip 52: Work with a User to Think Like a User
Documenting Requirements
Use "use cases"
Overspecifying
Requirements are not architecture. Requirements are not design, nor are they the user interface. Requirements are need.
Seeing Further
Tip 53: Abstractions Live Longer than Details
Just One More Wafer-Thin Mint…
What can we do to prevent requirements from creeping up on us?
The key to managing growth of requirements is to point out each new feature's impact on the schedule to the project sponsors.
Maintain a Glossary
It's very hard to succeed on a project where the users and developers refer to the same thing by different names or, even worse, refer to different things by the same name. Tip 54: Use a Project Glossary
Get the Word Out
Publishing project documents to internal Web sites for easy access by all participants.
37.-Solving Impossible Puzzles
Degrees of Freedom
The key to solving puzzles is both to recognize the constraints placed on you and to recognize the degrees of freedom you do have, for in those you'll find your solution.
Tip 55: Don't Think Outside the Box—Find the Box
There Must Be an Easier Way!
If you can not find the solution, step back and ask yourself these questions:
Is there an easier way?
Are you trying to solve the right problem, or have you been distracted by a peripheral technicality?
Why is this thing a problem?
What is it that's making it so hard to solve?
Does it have to be done this way?
Does it have to be done at all?
38.-Not Until You're Ready
If you sit down to start typing and there's some nagging doubt in your mind, heed it. Tip 56: Listen to Nagging Doubts—Start When You're Ready
Good Judgment or Procrastination?
Start prototyping. Choose an area that you feel will be difficult and begin producing some kind of proof of concept, and be sure to remember why you're doing it and that it is a prototype.
39.-The Specification Trap
Writing a specification is quite a responsibility.
You should know when to stop:
Specification will never capture every detail of a system or its requirement.
The expressive power of language itself might not be enough to describe a specification
A design that leaves the coder no room for interpretation robs the programming effort of any skill and art.
Tip 57: Some Things Are Better Done than Described
40.-Circles and Arrows
Tip 58: Don't Be a Slave to Formal Methods
Formal methods have some serious shortcomings:
Diagrams are meaningless to the end users, show the user a prototype and let them play with it.
Formal methods seem to encourage specialization. It may not be possible to have an in-depth grasp of every aspect of a system.
We like to write adaptable, dynamic systems, using metadata to allow us to change the character of applications at runtime, but most current formal methods don't allow it.
Do Methods Pay Off?
Never underestimate the cost of adopting new tools and methods.
Should We Use Formal Methods?
Absolutely but remember that is just one more tool in the toolbox.
Tip 59: Expensive Tools Do Not Produce Better Designs
Chapter 8. Pragmatic Projects
41.-Pragmatic Teams
Pragmatic techniques that help an individual can work for teams.
No Broken Windows
Quality is a team issue.
Teams as a whole should not tolerate broken windows—those small imperfections that no one fixes.
Quality can come only from the individual contributions of all team members.
Boiled Frogs
People assume that someone else is handling an issue, or that the team leader must have OK'd a change that your user is requesting. Fight this.
Communicate
The team as an entity needs to communicate clearly with the rest of the world.
People look forward to meetings with them, because they know that they'll see a well-prepared performance that makes everyone feel good.
There is a simple marketing trick that helps teams communicate as one: generate a brand.
Don't Repeat Yourself
Appoint a member as the project librarian.
Orthogonality
It is a mistake to think that the activities of a project—analysis, design, coding, and testing—can happen in isolation. They can't. These are different views of the same problem, and artificially separating them can cause a boatload of trouble.
Tip 60: Organize Around Functionality, Not Job Functions
Split teams by functionally. Database, UI, API
Let the teams organize themselves internally
Each team has responsibilities to others in the project (defined by their agreed-upon commitments)
We're looking for cohesive, largely self-contained teams of people
Organize our resources using the same techniques we use to organize code, using techniques such as contracts (Design by Contract), decoupling (Decoupling and the Law of Demeter), and orthogonality (Orthogonality), and we help isolate the team as a whole from the effects of change.
Automation
Automation is an essential component of every project team
Know When to Stop Adding Paint
42.-Ubiquitous Automation
All on Automatic
Tip 61: Don't Use Manual Procedures Using cron, we can schedule backups, nightly build, Web site... unattended, automatically.
Compiling the Project
We want to check out, build, test, and ship with a single command
Generating Code
Regression Tests
Build Automation
A build is a procedure that takes an empty directory (and a known compilation environment) and builds the project from scratch, producing whatever you hope to produce as a final deliverable.
Check out the source code from the repository
Build the project from scratch (marked with the version number).
Create a distributable image
Run specified tests
When you don't run tests regularly, you may discover that the application broke due to a code change made three months ago. Good luck finding that one.
Nightly build run it every night.
Final builds (to ship as products), may have different requirements from the regular nightly build.
Automatic Administrivia
Our goal is to maintain an automatic, unattended, content-driven workflow.
Web Site Generation results of the build itself, regression tests, performance statistics, coding metrics...
Approval Procedures get marks /* Status: needs_review */, send email...
The Cobbler's Children
Let the computer do the repetitious, the mundane—it will do a better job of it than we would. We've got more important and more difficult things to do.
43.-Ruthless testing
Pragmatic Programmers are driven to find our bugs now, so we don't have to endure the shame of others finding our bugs later.
Tip 62: Test Early. Test Often. Test Automatically.
Tests that run with every build are the most effective.
The earlier a bug is found, the cheaper it is to remedy. "Code a little, test a little".
Tip 63: Coding Ain't Done 'Til All the Tests Run
3 Main aspects:
1.-What to Test
Unit testing: code that exercises a module.
Integration testing: the major subsystems that make up the project work and play well with each other.
Validation and verification: test if you are delivering what users needs.
Resource exhaustion, errors, and recovery: discover how it will behave under real-world conditions. (Memory, Disk, CPU, Screen...)
Performance testing: meets the performance requirements under real-world conditions.
Usability testing: performed with real users, under real environmental conditions.
2.-How to Test
Regression testing: compares the output of the current test with previous (or known) values. Most of the tests are regression tests.
Test data: there are only two kinds of data: real-world data and synthetic data.
Exercising GUI systems: requires specialized testing tools, based on a simple event capture/playback model.
Testing the tests: After you have written a test to detect a particular bug, cause the bug deliberately and make sure the test complains. Tip 64: Use Saboteurs to Test Your Testing
Testing thoroughly: Tip 65: Test State Coverage, Not Code Coverage
3.-When to Test
As soon as any production code exists, it needs to be tested. Most testing should be done automatically.
Tightening the Net
If a bug slips through the net of existing tests, you need to add a new test to trap it next time. Tip 66: Find Bugs Once
44.-It's All Writing
If there's a discrepancy, the code is what matters—for better or worse.
Tip 67: Treat English as Just Another Programming Language
Tip 68: Build Documentation In, Don't Bolt It On
Comments in Code
In general, comments should discuss why something is done, its purpose and its goal.
Remember that you (and others after you) will be reading the code many hundreds of times, but only writing it a few times.
Even worse than meaningless names are misleading names.
One of the most important pieces of information that should appear in the source file is the author's name—not necessarily who edited the file last, but the owner.
Executable Documents
Create documents that create schemas. The only way to change the schema is to change the document.
Technical Writers
We want the writers to embrace the same basic principles that a Pragmatic Programmer does—especially honoring the DRY principle, orthogonality, the model-view concept, and the use of automation and scripting.
Print It or Weave It
Paper documentation can become out of date as soon as it's printed.
Publish it online, on the Web.
Remember to put a date stamp or version number on each Web page.
Using a markup system, you have the flexibility to implement as many different output formats as you need.
Markup Languages
Documentation and code are different views of the same underlying model, but the view is all that should be different.
45.-Great Expectations
The success of a project is measured by how well it meets the expectations of its users.
Tip 69: Gently Exceed Your Users' Expectations
Communicating Expectations
Users initially come to you with some vision of what they want. You cannot just ignore it.
Everyone should understand what's expected and how it will be built.
The Extra Mile
Give users that little bit more than they were expecting.
Balloon or ToolTip help
Keyboard shortcuts
A quick reference guide as a supplement to the user's manual
Colorization
Log file analyzers
Automated installation
Tools for checking the integrity of the system
The ability to run multiple versions of the system for training
A splash screen customized for their organization
Pride and Prejudice
Pragmatic Programmers don't shirk from responsibility. Instead, we rejoice in accepting challenges and in making our expertise well known.
We want to see pride of ownership. "I wrote this, and I stand behind my work."
Tip 70: Sign Your Work
Quick Reference
Tips
Tip 1: Care About Your Craft Why spend your life developing software unless you care about doing it well?
Tip 2: Think! About Your Work Turn off the autopilot and take control. Constantly critique and appraise your work.
Tip 3: Provide Options, Don't Make Lame Excuses Instead of excuses, provide options. Don't say it can't be done; explain what can be done.
Tip 4: Don't Live with Broken Windows Fix bad designs, wrong decisions, and poor code when you see them.
Tip 5: Be a Catalyst for Change You can't force change on people. Instead, show them how the future might be and help them participate in creating it.
Tip 6: Remember the Big Picture Don't get so engrossed in the details that you forget to check what's happening around you.
Tip 7: Make Quality a Requirements Issue Involve your users in determining the project's real quality requirements.
Tip 8: Invest Regularly in Your Knowledge Portfolio Make learning a habit.
Tip 9: Critically Analyze What You Read and Hear Don't be swayed by vendors, media hype, or dogma. Analyze information in terms of you and your project.
Tip 10: It's Both What You Say and the Way You Say It There's no point in having great ideas if you don't communicate them effectively.
Tip 11: DRY – Don't Repeat Yourself Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
Tip 12: Make It Easy to Reuse If it's easy to reuse, people will. Create an environment that supports reuse.
Tip 13: Eliminate Effects Between Unrelated Things Design components that are self-contained, independent, and have a single, well-defined purpose.
Tip 14: There Are No Final Decisions No decision is cast in stone. Instead, consider each as being written in the sand at the beach, and plan for change.
Tip 15: Use Tracer Bullets to Find the Target Tracer bullets let you home in on your target by trying things and seeing how close they land.
Tip 12: Prototype to Learn Prototyping is a learning experience. Its value lies not in the code you produce, but in the lessons you learn.
Tip 17: Program Close to the Problem Domain Design and code in your user's language.
Tip 18: Estimate to Avoid Surprises Estimate before you start. You'll spot potential problems up front.
Tip 19: Iterate the Schedule with the Code Use experience you gain as you implement to refine the project time scales.
Tip 20: Keep Knowledge in Plain Text Plain text won't become obsolete. It helps leverage your work and simplifies debugging and testing.
Tip 21: Use the Power of Command Shells Use the shell when graphical user interfaces don't cut it.
Tip 22: Use a Single Editor Well The editor should be an extension of your hand; make sure your editor is configurable, extensible, and programmable.
Tip 23: Always Use Source Code Control Source code control is a time machine for your work – you can go back.
Tip 24: Fix the Problem, Not the Blame It doesn't really matter whether the bug is your fault or someone else's – it is still your problem, and it still needs to be fixed.
Tip 25: Don't Panic When Debugging Take a deep breath and THINK! about what could be causing the bug.
Tip 26: "select" Isn't Broken. It is rare to find a bug in the OS or the compiler, or even a third-party product or library. The bug is most likely in the application.
Tip 27: Don't Assume It – Prove It Prove your assumptions in the actual environment – with real data and boundary conditions.
Tip 28: Learn a Text Manipulation Language. You spend a large part of each day working with text. Why not have the computer do some of it for you?
Tip 29: Write Code That Writes Code Code generators increase your productivity and help avoid duplication.
Tip 30: You Can't Write Perfect Software Software can't be perfect. Protect your code and users from the inevitable errors.
Tip 31: Design with Contracts Use contracts to document and verify that code does no more and no less than it claims to do.
Tip 32: Crash Early A dead program normally does a lot less damage than a crippled one.
Tip 33: Use Assertions to Prevent the Impossible Assertions validate your assumptions. Use them to protect your code from an uncertain world.
Tip 34: Use Exceptions for Exceptional Problems Exceptions can suffer from all the readability and maintainability problems of classic spaghetti code. Reserve exceptions for exceptional things.
Tip 35: Finish What You Start Where possible, the routine or object that allocates a resource should be responsible for deallocating it.
Tip 36: Minimize Coupling Between Modules Avoid coupling by writing "shy" code and applying the Law of Demeter.
Tip 37: Configure, Don't Integrate Implement technology choices for an application as configuration options, not through integration or engineering.
Tip 38: Put Abstractions in Code, Details in Metadata Program for the general case, and put the specifics outside the compiled code base.
Tip 39: Analyze Workflow to Improve Concurrency Exploit concurrency in your user's workflow.
Tip 40: Design Using Services Design in terms of services – independent, concurrent objects behind well-defined, consistent interfaces.
Tip 41: Always Design for Concurrency Allow for concurrency, and you'll design cleaner interfaces with fewer assumptions.
Tip 42: Separate Views from Models Gain flexibility at low cost by designing your application in terms of models and views.
Tip 43: Use Blackboards to Coordinate Workflow Use blackboards to coordinate disparate facts and agents, while maintaining independence and isolation among participants.
Tip 44: Don't Program by Coincidence Rely only on reliable things. Beware of accidental complexity, and don't confuse a happy coincidence with a purposeful plan.
Tip 45: Estimate the Order of Your Algorithms Get a feel for how long things are likely to take before you write code.
Tip 46: Test Your Estimates Mathematical analysis of algorithms doesn't tell you everything. Try timing your code in its target environment.
Tip 47: Refactor Early, Refactor Often Just as you might weed and rearrange a garden, rewrite, rework, and re-architect code when it needs it. Fix the root of the problem.
Tip 48: Design to Test Start thinking about testing before you write a line of code.
Tip 49: Test Your Software, or Your Users Will Test ruthlessly. Don't make your users find bugs for you.
Tip 50: Don't Use Wizard Code You Don't Understand Wizards can generate reams of code. Make sure you understand all of it before you incorporate it into your project.
Tip 51: Don't Gather Requirements – Dig for Them Requirements rarely lie on the surface. They're buried deep beneath layers of assumptions, misconceptions, and politics.
Tip 52: Work With a User to Think Like a User It's the best way to gain insight into how the system will really be used.
Tip 53: Abstractions Live Longer than Details Invest in the abstraction, not the implementation. Abstractions can survive the barrage of changes from different implementations and new technologies.
Tip 54: Use a Project Glossary Create and maintain a single source of all the specific terms and vocabulary for a project.
Tip 55: Don't Think Outside the Box – Find the Box When faced with an impossible problem, identify the real constraints. Ask yourself: "Does it have to be done this way? Does it have to be done at all?"
Tip 56: Start When You're Ready. You've been building experience all your life. Don't ignore niggling doubts.
Tip 57: Some Things Are Better Done than Described Don't fall into the specification spiral – at some point you need to start coding.
Tip 58: Don't Be a Slave to Formal Methods. Don't blindly adopt any technique without putting it into the context of your development practices and capabilities.
Tip 59: Costly Tools Don't Produce Better Designs Beware of vendor hype, industry dogma, and the aura of the price tag. Judge tools on their merits.
Tip 60: Organize Teams Around Functionality Don't separate designers from coders, testers from data modelers. Build teams the way you build code.
Tip 61: Don't Use Manual Procedures A shell script or batch file will execute the same instructions, in the same order, time after time.
Tip 62: Test Early. Test Often. Test Automatically Tests that run with every build are much more effective than test plans that sit on a shelf.
Tip 63: Coding Ain't Done 'Til All the Tests Run 'Nuff said.
Tip 64: Use Saboteurs to Test Your Testing Introduce bugs on purpose in a separate copy of the source to verify that testing will catch them.
Tip 65: Test State Coverage, Not Code Coverage Identify and test significant program states. Just testing lines of code isn't enough.
Tip 66: Find Bugs Once Once a human tester finds a bug, it should be the last time a human tester finds that bug. Automatic tests should check for it from then on.
Tip 67: English is Just a Programming Language Write documents as you would write code: honor the DRY principle, use metadata, MVC, automatic generation, and so on.
Tip 68: Build Documentation In, Don't Bolt It On Documentation created separately from code is less likely to be correct and up to date.
Tip 69: Gently Exceed Your Users' Expectations Come to understand your users' expectations, then deliver just that little bit more.
Tip 70: Sign Your Work Craftsmen of an earlier age were proud to sign their work. You should be, too.
CheckList
Languages To Learn
Tired of C, C++, and Java? Try the following languages. Each of these languages has different capabilities and a different "flavor." Try a small project at home using one or more of them.
CLOS
Dylan
Eiffel
Objective C
Prolog
Smalltalk
TOM
The WISDOM Acrostic
What do you want them to learn?
What is their interest in what you've got to say?
How sophisticated are they?
How much detail do they want?
Whom do you want to own the information?
How can you motivate them to listen to you?
How to Maintain Orthogonality
Design independent, well-defined components.
Keep your code decoupled.
Avoid global data.
Refactor similar functions.
Things to prototype
Architecture
New functionality in an existing system
Structure or contents of external data
Third-party tools or components
Performance issues
User interface design
Architectural Questions
Are responsibilities well defined?
Are the collaborations well defined?
Is coupling minimized?
Can you identify potential duplication?
Are interface definitions and constraints acceptable?
Can modules access needed data – when needed?
Debugging Checklist
Is the problem being reported a direct result of the underlying bug, or merely a symptom?
Is the bug really in the compiler? Is it in the OS? Or is it in your code?
If you explained this problem in detail to a coworker, what would you say?
If the suspect code passes its unit tests, are the tests complete enough? What happens if you run the unit test with this data?
Do the conditions that caused this bug exist anywhere else in the system?
Law of Demeter for Functions
An object's method should call only methods belonging to:
Itself
Any parameters passed in
Objects it creates
Component objects
How to Program Deliberately
Stay aware of what you're doing.
Don't code blindfolded.
Proceed from a plan.
Rely only on reliable things.
Document your assumptions.
Test assumptions as well as code.
Prioritize your effort.
Don't be a slave to history.
When to Refactor
You discover a violation of the DRY principle.
You find things that could be more orthogonal.
Your knowledge improves.
The requirements evolve.
You need to improve performance.
Cutting the Gordian Knot
When solving impossible problems, ask yourself:
Is there an easier way?
Am I solving the right problem?
Why is this a problem?
What makes it hard?
Do I have to do it this way?
Does it have to be done at all?
Aspects of Testing
Unit testing
Integration testing
Validation and verification
Resource exhaustion, errors, and recovery
Performance testing
Usability testing
Testing the tests themselves
Content from The Pragmatic Programmer, by Andrew Hunt and David Thomas. Visit www.pragmaticprogrammer.com. Copyright 2000 by Addison Wesley Longman, Inc.
0 notes
Text
A postcard from Europe: A mid-journey update on my travels
Greetings from Prague! I'm just over halfway through my European vacation, so I thought it'd be fun to share some of my adventures and to take a glimpse at the financial side of this journey. This trip is unusual for me because I'm traveling with a party of six. My cousin Duane has terminal cancer and wanted to see some more of the world while he still can. A few family members decided to join him. We're exploring Christmas markets as a group.
For the most part, Duane's health has been fine over the past two weeks. He tells me that he's felt great lately, and he's hopeful he has more life left in him than the doctors say. (Who knows? Maybe he and I can squeeze in another trip before his time on this Earth expires.) That said, he did have to take a short rest yesterday because he became dizzy and disoriented as we strolled the cobblestone streets of Prague. He's obviously not feeling 100%. Our group doesn't have a set agenda. We're merely moving from city to city, exploring the Christmas markets and other touristy delights. Often when I travel, I'm a traveler not a tourist. Right now, I'm a tourist. I wouldn't want to do this every trip, but I'm fine with it at the moment. General Impressions So far, we've been we've been to Vienna, Budapest, and Prague. I liked Vienna. I loved Budapest. But after 24 hours here, I'm ambivalent about Prague. I didn't like it at first, but the city is growing on me. I think one problem is our location. In the first two cities, we were a mile or two outside the downtown core. We stayed in residential neighborhoods. (In both cases, we were relatively close to university areas too, but that was pure chance.) We were directly across from metro stations each time, so it was easy to get where we wanted to go. Here in Prague, however, we're staying in the downtown core, which means we're immersed in the tourists. (Yes, I realize that we ourselves are tourists and thus part of the problem.) There's no escaping the crowds and commercialism because of our location. This is an interesting lesson to learn for the future: Stay close to downtown in popular cities but not in the downtown. If you're close to a transit station, it's plenty convenient to get where you want. The Christmas markets have been festive and fun. They remind me of Portland's Saturday Market, a craft market held every weekend in my home city. Vendors erect small stalls where they sell either food or wares. A lot of the stuff being sold at the Christmas markets is the same from stall to stall ornaments, winter clothing, jewelry, souvenirs but occasionally there are vendors with unusual items, such as cookie stamps, wooden toys, and hand-forged knives.
I'm more interested in the food stalls. In each individual city, these huts are similar to each other. But the food offered varies from city to city. Vienna food stalls sold wieners (wiener literally means Viennese), wurst, spaetzle, baked potatoes, toast with cheese, and roasted chestnuts. The drink vendors sold hot punch and glhwein. (Glhwein is mulled wine. It's very popular in Vienna.)Budapest food stalls sold paprika sausages Hungarians love their paprika! and pig knuckles and delicious goulash. The drink vendors also sold mulled wine and a variety of punch.Prague food stalls sell chimney cakes, fire-roasted ham, toasted cheese (with jam), and a sort of potato-onion dumpling dish. Here they sell mulled wine too, but they also sell hot mead and cold pilsner. (Pilsner comes from Bavaria, and it's available everywhere. I like the Czech word for beer pivo and I enjoy asking for it at the market: Pivo, prosm.)
The one factor our group failed to consider was the cold. Actually, we considered itbut not enough. We prepared for Oregon cold, not central European cold. (It didn't help that Duane emailed us from Paris to say that the weather wasn't as cold as we'd feared.) We all brought warm clothes, but each of us has had a turn getting chilled to the bone. One night in Vienna, I was the coldest I've ever been in my life. While the rest of the crew enjoyed ice skating, I made a brisk one-mile walk back to the flat so that I could take a hot bath. Everyone else has been equally cold at some point. I'm a little worried about Switzerland. The forecast low for when Duane and I arrive in St Moritz tomorrow night is -25 celsius (-13 fahrenheit). Holy cats!
Financial Considerations While I'm not pinching pennies on this trip, I'm doing my best not to be profligate either. It's interesting to see how my travel habits have changed over the past decade. I used to spend a lot to buy a lot. Now, I buy very little. What I do buy is mostly food. During my first trips to Europe almost a decade ago, I was very much a tourist as opposed to a traveler. I wanted to go to the tourist spots and to buy tourist goods. I talked to every tout. My compulsion to buy was very very strong. Even in 2010, after writing Get Rich Slowly for nearly five years, I had some bad habits with money when I traveled. I remember when my ex-wife and I landed in Venice, the first stop on our three-week tour of Europe in autumn 2010, I found a funky used bookstore. I bought fifteen pounds of books on the first day of our trip. I had to carry that weight with me for the next twenty days. On this trip, I've bought little despite spending hours and hours and hours in markets. (If I had to hazard a guess, I'd say I've spent sixty hours in Christmas markets. I've bought nothing but food. And glhwein.) In Vienna, I bought a t-shirt as a souvenir, and I bought a Christmas gift for my niece.In Budapest, I bought some warmer clothes and a Christmas gift for my ex-wife.I've bought nothing so far in Prague, although I expect to purchase a gift for Kim before we move on. We're spending little on transportation (aside from connections to various cities). We walk a lot about ten miles per day and we take advantage of the fantastic transit systems in each city. We're on our feet over twelve hours each day. As a train nut, I enjoy riding the subway. I was particularly enamored with the Budapest metro system. The stations are beautiful, especially the old M1 (opened in 1896, it's the oldest electrified underground in Europe) and the new M4 (whose stations feel like sets from a science-fiction film). We're not paying much for lodging either. Instead of spending $150 or $200 per night per couple on hotels (for a total of $450 to $600 per night), we're renting rooms through Airbnb. This costs us between $75 and $150 per night for the group. That's a huge savings!
Plus, renting flats gives us a tiny taste of what it's like to live as a local. For instance, my cousins have had to adjust to the idea that Europeans don't use clothes dryers; they use drying racks. The light switches and outlets are different. The instructions on appliances aren't in English. And here in Prague, our shower sprung a leak so we couldn't use it for a couple of days. (And our internet connection doesn't work, so I'm currently eating breakfast in a coffee shop so I can publish this article.) Our food expenses are hit and miss. Left to my own devices, I'd eat restaurant meals now and then but not often. When I travel, I like to buy a few groceries bread, meat, cheese, fruit, juice to keep in my room for breakfast and snacks. I grab a quick lunch in the afternoon, then maybe eat a sit-down dinner featuring local cuisine. This is relatively cost-effective. My cousins like eggs for breakfast, though, and they need their coffee. We're frequently starting the day in restaurants. (They can't always find their eggs, though, because egg breakfasts are much less common in Europe.) We frequently snack or lunch at the Christmas markets, which is less expensive than visiting restaurants, but our dinners are always restaurant meals. One big factor in our finances is currency exchange. Most places took credit cards in Vienna but not the stalls in the Christmas markets. In Budapest, most places did not accept credit cards. In Prague, it seems to be variable. As a result, we have to carry cash. Not every source of cash is created equal. Here's an example: We landed in Prague late in the evening. We needed some cash to buy tickets for transit (and to grab some food), so I offered myself up as sacrificial lamb at the airport. I was carrying 137 U.S. dollars, which I exchanged for roughly 2340 Czech crowns. The exchange rate was something like 1 to 19.2. Yesterday morning, my cousins pulled money from a bank ATM. They got an exchange rate of roughly 1 to 22.4. In other words, the airport cash exchange milked me for an extra 10%, which is a terrible deal. Lesson: When possible, never exchange money at the airport. (To be fair, I knew this already. In this case, though, I didn't have a choice. We needed some cash, so I sacrificed about $14 to get it.)
Meeting the Money Bosses I've had a lot of fun on this trip so far. I'm traveling in a very different way because I'm not the one deciding where we go when. My cousins are directing the decisions, and that's fine. It allows me to see how other people travel and what their priorities are. All the same, I do hope to return to these cities in the future to do some J.D. travel. My favorite city of the three so far has been Budapest and by a wide margin. I loved the history, I loved the culture, I loved the food, I loved the people. I have no doubt that I'll return for a more leisurely visit in the future (possibly as soon as August or October, the next two times I'll visit Europe). I feel like every vacation offers certain highlights that become the core memories I carry with me. Midway through this trip, I've enjoyed three five-star highlights, each of which was in Budapest. The Labyrinth One day, we walked across the Cable Bridge from Pest (on the east side of the Danube) to Buda (on the west side). We boarded a bus to the top of the hill, where we visited Fisherman's Bastion, which offers a stunning view of the city. (Click this image to view a larger version.)
The weather was sunny, clear, and cold. We ducked inside a coffee shop for a few minutes. When we emerged, it was pouring rain. There had been no indication (or forecast) that rain was imminent, so we were unprepared as was everyone else, tourist and local alike. We took refuge in the nearby labyrinth, a network of natural underground caves that, over the centuries, had been expanded by local residents. We toured the labyrinth for nearly an hour while we waited for the rain to subside. It was amazing! (But take my rave review with a grain of salt. I love caves. I visit them whenever I can. Others in our group were less impressed. Online reviews are mixed.) I enjoyed the caves themselves, of course, but also the history. The real-life Dracula Vlad the Impaler was supposedly imprisoned in the labyrinth for an entire year. Also, there's a section of the tunnels that's completely dark. It's pitch black. For maybe 50 meters, you make your way by feel. (There's a rope attached to the wall, if you want it.) So fun! Fun with Ferenc When we arrived in Budapest, we walked a mile from the train station to our flat. As we were puzzling out the intercom system, a man stepped up to me. Are you J.D. Roth? he asked. I was surprised. Yes, I said. He handed me a bottle of wine and an envelope with my name on it. My name is Ferenc. I read your blog, he said. Turns out, he had determined where we'd be staying based on an Airbnb screencap I shared a few weeks ago. He'd spent two hours parked in front of the flat, waiting for us to arrive. He gave us a warm welcome and some tips about his city. Here's a photo of me and Ferenc. I like this because it shows me carrying all of my luggage at the end of our walk. (You can't really see my backpack, though.) This is how I travel:
Later, I wrote to thank Ferenc. Thanks for greeting us. Do you want to grab coffee or beer? I asked. Sure! he said. I have to work all day today. Later, my son has a soccer game, then I have dinner with friends. But I could meet you at 23:30. I'm no longer a night owl plus I've had bad jet lag on this trip so this normally would be a no-go. But hey! This was a once in a lifetime experience, right? Ferenc picked me up in his Mini Cooper at 23:30. As we sped through the streets of Budapest looking at the beautiful lights, he told me about the history of Hungary and about daily life in Budapest. He drove me to his favorite viewpoints so that I could snap photographs. Then, when we were finished sightseeing, he took me to a ruin bar named Szimpla Kert, which was started by one of his friends from high school. Ruin bars are exactly what they sound like. They're pubs that have been built in hollow, decaying buildings. Instead of remodeling these spaces, as we would in the U.S., the Hungarians have left them in a state of decay. Inside, they've added bars and stages and dance floors and other pub amenities. They are very, very popular among Europeans.
Ferenc and I stayed out until nearly 03:00, drinking beer and chatting about life in our respective countries. (Naturally, much our talk revolved around personal finance.) To me, this experience is what travel is all about. It's not the Christmas markets that I love (although those are fun), nor the cathedrals nor the castles. It's connecting with real people and real life. A Morning with Vica
The next morning, I was up early. At 09:30, I met another GRS reader for coffee. Vica is a landscape architect who lives near Budapest's main train station. She is warm and funny and engaging. As we sat in the basement coffeehouse, she told me about life in Hungary and about her goals for the future. She shared the places she loves to travel around Budapest. When I complained about how cold I was, she volunteered to take me to a shop where I could buy a couple of quality items at reasonable prices. As we walked to our destination, she gave me a tour of the city. As a landscape architect, Vica seems fascinated by urban design. It was interesting to see things through her eyes. While we talked, she helped me understand more about the Hungarian language, which is quite difficult for native English speakers. Vica and I spent more than four hours walking across Budapest, and I enjoyed every minute of it. As I said, when I remember this trip in the future, it's my time with her and Ferenc that will come to mind first and foremost. I'm eager to meet up with other readers on this adventure. On Sunday, Matthias will join me and Duane for our ride on the Glacier Express across the Swiss Alps. I also have invitations to visit readers in Cologne and Luxembourg, although I'm still uncertain whether I'll be able to make those connections work. I hope to! Final Thoughts I've been in Europe for eleven days now, and I have nine days left on this trip. Four of my cousins fly home tomorrow morning. At that time, Duane and I branch off for adventures of our own. First, we'll fly to Switzerland to take the train ride through the Alps. All told, it'll take us three days of travel just to enjoy that eight hour trip. We'll spend very little time actually seeing Switzerland. On the surface, that's ludicrous. But because Duane and I both enjoy the process of travel, it's actually a worthwhile excursion. Plus, Matthias will join us with a bottle of whisky!Next, we'll spend a couple of days in Strasbourg, France, the ancestral homeland of the Roth family. Yes, we know there was just a shooting in Strasbourg that left three people dead. No, we're not worried. We were aware of the potential for terrorist attacks before we left for this journey and it didn't dissuade us. (I refuse to make fear-based decisions.) If anything, we feel that Strasbourg will now be safer than before. (True story: During the precise moment of the 2017 London Bridge attack, I was traveling on a subway train underneath the site. People were confused why the train bypassed the station. It became very clear later.)Finally, Duane will branch off to Munich and I willI don't know. I have three days and no plans. I have those invitations to visit GRS readers in both Cologne and Luxembourg. The offers are tempting. But I haven't yet seen anything of Germany, so I might simply make my way to Berlin (from which my final flight departs early on the 23rd). We'll see. As always, this travel has given me perspective on my life back home at Portland. It's made me more mindful of my daily habits and routines, made me think about the things I need to change in order to become a better version of me. I always find it fascinating the way comparing how I normally live to how others live in different countries can be such a transformative experience. Until I get home, this site will continue to host guest articles from some of my favorite people. I hope that you're finding them worthwhile. After Christmas, things will return to normal around here. Until then, I hope you're all staying healthy and growing wealthy. Happy holidays!
My biggest mistake on this trip? I grew a beard because I thought it would keep me warm. I always have a mustache and goatee, but I keep them relatively short. Now I have a full beard and I hate it. It itches. It makes me appear 69 instead of 49. And it gets in the way of my food and beer. There's a barber just outside our flat here in Prague. Once I publish this article, I may ask them to shave me.
Author: J.D. Roth In 2006, J.D. founded Get Rich Slowly to document his quest to get out of debt. Over time, he learned how to save and how to invest. Today, he's managed to reach early retirement! He wants to help you master your money and your life. No scams. No gimmicks. Just smart money advice to help you reach your goals. https://www.getrichslowly.org/postcard-from-europe/
0 notes
Text
Perpetual Coupons as well as How to Choose the Right Voucher Website for Your Service
Most local business owner are constantly searching for some method to raise revenue and rate of interest in their organisation offerings. Perpetual discount coupons are constantly a win with both existing as well as possible customers, so utilizing it as component of your advertising method can truly work in your favor over time.
What is a perpetual discount coupon?
A perpetual coupon is different to the typical cut-out or paper coupon. These promo codes are usually digital or on the internet promo codes, as well as these discount coupons end the day of redemption however can be upgraded everyday. Usually, a coupon would only stand for a particular period, but continuous vouchers offer discounts any time business wants to Central Vapors Voucher Code.
These vouchers would generally include clicking a certain link to certify, as well as you won't even require an unique code to place in the purchase or payment web page. These coupons can be made use of over and over, so if you wish to draw customers back time and time again, a perpetual promo code might be the means to go.
Things to take into consideration prior to selecting a perpetual promo code website
Subscription fees
The majority of promo code websites require a cost or some form of earnings share from services that use their solutions. The technique to finding the best coupon site is to try to find one that provides lower or discounted costs for the first few months. You ought to additionally attempt to stay clear of sites that ask for a cut of the purchase price, and rather than select sites that offer their services at a level fee each month. This makes it less complicated to work out your expenditures and also you'll get back extra from your marketing efforts.
Voucher kinds
You ought to look at the types of promo codes used by the website prior to you join. There are a variety of different discount coupon types including print promo codes, everyday bargains, digital promo codes, and also continuous discount coupons.
Discount coupons that can be printed out are normally conserved for purchases at some time in future, so results might not be immediate. Daily offers commonly come with an expense to the consumer, because they need to pay a fee to receive the bargain. It's additionally a much more expensive option for you as a local business owner since you need to pay a portion of your sales to the promo code site. Digital vouchers are a far more easy to use alternative because these do not have to be published out and also can be redeemed promptly online or via the use of cellular phones. Continuous coupons are, of course, one of the most desired of all these various coupon types and will certainly permit both new as well as current customers to take advantage of the cost savings available.
Check-in programs
A website that uses check-in programs compensates consumers for checking in using a variety of various social websites. Google Places, Facebook Places, and also Foursquare are simply some of the websites a consumer can use to check in with when they visit your business. The go to itself may not result in a sale, however if consumers are provided an incentive to do this you'll receive extra direct exposure and also new clients can be lured into visiting Central Vapors Coupon Code.
Geographical targeting
This is an essential function to seek in a coupon website. Websites that target the offers they present to their customers' geographical area not just make it much easier for customers to pinpoint large amounts at a glimpse, but likewise bring in business much faster due to the targeted leads they create.
The tips above ought to assist you pick the best continuous discount coupons site for your advertising and marketing initiatives. You'll see far better outcomes as well as wind up with even more money in your pocket while pleasing existing clients and attaining new ones.
Classified Ad as well as Coupon Websites - 20,600,000 and Counting - Does the Globe Need Another?
My newest Google search turned up 20,600,000 classified advertisement and discount coupon sites. Does the Web demand another one? My initial response would have been "No." Then again, my 2 friends claimed "Yes." So, add one more to the search results page: 20,600,001.
Exactly how could they have potentially picked this field as a business model recognizing the competitors is so strong and also crowded? Defeats me. However, it definitely requires you to assume outside package. And also they have. The only means to have a shot is to supply something over and beyond what the others do.
So, they have actually made a decision to pay 70% from each sale of their 3 cost-effective advertisement bundles back to every person who brings somebody else to their site that becomes a paying subscriber. Now, they do calculate this after the small settlement cpu's fee. Nonetheless, it's still giving the lion's share of their profits right back to the referring member. And also, they don't charge anything to join or come to be included. They do not play any kind of games, either: no certifying, allocations or various other gimmicks. These men likewise want clients to try their ingenious solutions for 2 week before they invest a penny. After the complimentary trial, the customer can advance with the thrifty regular monthly membership rate, or cancel Central Vapors Discount coupon Code.
They even give away a free advertisement with the very same feature-rich choices that their paying customers obtain. They allow the cost-free ad to stay on-site forever, too. After the product is sold, a person can exchange it out for an additional, whether it be a wrench set, a collectible, an automobile, a residence, a boat, a motorcycle, art, precious jewelry, property, or craft items ... They do not even charge added for house, job, company or help wanted listings. The only distinction in between getting the one totally free ad for life, and buying a cost-effective advertising and marketing package is that clients get to note unlimited items in any one of my pals' 384 classifications. And also, there is no middleman. All purchases are purely in between buyers and vendors.
They enjoy the "finest value" viewpoint as a way to stand apart from the crowd. They likewise supply an easy-to-create business discount coupon builder wherein services can develop their very own discount coupons for potential customers to print quickly. These coupons can after that be made use of at the proprietor's shop, either the brick-and-mortar kind, or online. And also, my friends will certainly also help you begin.
These guys have just 3 marketing bundles: one for endless classified ads just, one for printable organisation coupons only, or both. The month-to-month subscription costs are terrific. And, compensations are paid for each and every month that a client continues to be an energetic paying member.
While my friends' company is brand-new, they are skilled experts in the Internet organisation arena. We have worked together for 11 years. So, if they claim it's doable, after that I have to believe them due to the fact that they not just know what they're doing, however they've achieved success as well.
We all understand and more than likely use the most significant organisations in the field for identified as well as coupon advertising. My good friends' objective is to become one of them. From the very first day they exposed their new business venture to me, the goal has always been to come to be a household name in the local area along with around the world. I wouldn't wager versus it. So, when they asked me ahead aboard as their author, editor as well as fellow brainstormer, I considered it for a few minutes and conveniently accepted the offer.
It's extremely exciting for my good friends and also me to see something they've worked so hard for expand bit by bit, waiting for the day that the on the internet neighborhood locates them and also sees what they've got going on. Literally, anything is possible if you are willing to take a chance and hold your horses, relentless. honest as well as honest. That's all these individuals know.
Online Discount/Coupon Sites - Are They Good For Your Organisation?
If you listen to the nationwide media, we are in severe recession. This is the story they spread today as well as everyday, every year. So this infuses concern, problem, and also traditional investing behaviors after it is defeated right into our heads day in day out across all mediums. Many individuals now make use of coupons that never have before as well as not out of need yet because of the concern and also issue that the economic situation might get worse.
In reaction to this online coupon sites are emerging and also several customers are getting amazing bargains at restaurants, hotels, oral workplaces, horseback riding lessons, as well as many various other groups that they or else would not have benefited from. But due to the lure of a DEEP, GREAT, DISCOUNT customers are enrolling in a day-to-day e-mail with details on the "Offer of the Day" as well as are sharing the manage their good friends and also the viral explosion expands daily.
There are great deals of possibilities for business to obtain their message out to the masses with this type of program completely free - or so they would certainly have you think. These programs can be a pick-me-up for a company or it could be the beginning of having to constantly discount their services or product. The normal program is that you (your business) use your service or product at 50% or even more off your typical rate. After that they sell "vouchers" for $50 meal for only $25 as well as the $25 that the program accumulates after that splits it 50/50 with your firm successfully giving you 25% of what you would certainly have usually obtained from a client who found you by themselves.
Looks like a good deal and it can be - for some firms. I have always felt that not all programs help all services in every market. A careful assessment of the program, their assumptions as well as your assumptions, is necessary before doing ANY program - discount or conventional advertising or online advertising and marketing.
Keep in mind these companies are offering what consumers regard as a Gift Card. They are not thinking about advertising and marketing or trying to offer a "voucher for $500 off your acquisition of $1500 or more". They are not marketing promo codes they are selling present cards. Marketing the customer a Voucher with rules and also specifications that they need to spend even more money to reap the benefit of what they have actually currently purchased defeats the purpose of these programs.
Success is gauged in several methods for different programs. It is necessary to understand just how to track outcomes for programs like Groupon, Living Social, Bargain , Take the Offer, I-Deals, and so on. If you want brand-new customers to come in for a special offer there are numerous essential variables you require to consider:
1. Will this be an one-time thing or are you intending to do this over and over?
2. Do you have the capability to "up-sell" once they can be found in to redeem the discounted deal? Is your staff educated to effectively make this take place?
3. Do you have an objective or restriction on the number of price cuts you want to issue?
4. Is the deal attractive however still beneficial?
5. Will your portion of the cash gathered from the program cover your tough prices associated with the deal?
6. How much do you require to "up-sell" per redemption to make this a lucrative program?
7. Will your team correctly track the program so you can see the actual outcome of your participation?
There are many variables to any marketing or advertising and marketing program. Firms must plan out their approach for the year and also see where this could match their overall plan. If they do not have a strategy, their business is down and also this is a knee jerk reaction, they may obtain short term results but endure in the long-term because of not having a strategy.
Voucher Websites Deal Dining Establishment Bargains
Purchasing promo codes is one way to conserve money when the budget is tight. Locating a site with affordable local bargains allows customers to invest less on points they would normally buy. They additionally give people the opportunity to get points they usually can not afford. Dining establishment promo codes are an example of how discount rate websites work.
The customer mosts likely to the internet site for discount coupon offers. The search box will request a postal code. Once it is gotten in, every one of the vouchers available for that location will certainly show up. There will certainly occasionally be extra discount coupons for surrounding postal code to make sure that possible consumers can conserve at neighboring sellers too. A checklist of classifications, including dining establishments, will certainly show. Classifications range from tanning salons to auto detailers to roofing contractors and even more. The number of taking part vendors will display in parenthesis beside the classification. This tells the customer the number of there are from which to choose.
The client clicks the group of choice. If restaurants are chosen, all of the dining establishment vouchers will certainly appear on the display. Each coupon bargain can be checked out to see just how much it is as well as what it entails. Neighborhood bargains might consist of a buy one, obtain one cost-free; acquire one, obtain one fifty percent off; a discount percentage, or a cost-free product with the acquisition of something else. Some merchants provide more than one bargain.
The consumer makes a selection, then signs up with the site. If they wish to buy discount coupon offers, they add them to their purchasing cart. They spend for it now. After settlement has actually been accepted, the discount coupon can then be printed out.
If the consumer wants to save even more money and get even more promo codes the other groups can be accessed, one right after the other. The things can be contributed to the sopping cart at the end as well as spent for simultaneously. The vouchers can be published out together, as well.
Once the consumer has actually ended up buying and also has printed out all of their coupons, they can leave the internet site. It is recommended to conserve the site on the listing of faves or as a book marking for fast and simple recommendation in the future. Discount coupon deals alter, with new ones being added regularly, so the client will likely intend to check back soon.
Saving Cash Is Easy With Daily Deal Sites
If you're not acquainted with the term "social couponing" after that you are most likely investing more money than necessary on everything from restaurant dishes and spa solutions to enjoyment venues and showing off equipment.
Promo code use often tends to increase in appeal throughout economic crisis durations, yet the current pattern has actually truly taken discount coupons to the next degree. Deal-a-day voucher sites, targeted by geographic place, allow consumers to register for cost-free and get an e-mail daily including a significant discount on several neighborhood merchants or provider.
Wondering how much you can conserve making use of social coupon sites? Most bargains through social discount coupon sites supply half-off deals or far better, with cost savings up to ninety percent. Offers may be structured as a dollar-off quantity (for example pay $25 as well as obtain $50 well worth of food or product), or a set used at a deep price cut (two-night stay with breakfast at an upscale resort for simply $150).
Not all deals are for luxury expenses like eating in restaurants and also medical spa services. Lots of social couponing websites include discounts on oral work, chiropractic solutions and various other alternative healing modalities, and also house services such as landscaping or paint.
Most importantly, a lot of sites have generous terms, permitting you up to one complete year to make use of any kind of price cut you purchase.
Furthermore, voucher clients have the opportunity to gain credits or complimentary discount coupons simply for referring friends and family to the current bargains, making it even much easier to conserve cash.
As the variety of social promo code websites boosts, a number of aggregator websites are cropping up. Instead of signing up for each coupon website and also possibly getting inundated with offers, you can go to an aggregator website, which puts together bargains from numerous social discount coupon websites and arranged a checklist by city daily. By doing this, you can go to one site to locate all of today's deals.
We can anticipate this coupon trend to proceed for the direct future, most likely with an increase in personalization for individuals. For example, instead of checking out a social voucher website for Denver, you would certainly be able to select smaller sized cities as well as residential areas around Denver. Likewise, some social voucher websites are asking you for information regarding what sort of offers you want to see - this way, you just receive e-mails for bargains that fit your personal passions, which reduces unnecessary emails in your in-box.
Additionally, we may start to see niche-based day-to-day offer sites. As an example, websites for youngsters's passions, for individual growth, for entrepreneurs, etc. In the meanwhile, enjoy the savings.
Store Smart Online With Discount Coupon Codes
The variety of individuals shopping online is increasing every year as lots of are finding the advantages of utilizing the Net to buy goods. Smart on-line consumers make use of acquiring specific items more affordable and also furthermore save time and also the expense of a journey to the Shopping mall.
What happens if there was a method to save even more cash on things that are currently cheaper than in a traditional store? Difficult, some might claim. But real, actually, for those who recognize how to profit from shop price cuts on offer in the kind of voucher codes.
Voucher codes or discount coupon codes resemble these: "MOM15" or "STPAT10". The first one is a Mom's day voucher with a 15% discount rate and also the 2nd a St Patrick voucher with a 10% discount, on particular items. Discount coupon codes are identified in a different way and some simply will not say much about the offer without a description.
Coupon codes can be located on a vendor's internet site, located in a particular area of the Home Page or Promo page. The most common discount coupon is "Free Delivery" after a minimum order quantity and has no code ... Various other vouchers usually have a minimal validity and are provided on special events or holidays.
The vendor's site is not where the very best price cuts are located. There are web sites called coupon sites that detail all the present valid coupons for a choice of merchants as well as items classified in classifications. Some offers are offered just in these discount coupon websites and can not be found anywhere else, not even on the merchant's website.
The right procedure to shop online would certainly be to avoid going straight to a favored merchant, but to inspect if there is a discount coupon code offered for this certain merchant or a concurrent shop with much better deals. One might locate better discounts after a few clicks of the computer mouse.
There are discount coupon codes for practically every product available at any moment of the year. Thinking that a watch is the wanted thing, a voucher site might display all the merchants with legitimate promo code codes offering watches. The search box present in these websites would additionally be a quick means to look for a listing of watches of a specific design or brand name.
For those not accustomed with the use of discount coupons, the approach is easy. After the desired item image with summary, cost and also coupon code is shown on the discount coupon website, all the consumer has to do is click the web link offered to be redirected to the matching product on the seller's website. Now the price is revealed without the discount rate on the product's web page.
After the item has actually been added to the cart, a page is displayed with a summary of the product, amount as well as cost. The consumer after that kind the coupon code in the little box that suggests something like this: "Discount coupon code? Enter it below:", as well as click use. The web page rejuvenates as well as shows the final price including the discount rate.
The Advantages of Online Price Cut Coupons
As the globe has been encountering a real down pattern in its economic conditions, it is not really simple to get everything you want within your spending plan. The costs are soaring sky high as well as it has actually gotten to a circumstance where you simply can not live pleasantly like olden days. As a result, customers are on the watch out for different sort of on the internet discount coupons which will certainly provide a huge price cut while getting products.
Shopping via the web has come to be so prominent now-a-days that on-line buying has actually gotten to peak levels. Individuals are considerably brought in by the truth that they do not have to wait in lines up, and can acquire any point imaginable within the comforts of your house. And also the wonderful news is that there are a range of online price cut coupons that are supplied by numerous firms that make it all the more alluring and also economically wise to purchase items by doing this.
The flow of website traffic to these promo code sites have actually seen an extraordinary boost of around 38% within the period of March 2007 to March 2008. Aside from the financial gains that you gain from, clients revel in a bargain offer and also feel fairly delighted with the entire affair.
These online price cut promo code websites have ended up being a difficulty to the information media who were as soon as the kings of marketing discount promo codes. You no longer have to carefully read the paper to get info about the different offers that numerous companies provide on all sort of items.
The unbelievable walking in the price of any customer good has actually come to be a boon for promo code sites online. The discount coupon online websites give vendors voucher advertising and marketing and also offering system. With the unexpected rise of web traffic to these discount coupon sites umpteen customers are printing and utilizing these coupons, the varieties of vendors that are interested in logging on to this website are on the boost. The net result is that thousands of individuals are doing all their purchasing through discount rate promo code online websites.
If possibly your buying cart does not delight the coupon facility, you just need to get the assistance of a software program merchant to get the feature put into service to change into purchasing cart software which support it. You can likewise try Coupon software program which relates well with all carts, websites and blogs. Therefore you will discover that on-line discount promo code websites have started ruling the net and also are currently the top rated return web traffic websites online.
For More Information Visit Here
0 notes
Text
A postcard from Europe: A mid-journey update on my travels
Greetings from Prague! I'm just over halfway through my European vacation, so I thought it'd be fun to share some of my adventures and to take a glimpse at the financial side of this journey.
This trip is unusual for me because I'm traveling with a party of six. My cousin Duane has terminal cancer and wanted to see some more of the world while he still can. A few family members decided to join him. We're exploring Christmas markets as a group.
For the most part, Duane's health has been fine over the past two weeks. He tells me that he's felt great lately, and he's hopeful he has more life left in him than the doctors say. (Who knows? Maybe he and I can squeeze in another trip before his time on this Earth expires.) That said, he did have to take a short rest yesterday because he became dizzy and disoriented as we strolled the cobblestone streets of Prague. He's obviously not feeling 100%.
Our group doesn't have a set agenda. We're merely moving from city to city, exploring the Christmas markets and other touristy delights. Often when I travel, I'm a traveler not a tourist. Right now, I'm a tourist. I wouldn't want to do this every trip, but I'm fine with it at the moment.
General Impressions
So far, we've been we've been to Vienna, Budapest, and Prague. I liked Vienna. I loved Budapest. But after 24 hours here, I'm ambivalent about Prague. I didn't like it at first, but the city is growing on me. I think one problem is our location.
In the first two cities, we were a mile or two outside the downtown core. We stayed in residential neighborhoods. (In both cases, we were relatively close to university areas too, but that was pure chance.) We were directly across from metro stations each time, so it was easy to get where we wanted to go.
Here in Prague, however, we're staying in the downtown core, which means we're immersed in the tourists. (Yes, I realize that we ourselves are tourists and thus part of the problem.) There's no escaping the crowds and commercialism because of our location. This is an interesting lesson to learn for the future: Stay close to downtown in popular cities but not in the downtown. If you're close to a transit station, it's plenty convenient to get where you want.
The Christmas markets have been festive and fun. They remind me of Portland's Saturday Market, a craft market held every weekend in my home city. Vendors erect small stalls where they sell either food or wares.
A lot of the stuff being sold at the Christmas markets is the same from stall to stall — ornaments, winter clothing, jewelry, souvenirs — but occasionally there are vendors with unusual items, such as cookie stamps, wooden toys, and hand-forged knives.
I'm more interested in the food stalls. In each individual city, these “huts” are similar to each other. But the food offered varies from city to city.
Vienna food stalls sold wieners (“wiener” literally means “Viennese”), wurst, spaetzle, baked potatoes, toast with cheese, and roasted chestnuts. The drink vendors sold hot punch and glühwein. (Glühwein is mulled wine. It's very popular in Vienna.)
Budapest food stalls sold paprika sausages — Hungarians love their paprika! — and pig knuckles and delicious goulash. The drink vendors also sold mulled wine and a variety of punch.
Prague food stalls sell chimney cakes, fire-roasted ham, toasted cheese (with jam), and a sort of potato-onion dumpling dish. Here they sell mulled wine too, but they also sell hot mead and cold pilsner. (Pilsner comes from Bavaria, and it's available everywhere. I like the Czech word for beer — “pivo” — and I enjoy asking for it at the market: “Pivo, prosím.”)
The one factor our group failed to consider was the cold. Actually, we considered it…but not enough. We prepared for Oregon cold, not central European cold. (It didn't help that Duane emailed us from Paris to say that the weather wasn't as cold as we'd feared.)
We all brought warm clothes, but each of us has had a turn getting chilled to the bone. One night in Vienna, I was the coldest I've ever been in my life. While the rest of the crew enjoyed ice skating, I made a brisk one-mile walk back to the flat so that I could take a hot bath. Everyone else has been equally cold at some point.
I'm a little worried about Switzerland. The forecast low for when Duane and I arrive in St Moritz tomorrow night is -25 celsius (-13 fahrenheit). Holy cats!
Financial Considerations
While I'm not pinching pennies on this trip, I'm doing my best not to be profligate either. It's interesting to see how my travel habits have changed over the past decade. I used to spend a lot to buy a lot. Now, I buy very little. What I do buy is mostly food.
During my first trips to Europe almost a decade ago, I was very much a tourist as opposed to a traveler. I wanted to go to the tourist spots and to buy tourist goods. I talked to every tout. My compulsion to buy was very very strong.
Even in 2010, after writing Get Rich Slowly for nearly five years, I had some bad habits with money when I traveled. I remember when my ex-wife and I landed in Venice, the first stop on our three-week tour of Europe in autumn 2010, I found a funky used bookstore. I bought fifteen pounds of books on the first day of our trip. I had to carry that weight with me for the next twenty days.
On this trip, I've bought little despite spending hours and hours and hours in markets.
In Vienna, I bought a t-shirt as a souvenir, and I bought a Christmas gift for my niece.
In Budapest, I bought some warmer clothes and a Christmas gift for my ex-wife.
I've bought nothing so far in Prague, although I expect to purchase a gift for Kim before we move on.
We're spending little on transportation (aside from connections to various cities). We walk a lot — about ten miles per day — and we take advantage of the fantastic transit systems in each city. We're on our feet over twelve hours each day.
As a train nut, I enjoy riding the subway. I was particularly enamored with the Budapest metro system. The stations are beautiful, especially the old M1 (opened in 1896, it's the oldest electrified underground in Europe) and the new M4 (whose stations feel like sets from a science-fiction film).
We're not paying much for lodging either. Instead of spending $150 or $200 per night per couple on hotels (for a total of $450 to $600 per night), we're renting rooms through Airbnb. This costs us between $75 and $150 per night for the group. That's a huge savings!
Plus, renting flats gives us a tiny taste of what it's like to live as a local.
For instance, my cousins have had to adjust to the idea that Europeans don't use clothes dryers; they use drying racks. The light switches and outlets are different. The instructions on appliances aren't in English. And here in Prague, our shower sprung a leak so we couldn't use it for a couple of days. (And our internet connection doesn't work, so I'm currently eating breakfast in a coffee shop so I can publish this article.)
Our food expenses are hit and miss. Left to my own devices, I'd eat restaurant meals now and then but not often. When I travel, I like to buy a few groceries — bread, meat, cheese, fruit, juice — to keep in my room for breakfast and snacks. I grab a quick lunch in the afternoon, then maybe eat a sit-down dinner featuring local cuisine. This is relatively cost-effective.
My cousins like eggs for breakfast, though, and they need their coffee. We're frequently starting the day in restaurants. (They can't always find their eggs, though, because egg breakfasts are much less common in Europe.) We frequently snack or lunch at the Christmas markets, which is less expensive than visiting restaurants, but our dinners are always restaurant meals.
One big factor in our finances is currency exchange. Most places took credit cards in Vienna but not the stalls in the Christmas markets. In Budapest, most places did not accept credit cards. In Prague, it seems to be variable. As a result, we have to carry cash.
Not every source of cash is created equal.
Here's an example: We landed in Prague late in the evening. We needed some cash to buy tickets for transit (and to grab some food), so I offered myself up as sacrificial lamb at the airport. I was carrying 137 U.S. dollars, which I exchanged for roughly 2340 Czech crowns. The exchange rate was something like 1 to 19.2.
Yesterday morning, my cousins pulled money from a bank ATM. They got an exchange rate of roughly 1 to 22.4.
In other words, the airport cash exchange milked me for an extra 10%, which is a terrible deal. Lesson: When possible, never exchange money at the airport. (To be fair, I knew this already. In this case, though, I didn't have a choice. We needed some cash, so I sacrificed about $14 to get it.)
Meeting the Money Bosses
I've had a lot of fun on this trip so far. I'm traveling in a very different way because I'm not the one deciding where we go when. My cousins are directing the decisions, and that's fine. It allows me to see how other people travel and what their priorities are. All the same, I do hope to return to these cities in the future to do some “J.D. travel”.
My favorite city of the three so far has been Budapest — and by a wide margin. I loved the history, I loved the culture, I loved the food, I loved the people. I have no doubt that I'll return for a more leisurely visit in the future (possibly as soon as August or October, the next two times I'll visit Europe).
I feel like every vacation offers certain highlights that become the core memories I carry with me. Midway through this trip, I've enjoyed three five-star highlights, each of which was in Budapest.
The Labyrinth
One day, we walked across the Cable Bridge from Pest (on the east side of the Danube) to Buda (on the west side). We boarded a bus to the top of the hill, where we visited Fisherman's Bastion, which offers a stunning view of the city. (Click this image to view a larger version.)
The weather was sunny, clear, and cold. We ducked inside a coffee shop for a few minutes. When we emerged, it was pouring rain. There had been no indication (or forecast) that rain was imminent, so we were unprepared — as was everyone else, tourist and local alike.
We took refuge in the nearby labyrinth, a network of natural underground caves that, over the centuries, had been expanded by local residents. We toured the labyrinth for nearly an hour while we waited for the rain to subside. It was amazing! (But take my rave review with a grain of salt. I love caves. I visit them whenever I can. Others in our group were less impressed. Online reviews are mixed.)
I enjoyed the caves themselves, of course, but also the history. The real-life Dracula — Vlad the Impaler — was supposedly imprisoned in the labyrinth for an entire year. Also, there's a section of the tunnels that's completely dark. It's pitch black. For maybe 50 meters, you make your way by feel. (There's a rope attached to the wall, if you want it.) So fun!
Fun with Ferenc
When we arrived in Budapest, we walked a mile from the train station to our flat. As we were puzzling out the intercom system, a man stepped up to me. “Are you J.D. Roth?” he asked.
I was surprised. “Yes,” I said. He handed me a bottle of wine and an envelope with my name on it.
“My name is Ferenc. I read your blog,” he said. Turns out, he had determined where we'd be staying based on an Airbnb screencap I shared a few weeks ago. He'd spent two hours parked in front of the flat, waiting for us to arrive. He gave us a warm welcome and some tips about his city.
Here's a photo of me and Ferenc. I like this because it shows me carrying all of my luggage at the end of our walk. (You can't really see my backpack, though.) This is how I travel:
Later, I wrote to thank Ferenc. “Thanks for greeting us. Do you want to grab coffee or beer?” I asked.
“Sure!” he said. “I have to work all day today. Later, my son has a soccer game, then I have dinner with friends. But I could meet you at 23:30.” I'm no longer a night owl — plus I've had bad jet lag on this trip — so this normally would be a no-go. But hey! This was a once in a lifetime experience, right?
Ferenc picked me up in his Mini Cooper at 23:30. As we sped through the streets of Budapest looking at the beautiful lights, he told me about the history of Hungary and about daily life in Budapest. He drove me to his favorite viewpoints so that I could snap photographs. Then, when we were finished sightseeing, he took me to a “ruin bar” named Szimpla Kert, which was started by one of his friends from high school.
Ruin bars are exactly what they sound like. They're pubs that have been built in hollow, decaying buildings. Instead of remodeling these spaces, as we would in the U.S., the Hungarians have left them in a state of decay. Inside, they've added bars and stages and dance floors and other pub amenities. They are very, very popular among Europeans.
Ferenc and I stayed out until nearly 03:00, drinking beer and chatting about life in our respective countries. (Naturally, much our talk revolved around personal finance.) To me, this experience is what travel is all about. It's not the Christmas markets that I love (although those are fun), nor the cathedrals nor the castles. It's connecting with real people and real life.
A Morning with Vica
The next morning, I was up early. At 09:30, I met another GRS reader for coffee.
Vica is a landscape architect who lives near Budapest's main train station. She is warm and funny and engaging. As we sat in the basement coffeehouse, she told me about life in Hungary and about her goals for the future. She shared the places she loves to travel around Budapest.
When I complained about how cold I was, she volunteered to take me to a shop where I could buy a couple of quality items at reasonable prices. As we walked to our destination, she gave me a tour of the city. As a landscape architect, Vica seems fascinated by urban design. It was interesting to see things through her eyes. While we talked, she helped me understand more about the Hungarian language, which is quite difficult for native English speakers.
Vica and I spent more than four hours walking across Budapest, and I enjoyed every minute of it. As I said, when I remember this trip in the future, it's my time with her and Ferenc that will come to mind first and foremost.
I'm eager to meet up with other readers on this adventure. On Sunday, Matthias will join me and Duane for our ride on the Glacier Express across the Swiss Alps. I also have invitations to visit readers in Cologne and Luxembourg, although I'm still uncertain whether I'll be able to make those connections work. I hope to!
Final Thoughts
I've been in Europe for eleven days now, and I have nine days left on this trip. Four of my cousins fly home tomorrow morning. At that time, Duane and I branch off for adventures of our own.
First, we'll fly to Switzerland to take the train ride through the Alps. All told, it'll take us three days of travel just to enjoy that eight hour trip. We'll spend very little time actually seeing Switzerland. On the surface, that's ludicrous. But because Duane and I both enjoy the process of travel, it's actually a worthwhile excursion. Plus, Matthias will join us with a bottle of whisky!
Next, we'll spend a couple of days in Strasbourg, France, the ancestral homeland of the Roth family. Yes, we know there was just a shooting in Strasbourg that left three people dead. No, we're not worried. We were aware of the potential for terrorist attacks before we left for this journey and it didn't dissuade us. (I refuse to make fear-based decisions.) If anything, we feel that Strasbourg will now be safer than before. (True story: During the precise moment of the 2017 London Bridge attack, I was traveling on a subway train underneath the site. People were confused why the train bypassed the station. It became very clear later.)
Finally, Duane will branch off to Munich and I will…I don't know. I have three days and no plans. I have those invitations to visit GRS readers in both Cologne and Luxembourg. The offers are tempting. But I haven't yet seen anything of Germany, so I might simply make my way to Berlin (from which my final flight departs early on the 23rd). We'll see.
As always, this travel has given me perspective on my life back home at Portland. It's made me more mindful of my daily habits and routines, made me think about the things I need to change in order to become a better version of me. I always find it fascinating the way comparing how I normally live to how others live in different countries can be such a transformative experience.
Until I get home, this site will continue to host guest articles from some of my favorite people. I hope that you're finding them worthwhile. After Christmas, things will return to normal around here. Until then, I hope you're all staying healthy and growing wealthy. Happy holidays!
My biggest mistake on this trip? I grew a beard because I thought it would keep me warm. I always have a mustache and goatee, but I keep them relatively short. Now I have a full beard and I hate it. It itches. It makes me appear 69 instead of 49. And it gets in the way of my food and beer. There's a barber just outside our flat here in Prague. Once I publish this article, I may ask them to shave me.
The post A postcard from Europe: A mid-journey update on my travels appeared first on Get Rich Slowly.
from Finance https://www.getrichslowly.org/postcard-from-europe/ via http://www.rssmix.com/
0 notes
Text
The week has arrived. What was once known as a “super festival” has descended upon Denver. For three days, the massive event is set to spread across Overland Golf Course for arguably the largest concert the Mile High has seen in recent history. Navigating your way through such a behemoth of a production can be tricky and riddled with mishaps if you don’t plan ahead — so we took the liberty of putting together a survival guide for the weekend. From how to get there (don’t drive) to general tips and, of course, some musical recommendations, we have laid it out all here so you can enjoy the inaugural Grandoozy to its fullest.
Getting There
The very first thing we need to mention is that there is no parking. We repeat NO PARKING. Since a lot of people in Denver still drive to events, this is really important to know. So spread the word and tell your friends, co-workers, grandparents—whatever. And because it’s probably going to still be pretty confusing for people, Grandoozy made an entire guide on how to get there. The key takeaways are below.
Festival grounds times: 1:30 – 10 p.m. Friday, Saturday and Sunday
Location: There are two festival entrances at Overland Golf Course. One at West Florida Avenue between South Platte River Drive and South Santa Fe Drive and another at West Jewell Ave and South Elati Street. The address for the event is 1801 South Huron Street, Denver and it’ll land you pretty close to the entrance on West Florida Avenue.
RTD: The Light Rail is a pretty good option since there are two stations nearby. Grandoozy is recommending the I-25 and Broadway station but it is a bit further away and it’s not as easy of a walk. If you do take this station they will have a shuttle or you’ll need to get a ride share. But be warned — high volume requests coming from that spot will cause some headaches. So we recommend going to the Evans station and walking to the Jewell entrance of the festival grounds. The event says it’ll have a walking path and it is only a few blocks away (see map).
Bike: If you live in or very near to Downtown, biking is a great choice because you’ll have access to the Cherry Creek bike path. It runs along the Platte River so it makes for a flat and pretty ride. Because it’s next to water it can get cold at night so bring a jacket. You also must bring bike lights because the path is really dark after sunset. If you’re partaking in drinking or consuming other substances, biking home might not be the safest route so consider the next option.
Rideshare: Uber and Lyft are probably the most popular ways to get to the festival. Uber is the partner for Grandoozy but they aren’t offering any serious incentives unless you’re a new user (but you probably aren’t). If you for some reason haven’t downloaded Uber you can use CODE: UBERGDZ18 for $15 off your first ride. There is also a shuttle that picks up in a couple spots (see map) in Denver but you’ll need a pass to ride it.
For the other nitty-gritty details on getting there, read the whole official guide.
General Dos and Don’ts
Photo courtesy of Overland Park Golf Course on Facebook
The ultimate test of festival survival consists of policy awareness and restrictions — this is the best method for music fanatics to have the most fun wasted on cheer and good times. Being that Grandoozy is the first of its kind to overstimulate the Denver population and beyond, it’s important to take precautions on what’s allowed, as well as unaccepted, into the groovy grounds.
We all enjoy having sacks of items strapped to our backs while we parade from one stage to the next — but it’s vital to know that Grandoozy is implementing a clear bag policy. This means the following are allowed:
Bags made of CLEAR PLASTIC, CLEAR VINYL or CLEAR PVC, smaller than 20” x 15” x 9”
One-gallon clear zip-top bag
Small clutch bags, smaller than 6” x 8”, with or without a handle/strap (DO NOT HAVE TO BE CLEAR)
Waist packs / “Fanny-pack(s) or similar, smaller than 6” x 8” (DO NOT HAVE TO BE CLEAR)
Empty hydration packs with a gear capacity of 2.5L or smaller and no more than two pockets (DO NOT HAVE TO BE CLEAR)
The following are not allowed:
Any non-clear bag larger than the size of a fanny pack (larger than 6”x8”)
Hydration packs with a gear capacity larger than 2.5L/150 cubic inches or more than two pockets
Full preparation for this weekend’s extravaganza is necessary since re-entry is not allowed. With this being noted, festival-goers must abide to other rules on what’s permitted. Check out the full list here to avoid the cost of getting booted.
Additionally, Grandoozy is weighing heavily on the matter of mutual respect and consent. In order for people to feel fully comfortable in their dancing shoes — the festival is enforcing a zero-tolerance policy for harassment of any kind. A sense of openness is accepted to a certain extent, so we politely ask music lovers to be mindful of judgments and unfavorable approaches. If one feels unsafe, they can seek assistance at the Medical Tent and inform a staff member about the situation. It’s important to build a foundation of protection within an environment where passionate people simply want to sustain healthy shared experiences.
Just as we follow the path of safety procedures — newcomers may want to be in tune to some musical direction throughout the weekend since there is going to be a vast array of eclectic music to enjoy.
Make a Game Plan
Phoenix. Photo by Will Sheehan.
With a big event like this, you should have at least a loose idea of what you want to do so you don’t end up overwhelmed or feeling like you missed out. The music schedule is here and we made you a list of our favorite musicians to see here. We also set up a couple of game plans for you just in case you’re having a hard time deciding.
The first day is going to break the ice with expressive sound — if you are a fan of R&B and rap, hit up the Rock Stage to catch Miguel at 6:30 p.m. and stay there for Kendrick Lamar at 8:30 p.m. If you have an interest in indie, then Phoenix will suit your fancy at the Scissors Stage starting at the same time or The War on Drugs at the Paper Stage at 7:30 p.m.
Saturday’s madness exhibits a collection of rock and electronic — mosey over to the Scissors Stage for Denver based electronic group Sunsquabi at 6:30 p.m., Young the Giant at the Paper Stage at 7:30 p.m. to get a taste of alternative with Florence + the Machine due at the end of the night at the Rock Stage.
The final day is going to provide soul that is going to swallow up the crowd — Mavis Staples is bringing rhythm to the Rock Stage at 4:15 p.m., folks can dance over to the Paper Stage to get down to hip-hop trio De La Soul at 5 p.m. and definitely make sure to catch iconic musician Stevie Wonder for the finale of the weekend from 8 to 10 p.m. at the Rock Stage.
What to Eat and Drink
This slideshow requires JavaScript.
Because it’s Denver and we love to drink and eat just as much as the next city, Grandoozy will have a pretty robust beverage and restaurant program. Dubbed Denver Devour, you’ll be met with 30 local restaurants and food trucks, that range from local haunts to award-winning restaurants. Some of our favorites include the following:
Illegal Pete’s if you want casual, inexpensive burritos, tacos or nachos Señor Bear if you still want Mexican but a little more inventive Biju’s Little Curry Shop for casual Indian fare (this is a good spot for vegetarians/vegans) Comal for global fare including traditional Syrian and Mexican foods (this is a good spot for vegetarians) Steuben’s if you want some classic American comfort food Snooze for breakfast dinner including a big lineup of pancakes and hash browns Sweet Cow because you got to have some ice cream (don’t sleep on the pretzel cone)
If you have a VIP ticket you’ll get to level up to some of the fancier spots including a few that aren’t open. This includes the highly anticipated Morin, which is said to focus on inventive French fare or Ash Kara which is Israeli and comes from award-winning chef Daniel Asher.
For booze — there will be plenty. That’s because Grandoozy has two separate lineups for beer and spirits, which we have to say, we appreciate because Denver’s distilling and cocktail game deserve the added recognition. For spirits, the “Flight School” is led by master Denver bartender Chad Michael George and will offer up four unique cocktails and five craft spirit flights including one flight dedicated to just Colorado spirits.
As for the beer, there will be a selection of Colorado craft breweries mixed with some national names. We recommend sticking to the local craft breweries and heading to places like 4 Noses Brewing, Ratio Beerworks, Denver Beer Company and Lone Tree Brewing. For a Denver event, the beer selection is just okay but admittedly it’s much better than your typical music festival so we’ll make do.
For the full lineup of food and beverage go here.
Other Things to See and Do
This slideshow requires JavaScript.
If for some reason you need to take a break from the music, the event has a couple other things worth checking out. If you’re into outdoor sports, head to The Backyard for panels from industry leaders like the CEO of Icelantic or Olympians like Bobby Brown as well as vendor booths filled with gear from places like Never Summer, Topo Designs and Zeal Optics. There will also be yoga daily from Corepower starting at 2:15 p.m. at The Break Room. If you’re looking for something a bit more upbeat but not fully in the thick of things check out the ‘80s Ski Lodge, which will be exactly what you expect — along with a lineup of DJs. Fellow art fans should keep their eyes peeled too because tons of our favorites will be live painting all weekend. Expect to see the graphic work of DINKC or the “digital taffy” of Anna Charney and of course the iconic pieces by Thomas “Detour” Evans. Pretty much no matter where you go at Grandoozy, you’ll probably find something to explore.
Go here to see the full lineup of DJs, panels and vendors and here for the lineup of visual artists.
Your Guide to Surviving The First Grandoozy The week has arrived. What was once known as a "super festival" has descended upon Denver. For three days, the massive event is set to spread across Overland Golf Course for arguably the largest concert the Mile High has seen in recent history.
#303 Magazine#303 Music#Arts and Crafts#clear bag policy#corepower yoga#De La Soul#denver music#Devour Denver#festival#Flight School#Florence + The Machine#Grandoozy#kendrick lamar#Mavis Staples#Miguel#phoenix#safety precautions#stevie wonder#Sunsquabi#survival#The War on Drugs#Young The Giant#Zena Ballas
0 notes
Text
Important Happy Chocolate News!
Open from 9 am to 1 pm, Saturday only. August 10, 2018
Dear Garage-goers! And other far flung, chocolate loving humans!
Lots to pack into this week's newsletter, many things I have been wanting to cover now for many weeks, but wasn't sure how to share it all with you. Here is a little preview of the topics covered in this newsletter, feel free to scroll and skip sections:
Tomorrow's Tastes
Kickstarter for Tinker Kitchen
Momotombo Day August 18th
Last Day August 25th
Where to buy Happy Chocolate going forward...
Tomorrow's Tastes
Momotombo 72% Single Origin dark
Baianí Mild Roast 70%
Sibu Chai bar
Askanya Wanga Neges
Tomorrow we'll be tasting two plain darks and two flavored bars, we may also break open a Francois Pralus Infernale bar, with Praline and Hazelnuts... We only have about 16 of these very large bars left, so there will be a sample bar for those who come taste early, and 15 left to snap up before they disappear.
Kickstarter for a wonderful local start up!
Check out Dan Mill's beautiful community building Tinker Kitchen, just opening in the Mission district of San Francisco, a place to go if you love to eat and love to learn how to do magic with food! Have you ever wondered how to roast coffee? Or cook sous vide? Or wanted to learn how to make ice cream with liquid nitrogen?
I met Dan many years ago, as he was passionately building a small community here locally, around tinkering with food and food equipment. Many of you already met him years ago here at The Chocolate Garage, even if not, I encourage you to support this lovely project that is about building community and learning how to make food with restaurant calibre equipment. Dan's vision is to create a space that is like a "kitchen playground", I think of it as like a Tech Shop for food making. There are various ways to get engaged, buy a year's membership, sign up for a class, or become a founding member. Go get more info at the Tinker Kitchen Kickstarter page!
Momotombo Day Saturday August 18th
I have been contemplating how to best serve Momotombo as Nicaragua goes through these difficult times that don't seem to be coming to an end anytime soon. We had planned to close end of May 2018, but instead stayed open indefinitely when Carlos asked if we would be open to storing their current inventory for safe keeping. It felt like right action to not only store it, but to remain open and also make it available to you all, since there are so many dedicated Momotombo lovers here. Three months later it looks like this will be a much longer affair, and so I am working on getting Momotombo imported by a favorite distributor of mine, so that Momotombo can keep serving the US market, grow their market here and you all can keep getting access to your favorite items. As a last celebration of what has been nearly 8 years of beautiful relationship with Carlos and his team, we decided that next week, August 18th, we will have a Momomtombo extravaganza Saturday! What does this mean? We'll sample many of their delicious chocolates and have some deals available to encourage you to purchase lots of Momotombo, and we commit to sending every last dollar made on the 18th of August, straight to Momotombo. We will take zero margin, and all of what you buy on that Saturday will go straight to their beautiful social enterprise.
So, stock up on hostess gifts, birthday gifts, Thanksgiving chocolate, and schedule a chocolate tasting party for you and all your friends. Please come and stock up on all things Momotombo, and share it widely. That way you can help Momotombo, help us move the rest of our stock, and also bestow others with the deliciousness that is Nicaraguan cacao. Last Day August 25th Well, here we are, three months later, and one "Save The Chocolate Garage" campaign later. Our campaign is just shy of the $2K mark we needed to hit (we reached ~$1700/month), I know we could get there, if I encouraged you all a bit more, and kept asking, but that doesn't feel right. My feeling is that the time and place and idea is not right. Sure, I could stubborn it further, and keep it going, but in truth, I have been keeping it open for the wrong reasons, and I can see that clearly now. In reality this was not the first Save The Chocolate Garage campaign, a few years ago when I attempted to roll out this idea of an optional "Membership" program, I already saw the writing on the wall, that my business was precariously positioned in an ever crazier and changing Palo Alto, a Palo Alto where the only new food businesses are primarily large chains. It was clear that as soon as we lost our very unusual small and very cheap rental spot, we would need to close. And we needed a path to get to a place where we would be able to keep bringing what I felt was much needed change to the chocolate industry. As much as I love all of you, and watching your faces light up as you discover the amazing flavors of Happy Chocolate, chocolate made with the utmost integrity within a traditional supply chain with close to no integrity, my interest has never been "selling" chocolate. It is so much bigger than that. So, it was clear to me that if using a brick and mortar to engage you all around chocolate and beyond was not going to be sustainable, then the shop needed to close. I tried membership in an attempt to engage the citizen in their local community. I tried going back to Future Chocolate, we got rid of Future Chocolate, I tried to find new ways to find great staff and pay them what they are worth so that we could continue to provide a unique experience to customers coming to The Chocolate Garage.... And now, as I integrate my personal and professional life even more deeply, and sincerely commit to following my truth and following my heart, I know that it is time to close The Chocolate Garage. I have put in so much of my heart, my energy, and my plentiful determination since 2010, and yes it is possible to make the business work ok, but the sacrifice it requires of me is not acceptable to me anymore. In 2018, as a 45 year old woman with kids who will be teenagers before I know it, I want to really be present and enjoy them. I want to spend my day pursuing what captivates me these days, not searching for new chocolates in the complexity of what is the craft chocolate industry today. Will I still lead trips? Looks like we have Brazil and Costa Rica in queue. Will I still make chocumentaries (chocolate origin trip documentaries)? Yes, we have Switzerland nearly ready to publish, and all the India footage to start piecing together... Will I keep doing the Unwrapped podcast? Yes, our next interview with Alan McClure of Patric Chocolate is nearly tied up and ready to go. Will I still send you (less frequent) emails pointing you at the best new Happy Chocolate that I find? Yes, I may have a few things up my sleeve on that front too. But, we will have our last day of brick and mortar sales on August 25th. If we have some bars left over, we may maintain our online platform for a few weeks, as we work out how to move the rest of our bars, but our wee little Garage space will go back to being a space for dreaming big garage dreams. It is with a sweet fondness that I think of our little space, so many amazing moments, tastings, parties, tears, so much laughter, madness, beautiful love, acts of generousity to break your heart wide open... wow. So. Very. Much. I am so grateful for having had this chance to know you all, share, taste, hold hands together as we lived our lives over the past 8 years. I can't even begin to list all that I have learned, about business, humans, chocolate, scarcity vs generosity, loyalty, I could go on. I am not going away, I plan to send monthly (or so) newsletters once we close on the 25th, and will announce special events that may pop up, new bars that must be tasted, new trips I plan to lead, or wild new ideas I want to throw at you. :) I plan to find the redwoods many weekdays, either for a long effortless run, or to sit at the base of a redwood and look up. So best bet is to look in the redwoods for me... if you don't find me, the upside is that you may find some peace and quiet and yourself! That reminds me, I had wanted to do a special offer where I gifted you all a free bar of chocolate, for becoming a member of our state parks. Another time. Where to buy Happy Chocolate going forward? I will be posting more on this in the coming weeks. I will be listing where to find all your Garage favorites, and sharing all my favorite vendors and distributors, who have always operated with the utmost integrity. If I don't list someone, please ping me, and I will add them if it was accidental. Guess what time it is? Time to go find out for my kids who their new teachers will be this year, and who their classmates will be! Very exciting for them, they await with baited breath as they visit their grandparents in the midwest. I hope you have a beautiful weekend, and I will see you soon! Maybe tomorrow if you make it to The Chocolate Garage! Warmly and with sweet gratitude, Sunita
So many people took part in remodeling this space a few years ago. It was a gorgeous adventure, so much laughing, so much late night chocolate nibbling and scotch sipping...
Remember the time we went to visit The Arete Chocolate Factory? That was fun. David and Leslie made it a truly exceptional experience for the lucky group of us who went. Maybe we hit up their new spot in Tennessee next summer?
#happychocolate#happy chocolate experiences#closing#patric chocolate#momotombo chocolate#Arete Fine Chocolate#Unwrapped podcast#cacao origin trips#Tinker Kitchen#last day
0 notes
Text
Sitecontact Review and bonus
Sitecontact is the first ever Facebook autoresponder that allows you build your Facebook listing in 4 powerful methods, and afterwards send them Programs as typically as you want.
Official site: http://www.socialleadfreak.com/sitecontact-review/
How you can Market on Facebook Using Listings
Unless you stay in the middle of no place with no TELEVISION or web access, it is impossible not to have actually seen every one of the noise bordering social networks advertising, specifically Facebook. Chances are, you have a Facebook account, and perhaps even a Facebook organisation page, and are attempting to determine how to continue to be social to develop top quality relationships, but still utilize it efficiently for advertising and marketing. While effective marketing on Facebook is a mystery to many business owners, one manner in which I manage my Facebook pals and that I market to on Facebook is using checklists. Just recently Facebook announced that it had actually gotten to 500 million customers worldwide, up from 100 million from only two years ago, and at any type of given time I have around 4000-4500 Facebook close friends linked to my profile. The number fluctuates as I accept brand-new pal demands and also silently unfriend some other people. Facebook pal lists have been the outright best device in order to help me handle my connections on Facebook.
The very first step to utilizing checklists for reliable Facebook advertising and marketing is to create a great deal of various listings, so that as you are familiar with to your pals better and also start to make use of Facebook as an advertising device, you could segment and also customize your message, based upon the objective of your Sitecontact Review advertising and marketing project. The cool feature of listings is that individuals can be put into more than one, which allows for even more segmentation and refining of your message. I have lists based upon my relationship with the person, where I satisfied them, what type of business they possess, where they live, and a lot more. Sadly, I uncovered the power of Facebook close friend lists after I had actually been utilizing Facebook for a while. I needed to comb through my good friends, one at a time and execute an audit ... reviewing their profile, assigning them to the appropriate checklists, or if their account was fishy at all or resembled a spam account, unfriending them. It was a long process since I currently had gotten in touch with numerous amazing people. I very advise that if you are not yet using Facebook Listings to organize as well as manage your pals as well as your Facebook marketing, you begin doing so immediately. If you haven't developed lists to segment your Facebook good friends yet, below are a couple of to obtain you began: Family as well as Close Pals--. Place all of your family in one list. They enjoy you and take pride in your service, but probabilities are they probably do not want an occasion invite to your following workshop or teleseminar. Include every one of your friends, high school/college pals, as well as anybody else that probably don't wish to receive your advertising and marketing messages. They intend to be attached to you, yet they most likely typically aren't using Facebook for organisation functions. If you were Joe Quarterback as well as are friends with hundreds of your senior high school and also university alumni, consider creating separate checklists. Cities, States, Counties, or Nations--. These ones will take a little work, because you will certainly need to go to every one of your good friends profiles and find out where they presently live, yet the benefit is worth it. Absolutely nothing is extra bothersome than being welcomed to a local occasion like an afternoon networking lunch in Chicago when I live in The golden state. By segmenting your friends by geography and also just advertising and marketing local occasions to people that really live close by, you could craft a much more reliable message and also possibly boost the action. Existing Customers--. These individuals have currently purchased from you when and are one of the most likely to buy from you once again. Place Sitecontact Review in a listing so you can provide a bit more interest as well as help nurture a long-lasting consumer partnership. Subsequent is where most entrepreneurs fall short as well as by grouping every one of your past and also existing clients with each other, you can quickly scan standing updates and blog posts from your client area as well as nurture those partnerships to stay top of mind. VIPs--. Develop a list of the coolest individuals you wish to get to know better and that you intend to be familiar with you. This list for me additionally includes the people that are really kicking butt and taking names in their business and also who inspire me to be great daily. This listing may include entrepreneurs you respect, individuals on influence in your industry, or perhaps someone you are passing away to partner with. Business Type--. You could additionally create different lists based upon the sorts of companies or markets. You may have a listing of all the people who do the very same thing you do, or one of vendors as well as company. Grouping your friends by kind of business helps you create marketing messages specifically for those people and the much more details the message, the much more successful the advertising campaign. Where You Met--. I assign my buddies whenever feasible to a listing that tells me where I satisfied them. I have listings based upon details occasions and also meetings I attend in addition to lists of people affiliated with specific networking organizations. Preparing a list of people going to an occasion concerning 4-6 weeks before an occasion (so you could get to know them more) can be an incredibly powerful tool that can dramatically boost your event experience. How to Produce Facebook Buddy Provides. You can create Facebook Good friend Details from three various areas. First, from your Facebook home screen (when visited), you could click Pals in the left hand sidebar (photo 1 below). Then your can click the button Develop Listing on top of your friends checklist on the right-hand side (picture 2 listed below).
You can likewise start with the Edit Friends option under Account (picture 1 below) in the top right hand edge of the display when visited. When you reach your checklist of friends you have the alternative to Produce New Sitecontact List on top of the list on the left-hand side (photo 2 below).
When you click the button to produce a list in either location, a dialog box will open up (shown below). You can then develop a listing name (top left), select individuals you intend to add to the list be inspecting them, and afterwards create the listing (bottom right).
How To Construct a Social Media Adhering To on Facebook From Square One-- The Comprehensive Overview.
Going back to square one. Attempting to grow a following on Facebook from the ground up is definitely a difficult job, specifically if you do not have an established online existence in other places (state, a blog site or internet site). However hey, every person has to begin somewhere, right? I have actually been obtaining many emails recently from customers asking for methods on the best ways to launch their Facebook pages from square one. There's nothing even more fantastic (and also terrifying) compared to releasing your ideas right into the world.
So just what do you do when you are attempting to start on Facebook from square one with a really minimal spending plan? That's precisely what I am mosting likely to focus on during the post. Together we'll specify specifically just what it is you need to do in order to grow your Facebook following from scratch and also transform it right into a growing neighborhood. And also, I consisted of a fantastic PDF overview at the end that will certainly aid you do something about it as soon as possible. Remaining Regular. I'm beginning by reminding you to stay constant with your material is everything. If you are not consistent, you'll likely fall short at anything you plan to do. After successfully starting and growing lots of Sitecontact pages from the ground up for clients, I can tell you first hand that if you're not constant, you're not going get anywhere with Facebook. At first, development will probably be slow, and also it could seem like you are squandering your time and also talking right into the void. I understand it takes a big amount of technique, willpower, and concentrate on staying committed to your social media approach when you are first beginning, but do not you give up on me. It's completely normal to feel a bit discouraged at first, as well as if you are experiencing this right now, you know precisely just what I'm discussing. It will probably take a couple of weeks to see results, however staying concentrated is truly the key to success below. So just what does focus resemble? Choosing an approach and adhering to it even when it feels like you are running around in circles. Remaining consistent ways turning up day in, and day out. Placing your outright best content out there, and spending time and effort into your method.
Bear in mind, many things in business (and also at times in life) require that you either invest time or money. And also since we are just beginning with an extremely restricted budget plan (say $50/month), we're going to need to invest our time. I know, I recognize. Time is your crucial asset, and you're probably already overloaded running your company as well as attempting to make money. I'm going to go all Gary Vaynerchuck on you now as well as inform you that you got ta either dedicate or yawp about it & & quit. It's that straightforward. Staying with your weapons as well as pushing forward whatever is the only means to succeed at anything in life.
With this details, you could conveniently identify what will make you stick out from the group. Below are a few concepts ... You might decide that producing short videos on Facebook is how you are going to separate on your own since you love video clip, and it straightens perfectly with what you do. Gary Vaynerchuck utilizes this approach for his #AskGary show, and also as you could see, not all his video clips have a high manufacturing value. Meaning, you do not need to obtain all elegant to make video benefit you.
#ThrowBackThursday You can't claim yes to every little thing. Some Regard the No. Uploaded by Gary Vaynerchuk on Thursday, June 4, 2015. Perhaps you have actually observed that the majority of your rivals are truly doing not have in the interaction division, so you have actually made it a goal to create partnerships on Facebook by getting innovative with your blog posts. Madison Social is a hip dining establishment in Tallahassee that really comprehends their clients, (university student) and uses really cutting-edge methods to involve with them on Facebook.
Tags: Sitecontact, Sitecontact Review, Sitecontact Bonus, Sitecontact Discount, Sitecontact Reviews, Sitecontact Bonuses, Sitecontact Review and bonus, Sitecontact Reviews And Bonuses
0 notes
Text
Cape Town, Day 3.
When I pulled back the curtains on the morning of day 3 I was greeted with a cloudless blue sky.
“Great!” I thought, “Time to visit Table Mountain!”
Unfortunately the wind had other ideas. The intention had been to walk up the Platteklip Gorge to the top of the mountain and then ride the cable car down, however when I did a quick search online for details of the cable car I was disappointed to see ‘Cableway Closed: Adverse Weather Conditions’. It’s worth noting for anyone looking to visit as the area can get hit with some fairly stiff breezes which will pit the cable car out of action.
With that plan scuppered I decided it was time for some caffeine! I set about walking down toward the main street in Green Point and happened upon a great coffee shop called ‘Bootlegger Coffee Company’. I took one of the outdoor seats as it was drenched in sunlight whilst also being suitably sheltered, keeping the wind out! I was feeling quite lethargic so I opted for a flat white (not usually my way of drinking coffee, but they looked good), a #6 Juice (ginger, apple, carrot, orange and beetroot) and a bowl of bircher muesli. They were all absolutely delicious, and the juice was so good I decided to get a #2 juice (apple, cucumber, spinach and celery) to go!
After breakfast I took a wander down to the Victoria and Alfred Waterfront (commonly called the ‘V&A’). It’s mainly a tourist hotspot with shops selling local wares for souvenirs and bustling restaurants, but also holds an extensive shopping mall. I spotted there was a ‘Vans’ store in the mall (one of my favourite clothing brands) and as the exchange rate from GBP to ZAR is still quite favourable I thought I’d see if I could grab any bargains. As it was, t-shirts that cost £25 in the UK came to about £16, and I elected that I would return before leaving SA to pick one up!
I carried on walking around the waterfront and arrived at a large building called the WaterShed. Inside was home to a plethora of different stalls with local crafts and goods available to buy. It had everything, from clothes and shoes to leather goods, sculptures to glassware and even guitars made from tin cans! I spotted a little stall that sold some nice hand-printed canvas bags and decided I would get one as a gift for the girlfriend later.
As a couple of hours had passed it was certainly time for another coffee! I had heard that a shop called ‘Origin’ was the place to go, so I searched Google Maps for it and got some directions. Now, sometimes I get a bit eager to do something and make a mistake. This was one of those occasions! I thought I had arrived at the correct coffee shop (right street, Google Maps seemed to agree with my location), so went inside. It was a really sleek and cool place housing a high-end fashion retailer, a fragrance store selling candles and oils, soaps and moisturisers and most importantly a café with incredible coffee (the first good cup of pour-over I had drank) but I couldn’t spot any ‘Origin’ coffee branding. I thought this was just as a result of it’s minimalist design, and left thoroughly satisfied with my venture. However, not more than one storefront away from where I thought I was, I saw a sign for ‘Origin Coffee’.
“Bugger.”
Not to worry though, I had enjoyed a great coffee and at least I knew where ‘Origin’ was for later! I walked back towards my apartment trying to decide what I would do with the remainder of the afternoon. A few of my friends and colleagues had made suggestions of the must-do things when in and around Cape Town and one of the most popular activities was to walk up Lion’s Head, a peak nestled in between Signal Hill and Table Mountain (so called because when looking at it, it really does look like a lion!).
Armed with a bottle of water, I drove out to the start point for the walk and started to make my way up the path. It was steep and hard going at first, but this was nothing compared with what was to come! The terrain rapidly rose ahead of me, giving way to some incredible views, with the path spiralling up around the ‘head’. Eventually, I arrived at a sign pointing in two directions; ‘easy, recommended route’ and ‘difficult route’. Never to say no to that kind of experience, I went for the more challenging option, and boy am I glad I did! Very quickly the pathway went from being a dusty track to a scramble up boulders and rock faces! The route is fantastically maintained by the Table Mountain National Park staff, with them installing hand holds, chains and even ladders for the more challenging parts. It was tough going, especially with the winds that had closed the cable car, but it was an absolute delight.
When I reached the summit my breath was taken away. The views were utterly incredible, and for some time I just sat and took it all in. I really cannot overstate how jaw-dropping it was. The views were truly panoramic, being able to see the city, down the coastline and Table Mountain was an absolute delight. When I visited New York earlier in the year people recommended that I go up the Rockerfeller Building as the views were as good as from the Empire State Building, but you were able to see the Empire State Building as well. I would certainly liken the views from Lion’s Head in this way, as being able to see Table Mountain in all it’s glory, basked in sunlight was a real treat.
I bumped in to a group of people from a hostel (which turned out to be on the same street as my apartment!) and, the sociable sort that I am, decided to talk to them! They were all lovely with them coming from all sorts of places; a girl from London (who became my summit photographer, as I did for her), another from Melbourne, Australia, and a couple from Switzerland to mention but a few! I descended back down the track with the group, a walk that flew by as I was in animated conversation with the girl from Melbourne for the duration! They were due to be going up to Signal Hill to watch the sunset (as I had a few days prior), a 5 minute drive from where we were. They had intended to get taxis there, but I insisted on driving them up in a shuttle-fashion, something they gratefully accepted. They extended an offer to me to join them for the sunset, but as it was my final evening I wanted to experience the V&A at night so I reluctantly declined their offer.
When I got back to the apartment I quickly changed from shorts to jeans and headed down to the waterfront. I decided to try some of the food from the Food Hall, an expansive building which was home to a myriad of different food vendors. I opted for an asian themed dinner from a few different stalls; a steamed bun, some dim sum, egg fried rice and a rice roll. I sat outside and looked out over the harbour enjoying my dinner, and I was in absolute bliss. After dinner I returned to the mall and the stall from earlier in the day and purchased the gift for my girlfriend and a t-shirt for me before popping for a quick beer whilst watching a guitarist! It was the perfect end to an incredible day.
I returned to the apartment weary and full of food, and slept like a baby. Time for my last day in this wonderful city.
0 notes
Text
Don’t skip Granada just because hippie backpackers told you so
After a hectic week fine-tuning survey tools and meeting with Dr. Ugarte to coordinate recruitment methods, we had every intention of travelling and seeing as much of Nicaragua as possible. For our first weekend trip, we decided to check out the touristy colonial town of Granada.
Bright and early at 6am, we met up with Chris and hopped on a minibus to Managua, then transferred to an interlocal bus to Granada. I fell asleep and almost didn’t get off the bus when we arrived (the driver only gave us 5 seconds). We dropped off our backpacks at the hostel El Momento and started walking around town. Granada, at first sight, was strikingly similar to Leon from its colorful buildings, colonial churches, vibrant parks filled with horse-drawn carriages, street food vendors, to locals and tourists alike.
Our first stop was the Museo de Chocolate across the street. I had envisioned an actual museum teaching the history and production of chocolate, but the place was much more tourist-oriented: a group of loud gringos were shouting in a chocolate cooking class as we rushed into a scent of cocoa and a lavish display of different chocolate bars, oils, drinks, Nicatella, and other products. A man holding a tray of chocolate samples approached us and introduced himself as our guide. I’m not complaining about the free chocolate! He gave us all kinds of dark/milk/nutty chocolates, rums, snacks, and even taught us a ridiculous ritual of screaming “Arriba! Abajo! Al centro! Al dentro! Salud!” before taking a shot.
We stopped for lunch at Garden cafe, a chill spot with hammocks and nice courtyard views. After drinking my passion fruit fresco, I was curious about what a passion fruit actually looked like. The nice waiter brought us one - it was yellow, funny looking, and according to Rebecca the seeds inside tasted like snot. After wandering a bit more, we climbed to the top of the main cathedral of Granada, walked along the lakeside street lined with artesanias, and I picked up 3 mangoes fallen from trees and took them back (they were yummy!). Though some hipsters skip Granada because they think it’s too touristy, it felt surprisingly good to travel in Nicaragua as a pure tourist. We try our best to integrate into the community in Leon, but in Granada, we can wear shorts, speak English, and hide no fear of being seen as foreign.
In the afternoon, our driver Otonio took us to the Masaya market, a huge complex of artisan stands, kids selling hammocks, and women with pottery, woven textiles, and shoes made by their families. It was the heaven of souvenirs for friends and fam back at home. I was so obsessed with all the handmade earrings that I bought 5 pairs for under $10 - made from coconuts, shells, black beans, husks, and my favorite, a colorful clay Guardabarranco, the Nicaraguan national bird.
After spending hours perusing these crafts, we drove up the Masaya volcano at sunset and were fascinated to see a crater with live lava. The fiery red lava bubbled in an abyss deep beneath the mountain, and heavy smoke rose infinitely above the sunset-painted sky. It felt magically powerful. According to Otonio, locals view volcanoes as the gateway to hell, and prisoners in Masaya used to be thrown into the volcano (to my horror, I later learned that this was still done in the 1960s).
Chris and Jill rushed back to watch the NBA finals; the Cavs were leading, and we made a stop at Reilly’s sports bar to watch the game. It was hilarious - they had no guac, a pathetic bloomin’ onion, and sliders that were just quarters of a hamburger. 2 rounds of Tona later, we were tipsy and decided to stay for the Ladies’ Night free rum and coke, then happily walked down the gringo street with outdoor twinkle lights, Mariachi bands, and a vibe that resembled the Champs-Élysées. Somehow the group decided on dinner at Wok n roll, the first and only Asian restaurant I found in Nicaragua. The place was adorable, with an indoor garden and soft music as we ate and chatted about past relationships on the rooftop.
We woke up the next morning to a pouring thunderstorm, which ruined our plans of hiking Mombacho. Taking advantage of a quick break in the rain, we went kayaking in the islets of Lake Nicaragua. The tropical forestation was gorgeous, somewhat misty and mysterious like straight out of an Avatar movie. After 2 hours of kayaking, we found 3 monkeys gracefully milling around a little island, and an aggressive pair got so close to Chris and I that they almost jumped on our kayak. Upon on return, I realized that I had forgotten to put on sunscreen, after Rebecca showed her equally sunburnt lobster legs. Aloe was much needed in the next few days.
We arrived starving at Kathy’s waffle house, a place recommended by the team last year. The others got the pancakes they craved, and I ordered a salad (brave!) with the most fresh veggies and chicken I’ve had in Nica. I figured I could avoid all leafy greens/water/cheese or I can take a risk and say yes. If I haven’t gotten sick after the Eskimo and comedor lettuce then my stomach can probably handle it. Also, I’ve already accepted that I might get some GI illness, so attitude is everything!
We spent the rainy afternoon working out on ancient treadmills at Pure, and whew, after a mini-massage at Mansion Choco, I am a changed woman. I would never consider spending $75 on a massage in US spas, but the $12 experience was literally life-changing. The cool breeze, dim light, smell of essences, and cocoa oil on my back felt amazing, Ana’s hands pushed knots out of my body and made every fiber of my being relax. Rejuvenated, we got a free drink at Hostel Azul and dinner at a comedor called Comida typical, where we shared Indio viejo, a tradition dish with corn stew and tostones.
With a rare clear sky the next morning, Chris slept in while the 3 chicas decided to hike Volcan Mombacho. Man, it was a mental and physical workout. The hike took 2.5 hours, straight up a steep pavement designed for 4 wheel drive. On our way up, we saw a coffee plantation, some howler monkeys, lots of tour buses, but no other hikers. By the time we reached the top, my sweat-covered body had turned cold from the moist clouds that shrouded us. The cloud forest was fascinating, with all the flora, fauna, and rich vegetation. The crater hike gave us an astonishing view of Granada and Laguna de Apoyo, with wild flowers covering the mountain behind us, smells of sulfur in the fumarola vents, and the clouds hovering over the open land and islets.
Our descent was much easier on the heart, harder on the knees, which explained my sore hips and legs the next morning. We were tight on time so we quickly grabbed burritos from Tex Mex, and I cramped myself into the only seat available on the chicken bus: the corner seat next to a 300 pound man who left me no space to squirm. Despite the rain/sweat/sunburn/hunger/soreness, I was counting my blessings and proceeded to munch and nap.
When we got back to Harvest House, the rain grew to a thunderstorm. James checked the empty mouse trap and said that our family of mice was still on the run.
0 notes