Tumgik
#i need to break this shell about putting people user on the post instead of the tags. yea...never gotta but credit is when credit is due
k00kiecrumbler · 1 year
Text
Tumblr media Tumblr media
this ran through my mind and I couldn't let it go
[ I might color it, still debating... ]
21 notes · View notes
da12thkind · 1 year
Text
Tumblr and The Old Internet Re-Awakens, An Opinion Essay
This is going to be a super long post about my thoughts on the current state of the internet, with a chunk of what I'm about to say having been stuff I've already said elsewhere on other sites. To save your dash, I'll be putting a READ MORE break.
The fact that Twitter and Reddit have basically been destroyed by their own hubris is both hilarious and sad. It's funny because "ha ha rich man's hubris" but also sad because this is very emblematic of the current direction many social media companies that have been at the top for too long are going.
Ever since the muskrat purchased Twitter, it was clear from the beginning that something seriously wrong had happened, with worse decisions to follow. Something I hadn't realized was just how extensive the ripple effects of this would be. Reddit is now being destroyed by their leader's desire for more and more money, as if they needed any more.
I've been having this conversation with my friends via Discord and with strangers on the Starmen dot net forums. The writing is on the walls. The internet is moving towards a future that caters to advertisers more than its users. If there's even the slightest hint of getting more money by screwing over users, the higher ups of a given site will be chomping at the bit.
Where does that leave us?
Well, with Reddit and Twitter both now in a state of complete and total self-destruction, albeit rather slowly, we have seen an influx of new and returning users. Fantastic! I love when an old place gets new life breathed into it.
That being said, I don't believe that Tumblr is the bastion of The Old Internet, far from it, and many of you would agree.
Instead, I think that the resurgence in Tumblr's popularity could be just the first step towards the return of The Old Internet. We have the power to go back to the days of making our own websites. Information on web design and web programming are available online for free, in addition to many places offering free hosting services for a basic website or blog that don't need many bells or whistles (just don't go to GoDaddy).
Tumblr, in my opinion, once you know how to use the advanced editing tools, can make for a great "Baby's First Web Blog." There are some users on here that have made GORGEOUS blogs that will absolutely blow you away.
What about peer-to-peer communications?
We've seen that Discord has been another victim to the plague that is internet gentrification. They've removed the discriminators for usernames, had a store put in, and so many other little changes that have consistently annoyed the end users.
That being said... Discord is not going to be falling apart anytime soon. It's still a fantastic way to connect with many people at once and have quick access to all your different communities.
However, you could make the case, and I certainly try to, that internet forums fulfill the same thing. It is true that forums for many topics have drifted into the void of internet history, but is that not simply the nature of the internet? Communities sprout up, thrive, have an internal way, break apart, and start anew. We've seen that with many Discord servers, albeit rather small ones.
I will still hold my ground that forums should be revitalized if we truly want to go back to the days of old.
What does the future hold?
I... don't know. Despite my vast horde of opinions, research, and second-hand accounts of what The Old Internet was like and how The Current Internet is becoming, I cannot say for absolute certainty that we will see a total collapse of these tech empires. At the very least, however, I do believe that they will become hollowed shells of their former selves.
I have yet to talk about YouTube and its history, and, to be quite frank with you all, I simply must avoid that topic for now. All I will say is that I implore my fellow content creators, specifically those that create Video On-Demand content for YouTube and TikTok, to look into creating your own websites to host your content in the event that something happens to these empires, too. If you don't have offline copies of your videos, do so when you can.
That will be it for now. Thank you for reading this essay. I love your faces. Stay safe.
54 notes · View notes
j-reau · 4 years
Text
a hiatus or something
I didn’t want to post this. I told myself to give it until morning and sleep but I’ve been laying here for over an hour and I can’t sleep and I know I’m not going to sleep until I get it out. And I decided I’m not going to do the pretend things don’t bother us mentality that tumblr likes, the don’t show emotions on the dashboard, don’t let people know you’re hurt or angry out of fear it’ll be seen as ~drama or whatever thing stop me from just saying how I feel. Because I feel pretty shitty? I’ve been feeling shitty for a few days now. Maybe more. Last week I told myself that the drama that had randomly cropped up was just too much and I wasn’t going to let tumblr be something that made me cry or panic or kept me up at night over bullshit like arguing with someone over things that happened years ago. So I set my focus on my friends, on my dashboard, on reminding myself why I love RP and why I’ve been in it for this many years, for so long, with all of these people. Those Valentines I posted were part of that project for me. It was a reminder, for myself and my dash about all of the human connection that happens here, all the people we meet, all the little pieces of each other we take on and take with us, all the ships, all the conversations, however brief.  From the people we just see on our dash to the ones we talk to about all our fears and insecurities. And how all of it matters. 
I know how much we all love to say calm down gregg, it’s tumblr RP. I know how we all loathe this hellsite when we’re being our worst. I know how we all talk about how we’re too old for this now or we’re tired. We’re just here to write. I’m just here to write. I love writing. But what brings us all back time and time again, what keeps us here is the fact that it’s not just tumblr RP. It’s a community. Whether you have a real life that keeps you busy or your whole life is here, whether you have plenty of friends offline or all your closes people live on discord, we’re all people. And we all take this with us. We make friendships and we talk to each other. We open ourselves up to the constant trust and fear of interaction, of  plotting, of who is going to reach out or send the meme. We build friendships based on that, we care for each other, we see each other’s bad days on the dash, and great days and inspiration. And it means something. It may just be tumblr RP, but it matters to us. Because of the people here, because we give a fuck about each other. Or at least I’ve always liked to hope we do. I have friends on this website I’ve had for ten years, some just for 3, and others just a few months. It always floors me how we can always come back to it, how we stick with each other or don’t, how we see the good and the bad and the ugly. 
So to get on with it, I wrote those Valentines.  I hit refresh on my blog and put the weird random drama in the past and moved forward. I made this blog for JJ only about 3 months ago. I don’t know how I got 500 followers in that short time but I did. And it’s. been the wildest experience I can possibly explain, having that happen so quickly, finding so many people out in the RPC that I hadn’t before on my other blogs. I felt fucking good. I was excited. Not just to write a character I had wanted to and loved for years but to find so many people who I vibed with. I remember writing a post about a month in and being so fucking ... floored. By how much I loved you all, by how amazing it was to be received like that still, to find people my age and who wrote things I liked and loved their female characters. I fucking love JJ. I LOVE THE SHIT out of my partners on this blog, even the new people I’m still itching to write with. And yet, I did that little refresh, posted my valentines , got ready to go and felt .... sad. 
I tried to explain it. I tried to tell myself it was a bad mood. I hoped maybe it was medication. But I couldn’t shake the weird funk. And everywhere I looked it seemed like things were .... not good. My friends taking breaks, people feeling sad too, relationships splitting, people I liked and respected separating themselves. Tonight, one of my closest friends I’ve made on this blog blocked me. Someone I adored and trusted and absolutely loved to write with. Tumblr says we’re not supposed to care. That we’re supposed to let people draw their lines in the sand and take their leave and maybe we are. Maybe it’s important to let people make their choices. But I also think it’s important as fuck to talk to your friends, to mean what you say when you tell someone they’re important to you. I think it’s important that we remember on the other side of every blog and discord user is a person. Who has bad days and bad feelings and cries and feels insecure and tells themselves it’s just tumblr RP even when they know somehow it feels heavier when it’s bad. This was a friend I had talked to at length about all of those exact things, about how personal the community can feel sometimes, about feeling replaceable or invisible, even for the toughest most confident most take no shit people. I’ve always considered myself a pretty tough, confident, take no shit person. I think anyone who has known me for as many years as I’ve been around has seen that first hand. I don’t like how sad I’ve felt lately. I don’t like the insecurity that’s making me want to know why things feel way or why people vanish without so much as an explanation. I had to block a mutual last week I saw making fun of me on their twitter. A mutual. Someone who chose to follow me and on a public place where my other friends could see it made fun of what I posted. And I just don’t know what we’re doing anymore. It didn’t bother me. I don’t have hurt feelings over it. That’s the kind of stuff I definitely know I’m confident about. But .... it did really fucking floor me. Because here we are, on a sight where users talk about positivity and not sending anon hate, and we can treat each other like that. 
I’ve been sitting up in bed for hours trying to figure out what to say or what to do. That’s what I do I guess. I try to figure out what to do, how we fix it, like somehow there’s some unified we and some responsibility to make things better. A lot of you have only known me for a few months so this probably sounds all kinds of nuts. And you’re probably going JJ you’ve been an emotional mess since the moment we met you. Because I feel like that’s how it’s been for the last few months. But that’s not how it’s always been for me. That’s not who I am. So for now I guess I’m just trying to figure out what I do. Instead of sitting here and spinning and trying to figure out how we as a community fix these gaping holes and the way we talk about each other like we’re disposable and treat each other like names on a list instead of people. 
For now, I think what I do is take a little break. It’s the very thing I don’t want to do. Because it feels like quitting and it feels like being scared away. So I feel the need to promise whoever has read all of this and myself that that’s not what it is. Maybe I’ll be back in two days, maybe two weeks, who knows. But I need a break. From whatever this feeling is that seems to have come over things lately. I’ve loved these few months on this blog so much. And maybe that’s half the problem. Maybe I got spoiled and this is the come down. Maybe I’m just an idiot who thinks what we all want on this website is to find people and love each other and write together. I never knew that me -- the person often accused of being aloof and feelingsless and distant would somehow turn into the emotional bitch on this website but here we are I guess. I just don’t know how to navigate this anymore. I don’t know how to put my heart into relationships and friendships that can just be switched off like we can just stop caring about people. I don’t know how to ignore people who say horrible things and do horrible things to each other just because we don’t want to see it on our dashes. I don't know how to give enough of everything to everyone so that every single one of my mutuals and partners knows they’re valuable to me. I don’t know what I hope to accomplish. I don’t know when I got to be so much of a raw, frayed edge on tumblr dot com but that’s how I feel. And I hope in a few days or sometime soon I’ll have an answer or at least get my hard shell back.
I want to keep writing. I want to keep talking to you guys. I don’t want to lose anyone. I truly mean what I say when I say you’re all important to me. I plan to still be around on discord. I’ll write on discord if anyone wants to keep writing. If we aren’t discord friends yet and you want to be, send a message. I plan to come back. I don’t want to abandon anything. I’m so deeply fucking sorry for this rant, for all the overflow of feelings lately, for anyone that’s had to listen to them, for putting them on your dashes, for fucking all of it. Please be good to each other. Please talk to each other. Please remember that if we’ve crossed paths at any point on this blog, I value you. I value all of your friendships, your writing, your shitposts, your dash commentary, your tiktoks you dump at me on discord. I love you. Every last fucking one of you. 
54 notes · View notes
retphienix · 3 years
Text
youtube
Alright, this is gonna be tough because I desperately want to say so much for the game's sake and my own, but it's just so much.
At least the playthrough as a whole exists to show a lot of those things, and there's no shame in some of the impacts the game had for myself going unsaid :)
LONG POST INCOMING, NO 'READ MORE' BECAUSE IT'S RELEVANT TO THE POST AND NOT AN AFTER-THOUGHT
CLICK 'J' ON YOUR KEYBOARD TO SKIP. (Sorry mobile users)
8:48 - Do you have any idea how good a step forward it felt to smash the repressing bulb?
9:50 - So I'll get ahead of myself because this fight shows a lot of the visuals that play into this: Something being the manifestation of guilt for Mari is so incredibly visualized.
Between the base 'Something' being extremely close to the shadow she cast and including the one visible eye that bore down on Sunny and Basil after the hanging, to the stairs incorporating into the design.
The seaweed and spider are more general anxieties though they do circle back to Mari since she saved Sunny, but those two forms don't feel as directly related as the stairs (heights) and base 'Something' forms and what they represent for his repressed guilt.
Could be wrong ;) Tell me what you saw in the forms of 'Something' if you'd like to expand on them :)
12:39 - Just to prove the point before you get to fully see the truth- Something morphs into the figure of Mari hanging. It doesn't fully demonstrate the "eye" aspect yet, but still I just wanted to say kudos on the way 'Something' is shown visually. Formless for a reason, and that form becomes more defined as you understand what it is, exceptional damn thing.
15:43 - Basil's part in all of this makes me so damn sad. Plenty to say later (obviously), but he harbors so much guilt, wants forgiveness so much, and is so (not shown yet) desperate to believe in Sunny's innocence while knowing but not comprehending the truth. The fact he harbors his own 'Something' due to the guilt of all this is heartbreaking, these kids endured a hell no one should. Losing someone so important to you and harboring the guilt and fault of it when nothing of the sort was intended. A childish fight with raised emotions got out of hand and all this came of it.
Hell.
16:30 - I absolutely adore how the photo album is used for this reveal.
Absolutely incredible execution that's specific to this story and its characters and makes piecing (literally) this together tense and grim.
22:27 - I NEVER SPOKE TO OR INTERACTED WITH THE THING IN THE CENTER OF THIS ROOM AND I'M A NORMAL AMOUNT OF UPSET ABOUT THAT >:( lol
29:41 - Okay.
So this reveal as a whole is so unbelievably well paced and incredibly hard hitting.
All game long there's a weight of having lost Mari. Repeatedly it's told that she killed herself and no one can understand why and everyone (MYSELF THE PLAYER INCLUDED) is looking for meaning in little moments, seeking out hints that maybe she was suffering or depressed or this or that.
And while that has gone on FOR THE ENTIRE GAME there has also been this uneasy weight surrounding Sunny/Omori. Visions of Mari twisted and deformed into phantoms of horror.
For the most part I assumed it was just him coping with having lost his sister and maybe a dialogue on how when she was alive he was in her shadow (in his mind) and now that she's gone he remains there?
That was the best I could figure, more or less. But it continued to seem more and more malicious in design and MUCH more 'heavy' in how it's presented as a shadow behind Omori/Sunny throughout his adventure and life.
The weight and 'overshadowed' looks of the scenes felt more and more foreboding and less like a simpler "I'm living in her shadow" story, but I couldn't figure out what it was.
Then these pictures come out and piece things together.
The final result:
Sunny and Mari fighting. (Context appears to be his growing disdain towards playing. It's stated he loved playing, but it's also shown that he begins to dislike how much Mari is dragged away for classes and the like up to and including playing. So my read was that Sunny was upset that their fleeting time together was dedicated to the recital and broke his violin in an emotional blur and the fight occurred.
Alternatively it was accidentally broken and both of their emotions were running high as it happened)
Mari falling to her death.
Sunny and Basil carrying her upstairs and tending to her.
Sunny breaking down as it sinks in.
The visions having Basil say "It's going to be okay" by the bedside. (I perceive that as a memory of what Basil was saying as he tried to manage his emotions during the event)
Sunny and Basil carrying her back downstairs and to the backyard.
The makeshift noose.
And finally the sight that burned itself into Sunny's eyes of her hanging after it was all said and done.
Just holy shit to it all in how it's revealed and handled.
Stories have twists all the time, and I ain't gonna make some bold claim like "Most unpredictable!" "Best twist!" "What a twist!" or whatever, though that'd be funny.
I just want to say this twist worked BEFORE the reveal as a foreboding sense of unease and curiosity- it lent itself to intentionally vague and easily misconstrued explanations, basically- instead of it outright misleading you beyond the characters that believe the lie repeating the lie, it allowed you to mislead yourself.
It did the twist the right way! And well! YOU trick YOURSELF! The people repeating the lie are being lied to or have motivation to repeat the lie! The GAME isn't lying (as so many twists handle it) the game is giving the world reason to mislead and allowing you to be mislead!
Now am I yelling affirmations for the way things SHOULD ALWAYS BE! YES! BUT THAT'S BECAUSE IT'S NOT AS NORMAL AS IT SHOULD BE! lol
31:40 - All the "You will really miss them"s hurt :(
33:25 - Right out the gate, a spoiler for what isn't here:
I looked up the alternate endings of the neutral route and my heart hurts to know Sunny doesn't stick around and Basil dies :(
34:00 - BASIL BEING OVERWHELMED WITH DENIAL AND GUILT AS HE ATTEMPTS TO MENTALLY PROTECT HIS VIEW OF WHO HIS FRIEND IS BY INVENTING A SECOND PARTY THAT DID THIS IS SO FUCKING REAL AND AMAZINGLY DONE.
And it explains the name behind the 'Something'.
'Something' behind you did it. There's 'Something' behind you, isn't there.
'Something' all around us, that potentially being the truth comin' in.
When 'Something' ruined my photos, Basil repressing protecting Sunny by destroying the proof.
Just expertly done.
'Something' being repression of the memory and impending guilt. Dannnng.
36:26 - It's 24 hours after I beat the game as I type all this so here's a gag.
Here's the part where Basil beats some sense into his friend, because after this Sunny gets knocked out and wakes up 200% improved and ready to save Basil from his own guilt by releasing them both from the secret.
So basically Kel dragged us out of bed, then a couple days later Basil beats us up, and that's how Sunny gets better :^) Game Over.
38:46 - This fight made me feel utterly terrible, a highlight being the energy bar saying "Everything is going to be okay".
or at 40:17 - when Basil pokes out Sunny's eye and the screen does this? That's an underutilized but always awesome visual.
41:12 - I THOUGHT I WAS DEAD AT THIS POINT :)
Because just before entering Basil's home on this night you see his Grandma's ghost here. So seeing Sunny here told me "WELL. YOU FUCKED UP!"
42:25 - Like I said, beat some sense into Sunny.
Here's the mental side of things where Basil's beatin' told Sunny to go remember the good times and confront his inner self and I'm being partially facetious because there's plenty to say about what's coming up.
43:15 - Goosebumps every time due to the sincerity and hope of this.
43:40 - Hug for anyone needing that.
51:11 - I could cry again and I just might before this post is done being put together.
This accident was never meant to be.
55:09 - Timestamp is arbitrary, I won't go over every flashback but I do want to say what a beautiful way to use these photos. To relive the memories? To find the strength to overcome and all that? After all these years of suppressing memories? DANNNG I love this game.
1:04:09 - I stepped in poop.
1:04:15 - Barefooted.
1:04:22 - I embraced my failure.
1:12:00 - The violin.
1:13:00 - "The anxious feeling-" "They believed in you" "No matter what you didn't want to disappoint them" I'm filled with love and gonna cry about it.
1:14:00 - So an important theme in the game, as if it has just one, is Sunny suppressing emotions and demonizing himself.
Obviously the ending shows him breaking free from both but I think it's important as hell to look at how he builds up to being able to.
After all the dark moments show him as a bloodied monster, demonstrate a perceived lack of remorse for what he's done (as in he sees himself so poorly that he says "I must not have felt bad about it, I'm a monster", not that he actually doesn't feel bad about it, that he thinks he shouldn't because he's bad), have him stab dream Basil to protect his repression of the memory, the build up to breaking free from that is him remembering the good in him through the lens of his friends.
Both in the real world and in revisiting the memories within the photos.
He hears about the good in himself that he has pretended isn't there and finds the power to overcome this deadened shell he's made.
He learns how to forgive himself by finally remembering he's worthy of forgiveness and is more than his mistake, that even the person he grievously harmed would want him to forgive himself and would understand the mistake didn't define him.
1:15:15 - Just because you did something bad doesn't make you bad, to put it more eloquently than my rambles. He had to learn that.
1:19:20 - I've done this fight 4 times.
You may be wondering why 4 times, it ain't like I replayed the game a ton or anything.
The short of it is:
1) For the good ending :)
2) To see what happens if you go "up" in the hospital- it's a dead end- I assumed it'd be a bad ending. So I got the good ending again :)
3) For the bad ending.
4) FOR THE GOOD ENDING TO WIPE THE HORRIBLE FEELING IN THE PIT OF MY STOMACH AWAY FROM THE BAD ENDING :)
In doing so I did get one layer deeper on the BG of Omori in the fight, here it is:
Tumblr media
And I learned on the fourth run that the fight is simpler than I gave it credit lol, Cherish refills your juice, so there is no reason to use Encore. You can get to the end (and deeper more easily) by just using the triple attack and Cherish and Calm down when necessary.
1:29:00 - A summary of the fight is that it's extremely impactful emotionally, but very obviously isn't a "Fun fight". It's great mechanically and story wise for what it's trying to do :)
I'll just say it here: I'm surprised there wasn't an end-game "Omori" fight, you know, in dream world? Because combat is SO good in this. I am lead to believe that the Omori route where you never go outside in the real world has more bosses and zones and would fill what I just implied I wanted- but you're also railroaded into the Neutral endings which are both sad :(
And honestly? That makes sense and I applaud the decision :) Embracing the fantasy world for more 'fights' isn't exactly the path to recovery. Also and I know someone will be bothered I say this because *I'm* bothered I'm saying this- it makes sense since a big predecessor did the same thing lol.
Undertale Genocide has new bosses and a harder end game challenge (Sans) while being the worse ending, while the good ending has a flashy and story/emotionally impactful final fight that isn't as challenging because challenge isn't the point of the morals being explored.
I just bring it up because it's interesting, has a parallel, and after fighting Omori 4 times I really REALLY wanted to do an end-game fight in Dream World.
1:30:00 - forgive me as I cry again. goosebumps and more.
OH NO~!
DRAT!
So I use a cheap video editor and I use the free format of it which limits to 720p and I didn't think twice of it.
I recorded at max, but downgraded after editing.
At 720p you can't see the detail that made me break down crying!
At 1:31:55 Sunny's eyes go wider as he sees Mari as they finally get to experience the duet in this dream state (White Egret Orchid, this is real and happening, I'm taking this to my grave :'( ) he sees her smile and that smile made me break down, but in the 720 it's blurry :(
That's on me, I could have posted the scene raw in HQ but I didn't know it'd compress just enough to be invisible :(
still. that duet scene can make me cry on command. just because of that alone, but also the entire thing.
1:33:42 - Sunny breaks from his shell and feels his emotions again.
1:37:07 - I wish every game would end with a mirror to see yourself.
The 'Despite everything, it's still you' vibe just cements all the growth and experiences that have happened as so much more real when that happens. Bonus points because mirrors in Omori are a time bomb where you can be reminded of the guilt following you- and this one is safe. This one is pure and clean. You did it.
1:37:50 - As I said earlier, going up does nothing. Dead end.
1:39:00 - I have to tell you something.
Simple ending. And yet slams me like two trucks. I'm so proud.
1:41:00 - Post credits scene.
This is so heartwarming and their smiles are the purest thing in the entire world.
1:42:50 - BAD ENDING RECORDING.
All I'll say on that is the bad ending made me feel terrible inside. Give up, live in your bubble, and subconsciously end it all so you never have to confront reality again.
My gut felt heavy to be honest.
And the fact that THAT is when Bo En Time is played is INCREDIBLE.
Having the sky shift like that gave goosebumps and cemented my dread.
Just seeing it now has me feeling very poorly.
Okay. Video done.
Now for general thoughts.
First off this White Space cycle has been going on for YEARS with Sunny only getting worse as he suppresses things more and more and the reason he found the strength to overcome is because of his friends and I'm gonna yell about it.
THE REASON SUNNY IS BREAKING FREE CAN BE DIRECTLY POINTED AT KEL THINKING "FUCK IT, I'M ABOUT TO LOSE A FRIEND, AND I DON'T WANT TO"
And I just think that is sweet as hell. The strength was inside himself, but the problem itself caused Sunny to demonize and not trust himself- he needed someone to break him free and help convince him that he's not irredeemable. And boom.
The way this game handles Denial and even gives it physical form with the 'Something's that both Sunny and Basil harbor is just awesome.
I touched on it but combat in Omori is very, very good.
I've said it here and there as I played and I feel like going at length in the finale post is pointless because this isn't a review but to put it concisely.
Types changing mid-combat, the character archetypes being so well defined, the follow up system, combat in Omori is some top notch turn based RPG stuff.
Like up there with the greats, the timeless masterpieces. This is GOOD fighting. So it was surprising the good ending didn't emphasize it- I explained why that makes sense, but even still! It'd probably be lesser for it (as explained previously) but it's interesting they practiced that restraint for the message they wanted to send.
Repeatin' that Mari's smile in the recital made me cry. Burned in my brain.
I'm still surprised I got the post credits scene because I DID water the plants a lot but when the game showed me them all dead I assumed that was the fail condition.
I genuinely do want to try the Omori route some time down the road. I hope I get around to it.
I am slightly dissuaded just because the Omori route only gets the neutral endings which are not Good To Be Blunt :(
But I want to see what dream content there is and I hear there are other bosses!
Other small bits from my notes:
Replacing denial (the black bulb) with hope (the white bulb) was good as heck.
The imagery of the 'Something' is so top notch- using the shadow of her body combined with the piercing gaze of her single eye- MY GOD.
The fragility of life being so present- between memories of near death experiences, to the way in which Mari dies, to the ease at which either Basil or Sunny can end the game. It's tense and heart-wrenching.
The way the 'Something' behind Sunny almost always shadows over him like an ever present weight.
Tearful, hopeful, pure, kids enduring a guilt metric tons heavier than their bodies could ever handle and finally, finally moving beyond it.
I said more in a personal post, and I'll reblog that.
Honestly, just timestamping through the video took it out of me and got the point across.
Omori is a wonderful game.
It's definitely a favorite for me, high up there on my list.
Between the themes, the gameplay, the humor, the ending.
This is a good one.
And now I get to end having experienced all the care and love in this title, that's such a sweet thing.
Now I know this finale post is a mess, illegible even. I have gotten sloppier as I've begun embracing just 'experiencing and rambling' and perhaps my formatting with change yet again until I find something more easily shared.
Despite that. I want to thank any who popped in on this playthrough.
This was a good one, a highlight of the blog for sure- and I'm always happy when I see some people enjoying the absolute mess I toss online when I do one of these :P
So thank you for your time, and thank you to any ridiculous enough to read my nonsense here.
Have a good one :)
And just as expected I feel I've said nothing and barely touched the surface as the post-game-head of mine does a poor job lol. Even still :P
9 notes · View notes
nonopi · 4 years
Text
my robot’s keeper aka a Tidy Fallout: New Vegas AU
for @sidoopa, my Fallout Secret Santa 2020 giftee
my last gift for you! sorry it’s so late. I saw your post about courier Tidy and I had to do something!! I was so inspired!
---
Tidy could hear the insistent beeps of ED-E behind them, the mechanical whir stuttering every so often. 
“Now is not a great time, ED-E. Keep it together.” 
But they knew how prone the little eyebot was to overheating. Especially in a poorly ventilated and dilapidated building like this one. It didn’t matter how good the scavenging was here, what technical goodies could be found amongst the rubble, if ED-E wasn’t going to make it out with them, then it didn’t matter. 
And Tidy was pretty sure they couldn’t carry a completely powered-down eyebot.
ED-E's beeps sounded pitiful, resigned to its fate. Or Tidy was humanizing the robot a bit too much. Really, anything was possible at this point.
There was a loud clash of something large and metallic hitting the tiled floor up ahead. Fear froze Tidy in their tracks, their ears straining to pick up more sounds and the direction they were coming from. It didn't take long to be rewarded with the thud of footsteps and coarse laughter rolling down the hall, crashing against their body like violent waves on a still beach. Fiends.
ED-E emitted a low, quiet beep as if to spur the courier into action. And the little robot was right, it was move now or move never again. Tidy backed up slowly, corralling ED-E towards the utility closet they passed a few moments before. If they could just hide in there until the Fiends lost interest or moved deeper into the building, they could make a break for it. 
The closet wasn't very large, just enough room for a courier and their robot. But that spelled disaster for ED-E whose cooling fans immediately went into overdrive, rivaling the whoosh of the eyebot flotation devices. The heat generated from ED-E only worsened the situation, even causing Tidy to shed their duster. 
It was clear this was not going to work. They were too noisy for the tiny room right off the main hallway. Tidy didn't even want to think what would happen if the Fiends found them. They definitely weren't the Legion, but Tidy knew trouble when they saw it. It only took a month out of the NCR territory to learn that.
So there was only one thing to do. 
"ED-E, you need to power down."
ED-E beeped back, brushing it off as a joke. The robot knew as much as they did that powering off and then powering on again was never that simple. ED-E might never turn back on. And then where would they be?
"If you overheat, you'll be gone for good. Power down," Tidy paused for emphasis, wondering when exactly ED-E became more of a someone instead of a something. "I promise, I'll bring you back, ED-E."
Tidy waited for what felt like eons, straining to hear the Fiends roaming the building beyond the ambient noises of an eyebot trying to keep itself afloat. Finally, ED-E played its power down tune and slowly lowered to the floor beside the courier, its lights blinking out one by one.
Relief washed over Tidy, but it couldn't replace the fear at being discovered. So they put a protective hand on ED-E's chassis and waited, breath erratic and jaw clenched.
---
The Fiends had gotten bored and left hours ago, leaving Tidy and ED-E's powerless body alone inside the building. But they still hadn't moved from the utility closet, not because the accommodations were stellar or they were enjoying the peace and quiet, but because Tidy's fears were realized.
ED-E was not powering back on and they were too weak to carry ED-E to safety.
Tidy had often thought about upgrading ED-E. They had planned to slowly learn each module and component that made the robot tick and make improvements as they went along, hardware, firmware, and software. But now it had to be different. Tidy needed to identify the problems, troubleshoot them, and then fix them with what was available nearby. No luxurious workbench or items that could be sourced over time. It had to be here and now.
Tidy sighed knowing that they had a long road ahead of them, but it was worth it for ED-E. 
Besides, they had done it once before in Primm and whatever Tidy knew then as a younger, more inexperienced version of themself couldn’t hold a candle to what they knew and were today.
---
The passage of time flows differently when troubleshooting. It was too easy to get lost in identifying the problem and finding the correct solution, not because it was fun to “win” and reap the rewards of hours of work, but because no one could anticipate the journey between problem and solution. It was exploration within a set of confines, learning just as much about yourself as you would about the environment and the systems that dwell within. Addicting, but safe. Nothing like exploring the wasteland. 
But this situation was on the other side of the bottle cap. Tidy was working against time. Tidy was working against the notion that the Fiends would come back. Or something worse. But mostly Tidy was working against the feeling that they would have to choose when to abandon ED-E to take care of themself. 
They were on their last bottle of clean water. Only trail mix that was heavy on the pinyon nuts had sustained them. Their eyes felt dry and heavy at the same time. The situation wasn’t looking great.
But they were so close to figuring it out.
A Programmer’s Digest lay open but discarded on Tidy’s lap in favor of their PipBoy. They had successfully downloaded ED-E’s boot logs and while it was not favorable to stare at text on the tiny PipBoy screen, the logs were infinitely more telling than any article or how-to column that any magazine or book could provide. Maybe with the exception of the Eyebot Duraframe users manual, if that even existed.
After multiple attempts at rebooting ED-E, Tidy noticed that it seemed as though ED-E was beginning to power up. Lights flickered, the hard drive and processor both came to life, it even sounded as if it was routing power to its plasma thrusters. But as quickly as the spark had come, it left. And the logs reinforced this theory. Something was preventing ED-E from completely booting up. Was there not enough power? Was it stuck in some recursive algorithm? A boot loop? Or maybe one of the system checks failed?
As Tidy scrolled through log lines, cryptic wording prevented them from understanding everything that occurred. Weird RobCo jargon. Or weird jargon from people who lived 200 years ago. It was anyone’s guess. But it was enough to see the timestamps and to see the designation of each log line - INFO, WARNING, ERROR, FATAL. Like a weird dance, Tidy followed their perceived steps of how each log line designated ERROR or even WARNING came to be. 
29-04-2282_22:05:55 - ERROR - Unexpected system state. In state CalibrationEnd but tesla cannon 423334 has not been calibrated.
29-04-2282_22:06:02 - ERROR - Position cannot be triangulated. Dumping data to log file: ./logs/duraframe_position/position.log
29-04-2282_22:06:48 - WARNING - Cannot establish outbound connection to RobCo auto-update servers. Please update this unit manually.
29-04-2282_22:06:49 - ERROR - Tesla Cannon custom configuration file is corrupted. Reverting to default configuration.
All of these messages seemed concerning, but not something that ED-E’s software couldn’t recover from. The log file continued, like the software was just moving on, content to resume its boot sequence. Tidy blinked away tiredness and the strain from staring at the screen for far too long. It would be easy to admit defeat here, rest their eyes, rest their mind. But they knew sleep would not come when the mind could still be occupied with possible solutions, so they pushed on.
It was one word they missed on their initial perusal of the log files. FATAL. It would’ve been so easy to find on a terminal, with a keyboard and mouse. But here in the wasteland, in the hollow shell of an old world, Tidy felt lucky for even seeing it at all.
29-04-2282_22:07:33 - FATAL - Plasma thruster position 1 misaligned. Damage to the hull imminent. Powering down. Please contact your local RobCo personnel if this problem persists.
This was the most concrete lead Tidy had seen so far, though the other issues would probably have to be addressed at some point down the road. But they could think about that after realigning ED-E’s plasma thruster. Which was something they had never done before, but could it be harder than plasma weapon maintenance? They were going to find out.
Tidy set to work rummaging around the room to find tools to open ED-E’s chassis. It was apparent that the utility closet they were in was not one for dismantling and repairing delicate machinery. All the screwdrivers that remained were too large for the job, so Tidy settled on trimming down one of their spare bottlecaps using a pair of tin snips they had found in a toolbox. 
It was a delicate process, one that Tidy’s hands were much too shaky for. They could only brace their arm on their bent leg and keep trying because this might be it. Just remove the lower chassis and figure out what a misaligned plasma thruster looks like then figure out how to fix it. That’s all. And don’t lose any screws. Physically or mentally.
One by one, the screws piled up neatly on Tidy’s duster until they were able to shift the rounded metal plate out of its place to reveal ED-E’s innards. They immediately felt elated by the small victory but also disgusted at what they saw. A mess of everything. Tidy was no stranger to seeing the insides of terminals or taking apart their weapons or using the insides of one thing to fix another. But this was something else, clearly designed around things they didn’t understand and maybe the engineers didn’t really understand either. 
But at least the plasma thrusters were clearly labelled 1 and 2. 
They kind of looked like toasters without the chassis flush with their vents. Toasters were familiar. Now it was just a matter of deciding what features number 2 had that number 1 did not. On the outside they looked the same. So that was good, Tidy reasoned. With a few more screws removed, the plasma thruster housings were off and a bunch of warning stickers sat in their place, faded with time but still clearly visible. As if the existence of plasma wasn’t enough of a warning on its own. 
But looking beyond the pale yellow warning signs, it was clearly evident what the problem was. Plasma thruster position 2’s exhaust columns were as straight as ever, a pinnacle of metalwork. Plasma thruster position 1’s exhaust columns were askew, to say the least. No wonder ED-E was prone to overheating. How long had the little eyebot been living this way? 
Tidy grabbed a set of pliers and tried to bend the metal back to its original position. Not as flimsy as they looked apparently. And getting any more forceful might result in broken exhaust columns, a situation Tidy didn’t even want to think about since the end was in sight. Defeat at their own hand was not an option.
But maybe less screws was an option? Removing some screws along the base could allow them to pivot the exhaust columns enough to realign them with the housing. And a well-placed piece of steel wedged between the alignment brackets could secure the new configuration in place, at least temporarily until they could get back to a workbench and Raul’s guidance.
With a rush of adrenaline, Tidy’s hands worked just as fast as their mind to put their plan into place and reset the housing and chassis. They hoped this worked. They didn’t have anything left to give after this. 
After everything was back where it belonged and three extra screws weighed heavily in Tidy’s pocket, they rolled ED-E carefully out into the quiet hallway. They paused to listen again for any signs of life beyond the scuttle of rodents and roaches. Nothing. With a final deep breath, Tidy pressed ED-E’s power cycle button. “This better work.”
Slowly and surely just as it had all the times before, the eyebot began its initialization process. Lights flickered, the processor and hard drive whirred to life, and the plasma thrusters began to calibrate. Tidy held their breath, afraid the outcome of this startup would be like all the other ones. But the plasma thrusters never powered down and neither did the rest of ED-E. After what felt like hours, ED-E played its startup tune. 
Success. 
“ED-E?” 
The eyebot beeped back happily, as if it had just awoken from a nice nap.
17 notes · View notes
Text
Lecture 6
I just remembered that professionalism was part of the portfolio marking criteria so I’ll try to keep it PG in these posts. Meaning that I’m allowed to drop one and only one F-bomb somewhere. 
Avalanching
Recall that the Merkle-Damgard hash construction looked like this: 
Tumblr media
The reason the hash function is segmented into the various f’s you see above, is to allow avalanching to occur; the property that causes good cryptographic hashes to be drastically different from one another, even if the edit distance of the inputs if minimal. This allows for the semantic meaning of relatively similar inputs to be obfuscated, as one would otherwise be able to perhaps glean information pertaining to the information that had been hashed, through observation of the structure of the hash string and comparison with other similar hashes e.g. if hashing 12345 and 12346 produced hashes of 0xaa0geb212r3r3142q and 0xaa0geb212r3r3131w, then an attacker could probably guess the structure of the input at the very least and perhaps interpolate the inputs by generating other hashes. 
Passwords Part II 
From the exam, we might have found that the # of bits of security that we get from a random password using the Elephant Apple Golfing principle (or some shit I don’t remember the stupid name) isn’t as many as we would like. It’s naive to say that a password has as many bits as it is long, unless those bits are truly random and the full complement of ASCII characters are actually utilised, such as \0. Indeed most passwords aren’t that many bits, given that they’re based largely on quotes, names, birthdays etc. etc. and it’s only a matter of time before increases in computing power renders them obsolete.  
So yeah, the answer to that question pertaining to the Homophobic Dog Shagger principle is 40-49 bits i.e. the smallest choice. Congratulations if you got it right. 
This kind of segues into why WEP keys are terrible: 
They’re consisted of a shared 40 bit key, that everyone connected to a network knows, and a 24 bit initialisation vector that was randomly generated locally by the receiver that were combined to form a ‘64′ bit key and this key was used to encrypt every frame.  The obvious issue with this is that it’s trivial to brute force 24 bits, and it’s probably trivial to brute force 40 bits, and it wasn’t too difficult combining all the brute forced combinations to obtain the purported 64 bit key. 
Mixing Control and Data - Smashing the Stack for Fun and Profit 
http://phrack.org/issues/49/14.html
Mixing control and data is bad, don’t do it.  C lets us do it and although most modern compilers such as gcc and clang have several countermeasures for stack smashing, it remains a useful case study and a common issue in modern software. 
Buffer overflows can occur when someone writes shit code and rather than fixing declaring a fixed array size in their loop iteration, they end the array loop once the program hits NULL, allowing a third-party to use a function such as strcpy() - that doesn’t check buffer size - to stuff more in the buffer than has been allocated to memory. There are other methods too but this is the most intuitive to understand. 
The Stack and Return Addresses: 
Computers switch context lots of times a second to allow them to deal with interrupts from a multitude of sources. When something interrupts them, such as a keyboard entry perhaps, the computer will execute the interrupt and then return to whatever task it was completing before. How it knows where to return in the code, is by adding the address of that particular point where it stopped - the return address - as well as the miscellaneous parameters that the code needed to execute, onto a LIFO structure known as the stack. These miscellaneous parameters, such as our array, are stored before the pointer and as such, by overflowing the array, we are able to overwrite whatever return address was in stored at the pointer(’s address) which paves the way for all sorts of shenanigans.
Most common of these shenanigans: - Actually writing code into an overflowed buffer and addressing the pointer to the location of this code - Getting a shell open 
Overflowing the array is most commonly done with a NOP Sled, which is simply consisted of a bunch of NOPs (no operation commands) that serve to pad the buffer up to the memory/stack address containing the return address and your payload which can be either a memory address pointing to your code or pointing to whatever would open up a shell.  This requires us to know the # of NOPs to place into our sled, which can be done in a variety of methods that the course doesn’t require us to know.
*will add more to this section as I read more on it* 
NIST and the History of Ciphers
Even after WWII, ciphers were not particularly powerful and for a while there was a ‘crypto black hole’ where no new cryptographic methods were being devised and nobody was aware of any principles one should follow. This changed with the advent of computers and eventually, groups concerned about security put out a standard known as NIST. Except noone knew what to put into the standard and so a competition was held which noone except IBM entered into and they won by default. And so IBM’s DES was adopted and had at the time, only 56 bits.  Then the NSA comes along, looks at DES, breaks it in two seconds using their differential cryptographic methods and says ‘yeah it’s okay keep using it XD’. 
Except everyone was like HANG ON, and eventually a successor AES was built. AES was predicated, much like DES, on performing many permutations, transposing and other obfuscating measures, which created an encryption method that was difficult to break feasibly, but had significantly more bits than AES.  XSS (Cross Site Scripting) or why Javascript is awful Cross Site Scripting 
Involved placing Javascript on a webpage, for example in a poorly secured forum, where you know unassuming people would visit. The Javascript will execute upon that page opening and whatever was in the JS will proceed to wreak havoc.  Common attacks include stealing your cookies to impersonate you.
SQL & Command Injections 
Webpages that require you to enter your username and password into fields will typically take the characters you entered as your username and password, stick them in an SQL query and execute said query to check your username and password against a preexisting username and password database. 
Instead of entering our usernames and passwords, we can enter actual SQL code which will actually execute, due to the nature of PHP converting your input into code. This wouldn’t work in any other language. For example:
Here’s an example query taken off https://www.acunetix.com/websitesecurity/sql-injection/
# Define POST variables uname = request.POST['username'] passwd = request.POST['password'] # SQL query vulnerable to SQLi sql = “SELECT id FROM users WHERE username=’” + uname + “’ AND password=’” + passwd + “’” # Execute the SQL statement database.execute(sql)
Now, we could easily input as the password:
password' OR 1=1
which would cause:
SELECT id FROM users WHERE username='username' AND password='password' OR 1=1'
SELECT id FROM users WHERE username=‘username’ AND password=‘password OR 1=1′
to execute, which would return the first ID of the first user in the database table due to that 1=1 is always true and the query is made complete by the ‘ appended to the word password. 
We could easily modify this query to print out the entire table if we wanted to write more code. 
Command injections rely on the same concept of writing code into input boxes, but instead we write shell code and grep our way to sensitive data. 
Cryptocurrency
Wasn’t really paying attention to this part, I’ll fill it in later
Block Modes 
How we combine individually ciphered blocks of a ciphertext, like we did in the Merkle-Damgard hash (recall that the input was split into blocks), to get a whole ciphertext:
- Can concatenate them like in WEP - Or more commonly, we can use CBC which is really convoluted: here’s some reading if you’re interested, but basically each unciphered block is XOR’d with the previous block. 
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_(CBC)
Authentication - WIP 
How? What decisions?
Humans are bad at looking at      faces
No point in confidentiality, if there is no authentication
Defence in depth 
Something you know
Have: let's send someone an SMS when they type their PW WOW.
2FA worked well initially, however, SMS is easy to intercept.
Have single point of weakness, in your phone
Are:
Requires secrets to be     confidential, keyloggers, shoulder surfing etc.
Naïve but easy to implement
1 note · View note
risprinabeachw-blog · 5 years
Text
Things to ask when you first start dating
160 First Date Questions If aliens came to Earth, would you be scared of them or would you welcome them? Okay…so how many dates have you been on before this? Issabell Ryder, He needs a little help if he likes you.  Do you feel included and respected when thrown into the group as the new person? How does your date make decisions regarding big-ticket items? Yes it makes sence and thanx for helping! Are you headed in the same general direction in life? And once you know how to create long conversations using those tips on what to talk about on a date, use these 40 first date questions to create new conversation ideas.  What skill or talent do you wish you had or were better at? Sharing dreams and goals can better help you assess if you can partner with each other in a way that enables you both to thrive.  He needs to man up just like every other guy.  He tOok me to prom and we had a great time but now when we hang out it seems like there could be more to it! What wrong assumptions do people make about you? What do you do differently than most people? If you cannot afford the expensive outings, find cheaper ones that will enable you to have a good time too.  Relax and keep the conversation going with these great questions.
35 Things To Ask On A First Date Instead Of Staring At Your Phone Discuss faith systems, both those from childhood and any current beliefs.  What cartoon character do you most identify with? Does he only do kind things to get something in return? Hey Datingadvicefromagirl, In addition to your post I was wondering, Many people have questions related to their love life.  What is your most bizarre talent? What do you hate the most about modern dating? How many hearts did you break in the past? In one sentence what is your biggest concern right now?.  How much social interaction is too much? If you and your significant other are not spending every night together, how do you each spend those nights apart? Where is your favorite place to go on a weekday afternoon when you have no plans or obligations? Here are a few questions that you can ask only if your date warms up to you and is interested in making conversations with you. But good relationships seek to put God first.  To love someone who they really are is a daily choice.  Is there anyone in this world that you genuinly hate? Esplora board for marriage dating the county areas of spammy.
35 Things To Ask On A First Date Instead Of Staring At Your Phone What is one piece advice you would give to someone? Would you rather have an incredibly fast car or incredibly fast internet speed? These are all questions to help you find your answer.  What is one day you would love to relive? Money and sex are two driving forces behind divorce.  How did you come to love your one of your favorite musicians? Avoid questions that could sound intimidating or embarrassing.  Keep these 3 pointers in mind or you may end up alone on your date.  What do you like about me so far? The relationship is new and these can turn someone off really quick.  If the conversations just start to feel like a series of questions to your date, they may look forward to ending the date instead of meeting you for the next date.  Immediately the thoughts turn into actions, things could go horribly wrong.
10 Most Important Relationship Questions to Ask a Guy Gunblast walther ppk emergency protection, batata koi na si max dating sex.  Do they treat others with respect? Which has a higher spot in your priority — relationship or career? Who is the kindest person you know? If you could send one letter to yourself in the past without the goal of making yourself rich no lotto numbers, stock picks, etc.  He is sorta breaking out of his shell a little now, but even his mom told me he is more himself with me than with most people.  But I am a fan of sending the unsolicited picture — and so are men.  What celebrity do you think deserves more attention? If you had to name one thing that really makes your day, what would it be? Try these starters if you are nervous or are unsure what to say.
75 Creative First Date Questions to Ask Anyone If I were to ask your friends about you what would they say? If you have a problem about something, talk about it with your partner without causing too much drama especially in public.  If you had one hour left to live what would you do? Does he aspire to living well below his means, giving most of his income away to charity? What do you like the most about insert city of residence? What would you say is your most redeeming quality? However, the goal is to keep any of these thoughts from coming out.  Clark's story of tauranga, throw their user reviews, das leben, condos located in 1951 to help.  Before you make a call, do you rehearse what you are going to say? Eat whatever they want and never gain any weight, ever? Once one person notices that they tend to spend more money on you, it could raise a problem.  Break the ice on your first date and you will both feel more comfortable.  How would your best friends describe you? Are you a morning or night person? When you lie, then you have to keep remembering the lie every time you meet your significant other.  Then try to guess which one is a lie.
5 Questions to Ask Before You Date Rush Things One of the easiest ways to have a meaningful relationship is to let it grow gradually.  Durty nelly's - join the leiden getting quicker than updating catalogs and monetize your go-to filipino.  Ever spent time with a guy who likes to brag about how far he got on his last date? Then ask what made them do it 89.  Can we try not to touch our phones for half an hour? Dates can be either the most exciting or the most stomach-churning experience a person can have while trying to get to know someone.  They build up instead of tear down.
45 Articles on Questions to Ask Before the First Date Those are a few questions you can ask yourself.  Also, broken hearts never completely heal.  How often do you see your ex-wife and children? First impressions are very important.  For what in your life do you feel most grateful? Essential Get-To-Know You Questions You Can Rely On For Every First Date First dates are nerve-wrecking.  How do you know if you like him more than just a friend? Dating advice will make you wonder whether or not he'll pick up the bill, open your door, take interest in your life, and so on.
Things To Avoid When You Start Dating A Guy If you could change one thing about the world what would it be? What fact about you surprises people the most? When you first start dating someone, you want his or her undivided attention.  What was the first thing you masturbated to? What do you like but are kind of embarrassed to admit? Do you consider yourself a morning person or a night owl? Be too intimate Do not overstep the boundaries.  There are a few questions you may want to ask before taking that first step.  Associazione degli industriali e il 2 update things to ask a guy when you first start dating more free single women in hong kong's official government 'cover-up'.  Ever wish you could predict ahead of time whether or not a dating relationship will work out? Ohmojo here, whatsapp messenger to a 29-year-old kim dating.
1 note · View note
markipwiwer · 6 years
Note
Request if you still take them: maybe anti getting too much electrical energy or glitchy energy and he goes in some sort of tunnel vision state, and it takes both wilford and dark to calm him down and tend to his wounds p.s I love reading your work some times it's the highlight of my day
So this ended up being a spiritual successor of another request and I’d link it but I’m on mobile (as always). It’s called “Backed Up” on AO3 though. I really did want to do something with this again so thank you for requesting it. And you have no idea what that means to me, there are writers that I am constantly looking up to, getting excited every time they post something new. So the idea that I could be that for someone is just…… whoa man
-
It had been a week since Anti had fully been restored again, with the disgruntled help of Google Red. And he’d been ‘hanging out’ a lot more with Bing. That was, there was a lot of silent sitting, holding hands, transferring of information.
It was through Oliver, Yellow, the softest of the IRL units, with which Anti had been able to find exactly which hospital that bastard was in. The stupid hacker guy that had torn Anti to literal pieces. And Oliver did have other decent information. But as Anti quickly discovered, the entire hospitals network was super outdated and wasn’t compatible with the sleek, modern IRL units.
And Bing was pretty cool to hang out with anyway.
Anti could have, if he wanted to, gotten the information he needed to go and haunt the shit out of that guy and be out in a flash again.
But there was something… hypnotising about knowing the schedules of hundreds of people. Knowing who lives and who dies according to the system. Knowing everything down to peoples eating habits in the cafeteria, or the little corners of the grounds staff go for cigarette breaks. It was empowering.
So Anti spent days on it, slowly ruminating, building a plan, down to the predictable minute.
Dark and Wilford had never seen him this hyperfocused on something before. And it was a little unnerving. On one hand, Dark was glad that Anti was slowing down a little, formulating things instead of being impulsive and erratic. On the other hand, Wilford noticed he was considerably more distant and quiet and… not that Wilford was usually the jealous type, all things considered, but he was spending an awful lot of time holding hands with Bing. Wilford wanted to hold Antis hand more often.
He was also… buzzing a lot more.Usually, Antis touch was a light tingle at best. But he’d given Wilford several electric shocks without meaning to in the past few days and Darks hairs stood on end from the static when they merely got close, let alone held each other or kissed.
It was like Anti was accumulating power. Not that Dark had any particular problem with that, it would make him more useful on missions and hunts. But if he and Wilford knew Anti at all, they knew that kind of thing could get to his head pretty easily.
One day, Anti looked… almost dressed up. As dressed up as Anti got. Clean skinny jeans, for once, despite them still being ripped, a black tshirt with the sleeves merely rolled up instead of being cut off, a clean bandage around his neck and a worn leather jacket to top it all off.
Wilford wolf whistled in his direction in the kitchen. Anti didn’t react. Wilford tried a slightly stronger approach.
“Got a fancy date, darling?”
Anti shrugged, seeming to be reflecting and concentrating on something Wilford couldn’t see.
“Somethin’ like that.”
“Is it with Bing?”
Wilfords question was simple, but it took Anti by surprise enough that he stopped looking into the distance - or right in front of him, Wilford couldn’t tell - and actually looked at the pink idiot.
“What? No. Why would… no, I’m working on somethin’.”
Wilford scooted closer, raising his eyebrows. This was allowed in their relationship, it was fine, but Wilford being himself, loved all the juicy details.
“Working your way into his robotic heart, it seems like.”
Anti rolled his eyes and focused back on… whatever he was focused on. He pulled out his phone, checking the time, before putting it back in his leather jacket.
“No. Bings been helping me with the hospitals network.”
Wilfords eyebrows furrowed.
“…Hospital? The one where -“
“Don’t even say his name. He’ll be either a shell of a man or dead soon, and no one will remember him.”
In that moment, Anti sounded an awful lot like Dark. It was disconcerting how driven he was about this one guy. Granted, this one guy took a limb and a chunk of his stomach but still. Anti promised he’d go easy. This just sounded more hardcore, maybe without the same manic tendencies that Anti usually put into things.
“…alright. Well then, have fun, cutie code, and don’t overexert yourself. We want you back home in one piece this time.”
Wilford tried to add a jovial tone but it fell on deaf ears and Anti bit back.
“Thanks.”
He didn’t like feeling weak.Anti checked his phone once more before disappearing in a chaotic mess of frayed programming.
-
“Bing, I need to know what Anti has planned. He was really… I just need to know, okay?” Wilford tried to reason with the Android, with limited success. Luckily, Dark happened to wander in while Bing was trying to explain how it wasn’t super easy to just give Wilford the plans since they were encrypted.
“Bing, you will explain to me what Anti has planned for his course of revenge. In a way that we can understand.”
Bing clenched up for a moment, before a light shone past his eyes.
“… Admin user detected. Dude, he’s gonna kill me for this…”
“And we can put you back together. Now explain, that’s an order.”
Bing huffed, but obeyed. He rattled off Antis plans about the hackers doctors schedules, security schedules, when things were most vulnerable, what was and wasn’t controlled by machine. Anti was going to take away his pain medication first, and instead pump him full of psychosis-inducing drugs. He’d be sent to the psych ward, they’d have a bed available later on in the day. Until then, the guy would stay tied down, hallucinating and in pain.
His restlessness would get him sent to the acute ward, where security was pretty tight. But several guards went out for cigarette breaks at the same time. Just before evening medication time, power would go out in the facility. For some there, not having medication for one day wasn’t a big deal. For others, it was a huge deal. So the guy would be hallucinating, in pain, with a bunch of undermedicated, unstable people and not enough staff to deal with so much happening at once.
Then he’d haunt. He’d access screens, monitors, emergency broadcast systems specific to the hospital and read out the guys extensive medical and criminal history. He’d flicker lights, lock doors, the whole shebang.
For most of it, he didn’t need to even be in the building.A few checks on schedules and routes, that’d be it.
Dinner would come past, and later that night, Anti would finally, FINALLY, stab the hacker with a simple butter knife.
No one would actually know how the hacker snuck the knife away, or how he managed to basically impale himself, but Anti didn’t leave fingerprints by nature. It’d be an assumed suicide.
There were some extra bits and pieces but Dark had heard more than enough. Although part of him had to be impressed, this was a very strange length for Anti to go to for one person. It wasn’t really Anti. Having that kind of knowledge, that kind of control, it was already getting to Anti. Dark knew all of the warning signs.
“Where would Anti be in his plan right now?”
Bing paused, glancing at Wilford standing behind Dark. Wilford looked… sad, in some way, though Bing didn’t understand Wilford quite enough to place the emotion exactly.
“He’d be close to cutting the power by now. The other stuff was done pretty easily outside the facility, but he wanted to… see.”
Dark turned to Wilford.
“He has a lot of power right now that he’s not fully in control of. It’s going to be an effort to bring him home safely.”
Wilford looked guilty. That was it. He had been the one to let this guy live in the first place, not wanting Anti to miss out on revenge. But this was a lot more than just seeing blood spill.
The guy had made Anti feel weak. And so he needed to see how strong Anti really was.
Wilford took Darks hand.
“Let’s bring out pet home.”
Bing hesitated before they made to move.
“W-wait! Did I.. did I do anything wrong?”
“No, Bing. You followed orders.”Dark left the reply at that before transporting with Wilford to the facility.
-
They returned a half an hour later, black and pink fog mixing, clashing with pixels and static and screaming. So much screaming. The guy was dead, there was no way he would have survived that pulse.
The thing about Anti was he ate up mistakes. Mistakes in programming and code, all the way up to tiny surface level mistakes of information just being put in the wrong place.
Anti had caused trouble, yeah, but he also completely freed the hospitals network of bugs. Trade that for the life of a guy that no one would mess and was dead according to the system anyway? Sure.
But Anti was surging - that was the best way to describe it - and it took both Dark and Wilford to transport him back, forcing him backwards.
Anti thrashed and clawed back, his eyes animalistic and raw and too full. Black. Just black, the way they got when he was trying to be scary, except it usually wasn’t this constant.
His form was unstable and terrifying to anyone else but Dark just held him down, kept Antis arms behind his back because he knew what this kind of power could do.
Anti would spiral like this forever if he was left unchallenged.
Wicked sat in front of the raging form, on his knees, and held Antis face in his hand. Anti was covered in blood and Wilford hadn’t even realised.
There had been more than one death. The hospital just hadn’t figured it out yet.
“Hey… you need to settle petal, alright? You’re with us now, your home…” Wilford put a hand to Antis cheek, which honestly hurt at this point, it buzzed hard on Wilfords fingertips and not in a good way, not even in a sexy way. It just hurt.
Anti screamed something that neither of them understood, too much static, but it sounded work down. He screamed again and this time it cracked.
Darks loosened his grip on Antis arms specifically and instead brought his arms around to Antis front, hugging him from behind but still keeping him firmly in place. His aura rubbed soothing circles into the glitches back.
His voice echoed, and it was something close to soothing.
“It’s alright, love. We’ve got you now. You need to let this extra energy go.”
Dark and Wilford shared a look that this wasn’t exactly the kind of thing they could wear Anti down from just by fucking him.
Antis buzzing didn’t hurt Dark nearly as much as it hurt Wilford, so he used the opportunity to wrap himself around Anti, lovingly, in a way that he wouldn’t usually. Wilford continued whispering into Antis ears, about how it was okay and how much they loved him and how he did a good job today but hat it was time to let it go.
Antis form, which had been throbbing with power and making the two stand on edge, eventually, slowly, went limp. It wasn’t a quick thing, it was gradual, and every now and then, he’d get some sort of a flash in his eyes and it was like he was inspired in the worst way again. And he’d struggle. But each time, the struggle got a little easier to contain. A little weaker. Of course, they would never tell Anti he was weak. If he thought about it too much, he might come to the conclusion that he was still weaker than the both of them at full force. That wasn’t entirely true. He just loved them and listened to them. But only them.
He’d exhausted himself in the fight, in trying to bat away their care and affection. Anti whimpered and sighed in Darks arms and Wilford stroked the side of his cheek while they transported him with a lot more ease this time around. There was a small, static-y sob that escaped his lips when Wilford shifted to hug Anti, gently, from behind, and Dark took his hands. Dark kissed as his forehead, and let his own ringing take over as the prominent sound while Wilford spoke calmly still.
39 notes · View notes
thecoroutfitters · 7 years
Link
Written by Guest Contributor on The Prepper Journal.
Editors Note: Another guest contribution from Derek to The Prepper Journal. As you know I am a BIG fan of kayaks.  As always, if you have information for Preppers that you would like to share and possibly receive a $25 cash award as well as be entered into the Prepper Writing Contest with a chance to win one of three Amazon Gift Cards  with the top prize being a $300 card to purchase your own prepping supplies, enter today.
Floods can be one of the most devastating things to happen to homeowners. It happens far too often and can lead you and your family to being exposed if you are not prepared. One of the most important items you can have in these types of scenarios (besides the obvious food, water, first aid) is an inflatable kayak. Now before your mind wanders to the picture of a cheap kids dingy, or a blow-up alligator, you should know some things.
Why Inflatable Kayaks?
Inflatable kayaks have taken leaps and bounds over the years and are starting to outperform the ever traditional hard shell kayaks in sales. This is because…
-Inflatable Kayaks Are Made to Be More Durable
-They take up far less room as many of them fold to be the size of a hockey bag
-These kayaks are far easier to transport
-Inflatable kayaks average cost is less
-They can usually be set up within ten minutes
-Inflatable kayaks are lighter
More and more people are getting into these kayaks because they don’t take up nine feet, they are made from strong materials such as PVC and are easier to transport over land. You can get a very solid quality inflatable kayak for about $300. This is not just an investment for preventative measures, it can also be used for recreational purposes. After all there are a ton of physical and mental benefits from kayaking. (https://floatingauthority.com/20-health-benefits-kayak-exercise/)
So what does this mean in terms of emergencies?
Inflatable Kayaks in Emergency Situations
Inflatable kayaks open up many possibilities not the least of which is YOU can be a life saver (literally). Many of them can take up to 500 pounds of cargo. This means that you can fit family members, food, pets and gear all on one inflatable kayak. I want you to think about floods for a second. Often times people who are not prepared are forced to perch on the roofs of their houses and wait for help for hours, sometimes even days. Why would you want to put you and your family in a vulnerable position like that?
Instead, with an inflatable kayak, you can paddle with your most important belongings, cover more ground, and paddle to a safe and secure area. Best of all you can fold it up when you are done and put it in its carrying case as opposed to having to cast it adrift like so many had to during Hurricane Harvey.
Survival Gear You Should Bring in the Event of a Flood
-Water (at least a 3 day supply)
-Food (at least a 3 day supply)
-Flashlight
-Hand Crank Radio
-First Aid Kit
-Extra Cash
-Extra Batteries
-Cell Phone with Charger
-Copies of Personal Documents (like medical information, insurance policies, Birth Certificate )
-Pet/Baby Supplies (If Applicable)
-Extra Clothing
-Sanitary Items
-Rain Gear
-PFD’s (Life Vests Preferably)
-Kayak Bilge Pump
-Whistle
-Paddle Leash
While this may seem like a lot, much of it can be stored in a backpack or extra storage bags. Only bring what is necessary for your situation.
Inflatable Kayaks for Off the Grid
If you are living off the grid, particularly near a body of water such as a lake, chances are you have started to get the hang of fishing. There’s only one problem though. You can only fish around the perimeter of the lake which can be a very small area compared to the rest of the lake. Think of all the fish that you could be missing out on! Sure you can get a canoe but, you have to haul it around with you and find a way to transport it which can be a real pain, especially if there are no roads and you are in a relatively isolated area.
In comes the inflatable kayak and the problem is solved. Inflatable Kayaks are ideal fishing vessels and not just because they are portable. They also are great for sneaking up on fish. In many types of canoes and hard shell kayaks water often thumps against the side of the boat making noise and essentially announcing to all fish within that radius that you are there. Definitely not ideal. In an inflatable kayak you can go to all the areas in the water that you could not go on land and also be rather stealth about it as well by creeping up on unsuspecting fish. This could increases your catch rate by a significant margin. Kayaks like the Sevylor Coleman Colorado are ideal for this type of activity. When you are finished you can simply deflate it , fold it and pack it back up into its carrying bag. No back breaking heavy lifting and awkward maneuvering required.
What Should I look for in an Inflatable Kayak?
There are a ton of models that are out there and it can be very confusing, not to mention time consuming for the average user to mull over all the options. To clear all the clutter you should ask yourself one question..
What are you using it for?
Is this going to be used for emergency just in case scenarios or are you planning on getting more use out of it?  Chances are if you are an adventurous family you will be using it more often than not for recreational purposes. Could you really buy something like this and not play with it? So things to consider in either case is how important is on water performance? How far do you plan on paddling? Where are you going to paddle?  If you are looking for more performance based inflatable kayaks like the Advanced Elements AE1017 they will end up costing you more money because of the quality materials used. If you plan on having a more recreational kayak or one for strictly emergencies the Sea Eagle SE330 is a good cheap model made with quality materials.
Either way you want an inflatable kayak that can be durable, hold a good amount of equipment (look at the maximum Capacity rating of the manufacturer) and one that is stable and sturdy in the water.
Inflatable Kayaks can become one of your best friends in survivalist conditions because they give you additional safety and access when conditions get tough. They are built to be durable, light, transportable and space friendly and ready when you need them.
Follow The Prepper Journal on Facebook!
The post How an Inflatable Kayak Can be Your Best Friend in Emergencies appeared first on The Prepper Journal.
from The Prepper Journal Don't forget to visit the store and pick up some gear at The COR Outfitters. How prepared are you for emergencies? #SurvivalFirestarter #SurvivalBugOutBackpack #PrepperSurvivalPack #SHTFGear #SHTFBag
1 note · View note
hptposts · 5 years
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
newtshirtcom · 4 years
Text
I didnt see anyone today so Im wearing this again tomorrow shirt
I didnt see anyone today so Im wearing this again tomorrow shirt
In the event you work hard every day, style might not be something you spend a lot attention to. Even when you aren t seeing your garments, other folks are. For this reason you need to shell out some focus to your image in case you have someplace you need to be. Confused about design? Carry on once and for all tips about style that you can use at any time.
Developing a wonderful purse can make your attire look wonderful, but make certain that it words of flattery any other bag you need to hold at the same time. For example, if you need to have a purse and attache case together, they must complement each other. Also, make sure you don t carry two kinds of bags.
Wear cropped pants within a more complementing way by picking capris, pedal pushers, and bermuda shorts that do not tumble at the widest a part of your leg. Opt for slacks that finish higher than the joint or even closer to the leg. You must also prevent flared variations to help keep your look efficient.
Pick products to enhance your closet which make sense for your personal way of life. In the event you invest much of your time in bluejeans, then choose the right seeking and best-appropriate denim jeans that you can afford to pay for. The amount of money spent on an object for your personal clothing that you just use routinely is always a good purchase.
Make an effort to develop your own exclusive look. There are many folks that follow their particular style, but those with a sense of individuality are the types with who generate their particular fashion. You ll must be style-frontward to achieve this, but there s absolutely no reason this should allow you to unpleasant.
Be the author of your personal style variations. There are many people who adhere to their very own sense of style, but people that have a feeling of inspiration are the ones with who produce their own personal type. You ll must be trend-frontward to do this, but there s no reason at all this would make you uneasy.
There are numerous choices in stylish locks add-ons. There are hairbands, headbands, stretchy owner, bows, extenstions and much more. An strategy of hair add-ons makes it much simpler to look great daily–no longer bad hair time! You are able to satisfy your scrunchy towards the shade you re wearing, as an illustration. When disappearing, be sure you deliver headbands that match your outfits.
Many individuals tend not to realize how to dress in a jacket effectively, and it causes them to be appearance silly. If you are intending to sports activity a coat, you need to put it on appropriately to search great. You need to remember that the base switch on the shirt is not meant to be buttoned. This will likely stop you from committing a design blend up.
You may achieve wonderful appears inside your costumes without the need of going broke. You are able to expand your dollars when you discover ways to get outfits which are versatile, that you can inter-modify with one another. Recall the ideas on this page, and make your clothing into a collection that you will be proud to put on.
Buying online from the biggest choice of original t-shirt designs I didnt see anyone today so Im wearing this again tomorrow shirt. Have you completed shopping on the internet? Then, you probably know that although there are lots of parallels to traditional store shopping, there are several differences too. As a result, you must be well-informed in the method to help you obtain the very best discounts. Read this post for superb assistance that may help you within your online-buying efforts. By no means try to store from a web link an individual directed you inside an email, except if it’s a widely known and reputed internet site, like Amazon online marketplace.com. Too many consumers get tricked into frauds through hyperlinks in questionable email messages. Look at the URL in the internet site described inside the snail mail, as an alternative to clicking the web link by itself. Speak with your friends concerning their favorite online stores. There are millions of internet sites on the market, and there is absolutely no method for you to find them all on your own. Discuss to individuals you already know to find out who the reliable internet vendors are, and in which they enjoy to purchase. This can help you save considerable time and energy. If you are making any purchases internet and it is necessary to make a end user profile, never make use of the very same passwords which you use on other web sites. Do not make use of e-mail or financial private data to create a free account to get boots from your web merchant. When someone surely could see this password, they may get access to not just your account on the retailer’s retail store. If you would like the very best deals, consider registering for your news letters supplied on your favored merchants. Numerous shops offer you beneficial reductions for new people. Several stores also provide great savings to returning buyers. There is lots to know when it comes to internet shopping. You should not just commence shopping without discovering some important tricks and tips upon it. Be sure you meticulously read through above this short article before buying to help you save as much as possible and relish the very best experience.
I didnt see anyone today so Im wearing this again tomorrow shirt, Hoodie, V-Neck, Sweater, Longsleeve, Tank Top, Bella Flowy and Unisex, T-Shirt
Classic Ladies
Hoodie
Unisex
Buy I didnt see anyone today so Im wearing this again tomorrow shirt
Store Ideal TOPS patterns from a large number of music artists all over the world I didnt see anyone today so Im wearing this again tomorrow shirt. Today, finding time and energy to visit a bodily retailer to be able to go shopping is hard. With your active daily life, you often hold off acquiring issues that you desire. Shopping on the internet is a terrific way to save time making crucial buys. You are going to find out some very nice information that can help your web buying initiatives. In no way attempt to retail outlet directly from a web link an individual sent you within an email, unless of course it’s a well-known and respectable internet site, like Amazon . com.com. Way too many buyers get tricked into ripoffs via links in questionable emails. Visit the Link of the web site described within the snail mail, instead of clicking the hyperlink on its own. An established online seller needs to have a background that is certainly recorded together with the Far better Enterprise Bureau. Talk with the Better business bureau before you decide to aspect with your hard earned dollars to determine if there were any major or continual grievances lodged from them. You don’t need to be expending cash with a firm that breaks down to supply. If you are searching for the very best vouchers, think about getting started with the publications of the retailers which you really like one of the most. Numerous shops provide beneficial reductions in price for new members. These retailers continue to offer you special offers on their devoted buyers. This can result in substantial financial savings after a while. Always conserve replicates of your orders and invoices from on-line acquisitions. A lot of shops will redirect you to definitely a webpage after you’ve submitted a purchase order outlining everything that was bought, client information and facts, the prices, and so forth. You must either produce a duplicate of this or help save a duplicate for your pc in the event that any problems arise prior to the stop in the come back time. Be sure to help save any email messages concerning your items’ position or correspondence with all the firm regarding your requests, too. There’s no reason at all not to make the most of shopping online. Reduced costs as well as transport totally free is available. If you try this advice, you are going to regularly reduce costs with internet shopping. A New Tee-Shirt – I didnt see anyone today so Im wearing this again tomorrow shirt Product.
A Trending and All Sizes Fit Small!
The post I didnt see anyone today so Im wearing this again tomorrow shirt appeared first on New T-Shirts Daily Exclusive, T-Shirts Online Low Prices - NewT-Shirt.Com.
source https://newt-shirt.com/product/i-didnt-see-anyone-today-so-im-wearing-this-again-tomorrow-shirt/
0 notes
darkmoondancer · 5 years
Text
A promise & dA/griffia drama
The promise & an explanation
So, you might have no idea what this post is about, or have any context to understand it. If that’s the case, it’s okay. It’s not actually important then. This post is for the huge amount of my past, current, and future clients who have commissioned works from me for the Deviant Art, Art RolePlaying Game, known as Griffia. Structural changes to that game have left some of you being extorted by that game’s owner for more money. In that extortion some of the public relations spin by said owner has put some entirely false but very public blame on me. So firstly. If you have ever bought art from me for this game. Please know, that I deeply did and still do appreciate your business and regardless of any and all drama over there, you can always reach me here to support your purchase. You bought character art from me, if you need more art, I am committed to fulfilling it. I simply can’t do it for free though, but I’ll do my best to help you out. I’m sorry I can’t do more, but despite the “spin” that griffsnuff (owner of the game) has put on this debacle I am not at fault and simply can’t afford to indulge her. I am not abandoning you and please don’t take anything said about me in places I can no longer defend myself as truth. Please just come speak to me. Secondly. Below is the full text of my last letters to griffsnuff and the first in bad faith. It is both exculpatory and personal. It’s not exactly something I’m proud of, but I feel as both an act of self-care and of conscious, it is something I needed to put out in the most wide reaching manner I have. But, there is a character limit on Deviant Art, and I am not exactly a concise writer. So here it is. If you have no idea what any of this post is about, I’m sorry to hurl it upon you. Trust me, you’re better off not reading it. It’s mostly drama.
The Open Letter
I'm not going to beat around the bush about this, but you are very much cornering Qvi, as well as all of the rest of us GAs or ExGAs, and in addition to that you are dismissing Qvi's very valid concerns. (Replying to this comment chain: here)
You are functionally forcing us to re-upload art that we may already have hosted, (or given our permissions for your old MLs to host), or else hazard looking like we don't value our past customers if we don't. By limiting art to the original artist's gallery, you aren't providing any sort of option for people to get permission to rehost art, especially when it comes to reference sheets, batch uploads, deleted artwork, and variations or edited artwork! In this way, you are very much cornering us. You are strong arming us and using this as an excuse to rip off your most loyal players.
This could easily have been avoided if you had taken ANY sort of courtesy to contact us GAs/ExGAs before the VML went live, and make any effort to sort something out that worked for all parties involved.
Why were we not contacted in any form to try to find some sort of amiable solution? Full disclosure: I am pissed off about not being contacted. I am pissed about being fired in the GA purge when you told all of us that you would be contacting us(GAs) again in the new year. You didn't even have the courtesy to reach out individually and tell us 'thanks for your efforts but we aren't asking you back'. You chose to let us sit there with our hopes up for months on end in silence? That's a dick move. Now, when some of us have moved on, or are in the process of trying to, we are being contacted by past customers about a game we might not even play anymore (because it broke our trust and our hearts) all because you decided to put up new random rules on your website? A website that is actually displaying direct image links[1] instead of doing something sensible like coding in a pop-up permissions window that shifts the upload liability to the user instead of the site? You know? Like every modern website doing business inside the bounds of effective DMCA enforcement? Which, FYI, you clearly are not within. I'm not either, as a Canadian. Youtube and DeviantArt are, as corporations existing... INSIDE AMERICA! And don't mumble about WIPO, it's a freaking diplomatic tool, not an actively enforceable legal instrument! Neither is the DMCA, in practise. But that is way beyond the scope of this rant. Seeing as you'd need to have a basic understanding of the history surrounding DMCA and the ensuing voluntary policies put in place as a protective measure by the pre-tech bubble western tech hegemony against the insanity that is the actual base law. Which clearly evidenced by your own words and actions is leagues beyond you. That being said, I am not upset with my customers, or anyone who has contacted me in hopes of getting their art sorted out. I am all on-board to help them get things working, because I respect them and am grateful that they supported me in the past and bought my art. However, I am sick of the abuse that players, mods/exmods and GAs/ExGAs continue to endure in this community simply because you keep changing your product on a whim. Griff, these customers bought art that represents a character in your game from someone you granted license to do so. This art was expressly sold for use in your game, which includes being hosted on the game's ML. All art that GAs made for your game was sold to the customers, as a product that works within the World of Griffia. This was explicit by your own actions, words, declaration and by the license you implicitly extended to your agents. Your employees, the GAs! You know, the people you paid with licensing rights to do work for you? Licensing rights that had DIRECT monetary value! The people you also paid with access to monetary instruments known as proxy currencies, or by game speak, ITEMS! For fuck sake, you prattle on about DMCA while ignoring the actual laws you are beholden to? How in the hell have you not seen the rulings on digital goods that can be exchanged for real money?!? You are Norweigan! You are PART of the fucking European Economic Area. Those portions of EU laws explicitly apply to you! THEY ARE LAWS REGARDING ECONOMIC ACTIONS! How can you be so comfortable quoting laws with such blatant inaccuracy? And now, through all of this, you are telling your customers that it is not your problem? If they don't get to use the art they purchased with real money, in the context it was bought for, then they are clearly suffering a loss. Their character is being devalued by your actions unless they give YOU money? Their investment, as is the case with a great deal of players, is now worth less! They have no other option other than to suck it up? To deal with the n/a page or to pay a now select-few artists (your agents, your employees) real money to fix it? To give you or your agents money or suffer the consequences of a depreciated asset? And make no mistake, your "guest artists" are your agents. They are your employees. Just because you don't understand the most basic principles of money doesn't make it any less so. You are paying them in rights. Your most loyal fans (customers) now must shell out even more money to get a new rebase, or draw themselves new art that can't go in this official slot at all? The least you could do is allow people the option to make themselves a rebase on your official bases that can count as official art. 
On top of it all, you aren't actually providing credit to the original artist since you just have direct image links. Embedded images that only exist so long as dA continues to host that particular library file. Images that don't even link back to the artists original post, but steal it directly from the hosting infrastructure[1]!?! Hosting infrastructure that will clear eventually. Whether by an inactive user, scheduled maintenance, or malice, the links will die. Data costs real money. Somewhere in the world it is taking up warehouse space. Regardless of whether it's a digital set of bits on a storage drive. It costs actual money to host. Likely the real reason you don't want to host the images yourself? The DMCA explanation is gibberish, at best, as noted above. So no, dA isn't going to be hosting the current image files forever, and yes, you will inevitably have images go missing again, which means you are going to be right back at square one (missing images because they got deleted), which is what you've been trying to say you are attempting to avoid this whole time! Asking for a 'stable dA link' is literally nonsense. An entire point of having your own website for a game like this, is so that you are not dependent on dA hosting your stuff… and yet you are making this exact mistake again. You are making a mistake, while in the same breath, freaking out about that exact mistake? Are you insane? You are integrating automation and other features, but to have waited a whole year to see that this new VML doesn't even provide credit to the original artist (either by text, via link-through, or ANYTHING), and be greeted with arbitrary restrictions like no background, no pets, only individuals AND all has to be posted by only the original artist specifically only on dA galleries… AND to be followed up with dismissals that hosting this art is our own problem, when it's in fact all for YOUR game… and to support YOUR livelihood… I'm infuriated that I'm not seeing you taking any responsibility for this or respecting your customers for having put money into your game economy by buying a product that's value was solely granted by it's rights of use within your game! You keep breaking your promises, Griff, and there's only so much ground left to stand on.
I feel like you are not only being flippant towards us GAs/ExGAs, but trying to make this the GA's problem. Is this just so you can hide from your responsibility and milk even more money of your most loyal fans? Some of us aren't even a part of your team anymore and don't have any obligations to your game whatsoever. But you're trying to sell some bullshit to shift the blame regardless? You are breaking your promises to YOUR customers, who are trying to play in YOUR game! Before you go saying that I'm simply blaming all of this on you directly, Griffsnuff… I am. Griffsnuff, you are the owner of Griffia. I don't give a flying fuck what your godly levels of gibberish have to say otherwise. Especially since the words included in that gibberish changes with the seasons of your feelings. You ultimately carry all blame. Responsibility ultimately falls on… that's right… you! You are the owner. That is how reality works, and I agree it sucks, but that is the responsibility you take on when you decide to run a business. You can't keep telling everyone you are doing this all with the intent to have fun and make a game for you and your friends to play. No. If this was all for fun, you would not be selling characters… for large amounts of money… that explicitly say in them that they can be used in this game… and encouraging people to buy these characters to play in this game with you…. That is literally a business. (A proprietorship is still a type of business, so yes, even you as a singular artist are running a business when you sell anything!) So if you're upset that people are expecting to continue to use their characters within your world… who made up the rules that the characters could be sold into your world? You did. You allowed us GAs/ExGAs to freely make in any capacity, quantity and quality the species that you assigned us, as well as Rebases in literally any form/style/quality/etc we wanted. So long as they were on a transparent background, were solo, and at least vaguely followed (when you could be arsed to double check) the non-existent species information that you scribbled across three groups, countless stashes, and numerous google docs. Yes, eventually even you, started to realize that not giving us structure and real (consistent) written rules to follow was starting to backfire on you. It seems you even finally realized that you were giving away actual value. You were in fact using licensing as a proxy for cash. I think even you realized you were losing money out of your own pocket from your utter failures to comprehend your own decisions. But wait, this is the part where it's everyone else's fault right? Wrong. You gave out those license rights. You told people that they were buying a shiny special character design that could do things based on their status, subtype or species. Then you were surprised that people were upset that you made yourself out to be a liar when you changed those things to have less value? You allowed GAs to make as many of their designs as they wanted… and then act surprised when the market tanked because suddenly there was more supply than demand for any given thing? You create new and exciting things with nothing more than whimsy and then act defensively when people get upset with you when you randomly alter your half baked ideas?
You have created all of this for yourself. 
TL;DR: You have clearly, and repeatedly, over many years shown a complete inability to comprehend markets, or market forces. Regardless of creed, philosophy, or ideology the inscrutable fact is that Griffia is first and foremost a market. Griffia is not art. Griffia is not stories. Griffia is not a game. It is a marketplace in which people (yourself included) create stories, play a game, and trade art. Trade makes a market. Gravity makes apples fall. The sun makes life possible. Your job, your profession, and your livelihood is the production and management of this marketplace. The ramblings in which you lament otherwise are no defense from reality. You sold a marketplace, to sell your art. You hired artists to work for you and paid them in licensing rights. Your incompetence left buckets of money on the table, and when you finally noticed it, your reaction is to fuck over every one of your customers who didn't predict the future collapse of your idiocy? Fuck you, Griffsnuff. 
I'm done giving you my attention, my effort, my work, and all the space you have rented in my brain over the last 3 years. I would have been better off dedicating that time to literally anything else. I only have myself to blame for sticking around for so long and continuing to hope that maybe things would improve. 2 years ago, I told you all of this in less jargon and kinder words[2] because I wanted to help you grow. A year ago, I despaired and wrote you a second letter[3], urging you to reconsider your actions and warning you that you were leaping off a cliff-face. Today, 3rd time is the charm and I'm fucking done. This letter was for me, not for you. I'm so fucking done. This is where I draw my line. I hope for their sake, that others do so too- players, mods/exmods and GAs/ExGAs alike. They deserve to be treated with respect, not whatever this web of constant lies, broken promises, ass-kissing, randomly enforced unwritten rules, favouritism, and arbitrary yet crushing lore/anatomy changes is pretending to be. This is my third and final letter I will write to you Griff, as I fear it yet again will fall on deaf ears as my second one did. I sincerely hope you will read it, and take the time to thoroughly understand it. But I doubt it. Past clients, I'm still supporting you. I'm only done with Griff and Griffia, not with you. Check my blog here for the preamble to this letter where I address this.
PS: I would like you to answer 'one' question. If I choose to leave dA entirely to get away from this mess of a game once and for all, how do you propose to deal with the artwork I made for others? How will you honour that agreement? The agreement in which you licensed me to make art for your customers in exchange for services rendered. How will you cope with your resentment that you lost a bunch of money because you are shitty at your fucking job? The one where you run a marketplace for art governed by licenses you don't understand? It certainly wouldn't be fair to punish your customers by taking away their access to the art they bought from me. But, that seems to be your current choice? You have currently cornered everyone and provided no solution for those who are affected. If I were to simply go through and delete all my artwork or account to get a fresh start what would happen? If granting them permission to rehost my artwork isn't enough, and granting your past MLs permission to do so isn't enough, and granting your current VML permission to use any and all Griffian art I have made up until today isn't enough… then I'm at a loss. Is your completely mindless understanding of a set of laws that doesn't affect you, enforced by a policy guideline voluntarily adhered to, and failed to be managed by you due to sheer ignorance, going to stop you from doing what's right? So my 'one' question?
Are you really willing to be an extortionist? Because, despite your massive inability to comprehend reality, I suspect at the very least you can wrap your head around the facts. If you continue this tact; You are simply and plainly extorting your most loyal players while lying to their faces about your intentions and covering it all up with blatant defamation of your past artists. You are telling people that if they don't give YOU money, the things they own, will be worth less. By any and all moral definitions, that is extortion.
PPS: Now legally? Well holy shit that is WAY more scary seeing as how you are Norwegian and are not as protected by the disgusting monster that is crony capitalism. You NEED to see a Norwegian corporate lawyer regarding your legal requirements of disclosure. Because, according to your own nations Criminal Code (as translated to English) "Chapter 25. Extortion and Robbery", if you are altering the marketplace in an unlawful manner then you are using "unlawful conduct" as a tool to cause another party to suffer "loss". The unlawful conduct being your actions and the loss being the devaluation of artless characters in a market (in your words "a game") about character art. You could be facing your nation's minimum sentence of prison time for extortion. How strong are your consumer advocacy groups? How focused are your cops on white collar crime? How much do you trust your law enforcement to protect individuals over business interests? Morally speaking you are clearly extorting people, but you need a lawyer to give you advice on whether you are doing so criminally. You absolutely fucking need to go see a lawyer! In your own country!! To see if you are even allowed to abruptly change a market in this way. Your nation will have its own complex legislation prescribing your conduct as a market provider. It will likely fall under contract law. PPS:PS: Please keep in mind, when you do your due diligence (reading your own countries laws) before doing the smart thing and talking to a lawyer, that in legal writings, subsequent statements and sections are subservient to the prior. Seriously, go see a lawyer. You could be in actual real danger. The minimum sentence for extortion is jail time with the option of a fine in addition! (Not even touching the whole loot box/winning flower/treasure bean stuff that you are laughably under protected from if other EU web presences are to be used as an example.)
I'm not an expert, but I can read. You should too. Then pay a fucking expert.
[1] Inspect the source and URL, WIXMP is Wix Media Platform, the backbone of the DA hosting architecture. They switched to it while ramping over for the move to Eclipse. [2] The first letter, written in good faith.
[3] The second letter, still in good faith, but much more upset.
0 notes
li97swain-blog · 5 years
Text
Making Seating Plans For The Wedding
As anyone who features taken the time to be able to break has found, marriage planning is a challenging task. Luckily, this post offers given you suggestions to help make when you get married a wonderful one. Marriage ceremonies are one of often the more challenging things to package during the course of your life. Be certain that before your wedding, you are usually incredibly organized so anyone are in a good good position when the idea arrives time to determine with certain questions. This is going to give you the best opportunity to get good results. Leading up to your wedding party, you will want to help find a major make-up artist to do your own makeup, which will increase the method that you look. royal wedding is very important as you may will want to be mainly because shining as possible plus hide virtually any imperfections therefore that you can end up being perfect when your massive time will come. If you can't have a barro for your wedding, dress up the cars you aren't intending in. Put on crepe paper flowers, streamers plus other things that the user will let you outfit the idea up with. The idea could make you feel like anyone have your own customized coach, so you have a tendency really need a limo anyhow. If you are arranging on having custom made dresses or gowns for your personal bridesmaid, consider purchasing these people like their bridal party gift. A lot of bridesmaids find it costly and taxing about their revenue to shell out for such extravagant apparel that they will merely wear after. If you choose to have like a high priced item, help to make sure you don't placed pressure on them in order to pay for the idea. Maintain your flowers simple for you to steer clear of higher prices. If you can get by with just an agreement of flowers rather in comparison with a more elaborate piece that can be designed by the florist, then you will minimize one of the better costs of the plants. wedding dresses is fifty percent of the price. Produce sure you view good examples of function from virtually any makeup designer you're contemplating hiring. Will be the style pleasing to you? Likewise, assure that the makeup artist has the ability to do your makeup foundation the particular way you want it done. You will need to feel cozy with all parties required. If you are possessing a reception on a site that doesn't supply this decor, you have got to pick upward the napkins in addition to tablecloths yourself. I didn't propose going with plastic, therefore instead pick up economical fabric and hem the ends to make that look like a expertly finished product. Do often the same for napkins throughout a coordinating color. Typically the most important tool you might have in your wedding system, is usually groundwork. Make certain that your tote involves everything that you may need to mend a troubles. You need to make an effort to think of anything that can go wrong or perhaps that you may anticipate having, such as a mirror, so that you can see in the event anything is jammed within your teeth, some lip stick, so that you may spruce yourself up, in addition to might be a couple bobby pins to calm along any unruly hair. Whatsoever you assume you could need, try to continue to keep the idea in your bag. When taking pictures of a wedding party, you must be organized! Be sure to bring extra batteries, memory space cards and cleaning components, for your camera. Think up alternate picture taking locations, in case the next wind storm goes bad. Attend the rehearsal, so that a person will have a fine feeling for what can be going on and just where you should be all the time. It's important to study the legal guidelines in this location you've picked with regard to a destination wedding in advance of you get there. They will may employ a curfew, as well as rules regarding alcohol usage, or even permits of which you need to get for photography or perhaps alcoholic beverage sales. Check with a nearby wedding advisor for assistance. To save money when planning for your marriage ceremony make a list regarding the particular goods you is going to need and their charge. This will help an individual to save money before hand and avoid forgetting precisely what you need. Be sure you draw off each item whether it is completed. Send your marriage guests off with some sort of sweet treat to give thanks them for his or her support by means of handing out modest takeout containers of cozy cupcakes paired with small wine glass bottles of organic vanilla, chocolate, or perhaps soy milk products. You can use twine and little stamped or perhaps embossed name tags having the couple's title and wedding date. Fun wedding mementos are a great approach to keep kids amused at your reception. You can go to the $ store plus pick up a bag filled with goodies to arranged at often the tables which will can keep the youngsters busy while their moms and dads have a great time period at this party. In the event that you don't want to be able to invest a great package on the wedding, make for a budget before you get began. You can certainly get lost in purchasing objects for a wedding since it is a good enjoyable event. If you no longer set your budget first, you could go through inside the end when a person find you were being a bit more careless as compared to you needed to be. You should do your greatest to aid your guests get to your wedding. Even though they are paying to get the getaway themselves, anyone can have transportation looking forward to them at the air port pay for their lodgings. Make sure they have a pleasurable traveling experience and will get pleasure from the wedding. Meanwhile bachelors and bachelorette parties are incredibly popular in today's modern society; consider what strain it could carry towards your relationship before you have actually get married. Instead, opt to employ a thank you party with regard to all of the wedding party participants and take everybody together in the open up event. This eliminates any kind of questionable outcomes of a new bachelors or bachelorette celebration and makes everyone else sense included. If you're trying to help save money on your own wedding reception, consider planning it for some time that does indeed not require the your meal to be served. Rather, you may just serve snacks, beverages, and/or desserts. That can save you a good important amount within the cost connected with providing a new complete meal. Try certainly not to become overwhelmed with any portion of the wedding ceremony planning process, and operate the suggestions outlined above, if you want a little advice. Presently there are numerous resources for you to help you have typically the best wedding you maybe can and to create it the perfect working day.
0 notes
taleshalance4 · 6 years
Text
TECHSHOW Tips: How to Maintain Client Responsiveness in Chicago
Capture leads, serve clients, and keep your law firm running smoothly.
Solo and small-firm attorneys attending TECHSHOW have one extra thing to consider while they’re out of the office—something that doesn’t affect those who work for big firms, universities, large associations, and other high-headcount organizations with ample front- and back-office support: When you’re at TECHSHOW, you’ll be in sessions, at parties, in meetings, networking, maybe even catching a few Chicago attractions. Days are densely packed. That means you’re unavailable. And you probably don’t have a backup.
Breaks before, during, and after each day’s activities offer time only for the most urgent work matters. So how do you get your time and money’s worth during TECHSHOW without risking time and money back home? Look to these five simple and surprisingly affordable solutions to stay responsive to new and existing clients.
1. Add texting to your landline office phone number
Lots of lawyers still rely on a landline phone service. If that’s you, it’s common to feel uneasy and out-of-touch when you’re away from the office. Even if you forward calls to your cell phone, you won’t always be able to pick up—if you’re in a session, for example.
Add-on texting services, like ZipWhip, let you send and receive texts with your existing business phone number. The extra-smart feature they offer is automatic responses. Consider ways this can help you respond quickly and accurately:
A potential client texts to see if you’re taking new clients. You are. You set up an auto-response triggered by certain “new client indicator” keywords that say not only “Yes,” but also confirm they’re looking for an attorney in your practice area. And if so, here’s the link to your online calendar to book a consult.
An existing client texts to see if they can pay their invoice with a credit card. Yes, they can, because you have online payments through LawPay, Headnote, or another similar program. You send the link to your online payment page and get paid instantly. The client’s thrilled, too: It’s one item crossed off their to-do list.
An existing client texts you an image of the document you asked them to complete. They’re not computer-savvy and don’t know how to share the file via your secure document-sharing software. No problem, you upload the image to the software from the app on your phone. The case can now stay on track without delay.
ZipWhip offers a 14-day free trial, which gives you ample time to set it up before TECHSHOW and to assess its worth during your travels. After that, plans start at a palatable $35/month.
Bonus points: Ready for something that stacks on top of your new texting strategy? TimeMiner logs your time spent texting clients, so you can bill clients for your time spent communicating with them via SMS and MMS. Get started with a 30-day free trial, and then choose a plan: It’s $9.99/month for Android users and $12.99/month for iOS users. (The $12.99/month plan also gets you Clio integration.)
2. Book consults with new leads using online calendaring software
Fully featured and affordable online scheduling tools abound, and there’s even a free option available through Calendly, an easy online program that plugs into Google Calendar, Office 365, Outlook, or iCloud.
With online scheduling apps, you can make your calendar accessible on your website, in your email signature, and to your in-house or remote staff, so clients and firm staff can book consultations and appointments with you, without your direct involvement.
For example, see the steps that Justie Nicol, owner of Nicol Law Offices in Fort Collins, Colorado, outlines on her website for her solo criminal defense law practice:
Step one is basic intake using an online form (hers is built using Typeform). Step two is a 30-minute free consult using her online calendar, which she runs through Acuity Scheduling. It looks like this:
When help is needed, in-house and remote staff, like virtual receptionists, can use her Acuity links to book new consults like these, as well as other appointment types, like those for existing clients, court staff, or other attorneys.
Let’s say Justie’s heading to TECHSHOW. All of these bookings can happen while she cruises the EXPO Hall or dines at a Taste of TECHSHOW meal.
3. Add FAQ to your website to address routine questions
Your website is the best first line of defense for answering basic questions about your firm for new clients before they interrupt you with a call, text, or email. And you know those questions that are most frequently asked. Add a page dedicated to these FAQ, or just add them as a section on your homepage.
You can even take it a step further with online knowledge-base tools like HelpDocs, which offer a repository for these Q&A, easily plug in to your existing website, and allow visitors to search through topics, like how your fees work, how clients can make payments, details of your policies, what areas you practice in, and more. The result? More clients can “self-service” their needs instead of prompting you for help.
HelpDocs plans start at $39/month and there’s a 14-day trial, which is more than enough time for a TECHSHOW test run.
Bonus points: Put web chat up on your site and further stem calls and emails from folks who still can’t find an answer. Bots can auto-respond with simple answers and links to those FAQ, and live chat agents can provide custom-tailored answers. Chat services that also provide live phone services can even turn a chat into a call, for a very high-end client service experience for web visitors who appear to be very strong leads (or happen to be VIP existing clients).
4. Outsource call answering and web chat to virtual receptionists
When you hand off call answering to remote receptionists, you maintain (and even improve) responsiveness while you’re out of office. Better yet, have them return non-sensitive calls (like calling back web-form leads and clients rescheduling appointments). Even better, have them respond to chats on your website, so they don’t even have to call or email in the first place. Services that offer a free trial can even get you through the half-week while you’re gone, like many of the other services I’ve mentioned here. Now is prime time to get these trials going.
For example, Smith.ai offers a 10-call trial that lasts up to 30 days. Get set up this week and identify exactly what the receptionists are going to do on your behalf, but start forwarding calls only when you take off for TECHSHOW.
You can even set it up so calls ring first to you and then to the receptionists, so they’re backup during times you can’t pick up.
Or, if you have an IVR or phone tree (e.g., “new clients, press 1”) route calls for new-clients only. They can not only answer these calls, but also screen them based on your criteria, schedule a consult on your calendar, take payment if you charge for consults, and capture basic intake information so you’re prepared for your consult when you return to the office.
Bonus: You’re always in the loop thanks to: 1) immediate post-call email and text summaries, and 2) software integrations, which mean callers are added as new contacts in ClioGrow/Lexicata, Lawmatics, HubSpot, Client Sherpa, Lead Docket, or whatever intake software you’re using.
Example: Remember that online scheduling scenario? A phone receptionist or live chat agent can serve as a gatekeeper if you don’t want to post your calendar online. Just provide the link to the receptionist or live chat service, and instruct them when and how to book appointments for you.
It could go something like this when a client reaches your website and indicates they’re a good potential new client (instead of ��today” pretend the chat agent is saying “Monday, March 4”!)
Behind the scenes, the chat agent booked the appointment on your calendar and the chat transcript was sent to you via email. Done and done!
Live chat can also be used to help guide new potential clients as they complete the basic intake form and book an appointment on your website. Remember Justie? Chat agents are able to instruct new web leads on how to best answer intake questions to help them have a successful, informed first consultation appointment with her. Chat widgets begin with a disclaimer, and then proceed with helping the new lead:
Not only is Justie not interrupted, but she’s even more likely to have a consultation booked with a new potential client who has properly completed her intake form (which is short but not insubstantial), and has also likely had some routine questions answered. Meaning, the first consult will be more productive—and with a potential client who’s likely very serious about hiring her. Something she’ll be particularly thankful for as she catches up on the backlog of work that’s inevitable to follow after TECHSHOW.
5. Reduce interruptions by filtering out unqualified leads
Sometimes the most frustrating inbound calls, texts, and emails are from people who contact you about a family law matter even though you clearly state on your website and everywhere online and in print that your firm only handles criminal defense cases. Unfortunately, some people don’t read. Don’t let them waste your time. Using some of the services above, like auto-responder texts, web chat, remote receptionists, and online calendaring, you can screen out bad leads before they ever reach you.
For example, in ZipWhip, you can set up an automated response when a potential client texts you about a case outside of your practice area. Let’s say they use a keyword like “divorce,’ you (and I’m calling you Joan here) can respond with a polite, instant text back that says something like, “Hi, thank you for contacting me. I don’t currently handle family law matters like divorce. I focus on personal injury cases. If you ever need help with a personal injury matter, please reach out to me. All my best, Joan.”
Bonus points: It doesn’t have to stop there. In fact, I recommend it doesn’t. Instead, build goodwill (and potentially earn referral fees) by referring unqualified leads to other firms you recommend.
First, inform them briefly about your firm and what types of cases you do handle. You never know if they may be a good potential client for a different legal matter in the future, which your firm does indeed handle. Or, they may encounter someone in the future who they refer to you since they will now better understand what matters your firm does and does not handle.
Then, recommend one or a few firms that are better suited to their needs.
If you have a process for referrals and a list of firms you recommend (identified by criteria, like practice area and cost), you can even hand off referrals to in-house and outsourced staff.
Check that out. Now, you’re not only queuing up new business and serving clients while you’re in Chi-Town—you’re also building positive sentiment for your firm back home, whether that’s down the block or across the country.
Questions? Contact me.
If you have questions about anything I covered above, or simply want to dive deeper into some of these suggestions, feel free to email me at [email protected]. I’d be happy to help you identify the best solutions to suit your firm’s specific needs. Or, come find me at booth #102 in the EXPO Hall and let’s chat in person!
Maddy Martin is the head of growth and education at Smith.ai, which provides superior virtual receptionist services for live calls and web chat, through a combination of U.S.-based professional receptionists and AI technology. She has spent the last decade growing tech startups from New York to California, and has expertise in digital marketing, small business communications, lead conversion, email marketing, SEO, and event marketing. Maddy can be reached at [email protected], and you can also connect with her on LinkedIn.
This is a guest post from Smith.ai. Visit them at ABA TECHSHOW in the EXPO Hall at Booth #102 and learn more about the Conference. 
The post TECHSHOW Tips: How to Maintain Client Responsiveness in Chicago appeared first on Law Technology Today.
from https://ift.tt/2SPhRxW from https://eliaandponto1.tumblr.com/post/182956584272
0 notes
buyneopointcheap · 6 years
Text
How To Resell On Neopets!
Tumblr media
Ever wondered how some people get so many Neopoints legitimately?  Ever wondered how that three week old account has 20m already? Scared to risk your account by buying Neopoints, or just want to stay legit? There's tips and tricks to making money on the site, and none of it involves needing a high speed computer, super fast internet, or any illegal activity!  I myself used to be one of the best resellers on the site. Reigning from 2008 - 2013. I made 100m a month when I went hard out, or 50m a month when I was barely online! I'll be posting some tricks to resell better, faster, and smarter in this guide. In addition to that, I'll be posting ways to avoid getting scammed, how to look out for scammed items, and help prevent any bad items from ending up on your account. Unless you want those bad cheap items! 
Tumblr media
The guide will be split up into multiple sections -
The basics
Knowing item values
How to avoid getting scammed
Going a little more advanced
Spending your riches wisely
The gamble of trial and error.
Disclaimer
*The Basics*
So, reselling in short is just buying low and selling high. Simple right? WRONG! Sounds like a lot of hooplah, but it's not. A lot of people are going to tell you that ETS (easy to sell) items such as Paint Brushes, Morphing Potions, Trans Potions, and Petpetpet's are the best thing to sell. They're wrong. Those items are the safest to sell. The best money is in the HTS (hard to sell) items. 
 ETS HTS Paint Brushes Retired books Morphing Potions KQ Code items Petpetpet's RIC items (Rare item code)  Non-R99 petpets, and popular cute Petpet's. R101+ wearables Avatar items Collectable Cards Hidden Tower items Some cove items Some* Smugglers Cove items Plushies All maps excluding Space and Underwater A lot of r180 items including books, gardening items, toys, Utility Fish, BD items, Sepcies related items. Some* R99+ Stamps Almost every item below r99 will be HTS
Now, as stated above. The definition of reselling is buying low, and selling high. If that's what you plan on doing, then this guide is not for you. 
Tumblr media
If that's what you plan on doing, all you need is a price guide, and an account to sell off.  This guide, will teach you how to go more in depth, and maximize your profits without maximizing your profits. 
*Knowing item values*
Now. A lot of people think that the Trading Post dictates value, and many others in addition to that, think that Jellyneo's item database is accurate. Using either of these as a reliable source for spot on prices, is a big mistake. Both are easily manipulated by users to change the price however they want it. There are many MANY users who will buy up Morphing Potions on the trading post, and then list prices at 800k+ because they have the "only one for sale" or because it's r99 and unpriced on the TP. From there, that person can just go to Jellyneo's item database, and input their price and the price changes. HUZZAH, it looks like that item is worth 2m but it's really only worth 200k.  Now, I'm not discouraging using the TP prices as a reference when buying items. Jellyneo is incredibly inconsistent however and I do not recommend using their prices. Here's why:
Tumblr media
Pay attention to the price fluctuation.  From May 24th, 2010 - September 6th, 2010 the price jumped from roughly 50k to 3m.  This is a common case of hyperinflation where one user buys all of a single item from the shop wizard, and prices it exponentially higher on the Trading Post. A lot of the time the user will have MANY quantity of the item, and will offer it on low end ETS items on the trading post, or anything that costs more than what they paid per item. Some items are harder to determine if they're inflated or not, but some of the more common item types are:
(TCG)'s
Old plot items
Buyable Keyquest code items
Buyable TCG RIC items
In some instances, complete junk restockable items
The best thing to do if someone offers an item that you think might be inflated is to check Jellyneo's price history: 
Tumblr media
This is the only time I will EVER recommend specifically to use Jellyneo's item database as a price reference. Any other time I would say to use Trading Post as a reference, or ask for a price check on the Neoboards.
*How to avoid getting scammed*
There are a lot of scams that go around on the Neopets market. First thing I want to say. If it seems too good to be true. Then it more than likely is. The first scam I'll point out is one of the oldest in the book: Putting up Plushies to look like different items. 
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
    Now, side to side, these items look completely different. You can notice the differences instantly without any issues and tell what's more expensive without even having to think about it. People however, still get tricked with this simply because they're scrolling through trades and only glimpse at the Faerie Brush Plushie that's listed at 500k.  The person then offers, gets their offer accepted, and they get junk instead of what they expected. The biggest problem with this scam, is that it is NOT reportable unless the seller states that they want X amount for the more expensive item i.e "500k for this Faerie Paint Brush". In which case, it is reportable. So stay attentive, and pay attention when offering. The last thing you need is a garbage item, and a short end bank account when you're reselling!  Now, another scam that I've already covered a bit is hyperinflation of items. People will constantly find items that have a small quantity on the shop wizard and from there they'll buy the items, and list them on TP from their main account, or a side/shell account to give it a false price. And from there they offer the items on your more valuable items. I won't cover it very much in this section because it was covered previously. But I do want to strongly emphasize that if you're uncertain about an items increase in value, make a price check thread. There have been instances where items legitimately hyperinflated from 3k to 3m overnight (Gourmet Cooking for your Pet when Bonju was found, Wishing Well items when the Wishing Well avatar was released...)
Tumblr media
Now, what do you see in this screenshot? The next common scam, is exactly what's posted above.  Someone puts a trade up and says their item is worth X amount but they're quickselling for a massive discount. I won't say these are always scams because there are people who do put up legitimate trades like this where their items are worth X amount like they claim, and they're selling for a large discount. It doesn't happen very often however. But, with the previous screenie:
Tumblr media
  Very clearly, the item isn't worth 10m. It's not worth 1m. It's not even worth 100k.  This is an incredibly common practice. If you see something like this, go with your gut and stay away from it or buy it.  My motto when I was big on reselling was "I'd rather take a small loss, than miss out on a large profit." And to this day it's something that I stand by.  Once you get into the groove of reselling, you will definitely be running into more profits than you will losses. In the beginning, you may run into a loss once or even twice a day. It's a learning process, and the beginning is always the worst. But it gets much better! 
Tumblr media
The last major scam, unfortunately I won't be able to get my hands on any screenies for. 
Tumblr media
This scam is most common when it comes to dealing with other resellers!
  *Going a little more advanced*
Up to this point, I haven't really covered how to resell correctly. So let me tell you how to do it incorrectly. -Buying an item for 150k and selling it for 200k is wrong. -Buying a Baby Brush on the SW for 50k and selling it for 575k is wrong. -Buying a Pile of Dung for 150k and selling it for 10 NP's is wrong.  The only time I'll ever really emphasize selling an item for a fast pure profit is when you're strapped on pure. If you've got 100m pure to work with, and you snipe a Baby PB for 50k. Don't sell that for 575k. Hold onto it. It'll be more beneficial later on.
Trading up
Here's why selling that Baby PB for 575k is wrong.  To break it down, you've spent 50k on a Baby PB. That Baby PB can be sold for pure, or used in a trade. If you use it for a 1:1 trade, then you basically only pay 50k for the item you traded for.  So there's a reseller trade lot up. 550k for any seven UB's the seller might have up. It's a good deal right? Seven UB's for 550k? Even if you toss them all into your shop, you profit. But you only profit a minimal amount. You see this trade, and you have that Baby PB that you sniped for 50k. You don't offer pure on that trade. Screw that. Pay 50k for the trade and offer the Baby PB for it. The user accepts your offer, and you now have seven UB's that you paid 50k for.
  This is where you start selling items for pure
You now look at the items you traded for, and they're all worth 150k - 350k each.  From here, you minimize what you can sell them for. 100k each if you want to quicksell, is a 650k profit on a Baby PB. More than the Baby PB was even worth to begin with. And that's just at the minimum. Or you can repeat. Take these seven items that you paid 50k for, with a combined value of 1.05m - 2.1m for a different ETS item like a Faerie Paint Brush worth 1.4m. Trade them directly, and you've now paid 50k for a Faerie Paint Brush. It's entirely your choice how you work your items.
Let's dive a little bit deeper
In this situation, you have no pure, but you have the items mentioned above. You have no pure, but there is a Royal Paint Brush on TP and you want to try to make a deal for it, but the seller wants pure involved in the trade as leeway.  How do you get the trade?  You've still only paid 50k for these items, so keep in mind that anything is profit above that 50k mark. You have a collector offering 500k for three items that are valued at the 150k - 200k mark. This being full price, you accept. You now have 500k pure and four items worth somewhere between 600k and 1.2m. Royal Paint Brush is valued at 1.7m. You offer the PB owner 500k pure and the four items you have for the PB and they accept.
On a realistic note, if you wanted the fast profit for the items, you could have sold them in your shop for 100k each and made a 650k profit from the start. However, with just a little muscle, 50k can be turned into 700k, or 1m, or 10m depending on how your scenario plays out.
TP sniping
This is simple, easy, and to the point. First things first, you need to know what a TP snipe is.
Tumblr media
This is a TP snipe. The Dragonfly Nymph is worth 1.5m, but thrown in with a bunch of junk items.
Tumblr media
This is not a TP snipe. Why? The seller has a (junky) set of items with the Rainbow Paint Brush. This is a common practice among sellers. Having something simple and cheap to go with your big value item makes it seem like a better purchase, and appears more often on TP in searches.
So how do you offer on TP snipes?  Cheap. You offer very low. This is a perfect example.
Tumblr media
This is an exact offer on the trade listed above with the Dragonfly Nymph.  The user offering clearly sees the Dragonfly Nymph and is hoping that the seller (in this case me) doesn't know the value of the Nymph, and will jump on what could appear as a large offer for the trade. This is the correct way to offer. 
Tumblr media
This is not the correct way to offer on a TP snipe. Chances are someone else sees the snipe just like you do, and they can offer correctly. If they offer more accordingly, you won't get the TP snipe. And you want the TP snipes!
In closing, please note
Trading up is MUCH easier when dealing with higher end HTS items. If you can buy a high end HTS plot prize, retired item, code item, Cove item, or similar items for a good discount, I always advise doing so. If you can get a 5m HTS item for 1.5m pure, and you know you can sell it for 3m, or use it in a trade for 2.5m value (or vice versa) do it. These small quantity HTS items are worth A LOT in bulk. If you pay 15m for ten items worth 5m tops each, you can trade them in bulk +/- pure with a value from anywhere between the lower end of 20m, up to 45m depending on the item and who you're dealing with. The profits are entirely situation based on who/what/why. Who's buying? What items are involved? Why are they being? To resell, or to collect?
*Spending your riches*
As a reseller myself, my goal was always to make more and get the items I wanted along the way. This little section is just a reminder to budget your money appropriately. Remember, you can't make money without money. Set a limit for yourself. If your goal is to just make more money, then by all means put all your investments into reselling. If you're looking to add to your gallery, paint your pets, train a BD pet, buy a BD set. Anything. Set yourself a percentile to spend out of X amount of money and don't go past it. If you want to set X amount as your budget rather than a percentile, who am I to discourage you? Work it however you know you can hit your goals and continue making money. If you overspend on your goals at any point, I'd recommend cutting back and spending a short bit of time solely on making more money to recuperate your spendings. From there, start splurging again! 
How To Resell On Neopets! published first on https://buyneopointscheap.com
0 notes
unixcommerce · 6 years
Text
The Alternative Dictionary of Web Design Terms
It’s a universal truth that there’s more than one meaning to just about every word. This is doubly true for industry lingo. If you’re just getting started in web design, you need to know what everything really means, if you want to get ahead.
So here it is: here’s what the Secret Web Design Illuminati doesn’t want you to know. Read this article, and you’ll be able to dab on the haters with your hip new slang. Isn’t that swell?
.htaccess
A file that sits on your web server which, if ever touched, is perhaps the quickest and easiest way to break your whole site.
AJAX
The practice of making all your content dependent on JavaScript to load in the first place; this never goes wrong.
API
A system whereby enterprising young developers make money from your users’ data. Remember that you can always destroy them by “tweaking” the API for “performance” because you “hate chronological timelines”.
Accessibility
The practice of building websites that a human might, with a little time to study, actually be able to use.
Agile
A development methodology that advocates self-organizing teams and flexibility, allowing startups to more efficiently realize they’re building something that no one wants.
Back End
The part of a website where you deal with a lot of crap.
Backlink
Before experimenting with dogs, Pavlov trained online marketers to salivate whenever he said “backlink”. It still works.
Bandwidth
A measurement of the speed with which Google can access your personal data.
Bounce Rate
A measurement of the speed with which users realize you don’t have what they want.
Breadcrumbs
The contextual navigation pattern preferred by nine out of ten ducks.
CMS
The system that is supposed to solve all your problems and get you to the top of Google. This is accomplished by leaving it alone until an update breaks a plugin, or something.
CSS
That thing they want to implement with JavaScript, now.
Cache
Space on other people’s computers where you can temporarily store some of that crap from the Back End.
Call to Action
Begging the user for money and/or attention.
Code
The stuff they show on computer screens in the less-offensive Hollywood representations of hacking.
Comments (in Code)
In-jokes and clever insights that only total nerds will ever see. One day, someone will achieve true enlightenment, and the secret will written down as a code comment, and lost to an obscure GitHub repository.
DHTML
See: Deprecated
Deprecated
Anything we forgot how to use while we were learning Flexbox.
Design Research
Browsing Pinterest for a few hours to steal color palettes.
Design Thinking
Thinking, but like, when designers do it? If you’ve ever touched MS Paint, you can put this on your resume and ask for a raise.
Doctype
A needlessly complex way to tell the browser what kind of HTML you’re using. Seriously, would have worked just fine.
DOM, The
A useful reference word for programmers, and anyone who wants to sound a bit smarter.
Example: Can’t you just throw some more “div” thingies into my DOM, or something?
E-commerce
A fancier way to say that you’re selling stuff you don’t want on Ebay.
Fold, The
The part of the website everyone already knows to scroll past if they want to get to the good stuff.
Framework
The thing you’re supposed to learn instead of development languages, now…I guess.
Front End
The part of a website where you tell users what you think they want to hear, based on research, surveys, and indiscriminate guessing.
Graceful Degradation
The practice of building your website so it doesn’t completely fall apart at the first sign of a bug. Clearly superior to Progressive Enhancement. (See: Progressive Enhancement)
HTML
The easiest way to tell other people that you’re a coder, now.
iframe
You’d think these were Deprecated, but they’re not.
Image Map
One more thing that will never work on a responsive website without a jQuery plugin.
Inbound Marketing
See: Backlinks
Inheritance
The part of CSS that keeps confusing people.
JavaScript
The be-all and end-all. The ultimate development language. Will replace HTML and CSS because some people can’t be bothered to learn the simplest “languages” ever invented.
Landing Page
The page that designers let marketers have their way with so they won’t touch the actual home page. Landing pages typically outperform the painstakingly-crafted home pages, infuriating designers.
Meta Data
What we have to use while we wait for AI to get smarter.
Navigation
The quickest and easiest way for a customer to get lost.
Online Marketing
The business of lies, damned lies, and statistics.
Open Source
A socially acceptable way to just use other people’s code. Also the greatest thing since sliced bread.
I’d just like to interject for a moment. What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.
Pixels
Work as a designer long enough, and you’ll start to notice when even one of these things is out of place. It will haunt you.
Progressive Enhancement
The practice of building your website so that it works anywhere, but looks better on newer devices and browsers. Clearly superior to Graceful Degradation. (See: Graceful Degradation)
Prototype
The terrible temporary code you write that will inevitably be used in the final project, and you’ll always be just a little bit ashamed.
RSS
See: Deprecated
[I’m just going to cry in the corner, for a bit.]
Responsive Design
The reason web designers have to do maybe three times as much work for each project as we used to.
Semantic Markup
The practice of writing HTML a human might, with study, actually be able to read.
Server-side
Anything that is officially the developer’s problem.
Sitemap
A thing that used to be used by people that is largely used by search engines, now.
Theme
A socially acceptable way to use other people’s graphical assets and code.
URL
U R Lost.
[Hehehe, ahhhh… the classics still get me.]
UX Design
Everyone is an expert in this, now. Apparently.
Usability
It’s like Accessibility, but for people who get embarrassed when they see wheelchair ramps.
Validation
What we all desperately want from our fellow designers.
See: Web Standards
Web Standards
A good idea that so many of us are outright ignoring.
XML
Oh right, that’s still a thing.
  Featured image via DepositPhotos.
Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!
Source p img {display:inline-block; margin-right:10px;} .alignleft {float:left;} p.showcase {clear:both;} body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}
https://www.webdesignerdepot.com
The post The Alternative Dictionary of Web Design Terms appeared first on Unix Commerce.
from WordPress https://ift.tt/2zTdird via IFTTT
0 notes