#stuff id post on a hub blog if i had one
Explore tagged Tumblr posts
shilo-sumac · 15 days ago
Text
(( OOC: plays a game with shilo called "you dont get to see posts that would make you mad and fight with other characters" (she wouldnt appreciate that she would HATE me for this) ))
3 notes · View notes
pikasetism · 26 days ago
Note
hi, if this doesn't bother you, what are your pikase headcanons?
do you have au with them?
also i love the blog idea, it's so cute have a place were the pikase fans can talk about them 💖
hiiiii anon i did not realize how much i would have to say about this ive been writing this reply for hours sorry long post inkoming lmfao
my funny little general headcanons can fluctuate for whatever i wanna do but the solid ones are that fukase is disabled and does tech support and piko is a robot and does a lot of programming stuff, they join forces to build silly little robots together and theyre always looking out for each other
more random ones are stuff like the height i draw fukase with fluctuates but hes never taller than piko, both of them are some flavor of transgender (i personally like unlabeled piko and intersex fukase), piko is mikis sibling and shes dating miku append, both of them are robots and id love to draw a double date at some point, i dont really have any mikippend headcanons but i love them sm too omg and i like to draw piko with funny little hologram windows he can acess the internet from and i think thats just kind of a robot thing robots can do :]
the only thing i can consider an au that i have with them is what i call "memesquad from the mirror dimension" or "seriousquad" which is this note on my phone where i wrote every single personality trait i could think of from talkloids i saw around 2018-2020 and reversed them heres what i wrote for fukase and piko
Tumblr media Tumblr media
also AWWW TYYY thats so sweet yeaaaaaaah shipping vocaloids is all fun and games until you realize that unless your otp is from crypton you cant find SHIT about them, id love to have my blog seen as a little hub where all of us can sit around a campfire and chat about our silly ship omg 🥺
pikase being a rarepair baffles me specifically because of the memesquad, idk why but at least on my time on that side of the fandom some years ago it was always super hard to find any pikase stuff which always confused me since they're both In The Deam Memesquad. PERFECTLY good gay couple in there guys. why does no one see the vision. i vividly remember this one time i was like 13 reading a crack ask fic on wattpad and the only time pikase was even hinted at it was played off as a complete Joke and it made me so upset lmao
i only have around 40 followers here but it makes me so happy to see so many people that share my love for this ship, the rarepairness of it always made me feel so alone, back when i only used twitter there was 1 artist that Sometimes posted pikase stuff and that was all i had, genuenly i am willing to bet that im currently one of the only active pikase artist out there lmao, i say this in my bio but i made this blog to just get me to draw them more and be more shameless about MY FUCKING OTP and i genuenly never expected to see more than like 5 people on my notes, even if someone just silently likes and reblogs a drawing with no comment attached it still always makes me so warm inside even, ive gotten at least 2 people saying "OH MY GOD AN ACTIVE PIKASE BLOG" on my notes and i share the sentiment deeply. hell yeah. theres more of us out there >:D
7 notes · View notes
solarpunkani · 1 year ago
Note
So the way cities are designed is nasty and not really good for anybody. Do you have any resources or ideas on how this can actually, realistically change? I mean, we can't just tear down cities and rebuild them better. Is the way forward just adding more beneficial stuff to the existing, less-than-ideal cities, and then building the new cities with people and nature in mind?
Hey!
Yknow, I thought I had a tag for this, but either I forgot what tag it was or things just haven't come out of queue yet because I'm not seeing much on my blog. I feel like I've seen specific posts about making things more accessible--I tend to see this line of thought be referred to as Walkable Cities or Accessible Cities--but I can't think of any off the top of my head at the moment.
To the best of my understanding, as someone who isn't a city planner or anything along those lines, I would think the solution would be along what you suggested; adding more beneficial structures--which may include rebuilding certain things/sections but I don't thiiiink would involve the entire demolition of a building--to preexisting cities and then building the new cities with these principles in mind.
What needs to be changed will be on different levels depending on how old the city is, how it was planned out before, and whats causing issues vs what needs to be improved. There's definitely a lot of talk about needing more bike lanes and sidewalks in the US, and how sparsely everything is placed in a lot of cities without a way to really access them. I think the closest I've ever been to being in a truly walkable city was my college campus, and not only was that not the whole city but just the campus, but I also didn't really have the leg strength to walk or bike the wholething. Even still, things were close enough together that walking or biking was feasible for a lot of people--and there was a robust bus system that was free for students as long as they had an ID (though most drivers didn't ID people who looked like students, or if you were being picked up on campus).
From there I guess I'd love if something similar was implemented in other places. Free (or at least very low cost, but preferrably free) and robust bus systems, bike lanes, wide sidewalks, and things made in more of a 'hub' kind of planning instead of having everything super spaced out. With lots of green spaces interspersed throughout, like small but frequent parks that people can go to hang out with lots of benches and flowers and such. Maybe a lot of the housing set-ups would be sort of like apartments on top of stores? Close to campus, there was a mini Target and several other stores in a plaza-like block that actually all had 5 levels of apartments on top of them--you needed a special key fob to get into the elevators to access them, so it wasn't like anyone going to Target could end up at your apartment door. This could be a good way to have more structures in less space, in a way? Granted, I never lived in those units, so IDK if the quality of life was different in any way...
I feel like I've seen videos and posts discussing how one city started slowly phasing things in and out to become increasingly more walkable over the years? Maybe in Spain or something? I can't find it at the moment, however. From what I remember, they started slowly phasing cars out of certain areas of the town, instead adding more bike lanes and plazas and benches and housing until eventually basically everything was accessible by walking, biking, or taking a transit system.
I've touched this point already, but I feel that transit systems would be one of the most important parts of making a city truly accessible--but that the transit system may look different depending on where you are. New York, for example, has the subway system that from what I know (I've never taken the New York Subway I haven't been there since I was 8) is extremely efficient in getting people around--could likely use some improvements, but is definitely a good model to look at. For places where subways aren't suitable--I know Florida would deal with lots of flooding issues, trying to dig and implement a subway system--an increasingly robust bus system or even something like a monorail system like my city (sort of) has would be excellent.
Now there's definitely something to said about accessibility into buildings itself. Sometimes ramps are constructed improperly, so those would need to be fixed. I can also see there being issues with doorways and stairs and such in older buildings--though even in those cases, many buildings get revamped with elevators and wider entrances. There's probably tons of other accessibility issues that I don't even realize, because though I try to keep these things in mind, I do ultimately live life as an abled person right now.
Though another point I do also remember being brought up is the height of landscaping, especially near crosswalks and such, causing problems with accessibility for children, shorter people, the elderly, etc. Also that trailing, low-hanging plants can also cause issues by getting stuck in wheelchairs and such. These would also have to be kept in mind when considering green spaces and accessibility.
This post is getting long and ultimately I don't really know what I'm talking about in the slightest. But I do hope this was at least a little helpful!
25 notes · View notes
thebibliosphere · 5 years ago
Photo
Tumblr media
New decade, new follower milestone, and the theme going forward is “that ADHD mood” (x) apparently.
It’s been a while since I’ve done one of these, I figured it was getting annoying every month, but 40,000 seems like a good number to welcome all the new folk, post some updates, and say how thankful I am for everyone who has been with me over the last half decade since my blog went viral and turned my life upside down in the best way possible. I know most of you came for the funny shitposts and found yourselves with an unexpected frontrow seat to watching someone repeatedly nearly die from an unknown illness, and I know that can’t have been much fun to watch, but thank you for being here and staying with me. Your support and kindess has been invaluable, and I am sincere when I say you are part of the reason I am still here, both on this blog and in this world. Without your compassion and support over the last five years I know I wouldn’t have made it, and for that you have my eternal gratitude and I will spend the rest of my life trying everyday to pay it forward. Thank you.
And now that I’ve got the serious/sappy stuff out the way, on with the fun stuff!
Tumblr media
[ID: a gif of John Oliver the comedian splaying his hands wide and saying, “Welcome to whatever this is...”]
Hello! My name is Joy Demorra, I’m an official 2x International Best Selling Author, Vampire Romancer and Shitpost Producer Extraordinaire, and yes, I am the vampire nipple erotica editor who just wants to rest , thanks for asking!
You may know me from such posts as the infamous Crucifix Nail Nipples (x), Robin Williams Punching Death Eaters Dream (x) or one of my many, many, many vampire shitposts, chronic illness/advocacy posts, or my ADHD posts. However you found me, or whatever brought you here, I hope you enjoy your time here. Please have patience if you are sending me messages either here or somewhere else on the Internet, I am but a humble smut peddler, peddling my weres. I am also multiply disabled with at least one genetic disability and several chronic illnesses and mentalh health issues that make keeping up with a high traffic blog very difficult. I never expected to become a hub for shitposts and chronic illness/ADHD resources, but here we are!
If you ever get tired of seeing my personal health posts, you may wish to blacklist the following tags: ‘#chronic health tag’ & ‘#chronic health tag: teeth’, that way I can bitch and moan into the void and you don’t have to read it if you don’t want to.
Due to Tumblr successfully tricking me into becoming a professional author, I have several hundred ongoing projects at once, most of them vampire themed. My most well known is Hunger Pangs: True Love Bites, which you can read more about here (x), or pre-order on Amazon now (x)!
Tumblr media
[ID: A screencapture of my Amazon storefront page showing Hunger Pangs: True Love Bites as  #1 Best Seller]
The book will also be available on iTunes, Kobo, and various other digital outlets, as well as being available in paperback, and will also come in two editions, one with the sex scenes for those who like a little bite with ther fangs, and one without, for those whoe like a little bit more fluff. I just haven’t gotten round to doing my admin work yet :) There’s also already a fandom tag, which is #Phangs and #Phangdom and because I’m a weak creature and easily lead, AU fanfic on my Ao3 under original works, most of which is Adult 18+ in nature.
You can read more about my other ongoing works by clicking on my blog Welcome Page (x), and also at www.joydemorra.com for any upcoming news and announcements. Alternatively you can subscribe to my Newsletter (x) which I do promise I’ll update soon. I just had some fairly intense health stuff to focus on for the last few months that took priority, for which you have my apologies and my profound thanks for your ongoing patience and support.
Given the nature of my work, if you are under the age of 18, I do ask that you respect my boundaries and refrain from interacting with anything on my blog that is labelled 18+. I try very hard to keep my blog as safe for everyone as I can and respect your boundaries. No mean feat when you’re known across the Internet as “the crucifix vampire nipple lady” :P
If you need me to tag something for trigger purposes, no matter how silly you think I might think it is, please let me know, I will be more than happy to do so. Also while I do try very hard to be conscientious of the things I do and say, sometimes I will inevitably make mistakes or misspeak, and it is important to me that it be brought to my attention so I might correct my behavior and apologize. So please don’t be afraid to tell me when I’ve got my head up my ass. I make no pretenses at being a good person. I’m just trying my damnedest not to be an awful one.
Other places you can find me on the Internet include:
Patreon! (x) where I will soon be launching my “How To Write Fiction With ADHD Without Losing The Plot” series, something I have been working on for quite some time and am incredibly excited to be sharing with you!
Twitter (x) where I occasioanlly yell at clouds and retweet all the funny and poignant things you lot say.
Facebook (x) where I mostly hide and don’t interact with anyone because it’s Facebook, but will be more active once book stuff starts going live.
Twitch (x) where I occasionally stream suriving the apocalypse in the frostbitten world of Frostpunk.
Ao3 (x) where I post my fanfic, sometimes even of my own work because I am weak-willed and easily led astray.
I also have a Ko-fi (x) where I cross post my Patreon work for anyon who doesn’t like Patreon. It also functions are my general tip jar, so if you like what I do here and would like to help me keep doing it, tips are deeply appreciated though by no means expected. I do what I do on tumblr primarily for love, and I’ll keep doing it for as long as I can, for as long as I’m capable.
Thank you for reading this far, and remember, take care of yourselves and each other. You’re more important than you’ll ever truly know, and you make the universe a better, brighter place simply by being here 💖
376 notes · View notes
jmtorres · 3 years ago
Text
Did it, because I would rather tumblr make money this way than off of post+ BS. Part of me feels like it's a high cost but good grief I pay $5 a month for MarioKart Gold, like, it's worth it to me? I am on tumblr approximately every day, it is one of the ways I feed my ADHD brain enough varied input not to crawl the walls, so it was a worthwhile investment for me.
Tumblr media
[image description: screencap of "Ad-Free Browsing" tab of Tumblr settings on desktop/browser view, showing "Your subscription is active" in a green highlight box, describing the plan as "Enjoy Tumblr without interruptions from ads" and "$39.99/year" with a button below to "Cancel subscription"; a "Payment method" description with credit card information blacked out by the screencapper for user security, showing a date of February 25, 2023 for the next payment; and a button at the bottom to "Contact support" if you "Need some help with your subscription?" /end id]
Couldn't do it through the iOS app, had to do it in the browser, but that means apple doesn't take a (n enormous) cut, and more money goes to keeping the tumblr servers from doing a whoopsy or whatever the silly error message is.
I suspect some people are having a kneejerk negative reaction to the idea of a subscription service because we're starting to have more prominent conversations about how the digital world and digital providers want us to pay for a subscription rather than buying media outright (ie Adobe and Microsoft switching to a model where you have to pay monthly to access their software and your files, and streaming services like Netflix, Hulu, Disney+, Spotify, instead of just buying DVDs/blu-rays/CDs/or even non-physical purchases like off of BandCamp, although there's also something to be said about if you don't download your digital purchases and expect to be able to get them out of the cloud from whatever device then you're at the mercy of the media provider anyway). (Sidenote: is my comparison of MarioKart Gold essentially doing what Adobe does re making you subscribe for software? Sort of, but. MarioKart updates with new race tracks/variations of race tracks every 2 weeks, periodically comes out with new drivers, carts, etc, and also has a live component where you race against other users. And technically you can get most of that without paying anything! But my point is they're actually making the game interesting on an ongoing basis, rather than it being a static piece of software that COULD be a single purchase, and that's how I justify subscribing to them.)
SO THEN, Tumblr. What does Tumblr offer that makes it worth a subscription rather than a one-off purchase (possibly elsewhere)? Tumblr is not merely a media storage system, although the immense amount of images and video people upload on here is part of why they need significant funds to function. It's also (micro)blogging/interaction. Their service is a real-time, (approximately) social media service, not just media/software rental like the subscription services you may have seen rants telling you to get rid of. Tumblr is a way I get varied viewpoints and interests from users I have chosen to follow, not from an algorithm designed to get clicks out of me like on youtube or tiktok or instagram or twitter. (Obviously Tumblr does have "best stuff first" and "because you liked" which we do not want, but hey, they are settings you can TURN OFF.) Tumblr is a hub where I get to see what you are all watching and reading and drawing and making and analyzing and writing. This is not readily duplicable by following your individual RSS feeds the way something like Spotify is duplicable by buying the music you want directly from the actual artists. I mean, SOME of you have your own sites and sell the art you make, but I don't think most of the people I follow are monetized actually, and by and large, the general internet user no longer has (or knows the meaning of) an RSS feed, and I'm not sure the general internet user ever did or if I was in a weird niche in the early 2000s. I can't aggregate you all to view easily without this service, so Tumblr is actually doing me a service.
Both MarioKart and Tumblr are doing something I like: you CAN get most of the functionality for free, they're not requiring you to pay. I think, unfortunately, that also means that a lot of people devalue the functionality that's provided, because there's a mentality of, if I can get it for free, it's not worth anything, is it? But before you decry Tumblr offering a subscription for ad-free service, remember a) no one is making you pay for it, you can just choose not to spend money on it if you don't think it's worth it to you or if money's tight, and you can still get most of the functionality of Tumblr, and b) Tumblr DOES have functionality most of us like or we wouldn't be here. We like having our dashboard in reverse chronological order. We like the tag system. We like the ability to post high-quality pictures, videos, and long text posts. We like being able to reply to posts. We like being able to send asks (and some people like being able to receive them!). We like the communities of users we've chosen to follow, that Tumblr allows us to connect to. We like not being relentlessly tracked like on Facebook, and frankly, paying for a subscription DIRECTLY allows that to keep being a thing, because the other main option for income for a site like Tumblr is relentless tracking used for targeted ads. Like Facebook does.
Sure, there are problems with Tumblr. It's not perfect. It could stand improvement. It's made mistakes in the past (though not all of them are its fault--if you want to get upset about certain types images and words no longer being allowed here, you need to get mad at Apple's walled-garden philosophy about their app store, and about United States legislation limiting what's allowed on the internet. I'm not being super specific here so my comments don't get shadow-banned due to "bad" keyword usage. And that's a 'feature' of Tumblr that is super terrible but you can definitely point the finger at Apple throwing a tantrum and Tumblr trying to keep questionable posts from popping up in Apple's test searches so that the Tumblr app can stay in the iOS store. I've read about Apple/the iOS App Store limitations being extremely up for interpretation to the individual Apple tester, like, it's inconsistent and therefore extremely difficult to meet the standards because the standards are not standardized. Tumblr is basically doing the best that it can on that front).
But my point is, for all of the problems with Tumblr, you and I are still here using it, it has enough features that make it worth using to us. And it's up to you if those features are worth paying for, for your own use case and budget and priorities, but please acknowledge that there are positive features, even if you choose to take advantage of the option to continue using them for free.
And if you do become a paying subscriber? That means Tumblr is more likely to listen to you and me about future changes and future problems.
This is 100% new and 100% Tumblr with 0% ads.
If you love ads, then this post is not for you. If you love Tumblr but hate ads and want the one to continue without having to endure the other, then this post is literally for you. Hello, you.
As of today, you can set up ad-free browsing on your personal desktop computer, from anywhere in the world, and then enjoy the same effervescent Tumblr you know and love (yes, including mobile) without the interruption of ads. Scroll away.
Some caveats:
It’s $4.99 for a month of pure, unadulterated nonsense.
If you like a discount, you can get 33% off (that’s four months for free) at $39.99 for a whole year. Imagine.
This is opt-in. You don’t have to do this. We won’t make you.
How do you opt in?
Easy! Just go to your Account Settings on desktop and hit "Go Ad-Free." From there, you can choose to pay monthly or yearly:
Tumblr media
And that’s it! You’ll be able to enjoy your favorite blogs and posts without any pesky ads getting in the way.
That’s all for now, Tumblr. Back to your blorbos.
100K notes · View notes
plounce · 7 years ago
Text
compilation post of whichever bbc america employee who wrote the captain’s blogs being an ally and a hero via treating janto as more than just a sex joke, being genuinely warm and funny, and mentioning ianto super fondly in nearly every single entry (especially s2) because jack is in love with him despite what everyone else would have you believe. but i, a gay, know, and so does bbc america social media staffer circa 2007-2008.
some may call this “fringe canon.” i call it “some of the only specks of canon that respect the show’s canon gay relationship as the loving and affectionate relationship that it is.”
text pulled from ianto’s desktop, which is a fun read despite the defunct photobucket embeds - i only included captain’s blog stuff, but there’s a couple more janto tidbits in there. none as nice as these, though. under a cut because it is Long.
season 1
(one really cool thing the writer did for early season one is have jack note unexplained energy surges in the lower levels of the hub - handy foreshadowing for cyberwoman)
1x03 (ghost machine - alien tech leads to murder mystery):
Other issues: According to Ianto, Splott is pronounced "Sploe". I think Ianto may have been lying.
Upcoming issues: Energy surges in the lower areas of the hub still unexplained; there have been several more in the past week. Ianto volunteered to investigate, but has not discovered an explanation yet.
1x04 (cyberwoman - the episode where ianto’s secrets are revealed and we all have a Bad Time):
Other Staff issues: Ianto Jones temporarily suspended from active duty, to return at my discretion. His love for Lisa clouded his judgment, and he made some serious mistakes - but I have to wonder if I would have done the same thing in his situation. Ianto's personal needs and emotional state have been overlooked; I should not have missed something like this. During his suspension, I will try to spend more time with him. Hopefully we can establish a closer working relationship.
1x05 (small worlds - the one where the “fairies” abduct the little girl and jack has to let them, which makes everyone else very mad at him):
Staff: Ianto Jones' first week back after his suspension four weeks ago. I have tried to put him at ease, and have briefed the team to be as sympathetic as possible. Obviously there is a level of resentment remaining, but they are trying.
Other Staff issues: After what happened with Jasmine, nobody is talking to me (except Ianto). They'll come around. Everyone comes around.
1x06 (countrycide - the one with the cannibals and we all have a Bad Time):
Staff: Brought Ianto Jones along to get him out of the Hub, out of the city, get some relaxing time in the country with the team. May not have been the best decision I made this year.
1x07 (greeks bearing gifts - mindreading and predatory lesbian, the episode):
Other Staff issues: Ianto is still suffering, but putting on a brave face. Will try talking to him over dinner, outside the Hub, see if there's anything more I can do for him.
1x08 (they keep killing suzie - the episode that ends with ianto hitting on jack with a stopwatch):
Other Staff issues: Ianto and I stayed back to go over the case files and reorganize the safe. Internal security cameras were temporarily shut down to run diagnostic tests, so there was no monitoring of the Hub for approximately four hours - but there were no security breaches to report. Everything went very smoothly.
Upcoming issues: Need to requisition a new stopwatch. Old one damaged while moving a desk.
1x09 (random shoes - outsider pov, the episode):
Staff: Things seem to be calming down with everyone. Ianto is coping well; I'm pleased with his progress.
1x11 (combat - owen has manpain and fights weevils. whatever):
Other Staff issues: Ianto surprisingly proficient at the good cop/bad cop routine. Although obviously, he's the good cop. He's too cute to be the bad cop.
1x12 (captain jack harkness - jack and tosh are stuck back in time during the cardiff blitz and owen and ianto fight about what to do about it):
Other Staff issues: Ianto tried to stop Owen opening the Rift, and actually shot him in the shoulder. Everyone except Owen is finding this very amusing.
season 2
2x01 (kiss kiss bang bang - jack returns from his doctor who appearance, deals with his terrible ex spike from buffy, and asks ianto out on a proper date):
Other Staff issues: Gwen is now engaged. I'm happy for her, but I'm concerned about what it might mean - can she stay here, still keeping everything from Rhys? I worry that we're going to lose her. And I worry about Ianto. I think he took it harder than anyone when I ran off. It's going to take me a while to make things up to him. He is a decent, good man, and I'm lucky I met him.
2x02 (sleeper agent - the episode with sleeper agents):
Other security issues: Gwen taken hostage again. I’m beginning to think she’s jinxed. And why am I never taken hostage? I could be a good hostage. I never get any of that Stockholm Syndrome action. And according to Ianto, my bad cop routine needs some work.
Other Staff issues: I’m in trouble with Ianto for duct-taping a CB aerial to the SUV. Apparently the tape made the wing mirror “disconcertingly sticky”. Still, nothing a bit of warm, soapy water can’t fix.
2x03 (a man out of time - tosh’s cryo-boyfriend they unfreeze once every year. also, jack and ianto Have A Talk and then make out):
Other Staff issues: Ianto and I made some progress, talked things through. What happened with Tommy got to us all. I know it got to Gerald and Harriet, too, back then, considering what they went through to try and make up for it – but that’s another story for another day.
2x04 (meat - the episode with the whale and rhys finding out. some of the team gets taken hostage and ianto tazes a bad guy in the head and growls out “pray they survive.” or something and it’s VERY GOOD TELEVISION):
Staff: Ianto turned into a fighting, kicking, stun-gun machine, it was very exciting. I must get put in danger more often.
2x05 (adam - an alien infiltrates their memories and inserts himself into the team, and his plot is foiled by ianto reading his diary and finding inconsistencies because he’s Very Clever):
Other security issues: The only thing out of place was Ianto’s diary, which I found in my office. Naturally, I gave it back to him immediately after reading through it. Several interesting factual errors in there - and I thought he would know how to convert inches to centimetres. You think you know someone...
2x06 (reset - martha visits and owen ‘dies’):
Security: Must speak to Ianto about using names from ‘’Sex and the City’’ on fake IDs. Last week he sent me into an alien smuggling operation as ‘’Mr Big’’, without telling me. Wish I knew how he kept a straight face. I’d give him a stern talking-to, but I think he enjoys that too much.
(right after this is a very solemn paragraph about owen dying lmfao)
2x07 (dead man walking - jack resurrects owen and owen has manpain about it):
Other Staff issues: In big trouble with Ianto for risking everything to go and get the second glove. I should have told him before I went, but he’d probably have cuffed me to the chair to stop me. And I’ve fallen for that one way too many times.
2x08 (a day in the death - owen continues to have manpain):
Other Staff issues: Now that we have all tried, it is clear that only Ianto knows how to operate that damn coffee maker. I suspect it contains alien technology.
2x09 (something borrowed - gwen gets married, but not before playing host to shapeshifting pregnancy alien):
Security: ... Female Nostrovite proved to be extremely resilient to bullets, so I had to get my massive weapon out and take care of business. Ianto is still quietly chuckling about that now, days later. Gwen’s mother taken hostage. Must run in the family.
2x10 (from out of the rain - the terribly written ianto-’centric’ episode about circus film reel ghosts):
Alien activity: ... We only managed to save one of them, but that’s better than nothing. Sometimes in this job, one is enough. I can still see the faces of the people we lost - they weren’t part of this, they were just living their lives, until they were taken. Ianto took it badly, this one really got to him.
Staff: Have convinced Ianto to take me to a normal cinema, to see an actual movie. He’s also curious to know if I still have my old circus outfit. If I can find it, I think a private show is in order.
2x11 (adrift - gwen pursues a mystery about the people the rift takes and then puts back traumatized, even though jack resists. ianto is the one who gives her the info she needs. she also walks in on them naked in the greenhouse. wild):
Staff: Gwen would never have found the facility if Ianto hadn’t helped her. He was wrong to do that. But, of course, he was actually right in the end. There’s no way Gwen would have let it go. I should have trusted her with the information, but I knew what it would do to her. Sometimes, the only way to realise that you shouldn’t look behind that door is to actually go and look. Gwen learned that. Nikki learned that. We all did.
Other Staff issues: Seeing Gwen experience it for the first time took me right back to when I first heard that terrible scream. After Gwen had gone home, I just held on to Ianto for a couple of hours, as tightly as I could.
2x12 (fragments - a bomb explodes and everyone gets a flashback to how they joined torchwood 3 as jack and gwen rescue them from the rubble):
Staff: Everyone came out of the explosion pretty beaten up, but no major damage. We got lucky. And so did John. Because if he’d killed anyone - if he had hurt Ianto - I would have slowly ripped him limb from limb.
Other Staff issues: Although I have to say, Ianto does look good all messed up and dirty.
2x13 (exit wounds - jack’s brother comes back and blows up half of cardiff and kills owen and tosh):
Other Staff issues: The one glimmer of hope in all this? I still have Ianto and Gwen. Whatever the future throws at us, whatever madness the Rift vomits out next, whatever we have to face - Torchwood will be ready.
Capt. Jack Harkness.
Ianto, I know you’re reading this over my shoulder, pretending to fix that damn shelf. So get over here and take me out somewhere.
22 notes · View notes
csykora · 7 years ago
Note
heya ! first of all sorry for spamming your motifs like crazy but a. i find your posts incredibly fascinating and b. you love alexander semin even more than i do which i didn't think was possible. OKAY so actually i have a question about How To Find A PT--i'm a figure skater and i want my knees to Not Do Bad Things anymore and i'm wondering if you might know how to find a PT who could help me from the perspective of making me a stronger skater and not just like. able to walk normally
hello—
No need to apologize! All I ever ask is that people add really great and/or dirty tags to my posts for me to laugh at on long shifts, and your Kuzy tag game is fuckin outstanding
(This goes out to everybody—I want to write for fans in the back, so even if you’re not up for talking directly, go ahead and engage however much you like. Yeah, I do usually take a peek at your tags or your blog if I see you interacting with a post, because it’s fun to see what you all are into, and sometimes if it looks like you have questions about something I’ll pounce, because I want information to be available. Please don’t worry about me peeking though. And also know I really won’t notice if either of us do something Tumblr-rude.)
b. Thank you! I do love him a frankly baffling amount. Your love is also lovely and I love seeing all of it. I vote we be friends and the circle of Sasha-love will only grow
Tumblr media
(Listen I’ve been on tumblr for 5 minutes and I tried to fight this being my Thing for 2 of them, but what the hell. I’ve got a batch of new followers after last night and this is as good a way as any to warn you all)
Tumblr media
He’s a thoughtful and a kind and a happy human being 
Tumblr media
or possibly a husky in a hockey sweater. We just don’t know. I love anyway.
How To Find a PT
Congratulations on moving forward on strengthening your skating; I think this’ll be a lot for fun for you. This was a pretty cool question, because I’m not as familiar with figure skating resources and I got to do some exploring. A lot depends on your needs and wherever you are, but I think you’re going find more options than you might expect.
First, I agree that looking for a PT with experience working with skaters is probably right for you. You have a clear goal for yourself, and like I’ve discussed before on this blog your baseline posture/mobility and the ideal posture/mobility for what you want to do are gonna be different from a non-skater’s.
A good PT will do their research and be able to help you even if they haven’t seen exactly your case before, so if it turns out there isn’t a skating specialist around that’ll work for you, you can certainly get some benefit from a general sports PT. But if you can, filtering for skating specialists will save you time and trouble.
Use your networks
Figure skating is figure skating. Somebody is gonna know somebody. 
Figure skating culture can also really convince you that you the skater are not supposed to ask for things, though, so it’s a good idea to sit down with a notepad for a minute and think about:
what have I tried and what’s worked for me? 
 Have you had injuries or conditions that required medical care? 
Were you given those little paper sheets with rehab exercises to do and did you try them? 
Have you noticed any patterns or tricks like, “hey, it really hurts when I do ___ but if I ice before I do it that helps.”
What are my goals?
Are you thinking in terms of rehabbing to get back to your earlier level, or preventing further injury, or both? 
What’s your time frame? How much time can you spend, and how much do you want to?
Do you want to be in-and-done to get an official opinion and then work by yourself, or do you want more hands-on guidance and a working relationship?
 What kind of person are you looking for—a strict coach’s attitude to drive you, or someone who’ll give more encouragement?  
Then you can tuck that away and start poking around. I recommend a 50/50 of googling and talking to people, but go with whichever you trust and are comfortable with.
If you go to a rink, you can ask basically anyone there for their ideas. (You don’t have to tell them anything personal, you can just say, “So, skating, huh. You know any folks that’d help a fellow skate better?”) Any figure skating coach should be cross-trained, and they should know their resources. Rink managers will also know the names of local providers and may have deals worked out. If it’s a university rink, there’ll be an in-house sports med department who’ll often offer some services even if you’re not a competitive athlete for the school and will know your options. The skate mothers will Know.
Ask providers you’ve worked with in the past. If you have a primary care doctor, let them know you’re interested in PT. If you’ve ever had surgery on your knees, check in with that provider and see if they have any names to refer you to.
If you’d rather internet, you can search the American Physical Therapy Association database at MoveForwardPT by region. 
(I’m offering US resources based on your profile. If you or anyone else wants suggestions for other countries, let me know.)
 It’ll then offer you the option to filter by Practice Area—you’ll want to try Fitness and Wellness and Musculoskeletal. 
Tumblr media
Each provider will then show up with their “practice focus” like this:
Tumblr media
They write those themselves, so there isn’t really a standard meaning. ‘Sports Physical Therapy’ suggests that they do relatively acute, focused rehab. Seeing ‘Athletic Training’ and/or ’Sports Performance and Enhancement’ suggests that they work longer-term one-on-one as you train. (A lot people say both. Again, these just give you a sense of what they want you to know about them.)
If you then select a provider, you’ll see more on their professional experience, facility, and availability, with their contact information.
If you’re a member of US Figure Skating, you should be able to search for local providers and referrals from other skaters through the U.S. Figure Skating National Medical Network.
I personally wouldn’t trust USFS with a piece of string, and I don’t know how useful the database is outside of, like, the skating hub cities. But the PTs in the network are independent providers—they don’t all work for USFS, and most will work with any clients. You just need a membership ID to search the database, so if you aren’t a member you could find someone at your rink who is and ask them to help you search.
Once you’ve got a name:
Go ahead and contact them in whatever format you prefer. Their contact info is on their bios for a reason! You want to know if you’re a match before you start working together, and so do they. Just like a therapist or a surgeon or a tattoo artist, a good PT will want to tell you about their experience, the kinds of problems they see, and their particular style. They should be telling you about their privacy policy, and their non-discrimination policy, before you even ask.
When you meet:
Bring your notes
Go ahead and count the little things. We keep personal things in our offices on purpose to tell you about us. If you don’t like how much Chicago gear they have on the wall or how they talk to you or how they carry themselves around your personal space, count that. If you can chat comfortably with them, count that too; that’s worth a lot more than their degrees or how many other skaters they’ve seen.
Look for signs of respect. Look at where they sit: all healthcare providers are supposed to be trained not to get between you and the door, so if you see them deliberately moving, that’s a good sign. 
PT have to get their hands all up on patients, and the good ones are great about it: you should hear them say exactly what they’re going to do before they touch you,  explaining while they work, and see them deliberately warming their hands, only moving your clothes as much as they have to for each assessment, and covering you back up as soon as they’re done with something.
If it’s an office practice, talk to the nurse! They see all the patients that the PT sees, and their clinical judgement informs the whole practice. Ask them about the practice and tell them about your goals. The PT is a specialist, while the nurse is there to provide holistic care: they know a little about all the different resources that might be able to help you. And they also know or have worked with or know a nurse who’s worked with everybody in the area—they’ll be the one to say, “hey, water therapy really worked for our last client, maybe try that,” or “Dr. Bronner over on Spring Street does more work with clients like you, maybe give him a call.” They’ll also be able to help you with scheduling, which is a pretty big deal for long-term PT.
If one PT isn’t a match for you, it’s very appropriate to ask for them for recommendations!
Last:
Keep what you want in front of you, but be open to trying things you don’t expect. It’s very possible that a good PT will look at you and say, “I hear that your knees are bugging you, but that’s only happening because your hips are fucked up,” or “We’re going to start by relaxing your lower back and building strength in your core so you can use a posture that stresses your knees less.” Or you’ll go in wanting exercises to do on the ice but what ends up working for you is heat therapy or strength training. Try stuff, give it some time, and if that one thing isn’t the thing for you (including the first PT you work with), you can move on and something else will be. 
Good luck and you should let me know how it goes!
5 notes · View notes
ismaelqcho280-blog · 4 years ago
Text
9 Ways Mediabox Hd Apk Can Make You Invincible
Listing of most prominent smartphone applications
We do not commonly suggest streaming services to people. After all, everybody has their very own choices and also there are plenty of excellent choices out there.
The app additionally allows you share jobs and entire classifications with other individuals. This makes it wonderful for family usage, small groups at work, or other such groups. It's likewise wonderful for things like grocery store lists, honey-do listings, or any type of other listing. You get all of the features free of charge, albeit in a somewhat limited capability, such as two pointers per task (costs makes that infinite). Some other outstanding choices in the area consist of Todoist, Microsoft To Do, Any.do, and Ike.
The apple iphone XR was the top-selling smartphone model last quarter.
And also, you can publish your pictures to Imgur without limits for sharing to various places. However, there are a lot of amazing choices that don't cost you anything. These solutions are typically sustained by advertising, sponsorship of some type, or another thing. However, there are still some absolutely exceptional apps available that you can utilize free of charge without paying a penny. This is a best all-time listing, type of like hall of fame, so the majority of these apps aren't necessarily new.
Then pick "Digital Wellness" alongside the icon of an umbrella. The attributes are instantly secured by a four-digit pass code so kids can not turn them off on their own. From there, moms and dads can decide to turn on Screen Time Monitoring, which restricts individuals to two hours on the application per day, and Restricted Mode, which obstructs some web content. Bear in mind, Restricted Setting isn't foolproof, as well as even with the filter on, children utilizing the application by themselves could find age-inappropriate videos. As of 2020, there's a Family Safety and security Mode attribute that lets moms and dads connect their very own accounts to their youngsters to manage time frame as well as Limited Setting, and also it includes straight messages as well.
Top Apps Worldwide for Q1 2019 by Downloads
YouTube is the biggest host of videos on earth and also provides monetization choices to customers. I believe the rewards as well as coins earningvia coins is in fact a rip-off. I in fact made 70.00 through the app after playing their coin video games. I have still yet to get anything, so no 7-10 is not accurate.
With a monthly subscription, you can pay attention to albums in order, remove advertisements, and download songs for offline listening. When you have a smartphone at your fingertips, making life considerably much easier is not just possible however probable. Apps are fun, as well as nowadays, they're additionally quite darn beneficial to automate the majority of life's ordinary processes. Use these amazing apps to get the liquor off the beaten track-- like managing to-dos, intending dishes, and making payments-- and also obtain your time back.
Data Go by Google, Ranking: 4.6.
Or you can use your phone calls or social media fans to find close friends already on the app. Lots of youngsters on Tik Tok like to produce video clips, but plenty of individuals do not upload themselves-- they just use the application to locate and comply with content makers.
SHAREit is the very first non-Google performance application to make the listing. This decade has been a time of amazing growth for the mobile economic situation. With a 5% rise in downloads, and also 15% development in customer invest (leaving out third-party Android) year-over-year in 2019 this looks readied to continue in 2020. For a much deeper check out the most effective apps and also games of 2019, examine our blog post on the mobile highlights of 2019.
Price: Free on iphone App Store
Which apps are most successful?
At a rumored $400 price tag, it will likely be the iPhone for people that are anti-Face ID and big-screened phones. But if you want a bigger phone with the latest bells and whistles, then it's a great time to buy any of the phones we recommend above, as Apple likely won't update its core range until September 2020.
Nonetheless, we truly like the combination of YouTube Music and YouTube. For one price, you obtain limitless songs from YouTube Songs with sufficient tracks to compete with Spotify and also Apple Music.
Submit surfing is something everybody unavoidably has (or wants) to do, so you may also do it with a qualified, amazing documents web browser. Strong Traveler is pretty much like it gets in the file explorer apps world. It includes Product Layout, archiving assistance, assistance for the most preferred cloud solutions, as well as even some more power individual stuff like FTP, SFPT, WebDav, and also SMB/CIFS assistance. It looks great, it's extremely secure, and it simply functions well. There is a 14-day cost-free test with a $2.99 cost at the end of it.
What apps are trending?
iPhone and Android are two different systems, so it's natively impossible to get Android apps on iPhone (iPhone 7 and iPhone 6S). And Android apps are mainly designed for Android phones. Also, you cannot install applications that are not authorized and owned by Apple.
The 15 Best Two-Player Mobile Gamings to Play Anywhere.
The number of mobile apps downloaded and install in 2017 is 1 Billion. What it does is allow you check your credit score absolutely free. On top of that, the app will certainly alert you when there are major modifications to your credit report. It is an OTT service offering ad-supported unabridged attribute films for free. The Application is had by Screen Media Films (SMF), so you can anticipate a constant inflow of movies distributed by the SMF. The service also organizes internet series as well as initial programs which can be streamed without paying a single penny.
What is replacing Showbox?
Crackle. Sony's Crackle is one of the most popular free movie apps on mobile. It boasts a bunch of hit titles, various TV shows, and a bunch of genres to choose from. It even has Nielson tracking software so you can be a part of the stats when it comes to popularity.
I was looking for totally free IPTV service for flicks, boxsets as well as live TELEVISION. It has a built-in library available to conserve your favored movies as well as enjoy it later on. Without making use of HDD or data manager space of your smartphone you can conserve movies or dramas into the collection of the application. This application is the heart of countless customers as well as boosting each day as a result of the best service giving. Additionally, it lets you enjoy films trailer as well as know other needed details concerning the movie.
Truecaller APK For Android
The charm of the website is the top search box which is timely as well as easy. One can quickly find the episode number which they desire to watch. There are many video services, legal ones, there not a great deal of cash and some have ads to pay for some content or there is membership. SHOT MOVIE HUB. FROM GOOGLE PLAY SHOP. SHORT 15 SECOND ADS BEFORE YOU BEGINNING THE FILM. NO TELEVISION REVEALS BUT ALMOST JUST AS GOOD AS SHOWBOX FILM COLLECTION AND ALL LEGAL. ShowBox is Dead for good, the programmers have actually stopped the assistance of the Application.
Regardless of which kind motion picture you love to enjoy, you are https://mediaboxhd.site going to discovered right here all category films like Action, comedy, computer animation, adventure, as well as biography and so on . My Download Tube can be your famous choice if you can endure that. Else, you can consider my other choices for top totally free motion picture streaming sites no Register. TorOWL is a brand-new film streaming site, no register needed. Therefore, you can arrange flicks easily making use of numerous filters like groups, formats, ranking, ballots and also even more.
Yes films.
The solutions of Hulu into Live TV began in 2017, before that it simply use to hold a series of TV programs both new as well as old, motion picture as well as various other infomercial programs. It works as a crossbreed of Sling TELEVISION and also Netflix, using both TELEVISION Shows in addition to Online TV to its individuals.
Can you go to jail for streaming movies?
One more method to use Netflix without a Credit card is by using a Netflix gift card. You can buy Netflix gift cards on Amazon or eBay and you can also get them as a gift from your parents or friends. After grabbing your gift card, you need to enter your voucher id to activate it and use Netflix.
Titanium TV as well has a huge catalog of films and TV shows. From the lately released films to the latest episodes, you will certainly find all of it here. I am also impressed with the quality of video clip playback this application offers.
How can I watch movies online for free on my phone?
Technically, yes, movie box is illegal. You are streaming a movie/tv show without the original owner's permission. MovieBox does not have the rights to show owner's copyrighted material. As for getting caught, however, the chances are slim to none.
I needed to assemble this list because Showbox lately obtained shut down permanently. Showbox APK was just one of the most widely utilized streaming apps for flicks and also TELEVISION shows. Given that Showbox is not working anymore, it just made good sense to locate its substitutes.
0 notes
actionfigureinsider · 4 years ago
Text
Below is a column/editorial that I wrote 10 years ago after the sudden passing of my dear friend, prototype painter and pop culture enthusiast Eddie Wires.  I’ve tweaked a few things here and there for clarity, and added some additional pictures.   Eddie was such a force in the industry.  If you own any toys from Toy Biz, Palisades, early DC Direct and countless others then you probably have a little piece of Eddie in your collection.   He was self-taught and built his business from the ground up and he ran it with love, passion and integrity.  There were several in the industry that screwed him and didn’t pay or shorted him for his work, but he always gave them a second chance to do the right thing.   I’ve never met anyone that didn’t LOVE and adore Eddie after meeting him.   And even after 10 years I miss him every day.
This is a blog that I started over a month ago, that I keep putting off, because it was just too painful and finishing it would make it all the more real. Tonight at a Dave & Busters in Georgia and in a few weeks at New York Comic Con there will be gatherings of friends and family to celebrate the life of Eddie Wires. I’m not able to attend these because of other family obligations, but still wanted to participate by posting this blog:
THE FIRST AND LAST TIME I SAW EDDIE WIRES
There’s a lot of great stuff in the middle of these events with my friendship to Eddie Wires, but in this blog I’d like to talk about the very first time I met Eddie and the last time I saw Eddie.
I don’t remember exactly what year it was, but it was roughly 10 or 11 years ago, and it was in June. It was Eddie’s birthday. These days there’s always an easy way that I remember when Eddie’s birthday falls. The pants tell me so. You see there’s a little “Easter Egg” on one the Marvel Legends/Hulk Classics figures that Eddie painted. In wave 2 of Hulk classics, if you were one of the people fortunate enough to find one of the Absorbing Man figures in that wave, on his prison pants there are a string of letter and a string of numbers that are supposed to be his prison ID. The letters are “PRJFEW” That stands for “Jesse Falcon, Phil Ramirez and Eddie Wires.” The numbers are “060572” That’s Eddie’s birthday. June 5th, 1972. It’s the day before my youngest daughter’s birthday.
Back to the first time I met Eddie. This was still pretty early in my “toy journalism” career. I was a new friends with Jesse Falcon of Toy Biz (Now Marvel/Disney) and he was in LA for some meetings. I was working for Disney Animation at the time so I had free access to Disneyland for me and 3 friends. I wanted to introduce Jesse to another friend of mine, Chris Tallman, who, like Jesse, was into improvisational comedy. At that time Chris was working for Disneyland as “the Mayor of FrontierLand.” Jesse, Phil Ramirez and I headed out to Anaheim to the“Happiest Place on Earth”.
Fast forwarding past spending the day at the park riding rides, talking nerd-stuff and then having several drinks at the Anaheim House of Blues. Jesse invited Chris and I out that night to celebrate the birthday of one of their friends, who was also a painter for Toy Biz… Mr. Eddie Wires.
Before working in toys, Eddie was a bartender at “Dave &Busters” in several cities. For those of you that might not be familiar with “Dave & Buster’s” it’s like the adult version of Chuck E. Cheese; great food, lots of video games and some VR stuff thrown in.
That’s where he met the love of his life, Jennifer, who would later become his wife. Jennifer still worked for “Dave & Busters,” as a manger and helping new locations open all over the country. That’s where Eddie’s party was, at the “Dave & Busters” in the Block at Orange. That was our night; meeting Eddie and his friends, hanging out with Toy Biz guys, free food and free video games all night long. It was like we had died and gone to heaven. To this day that night is still in my top 5 greatest days of my life. Chris and I couldn’t stop grinning that night.
At the amazing center of it all was Eddie Wires. There was no weirdness about these two goons crashing his party. Any friend of Jess and Phil’s was a friend of his, and he was more than happy to talk toys and shoot the digital undead with these strangers until the sun came up. After 10 minutes it was already like we had known each other 10 years.
At the end of the night he hugged us and we exchanged emails. That was just Eddie. If he knew you, he hugged you. I think all of us have been the recipients of voice mails or emails from Eddie informing us that the next time we saw him that we could expect to have his arms around us. And he was always a man of his word.
That was the first time I saw Eddie Wires.
#gallery-0-4 { margin: auto; } #gallery-0-4 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 25%; } #gallery-0-4 img { border: 2px solid #cfcfcf; } #gallery-0-4 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */
Now for the last time….
This past July Eddie asked Abby and I if we wanted to share a hotel room with him at Comic Con 2010. Eddie always stayed at the Marriott next door to the con and for the past 5 years he’s always allowed the AFi team to use his room as a hub for dropping stuff off, checking email, uploading stuff or just taking a break. This year he suggested “why not just stay together?” He already had the room booked and it had 2 beds. It would be great to spend the time together. The idea made a lot of sense to us so we did, and it was great. We loved being able to spend 5 days with him, catching up, and talking about what was cool at the show, just being with Eddie for 5 days. This was the year that “The Walking Dead” trailer debuted at the con. Eddie, was a fan of ALL things Zombies, he was already a fan of the comic and he was OVER THE MOON, that it was going to be a weekly TV show. We joked about calling each other after each episode and discussing it… except I don’t think either of us were joking. We would have loved to have done a weekly “watch party” together. I’ve really missed him since he moved to the other side of the country.
We had 5 amazing days, and went out a few nights. Then it was time for the show to end. Anyone that has been to all, 5 days of the con knows that by the end of the show you are ready to go home! It’s fun, but covering the show, the late nights, the early mornings, the crowds, the walking… ugh.
Danny Neuman took this picture. This was sitting on the top of the toilet in our hotel room. This image has hung in my house for the past 10 years.
Eddie had mentioned several times in the last 2 days of the con that he really wanted to have diner with us before we got back on the road to drive back to LA. We wanted to as well, but we were tired, we still had to pack the car and unpack when we got home, and we wanted to beat the traffic of the thousands of people leaving the show. We kept debating weather to stay or go. Eddie said he was going to help the guys from Diamond Select break down their booth, so that was going to add even more time before we could go eat. But we had a lot of stuff to pack in the car… and then we came to the decision that it was Eddie. We love Eddie, we miss Eddie and we love spending time with Eddie, so we would stay. We loaded the car. He packed up DST, and then we went to eat… and we had such a lovely time. We were just in the Marriott pub in the south tower,but there was just something so… nice about that dinner. We even commented on it several times on the drive how great that was and how glad we were that we stayed.
Time really seemed to stand still that night. While it was only 2 hours at the restaurant, it seemed like we were there all night. We talked about the con, our families, TV, movies, life, his band, and friends… everything. I’ve known Eddie for about 11 years, but it’s really been the past two years that he has really opened up with Abby and I and really gone beyond “nerdy talk” into a lot of meaty stuff and this dinner continued in that vein.
It really was the perfect evening. Anyone that has ever gone out with Eddie knows that it’s damn near impossible to pay for your own drinks or a meal. Picking up the check was one of Eddie’s superpowers. That night Abby had a plan and she snuck her card to the waitress before she came over to the table so we had the last laugh and did the near impossible… we picked up HIS check!
With the news of Eddie’s passing just a few weeks later,that evening is priceless to us. Thank God we stayed. We wouldn’t trade that for time anything… anything except for the chance to see him and talk to him just one more time.
Eddie really was the nicest person I have ever met. It’s easy to give lip service to a phrase like that, but searching the cobwebs of my mind I really can’t think of a nicer person that I have encountered in my almost 40 years of life. He would give you the shirt off of his back, literally. And then he would secretly sneak away and buy you 10 more shirts.
Like everyone that interacted with him with any frequency we miss him like crazy every day. He’ll never be forgotten.
  Call your friends.  Chat about the stuff you love.  Celebrate your past.  And tell them that you love them.
I hope you are all safe and healthy in these trying times.
Thank you for reading this.  I love you guys.
  The First and Last Time I Met Eddie Wires – Remembrance of Eddie on the 10th Anniversary of his Passing Below is a column/editorial that I wrote 10 years ago after the sudden passing of my dear friend, prototype painter and pop culture enthusiast Eddie Wires. 
0 notes
villiansarepeopletoo · 6 years ago
Text
The Disney College Program: FAQ Before Becoming a Cast Member
After spending weeks staring at the hours, minutes and seconds countdown I had rolling on my phone, my mom and I made the 8 hour car ride from North Carolina to Orlando to start on the biggest journey of my life thus far. All the Disney themed Christmas and Graduation gifts I received just made me burst into tears because I was so ready to be a Cast Member. But I didn’t know true euphoria until my very first day of training, which Walt Disney World refers to as the start of Earning Your Ears. There really aren’t a lot of resources out there that go into detail about what you should expect in the beginning of your program. It can be really nerve racking going to work for such a large company, especially when you know they have such high expectations for their employees. So I really just want to answer some of the biggest questions I had before I left.
Tumblr media
What are the apartments like? How do they match you with roommates?
Truthfully, the apartments aren’t perfect. But they provide every basic thing you may need during the time you’re going to be there, except a coffee maker.. The layout is different in each of the four apartment complexes, The Commons, Patterson Court, Chatham Square, and Vista Way (which I have listed according to how expensive they are), but generally they all have a shared living space, bedrooms that all have their own bath and house 2-4 people, along with a full kitchen that does come with pots, pans, and plates. There are pros and cons to literally every housing unit, and even if you put one as your top choice, you still may get your last choice. They do it a lot like colleges do it, when you fill out your housing info you will rank your options from lowest to highest. I won’t go into too much detail on the individual units in this article, but I’ve included a link on the listed names that will take you to the official Disney Programs blog (my opinion is biased anyways because I loved my apartment, they are honestly like being sorted into Hogwarts houses and the loyalty is fierce #PattersonForLife).
As far as roommates go, you CAN choose your roommates! But there is also an option to go random, just like in college! I linked up with all my roommates on the Disney College Program Spring 2018 Facebook page. Almost every class that comes through makes a private Facebook page for people who have applied, and once acceptances go out everyone starts pairing up as roommates. There will be a universal post that will travel around which has you fill out your likes and dislikes and your living habits. Its honestly online dating…and it’s SUPER awkward. But you just have to make the most of it. I was lucky enough to connect with 5 amazing girls all around the same age and we got along super great! None of us were from the same state so it was really awesome to get to know everyone. So once we found each other and agreed to live together, we designated one Leader, in our case we chose my friend Brooke because this was her second program and she was the only one who knew what she was doing… When you receive your acceptance to the program and pay all your fees, Disney gives you an ID number. When Brooke began filling out her housing information, she linked all of us up using our ID numbers and we accepted the invitations confirming our housing requests to be roommates. It’s a pretty easy process once you start filling out your paperwork but if you ever have questions you can always contact housing or recruiting, they work for Disney so they’re naturally super helpful and they’ll get back to you in a few days. ([email protected])
Tumblr media
Is there anything specific that I should pack? What should I leave at home?
It really is personal preference, but if you’re a shopaholic like me and want anything and everything Disney, definitely pack light. My entire life changed when I found out about the Cast Discount Store, Cast Connections. They sell everything for an insanely low price after it’s gone out of season. All the ears are $5. I went into my program promising myself I wouldn’t purchase a single pair of Minnie ears, but I had to make room for 11 pairs in my car when I was packing up my apartment.. I was still finding ears under my seats when I moved home… #NoRagrets… I also started a mug collection…you just never know what you’re gonna end up getting into. I would definitely advise against bringing any kind of warm clothing aside from like one blanket and one sweatshirt. I think I wore jeans once during my 6 month program. The kitchen is mostly provided for, pots, pans, cups, plates, and bowls should already be placed in the cabinets when you get there. If they are not, go to the Club House of your complex and let them know and they’ll give you a checklist of everything you’re supposed to have. Be sure and fill out a form with what you don’t have during your first week or they won’t replace it.
I would also talk with your Bedroom roommate a little. You’ll need the essentials such as bedding, bathroom stuff, a bath mat, shower curtain, and hangers for the closet. We split up the shelves in the pantry for food, but I suggest having a bin to put food and produce in. Luckily most of the closet space is great! I didn’t have much problem with storage for clothes. My roommate, Morgan, and I found the plastic drawer sets from Target were really helpful though just for another option if you need something extra. In my apartment, the extra closet space around the living areas were first come first serve so don’t be shy. Claim your spaces and just go with it.
What is Traditions?
Traditions is Disney’s fancy way of saying Training and Expectations. I’ll publish a complete article later on with the expectations of Traditions. A lot of sources will talk about how scary this process can be, but I promise it’s just like any other on-boarding process. You’ll basically just go to Casting and get your finger print and background check done. BE SURE AND BRING YOUR SOCIAL SECURITY CARD, PHOTO ID, AND PASSPORT, just to be safe. I thought I didn’t need it, but I was very wrong and had to go to the social security office in Orlando at 4:00 in the morning. It was a terrible experience. I got to know Snow White pretty well though.
After your legal stuff is done you’ll watch some very wonderful videos about how much magic Disney brings to the lives of guests and everyone sits and cries together…Then they give you a super short tour of FantasyLand in Magic Kingdom. I won’t spoil all the surprises, but it was one of the best days of my life. It’s long and you spend it in a classroom, but its just amazing. It’s the first day you feel apart of the company and close to the magic. It’s also the day you receive you’re Name Tag. PLEASE DO NOT STRESS OVER WHAT TO WEAR. The Disney Look may sound intimidating, but if you feel comfortable wearing in front of your grandma, then you can wear it in front of your trainer.  (I’ll publish another article about the Disney Look.)
Tumblr media
When can I go into the Parks?
Contrary to popular opinion, your first 3 to 5 days in Orlando YOU CANNOT GO INTO THE PARKS (unless you purchase a ticket or have an annual pass). After you complete Disney classical training (Disney Traditions), you will receive, what Cast Members call, your Blue Card. It’s nothing super fancy, just a small bright blue credit card with your name on it and a tiny picture of Mickey Mouse, but when you get it, it basically represents the Disney version of a Hogwarts Letter. It is your access to ALL the magic: The Parks, Free Parking, your Cast Member Discounts on food and merchandise, and it is the tool you’ll use to clock in for work in order to get paid by the big cheese himself. So don’t lose it.
What kind of Discounts and Perks do College Program Kids get? How much do you get paid?
Disney College Program Kids get paid $10 per hour. Very little exceptions to this. VERY LITTLE. So be sure you have a little bit of help, financially, when you go. We don’t often get the chance to work overtime and when you do, don’t hold your breath that you’ll always get compensated for overtime. Be prepped for $10 per hour at 35 hours a week (unless you’re merchandise or attractions, then you’ll have a ton of hours).
We get 20% off merchandise except during the Holidays (We get 40% off), which begins around Thanksgiving and continues through Valentine’s day. So Spring Kids, BUY EVERYTHING YOU CAN IN YOUR FIRST MONTH. Just so you know. The restaurant discounts vary, but there will be a newsletter in The Hub (Disney’s Employee Info Spot) telling you what locations have the best deals, and it’s updated frequently.
How much free time will I have?
I had two days off every week and it was perfect. They weren’t always back to back which was totally fine with me. You always have the option of picking up shifts (though not always outside of your location). If you know ahead of time that you need specific dates off, officially request it through the Hub, which you’ll become super familiar with after a week or two. If you have questions ask your Leaders (Managers). I was blessed with some pretty amazing superiors and I never felt uncomfortable asking questions or even sharing a concern. But I had friends who didn’t have that luxury. I know a lot of people say that your College Program experience has a lot to do with who your Leaders are.
There’s no ignoring that College Program Participants get the crappy shifts and work a lot. Go in with low expectations for your free time, but you’ll get at least one day off a week and it’s easy to make the most of it when you’re in such close proximity to the parks. I was placed at the Contemporary Resort across from Magic Kingdom and took the monorail to work on many occasions after playing in the park all morning. Or me and my favorite coworker would sprint through our closing chores to make it to 9:00 Fireworks on time and ride Buzz Lightyear’s Space Ranger Spin until close. Again, the best advice I ever received was to not skip out on something just because you’re tired. You’ll always be tired when you spend every day making sure everyone else is having a “Magical Day in Walt Disney World.”
Tumblr media
0 notes
2traveldads-blog · 7 years ago
Text
Watching people travel and eat on television has become such a staple in America. We tune in and find “the best unknown burger counter in Philly” and the “most decadent ice cream sandwich in Portland” or the “best places to eat on Oahu,” but what do you actually want to experience when it comes to food when you’re on the road?
Part of exploring the scenic route is finding your own favorite stops and bites that you go home and tell your friends and family about. We just tackled the food of Oahu and it’s now time to set some expectations… and this is NOT the best places to eat on Oahu, but the best food experiences WE discovered and how to FIND the best places to eat on Oahu (or the other Hawaiian islands).
The best places to eat on Oahu… or what to look for
We were pointed to Duke’s on Waikiki for fish and pie, and Matsumoto’s on the North Shore for Hawaiian shave ice, Trader Vic’s for mai tais… but then we found our own spots. What sounds good? Here are some quick hits for some easy Oahu favs:
Kono’s – Haleiwa, North Shore – have you tried a bomber? It’s a Hawaiian burrito of sorts, stuffed with kalua pork, cheese and sauce. And it’s delicious. Tip: eat outside and enjoy the Heiheis… just like Moana’s chicken. (actual Hawaiian word is “ka moa”)
Haleiwa Joe’s – Kaneohe Bay and Haleiwa – catch of the day, black and blue ahi, Hawaiian atmosphere you would seek out. Tip: get there early cuz they don’t do reservations.
Monkeypod Kitchen – Ko Olina and 2 on Maui – perfect combo of Japanese Hawaiian fusion. Tip:  Monkeypod is an easy alternative to resort dining if you’re staying at Aulani or another large property.
Why were these spots were great for us: because of their diverse menus, kid-friendly environments, and because we didn’t find them based on ads. If we can find delicious food and get some specifically local dishes (think poke and loco moco), then we’re good to go. The best places to eat on Oahu are going to be different for everyone and might not even be discovered/featured in a travel blog yet.
Tip: Oahu is heavily influenced by its Japanese population. There are many options when it comes to Japanese food, including sushi, katsu, and other cooking styles. And noodles. OMG: watch for saimin and then order it when you see it!
Food trucks on the North Shore of Oahu
If you ever take a trip to Portland, Oregon or Seattle, Washington you’ll no doubt see food trucks. Everywhere. We heard that there were some good ones on the North Shore of Oahu and it turns out that it’s true. Actually, I’m pretty sure food trucks as a staple in West Coast cities are because of the food trucks on the North Shore.
Just look at this totally incomplete map of food trucks on the North Shore. Some of the best places to eat on Oahu, for sure.
We found three hubs of food trucks on the North Shore. The first was just as we entered the historic town a Haleiwa. We found a few fresh shrimp options as well as a Thai, BBQ, and even Mexican food truck. See? The best places to eat on Oahu might actually not even be Hawaiian food joints. (numbers below correlate to location on map above)
#1 – Our pick: Big Wave Shrimp. Good grub: peeled garlic butter shrimp. Always peeled, otherwise it’s just a mess with no benefit to peeling them yourself.
The second hub was just after the bridge into Haleiwa. Again with the shrimp, shrimp and more shrimp. If you can get parking, send one of your travel companions to one truck and you grab a shrimp plate from another.
#2 – Our pick: any that have their “pass” rating posted clearly and with a short line. Good grub: all the shrimps (peeled, of course. Always peeled).
The third and favorite North Shore food truck hub we found was northeast of Haleiwa near Sunset Beach in Pupukea. With ample parking, restroom facilities across the street (yay for travel with kids!) and a wide variety of cuisines, this spot takes the cake. This food truck site is where we found some of the best poke around.
#3 – Our pick: Aji Limo. Good grub: Hawaiian Poke with sesame, seaweed and fresh ahi. It’s everything you dreamed poke could be.  Good grub: Poke and eating all of that goodness. Hawaiian Poke specifically, but the Mexican inspired swordfish poke was also good.
What is this “poke” stuff we keep mentioning? It’s basically seafood heaven in a bowl. You can get poke several ways, but our favorite is served over rice with ahi tuna as the primary fish component. Salmon and swordfish poke is also popular, but no fish is as smooth and delicious as ahi.
Want to know the secret to ordering a great bowl of poke? Keep it simple with just a few ingredients allowing the fish to speak for itself, ensure you get a little Hawaiian sea salt on it, and always take the seaweed recommendation from the chef/server. Seaweed isn’t everybody’s favorite food, but like lettuce or tomatoes, there are many types with different textures and flavor profiles. Add a little seaweed and go full Hawaiian.
Tip: locals who are being honest will tell you that the best poke you can get in a pinch is from Foodland. Yep, that’s the local grocery store chain and they make sure to have fresh poke readily available for their hungry Hawaiian residents.
I guess one of the best places to eat on Oahu is actually the local grocery store. 😉
Easy grab and go on Oahu
Other Hawaiian staples you may have heard about include loco moco, a variety of S.P.A.M. preparations and, of course, mac salad. L+L Hawaiian BBQ, a local cafe-type chain, makes the best easy-to-get mac salad and other Hawaiian yums, like fried fish, kalua pork, and tasty snacks. And ahi (of course). Seriously, did it occur to us that some of the best food on Oahu was from a convenience-cafe? Not hardly.
Also, and this may be completely unhelpful, but we were told that there are some pretty delicious and random markets that have awesome fish sandwiches and mac salads to go. If you’re heading to the beach, stop into any random deli and see what sort of grub you can find.
Imay go without saying, but Hawaii is home to all kinds of farms raising some delicious crops. Although most of the crops grown on Oahu were brought to the islands over the last few centuries, the Hawaiian people grow some amazing produce. As you’re driving the Kamehameha Highway around the island, you’ll see many fruit stands, farm stands, and local markets. Our only tip is to buy local and enjoy. Never have we had such amazing pineapple as on Oahu.
Getting local in a new way
Believe me, we love eating local and getting recommendations from locals wherever we go. When it comes to the best places to eat on Oahu, we got fifty different answers from ten different people, but they all had the same concept: established and authentic. Our friends pointed us to a few places we could never find on our own, but then one of them said “Honey’s. We’re going there…”
When we were in Wisconsin we heard about supper clubs. In central California we experienced the steakhouses. In Hawaii you need to look for the country clubs or “live music” spots. Honey’s in Kaneohe is part country club and part lounge. It’s like the Elks Club meets the dinning room at the golf course. At Honey’s we found up-country cooking like pork chops and prime rib (#supperclub) but then we also had a full PuPu platter menu loaded with edamame, poke and kalua pork (#realHawaii).
What made this local dining experience so great was actually the live Hawaiian band sporting their flower shirts and steel guitars. Sending this local dinner experience over the top: a long time auntie of the area and clearly a regular at Honey’s gave the dining room an impromptu hula performance to her favorite Hawaiian tune. We couldn’t have planned it better.
Tip: although it may sound strange, ask a local for a music recommendation or where their ohana might meet up with the grandparents. Chances are you’ll find a place with a humble reputation and endless aloha spirit to share.
Our family trip to Hawaii wasn’t all about finding the best places to eat on Oahu, but we found pure Hawaiian gold for nearly every meal. Take our tips and what we looked for and go seek out your own food discoveries. You can learn a lot about and fall in love with a culture from its food, and Hawaii is all about good food and welcoming you into their ohana.
Want to pin this for you own Hawaiian adventure? Go for it!!!
Finding the best places to eat on Oahu: poke to pork and everything in between Watching people travel and eat on television has become such a staple in America. We tune in and find "the best unknown burger counter in Philly" and the "most decadent ice cream sandwich in Portland" or the "best places to eat on Oahu," but what do you actually want to experience when it comes to food when you're on the road?
0 notes
techscopic · 7 years ago
Text
How to Build a Kubernetes Cluster with ARM Raspberry Pi then run .NET Core on OpenFaas
First, why would you do this? Why not. It’s awesome. It’s a learning experience. It’s cheaper to get 6 pis than six “real computers.” It’s somewhat portable. While you can certainly quickly and easily build a Kubernetes Cluster in the cloud within your browser using a Cloud Shell, there’s something more visceral about learning it this way, IMHO. Additionally, it’s a non-trivial little bit of power you’ve got here. This is also a great little development cluster for experimenting. I’m very happy with the result.
By the end of this blog post you’ll have not just Hello World but you’ll have Cloud Native Distributed Containerized RESTful microservice based on ARMv7 w/ k8s Hello World! as a service. (original Tweet).
Not familiar with why Kubernetes is cool? Check out Julia Evans’ blog and read her K8s posts and you’ll be convinced!
Hardware List (scroll down for Software)
Here’s your shopping list. You may have a bunch of this stuff already. I had the Raspberry Pis and SD Cards already.
6 – Raspberry Pi 3 – I picked 6, but you should have at least 3 or 4.
One Boss/Master and n workers. I did 6 because it’s perfect for the power supply, perfect for the 8-port hub, AND it’s a big but not unruly number.
6 – Samsung 32Gb Micro SDHC cards – Don’t be too cheap.
Faster SD cards are better.
2×6 – 1ft flat Ethernet cables – Flat is the key here.
They are WAY more flexible. If you try to do this with regular 1ft cables you’ll find them inflexible and frustrating. Get extras.
1 – Anker PowerPort 6 Port USB Charging Hub – Regardless of this entire blog post, this product is amazing.
It’s almost the same physical size as a Raspberry Pi, so it fits perfect at the bottom of your stack. It puts out 2.4a per port AND (wait for it) it includes SIX 1ft Micro USB cables…perfect for running 6 Raspberry Pis with a single power adapter.
1 – 7 layer Raspberry Pi Clear Case Enclosure – I only used 6 of these, which is cool.
I love this case, and it looks fantastic.
1 – Black Box USB-Powered 8-Port Switch – This is another amazing and AFAIK unique product.
An overarching goal for this little stack is that it be easy to move around and set up but also to power. We have power to spare, so I’d like to avoid a bunch of “wall warts” or power adapters. This is an 8 port switch that can be powered over a Raspberry Pi’s USB. Because I’m given up to 2.4A to each micro USB, I just plugged this hub into one of the Pis and it worked no problem. It’s also…wait for it…the size of a Pi. It also include magnets for mounting.
1 – Some Small Router – This one is a little tricky and somewhat optional.
You can just put these Pis on your own Wifi and access them that way, but you need to think about how they get their IP address. Who doles out IPs via DHCP? Static Leases? Static IPs completely?
The root question is – How portable do you want this stack to be? I propose you give them their own address space and their own router that you then use to bridge to other places. Easiest way is with another router (you likely have one lying around, as I did. Could be any router…and remember hub/switch != router.
Here is a bad network diagram that makes the point, I think. The idea is that I should be able to go to a hotel or another place and just plug the little router into whatever external internet is available and the cluster will just work. Again, not needed unless portability matters to you as it does to me.
You could ALSO possibly get this to work with a Travel Router but then the external internet it consumed would be just Wifi and your other clients would get on your network subnet via Wifi as well. I wanted the relative predictability of wired.
What I WISH existed was a small router – similar to that little 8 port hub – that was powered off USB and had an internal and external Ethernet port. This ZyXEL Travel Router is very close…hm…
Optional – Pelican Case if you want portability. I’ll see what airport security thinks. O_O
Optional – Tiny Keyboard and Mouse – Raspberry Pis can put out about 500mA per port for mice and keyboards. The number one problem I see with Pis is not giving them enough power and/or then having an external device take too much and then destabilize the system. This little keyboard is also a touchpad mouse and can be used to debug your Pi when you can’t get remote access to it. You’ll also want an HMDI cable occasionally.
You’re Rich – If you have money to burn, get the 7″ Touchscreen Display and a Case for it, just to show off htop in color on one of the Pis.
Dodgey Network Diagram
Disclaimer
OK, first things first, a few disclaimers.
The software in this space is moving fast. There’s a non-zero chance that some of this software will have a new version out before I finish this blog post. In fact, when I was setting up Kubernetes, I created a few nodes, went to bed for 6 hours, came back and made a few more nodes and a new version had come out. Try to keep track, keep notes, and be aware of what works with what.
Next, I’m just learning this stuff. I may get some of this wrong. While I’ve built (very) large distributed systems before, my experience with large orchestrators (primarily in banks) was with large proprietary ones in Java, C++, COM, and later in C#, .NET 1.x,2.0, and WCF. It’s been really fascinating to see how Kubernetes thinks about these things and comparing it to how we thought about these things in the 90s and very early 2000s. A lot of best practices that were HUGE challenges many years ago are now being codified and soon, I hope, will “just work” for a new generation of developer. At least another full page of my resume is being marked [Obsolete] and I’m here for it. Things change and they are getting better.
Software
Get your Raspberry PIs and SD cards together. Also bookmark and subscribe to Alex Ellis’ blog as you’re going to find yourself there a lot. He’s the author of OpenFaas, which I’ll be using today and he’s done a LOT of work making this experiment possible. So thank you Alex for being awesome! He has a great post on how Multi-stage Docker files make it possible to effectively use .NET Core on a Raspberry Pi while still building on your main machine. He and I spent a few late nights going around and around to make this easy.
Alex has put together a Gist we iterated on and I’ll summarize here. You’ll do these instructions n times for all machines.
You’ll do special stuff for the ONE master/boss node and different stuff for the some number of worker nodes.
ADVANCED TIP! If you know what you’re doing Linux-wise, you should save this excellent prep.sh shell script that Alex made, then SKIP to the node-specific instructions below. If you want to learn more, do it step by step.
ALL NODES
Burn Jessie to a SD Card
You’re going to want to get a copy of Raspbian Jesse Lite and burn it to your SD Cards with Etcher, which is the only SD Card Burner you need. It’s WAY better than the competition and it’s open source.
You can also try out Hypriot and their “optimized docker image for Raspberry Pi” but I personally tried to get it working reliably for a two days and went back to Jesse. No disrespect.
Creating an empty file called “ssh” before you put the card in the Raspberry Pi
SSH into the new Pi
I’m on Windows so I used WSL (Ubuntu) for Windows that lets me SSH and do run Linux natively.
ssh pi@raspberrypi
Login pi, password raspberry.
Change the Hostname
I ran
rasbpi-config
then immediately reboot with “sudo reboot”
Install Docker
curl -sSL get.docker.com | sh && \ sudo usermod pi -aG docker
Disable Swap. Important, you’ll get errors in Kuberenetes otherwise
sudo dphys-swapfile swapoff && \ sudo dphys-swapfile uninstall && \ sudo update-rc.d dphys-swapfile remove
Go edit /boot/cmdline.txt with your favorite editor, or use
sudo nano /boot/cmdline
and add this at the very end. Don’t press enter.
cgroup_enable=cpuset cgroup_enable=memory
Install Kubernetes
curl -s http://ift.tt/22fimui | sudo apt-key add - && \ echo "deb http://ift.tt/2f7PUy5 kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \ sudo apt-get update -q && \ sudo apt-get install -qy kubeadm
MASTER/BOSS NODE
After ssh’ing into my main node, I used /ifconfig eth0 to figure out what the IP adresss was. Ideally you want this to be static (not changing) or at least a static lease. I logged into my router and set it as a static lease, so my main node ended up being 192.168.170.2, and .1 is the router itself.
Then I initialized this main node
sudo kubeadm init --apiserver-advertise-address=192.168.170.2
This took a WHILE. Like 10-15 min, so be patient.
Kubernetes uses this admin.conf for a ton of stuff, so you’re going to want a copy in your $HOME folder so you can call “kubectl” easily later, copy it and take ownership.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
When this is done, you’ll get a nice print out with a ton of info and a token you have to save. Save it all. I took a screenshot.
WORKER NODES
Ssh into your worker nodes and join them each to the main node. This line is the line you needed to have saved above when you did a kubectl init.
kubeadm join --token d758dc.059e9693bfa5 192.168.170.2:6443 --discovery-token-ca-cert-hash sha256:c66cb9deebfc58800a4afbedf0e70b93c086d02426f6175a716ee2f4d
Did it work?
While ssh’ed into the main node – or from any networked machine that has the admin.conf on it – try a few commands.
Here I’m trying “kubectl get nodes” and “kubectl get pods.”
Note that I already have some stuff installed, so you’ll want try “kubectl get pods –namespace kube-system” to see stuff running. If everything is “Running” then you can finish setting up networking. Kubernetes has fifty-eleven choices for networking and I’m not qualified to pick one. I tried Flannel and gave up and then tried Weave and it just worked. YMMV. Again, double check Alex’s Gist if this changes.
kubectl apply -f http://ift.tt/2qJxB6N
At this point you should be ready to run some code!
Hello World…with Markdown
Back to Alex’s gist, I’ll try this “markdownrender” app. It will take some Markdown and return HTML.
Go get the function.yml from here and create the new app on your new cluster.
$ kubectl create -f function.yml $ curl -4 http://localhost:31118 -d "# test" <p><h1>test</h1></p>
This part can be tricky – it was for me. You need to understand what you’re doing here. How do we know the ports? A few ways. First, it’s listed as nodePort in the function.yml that represents the desired state of the application.
We can also run “kubectl get svc” and see the ports for various services.
pi@hanselboss1:~ $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE alertmanager NodePort 10.103.43.130 <none> 9093:31113/TCP 1d dotnet-ping ClusterIP 10.100.153.185 <none> 8080/TCP 1d faas-netesd NodePort 10.103.9.25 <none> 8080:31111/TCP 2d gateway NodePort 10.111.130.61 <none> 8080:31112/TCP 2d http-ping ClusterIP 10.102.150.8 <none> 8080/TCP 1d kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d markdownrender NodePort 10.104.121.82 <none> 8080:31118/TCP 1d nodeinfo ClusterIP 10.106.2.233 <none> 8080/TCP 1d prometheus NodePort 10.98.110.232 <none> 9090:31119/TCP 2d
See those ports that are outside:insider? You can get to markdownrender directly from 31118 on an internal IP like localhost, or the main/master IP. Those 10.x.x.x are all software networking, you can not worry about them. See?
pi@hanselboss1:~ $ curl -4 http://ift.tt/2zWjCfR -d "# test" <h1>test</h1> pi@hanselboss1:~ $ curl -4 http://ift.tt/2xuMdHf -d "# test" curl: (7) Failed to connect to 10.104.121.82 port 31118: Network is unreachable
Can we access this cluster from another machine? My Windows laptop, perhaps?
Access your Raspberry Pi Kubernetes Cluster from your Windows Machine (or elsewhere)
I put KubeCtl on my local Windows machine put it in the PATH.
I copied the admin.conf over from my Raspberry Pi. You will likely use scp or WinSCP.
I made a little local batch file like this. I may end up with multiple clusters and I want it easy to switch between them.
SET KUBECONFIG=”C:\users\scott\desktop\k8s for pi\admin.conf
Once you have Kubectl on another machine that isn’t your Pi, try running “kubectl proxy” and see if you can hit your cluster like this. Remember you’ll get weird “Connection refused” if kubectl thinks you’re talking to a local cluster.
Here you can get to localhost:8001/api and move around, then you’ve successfully punched a hole over to your cluster (proxied) and you can treat localhost:8001 as your cluster. So “kubectl proxy” made that possible.
If you have WSL (Windows Subsystem for Linux) – and you should – then you could also do this and TUNNEL to the API. But I’m going to get cert errors and generally get frustrated. However, tunneling like this to other apps from Windows or elsewhere IS super useful. What about the Kubernetes Dashboard?
~ $ sudo ssh -L 8001:10.96.0.1:443 [email protected]
I’m going to install the Kubernetes Dashboard like this:
kubectl apply -f http://ift.tt/2xudwS6
Pay close attention to that URL! There are several sites out there that may point to older URLs, non ARM dashboard, or use shortened URLs. Make sure you’re applying the ARM dashboard. I looked here http://ift.tt/2zWjCMT.
Notice I’m using the “alternative” dashboard. That’s for development and I’m saying I don’t care at all about security when accessing it. Be aware.
I can see where my Dashboard is running, the port and the IP address.
pi@hanselboss1:~ $ kubectl get svc --namespace kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 2d kubernetes-dashboard ClusterIP 10.98.2.15 <none> 80/TCP 2d
NOW I can punch a hole with that nice ssh tunnel…
~ $ sudo ssh -L 8080:10.98.2.15:80 [email protected]
I can access the Kubernetes Dashboard now from my Windows machine at http://localhost:8080 and hit Skip to login.
Do note the Namespace dropdown and think about what you’re viewing. There’s the kube-system stuff that manages the cluster
Adding OpenFaas and calling a serverless function
Let’s go to the next level. We’ll install OpenFaas – think Azure Functions or Amazon Lambda, except for your own Docker and Kubernetes cluster. To be clear, OpenFaas is an Application that we will run on Kubernetes, and it will make it easier to run other apps. Then we’ll run other stuff on it…just some simple apps like Hello World in Python and .NET Core. OpenFaas is one of several open source “Serverless” solutions.
Do you need to use OpenFaas? No. But if your goal is to write a DoIt() function and put it on your little cluster easily and scale it out, it’s pretty fabulous.
Remember my definition of Serverless…there ARE servers, you just don’t think about them.
Serverless Computing is like this – Your code, a slider bar, and your credit card.
Let’s go.
.NET Core on OpenFaas on Kubernetes on Raspberry Pi
I ssh’ed into my main/master cluster Pi and set up OpenFaas:
git clone http://ift.tt/2eHgAFS && cd faas-netes kubectl apply -f faas.armhf.yml,rbac.yml,monitoring.armhf.yml
Once OpenFaas is installed on your cluster, here’s Alex’s great instructions on how to setup your first OpenFaas Python function, so give that a try first and test it. Once we’ve installed that Python function, we can also hit http://ift.tt/2zWjFIz (where that’s your main Boss/Master’s IP) and see it the OpenFaas UI.
OpenFaas and the “faas-netes” we setup above automates the build and deployment of our apps as Docker Images to Kuberetes. It makes the “Developer’s Inner Loop” simpler. I’m going to make my .NET app, build, deploy, then change, build, deploy and I want it to “just work” on my cluster. And later, and I want it to scale.
I’m doing .NET Core, and since there is a runtime for .NET Core for Raspberry Pi (and ARM system) but no SDK, I need to do the build on my Windows machine and deploy from there.
Quick Aside: There are docker images for ARM/Raspberry PI for running .NET Core. However, you can’t build .NET Core apps (yet?) directly ON the ARM machine. You have to build them on an x86/x64 machine and then get them over to the ARM machine. That can be SCP/FTPing them, or it can be making a docker container and then pushing that new docker image up to a container registry, then telling Kubernetes about that image. K8s (cool abbv) will then bring that ARM image down and run it. The technical trick that Alex and I noticed was of course that since you’re building the Docker image on your x86/x64 machine, you can’t RUN any stuff on it. You can build the image but you can’t run stuff within it. It’s an unfortunate limitation for now until there’s a .NET Core SDK on ARM.
What’s required on my development machine (not my Raspberry Pis?
I installed KubeCtl (see above) in the PATH
I installed OpenFaas’s  Faas-CLI command line and put it in the PATH
I installed Docker for Windows. You’ll want to make sure your machine has some flavor of Docker if you have a Mac or Linux machine.
I ran docker login at least once.
I installed .NET Core from http://dot.net/core
Here’s the gist we came up with, again thanks Alex! I’m going to do it from Windows.
I’ll use the faas-cli to make a new function with charp. I’m calling mine dotnet-ping.
faas-cli new --lang csharp dotnet-ping
I’ll edit the FunctionHandler.cs to add a little more. I’d like to know the machine name so I can see the scaling happen when it does.
using System; using System.Text; namespace Function { public class FunctionHandler { public void Handle(string input) { Console.WriteLine("Hi your input was: "+ input + " on " + System.Environment.MachineName); } } }
Check out the .yml file for your new OpenFaas function. Note the gateway IP should be your main Pi, and the port is 31112 which is OpenFaas.
I also changed the image to include “shanselman/” which is my Docker Hub. You could also use a local Container Registry if you like.
provider: name: faas gateway: http://ift.tt/2xtjend functions: dotnet-ping: lang: csharp handler: ./dotnet-ping image: shanselman/dotnet-ping
Head over to the ./template/csharp/Dockerfile and we’re going to change it. Ordinarily it’s fine if you are publishing from x64 to x64 but since we are doing a little dance, we are going to build and publish the .NET apps as linux-arm from our x64 machine, THEN push it, we’ll use a multi stage docker file. Change the default Docker file to this:
FROM microsoft/dotnet:2.0-sdk as builder ENV DOTNET_CLI_TELEMETRY_OPTOUT 1 # Optimize for Docker builder caching by adding projects first. RUN mkdir -p /root/src/function WORKDIR /root/src/function COPY ./function/Function.csproj . WORKDIR /root/src/ COPY ./root.csproj . RUN dotnet restore ./root.csproj COPY . . RUN dotnet publish -c release -o published -r linux-arm ADD http://ift.tt/2zVAP98 /usr/bin/fwatchdog RUN chmod +x /usr/bin/fwatchdog FROM microsoft/dotnet:2.0.0-runtime-stretch-arm32v7 WORKDIR /root/ COPY --from=builder /root/src/published . COPY --from=builder /usr/bin/fwatchdog / ENV fprocess="dotnet ./root.dll" EXPOSE 8080 CMD ["/fwatchdog"]
Notice a few things. All the RUN commands are above the second FROM where we take the results of the first container and use its output to build the second ARM-based one. We can’t RUN stuff because we aren’t on ARM, right?
We use the Faas-Cli to build the app, build the docker container, AND publish the result to Kubernetes.
faas-cli build -f dotnet-ping.yml --parallel=1 faas-cli push -f dotnet-ping.yml faas-cli deploy -f dotnet-ping.yml --gateway http://ift.tt/2xtjend
And here is the dotnet-ping command running on the pi, as seen within the Kubernetes Dashboard.
I can then scale them out like this:
kubectl scale deploy/dotnet-ping --replicas=6
And if I hit it multiple times – either via curl or via the dashboard, I see it’s hitting different pods:
If I want to get super fancy, I can install Grafana – a dashboard manager by running locally in my machine on port 3000
docker run -p 3000:3000 -d grafana/grafana
Then I can add OpenFaas a datasource by pointing Grafana to http://ift.tt/2zVaKqu which is where the Prometheus metrics app is already running, then import the OpenFaas dashboard from the grafana.json file that is in the I cloned it from.
Super cool. I’m going to keep using this little Raspberry Pi Kubernetes Cluster to learn as I get ready to do real K8s in Azure! Thanks to Alex Ellis for his kindness and patience and to Jessie Frazelle for making me love both Windows AND Linux!
* If you like this blog, please do use my Amazon links as they help pay for projects like this! They don’t make me rich, but a few dollars here and there can pay for Raspberry Pis!
Sponsor: Check out JetBrains Rider: a new cross-platform .NET IDE. Edit, refactor, test and debug ASP.NET, .NET Framework, .NET Core, Xamarin or Unity applications. Learn more and download a 30-day trial!
© 2017 Scott Hanselman. All rights reserved.
      How to Build a Kubernetes Cluster with ARM Raspberry Pi then run .NET Core on OpenFaas syndicated from http://ift.tt/2wBRU5Z
0 notes
just4programmers · 7 years ago
Text
How to Build a Kubernetes Cluster with ARM Raspberry Pi then run .NET Core on OpenFaas
First, why would you do this? Why not. It's awesome. It's a learning experience. It's cheaper to get 6 pis than six "real computers." It's somewhat portable. While you can certainly quickly and easily build a Kubernetes Cluster in the cloud within your browser using a Cloud Shell, there's something more visceral about learning it this way, IMHO. Additionally, it's a non-trivial little bit of power you've got here. This is also a great little development cluster for experimenting. I'm very happy with the result.
By the end of this blog post you'll have not just Hello World but you'll have Cloud Native Distributed Containerized RESTful microservice based on ARMv7 w/ k8s Hello World! as a service. (original Tweet). ;)
Not familiar with why Kubernetes is cool? Check out Julia Evans' blog and read her K8s posts and you'll be convinced!
Hardware List (scroll down for Software)
Here's your shopping list. You may have a bunch of this stuff already. I had the Raspberry Pis and SD Cards already.
6 - Raspberry Pi 3 - I picked 6, but you should have at least 3 or 4.
One Boss/Master and n workers. I did 6 because it's perfect for the power supply, perfect for the 8-port hub, AND it's a big but not unruly number.
6 - Samsung 32Gb Micro SDHC cards - Don't be too cheap.
Faster SD cards are better.
2x6 - 1ft flat Ethernet cables - Flat is the key here.
They are WAY more flexible. If you try to do this with regular 1ft cables you'll find them inflexible and frustrating. Get extras.
1 - Anker PowerPort 6 Port USB Charging Hub - Regardless of this entire blog post, this product is amazing.
It's almost the same physical size as a Raspberry Pi, so it fits perfect at the bottom of your stack. It puts out 2.4a per port AND (wait for it) it includes SIX 1ft Micro USB cables...perfect for running 6 Raspberry Pis with a single power adapter.
1 - 7 layer Raspberry Pi Clear Case Enclosure - I only used 6 of these, which is cool.
I love this case, and it looks fantastic.
1 - Black Box USB-Powered 8-Port Switch - This is another amazing and AFAIK unique product.
An overarching goal for this little stack is that it be easy to move around and set up but also to power. We have power to spare, so I'd like to avoid a bunch of "wall warts" or power adapters. This is an 8 port switch that can be powered over a Raspberry Pi's USB. Because I'm given up to 2.4A to each micro USB, I just plugged this hub into one of the Pis and it worked no problem. It's also...wait for it...the size of a Pi. It also include magnets for mounting.
1 - Some Small Router - This one is a little tricky and somewhat optional.
You can just put these Pis on your own Wifi and access them that way, but you need to think about how they get their IP address. Who doles out IPs via DHCP? Static Leases? Static IPs completely?
The root question is - How portable do you want this stack to be? I propose you give them their own address space and their own router that you then use to bridge to other places. Easiest way is with another router (you likely have one lying around, as I did. Could be any router...and remember hub/switch != router.
Here is a bad network diagram that makes the point, I think. The idea is that I should be able to go to a hotel or another place and just plug the little router into whatever external internet is available and the cluster will just work. Again, not needed unless portability matters to you as it does to me.
You could ALSO possibly get this to work with a Travel Router but then the external internet it consumed would be just Wifi and your other clients would get on your network subnet via Wifi as well. I wanted the relative predictability of wired.
What I WISH existed was a small router - similar to that little 8 port hub - that was powered off USB and had an internal and external Ethernet port. This ZyXEL Travel Router is very close...hm...
Optional - Pelican Case if you want portability. I'll see what airport security thinks. O_O
Optional - Tiny Keyboard and Mouse - Raspberry Pis can put out about 500mA per port for mice and keyboards. The number one problem I see with Pis is not giving them enough power and/or then having an external device take too much and then destabilize the system. This little keyboard is also a touchpad mouse and can be used to debug your Pi when you can't get remote access to it. You'll also want an HMDI cable occasionally.
You're Rich - If you have money to burn, get the 7" Touchscreen Display and a Case for it, just to show off htop in color on one of the Pis.
Dodgey Network Diagram
Disclaimer
OK, first things first, a few disclaimers.
The software in this space is moving fast. There's a non-zero chance that some of this software will have a new version out before I finish this blog post. In fact, when I was setting up Kubernetes, I created a few nodes, went to bed for 6 hours, came back and made a few more nodes and a new version had come out. Try to keep track, keep notes, and be aware of what works with what.
Next, I'm just learning this stuff. I may get some of this wrong. While I've built (very) large distributed systems before, my experience with large orchestrators (primarily in banks) was with large proprietary ones in Java, C++, COM, and later in C#, .NET 1.x,2.0, and WCF. It's been really fascinating to see how Kubernetes thinks about these things and comparing it to how we thought about these things in the 90s and very early 2000s. A lot of best practices that were HUGE challenges many years ago are now being codified and soon, I hope, will "just work" for a new generation of developer. At least another full page of my resume is being marked [Obsolete] and I'm here for it. Things change and they are getting better.
Software
Get your Raspberry PIs and SD cards together. Also bookmark and subscribe to Alex Ellis' blog as you're going to find yourself there a lot. He's the author of OpenFaas, which I'll be using today and he's done a LOT of work making this experiment possible. So thank you Alex for being awesome! He has a great post on how Multi-stage Docker files make it possible to effectively use .NET Core on a Raspberry Pi while still building on your main machine. He and I spent a few late nights going around and around to make this easy.
Alex has put together a Gist we iterated on and I'll summarize here. You'll do these instructions n times for all machines.
You'll do special stuff for the ONE master/boss node and different stuff for the some number of worker nodes.
ADVANCED TIP! If you know what you're doing Linux-wise, you should save this excellent prep.sh shell script that Alex made, then SKIP to the node-specific instructions below. If you want to learn more, do it step by step.
ALL NODES
Burn Jessie to a SD Card
You're going to want to get a copy of Raspbian Jesse Lite and burn it to your SD Cards with Etcher, which is the only SD Card Burner you need. It's WAY better than the competition and it's open source.
You can also try out Hypriot and their "optimized docker image for Raspberry Pi" but I personally tried to get it working reliably for a two days and went back to Jesse. No disrespect.
Creating an empty file called "ssh" before you put the card in the Raspberry Pi
SSH into the new Pi
I'm on Windows so I used WSL (Ubuntu) for Windows that lets me SSH and do run Linux natively.
ssh pi@raspberrypi
Login pi, password raspberry.
Change the Hostname
I ran
rasbpi-config
then immediately reboot with "sudo reboot"
Install Docker
curl -sSL get.docker.com | sh && \ sudo usermod pi -aG docker
Disable Swap. Important, you'll get errors in Kuberenetes otherwise
sudo dphys-swapfile swapoff && \ sudo dphys-swapfile uninstall && \ sudo update-rc.d dphys-swapfile remove
Go edit /boot/cmdline.txt with your favorite editor, or use
sudo nano /boot/cmdline
and add this at the very end. Don't press enter.
cgroup_enable=cpuset cgroup_enable=memory
Install Kubernetes
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \ sudo apt-get update -q && \ sudo apt-get install -qy kubeadm
MASTER/BOSS NODE
After ssh'ing into my main node, I used /ifconfig eth0 to figure out what the IP adresss was. Ideally you want this to be static (not changing) or at least a static lease. I logged into my router and set it as a static lease, so my main node ended up being 192.168.170.2, and .1 is the router itself.
Then I initialized this main node
sudo kubeadm init --apiserver-advertise-address=192.168.170.2
This took a WHILE. Like 10-15 min, so be patient.
Kubernetes uses this admin.conf for a ton of stuff, so you're going to want a copy in your $HOME folder so you can call "kubectl" easily later, copy it and take ownership.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
When this is done, you'll get a nice print out with a ton of info and a token you have to save. Save it all. I took a screenshot.
WORKER NODES
Ssh into your worker nodes and join them each to the main node. This line is the line you needed to have saved above when you did a kubectl init.
kubeadm join --token d758dc.059e9693bfa5 192.168.170.2:6443 --discovery-token-ca-cert-hash sha256:c66cb9deebfc58800a4afbedf0e70b93c086d02426f6175a716ee2f4d
Did it work?
While ssh'ed into the main node - or from any networked machine that has the admin.conf on it - try a few commands.
Here I'm trying "kubectl get nodes" and "kubectl get pods."
Note that I already have some stuff installed, so you'll want try "kubectl get pods --namespace kube-system" to see stuff running. If everything is "Running" then you can finish setting up networking. Kubernetes has fifty-eleven choices for networking and I'm not qualified to pick one. I tried Flannel and gave up and then tried Weave and it just worked. YMMV. Again, double check Alex's Gist if this changes.
kubectl apply -f https://git.io/weave-kube-1.6
At this point you should be ready to run some code!
Hello World...with Markdown
Back to Alex's gist, I'll try this "markdownrender" app. It will take some Markdown and return HTML.
Go get the function.yml from here and create the new app on your new cluster.
$ kubectl create -f function.yml $ curl -4 http://localhost:31118 -d "# test" <p><h1>test</h1></p>
This part can be tricky - it was for me. You need to understand what you're doing here. How do we know the ports? A few ways. First, it's listed as nodePort in the function.yml that represents the desired state of the application.
We can also run "kubectl get svc" and see the ports for various services.
pi@hanselboss1:~ $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE alertmanager NodePort 10.103.43.130 <none> 9093:31113/TCP 1d dotnet-ping ClusterIP 10.100.153.185 <none> 8080/TCP 1d faas-netesd NodePort 10.103.9.25 <none> 8080:31111/TCP 2d gateway NodePort 10.111.130.61 <none> 8080:31112/TCP 2d http-ping ClusterIP 10.102.150.8 <none> 8080/TCP 1d kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d markdownrender NodePort 10.104.121.82 <none> 8080:31118/TCP 1d nodeinfo ClusterIP 10.106.2.233 <none> 8080/TCP 1d prometheus NodePort 10.98.110.232 <none> 9090:31119/TCP 2d
See those ports that are outside:insider? You can get to markdownrender directly from 31118 on an internal IP like localhost, or the main/master IP. Those 10.x.x.x are all software networking, you can not worry about them. See?
pi@hanselboss1:~ $ curl -4 http://192.168.170.2:31118 -d "# test" <h1>test</h1> pi@hanselboss1:~ $ curl -4 http://10.104.121.82:31118 -d "# test" curl: (7) Failed to connect to 10.104.121.82 port 31118: Network is unreachable
Can we access this cluster from another machine? My Windows laptop, perhaps?
Access your Raspberry Pi Kubernetes Cluster from your Windows Machine (or elsewhere)
I put KubeCtl on my local Windows machine put it in the PATH.
I copied the admin.conf over from my Raspberry Pi. You will likely use scp or WinSCP.
I made a little local batch file like this. I may end up with multiple clusters and I want it easy to switch between them.
SET KUBECONFIG="C:\users\scott\desktop\k8s for pi\admin.conf
Once you have Kubectl on another machine that isn't your Pi, try running "kubectl proxy" and see if you can hit your cluster like this. Remember you'll get weird "Connection refused" if kubectl thinks you're talking to a local cluster.
Here you can get to localhost:8001/api and move around, then you've successfully punched a hole over to your cluster (proxied) and you can treat localhost:8001 as your cluster. So "kubectl proxy" made that possible.
If you have WSL (Windows Subsystem for Linux) - and you should - then you could also do this and TUNNEL to the API. But I'm going to get cert errors and generally get frustrated. However, tunneling like this to other apps from Windows or elsewhere IS super useful. What about the Kubernetes Dashboard?
~ $ sudo ssh -L 8001:10.96.0.1:443 [email protected]
I'm going to install the Kubernetes Dashboard like this:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard-arm.yaml
Pay close attention to that URL! There are several sites out there that may point to older URLs, non ARM dashboard, or use shortened URLs. Make sure you're applying the ARM dashboard. I looked here https://github.com/kubernetes/dashboard/tree/master/src/deploy.
Notice I'm using the "alternative" dashboard. That's for development and I'm saying I don't care at all about security when accessing it. Be aware.
I can see where my Dashboard is running, the port and the IP address.
pi@hanselboss1:~ $ kubectl get svc --namespace kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 2d kubernetes-dashboard ClusterIP 10.98.2.15 <none> 80/TCP 2d
NOW I can punch a hole with that nice ssh tunnel...
~ $ sudo ssh -L 8080:10.98.2.15:80 [email protected]
I can access the Kubernetes Dashboard now from my Windows machine at http://localhost:8080 and hit Skip to login.
Do note the Namespace dropdown and think about what you're viewing. There's the kube-system stuff that manages the cluster
Adding OpenFaas and calling a serverless function
Let's go to the next level. We'll install OpenFaas - think Azure Functions or Amazon Lambda, except for your own Docker and Kubernetes cluster. To be clear, OpenFaas is an Application that we will run on Kubernetes, and it will make it easier to run other apps. Then we'll run other stuff on it...just some simple apps like Hello World in Python and .NET Core. OpenFaas is one of several open source "Serverless" solutions.
Do you need to use OpenFaas? No. But if your goal is to write a DoIt() function and put it on your little cluster easily and scale it out, it's pretty fabulous.
Remember my definition of Serverless...there ARE servers, you just don't think about them.
Serverless Computing is like this - Your code, a slider bar, and your credit card.
Let's go.
.NET Core on OpenFaas on Kubernetes on Raspberry Pi
I ssh'ed into my main/master cluster Pi and set up OpenFaas:
git clone https://github.com/alexellis/faas-netes && cd faas-netes kubectl apply -f faas.armhf.yml,rbac.yml,monitoring.armhf.yml
Once OpenFaas is installed on your cluster, here's Alex's great instructions on how to setup your first OpenFaas Python function, so give that a try first and test it. Once we've installed that Python function, we can also hit http://192.168.170.2:31112/ui/ (where that's your main Boss/Master's IP) and see it the OpenFaas UI.
OpenFaas and the "faas-netes" we setup above automates the build and deployment of our apps as Docker Images to Kuberetes. It makes the "Developer's Inner Loop" simpler. I'm going to make my .NET app, build, deploy, then change, build, deploy and I want it to "just work" on my cluster. And later, and I want it to scale.
I'm doing .NET Core, and since there is a runtime for .NET Core for Raspberry Pi (and ARM system) but no SDK, I need to do the build on my Windows machine and deploy from there.
Quick Aside: There are docker images for ARM/Raspberry PI for running .NET Core. However, you can't build .NET Core apps (yet?) directly ON the ARM machine. You have to build them on an x86/x64 machine and then get them over to the ARM machine. That can be SCP/FTPing them, or it can be making a docker container and then pushing that new docker image up to a container registry, then telling Kubernetes about that image. K8s (cool abbv) will then bring that ARM image down and run it. The technical trick that Alex and I noticed was of course that since you're building the Docker image on your x86/x64 machine, you can't RUN any stuff on it. You can build the image but you can't run stuff within it. It's an unfortunate limitation for now until there's a .NET Core SDK on ARM.
What's required on my development machine (not my Raspberry Pis?
I installed KubeCtl (see above) in the PATH
I installed OpenFaas's  Faas-CLI command line and put it in the PATH
I installed Docker for Windows. You'll want to make sure your machine has some flavor of Docker if you have a Mac or Linux machine.
I ran docker login at least once.
I installed .NET Core from http://dot.net/core
Here's the gist we came up with, again thanks Alex! I'm going to do it from Windows.
I'll use the faas-cli to make a new function with charp. I'm calling mine dotnet-ping.
faas-cli new --lang csharp dotnet-ping
I'll edit the FunctionHandler.cs to add a little more. I'd like to know the machine name so I can see the scaling happen when it does.
using System; using System.Text; namespace Function { public class FunctionHandler { public void Handle(string input) { Console.WriteLine("Hi your input was: "+ input + " on " + System.Environment.MachineName); } } }
Check out the .yml file for your new OpenFaas function. Note the gateway IP should be your main Pi, and the port is 31112 which is OpenFaas.
I also changed the image to include "shanselman/" which is my Docker Hub. You could also use a local Container Registry if you like.
provider: name: faas gateway: http://192.168.170.2:31112 functions: dotnet-ping: lang: csharp handler: ./dotnet-ping image: shanselman/dotnet-ping
Head over to the ./template/csharp/Dockerfile and we're going to change it. Ordinarily it's fine if you are publishing from x64 to x64 but since we are doing a little dance, we are going to build and publish the .NET apps as linux-arm from our x64 machine, THEN push it, we'll use a multi stage docker file. Change the default Docker file to this:
FROM microsoft/dotnet:2.0-sdk as builder ENV DOTNET_CLI_TELEMETRY_OPTOUT 1 # Optimize for Docker builder caching by adding projects first. RUN mkdir -p /root/src/function WORKDIR /root/src/function COPY ./function/Function.csproj . WORKDIR /root/src/ COPY ./root.csproj . RUN dotnet restore ./root.csproj COPY . . RUN dotnet publish -c release -o published -r linux-arm ADD https://github.com/openfaas/faas/releases/download/0.6.1/fwatchdog-armhf /usr/bin/fwatchdog RUN chmod +x /usr/bin/fwatchdog FROM microsoft/dotnet:2.0.0-runtime-stretch-arm32v7 WORKDIR /root/ COPY --from=builder /root/src/published . COPY --from=builder /usr/bin/fwatchdog / ENV fprocess="dotnet ./root.dll" EXPOSE 8080 CMD ["/fwatchdog"]
Notice a few things. All the RUN commands are above the second FROM where we take the results of the first container and use its output to build the second ARM-based one. We can't RUN stuff because we aren't on ARM, right?
We use the Faas-Cli to build the app, build the docker container, AND publish the result to Kubernetes.
faas-cli build -f dotnet-ping.yml --parallel=1 faas-cli push -f dotnet-ping.yml faas-cli deploy -f dotnet-ping.yml --gateway http://192.168.170.2:31112
And here is the dotnet-ping command running on the pi, as seen within the Kubernetes Dashboard.
I can then scale them out like this:
kubectl scale deploy/dotnet-ping --replicas=6
And if I hit it multiple times - either via curl or via the dashboard, I see it's hitting different pods:
If I want to get super fancy, I can install Grafana - a dashboard manager by running locally in my machine on port 3000
docker run -p 3000:3000 -d grafana/grafana
Then I can add OpenFaas a datasource by pointing Grafana to http://192.168.170.2/31119 which is where the Prometheus metrics app is already running, then import the OpenFaas dashboard from the grafana.json file that is in the I cloned it from.
Super cool. I'm going to keep using this little Raspberry Pi Kubernetes Cluster to learn as I get ready to do real K8s in Azure! Thanks to Alex Ellis for his kindness and patience and to Jessie Frazelle for making me love both Windows AND Linux!
* If you like this blog, please do use my Amazon links as they help pay for projects like this! They don't make me rich, but a few dollars here and there can pay for Raspberry Pis!
Sponsor: Check out JetBrains Rider: a new cross-platform .NET IDE. Edit, refactor, test and debug ASP.NET, .NET Framework, .NET Core, Xamarin or Unity applications. Learn more and download a 30-day trial!
© 2017 Scott Hanselman. All rights reserved.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
0 notes
lucyariablog · 7 years ago
Text
Content Marketing in 2022: Very Personal, No Silos, and Lots of Voice
Where do you see yourself in five years?
Do you hate that question as much as I do? While I’m not a fan (perhaps because I’ve never had a great answer), I understand why it’s asked. The interviewer wants to know that the job candidate has considered the short-term future and wants to see how the candidate’s potential path for success fits with the company’s.
With a professional twist, we asked the experts presenting at Content Marketing World what they see in the next five years as the biggest changes in content marketing. This isn’t a list of predicted tech advances or outlandish guesses – it’s practical and proactive. You could take one or all 25 and begin working on them today (if you’re not already) – to plan strategically for short- and long-term success.
We’ve segregated the answers based on the five emerging themes – personalization, formats, implementation, voice-activation, and data.
As you’ll see, the impact of artificial intelligence is a theme that runs through all the categories. Ironically, Michael Brenner points out, it is technology that will help us better connect with people. “We are in a quick march to deep content personalization, add machine learning and AI to help us predict what to create, for whom, where, and how often,” says the CEO of Marketing Insider Group.
It is technology that will help us connect with people, says @BrennerMichael via @AnnGynn. #CMWorld Click To Tweet
Make it personal
Publish one-on-one websites
The variable content option available now in email marketing will be an option for all marketing content. We can have a website or blog that creates itself on the fly for each visitor based on contextual knowledge of that visitor (i.e., what they’ve searched before arriving, how often they’ve come to the site, and what they clicked on once they were there). Jessica Best, director of data-driven marketing, Barkley
Craft seamless experience
The biggest change is the ability to deliver contextually relevant information seamlessly that’s personalized based on device, location, and preferred format. (To this end, read Rebecca Lieb’s new book Content: the Atomic Particle of Marketing.) Heidi Cohen, chief content officer, Actionable Marketing Guide
Meet your very segmented audience
I expect to see continued fragmentation of audiences. We’ll need to meet our audiences in more places moving forward (evaluating each place strategically, of course). Getting the tone right across the right channels as our audiences splinter will be a challenge for brands. Amanda Changuris, associate director of corporate communications, BNY Mellon
Structure implementation smartly
Be prepared, be very prepared
The dream of real, private, one-to-one conversations between brands and people will be realized as AI, machine learning, natural language recognition, and other technologies come into their own as bots and digital assistants. The people, of course, will lead those conversations and the brands will respond.
This dream will only come true if the technologists have the help of content people – gifted writers and creatives – who can structure conversations and devise great dialogue to give the machines tales to tell and stuff to say. This means (1) many more true scriptwriters in content marketing and (2) an enormous leap in capabilities needed to build the APIs and structure the data needed to support billions of real-time conversations with millions of people every day. Kirk Cheyfitz, co-founder, Story Worldwide
Cross into sales
Traditional marketing teams and content are already going away, and the lines between sales and marketing will blur until both of those become one. By 2022, content marketing will really be “content selling. If your content isn’t driving sales, then why are you creating it? Skyler Moss, director of digital marketing, HCSS
#ContentMarketing 2022 will be “content selling”, predicts @cskylermoss. #CMWorld Click To Tweet
Go to each sales place
Content is going to be essential to bringing a convergence of the marketing messaging and sales training content that salespeople need to be effective across selling situations. Integrated, interactive playbooks (that match message to selling situation) will make this happen. The technology is here for that, but the content needs to catch up. Tim Riesterer, chief strategy and marketing officer, Corporate Visions
Recognize that all employees are marketers
The marketer of tomorrow needs to have a diverse skill set and a good understanding of the channels that fit the brand’s needs and prospective audience’s interests. The team also needs to work within the rest of the company rather than as a silo within it. Encouraging other employees to think and act like marketers is a secret resource. Other employees are engaged in all parts of the buyer’s journey, which are valuable insights in creating quality content, especially when you need to create content to encourage your clients to become brand champions. Colleen Weston, marketing director, Britton Gallagher
Engage in sprints
Content teams will grow exponentially as more organizations understand the need for top-notch, in-house content creators to lead their efforts. Within long-running content marketing initiatives, we’ll also see more experimentation and Agile iteration, all of which will be enabled by a jump in the number of content teams using Agile approaches to manage their work. Andrea Fryrear, founder and chief content officer, Fox Content
See the shortcomings
We’ll have an entire generation of marketers with NO direct response marketing experience whatsoever. This will be a much bigger problem than many organizations anticipate. Jonathan Kranz, principal, Kranz Communications
Don’t get comfortable
I read an article about a company in the U.K. that began to use Albert (an AI-based marketing platform) for its search engine marketing – PPC, AdWords, social advertising. It did so well, they ended up letting their agency go. This is going to become commonplace quickly. Gini Dietrich, CEO, Arment Dietrich
#ContentMarketing 2022 will see agencies replaced by AI tools, says @ginidietrich. #CMWorld Click To Tweet
Evolve your formats
Don’t show, do it
Instead of showing people how to do something we’ll have to move our content marketing to helping people do it. For example, rather than writing an article about SEO, Neil Patel created a utility to review SEO on a website. Today, we write long, detailed content because these pieces get shared and linked to more and therefore rank well in Google. But most people don’t read long blog posts so the content is not actually delivering on the value because readers (potential customers) don’t implement what we write. We need to make it a lot easier for people to implement what we share, and help people do instead of showing people how, to have a better impact. Ian Cleary, founder, RazorSocial
Engage in real time
The rise of the live experience – this isn’t just the broadcast to a passive audience, but really leaning into participation to build stronger communities. This is how brands can become hubs, similar to how retailers become community hubs by using their spaces to provide deeper experiences for their customers. This can happen in the B2B world beyond the confines of a social media space – higher engagement can happen with the live blogging experience and making everything a lot more face to face rather than behind a screen. Mark Masters, managing director, The ID Group
Be brief
Blogs won’t be nearly as big as they are today. Google’s algorithm will increasingly value real-time and short-form content such that content producers will follow suit. Matt Heinz, president, Heinz Marketing
#ContentMarketing 2022: Blogs won’t be as big. Real-time, short-form content will be. @HeinzMarketing #CMWorld Click To Tweet
Favor the more practical, not the shiniest
I see the renaissance of podcasting. We all thought that audio content died with the coming of visual content. However, audio has a huge upper hand when it comes to saving time. Everyone is multitasking these days. For example, you can always listen to a podcast while commuting. Moreover, we are seeing a more driven generation who would rather listen to tips and hacks to make their lives better instead of listening to music. Srinivasa Raghavan, CEO and founder, Animaker
Be memorable
The behavior change will be to switch from constant acquisition mode (get in front of people, acquire followers, readers, subscribers, etc.) to retention mode (be memorable to people, hold attention over time to gain trust and loyalty and trigger actions).
The tactical change will be shifting from piece-by-piece publishing to more prevalent use of original series – videos, articles, podcasts, social posts, anything. These overtly named entities focus on your brand owning one important idea in the audience’s mind, cementing it over time. Original series use the right storytelling or educational mechanics to keep people coming back in an era where we spend little time with any one thing. Jay Acunzo, creator and host, Unthinkable
Go deep
Immersive multimedia storytelling is going to catch fire. What do I mean by that? I always return to The New York Times snowfall example as it transcends the text-with-pictures model to create an experience as the viewer reads and scrolls down. Detail-oriented reporting and information gathering is a must. Together, anecdotes and quantitative information are powerful. Visuals are a must. Thinking through how the audience is most likely to stick with you through a 4,300-word story (yes, I did) is a must. Michelle Park Lazette, writer, Federal Reserve Bank
Get in front of your audience
Go on your own
Modern brands will adopt an owned-media-centric marketing model and leverage paid media only when necessary vs. today’s paid-centric model. Dan Curran, CEO, PowerPost
#ContentMarketing 2022: Brands will adopt owned-media model & leverage paid when necessary. @manvsagency Click To Tweet
Be the gathering place
Distribution will get expensive for companies that don’t own channels people pay attention to. In 2022, it will be hard to build followings because audiences are going to tire of the massive amounts of content and only go to a couple “water holes” for content. If you aren’t one of them, you will have a big challenge. John Hall, CEO, Influence & Co.
Act like a publishing company
We’ll see more content marketing teams run like media outlets. This would mean centralized people and platform management, with freelance and remote content marketing specialists executing against the content strategy. Erika Heald, consultant, Erika Heald Marketing Consulting
Specialize and/or spend a lot
Content distribution will be difficult. Browsers will have built-in ad-blockers and more of our advertising budgets will go to some of the giant forces like Google and Facebook. The clutter will be even thicker and harder to cut through, and will leave content marketers with two options: (1) Have a huge budget or (2) be specific about the audience you are talking to. Joakim Ditlev, content marketing specialist, Content Marketing DK
Answer the call of Siri and Alexa
Give direct answers
By 2020, there will be over 200 billion voice-search queries per month, according to the Trends Report. That volume will make up half of all search queries. As the use of Alexa, Echo Dot, Google Home, Siri, and other non-screen search devices will increase. The newer devices and advanced technology make it very easy for searchers to ask questions.
Content marketers will need to take this into consideration as they create content. Voice searches are more direct with the searcher looking for a quick answer. The answer to their query will not need additional context. Andy Crestodina, principal and strategic director, Orbit Media
Evolve your content
By 2022, content marketers will need to reshape their content format, tone, and style for a voice-activated, connected world where content is consumed in new environments on the go. Effective content will fall into three camps: Practical (help me get what I need), educational (teach me), or emotional (entertain me). There will be little room for the current undergrowth of content marketing noise. Heather Pemberton Levy, vice president, content publishing, Gartner
#ContentMarketing 2022: Reshape content for voice-activated world, says @heathrpemberton. #CMWorld Click To Tweet
Make new friends
Voice-activated search is going to be the next big challenge for content professionals to solve. Make friends with content strategists and linguists so your content is ready for this challenge. Ahava Leibtag, principal, AHA Media Group
Big data
Pay attention
With each passing year, society is more connected and companies are providing more insights and data. The biggest change I see is the amount of data we pay attention to, not only to prove ROI, but to help us better understand our audience. Jason Schemmel, social media manager, Harper Collins Christian Publishing
Break it down
I think “big data” will have to become “small data.” We’ll need to do a much better job of taking the huge amounts of data we’re gathering and distill it down to essential pieces of information that help us better identify the day-to-day problems people face and how we can help solve them. Ryan Knott, public relations specialist, TechSmith Corp.
Conclusion
Where will content marketing be in five years? Continually evolving.
These experts share great insight on where content marketing is headed – more personalization, cross-functioning content, relevant formats, and voice activation. But the single most important takeaway is that your content marketing program must be structured in a way that it can adapt whether the change comes from technology, audience preferences, or even a change in your company’s business offerings.
Now, where will you be in five years with your content marketing programs? Share in the comments.
You can meet and learn from these experts as they present at Content Marketing World 2017 Sept. 5-8 in Cleveland, Ohio. Register today and use the code BLOG100 to save $100.
Cover image by Joseph Kalinowski/Content Marketing Institute
The post Content Marketing in 2022: Very Personal, No Silos, and Lots of Voice appeared first on Content Marketing Institute.
from http://contentmarketinginstitute.com/2017/08/content-marketing-2022/
0 notes
misr-able · 7 years ago
Text
Day 1 (30.06.17)
I was supposed to make this blog thing before I got here so I could record everything happening in real time but in typical Iman fashion I was lazy and I didn't. So back-dating this first post, I was freaking out at the airport after I had checked in to lobby because I was alone and wtf was I really fucking going to another country where I knew a total of null people?? I tried not to think about it because I didn't have Wi-Fi and I knew if I freaked out too bad no one would be able to calm me down. Several SOS messages later to my friends I went back to ignoring my feelings and telling brain to shut up. Felt the same shit in my gut when I was taking off but after that it was pretty okay. I was super excited to see the pyramids from the plane (Which I didnt) so I was happy I got a window seat and kept looking outside. Like face glued to window like a kid outside. Okay. Next I got to the airport. And when they're scanning my passport the dude (who doesn't even speak english) tells me to go back in line. He sends me another dude who instead of talking to me is scrolling his facebook???? They ask for my ID and I'm like wtf is happening and then finally they send me to a nice dude who understands and speaks English and I figure out that they were having trouble matching my in person face with the one on the passport because 1. I was wearing my glasses and 2. Because I was also wearing a hijab. After answering dumb questions like what's your birthplace and your birthday and your family name, I volunteered to show them more ID and they fiiiiinally believed that it was I, Iman Nadeem Zoqi present in the flesh. Also all I was thinking was even I got a fake passport made wouldn't I just remember all the details on it??? It would be stupid of me not to. Next I had to get a sim because my dad was like get it as soon as you can and I went to the booth and they were like it's 460 epg ($25) and I thought that was the standard price. I got 40 GB worth of data and it's like how will I use so much in 6 weeks???? Later I found out that the aiesec people give you your own sim that you can get charged for like 150 epg (thanks dad for wrong advice even tho I specifically asked wether it was going to be more expensive at the airport) Then I fucka finally get out of the airport and heavens behold I finally have internet. But my arrival pick up person isn't here yet???? I call him and he's like 10 mins away and I'm like just my luck. So anyways i waitied. His name was kareem. Nice dude. Super friendly and everything. Next we come to the hotel. The name of the hotel is "Grand Hotel" but let me tell you that the only thing grand about is well ABSOLUTELY NOTHING. There was no elevator and I was like wtf and then we leave on the last floor (THE SEVENTH FLOOR) so lol at my stair hating ass. The hotel was so shabby and the only way to best compare is it by thinking about nca. AAAAAH. I get assigned my room and then I notice that's there is no AC. ANYWHERE. The bunk beds were cool but no AC??? The burger in me was horrified. Also, the guys and girls are all living together just in different rooms and idk how my parents would feel about that.... AND THERE IS NO SPECIFIC WASHROOM FOR GUYS OR GIRLS SO EVERYONE USES BOTH OF THEM AND IT'S LIKE NOOO. BOYS ARE ANIMALS I DON'T WANT TO SHARE. Then I got lazy even tho I knew we had to go out and so I had to wait for half an hour to shower and when I went in the shower head was detached and looking at me lifelessly and I had to shower with really shit water pressure and I was just like !!!!! But I showered and then I couldn't decide what to wear and everyone was so chill and pretty and I felt so out of my element because I lost the one lipstick that I love and I was like sed. Oh, all the guys shake hands with you here which I like because it's not different between the two genders. But also, they're super touchy feely and I wasn't so comfortable with that?? Hmm. We were supposed to go out for felucca at 9 but ended up going at 11:30??? Because everyone is always running late here. The project head is Azzaz and he seems super nice. Another dude who's name I think is Abdullah was super nice too (Please refer to lighter game post) We're living in downtown which is like the hub of Cairo and there are so many shops and traffic and so noisy, It's a little bit insane. ALSO OMG THERE IS A EGYPTIAN VERSION OF PINDI BOYS. They literally move around in groups and say dumb shit after you and like stare at you. It's horrible and stupid and fuck social norms. And there is mixture of the locals. Some of them were wearing hijabs while some of them were wearing dresses and jeans. Couples were strolling hand in hand and it was generally like such a huge contrast even amongst themselves. WHY DID I BRING SO MUCH LUGGAGE? I have an enormous suitcase that is almost filled to the brim (6 pairs of shoes, seriously iman???) while everyone has smaller suitcases and like how am I going to take stuff back??? I hope I have more baggage when I go back or I will cry. ALSO GUESS WHICH MOFO GOT A FLOPPY SUNHAT FINALLY. MEEEEE. Yay. One of my roommate is from Romania while the other two are from China. I don't really know how to pronounce /spell their names rn so will figure that out later. Also special shoutout to all my friends who listen to me rant and whine and be pessimistic. Thanks for constantly repeating the same thing so my thick skill will understand it. ~i-man
0 notes
techscopic · 7 years ago
Text
How to Build a Kubernetes Cluster with ARM Raspberry Pi then run .NET Core on OpenFaas
First, why would you do this? Why not. It’s awesome. It’s a learning experience. It’s cheaper to get 6 pis than six “real computers.” It’s somewhat portable. While you can certainly quickly and easily build a Kubernetes Cluster in the cloud within your browser using a Cloud Shell, there’s something more visceral about learning it this way, IMHO. Additionally, it’s a non-trivial little bit of power you’ve got here. This is also a great little development cluster for experimenting. I’m very happy with the result.
By the end of this blog post you’ll have not just Hello World but you’ll have Cloud Native Distributed Containerized RESTful microservice based on ARMv7 w/ k8s Hello World! as a service. (original Tweet).
Not familiar with why Kubernetes is cool? Check out Julia Evans’ blog and read her K8s posts and you’ll be convinced!
Hardware List (scroll down for Software)
Here’s your shopping list. You may have a bunch of this stuff already. I had the Raspberry Pis and SD Cards already.
6 – Raspberry Pi 3 – I picked 6, but you should have at least 3 or 4.
One Boss/Master and n workers. I did 6 because it’s perfect for the power supply, perfect for the 8-port hub, AND it’s a big but not unruly number.
6 – Samsung 32Gb Micro SDHC cards – Don’t be too cheap.
Faster SD cards are better.
2×6 – 1ft flat Ethernet cables – Flat is the key here.
They are WAY more flexible. If you try to do this with regular 1ft cables you’ll find them inflexible and frustrating. Get extras.
1 – Anker PowerPort 6 Port USB Charging Hub – Regardless of this entire blog post, this product is amazing.
It’s almost the same physical size as a Raspberry Pi, so it fits perfect at the bottom of your stack. It puts out 2.4a per port AND (wait for it) it includes SIX 1ft Micro USB cables…perfect for running 6 Raspberry Pis with a single power adapter.
1 – 7 layer Raspberry Pi Clear Case Enclosure – I only used 6 of these, which is cool.
I love this case, and it looks fantastic.
1 – Black Box USB-Powered 8-Port Switch – This is another amazing and AFAIK unique product.
An overarching goal for this little stack is that it be easy to move around and set up but also to power. We have power to spare, so I’d like to avoid a bunch of “wall warts” or power adapters. This is an 8 port switch that can be powered over a Raspberry Pi’s USB. Because I’m given up to 2.4A to each micro USB, I just plugged this hub into one of the Pis and it worked no problem. It’s also…wait for it…the size of a Pi. It also include magnets for mounting.
1 – Some Small Router – This one is a little tricky and somewhat optional.
You can just put these Pis on your own Wifi and access them that way, but you need to think about how they get their IP address. Who doles out IPs via DHCP? Static Leases? Static IPs completely?
The root question is – How portable do you want this stack to be? I propose you give them their own address space and their own router that you then use to bridge to other places. Easiest way is with another router (you likely have one lying around, as I did. Could be any router…and remember hub/switch != router.
Here is a bad network diagram that makes the point, I think. The idea is that I should be able to go to a hotel or another place and just plug the little router into whatever external internet is available and the cluster will just work. Again, not needed unless portability matters to you as it does to me.
You could ALSO possibly get this to work with a Travel Router but then the external internet it consumed would be just Wifi and your other clients would get on your network subnet via Wifi as well. I wanted the relative predictability of wired.
What I WISH existed was a small router – similar to that little 8 port hub – that was powered off USB and had an internal and external Ethernet port. This ZyXEL Travel Router is very close…hm…
Optional – Pelican Case if you want portability. I’ll see what airport security thinks. O_O
Optional – Tiny Keyboard and Mouse – Raspberry Pis can put out about 500mA per port for mice and keyboards. The number one problem I see with Pis is not giving them enough power and/or then having an external device take too much and then destabilize the system. This little keyboard is also a touchpad mouse and can be used to debug your Pi when you can’t get remote access to it. You’ll also want an HMDI cable occasionally.
You’re Rich – If you have money to burn, get the 7″ Touchscreen Display and a Case for it, just to show off htop in color on one of the Pis.
Dodgey Network Diagram
Disclaimer
OK, first things first, a few disclaimers.
The software in this space is moving fast. There’s a non-zero chance that some of this software will have a new version out before I finish this blog post. In fact, when I was setting up Kubernetes, I created a few nodes, went to bed for 6 hours, came back and made a few more nodes and a new version had come out. Try to keep track, keep notes, and be aware of what works with what.
Next, I’m just learning this stuff. I may get some of this wrong. While I’ve built (very) large distributed systems before, my experience with large orchestrators (primarily in banks) was with large proprietary ones in Java, C++, COM, and later in C#, .NET 1.x,2.0, and WCF. It’s been really fascinating to see how Kubernetes thinks about these things and comparing it to how we thought about these things in the 90s and very early 2000s. A lot of best practices that were HUGE challenges many years ago are now being codified and soon, I hope, will “just work” for a new generation of developer. At least another full page of my resume is being marked [Obsolete] and I’m here for it. Things change and they are getting better.
Software
Get your Raspberry PIs and SD cards together. Also bookmark and subscribe to Alex Ellis’ blog as you’re going to find yourself there a lot. He’s the author of OpenFaas, which I’ll be using today and he’s done a LOT of work making this experiment possible. So thank you Alex for being awesome! He has a great post on how Multi-stage Docker files make it possible to effectively use .NET Core on a Raspberry Pi while still building on your main machine. He and I spent a few late nights going around and around to make this easy.
Alex has put together a Gist we iterated on and I’ll summarize here. You’ll do these instructions n times for all machines.
You’ll do special stuff for the ONE master/boss node and different stuff for the some number of worker nodes.
ADVANCED TIP! If you know what you’re doing Linux-wise, you should save this excellent prep.sh shell script that Alex made, then SKIP to the node-specific instructions below. If you want to learn more, do it step by step.
ALL NODES
Burn Jessie to a SD Card
You’re going to want to get a copy of Raspbian Jesse Lite and burn it to your SD Cards with Etcher, which is the only SD Card Burner you need. It’s WAY better than the competition and it’s open source.
You can also try out Hypriot and their “optimized docker image for Raspberry Pi” but I personally tried to get it working reliably for a two days and went back to Jesse. No disrespect.
Creating an empty file called “ssh” before you put the card in the Raspberry Pi
SSH into the new Pi
I’m on Windows so I used WSL (Ubuntu) for Windows that lets me SSH and do run Linux natively.
ssh pi@raspberrypi
Login pi, password raspberry.
Change the Hostname
I ran
rasbpi-config
then immediately reboot with “sudo reboot”
Install Docker
curl -sSL get.docker.com | sh && \ sudo usermod pi -aG docker
Disable Swap. Important, you’ll get errors in Kuberenetes otherwise
sudo dphys-swapfile swapoff && \ sudo dphys-swapfile uninstall && \ sudo update-rc.d dphys-swapfile remove
Go edit /boot/cmdline.txt with your favorite editor, or use
sudo nano /boot/cmdline
and add this at the very end. Don’t press enter.
cgroup_enable=cpuset cgroup_enable=memory
Install Kubernetes
curl -s http://ift.tt/22fimui | sudo apt-key add - && \ echo "deb http://ift.tt/2f7PUy5 kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \ sudo apt-get update -q && \ sudo apt-get install -qy kubeadm
MASTER/BOSS NODE
After ssh’ing into my main node, I used /ifconfig eth0 to figure out what the IP adresss was. Ideally you want this to be static (not changing) or at least a static lease. I logged into my router and set it as a static lease, so my main node ended up being 192.168.170.2, and .1 is the router itself.
Then I initialized this main node
sudo kubeadm init --apiserver-advertise-address=192.168.170.2
This took a WHILE. Like 10-15 min, so be patient.
Kubernetes uses this admin.conf for a ton of stuff, so you’re going to want a copy in your $HOME folder so you can call “kubectl” easily later, copy it and take ownership.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
When this is done, you’ll get a nice print out with a ton of info and a token you have to save. Save it all. I took a screenshot.
WORKER NODES
Ssh into your worker nodes and join them each to the main node. This line is the line you needed to have saved above when you did a kubectl init.
kubeadm join --token d758dc.059e9693bfa5 192.168.170.2:6443 --discovery-token-ca-cert-hash sha256:c66cb9deebfc58800a4afbedf0e70b93c086d02426f6175a716ee2f4d
Did it work?
While ssh’ed into the main node – or from any networked machine that has the admin.conf on it – try a few commands.
Here I’m trying “kubectl get nodes” and “kubectl get pods.”
Note that I already have some stuff installed, so you’ll want try “kubectl get pods –namespace kube-system” to see stuff running. If everything is “Running” then you can finish setting up networking. Kubernetes has fifty-eleven choices for networking and I’m not qualified to pick one. I tried Flannel and gave up and then tried Weave and it just worked. YMMV. Again, double check Alex’s Gist if this changes.
kubectl apply -f http://ift.tt/2qJxB6N
At this point you should be ready to run some code!
Hello World…with Markdown
Back to Alex’s gist, I’ll try this “markdownrender” app. It will take some Markdown and return HTML.
Go get the function.yml from here and create the new app on your new cluster.
$ kubectl create -f function.yml $ curl -4 http://localhost:31118 -d "# test" <p><h1>test</h1></p>
This part can be tricky – it was for me. You need to understand what you’re doing here. How do we know the ports? A few ways. First, it’s listed as nodePort in the function.yml that represents the desired state of the application.
We can also run “kubectl get svc” and see the ports for various services.
pi@hanselboss1:~ $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE alertmanager NodePort 10.103.43.130 <none> 9093:31113/TCP 1d dotnet-ping ClusterIP 10.100.153.185 <none> 8080/TCP 1d faas-netesd NodePort 10.103.9.25 <none> 8080:31111/TCP 2d gateway NodePort 10.111.130.61 <none> 8080:31112/TCP 2d http-ping ClusterIP 10.102.150.8 <none> 8080/TCP 1d kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d markdownrender NodePort 10.104.121.82 <none> 8080:31118/TCP 1d nodeinfo ClusterIP 10.106.2.233 <none> 8080/TCP 1d prometheus NodePort 10.98.110.232 <none> 9090:31119/TCP 2d
See those ports that are outside:insider? You can get to markdownrender directly from 31118 on an internal IP like localhost, or the main/master IP. Those 10.x.x.x are all software networking, you can not worry about them. See?
pi@hanselboss1:~ $ curl -4 http://ift.tt/2zWjCfR -d "# test" <h1>test</h1> pi@hanselboss1:~ $ curl -4 http://ift.tt/2xuMdHf -d "# test" curl: (7) Failed to connect to 10.104.121.82 port 31118: Network is unreachable
Can we access this cluster from another machine? My Windows laptop, perhaps?
Access your Raspberry Pi Kubernetes Cluster from your Windows Machine (or elsewhere)
I put KubeCtl on my local Windows machine put it in the PATH.
I copied the admin.conf over from my Raspberry Pi. You will likely use scp or WinSCP.
I made a little local batch file like this. I may end up with multiple clusters and I want it easy to switch between them.
SET KUBECONFIG=”C:\users\scott\desktop\k8s for pi\admin.conf
Once you have Kubectl on another machine that isn’t your Pi, try running “kubectl proxy” and see if you can hit your cluster like this. Remember you’ll get weird “Connection refused” if kubectl thinks you’re talking to a local cluster.
Here you can get to localhost:8001/api and move around, then you’ve successfully punched a hole over to your cluster (proxied) and you can treat localhost:8001 as your cluster. So “kubectl proxy” made that possible.
If you have WSL (Windows Subsystem for Linux) – and you should – then you could also do this and TUNNEL to the API. But I’m going to get cert errors and generally get frustrated. However, tunneling like this to other apps from Windows or elsewhere IS super useful. What about the Kubernetes Dashboard?
~ $ sudo ssh -L 8001:10.96.0.1:443 [email protected]
I’m going to install the Kubernetes Dashboard like this:
kubectl apply -f http://ift.tt/2xudwS6
Pay close attention to that URL! There are several sites out there that may point to older URLs, non ARM dashboard, or use shortened URLs. Make sure you’re applying the ARM dashboard. I looked here http://ift.tt/2zWjCMT.
Notice I’m using the “alternative” dashboard. That’s for development and I’m saying I don’t care at all about security when accessing it. Be aware.
I can see where my Dashboard is running, the port and the IP address.
pi@hanselboss1:~ $ kubectl get svc --namespace kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 2d kubernetes-dashboard ClusterIP 10.98.2.15 <none> 80/TCP 2d
NOW I can punch a hole with that nice ssh tunnel…
~ $ sudo ssh -L 8080:10.98.2.15:80 [email protected]
I can access the Kubernetes Dashboard now from my Windows machine at http://localhost:8080 and hit Skip to login.
Do note the Namespace dropdown and think about what you’re viewing. There’s the kube-system stuff that manages the cluster
Adding OpenFaas and calling a serverless function
Let’s go to the next level. We’ll install OpenFaas – think Azure Functions or Amazon Lambda, except for your own Docker and Kubernetes cluster. To be clear, OpenFaas is an Application that we will run on Kubernetes, and it will make it easier to run other apps. Then we’ll run other stuff on it…just some simple apps like Hello World in Python and .NET Core. OpenFaas is one of several open source “Serverless” solutions.
Do you need to use OpenFaas? No. But if your goal is to write a DoIt() function and put it on your little cluster easily and scale it out, it’s pretty fabulous.
Remember my definition of Serverless…there ARE servers, you just don’t think about them.
Serverless Computing is like this – Your code, a slider bar, and your credit card.
Let’s go.
.NET Core on OpenFaas on Kubernetes on Raspberry Pi
I ssh’ed into my main/master cluster Pi and set up OpenFaas:
git clone http://ift.tt/2eHgAFS && cd faas-netes kubectl apply -f faas.armhf.yml,rbac.yml,monitoring.armhf.yml
Once OpenFaas is installed on your cluster, here’s Alex’s great instructions on how to setup your first OpenFaas Python function, so give that a try first and test it. Once we’ve installed that Python function, we can also hit http://ift.tt/2zWjFIz (where that’s your main Boss/Master’s IP) and see it the OpenFaas UI.
OpenFaas and the “faas-netes” we setup above automates the build and deployment of our apps as Docker Images to Kuberetes. It makes the “Developer’s Inner Loop” simpler. I’m going to make my .NET app, build, deploy, then change, build, deploy and I want it to “just work” on my cluster. And later, and I want it to scale.
I’m doing .NET Core, and since there is a runtime for .NET Core for Raspberry Pi (and ARM system) but no SDK, I need to do the build on my Windows machine and deploy from there.
Quick Aside: There are docker images for ARM/Raspberry PI for running .NET Core. However, you can’t build .NET Core apps (yet?) directly ON the ARM machine. You have to build them on an x86/x64 machine and then get them over to the ARM machine. That can be SCP/FTPing them, or it can be making a docker container and then pushing that new docker image up to a container registry, then telling Kubernetes about that image. K8s (cool abbv) will then bring that ARM image down and run it. The technical trick that Alex and I noticed was of course that since you’re building the Docker image on your x86/x64 machine, you can’t RUN any stuff on it. You can build the image but you can’t run stuff within it. It’s an unfortunate limitation for now until there’s a .NET Core SDK on ARM.
What’s required on my development machine (not my Raspberry Pis?
I installed KubeCtl (see above) in the PATH
I installed OpenFaas’s  Faas-CLI command line and put it in the PATH
I installed Docker for Windows. You’ll want to make sure your machine has some flavor of Docker if you have a Mac or Linux machine.
I ran docker login at least once.
I installed .NET Core from http://dot.net/core
Here’s the gist we came up with, again thanks Alex! I’m going to do it from Windows.
I’ll use the faas-cli to make a new function with charp. I’m calling mine dotnet-ping.
faas-cli new --lang csharp dotnet-ping
I’ll edit the FunctionHandler.cs to add a little more. I’d like to know the machine name so I can see the scaling happen when it does.
using System; using System.Text; namespace Function { public class FunctionHandler { public void Handle(string input) { Console.WriteLine("Hi your input was: "+ input + " on " + System.Environment.MachineName); } } }
Check out the .yml file for your new OpenFaas function. Note the gateway IP should be your main Pi, and the port is 31112 which is OpenFaas.
I also changed the image to include “shanselman/” which is my Docker Hub. You could also use a local Container Registry if you like.
provider: name: faas gateway: http://ift.tt/2xtjend functions: dotnet-ping: lang: csharp handler: ./dotnet-ping image: shanselman/dotnet-ping
Head over to the ./template/csharp/Dockerfile and we’re going to change it. Ordinarily it’s fine if you are publishing from x64 to x64 but since we are doing a little dance, we are going to build and publish the .NET apps as linux-arm from our x64 machine, THEN push it, we’ll use a multi stage docker file. Change the default Docker file to this:
FROM microsoft/dotnet:2.0-sdk as builder ENV DOTNET_CLI_TELEMETRY_OPTOUT 1 # Optimize for Docker builder caching by adding projects first. RUN mkdir -p /root/src/function WORKDIR /root/src/function COPY ./function/Function.csproj . WORKDIR /root/src/ COPY ./root.csproj . RUN dotnet restore ./root.csproj COPY . . RUN dotnet publish -c release -o published -r linux-arm ADD http://ift.tt/2zVAP98 /usr/bin/fwatchdog RUN chmod +x /usr/bin/fwatchdog FROM microsoft/dotnet:2.0.0-runtime-stretch-arm32v7 WORKDIR /root/ COPY --from=builder /root/src/published . COPY --from=builder /usr/bin/fwatchdog / ENV fprocess="dotnet ./root.dll" EXPOSE 8080 CMD ["/fwatchdog"]
Notice a few things. All the RUN commands are above the second FROM where we take the results of the first container and use its output to build the second ARM-based one. We can’t RUN stuff because we aren’t on ARM, right?
We use the Faas-Cli to build the app, build the docker container, AND publish the result to Kubernetes.
faas-cli build -f dotnet-ping.yml --parallel=1 faas-cli push -f dotnet-ping.yml faas-cli deploy -f dotnet-ping.yml --gateway http://ift.tt/2xtjend
And here is the dotnet-ping command running on the pi, as seen within the Kubernetes Dashboard.
I can then scale them out like this:
kubectl scale deploy/dotnet-ping --replicas=6
And if I hit it multiple times – either via curl or via the dashboard, I see it’s hitting different pods:
If I want to get super fancy, I can install Grafana – a dashboard manager by running locally in my machine on port 3000
docker run -p 3000:3000 -d grafana/grafana
Then I can add OpenFaas a datasource by pointing Grafana to http://ift.tt/2zVaKqu which is where the Prometheus metrics app is already running, then import the OpenFaas dashboard from the grafana.json file that is in the I cloned it from.
Super cool. I’m going to keep using this little Raspberry Pi Kubernetes Cluster to learn as I get ready to do real K8s in Azure! Thanks to Alex Ellis for his kindness and patience and to Jessie Frazelle for making me love both Windows AND Linux!
* If you like this blog, please do use my Amazon links as they help pay for projects like this! They don’t make me rich, but a few dollars here and there can pay for Raspberry Pis!
Sponsor: Check out JetBrains Rider: a new cross-platform .NET IDE. Edit, refactor, test and debug ASP.NET, .NET Framework, .NET Core, Xamarin or Unity applications. Learn more and download a 30-day trial!
© 2017 Scott Hanselman. All rights reserved.
      How to Build a Kubernetes Cluster with ARM Raspberry Pi then run .NET Core on OpenFaas syndicated from http://ift.tt/2wBRU5Z
0 notes