投稿時間:2022-04-19 05:25:52 RSSフィード2022-04-19 05:00 分まとめ(27件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
AWS AWS Partner Network (APN) Blog Integrating the Braze Customer Engagement Platform into Your Hotel Booking Engine https://aws.amazon.com/blogs/apn/integrating-the-braze-customer-engagement-platform-into-your-hotel-booking-engine/ Integrating the Braze Customer Engagement Platform into Your Hotel Booking EngineBy powering personalized relevant and timely digital interactions built on guest behavior data Braze can help AWS lodging customers generate additional revenue and engage guests for the long run using personalization Learn how a hotel customer can rapidly and simply transform their web booking engine into a digital user engagement solution offering a personalized booking experience including upsell capabilities 2022-04-18 19:19:59
海外TECH Ars Technica Google Maps stops obscuring Russian military bases in satellite images https://arstechnica.com/?p=1848949 analysts 2022-04-18 19:38:32
海外TECH Ars Technica Shameful: Insteon looks dead—just like its users’ smart homes https://arstechnica.com/?p=1848769 linkedin 2022-04-18 19:00:46
海外TECH DEV Community What is Decision Paralysis? How to Prevent in 4 Steps https://dev.to/elizabethwerd/what-is-decision-paralysis-how-to-prevent-in-4-steps-4eb4 What is Decision Paralysis How to Prevent in StepsYou re staring down a monstrous task list still catching up on last week s deadlines with new project notifications pinging for your attention a laundry list of personal to dos running through your head and you just freeze You don t know where to start so instead you find yourself anxiously procrastinating doing nothing or anything else instead Sound familiar Decision paralysis aka analysis paralysis or choice paralysis usually hits at the most inconvenient time when you really need every single minute to be getting things done but just don t know how to choose where to start or what to tackle next While you can t avoid busy weeks altogether you can limit this kind of overwhelm with the help of task prioritization strategic time management and a few mindset changes In this post we re going to share a step guide on how to better prioritize your time and prevent decision paralysis in the future because we know how much it sucks   What is decision paralysis You ve likely already experienced the paralysis over where to start in a crazy task list big decisions in your personal life or even over your dinner choice at a restaurant with an expansive menu But what exactly is decision paralysis Decision paralysis is the lack of ability to decide out of fear of making the wrong choice It can occur when you re presented with too many choices that are difficult to compare instead becoming overwhelmed by all of them and not choosing any of the options effectively paralyzing yourself from making progress Even if you do finally make a decision battling analysis paralysis can sometimes be so mentally exhausting that you don t have the energy left to follow through with action on your choice The average person is estimated to make around a shocking remotely conscious decisions a day And while freedom of choice is generally to be celebrated Psychologist Barry Schwartz argues the modern Paradox of Choice has actually made people feel more paralyzed and dissatisfied rather than free and happy The COVID pandemic has also exacerbated the issue of choice paralysis by fuelling stress levels and feelings of uncertainty In fact of surveyed adults said in that they sometimes feel so overwhelmed that they struggle making basic daily decisions like what to eat or what to wear When you top that with increasing workloads for individual contributors managers and senior executives due to The Great Resignation it s unfortunately not surprising that of people are stressed out by increasing task lists with even less time to get everything done And the busier your schedule the more overwhelming it can be to be decisive with your limited time As your task list grows in choices so does your risk of analysis paralysis From getting through all of your work tasks personal responsibilities and finding time for your habits hobbies and rest trying to make the best decisions can put a lot of strain on your wellbeing despite being pursued in the name of productivity Working to better prioritize your time can help you build out a realistic schedule that supports your goals lets you get more done in less time and takes some of the decision making pressure off your shoulders steps to prevent decision paralysisIf you often find yourself procrastinating and stressing out over an overwhelming to do list and a busy schedule follow these helpful steps to get clear on your priorities reduce decision paralysis and learn how to stop procrastination from derailing your daily progress Recognize decision paralysisYou might be wondering why do I procrastinate Sometimes just breaking ground on your task load is overwhelming because the insurmountable weight of decision paralysis makes it feel impossible to choose where to begin Other times deciding between two tasks that both seem urgent feels like too much pressure so we procrastinate starting on either When you notice your decision making starting to feel more anxiety inducing than usual recognizing it as analysis paralysis in action is an effective step in preventing it from escalating Signs of decision paralysis Being overwhelmed by your task listDoubting your capabilitiesProcrastinating on starting a taskOvercomplicating your optionsNot being clear on your prioritiesPutting pressure on perfectionismDreading deadlinesIf you feel an onset of choice paralysis creeping in with these common symptoms it s time to do some preparation for success over procrastination Prioritize your choicesIt s hard to make a choice without a clear look at your options Outlining your objectives is a foundational first step in beating analysis paralysis Writing out a master list that is a to do list that covers literally everything you have to get done is a great way to face the beast if you will This in itself is a smaller task that can feel more doable compared to everything else and by brain dumping it all in one place you can actually move some of that stress out of your head and create a visual overview of what needs to get done And a lot of times making the choice of what to work on next is hard because everything on your to do list feels equally important but it actually isn t A great way to break down this misconception is to sort all the tasks in your master list in order of urgency and priority Take a look at each task and set your due dates estimate how long each task will realistically take and assign whether it requires deep work vs shallow work to get done The end result will be a practical list of cognitively demanding tasks that will need bigger chunks of dedicated focus time and smaller to dos that can be handled more quickly all in order of priority by when they re due and how important they are to your goals Create an action plan amp time block your calendar Now that you have an organized task list in place it s time for an action plan You may be surprised to learn that only of planned tasks actually get completed every week This is in part because we often overestimate how much we can take on underestimate how long our tasks are going to take and rarely account for unexpected changes in our schedule or priorities The practice of time blocking to dos onto your calendar can boost productivity up to by simply breaking your day into dedicated time slots to work on one particular task It also allows you to defend your time through your calendar so you re not overrun by meetings that may not be high priority for you Not to mention time blocking reduces context switching as you re limiting yourself to one task at a time which can help you block those distracting complementary tasks from pulling your attention from what s in front of you So this also has to help with decision paralysis right Time blocking your calendar can significantly reduce decision paralysis because you ve already put in the hard work of pre planning how you re going to allocate your time in the week Instead of forcing yourself to make hard decisions all day about how to spend your time you can just look at your calendar to see what s up next and stick to this plan to meet your goals and deadlines Time limits also make tasks feel more manageable because there s a clear finish line which is why approaches like the Pomodoro technique can be so effective Automate your decision makingImagine you have a perfectly productive Monday planned out but an urgent hour meeting is suddenly scheduled over your afternoon so now you have to spend an hour you don t have to manually rearrange your overscheduled time blocks throughout the rest of your week While saying no to unproductive meetings is much easier when you can justify not having the time through an effectively time blocked weekly plan it s also necessary to stay flexible for when unexpected urgencies and high priority meetings do arise If you re already time blocking your calendar you know how time consuming it can be to manually readjust your entire schedule when things change Fortunately there are some pretty awesome automations you can set up to time block your calendar without sacrificing flexibility The Reclaim ai smart calendar app is a must have for busy professionals as it automatically finds the best time for you to work on your Tasks around in your existing schedule by priority and due date And when something unexpected comes up Reclaim auto reschedules all of your time blocks around what you need to prioritize next so you don t have to stress about replanning your entire week and can continue to work off your updated schedule without the added pressure of decision making Stop procrastination due to decision paralysis amp get more doneDecision paralysis is a common challenge that can result from the combination of being overloaded with options increasing workloads added daily stressors and the natural human desire to make the best choices and offer only our best work Take some of the pressure out of decision making by getting clear on your true priorities creating an action plan through your calendar and implementing smart tools that help you create a flexible schedule that aligns with your goals From here you can begin to disarm procrastination caused by analysis paralysis and be more productive every week 2022-04-18 19:12:10
海外TECH DEV Community Estimation and Scheduling Tips for Beginners https://dev.to/stoutsystems/estimation-and-scheduling-tips-for-beginners-127g Estimation and Scheduling Tips for BeginnersWritten by Peg Bogema President of Stout SystemsLet s start with this statement You cannot accurately estimate anything you haven t done before If I asked you to estimate how long it would take you to make a new suit for jolly old Saint Nick or to walk to the North Pole to take his measurements you would probably laugh at me But in many if not most cases that s what people in technology are asked to do We have to figure out how long something will take that we ve never done before Here are two definitions of estimate from yourdictionary com an opinion or a guess of the size worth or cost of something a rough calculation or guess Notice that both definitions include the word guess Guessing how long a project is going to take isn t going to be very popular with your customers or stakeholders Other than gaining the insight and wisdom of twenty or thirty years of experience are there things you can do to improve your estimates Yes Break tasks down When we teach estimation to software developers we quote Joel Spolsky founder of Trello co founder of Stack Overflow among many other illustrious accomplishments from his Joel on Software blog Pick very fine grained tasks This is the most important part to making your schedule work Your tasks should be measured in hours not days When I see a schedule measured in days or even weeks I know it s not real …If you are sloppy and pick big “chunky tasks “implement grammar correction then you haven t really thought about what you are going to do And when you haven t thought about what you re going to do you just can t know how long it will take As a rule of thumb each task should be from to hours If you have a hour one week task on your schedule you re not breaking it down enough If there is any one thing I hope you ll remember this is it In order to estimate and schedule correctly you need to break your project down into very small tasksーso small that they aren t longer than hours in duration If you think your way through your project at this level of detail you can then roll up the task estimates into a reasonable guess about the scope of a project Anything done with less detail isn t an estimate It s a WAG If you don t know this acronym look it up You ll get a chuckle Track your actual hours Once you ve created your task breakdown don t just put it in a drawer in your desk The way you improve your estimation skills is by tracking your actual hours You said Task X would take hours Were you right If not were you over Under Tracking actual hours provides a feedback loop so that you can learn from your mistakes This isn t about beating yourself up over your crummy estimating skills It s about observing how you did and using your observations to hone your estimation engine Were you generally overly optimistic If so by what factor You can try multiplying your estimates by your optimism factor to see if that brings you closer to accurate Were you only off on a specific type of task Did you completely forget some tasks When we work with software developers they ll often omit time for testing or bug fixing or status reporting or meetings If you observe that you forgot to budget time for a specific task or two you can add that to your estimating template so you don t make that mistake again Your estimation skills will grow by leaps and bounds if you track actuals and then retrospect about where you were off and what you can do to improve Don t confuse task estimates with a schedule If you estimate a project at hours that doesn t mean that the schedule is two weeks You have dependencies on others You need to schedule a meeting with someone or get feedback from a busy executive or a thousand other things that will slow you down calendar wise Where task estimation is something you tune on a personal level scheduling is something you tune on a client or team or company level As you become familiar with the various stakeholders you ll be working with you ll know whether or not scheduling meetings is easy or turnaround times are quick You create a schedule to accommodate all of the delays and pauses that you anticipate And then you pad the schedule to allow for disruptions And then the next time you do a project with the same group you have a good sense of how things will go Summary As a newbie you shouldn t expect that your estimation and scheduling skills will be good That s no excuse to continue to suck at it for very long Follow these tips to improve your skills This area is one of the major differentiators between someone who is viewed as junior versus someone who is viewed as senior It will pay off in raises and promotions So do it This is a technical business article catered to developers hiring project managers and other technical staff looking to improve their skills  Sign up to receive our articles in your email inbox If you re looking for a job in the tech industry visit our job board to see if you qualify for some of our positions If you re looking to hire technical talent for your company please contact us Stout Systems is the software consulting and staffing company Fueled by the Most Powerful Technology Available Human Intelligence We were founded in and are based in Ann Arbor Michigan We have clients across the U S in domains including engineering scientific manufacturing education marketing entertainment small business and robotics We provide expert level software Web and embedded systems development consulting and staffing services along with direct hire technical recruiting and placements 2022-04-18 19:12:00
海外TECH DEV Community Open Source Project - Self Healing Cloud Infrastructure Solution https://dev.to/pinalramani/open-source-project-self-healing-cloud-infrastructure-solution-466k Open Source Project Self Healing Cloud Infrastructure SolutionAre you passionate about Open Source Tools and Giving back to the community How about a CLOUD ANOMALY DETECTION SOLUTION Well you are reading the right post We are working on an open source solution called Matos Matos is designed to help detect anomalies configuration and policy drifts Matos interacts with native cloud service s APIs and third party tools to obtain current metadata and stats of underlying resources In this manner Matos is able to represent for each use case the current security and compliance posture We support AWS and GCP allow users to get real time resource information and metadata and we re purpose built to identify anomalies and policy configuration drifts This is a project we are extremely passionate about and this is an opportunity for us to give back to our community There is not much user activity on it and that is why I am here for you to try it out and let us know your feedback input or contribution to the project Even better a partnership in making this BIG Here is the link to the project Product website User testimonial Looking forward to some great participation and feedback for the open source solution and giving back to the community DevSecOps Automation cloudinfrastructure hardening secops devops cloudautomation remediation compliance cloudcompliance python opensource 2022-04-18 19:10:15
海外TECH DEV Community Weekly 008 https://dev.to/kasuken/weekly-008-dkg Weekly MondayThis morning I was tired because yesterday I ran my first marathon in Zurich I started the morning with our first “look back meeting with all my team It s a minutes call with a kind of retrospective of the two weeks before It seemed good from my point of view I didn t have feedbacks from the other guys In the morning I blogged about my setting for the Logitech Brio Best settings for Logitech Brio k Emanuele Bartolesi・Apr ・ min read TuesdayFinally today I finished a big refactoring of Red Origin I have a lot of naming for database entities I postponed this activity for a lot of months but on Friday I started to work on it More or less hours of work In the afternoon I also created a document with a lot of screenshots for Red Origin A customer ask them for an internal presentation Fingers crossed In the late evening I worked on the startup Oscar I implemented the new UI for a lot of new sections of the app WednesdayWoke up early in the morning tried to catch up on some of the backlog Failed Worked on two new features for Red Origin but the tasks are more hard than I thought at the beginning ThursdayNothing special After lunch I had our retro meeting for Red Origin A lot of news and lot of stuff to do in the future I thought from the next week I will start to stream on Twitch again while I will work on Red Origin I will share my screen time to time but not for the entire morning FridayHoliday 2022-04-18 19:09:57
海外TECH DEV Community The Javax Jakarta mess, and a Gradle solution https://dev.to/tbroyer/the-javax-jakarta-mess-and-a-gradle-solution-3c44 The Javax Jakarta mess and a Gradle solutionNearly five years ago Oracle was preparing the release of Java EE and announced that it would move it to an open source foundation Less a month later they announced they selected the Eclipse Foundation for that work Two years later Jakarta EE was released as fully compatible version of Java EE The only thing that changed in that period was about migrating the process to the Eclipse Foundation and Jakarta EE Working Group According to this article the source code was exactly the same except for some additional commits maybe because Oracle transfered the head of the master branches of Git repositories and the artifacts got released twice as milestones of the transfer process first proving that the code could be built then a less technical but more procedural release where the Java EE name was replaced by Jakarta EE in javadocs of course this also means different terms and conditions Then fifty months after that Jakarta EE was released with only two major changes the package names were all migrated from javax to jakarta some older specifications were pruned But you talked about a mess‽Yes Oracle being Oracle they transfered the technology and documentation but not the name and trademark Indeed Java EE was renamed to Jakarta EE But that s not all they also prohibited any modification to the javax packages so everything would eventually be moved new packages The Eclipse Foundation presented it as what Eclipse and Oracle had agreed on but let s not be fooled by that PR wording what would you expect from the company that almost ruined our whole industry with the trial against Google over Android That s only part of the problem though We could have had javax artifacts I m talking about Maven coordinates here using the javax package names and jakarta artifacts using the jakarta package names and while this big breaking change would have had a years long impact it would have been somewhat manageable we re right into it now actually with many projects maintaining two branches one for each package namespace But the Jakarta Working Group decided to publish Jakarta EE under the same Maven coordinates as what they expected to publish later Jakarta EE versions I have no idea if they were somehow forced to publish those at all or could have possibly kept them into their own repository but they could have at least used specific Maven coordinates as they already knew at that point that this would happen Oracle froze the javax package name in May while Jakarta EE came out four months later in September I have no idea how much Jakarta Working Group members were aware of this decision by Square Inc to version their Maven coordinates and package names when releasing versions with major breaking changes back in December but the problem itself was nothing new but the decision to publish javax and later jakarta packages under the same Maven coordinates was hugely misguided and possibly the worst mistake in all this story What does this mean in practice First when there was only Jakarta EE you could have had transitive dependencies on both Java EE or earlier and Jakarta EE This would cause duplicates of the javax classes in the classpath because dependency managers aren t told that those artifacts are actually the same but renamed If you had an older Java EE artifact on the classpath it could also shadow the newer Jakarta EE causing breakages at compile time or worse at runtime But now that there s also Jakarta EE and and very soon Jakarta EE you could have Jakarta EE artifacts being upgraded to Jakarta EE despite being a completely incompatible API In their newsletter just before the Jakarta EE release Eclipse acknowledged the practical issues it caused inviting people to actually depend on Java EE artifacts rather than Jakarta EE ones but this came way too late the harm had been done already In retrospect we could say that nobody should have dependended upon Jakarta EE artifacts or they should have used version ranges to exclude the next major version but version ranges are bad for build reproducibility unless you use a dependency manager that somehow supports version locking Oh wow Ok but you hinted at a Gradle solution Yes this is where Gradle really shines compared to many other dependency managers it lets you hook into the dependency resolution process and fix many things With Maven for instance you could use the Maven Enforcer Plugin with Mojohaus ban duplicate classes rule to detect the Java EE vs Jakarta EE issue or the built in dependency convergence rule and you would have to resolve it yourself through dependency exclusions everywhere needed and because the dependency convergence rule isn t configurable you cannot enable it only for the Jakarta EE dependencies so it has a huge impact By the way if you look at how the dependency convergence rule is implemented you ll see that it will actually resolve the dependency once again so it can get to the dependency details I don t think you can peek into and influence the dependency resolution process itself With Gradle we can do two things declare that Java EE and Jakarta EE are actually the same thing under a different namefix third parties dependencies on Jakarta EE to reject any upgrade to Jakarta EE Gradle also has the equivalent to Maven s dependency convergence rule through failOnVersionConflict This would fail the build the same way as with Maven but Gradle also allows us to automatically fix those because Jakarta EE artifacts are fully compatible with Java EE ones we could rewrite third parties dependencies to actually use Java EE rather than Jakarta EE Declaring that Java EE and Jakarta EE are equivalentTo declare that Jakarta EE replaced Java EE we could use a module replacement rule but this would also say that Jakarta EE replaced Java EE which is not actually true there s no real problem having both Java EE javax package and Jakarta EE jakarta package in the same classpath So we d rather declare that Jakarta EE artifacts and only those provide the same capabilities as their Java EE counterparts For XML Binding for instance which also changed name from JAXB this would look something like this components withModule jakarta xml bind jakarta xml bind api if id version startsWith allVariants withCapabilities addCapability javax xml bind jaxb api id version With that rule you can have javax xml bind jaxb api in any version Java EE and jakarta xml bind jakarta xml bind api or a later version Jakarta EE without error butyou cannot have javax xml bind jaxb api and jakarta xml bind jakarta xml bind api Jakarta EE If we have such a conflict Gradle will allow us to resolve it using a rule too rather than having to play with exclusions which are a PITA to maintain in the long run Let s first continue to detect the problems Reject upgrades of Jakarta EE to Jakarta EE Rejecting such upgrades within the same coordinates is not as easy As we ve seen above we could retrospectively say that the dependencies should have originally been declared to reject them but that s never the case in practice Fortunately Gradle allows us to fix those declarations at resolution time components all allVariants withDependencies val dep find it group jakarta xml bind amp amp it name jakarta xml bind api amp amp it versionConstraint includesMajor if dep null dep version reject The includesMajor here would be a Kotlin extension function doing the check on the version which has to deal with Gradle s rich versions including version ranges for instance The simplest implementation would only look at the required version which is what a simple version in a Maven POM would map to fun VersionConstraint includesMajor major String requiredVersion startsWith major Resolving the Java EE Jakarta EE conflictsWe ve used a capability to make them incompatible with one another but this will only fail the build if such a thing arise We then have to use a capabilities resolution rule to select between them Because we declared the capability only on Jakarta EE we can safely use selectHighestVersion to pick the Jakarta EE Why safely Because this is evaluated after versions are mediated What this means is that if you have all three of javax xml bind jaxb api Java EE jakarta xml bind jakarta xml bind api Jakarta EE and jakarta xml bind jakarta xml bind api Jakarta EE then Gradle will first upgrade the Jakarta EE dependency to Jakarta EE which will remove Jakarta EE from the equation and at the same time the capability conflict leaving the Java EE and Jakarta EE In this case because Java EE and Jakarta EE are fully compatible this is not a problem at all it would be though if we had a dependency on an older version of Java EE as this could break compatibility for the library that depends on Jakarta EE Anyway all of this won t happen because we also made it so that the Jakarta EE dependency won t be upgraded to Jakarta EE or later To look at the whole picture if you only had the Java EE any version and Jakarta EE dependencies then the conflict would be on the javax xml bind jaxb api and javax xml bind jaxb api capabilities Gradle capabilities follow the same naming rules as Maven coordinates with a group a name and a version so with selectHighestVersion the capability would be selected hence the Jakarta EE artifact In other words the Java EE would be upgraded to Jakarta EE This works because they kept Jakarta EE versions increasing after Java EE ones and we declared the capability using that version Resolving the Jakarta EE Jakarta EE conflictsBecause we know that Java EE and Jakarta EE are fully compatible with one another the solution here will be to actually downgrade Jakarta EE to Java EE We ll thus replace the rule we added above that would reject the upgrade to Jakarta EE with a similar one that actually downgrades to Java EE components all allVariants withDependencies val found removeIf it group jakarta xml bind amp amp it name jakarta xml bind api amp amp it versionConstraint includesMajor if found add javax xml bind jaxb api Note that we might want to actually conserve the attributes when replacing the dependency that way or maybe not I haven t thought about it much yet Such a rule actually trumps all our previous attempts if we replace Jakarta EE with Java EE we no longer have to detect when both are present even less so resolve any such conflict andbecause Jakarta EE has been replaced we no longer have to reject upgrading it to Jakarta EE either We can still keep those rules just in case e g if Jakarta EE is added as a direct dependency Problem solved then Well for some definition of solved yes Ideally one would have to go through all the Java EE and Jakarta EE dependencies fortunately they can all be found in javax javaee api and jakarta platform jakartaee bom POMs and package all those rules into a plugin To that one would have to add all the artifacts from EE vendors e g for JAX RS alone javax javaee api javax javaee web api org jboss spec javax ws rs jboss jaxrs api spec org jboss resteasy jaxrs api org apache servicemix specs org apache servicemix specs jaxrs api org apache aries spec org apache aries javax jax rs api org apache geronimo specs geronimo jaxrs spec org apache tomee javaee api and additionally for Jakarta RS jakarta platform jakartaee api jakarta platform jakartaee web api org jboss spec javax ws rs jboss jaxrs api spec org apache tomee jakartaee api and I m probably missing some to declare them as providing the same Java EE or Jakarta EE capability and note that versions do not match Then there needs to be extensive testing with various combinations of Java EE Java EE Jakarta EE and Jakarta EE including the includesMajor version check hinted above And of course because we tap into each and every component looking at all their dependencies this needs to be optimized so as to not slow down all your builds Easier said than done Many thanks to Björn Kautler Vampire and Jendrik Johannes for the discussion and ideas 2022-04-18 19:09:22
海外TECH DEV Community Honeycomb, Python, and I: an OpenTelemetry Horror Story (With a Happy Ending) https://dev.to/sjsadowski/honeycomb-python-and-i-an-opentelemetry-horror-story-with-a-happy-ending-3hmc Honeycomb Python and I an OpenTelemetry Horror Story With a Happy Ending BackgroundI m currently on day of my Staycation where I m trying to catch up on my MBA coursework but it can be somewhat painful and I needed a break I decided to take up the challenge of finally integrating distributed tracing into my web apps It s no surprise that my apps are mostly written using Sanic as I m pretty involved with the project I ve been wanting to start testing honeycomb out as well so it seemed the perfect opportunity to try out OpenTelemetry amp Python The Nightmare BeginsFirst thing I want to say is that the OpenTelemetry project is both admirable for its goals and awesome in its scope There s a lot going for it Second thing I want to say is that the documentation sucks And I m not the only person that thinks so But it s okay enough to kind of work out the kinks once you ve been spinning for a bit The third thing I want to say is that there need to be better examples for both manual instrumentation and automatic instrumentation NOT using the Flask example I love Flask and it s definitely one of the most popular Python web frameworks but if you search for Python OpenTelemetry that s pretty much all you get For reference they all pretty much include the following instructions In your shellvirtualenv venvsource venv bin activatepip install opentelemetry apipip install opentelemetry sdkpip install opentelemetry distropip install opentelemetry instrumentation flaskpip install flaskpip install requestsapp py from opentelemetry import tracefrom opentelemetry exporter otlp proto grpc trace exporter import OTLPSpanExporterfrom opentelemetry sdk trace import TracerProviderfrom opentelemetry sdk trace export import BatchSpanProcessor ConsoleSpanExporterfrom opentelemetry instrumentation flask import FlaskInstrumentorfrom flask import Flaskapp Flask name FlaskInstrumentor instrument app app app route def hello world You can still use the OpenTelemetry API as usual to create custom spans within your trace with tracer start as current span do work time sleep return Hello World This is great but I m not using Flask and Sanic does not yet have automatic instrumentation Honeycomb TastingI ve been a fan of the idea of honeycomb for some time and have interacted from time to time with the honeycomb team I had signed up for a honeycomb account some time back and thankfully they understand the concept of try before you buy with a free tier that I never got to take advantage of After logging in and setting up a new API key I went to work attempting manual instrumentation of my sanic app So first let s just try exporting a span with a test script from opentelemetry import tracefrom opentelemetry exporter otlp proto grpc trace exporter import OTLPSpanExporterfrom opentelemetry sdk trace import TracerProviderfrom opentelemetry sdk trace export import SimpleSpanProcessorfrom opentelemetry sdk resources import ResourceOTEL EXPORTER OTLP ENDPOINT OTEL EXPORTER OTLP HEADERS x honeycomb team no i wont tell you OTEL SERVICE NAME test service for hcotel resource Resource name test provider TracerProvider resource resource processor SimpleSpanProcessor OTLPSpanExporter endpoint OTEL EXPORTER OTLP ENDPOINT headers OTEL EXPORTER OTLP HEADERS provider add span processor processor trace set tracer provider provider tracer trace get tracer name with tracer start as current span test span print test service Failure Failure FailureMy workflow often varies depending on location time of day phase of the moon etc My primary devices for development are a Lenovo X Nano running Fedora a Dell XPS Desktop with some significant upgrades an M Mac Mini and a MacBook Pro When developing in Python on the linux systems things Just Workbut M macs still have some quirks During this test I was working on the MacBook Pro GRPC ProblemsOn M macs for some time now the grpcio wheel has been broken There are a few different workarounds but in some cases you won t even know you need them until you try testing out something that relies on it say the otel grpc trace exporter and then you get a traceback like this Traceback most recent call last File Users ssadowski projects otel honeycomb test test py line in lt module gt from opentelemetry exporter otlp proto grpc trace exporter import OTLPSpanExporter File Users ssadowski projects otel honeycomb test pypackages lib opentelemetry exporter otlp proto grpc trace exporter init py line in lt module gt from grpc import ChannelCredentials Compression File Users ssadowski projects otel honeycomb test pypackages lib grpc init py line in lt module gt from grpc import compression File Users ssadowski projects otel honeycomb test pypackages lib grpc compression py line in lt module gt from grpc cython import cygrpcImportError dlopen Users ssadowski projects otel honeycomb test pypackages lib grpc cython cygrpc cpython darwin so x tried Users ssadowski projects otel honeycomb test pypackages lib grpc cython cygrpc cpython darwin so mach o file but is an incompatible architecture have x need arme The solution for me was to do the following as part of my installation sort of export PIP NO BINARY grpcioThis gets me a bit farther as now we get this weird error test serviceFailed to export span batch error code StatusCode UNAUTHENTICATED Honeycomb s Bad TasteThere are a few things missing in honeycomb s documentation for using OpenTelemetry and unfortunately that s not obvious When reading through the docs there are some significant misses that make honeycomb unusable as a collector and what s worse if you re using the grpc exporter there are two major hurdles to surpass I spent a huge amount of time maybe hours digging into the problem I was flipping back and forth between honeycomb s docs the open telemetry docs and the open telemetry python repo digging through issues One of the big problems is that the python exporters do this bit of stupid in the grpc exporter on lines Also it s clear the author knew the issue because they specifically disable the pylint warning except Exception as error pylint disable broad except logger exception error Yes we just catch the exception and don t really provide any detail which yes in our case just told us the error listed above I kept digging however and found that honeycomb has experimental http support for open telemetry I decided to give it a whirl and see if I could at least get a better error Answer Yes and also answer too problem with the honeycomb docs the API endpoint was wrong After switching to the http exporter the error changed test serviceFailed to export batch code reason error invalid OTLP endpoint should you be sending to v traces see API docs Well gosh probably I should be sending my traces there So I updated my endpoint and switched back to grpc Bad move test serviceFailed to export span batch error code StatusCode UNAUTHENTICATEDWell crap Back to http But first is the http exporter really that much better logger error Failed to export batch code s reason s resp status code resp text So yes we ll get significantly more detail fromt he http exporter But what did we get test serviceFailed to export batch code reason message missing x honeycomb dataset header Now wait a minute that s not even a header the doc says to use so is that problem If I add the header what do I get from the http exporter this time test serviceSuccess Yes I was able to validate that the span was present and that s what I needed Making the changes to the grpc exporter got the same results and so clearly that was the issue In the end I was able to start exporting spans to honeycomb and could take my learning with me Gotta Go FastSo with no automatic instrumentation how can we get things going quickly Off To The RacesLike many python frameworks Sanic has a method to hook into the request response cycle In Sanic also like many python frameworks we call this middleware and we can do some execution before and after We also have some convenience decorators which I generally don t use outside of doing some POCs Because this is a POC let s set up our hooks app on requestasync def otel req middleware request request Request gt None route name request route name if request route else Error set a default route name necessary because route isn t set on some errors like NotFound request ctx span tracer start span name route name create our span request ctx span add event route path request path add our path as an event app on responseasync def otel rsp middleware request request Request response response HTTPResponse gt None try if request ctx span request ctx span end close the span send to collector except Exception as e print e TODO convert to logger catch specific exceptions app exception exceptions SanicException async def otel exc middleware request request Request exception exceptions SanicException gt response HTTPResponse request ctx span set status Status StatusCode ERROR make sure to flag span as containing an error request ctx span add event exception data traceback extract stack format Add an error event return response json error str exception status code exception status code status exception status code return our error What s Happening Here The request middleware executes before the main portion of the request so in the app on request function I initialize the span and add an event that tells me either that it s a route or an error The route will always be present unless a NotFound exception has bubbled up from the router because the route hasn t been defined In the app on response function I close the span and in this situation the span is exported to the collector The exception function sets the span to contain an error and add an event to contain the trace for the exception Wrapping It All UpAt this point spans are being exported to honeycomb for both successful requests and errors so the Otel POC is largely complete The big question is do I carry this further and add automatic instrumentation to Sanic or do I complete the larger POC for the service first For SanicThe answer is that we re trying to help Sanic grow up and it would be really helpful if we natively supported Open Telemetry either as an add on package or as part of Sanic Extensions Either way it s on my to do list to get this done but for now I have a pattern to work with Honeycomb in a way that will start to get me the observability metrics I need Outstanding IssuesUpdate Open Telemetry documentation possibly through PRUpdate GRPC exporter possibly through PR to return better errorsOpen issue with Honeycomb for them to update their python documentation TakeawaysLike so many efforts this implementation was born out of necessity I was somewhat aware of the issues with Open Telemetry and Python because of my long time friend Michael Stella had already fought some of the same battles I am a bit disappointed with the issues I had to uncover on my own with Honeycomb but I m not deterred by them I m excited to make it to the next steps for my own efforts and I hope that this effort will help others even outside the Sanic community integrate observability and distributed tracing with their python apps and services With all of that being said this was a great challenge and I learned lots I m very excited about the future of Open Telemetry and establishing a pattern for observability for my own services I think that if my experience can help anyone shave down time it takes to get up and running with Otel on python it was totally worth it 2022-04-18 19:02:34
海外TECH DEV Community How to collect Stripe Payment in react native app https://dev.to/aneeqakhan/how-to-add-stripe-payment-in-react-native-app-24o8 How to collect Stripe Payment in react native appHi folks today I want to share the procedure of payment integration in react native app through StripeRegistrationInstallationConfigurationCard ComponentCreate a Payment IndentSubmit the PaymentTest Cards Registration First you have to create your account on the Stripe dashboard Stripe dashboard in test mode will look like this Installation For server side installation you can refer to this linkFor the react native side run this command in terminalyarn add stripe stripe react nativeAnd to install the required native dependencies run this command in the ios folder Android doesn t require any additional steps pod install Configuration Now wrap your lt App gt in lt StripeProvider gt tag and pass your account publishable key to it You can find this key in the Home tab on the Stripe dashboard import StripeProvider from stripe stripe react native function App return lt StripeProvider publishableKey pk test TYooMQauvdEDqNiTphIjx urlScheme your url scheme required for D Secure and bank redirects merchantIdentifier merchant com YOUR APP NAME required for Apple Pay gt Your app code here lt StripeProvider gt Card Component Stripe has multiple elements to choose from I choose Card Element it is a build in UI component to securely collect card details import CardField useStripe from stripe stripe react native function PaymentScreen return lt View gt lt CardField postalCodeEnabled false placeholder number onCardChange cardDetails gt console log cardDetails cardDetails gt lt View gt onCardChange the callback returns the non sensitive information about the card You can use this info to enable disable the Checkout button or display an error message Create a Payment Indent After this we create a payment intent to collect payment from the user But to create a Payment Intent we need an API because the server side is saved as opposed to the client Please follow these steps to create a payment intent API Now we ll fetch the client secret from this API function PaymentScreen const fetchPaymentIntentClientSecret async gt const response await fetch API URL create payment intent method POST headers Content Type application json body JSON stringify currency usd const clientSecret await response json return clientSecret const handlePayPress async gt if card return Fetch the intent client secret from the backend const clientSecret await fetchPaymentIntentClientSecret return lt View gt lt CardField onCardChange cardDetails gt console log cardDetails cardDetails gt lt Button onPress handlePayPress title Pay disabled loading gt lt View gt Submit the Payment Next we ll send the client secret and user details to the confirmPayment method which you can access with the useConfirmPayment hook const confirmPayment loading useConfirmPayment const handlePayPress async gt Gather the customer s billing information for example email const billingDetails BillingDetails email jenny rosen example com Fetch the intent client secret from the backend const clientSecret await fetchPaymentIntentClientSecret Confirm the payment with the card details const paymentIntent error await confirmPayment clientSecret type Card billingDetails if error console log Payment confirmation error error else if paymentIntent console log Success from promise paymentIntent After that you can check the statuses of payments on the Stripe dashboard Test Cards There is a list of test cards available of different brands to test your payments Thank you for reading Feel free to connect on Twitter 2022-04-18 19:01:19
Apple AppleInsider - Frontpage News Apple deal for NFL Sunday Ticket may be already done, report claims https://appleinsider.com/articles/22/04/18/apple-deal-for-nfl-sunday-ticket-may-be-already-done-report-claims?utm_medium=rss Apple deal for NFL Sunday Ticket may be already done report claimsApple may have already reached a deal to stream the NFL on Apple TV but the partnership is being kept quiet a new report claims NFLThe Cupertino tech giant is said to be a front runner in the bidding war to nab the NFL Sunday Ticket package which became up for grabs in DirecTV s contract ran out for the to season Read more 2022-04-18 20:00:12
Apple AppleInsider - Frontpage News Blackmagic Design adds collaboration features to DaVinci Resolve 18 https://appleinsider.com/articles/22/04/18/blackmagic-design-adds-collaboration-features-to-davinci-resolve-18?utm_medium=rss Blackmagic Design adds collaboration features to DaVinci Resolve Blackmagic Design has released DaVinci Resolve with enhanced cloud collaboration features as well as new time saving tools for video editors Released on Monday as a public beta DaVinci Resolve expands the video editing software with increased cloud storage facilities Supporting Blackmagic Cloud for hosting and sharing projects the release makes it easier to remotely collaborate by hosting project files in the cloud complete with real time collaboration on the same timeline Read more 2022-04-18 19:20:03
ニュース BBC News - Home Cristiano Ronaldo and partner Georgina Rodriguez announce death of baby boy https://www.bbc.co.uk/sport/football/61143808?at_medium=RSS&at_campaign=KARANGA boyfootballer 2022-04-18 19:36:04
ビジネス ダイヤモンド・オンライン - 新着記事 マッキンゼー流!経営改革の出発点「業界構造と自社の強み」が分かる“自己検診”の極意【動画】 - マッキンゼー流!リーダーの新教科書 ―戦略とファイナンス― https://diamond.jp/articles/-/292543 マッキンゼー流経営改革の出発点「業界構造と自社の強み」が分かる“自己検診の極意【動画】マッキンゼー流リーダーの新教科書ー戦略とファイナンスーマッキンゼー流企業価値を持続的に創造していく経営の極意とはまた求められる思考法とスキルとは第回は、業界構造と自社の強みが分かる“自己検診の進め方を解説。 2022-04-19 04:50:00
ビジネス ダイヤモンド・オンライン - 新着記事 民主主義を危機にさらしているのはロシアの軍事侵攻だけではない - 政策・マーケットラボ https://diamond.jp/articles/-/301812 国際秩序 2022-04-19 04:45:00
ビジネス ダイヤモンド・オンライン - 新着記事 【佐倉高校】華麗なる卒業生人脈!長嶋茂雄、リクルートHD会長の峰岸真澄、俳優の藤木直人、BUMP OF CHICKENメンバー - 日本を動かす名門高校人脈 https://diamond.jp/articles/-/301452 2022-04-19 04:40:00
ビジネス ダイヤモンド・オンライン - 新着記事 文在寅政権が報復つぶし?「検察捜査権を剥奪」強行の暴挙、元駐韓大使が解説 - 元駐韓大使・武藤正敏の「韓国ウォッチ」 https://diamond.jp/articles/-/301843 共に民主党 2022-04-19 04:37:00
ビジネス ダイヤモンド・オンライン - 新着記事 ウクライナ危機でアジア・中東と欧米の「分断」深まる、日本への影響は? - 今週のキーワード 真壁昭夫 https://diamond.jp/articles/-/301799 真壁昭夫 2022-04-19 04:35:00
ビジネス ダイヤモンド・オンライン - 新着記事 日本の安全保障政策、今こそ「英国」との連携強化を急ぐべき理由 - 上久保誠人のクリティカル・アナリティクス https://diamond.jp/articles/-/301800 協力関係 2022-04-19 04:30:00
ビジネス ダイヤモンド・オンライン - 新着記事 クレカ積み立て投資の競争激化、「ポイント還元率」が楽天より高い首位は? - News&Analysis https://diamond.jp/articles/-/301801 クレカ積み立て投資の競争激化、「ポイント還元率」が楽天より高い首位はNewsampampAnalysisクレジットカード決済で行う積み立て投資、いわゆる「クレカ積み立て」が活況だ。 2022-04-19 04:25:00
ビジネス ダイヤモンド・オンライン - 新着記事 「旭川中2女子凍死」で認定された加害生徒の陰湿手口、大人たちの許されぬ行為も - ニュース3面鏡 https://diamond.jp/articles/-/301842 「旭川中女子凍死」で認定された加害生徒の陰湿手口、大人たちの許されぬ行為もニュース面鏡北海道旭川市で昨年月、中学年の広瀬爽彩さん当時が凍り付いた遺体で見つかり、その後に上級生らによる性的行為の強要などが明らかになった問題を受け、第三者調査委員会は日、人が関わった項目について「いじめ」と認定する中間報告を公表した。 2022-04-19 04:22:00
ビジネス ダイヤモンド・オンライン - 新着記事 「ぴえん系女子」たちが、ボロボロになっても男に貢ぐ理由とは - ニュース3面鏡 https://diamond.jp/articles/-/301291 位置づけ 2022-04-19 04:20:00
ビジネス ダイヤモンド・オンライン - 新着記事 ダイエット不要、ウォーキングだけで「見た目マイナス2kg」になる方法 - ニュース3面鏡 https://diamond.jp/articles/-/296896 運動 2022-04-19 04:15:00
ビジネス ダイヤモンド・オンライン - 新着記事 M&A後の組織づくりで「対話の場」をどうデザインするか? - M&A後の組織・職場づくり入門 https://diamond.jp/articles/-/301459 MA後の組織づくりで「対話の場」をどうデザインするかMampampA後の組織・職場づくり入門日本企業のMAが急増しており、年は過去最多の件を記録したレコフデータ調べ。 2022-04-19 04:10:00
ビジネス ダイヤモンド・オンライン - 新着記事 入社後ギャップを未然に防げ!就活における魔法の質問事項「QCTW」とは - 採用のプロが明かす「親必読」最新就活事情 https://diamond.jp/articles/-/301823 魔法の質問 2022-04-19 04:05:00
ビジネス 東洋経済オンライン 山本太郎氏「参院鞍替え」実は与党が戦々恐々な訳 出馬選挙区明かさず、各党の選挙戦略は混乱必至 | 国内政治 | 東洋経済オンライン https://toyokeizai.net/articles/-/582726?utm_source=rss&utm_medium=http&utm_campaign=link_back 国内政治 2022-04-19 04:30:00
Azure Azure の更新情報 Public preview: Stable URLs for preview environments in Azure Static Web Apps https://azure.microsoft.com/ja-jp/updates/public-preview-stable-urls-for-preview-environments-in-azure-static-web-apps/ appsazure 2022-04-18 19:14:23

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)