Cool good afternoon everyone. I hope you're at least a little bit awake after all the food that you've just eaten It's always a little tough in the lunchtime spot to keep you guys awake, but we'll see how we get on Just wait for a couple more people to come in It's always empty at the front. I Don't smell that much Dude Cool well, um, we'll get started anyway So I'm Christopher Holt This is your API is a UI part of the PHP track here at Drupal con This is my first time here. In fact my use of Drupal is Not very experienced. So so if I do any slip-ups Feel free to heckle feel free to to throw me your swag Anything you like just to keep us all awake If my clicker does want to work It doesn't Who is this guy? So I'm an engineering team lead at data sift We're we used to traffic everything on Twitter for our customers reseller on Twitter's behalf all in real time Now we're in your Facebook reading all your posts and comments and likes and providing aggregated analytics on that I look after the public web application and the public API So I'm responsible for the design and delivery of all these things. So I'm very much speaking from experience here prior to that I was a senior engineer at Timeout magazine if you've been to London, you might have got it for free New York, they're all over the world and I was very much involved in a web service oriented architecture Rebuild of the whole platform that allowed us to do multi-city multi translation capabilities I'm also the founder and Co-organizer of PHP Barcher a local user group in Reading We've been going a year now So if any of you ever come to the UK come along to Reading it's famous for being the home the the hometown of Ricky Gervais Yeah, and that's about it And me of course so so pleased to come along look us up come along speak who knows I Also act I Also shave This is actually a short beard for me So first off like I just said I'm not that experienced with Drupal so I'm gonna throw in a couple of examples that I've managed to find but in a general Sense, I'll be talking about APIs APIs both web services and the actual code that that we're writing I'm not gonna give you any opinions as to what the best API out there is I'm not gonna Jump off the fence there But I'm gonna give you a few opinionated examples of what I consider to be best practice And little things that can help you get along with your users and the the consumers of the software that you write As a quick hands up, can you put can you put your hands up if you don't enjoy audience participation? Sweet the joke works How many of you do APIs write APIs? That's quite a few of you how many of you write web services and how many of you write libraries and Modules thoughts are all of these are examples of APIs. There are ways in which that computers can interact with computers But one thing is kind of missing when we design our software We often think well, what's the easiest way that we can expose this to our customers so that people are gonna use our software But ultimately we're not necessarily thinking of the end users We're not necessarily thinking of the guy who's gonna be screaming you in the middle of the night when he hasn't figured out after five hours How to make your software work? So an API an application program is interface is an interface. It's a way in which computers talk to each other Interfaces in general are ways in which two systems or a user and a user or a user and computer and so on can talk to each other And us as humans we are built to figure stuff out. We're built to learn So the interfaces that are there in front of us can be very confusing to begin with but eventually we can work stuff out We can click around we can figure out what's going on Computers are finicky users. They don't really know what they're doing. They understand numbers They understand what you've told them to do, but if you present them with something novel it takes it Well apart from maybe Google with their their excellent AI stuff. It takes them a long time to figure out what's going on So as humans we have to tell the computers how to use these interfaces And as a result of that we need to understand the APIs that we're using and as a result of that The people creating the APIs need to think of us think of the low lead developer Think of the person who's going to be reading your documentation Looking at your code trying to talk to your web service and figure it all out and if it's an arcane mess of Inconsistency and of things that are not intuitive then that person is going to be cursing your name until the day they die Or at least until they get a new job, and they don't have to touch your stuff anymore So who are your users? Well, they're developers and your colleague developers They're your customers if you're selling a service If they're if they're buying your software if they're buying access to your product in your platform If they're building on top of your platform, and they're providing a service of their own They're customers so you not just the people who interact with you directly But those who interact with those who interact with you directly if that makes sense after lunch And any of the applications that are built on top of that you have all these People and systems and things to be considering when you're building this software when you're delivering the stuff to people So when you start approaching your API's when you start designing them and thinking about who you're going to deliver them to Think about how they're going to use them Come up with the use cases if I create this module that provides some programmatic access to my Drupal application Why do people want that? Are you doing it just because are you just exposing it on the off chance that someone will figure out that? They need that think of ways in which people are going to actually be Implementing software against your stuff and the use cases can help you understand that create user stories As a customer of mine, I want to Because I want to I want to consume the payments interface because I want to make a lot of money You know, that's quite a good driver money Document how those stories and use cases play out if you were the person interfacing with your software How would you go about? reading and using and consuming that service Lay all that out upfront Because that can provide a healthy guide and a map to the way that you can continue your integration Work in the in the first place and think about what kind of elevator pitch you can send to people Why would they want to use your API? Why should they use your software and not someone else's if you can Contain that in a couple of words in a couple of sentences And if you can include the word simple and easy to use and mean it Then people are a lot more likely to adopt your software as you're going on and Once you have those use cases once you have those stories and you can start to justify exactly Why you're exposing the API you have a cast iron set of examples as to the reasoning behind it So not only can it help guide the design, but it can help you understand exactly what you're revealing in the first place You don't really want to expose your business logic to people Just because you can you don't want it to be as close to the underlying code as you can you want to think about Reducing the complexity for very good reasons. You might have an object oriented system underneath of storing your data of Modeling everything you do, but your customer doesn't need to know that the the person the software that's Interfacing with that. They're only in it for themselves So think about the ways in which you can take that complicated object oriented model That's flexible as anything and boil that down to a more simple approach and Along with thinking what they can do Think about what a user cannot do Think about restricting them before you actually reveal this This interface think about the ways in which you're going to hold back Functionality the ways in which you're going to restrict them because nine times out of ten Your boss is going to turn around in three months time when you having published this API and said Actually, I want to sell it with only this bit and not that bit But that guy over there. He's paying a lot of money. He can have everything And then take those restrictions that you're considering had what you're holding back and what you're providing and look back at those use cases Those user stories and have a look to see if they are validated against it compare those Examples that you've come up already and see whether your API matches up to there. It's a really good example of Holding back on providing too much Capability if all you need to do is solve a couple of use cases So when I first started designing this talk, I put a tweet out there. I thought I was very novel I thought yeah, think of the users. Why doesn't anyone think of me when I'm creating this stuff? Expanding on all this frustration that I've got from all these people whose API's I've had to integrate with in the past Put that out there think of the users. I got this great idea Someone immediately pipes up and says oh, you're thinking of API UX and of course there's a website about it So if you go to API UX calm There's a really good blog there by Bruno Pedro, but one of the things that I found on there is the API hierarchy of needs So hopefully most of you if not some of you if none of you have heard of the Maslow's hierarchy of needs Basically, it's a ranked hierarchy of things that people want in order to be happy in life And in this example, it's how to be happy with an API So we have usability Can you use it if people can't use your stuff? They're not going to bother. They're gonna get Sweary they're gonna leave and use a competitor Functionality does it continue to work as you like and reliability does it always work the same way? Does it stand up? Does it always fall down or is it always available? Proficiency now I know it can I do cool things with it? Can I use it? Do I know it backwards or is it always changing and finally that creativity? What new novel things can I do with this stuff that this wonderful? Developer who's been to Chris holds talk has provided me So starting at the bottom usability That's not in the bathrooms here by the way Just in case you thought it looked familiar Usability if people can't use your software they will not use your software Unless they're paid a lot of money or unless that's the only thing they have as soon as a competitor Pops up with a more simple approach a more usable approach That uses jump ship Unless they've paid a lot of money to develop and lock themselves in with you They're over to the other side and you lose any future customers to that competitor So think about how you can make my life easier to use your service to use your library and key of that consistency If I've used your software before and you introduce a new feature Or if I've used a small part of your software before and there's another API that's been presented if they're not similar I need to start all over again. I need to start learning new things And as soon as I need to start learning new things I'm a lot less likely to want to try and jump in so if you can find ways in which you can improve that Consistency across your endpoints across the public methods of the stuff that you're putting out there Then by all means do that because that's going to make my life easier when it comes for me to start integrating a bit further into your stuff Look at style guides PHP has PSR is one and two and the soon-to-be brought out PSR 12. I think it is for PHP 7 Drupal's got your own code style guidelines Follow those because at the end of the day if I look at the way that you've created your software And I look at the way in which your software is laid out if I want to change that or if I want to understand it To see a language that I understand to see the way in which PHP is used underneath To see the way in which this rest service is presented to me If it's something I recognize and I'm familiar with then I'm a lot more likely to be at ease with it And for style guides in the code level anyway You've got tools like PHP code sniffer and for Drupal you've got coder I believe that can look into the the code style that you've got there and help enforce that when you have common attributes and functions getters and setters or a Crudway of accessing your underlying objects use the same words It's no good having get title on one object and get name on another Unless they mean specific different things such as a Salutation for one and the actual full name on the other you want to keep that terminology consistent Because as soon as I start using another kind of module that you put out there or another object that you put out there I'm going to be looking for that get name I'm going to be looking for those similar styles there Naming as well if you have a nice convention There's the old C style of actually prefixing stuff with the types. We don't need that anymore but certainly look at the ways in which that you can Name everything in a very consistent fashion something that falls into place error codes if I Have an error in one thing and I have the same kind of error in another if they don't have the same error that comes up to me. I'm never going to understand so in Rest in web services you've got the 400 error, which is catch all bad request and if something's not found You've got a 404 not found Which hopefully you all know But you can use a 400 in place of the 404 It's just as valid. It's just a lot less specific So if one place in your application Responds with that very specific. I haven't found anything and another comes across with something. That's a bit more a Bit more general. There's been a general error and it's your fault How am I as the person integrating gonna understand what you've put across and that kind of goes on to patterns so patterns are Existing established ways of solving similar problems across so hopefully most of you have heard of factory patterns There's observer patterns And all sorts of patterns that are out there they solve problems that you encounter day-to-day as your coding And if you use those people are more likely to be able to look at your software and understand exactly what you're trying to get at They can understand. Here's your solution Here's the problem and know exactly how you're approaching that In web services, we have RPC and we have rest different ways in which we can interact with stuff And if you look at the way that people apply these Patterns in a consistent way across not only your software, but across the whole software Ecosystem then you can find ways in which I know exactly what to do when I need to Create something in a web service a post or a puts to update it and so on So immediately we're again talking that consistency that same language with our users as we're putting stuff across And if you're interested in software patterns at all They're mostly laid out when it comes to the code level anyway in the gang of what's known as the gang of four there's a It's all laid out. There's all factory is put out there I forget the name of the authors, but have a look it's known up there and you can pick that through an Information hierarchy for your application is also important Understanding when you've created these objects how they relate to each other. So uber might have a Car to represent a taxi. They might have a person to represent the driver. They might have a passenger to represent a passenger but uber's Way of looking at the world might be more focused on the car for example Or on the driver then on the passenger Whereas the passenger or anyone who might be integrating something on behalf of a passenger would be more concerned about themselves So if you think about the ways in which people are going to be using your software The ways that they're more self-centered rather than you Apply those models to the way that people interact with your software Okay, so and An API where the car is the most important thing for you The passenger who's going to be paying you the money or who's going to be paying someone else to integrate with you Wants to think about themselves. So look at it from their point of view rather than imposing your structure on those people Nesting entities can be problematic if you go three four or five things deep Then all hell breaks loose when someone's trying to work with your stuff So if you have a car and a passenger and a wallet and a dollar Immediately you start getting more complex as you're representing these things with your interfaces And if you get this right if you get the cell this focusing on the user, right? Then it becomes a lot more intuitive for them because they're working with themselves and not necessarily with your cut your company focused way of doing things an abstraction Take those user stories. I was talking about reducing complexity and providing simplicity Abstraction is a great way of doing that if you need to know to book a taxi ride You need to find the car you need to tell the car to go somewhere And then you need to produce a fare that might be three API calls or three separate functions within your kit But a customer doesn't want to hit each Individual object each time to work through that process that very common use case so if you take those user stories and Work that out. What are they trying to do? How can I make a three-step process into one step process? So you can just have a book a ride function that hits those three things underneath, but that's provided that simplicity under That's provided the simplicity for the person who's integrating with you hide that complexity Because above all things what that actually lets you do is in the future You might have to add another call that says check that the car is available for example And that would be another thing that your customer might have to do just to get this common operation going But if you've abstracted it correctly if you've reduced the complexity down then you can make all these changes underneath You can change your entire underlying model without actually impacting the customer and breaking things for them Do the hard work so your users don't have to The more simple that you provide stuff Look at stripe. Look how easy it is to take payments with stripe That's easier it is the more likely you are to get traction the more like you are to get users the less likely you are to have Someone's swearing at you in the middle of the night and from that you get simplicity It is the best result of abstraction. It's the the if you can take these complex blocks inside Take them into smaller blocks and allow some to build something with that It'll be more straightforward more use and With a smaller footprint with fewer places to interact with Any faults that come up any problems that a customer has or any problems that software has using your stuff It'll be a lot easier to narrow down exactly where that's happening if they're hitting your API 345 times just to get one thing done That's 345 places that you have to check to see if there's a problem if it's just one Then you've got a great place to start the downside of abstraction Is if you provide very specific use cases you can Make it more difficult to extend upon what you've written You might reduce the opportunities to be creative with your API If you've taken away the concept of a car from a customer and you've just given them the ride in general Then they wouldn't necessarily be able to Unknow locate the five best cars around and bring them in and create their own things from more basic building blocks so finding a way of Balancing that and that's not an answer. I have for you today But finding a way in which you can find that nice balance of abstraction versus extensibility is going to be quite important Think about how people will build upon that your use cases might cover up exactly what the application is underneath But find ways in which you can understand how someone's going to be using your software Are they going to be using clients? Are they going to be using your API directly? Are they going to be using your objects in a very constrained fashion or in that more abstracted way that you put out there? And that will help guide you in terms of finding that balance those ways in which you can find the right Kind of level of which you can abstract Restrict it as required. So in web services, you can use ACLs access control layers in in your code public protected private and While there's a discussion between protected and private Think about how What you want to expose Anything you make public in one version of your software If someone's built on top of that then if you retract that if you take that back, you've immediately broken their stuff So the less stuff you put out there to begin with The easier life is going to be for your customers You're going to be a lot less likely to break stuff and also you have a responsibility when you've made something public and publish that and People have built stuff on that you have a responsibility to not break their stuff So yeah, take care and it is hard to retract the public access stuff and patterns help Finding ways in which you provide just to get method for a factory as opposed to all the underlying building blocks That provides a nice simple way an abstracted way a Focused way of getting things out without exposing the complexities of building objects to your customers So on to the second level of the hierarchy function out well and the third functionality and reliability Yes, I do do color I've lumped these two together because while functionality is very important. Does it do the thing? It's supposed to reliability is equally as important. Does it continually do the thing? It's supposed to does it fall over does it pick itself back up again? Or is it reliably there time and time again? So how can we think about the ways in which we can enforce this and? discover whether we're reliable or not testing how many of you use simple test or PHP units or any of those unit testing frameworks a few of you How many do PHP spec? How many people do? Behavioral stuff so be hacked and BDD or any of those tools around there So finding the right approach For your code is pretty vital in getting all this stuff down unit testing Tells you whether it works the way you designed it Behavioral testing and functional testing to an extent tell you whether it works the way the customer expects that you built it so because behavioral works on the level of as a customer. I want to do this then I do that and Works on their behalf You can actually look at it from their point of view in a very straightforward fashion versus the unit test Which just says does it work the way I designed it? If you can build all these tools into your build release process if you're using continuous integration or continuous Deployments and get those warning on you then anything that you break with any new version of your code can be immediately picked up You can easily refactor underneath You can easily stop yourself from breaking your customers code, which at the end of the day is what you're after If you stop it dead or if you just make it warn while you're building stuff And you make it a roadblock or just a road bump on the way to production Then at least you're there you're forewarned you're forearmed as to when you're going to release a break Think about how you can take those tests and point them at your production servers If you've got an application out there providing a web service If you're the first person to find out whether you've broken something whether something's fallen down and your customers never noticed That's the best thing you can do if you're out there ahead of them before they put that call into customer service you're on a winner if You're doing web services think about recording everything that goes into your web service and comes back out Every request that pops up in the access log anything that hits your engine X your Apache And then at future dates if there's been a fault when that goes in Take those logs come back you can replay it against a production like system and recreate it there and then And then finally regression testing I mean the number of times that I've refactored something and it's broken an Obscure use of my software too many times for a professional myself, but it happens The more unit testing you have in there the more automated testing the more automated systems you have in there The less likely you are to to break stuff the more likely you are to be able to safely refactor as we go through metrics Do we all use Google Analytics? Yeah, how many people use metrics in their software itself as opposed to seeing a visit Count events that go through a few So for those who don't metrics tell you What is happening? So you can say every time an event comes up or in Drupal you might have a hook in there Using the symphony event system anything like that. You can say on that. I'm going to count one This API got hit the once or this API produced this error code X many times and you can store that for a posterity and you can watch to see exactly what happens If you've got high volumes of traffic going to your stuff and you're putting that into the right place You can you can chart it you can put graphs up that show you exactly how over time Your API has been used where any faults might happen. You can correlate that against any events that might have occurred If you take those status codes, you can see elevated 500 internal server errors and catch that before our cut the customers really start to or tie that up against the release You've just done If you calibrate that with normal running if you know how many roughly you get per day Request that come in and that suddenly falls off a cliff Then you can set up alerts through systems like Nagios or Zenos and actually get told that you know We've only had three visits to our page not a hundred visits to our page in the past day What's going on here and get out ahead of it? It gives you that insight into running code and if you need to debug something in production If you need to understand whether it gets us something's gotten as far as you like You can't put any profiling in because you're afraid that it's going to be too much or abused The metrics give you a nice point of saying well if I count everything that goes into this function And I count everything that goes out do those numbers match up At data, so if we use graphite to store the stuff and stats D to actually transport it across the network So we raise metrics on each of our servers pass it into this stats D package and it gets sent across stored and we can render it Runscope also as an example of a service that you can use will do this metric stuff for you as well You put your hooks in and it just monitors as you go away. It'll raise alerts and so on The end result of all those make metrics. This is our operations wall this was Mostly in use while we're doing our streaming platform pulling all of Twitter through and one of the interesting things is on one of Those charts during the World Cup final a couple of years ago. We could see every single goal scored against Brazil Because we are counting every tweet that was going through the platform So every time Brazil's every time Germany scored Peak in there and you can see real-time events going through Also, we have up there We've got a little blue light that flashes every time a bad alert comes through and we had all the ops sitting down below that blue Like they so they knew exactly what it was going on Later on we added lights in the background and gave a bit of electronics challenge to our ops to make the lights go Red or green depending on what the state of the platform is But yeah at a push you can see the metrics charted there You can understand exactly what's going on You can see one part of your pipeline if that's what you have stuff going through and whether it appears in another part and so on the other part of Understanding what's happening is logging and that tells you what happened So metrics says exactly right now Something's down something's up and so on logging gives you a chance to understand what happened why those numbers have changed and Helping you debug program production fault. So how many people have debug stuff by putting print statements in right? Yeah It works It's effective But a slightly more effective way and one that you can leave in in production is using logging Whether that's putting it into error log and just firing that into assist the sys log of the platform or whether you're using a I'm gonna get the number wrong here But one of the PSR compliant logging platforms like monologue Whatever you're doing there if you're recording things that happen Then as soon as your metrics fall off a cliff or as soon as your customer has an error You can look back and you can see in English or whatever language you speak You can see exactly what's gone on and you can understand the points at which things have failed and If you are providing error messages to a customer based off your service It's a really good idea if you don't know or you can't reveal the cause of a problem You know the number of times when oh we couldn't connect to the database, but we don't want our customers to know that An internal server error occurred. Please try again if you provide them with a reference Say take MD5 and hash the time that it occurred so you got a pseudo random set of Letters and numbers if you can give them that code you can then cross-reference that against your logging as you go on so you understand that this request Produce this error gave this code and here's what the real message is in our logs But we'll hide that from our our customers. You don't need to know They provide that insight into running applications so that you don't have to go in there and throw your prints all over the place in prod just for one minute of understanding what's going wrong and If you build that into your libraries if you build that into your modules or your plugins and so on you can actually allow your customers to inject Or the people using your software to inject a logger and have an understanding of what's going on in the first place Right, so if you've got a really complicated piece of kit and want to provide some real-time Understanding of what's going on in there putting in log lines and allowing someone to either raise the log level or put a logger in Will allow them to see what's going on as it comes out of the logger Versioning I could do a whole talk on versioning. I'm not going to it's okay But it's very important that you start off planning to have a version two or a version three of the stuff you write If you're writing web services, even if this is a throwaway thing that you're never going to change you are going to change it So figure out a way that you're going to version it for your customers Even if it's a simple slash v1 slash v2 at the beginning of your URLs for a service It's very important that you have a strategy to do this because the pain of moving people off of old versions is immense I mean we've seen that we're looking to hit We're looking to hit Terminal velocity or or whatever that the phrase that Dries used this morning on Drupal 8 But the amount of effort that it took to get to that point the amount of effort it took for people to move from PHP 4 to PHP 5 was incredible And every time that you don't plan for those version changes, you're gonna have to go through that pain yourself If you're doing stuff in code look at semantic versioning That's a case where you've got major Minor and patch as part of your numbers so 3.2.1 Every time a major version happens It's a total rewrite of what you've done every time a minor version happens You've introduced some breaking changes, but you're pretty much consistent every time a patch happens It's all backwards compatible with everything that starts with the same major and minor numbers But it lets you know that there's a newer version of the software out there and you can manage that kind of dependency I think there's a talk later on using composer with Drupal and composers a great example where semantic versioning really helps the PHP ecosystem Understand what a breaking change is understand how customers are going to upgrade and How you're going to tell them how they need to upgrade if you deprecate a piece of code if you say this is going away Make sure you take it away. Don't just leave it there Make sure that you have that stick of removing functionality So that they get moved on to newer versions rather than become complacent with the things you put in front of there Be very clear what a breaking change is Be very clear that if you add another field to an API response, that's not a breaking change We had one customer at one point was taking our API responses and just turning them into SQL inject Insert statements. So every field that we provided they'd say that's the column and then they take a value as well Which is great until we started adding a new field and suddenly there was another a new field appearing in their perfectly automated System that doesn't exist in their database We didn't think it was a breaking change because in PHP lands No one really cares if there's extra information in your JSON response But they were very sensitive to it because they needed the extra column as it goes in so be upfront with customers and people who use your stuff as to what a breaking change is from your point of view and Tell them upfront how long you're going to support an API version if you have version 2 there and Someone spent a lot of money integrating with it They want to know that they're not going to have to spend that again in six months time because you've discontinued support for that Especially if you're dealing with enterprise customers They want to know that the money that they've spent on all their developers to figure out how to include your stuff in theirs is Well spent and won't be spent again in three six twelve months time So be upfront as to how long you're going to support something and then when that time's over remove it deprecate it get rid of it Upfront figure out how you're going to communicate that information with your customers as well How are you going to open those lines of communication with them and tell them that these changes are coming that they've happened that they've missed the boat? And and along with those lines of communication Tell them how to get back in touch with you. You know, it's one thing having a mailing list It says every time I've got a product update send the stuff out But how do they get in touch with you report bugs? How do they give you product? Improvement information and ideas to get in touch how that how do they give you praise? How do they swear at you give them a chance to get back to you the more likely? The more that you respond to them as they come in the more likely they are to stick with you and forgive you your faults When you're giving that information about errors that occur Give them a reason if it's not a problem for them to know then just be open people appreciate honesty and openness and Tell them if they can fix something if you're saying it's your fault you haven't filled out this form correctly for example How many times have we seen forms not filled out correctly and no one said what the problem is? It's the same with our APIs if someone hasn't provided a name in an API call Tell them that don't just say you haven't used it right move along tell them how they can fix stuff Use appropriate language. They might be swearing at you. Don't swear at them The number of times I've seen sweary error messages is a bit too scary When you use error codes instead of just throughout how many people use my SQL and have seen earno 150 and Wonder what the hell is that? if they just told you in Very simple terms that Table is missing It's still something if you use some words and say table dot missing or anything like that It's a lot more intuitive and it's still just as predictable as a number as it comes out So think about ways and instead of just providing a number provides that information. That's human readable as you go through and Provide a glossary for that if you know all the error stuff that you come up with Give a lookup table for that something that someone can refer to in documentation as you go through Because the number of times I've had to look up earno 150 is a bit too many So proficiency, how can we get better with the use of the software? How can our customers and our users understand that a bit better and make things that are cool and that sing? If we're doing web web services providing a client for our customers as opposed to just giving them the API raw That's a very good start The downside of that is your product your service extends into their code You're no longer responsible just for what happens at Apache You're responsible for what happens on their side of the fence But it gives them an immediate way. They don't have to understand curl They don't have to understand streams or anything like that. They can just use the software that you provide them directly So that's the best way in which you can get people up and running quickly is if you can provide them with software that they Understand that lives there that they can update that they can Update without breaking because of our versioning then that's the first foothold that they can get in there that makes their life a Hell of a lot easier. It is the edge of your product And as I said with versioning treat it exactly the same way as your web API if you're doing that every time you put out a Change to your API put out a new version of your clients Update it show them where to find those updates Use your versioning as we go on and use the native standards again PSR is one and two or the Drupal code standards are perfect for this because they can delve in and do any fault Detection that they like if they understand the code I know we turn around and we look at our colleagues and we say well He doesn't write great code, but they're turning around and pointing us and saying he doesn't write great code If you stick to those code standards and if you provide those and push those out to your customers They're a lot more likely to to accept the code that you've written Documentation I like to say there is no such thing as self documenting code And that's doubly so if the code is not available to you if you can't see the code What's the point? so Use your documentation skills use your Drupal site put those APIs out there and describe that in plain English and as Accurately and as up-to-date as you can put those things out there Give working examples. How do you use your clients? How do you use your APIs? Anything that helps promote understanding of what you do and the reasoning behind what you've done Cross-link from your code If you're providing a public API from your software if you can just link through to the documentation from your from your software itself Then that immediately provides your colleagues a way of understanding what you've done And it immediately lets them know that there's a document that they need to update as they go through and make changes to what you've done As with everything, you know with with Drupal with WordPress with everything like that We have manuals and quick start guides and cookbooks and all this overhead, but it's very valuable You know, we wouldn't know Drupal We wouldn't know PHP so well if all these sites weren't available if all this documentation wasn't written for us And we can take that one step further So Documentation one of the pains of it is keeping it up-to-date if we can move it closer to our code If we can update it at the same time as we make changes to our code We're proactively lazy as developers, right? We see something that we can automate. We see something that's boring And if we can automate it, we'll do that make it happen and then we never need to touch that problem again We never need to touch that challenge again. So look at ways in which you can use your document blocks Java doc or PHP doc There's the Drupal current standard as I've mentioned and so on Look at ways of filling that out and then just run PHP documenter over it Or I think and anyone can correct me if I'm wrong There's an API document an API documentation generator for Drupal modules That will allow you to put that out there if you all just keep it close to the code Every time you change the code and update the documentation while you're there and then and you understand what you've done That'll make your life a hell of a lot easier Using those annotations that are defined there. You can actually generate interactive documentation So we build a system that used IO docs from Mashry But swagger anything that uses ram or anything like that and if you put those annotations in your code run a Documenter over it. Not only are you saving yourself the hassle of changing in multiple places, but Certainly with swagger and IO docs you provide a little console that allows someone to put their authentication details in Hit go and just play with it live And all you've had to do is change a couple of lines of text in your code itself Make that part of the build process and every time you put a new version of something out there It gets published to another place and you're laughing And I was talking about feedback earlier, but to find those channels of communication Tell people where the official places to talk to you to get in touch and to talk to other users of the stuff that you've done That provides a really great support mechanism for people not only from you, but from the community at large The number of forums that we as developers have to use to understand what's going on and stack overflow and Any applications that we use that have forums to help us get results. We just stick with it a bit longer We fall into communities as we're all here in community We understand things a bit better and help those around us understand those if we tell people where to go to find that Understanding and to find that support. That's a really great start of getting people up and running And respond gracefully in a tentatively again. I said earlier.  Don't be that person and Because of that you can learn from the users and because of that you can learn with them and you can keep them going on They've built that trust in that rapport with them The final piece of the hierarchy you'll be glad to know is creativity now When I approach the hierarchy when I approach this as a concept I Kind of ran out of ideas. I I am a kind of creative person, but I couldn't come up with a great title for this Creativity is all about serendipity If you provide to the stuff there if you provide all the things we talked about the reliability the documentation Anything that provides understanding and helps people learn as you go through Eventually they're gonna be the ones that turn around and say if I put this with that then I can get Wow right So providing all of these things that I've talked about so far leads you to the path of people Building a friend search on top of Spotify location information. I'm sure Spotify probably want to do that now, but Previously they just wanted to provide music But this whole kind of ecosystem when you've got a nice open API a well documented and supported piece Can spring up around you and suddenly people be doing stuff with your software that you never realized they could do You didn't design it for that They weren't in your use cases or user stories, but because you put all these structures and all these versions and all this Cookbooks and stuff in place the flock around it and start building on top of that. I've talked about best practice I've talked about a lot of stuff today, right? I've talked about writing manuals and cookbooks and everything like that And there's a lot of stuff on top of that, but ultimately be pragmatic You only have so many hours in the day So choose your battles wisely Think of what provides you with the best the most impact as you go through It's good. You know, we can't just be polishing stuff For the rest of our lives. We've got to put it out there as someone said not too long ago Great is the enemy of good Right, if you're a perfectionist and you're waiting until it's perfect It'll never get out there someone beats you to market or you never update your stuff as you go through It can promote technical debt if you find those shortcuts But ultimately at the end of the day if you manage those processes and understand the debt you've created Then you're in a better place for that Find your balance rest doesn't actually cover everything that we do RPC Remote procedure calls doesn't cover every use case that we have So find a way in which you can fit concepts together in a consistent fashion so that you can make those Shortcuts but in ways that people understand as you go through be realistic Get that stuff out there get people understanding it and playing with it sooner rather than later Because that way you can start learning from them as we talked about earlier If you iterate and if you start small you start with MVP minimum viable products put it out there Get people using it and you've got that versioning in place You can improve and improve and improve and you can show that there's something there behind everything you've done But above all going over this Going over all these best practices and being pragmatic and not dogmatic The one thing that you should always bring to what you do and put out there is pride Be your software's biggest advocate You know not at the point of putting everyone down, but be enthusiastic be your own cheerleader. We're engineers We don't really do extra version, right? We're not really the people well some of us aren't the people who stand up here and talk But at the end of the day if we're not supportive and talk up our own stuff then No one's gonna use it. So on that Thank you very much. Have you got any questions? lunch has gone down really well So The sprints are going on on Friday. So there's a couple of extra bits of information up on the screen there Also I'd be really interested in finding out what you thought If the lack of questions was because I told you everything that you knew already then that's perfect because preaching to the converted is very effective But just give me a bit of information back there And if you want to get in touch with me then find me on Twitter and LinkedIn and an email and stuff. Don't be a stranger. Thanks


Good morning, everyone. Welcome to today's session. Today, we're going to study on 1st and 2nd Peters. Even before we could start with our session, can I request one of us to please lead us in prayer? Anita, is it possible? Yes, ma'am. Yes, please. Lord God, Heavenly Father, thank you for this day, Lord. As we come before you, Lord, I ask you to bless each one of us, Lord. As we are learning from your word, Lord, help us to understand your word, Lord. I would like to give each one of us into your hand, Lord. Lead us, guide us, Lord. Thank you for your love, Lord. In Jesus' name you be. Amen. Thank you so much. Let's turn to 1st Peters. So 1st Peters has five chapters. And this book is also called as the Book of Suffering and Glory. So what do we know about the author of this book? We know who's the author of this book, isn't it? Who's the author? Peter. The author of this book? Peter, ma'am. Yes. Peter was the author of this book and Peter was a prominent figure among the disciples. So can we list out some of the remarkable events of Peter? If you could recollect from the New Testament or from the Book of Acts, what are certain instances that we could recollect about Peter? Can you list some of them from the Gospels or from the Book of Acts? It can be anything. Brother Lubigar, John and Peter. Yes, yes, please. Go ahead. We see that Simone Peter or Simon Peter is just like one of, he's just like us. He was having what we call the foot in the mouth disease. He would like to talk everything that would come to him. And we know, we have, I think, apart from Jesus Christ and Paul, we have a lot about him than any other apostle. We see is the one, he was a fisherman at Bath Shader who married in Capronown. We see that he was, his father gave him a name, Simon, which means a reed. But Jesus Christ, when he met him, gave him a name which means a rock. So he was a born reed who changed into a rock. So let me stop it there, Pastor. Okay. Thank you. Thank you, Brother Lubigar. That was, you covered many points. Thanks. So the author of this book was Peter and he was addressed with three names. He has Simon and we are Simon means reed. And the second, he was named as Cephas. And third, he was named as Peter. So Cephas means an Aramaic name given to him by Jesus, which means stone, rock or pebble. And Peter is a Greek equivalent of the Aramaic name Cephas, which again means small stone. So we see some of the prominent or the remarkable events about Peter with which we could recollect about the most. He was born in a town of Bethesda on the Sea of Galilee. And he was a son of a man named Jonah. Yes. Basically he was from a fisherman's grave and his brother named Andrew. So we all know that Andrew was the disciple of John the Baptist. So maybe through Andrew, even Peter would have been the disciple of John the Baptist. So we see that he left us straight when Jesus called him to be a disciple. We also see that he was one among the 12 apostles of the Lamb. And Peter has been considered as a spokesperson for the group, even though it occasionally it got him to trouble. And we also see that he was considered to be one among the three in the inner circle with Jesus. And we also see that at the instance when Jesus was washing the feet, we see that he did not want Jesus to wash his feet when he got the revelation of what Jesus was trying to do. He said, just not my feet, you give me a complete bath. And we also see that he tried to protect Jesus from being arrested by the Roman soldiers. We also see another instance of Peter where he denied Christ after Jesus being arrested for about three times. And he was one of the first disciples to go to the empty tomb of Jesus. And we also see, despite all his windows, despite what he did, we see that Jesus come to him, Peter to feed his sheep. And we also see Jesus indicted the man in which he would die. And we also see some of the special miracles that happened through Peter. When we study the Gospels and the Book of Acts, we see that he received the miracle catcher fish twice. We read that in the Gospel of Luke and also the Gospel of John. And we also see one of the instances in this family that happened was when his mother-in-law was sick, we see that Jesus went to his home and healed. And we also see, when he saw Jesus walk on the water, he looked at Jesus and he said, can I receive the invitation? And he walked, he was the only disciple who walked on the water. And we also experience him being present. He experienced Jesus, the transfer creation of Jesus on the mountain. And yes, Peter also caught the fish with a coin in its mouth to pay the tax. So he had a lot of experience being in the inner circle with Jesus and personally witnessed many supernatural miracles. And yes, Peter was the key player in the Book of Acts and in the life of the early church. Yes, Jesus had come to him and given him the authority to become the leader. So he encouraged the rest of the apostles in the process to replace Judah. So as a leader, he took some initiatives or he was a key player. He took some decisions. He was the decision maker. And we also see that when we go through the Book of Acts, we see that on the day of Pentecost, when the disciples and the other people were present in the upper room, maybe 120 members were present in the upper room. And following that, we see that Peter reached the main message to about 3,000 less people. And later on when we read through the Book of Acts, we see that he became a man of many miracles. Some of the miracles that happened through Peter was he healed the lame man with a long with a positive job. We saw that when Peter was walking his shadow shawling on people, resulted in healing and deliverance. We see that he healed a man by the name Amos in Lider. We also see a raised darkness from death in Jobah. And also in the Book of Acts there are many other miracles that has been listed like when he had to face the persecution, he stood strong, he showed himself courage, himself very courageous so that he set an example for the other upcoming leaders. And he pronounced judgment over Ananias and Sapphira. He was imprisoned on several occasions and he just didn't stop for that and God opened many doors of faith through him. He opened a door to the house of Cornelius through him. He was a main spoke person at the Jerusalem Council and he made many military trips. And yes, and in some of them he also traveled with his wife. We see that in the Book of Corumbeans chapter 9 verse 5. First Corumbeans chapter 9 verse 5 where he says in this failing, do we have no right to take a law of believing by as do also the other apostles, the brothers of the Lord and see this way called right. So Peter has traveled with his wife Rosa. And yes, we see Peter ministered at Samaria along with John. There are other places where he ministered. A minister was at the place of Lyda and Sharon. He ministered in Joppa, Caesarea. He may also have visited the church in Antioch where for the first the believers were called as Christians. And most likely you would have also ministered in Asia Minor. And he spent some time in Babylon. Now, when we say Babylon, which place does the New Testament, when we say Babylon refers to anyone in the class, the New Testament when Peter or any of his disciples are saying Babylon, which place does it refer to? Van Room. Yes. Thank you, Anita. Yes, some scholars say that it was believed to be a symbolic reference to Room. So Babylon was a popular code name for Roam among the victims of this oppression. Well, we also see the tradition say that Peter lived in the Roam at his later years and he was crucified upside down in Roam at the hands of Nero. So the background of this book, First Peter, we see that Peter identifies his audience as a pilgrim which is gathered abroad focusing on the areas of Asia Minor. And we also see that some people that Peter was writing to the Jews. He was writing this first Peter to the Jews. It is more likely that Peter was writing to both Jews and Gentile believers who are identified in this area. And Peter makes a number of references to the previous unsafe state of his readers and he is sure of being known in this region since many representatives from this region were present on the day of Pentecost at the upper. And on what occasion was this letter written? Anyone on what occasion do you think this letter was written? Maybe because Peter was getting some reports from the churches over which he had influenced that they were suffering a ridiculed for their fate that they had. So we see that Peter is writing this letter to come to me even to help a man by the name Silas. He was writing this letter so that they can be strong and safe even through the persecution. And this is what he has written. And the date of writing of this letter could vary from 63 to 64 Some scholars say it's 65 days. And the main message of this first Peter is to endure the suffering patiently because knowing that Christ also suffered and was glorified. So when we endure the suffering, we also will be part in Christ suffering and we will be glorified with him. So he is encouraging the believers who are going through the suffering and he is encouraging them by saying suffering for right is a part of the call of the believer. We see that in chapter 2 in 1 Peter's chapter 2 where Peter is encouraging the believers like suffering is to be patiently to endure without retaliation. He is also saying suffering can be a blessing. It demonstrates that you must be doing something right. And he also says suffering also identifies us with Christ to suffer for us. And he also goes ahead and verifies the suffering. He says our faith will lead to certain glory. Suffering must be seen from an eternal perspective. So change your perspective. Don't look at the temporary situation because Christians back then were going through persecution under the control of needles. So here we see Peter being a leader is encouraging the believers to not retaliate but then endure the suffering. And he also says suffering is part of the will of God and the nature of Christians. We see that in 1 Peter chapter 4 verse 19. You also see because of all of this we can actually rejoice in suffering. You know beautifully puts across and first week of chapter 4 verse 13. I just read but rejoice to the extent that you are taking off Christ suffering that when this glory is revealed you may also be glad with exceeding joy. So he is encouraging each and every believer through suffering. You are being part of Christ suffering and you can actually rejoice in the suffering. So not only to the believers then but he is also encouraging to each of us to live. Our area of suffering may be in different ways. No matter what type of suffering or what type of obstacle that we may face in our life as we serve Christ in our area. But then here we see from this letter of 1 Peter. We see that features in each of us that in our suffering we are part of Christ suffering and he is also encouraging us to endure it as Christ endured it. And also he is also saying there is a joy rejoice in your suffering because you will receive a reward for it. And to not set your mind on things that are temporary set your mind on the eternal things so that these little suffering that we have to endure we have to go through may not affect us may not discourage us or may not cripple us from what God wants us to do how God wants us to serve but here just like how Paul encouraged the believers they might raise his sufficient for you and set your mind on Christ set your mind on things that are about just like Paul even Peter is encouraging us rejoice in your suffering because Christ is part of you you are a part of Christ suffering and set your mind on eternal things so that these things that are temporary may not affect him with that we will move on to the unique features of this book we see that Peter makes some references of me I have witnessed to that which he proclaims we see in 1 Peter chapter 5 verse 11 sorry verse 1 he says the elder who are among you I absorb I am I who have a fellow elder I am the witness of the sufferings of Christ and also the partaker of the glory that will be revealed so here we see that Peter was an eyewitness of the suffering of Christ as we know Peter was in the inner circle of the three James, John and Peter were the three members in the circle the part of most of the things that Thys did Jesus trained Peter by keeping him along with him so as Peter you know as he watched and learned how to endure the suffering how to walk according to God's will and God's plan despite your weakness and here Peter saying I am being the eyewitness of the suffering of Christ we also see in chapter 1 verse 16 yeah chapter 1 verse 16 to 18 we see that because it is written be holy for I am holy and if you call on the Father who without partiality judges according to each one's work contact yourself throughout the time of your state here in fear knowing that you were not redeemed with corruptible things like silver or gold for your aimless contact received by tradition from your Father so what we see he was an eyewitness again at the transgression and we also see the other scriptures in chapter 5 we see that it charges the elder to feed the flock just like how Jesus commissioned Peter to feed the flock we see Peter from a good leader is trying to become a great leader great leader are those who raises good leaders we see Peter being the leader is raising other leaders and he is also commissioning them to feed the flock just like how Jesus gave that responsibility to Peter and we see Peter being the elder in his later days we see him growing to become a great model of a leader despite his weakness though they were other disciples where much we learned or better than him but we see Jesus choosing Peter a simple fisherman to be the head to lead the church Jesus chose Peter despite his weakness even despite him betraying Jesus three times and we also see that Jesus knew ahead that Peter will betray him that's why he tells Peter even before the flock would grow you will be betrayed but in spite of all that after the resurrection of Jesus we see Jesus come back again and Peter returned back to his fishing trade and Jesus commissions Peter friend of other disciples saying feed my flock and we see Peter giving himself completely to the ministry to carry the gospel to the ends of the earth Jesus gave them the understanding of greater revelation when he refused to carry this gospel to the gentiles Jesus didn't forsake him Jesus just didn't leave him off but then he chosen to be the leader and yes despite his weakness Jesus we see how Jesus ministered Peter in the way that he could understand so in the same way each of us may go through different weakness in our ministry we may consider ourselves as not fit for the gospel or sometimes we may feel like God you have called me yes but I'm not able to give the best of what is expected of me but when we look at Peter we can get ourselves engrossed like Jesus never makes a mistake he calls us for a purpose and he desires to work in and through each of us in the area of weakness we need to glorify God we need to rejoice because those are the areas where Christ can be glorified in and through us just the way that how Christ was present with Peter and he raised him to be a strong leader he gave him the revelation he enabled him to speak that's what happened when he was on the day of Pentecost when he was preaching to the 3000 like there were some of the learned men and the group said who is this man who can speak so well isn't he a fisherman so being a fisherman they know how is language the knowledge that they carry the understanding that they have would be limited but then who can limit the power of God that can work in and through us when we allow God when we allow his Holy Spirit to move in us God can do greater things in and through us just like how it's been said in Acts 1 when the power of the Holy Spirit comes in us he makes each of us a witness to him so this is one of the things that we can be encouraged as God used Peter God can use each of us in different ways and we see some of the words that is present in 1 Peter Peter uses the word eight times in both 1 Peter and 2 Peter to refer five precious things so what are these five precious things that he refers to in 1 and 2 Peter he says that a fail is more precious than going first one what is that fail is more precious than gold we need to have fail and how does this fail come how does this fail come just ask me you know all of us know the answer just to keep the session interactive just asking simple questions anyone can unmute answer faith comes by hearing the word of God yes Romans 10 17 or 1010 which is the verse 17 yeah 17 faith comes by hearing and hearing the word of God why does it why does Paul repeats two times hearing and hearing because it is very important it is very important for us to hear and to keep hearing the word of God and here we see Peter says fail is more precious than going fail is something that is very important we need to treasure that and the second point he calls precious is the blood of Jesus Christ in 1 Peter chapter 1 verse 19 he says precious blood of Jesus Christ is precious third we see in 1 Peter chapter 2 verse 4 Christ precious chosen constant and in 1 Peter chapter 3 verse 4 we see that the fourth point he says is precious gentle and quiet spirit is precious gentle and quiet spirit is precious so these are some of the gifts that we need to be gentle and quiet spirit and in 2 Peter chapter 1 verse 4 we see that Peter addresses gray and precious promises these are the promises of God the precious so five things that we get to study fail is precious than going second point we see in this letter is the precious blood of Jesus Christ the third we see that Christ is precious who is the chosen corner stone the fourth is gentle and quiet spirit is precious and the fifth point is the precious promise the gray and precious promise are the precious and with that we will move on to 2 Peter so 2 Peter is also known as the book of true knowledge 2 Peter is known as the book of true knowledge so what is the background of 2 Peter we see that while there is much dispute the background of 2 Peter was Peter wrote this gospel at a latter age you know when he was very old just like how Apostle Paul wrote 2 Timothy it's similar to that like Peter is writing his second death in a letter we see that he is the author and he made some reference the same way where of his death in this letter we also see that this letter was written at the end of his life just before he could experience the persecution and he was concerned about and he was concerned about the false teachers that are rising and increasing in the church and these teachers were out of balance in the area of the law and so he had to address certain issues in the church regarding the sexual sin and lawlessness deeds and he was concerned about the temptations to fall away from the faith the believers because of false teachings so he was concerned about the believers where the believers will give heed to their teaching and fall off from their faith and we also see that he was concerned about the infiltration of the doctrine that these false teachers were spreading so he was encouraging the believers to be faithful to the mind then to be established in Christ we also see that he wrote this book from Rome and this was he had written this book from Rome and it was between 64 to 66 AD the main message of this book that is the second Peter was on the true knowledge so some form of the word like known or knowledge occurs about 16 times in this short book proper knowledge of him is a key to inheriting the promises of God here is addressing some of the letter in this letter saying that this is a knowledge of Christ this is true knowledge and we also see him acknowledging it again and again reminding that the true and the true knowledge of God of Christ in this chapter we also see that he realized that the source of knowledge is God himself and so that he can resist any kind of heresies that was holding on holding on the truth so he is encouraging the believers by saying that the true knowledge will be a safeguard against the heresy that is for you some of the unique features of this book we see is Peter's guarantee Peter gives an unusual guarantee in this book where he indicates that if we do certain things right we will be fruitful and we will never fall and he lists few things in the verse chapter 2 Peter chapter 1 verse just give me a minute please so just turning turning to 1 Peter chapter 5 sorry chapter 1 verse 5 to 11 I will just go through it 2 Peter chapter 1 verse 5 to 11 but also for this very reason giving all diligence and to your faith virtue to virtue knowledge to knowledge self control to self control perseverance to perseverance godliness to godliness brotherly kindness and to brotherly kindness love for if these things are yours and above you may need a Baron nor unflopful in the knowledge of a Lord Jesus Christ for he who lacks these things in short sighted even to blindness that he was cleansed from his old sins therefore brethren be even more diligent to make your call and election sure for if you know these things you will never stumble for so an entrance will be supplied to you abundantly into the everlasting kingdom of our Lord and Savior Jesus Christ so what we see here Peter gives an unusual guarantee indicates that if we do certain things we will not be unfurlful we will never fall and he lists few things that includes like virtue knowledge self control perseverance and patience and godliness and brotherly kindness and he also says in verse 10 doing this helps us to make our calling and election sure for what it is and he also says he also gives a doctrine of inspiration in this book in chapter 1 verse 20 and 21 where he says knowing this first that no prophecy of scripture is of any private interpretation a prophecy never came by the will of man but holy men of God spoke as they were moved by the police and he also described and Peter describes about the false teachers in chapter 2 second Peter chapter 2 he describes them as teachers of destructive heresy you know he says those who were deceptive worlds and he also tells them they are the natural brute beast to be caught and destroyed and you know he calls them in different names depending on the nature the character the way where he says they were cursed children they were lover of money they are wells without water again in chapter 2 at the end of it we say speaking swelling words of emptiness and he also tells them slaves of corruption so he is warning the believers about these false teachers be careful stay away from all these people stay away from the doctrine of their kind of spread or stay away from their preaching and with that he also says in chapter 3 second Peter chapter 3 he gives a description of the day of the run he says this present earth will be renovated with fire at Christ with it he also says they ungodly will be judged after Christ with it he is giving them the mindful to stay or to hold on to what they have with them under Christ with it so he is encouraging them the little of Christ is here so hold on to it and he also says even though there is a delay in Christ coming but surely he is giving them the assurance because Christ said he is coming he will come even there is delay but Christ is coming the day of the Lord will come as a freeze in the night you see again he shares to the believers in the day of the Lord will involve the destruction present heaven and earth and it will give place to new heavens and new earth and he is also encouraging the believers and nothing to fear but then they can look forward to this day if they conduct themselves in godliness so importance of character importance of how they lead their life how they can lead themselves in the daily life but having to share mindful of Christ hold on to the gospel which is the truth is encouraging and just look how Paul encouraged the believers in different churches we see Peter also been encouraging and we also see more or less two of them teaching is the same they were not different than teaching they were teaching and encouraging the believers to hold on to their faith hold on to the gospel of Christ and lastly when we come to the final can I request one of us to turn to 2nd Peter chapter 3 verse 14 to 16 2nd Peter chapter 3 verse 14 to 16 therefore beloved looking forward to these things be diligent to be found in by him in peace without sport and blameless and consider that the long suffering of our Lord is salvation as also our beloved brother Paul according to the wisdom given to him has written to you as also in all his epistles seeking in them of these things in which are some things hard to understand which untold and unstable people twist to their own destruction as they do also the rest of the scriptures thank you so much so what we see here Peter makes references to Paul to his writing we can see that as he was in Rome at the same time as Paul and I've given him a new closeness with Paul in his latter days of his life and you know there was a high in persecution we also see that as Peter was persecuted even Paul was persecuted and the tradition says that Peter was crucified on the cross upside down he never allowed the Roman soldiers to crucify him just like how Christ was crucified he said I'm not worthy to be crucified that way you crucify the upside down so what is a reflection that we can have from these two letters while we see the first Peter deals with the problem from the outside outsiders there were a lot of persecution and you know they were troubled all you know they were troubled because of the faith that they were holding and in the second Peter you see that Peter is dealing with the problem inside the church with the false teachers so Peter encourages the believers to keep close watch on their personal lives and he also warns them about false teachers around guard yourself guard the truth guard the faith that you have in Christ the love that you have for Christ we need to guard that so just like how Peter and the believers today this letter is also encouraging each of us as a leader as a follower as a disciple of Christ we need to also have a close watch for our personal life we need to see our character because character is something that holds your life we need to have a good we need to watch our life we may not be perfect watch our life let's put in that effort that is needed to build a life that is pleasing Christ if God if Jesus could raise Peter to be a leader who was effective in the ministry in spreading the gospel despite his weakness God can do that even through you and me all that we need to do is depend on him hold on to him hold on to the Holy Spirit who can do great and mighty things and who can do us and just like how Paul Peter warned the disciples about the false teachers or false teaching that we are crippling into the church in those days even in our times false teachings and false teachers who are growing our church has been infected our believers have been affected so we need to guard put through we need to guard the love that we have and Christ then as a leader we need to protect our church we need to protect our members from these false teachings or false teachers or from the false doctrine that is trying to spread hold on to them hold on to your members protect your children because as Jesus said to Peter feed my flock and the same way Peter is instructing to the leaders in the church feed my flock today as we read this letter we are encouraged as the leaders in the church where God has raised us to be we need to feed the flock the truth with the gospel of Christ with the true word and we need just not see but then we need to nurture protect them because we are accountable for their lives we are accountable to them to Christ because God has assigned these souls in one hand that we make sure that we feed them with the right word the right teaching the right interpretation with the right doctrine and as we teach we need to nurture and protect them so that they grow in Christ's likeness in this and in this world and so that they can stand the test they can stand the time in times of persecution they can endure just like how Christ endured just like how Peter and other disciples endure the suffering through Christ for the eternal call them each of us eternal reward so with that we end this letter and I leave an open question for us to ponder is how are we guarding our spiritual life in today's time okay I leave this to each of us to ponder our own life and see are we guarding ourselves from the from the false teaching that are spreading are we teaching the right word are we teaching others how they can protect their faith are we building ourselves and faith and others also in faith and make them rely on Christ make them focus on Christ are we doing that we can ponder on it as we study these two letters I know there is much to cover these two letters but I would encourage each of us to go back and read first and second pages so that we can get the complete understanding complete learning from these two letters of what God wanted to teach each of us now Omeria so with that I end this letter and I request I keep this time open to our class to share your learning, your insight from this letter anyone from the class can unmute and share your learning from this letter can I ask you a question yes brother Peter we know from his background we know that he was a fisherman before Jesus was called him for Paul we know that he was learned because he was trained under a very learned person what do we know about the background of Peter as a fisherman and later on he became a pre-efficient apostle and a writer he didn't have any formal education that's my question what we see is being a fisherman not much of qualification he would have had that's why on the day he was under cost when he was preaching to the 3000 there were people who said isn't he a fisherman and how he could speak in this manner with so much of boldness or maybe his teaching was so much of a learned that so he surprised each of them and that is what God can do when the power of the Holy Spirit comes so that's what we see Acts 1-8 where it says when the Holy Spirit comes upon you you will receive the power and you will be a witness to the ends of the earth so there is a boldness there is an understanding that we will see because when we receive the Holy Spirit we will start teaching in the wisdom of God and not in the wisdom of men and yes Peter was a man of boldness he had the courage to witness and I'm just going to the scripture what was the comment that people gave about Peter that he sounded like a learned man that means though he was not learned isn't he a fisherman so they know the trade that he came from and the knowledge that they would carry but then they were surprised and amazed about the wisdom that he was preaching and teaching and guessing the 3000 was not easy they need a special boldness even to add a certain number of audiences but here you see Peter was bold he was courageous and the Spirit of the Lord in fact this was not the trade of Peter to be courageous to be bold we see that he was timid we see that he was fearful that's why after the death of Jesus Christ he went back to the trade what he was from thinking that he cannot preach the gospel he cannot have the commission that Jesus gave him but then Jesus went back again and called Peter and commissioned him we see that whatever he was preaching sharing and preaching was not with his ability but not with the knowledge that he could write from position and background nothing of course but then with the ability of Christ to which he could stand as a leader and teach other learned men the other Gentiles the other Jewish people who have much learned he could teach and witness and bring the understanding of gospel to them did that answer your question brother I will say yes by the inspiration like you said by the inspiration and the power that was released at Pentecost maybe most have had some little bit of learning but this learning was increased by the power of the Holy Spirit thank you brother yes yes that's great thank you anyone else would like to add to what brother Isaac asked from the class you have if there's any other perspective in speaking free yes brother Rebecca please go ahead another thing that we can supplement is that we first of all need to understand their culture and historical background all these guys were Judaizers they were in Judaism and when you study about Judaism these kids as early as three they are being told how God got their grandfathers from Egypt and the 10 commandments as a matter of fact they are not even 10 they are 316 and 13 as you told us so they knew a bit a very big portion of the OT because this was not even a religion this was a culture everything depended on their OT on the Tanakh or the Torah they were not literally ignorant ignorance would literally mean that they had no lunch trade number two the Holy Spirit also has a very big part to play after their conversion and after the ascension of Jesus Christ you can also see that when Paul got converted he went in Arabia so these very people also were having some more time in meditation and calling upon the Holy Spirit to guide them, to teach them lastly but not least they were not writing their letters as we see that the biggest part the contributor of the Gospel of Mark was Peter they were having people they were calling so they would talk and people were putting it in a polished language in writing, thank you pastor yes, yes, thank you thank you for adding and we also see that Andrew was a disciple of John the Baptist so maybe even Peter was along with Andrew and he would have also learning of Torah from the Old Testament from John the Baptist you would have learned some things from there also so yes anyone else who would like to add and share before we could end the session I see that everyone is silent okay, we can end the session with a word of prayer can I request rather Isaac to dismiss us with a word of prayer please yes, let us pray Lord we thank you for this session we thank you for every other session that we will be going through we thank you for our tutors especially for our admin tutor we want to thank you Lord and we want to ask that your world take root in our hearts that your world transform us let us go through the transformation that was embedded on the apostles at the time let us be worthy receivers of your world and worthy deliverers of your world so that we can use your world to edify and enlighten and teach and lead other people so that they will know and come to the saving knowledge of our Lord and Savior Jesus Christ this and all other masses we ask in the name of our Lord and Savior Jesus Christ amen thank you thank you so much thank you each one for joining in today's session see you all tomorrow God bless, have a blessed day thank you God bless thank you


Today, I have the pleasure of speaking with Atul Sabharwal from Snip Interactive. How are you today? Good, Tracy. How are you? Atul, I was going to start by talking about your most recent news release, but last night I was speaking to one of your shareholders and he was talking about your 16 consecutive quarters of increasing revenue, and he was talking to me about how you have experience in Silicon Valley and how you took your own money and invested in starting Snip Interactive, and that you have a lot of skin in the game. Could you start by telling us how you started Snip Interactive, please? Back in 2012, Ritesh and I, my co-founder and me, we had an idea about how to make advertising more measurable, and basically what you're seeing is the fruit of the labors that we've put in to answering that question and putting together a system that basically helps us help brands make the advertising more measurable. Okay, well that sounds extremely interesting to me, especially in an, it's my understanding the U.S. brand marketing sector alone is an $80 billion market. Can you tell us what aspect of this market that you are going to be targeting with Snip or that you are focused on? Right, so the beautiful part about this $80 billion market is it's what you call the promotion marketing spend, which includes everything from contests, instant wins, sweepstakes, full-blown loyalty programs, right? And there are multiple vendors, it's a highly fragmented market, right? And we are in the process of surely but steadily disrupting this $80 billion market, and it's not one segment of the market, it's basically the entire market, because brands have to run promotions across the year. So a promotion is something that's run in a promotion window, and what is a promotion window? We just finished Thanksgiving, Black Friday, Christmas, New Year's. Now as Valentine's Day is coming up, then comes the Super Bowl, then comes Back to School, Mother's Day, Father's Day. There are 80 promotion windows in a year that brands have to run promotions on, right? And there are different sorts of promotions that make up this $80 billion market, and we basically play across that spectrum. But that's not the exciting part, right? $80 billion is a good number, but it's not a great number. A better number is the amount of money that people spend on advertising, which is over $500 billion annually. And by us disrupting the $80 billion market, we're actually allowing ourselves to disrupt the $500 billion advertising spend market because our data makes advertising more measurable. I understand that in addition to making your quantifying, basically the advertising, which previously most companies just simply could not do, but you've also got a model where you don't disturb the middleman in that you're focused on the end user. Can you explain that just a little bit more to me? Sure. So there's a chain of command in this industry like I was talking about before, right? So a brand sells to a retailer, a retailer sells to you and me. Now if a brand pisses off for the lack of a better word, their retailer, what's going to happen? The retailer's not going to stock their product in store. They're going to give them less shelf space. They're not going to give them online presence on their websites. It doesn't matter whether it's a traditional brick-and-mortar retailer or an online retailer or both, as in the case of most retailers today, who sell online and offline, right? It doesn't matter whether it's Amazon or Walmart stores, right? Or walmart.com, right? You know, there's a chain of command in the industry and the brands have to respect that chain of command because if they don't, their sales will decline. And a simple example is Cook gets six inches more of shelf space and the banner add on Walmart's beverage page sales will decline for Pepsi, right? So you have to respect what the retailer wants and in that process and in that chain of command, you know, typically, you know, historically, there have been very few solutions that actually optimize it based on the retailer. The simple paradigm here to understand is a brand doesn't care where you buy their product as long as you buy their product and a retailer doesn't care what you buy as long as you walk into the store and buy it, right? So what our platform does is basically optimizes that equation, which is we can customize programs for the brand retailer and consumer equation so that we drive people back into the same store that, you know, they bought that before. So the retailer does not have an issue with the brand running promotions to capture data about you and me. OK, so with no debt, money in the bank, what should we as shareholders expect this year, including a potential shareholder loyalty program? Yeah, so I mean, you know, we continue to run the business. I mean, our whole goal and I'm the single largest shareholder of the company and my co-founder is of the same size. So together, we still own a significant portion of our company. You know, for us, the whole point is continue to drive drive value for shareholders, continue to disrupt the industry that we've started disrupting, continue to collect our data set and increase and enhance that data set so that we can launch new solutions for brand managers towards the objective that we've set for ourselves. So, you know, for this year, I mean, I think history is a great indicator of the past. And you know, we've had four years of continuous growth since we launched on the Toronto Stock Exchange and how we are on the OTC QX market. You know, our whole goal is to get on the NASDAQ at some point when we get to a big enough size and we continue to do what we've done. You know, I don't think I have a goal other than continue to make money for the company and our shareholders. Well, I can certainly see why you have so many shareholders that love SNP. Thank you, Attila, for joining us today. Thanks for having me.


In either case, it's a tremendously heavy weight, but whether you hurt yourself depends on the manner in which you attempt to lift it. And you want to move similarly during an exercise. You have to lift heavy. If the weight is not adequately heavy, it's not going to do you any good. No amount of lifting with light weight is going to produce any kind of meaning for results. And it comes down to that intensity, the level of effort that you put into the exercise. It's an absolute, but if you're going to do this for the long run, if you're going to be doing this when you're in your 40s, 50s, 60s, I know some people in their 70s and 80s that train in this fashion, you have to do so in a manner that's not going to wreck your joints in the process. So you need to keep in mind when you're doing these exercises that you have to always be moving under control. Again, with the example of picking up or attempting to pick up a car, if you take the weight and you try to yank or jerk at it as fast as you can, you're going to pull or strain something. If on the other hand, you attempt to lift it gradually, and as you approach the end of the lifting movement, you gradually sort of stop, you reverse direction, you bring it back down, you anticipate reaching the start.  You'll be able to lift as heavy a weight as your muscles are capable of, but you're not going to pull, strain, wreck, or damage anything in the process. In a healthy person, your tendons, your ligaments, your other connective tissues, everything will be able to more than adequately handle the heaviest weight that your muscles are capable of contracting against, and as long as you're moving in a strict and controlled fashion. The other thing that tends to stop people from pushing as hard or pulling as hard as they possibly can during exercise is physical pain or fear of physical pain. For most people, the exercise stops when it starts to become uncomfortable. If you look at a lot of people in a gym, if a person is really going all out, by the time they get to the point where they are at their actual physical limits, they will have slowed down considerably. A person who can comfortably curl at a moderate pace if they're using a heavy enough weight, their last repetition is going to look like this. They're just going to be barely moving it. Watch a lot of people, their speed doesn't change too much. They get to a point where it starts to get uncomfortable. They set it down. The problem with that is the point where you start to become uncomfortable is those last couple of most productive reps where you reach that point Doug was talking about where you're sending the message to your body that it is about to die or it thinks it's about to die. If you stop when it starts to burn, if you stop when it starts to become uncomfortable, you are stopping right at the point where the real exercise begins. Now again, keep in mind that you're not going to injure yourself if you're moving in a controlled manner. The burn is not an indication that any kind of actual large-scale physical damage is being done. Now there is damage, very, very small damage. You have little tears, it's called microtrauma, a structural level. Galactic acid Doug discussed is going to have some effect on that discomfort too, but there is no kind of real injury occurring. Now something that helps is if you keep in mind the difference between pain which is informative. Pain is basically telling you that, hey, something is wrong and doing so so that you stop doing whatever is causing the damage and what is called exertional discomfort which is actually what's happening during exercise which is non-informative. It doesn't tell you anything you don't already know. Your muscles are working hard, okay? We already know that, but there's nothing, again, there's nothing happening there that's going to cause any damage. You can safely ignore that. If you also consider as you're getting to that point that the exercise is temporary and what's happening is not suggesting an injury that's going to persist afterwards, that helps you be able to push through that, but one of the things that seems to be most effective is if you look at it, the burn, that discomfort that occurs during exercise, rather than an indication that you're getting towards the end of the exercise, but as a cue that it's time to start working harder, it helps you push through that. For example, leg extension, which if anybody has done any heavy, heavy training, anybody here do leg extensions or has done leg extensions part of workout. It's one of the worst as far as sensitivity. For some reason, people tend to feel it in their frontal thighs, some people calves more than anything else and on almost more than any other exercise, I see people quitting on the leg extension before they've gotten anywhere near what they're actually physically capable of because of that burn. It is, well, it's just downright painful. People stop because they're worried about hurting themselves. People stop because it's extremely uncomfortable, but again, that burning means that you're getting towards the most beneficial, the most important part of the exercise and rather than stop at that point, you should consider it your cue to push even a little bit harder. Something else that makes a big difference is having some external motivation. Having somebody else there to push you doesn't have to be a trainer, but even if it's just a friend, somebody else in the gym, as most people will push themselves, nowhere near their limits. But if you have somebody else there, even if it's just trying to impress somebody else in the gym or somebody who is going to push you, it makes all the difference in the world. But that's as far as the intensity is concerned. Those last couple repetitions are the absolute most important in an exercise. What you're trying to do is send a message to your body that its current ability is inadequate to meet some demand that your environment is placing on it. If you're capable of an all-out effort completing 10 repetitions and you were to stop at 7 or 8, you're not asking your body to do anything that it already isn't capable of. It's less likely to expend any resources to produce an increase in muscle mass, or any other metabolic adaptation, which can be expensive. You have to give it a good reason to do so. It's only when you attempt that 10th repetition and even when you get to a point where it's no longer possible to continue, you keep contracting against it that you're really telling your body, hey, we need to be stronger. We need to be better capable of tolerating this so that the next time we encounter it, we're able to successfully complete whatever it is. In the case of an exercise, the exercise, or as far as your body knows, again, you could be fighting a bear or a tiger or something. As far as the amount of exercise, we're balancing it against the intensity of exercise. You have to train hard for the exercise to be effective, but, again, doing so is going to limit the amount of exercise that you can do. Most people think you've got to do dozens of sets of bunches of different exercises for all the different muscle groups. If you read muscle magazines, most bodybuilding or fitness books, they'll have routines that'll typically involve three to four sets of anywhere from three to sometimes five or six exercises per muscle group. Anybody who's capable of completing a routine like that is not working anywhere near as hard as necessary to get the maximal benefit from the exercise. In fact, if a person is training as hard as I'm talking about, pushing to your absolute limit, and then at that point continuing to attempt to push for a couple seconds, you're not going to be able to tolerate a very large amount of exercise at all. And like Doug mentioned, workouts last around 8 to 12 minutes. Mine, a little bit longer, not because I spend more time doing the exercise, but because where I'm working out, I'm using barbells, so there's time in between that I have to have to switch out the place. But where I'm using machines where I can just pull and switch a pin, my workouts would probably be pretty similar to Doug's in length. And I don't do just that much because I don't like working out, or don't do that much because I'm in a rush, but because I am not physically capable of doing any more exercise than that when I'm done. Now, if you look at the major muscle groups in the body, the hip and thighs, chest, upper back, bicep, shoulders, delts, and whatnot, it does not actually require a lot of different movements to involve all those muscles. If you were to perform a push and a pull and a multi-joint hip and thigh movement, you would have pretty much hit almost every single muscle in the body. Adding a push and a pull in another direction, for example, doing a horizontal push and pull and a vertical push and pull just kind of rounds things out a little bit better, but it doesn't take a lot of exercise. For example, if you look at biceps, upper back, back of the shoulders, it's not necessary to go and do a rowing movement or a pullover for your upper back, and then add a bent over fly for your rear delts and a shrug for your traps, and then a dozen different types of curls for your biceps and brachialis and brachioradialis and whatnot. If you do a row, every single one of those muscles is involved, and if you're doing it hard enough, all of those are going to be involved to enough of a degree that you're going to stimulate about as much improvement as you possibly can. By trying to do a lot of different exercises, this exercise for the specific muscle, that exercise for that specific muscle and so on and so forth, what a lot of people end up doing.